gpt-engineer-app[bot] commited on
Commit
b3f6d4c
·
1 Parent(s): 50d5ef7

feat: Implement voice selection, OCR, and export options

Browse files

- Added voice selection options using the Web Speech API.
- Implemented Tesseract.js for OCR functionality.
- Added additional export options.

Files changed (3) hide show
  1. package-lock.json +237 -3
  2. package.json +1 -0
  3. src/components/EditorPanel.tsx +172 -18
package-lock.json CHANGED
@@ -55,6 +55,7 @@
55
  "sonner": "^1.5.0",
56
  "tailwind-merge": "^2.5.2",
57
  "tailwindcss-animate": "^1.0.7",
 
58
  "vaul": "^0.9.3",
59
  "zod": "^3.23.8"
60
  },
@@ -82,6 +83,7 @@
82
  "version": "5.2.0",
83
  "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
84
  "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
 
85
  "license": "MIT",
86
  "engines": {
87
  "node": ">=10"
@@ -813,6 +815,7 @@
813
  "version": "8.0.2",
814
  "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
815
  "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
 
816
  "license": "ISC",
817
  "dependencies": {
818
  "string-width": "^5.1.2",
@@ -830,6 +833,7 @@
830
  "version": "0.3.5",
831
  "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
832
  "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
 
833
  "license": "MIT",
834
  "dependencies": {
835
  "@jridgewell/set-array": "^1.2.1",
@@ -844,6 +848,7 @@
844
  "version": "3.1.2",
845
  "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
846
  "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
 
847
  "license": "MIT",
848
  "engines": {
849
  "node": ">=6.0.0"
@@ -853,6 +858,7 @@
853
  "version": "1.2.1",
854
  "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
855
  "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
 
856
  "license": "MIT",
857
  "engines": {
858
  "node": ">=6.0.0"
@@ -862,12 +868,14 @@
862
  "version": "1.5.0",
863
  "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
864
  "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
 
865
  "license": "MIT"
866
  },
867
  "node_modules/@jridgewell/trace-mapping": {
868
  "version": "0.3.25",
869
  "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
870
  "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
 
871
  "license": "MIT",
872
  "dependencies": {
873
  "@jridgewell/resolve-uri": "^3.1.0",
@@ -878,6 +886,7 @@
878
  "version": "2.1.5",
879
  "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
880
  "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
 
881
  "license": "MIT",
882
  "dependencies": {
883
  "@nodelib/fs.stat": "2.0.5",
@@ -891,6 +900,7 @@
891
  "version": "2.0.5",
892
  "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
893
  "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
 
894
  "license": "MIT",
895
  "engines": {
896
  "node": ">= 8"
@@ -900,6 +910,7 @@
900
  "version": "1.2.8",
901
  "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
902
  "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
 
903
  "license": "MIT",
904
  "dependencies": {
905
  "@nodelib/fs.scandir": "2.1.5",
@@ -913,6 +924,7 @@
913
  "version": "0.11.0",
914
  "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
915
  "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
 
916
  "license": "MIT",
917
  "optional": true,
918
  "engines": {
@@ -2913,14 +2925,14 @@
2913
  "version": "15.7.13",
2914
  "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz",
2915
  "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==",
2916
- "devOptional": true,
2917
  "license": "MIT"
2918
  },
2919
  "node_modules/@types/react": {
2920
  "version": "18.3.12",
2921
  "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz",
2922
  "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==",
2923
- "devOptional": true,
2924
  "license": "MIT",
2925
  "dependencies": {
2926
  "@types/prop-types": "*",
@@ -2931,7 +2943,7 @@
2931
  "version": "18.3.1",
2932
  "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz",
2933
  "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==",
2934
- "devOptional": true,
2935
  "license": "MIT",
2936
  "dependencies": {
2937
  "@types/react": "*"
@@ -3223,6 +3235,7 @@
3223
  "version": "6.1.0",
3224
  "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
3225
  "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
 
3226
  "license": "MIT",
3227
  "engines": {
3228
  "node": ">=12"
@@ -3235,6 +3248,7 @@
3235
  "version": "4.3.0",
3236
  "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
3237
  "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
 
3238
  "license": "MIT",
3239
  "dependencies": {
3240
  "color-convert": "^2.0.1"
@@ -3250,12 +3264,14 @@
3250
  "version": "1.3.0",
3251
  "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
3252
  "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
 
3253
  "license": "MIT"
3254
  },
3255
  "node_modules/anymatch": {
3256
  "version": "3.1.3",
3257
  "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
3258
  "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
 
3259
  "license": "ISC",
3260
  "dependencies": {
3261
  "normalize-path": "^3.0.0",
@@ -3269,6 +3285,7 @@
3269
  "version": "5.0.2",
3270
  "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
3271
  "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
 
3272
  "license": "MIT"
3273
  },
3274
  "node_modules/argparse": {
@@ -3332,12 +3349,14 @@
3332
  "version": "1.0.2",
3333
  "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
3334
  "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
 
3335
  "license": "MIT"
3336
  },
3337
  "node_modules/binary-extensions": {
3338
  "version": "2.3.0",
3339
  "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
3340
  "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
 
3341
  "license": "MIT",
3342
  "engines": {
3343
  "node": ">=8"
@@ -3346,6 +3365,12 @@
3346
  "url": "https://github.com/sponsors/sindresorhus"
3347
  }
3348
  },
 
 
 
 
 
 
3349
  "node_modules/brace-expansion": {
3350
  "version": "1.1.11",
3351
  "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -3361,6 +3386,7 @@
3361
  "version": "3.0.3",
3362
  "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
3363
  "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
 
3364
  "license": "MIT",
3365
  "dependencies": {
3366
  "fill-range": "^7.1.1"
@@ -3416,6 +3442,7 @@
3416
  "version": "2.0.1",
3417
  "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
3418
  "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
 
3419
  "license": "MIT",
3420
  "engines": {
3421
  "node": ">= 6"
@@ -3463,6 +3490,7 @@
3463
  "version": "3.6.0",
3464
  "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
3465
  "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
 
3466
  "license": "MIT",
3467
  "dependencies": {
3468
  "anymatch": "~3.1.2",
@@ -3487,6 +3515,7 @@
3487
  "version": "5.1.2",
3488
  "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
3489
  "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
 
3490
  "license": "ISC",
3491
  "dependencies": {
3492
  "is-glob": "^4.0.1"
@@ -3897,6 +3926,7 @@
3897
  "version": "2.0.1",
3898
  "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
3899
  "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
 
3900
  "license": "MIT",
3901
  "dependencies": {
3902
  "color-name": "~1.1.4"
@@ -3909,12 +3939,14 @@
3909
  "version": "1.1.4",
3910
  "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
3911
  "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
 
3912
  "license": "MIT"
3913
  },
3914
  "node_modules/commander": {
3915
  "version": "4.1.1",
3916
  "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
3917
  "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
 
3918
  "license": "MIT",
3919
  "engines": {
3920
  "node": ">= 6"
@@ -3931,6 +3963,7 @@
3931
  "version": "7.0.6",
3932
  "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
3933
  "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
 
3934
  "dependencies": {
3935
  "path-key": "^3.1.0",
3936
  "shebang-command": "^2.0.0",
@@ -3944,6 +3977,7 @@
3944
  "version": "3.0.0",
3945
  "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
3946
  "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
 
3947
  "license": "MIT",
3948
  "bin": {
3949
  "cssesc": "bin/cssesc"
@@ -4130,12 +4164,14 @@
4130
  "version": "1.2.2",
4131
  "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
4132
  "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
 
4133
  "license": "Apache-2.0"
4134
  },
4135
  "node_modules/dlv": {
4136
  "version": "1.1.3",
4137
  "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
4138
  "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
 
4139
  "license": "MIT"
4140
  },
4141
  "node_modules/dom-helpers": {
@@ -4152,6 +4188,7 @@
4152
  "version": "0.2.0",
4153
  "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
4154
  "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
 
4155
  "license": "MIT"
4156
  },
4157
  "node_modules/electron-to-chromium": {
@@ -4193,6 +4230,7 @@
4193
  "version": "9.2.2",
4194
  "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
4195
  "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
 
4196
  "license": "MIT"
4197
  },
4198
  "node_modules/esbuild": {
@@ -4471,6 +4509,7 @@
4471
  "version": "3.3.2",
4472
  "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
4473
  "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
 
4474
  "license": "MIT",
4475
  "dependencies": {
4476
  "@nodelib/fs.stat": "^2.0.2",
@@ -4487,6 +4526,7 @@
4487
  "version": "5.1.2",
4488
  "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
4489
  "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
 
4490
  "license": "ISC",
4491
  "dependencies": {
4492
  "is-glob": "^4.0.1"
@@ -4513,6 +4553,7 @@
4513
  "version": "1.17.1",
4514
  "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
4515
  "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
 
4516
  "license": "ISC",
4517
  "dependencies": {
4518
  "reusify": "^1.0.4"
@@ -4535,6 +4576,7 @@
4535
  "version": "7.1.1",
4536
  "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
4537
  "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
 
4538
  "license": "MIT",
4539
  "dependencies": {
4540
  "to-regex-range": "^5.0.1"
@@ -4585,6 +4627,7 @@
4585
  "version": "3.3.0",
4586
  "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
4587
  "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
 
4588
  "license": "ISC",
4589
  "dependencies": {
4590
  "cross-spawn": "^7.0.0",
@@ -4615,6 +4658,7 @@
4615
  "version": "2.3.3",
4616
  "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
4617
  "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
 
4618
  "hasInstallScript": true,
4619
  "license": "MIT",
4620
  "optional": true,
@@ -4629,6 +4673,7 @@
4629
  "version": "1.1.2",
4630
  "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
4631
  "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
 
4632
  "license": "MIT",
4633
  "funding": {
4634
  "url": "https://github.com/sponsors/ljharb"
@@ -4647,6 +4692,7 @@
4647
  "version": "10.4.5",
4648
  "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
4649
  "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
 
4650
  "license": "ISC",
4651
  "dependencies": {
4652
  "foreground-child": "^3.1.0",
@@ -4667,6 +4713,7 @@
4667
  "version": "6.0.2",
4668
  "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
4669
  "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
 
4670
  "license": "ISC",
4671
  "dependencies": {
4672
  "is-glob": "^4.0.3"
@@ -4679,6 +4726,7 @@
4679
  "version": "2.0.1",
4680
  "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
4681
  "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
 
4682
  "license": "MIT",
4683
  "dependencies": {
4684
  "balanced-match": "^1.0.0"
@@ -4688,6 +4736,7 @@
4688
  "version": "9.0.5",
4689
  "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
4690
  "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
 
4691
  "license": "ISC",
4692
  "dependencies": {
4693
  "brace-expansion": "^2.0.1"
@@ -4733,6 +4782,7 @@
4733
  "version": "2.0.2",
4734
  "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
4735
  "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
 
4736
  "license": "MIT",
4737
  "dependencies": {
4738
  "function-bind": "^1.1.2"
@@ -4741,6 +4791,12 @@
4741
  "node": ">= 0.4"
4742
  }
4743
  },
 
 
 
 
 
 
4744
  "node_modules/ignore": {
4745
  "version": "5.3.2",
4746
  "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
@@ -4810,6 +4866,7 @@
4810
  "version": "2.1.0",
4811
  "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
4812
  "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
 
4813
  "license": "MIT",
4814
  "dependencies": {
4815
  "binary-extensions": "^2.0.0"
@@ -4822,6 +4879,7 @@
4822
  "version": "2.15.1",
4823
  "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
4824
  "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
 
4825
  "license": "MIT",
4826
  "dependencies": {
4827
  "hasown": "^2.0.2"
@@ -4833,10 +4891,17 @@
4833
  "url": "https://github.com/sponsors/ljharb"
4834
  }
4835
  },
 
 
 
 
 
 
4836
  "node_modules/is-extglob": {
4837
  "version": "2.1.1",
4838
  "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
4839
  "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
 
4840
  "license": "MIT",
4841
  "engines": {
4842
  "node": ">=0.10.0"
@@ -4846,6 +4911,7 @@
4846
  "version": "3.0.0",
4847
  "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
4848
  "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
 
4849
  "license": "MIT",
4850
  "engines": {
4851
  "node": ">=8"
@@ -4855,6 +4921,7 @@
4855
  "version": "4.0.3",
4856
  "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
4857
  "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
 
4858
  "license": "MIT",
4859
  "dependencies": {
4860
  "is-extglob": "^2.1.1"
@@ -4867,21 +4934,30 @@
4867
  "version": "7.0.0",
4868
  "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
4869
  "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
 
4870
  "license": "MIT",
4871
  "engines": {
4872
  "node": ">=0.12.0"
4873
  }
4874
  },
 
 
 
 
 
 
4875
  "node_modules/isexe": {
4876
  "version": "2.0.0",
4877
  "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
4878
  "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
 
4879
  "license": "ISC"
4880
  },
4881
  "node_modules/jackspeak": {
4882
  "version": "3.4.3",
4883
  "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
4884
  "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
 
4885
  "license": "BlueOak-1.0.0",
4886
  "dependencies": {
4887
  "@isaacs/cliui": "^8.0.2"
@@ -4897,6 +4973,7 @@
4897
  "version": "1.21.6",
4898
  "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz",
4899
  "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==",
 
4900
  "license": "MIT",
4901
  "bin": {
4902
  "jiti": "bin/jiti.js"
@@ -4970,6 +5047,7 @@
4970
  "version": "3.1.3",
4971
  "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
4972
  "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
 
4973
  "license": "MIT",
4974
  "engines": {
4975
  "node": ">=14"
@@ -4982,6 +5060,7 @@
4982
  "version": "1.2.4",
4983
  "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
4984
  "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
 
4985
  "license": "MIT"
4986
  },
4987
  "node_modules/locate-path": {
@@ -5491,6 +5570,7 @@
5491
  "version": "10.4.3",
5492
  "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
5493
  "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
 
5494
  "license": "ISC"
5495
  },
5496
  "node_modules/lucide-react": {
@@ -5515,6 +5595,7 @@
5515
  "version": "1.4.1",
5516
  "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
5517
  "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
 
5518
  "license": "MIT",
5519
  "engines": {
5520
  "node": ">= 8"
@@ -5524,6 +5605,7 @@
5524
  "version": "4.0.8",
5525
  "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
5526
  "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
 
5527
  "license": "MIT",
5528
  "dependencies": {
5529
  "braces": "^3.0.3",
@@ -5550,6 +5632,7 @@
5550
  "version": "7.1.2",
5551
  "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
5552
  "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
 
5553
  "license": "ISC",
5554
  "engines": {
5555
  "node": ">=16 || 14 >=14.17"
@@ -5566,6 +5649,7 @@
5566
  "version": "2.7.0",
5567
  "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
5568
  "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
 
5569
  "license": "MIT",
5570
  "dependencies": {
5571
  "any-promise": "^1.0.0",
@@ -5577,6 +5661,7 @@
5577
  "version": "3.3.7",
5578
  "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
5579
  "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
 
5580
  "funding": [
5581
  {
5582
  "type": "github",
@@ -5608,6 +5693,26 @@
5608
  "react-dom": "^16.8 || ^17 || ^18"
5609
  }
5610
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5611
  "node_modules/node-releases": {
5612
  "version": "2.0.18",
5613
  "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
@@ -5619,6 +5724,7 @@
5619
  "version": "3.0.0",
5620
  "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
5621
  "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
 
5622
  "license": "MIT",
5623
  "engines": {
5624
  "node": ">=0.10.0"
@@ -5647,11 +5753,21 @@
5647
  "version": "3.0.0",
5648
  "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
5649
  "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
 
5650
  "license": "MIT",
5651
  "engines": {
5652
  "node": ">= 6"
5653
  }
5654
  },
 
 
 
 
 
 
 
 
 
5655
  "node_modules/optionator": {
5656
  "version": "0.9.4",
5657
  "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
@@ -5706,6 +5822,7 @@
5706
  "version": "1.0.1",
5707
  "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
5708
  "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
 
5709
  "license": "BlueOak-1.0.0"
5710
  },
5711
  "node_modules/parent-module": {
@@ -5735,6 +5852,7 @@
5735
  "version": "3.1.1",
5736
  "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
5737
  "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
 
5738
  "license": "MIT",
5739
  "engines": {
5740
  "node": ">=8"
@@ -5744,12 +5862,14 @@
5744
  "version": "1.0.7",
5745
  "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
5746
  "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
 
5747
  "license": "MIT"
5748
  },
5749
  "node_modules/path-scurry": {
5750
  "version": "1.11.1",
5751
  "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
5752
  "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
 
5753
  "license": "BlueOak-1.0.0",
5754
  "dependencies": {
5755
  "lru-cache": "^10.2.0",
@@ -5766,12 +5886,14 @@
5766
  "version": "1.1.1",
5767
  "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
5768
  "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
 
5769
  "license": "ISC"
5770
  },
5771
  "node_modules/picomatch": {
5772
  "version": "2.3.1",
5773
  "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
5774
  "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
 
5775
  "license": "MIT",
5776
  "engines": {
5777
  "node": ">=8.6"
@@ -5784,6 +5906,7 @@
5784
  "version": "2.3.0",
5785
  "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
5786
  "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
 
5787
  "license": "MIT",
5788
  "engines": {
5789
  "node": ">=0.10.0"
@@ -5793,6 +5916,7 @@
5793
  "version": "4.0.6",
5794
  "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
5795
  "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
 
5796
  "license": "MIT",
5797
  "engines": {
5798
  "node": ">= 6"
@@ -5802,6 +5926,7 @@
5802
  "version": "8.4.47",
5803
  "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
5804
  "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
 
5805
  "funding": [
5806
  {
5807
  "type": "opencollective",
@@ -5830,6 +5955,7 @@
5830
  "version": "15.1.0",
5831
  "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
5832
  "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
 
5833
  "license": "MIT",
5834
  "dependencies": {
5835
  "postcss-value-parser": "^4.0.0",
@@ -5847,6 +5973,7 @@
5847
  "version": "4.0.1",
5848
  "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
5849
  "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
 
5850
  "license": "MIT",
5851
  "dependencies": {
5852
  "camelcase-css": "^2.0.1"
@@ -5866,6 +5993,7 @@
5866
  "version": "4.0.2",
5867
  "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
5868
  "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
 
5869
  "funding": [
5870
  {
5871
  "type": "opencollective",
@@ -5901,6 +6029,7 @@
5901
  "version": "6.2.0",
5902
  "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
5903
  "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
 
5904
  "funding": [
5905
  {
5906
  "type": "opencollective",
@@ -5926,6 +6055,7 @@
5926
  "version": "6.1.2",
5927
  "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
5928
  "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
 
5929
  "license": "MIT",
5930
  "dependencies": {
5931
  "cssesc": "^3.0.0",
@@ -5939,6 +6069,7 @@
5939
  "version": "4.2.0",
5940
  "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
5941
  "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
 
5942
  "license": "MIT"
5943
  },
5944
  "node_modules/prelude-ls": {
@@ -5982,6 +6113,7 @@
5982
  "version": "1.2.3",
5983
  "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
5984
  "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
 
5985
  "funding": [
5986
  {
5987
  "type": "github",
@@ -6206,6 +6338,7 @@
6206
  "version": "1.0.0",
6207
  "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
6208
  "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
 
6209
  "license": "MIT",
6210
  "dependencies": {
6211
  "pify": "^2.3.0"
@@ -6215,6 +6348,7 @@
6215
  "version": "3.6.0",
6216
  "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
6217
  "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
 
6218
  "license": "MIT",
6219
  "dependencies": {
6220
  "picomatch": "^2.2.1"
@@ -6265,6 +6399,7 @@
6265
  "version": "1.22.8",
6266
  "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
6267
  "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
 
6268
  "license": "MIT",
6269
  "dependencies": {
6270
  "is-core-module": "^2.13.0",
@@ -6292,6 +6427,7 @@
6292
  "version": "1.0.4",
6293
  "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
6294
  "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
 
6295
  "license": "MIT",
6296
  "engines": {
6297
  "iojs": ">=1.0.0",
@@ -6338,6 +6474,7 @@
6338
  "version": "1.2.0",
6339
  "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
6340
  "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
 
6341
  "funding": [
6342
  {
6343
  "type": "github",
@@ -6383,6 +6520,7 @@
6383
  "version": "2.0.0",
6384
  "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
6385
  "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
 
6386
  "license": "MIT",
6387
  "dependencies": {
6388
  "shebang-regex": "^3.0.0"
@@ -6395,6 +6533,7 @@
6395
  "version": "3.0.0",
6396
  "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
6397
  "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
 
6398
  "license": "MIT",
6399
  "engines": {
6400
  "node": ">=8"
@@ -6404,6 +6543,7 @@
6404
  "version": "4.1.0",
6405
  "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
6406
  "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
 
6407
  "license": "ISC",
6408
  "engines": {
6409
  "node": ">=14"
@@ -6426,6 +6566,7 @@
6426
  "version": "1.2.1",
6427
  "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
6428
  "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
 
6429
  "license": "BSD-3-Clause",
6430
  "engines": {
6431
  "node": ">=0.10.0"
@@ -6435,6 +6576,7 @@
6435
  "version": "5.1.2",
6436
  "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
6437
  "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
 
6438
  "license": "MIT",
6439
  "dependencies": {
6440
  "eastasianwidth": "^0.2.0",
@@ -6453,6 +6595,7 @@
6453
  "version": "4.2.3",
6454
  "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
6455
  "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
 
6456
  "license": "MIT",
6457
  "dependencies": {
6458
  "emoji-regex": "^8.0.0",
@@ -6467,6 +6610,7 @@
6467
  "version": "5.0.1",
6468
  "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
6469
  "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
 
6470
  "license": "MIT",
6471
  "engines": {
6472
  "node": ">=8"
@@ -6476,12 +6620,14 @@
6476
  "version": "8.0.0",
6477
  "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
6478
  "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
 
6479
  "license": "MIT"
6480
  },
6481
  "node_modules/string-width-cjs/node_modules/strip-ansi": {
6482
  "version": "6.0.1",
6483
  "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
6484
  "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
 
6485
  "license": "MIT",
6486
  "dependencies": {
6487
  "ansi-regex": "^5.0.1"
@@ -6494,6 +6640,7 @@
6494
  "version": "7.1.0",
6495
  "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
6496
  "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
 
6497
  "license": "MIT",
6498
  "dependencies": {
6499
  "ansi-regex": "^6.0.1"
@@ -6510,6 +6657,7 @@
6510
  "version": "6.0.1",
6511
  "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
6512
  "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
 
6513
  "license": "MIT",
6514
  "dependencies": {
6515
  "ansi-regex": "^5.0.1"
@@ -6522,6 +6670,7 @@
6522
  "version": "5.0.1",
6523
  "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
6524
  "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
 
6525
  "license": "MIT",
6526
  "engines": {
6527
  "node": ">=8"
@@ -6544,6 +6693,7 @@
6544
  "version": "3.35.0",
6545
  "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
6546
  "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
 
6547
  "license": "MIT",
6548
  "dependencies": {
6549
  "@jridgewell/gen-mapping": "^0.3.2",
@@ -6579,6 +6729,7 @@
6579
  "version": "1.0.0",
6580
  "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
6581
  "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
 
6582
  "license": "MIT",
6583
  "engines": {
6584
  "node": ">= 0.4"
@@ -6601,6 +6752,7 @@
6601
  "version": "3.4.17",
6602
  "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz",
6603
  "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==",
 
6604
  "license": "MIT",
6605
  "dependencies": {
6606
  "@alloc/quick-lru": "^5.2.0",
@@ -6643,6 +6795,37 @@
6643
  "tailwindcss": ">=3.0.0 || insiders"
6644
  }
6645
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6646
  "node_modules/text-table": {
6647
  "version": "0.2.0",
6648
  "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
@@ -6654,6 +6837,7 @@
6654
  "version": "3.3.1",
6655
  "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
6656
  "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
 
6657
  "license": "MIT",
6658
  "dependencies": {
6659
  "any-promise": "^1.0.0"
@@ -6663,6 +6847,7 @@
6663
  "version": "1.6.0",
6664
  "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
6665
  "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
 
6666
  "license": "MIT",
6667
  "dependencies": {
6668
  "thenify": ">= 3.1.0 < 4"
@@ -6681,6 +6866,7 @@
6681
  "version": "5.0.1",
6682
  "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
6683
  "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
 
6684
  "license": "MIT",
6685
  "dependencies": {
6686
  "is-number": "^7.0.0"
@@ -6689,6 +6875,12 @@
6689
  "node": ">=8.0"
6690
  }
6691
  },
 
 
 
 
 
 
6692
  "node_modules/ts-api-utils": {
6693
  "version": "1.3.0",
6694
  "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
@@ -6706,6 +6898,7 @@
6706
  "version": "0.1.13",
6707
  "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
6708
  "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
 
6709
  "license": "Apache-2.0"
6710
  },
6711
  "node_modules/tslib": {
@@ -6860,6 +7053,7 @@
6860
  "version": "1.0.2",
6861
  "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
6862
  "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
 
6863
  "license": "MIT"
6864
  },
6865
  "node_modules/vaul": {
@@ -6957,10 +7151,33 @@
6957
  }
6958
  }
6959
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6960
  "node_modules/which": {
6961
  "version": "2.0.2",
6962
  "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
6963
  "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
 
6964
  "license": "ISC",
6965
  "dependencies": {
6966
  "isexe": "^2.0.0"
@@ -6986,6 +7203,7 @@
6986
  "version": "8.1.0",
6987
  "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
6988
  "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
 
6989
  "license": "MIT",
6990
  "dependencies": {
6991
  "ansi-styles": "^6.1.0",
@@ -7004,6 +7222,7 @@
7004
  "version": "7.0.0",
7005
  "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
7006
  "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
 
7007
  "license": "MIT",
7008
  "dependencies": {
7009
  "ansi-styles": "^4.0.0",
@@ -7021,6 +7240,7 @@
7021
  "version": "5.0.1",
7022
  "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
7023
  "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
 
7024
  "license": "MIT",
7025
  "engines": {
7026
  "node": ">=8"
@@ -7030,12 +7250,14 @@
7030
  "version": "8.0.0",
7031
  "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
7032
  "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
 
7033
  "license": "MIT"
7034
  },
7035
  "node_modules/wrap-ansi-cjs/node_modules/string-width": {
7036
  "version": "4.2.3",
7037
  "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
7038
  "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
 
7039
  "license": "MIT",
7040
  "dependencies": {
7041
  "emoji-regex": "^8.0.0",
@@ -7050,6 +7272,7 @@
7050
  "version": "6.0.1",
7051
  "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
7052
  "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
 
7053
  "license": "MIT",
7054
  "dependencies": {
7055
  "ansi-regex": "^5.0.1"
@@ -7062,6 +7285,7 @@
7062
  "version": "6.2.1",
7063
  "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
7064
  "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
 
7065
  "license": "MIT",
7066
  "engines": {
7067
  "node": ">=12"
@@ -7074,6 +7298,7 @@
7074
  "version": "2.6.0",
7075
  "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz",
7076
  "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==",
 
7077
  "license": "ISC",
7078
  "bin": {
7079
  "yaml": "bin.mjs"
@@ -7095,6 +7320,15 @@
7095
  "url": "https://github.com/sponsors/sindresorhus"
7096
  }
7097
  },
 
 
 
 
 
 
 
 
 
7098
  "node_modules/zod": {
7099
  "version": "3.23.8",
7100
  "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz",
 
55
  "sonner": "^1.5.0",
56
  "tailwind-merge": "^2.5.2",
57
  "tailwindcss-animate": "^1.0.7",
58
+ "tesseract.js": "^4.1.1",
59
  "vaul": "^0.9.3",
60
  "zod": "^3.23.8"
61
  },
 
83
  "version": "5.2.0",
84
  "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
85
  "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
86
+ "dev": true,
87
  "license": "MIT",
88
  "engines": {
89
  "node": ">=10"
 
815
  "version": "8.0.2",
816
  "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
817
  "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
818
+ "dev": true,
819
  "license": "ISC",
820
  "dependencies": {
821
  "string-width": "^5.1.2",
 
833
  "version": "0.3.5",
834
  "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
835
  "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
836
+ "dev": true,
837
  "license": "MIT",
838
  "dependencies": {
839
  "@jridgewell/set-array": "^1.2.1",
 
848
  "version": "3.1.2",
849
  "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
850
  "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
851
+ "dev": true,
852
  "license": "MIT",
853
  "engines": {
854
  "node": ">=6.0.0"
 
858
  "version": "1.2.1",
859
  "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
860
  "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
861
+ "dev": true,
862
  "license": "MIT",
863
  "engines": {
864
  "node": ">=6.0.0"
 
868
  "version": "1.5.0",
869
  "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
870
  "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
871
+ "dev": true,
872
  "license": "MIT"
873
  },
874
  "node_modules/@jridgewell/trace-mapping": {
875
  "version": "0.3.25",
876
  "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
877
  "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
878
+ "dev": true,
879
  "license": "MIT",
880
  "dependencies": {
881
  "@jridgewell/resolve-uri": "^3.1.0",
 
886
  "version": "2.1.5",
887
  "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
888
  "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
889
+ "dev": true,
890
  "license": "MIT",
891
  "dependencies": {
892
  "@nodelib/fs.stat": "2.0.5",
 
900
  "version": "2.0.5",
901
  "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
902
  "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
903
+ "dev": true,
904
  "license": "MIT",
905
  "engines": {
906
  "node": ">= 8"
 
910
  "version": "1.2.8",
911
  "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
912
  "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
913
+ "dev": true,
914
  "license": "MIT",
915
  "dependencies": {
916
  "@nodelib/fs.scandir": "2.1.5",
 
924
  "version": "0.11.0",
925
  "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
926
  "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
927
+ "dev": true,
928
  "license": "MIT",
929
  "optional": true,
930
  "engines": {
 
2925
  "version": "15.7.13",
2926
  "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz",
2927
  "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==",
2928
+ "dev": true,
2929
  "license": "MIT"
2930
  },
2931
  "node_modules/@types/react": {
2932
  "version": "18.3.12",
2933
  "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz",
2934
  "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==",
2935
+ "dev": true,
2936
  "license": "MIT",
2937
  "dependencies": {
2938
  "@types/prop-types": "*",
 
2943
  "version": "18.3.1",
2944
  "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz",
2945
  "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==",
2946
+ "dev": true,
2947
  "license": "MIT",
2948
  "dependencies": {
2949
  "@types/react": "*"
 
3235
  "version": "6.1.0",
3236
  "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
3237
  "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
3238
+ "dev": true,
3239
  "license": "MIT",
3240
  "engines": {
3241
  "node": ">=12"
 
3248
  "version": "4.3.0",
3249
  "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
3250
  "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
3251
+ "dev": true,
3252
  "license": "MIT",
3253
  "dependencies": {
3254
  "color-convert": "^2.0.1"
 
3264
  "version": "1.3.0",
3265
  "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
3266
  "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
3267
+ "dev": true,
3268
  "license": "MIT"
3269
  },
3270
  "node_modules/anymatch": {
3271
  "version": "3.1.3",
3272
  "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
3273
  "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
3274
+ "dev": true,
3275
  "license": "ISC",
3276
  "dependencies": {
3277
  "normalize-path": "^3.0.0",
 
3285
  "version": "5.0.2",
3286
  "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
3287
  "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
3288
+ "dev": true,
3289
  "license": "MIT"
3290
  },
3291
  "node_modules/argparse": {
 
3349
  "version": "1.0.2",
3350
  "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
3351
  "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
3352
+ "dev": true,
3353
  "license": "MIT"
3354
  },
3355
  "node_modules/binary-extensions": {
3356
  "version": "2.3.0",
3357
  "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
3358
  "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
3359
+ "dev": true,
3360
  "license": "MIT",
3361
  "engines": {
3362
  "node": ">=8"
 
3365
  "url": "https://github.com/sponsors/sindresorhus"
3366
  }
3367
  },
3368
+ "node_modules/bmp-js": {
3369
+ "version": "0.1.0",
3370
+ "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz",
3371
+ "integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==",
3372
+ "license": "MIT"
3373
+ },
3374
  "node_modules/brace-expansion": {
3375
  "version": "1.1.11",
3376
  "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
 
3386
  "version": "3.0.3",
3387
  "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
3388
  "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
3389
+ "dev": true,
3390
  "license": "MIT",
3391
  "dependencies": {
3392
  "fill-range": "^7.1.1"
 
3442
  "version": "2.0.1",
3443
  "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
3444
  "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
3445
+ "dev": true,
3446
  "license": "MIT",
3447
  "engines": {
3448
  "node": ">= 6"
 
3490
  "version": "3.6.0",
3491
  "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
3492
  "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
3493
+ "dev": true,
3494
  "license": "MIT",
3495
  "dependencies": {
3496
  "anymatch": "~3.1.2",
 
3515
  "version": "5.1.2",
3516
  "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
3517
  "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
3518
+ "dev": true,
3519
  "license": "ISC",
3520
  "dependencies": {
3521
  "is-glob": "^4.0.1"
 
3926
  "version": "2.0.1",
3927
  "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
3928
  "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
3929
+ "dev": true,
3930
  "license": "MIT",
3931
  "dependencies": {
3932
  "color-name": "~1.1.4"
 
3939
  "version": "1.1.4",
3940
  "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
3941
  "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
3942
+ "dev": true,
3943
  "license": "MIT"
3944
  },
3945
  "node_modules/commander": {
3946
  "version": "4.1.1",
3947
  "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
3948
  "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
3949
+ "dev": true,
3950
  "license": "MIT",
3951
  "engines": {
3952
  "node": ">= 6"
 
3963
  "version": "7.0.6",
3964
  "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
3965
  "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
3966
+ "dev": true,
3967
  "dependencies": {
3968
  "path-key": "^3.1.0",
3969
  "shebang-command": "^2.0.0",
 
3977
  "version": "3.0.0",
3978
  "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
3979
  "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
3980
+ "dev": true,
3981
  "license": "MIT",
3982
  "bin": {
3983
  "cssesc": "bin/cssesc"
 
4164
  "version": "1.2.2",
4165
  "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
4166
  "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
4167
+ "dev": true,
4168
  "license": "Apache-2.0"
4169
  },
4170
  "node_modules/dlv": {
4171
  "version": "1.1.3",
4172
  "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
4173
  "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
4174
+ "dev": true,
4175
  "license": "MIT"
4176
  },
4177
  "node_modules/dom-helpers": {
 
4188
  "version": "0.2.0",
4189
  "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
4190
  "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
4191
+ "dev": true,
4192
  "license": "MIT"
4193
  },
4194
  "node_modules/electron-to-chromium": {
 
4230
  "version": "9.2.2",
4231
  "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
4232
  "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
4233
+ "dev": true,
4234
  "license": "MIT"
4235
  },
4236
  "node_modules/esbuild": {
 
4509
  "version": "3.3.2",
4510
  "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
4511
  "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
4512
+ "dev": true,
4513
  "license": "MIT",
4514
  "dependencies": {
4515
  "@nodelib/fs.stat": "^2.0.2",
 
4526
  "version": "5.1.2",
4527
  "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
4528
  "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
4529
+ "dev": true,
4530
  "license": "ISC",
4531
  "dependencies": {
4532
  "is-glob": "^4.0.1"
 
4553
  "version": "1.17.1",
4554
  "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
4555
  "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
4556
+ "dev": true,
4557
  "license": "ISC",
4558
  "dependencies": {
4559
  "reusify": "^1.0.4"
 
4576
  "version": "7.1.1",
4577
  "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
4578
  "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
4579
+ "dev": true,
4580
  "license": "MIT",
4581
  "dependencies": {
4582
  "to-regex-range": "^5.0.1"
 
4627
  "version": "3.3.0",
4628
  "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
4629
  "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
4630
+ "dev": true,
4631
  "license": "ISC",
4632
  "dependencies": {
4633
  "cross-spawn": "^7.0.0",
 
4658
  "version": "2.3.3",
4659
  "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
4660
  "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
4661
+ "dev": true,
4662
  "hasInstallScript": true,
4663
  "license": "MIT",
4664
  "optional": true,
 
4673
  "version": "1.1.2",
4674
  "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
4675
  "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
4676
+ "dev": true,
4677
  "license": "MIT",
4678
  "funding": {
4679
  "url": "https://github.com/sponsors/ljharb"
 
4692
  "version": "10.4.5",
4693
  "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
4694
  "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
4695
+ "dev": true,
4696
  "license": "ISC",
4697
  "dependencies": {
4698
  "foreground-child": "^3.1.0",
 
4713
  "version": "6.0.2",
4714
  "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
4715
  "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
4716
+ "dev": true,
4717
  "license": "ISC",
4718
  "dependencies": {
4719
  "is-glob": "^4.0.3"
 
4726
  "version": "2.0.1",
4727
  "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
4728
  "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
4729
+ "dev": true,
4730
  "license": "MIT",
4731
  "dependencies": {
4732
  "balanced-match": "^1.0.0"
 
4736
  "version": "9.0.5",
4737
  "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
4738
  "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
4739
+ "dev": true,
4740
  "license": "ISC",
4741
  "dependencies": {
4742
  "brace-expansion": "^2.0.1"
 
4782
  "version": "2.0.2",
4783
  "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
4784
  "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
4785
+ "dev": true,
4786
  "license": "MIT",
4787
  "dependencies": {
4788
  "function-bind": "^1.1.2"
 
4791
  "node": ">= 0.4"
4792
  }
4793
  },
4794
+ "node_modules/idb-keyval": {
4795
+ "version": "6.2.2",
4796
+ "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.2.tgz",
4797
+ "integrity": "sha512-yjD9nARJ/jb1g+CvD0tlhUHOrJ9Sy0P8T9MF3YaLlHnSRpwPfpTX0XIvpmw3gAJUmEu3FiICLBDPXVwyEvrleg==",
4798
+ "license": "Apache-2.0"
4799
+ },
4800
  "node_modules/ignore": {
4801
  "version": "5.3.2",
4802
  "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
 
4866
  "version": "2.1.0",
4867
  "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
4868
  "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
4869
+ "dev": true,
4870
  "license": "MIT",
4871
  "dependencies": {
4872
  "binary-extensions": "^2.0.0"
 
4879
  "version": "2.15.1",
4880
  "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
4881
  "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
4882
+ "dev": true,
4883
  "license": "MIT",
4884
  "dependencies": {
4885
  "hasown": "^2.0.2"
 
4891
  "url": "https://github.com/sponsors/ljharb"
4892
  }
4893
  },
4894
+ "node_modules/is-electron": {
4895
+ "version": "2.2.2",
4896
+ "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.2.tgz",
4897
+ "integrity": "sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==",
4898
+ "license": "MIT"
4899
+ },
4900
  "node_modules/is-extglob": {
4901
  "version": "2.1.1",
4902
  "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
4903
  "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
4904
+ "dev": true,
4905
  "license": "MIT",
4906
  "engines": {
4907
  "node": ">=0.10.0"
 
4911
  "version": "3.0.0",
4912
  "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
4913
  "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
4914
+ "dev": true,
4915
  "license": "MIT",
4916
  "engines": {
4917
  "node": ">=8"
 
4921
  "version": "4.0.3",
4922
  "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
4923
  "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
4924
+ "dev": true,
4925
  "license": "MIT",
4926
  "dependencies": {
4927
  "is-extglob": "^2.1.1"
 
4934
  "version": "7.0.0",
4935
  "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
4936
  "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
4937
+ "dev": true,
4938
  "license": "MIT",
4939
  "engines": {
4940
  "node": ">=0.12.0"
4941
  }
4942
  },
4943
+ "node_modules/is-url": {
4944
+ "version": "1.2.4",
4945
+ "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz",
4946
+ "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==",
4947
+ "license": "MIT"
4948
+ },
4949
  "node_modules/isexe": {
4950
  "version": "2.0.0",
4951
  "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
4952
  "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
4953
+ "dev": true,
4954
  "license": "ISC"
4955
  },
4956
  "node_modules/jackspeak": {
4957
  "version": "3.4.3",
4958
  "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
4959
  "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
4960
+ "dev": true,
4961
  "license": "BlueOak-1.0.0",
4962
  "dependencies": {
4963
  "@isaacs/cliui": "^8.0.2"
 
4973
  "version": "1.21.6",
4974
  "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz",
4975
  "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==",
4976
+ "dev": true,
4977
  "license": "MIT",
4978
  "bin": {
4979
  "jiti": "bin/jiti.js"
 
5047
  "version": "3.1.3",
5048
  "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
5049
  "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
5050
+ "dev": true,
5051
  "license": "MIT",
5052
  "engines": {
5053
  "node": ">=14"
 
5060
  "version": "1.2.4",
5061
  "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
5062
  "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
5063
+ "dev": true,
5064
  "license": "MIT"
5065
  },
5066
  "node_modules/locate-path": {
 
5570
  "version": "10.4.3",
5571
  "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
5572
  "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
5573
+ "dev": true,
5574
  "license": "ISC"
5575
  },
5576
  "node_modules/lucide-react": {
 
5595
  "version": "1.4.1",
5596
  "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
5597
  "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
5598
+ "dev": true,
5599
  "license": "MIT",
5600
  "engines": {
5601
  "node": ">= 8"
 
5605
  "version": "4.0.8",
5606
  "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
5607
  "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
5608
+ "dev": true,
5609
  "license": "MIT",
5610
  "dependencies": {
5611
  "braces": "^3.0.3",
 
5632
  "version": "7.1.2",
5633
  "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
5634
  "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
5635
+ "dev": true,
5636
  "license": "ISC",
5637
  "engines": {
5638
  "node": ">=16 || 14 >=14.17"
 
5649
  "version": "2.7.0",
5650
  "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
5651
  "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
5652
+ "dev": true,
5653
  "license": "MIT",
5654
  "dependencies": {
5655
  "any-promise": "^1.0.0",
 
5661
  "version": "3.3.7",
5662
  "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
5663
  "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
5664
+ "dev": true,
5665
  "funding": [
5666
  {
5667
  "type": "github",
 
5693
  "react-dom": "^16.8 || ^17 || ^18"
5694
  }
5695
  },
5696
+ "node_modules/node-fetch": {
5697
+ "version": "2.7.0",
5698
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
5699
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
5700
+ "license": "MIT",
5701
+ "dependencies": {
5702
+ "whatwg-url": "^5.0.0"
5703
+ },
5704
+ "engines": {
5705
+ "node": "4.x || >=6.0.0"
5706
+ },
5707
+ "peerDependencies": {
5708
+ "encoding": "^0.1.0"
5709
+ },
5710
+ "peerDependenciesMeta": {
5711
+ "encoding": {
5712
+ "optional": true
5713
+ }
5714
+ }
5715
+ },
5716
  "node_modules/node-releases": {
5717
  "version": "2.0.18",
5718
  "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
 
5724
  "version": "3.0.0",
5725
  "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
5726
  "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
5727
+ "dev": true,
5728
  "license": "MIT",
5729
  "engines": {
5730
  "node": ">=0.10.0"
 
5753
  "version": "3.0.0",
5754
  "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
5755
  "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
5756
+ "dev": true,
5757
  "license": "MIT",
5758
  "engines": {
5759
  "node": ">= 6"
5760
  }
5761
  },
5762
+ "node_modules/opencollective-postinstall": {
5763
+ "version": "2.0.3",
5764
+ "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz",
5765
+ "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==",
5766
+ "license": "MIT",
5767
+ "bin": {
5768
+ "opencollective-postinstall": "index.js"
5769
+ }
5770
+ },
5771
  "node_modules/optionator": {
5772
  "version": "0.9.4",
5773
  "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
 
5822
  "version": "1.0.1",
5823
  "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
5824
  "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
5825
+ "dev": true,
5826
  "license": "BlueOak-1.0.0"
5827
  },
5828
  "node_modules/parent-module": {
 
5852
  "version": "3.1.1",
5853
  "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
5854
  "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
5855
+ "dev": true,
5856
  "license": "MIT",
5857
  "engines": {
5858
  "node": ">=8"
 
5862
  "version": "1.0.7",
5863
  "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
5864
  "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
5865
+ "dev": true,
5866
  "license": "MIT"
5867
  },
5868
  "node_modules/path-scurry": {
5869
  "version": "1.11.1",
5870
  "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
5871
  "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
5872
+ "dev": true,
5873
  "license": "BlueOak-1.0.0",
5874
  "dependencies": {
5875
  "lru-cache": "^10.2.0",
 
5886
  "version": "1.1.1",
5887
  "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
5888
  "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
5889
+ "dev": true,
5890
  "license": "ISC"
5891
  },
5892
  "node_modules/picomatch": {
5893
  "version": "2.3.1",
5894
  "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
5895
  "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
5896
+ "dev": true,
5897
  "license": "MIT",
5898
  "engines": {
5899
  "node": ">=8.6"
 
5906
  "version": "2.3.0",
5907
  "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
5908
  "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
5909
+ "dev": true,
5910
  "license": "MIT",
5911
  "engines": {
5912
  "node": ">=0.10.0"
 
5916
  "version": "4.0.6",
5917
  "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
5918
  "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
5919
+ "dev": true,
5920
  "license": "MIT",
5921
  "engines": {
5922
  "node": ">= 6"
 
5926
  "version": "8.4.47",
5927
  "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
5928
  "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
5929
+ "dev": true,
5930
  "funding": [
5931
  {
5932
  "type": "opencollective",
 
5955
  "version": "15.1.0",
5956
  "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
5957
  "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
5958
+ "dev": true,
5959
  "license": "MIT",
5960
  "dependencies": {
5961
  "postcss-value-parser": "^4.0.0",
 
5973
  "version": "4.0.1",
5974
  "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
5975
  "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
5976
+ "dev": true,
5977
  "license": "MIT",
5978
  "dependencies": {
5979
  "camelcase-css": "^2.0.1"
 
5993
  "version": "4.0.2",
5994
  "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
5995
  "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
5996
+ "dev": true,
5997
  "funding": [
5998
  {
5999
  "type": "opencollective",
 
6029
  "version": "6.2.0",
6030
  "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
6031
  "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
6032
+ "dev": true,
6033
  "funding": [
6034
  {
6035
  "type": "opencollective",
 
6055
  "version": "6.1.2",
6056
  "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
6057
  "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
6058
+ "dev": true,
6059
  "license": "MIT",
6060
  "dependencies": {
6061
  "cssesc": "^3.0.0",
 
6069
  "version": "4.2.0",
6070
  "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
6071
  "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
6072
+ "dev": true,
6073
  "license": "MIT"
6074
  },
6075
  "node_modules/prelude-ls": {
 
6113
  "version": "1.2.3",
6114
  "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
6115
  "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
6116
+ "dev": true,
6117
  "funding": [
6118
  {
6119
  "type": "github",
 
6338
  "version": "1.0.0",
6339
  "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
6340
  "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
6341
+ "dev": true,
6342
  "license": "MIT",
6343
  "dependencies": {
6344
  "pify": "^2.3.0"
 
6348
  "version": "3.6.0",
6349
  "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
6350
  "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
6351
+ "dev": true,
6352
  "license": "MIT",
6353
  "dependencies": {
6354
  "picomatch": "^2.2.1"
 
6399
  "version": "1.22.8",
6400
  "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
6401
  "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
6402
+ "dev": true,
6403
  "license": "MIT",
6404
  "dependencies": {
6405
  "is-core-module": "^2.13.0",
 
6427
  "version": "1.0.4",
6428
  "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
6429
  "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
6430
+ "dev": true,
6431
  "license": "MIT",
6432
  "engines": {
6433
  "iojs": ">=1.0.0",
 
6474
  "version": "1.2.0",
6475
  "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
6476
  "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
6477
+ "dev": true,
6478
  "funding": [
6479
  {
6480
  "type": "github",
 
6520
  "version": "2.0.0",
6521
  "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
6522
  "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
6523
+ "dev": true,
6524
  "license": "MIT",
6525
  "dependencies": {
6526
  "shebang-regex": "^3.0.0"
 
6533
  "version": "3.0.0",
6534
  "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
6535
  "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
6536
+ "dev": true,
6537
  "license": "MIT",
6538
  "engines": {
6539
  "node": ">=8"
 
6543
  "version": "4.1.0",
6544
  "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
6545
  "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
6546
+ "dev": true,
6547
  "license": "ISC",
6548
  "engines": {
6549
  "node": ">=14"
 
6566
  "version": "1.2.1",
6567
  "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
6568
  "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
6569
+ "dev": true,
6570
  "license": "BSD-3-Clause",
6571
  "engines": {
6572
  "node": ">=0.10.0"
 
6576
  "version": "5.1.2",
6577
  "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
6578
  "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
6579
+ "dev": true,
6580
  "license": "MIT",
6581
  "dependencies": {
6582
  "eastasianwidth": "^0.2.0",
 
6595
  "version": "4.2.3",
6596
  "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
6597
  "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
6598
+ "dev": true,
6599
  "license": "MIT",
6600
  "dependencies": {
6601
  "emoji-regex": "^8.0.0",
 
6610
  "version": "5.0.1",
6611
  "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
6612
  "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
6613
+ "dev": true,
6614
  "license": "MIT",
6615
  "engines": {
6616
  "node": ">=8"
 
6620
  "version": "8.0.0",
6621
  "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
6622
  "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
6623
+ "dev": true,
6624
  "license": "MIT"
6625
  },
6626
  "node_modules/string-width-cjs/node_modules/strip-ansi": {
6627
  "version": "6.0.1",
6628
  "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
6629
  "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
6630
+ "dev": true,
6631
  "license": "MIT",
6632
  "dependencies": {
6633
  "ansi-regex": "^5.0.1"
 
6640
  "version": "7.1.0",
6641
  "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
6642
  "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
6643
+ "dev": true,
6644
  "license": "MIT",
6645
  "dependencies": {
6646
  "ansi-regex": "^6.0.1"
 
6657
  "version": "6.0.1",
6658
  "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
6659
  "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
6660
+ "dev": true,
6661
  "license": "MIT",
6662
  "dependencies": {
6663
  "ansi-regex": "^5.0.1"
 
6670
  "version": "5.0.1",
6671
  "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
6672
  "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
6673
+ "dev": true,
6674
  "license": "MIT",
6675
  "engines": {
6676
  "node": ">=8"
 
6693
  "version": "3.35.0",
6694
  "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
6695
  "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
6696
+ "dev": true,
6697
  "license": "MIT",
6698
  "dependencies": {
6699
  "@jridgewell/gen-mapping": "^0.3.2",
 
6729
  "version": "1.0.0",
6730
  "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
6731
  "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
6732
+ "dev": true,
6733
  "license": "MIT",
6734
  "engines": {
6735
  "node": ">= 0.4"
 
6752
  "version": "3.4.17",
6753
  "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz",
6754
  "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==",
6755
+ "dev": true,
6756
  "license": "MIT",
6757
  "dependencies": {
6758
  "@alloc/quick-lru": "^5.2.0",
 
6795
  "tailwindcss": ">=3.0.0 || insiders"
6796
  }
6797
  },
6798
+ "node_modules/tesseract.js": {
6799
+ "version": "4.1.1",
6800
+ "resolved": "https://registry.npmjs.org/tesseract.js/-/tesseract.js-4.1.1.tgz",
6801
+ "integrity": "sha512-2a9ej6FmtNtRKdFpjvjUpz0zGJRQgPlj/oyJxRBzMN7+2dXKeZwrIDF1b4B7xslrhlE5xpL0TYLpwhpMwsb/rw==",
6802
+ "hasInstallScript": true,
6803
+ "license": "Apache-2.0",
6804
+ "dependencies": {
6805
+ "bmp-js": "^0.1.0",
6806
+ "idb-keyval": "^6.2.0",
6807
+ "is-electron": "^2.2.2",
6808
+ "is-url": "^1.2.4",
6809
+ "node-fetch": "^2.6.9",
6810
+ "opencollective-postinstall": "^2.0.3",
6811
+ "regenerator-runtime": "^0.13.3",
6812
+ "tesseract.js-core": "^4.0.4",
6813
+ "wasm-feature-detect": "^1.2.11",
6814
+ "zlibjs": "^0.3.1"
6815
+ }
6816
+ },
6817
+ "node_modules/tesseract.js-core": {
6818
+ "version": "4.0.4",
6819
+ "resolved": "https://registry.npmjs.org/tesseract.js-core/-/tesseract.js-core-4.0.4.tgz",
6820
+ "integrity": "sha512-MJ+vtktjAaT0681uPl6TDUPhbRbpD/S9emko5rtorgHRZpQo7R3BG7h+3pVHgn1KjfNf1bvnx4B7KxEK8YKqpg==",
6821
+ "license": "Apache License 2.0"
6822
+ },
6823
+ "node_modules/tesseract.js/node_modules/regenerator-runtime": {
6824
+ "version": "0.13.11",
6825
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
6826
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
6827
+ "license": "MIT"
6828
+ },
6829
  "node_modules/text-table": {
6830
  "version": "0.2.0",
6831
  "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
 
6837
  "version": "3.3.1",
6838
  "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
6839
  "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
6840
+ "dev": true,
6841
  "license": "MIT",
6842
  "dependencies": {
6843
  "any-promise": "^1.0.0"
 
6847
  "version": "1.6.0",
6848
  "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
6849
  "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
6850
+ "dev": true,
6851
  "license": "MIT",
6852
  "dependencies": {
6853
  "thenify": ">= 3.1.0 < 4"
 
6866
  "version": "5.0.1",
6867
  "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
6868
  "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
6869
+ "dev": true,
6870
  "license": "MIT",
6871
  "dependencies": {
6872
  "is-number": "^7.0.0"
 
6875
  "node": ">=8.0"
6876
  }
6877
  },
6878
+ "node_modules/tr46": {
6879
+ "version": "0.0.3",
6880
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
6881
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
6882
+ "license": "MIT"
6883
+ },
6884
  "node_modules/ts-api-utils": {
6885
  "version": "1.3.0",
6886
  "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
 
6898
  "version": "0.1.13",
6899
  "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
6900
  "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
6901
+ "dev": true,
6902
  "license": "Apache-2.0"
6903
  },
6904
  "node_modules/tslib": {
 
7053
  "version": "1.0.2",
7054
  "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
7055
  "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
7056
+ "dev": true,
7057
  "license": "MIT"
7058
  },
7059
  "node_modules/vaul": {
 
7151
  }
7152
  }
7153
  },
7154
+ "node_modules/wasm-feature-detect": {
7155
+ "version": "1.8.0",
7156
+ "resolved": "https://registry.npmjs.org/wasm-feature-detect/-/wasm-feature-detect-1.8.0.tgz",
7157
+ "integrity": "sha512-zksaLKM2fVlnB5jQQDqKXXwYHLQUVH9es+5TOOHwGOVJOCeRBCiPjwSg+3tN2AdTCzjgli4jijCH290kXb/zWQ==",
7158
+ "license": "Apache-2.0"
7159
+ },
7160
+ "node_modules/webidl-conversions": {
7161
+ "version": "3.0.1",
7162
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
7163
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
7164
+ "license": "BSD-2-Clause"
7165
+ },
7166
+ "node_modules/whatwg-url": {
7167
+ "version": "5.0.0",
7168
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
7169
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
7170
+ "license": "MIT",
7171
+ "dependencies": {
7172
+ "tr46": "~0.0.3",
7173
+ "webidl-conversions": "^3.0.0"
7174
+ }
7175
+ },
7176
  "node_modules/which": {
7177
  "version": "2.0.2",
7178
  "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
7179
  "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
7180
+ "dev": true,
7181
  "license": "ISC",
7182
  "dependencies": {
7183
  "isexe": "^2.0.0"
 
7203
  "version": "8.1.0",
7204
  "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
7205
  "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
7206
+ "dev": true,
7207
  "license": "MIT",
7208
  "dependencies": {
7209
  "ansi-styles": "^6.1.0",
 
7222
  "version": "7.0.0",
7223
  "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
7224
  "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
7225
+ "dev": true,
7226
  "license": "MIT",
7227
  "dependencies": {
7228
  "ansi-styles": "^4.0.0",
 
7240
  "version": "5.0.1",
7241
  "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
7242
  "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
7243
+ "dev": true,
7244
  "license": "MIT",
7245
  "engines": {
7246
  "node": ">=8"
 
7250
  "version": "8.0.0",
7251
  "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
7252
  "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
7253
+ "dev": true,
7254
  "license": "MIT"
7255
  },
7256
  "node_modules/wrap-ansi-cjs/node_modules/string-width": {
7257
  "version": "4.2.3",
7258
  "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
7259
  "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
7260
+ "dev": true,
7261
  "license": "MIT",
7262
  "dependencies": {
7263
  "emoji-regex": "^8.0.0",
 
7272
  "version": "6.0.1",
7273
  "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
7274
  "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
7275
+ "dev": true,
7276
  "license": "MIT",
7277
  "dependencies": {
7278
  "ansi-regex": "^5.0.1"
 
7285
  "version": "6.2.1",
7286
  "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
7287
  "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
7288
+ "dev": true,
7289
  "license": "MIT",
7290
  "engines": {
7291
  "node": ">=12"
 
7298
  "version": "2.6.0",
7299
  "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz",
7300
  "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==",
7301
+ "dev": true,
7302
  "license": "ISC",
7303
  "bin": {
7304
  "yaml": "bin.mjs"
 
7320
  "url": "https://github.com/sponsors/sindresorhus"
7321
  }
7322
  },
7323
+ "node_modules/zlibjs": {
7324
+ "version": "0.3.1",
7325
+ "resolved": "https://registry.npmjs.org/zlibjs/-/zlibjs-0.3.1.tgz",
7326
+ "integrity": "sha512-+J9RrgTKOmlxFSDHo0pI1xM6BLVUv+o0ZT9ANtCxGkjIVCCUdx9alUF8Gm+dGLKbkkkidWIHFDZHDMpfITt4+w==",
7327
+ "license": "MIT",
7328
+ "engines": {
7329
+ "node": "*"
7330
+ }
7331
+ },
7332
  "node_modules/zod": {
7333
  "version": "3.23.8",
7334
  "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz",
package.json CHANGED
@@ -58,6 +58,7 @@
58
  "sonner": "^1.5.0",
59
  "tailwind-merge": "^2.5.2",
60
  "tailwindcss-animate": "^1.0.7",
 
61
  "vaul": "^0.9.3",
62
  "zod": "^3.23.8"
63
  },
 
58
  "sonner": "^1.5.0",
59
  "tailwind-merge": "^2.5.2",
60
  "tailwindcss-animate": "^1.0.7",
61
+ "tesseract.js": "^4.1.1",
62
  "vaul": "^0.9.3",
63
  "zod": "^3.23.8"
64
  },
src/components/EditorPanel.tsx CHANGED
@@ -2,8 +2,11 @@
2
  import React, { useState, useRef, useEffect } from 'react';
3
  import { Button } from "@/components/ui/button";
4
  import { Slider } from "@/components/ui/slider";
5
- import { Play, Pause, Save, Upload, FileText, Book, Volume2 } from "lucide-react";
6
  import { useToast } from "@/hooks/use-toast";
 
 
 
7
 
8
  interface EditorPanelProps {
9
  dyslexicMode: boolean;
@@ -15,9 +18,13 @@ const EditorPanel = ({ dyslexicMode }: EditorPanelProps) => {
15
  const [currentWordIndex, setCurrentWordIndex] = useState<number>(-1);
16
  const [playbackRate, setPlaybackRate] = useState<number>(1);
17
  const [volume, setVolume] = useState<number>(1);
 
 
 
18
  const wordsRef = useRef<string[]>([]);
19
  const timeoutRef = useRef<NodeJS.Timeout | null>(null);
20
  const speechSynthRef = useRef<SpeechSynthesisUtterance | null>(null);
 
21
  const { toast } = useToast();
22
 
23
  const handleTextChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {
@@ -33,6 +40,31 @@ const EditorPanel = ({ dyslexicMode }: EditorPanelProps) => {
33
  }
34
  };
35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  const startPlayback = () => {
37
  // Check if browser supports speech synthesis
38
  if (!('speechSynthesis' in window)) {
@@ -55,6 +87,11 @@ const EditorPanel = ({ dyslexicMode }: EditorPanelProps) => {
55
  utterance.rate = playbackRate;
56
  utterance.volume = volume;
57
 
 
 
 
 
 
58
  // Store the utterance reference
59
  speechSynthRef.current = utterance;
60
 
@@ -103,6 +140,88 @@ const EditorPanel = ({ dyslexicMode }: EditorPanelProps) => {
103
  }
104
  };
105
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
106
  // Clean up on component unmount
107
  useEffect(() => {
108
  return () => {
@@ -126,7 +245,7 @@ const EditorPanel = ({ dyslexicMode }: EditorPanelProps) => {
126
  startPlayback();
127
  }, 100);
128
  }
129
- }, [playbackRate, volume]);
130
 
131
  // Initialize words on component mount
132
  useEffect(() => {
@@ -148,15 +267,6 @@ const EditorPanel = ({ dyslexicMode }: EditorPanelProps) => {
148
  ));
149
  };
150
 
151
- // Function to export audio (this is just a placeholder since we can't actually
152
- // download audio directly from the Web Speech API)
153
- const handleExportAudio = () => {
154
- toast({
155
- title: "Export Feature",
156
- description: "This would export your script as audio. The Web Speech API doesn't support direct export, but this is where you'd integrate a recording solution.",
157
- });
158
- };
159
-
160
  return (
161
  <div className="flex flex-col h-full w-full">
162
  <div className="flex-1 relative">
@@ -187,20 +297,64 @@ const EditorPanel = ({ dyslexicMode }: EditorPanelProps) => {
187
  >
188
  {isPlaying ? <Pause className="h-4 w-4" /> : <Play className="h-4 w-4" />}
189
  </Button>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
190
  <Button
191
- variant="outline"
192
- size="icon"
193
  className="border-scriptRed/50 text-white"
194
- onClick={handleExportAudio}
 
195
  >
196
- <Save className="h-4 w-4" />
197
  </Button>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
198
  <Button
199
- variant="outline"
200
- size="icon"
201
  className="border-scriptRed/50 text-white"
 
202
  >
203
- <Upload className="h-4 w-4" />
204
  </Button>
205
  </div>
206
 
 
2
  import React, { useState, useRef, useEffect } from 'react';
3
  import { Button } from "@/components/ui/button";
4
  import { Slider } from "@/components/ui/slider";
5
+ import { Play, Pause, Save, Upload, FileText, Book, Volume2, Image, FileAudio, Download } from "lucide-react";
6
  import { useToast } from "@/hooks/use-toast";
7
+ import { createWorker } from 'tesseract.js';
8
+ import { VoiceSelector } from "@/components/VoiceSelector";
9
+ import { Sheet, SheetContent, SheetTrigger } from "@/components/ui/sheet";
10
 
11
  interface EditorPanelProps {
12
  dyslexicMode: boolean;
 
18
  const [currentWordIndex, setCurrentWordIndex] = useState<number>(-1);
19
  const [playbackRate, setPlaybackRate] = useState<number>(1);
20
  const [volume, setVolume] = useState<number>(1);
21
+ const [availableVoices, setAvailableVoices] = useState<SpeechSynthesisVoice[]>([]);
22
+ const [selectedVoice, setSelectedVoice] = useState<SpeechSynthesisVoice | null>(null);
23
+ const [isProcessingImage, setIsProcessingImage] = useState<boolean>(false);
24
  const wordsRef = useRef<string[]>([]);
25
  const timeoutRef = useRef<NodeJS.Timeout | null>(null);
26
  const speechSynthRef = useRef<SpeechSynthesisUtterance | null>(null);
27
+ const fileInputRef = useRef<HTMLInputElement>(null);
28
  const { toast } = useToast();
29
 
30
  const handleTextChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {
 
40
  }
41
  };
42
 
43
+ // Load available voices
44
+ useEffect(() => {
45
+ const loadVoices = () => {
46
+ const voices = window.speechSynthesis.getVoices();
47
+ if (voices.length > 0) {
48
+ setAvailableVoices(voices);
49
+ // Set default voice
50
+ setSelectedVoice(voices[0]);
51
+ }
52
+ };
53
+
54
+ loadVoices();
55
+
56
+ // Chrome loads voices asynchronously
57
+ if ('onvoiceschanged' in window.speechSynthesis) {
58
+ window.speechSynthesis.onvoiceschanged = loadVoices;
59
+ }
60
+
61
+ return () => {
62
+ if ('onvoiceschanged' in window.speechSynthesis) {
63
+ window.speechSynthesis.onvoiceschanged = null;
64
+ }
65
+ };
66
+ }, []);
67
+
68
  const startPlayback = () => {
69
  // Check if browser supports speech synthesis
70
  if (!('speechSynthesis' in window)) {
 
87
  utterance.rate = playbackRate;
88
  utterance.volume = volume;
89
 
90
+ // Set the selected voice if available
91
+ if (selectedVoice) {
92
+ utterance.voice = selectedVoice;
93
+ }
94
+
95
  // Store the utterance reference
96
  speechSynthRef.current = utterance;
97
 
 
140
  }
141
  };
142
 
143
+ // OCR functionality
144
+ const handleImageUpload = async (event: React.ChangeEvent<HTMLInputElement>) => {
145
+ const file = event.target.files?.[0];
146
+ if (!file) return;
147
+
148
+ setIsProcessingImage(true);
149
+ toast({
150
+ title: "Processing image",
151
+ description: "Reading text from image...",
152
+ });
153
+
154
+ try {
155
+ const worker = await createWorker();
156
+ await worker.loadLanguage('eng');
157
+ await worker.initialize('eng');
158
+ const { data } = await worker.recognize(file);
159
+ await worker.terminate();
160
+
161
+ // Update the text area with OCR results
162
+ setText(data.text);
163
+ wordsRef.current = data.text.split(/\s+/);
164
+
165
+ toast({
166
+ title: "OCR complete",
167
+ description: "Text extracted from image successfully.",
168
+ });
169
+ } catch (error) {
170
+ toast({
171
+ title: "OCR failed",
172
+ description: "Failed to extract text from image.",
173
+ variant: "destructive",
174
+ });
175
+ console.error("OCR error:", error);
176
+ } finally {
177
+ setIsProcessingImage(false);
178
+ // Clear the file input
179
+ if (fileInputRef.current) {
180
+ fileInputRef.current.value = '';
181
+ }
182
+ }
183
+ };
184
+
185
+ // Export audio function
186
+ const handleExportAudio = () => {
187
+ // Since Web Speech API doesn't provide direct export,
188
+ // inform the user this is a simulation
189
+ toast({
190
+ title: "Exporting audio",
191
+ description: "Preparing audio export...",
192
+ });
193
+
194
+ // Create a simple text file to simulate export
195
+ const element = document.createElement('a');
196
+ const file = new Blob([text], {type: 'text/plain'});
197
+ element.href = URL.createObjectURL(file);
198
+ element.download = 'script-export.txt';
199
+ document.body.appendChild(element);
200
+ element.click();
201
+ document.body.removeChild(element);
202
+
203
+ toast({
204
+ title: "Export complete",
205
+ description: "Script exported as text file. Audio export simulation complete.",
206
+ });
207
+ };
208
+
209
+ // Export text function
210
+ const handleExportText = () => {
211
+ const element = document.createElement('a');
212
+ const file = new Blob([text], {type: 'text/plain'});
213
+ element.href = URL.createObjectURL(file);
214
+ element.download = 'script.txt';
215
+ document.body.appendChild(element);
216
+ element.click();
217
+ document.body.removeChild(element);
218
+
219
+ toast({
220
+ title: "Export complete",
221
+ description: "Script exported as text file.",
222
+ });
223
+ };
224
+
225
  // Clean up on component unmount
226
  useEffect(() => {
227
  return () => {
 
245
  startPlayback();
246
  }, 100);
247
  }
248
+ }, [playbackRate, volume, selectedVoice]);
249
 
250
  // Initialize words on component mount
251
  useEffect(() => {
 
267
  ));
268
  };
269
 
 
 
 
 
 
 
 
 
 
270
  return (
271
  <div className="flex flex-col h-full w-full">
272
  <div className="flex-1 relative">
 
297
  >
298
  {isPlaying ? <Pause className="h-4 w-4" /> : <Play className="h-4 w-4" />}
299
  </Button>
300
+
301
+ {/* Voice selection */}
302
+ <Sheet>
303
+ <SheetTrigger asChild>
304
+ <Button
305
+ variant="outline"
306
+ size="icon"
307
+ className="border-scriptRed/50 text-white"
308
+ >
309
+ <Volume2 className="h-4 w-4" />
310
+ </Button>
311
+ </SheetTrigger>
312
+ <SheetContent className="bg-gray-900 border-scriptRed/20">
313
+ <VoiceSelector
314
+ availableVoices={availableVoices}
315
+ selectedVoice={selectedVoice}
316
+ onVoiceSelect={setSelectedVoice}
317
+ />
318
+ </SheetContent>
319
+ </Sheet>
320
+
321
+ {/* OCR button */}
322
  <Button
323
+ variant="outline"
324
+ size="icon"
325
  className="border-scriptRed/50 text-white"
326
+ onClick={() => fileInputRef.current?.click()}
327
+ disabled={isProcessingImage}
328
  >
329
+ <Image className="h-4 w-4" />
330
  </Button>
331
+ <input
332
+ type="file"
333
+ ref={fileInputRef}
334
+ onChange={handleImageUpload}
335
+ accept="image/*"
336
+ style={{ display: 'none' }}
337
+ />
338
+
339
+ {/* Export options */}
340
+ <div className="relative">
341
+ <Button
342
+ variant="outline"
343
+ size="icon"
344
+ className="border-scriptRed/50 text-white"
345
+ onClick={handleExportText}
346
+ >
347
+ <FileText className="h-4 w-4" />
348
+ </Button>
349
+ </div>
350
+
351
  <Button
352
+ variant="outline"
353
+ size="icon"
354
  className="border-scriptRed/50 text-white"
355
+ onClick={handleExportAudio}
356
  >
357
+ <FileAudio className="h-4 w-4" />
358
  </Button>
359
  </div>
360