@tulip-systems/core 0.8.3 → 0.9.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/dist/auth/client.d.mts +10 -10
- package/dist/auth/client.mjs +10 -10
- package/dist/auth/server.d.mts +7 -7
- package/dist/auth/server.mjs +7 -7
- package/dist/auth.d.mts +5 -5
- package/dist/auth.mjs +5 -5
- package/dist/commands/client.d.mts +17 -16
- package/dist/commands/client.mjs +17 -16
- package/dist/commands.d.mts +3 -3
- package/dist/commands.mjs +3 -2
- package/dist/components/client.d.mts +48 -48
- package/dist/components/client.mjs +48 -48
- package/dist/components/server.d.mts +2 -2
- package/dist/components/server.mjs +2 -2
- package/dist/components/ui/checkbox.client.mjs +1 -1
- package/dist/components/ui/command.client.d.mts +5 -1
- package/dist/components/ui/command.client.mjs +10 -3
- package/dist/components/ui/field.client.mjs +1 -1
- package/dist/components/ui/input-recipient.mjs +1 -1
- package/dist/components/ui/radio-group.mjs +1 -1
- package/dist/components/ui/tabs.client.mjs +1 -1
- package/dist/components.d.mts +39 -39
- package/dist/components.mjs +38 -38
- package/dist/config.d.mts +6 -6
- package/dist/config.mjs +4 -4
- package/dist/data-tables/client.d.mts +21 -18
- package/dist/data-tables/client.mjs +21 -18
- package/dist/data-tables/server.d.mts +7 -7
- package/dist/data-tables/server.mjs +7 -7
- package/dist/data-tables.d.mts +14 -14
- package/dist/data-tables.mjs +13 -13
- package/dist/database/server.d.mts +1 -1
- package/dist/database/server.mjs +1 -1
- package/dist/database.d.mts +2 -2
- package/dist/database.mjs +1 -1
- package/dist/dist/config.d.mts +5 -0
- package/dist/dist/modules/auth/handler/service.server.d.mts +8 -0
- package/dist/dist/modules/auth/lib/permissions.d.mts +2 -0
- package/dist/dist/modules/config/lib/context.d.mts +4 -0
- package/dist/dist/modules/config/paths/helpers.d.mts +1 -0
- package/dist/dist/modules/config/paths/types.d.mts +3 -0
- package/dist/dist/modules/database/lib/helpers.d.mts +2 -0
- package/dist/dist/modules/database/lib/service.server.d.mts +2 -0
- package/dist/dist/modules/database/lib/types.d.mts +5 -0
- package/dist/dist/modules/emails/lib/service.server.d.mts +2 -0
- package/dist/dist/modules/storage/lib/schema.d.mts +1 -0
- package/dist/dist/modules/storage/lib/service.server.d.mts +5 -0
- package/dist/dist/modules/storage/lib/validators.d.mts +4 -0
- package/dist/dist/modules/storage/providers/lib/types.d.mts +1 -0
- package/dist/dist/modules/storage/providers/lib/validators.d.mts +2 -0
- package/dist/emails/server.d.mts +1 -1
- package/dist/emails/server.mjs +1 -1
- package/dist/inline/client.d.mts +16 -0
- package/dist/inline/client.mjs +17 -0
- package/dist/{inline-edit.d.mts → inline.d.mts} +1 -1
- package/dist/{inline-edit.mjs → inline.mjs} +1 -1
- package/dist/lib/client.d.mts +4 -4
- package/dist/lib/client.mjs +4 -4
- package/dist/lib.d.mts +7 -7
- package/dist/lib.mjs +6 -6
- package/dist/modules/auth/components/allowed.client.d.mts +1 -2
- package/dist/modules/auth/components/update-password-command.d.mts +1 -1
- package/dist/modules/auth/components/update-password-command.mjs +1 -1
- package/dist/modules/auth/lib/validators.d.mts +238 -1
- package/dist/modules/auth/lib/validators.mjs +5 -1
- package/dist/modules/commands/components/menus/context-menu.client.d.mts +40 -0
- package/dist/modules/commands/components/menus/context-menu.client.mjs +47 -0
- package/dist/modules/commands/components/menus/dropdown-menu.client.d.mts +30 -0
- package/dist/modules/commands/{menus → components/menus}/dropdown-menu.client.mjs +20 -24
- package/dist/modules/commands/components/menus/floating-menu.client.d.mts +30 -0
- package/dist/modules/commands/components/menus/floating-menu.client.mjs +33 -0
- package/dist/modules/commands/components/menus/inline-menu.client.d.mts +30 -0
- package/dist/modules/commands/components/menus/inline-menu.client.mjs +41 -0
- package/dist/modules/commands/components/menus/responsive-menu.client.d.mts +17 -0
- package/dist/modules/commands/{menus → components/menus}/responsive-menu.client.mjs +1 -1
- package/dist/modules/commands/components/{alert-dialog-command.client.d.mts → primitives/alert-dialog-command.client.d.mts} +3 -30
- package/dist/modules/commands/components/{alert-dialog-command.client.mjs → primitives/alert-dialog-command.client.mjs} +18 -38
- package/dist/modules/commands/components/{click-command.client.d.mts → primitives/click-command.client.d.mts} +2 -2
- package/dist/modules/commands/components/primitives/click-command.client.mjs +52 -0
- package/dist/modules/commands/components/primitives/command-trigger.client.d.mts +17 -0
- package/dist/modules/commands/components/primitives/command-trigger.client.mjs +42 -0
- package/dist/modules/commands/components/{dialog-command.client.d.mts → primitives/dialog-command.client.d.mts} +3 -27
- package/dist/modules/commands/components/{dialog-command.client.mjs → primitives/dialog-command.client.mjs} +14 -31
- package/dist/modules/commands/components/{dropdown-command.client.d.mts → primitives/dropdown-command.client.d.mts} +5 -17
- package/dist/modules/commands/components/{dropdown-command.client.mjs → primitives/dropdown-command.client.mjs} +30 -30
- package/dist/modules/commands/components/{empty-command.client.d.mts → primitives/empty-command.client.d.mts} +4 -2
- package/dist/modules/commands/components/primitives/empty-command.client.mjs +44 -0
- package/dist/modules/commands/components/{form-dialog-command.client.d.mts → primitives/form-dialog-command.client.d.mts} +3 -33
- package/dist/modules/commands/components/{form-dialog-command.client.mjs → primitives/form-dialog-command.client.mjs} +18 -42
- package/dist/modules/commands/components/render-command.mjs +40 -5
- package/dist/modules/commands/{utils → components/utils}/archive-command.client.d.mts +1 -9
- package/dist/modules/commands/{utils → components/utils}/archive-command.client.mjs +4 -12
- package/dist/modules/commands/{utils → components/utils}/delete-command.client.d.mts +1 -8
- package/dist/modules/commands/{utils → components/utils}/delete-command.client.mjs +4 -11
- package/dist/modules/commands/hooks/use-command-mutation.client.d.mts +1 -6
- package/dist/modules/commands/hooks/use-command-mutation.client.mjs +2 -4
- package/dist/modules/commands/hooks/use-command.client.d.mts +31 -0
- package/dist/modules/commands/hooks/use-command.client.mjs +45 -0
- package/dist/modules/commands/lib/builder.d.mts +39 -0
- package/dist/modules/commands/lib/builder.mjs +47 -0
- package/dist/modules/commands/lib/registery.d.mts +35 -0
- package/dist/modules/commands/lib/registery.mjs +43 -0
- package/dist/modules/data-tables/components/filters/combobox.client.d.mts +2 -2
- package/dist/modules/data-tables/components/filters/combobox.client.mjs +7 -9
- package/dist/modules/data-tables/components/filters/date-range.client.d.mts +24 -0
- package/dist/modules/data-tables/components/filters/date-range.client.mjs +99 -0
- package/dist/modules/data-tables/components/filters/search.client.d.mts +17 -0
- package/dist/modules/data-tables/components/filters/search.client.mjs +32 -0
- package/dist/modules/data-tables/components/filters/slider.client.d.mts +2 -2
- package/dist/modules/data-tables/components/filters/slider.client.mjs +2 -2
- package/dist/modules/data-tables/components/filters/toggle.client.d.mts +17 -0
- package/dist/modules/data-tables/components/filters/toggle.client.mjs +25 -0
- package/dist/modules/data-tables/hooks/use-context.client.d.mts +9 -20
- package/dist/modules/data-tables/hooks/use-selection.client.mjs +8 -2
- package/dist/modules/data-tables/hooks/use-table.client.d.mts +1 -3
- package/dist/modules/data-tables/hooks/use-table.client.mjs +4 -3
- package/dist/modules/data-tables/lib/converters/filters.d.mts +40 -0
- package/dist/modules/data-tables/lib/converters/filters.mjs +38 -0
- package/dist/modules/data-tables/lib/converters/{cursor.d.mts → pagination.d.mts} +3 -3
- package/dist/modules/data-tables/lib/converters/{cursor.mjs → pagination.mjs} +3 -3
- package/dist/modules/data-tables/lib/converters/sorting.d.mts +42 -8
- package/dist/modules/data-tables/lib/converters/sorting.mjs +47 -11
- package/dist/modules/data-tables/lib/filters/parsers.d.mts +6 -1
- package/dist/modules/data-tables/lib/filters/parsers.mjs +10 -1
- package/dist/modules/data-tables/lib/types.d.mts +4 -8
- package/dist/modules/data-tables/server/get-data.server.d.mts +2 -3
- package/dist/modules/data-tables/server/get-data.server.mjs +5 -5
- package/dist/modules/data-tables/tables/data-table/components/table.d.mts +1 -3
- package/dist/modules/data-tables/tables/data-table/components/table.mjs +1 -1
- package/dist/modules/data-tables/tables/inline-table/components/row.client.mjs +2 -7
- package/dist/modules/data-tables/tables/inline-table/components/table.d.mts +1 -3
- package/dist/modules/data-tables/tables/inline-table/components/table.mjs +1 -1
- package/dist/modules/data-tables/tables/inline-table/hooks/context.client.d.mts +1 -3
- package/dist/modules/inline/components/cell.client.d.mts +20 -0
- package/dist/modules/inline/components/cell.client.mjs +46 -0
- package/dist/modules/inline/components/field.client.d.mts +36 -0
- package/dist/modules/inline/components/field.client.mjs +61 -0
- package/dist/modules/inline/components/inputs/combobox-dropdown.client.d.mts +27 -0
- package/dist/modules/inline/components/inputs/combobox-dropdown.client.mjs +49 -0
- package/dist/modules/inline/components/inputs/combobox.client.d.mts +22 -0
- package/dist/modules/inline/components/inputs/combobox.client.mjs +45 -0
- package/dist/modules/inline/components/inputs/date-time.client.d.mts +24 -0
- package/dist/modules/inline/components/inputs/date-time.client.mjs +48 -0
- package/dist/modules/inline/components/inputs/date.client.d.mts +66 -0
- package/dist/modules/inline/components/inputs/date.client.mjs +175 -0
- package/dist/modules/inline/components/inputs/editor.client.d.mts +25 -0
- package/dist/modules/inline/components/inputs/editor.client.mjs +51 -0
- package/dist/modules/inline/components/inputs/input-recipient.client.d.mts +27 -0
- package/dist/modules/inline/components/inputs/input-recipient.client.mjs +48 -0
- package/dist/modules/inline/components/inputs/input.client.d.mts +52 -0
- package/dist/modules/inline/components/inputs/input.client.mjs +129 -0
- package/dist/modules/inline/components/inputs/select.client.d.mts +31 -0
- package/dist/modules/inline/components/inputs/select.client.mjs +64 -0
- package/dist/modules/inline/components/inputs/switch.client.d.mts +21 -0
- package/dist/modules/inline/components/inputs/switch.client.mjs +42 -0
- package/dist/modules/inline/components/inputs/toggle.client.d.mts +24 -0
- package/dist/modules/inline/components/inputs/toggle.client.mjs +47 -0
- package/dist/modules/inline/hooks/inline-provider.d.mts +28 -0
- package/dist/modules/inline/hooks/inline-provider.mjs +25 -0
- package/dist/modules/inline/hooks/inline-state.client.d.mts +30 -0
- package/dist/modules/inline/hooks/inline-state.client.mjs +25 -0
- package/dist/modules/inline/hooks/use-inline.client.d.mts +144 -0
- package/dist/modules/inline/hooks/use-inline.client.mjs +125 -0
- package/dist/modules/{inline-edit → inline}/lib/validators.d.mts +1 -1
- package/dist/modules/{inline-edit → inline}/lib/validators.mjs +1 -1
- package/dist/modules/inline/lib/variants.d.mts +11 -0
- package/dist/modules/{inline-edit → inline}/lib/variants.mjs +1 -1
- package/dist/modules/storage/lib/service.server.d.mts +9 -9
- package/dist/router/client.d.mts +1 -1
- package/dist/router/client.mjs +1 -1
- package/dist/router/server.d.mts +7 -7
- package/dist/router/server.mjs +7 -7
- package/dist/router.d.mts +1 -1
- package/dist/router.mjs +1 -1
- package/dist/src/components/common/icons.d.mts +60 -0
- package/dist/src/components/common/icons.mjs +121 -0
- package/dist/src/components/common/status.d.mts +52 -0
- package/dist/src/components/common/status.mjs +55 -0
- package/dist/src/components/editor/components/content.client.d.mts +6 -0
- package/dist/src/components/editor/components/content.client.mjs +16 -0
- package/dist/src/components/editor/components/editor.client.d.mts +48 -0
- package/dist/src/components/editor/components/editor.client.mjs +55 -0
- package/dist/src/components/editor/components/menu-nodes.client.mjs +92 -0
- package/dist/src/components/editor/components/menu.client.d.mts +9 -0
- package/dist/src/components/editor/components/menu.client.mjs +168 -0
- package/dist/src/components/editor/extensions/file-handler/extension.d.mts +20 -0
- package/dist/src/components/editor/extensions/file-handler/extension.mjs +39 -0
- package/dist/src/components/editor/extensions/file-handler/strategy.d.mts +26 -0
- package/dist/src/components/editor/extensions/file-handler/strategy.mjs +110 -0
- package/dist/src/components/editor/extensions/file-handler/utils.mjs +49 -0
- package/dist/src/components/editor/extensions/image/extension.d.mts +7 -0
- package/dist/src/components/editor/extensions/image/extension.mjs +50 -0
- package/dist/src/components/editor/extensions/skeleton/extension.mjs +40 -0
- package/dist/src/components/editor/extensions/skeleton/renderer.mjs +24 -0
- package/dist/src/components/editor/lib/constants.d.mts +62 -0
- package/dist/src/components/editor/lib/constants.mjs +101 -0
- package/dist/src/components/editor/lib/extensions.d.mts +67 -0
- package/dist/src/components/editor/lib/extensions.mjs +49 -0
- package/dist/src/components/editor/lib/helpers.d.mts +21 -0
- package/dist/src/components/editor/lib/helpers.mjs +68 -0
- package/dist/src/components/editor/lib/types.d.mts +9 -0
- package/dist/src/components/editor/lib/variants.mjs +15 -0
- package/dist/src/components/emails/forget-password-email.mjs +50 -0
- package/dist/src/components/header/back-button.client.d.mts +9 -0
- package/dist/src/components/header/back-button.client.mjs +42 -0
- package/dist/src/components/header/bottom-bar.client.d.mts +28 -0
- package/dist/src/components/header/bottom-bar.client.mjs +37 -0
- package/dist/src/components/header/breadcrumbs.client.d.mts +34 -0
- package/dist/src/components/header/breadcrumbs.client.mjs +63 -0
- package/dist/src/components/header/header.client.d.mts +11 -0
- package/dist/src/components/header/header.client.mjs +14 -0
- package/dist/src/components/header/indicator.client.mjs +24 -0
- package/dist/src/components/header/mobile-nav-switcher.client.d.mts +9 -0
- package/dist/src/components/header/mobile-nav-switcher.client.mjs +18 -0
- package/dist/src/components/header/top-bar.client.d.mts +42 -0
- package/dist/src/components/header/top-bar.client.mjs +47 -0
- package/dist/src/components/layouts/admin-content.client.d.mts +12 -0
- package/dist/src/components/layouts/admin-content.client.mjs +22 -0
- package/dist/src/components/layouts/admin-error-pages.d.mts +22 -0
- package/dist/src/components/layouts/admin-error-pages.mjs +59 -0
- package/dist/src/components/layouts/admin-layout.d.mts +7 -0
- package/dist/src/components/layouts/admin-layout.mjs +13 -0
- package/dist/src/components/layouts/admin-loading.d.mts +7 -0
- package/dist/src/components/layouts/admin-loading.mjs +13 -0
- package/dist/src/components/layouts/empty-page.d.mts +30 -0
- package/dist/src/components/layouts/empty-page.mjs +28 -0
- package/dist/src/components/layouts/error-page.d.mts +47 -0
- package/dist/src/components/layouts/error-page.mjs +53 -0
- package/dist/src/components/layouts/error-sections.d.mts +28 -0
- package/dist/src/components/layouts/error-sections.mjs +46 -0
- package/dist/src/components/layouts/list-layout.d.mts +11 -0
- package/dist/src/components/layouts/list-layout.mjs +14 -0
- package/dist/src/components/layouts/providers.client.d.mts +9 -0
- package/dist/src/components/layouts/providers.client.mjs +31 -0
- package/dist/src/components/layouts/root-error-pages.d.mts +9 -0
- package/dist/src/components/layouts/root-error-pages.mjs +16 -0
- package/dist/src/components/layouts/root-layout.server.d.mts +36 -0
- package/dist/src/components/layouts/root-layout.server.mjs +46 -0
- package/dist/src/components/layouts/root-loading.d.mts +6 -0
- package/dist/src/components/layouts/root-loading.mjs +13 -0
- package/dist/src/components/layouts/tab-layout.d.mts +22 -0
- package/dist/src/components/layouts/tab-layout.mjs +50 -0
- package/dist/src/components/lists/data-list.d.mts +30 -0
- package/dist/src/components/lists/data-list.mjs +35 -0
- package/dist/src/components/lists/data-stack.d.mts +48 -0
- package/dist/src/components/lists/data-stack.mjs +56 -0
- package/dist/src/components/navigation/admin-sidebar-header.client.mjs +92 -0
- package/dist/src/components/navigation/admin-sidebar-paths.client.d.mts +91 -0
- package/dist/src/components/navigation/admin-sidebar-paths.client.mjs +143 -0
- package/dist/src/components/navigation/admin-sidebar-skeleton.mjs +30 -0
- package/dist/src/components/ui/accordion.client.d.mts +25 -0
- package/dist/src/components/ui/accordion.client.mjs +57 -0
- package/dist/src/components/ui/alert-dialog.client.d.mts +60 -0
- package/dist/src/components/ui/alert-dialog.client.mjs +103 -0
- package/dist/src/components/ui/alert.d.mts +28 -0
- package/dist/src/components/ui/alert.mjs +44 -0
- package/dist/src/components/ui/aspect-ratio.client.d.mts +9 -0
- package/dist/src/components/ui/aspect-ratio.client.mjs +15 -0
- package/dist/src/components/ui/avatar.client.d.mts +34 -0
- package/dist/src/components/ui/avatar.client.mjs +53 -0
- package/dist/src/components/ui/badge.d.mts +19 -0
- package/dist/src/components/ui/badge.mjs +28 -0
- package/dist/src/components/ui/breadcrumb.d.mts +37 -0
- package/dist/src/components/ui/breadcrumb.mjs +70 -0
- package/dist/src/components/ui/button-group.d.mts +28 -0
- package/dist/src/components/ui/button-group.mjs +40 -0
- package/dist/src/components/ui/button.d.mts +21 -0
- package/dist/src/components/ui/button.mjs +48 -0
- package/dist/src/components/ui/calendar.client.d.mts +30 -0
- package/dist/src/components/ui/calendar.client.mjs +113 -0
- package/dist/src/components/ui/card.d.mts +37 -0
- package/dist/src/components/ui/card.mjs +57 -0
- package/dist/src/components/ui/carousel.client.d.mts +56 -0
- package/dist/src/components/ui/carousel.client.mjs +135 -0
- package/dist/src/components/ui/chart.client.d.mts +71 -0
- package/dist/src/components/ui/chart.client.mjs +142 -0
- package/dist/src/components/ui/checkbox.client.d.mts +11 -0
- package/dist/src/components/ui/checkbox.client.mjs +23 -0
- package/dist/src/components/ui/collapsible.client.d.mts +15 -0
- package/dist/src/components/ui/collapsible.client.mjs +27 -0
- package/dist/src/components/ui/color-picker.client.d.mts +15 -0
- package/dist/src/components/ui/color-picker.client.mjs +38 -0
- package/dist/src/components/ui/combobox-dropdown.client.d.mts +45 -0
- package/dist/src/components/ui/combobox-dropdown.client.mjs +94 -0
- package/dist/src/components/ui/combobox.client.d.mts +30 -0
- package/dist/src/components/ui/combobox.client.mjs +66 -0
- package/dist/src/components/ui/command.client.d.mts +58 -0
- package/dist/src/components/ui/command.client.mjs +97 -0
- package/dist/src/components/ui/context-menu.client.d.mts +85 -0
- package/dist/src/components/ui/context-menu.client.mjs +127 -0
- package/dist/src/components/ui/date-picker.client.d.mts +20 -0
- package/dist/src/components/ui/date-picker.client.mjs +43 -0
- package/dist/src/components/ui/dialog.client.d.mts +51 -0
- package/dist/src/components/ui/dialog.client.mjs +98 -0
- package/dist/src/components/ui/drawer.client.d.mts +44 -0
- package/dist/src/components/ui/drawer.client.mjs +80 -0
- package/dist/src/components/ui/dropdown-menu.client.d.mts +84 -0
- package/dist/src/components/ui/dropdown-menu.client.mjs +130 -0
- package/dist/src/components/ui/empty.d.mts +35 -0
- package/dist/src/components/ui/empty.mjs +61 -0
- package/dist/src/components/ui/field.client.d.mts +64 -0
- package/dist/src/components/ui/field.client.mjs +113 -0
- package/dist/src/components/ui/form.client.d.mts +47 -0
- package/dist/src/components/ui/form.client.mjs +92 -0
- package/dist/src/components/ui/hover-card.client.d.mts +19 -0
- package/dist/src/components/ui/hover-card.client.mjs +34 -0
- package/dist/src/components/ui/input-date-time.client.d.mts +22 -0
- package/dist/src/components/ui/input-date-time.client.mjs +33 -0
- package/dist/src/components/ui/input-date.d.mts +13 -0
- package/dist/src/components/ui/input-date.mjs +15 -0
- package/dist/src/components/ui/input-group.client.d.mts +58 -0
- package/dist/src/components/ui/input-group.client.mjs +105 -0
- package/dist/src/components/ui/input-recipient.d.mts +26 -0
- package/dist/src/components/ui/input-recipient.mjs +218 -0
- package/dist/src/components/ui/input-time.d.mts +13 -0
- package/dist/src/components/ui/input-time.mjs +15 -0
- package/dist/src/components/ui/input.d.mts +11 -0
- package/dist/src/components/ui/input.mjs +15 -0
- package/dist/src/components/ui/item.d.mts +62 -0
- package/dist/src/components/ui/item.mjs +118 -0
- package/dist/src/components/ui/kbd.d.mts +13 -0
- package/dist/src/components/ui/kbd.mjs +21 -0
- package/dist/src/components/ui/label.d.mts +11 -0
- package/dist/src/components/ui/label.mjs +17 -0
- package/dist/src/components/ui/loader.d.mts +6 -0
- package/dist/src/components/ui/loader.mjs +62 -0
- package/dist/src/components/ui/navigation-menu.d.mts +46 -0
- package/dist/src/components/ui/navigation-menu.mjs +81 -0
- package/dist/src/components/ui/pagination.d.mts +45 -0
- package/dist/src/components/ui/pagination.mjs +87 -0
- package/dist/src/components/ui/popover.client.d.mts +34 -0
- package/dist/src/components/ui/popover.client.mjs +58 -0
- package/dist/src/components/ui/progress.client.d.mts +12 -0
- package/dist/src/components/ui/progress.client.mjs +22 -0
- package/dist/src/components/ui/radio-group.d.mts +15 -0
- package/dist/src/components/ui/radio-group.mjs +29 -0
- package/dist/src/components/ui/resizable.client.d.mts +20 -0
- package/dist/src/components/ui/resizable.client.mjs +31 -0
- package/dist/src/components/ui/scroll-area.d.mts +17 -0
- package/dist/src/components/ui/scroll-area.mjs +39 -0
- package/dist/src/components/ui/select.client.d.mts +53 -0
- package/dist/src/components/ui/select.client.mjs +102 -0
- package/dist/src/components/ui/separator.d.mts +13 -0
- package/dist/src/components/ui/separator.mjs +19 -0
- package/dist/src/components/ui/sheet.client.d.mts +42 -0
- package/dist/src/components/ui/sheet.client.mjs +92 -0
- package/dist/src/components/ui/sidebar.client.d.mts +167 -0
- package/dist/src/components/ui/sidebar.client.mjs +373 -0
- package/dist/src/components/ui/skeleton.d.mts +9 -0
- package/dist/src/components/ui/skeleton.mjs +14 -0
- package/dist/src/components/ui/slider.d.mts +15 -0
- package/dist/src/components/ui/slider.mjs +39 -0
- package/dist/src/components/ui/sonner.client.d.mts +9 -0
- package/dist/src/components/ui/sonner.client.mjs +24 -0
- package/dist/src/components/ui/spinner.d.mts +9 -0
- package/dist/src/components/ui/spinner.mjs +16 -0
- package/dist/src/components/ui/switch.client.d.mts +14 -0
- package/dist/src/components/ui/switch.client.mjs +22 -0
- package/dist/src/components/ui/tabs.client.d.mts +30 -0
- package/dist/src/components/ui/tabs.client.mjs +48 -0
- package/dist/src/components/ui/textarea.d.mts +10 -0
- package/dist/src/components/ui/textarea.mjs +14 -0
- package/dist/src/components/ui/toggle-group.client.d.mts +28 -0
- package/dist/src/components/ui/toggle-group.client.mjs +54 -0
- package/dist/src/components/ui/toggle.client.d.mts +19 -0
- package/dist/src/components/ui/toggle.client.mjs +39 -0
- package/dist/src/components/ui/tooltip.client.d.mts +23 -0
- package/dist/src/components/ui/tooltip.client.mjs +38 -0
- package/dist/src/lib/hooks/use-action.d.mts +16 -0
- package/dist/src/lib/hooks/use-action.mjs +41 -0
- package/dist/src/lib/hooks/use-indicator.d.mts +39 -0
- package/dist/src/lib/hooks/use-indicator.mjs +63 -0
- package/dist/src/lib/hooks/use-mobile.client.d.mts +6 -0
- package/dist/src/lib/hooks/use-mobile.client.mjs +21 -0
- package/dist/src/lib/types/config.d.mts +11 -0
- package/dist/src/lib/utils/array-move.d.mts +10 -0
- package/dist/src/lib/utils/array-move.mjs +12 -0
- package/dist/src/lib/utils/cn.d.mts +6 -0
- package/dist/src/lib/utils/cn.mjs +10 -0
- package/dist/src/lib/utils/fonts.d.mts +7 -0
- package/dist/src/lib/utils/fonts.mjs +11 -0
- package/dist/src/lib/utils/format.d.mts +51 -0
- package/dist/src/lib/utils/format.mjs +113 -0
- package/dist/src/lib/utils/manifest.d.mts +7 -0
- package/dist/src/lib/utils/manifest.mjs +35 -0
- package/dist/src/lib/utils/markdown.d.mts +9 -0
- package/dist/src/lib/utils/markdown.mjs +14 -0
- package/dist/src/lib/utils/url.d.mts +9 -0
- package/dist/src/lib/utils/url.mjs +15 -0
- package/dist/src/lib/utils/user-agent.mjs +74 -0
- package/dist/src/modules/auth/components/allowed.client.d.mts +33 -0
- package/dist/src/modules/auth/components/allowed.client.mjs +19 -0
- package/dist/src/modules/auth/components/auth-layout.server.d.mts +9 -0
- package/dist/src/modules/auth/components/auth-layout.server.mjs +36 -0
- package/dist/src/modules/auth/components/auth-loading.d.mts +6 -0
- package/dist/src/modules/auth/components/auth-loading.mjs +17 -0
- package/dist/src/modules/auth/components/create-first-user-guard.server.d.mts +15 -0
- package/dist/src/modules/auth/components/create-first-user-guard.server.mjs +15 -0
- package/dist/src/modules/auth/components/create-first-user-page.client.d.mts +6 -0
- package/dist/src/modules/auth/components/create-first-user-page.client.mjs +153 -0
- package/dist/src/modules/auth/components/forget-password-page.client.d.mts +6 -0
- package/dist/src/modules/auth/components/forget-password-page.client.mjs +72 -0
- package/dist/src/modules/auth/components/guard.server.d.mts +14 -0
- package/dist/src/modules/auth/components/guard.server.mjs +20 -0
- package/dist/src/modules/auth/components/login-page.client.d.mts +11 -0
- package/dist/src/modules/auth/components/login-page.client.mjs +155 -0
- package/dist/src/modules/auth/components/reset-password-page.client.d.mts +11 -0
- package/dist/src/modules/auth/components/reset-password-page.client.mjs +121 -0
- package/dist/src/modules/auth/components/update-password-command.d.mts +22 -0
- package/dist/src/modules/auth/components/update-password-command.mjs +47 -0
- package/dist/src/modules/auth/db/schema.d.mts +983 -0
- package/dist/src/modules/auth/db/schema.mjs +101 -0
- package/dist/src/modules/auth/handler/create-client.client.d.mts +6393 -0
- package/dist/src/modules/auth/handler/create-client.client.mjs +25 -0
- package/dist/src/modules/auth/handler/proxy.server.d.mts +11 -0
- package/dist/src/modules/auth/handler/proxy.server.mjs +20 -0
- package/dist/src/modules/auth/handler/route.server.d.mts +16 -0
- package/dist/src/modules/auth/handler/route.server.mjs +28 -0
- package/dist/src/modules/auth/handler/service.server.d.mts +2101 -0
- package/dist/src/modules/auth/handler/service.server.mjs +87 -0
- package/dist/src/modules/auth/hooks/use-auth-client.d.mts +23 -0
- package/dist/src/modules/auth/hooks/use-auth-client.mjs +30 -0
- package/dist/src/modules/auth/hooks/use-permission.d.mts +42 -0
- package/dist/src/modules/auth/hooks/use-permission.mjs +57 -0
- package/dist/src/modules/auth/hooks/use-session.d.mts +40 -0
- package/dist/src/modules/auth/hooks/use-session.mjs +22 -0
- package/dist/src/modules/auth/lib/helpers.server.d.mts +84 -0
- package/dist/src/modules/auth/lib/helpers.server.mjs +41 -0
- package/dist/src/modules/auth/lib/permissions.d.mts +17 -0
- package/dist/src/modules/auth/lib/permissions.mjs +14 -0
- package/dist/src/modules/auth/lib/validators.d.mts +299 -0
- package/dist/src/modules/auth/lib/validators.mjs +59 -0
- package/dist/src/modules/commands/components/menus/context-menu.client.d.mts +40 -0
- package/dist/src/modules/commands/components/menus/context-menu.client.mjs +47 -0
- package/dist/src/modules/commands/components/menus/dropdown-menu.client.d.mts +30 -0
- package/dist/src/modules/commands/components/menus/dropdown-menu.client.mjs +58 -0
- package/dist/src/modules/commands/components/menus/floating-menu.client.d.mts +30 -0
- package/dist/src/modules/commands/components/menus/floating-menu.client.mjs +33 -0
- package/dist/src/modules/commands/components/menus/inline-menu.client.d.mts +30 -0
- package/dist/src/modules/commands/components/menus/inline-menu.client.mjs +41 -0
- package/dist/src/modules/commands/components/menus/responsive-menu.client.d.mts +17 -0
- package/dist/src/modules/commands/components/menus/responsive-menu.client.mjs +22 -0
- package/dist/src/modules/commands/components/primitives/alert-dialog-command.client.d.mts +65 -0
- package/dist/src/modules/commands/components/primitives/alert-dialog-command.client.mjs +138 -0
- package/dist/src/modules/commands/components/primitives/click-command.client.d.mts +26 -0
- package/dist/src/modules/commands/components/primitives/click-command.client.mjs +52 -0
- package/dist/src/modules/commands/components/primitives/command-trigger.client.d.mts +17 -0
- package/dist/src/modules/commands/components/primitives/command-trigger.client.mjs +42 -0
- package/dist/src/modules/commands/components/primitives/dialog-command.client.d.mts +53 -0
- package/dist/src/modules/commands/components/primitives/dialog-command.client.mjs +116 -0
- package/dist/src/modules/commands/components/primitives/dropdown-command.client.d.mts +47 -0
- package/dist/src/modules/commands/components/primitives/dropdown-command.client.mjs +131 -0
- package/dist/src/modules/commands/components/primitives/empty-command.client.d.mts +20 -0
- package/dist/src/modules/commands/components/primitives/empty-command.client.mjs +44 -0
- package/dist/src/modules/commands/components/primitives/form-dialog-command.client.d.mts +71 -0
- package/dist/src/modules/commands/components/primitives/form-dialog-command.client.mjs +163 -0
- package/dist/src/modules/commands/components/render-command.mjs +50 -0
- package/dist/src/modules/commands/components/utils/archive-command.client.d.mts +24 -0
- package/dist/src/modules/commands/components/utils/archive-command.client.mjs +29 -0
- package/dist/src/modules/commands/components/utils/delete-command.client.d.mts +20 -0
- package/dist/src/modules/commands/components/utils/delete-command.client.mjs +28 -0
- package/dist/src/modules/commands/hooks/use-command-mutation.client.d.mts +11 -0
- package/dist/src/modules/commands/hooks/use-command-mutation.client.mjs +39 -0
- package/dist/src/modules/commands/hooks/use-command.client.d.mts +31 -0
- package/dist/src/modules/commands/hooks/use-command.client.mjs +45 -0
- package/dist/src/modules/commands/lib/builder.d.mts +39 -0
- package/dist/src/modules/commands/lib/builder.mjs +47 -0
- package/dist/src/modules/commands/lib/registery.d.mts +35 -0
- package/dist/src/modules/commands/lib/registery.mjs +43 -0
- package/dist/src/modules/config/lib/config.d.mts +16 -0
- package/dist/src/modules/config/lib/config.mjs +8 -0
- package/dist/src/modules/config/lib/context.d.mts +17 -0
- package/dist/src/modules/config/lib/context.mjs +7 -0
- package/dist/src/modules/config/paths/helpers.d.mts +9 -0
- package/dist/src/modules/config/paths/helpers.mjs +8 -0
- package/dist/src/modules/config/paths/types.d.mts +31 -0
- package/dist/src/modules/data-tables/components/cell/common.client.d.mts +26 -0
- package/dist/src/modules/data-tables/components/cell/common.client.mjs +35 -0
- package/dist/src/modules/data-tables/components/cell/index.client.d.mts +10 -0
- package/dist/src/modules/data-tables/components/cell/index.client.mjs +24 -0
- package/dist/src/modules/data-tables/components/cell/select.client.d.mts +10 -0
- package/dist/src/modules/data-tables/components/cell/select.client.mjs +36 -0
- package/dist/src/modules/data-tables/components/column-header.d.mts +15 -0
- package/dist/src/modules/data-tables/components/column-header.mjs +46 -0
- package/dist/src/modules/data-tables/components/filters/combobox.client.d.mts +27 -0
- package/dist/src/modules/data-tables/components/filters/combobox.client.mjs +97 -0
- package/dist/src/modules/data-tables/components/filters/date-range.client.d.mts +24 -0
- package/dist/src/modules/data-tables/components/filters/date-range.client.mjs +99 -0
- package/dist/src/modules/data-tables/components/filters/search.client.d.mts +17 -0
- package/dist/src/modules/data-tables/components/filters/search.client.mjs +32 -0
- package/dist/src/modules/data-tables/components/filters/slider.client.d.mts +22 -0
- package/dist/src/modules/data-tables/components/filters/slider.client.mjs +128 -0
- package/dist/src/modules/data-tables/components/filters/toggle.client.d.mts +17 -0
- package/dist/src/modules/data-tables/components/filters/toggle.client.mjs +25 -0
- package/dist/src/modules/data-tables/components/footer.mjs +28 -0
- package/dist/src/modules/data-tables/components/header.d.mts +40 -0
- package/dist/src/modules/data-tables/components/header.mjs +43 -0
- package/dist/src/modules/data-tables/components/layout.d.mts +11 -0
- package/dist/src/modules/data-tables/components/layout.mjs +14 -0
- package/dist/src/modules/data-tables/components/search-input.client.d.mts +6 -0
- package/dist/src/modules/data-tables/components/search-input.client.mjs +19 -0
- package/dist/src/modules/data-tables/components/skeleton.d.mts +6 -0
- package/dist/src/modules/data-tables/components/skeleton.mjs +21 -0
- package/dist/src/modules/data-tables/components/table.d.mts +33 -0
- package/dist/src/modules/data-tables/components/table.mjs +55 -0
- package/dist/src/modules/data-tables/components/toolbar.d.mts +22 -0
- package/dist/src/modules/data-tables/components/toolbar.mjs +21 -0
- package/dist/src/modules/data-tables/hooks/use-context.client.d.mts +47 -0
- package/dist/src/modules/data-tables/hooks/use-context.client.mjs +34 -0
- package/dist/src/modules/data-tables/hooks/use-search.client.mjs +39 -0
- package/dist/src/modules/data-tables/hooks/use-selection.client.mjs +44 -0
- package/dist/src/modules/data-tables/hooks/use-table.client.d.mts +10 -0
- package/dist/src/modules/data-tables/hooks/use-table.client.mjs +55 -0
- package/dist/src/modules/data-tables/lib/converters/dto.d.mts +50 -0
- package/dist/src/modules/data-tables/lib/converters/dto.mjs +24 -0
- package/dist/src/modules/data-tables/lib/converters/filters.d.mts +41 -0
- package/dist/src/modules/data-tables/lib/converters/filters.mjs +38 -0
- package/dist/src/modules/data-tables/lib/converters/pagination.d.mts +17 -0
- package/dist/src/modules/data-tables/lib/converters/pagination.mjs +15 -0
- package/dist/src/modules/data-tables/lib/converters/search.d.mts +16 -0
- package/dist/src/modules/data-tables/lib/converters/search.mjs +15 -0
- package/dist/src/modules/data-tables/lib/converters/sorting.d.mts +48 -0
- package/dist/src/modules/data-tables/lib/converters/sorting.mjs +55 -0
- package/dist/src/modules/data-tables/lib/filters/config.d.mts +13 -0
- package/dist/src/modules/data-tables/lib/filters/config.mjs +5 -0
- package/dist/src/modules/data-tables/lib/filters/helpers.d.mts +10 -0
- package/dist/src/modules/data-tables/lib/filters/helpers.mjs +16 -0
- package/dist/src/modules/data-tables/lib/filters/parsers.d.mts +46 -0
- package/dist/src/modules/data-tables/lib/filters/parsers.mjs +47 -0
- package/dist/src/modules/data-tables/lib/filters/resolvers.d.mts +28 -0
- package/dist/src/modules/data-tables/lib/filters/resolvers.mjs +55 -0
- package/dist/src/modules/data-tables/lib/helpers/create-column.mjs +10 -0
- package/dist/src/modules/data-tables/lib/search-params.d.mts +21 -0
- package/dist/src/modules/data-tables/lib/search-params.mjs +16 -0
- package/dist/src/modules/data-tables/lib/types.d.mts +54 -0
- package/dist/src/modules/data-tables/lib/validators.d.mts +19 -0
- package/dist/src/modules/data-tables/lib/validators.mjs +16 -0
- package/dist/src/modules/data-tables/server/get-data.server.d.mts +29 -0
- package/dist/src/modules/data-tables/server/get-data.server.mjs +47 -0
- package/dist/src/modules/data-tables/strategies/helpers/sorting.mjs +37 -0
- package/dist/src/modules/data-tables/strategies/infinite/components.mjs +50 -0
- package/dist/src/modules/data-tables/strategies/infinite/strategy.d.mts +20 -0
- package/dist/src/modules/data-tables/strategies/infinite/strategy.mjs +50 -0
- package/dist/src/modules/data-tables/strategies/pagination/components.mjs +131 -0
- package/dist/src/modules/data-tables/strategies/pagination/strategy.d.mts +12 -0
- package/dist/src/modules/data-tables/strategies/pagination/strategy.mjs +45 -0
- package/dist/src/modules/data-tables/tables/data-table/components/body.mjs +32 -0
- package/dist/src/modules/data-tables/tables/data-table/components/header.mjs +12 -0
- package/dist/src/modules/data-tables/tables/data-table/components/row.mjs +13 -0
- package/dist/src/modules/data-tables/tables/data-table/components/table.d.mts +8 -0
- package/dist/src/modules/data-tables/tables/data-table/components/table.mjs +42 -0
- package/dist/src/modules/data-tables/tables/inline-table/components/body.mjs +69 -0
- package/dist/src/modules/data-tables/tables/inline-table/components/cells/common.d.mts +11 -0
- package/dist/src/modules/data-tables/tables/inline-table/components/cells/common.mjs +14 -0
- package/dist/src/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.d.mts +24 -0
- package/dist/src/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.mjs +38 -0
- package/dist/src/modules/data-tables/tables/inline-table/components/cells/read-only.d.mts +11 -0
- package/dist/src/modules/data-tables/tables/inline-table/components/cells/read-only.mjs +14 -0
- package/dist/src/modules/data-tables/tables/inline-table/components/header.mjs +10 -0
- package/dist/src/modules/data-tables/tables/inline-table/components/row.client.mjs +24 -0
- package/dist/src/modules/data-tables/tables/inline-table/components/table.d.mts +14 -0
- package/dist/src/modules/data-tables/tables/inline-table/components/table.mjs +52 -0
- package/dist/src/modules/data-tables/tables/inline-table/hooks/context.client.d.mts +48 -0
- package/dist/src/modules/data-tables/tables/inline-table/hooks/context.client.mjs +58 -0
- package/dist/src/modules/data-tables/tables/inline-table/hooks/use-hotkeys.client.d.mts +29 -0
- package/dist/src/modules/data-tables/tables/inline-table/hooks/use-hotkeys.client.mjs +94 -0
- package/dist/src/modules/database/lib/helpers.d.mts +15 -0
- package/dist/src/modules/database/lib/helpers.mjs +16 -0
- package/dist/src/modules/database/lib/service.server.d.mts +33 -0
- package/dist/src/modules/database/lib/service.server.mjs +23 -0
- package/dist/src/modules/database/lib/types.d.mts +4 -0
- package/dist/src/modules/emails/lib/service.server.d.mts +28 -0
- package/dist/src/modules/emails/lib/service.server.mjs +20 -0
- package/dist/src/modules/inline/components/cell.client.d.mts +20 -0
- package/dist/src/modules/inline/components/cell.client.mjs +46 -0
- package/dist/src/modules/inline/components/field.client.d.mts +36 -0
- package/dist/src/modules/inline/components/field.client.mjs +61 -0
- package/dist/src/modules/inline/components/inputs/combobox-dropdown.client.d.mts +27 -0
- package/dist/src/modules/inline/components/inputs/combobox-dropdown.client.mjs +49 -0
- package/dist/src/modules/inline/components/inputs/combobox.client.d.mts +22 -0
- package/dist/src/modules/inline/components/inputs/combobox.client.mjs +45 -0
- package/dist/src/modules/inline/components/inputs/date-time.client.d.mts +24 -0
- package/dist/src/modules/inline/components/inputs/date-time.client.mjs +48 -0
- package/dist/src/modules/inline/components/inputs/date.client.d.mts +66 -0
- package/dist/src/modules/inline/components/inputs/date.client.mjs +175 -0
- package/dist/src/modules/inline/components/inputs/editor.client.d.mts +25 -0
- package/dist/src/modules/inline/components/inputs/editor.client.mjs +51 -0
- package/dist/src/modules/inline/components/inputs/input-recipient.client.d.mts +27 -0
- package/dist/src/modules/inline/components/inputs/input-recipient.client.mjs +48 -0
- package/dist/src/modules/inline/components/inputs/input.client.d.mts +52 -0
- package/dist/src/modules/inline/components/inputs/input.client.mjs +129 -0
- package/dist/src/modules/inline/components/inputs/select.client.d.mts +31 -0
- package/dist/src/modules/inline/components/inputs/select.client.mjs +64 -0
- package/dist/src/modules/inline/components/inputs/switch.client.d.mts +21 -0
- package/dist/src/modules/inline/components/inputs/switch.client.mjs +42 -0
- package/dist/src/modules/inline/components/inputs/toggle.client.d.mts +24 -0
- package/dist/src/modules/inline/components/inputs/toggle.client.mjs +47 -0
- package/dist/src/modules/inline/hooks/inline-provider.d.mts +28 -0
- package/dist/src/modules/inline/hooks/inline-provider.mjs +25 -0
- package/dist/src/modules/inline/hooks/inline-state.client.d.mts +30 -0
- package/dist/src/modules/inline/hooks/inline-state.client.mjs +25 -0
- package/dist/src/modules/inline/hooks/use-inline.client.d.mts +144 -0
- package/dist/src/modules/inline/hooks/use-inline.client.mjs +125 -0
- package/dist/src/modules/inline/lib/validators.d.mts +56 -0
- package/dist/src/modules/inline/lib/validators.mjs +34 -0
- package/dist/{modules/inline-edit → src/modules/inline}/lib/variants.d.mts +1 -1
- package/dist/src/modules/inline/lib/variants.mjs +21 -0
- package/dist/src/modules/router/handler/caller.client.d.mts +10 -0
- package/dist/src/modules/router/handler/caller.client.mjs +23 -0
- package/dist/src/modules/router/handler/caller.server.d.mts +6 -0
- package/dist/src/modules/router/handler/caller.server.mjs +7 -0
- package/dist/src/modules/router/handler/context.server.d.mts +62 -0
- package/dist/src/modules/router/handler/context.server.mjs +20 -0
- package/dist/src/modules/router/handler/init.server.d.mts +65 -0
- package/dist/src/modules/router/handler/init.server.mjs +55 -0
- package/dist/src/modules/router/handler/register.server.d.mts +8 -0
- package/dist/src/modules/router/handler/register.server.mjs +10 -0
- package/dist/src/modules/router/handler/route.server.d.mts +21 -0
- package/dist/src/modules/router/handler/route.server.mjs +32 -0
- package/dist/src/modules/router/lib/error.server.d.mts +2 -0
- package/dist/src/modules/router/lib/error.server.mjs +3 -0
- package/dist/src/modules/router/lib/helpers.mjs +7 -0
- package/dist/src/modules/router/lib/query-client.d.mts +9 -0
- package/dist/src/modules/router/lib/query-client.mjs +50 -0
- package/dist/src/modules/router/lib/query-client.server.d.mts +17 -0
- package/dist/src/modules/router/lib/query-client.server.mjs +23 -0
- package/dist/src/modules/router/lib/validators.d.mts +12 -0
- package/dist/src/modules/router/lib/validators.mjs +10 -0
- package/dist/src/modules/storage/components/dropzone-context.client.d.mts +18 -0
- package/dist/src/modules/storage/components/dropzone-context.client.mjs +17 -0
- package/dist/src/modules/storage/components/dropzone.client.d.mts +52 -0
- package/dist/src/modules/storage/components/dropzone.client.mjs +110 -0
- package/dist/src/modules/storage/components/image-grid.client.d.mts +32 -0
- package/dist/src/modules/storage/components/image-grid.client.mjs +167 -0
- package/dist/src/modules/storage/components/image.client.d.mts +7 -0
- package/dist/src/modules/storage/components/image.client.mjs +16 -0
- package/dist/src/modules/storage/components/upload-button.client.d.mts +11 -0
- package/dist/src/modules/storage/components/upload-button.client.mjs +33 -0
- package/dist/src/modules/storage/components/upload-zone-context.client.d.mts +30 -0
- package/dist/src/modules/storage/components/upload-zone-context.client.mjs +20 -0
- package/dist/src/modules/storage/components/upload-zone.client.d.mts +27 -0
- package/dist/src/modules/storage/components/upload-zone.client.mjs +111 -0
- package/dist/src/modules/storage/lib/constants.d.mts +5 -0
- package/dist/src/modules/storage/lib/constants.mjs +5 -0
- package/dist/src/modules/storage/lib/helpers.d.mts +29 -0
- package/dist/src/modules/storage/lib/helpers.mjs +49 -0
- package/dist/src/modules/storage/lib/procedures.server.d.mts +1990 -0
- package/dist/src/modules/storage/lib/procedures.server.mjs +21 -0
- package/dist/src/modules/storage/lib/router-handlers.server.d.mts +40 -0
- package/dist/src/modules/storage/lib/router-handlers.server.mjs +123 -0
- package/dist/src/modules/storage/lib/schema.d.mts +291 -0
- package/dist/src/modules/storage/lib/schema.mjs +37 -0
- package/dist/src/modules/storage/lib/service.server.d.mts +2217 -0
- package/dist/src/modules/storage/lib/service.server.mjs +514 -0
- package/dist/src/modules/storage/lib/upload.client.d.mts +57 -0
- package/dist/src/modules/storage/lib/upload.client.mjs +86 -0
- package/dist/src/modules/storage/lib/validators.d.mts +935 -0
- package/dist/src/modules/storage/lib/validators.mjs +52 -0
- package/dist/src/modules/storage/providers/adapters/s3.server.d.mts +18 -0
- package/dist/src/modules/storage/providers/adapters/s3.server.mjs +172 -0
- package/dist/src/modules/storage/providers/lib/constants.d.mts +5 -0
- package/dist/src/modules/storage/providers/lib/constants.mjs +5 -0
- package/dist/src/modules/storage/providers/lib/errors.d.mts +11 -0
- package/dist/src/modules/storage/providers/lib/errors.mjs +12 -0
- package/dist/src/modules/storage/providers/lib/types.d.mts +20 -0
- package/dist/src/modules/storage/providers/lib/validators.d.mts +111 -0
- package/dist/src/modules/storage/providers/lib/validators.mjs +74 -0
- package/dist/storage/client.d.mts +8 -8
- package/dist/storage/client.mjs +8 -8
- package/dist/storage/server.d.mts +4 -4
- package/dist/storage/server.mjs +4 -4
- package/dist/storage.d.mts +8 -8
- package/dist/storage.mjs +7 -7
- package/package.json +4 -4
- package/src/components/ui/accordion.client.tsx +1 -1
- package/src/components/ui/alert.tsx +1 -1
- package/src/components/ui/avatar.client.tsx +1 -1
- package/src/components/ui/breadcrumb.tsx +2 -2
- package/src/components/ui/card.tsx +1 -1
- package/src/components/ui/carousel.client.tsx +2 -2
- package/src/components/ui/chart.client.tsx +2 -2
- package/src/components/ui/checkbox.client.tsx +1 -1
- package/src/components/ui/collapsible.client.tsx +1 -1
- package/src/components/ui/command.client.tsx +19 -4
- package/src/components/ui/context-menu.client.tsx +6 -6
- package/src/components/ui/drawer.client.tsx +5 -5
- package/src/components/ui/dropdown-menu.client.tsx +5 -5
- package/src/components/ui/empty.tsx +1 -1
- package/src/components/ui/field.client.tsx +3 -3
- package/src/components/ui/hover-card.client.tsx +1 -1
- package/src/components/ui/input-group.client.tsx +3 -3
- package/src/components/ui/input-recipient.tsx +1 -1
- package/src/components/ui/item.tsx +5 -5
- package/src/components/ui/navigation-menu.tsx +4 -4
- package/src/components/ui/pagination.tsx +0 -1
- package/src/components/ui/radio-group.tsx +1 -1
- package/src/components/ui/sheet.client.tsx +3 -3
- package/src/components/ui/tabs.client.tsx +3 -3
- package/src/entry.ts +3 -3
- package/src/modules/auth/components/allowed.client.tsx +1 -2
- package/src/modules/auth/components/update-password-command.tsx +1 -1
- package/src/modules/auth/lib/validators.ts +7 -0
- package/src/modules/commands/components/menus/context-menu.client.tsx +79 -0
- package/src/modules/commands/components/menus/dropdown-menu.client.tsx +85 -0
- package/src/modules/commands/components/menus/floating-menu.client.tsx +64 -0
- package/src/modules/commands/components/menus/inline-menu.client.tsx +66 -0
- package/src/modules/commands/{menus → components/menus}/responsive-menu.client.tsx +15 -4
- package/src/modules/commands/components/{alert-dialog-command.client.tsx → primitives/alert-dialog-command.client.tsx} +11 -40
- package/src/modules/commands/components/{click-command.client.tsx → primitives/click-command.client.tsx} +8 -19
- package/src/modules/commands/components/primitives/command-trigger.client.tsx +60 -0
- package/src/modules/commands/components/{dialog-command.client.tsx → primitives/dialog-command.client.tsx} +8 -31
- package/src/modules/commands/components/{dropdown-command.client.tsx → primitives/dropdown-command.client.tsx} +24 -40
- package/src/modules/commands/components/{empty-command.client.tsx → primitives/empty-command.client.tsx} +9 -17
- package/src/modules/commands/components/{form-dialog-command.client.tsx → primitives/form-dialog-command.client.tsx} +11 -53
- package/src/modules/commands/components/render-command.tsx +51 -10
- package/src/modules/commands/{utils → components/utils}/archive-command.client.tsx +2 -10
- package/src/modules/commands/{utils → components/utils}/delete-command.client.tsx +3 -9
- package/src/modules/commands/entry.client.ts +15 -23
- package/src/modules/commands/entry.ts +5 -2
- package/src/modules/commands/hooks/{use-command-mutation.client.tsx → use-command-mutation.client.ts} +2 -19
- package/src/modules/commands/hooks/use-command.client.tsx +78 -0
- package/src/modules/commands/lib/builder.ts +91 -0
- package/src/modules/commands/lib/registery.ts +116 -0
- package/src/modules/data-tables/components/filters/combobox.client.tsx +9 -13
- package/src/modules/data-tables/components/filters/date-range.client.tsx +127 -0
- package/src/modules/data-tables/components/filters/search.client.tsx +37 -0
- package/src/modules/data-tables/components/filters/slider.client.tsx +4 -4
- package/src/modules/data-tables/components/filters/toggle.client.tsx +32 -0
- package/src/modules/data-tables/components/footer.tsx +2 -2
- package/src/modules/data-tables/entry.client.ts +3 -0
- package/src/modules/data-tables/entry.server.ts +2 -2
- package/src/modules/data-tables/hooks/use-context.client.tsx +9 -11
- package/src/modules/data-tables/hooks/use-selection.client.ts +12 -5
- package/src/modules/data-tables/hooks/use-table.client.ts +4 -6
- package/src/modules/data-tables/lib/converters/filters.ts +85 -0
- package/src/modules/data-tables/lib/converters/{cursor.ts → pagination.ts} +1 -1
- package/src/modules/data-tables/lib/converters/sorting.ts +61 -18
- package/src/modules/data-tables/lib/filters/parsers.ts +18 -0
- package/src/modules/data-tables/lib/types.ts +4 -4
- package/src/modules/data-tables/server/get-data.server.ts +19 -10
- package/src/modules/data-tables/strategies/infinite/components.tsx +2 -10
- package/src/modules/data-tables/strategies/pagination/components.tsx +1 -5
- package/src/modules/data-tables/tables/data-table/components/body.tsx +2 -2
- package/src/modules/data-tables/tables/data-table/components/header.tsx +1 -1
- package/src/modules/data-tables/tables/data-table/components/row.tsx +2 -21
- package/src/modules/data-tables/tables/data-table/components/table.tsx +2 -2
- package/src/modules/data-tables/tables/inline-table/components/body.tsx +1 -1
- package/src/modules/data-tables/tables/inline-table/components/header.tsx +1 -5
- package/src/modules/data-tables/tables/inline-table/components/row.client.tsx +7 -11
- package/src/modules/data-tables/tables/inline-table/components/table.tsx +2 -2
- package/src/modules/data-tables/tables/inline-table/hooks/context.client.tsx +1 -1
- package/src/modules/inline/components/cell.client.tsx +53 -0
- package/src/modules/inline/components/field.client.tsx +64 -0
- package/src/modules/inline/components/inputs/combobox-dropdown.client.tsx +106 -0
- package/src/modules/inline/components/inputs/combobox.client.tsx +94 -0
- package/src/modules/inline/components/inputs/date-time.client.tsx +96 -0
- package/src/modules/inline/components/inputs/date.client.tsx +295 -0
- package/src/modules/inline/components/inputs/editor.client.tsx +99 -0
- package/src/modules/inline/components/inputs/input-recipient.client.tsx +97 -0
- package/src/modules/inline/components/inputs/input.client.tsx +244 -0
- package/src/modules/inline/components/inputs/select.client.tsx +126 -0
- package/src/modules/inline/components/inputs/switch.client.tsx +88 -0
- package/src/modules/inline/components/inputs/toggle.client.tsx +94 -0
- package/src/modules/inline/entry.client.ts +23 -0
- package/src/modules/inline/hooks/inline-provider.tsx +32 -0
- package/src/modules/inline/hooks/inline-state.client.tsx +33 -0
- package/src/modules/inline/hooks/use-inline.client.tsx +298 -0
- package/dist/inline-edit/client.d.mts +0 -15
- package/dist/inline-edit/client.mjs +0 -16
- package/dist/modules/commands/components/click-command.client.mjs +0 -63
- package/dist/modules/commands/components/command-trigger.client.d.mts +0 -33
- package/dist/modules/commands/components/command-trigger.client.mjs +0 -49
- package/dist/modules/commands/components/empty-command.client.mjs +0 -54
- package/dist/modules/commands/hooks/context.client.mjs +0 -31
- package/dist/modules/commands/hooks/use-command-menu.client.d.mts +0 -23
- package/dist/modules/commands/hooks/use-command-menu.client.mjs +0 -83
- package/dist/modules/commands/lib/definitions.d.mts +0 -52
- package/dist/modules/commands/lib/factory.d.mts +0 -24
- package/dist/modules/commands/lib/factory.mjs +0 -7
- package/dist/modules/commands/menus/context-menu.client.d.mts +0 -26
- package/dist/modules/commands/menus/context-menu.client.mjs +0 -59
- package/dist/modules/commands/menus/dropdown-menu.client.d.mts +0 -18
- package/dist/modules/commands/menus/floating-menu.client.d.mts +0 -18
- package/dist/modules/commands/menus/floating-menu.client.mjs +0 -45
- package/dist/modules/commands/menus/inline-menu.client.d.mts +0 -19
- package/dist/modules/commands/menus/inline-menu.client.mjs +0 -45
- package/dist/modules/commands/menus/responsive-menu.client.d.mts +0 -9
- package/dist/modules/data-tables/lib/converters/filter.d.mts +0 -9
- package/dist/modules/data-tables/lib/converters/filter.mjs +0 -13
- package/dist/modules/inline-edit/components/combobox-dropdown.client.d.mts +0 -24
- package/dist/modules/inline-edit/components/combobox-dropdown.client.mjs +0 -40
- package/dist/modules/inline-edit/components/combobox.client.d.mts +0 -19
- package/dist/modules/inline-edit/components/combobox.client.mjs +0 -36
- package/dist/modules/inline-edit/components/date-input.client.d.mts +0 -18
- package/dist/modules/inline-edit/components/date-input.client.mjs +0 -96
- package/dist/modules/inline-edit/components/date-picker.client.d.mts +0 -21
- package/dist/modules/inline-edit/components/date-picker.client.mjs +0 -61
- package/dist/modules/inline-edit/components/date-time.client.d.mts +0 -20
- package/dist/modules/inline-edit/components/date-time.client.mjs +0 -38
- package/dist/modules/inline-edit/components/editor.client.d.mts +0 -22
- package/dist/modules/inline-edit/components/editor.client.mjs +0 -39
- package/dist/modules/inline-edit/components/input-recipient.client.d.mts +0 -27
- package/dist/modules/inline-edit/components/input-recipient.client.mjs +0 -43
- package/dist/modules/inline-edit/components/input-toggle.client.d.mts +0 -19
- package/dist/modules/inline-edit/components/input-toggle.client.mjs +0 -53
- package/dist/modules/inline-edit/components/input.client.d.mts +0 -49
- package/dist/modules/inline-edit/components/input.client.mjs +0 -100
- package/dist/modules/inline-edit/components/select.client.d.mts +0 -26
- package/dist/modules/inline-edit/components/select.client.mjs +0 -55
- package/dist/modules/inline-edit/components/switch.client.d.mts +0 -17
- package/dist/modules/inline-edit/components/switch.client.mjs +0 -33
- package/dist/modules/inline-edit/components/toggle.client.d.mts +0 -18
- package/dist/modules/inline-edit/components/toggle.client.mjs +0 -40
- package/dist/modules/inline-edit/hooks/context.client.d.mts +0 -27
- package/dist/modules/inline-edit/hooks/context.client.mjs +0 -27
- package/dist/modules/inline-edit/hooks/use-inline.client.d.mts +0 -75
- package/dist/modules/inline-edit/hooks/use-inline.client.mjs +0 -116
- package/src/modules/commands/components/command-trigger.client.tsx +0 -69
- package/src/modules/commands/hooks/context.client.tsx +0 -38
- package/src/modules/commands/hooks/use-command-menu.client.tsx +0 -252
- package/src/modules/commands/lib/definitions.ts +0 -42
- package/src/modules/commands/lib/factory.ts +0 -5
- package/src/modules/commands/lib/schema.ts +0 -23
- package/src/modules/commands/menus/context-menu.client.tsx +0 -69
- package/src/modules/commands/menus/dropdown-menu.client.tsx +0 -62
- package/src/modules/commands/menus/floating-menu.client.tsx +0 -54
- package/src/modules/commands/menus/inline-menu.client.tsx +0 -51
- package/src/modules/commands/utils/send-mail-command.client.tsx +0 -150
- package/src/modules/data-tables/lib/converters/filter.ts +0 -11
- package/src/modules/inline-edit/components/combobox-dropdown.client.tsx +0 -64
- package/src/modules/inline-edit/components/combobox.client.tsx +0 -50
- package/src/modules/inline-edit/components/date-input.client.tsx +0 -116
- package/src/modules/inline-edit/components/date-picker.client.tsx +0 -74
- package/src/modules/inline-edit/components/date-time.client.tsx +0 -55
- package/src/modules/inline-edit/components/editor.client.tsx +0 -56
- package/src/modules/inline-edit/components/input-recipient.client.tsx +0 -59
- package/src/modules/inline-edit/components/input-toggle.client.tsx +0 -75
- package/src/modules/inline-edit/components/input.client.tsx +0 -149
- package/src/modules/inline-edit/components/select.client.tsx +0 -76
- package/src/modules/inline-edit/components/switch.client.tsx +0 -40
- package/src/modules/inline-edit/components/toggle.client.tsx +0 -50
- package/src/modules/inline-edit/entry.client.ts +0 -22
- package/src/modules/inline-edit/hooks/context.client.tsx +0 -30
- package/src/modules/inline-edit/hooks/use-inline.client.tsx +0 -205
- /package/dist/{inline-edit → inline}/server.d.mts +0 -0
- /package/dist/{inline-edit → inline}/server.mjs +0 -0
- /package/src/modules/{inline-edit → inline}/entry.server.ts +0 -0
- /package/src/modules/{inline-edit → inline}/entry.ts +0 -0
- /package/src/modules/{inline-edit → inline}/lib/factory.server.ts +0 -0
- /package/src/modules/{inline-edit → inline}/lib/parsers.ts +0 -0
- /package/src/modules/{inline-edit → inline}/lib/validators.ts +0 -0
- /package/src/modules/{inline-edit → inline}/lib/variants.ts +0 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { cn } from "../../lib/utils/cn.mjs";
|
|
2
|
+
import { Badge } from "../ui/badge.mjs";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
|
|
5
|
+
//#region src/components/common/status.tsx
|
|
6
|
+
/**
|
|
7
|
+
* Create status config
|
|
8
|
+
*/
|
|
9
|
+
const createStatusConfig = (config) => config;
|
|
10
|
+
/**
|
|
11
|
+
* Find the status object from the config
|
|
12
|
+
* @param {TStatus[]} values
|
|
13
|
+
* @param {string} status
|
|
14
|
+
* @returns {TStatus | undefined}
|
|
15
|
+
*/
|
|
16
|
+
function findStatus(values, status) {
|
|
17
|
+
return values.find((s) => s.value === status);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Create status variants
|
|
21
|
+
* @param {TStatus[]} values
|
|
22
|
+
* @returns {Record<string, string>}
|
|
23
|
+
*/
|
|
24
|
+
function createStatusVariants(values) {
|
|
25
|
+
return values.reduce((acc, { value, className }) => {
|
|
26
|
+
acc[value] = className;
|
|
27
|
+
return acc;
|
|
28
|
+
}, {});
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Status column
|
|
32
|
+
*/
|
|
33
|
+
function StatusField(props) {
|
|
34
|
+
const status = findStatus(props.config, props.status ?? "");
|
|
35
|
+
if (!status) return /* @__PURE__ */ jsx("div", {});
|
|
36
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
37
|
+
className: cn("flex items-center gap-2", props.variants({ status: status.value })),
|
|
38
|
+
children: [/* @__PURE__ */ jsx(status.icon, { className: cn("size-4", props.variants({ status: status.value })) }), /* @__PURE__ */ jsx("span", { children: status.label })]
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Status badge
|
|
43
|
+
*/
|
|
44
|
+
function StatusBadge(props) {
|
|
45
|
+
const status = findStatus(props.config, props.status ?? "");
|
|
46
|
+
if (!status) return /* @__PURE__ */ jsx("div", {});
|
|
47
|
+
return /* @__PURE__ */ jsxs(Badge, {
|
|
48
|
+
variant: "outline",
|
|
49
|
+
className: cn("flex items-center gap-2", props.variants({ status: status.value })),
|
|
50
|
+
children: [/* @__PURE__ */ jsx(status.icon, { className: cn("size-3", props.variants({ status: status.value })) }), /* @__PURE__ */ jsx("span", { children: status.label })]
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
//#endregion
|
|
55
|
+
export { StatusBadge, StatusField, createStatusConfig, createStatusVariants, findStatus };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { TooltipProvider } from "../../ui/tooltip.client.mjs";
|
|
4
|
+
import { EditorContext } from "./editor.client.mjs";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { useContext } from "react";
|
|
7
|
+
import { EditorContent } from "@tiptap/react";
|
|
8
|
+
|
|
9
|
+
//#region src/components/editor/components/content.client.tsx
|
|
10
|
+
function EditorContent$1() {
|
|
11
|
+
const { editor } = useContext(EditorContext);
|
|
12
|
+
return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(EditorContent, { editor }) });
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
export { EditorContent$1 as EditorContent };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { EditorExtensionsConfig, EditorExtensionsConfigResult } from "../lib/extensions.mjs";
|
|
2
|
+
import { EditorJSONContent } from "../lib/types.mjs";
|
|
3
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
|
+
import { VariantProps } from "class-variance-authority";
|
|
5
|
+
import * as react from "react";
|
|
6
|
+
import { PropsWithChildren } from "react";
|
|
7
|
+
import { Content, Editor, EditorOptions } from "@tiptap/react";
|
|
8
|
+
import * as class_variance_authority_types0 from "class-variance-authority/types";
|
|
9
|
+
|
|
10
|
+
//#region src/components/editor/components/editor.client.d.ts
|
|
11
|
+
/**
|
|
12
|
+
* Editor context
|
|
13
|
+
*/
|
|
14
|
+
type EditorContextValue = {
|
|
15
|
+
editor: Editor;
|
|
16
|
+
extensions: EditorExtensionsConfigResult;
|
|
17
|
+
};
|
|
18
|
+
declare const EditorContext: react.Context<EditorContextValue>;
|
|
19
|
+
/**
|
|
20
|
+
* Editor variants
|
|
21
|
+
*/
|
|
22
|
+
declare const editorVariants: (props?: ({
|
|
23
|
+
variant?: "default" | "table" | "preview" | null | undefined;
|
|
24
|
+
} & class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
25
|
+
/**
|
|
26
|
+
* Editor context provider
|
|
27
|
+
*/
|
|
28
|
+
type EditorProps = VariantProps<typeof editorVariants> & Pick<EditorOptions["editorProps"], "attributes"> & PropsWithChildren<{
|
|
29
|
+
value?: Content;
|
|
30
|
+
extensions?: Partial<EditorExtensionsConfig>;
|
|
31
|
+
onUpdate?: (value: EditorJSONContent) => void;
|
|
32
|
+
onBlur?: (value: EditorJSONContent) => void;
|
|
33
|
+
disabled?: boolean;
|
|
34
|
+
className?: string;
|
|
35
|
+
}>;
|
|
36
|
+
declare function Editor$1({
|
|
37
|
+
value,
|
|
38
|
+
extensions,
|
|
39
|
+
onUpdate,
|
|
40
|
+
onBlur,
|
|
41
|
+
disabled,
|
|
42
|
+
variant,
|
|
43
|
+
className,
|
|
44
|
+
children,
|
|
45
|
+
attributes
|
|
46
|
+
}: EditorProps): react_jsx_runtime0.JSX.Element | null;
|
|
47
|
+
//#endregion
|
|
48
|
+
export { Editor$1 as Editor, EditorContext, EditorProps, editorVariants };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { cn } from "../../../lib/utils/cn.mjs";
|
|
4
|
+
import { editorExtensionsConfigToExtensions, flattenEditorExtensionsConfig } from "../lib/extensions.mjs";
|
|
5
|
+
import { editorImageVariants, editorProseVariants } from "../lib/variants.mjs";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
import { cva } from "class-variance-authority";
|
|
8
|
+
import { createContext } from "react";
|
|
9
|
+
import { useEditor } from "@tiptap/react";
|
|
10
|
+
|
|
11
|
+
//#region src/components/editor/components/editor.client.tsx
|
|
12
|
+
const EditorContext = createContext({});
|
|
13
|
+
/**
|
|
14
|
+
* Editor variants
|
|
15
|
+
*/
|
|
16
|
+
const editorVariants = cva("", {
|
|
17
|
+
variants: { variant: {
|
|
18
|
+
default: "border-input rounded-lg border [&_.editor-content]:p-3 [&_.editor-content[contenteditable='false']]:pointer-events-none [&_.editor-content[contenteditable='false']]:cursor-not-allowed [&_.editor-content[contenteditable='false']]:opacity-50",
|
|
19
|
+
table: "[&_.editor-content[contenteditable='false']]:pointer-events-none [&_.editor-content[contenteditable='false']]:cursor-not-allowed [&_.editor-content[contenteditable='false']]:opacity-50",
|
|
20
|
+
preview: "bg-transparent [&_.editor-content]:p-0 [&_.editor-content]:min-h-0"
|
|
21
|
+
} },
|
|
22
|
+
defaultVariants: { variant: "default" }
|
|
23
|
+
});
|
|
24
|
+
function Editor$1({ value, extensions, onUpdate, onBlur, disabled, variant, className, children, attributes }) {
|
|
25
|
+
const editor = useEditor({
|
|
26
|
+
extensions: editorExtensionsConfigToExtensions(extensions),
|
|
27
|
+
content: value,
|
|
28
|
+
onUpdate: ({ editor }) => onUpdate?.(editor.getJSON()),
|
|
29
|
+
onBlur: ({ editor }) => onBlur?.(editor.getJSON()),
|
|
30
|
+
editable: !disabled,
|
|
31
|
+
injectCSS: false,
|
|
32
|
+
immediatelyRender: false,
|
|
33
|
+
editorProps: {
|
|
34
|
+
transformPastedHTML: (html) => html.replace(/<img.*?>/g, ""),
|
|
35
|
+
attributes: {
|
|
36
|
+
...attributes,
|
|
37
|
+
class: cn("editor-content text-sm max-w-full focus:outline-none", editorProseVariants(), editorImageVariants(), className)
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
if (!editor) return null;
|
|
42
|
+
return /* @__PURE__ */ jsx(EditorContext.Provider, {
|
|
43
|
+
value: {
|
|
44
|
+
editor,
|
|
45
|
+
extensions: flattenEditorExtensionsConfig(extensions)
|
|
46
|
+
},
|
|
47
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
48
|
+
className: editorVariants({ variant }),
|
|
49
|
+
children
|
|
50
|
+
})
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
//#endregion
|
|
55
|
+
export { Editor$1 as Editor, EditorContext, editorVariants };
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Button } from "../../ui/button.mjs";
|
|
2
|
+
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../../ui/dropdown-menu.client.mjs";
|
|
3
|
+
import { EditorContext } from "./editor.client.mjs";
|
|
4
|
+
import { ChevronDown, Heading1Icon, Heading2Icon, Heading3Icon, Heading4Icon, Heading5Icon, ListIcon, ListOrderedIcon, TextIcon } from "lucide-react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { useContext } from "react";
|
|
7
|
+
|
|
8
|
+
//#region src/components/editor/components/menu-nodes.client.tsx
|
|
9
|
+
const blocks = [
|
|
10
|
+
{
|
|
11
|
+
label: "Paragraaf",
|
|
12
|
+
icon: TextIcon,
|
|
13
|
+
selected: (editor) => editor.isActive("paragraph"),
|
|
14
|
+
handler: (editor) => editor.commands.setParagraph(),
|
|
15
|
+
hidden: (extensions) => !extensions.paragraph
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
label: "Titel 1",
|
|
19
|
+
icon: Heading1Icon,
|
|
20
|
+
selected: (editor) => editor.isActive("heading", { level: 1 }),
|
|
21
|
+
handler: (editor) => editor.commands.setHeading({ level: 1 }),
|
|
22
|
+
hidden: (extensions) => !extensions.heading
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
label: "Titel 2",
|
|
26
|
+
icon: Heading2Icon,
|
|
27
|
+
selected: (editor) => editor.isActive("heading", { level: 2 }),
|
|
28
|
+
handler: (editor) => editor.commands.setHeading({ level: 2 }),
|
|
29
|
+
hidden: (extensions) => !extensions.heading
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
label: "Titel 3",
|
|
33
|
+
icon: Heading3Icon,
|
|
34
|
+
selected: (editor) => editor.isActive("heading", { level: 3 }),
|
|
35
|
+
handler: (editor) => editor.commands.setHeading({ level: 3 }),
|
|
36
|
+
hidden: (extensions) => !extensions.heading
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
label: "Titel 4",
|
|
40
|
+
icon: Heading4Icon,
|
|
41
|
+
selected: (editor) => editor.isActive("heading", { level: 4 }),
|
|
42
|
+
handler: (editor) => editor.commands.setHeading({ level: 4 }),
|
|
43
|
+
hidden: (extensions) => !extensions.heading
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
label: "Titel 5",
|
|
47
|
+
icon: Heading5Icon,
|
|
48
|
+
selected: (editor) => editor.isActive("heading", { level: 5 }),
|
|
49
|
+
handler: (editor) => editor.commands.setHeading({ level: 5 }),
|
|
50
|
+
hidden: (extensions) => !extensions.heading
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
label: "Numbered List",
|
|
54
|
+
icon: ListOrderedIcon,
|
|
55
|
+
selected: (editor) => editor.isActive("orderedList"),
|
|
56
|
+
handler: (editor) => editor.commands.toggleOrderedList(),
|
|
57
|
+
hidden: (extensions) => !extensions.orderedList
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
label: "Bulleted List",
|
|
61
|
+
icon: ListIcon,
|
|
62
|
+
selected: (editor) => editor.isActive("bulletList"),
|
|
63
|
+
handler: (editor) => editor.commands.toggleBulletList(),
|
|
64
|
+
hidden: (extensions) => !extensions.bulletList
|
|
65
|
+
}
|
|
66
|
+
];
|
|
67
|
+
function EditorMenuNodes() {
|
|
68
|
+
const { editor, extensions } = useContext(EditorContext);
|
|
69
|
+
const selectedBlock = blocks.find((block) => block.selected(editor));
|
|
70
|
+
const Icon = selectedBlock?.icon;
|
|
71
|
+
const filteredBlocks = blocks.filter((block) => !block.hidden(extensions));
|
|
72
|
+
if (filteredBlocks.length === 0) return null;
|
|
73
|
+
return /* @__PURE__ */ jsxs(DropdownMenu, { children: [/* @__PURE__ */ jsx(DropdownMenuTrigger, {
|
|
74
|
+
asChild: true,
|
|
75
|
+
children: /* @__PURE__ */ jsxs(Button, {
|
|
76
|
+
variant: "outline",
|
|
77
|
+
size: "sm",
|
|
78
|
+
className: "flex items-center gap-8 p-2",
|
|
79
|
+
children: [/* @__PURE__ */ jsxs("span", {
|
|
80
|
+
className: "flex items-center gap-2",
|
|
81
|
+
children: [Icon && /* @__PURE__ */ jsx(Icon, { className: "size-3.5" }), selectedBlock?.label ?? "Select a block"]
|
|
82
|
+
}), /* @__PURE__ */ jsx(ChevronDown, { className: "size-3.5" })]
|
|
83
|
+
})
|
|
84
|
+
}), /* @__PURE__ */ jsx(DropdownMenuContent, { children: filteredBlocks.map(({ label, icon: Icon, handler }) => /* @__PURE__ */ jsxs(DropdownMenuItem, {
|
|
85
|
+
onClick: () => handler(editor),
|
|
86
|
+
className: "flex items-center gap-2",
|
|
87
|
+
children: [Icon && /* @__PURE__ */ jsx(Icon, { className: "size-3.5" }), label]
|
|
88
|
+
}, label)) })] });
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
//#endregion
|
|
92
|
+
export { EditorMenuNodes };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
2
|
+
import { ComponentProps } from "react";
|
|
3
|
+
import { BubbleMenu } from "@tiptap/react/menus";
|
|
4
|
+
|
|
5
|
+
//#region src/components/editor/components/menu.client.d.ts
|
|
6
|
+
declare function EditorMenuFixed(props: React.ComponentProps<"div">): react_jsx_runtime0.JSX.Element;
|
|
7
|
+
declare function EditorMenuBubble(props: ComponentProps<typeof BubbleMenu>): react_jsx_runtime0.JSX.Element;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { EditorMenuBubble, EditorMenuFixed };
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { cn } from "../../../lib/utils/cn.mjs";
|
|
2
|
+
import { Button } from "../../ui/button.mjs";
|
|
3
|
+
import { EditorContext } from "./editor.client.mjs";
|
|
4
|
+
import { ColorPicker } from "../../ui/color-picker.client.mjs";
|
|
5
|
+
import { Popover, PopoverContent, PopoverTrigger } from "../../ui/popover.client.mjs";
|
|
6
|
+
import { EditorMenuNodes } from "./menu-nodes.client.mjs";
|
|
7
|
+
import { BaselineIcon, BoldIcon, EraserIcon, ItalicIcon, PaintBucketIcon, RedoIcon, StrikethroughIcon, UnderlineIcon, UndoIcon } from "lucide-react";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { useContext } from "react";
|
|
10
|
+
import { BubbleMenu } from "@tiptap/react/menus";
|
|
11
|
+
|
|
12
|
+
//#region src/components/editor/components/menu.client.tsx
|
|
13
|
+
function EditorMenuFixed(props) {
|
|
14
|
+
return /* @__PURE__ */ jsx("div", {
|
|
15
|
+
...props,
|
|
16
|
+
className: cn("z-10 overflow-auto border-input border-b bg-muted/30 p-2", props.className),
|
|
17
|
+
children: /* @__PURE__ */ jsxs(EditorMenuContent, { children: [
|
|
18
|
+
/* @__PURE__ */ jsx(EditorMenuUndoRedo, {}),
|
|
19
|
+
/* @__PURE__ */ jsx(EditorMenuNodes, {}),
|
|
20
|
+
/* @__PURE__ */ jsx(EditorMenuMarks, {}),
|
|
21
|
+
/* @__PURE__ */ jsx(EditorMenuColor, {})
|
|
22
|
+
] })
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function EditorMenuBubble(props) {
|
|
26
|
+
const { editor } = useContext(EditorContext);
|
|
27
|
+
return /* @__PURE__ */ jsx(BubbleMenu, {
|
|
28
|
+
...props,
|
|
29
|
+
editor,
|
|
30
|
+
options: {
|
|
31
|
+
...props.options,
|
|
32
|
+
strategy: "fixed"
|
|
33
|
+
},
|
|
34
|
+
className: cn("z-10 rounded-lg border border-input bg-muted p-2", props.className),
|
|
35
|
+
children: /* @__PURE__ */ jsx(EditorMenuContent, { children: /* @__PURE__ */ jsx(EditorMenuMarks, {}) })
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
function EditorMenuContent(props) {
|
|
39
|
+
return /* @__PURE__ */ jsx("div", {
|
|
40
|
+
className: "flex items-center gap-6",
|
|
41
|
+
children: props.children
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Editor menu undo/redo
|
|
46
|
+
*/
|
|
47
|
+
function EditorMenuUndoRedo() {
|
|
48
|
+
const { editor, extensions } = useContext(EditorContext);
|
|
49
|
+
if (!extensions.undoRedo) return null;
|
|
50
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
51
|
+
className: "flex items-center gap-1",
|
|
52
|
+
children: [/* @__PURE__ */ jsx(Button, {
|
|
53
|
+
onClick: () => editor.commands.undo(),
|
|
54
|
+
disabled: !editor?.can().undo(),
|
|
55
|
+
type: "button",
|
|
56
|
+
"aria-label": "Undo",
|
|
57
|
+
size: "icon",
|
|
58
|
+
className: "p-2",
|
|
59
|
+
variant: "outline",
|
|
60
|
+
children: /* @__PURE__ */ jsx(UndoIcon, { className: "size-3.5" })
|
|
61
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
62
|
+
onClick: () => editor.commands.redo(),
|
|
63
|
+
disabled: !editor?.can().redo(),
|
|
64
|
+
type: "button",
|
|
65
|
+
"aria-label": "Redo",
|
|
66
|
+
size: "icon",
|
|
67
|
+
className: "p-2",
|
|
68
|
+
variant: "outline",
|
|
69
|
+
children: /* @__PURE__ */ jsx(RedoIcon, { className: "size-3.5" })
|
|
70
|
+
})]
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Editor menu marks
|
|
75
|
+
*/
|
|
76
|
+
function EditorMenuMarks() {
|
|
77
|
+
const { editor, extensions } = useContext(EditorContext);
|
|
78
|
+
if (!extensions.bold && !extensions.italic && !extensions.underline && !extensions.strike) return null;
|
|
79
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
80
|
+
className: "flex items-center gap-1",
|
|
81
|
+
children: [
|
|
82
|
+
extensions.bold && /* @__PURE__ */ jsx(Button, {
|
|
83
|
+
type: "button",
|
|
84
|
+
size: "icon",
|
|
85
|
+
variant: editor?.isActive("bold") ? "secondary" : "outline",
|
|
86
|
+
onClick: () => editor.chain().focus().toggleBold().run(),
|
|
87
|
+
className: "border",
|
|
88
|
+
children: /* @__PURE__ */ jsx(BoldIcon, { className: "h-3.5 w-3.5" })
|
|
89
|
+
}),
|
|
90
|
+
extensions.italic && /* @__PURE__ */ jsx(Button, {
|
|
91
|
+
type: "button",
|
|
92
|
+
size: "icon",
|
|
93
|
+
variant: editor?.isActive("italic") ? "secondary" : "outline",
|
|
94
|
+
onClick: () => editor.chain().focus().toggleItalic().run(),
|
|
95
|
+
className: "border",
|
|
96
|
+
children: /* @__PURE__ */ jsx(ItalicIcon, { className: "size-3.5" })
|
|
97
|
+
}),
|
|
98
|
+
extensions.underline && /* @__PURE__ */ jsx(Button, {
|
|
99
|
+
type: "button",
|
|
100
|
+
size: "icon",
|
|
101
|
+
variant: editor?.isActive("underline") ? "secondary" : "outline",
|
|
102
|
+
onClick: () => editor.chain().focus().toggleUnderline().run(),
|
|
103
|
+
className: "border",
|
|
104
|
+
children: /* @__PURE__ */ jsx(UnderlineIcon, { className: "size-3.5" })
|
|
105
|
+
}),
|
|
106
|
+
extensions.strike && /* @__PURE__ */ jsx(Button, {
|
|
107
|
+
type: "button",
|
|
108
|
+
size: "icon",
|
|
109
|
+
variant: editor?.isActive("strike") ? "secondary" : "outline",
|
|
110
|
+
onClick: () => editor.chain().focus().toggleStrike().run(),
|
|
111
|
+
className: "border",
|
|
112
|
+
children: /* @__PURE__ */ jsx(StrikethroughIcon, { className: "size-3.5" })
|
|
113
|
+
})
|
|
114
|
+
]
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Editor menu alignment
|
|
119
|
+
*/
|
|
120
|
+
function EditorMenuColor() {
|
|
121
|
+
const { editor, extensions } = useContext(EditorContext);
|
|
122
|
+
if (!extensions.color && !extensions.highlight) return null;
|
|
123
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
124
|
+
className: "flex items-center gap-1",
|
|
125
|
+
children: [
|
|
126
|
+
extensions.color && /* @__PURE__ */ jsxs(Popover, { children: [/* @__PURE__ */ jsx(PopoverTrigger, {
|
|
127
|
+
asChild: true,
|
|
128
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
129
|
+
size: "icon",
|
|
130
|
+
variant: "outline",
|
|
131
|
+
children: /* @__PURE__ */ jsx(BaselineIcon, { className: "size-3.5" })
|
|
132
|
+
})
|
|
133
|
+
}), /* @__PURE__ */ jsx(PopoverContent, {
|
|
134
|
+
className: "w-fit p-0",
|
|
135
|
+
children: /* @__PURE__ */ jsx(ColorPicker, { onValueChange: (color) => editor.chain().focus().setColor(color).run() })
|
|
136
|
+
})] }),
|
|
137
|
+
extensions.highlight && /* @__PURE__ */ jsxs(Popover, { children: [/* @__PURE__ */ jsx(PopoverTrigger, {
|
|
138
|
+
asChild: true,
|
|
139
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
140
|
+
size: "icon",
|
|
141
|
+
variant: "outline",
|
|
142
|
+
disabled: !editor?.can().setHighlight(),
|
|
143
|
+
children: /* @__PURE__ */ jsx(PaintBucketIcon, { className: "size-3.5" })
|
|
144
|
+
})
|
|
145
|
+
}), /* @__PURE__ */ jsx(PopoverContent, {
|
|
146
|
+
className: "w-fit p-0",
|
|
147
|
+
children: /* @__PURE__ */ jsx(ColorPicker, { onValueChange: (color) => editor.chain().focus().setHighlight({ color }).run() })
|
|
148
|
+
})] }),
|
|
149
|
+
/* @__PURE__ */ jsx(Button, {
|
|
150
|
+
type: "button",
|
|
151
|
+
size: "icon",
|
|
152
|
+
variant: "outline",
|
|
153
|
+
className: "border",
|
|
154
|
+
onClick: () => {
|
|
155
|
+
editor.commands.unsetColor();
|
|
156
|
+
editor.commands.unsetHighlight();
|
|
157
|
+
},
|
|
158
|
+
children: /* @__PURE__ */ jsx(EraserIcon, { className: "h-4 w-4" })
|
|
159
|
+
})
|
|
160
|
+
]
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Editor menu image
|
|
165
|
+
*/
|
|
166
|
+
|
|
167
|
+
//#endregion
|
|
168
|
+
export { EditorMenuBubble, EditorMenuFixed };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { FileHandlerOptions } from "@tiptap/extension-file-handler";
|
|
2
|
+
import "@tiptap/core";
|
|
3
|
+
|
|
4
|
+
//#region src/components/editor/extensions/file-handler/extension.d.ts
|
|
5
|
+
interface FileHandlerOptions$1 extends FileHandlerOptions {
|
|
6
|
+
/**
|
|
7
|
+
* Callback function invoked when a image reference is removed from the editor. Receives the node ID of the removed node.
|
|
8
|
+
* @type {(assetId: string) => void}
|
|
9
|
+
* @default undefined
|
|
10
|
+
**/
|
|
11
|
+
onReferenceRemoved?: (assetId: string) => void;
|
|
12
|
+
/**
|
|
13
|
+
* Callback function invoked when a image reference is added to the editor. Receives the node ID of the added node.
|
|
14
|
+
* @type {(assetId: string) => void}
|
|
15
|
+
* @default undefined
|
|
16
|
+
**/
|
|
17
|
+
onReferenceAdded?: (assetId: string) => void;
|
|
18
|
+
}
|
|
19
|
+
//#endregion
|
|
20
|
+
export { FileHandlerOptions$1 as FileHandlerOptions };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { collectImageIds, diffIds } from "./utils.mjs";
|
|
4
|
+
import { Plugin, PluginKey } from "@tiptap/pm/state";
|
|
5
|
+
import { FileHandler } from "@tiptap/extension-file-handler";
|
|
6
|
+
|
|
7
|
+
//#region src/components/editor/extensions/file-handler/extension.ts
|
|
8
|
+
/**
|
|
9
|
+
* File Handler extension for Tiptap Editor
|
|
10
|
+
*/
|
|
11
|
+
const FileHandler$1 = FileHandler.extend({
|
|
12
|
+
addOptions() {
|
|
13
|
+
return {
|
|
14
|
+
...this.parent?.(),
|
|
15
|
+
onReferenceRemoved: void 0,
|
|
16
|
+
onReferenceAdded: void 0
|
|
17
|
+
};
|
|
18
|
+
},
|
|
19
|
+
addProseMirrorPlugins() {
|
|
20
|
+
const parent = this.parent?.() ?? [];
|
|
21
|
+
const key = new PluginKey("fileHandlerItemTracker");
|
|
22
|
+
return [...parent, new Plugin({
|
|
23
|
+
key,
|
|
24
|
+
appendTransaction: (trs, oldState, newState) => {
|
|
25
|
+
if (!trs.some((tr) => tr.docChanged)) return null;
|
|
26
|
+
const onReferenceRemoved = this.options.onReferenceRemoved;
|
|
27
|
+
const onReferenceAdded = this.options.onReferenceAdded;
|
|
28
|
+
if (!onReferenceRemoved && !onReferenceAdded) return null;
|
|
29
|
+
const { removed, added } = diffIds(collectImageIds(oldState.doc), collectImageIds(newState.doc));
|
|
30
|
+
for (const id of removed) onReferenceRemoved?.(id);
|
|
31
|
+
for (const id of added) onReferenceAdded?.(id);
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
})];
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
export { FileHandler$1 as FileHandler };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { FileHandlerOptions } from "./extension.mjs";
|
|
2
|
+
import { PresignUploadInput, StorageAsset } from "../../../../modules/storage/lib/validators.mjs";
|
|
3
|
+
import { UploadClient, UploadHooks } from "../../../../modules/storage/lib/upload.client.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/components/editor/extensions/file-handler/strategy.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Handle File Handler props
|
|
8
|
+
*/
|
|
9
|
+
type CreateFileHandlerUploadStrategyProps = {
|
|
10
|
+
variables: Pick<PresignUploadInput, "visibility" | "metadata">;
|
|
11
|
+
uploadClient: UploadClient;
|
|
12
|
+
uploadHooks?: UploadHooks;
|
|
13
|
+
allowedMimeTypes?: string[];
|
|
14
|
+
onUploadCompleted?: (asset: StorageAsset) => Promise<void> | void;
|
|
15
|
+
onUploadFailed?: (error: unknown) => Promise<void> | void;
|
|
16
|
+
};
|
|
17
|
+
declare function createFileHandlerUploadStrategy({
|
|
18
|
+
variables,
|
|
19
|
+
uploadClient,
|
|
20
|
+
uploadHooks,
|
|
21
|
+
onUploadCompleted,
|
|
22
|
+
onUploadFailed,
|
|
23
|
+
allowedMimeTypes
|
|
24
|
+
}: CreateFileHandlerUploadStrategyProps): FileHandlerOptions;
|
|
25
|
+
//#endregion
|
|
26
|
+
export { createFileHandlerUploadStrategy };
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { TextSelection } from "@tiptap/pm/state";
|
|
2
|
+
|
|
3
|
+
//#region src/components/editor/extensions/file-handler/strategy.ts
|
|
4
|
+
function createFileHandlerUploadStrategy({ variables, uploadClient, uploadHooks, onUploadCompleted, onUploadFailed, allowedMimeTypes }) {
|
|
5
|
+
const handleUpload = async (editor, files, startPos) => {
|
|
6
|
+
const insertPos = startPos;
|
|
7
|
+
for (const file of files) {
|
|
8
|
+
/**
|
|
9
|
+
* Prepare upload
|
|
10
|
+
*/
|
|
11
|
+
const input = uploadClient.prepareUpload({
|
|
12
|
+
file,
|
|
13
|
+
...variables
|
|
14
|
+
});
|
|
15
|
+
const imageType = editor.schema.nodes.image;
|
|
16
|
+
if (!imageType) {
|
|
17
|
+
console.error("Image type not found");
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
/**
|
|
22
|
+
* Create skeleton node
|
|
23
|
+
*/
|
|
24
|
+
const skeletonNode = editor.schema.nodes.skeleton?.create({
|
|
25
|
+
imageNodeId: input.uploadId,
|
|
26
|
+
width: 500,
|
|
27
|
+
height: 500
|
|
28
|
+
});
|
|
29
|
+
/**
|
|
30
|
+
* Insert skeleton node into the document
|
|
31
|
+
*/
|
|
32
|
+
if (skeletonNode) {
|
|
33
|
+
const tr = editor.state.tr.insert(insertPos, skeletonNode);
|
|
34
|
+
tr.setSelection(TextSelection.create(tr.doc, insertPos + skeletonNode.nodeSize));
|
|
35
|
+
tr.setMeta("addToHistory", false);
|
|
36
|
+
editor.view.dispatch(tr);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Upload the file
|
|
40
|
+
*/
|
|
41
|
+
const asset = await uploadClient.upload(input, uploadHooks);
|
|
42
|
+
/**
|
|
43
|
+
* Replace skeleton with image node
|
|
44
|
+
*/
|
|
45
|
+
const replacedTr = editor.state.tr;
|
|
46
|
+
let replaced = false;
|
|
47
|
+
replacedTr.doc.descendants((node, pos) => {
|
|
48
|
+
if (node.type.name === "skeleton" && node.attrs?.imageNodeId === input.uploadId) {
|
|
49
|
+
const imageNode = imageType.create({
|
|
50
|
+
assetId: asset.id,
|
|
51
|
+
alt: file.name,
|
|
52
|
+
fileName: file.name,
|
|
53
|
+
width: node.attrs.width ?? 500
|
|
54
|
+
});
|
|
55
|
+
replacedTr.replaceWith(pos, pos + node.nodeSize, imageNode);
|
|
56
|
+
replaced = true;
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
if (replaced) editor.view.dispatch(replacedTr);
|
|
61
|
+
else {
|
|
62
|
+
const tr = editor.state.tr;
|
|
63
|
+
const imageNode = imageType.create({
|
|
64
|
+
assetId: asset.id,
|
|
65
|
+
alt: file.name,
|
|
66
|
+
fileName: file.name,
|
|
67
|
+
width: 500
|
|
68
|
+
});
|
|
69
|
+
tr.insert(insertPos, imageNode);
|
|
70
|
+
editor.view.dispatch(tr);
|
|
71
|
+
}
|
|
72
|
+
await onUploadCompleted?.(asset);
|
|
73
|
+
} catch (err) {
|
|
74
|
+
console.error("Upload error:", err);
|
|
75
|
+
/**
|
|
76
|
+
* Remove the pending image node from the document
|
|
77
|
+
*/
|
|
78
|
+
const tr = editor.state.tr;
|
|
79
|
+
tr.doc.descendants((node, pos) => {
|
|
80
|
+
if (node.type.name === "skeleton" && node.attrs?.imageNodeId === input.uploadId) {
|
|
81
|
+
tr.delete(pos, pos + node.nodeSize);
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
editor.view.dispatch(tr);
|
|
86
|
+
await onUploadFailed?.(err);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
return {
|
|
91
|
+
allowedMimeTypes,
|
|
92
|
+
onDrop: async (editor, files, pos) => {
|
|
93
|
+
await handleUpload(editor, files, pos);
|
|
94
|
+
},
|
|
95
|
+
onPaste: async (editor, files, htmlContent) => {
|
|
96
|
+
if (htmlContent?.length) return;
|
|
97
|
+
const startPos = editor.state.selection.anchor;
|
|
98
|
+
await handleUpload(editor, files, startPos);
|
|
99
|
+
},
|
|
100
|
+
onReferenceRemoved: async (assetId) => {
|
|
101
|
+
await uploadClient.deleteAsset(assetId);
|
|
102
|
+
},
|
|
103
|
+
onReferenceAdded: async (assetId) => {
|
|
104
|
+
await uploadClient.restoreAsset(assetId);
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
//#endregion
|
|
110
|
+
export { createFileHandlerUploadStrategy };
|