@comitor/ui 3.4.0 → 3.6.0
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.
- package/README.md +19 -5
- package/dist/components/ui/item.d.ts +1 -1
- package/dist/editor/bubble-toolbar.d.ts +53 -0
- package/dist/editor/bubble-toolbar.js +231 -0
- package/dist/editor/bubble-toolbar.js.map +1 -0
- package/dist/editor/editor-core.d.ts +28 -0
- package/dist/editor/editor-core.js +354 -0
- package/dist/editor/editor-core.js.map +1 -0
- package/dist/editor/editor-types.d.ts +3 -0
- package/dist/editor/editor-types.js +1 -0
- package/dist/editor/editor-types.js.map +1 -0
- package/dist/editor/fixed-toolbar.d.ts +19 -0
- package/dist/editor/fixed-toolbar.js +106 -0
- package/dist/editor/fixed-toolbar.js.map +1 -0
- package/dist/editor/image-upload.d.ts +3 -0
- package/dist/editor/image-upload.js +137 -0
- package/dist/editor/image-upload.js.map +1 -0
- package/dist/editor/index.d.ts +6 -0
- package/dist/editor/index.js +11 -0
- package/dist/editor/index.js.map +1 -0
- package/dist/editor/markdown-editor-classes.d.ts +16 -0
- package/dist/editor/markdown-editor-classes.js +119 -0
- package/dist/editor/markdown-editor-classes.js.map +1 -0
- package/dist/editor/markdown-editor-constants.d.ts +98 -0
- package/dist/editor/markdown-editor-constants.js +6 -0
- package/dist/editor/markdown-editor-constants.js.map +1 -0
- package/dist/editor/markdown-editor.d.ts +48 -0
- package/dist/editor/markdown-editor.js +33 -0
- package/dist/editor/markdown-editor.js.map +1 -0
- package/dist/editor/markdown-extensions.d.ts +96 -0
- package/dist/editor/markdown-extensions.js +291 -0
- package/dist/editor/markdown-extensions.js.map +1 -0
- package/dist/editor/markdown-syntax.d.ts +87 -0
- package/dist/editor/markdown-syntax.js +58 -0
- package/dist/editor/markdown-syntax.js.map +1 -0
- package/dist/editor/rich-text-editor.d.ts +48 -0
- package/dist/editor/rich-text-editor.js +33 -0
- package/dist/editor/rich-text-editor.js.map +1 -0
- package/dist/editor/slash-commands.d.ts +65 -0
- package/dist/editor/slash-commands.js +191 -0
- package/dist/editor/slash-commands.js.map +1 -0
- package/dist/editor/suggestion-menu.d.ts +38 -0
- package/dist/editor/suggestion-menu.js +144 -0
- package/dist/editor/suggestion-menu.js.map +1 -0
- package/dist/editor/suggestion-store.d.ts +47 -0
- package/dist/editor/suggestion-store.js +49 -0
- package/dist/editor/suggestion-store.js.map +1 -0
- package/dist/editor/toolbar-actions.d.ts +44 -0
- package/dist/editor/toolbar-actions.js +173 -0
- package/dist/editor/toolbar-actions.js.map +1 -0
- package/dist/editor/toolbar-button.d.ts +15 -0
- package/dist/editor/toolbar-button.js +47 -0
- package/dist/editor/toolbar-button.js.map +1 -0
- package/dist/editor-types-BMST7-VR.d.ts +171 -0
- package/dist/i18n/locale-provider.d.ts +1 -0
- package/dist/i18n/messages.d.ts +2 -0
- package/dist/i18n/messages.js +3 -0
- package/dist/i18n/messages.js.map +1 -1
- package/dist/i18n/namespaces/markdown-editor.d.ts +6 -0
- package/dist/i18n/namespaces/markdown-editor.js +133 -0
- package/dist/i18n/namespaces/markdown-editor.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/package.json +79 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/i18n/messages.ts"],"sourcesContent":["/**\n * Bảng CHỮ của cả gói — module THUẦN (không directive, không hook), Server Component đọc thẳng\n * được (`verify:directives`, phép kiểm 2 và 3).\n *\n * Cùng khuôn với bảng chuỗi của `DataGrid` (`data-grid/messages.ts`), nay áp cho MỌI component:\n * · `comitorMessagesEn` là BẢN GỐC định nghĩa hình dạng ({@link ComitorMessages}). Tiếng Anh\n * là mặc định từ `3.0.0` — gói phục vụ cả app quốc tế, không chỉ app Comitor.\n * · `comitorMessagesVi` chú thích `: ComitorMessages`, nên thiếu một khoá là typecheck đỏ\n * ngay — không có đường nào để một chuỗi `undefined` lặng lẽ lọt ra giao diện.\n *\n * Mỗi namespace là MỘT component (hoặc một cụm component dùng chung chữ, vd `shell`). Chuỗi có\n * tham số viết thành HÀM, không phải mẫu có chỗ trống — trật tự từ quanh con số khác nhau theo ngôn\n * ngữ, nên mọi cách để gói tự nối chuỗi đều là chỗ chắc chắn dịch sai.\n *\n * Thêm ngôn ngữ thứ ba: app KHÔNG phải sửa gói — truyền cả một bảng qua prop `messages` của\n * `ComitorLocaleProvider` (trải `comitorMessagesEn` ra rồi dịch từng namespace).\n */\nimport { type ComitorLanguage, getComitorLanguage } from \"./locale.js\";\nimport { actionBarEn, actionBarVi } from \"./namespaces/action-bar.js\";\nimport { avatarGroupEn, avatarGroupVi } from \"./namespaces/avatar-group.js\";\nimport { badgeOverflowEn, badgeOverflowVi } from \"./namespaces/badge-overflow.js\";\nimport { bannerEn, bannerVi } from \"./namespaces/banner.js\";\nimport { breadcrumbEn, breadcrumbVi } from \"./namespaces/breadcrumb.js\";\nimport { calendarEn, calendarVi } from \"./namespaces/calendar.js\";\nimport { carouselEn, carouselVi } from \"./namespaces/carousel.js\";\nimport { comboboxEn, comboboxVi } from \"./namespaces/combobox.js\";\nimport { commandEn, commandVi } from \"./namespaces/command.js\";\nimport { commandPaletteEn, commandPaletteVi } from \"./namespaces/command-palette.js\";\nimport { confirmDialogEn, confirmDialogVi } from \"./namespaces/confirm-dialog.js\";\nimport { contrastEn, contrastVi } from \"./namespaces/contrast.js\";\nimport { copyButtonEn, copyButtonVi } from \"./namespaces/copy-button.js\";\nimport { cropperEn, cropperVi } from \"./namespaces/cropper.js\";\nimport { dataTableEn, dataTableVi } from \"./namespaces/data-table.js\";\nimport { datePickerEn, datePickerVi } from \"./namespaces/date-picker.js\";\nimport { dialogEn, dialogVi } from \"./namespaces/dialog.js\";\nimport { displayAxisEn, displayAxisVi } from \"./namespaces/display-axis.js\";\nimport { fileUploadEn, fileUploadVi } from \"./namespaces/file-upload.js\";\nimport { filterChipsEn, filterChipsVi } from \"./namespaces/filter-chips.js\";\nimport { imageUploadFieldEn, imageUploadFieldVi } from \"./namespaces/image-upload-field.js\";\nimport { inlineEditEn, inlineEditVi } from \"./namespaces/inline-edit.js\";\nimport { kanbanEn, kanbanVi } from \"./namespaces/kanban.js\";\nimport { keyValueEn, keyValueVi } from \"./namespaces/key-value.js\";\nimport { mentionEn, mentionVi } from \"./namespaces/mention.js\";\nimport { paginationEn, paginationVi } from \"./namespaces/pagination.js\";\nimport { phoneInputEn, phoneInputVi } from \"./namespaces/phone-input.js\";\nimport { ratingEn, ratingVi } from \"./namespaces/rating.js\";\nimport { routeTabsEn, routeTabsVi } from \"./namespaces/route-tabs.js\";\nimport { scrollSpyEn, scrollSpyVi } from \"./namespaces/scroll-spy.js\";\nimport { searchFilterBarEn, searchFilterBarVi } from \"./namespaces/search-filter-bar.js\";\nimport { sheetEn, sheetVi } from \"./namespaces/sheet.js\";\nimport { shellEn, shellVi } from \"./namespaces/shell.js\";\nimport { spinnerEn, spinnerVi } from \"./namespaces/spinner.js\";\nimport { stepperEn, stepperVi } from \"./namespaces/stepper.js\";\nimport { tablePaginationEn, tablePaginationVi } from \"./namespaces/table-pagination.js\";\nimport { tagsInputEn, tagsInputVi } from \"./namespaces/tags-input.js\";\nimport { timePickerEn, timePickerVi } from \"./namespaces/time-picker.js\";\nimport { toastEn, toastVi } from \"./namespaces/toast.js\";\nimport { tourEn, tourVi } from \"./namespaces/tour.js\";\n\n/** Bảng tiếng Anh — BẢN GỐC, định nghĩa hình dạng của mọi bảng khác. */\nexport const comitorMessagesEn = {\n actionBar: actionBarEn,\n avatarGroup: avatarGroupEn,\n badgeOverflow: badgeOverflowEn,\n banner: bannerEn,\n breadcrumb: breadcrumbEn,\n calendar: calendarEn,\n carousel: carouselEn,\n combobox: comboboxEn,\n command: commandEn,\n commandPalette: commandPaletteEn,\n confirmDialog: confirmDialogEn,\n contrast: contrastEn,\n copyButton: copyButtonEn,\n cropper: cropperEn,\n dataTable: dataTableEn,\n datePicker: datePickerEn,\n dialog: dialogEn,\n displayAxis: displayAxisEn,\n fileUpload: fileUploadEn,\n filterChips: filterChipsEn,\n imageUploadField: imageUploadFieldEn,\n inlineEdit: inlineEditEn,\n kanban: kanbanEn,\n keyValue: keyValueEn,\n mention: mentionEn,\n pagination: paginationEn,\n phoneInput: phoneInputEn,\n rating: ratingEn,\n routeTabs: routeTabsEn,\n scrollSpy: scrollSpyEn,\n searchFilterBar: searchFilterBarEn,\n sheet: sheetEn,\n shell: shellEn,\n spinner: spinnerEn,\n stepper: stepperEn,\n tablePagination: tablePaginationEn,\n tagsInput: tagsInputEn,\n timePicker: timePickerEn,\n toast: toastEn,\n tour: tourEn\n};\n\n/** Hình dạng của một bảng chữ đầy đủ. Suy từ bảng tiếng Anh, không viết tay lần hai. */\nexport type ComitorMessages = typeof comitorMessagesEn;\n\n/** Bảng tiếng Việt — phải phủ ĐỦ mọi khoá của bảng tiếng Anh. */\nexport const comitorMessagesVi: ComitorMessages = {\n actionBar: actionBarVi,\n avatarGroup: avatarGroupVi,\n badgeOverflow: badgeOverflowVi,\n banner: bannerVi,\n breadcrumb: breadcrumbVi,\n calendar: calendarVi,\n carousel: carouselVi,\n combobox: comboboxVi,\n command: commandVi,\n commandPalette: commandPaletteVi,\n confirmDialog: confirmDialogVi,\n contrast: contrastVi,\n copyButton: copyButtonVi,\n cropper: cropperVi,\n dataTable: dataTableVi,\n datePicker: datePickerVi,\n dialog: dialogVi,\n displayAxis: displayAxisVi,\n fileUpload: fileUploadVi,\n filterChips: filterChipsVi,\n imageUploadField: imageUploadFieldVi,\n inlineEdit: inlineEditVi,\n kanban: kanbanVi,\n keyValue: keyValueVi,\n mention: mentionVi,\n pagination: paginationVi,\n phoneInput: phoneInputVi,\n rating: ratingVi,\n routeTabs: routeTabsVi,\n scrollSpy: scrollSpyVi,\n searchFilterBar: searchFilterBarVi,\n sheet: sheetVi,\n shell: shellVi,\n spinner: spinnerVi,\n stepper: stepperVi,\n tablePagination: tablePaginationVi,\n tagsInput: tagsInputVi,\n timePicker: timePickerVi,\n toast: toastVi,\n tour: tourVi\n};\n\n/** Mọi bảng dựng sẵn, tra theo ngôn ngữ. */\nexport const COMITOR_MESSAGES: Record<ComitorLanguage, ComitorMessages> = {\n en: comitorMessagesEn,\n vi: comitorMessagesVi\n};\n\n/**\n * Ghi đè MỘT PHẦN: theo namespace, và trong mỗi namespace theo khoá. Dùng để đổi vài chữ theo\n * nghiệp vụ (\"Không gian làm việc\" → \"Công ty\"), hoặc để cấp nguyên một bảng cho ngôn ngữ thứ ba.\n */\nexport type ComitorMessagesOverride = {\n [K in keyof ComitorMessages]?: Partial<ComitorMessages[K]>;\n};\n\n/**\n * Trộn phần ghi đè vào một bảng đầy đủ — từng namespace một, nông ở cấp khoá. Không đụng tới bảng\n * gốc (trả về object mới), và namespace không được ghi đè giữ nguyên tham chiếu.\n */\nexport function mergeComitorMessages(base: ComitorMessages, override?: ComitorMessagesOverride): ComitorMessages {\n if (!override) return base;\n const merged = { ...base } as Record<string, object>;\n for (const key of Object.keys(override) as Array<keyof ComitorMessages>) {\n const part = override[key];\n if (part) merged[key] = { ...base[key], ...part };\n }\n return merged as ComitorMessages;\n}\n\n/**\n * Bảng chữ cho một `locale` (+ phần ghi đè) — bản THUẦN của những gì `ComitorLocaleProvider` làm,\n * dành cho nơi không có context: Server Component, email, toast bắn ngoài cây React.\n */\nexport function getComitorMessages(locale?: string | null, override?: ComitorMessagesOverride): ComitorMessages {\n return mergeComitorMessages(COMITOR_MESSAGES[getComitorLanguage(locale)], override);\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/i18n/messages.ts"],"sourcesContent":["/**\n * Bảng CHỮ của cả gói — module THUẦN (không directive, không hook), Server Component đọc thẳng\n * được (`verify:directives`, phép kiểm 2 và 3).\n *\n * Cùng khuôn với bảng chuỗi của `DataGrid` (`data-grid/messages.ts`), nay áp cho MỌI component:\n * · `comitorMessagesEn` là BẢN GỐC định nghĩa hình dạng ({@link ComitorMessages}). Tiếng Anh\n * là mặc định từ `3.0.0` — gói phục vụ cả app quốc tế, không chỉ app Comitor.\n * · `comitorMessagesVi` chú thích `: ComitorMessages`, nên thiếu một khoá là typecheck đỏ\n * ngay — không có đường nào để một chuỗi `undefined` lặng lẽ lọt ra giao diện.\n *\n * Mỗi namespace là MỘT component (hoặc một cụm component dùng chung chữ, vd `shell`). Chuỗi có\n * tham số viết thành HÀM, không phải mẫu có chỗ trống — trật tự từ quanh con số khác nhau theo ngôn\n * ngữ, nên mọi cách để gói tự nối chuỗi đều là chỗ chắc chắn dịch sai.\n *\n * Thêm ngôn ngữ thứ ba: app KHÔNG phải sửa gói — truyền cả một bảng qua prop `messages` của\n * `ComitorLocaleProvider` (trải `comitorMessagesEn` ra rồi dịch từng namespace).\n */\nimport { type ComitorLanguage, getComitorLanguage } from \"./locale.js\";\nimport { actionBarEn, actionBarVi } from \"./namespaces/action-bar.js\";\nimport { avatarGroupEn, avatarGroupVi } from \"./namespaces/avatar-group.js\";\nimport { badgeOverflowEn, badgeOverflowVi } from \"./namespaces/badge-overflow.js\";\nimport { bannerEn, bannerVi } from \"./namespaces/banner.js\";\nimport { breadcrumbEn, breadcrumbVi } from \"./namespaces/breadcrumb.js\";\nimport { calendarEn, calendarVi } from \"./namespaces/calendar.js\";\nimport { carouselEn, carouselVi } from \"./namespaces/carousel.js\";\nimport { comboboxEn, comboboxVi } from \"./namespaces/combobox.js\";\nimport { commandEn, commandVi } from \"./namespaces/command.js\";\nimport { commandPaletteEn, commandPaletteVi } from \"./namespaces/command-palette.js\";\nimport { confirmDialogEn, confirmDialogVi } from \"./namespaces/confirm-dialog.js\";\nimport { contrastEn, contrastVi } from \"./namespaces/contrast.js\";\nimport { copyButtonEn, copyButtonVi } from \"./namespaces/copy-button.js\";\nimport { cropperEn, cropperVi } from \"./namespaces/cropper.js\";\nimport { dataTableEn, dataTableVi } from \"./namespaces/data-table.js\";\nimport { datePickerEn, datePickerVi } from \"./namespaces/date-picker.js\";\nimport { dialogEn, dialogVi } from \"./namespaces/dialog.js\";\nimport { displayAxisEn, displayAxisVi } from \"./namespaces/display-axis.js\";\nimport { fileUploadEn, fileUploadVi } from \"./namespaces/file-upload.js\";\nimport { filterChipsEn, filterChipsVi } from \"./namespaces/filter-chips.js\";\nimport { imageUploadFieldEn, imageUploadFieldVi } from \"./namespaces/image-upload-field.js\";\nimport { inlineEditEn, inlineEditVi } from \"./namespaces/inline-edit.js\";\nimport { kanbanEn, kanbanVi } from \"./namespaces/kanban.js\";\nimport { keyValueEn, keyValueVi } from \"./namespaces/key-value.js\";\nimport { markdownEditorEn, markdownEditorVi } from \"./namespaces/markdown-editor.js\";\nimport { mentionEn, mentionVi } from \"./namespaces/mention.js\";\nimport { paginationEn, paginationVi } from \"./namespaces/pagination.js\";\nimport { phoneInputEn, phoneInputVi } from \"./namespaces/phone-input.js\";\nimport { ratingEn, ratingVi } from \"./namespaces/rating.js\";\nimport { routeTabsEn, routeTabsVi } from \"./namespaces/route-tabs.js\";\nimport { scrollSpyEn, scrollSpyVi } from \"./namespaces/scroll-spy.js\";\nimport { searchFilterBarEn, searchFilterBarVi } from \"./namespaces/search-filter-bar.js\";\nimport { sheetEn, sheetVi } from \"./namespaces/sheet.js\";\nimport { shellEn, shellVi } from \"./namespaces/shell.js\";\nimport { spinnerEn, spinnerVi } from \"./namespaces/spinner.js\";\nimport { stepperEn, stepperVi } from \"./namespaces/stepper.js\";\nimport { tablePaginationEn, tablePaginationVi } from \"./namespaces/table-pagination.js\";\nimport { tagsInputEn, tagsInputVi } from \"./namespaces/tags-input.js\";\nimport { timePickerEn, timePickerVi } from \"./namespaces/time-picker.js\";\nimport { toastEn, toastVi } from \"./namespaces/toast.js\";\nimport { tourEn, tourVi } from \"./namespaces/tour.js\";\n\n/** Bảng tiếng Anh — BẢN GỐC, định nghĩa hình dạng của mọi bảng khác. */\nexport const comitorMessagesEn = {\n actionBar: actionBarEn,\n avatarGroup: avatarGroupEn,\n badgeOverflow: badgeOverflowEn,\n banner: bannerEn,\n breadcrumb: breadcrumbEn,\n calendar: calendarEn,\n carousel: carouselEn,\n combobox: comboboxEn,\n command: commandEn,\n commandPalette: commandPaletteEn,\n confirmDialog: confirmDialogEn,\n contrast: contrastEn,\n copyButton: copyButtonEn,\n cropper: cropperEn,\n dataTable: dataTableEn,\n datePicker: datePickerEn,\n dialog: dialogEn,\n displayAxis: displayAxisEn,\n fileUpload: fileUploadEn,\n filterChips: filterChipsEn,\n imageUploadField: imageUploadFieldEn,\n inlineEdit: inlineEditEn,\n kanban: kanbanEn,\n keyValue: keyValueEn,\n markdownEditor: markdownEditorEn,\n mention: mentionEn,\n pagination: paginationEn,\n phoneInput: phoneInputEn,\n rating: ratingEn,\n routeTabs: routeTabsEn,\n scrollSpy: scrollSpyEn,\n searchFilterBar: searchFilterBarEn,\n sheet: sheetEn,\n shell: shellEn,\n spinner: spinnerEn,\n stepper: stepperEn,\n tablePagination: tablePaginationEn,\n tagsInput: tagsInputEn,\n timePicker: timePickerEn,\n toast: toastEn,\n tour: tourEn\n};\n\n/** Hình dạng của một bảng chữ đầy đủ. Suy từ bảng tiếng Anh, không viết tay lần hai. */\nexport type ComitorMessages = typeof comitorMessagesEn;\n\n/** Bảng tiếng Việt — phải phủ ĐỦ mọi khoá của bảng tiếng Anh. */\nexport const comitorMessagesVi: ComitorMessages = {\n actionBar: actionBarVi,\n avatarGroup: avatarGroupVi,\n badgeOverflow: badgeOverflowVi,\n banner: bannerVi,\n breadcrumb: breadcrumbVi,\n calendar: calendarVi,\n carousel: carouselVi,\n combobox: comboboxVi,\n command: commandVi,\n commandPalette: commandPaletteVi,\n confirmDialog: confirmDialogVi,\n contrast: contrastVi,\n copyButton: copyButtonVi,\n cropper: cropperVi,\n dataTable: dataTableVi,\n datePicker: datePickerVi,\n dialog: dialogVi,\n displayAxis: displayAxisVi,\n fileUpload: fileUploadVi,\n filterChips: filterChipsVi,\n imageUploadField: imageUploadFieldVi,\n inlineEdit: inlineEditVi,\n kanban: kanbanVi,\n keyValue: keyValueVi,\n markdownEditor: markdownEditorVi,\n mention: mentionVi,\n pagination: paginationVi,\n phoneInput: phoneInputVi,\n rating: ratingVi,\n routeTabs: routeTabsVi,\n scrollSpy: scrollSpyVi,\n searchFilterBar: searchFilterBarVi,\n sheet: sheetVi,\n shell: shellVi,\n spinner: spinnerVi,\n stepper: stepperVi,\n tablePagination: tablePaginationVi,\n tagsInput: tagsInputVi,\n timePicker: timePickerVi,\n toast: toastVi,\n tour: tourVi\n};\n\n/** Mọi bảng dựng sẵn, tra theo ngôn ngữ. */\nexport const COMITOR_MESSAGES: Record<ComitorLanguage, ComitorMessages> = {\n en: comitorMessagesEn,\n vi: comitorMessagesVi\n};\n\n/**\n * Ghi đè MỘT PHẦN: theo namespace, và trong mỗi namespace theo khoá. Dùng để đổi vài chữ theo\n * nghiệp vụ (\"Không gian làm việc\" → \"Công ty\"), hoặc để cấp nguyên một bảng cho ngôn ngữ thứ ba.\n */\nexport type ComitorMessagesOverride = {\n [K in keyof ComitorMessages]?: Partial<ComitorMessages[K]>;\n};\n\n/**\n * Trộn phần ghi đè vào một bảng đầy đủ — từng namespace một, nông ở cấp khoá. Không đụng tới bảng\n * gốc (trả về object mới), và namespace không được ghi đè giữ nguyên tham chiếu.\n */\nexport function mergeComitorMessages(base: ComitorMessages, override?: ComitorMessagesOverride): ComitorMessages {\n if (!override) return base;\n const merged = { ...base } as Record<string, object>;\n for (const key of Object.keys(override) as Array<keyof ComitorMessages>) {\n const part = override[key];\n if (part) merged[key] = { ...base[key], ...part };\n }\n return merged as ComitorMessages;\n}\n\n/**\n * Bảng chữ cho một `locale` (+ phần ghi đè) — bản THUẦN của những gì `ComitorLocaleProvider` làm,\n * dành cho nơi không có context: Server Component, email, toast bắn ngoài cây React.\n */\nexport function getComitorMessages(locale?: string | null, override?: ComitorMessagesOverride): ComitorMessages {\n return mergeComitorMessages(COMITOR_MESSAGES[getComitorLanguage(locale)], override);\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
const markdownEditorEn = {
|
|
2
|
+
placeholder: "Write something, or type \u201C/\u201D for blocks\u2026",
|
|
3
|
+
editorLabel: "Editor",
|
|
4
|
+
toolbar: "Formatting",
|
|
5
|
+
bold: "Bold",
|
|
6
|
+
italic: "Italic",
|
|
7
|
+
underline: "Underline",
|
|
8
|
+
strike: "Strikethrough",
|
|
9
|
+
code: "Inline code",
|
|
10
|
+
link: "Link",
|
|
11
|
+
undo: "Undo",
|
|
12
|
+
redo: "Redo",
|
|
13
|
+
text: "Text",
|
|
14
|
+
heading1: "Heading 1",
|
|
15
|
+
heading2: "Heading 2",
|
|
16
|
+
heading3: "Heading 3",
|
|
17
|
+
bulletList: "Bulleted list",
|
|
18
|
+
orderedList: "Numbered list",
|
|
19
|
+
taskList: "Checklist",
|
|
20
|
+
blockquote: "Quote",
|
|
21
|
+
codeBlock: "Code block",
|
|
22
|
+
table: "Table",
|
|
23
|
+
divider: "Divider",
|
|
24
|
+
image: "Image",
|
|
25
|
+
tableAddRow: "Add row below",
|
|
26
|
+
tableAddColumn: "Add column right",
|
|
27
|
+
tableDeleteRow: "Delete row",
|
|
28
|
+
tableDeleteColumn: "Delete column",
|
|
29
|
+
tableDelete: "Delete table",
|
|
30
|
+
slashMenu: "Insert block",
|
|
31
|
+
slashEmpty: "No matching blocks",
|
|
32
|
+
slashKeywords: {
|
|
33
|
+
text: "paragraph plain",
|
|
34
|
+
heading1: "title big",
|
|
35
|
+
heading2: "subtitle medium",
|
|
36
|
+
heading3: "small section",
|
|
37
|
+
bulletList: "unordered bullets",
|
|
38
|
+
orderedList: "ordered numbers",
|
|
39
|
+
taskList: "checkbox todo tasks",
|
|
40
|
+
blockquote: "citation callout",
|
|
41
|
+
codeBlock: "snippet programming",
|
|
42
|
+
table: "columns rows cells",
|
|
43
|
+
divider: "separator rule line",
|
|
44
|
+
image: "picture photo upload",
|
|
45
|
+
tableAddRow: "insert row",
|
|
46
|
+
tableAddColumn: "insert column",
|
|
47
|
+
tableDeleteRow: "remove row",
|
|
48
|
+
tableDeleteColumn: "remove column",
|
|
49
|
+
tableDelete: "remove table"
|
|
50
|
+
},
|
|
51
|
+
linkInput: "Link address",
|
|
52
|
+
linkPlaceholder: "Paste or type a link\u2026",
|
|
53
|
+
linkApply: "Apply link",
|
|
54
|
+
linkEdit: "Edit link",
|
|
55
|
+
linkOpen: "Open link",
|
|
56
|
+
linkRemove: "Remove link",
|
|
57
|
+
linkInvalid: "Enter a web, email or phone link",
|
|
58
|
+
mentionMenu: "People",
|
|
59
|
+
mentionEmpty: "No people found",
|
|
60
|
+
mentionLoading: "Searching\u2026",
|
|
61
|
+
imageUploading: "Uploading image\u2026",
|
|
62
|
+
imageUploadFailed: "Couldn\u2019t upload the image",
|
|
63
|
+
taskCheckbox: (text) => text ? `Task: ${text}` : "Empty task"
|
|
64
|
+
};
|
|
65
|
+
const markdownEditorVi = {
|
|
66
|
+
placeholder: "Vi\u1EBFt n\u1ED9i dung, ho\u1EB7c g\xF5 \u201C/\u201D \u0111\u1EC3 ch\xE8n kh\u1ED1i\u2026",
|
|
67
|
+
editorLabel: "Tr\xECnh so\u1EA1n th\u1EA3o",
|
|
68
|
+
toolbar: "\u0110\u1ECBnh d\u1EA1ng",
|
|
69
|
+
bold: "In \u0111\u1EADm",
|
|
70
|
+
italic: "In nghi\xEAng",
|
|
71
|
+
underline: "G\u1EA1ch ch\xE2n",
|
|
72
|
+
strike: "G\u1EA1ch ngang",
|
|
73
|
+
code: "M\xE3 n\u1ED9i d\xF2ng",
|
|
74
|
+
link: "Li\xEAn k\u1EBFt",
|
|
75
|
+
undo: "Ho\xE0n t\xE1c",
|
|
76
|
+
redo: "L\xE0m l\u1EA1i",
|
|
77
|
+
text: "V\u0103n b\u1EA3n",
|
|
78
|
+
heading1: "Ti\xEAu \u0111\u1EC1 1",
|
|
79
|
+
heading2: "Ti\xEAu \u0111\u1EC1 2",
|
|
80
|
+
heading3: "Ti\xEAu \u0111\u1EC1 3",
|
|
81
|
+
bulletList: "Danh s\xE1ch d\u1EA5u ch\u1EA5m",
|
|
82
|
+
orderedList: "Danh s\xE1ch \u0111\xE1nh s\u1ED1",
|
|
83
|
+
taskList: "Danh s\xE1ch vi\u1EC7c",
|
|
84
|
+
blockquote: "Tr\xEDch d\u1EABn",
|
|
85
|
+
codeBlock: "Kh\u1ED1i m\xE3",
|
|
86
|
+
table: "B\u1EA3ng",
|
|
87
|
+
divider: "\u0110\u01B0\u1EDDng k\u1EBB ngang",
|
|
88
|
+
image: "\u1EA2nh",
|
|
89
|
+
tableAddRow: "Th\xEAm h\xE0ng b\xEAn d\u01B0\u1EDBi",
|
|
90
|
+
tableAddColumn: "Th\xEAm c\u1ED9t b\xEAn ph\u1EA3i",
|
|
91
|
+
tableDeleteRow: "Xo\xE1 h\xE0ng",
|
|
92
|
+
tableDeleteColumn: "Xo\xE1 c\u1ED9t",
|
|
93
|
+
tableDelete: "Xo\xE1 b\u1EA3ng",
|
|
94
|
+
slashMenu: "Ch\xE8n kh\u1ED1i",
|
|
95
|
+
slashEmpty: "Kh\xF4ng c\xF3 kh\u1ED1i ph\xF9 h\u1EE3p",
|
|
96
|
+
slashKeywords: {
|
|
97
|
+
text: "\u0111o\u1EA1n v\u0103n ch\u1EEF th\u01B0\u1EDDng",
|
|
98
|
+
heading1: "\u0111\u1EC1 m\u1EE5c l\u1EDBn",
|
|
99
|
+
heading2: "\u0111\u1EC1 m\u1EE5c v\u1EEBa",
|
|
100
|
+
heading3: "\u0111\u1EC1 m\u1EE5c nh\u1ECF",
|
|
101
|
+
bulletList: "g\u1EA1ch \u0111\u1EA7u d\xF2ng li\u1EC7t k\xEA",
|
|
102
|
+
orderedList: "li\u1EC7t k\xEA s\u1ED1 th\u1EE9 t\u1EF1",
|
|
103
|
+
taskList: "vi\u1EC7c c\u1EA7n l\xE0m \xF4 tick",
|
|
104
|
+
blockquote: "d\u1EABn l\u1EDDi",
|
|
105
|
+
codeBlock: "m\xE3 ngu\u1ED3n \u0111o\u1EA1n m\xE3",
|
|
106
|
+
table: "l\u01B0\u1EDBi c\u1ED9t h\xE0ng",
|
|
107
|
+
divider: "ph\xE2n c\xE1ch v\u1EA1ch k\u1EBB",
|
|
108
|
+
image: "h\xECnh \u1EA3nh t\u1EA3i l\xEAn",
|
|
109
|
+
tableAddRow: "ch\xE8n h\xE0ng d\xF2ng",
|
|
110
|
+
tableAddColumn: "ch\xE8n c\u1ED9t",
|
|
111
|
+
tableDeleteRow: "b\u1ECF h\xE0ng d\xF2ng",
|
|
112
|
+
tableDeleteColumn: "b\u1ECF c\u1ED9t",
|
|
113
|
+
tableDelete: "b\u1ECF b\u1EA3ng"
|
|
114
|
+
},
|
|
115
|
+
linkInput: "\u0110\u1ECBa ch\u1EC9 li\xEAn k\u1EBFt",
|
|
116
|
+
linkPlaceholder: "D\xE1n ho\u1EB7c nh\u1EADp li\xEAn k\u1EBFt\u2026",
|
|
117
|
+
linkApply: "\xC1p d\u1EE5ng li\xEAn k\u1EBFt",
|
|
118
|
+
linkEdit: "S\u1EEDa li\xEAn k\u1EBFt",
|
|
119
|
+
linkOpen: "M\u1EDF li\xEAn k\u1EBFt",
|
|
120
|
+
linkRemove: "G\u1EE1 li\xEAn k\u1EBFt",
|
|
121
|
+
linkInvalid: "Nh\u1EADp li\xEAn k\u1EBFt web, email ho\u1EB7c s\u1ED1 \u0111i\u1EC7n tho\u1EA1i",
|
|
122
|
+
mentionMenu: "Th\xE0nh vi\xEAn",
|
|
123
|
+
mentionEmpty: "Kh\xF4ng t\xECm th\u1EA5y th\xE0nh vi\xEAn",
|
|
124
|
+
mentionLoading: "\u0110ang t\xECm\u2026",
|
|
125
|
+
imageUploading: "\u0110ang t\u1EA3i \u1EA3nh l\xEAn\u2026",
|
|
126
|
+
imageUploadFailed: "Kh\xF4ng t\u1EA3i \u0111\u01B0\u1EE3c \u1EA3nh l\xEAn",
|
|
127
|
+
taskCheckbox: (text) => text ? `Vi\u1EC7c: ${text}` : "Vi\u1EC7c ch\u01B0a c\xF3 n\u1ED9i dung"
|
|
128
|
+
};
|
|
129
|
+
export {
|
|
130
|
+
markdownEditorEn,
|
|
131
|
+
markdownEditorVi
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=markdown-editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/i18n/namespaces/markdown-editor.ts"],"sourcesContent":["import type { MarkdownEditorLabels } from \"../../editor/markdown-editor-constants.js\";\n\n/*\n * Chữ của `MarkdownEditor` và `RichTextEditor` (`@comitor/ui/editor`) — một namespace cho cả hai.\n * Hình dạng + chú thích từng khoá: `MarkdownEditorLabels`.\n *\n * ⚠ Import ở dòng đầu là `import type` — bị xoá lúc biên dịch. Bảng chữ là tầng của entry CHÍNH,\n * còn trình soạn kéo Tiptap (peer tuỳ chọn); một import CHẠY ĐƯỢC từ đây sang `src/editor/` là kéo\n * Tiptap vào mọi app chỉ dùng `Button`.\n *\n * Tên khối giữ đúng chữ quen thuộc của các trình soạn markdown; bí danh máy (`h1`, `ul`, `todo`…)\n * không nằm ở đây mà ở `slash-commands.ts`, vì chúng không đổi theo ngôn ngữ.\n */\nexport const markdownEditorEn: MarkdownEditorLabels = {\n placeholder: \"Write something, or type “/” for blocks…\",\n editorLabel: \"Editor\",\n\n toolbar: \"Formatting\",\n bold: \"Bold\",\n italic: \"Italic\",\n underline: \"Underline\",\n strike: \"Strikethrough\",\n code: \"Inline code\",\n link: \"Link\",\n undo: \"Undo\",\n redo: \"Redo\",\n\n text: \"Text\",\n heading1: \"Heading 1\",\n heading2: \"Heading 2\",\n heading3: \"Heading 3\",\n bulletList: \"Bulleted list\",\n orderedList: \"Numbered list\",\n taskList: \"Checklist\",\n blockquote: \"Quote\",\n codeBlock: \"Code block\",\n table: \"Table\",\n divider: \"Divider\",\n image: \"Image\",\n tableAddRow: \"Add row below\",\n tableAddColumn: \"Add column right\",\n tableDeleteRow: \"Delete row\",\n tableDeleteColumn: \"Delete column\",\n tableDelete: \"Delete table\",\n\n slashMenu: \"Insert block\",\n slashEmpty: \"No matching blocks\",\n slashKeywords: {\n text: \"paragraph plain\",\n heading1: \"title big\",\n heading2: \"subtitle medium\",\n heading3: \"small section\",\n bulletList: \"unordered bullets\",\n orderedList: \"ordered numbers\",\n taskList: \"checkbox todo tasks\",\n blockquote: \"citation callout\",\n codeBlock: \"snippet programming\",\n table: \"columns rows cells\",\n divider: \"separator rule line\",\n image: \"picture photo upload\",\n tableAddRow: \"insert row\",\n tableAddColumn: \"insert column\",\n tableDeleteRow: \"remove row\",\n tableDeleteColumn: \"remove column\",\n tableDelete: \"remove table\"\n },\n\n linkInput: \"Link address\",\n linkPlaceholder: \"Paste or type a link…\",\n linkApply: \"Apply link\",\n linkEdit: \"Edit link\",\n linkOpen: \"Open link\",\n linkRemove: \"Remove link\",\n linkInvalid: \"Enter a web, email or phone link\",\n\n mentionMenu: \"People\",\n mentionEmpty: \"No people found\",\n mentionLoading: \"Searching…\",\n\n imageUploading: \"Uploading image…\",\n imageUploadFailed: \"Couldn’t upload the image\",\n\n taskCheckbox: (text) => (text ? `Task: ${text}` : \"Empty task\")\n};\n\nexport const markdownEditorVi: MarkdownEditorLabels = {\n placeholder: \"Viết nội dung, hoặc gõ “/” để chèn khối…\",\n editorLabel: \"Trình soạn thảo\",\n\n toolbar: \"Định dạng\",\n bold: \"In đậm\",\n italic: \"In nghiêng\",\n underline: \"Gạch chân\",\n strike: \"Gạch ngang\",\n code: \"Mã nội dòng\",\n link: \"Liên kết\",\n undo: \"Hoàn tác\",\n redo: \"Làm lại\",\n\n text: \"Văn bản\",\n heading1: \"Tiêu đề 1\",\n heading2: \"Tiêu đề 2\",\n heading3: \"Tiêu đề 3\",\n bulletList: \"Danh sách dấu chấm\",\n orderedList: \"Danh sách đánh số\",\n taskList: \"Danh sách việc\",\n blockquote: \"Trích dẫn\",\n codeBlock: \"Khối mã\",\n table: \"Bảng\",\n divider: \"Đường kẻ ngang\",\n image: \"Ảnh\",\n tableAddRow: \"Thêm hàng bên dưới\",\n tableAddColumn: \"Thêm cột bên phải\",\n tableDeleteRow: \"Xoá hàng\",\n tableDeleteColumn: \"Xoá cột\",\n tableDelete: \"Xoá bảng\",\n\n slashMenu: \"Chèn khối\",\n slashEmpty: \"Không có khối phù hợp\",\n slashKeywords: {\n text: \"đoạn văn chữ thường\",\n heading1: \"đề mục lớn\",\n heading2: \"đề mục vừa\",\n heading3: \"đề mục nhỏ\",\n bulletList: \"gạch đầu dòng liệt kê\",\n orderedList: \"liệt kê số thứ tự\",\n taskList: \"việc cần làm ô tick\",\n blockquote: \"dẫn lời\",\n codeBlock: \"mã nguồn đoạn mã\",\n table: \"lưới cột hàng\",\n divider: \"phân cách vạch kẻ\",\n image: \"hình ảnh tải lên\",\n tableAddRow: \"chèn hàng dòng\",\n tableAddColumn: \"chèn cột\",\n tableDeleteRow: \"bỏ hàng dòng\",\n tableDeleteColumn: \"bỏ cột\",\n tableDelete: \"bỏ bảng\"\n },\n\n linkInput: \"Địa chỉ liên kết\",\n linkPlaceholder: \"Dán hoặc nhập liên kết…\",\n linkApply: \"Áp dụng liên kết\",\n linkEdit: \"Sửa liên kết\",\n linkOpen: \"Mở liên kết\",\n linkRemove: \"Gỡ liên kết\",\n linkInvalid: \"Nhập liên kết web, email hoặc số điện thoại\",\n\n mentionMenu: \"Thành viên\",\n mentionEmpty: \"Không tìm thấy thành viên\",\n mentionLoading: \"Đang tìm…\",\n\n imageUploading: \"Đang tải ảnh lên…\",\n imageUploadFailed: \"Không tải được ảnh lên\",\n\n taskCheckbox: (text) => (text ? `Việc: ${text}` : \"Việc chưa có nội dung\")\n};\n"],"mappings":"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","names":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -165,6 +165,7 @@ import './i18n/namespaces/route-tabs.js';
|
|
|
165
165
|
import './i18n/namespaces/rating.js';
|
|
166
166
|
import './i18n/namespaces/pagination.js';
|
|
167
167
|
import './i18n/namespaces/mention.js';
|
|
168
|
+
import './editor/markdown-editor-constants.js';
|
|
168
169
|
import './i18n/namespaces/inline-edit.js';
|
|
169
170
|
import './i18n/namespaces/filter-chips.js';
|
|
170
171
|
import './uploader/file-upload-constants.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@comitor/ui",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"description": "Comitor design system — Shadcn/UI tùy biến theo brand Comitor + component dùng chung cho hệ sinh thái SaaS (Tasks, Chat, CRM, HR…)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -50,6 +50,10 @@
|
|
|
50
50
|
"types": "./dist/uploader/index.d.ts",
|
|
51
51
|
"import": "./dist/uploader/index.js"
|
|
52
52
|
},
|
|
53
|
+
"./editor": {
|
|
54
|
+
"types": "./dist/editor/index.d.ts",
|
|
55
|
+
"import": "./dist/editor/index.js"
|
|
56
|
+
},
|
|
53
57
|
"./form": {
|
|
54
58
|
"types": "./dist/form.d.ts",
|
|
55
59
|
"import": "./dist/form.js"
|
|
@@ -71,17 +75,32 @@
|
|
|
71
75
|
"test:a11y-gate": "node scripts/a11y/self-test.mjs",
|
|
72
76
|
"test:nav-active": "node scripts/check-nav-active.mjs",
|
|
73
77
|
"test:grid-render": "node scripts/check-data-grid-render.mjs",
|
|
78
|
+
"test:editor-markdown": "node scripts/check-editor-markdown.mjs",
|
|
74
79
|
"verify:directives": "node scripts/verify-directives.mjs",
|
|
75
80
|
"smoke:entries": "node scripts/smoke-entries.mjs",
|
|
76
81
|
"check:exports": "publint --strict && attw --pack . --profile esm-only --exclude-entrypoints styles.css",
|
|
77
|
-
"prepublishOnly": "pnpm run typecheck && pnpm run test:i18n && pnpm run build && pnpm run verify:directives && pnpm run smoke:entries && pnpm run check:exports && pnpm run test:nav-active && pnpm run test:grid-contract && pnpm run test:grid-render && pnpm run test:a11y-gate && pnpm run lint:a11y",
|
|
82
|
+
"prepublishOnly": "pnpm run typecheck && pnpm run test:i18n && pnpm run build && pnpm run verify:directives && pnpm run smoke:entries && pnpm run check:exports && pnpm run test:nav-active && pnpm run test:grid-contract && pnpm run test:grid-render && pnpm run test:editor-markdown && pnpm run test:a11y-gate && pnpm run lint:a11y",
|
|
78
83
|
"test:grid-contract": "node scripts/check-grid-contract.mjs",
|
|
79
84
|
"test:i18n": "node scripts/check-i18n.mjs --self-test && node scripts/check-i18n.mjs"
|
|
80
85
|
},
|
|
81
86
|
"peerDependencies": {
|
|
82
87
|
"@tanstack/react-table": ">=8.21.0 <9",
|
|
88
|
+
"@tiptap/core": "^3.31.0",
|
|
89
|
+
"@tiptap/extension-code-block-lowlight": "^3.31.0",
|
|
90
|
+
"@tiptap/extension-image": "^3.31.0",
|
|
91
|
+
"@tiptap/extension-list": "^3.31.0",
|
|
92
|
+
"@tiptap/extension-mention": "^3.31.0",
|
|
93
|
+
"@tiptap/extension-paragraph": "^3.31.0",
|
|
94
|
+
"@tiptap/extension-table": "^3.31.0",
|
|
95
|
+
"@tiptap/extensions": "^3.31.0",
|
|
96
|
+
"@tiptap/markdown": "^3.31.0",
|
|
97
|
+
"@tiptap/pm": "^3.31.0",
|
|
98
|
+
"@tiptap/react": "^3.31.0",
|
|
99
|
+
"@tiptap/starter-kit": "^3.31.0",
|
|
100
|
+
"@tiptap/suggestion": "^3.31.0",
|
|
83
101
|
"@uppy/core": "^6.0.0",
|
|
84
102
|
"@uppy/xhr-upload": "^6.0.0",
|
|
103
|
+
"lowlight": "^3.0.0",
|
|
85
104
|
"lucide-react": ">=0.540.0",
|
|
86
105
|
"next": ">=15",
|
|
87
106
|
"next-themes": ">=0.4",
|
|
@@ -95,12 +114,54 @@
|
|
|
95
114
|
"@tanstack/react-table": {
|
|
96
115
|
"optional": true
|
|
97
116
|
},
|
|
117
|
+
"@tiptap/core": {
|
|
118
|
+
"optional": true
|
|
119
|
+
},
|
|
120
|
+
"@tiptap/extension-code-block-lowlight": {
|
|
121
|
+
"optional": true
|
|
122
|
+
},
|
|
123
|
+
"@tiptap/extension-image": {
|
|
124
|
+
"optional": true
|
|
125
|
+
},
|
|
126
|
+
"@tiptap/extension-list": {
|
|
127
|
+
"optional": true
|
|
128
|
+
},
|
|
129
|
+
"@tiptap/extension-mention": {
|
|
130
|
+
"optional": true
|
|
131
|
+
},
|
|
132
|
+
"@tiptap/extension-paragraph": {
|
|
133
|
+
"optional": true
|
|
134
|
+
},
|
|
135
|
+
"@tiptap/extension-table": {
|
|
136
|
+
"optional": true
|
|
137
|
+
},
|
|
138
|
+
"@tiptap/extensions": {
|
|
139
|
+
"optional": true
|
|
140
|
+
},
|
|
141
|
+
"@tiptap/markdown": {
|
|
142
|
+
"optional": true
|
|
143
|
+
},
|
|
144
|
+
"@tiptap/pm": {
|
|
145
|
+
"optional": true
|
|
146
|
+
},
|
|
147
|
+
"@tiptap/react": {
|
|
148
|
+
"optional": true
|
|
149
|
+
},
|
|
150
|
+
"@tiptap/starter-kit": {
|
|
151
|
+
"optional": true
|
|
152
|
+
},
|
|
153
|
+
"@tiptap/suggestion": {
|
|
154
|
+
"optional": true
|
|
155
|
+
},
|
|
98
156
|
"@uppy/core": {
|
|
99
157
|
"optional": true
|
|
100
158
|
},
|
|
101
159
|
"@uppy/xhr-upload": {
|
|
102
160
|
"optional": true
|
|
103
161
|
},
|
|
162
|
+
"lowlight": {
|
|
163
|
+
"optional": true
|
|
164
|
+
},
|
|
104
165
|
"next": {
|
|
105
166
|
"optional": true
|
|
106
167
|
},
|
|
@@ -158,6 +219,7 @@
|
|
|
158
219
|
"date-fns": "4.4.0",
|
|
159
220
|
"embla-carousel-react": "8.6.0",
|
|
160
221
|
"input-otp": "1.4.2",
|
|
222
|
+
"marked": "^17.0.6",
|
|
161
223
|
"react-day-picker": "9.13.2",
|
|
162
224
|
"react-resizable-panels": "^2.1.7",
|
|
163
225
|
"sonner": "^2.0.0",
|
|
@@ -169,11 +231,26 @@
|
|
|
169
231
|
"@arethetypeswrong/cli": "^0.18.4",
|
|
170
232
|
"@biomejs/biome": "^2.4.11",
|
|
171
233
|
"@tanstack/react-table": "^8.21.3",
|
|
234
|
+
"@tiptap/core": "3.31.4",
|
|
235
|
+
"@tiptap/extension-code-block-lowlight": "3.31.4",
|
|
236
|
+
"@tiptap/extension-image": "3.31.4",
|
|
237
|
+
"@tiptap/extension-list": "3.31.4",
|
|
238
|
+
"@tiptap/extension-mention": "3.31.4",
|
|
239
|
+
"@tiptap/extension-paragraph": "3.31.4",
|
|
240
|
+
"@tiptap/extension-table": "3.31.4",
|
|
241
|
+
"@tiptap/extensions": "3.31.4",
|
|
242
|
+
"@tiptap/markdown": "3.31.4",
|
|
243
|
+
"@tiptap/pm": "3.31.4",
|
|
244
|
+
"@tiptap/react": "3.31.4",
|
|
245
|
+
"@tiptap/starter-kit": "3.31.4",
|
|
246
|
+
"@tiptap/suggestion": "3.31.4",
|
|
172
247
|
"@types/node": "^22.0.0",
|
|
173
248
|
"@types/react": "^19.0.0",
|
|
174
249
|
"@types/react-dom": "^19.0.0",
|
|
175
250
|
"@uppy/core": "^6.0.0",
|
|
176
251
|
"@uppy/xhr-upload": "^6.0.0",
|
|
252
|
+
"highlight.js": "^11.11.1",
|
|
253
|
+
"lowlight": "^3.3.0",
|
|
177
254
|
"lucide-react": "^1.41.0",
|
|
178
255
|
"next": "^16.3.4",
|
|
179
256
|
"next-themes": "^0.4.6",
|