@tinyweb_dev/oe-exam-sdk 0.1.19 → 0.1.23

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 (87) hide show
  1. package/README.md +5 -4
  2. package/dist/api/result-review.types.d.ts +1 -0
  3. package/dist/components/exams/ExamPreviewDialog.d.ts +6 -7
  4. package/dist/components/exams/ExamPreviewDialog.js +1 -1
  5. package/dist/components/exams/ExamPreviewPartContent.d.ts +18 -0
  6. package/dist/components/exams/ExamPreviewPartContent.js +1 -0
  7. package/dist/components/exams/ExamPreviewSidebar.d.ts +17 -0
  8. package/dist/components/exams/ExamPreviewSidebar.js +1 -0
  9. package/dist/components/exams/exam-preview.types.d.ts +34 -0
  10. package/dist/components/exams/exam-preview.types.js +1 -0
  11. package/dist/components/exams/index.d.ts +1 -0
  12. package/dist/components/exams/take/components/question-renderers/MoversChooseBestAnswerRenderer.js +1 -1
  13. package/dist/components/exams/take/components/question-renderers/MoversListenAndWriteRenderer.js +1 -1
  14. package/dist/components/exams/take/components/question-renderers/MoversWordFillStructuredFormRenderer.js +1 -1
  15. package/dist/components/exams/take/components/question-renderers/MoversWritingRenderer.js +1 -1
  16. package/dist/components/exams/take/exam-taking.utils.d.ts +13 -0
  17. package/dist/components/exams/take/exam-taking.utils.js +1 -1
  18. package/dist/components/exams/take/types.d.ts +3 -0
  19. package/dist/components/exams/take/utils/question-transformers.d.ts +13 -0
  20. package/dist/components/exams/take/utils/question-transformers.js +1 -1
  21. package/dist/components/questions/_shared/types/word-fill-structured-form.type.d.ts +25 -0
  22. package/dist/components/questions/_shared/utils/parseFillBlankStem.d.ts +30 -0
  23. package/dist/components/questions/_shared/utils/parseFillBlankStem.js +1 -0
  24. package/dist/components/questions/index.d.ts +1 -0
  25. package/dist/components/questions/index.js +1 -1
  26. package/dist/components/questions/question-bank/EditQuestionBankDialog.d.ts +2 -0
  27. package/dist/components/questions/question-bank/EditQuestionBankDialog.js +1 -0
  28. package/dist/components/questions/question-bank/QuestionEditorRenderer.d.ts +23 -0
  29. package/dist/components/questions/question-bank/QuestionEditorRenderer.js +1 -0
  30. package/dist/components/questions/question-bank/difficulty.d.ts +15 -0
  31. package/dist/components/questions/question-bank/difficulty.js +1 -0
  32. package/dist/components/questions/question-bank/editor-adapters/choice-adapters.d.ts +5 -0
  33. package/dist/components/questions/question-bank/editor-adapters/choice-adapters.js +1 -0
  34. package/dist/components/questions/question-bank/editor-adapters/index.d.ts +5 -0
  35. package/dist/components/questions/question-bank/editor-adapters/index.js +1 -0
  36. package/dist/components/questions/question-bank/editor-adapters/media-adapters.d.ts +6 -0
  37. package/dist/components/questions/question-bank/editor-adapters/media-adapters.js +1 -0
  38. package/dist/components/questions/question-bank/editor-adapters/types.d.ts +1 -0
  39. package/dist/components/questions/question-bank/editor-adapters/types.js +1 -0
  40. package/dist/components/questions/question-bank/editor-adapters/unsupported-fallback.d.ts +8 -0
  41. package/dist/components/questions/question-bank/editor-adapters/unsupported-fallback.js +1 -0
  42. package/dist/components/questions/question-bank/editor-adapters/writing-adapters.d.ts +5 -0
  43. package/dist/components/questions/question-bank/editor-adapters/writing-adapters.js +1 -0
  44. package/dist/components/questions/question-bank/index.d.ts +4 -0
  45. package/dist/components/questions/question-bank/index.js +1 -0
  46. package/dist/components/questions/question-bank/types.d.ts +59 -0
  47. package/dist/components/questions/question-bank/types.js +1 -0
  48. package/dist/components/questions/types/choose-the-correct-answer/ChooseTheCorrectAnswerCreator.js +1 -1
  49. package/dist/components/questions/types/choose-the-correct-answer/index.d.ts +1 -0
  50. package/dist/components/questions/types/choose-the-correct-answer/index.js +1 -1
  51. package/dist/components/questions/types/choose-the-correct-answer/normalize.d.ts +27 -0
  52. package/dist/components/questions/types/choose-the-correct-answer/normalize.js +1 -0
  53. package/dist/components/questions/types/choose-the-correct-answer/register.js +1 -1
  54. package/dist/components/questions/types/fill-in-blank/FillInBlankCreator.js +1 -1
  55. package/dist/components/questions/types/fill-in-blank/register.js +1 -1
  56. package/dist/components/questions/types/fill-in-blank/transform.js +1 -1
  57. package/dist/components/questions/types/word-fill-structured-form/WordFillStructuredFormClient.d.ts +1 -1
  58. package/dist/components/questions/types/word-fill-structured-form/WordFillStructuredFormClient.js +1 -1
  59. package/dist/components/questions/types/word-fill-structured-form/transform.js +1 -1
  60. package/dist/components/questions/viewer/QuestionViewer.js +1 -1
  61. package/dist/components/results/review-data.js +1 -1
  62. package/dist/components/themes/cambridge-yle/CambridgeYleAudioPlayer.d.ts +2 -1
  63. package/dist/components/themes/cambridge-yle/CambridgeYleAudioPlayer.js +1 -1
  64. package/dist/components/themes/english-certification/EcWordFillStructuredForm.js +1 -1
  65. package/dist/index.d.ts +3 -0
  66. package/dist/index.js +1 -1
  67. package/dist/mcp/config.d.ts +12 -0
  68. package/dist/mcp/config.js +1 -0
  69. package/dist/mcp/http-client.d.ts +6 -0
  70. package/dist/mcp/http-client.js +1 -0
  71. package/dist/mcp/index.d.ts +6 -0
  72. package/dist/mcp/index.js +2 -0
  73. package/dist/mcp/tools/_helpers.d.ts +4 -0
  74. package/dist/mcp/tools/_helpers.js +1 -0
  75. package/dist/mcp/tools/exams.d.ts +2 -0
  76. package/dist/mcp/tools/exams.js +1 -0
  77. package/dist/mcp/tools/index.d.ts +2 -0
  78. package/dist/mcp/tools/index.js +1 -0
  79. package/dist/mcp/tools/results.d.ts +2 -0
  80. package/dist/mcp/tools/results.js +1 -0
  81. package/dist/shared/lib/i18n/messages/en/admin.d.ts +11 -1
  82. package/dist/shared/lib/i18n/messages/en/admin.js +1 -1
  83. package/dist/shared/lib/i18n/messages/en.d.ts +11 -1
  84. package/dist/shared/lib/i18n/messages/vi/admin.d.ts +11 -1
  85. package/dist/shared/lib/i18n/messages/vi/admin.js +1 -1
  86. package/dist/shared/lib/i18n/messages/vi.d.ts +11 -1
  87. package/package.json +163 -155
@@ -275,6 +275,12 @@ declare const vi: {
275
275
  readonly 'admin.questionBank.dialog.edit.save': "Lưu thay đổi";
276
276
  readonly 'admin.questionBank.dialog.edit.codeError': "Vui lòng nhập mã câu hỏi";
277
277
  readonly 'admin.questionBank.dialog.edit.titleError': "Vui lòng nhập tiêu đề";
278
+ readonly 'admin.questionBank.dialog.edit.loading': "Đang tải...";
279
+ readonly 'admin.questionBank.dialog.edit.unsupportedNote': "Lưu ý:";
280
+ readonly 'admin.questionBank.dialog.edit.unsupportedType': "Loại câu hỏi \"{type}\" chưa hỗ trợ chỉnh sửa trực tiếp trong giao diện này. Vui lòng sử dụng trang tạo đề thi để chỉnh sửa câu hỏi này.";
281
+ readonly 'admin.questionBank.dialog.edit.contentLabel': "Nội dung câu hỏi";
282
+ readonly 'admin.questionBank.dialog.edit.answerLabel': "Đáp án đúng";
283
+ readonly 'admin.questionBank.dialog.edit.explanationLabel': "Giải thích";
278
284
  readonly 'admin.questionBank.dialog.delete.title': "Xác nhận xóa câu hỏi";
279
285
  readonly 'admin.questionBank.dialog.delete.message': "Bạn có chắc chắn muốn xóa câu hỏi";
280
286
  readonly 'admin.questionBank.dialog.delete.warning': "Hành động này không thể hoàn tác.";
@@ -1637,21 +1643,25 @@ declare const vi: {
1637
1643
  readonly 'admin.exams.preview.totalPoints': "Tổng điểm:";
1638
1644
  readonly 'admin.exams.preview.progress': "Tiến độ";
1639
1645
  readonly 'admin.exams.preview.loading': "Đang tải...";
1640
- readonly 'admin.exams.preview.questionNavigation': "Điều hướng câu hỏi";
1646
+ readonly 'admin.exams.preview.questionNavigation': "Điều hướng Part";
1641
1647
  readonly 'admin.exams.preview.all': "Tất cả";
1642
1648
  readonly 'admin.exams.preview.allQuestions': "Tất cả {count} câu hỏi";
1643
1649
  readonly 'admin.exams.preview.partQuestions': "Part {part}: {count} câu";
1644
1650
  readonly 'admin.exams.preview.collapse': "Thu gọn";
1645
1651
  readonly 'admin.exams.preview.detail': "Chi tiết";
1646
1652
  readonly 'admin.exams.preview.questionIndex': "Câu hỏi {index} / {total}";
1653
+ readonly 'admin.exams.preview.partIndex': "Part {index} / {total}";
1647
1654
  readonly 'admin.exams.preview.noQuestions': "Chưa có câu hỏi";
1648
1655
  readonly 'admin.exams.preview.loadingQuestions': "Đang tải câu hỏi...";
1649
1656
  readonly 'admin.exams.preview.retry': "Thử lại";
1650
1657
  readonly 'admin.exams.preview.examNoQuestions': "Đề thi này chưa có câu hỏi nào.";
1651
1658
  readonly 'admin.exams.preview.prevQuestion': "Câu trước";
1659
+ readonly 'admin.exams.preview.prevPart': "Part trước";
1652
1660
  readonly 'admin.exams.preview.prev': "Trước";
1653
1661
  readonly 'admin.exams.preview.nextQuestion': "Câu tiếp theo";
1662
+ readonly 'admin.exams.preview.nextPart': "Part tiếp theo";
1654
1663
  readonly 'admin.exams.preview.next': "Tiếp";
1664
+ readonly 'admin.exams.preview.questionLabel': "Câu {number}";
1655
1665
  readonly 'admin.exams.preview.footerNote': "Đây là chế độ xem trước để kiểm tra bố cục và nội dung đề thi.";
1656
1666
  readonly 'admin.exams.preview.close': "Đóng";
1657
1667
  readonly 'admin.exams.preview.loadError': "Không thể tải câu hỏi. Vui lòng thử lại.";
package/package.json CHANGED
@@ -1,155 +1,163 @@
1
- {
2
- "name": "@tinyweb_dev/oe-exam-sdk",
3
- "version": "0.1.19",
4
- "description": "Reusable OceanEdu question components.",
5
- "type": "module",
6
- "main": "./dist/index.js",
7
- "module": "./dist/index.js",
8
- "types": "./dist/index.d.ts",
9
- "files": [
10
- "dist",
11
- "README.md"
12
- ],
13
- "sideEffects": [
14
- "**/*.css"
15
- ],
16
- "scripts": {
17
- "clean": "rm -rf dist",
18
- "build:compile": "tsc -p tsconfig.build.json",
19
- "build:alias": "tsc-alias -p tsconfig.build.json",
20
- "build:ts": "npm run build:compile && npm run build:assets && npm run build:alias",
21
- "build:assets": "for d in cambridge-yle english-certification summer-sky; do [ -d src/components/themes/$d/assets ] && cp -R src/components/themes/$d/assets dist/components/themes/$d/ || true; done; [ -d src/components/shared/audio/assets ] && cp -R src/components/shared/audio/assets dist/components/shared/audio/ || true; [ -d src/components/results/report/assets ] && mkdir -p dist/components/results/report && cp -R src/components/results/report/assets dist/components/results/report/ || true; (cd src && find . -name '*.module.css' -exec cp --parents {} ../dist/ \\;); cp src/global.d.ts dist/global.d.ts",
22
- "minify:js": "find dist -name '*.js' -type f -exec sh -c 'for f do terser \"$f\" --compress directives=false --mangle --module --comments false --output \"$f\"; done' sh {} +",
23
- "build": "npm run clean && npm run build:ts && npm run minify:js",
24
- "pack:local": "npm pack",
25
- "release": "npm run release:patch",
26
- "release:patch": "npm version patch --no-git-tag-version && npm run release:push",
27
- "release:minor": "npm version minor --no-git-tag-version && npm run release:push",
28
- "release:major": "npm version major --no-git-tag-version && npm run release:push",
29
- "release:push": "npm run build && npm pack --dry-run && VERSION=$(node -p \"require('./package.json').version\") && git add package.json package-lock.json && git commit -m \"chore(sdk): release v$VERSION\" && git tag \"sdk-v$VERSION\" && git push origin HEAD && git push origin \"sdk-v$VERSION\"",
30
- "prepack": "npm run build"
31
- },
32
- "exports": {
33
- ".": {
34
- "types": "./dist/index.d.ts",
35
- "import": "./dist/index.js"
36
- },
37
- "./api": {
38
- "types": "./dist/api/index.d.ts",
39
- "import": "./dist/api/index.js"
40
- },
41
- "./components": {
42
- "types": "./dist/components/index.d.ts",
43
- "import": "./dist/components/index.js"
44
- },
45
- "./components/exams": {
46
- "types": "./dist/components/exams/index.d.ts",
47
- "import": "./dist/components/exams/index.js"
48
- },
49
- "./components/exams/take": {
50
- "types": "./dist/components/exams/take/index.d.ts",
51
- "import": "./dist/components/exams/take/index.js"
52
- },
53
- "./components/exams/entry": {
54
- "types": "./dist/components/exams/entry/index.d.ts",
55
- "import": "./dist/components/exams/entry/index.js"
56
- },
57
- "./components/exams/rooms": {
58
- "types": "./dist/components/exams/rooms/index.d.ts",
59
- "import": "./dist/components/exams/rooms/index.js"
60
- },
61
- "./components/questions": {
62
- "types": "./dist/components/questions/index.d.ts",
63
- "import": "./dist/components/questions/index.js"
64
- },
65
- "./components/themes": {
66
- "types": "./dist/components/themes/index.d.ts",
67
- "import": "./dist/components/themes/index.js"
68
- },
69
- "./components/results": {
70
- "types": "./dist/components/results/index.d.ts",
71
- "import": "./dist/components/results/index.js"
72
- },
73
- "./components/questions/*": {
74
- "types": "./dist/components/questions/*.d.ts",
75
- "import": "./dist/components/questions/*.js"
76
- },
77
- "./shared": {
78
- "types": "./dist/shared/index.d.ts",
79
- "import": "./dist/shared/index.js"
80
- },
81
- "./*": {
82
- "types": "./dist/components/questions/*.d.ts",
83
- "import": "./dist/components/questions/*.js"
84
- },
85
- "./package.json": "./package.json"
86
- },
87
- "publishConfig": {
88
- "access": "public"
89
- },
90
- "peerDependencies": {
91
- "next": ">=15",
92
- "react": ">=19",
93
- "react-dom": ">=19"
94
- },
95
- "devDependencies": {
96
- "@types/node": "^25.9.3",
97
- "terser": "^5.48.0",
98
- "tsc-alias": "^1.8.17",
99
- "typescript": "~5.9.2"
100
- },
101
- "dependencies": {
102
- "@dnd-kit/core": "^6.3.1",
103
- "@dnd-kit/sortable": "^10.0.0",
104
- "@dnd-kit/utilities": "^3.2.2",
105
- "@fortawesome/free-solid-svg-icons": "^7.3.1",
106
- "@fortawesome/react-fontawesome": "^3.3.1",
107
- "@hookform/resolvers": "^5.2.2",
108
- "@radix-ui/react-alert-dialog": "^1.1.15",
109
- "@radix-ui/react-avatar": "^1.1.10",
110
- "@radix-ui/react-checkbox": "^1.3.3",
111
- "@radix-ui/react-collapsible": "^1.1.12",
112
- "@radix-ui/react-dialog": "^1.1.15",
113
- "@radix-ui/react-dropdown-menu": "^2.1.16",
114
- "@radix-ui/react-hover-card": "^1.1.15",
115
- "@radix-ui/react-label": "^2.1.7",
116
- "@radix-ui/react-popover": "^1.1.15",
117
- "@radix-ui/react-progress": "^1.1.7",
118
- "@radix-ui/react-radio-group": "^1.3.8",
119
- "@radix-ui/react-scroll-area": "^1.2.10",
120
- "@radix-ui/react-select": "^2.2.6",
121
- "@radix-ui/react-separator": "^1.1.7",
122
- "@radix-ui/react-slot": "^1.2.3",
123
- "@radix-ui/react-switch": "^1.2.6",
124
- "@radix-ui/react-tabs": "^1.1.13",
125
- "@radix-ui/react-tooltip": "^1.2.8",
126
- "@tanstack/react-query": "^5.90.2",
127
- "@tiptap/extension-table": "^3.22.3",
128
- "@tiptap/extension-table-cell": "^3.22.3",
129
- "@tiptap/extension-table-header": "^3.22.3",
130
- "@tiptap/extension-table-row": "^3.22.3",
131
- "@tiptap/extension-text-align": "^3.22.3",
132
- "@tiptap/pm": "^3.22.3",
133
- "@tiptap/react": "^3.22.3",
134
- "@tiptap/starter-kit": "^3.22.3",
135
- "@types/qrcode": "^1.5.6",
136
- "@xyflow/react": "^12.8.6",
137
- "axios": "^1.12.2",
138
- "class-variance-authority": "^0.7.1",
139
- "clsx": "^2.1.1",
140
- "cmdk": "^1.1.1",
141
- "date-fns": "^4.1.0",
142
- "embla-carousel-react": "^8.6.0",
143
- "howler": "^2.2.4",
144
- "lucide-react": "^0.544.0",
145
- "qrcode": "^1.5.4",
146
- "radix-ui": "^1.4.3",
147
- "react-day-picker": "^9.14.0",
148
- "react-hook-form": "^7.65.0",
149
- "sonner": "^2.0.7",
150
- "tailwind-merge": "^3.3.1",
151
- "vaul": "^1.1.2",
152
- "zod": "^4.1.11",
153
- "zustand": "^5.0.8"
154
- }
155
- }
1
+ {
2
+ "name": "@tinyweb_dev/oe-exam-sdk",
3
+ "version": "0.1.23",
4
+ "description": "Reusable OceanEdu question components.",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "bin": {
10
+ "oe-exam-mcp": "./dist/mcp/index.js"
11
+ },
12
+ "files": [
13
+ "dist",
14
+ "README.md"
15
+ ],
16
+ "sideEffects": [
17
+ "**/*.css"
18
+ ],
19
+ "scripts": {
20
+ "clean": "rm -rf dist",
21
+ "build:compile": "tsc -p tsconfig.build.json",
22
+ "build:alias": "tsc-alias -p tsconfig.build.json",
23
+ "build:ts": "npm run build:compile && npm run build:assets && npm run build:alias",
24
+ "build:assets": "for d in cambridge-yle english-certification summer-sky; do [ -d src/components/themes/$d/assets ] && cp -R src/components/themes/$d/assets dist/components/themes/$d/ || true; done; [ -d src/components/shared/audio/assets ] && cp -R src/components/shared/audio/assets dist/components/shared/audio/ || true; [ -d src/components/results/report/assets ] && mkdir -p dist/components/results/report && cp -R src/components/results/report/assets dist/components/results/report/ || true; (cd src && find . -name '*.module.css' -exec cp --parents {} ../dist/ \\;); cp src/global.d.ts dist/global.d.ts",
25
+ "minify:js": "find dist -name '*.js' -type f -exec sh -c 'for f do terser \"$f\" --compress directives=false --mangle --module --comments false --output \"$f\"; done' sh {} +",
26
+ "build": "npm run clean && npm run build:ts && npm run minify:js",
27
+ "pack:local": "npm pack",
28
+ "release": "npm run release:patch",
29
+ "release:patch": "npm version patch --no-git-tag-version && npm run release:push",
30
+ "release:minor": "npm version minor --no-git-tag-version && npm run release:push",
31
+ "release:major": "npm version major --no-git-tag-version && npm run release:push",
32
+ "release:push": "npm run build && npm pack --dry-run && VERSION=$(node -p \"require('./package.json').version\") && git add package.json package-lock.json && git commit -m \"chore(sdk): release v$VERSION\" && git tag \"sdk-v$VERSION\" && git push origin HEAD && git push origin \"sdk-v$VERSION\"",
33
+ "prepack": "npm run build"
34
+ },
35
+ "exports": {
36
+ ".": {
37
+ "types": "./dist/index.d.ts",
38
+ "import": "./dist/index.js"
39
+ },
40
+ "./api": {
41
+ "types": "./dist/api/index.d.ts",
42
+ "import": "./dist/api/index.js"
43
+ },
44
+ "./components": {
45
+ "types": "./dist/components/index.d.ts",
46
+ "import": "./dist/components/index.js"
47
+ },
48
+ "./mcp": {
49
+ "types": "./dist/mcp/index.d.ts",
50
+ "import": "./dist/mcp/index.js"
51
+ },
52
+ "./components/exams": {
53
+ "types": "./dist/components/exams/index.d.ts",
54
+ "import": "./dist/components/exams/index.js"
55
+ },
56
+ "./components/exams/take": {
57
+ "types": "./dist/components/exams/take/index.d.ts",
58
+ "import": "./dist/components/exams/take/index.js"
59
+ },
60
+ "./components/exams/entry": {
61
+ "types": "./dist/components/exams/entry/index.d.ts",
62
+ "import": "./dist/components/exams/entry/index.js"
63
+ },
64
+ "./components/exams/rooms": {
65
+ "types": "./dist/components/exams/rooms/index.d.ts",
66
+ "import": "./dist/components/exams/rooms/index.js"
67
+ },
68
+ "./components/questions": {
69
+ "types": "./dist/components/questions/index.d.ts",
70
+ "import": "./dist/components/questions/index.js"
71
+ },
72
+ "./components/themes": {
73
+ "types": "./dist/components/themes/index.d.ts",
74
+ "import": "./dist/components/themes/index.js"
75
+ },
76
+ "./components/results": {
77
+ "types": "./dist/components/results/index.d.ts",
78
+ "import": "./dist/components/results/index.js"
79
+ },
80
+ "./components/questions/*": {
81
+ "types": "./dist/components/questions/*.d.ts",
82
+ "import": "./dist/components/questions/*.js"
83
+ },
84
+ "./shared": {
85
+ "types": "./dist/shared/index.d.ts",
86
+ "import": "./dist/shared/index.js"
87
+ },
88
+ "./*": {
89
+ "types": "./dist/components/questions/*.d.ts",
90
+ "import": "./dist/components/questions/*.js"
91
+ },
92
+ "./package.json": "./package.json"
93
+ },
94
+ "publishConfig": {
95
+ "access": "public"
96
+ },
97
+ "peerDependencies": {
98
+ "next": ">=15",
99
+ "react": ">=19",
100
+ "react-dom": ">=19"
101
+ },
102
+ "devDependencies": {
103
+ "@types/node": "^25.9.3",
104
+ "terser": "^5.48.0",
105
+ "tsc-alias": "^1.8.17",
106
+ "typescript": "~5.9.2"
107
+ },
108
+ "dependencies": {
109
+ "@dnd-kit/core": "^6.3.1",
110
+ "@dnd-kit/sortable": "^10.0.0",
111
+ "@dnd-kit/utilities": "^3.2.2",
112
+ "@fortawesome/free-solid-svg-icons": "^7.3.1",
113
+ "@fortawesome/react-fontawesome": "^3.3.1",
114
+ "@hookform/resolvers": "^5.2.2",
115
+ "@modelcontextprotocol/sdk": "^1.29.0",
116
+ "@radix-ui/react-alert-dialog": "^1.1.15",
117
+ "@radix-ui/react-avatar": "^1.1.10",
118
+ "@radix-ui/react-checkbox": "^1.3.3",
119
+ "@radix-ui/react-collapsible": "^1.1.12",
120
+ "@radix-ui/react-dialog": "^1.1.15",
121
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
122
+ "@radix-ui/react-hover-card": "^1.1.15",
123
+ "@radix-ui/react-label": "^2.1.7",
124
+ "@radix-ui/react-popover": "^1.1.15",
125
+ "@radix-ui/react-progress": "^1.1.7",
126
+ "@radix-ui/react-radio-group": "^1.3.8",
127
+ "@radix-ui/react-scroll-area": "^1.2.10",
128
+ "@radix-ui/react-select": "^2.2.6",
129
+ "@radix-ui/react-separator": "^1.1.7",
130
+ "@radix-ui/react-slot": "^1.2.3",
131
+ "@radix-ui/react-switch": "^1.2.6",
132
+ "@radix-ui/react-tabs": "^1.1.13",
133
+ "@radix-ui/react-tooltip": "^1.2.8",
134
+ "@tanstack/react-query": "^5.90.2",
135
+ "@tiptap/extension-table": "^3.22.3",
136
+ "@tiptap/extension-table-cell": "^3.22.3",
137
+ "@tiptap/extension-table-header": "^3.22.3",
138
+ "@tiptap/extension-table-row": "^3.22.3",
139
+ "@tiptap/extension-text-align": "^3.22.3",
140
+ "@tiptap/pm": "^3.22.3",
141
+ "@tiptap/react": "^3.22.3",
142
+ "@tiptap/starter-kit": "^3.22.3",
143
+ "@types/qrcode": "^1.5.6",
144
+ "@xyflow/react": "^12.8.6",
145
+ "axios": "^1.12.2",
146
+ "class-variance-authority": "^0.7.1",
147
+ "clsx": "^2.1.1",
148
+ "cmdk": "^1.1.1",
149
+ "date-fns": "^4.1.0",
150
+ "embla-carousel-react": "^8.6.0",
151
+ "howler": "^2.2.4",
152
+ "lucide-react": "^0.544.0",
153
+ "qrcode": "^1.5.4",
154
+ "radix-ui": "^1.4.3",
155
+ "react-day-picker": "^9.14.0",
156
+ "react-hook-form": "^7.65.0",
157
+ "sonner": "^2.0.7",
158
+ "tailwind-merge": "^3.3.1",
159
+ "vaul": "^1.1.2",
160
+ "zod": "^4.1.11",
161
+ "zustand": "^5.0.8"
162
+ }
163
+ }