@learnpack/learnpack 5.0.315 → 5.0.317

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/lib/commands/serve.js +77 -26
  2. package/lib/creatorDist/assets/{index-D4SYZg0r.css → index-CjddKHB_.css} +12 -0
  3. package/lib/creatorDist/assets/{index-BI7U47zy.js → index-DRIj_L1d.js} +38341 -34249
  4. package/lib/creatorDist/index.html +2 -2
  5. package/package.json +1 -1
  6. package/src/commands/serve.ts +3267 -3204
  7. package/src/creator/components.json +18 -0
  8. package/src/creator/package-lock.json +470 -1
  9. package/src/creator/package.json +3 -0
  10. package/src/creator/src/assets/svgs.tsx +0 -1
  11. package/src/creator/src/components/FileCard.tsx +15 -3
  12. package/src/creator/src/components/FileUploader.tsx +41 -23
  13. package/src/creator/src/components/LessonItem.tsx +80 -49
  14. package/src/creator/src/components/LinkUploader.tsx +55 -8
  15. package/src/creator/src/components/Source.tsx +15 -6
  16. package/src/creator/src/components/syllabus/ContentIndex.tsx +19 -7
  17. package/src/creator/src/components/syllabus/Sidebar.tsx +56 -48
  18. package/src/creator/src/components/syllabus/SyllabusEditor.tsx +1 -1
  19. package/src/creator/src/components/ui/tooltip.tsx +31 -0
  20. package/src/creator/src/lib/utils.ts +6 -0
  21. package/src/creator/src/locales/en.json +24 -1
  22. package/src/creator/src/locales/es.json +24 -1
  23. package/src/creator/src/main.tsx +11 -7
  24. package/src/creator/src/utils/rigo.ts +85 -85
  25. package/src/creator/tsconfig.app.json +6 -0
  26. package/src/creator/vite.config.ts +10 -4
  27. package/src/creatorDist/assets/{index-D4SYZg0r.css → index-CjddKHB_.css} +12 -0
  28. package/src/creatorDist/assets/{index-BI7U47zy.js → index-DRIj_L1d.js} +38341 -34249
  29. package/src/creatorDist/index.html +2 -2
  30. package/src/ui/_app/app.css +1 -1
  31. package/src/ui/_app/app.js +2112 -2112
  32. package/src/ui/app.tar.gz +0 -0
@@ -0,0 +1,18 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema.json",
3
+ "style": "default",
4
+ "rsc": false,
5
+ "tsx": true,
6
+ "tailwind": {
7
+ "config": "tailwind.config.js",
8
+ "css": "src/index.css",
9
+ "baseColor": "slate",
10
+ "cssVariables": true,
11
+ "prefix": ""
12
+ },
13
+ "aliases": {
14
+ "components": "@/components",
15
+ "utils": "@/lib/utils"
16
+ }
17
+ }
18
+
@@ -9,8 +9,10 @@
9
9
  "version": "0.0.0",
10
10
  "dependencies": {
11
11
  "@google-cloud/storage": "^7.16.0",
12
+ "@radix-ui/react-tooltip": "^1.2.8",
12
13
  "@tailwindcss/vite": "^4.1.3",
13
14
  "axios": "^1.8.4",
15
+ "clsx": "^2.1.1",
14
16
  "framer-motion": "^12.9.2",
15
17
  "franc": "^6.2.0",
16
18
  "front-matter": "^4.0.2",
@@ -30,6 +32,7 @@
30
32
  "react-router": "^7.5.0",
31
33
  "socket.io-client": "^4.8.1",
32
34
  "syllable": "^5.0.1",
35
+ "tailwind-merge": "^3.3.1",
33
36
  "youtube-transcript": "^1.2.1",
34
37
  "zustand": "^5.0.3"
35
38
  },
@@ -623,6 +626,44 @@
623
626
  "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
624
627
  }
625
628
  },
629
+ "node_modules/@floating-ui/core": {
630
+ "version": "1.7.3",
631
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz",
632
+ "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==",
633
+ "license": "MIT",
634
+ "dependencies": {
635
+ "@floating-ui/utils": "^0.2.10"
636
+ }
637
+ },
638
+ "node_modules/@floating-ui/dom": {
639
+ "version": "1.7.4",
640
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz",
641
+ "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==",
642
+ "license": "MIT",
643
+ "dependencies": {
644
+ "@floating-ui/core": "^1.7.3",
645
+ "@floating-ui/utils": "^0.2.10"
646
+ }
647
+ },
648
+ "node_modules/@floating-ui/react-dom": {
649
+ "version": "2.1.6",
650
+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.6.tgz",
651
+ "integrity": "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==",
652
+ "license": "MIT",
653
+ "dependencies": {
654
+ "@floating-ui/dom": "^1.7.4"
655
+ },
656
+ "peerDependencies": {
657
+ "react": ">=16.8.0",
658
+ "react-dom": ">=16.8.0"
659
+ }
660
+ },
661
+ "node_modules/@floating-ui/utils": {
662
+ "version": "0.2.10",
663
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz",
664
+ "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==",
665
+ "license": "MIT"
666
+ },
626
667
  "node_modules/@google-cloud/paginator": {
627
668
  "version": "5.0.2",
628
669
  "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-5.0.2.tgz",
@@ -966,6 +1007,415 @@
966
1007
  "node": ">= 8"
967
1008
  }
968
1009
  },
1010
+ "node_modules/@radix-ui/primitive": {
1011
+ "version": "1.1.3",
1012
+ "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz",
1013
+ "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==",
1014
+ "license": "MIT"
1015
+ },
1016
+ "node_modules/@radix-ui/react-arrow": {
1017
+ "version": "1.1.7",
1018
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz",
1019
+ "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==",
1020
+ "license": "MIT",
1021
+ "dependencies": {
1022
+ "@radix-ui/react-primitive": "2.1.3"
1023
+ },
1024
+ "peerDependencies": {
1025
+ "@types/react": "*",
1026
+ "@types/react-dom": "*",
1027
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
1028
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1029
+ },
1030
+ "peerDependenciesMeta": {
1031
+ "@types/react": {
1032
+ "optional": true
1033
+ },
1034
+ "@types/react-dom": {
1035
+ "optional": true
1036
+ }
1037
+ }
1038
+ },
1039
+ "node_modules/@radix-ui/react-compose-refs": {
1040
+ "version": "1.1.2",
1041
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz",
1042
+ "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==",
1043
+ "license": "MIT",
1044
+ "peerDependencies": {
1045
+ "@types/react": "*",
1046
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1047
+ },
1048
+ "peerDependenciesMeta": {
1049
+ "@types/react": {
1050
+ "optional": true
1051
+ }
1052
+ }
1053
+ },
1054
+ "node_modules/@radix-ui/react-context": {
1055
+ "version": "1.1.2",
1056
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz",
1057
+ "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==",
1058
+ "license": "MIT",
1059
+ "peerDependencies": {
1060
+ "@types/react": "*",
1061
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1062
+ },
1063
+ "peerDependenciesMeta": {
1064
+ "@types/react": {
1065
+ "optional": true
1066
+ }
1067
+ }
1068
+ },
1069
+ "node_modules/@radix-ui/react-dismissable-layer": {
1070
+ "version": "1.1.11",
1071
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz",
1072
+ "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==",
1073
+ "license": "MIT",
1074
+ "dependencies": {
1075
+ "@radix-ui/primitive": "1.1.3",
1076
+ "@radix-ui/react-compose-refs": "1.1.2",
1077
+ "@radix-ui/react-primitive": "2.1.3",
1078
+ "@radix-ui/react-use-callback-ref": "1.1.1",
1079
+ "@radix-ui/react-use-escape-keydown": "1.1.1"
1080
+ },
1081
+ "peerDependencies": {
1082
+ "@types/react": "*",
1083
+ "@types/react-dom": "*",
1084
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
1085
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1086
+ },
1087
+ "peerDependenciesMeta": {
1088
+ "@types/react": {
1089
+ "optional": true
1090
+ },
1091
+ "@types/react-dom": {
1092
+ "optional": true
1093
+ }
1094
+ }
1095
+ },
1096
+ "node_modules/@radix-ui/react-id": {
1097
+ "version": "1.1.1",
1098
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz",
1099
+ "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==",
1100
+ "license": "MIT",
1101
+ "dependencies": {
1102
+ "@radix-ui/react-use-layout-effect": "1.1.1"
1103
+ },
1104
+ "peerDependencies": {
1105
+ "@types/react": "*",
1106
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1107
+ },
1108
+ "peerDependenciesMeta": {
1109
+ "@types/react": {
1110
+ "optional": true
1111
+ }
1112
+ }
1113
+ },
1114
+ "node_modules/@radix-ui/react-popper": {
1115
+ "version": "1.2.8",
1116
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz",
1117
+ "integrity": "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==",
1118
+ "license": "MIT",
1119
+ "dependencies": {
1120
+ "@floating-ui/react-dom": "^2.0.0",
1121
+ "@radix-ui/react-arrow": "1.1.7",
1122
+ "@radix-ui/react-compose-refs": "1.1.2",
1123
+ "@radix-ui/react-context": "1.1.2",
1124
+ "@radix-ui/react-primitive": "2.1.3",
1125
+ "@radix-ui/react-use-callback-ref": "1.1.1",
1126
+ "@radix-ui/react-use-layout-effect": "1.1.1",
1127
+ "@radix-ui/react-use-rect": "1.1.1",
1128
+ "@radix-ui/react-use-size": "1.1.1",
1129
+ "@radix-ui/rect": "1.1.1"
1130
+ },
1131
+ "peerDependencies": {
1132
+ "@types/react": "*",
1133
+ "@types/react-dom": "*",
1134
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
1135
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1136
+ },
1137
+ "peerDependenciesMeta": {
1138
+ "@types/react": {
1139
+ "optional": true
1140
+ },
1141
+ "@types/react-dom": {
1142
+ "optional": true
1143
+ }
1144
+ }
1145
+ },
1146
+ "node_modules/@radix-ui/react-portal": {
1147
+ "version": "1.1.9",
1148
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz",
1149
+ "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==",
1150
+ "license": "MIT",
1151
+ "dependencies": {
1152
+ "@radix-ui/react-primitive": "2.1.3",
1153
+ "@radix-ui/react-use-layout-effect": "1.1.1"
1154
+ },
1155
+ "peerDependencies": {
1156
+ "@types/react": "*",
1157
+ "@types/react-dom": "*",
1158
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
1159
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1160
+ },
1161
+ "peerDependenciesMeta": {
1162
+ "@types/react": {
1163
+ "optional": true
1164
+ },
1165
+ "@types/react-dom": {
1166
+ "optional": true
1167
+ }
1168
+ }
1169
+ },
1170
+ "node_modules/@radix-ui/react-presence": {
1171
+ "version": "1.1.5",
1172
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz",
1173
+ "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==",
1174
+ "license": "MIT",
1175
+ "dependencies": {
1176
+ "@radix-ui/react-compose-refs": "1.1.2",
1177
+ "@radix-ui/react-use-layout-effect": "1.1.1"
1178
+ },
1179
+ "peerDependencies": {
1180
+ "@types/react": "*",
1181
+ "@types/react-dom": "*",
1182
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
1183
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1184
+ },
1185
+ "peerDependenciesMeta": {
1186
+ "@types/react": {
1187
+ "optional": true
1188
+ },
1189
+ "@types/react-dom": {
1190
+ "optional": true
1191
+ }
1192
+ }
1193
+ },
1194
+ "node_modules/@radix-ui/react-primitive": {
1195
+ "version": "2.1.3",
1196
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz",
1197
+ "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==",
1198
+ "license": "MIT",
1199
+ "dependencies": {
1200
+ "@radix-ui/react-slot": "1.2.3"
1201
+ },
1202
+ "peerDependencies": {
1203
+ "@types/react": "*",
1204
+ "@types/react-dom": "*",
1205
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
1206
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1207
+ },
1208
+ "peerDependenciesMeta": {
1209
+ "@types/react": {
1210
+ "optional": true
1211
+ },
1212
+ "@types/react-dom": {
1213
+ "optional": true
1214
+ }
1215
+ }
1216
+ },
1217
+ "node_modules/@radix-ui/react-slot": {
1218
+ "version": "1.2.3",
1219
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz",
1220
+ "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==",
1221
+ "license": "MIT",
1222
+ "dependencies": {
1223
+ "@radix-ui/react-compose-refs": "1.1.2"
1224
+ },
1225
+ "peerDependencies": {
1226
+ "@types/react": "*",
1227
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1228
+ },
1229
+ "peerDependenciesMeta": {
1230
+ "@types/react": {
1231
+ "optional": true
1232
+ }
1233
+ }
1234
+ },
1235
+ "node_modules/@radix-ui/react-tooltip": {
1236
+ "version": "1.2.8",
1237
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.8.tgz",
1238
+ "integrity": "sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==",
1239
+ "license": "MIT",
1240
+ "dependencies": {
1241
+ "@radix-ui/primitive": "1.1.3",
1242
+ "@radix-ui/react-compose-refs": "1.1.2",
1243
+ "@radix-ui/react-context": "1.1.2",
1244
+ "@radix-ui/react-dismissable-layer": "1.1.11",
1245
+ "@radix-ui/react-id": "1.1.1",
1246
+ "@radix-ui/react-popper": "1.2.8",
1247
+ "@radix-ui/react-portal": "1.1.9",
1248
+ "@radix-ui/react-presence": "1.1.5",
1249
+ "@radix-ui/react-primitive": "2.1.3",
1250
+ "@radix-ui/react-slot": "1.2.3",
1251
+ "@radix-ui/react-use-controllable-state": "1.2.2",
1252
+ "@radix-ui/react-visually-hidden": "1.2.3"
1253
+ },
1254
+ "peerDependencies": {
1255
+ "@types/react": "*",
1256
+ "@types/react-dom": "*",
1257
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
1258
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1259
+ },
1260
+ "peerDependenciesMeta": {
1261
+ "@types/react": {
1262
+ "optional": true
1263
+ },
1264
+ "@types/react-dom": {
1265
+ "optional": true
1266
+ }
1267
+ }
1268
+ },
1269
+ "node_modules/@radix-ui/react-use-callback-ref": {
1270
+ "version": "1.1.1",
1271
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz",
1272
+ "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==",
1273
+ "license": "MIT",
1274
+ "peerDependencies": {
1275
+ "@types/react": "*",
1276
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1277
+ },
1278
+ "peerDependenciesMeta": {
1279
+ "@types/react": {
1280
+ "optional": true
1281
+ }
1282
+ }
1283
+ },
1284
+ "node_modules/@radix-ui/react-use-controllable-state": {
1285
+ "version": "1.2.2",
1286
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz",
1287
+ "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==",
1288
+ "license": "MIT",
1289
+ "dependencies": {
1290
+ "@radix-ui/react-use-effect-event": "0.0.2",
1291
+ "@radix-ui/react-use-layout-effect": "1.1.1"
1292
+ },
1293
+ "peerDependencies": {
1294
+ "@types/react": "*",
1295
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1296
+ },
1297
+ "peerDependenciesMeta": {
1298
+ "@types/react": {
1299
+ "optional": true
1300
+ }
1301
+ }
1302
+ },
1303
+ "node_modules/@radix-ui/react-use-effect-event": {
1304
+ "version": "0.0.2",
1305
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz",
1306
+ "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==",
1307
+ "license": "MIT",
1308
+ "dependencies": {
1309
+ "@radix-ui/react-use-layout-effect": "1.1.1"
1310
+ },
1311
+ "peerDependencies": {
1312
+ "@types/react": "*",
1313
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1314
+ },
1315
+ "peerDependenciesMeta": {
1316
+ "@types/react": {
1317
+ "optional": true
1318
+ }
1319
+ }
1320
+ },
1321
+ "node_modules/@radix-ui/react-use-escape-keydown": {
1322
+ "version": "1.1.1",
1323
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz",
1324
+ "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==",
1325
+ "license": "MIT",
1326
+ "dependencies": {
1327
+ "@radix-ui/react-use-callback-ref": "1.1.1"
1328
+ },
1329
+ "peerDependencies": {
1330
+ "@types/react": "*",
1331
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1332
+ },
1333
+ "peerDependenciesMeta": {
1334
+ "@types/react": {
1335
+ "optional": true
1336
+ }
1337
+ }
1338
+ },
1339
+ "node_modules/@radix-ui/react-use-layout-effect": {
1340
+ "version": "1.1.1",
1341
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz",
1342
+ "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==",
1343
+ "license": "MIT",
1344
+ "peerDependencies": {
1345
+ "@types/react": "*",
1346
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1347
+ },
1348
+ "peerDependenciesMeta": {
1349
+ "@types/react": {
1350
+ "optional": true
1351
+ }
1352
+ }
1353
+ },
1354
+ "node_modules/@radix-ui/react-use-rect": {
1355
+ "version": "1.1.1",
1356
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz",
1357
+ "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==",
1358
+ "license": "MIT",
1359
+ "dependencies": {
1360
+ "@radix-ui/rect": "1.1.1"
1361
+ },
1362
+ "peerDependencies": {
1363
+ "@types/react": "*",
1364
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1365
+ },
1366
+ "peerDependenciesMeta": {
1367
+ "@types/react": {
1368
+ "optional": true
1369
+ }
1370
+ }
1371
+ },
1372
+ "node_modules/@radix-ui/react-use-size": {
1373
+ "version": "1.1.1",
1374
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz",
1375
+ "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==",
1376
+ "license": "MIT",
1377
+ "dependencies": {
1378
+ "@radix-ui/react-use-layout-effect": "1.1.1"
1379
+ },
1380
+ "peerDependencies": {
1381
+ "@types/react": "*",
1382
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1383
+ },
1384
+ "peerDependenciesMeta": {
1385
+ "@types/react": {
1386
+ "optional": true
1387
+ }
1388
+ }
1389
+ },
1390
+ "node_modules/@radix-ui/react-visually-hidden": {
1391
+ "version": "1.2.3",
1392
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz",
1393
+ "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==",
1394
+ "license": "MIT",
1395
+ "dependencies": {
1396
+ "@radix-ui/react-primitive": "2.1.3"
1397
+ },
1398
+ "peerDependencies": {
1399
+ "@types/react": "*",
1400
+ "@types/react-dom": "*",
1401
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
1402
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1403
+ },
1404
+ "peerDependenciesMeta": {
1405
+ "@types/react": {
1406
+ "optional": true
1407
+ },
1408
+ "@types/react-dom": {
1409
+ "optional": true
1410
+ }
1411
+ }
1412
+ },
1413
+ "node_modules/@radix-ui/rect": {
1414
+ "version": "1.1.1",
1415
+ "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz",
1416
+ "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==",
1417
+ "license": "MIT"
1418
+ },
969
1419
  "node_modules/@rollup/rollup-android-arm-eabi": {
970
1420
  "version": "4.39.0",
971
1421
  "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.39.0.tgz",
@@ -1786,7 +2236,7 @@
1786
2236
  "version": "19.1.2",
1787
2237
  "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.2.tgz",
1788
2238
  "integrity": "sha512-XGJkWF41Qq305SKWEILa1O8vzhb3aOo3ogBlSmiqNko/WmRb6QIaweuZCXjKygVDXpzXb5wyxKTSOsmkuqj+Qw==",
1789
- "dev": true,
2239
+ "devOptional": true,
1790
2240
  "license": "MIT",
1791
2241
  "peerDependencies": {
1792
2242
  "@types/react": "^19.0.0"
@@ -2457,6 +2907,15 @@
2457
2907
  "url": "https://github.com/sponsors/wooorm"
2458
2908
  }
2459
2909
  },
2910
+ "node_modules/clsx": {
2911
+ "version": "2.1.1",
2912
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
2913
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
2914
+ "license": "MIT",
2915
+ "engines": {
2916
+ "node": ">=6"
2917
+ }
2918
+ },
2460
2919
  "node_modules/collapse-white-space": {
2461
2920
  "version": "2.1.0",
2462
2921
  "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz",
@@ -5993,6 +6452,16 @@
5993
6452
  "url": "https://github.com/sponsors/wooorm"
5994
6453
  }
5995
6454
  },
6455
+ "node_modules/tailwind-merge": {
6456
+ "version": "3.3.1",
6457
+ "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz",
6458
+ "integrity": "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==",
6459
+ "license": "MIT",
6460
+ "funding": {
6461
+ "type": "github",
6462
+ "url": "https://github.com/sponsors/dcastil"
6463
+ }
6464
+ },
5996
6465
  "node_modules/tailwindcss": {
5997
6466
  "version": "4.1.3",
5998
6467
  "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.3.tgz",
@@ -12,8 +12,10 @@
12
12
  },
13
13
  "dependencies": {
14
14
  "@google-cloud/storage": "^7.16.0",
15
+ "@radix-ui/react-tooltip": "^1.2.8",
15
16
  "@tailwindcss/vite": "^4.1.3",
16
17
  "axios": "^1.8.4",
18
+ "clsx": "^2.1.1",
17
19
  "framer-motion": "^12.9.2",
18
20
  "franc": "^6.2.0",
19
21
  "front-matter": "^4.0.2",
@@ -33,6 +35,7 @@
33
35
  "react-router": "^7.5.0",
34
36
  "socket.io-client": "^4.8.1",
35
37
  "syllable": "^5.0.1",
38
+ "tailwind-merge": "^3.3.1",
36
39
  "youtube-transcript": "^1.2.1",
37
40
  "zustand": "^5.0.3"
38
41
  },
@@ -203,7 +203,6 @@ export const SVGS = {
203
203
  version="1.1"
204
204
  xmlns="http://www.w3.org/2000/svg"
205
205
  >
206
- <title>clip</title>
207
206
  <path d="M5.469 16.688l8.75-8.75c0.094-0.094 0.844-0.844 2.031-1.25 1.656-0.531 3.344-0.094 4.688 1.25 1.375 1.344 1.781 3 1.25 4.656-0.375 1.188-1.156 2-1.25 2.094l-9.406 9.406c-1.625 1.625-5.688 3.719-9.438 0-3.719-3.719-1.594-7.813 0-9.406l10.094-10.125c0.375-0.375 0.969-0.375 1.344 0s0.375 0.969 0 1.344l-10.063 10.125c-0.156 0.125-3.313 3.406 0 6.719 3.219 3.219 6.375 0.344 6.719 0l9.406-9.438s0.531-0.531 0.781-1.281c0.313-1 0.094-1.875-0.781-2.75-1.875-1.875-3.688-0.313-4.031 0l-8.75 8.719c-0.313 0.313-0.531 0.844 0 1.375s1.031 0.281 1.344 0l6.063-6.063c0.375-0.344 1-0.344 1.344 0 0.375 0.375 0.375 1 0 1.375l-6.063 6.031c-0.844 0.813-2.563 1.469-4.031 0-1.5-1.469-0.844-3.219 0-4.031z"></path>
208
207
  </svg>
209
208
  ),
@@ -1,5 +1,10 @@
1
1
  import { SVGS } from "../assets/svgs"
2
2
  import { ParsedFile } from "./FileUploader"
3
+ import {
4
+ Tooltip,
5
+ TooltipContent,
6
+ TooltipTrigger,
7
+ } from "@/components/ui/tooltip"
3
8
 
4
9
  export const FileCard = ({
5
10
  file,
@@ -9,9 +14,16 @@ export const FileCard = ({
9
14
  handleRemove: () => void
10
15
  }) => (
11
16
  <div className="flex items-center justify-between bg-white shadow-sm p-2 rounded-lg w-[100px]">
12
- <span title={file.name} className="text-xs text-gray-800 truncate">
13
- {file.name}
14
- </span>
17
+ <Tooltip>
18
+ <TooltipTrigger asChild>
19
+ <span className="text-xs text-gray-800 truncate">
20
+ {file.name}
21
+ </span>
22
+ </TooltipTrigger>
23
+ <TooltipContent>
24
+ <p>{file.name}</p>
25
+ </TooltipContent>
26
+ </Tooltip>
15
27
  <button
16
28
  onClick={handleRemove}
17
29
  className="p-1 text-red-500 hover:text-red-700 transition-colors cursor-pointer "