@tulip-systems/core 0.8.2 → 0.8.3
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/components/common/icons.d.mts +1 -2
- package/dist/components/common/icons.mjs +1 -2
- package/dist/components/common/status.d.mts +1 -2
- package/dist/components/common/status.mjs +1 -2
- package/dist/components/editor/components/content.client.d.mts +1 -2
- package/dist/components/editor/components/content.client.mjs +1 -2
- package/dist/components/editor/components/editor.client.d.mts +1 -2
- package/dist/components/editor/components/editor.client.mjs +1 -2
- package/dist/components/editor/components/menu-nodes.client.mjs +1 -2
- package/dist/components/editor/components/menu.client.d.mts +1 -2
- package/dist/components/editor/components/menu.client.mjs +1 -2
- package/dist/components/editor/extensions/file-handler/extension.d.mts +1 -2
- package/dist/components/editor/extensions/file-handler/extension.mjs +1 -2
- package/dist/components/editor/extensions/file-handler/strategy.d.mts +1 -2
- package/dist/components/editor/extensions/file-handler/strategy.mjs +1 -2
- package/dist/components/editor/extensions/file-handler/utils.mjs +1 -2
- package/dist/components/editor/extensions/image/extension.d.mts +1 -2
- package/dist/components/editor/extensions/image/extension.mjs +1 -2
- package/dist/components/editor/extensions/skeleton/extension.mjs +1 -2
- package/dist/components/editor/extensions/skeleton/renderer.mjs +1 -2
- package/dist/components/editor/lib/constants.d.mts +1 -2
- package/dist/components/editor/lib/constants.mjs +1 -2
- package/dist/components/editor/lib/extensions.d.mts +1 -2
- package/dist/components/editor/lib/extensions.mjs +1 -2
- package/dist/components/editor/lib/helpers.d.mts +1 -2
- package/dist/components/editor/lib/helpers.mjs +1 -2
- package/dist/components/editor/lib/types.d.mts +1 -2
- package/dist/components/editor/lib/variants.mjs +1 -2
- package/dist/components/emails/forget-password-email.mjs +2 -3
- package/dist/components/header/back-button.client.d.mts +1 -2
- package/dist/components/header/back-button.client.mjs +1 -2
- package/dist/components/header/bottom-bar.client.d.mts +1 -2
- package/dist/components/header/bottom-bar.client.mjs +1 -2
- package/dist/components/header/breadcrumbs.client.d.mts +1 -2
- package/dist/components/header/breadcrumbs.client.mjs +1 -2
- package/dist/components/header/header.client.d.mts +1 -2
- package/dist/components/header/header.client.mjs +1 -2
- package/dist/components/header/indicator.client.mjs +1 -2
- package/dist/components/header/mobile-nav-switcher.client.d.mts +1 -2
- package/dist/components/header/mobile-nav-switcher.client.mjs +1 -2
- package/dist/components/header/top-bar.client.d.mts +1 -2
- package/dist/components/header/top-bar.client.mjs +1 -2
- package/dist/components/layouts/admin-content.client.d.mts +1 -2
- package/dist/components/layouts/admin-content.client.mjs +1 -2
- package/dist/components/layouts/admin-error-pages.d.mts +1 -2
- package/dist/components/layouts/admin-error-pages.mjs +1 -2
- package/dist/components/layouts/admin-layout.d.mts +1 -2
- package/dist/components/layouts/admin-layout.mjs +1 -2
- package/dist/components/layouts/admin-loading.d.mts +1 -2
- package/dist/components/layouts/admin-loading.mjs +1 -2
- package/dist/components/layouts/empty-page.d.mts +1 -2
- package/dist/components/layouts/empty-page.mjs +1 -2
- package/dist/components/layouts/error-page.d.mts +1 -2
- package/dist/components/layouts/error-page.mjs +1 -2
- package/dist/components/layouts/error-sections.d.mts +1 -2
- package/dist/components/layouts/error-sections.mjs +1 -2
- package/dist/components/layouts/list-layout.d.mts +1 -2
- package/dist/components/layouts/list-layout.mjs +1 -2
- package/dist/components/layouts/providers.client.d.mts +1 -2
- package/dist/components/layouts/providers.client.mjs +1 -2
- package/dist/components/layouts/root-error-pages.d.mts +1 -2
- package/dist/components/layouts/root-error-pages.mjs +1 -2
- package/dist/components/layouts/root-layout.server.d.mts +1 -2
- package/dist/components/layouts/root-layout.server.mjs +1 -2
- package/dist/components/layouts/root-loading.d.mts +1 -2
- package/dist/components/layouts/root-loading.mjs +1 -2
- package/dist/components/layouts/tab-layout.d.mts +1 -2
- package/dist/components/layouts/tab-layout.mjs +1 -2
- package/dist/components/lists/data-list.d.mts +1 -2
- package/dist/components/lists/data-list.mjs +1 -2
- package/dist/components/lists/data-stack.d.mts +1 -2
- package/dist/components/lists/data-stack.mjs +1 -2
- package/dist/components/navigation/admin-sidebar-header.client.mjs +1 -2
- package/dist/components/navigation/admin-sidebar-paths.client.d.mts +1 -2
- package/dist/components/navigation/admin-sidebar-paths.client.mjs +1 -2
- package/dist/components/navigation/admin-sidebar-skeleton.mjs +1 -2
- package/dist/components/ui/accordion.client.d.mts +1 -2
- package/dist/components/ui/accordion.client.mjs +1 -2
- package/dist/components/ui/alert-dialog.client.d.mts +1 -2
- package/dist/components/ui/alert-dialog.client.mjs +1 -2
- package/dist/components/ui/alert.d.mts +1 -2
- package/dist/components/ui/alert.mjs +1 -2
- package/dist/components/ui/aspect-ratio.client.d.mts +1 -2
- package/dist/components/ui/aspect-ratio.client.mjs +1 -2
- package/dist/components/ui/avatar.client.d.mts +1 -2
- package/dist/components/ui/avatar.client.mjs +1 -2
- package/dist/components/ui/badge.d.mts +2 -3
- package/dist/components/ui/badge.mjs +1 -2
- package/dist/components/ui/breadcrumb.d.mts +1 -2
- package/dist/components/ui/breadcrumb.mjs +1 -2
- package/dist/components/ui/button-group.d.mts +1 -2
- package/dist/components/ui/button-group.mjs +1 -2
- package/dist/components/ui/button.d.mts +2 -3
- package/dist/components/ui/button.mjs +1 -2
- package/dist/components/ui/calendar.client.d.mts +1 -2
- package/dist/components/ui/calendar.client.mjs +1 -2
- package/dist/components/ui/card.d.mts +1 -2
- package/dist/components/ui/card.mjs +1 -2
- package/dist/components/ui/carousel.client.d.mts +1 -2
- package/dist/components/ui/carousel.client.mjs +1 -2
- package/dist/components/ui/chart.client.d.mts +1 -2
- package/dist/components/ui/chart.client.mjs +1 -2
- package/dist/components/ui/checkbox.client.d.mts +1 -2
- package/dist/components/ui/checkbox.client.mjs +1 -2
- package/dist/components/ui/collapsible.client.d.mts +1 -2
- package/dist/components/ui/collapsible.client.mjs +1 -2
- package/dist/components/ui/color-picker.client.d.mts +1 -2
- package/dist/components/ui/color-picker.client.mjs +1 -2
- package/dist/components/ui/combobox-dropdown.client.d.mts +1 -2
- package/dist/components/ui/combobox-dropdown.client.mjs +1 -2
- package/dist/components/ui/combobox.client.d.mts +1 -2
- package/dist/components/ui/combobox.client.mjs +1 -2
- package/dist/components/ui/command.client.d.mts +1 -2
- package/dist/components/ui/command.client.mjs +1 -2
- package/dist/components/ui/context-menu.client.d.mts +1 -2
- package/dist/components/ui/context-menu.client.mjs +1 -2
- package/dist/components/ui/date-picker.client.d.mts +1 -2
- package/dist/components/ui/date-picker.client.mjs +1 -2
- package/dist/components/ui/dialog.client.d.mts +1 -2
- package/dist/components/ui/dialog.client.mjs +1 -2
- package/dist/components/ui/drawer.client.d.mts +1 -2
- package/dist/components/ui/drawer.client.mjs +1 -2
- package/dist/components/ui/dropdown-menu.client.d.mts +1 -2
- package/dist/components/ui/dropdown-menu.client.mjs +1 -2
- package/dist/components/ui/empty.d.mts +1 -2
- package/dist/components/ui/empty.mjs +1 -2
- package/dist/components/ui/field.client.d.mts +1 -2
- package/dist/components/ui/field.client.mjs +1 -2
- package/dist/components/ui/form.client.d.mts +1 -2
- package/dist/components/ui/form.client.mjs +1 -2
- package/dist/components/ui/hover-card.client.d.mts +1 -2
- package/dist/components/ui/hover-card.client.mjs +1 -2
- package/dist/components/ui/input-date-time.client.d.mts +1 -2
- package/dist/components/ui/input-date-time.client.mjs +1 -2
- package/dist/components/ui/input-date.d.mts +1 -2
- package/dist/components/ui/input-date.mjs +1 -2
- package/dist/components/ui/input-group.client.d.mts +1 -2
- package/dist/components/ui/input-group.client.mjs +1 -2
- package/dist/components/ui/input-recipient.d.mts +1 -2
- package/dist/components/ui/input-recipient.mjs +1 -2
- package/dist/components/ui/input-time.d.mts +1 -2
- package/dist/components/ui/input-time.mjs +1 -2
- package/dist/components/ui/input.d.mts +1 -2
- package/dist/components/ui/input.mjs +1 -2
- package/dist/components/ui/item.d.mts +2 -3
- package/dist/components/ui/item.mjs +1 -2
- package/dist/components/ui/kbd.d.mts +1 -2
- package/dist/components/ui/kbd.mjs +1 -2
- package/dist/components/ui/label.d.mts +1 -2
- package/dist/components/ui/label.mjs +1 -2
- package/dist/components/ui/loader.d.mts +1 -2
- package/dist/components/ui/loader.mjs +1 -2
- package/dist/components/ui/navigation-menu.d.mts +1 -2
- package/dist/components/ui/navigation-menu.mjs +1 -2
- package/dist/components/ui/pagination.d.mts +1 -2
- package/dist/components/ui/pagination.mjs +1 -2
- package/dist/components/ui/popover.client.d.mts +1 -2
- package/dist/components/ui/popover.client.mjs +1 -2
- package/dist/components/ui/progress.client.d.mts +1 -2
- package/dist/components/ui/progress.client.mjs +1 -2
- package/dist/components/ui/radio-group.d.mts +1 -2
- package/dist/components/ui/radio-group.mjs +1 -2
- package/dist/components/ui/resizable.client.d.mts +1 -2
- package/dist/components/ui/resizable.client.mjs +1 -2
- package/dist/components/ui/scroll-area.d.mts +1 -2
- package/dist/components/ui/scroll-area.mjs +1 -2
- package/dist/components/ui/select.client.d.mts +1 -2
- package/dist/components/ui/select.client.mjs +1 -2
- package/dist/components/ui/separator.d.mts +1 -2
- package/dist/components/ui/separator.mjs +1 -2
- package/dist/components/ui/sheet.client.d.mts +1 -2
- package/dist/components/ui/sheet.client.mjs +1 -2
- package/dist/components/ui/sidebar.client.d.mts +1 -2
- package/dist/components/ui/sidebar.client.mjs +1 -2
- package/dist/components/ui/skeleton.d.mts +1 -2
- package/dist/components/ui/skeleton.mjs +1 -2
- package/dist/components/ui/slider.d.mts +1 -2
- package/dist/components/ui/slider.mjs +1 -2
- package/dist/components/ui/sonner.client.d.mts +1 -2
- package/dist/components/ui/sonner.client.mjs +1 -2
- package/dist/components/ui/spinner.d.mts +1 -2
- package/dist/components/ui/spinner.mjs +1 -2
- package/dist/components/ui/switch.client.d.mts +1 -2
- package/dist/components/ui/switch.client.mjs +1 -2
- package/dist/components/ui/tabs.client.d.mts +1 -2
- package/dist/components/ui/tabs.client.mjs +1 -2
- package/dist/components/ui/textarea.d.mts +1 -2
- package/dist/components/ui/textarea.mjs +1 -2
- package/dist/components/ui/toggle-group.client.d.mts +1 -2
- package/dist/components/ui/toggle-group.client.mjs +1 -2
- package/dist/components/ui/toggle.client.d.mts +1 -2
- package/dist/components/ui/toggle.client.mjs +1 -2
- package/dist/components/ui/tooltip.client.d.mts +1 -2
- package/dist/components/ui/tooltip.client.mjs +1 -2
- package/dist/lib/hooks/use-action.d.mts +1 -2
- package/dist/lib/hooks/use-action.mjs +1 -2
- package/dist/lib/hooks/use-indicator.d.mts +1 -2
- package/dist/lib/hooks/use-indicator.mjs +1 -2
- package/dist/lib/hooks/use-mobile.client.d.mts +1 -2
- package/dist/lib/hooks/use-mobile.client.mjs +1 -2
- package/dist/lib/types/config.d.mts +1 -2
- package/dist/lib/utils/array-move.d.mts +1 -2
- package/dist/lib/utils/array-move.mjs +1 -2
- package/dist/lib/utils/cn.d.mts +1 -2
- package/dist/lib/utils/cn.mjs +1 -2
- package/dist/lib/utils/fonts.d.mts +1 -2
- package/dist/lib/utils/fonts.mjs +1 -2
- package/dist/lib/utils/format.d.mts +1 -2
- package/dist/lib/utils/format.mjs +1 -2
- package/dist/lib/utils/manifest.d.mts +1 -2
- package/dist/lib/utils/manifest.mjs +1 -2
- package/dist/lib/utils/markdown.d.mts +1 -2
- package/dist/lib/utils/markdown.mjs +1 -2
- package/dist/lib/utils/url.d.mts +1 -2
- package/dist/lib/utils/url.mjs +1 -2
- package/dist/lib/utils/user-agent.mjs +1 -2
- package/dist/modules/auth/components/allowed.client.d.mts +1 -2
- package/dist/modules/auth/components/allowed.client.mjs +1 -2
- package/dist/modules/auth/components/auth-layout.server.d.mts +1 -2
- package/dist/modules/auth/components/auth-layout.server.mjs +1 -2
- package/dist/modules/auth/components/auth-loading.d.mts +1 -2
- package/dist/modules/auth/components/auth-loading.mjs +1 -2
- package/dist/modules/auth/components/create-first-user-guard.server.d.mts +1 -2
- package/dist/modules/auth/components/create-first-user-guard.server.mjs +1 -2
- package/dist/modules/auth/components/create-first-user-page.client.d.mts +1 -2
- package/dist/modules/auth/components/create-first-user-page.client.mjs +1 -2
- package/dist/modules/auth/components/forget-password-page.client.d.mts +1 -2
- package/dist/modules/auth/components/forget-password-page.client.mjs +1 -2
- package/dist/modules/auth/components/guard.server.d.mts +1 -2
- package/dist/modules/auth/components/guard.server.mjs +1 -2
- package/dist/modules/auth/components/login-page.client.d.mts +1 -2
- package/dist/modules/auth/components/login-page.client.mjs +1 -2
- package/dist/modules/auth/components/reset-password-page.client.d.mts +1 -2
- package/dist/modules/auth/components/reset-password-page.client.mjs +1 -2
- package/dist/modules/auth/components/update-password-command.d.mts +1 -2
- package/dist/modules/auth/components/update-password-command.mjs +1 -2
- package/dist/modules/auth/db/schema.d.mts +1 -2
- package/dist/modules/auth/db/schema.mjs +1 -2
- package/dist/modules/auth/handler/create-client.client.d.mts +903 -665
- package/dist/modules/auth/handler/create-client.client.mjs +1 -2
- package/dist/modules/auth/handler/proxy.server.d.mts +1 -2
- package/dist/modules/auth/handler/proxy.server.mjs +1 -2
- package/dist/modules/auth/handler/route.server.d.mts +1 -2
- package/dist/modules/auth/handler/route.server.mjs +1 -2
- package/dist/modules/auth/handler/service.server.d.mts +121 -94
- package/dist/modules/auth/handler/service.server.mjs +1 -2
- package/dist/modules/auth/hooks/use-auth-client.d.mts +1 -2
- package/dist/modules/auth/hooks/use-auth-client.mjs +1 -2
- package/dist/modules/auth/hooks/use-permission.d.mts +1 -2
- package/dist/modules/auth/hooks/use-permission.mjs +1 -2
- package/dist/modules/auth/hooks/use-session.d.mts +3 -4
- package/dist/modules/auth/hooks/use-session.mjs +1 -2
- package/dist/modules/auth/lib/helpers.server.d.mts +2 -3
- package/dist/modules/auth/lib/helpers.server.mjs +1 -2
- package/dist/modules/auth/lib/permissions.d.mts +1 -2
- package/dist/modules/auth/lib/permissions.mjs +1 -2
- package/dist/modules/auth/lib/validators.d.mts +1 -2
- package/dist/modules/auth/lib/validators.mjs +1 -2
- package/dist/modules/commands/components/alert-dialog-command.client.d.mts +1 -2
- package/dist/modules/commands/components/alert-dialog-command.client.mjs +1 -2
- package/dist/modules/commands/components/click-command.client.d.mts +1 -2
- package/dist/modules/commands/components/click-command.client.mjs +1 -2
- package/dist/modules/commands/components/command-trigger.client.d.mts +1 -2
- package/dist/modules/commands/components/command-trigger.client.mjs +1 -2
- package/dist/modules/commands/components/dialog-command.client.d.mts +1 -2
- package/dist/modules/commands/components/dialog-command.client.mjs +1 -2
- package/dist/modules/commands/components/dropdown-command.client.d.mts +1 -2
- package/dist/modules/commands/components/dropdown-command.client.mjs +1 -2
- package/dist/modules/commands/components/empty-command.client.d.mts +1 -2
- package/dist/modules/commands/components/empty-command.client.mjs +1 -2
- package/dist/modules/commands/components/form-dialog-command.client.d.mts +1 -2
- package/dist/modules/commands/components/form-dialog-command.client.mjs +1 -2
- package/dist/modules/commands/components/render-command.mjs +1 -2
- package/dist/modules/commands/hooks/context.client.mjs +1 -2
- package/dist/modules/commands/hooks/use-command-menu.client.d.mts +1 -2
- package/dist/modules/commands/hooks/use-command-menu.client.mjs +1 -2
- package/dist/modules/commands/hooks/use-command-mutation.client.d.mts +1 -2
- package/dist/modules/commands/hooks/use-command-mutation.client.mjs +1 -2
- package/dist/modules/commands/lib/definitions.d.mts +1 -2
- package/dist/modules/commands/lib/factory.d.mts +1 -2
- package/dist/modules/commands/lib/factory.mjs +1 -2
- package/dist/modules/commands/menus/context-menu.client.d.mts +1 -2
- package/dist/modules/commands/menus/context-menu.client.mjs +1 -2
- package/dist/modules/commands/menus/dropdown-menu.client.d.mts +1 -2
- package/dist/modules/commands/menus/dropdown-menu.client.mjs +1 -2
- package/dist/modules/commands/menus/floating-menu.client.d.mts +1 -2
- package/dist/modules/commands/menus/floating-menu.client.mjs +1 -2
- package/dist/modules/commands/menus/inline-menu.client.d.mts +1 -2
- package/dist/modules/commands/menus/inline-menu.client.mjs +1 -2
- package/dist/modules/commands/menus/responsive-menu.client.d.mts +1 -2
- package/dist/modules/commands/menus/responsive-menu.client.mjs +1 -2
- package/dist/modules/commands/utils/archive-command.client.d.mts +1 -2
- package/dist/modules/commands/utils/archive-command.client.mjs +1 -2
- package/dist/modules/commands/utils/delete-command.client.d.mts +1 -2
- package/dist/modules/commands/utils/delete-command.client.mjs +1 -2
- package/dist/modules/config/lib/config.d.mts +1 -2
- package/dist/modules/config/lib/config.mjs +1 -2
- package/dist/modules/config/lib/context.d.mts +1 -2
- package/dist/modules/config/lib/context.mjs +1 -2
- package/dist/modules/config/paths/helpers.d.mts +1 -2
- package/dist/modules/config/paths/helpers.mjs +1 -2
- package/dist/modules/config/paths/types.d.mts +1 -2
- package/dist/modules/data-tables/components/cell/common.client.d.mts +1 -2
- package/dist/modules/data-tables/components/cell/common.client.mjs +1 -2
- package/dist/modules/data-tables/components/cell/index.client.d.mts +1 -2
- package/dist/modules/data-tables/components/cell/index.client.mjs +1 -2
- package/dist/modules/data-tables/components/cell/select.client.d.mts +1 -2
- package/dist/modules/data-tables/components/cell/select.client.mjs +1 -2
- package/dist/modules/data-tables/components/column-header.d.mts +1 -2
- package/dist/modules/data-tables/components/column-header.mjs +1 -2
- package/dist/modules/data-tables/components/filters/combobox.client.d.mts +1 -2
- package/dist/modules/data-tables/components/filters/combobox.client.mjs +1 -2
- package/dist/modules/data-tables/components/filters/slider.client.d.mts +1 -2
- package/dist/modules/data-tables/components/filters/slider.client.mjs +1 -2
- package/dist/modules/data-tables/components/footer.mjs +1 -2
- package/dist/modules/data-tables/components/header.d.mts +1 -2
- package/dist/modules/data-tables/components/header.mjs +1 -2
- package/dist/modules/data-tables/components/layout.d.mts +1 -2
- package/dist/modules/data-tables/components/layout.mjs +1 -2
- package/dist/modules/data-tables/components/search-input.client.d.mts +1 -2
- package/dist/modules/data-tables/components/search-input.client.mjs +1 -2
- package/dist/modules/data-tables/components/skeleton.d.mts +1 -2
- package/dist/modules/data-tables/components/skeleton.mjs +1 -2
- package/dist/modules/data-tables/components/table.d.mts +1 -2
- package/dist/modules/data-tables/components/table.mjs +1 -2
- package/dist/modules/data-tables/components/toolbar.d.mts +1 -2
- package/dist/modules/data-tables/components/toolbar.mjs +1 -2
- package/dist/modules/data-tables/hooks/use-context.client.d.mts +1 -2
- package/dist/modules/data-tables/hooks/use-context.client.mjs +1 -2
- package/dist/modules/data-tables/hooks/use-search.client.mjs +1 -2
- package/dist/modules/data-tables/hooks/use-selection.client.mjs +1 -2
- package/dist/modules/data-tables/hooks/use-table.client.d.mts +1 -2
- package/dist/modules/data-tables/hooks/use-table.client.mjs +1 -2
- package/dist/modules/data-tables/lib/converters/cursor.d.mts +1 -2
- package/dist/modules/data-tables/lib/converters/cursor.mjs +1 -2
- package/dist/modules/data-tables/lib/converters/dto.d.mts +1 -2
- package/dist/modules/data-tables/lib/converters/dto.mjs +1 -2
- package/dist/modules/data-tables/lib/converters/filter.d.mts +1 -2
- package/dist/modules/data-tables/lib/converters/filter.mjs +1 -2
- package/dist/modules/data-tables/lib/converters/search.d.mts +1 -2
- package/dist/modules/data-tables/lib/converters/search.mjs +1 -2
- package/dist/modules/data-tables/lib/converters/sorting.d.mts +1 -2
- package/dist/modules/data-tables/lib/converters/sorting.mjs +1 -2
- package/dist/modules/data-tables/lib/filters/config.d.mts +1 -2
- package/dist/modules/data-tables/lib/filters/config.mjs +1 -2
- package/dist/modules/data-tables/lib/filters/helpers.d.mts +1 -2
- package/dist/modules/data-tables/lib/filters/helpers.mjs +1 -2
- package/dist/modules/data-tables/lib/filters/parsers.d.mts +1 -2
- package/dist/modules/data-tables/lib/filters/parsers.mjs +1 -2
- package/dist/modules/data-tables/lib/filters/resolvers.d.mts +1 -2
- package/dist/modules/data-tables/lib/filters/resolvers.mjs +1 -2
- package/dist/modules/data-tables/lib/helpers/create-column.mjs +1 -2
- package/dist/modules/data-tables/lib/search-params.d.mts +1 -2
- package/dist/modules/data-tables/lib/search-params.mjs +1 -2
- package/dist/modules/data-tables/lib/types.d.mts +1 -2
- package/dist/modules/data-tables/lib/validators.d.mts +1 -2
- package/dist/modules/data-tables/lib/validators.mjs +1 -2
- package/dist/modules/data-tables/server/get-data.server.d.mts +2 -3
- package/dist/modules/data-tables/server/get-data.server.mjs +1 -2
- package/dist/modules/data-tables/strategies/helpers/sorting.mjs +1 -2
- package/dist/modules/data-tables/strategies/infinite/components.mjs +1 -2
- package/dist/modules/data-tables/strategies/infinite/strategy.d.mts +1 -2
- package/dist/modules/data-tables/strategies/infinite/strategy.mjs +1 -2
- package/dist/modules/data-tables/strategies/pagination/components.mjs +1 -2
- package/dist/modules/data-tables/strategies/pagination/strategy.d.mts +1 -2
- package/dist/modules/data-tables/strategies/pagination/strategy.mjs +1 -2
- package/dist/modules/data-tables/tables/data-table/components/body.mjs +1 -2
- package/dist/modules/data-tables/tables/data-table/components/header.mjs +1 -2
- package/dist/modules/data-tables/tables/data-table/components/row.mjs +1 -2
- package/dist/modules/data-tables/tables/data-table/components/table.d.mts +1 -2
- package/dist/modules/data-tables/tables/data-table/components/table.mjs +1 -2
- package/dist/modules/data-tables/tables/inline-table/components/body.mjs +1 -2
- package/dist/modules/data-tables/tables/inline-table/components/cells/common.d.mts +1 -2
- package/dist/modules/data-tables/tables/inline-table/components/cells/common.mjs +1 -2
- package/dist/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.d.mts +1 -2
- package/dist/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.mjs +1 -2
- package/dist/modules/data-tables/tables/inline-table/components/cells/read-only.d.mts +1 -2
- package/dist/modules/data-tables/tables/inline-table/components/cells/read-only.mjs +1 -2
- package/dist/modules/data-tables/tables/inline-table/components/header.mjs +1 -2
- package/dist/modules/data-tables/tables/inline-table/components/row.client.mjs +1 -2
- package/dist/modules/data-tables/tables/inline-table/components/table.d.mts +1 -2
- package/dist/modules/data-tables/tables/inline-table/components/table.mjs +1 -2
- package/dist/modules/data-tables/tables/inline-table/hooks/context.client.d.mts +1 -2
- package/dist/modules/data-tables/tables/inline-table/hooks/context.client.mjs +1 -2
- package/dist/modules/data-tables/tables/inline-table/hooks/use-hotkeys.client.d.mts +2 -3
- package/dist/modules/data-tables/tables/inline-table/hooks/use-hotkeys.client.mjs +1 -2
- package/dist/modules/database/lib/helpers.d.mts +1 -2
- package/dist/modules/database/lib/helpers.mjs +1 -2
- package/dist/modules/database/lib/service.server.d.mts +1 -2
- package/dist/modules/database/lib/service.server.mjs +1 -2
- package/dist/modules/database/lib/types.d.mts +1 -2
- package/dist/modules/emails/lib/service.server.d.mts +1 -2
- package/dist/modules/emails/lib/service.server.mjs +1 -2
- package/dist/modules/inline-edit/components/combobox-dropdown.client.d.mts +1 -2
- package/dist/modules/inline-edit/components/combobox-dropdown.client.mjs +1 -2
- package/dist/modules/inline-edit/components/combobox.client.d.mts +1 -2
- package/dist/modules/inline-edit/components/combobox.client.mjs +1 -2
- package/dist/modules/inline-edit/components/date-input.client.d.mts +1 -2
- package/dist/modules/inline-edit/components/date-input.client.mjs +1 -2
- package/dist/modules/inline-edit/components/date-picker.client.d.mts +1 -2
- package/dist/modules/inline-edit/components/date-picker.client.mjs +1 -2
- package/dist/modules/inline-edit/components/date-time.client.d.mts +1 -2
- package/dist/modules/inline-edit/components/date-time.client.mjs +1 -2
- package/dist/modules/inline-edit/components/editor.client.d.mts +1 -2
- package/dist/modules/inline-edit/components/editor.client.mjs +1 -2
- package/dist/modules/inline-edit/components/input-recipient.client.d.mts +1 -2
- package/dist/modules/inline-edit/components/input-recipient.client.mjs +1 -2
- package/dist/modules/inline-edit/components/input-toggle.client.d.mts +1 -2
- package/dist/modules/inline-edit/components/input-toggle.client.mjs +1 -2
- package/dist/modules/inline-edit/components/input.client.d.mts +1 -2
- package/dist/modules/inline-edit/components/input.client.mjs +1 -2
- package/dist/modules/inline-edit/components/select.client.d.mts +1 -2
- package/dist/modules/inline-edit/components/select.client.mjs +1 -2
- package/dist/modules/inline-edit/components/switch.client.d.mts +1 -2
- package/dist/modules/inline-edit/components/switch.client.mjs +1 -2
- package/dist/modules/inline-edit/components/toggle.client.d.mts +1 -2
- package/dist/modules/inline-edit/components/toggle.client.mjs +1 -2
- package/dist/modules/inline-edit/hooks/context.client.d.mts +1 -2
- package/dist/modules/inline-edit/hooks/context.client.mjs +1 -2
- package/dist/modules/inline-edit/hooks/use-inline.client.d.mts +1 -2
- package/dist/modules/inline-edit/hooks/use-inline.client.mjs +1 -2
- package/dist/modules/inline-edit/lib/validators.d.mts +1 -2
- package/dist/modules/inline-edit/lib/validators.mjs +1 -2
- package/dist/modules/inline-edit/lib/variants.d.mts +2 -3
- package/dist/modules/inline-edit/lib/variants.mjs +1 -2
- package/dist/modules/router/handler/caller.client.d.mts +1 -2
- package/dist/modules/router/handler/caller.client.mjs +1 -2
- package/dist/modules/router/handler/caller.server.d.mts +1 -2
- package/dist/modules/router/handler/caller.server.mjs +1 -2
- package/dist/modules/router/handler/context.server.d.mts +2 -3
- package/dist/modules/router/handler/context.server.mjs +1 -2
- package/dist/modules/router/handler/init.server.d.mts +3 -31
- package/dist/modules/router/handler/init.server.mjs +8 -6
- package/dist/modules/router/handler/register.server.d.mts +1 -2
- package/dist/modules/router/handler/register.server.mjs +1 -2
- package/dist/modules/router/handler/route.server.d.mts +2 -3
- package/dist/modules/router/handler/route.server.mjs +1 -2
- package/dist/modules/router/lib/helpers.mjs +1 -2
- package/dist/modules/router/lib/query-client.d.mts +1 -2
- package/dist/modules/router/lib/query-client.mjs +1 -2
- package/dist/modules/router/lib/query-client.server.d.mts +1 -2
- package/dist/modules/router/lib/query-client.server.mjs +1 -2
- package/dist/modules/router/lib/validators.d.mts +1 -2
- package/dist/modules/router/lib/validators.mjs +1 -2
- package/dist/modules/storage/components/dropzone-context.client.d.mts +1 -2
- package/dist/modules/storage/components/dropzone-context.client.mjs +1 -2
- package/dist/modules/storage/components/dropzone.client.d.mts +3 -4
- package/dist/modules/storage/components/dropzone.client.mjs +1 -2
- package/dist/modules/storage/components/image-grid.client.d.mts +1 -2
- package/dist/modules/storage/components/image-grid.client.mjs +1 -2
- package/dist/modules/storage/components/image.client.d.mts +1 -2
- package/dist/modules/storage/components/image.client.mjs +1 -2
- package/dist/modules/storage/components/upload-button.client.d.mts +1 -2
- package/dist/modules/storage/components/upload-button.client.mjs +1 -2
- package/dist/modules/storage/components/upload-zone-context.client.d.mts +1 -2
- package/dist/modules/storage/components/upload-zone-context.client.mjs +1 -2
- package/dist/modules/storage/components/upload-zone.client.d.mts +1 -2
- package/dist/modules/storage/components/upload-zone.client.mjs +1 -2
- package/dist/modules/storage/lib/constants.d.mts +1 -2
- package/dist/modules/storage/lib/constants.mjs +1 -2
- package/dist/modules/storage/lib/helpers.d.mts +1 -2
- package/dist/modules/storage/lib/helpers.mjs +1 -2
- package/dist/modules/storage/lib/procedures.server.d.mts +10 -11
- package/dist/modules/storage/lib/procedures.server.mjs +1 -2
- package/dist/modules/storage/lib/router-handlers.server.d.mts +2 -3
- package/dist/modules/storage/lib/router-handlers.server.mjs +1 -2
- package/dist/modules/storage/lib/schema.d.mts +2 -3
- package/dist/modules/storage/lib/schema.mjs +1 -2
- package/dist/modules/storage/lib/service.server.d.mts +31 -32
- package/dist/modules/storage/lib/service.server.mjs +1 -2
- package/dist/modules/storage/lib/upload.client.d.mts +1 -2
- package/dist/modules/storage/lib/upload.client.mjs +1 -2
- package/dist/modules/storage/lib/validators.d.mts +5 -6
- package/dist/modules/storage/lib/validators.mjs +1 -2
- package/dist/modules/storage/providers/adapters/s3.server.d.mts +1 -2
- package/dist/modules/storage/providers/adapters/s3.server.mjs +1 -2
- package/dist/modules/storage/providers/lib/constants.d.mts +1 -2
- package/dist/modules/storage/providers/lib/constants.mjs +1 -2
- package/dist/modules/storage/providers/lib/errors.d.mts +1 -2
- package/dist/modules/storage/providers/lib/errors.mjs +1 -2
- package/dist/modules/storage/providers/lib/types.d.mts +1 -2
- package/dist/modules/storage/providers/lib/validators.d.mts +1 -2
- package/dist/modules/storage/providers/lib/validators.mjs +1 -2
- package/package.json +66 -63
- package/src/components/emails/forget-password-email.tsx +1 -1
- package/src/modules/auth/lib/helpers.server.ts +1 -1
- package/src/modules/data-tables/server/get-data.server.ts +1 -1
- package/src/modules/data-tables/tables/inline-table/hooks/use-hotkeys.client.ts +1 -2
- package/src/modules/router/handler/context.server.ts +1 -1
- package/src/modules/router/handler/init.server.ts +2 -1
- package/src/modules/router/handler/route.server.ts +1 -1
- package/src/modules/storage/lib/procedures.server.ts +1 -1
- package/src/modules/storage/lib/router-handlers.server.ts +1 -1
- package/dist/components/common/icons.d.mts.map +0 -1
- package/dist/components/common/icons.mjs.map +0 -1
- package/dist/components/common/status.d.mts.map +0 -1
- package/dist/components/common/status.mjs.map +0 -1
- package/dist/components/editor/components/content.client.d.mts.map +0 -1
- package/dist/components/editor/components/content.client.mjs.map +0 -1
- package/dist/components/editor/components/editor.client.d.mts.map +0 -1
- package/dist/components/editor/components/editor.client.mjs.map +0 -1
- package/dist/components/editor/components/menu-nodes.client.mjs.map +0 -1
- package/dist/components/editor/components/menu.client.d.mts.map +0 -1
- package/dist/components/editor/components/menu.client.mjs.map +0 -1
- package/dist/components/editor/extensions/file-handler/extension.d.mts.map +0 -1
- package/dist/components/editor/extensions/file-handler/extension.mjs.map +0 -1
- package/dist/components/editor/extensions/file-handler/strategy.d.mts.map +0 -1
- package/dist/components/editor/extensions/file-handler/strategy.mjs.map +0 -1
- package/dist/components/editor/extensions/file-handler/utils.mjs.map +0 -1
- package/dist/components/editor/extensions/image/extension.d.mts.map +0 -1
- package/dist/components/editor/extensions/image/extension.mjs.map +0 -1
- package/dist/components/editor/extensions/skeleton/extension.mjs.map +0 -1
- package/dist/components/editor/extensions/skeleton/renderer.mjs.map +0 -1
- package/dist/components/editor/lib/constants.d.mts.map +0 -1
- package/dist/components/editor/lib/constants.mjs.map +0 -1
- package/dist/components/editor/lib/extensions.d.mts.map +0 -1
- package/dist/components/editor/lib/extensions.mjs.map +0 -1
- package/dist/components/editor/lib/helpers.d.mts.map +0 -1
- package/dist/components/editor/lib/helpers.mjs.map +0 -1
- package/dist/components/editor/lib/types.d.mts.map +0 -1
- package/dist/components/editor/lib/variants.mjs.map +0 -1
- package/dist/components/emails/forget-password-email.mjs.map +0 -1
- package/dist/components/header/back-button.client.d.mts.map +0 -1
- package/dist/components/header/back-button.client.mjs.map +0 -1
- package/dist/components/header/bottom-bar.client.d.mts.map +0 -1
- package/dist/components/header/bottom-bar.client.mjs.map +0 -1
- package/dist/components/header/breadcrumbs.client.d.mts.map +0 -1
- package/dist/components/header/breadcrumbs.client.mjs.map +0 -1
- package/dist/components/header/header.client.d.mts.map +0 -1
- package/dist/components/header/header.client.mjs.map +0 -1
- package/dist/components/header/indicator.client.mjs.map +0 -1
- package/dist/components/header/mobile-nav-switcher.client.d.mts.map +0 -1
- package/dist/components/header/mobile-nav-switcher.client.mjs.map +0 -1
- package/dist/components/header/top-bar.client.d.mts.map +0 -1
- package/dist/components/header/top-bar.client.mjs.map +0 -1
- package/dist/components/layouts/admin-content.client.d.mts.map +0 -1
- package/dist/components/layouts/admin-content.client.mjs.map +0 -1
- package/dist/components/layouts/admin-error-pages.d.mts.map +0 -1
- package/dist/components/layouts/admin-error-pages.mjs.map +0 -1
- package/dist/components/layouts/admin-layout.d.mts.map +0 -1
- package/dist/components/layouts/admin-layout.mjs.map +0 -1
- package/dist/components/layouts/admin-loading.d.mts.map +0 -1
- package/dist/components/layouts/admin-loading.mjs.map +0 -1
- package/dist/components/layouts/empty-page.d.mts.map +0 -1
- package/dist/components/layouts/empty-page.mjs.map +0 -1
- package/dist/components/layouts/error-page.d.mts.map +0 -1
- package/dist/components/layouts/error-page.mjs.map +0 -1
- package/dist/components/layouts/error-sections.d.mts.map +0 -1
- package/dist/components/layouts/error-sections.mjs.map +0 -1
- package/dist/components/layouts/list-layout.d.mts.map +0 -1
- package/dist/components/layouts/list-layout.mjs.map +0 -1
- package/dist/components/layouts/providers.client.d.mts.map +0 -1
- package/dist/components/layouts/providers.client.mjs.map +0 -1
- package/dist/components/layouts/root-error-pages.d.mts.map +0 -1
- package/dist/components/layouts/root-error-pages.mjs.map +0 -1
- package/dist/components/layouts/root-layout.server.d.mts.map +0 -1
- package/dist/components/layouts/root-layout.server.mjs.map +0 -1
- package/dist/components/layouts/root-loading.d.mts.map +0 -1
- package/dist/components/layouts/root-loading.mjs.map +0 -1
- package/dist/components/layouts/tab-layout.d.mts.map +0 -1
- package/dist/components/layouts/tab-layout.mjs.map +0 -1
- package/dist/components/lists/data-list.d.mts.map +0 -1
- package/dist/components/lists/data-list.mjs.map +0 -1
- package/dist/components/lists/data-stack.d.mts.map +0 -1
- package/dist/components/lists/data-stack.mjs.map +0 -1
- package/dist/components/navigation/admin-sidebar-header.client.mjs.map +0 -1
- package/dist/components/navigation/admin-sidebar-paths.client.d.mts.map +0 -1
- package/dist/components/navigation/admin-sidebar-paths.client.mjs.map +0 -1
- package/dist/components/navigation/admin-sidebar-skeleton.mjs.map +0 -1
- package/dist/components/ui/accordion.client.d.mts.map +0 -1
- package/dist/components/ui/accordion.client.mjs.map +0 -1
- package/dist/components/ui/alert-dialog.client.d.mts.map +0 -1
- package/dist/components/ui/alert-dialog.client.mjs.map +0 -1
- package/dist/components/ui/alert.d.mts.map +0 -1
- package/dist/components/ui/alert.mjs.map +0 -1
- package/dist/components/ui/aspect-ratio.client.d.mts.map +0 -1
- package/dist/components/ui/aspect-ratio.client.mjs.map +0 -1
- package/dist/components/ui/avatar.client.d.mts.map +0 -1
- package/dist/components/ui/avatar.client.mjs.map +0 -1
- package/dist/components/ui/badge.d.mts.map +0 -1
- package/dist/components/ui/badge.mjs.map +0 -1
- package/dist/components/ui/breadcrumb.d.mts.map +0 -1
- package/dist/components/ui/breadcrumb.mjs.map +0 -1
- package/dist/components/ui/button-group.d.mts.map +0 -1
- package/dist/components/ui/button-group.mjs.map +0 -1
- package/dist/components/ui/button.d.mts.map +0 -1
- package/dist/components/ui/button.mjs.map +0 -1
- package/dist/components/ui/calendar.client.d.mts.map +0 -1
- package/dist/components/ui/calendar.client.mjs.map +0 -1
- package/dist/components/ui/card.d.mts.map +0 -1
- package/dist/components/ui/card.mjs.map +0 -1
- package/dist/components/ui/carousel.client.d.mts.map +0 -1
- package/dist/components/ui/carousel.client.mjs.map +0 -1
- package/dist/components/ui/chart.client.d.mts.map +0 -1
- package/dist/components/ui/chart.client.mjs.map +0 -1
- package/dist/components/ui/checkbox.client.d.mts.map +0 -1
- package/dist/components/ui/checkbox.client.mjs.map +0 -1
- package/dist/components/ui/collapsible.client.d.mts.map +0 -1
- package/dist/components/ui/collapsible.client.mjs.map +0 -1
- package/dist/components/ui/color-picker.client.d.mts.map +0 -1
- package/dist/components/ui/color-picker.client.mjs.map +0 -1
- package/dist/components/ui/combobox-dropdown.client.d.mts.map +0 -1
- package/dist/components/ui/combobox-dropdown.client.mjs.map +0 -1
- package/dist/components/ui/combobox.client.d.mts.map +0 -1
- package/dist/components/ui/combobox.client.mjs.map +0 -1
- package/dist/components/ui/command.client.d.mts.map +0 -1
- package/dist/components/ui/command.client.mjs.map +0 -1
- package/dist/components/ui/context-menu.client.d.mts.map +0 -1
- package/dist/components/ui/context-menu.client.mjs.map +0 -1
- package/dist/components/ui/date-picker.client.d.mts.map +0 -1
- package/dist/components/ui/date-picker.client.mjs.map +0 -1
- package/dist/components/ui/dialog.client.d.mts.map +0 -1
- package/dist/components/ui/dialog.client.mjs.map +0 -1
- package/dist/components/ui/drawer.client.d.mts.map +0 -1
- package/dist/components/ui/drawer.client.mjs.map +0 -1
- package/dist/components/ui/dropdown-menu.client.d.mts.map +0 -1
- package/dist/components/ui/dropdown-menu.client.mjs.map +0 -1
- package/dist/components/ui/empty.d.mts.map +0 -1
- package/dist/components/ui/empty.mjs.map +0 -1
- package/dist/components/ui/field.client.d.mts.map +0 -1
- package/dist/components/ui/field.client.mjs.map +0 -1
- package/dist/components/ui/form.client.d.mts.map +0 -1
- package/dist/components/ui/form.client.mjs.map +0 -1
- package/dist/components/ui/hover-card.client.d.mts.map +0 -1
- package/dist/components/ui/hover-card.client.mjs.map +0 -1
- package/dist/components/ui/input-date-time.client.d.mts.map +0 -1
- package/dist/components/ui/input-date-time.client.mjs.map +0 -1
- package/dist/components/ui/input-date.d.mts.map +0 -1
- package/dist/components/ui/input-date.mjs.map +0 -1
- package/dist/components/ui/input-group.client.d.mts.map +0 -1
- package/dist/components/ui/input-group.client.mjs.map +0 -1
- package/dist/components/ui/input-recipient.d.mts.map +0 -1
- package/dist/components/ui/input-recipient.mjs.map +0 -1
- package/dist/components/ui/input-time.d.mts.map +0 -1
- package/dist/components/ui/input-time.mjs.map +0 -1
- package/dist/components/ui/input.d.mts.map +0 -1
- package/dist/components/ui/input.mjs.map +0 -1
- package/dist/components/ui/item.d.mts.map +0 -1
- package/dist/components/ui/item.mjs.map +0 -1
- package/dist/components/ui/kbd.d.mts.map +0 -1
- package/dist/components/ui/kbd.mjs.map +0 -1
- package/dist/components/ui/label.d.mts.map +0 -1
- package/dist/components/ui/label.mjs.map +0 -1
- package/dist/components/ui/loader.d.mts.map +0 -1
- package/dist/components/ui/loader.mjs.map +0 -1
- package/dist/components/ui/navigation-menu.d.mts.map +0 -1
- package/dist/components/ui/navigation-menu.mjs.map +0 -1
- package/dist/components/ui/pagination.d.mts.map +0 -1
- package/dist/components/ui/pagination.mjs.map +0 -1
- package/dist/components/ui/popover.client.d.mts.map +0 -1
- package/dist/components/ui/popover.client.mjs.map +0 -1
- package/dist/components/ui/progress.client.d.mts.map +0 -1
- package/dist/components/ui/progress.client.mjs.map +0 -1
- package/dist/components/ui/radio-group.d.mts.map +0 -1
- package/dist/components/ui/radio-group.mjs.map +0 -1
- package/dist/components/ui/resizable.client.d.mts.map +0 -1
- package/dist/components/ui/resizable.client.mjs.map +0 -1
- package/dist/components/ui/scroll-area.d.mts.map +0 -1
- package/dist/components/ui/scroll-area.mjs.map +0 -1
- package/dist/components/ui/select.client.d.mts.map +0 -1
- package/dist/components/ui/select.client.mjs.map +0 -1
- package/dist/components/ui/separator.d.mts.map +0 -1
- package/dist/components/ui/separator.mjs.map +0 -1
- package/dist/components/ui/sheet.client.d.mts.map +0 -1
- package/dist/components/ui/sheet.client.mjs.map +0 -1
- package/dist/components/ui/sidebar.client.d.mts.map +0 -1
- package/dist/components/ui/sidebar.client.mjs.map +0 -1
- package/dist/components/ui/skeleton.d.mts.map +0 -1
- package/dist/components/ui/skeleton.mjs.map +0 -1
- package/dist/components/ui/slider.d.mts.map +0 -1
- package/dist/components/ui/slider.mjs.map +0 -1
- package/dist/components/ui/sonner.client.d.mts.map +0 -1
- package/dist/components/ui/sonner.client.mjs.map +0 -1
- package/dist/components/ui/spinner.d.mts.map +0 -1
- package/dist/components/ui/spinner.mjs.map +0 -1
- package/dist/components/ui/switch.client.d.mts.map +0 -1
- package/dist/components/ui/switch.client.mjs.map +0 -1
- package/dist/components/ui/tabs.client.d.mts.map +0 -1
- package/dist/components/ui/tabs.client.mjs.map +0 -1
- package/dist/components/ui/textarea.d.mts.map +0 -1
- package/dist/components/ui/textarea.mjs.map +0 -1
- package/dist/components/ui/toggle-group.client.d.mts.map +0 -1
- package/dist/components/ui/toggle-group.client.mjs.map +0 -1
- package/dist/components/ui/toggle.client.d.mts.map +0 -1
- package/dist/components/ui/toggle.client.mjs.map +0 -1
- package/dist/components/ui/tooltip.client.d.mts.map +0 -1
- package/dist/components/ui/tooltip.client.mjs.map +0 -1
- package/dist/lib/hooks/use-action.d.mts.map +0 -1
- package/dist/lib/hooks/use-action.mjs.map +0 -1
- package/dist/lib/hooks/use-indicator.d.mts.map +0 -1
- package/dist/lib/hooks/use-indicator.mjs.map +0 -1
- package/dist/lib/hooks/use-mobile.client.d.mts.map +0 -1
- package/dist/lib/hooks/use-mobile.client.mjs.map +0 -1
- package/dist/lib/types/config.d.mts.map +0 -1
- package/dist/lib/utils/array-move.d.mts.map +0 -1
- package/dist/lib/utils/array-move.mjs.map +0 -1
- package/dist/lib/utils/cn.d.mts.map +0 -1
- package/dist/lib/utils/cn.mjs.map +0 -1
- package/dist/lib/utils/fonts.d.mts.map +0 -1
- package/dist/lib/utils/fonts.mjs.map +0 -1
- package/dist/lib/utils/format.d.mts.map +0 -1
- package/dist/lib/utils/format.mjs.map +0 -1
- package/dist/lib/utils/manifest.d.mts.map +0 -1
- package/dist/lib/utils/manifest.mjs.map +0 -1
- package/dist/lib/utils/markdown.d.mts.map +0 -1
- package/dist/lib/utils/markdown.mjs.map +0 -1
- package/dist/lib/utils/url.d.mts.map +0 -1
- package/dist/lib/utils/url.mjs.map +0 -1
- package/dist/lib/utils/user-agent.mjs.map +0 -1
- package/dist/modules/auth/components/allowed.client.d.mts.map +0 -1
- package/dist/modules/auth/components/allowed.client.mjs.map +0 -1
- package/dist/modules/auth/components/auth-layout.server.d.mts.map +0 -1
- package/dist/modules/auth/components/auth-layout.server.mjs.map +0 -1
- package/dist/modules/auth/components/auth-loading.d.mts.map +0 -1
- package/dist/modules/auth/components/auth-loading.mjs.map +0 -1
- package/dist/modules/auth/components/create-first-user-guard.server.d.mts.map +0 -1
- package/dist/modules/auth/components/create-first-user-guard.server.mjs.map +0 -1
- package/dist/modules/auth/components/create-first-user-page.client.d.mts.map +0 -1
- package/dist/modules/auth/components/create-first-user-page.client.mjs.map +0 -1
- package/dist/modules/auth/components/forget-password-page.client.d.mts.map +0 -1
- package/dist/modules/auth/components/forget-password-page.client.mjs.map +0 -1
- package/dist/modules/auth/components/guard.server.d.mts.map +0 -1
- package/dist/modules/auth/components/guard.server.mjs.map +0 -1
- package/dist/modules/auth/components/login-page.client.d.mts.map +0 -1
- package/dist/modules/auth/components/login-page.client.mjs.map +0 -1
- package/dist/modules/auth/components/reset-password-page.client.d.mts.map +0 -1
- package/dist/modules/auth/components/reset-password-page.client.mjs.map +0 -1
- package/dist/modules/auth/components/update-password-command.d.mts.map +0 -1
- package/dist/modules/auth/components/update-password-command.mjs.map +0 -1
- package/dist/modules/auth/db/schema.d.mts.map +0 -1
- package/dist/modules/auth/db/schema.mjs.map +0 -1
- package/dist/modules/auth/handler/create-client.client.d.mts.map +0 -1
- package/dist/modules/auth/handler/create-client.client.mjs.map +0 -1
- package/dist/modules/auth/handler/proxy.server.d.mts.map +0 -1
- package/dist/modules/auth/handler/proxy.server.mjs.map +0 -1
- package/dist/modules/auth/handler/route.server.d.mts.map +0 -1
- package/dist/modules/auth/handler/route.server.mjs.map +0 -1
- package/dist/modules/auth/handler/service.server.d.mts.map +0 -1
- package/dist/modules/auth/handler/service.server.mjs.map +0 -1
- package/dist/modules/auth/hooks/use-auth-client.d.mts.map +0 -1
- package/dist/modules/auth/hooks/use-auth-client.mjs.map +0 -1
- package/dist/modules/auth/hooks/use-permission.d.mts.map +0 -1
- package/dist/modules/auth/hooks/use-permission.mjs.map +0 -1
- package/dist/modules/auth/hooks/use-session.d.mts.map +0 -1
- package/dist/modules/auth/hooks/use-session.mjs.map +0 -1
- package/dist/modules/auth/lib/helpers.server.d.mts.map +0 -1
- package/dist/modules/auth/lib/helpers.server.mjs.map +0 -1
- package/dist/modules/auth/lib/permissions.d.mts.map +0 -1
- package/dist/modules/auth/lib/permissions.mjs.map +0 -1
- package/dist/modules/auth/lib/validators.d.mts.map +0 -1
- package/dist/modules/auth/lib/validators.mjs.map +0 -1
- package/dist/modules/commands/components/alert-dialog-command.client.d.mts.map +0 -1
- package/dist/modules/commands/components/alert-dialog-command.client.mjs.map +0 -1
- package/dist/modules/commands/components/click-command.client.d.mts.map +0 -1
- package/dist/modules/commands/components/click-command.client.mjs.map +0 -1
- package/dist/modules/commands/components/command-trigger.client.d.mts.map +0 -1
- package/dist/modules/commands/components/command-trigger.client.mjs.map +0 -1
- package/dist/modules/commands/components/dialog-command.client.d.mts.map +0 -1
- package/dist/modules/commands/components/dialog-command.client.mjs.map +0 -1
- package/dist/modules/commands/components/dropdown-command.client.d.mts.map +0 -1
- package/dist/modules/commands/components/dropdown-command.client.mjs.map +0 -1
- package/dist/modules/commands/components/empty-command.client.d.mts.map +0 -1
- package/dist/modules/commands/components/empty-command.client.mjs.map +0 -1
- package/dist/modules/commands/components/form-dialog-command.client.d.mts.map +0 -1
- package/dist/modules/commands/components/form-dialog-command.client.mjs.map +0 -1
- package/dist/modules/commands/components/render-command.mjs.map +0 -1
- package/dist/modules/commands/hooks/context.client.mjs.map +0 -1
- package/dist/modules/commands/hooks/use-command-menu.client.d.mts.map +0 -1
- package/dist/modules/commands/hooks/use-command-menu.client.mjs.map +0 -1
- package/dist/modules/commands/hooks/use-command-mutation.client.d.mts.map +0 -1
- package/dist/modules/commands/hooks/use-command-mutation.client.mjs.map +0 -1
- package/dist/modules/commands/lib/definitions.d.mts.map +0 -1
- package/dist/modules/commands/lib/factory.d.mts.map +0 -1
- package/dist/modules/commands/lib/factory.mjs.map +0 -1
- package/dist/modules/commands/menus/context-menu.client.d.mts.map +0 -1
- package/dist/modules/commands/menus/context-menu.client.mjs.map +0 -1
- package/dist/modules/commands/menus/dropdown-menu.client.d.mts.map +0 -1
- package/dist/modules/commands/menus/dropdown-menu.client.mjs.map +0 -1
- package/dist/modules/commands/menus/floating-menu.client.d.mts.map +0 -1
- package/dist/modules/commands/menus/floating-menu.client.mjs.map +0 -1
- package/dist/modules/commands/menus/inline-menu.client.d.mts.map +0 -1
- package/dist/modules/commands/menus/inline-menu.client.mjs.map +0 -1
- package/dist/modules/commands/menus/responsive-menu.client.d.mts.map +0 -1
- package/dist/modules/commands/menus/responsive-menu.client.mjs.map +0 -1
- package/dist/modules/commands/utils/archive-command.client.d.mts.map +0 -1
- package/dist/modules/commands/utils/archive-command.client.mjs.map +0 -1
- package/dist/modules/commands/utils/delete-command.client.d.mts.map +0 -1
- package/dist/modules/commands/utils/delete-command.client.mjs.map +0 -1
- package/dist/modules/config/lib/config.d.mts.map +0 -1
- package/dist/modules/config/lib/config.mjs.map +0 -1
- package/dist/modules/config/lib/context.d.mts.map +0 -1
- package/dist/modules/config/lib/context.mjs.map +0 -1
- package/dist/modules/config/paths/helpers.d.mts.map +0 -1
- package/dist/modules/config/paths/helpers.mjs.map +0 -1
- package/dist/modules/config/paths/types.d.mts.map +0 -1
- package/dist/modules/data-tables/components/cell/common.client.d.mts.map +0 -1
- package/dist/modules/data-tables/components/cell/common.client.mjs.map +0 -1
- package/dist/modules/data-tables/components/cell/index.client.d.mts.map +0 -1
- package/dist/modules/data-tables/components/cell/index.client.mjs.map +0 -1
- package/dist/modules/data-tables/components/cell/select.client.d.mts.map +0 -1
- package/dist/modules/data-tables/components/cell/select.client.mjs.map +0 -1
- package/dist/modules/data-tables/components/column-header.d.mts.map +0 -1
- package/dist/modules/data-tables/components/column-header.mjs.map +0 -1
- package/dist/modules/data-tables/components/filters/combobox.client.d.mts.map +0 -1
- package/dist/modules/data-tables/components/filters/combobox.client.mjs.map +0 -1
- package/dist/modules/data-tables/components/filters/slider.client.d.mts.map +0 -1
- package/dist/modules/data-tables/components/filters/slider.client.mjs.map +0 -1
- package/dist/modules/data-tables/components/footer.mjs.map +0 -1
- package/dist/modules/data-tables/components/header.d.mts.map +0 -1
- package/dist/modules/data-tables/components/header.mjs.map +0 -1
- package/dist/modules/data-tables/components/layout.d.mts.map +0 -1
- package/dist/modules/data-tables/components/layout.mjs.map +0 -1
- package/dist/modules/data-tables/components/search-input.client.d.mts.map +0 -1
- package/dist/modules/data-tables/components/search-input.client.mjs.map +0 -1
- package/dist/modules/data-tables/components/skeleton.d.mts.map +0 -1
- package/dist/modules/data-tables/components/skeleton.mjs.map +0 -1
- package/dist/modules/data-tables/components/table.d.mts.map +0 -1
- package/dist/modules/data-tables/components/table.mjs.map +0 -1
- package/dist/modules/data-tables/components/toolbar.d.mts.map +0 -1
- package/dist/modules/data-tables/components/toolbar.mjs.map +0 -1
- package/dist/modules/data-tables/hooks/use-context.client.d.mts.map +0 -1
- package/dist/modules/data-tables/hooks/use-context.client.mjs.map +0 -1
- package/dist/modules/data-tables/hooks/use-search.client.mjs.map +0 -1
- package/dist/modules/data-tables/hooks/use-selection.client.mjs.map +0 -1
- package/dist/modules/data-tables/hooks/use-table.client.d.mts.map +0 -1
- package/dist/modules/data-tables/hooks/use-table.client.mjs.map +0 -1
- package/dist/modules/data-tables/lib/converters/cursor.d.mts.map +0 -1
- package/dist/modules/data-tables/lib/converters/cursor.mjs.map +0 -1
- package/dist/modules/data-tables/lib/converters/dto.d.mts.map +0 -1
- package/dist/modules/data-tables/lib/converters/dto.mjs.map +0 -1
- package/dist/modules/data-tables/lib/converters/filter.d.mts.map +0 -1
- package/dist/modules/data-tables/lib/converters/filter.mjs.map +0 -1
- package/dist/modules/data-tables/lib/converters/search.d.mts.map +0 -1
- package/dist/modules/data-tables/lib/converters/search.mjs.map +0 -1
- package/dist/modules/data-tables/lib/converters/sorting.d.mts.map +0 -1
- package/dist/modules/data-tables/lib/converters/sorting.mjs.map +0 -1
- package/dist/modules/data-tables/lib/filters/config.d.mts.map +0 -1
- package/dist/modules/data-tables/lib/filters/config.mjs.map +0 -1
- package/dist/modules/data-tables/lib/filters/helpers.d.mts.map +0 -1
- package/dist/modules/data-tables/lib/filters/helpers.mjs.map +0 -1
- package/dist/modules/data-tables/lib/filters/parsers.d.mts.map +0 -1
- package/dist/modules/data-tables/lib/filters/parsers.mjs.map +0 -1
- package/dist/modules/data-tables/lib/filters/resolvers.d.mts.map +0 -1
- package/dist/modules/data-tables/lib/filters/resolvers.mjs.map +0 -1
- package/dist/modules/data-tables/lib/helpers/create-column.mjs.map +0 -1
- package/dist/modules/data-tables/lib/search-params.d.mts.map +0 -1
- package/dist/modules/data-tables/lib/search-params.mjs.map +0 -1
- package/dist/modules/data-tables/lib/types.d.mts.map +0 -1
- package/dist/modules/data-tables/lib/validators.d.mts.map +0 -1
- package/dist/modules/data-tables/lib/validators.mjs.map +0 -1
- package/dist/modules/data-tables/server/get-data.server.d.mts.map +0 -1
- package/dist/modules/data-tables/server/get-data.server.mjs.map +0 -1
- package/dist/modules/data-tables/strategies/helpers/sorting.mjs.map +0 -1
- package/dist/modules/data-tables/strategies/infinite/components.mjs.map +0 -1
- package/dist/modules/data-tables/strategies/infinite/strategy.d.mts.map +0 -1
- package/dist/modules/data-tables/strategies/infinite/strategy.mjs.map +0 -1
- package/dist/modules/data-tables/strategies/pagination/components.mjs.map +0 -1
- package/dist/modules/data-tables/strategies/pagination/strategy.d.mts.map +0 -1
- package/dist/modules/data-tables/strategies/pagination/strategy.mjs.map +0 -1
- package/dist/modules/data-tables/tables/data-table/components/body.mjs.map +0 -1
- package/dist/modules/data-tables/tables/data-table/components/header.mjs.map +0 -1
- package/dist/modules/data-tables/tables/data-table/components/row.mjs.map +0 -1
- package/dist/modules/data-tables/tables/data-table/components/table.d.mts.map +0 -1
- package/dist/modules/data-tables/tables/data-table/components/table.mjs.map +0 -1
- package/dist/modules/data-tables/tables/inline-table/components/body.mjs.map +0 -1
- package/dist/modules/data-tables/tables/inline-table/components/cells/common.d.mts.map +0 -1
- package/dist/modules/data-tables/tables/inline-table/components/cells/common.mjs.map +0 -1
- package/dist/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.d.mts.map +0 -1
- package/dist/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.mjs.map +0 -1
- package/dist/modules/data-tables/tables/inline-table/components/cells/read-only.d.mts.map +0 -1
- package/dist/modules/data-tables/tables/inline-table/components/cells/read-only.mjs.map +0 -1
- package/dist/modules/data-tables/tables/inline-table/components/header.mjs.map +0 -1
- package/dist/modules/data-tables/tables/inline-table/components/row.client.mjs.map +0 -1
- package/dist/modules/data-tables/tables/inline-table/components/table.d.mts.map +0 -1
- package/dist/modules/data-tables/tables/inline-table/components/table.mjs.map +0 -1
- package/dist/modules/data-tables/tables/inline-table/hooks/context.client.d.mts.map +0 -1
- package/dist/modules/data-tables/tables/inline-table/hooks/context.client.mjs.map +0 -1
- package/dist/modules/data-tables/tables/inline-table/hooks/use-hotkeys.client.d.mts.map +0 -1
- package/dist/modules/data-tables/tables/inline-table/hooks/use-hotkeys.client.mjs.map +0 -1
- package/dist/modules/database/lib/helpers.d.mts.map +0 -1
- package/dist/modules/database/lib/helpers.mjs.map +0 -1
- package/dist/modules/database/lib/service.server.d.mts.map +0 -1
- package/dist/modules/database/lib/service.server.mjs.map +0 -1
- package/dist/modules/database/lib/types.d.mts.map +0 -1
- package/dist/modules/emails/lib/service.server.d.mts.map +0 -1
- package/dist/modules/emails/lib/service.server.mjs.map +0 -1
- package/dist/modules/inline-edit/components/combobox-dropdown.client.d.mts.map +0 -1
- package/dist/modules/inline-edit/components/combobox-dropdown.client.mjs.map +0 -1
- package/dist/modules/inline-edit/components/combobox.client.d.mts.map +0 -1
- package/dist/modules/inline-edit/components/combobox.client.mjs.map +0 -1
- package/dist/modules/inline-edit/components/date-input.client.d.mts.map +0 -1
- package/dist/modules/inline-edit/components/date-input.client.mjs.map +0 -1
- package/dist/modules/inline-edit/components/date-picker.client.d.mts.map +0 -1
- package/dist/modules/inline-edit/components/date-picker.client.mjs.map +0 -1
- package/dist/modules/inline-edit/components/date-time.client.d.mts.map +0 -1
- package/dist/modules/inline-edit/components/date-time.client.mjs.map +0 -1
- package/dist/modules/inline-edit/components/editor.client.d.mts.map +0 -1
- package/dist/modules/inline-edit/components/editor.client.mjs.map +0 -1
- package/dist/modules/inline-edit/components/input-recipient.client.d.mts.map +0 -1
- package/dist/modules/inline-edit/components/input-recipient.client.mjs.map +0 -1
- package/dist/modules/inline-edit/components/input-toggle.client.d.mts.map +0 -1
- package/dist/modules/inline-edit/components/input-toggle.client.mjs.map +0 -1
- package/dist/modules/inline-edit/components/input.client.d.mts.map +0 -1
- package/dist/modules/inline-edit/components/input.client.mjs.map +0 -1
- package/dist/modules/inline-edit/components/select.client.d.mts.map +0 -1
- package/dist/modules/inline-edit/components/select.client.mjs.map +0 -1
- package/dist/modules/inline-edit/components/switch.client.d.mts.map +0 -1
- package/dist/modules/inline-edit/components/switch.client.mjs.map +0 -1
- package/dist/modules/inline-edit/components/toggle.client.d.mts.map +0 -1
- package/dist/modules/inline-edit/components/toggle.client.mjs.map +0 -1
- package/dist/modules/inline-edit/hooks/context.client.d.mts.map +0 -1
- package/dist/modules/inline-edit/hooks/context.client.mjs.map +0 -1
- package/dist/modules/inline-edit/hooks/use-inline.client.d.mts.map +0 -1
- package/dist/modules/inline-edit/hooks/use-inline.client.mjs.map +0 -1
- package/dist/modules/inline-edit/lib/validators.d.mts.map +0 -1
- package/dist/modules/inline-edit/lib/validators.mjs.map +0 -1
- package/dist/modules/inline-edit/lib/variants.d.mts.map +0 -1
- package/dist/modules/inline-edit/lib/variants.mjs.map +0 -1
- package/dist/modules/router/handler/caller.client.d.mts.map +0 -1
- package/dist/modules/router/handler/caller.client.mjs.map +0 -1
- package/dist/modules/router/handler/caller.server.d.mts.map +0 -1
- package/dist/modules/router/handler/caller.server.mjs.map +0 -1
- package/dist/modules/router/handler/context.server.d.mts.map +0 -1
- package/dist/modules/router/handler/context.server.mjs.map +0 -1
- package/dist/modules/router/handler/init.server.d.mts.map +0 -1
- package/dist/modules/router/handler/init.server.mjs.map +0 -1
- package/dist/modules/router/handler/register.server.d.mts.map +0 -1
- package/dist/modules/router/handler/register.server.mjs.map +0 -1
- package/dist/modules/router/handler/route.server.d.mts.map +0 -1
- package/dist/modules/router/handler/route.server.mjs.map +0 -1
- package/dist/modules/router/lib/helpers.mjs.map +0 -1
- package/dist/modules/router/lib/query-client.d.mts.map +0 -1
- package/dist/modules/router/lib/query-client.mjs.map +0 -1
- package/dist/modules/router/lib/query-client.server.d.mts.map +0 -1
- package/dist/modules/router/lib/query-client.server.mjs.map +0 -1
- package/dist/modules/router/lib/validators.d.mts.map +0 -1
- package/dist/modules/router/lib/validators.mjs.map +0 -1
- package/dist/modules/storage/components/dropzone-context.client.d.mts.map +0 -1
- package/dist/modules/storage/components/dropzone-context.client.mjs.map +0 -1
- package/dist/modules/storage/components/dropzone.client.d.mts.map +0 -1
- package/dist/modules/storage/components/dropzone.client.mjs.map +0 -1
- package/dist/modules/storage/components/image-grid.client.d.mts.map +0 -1
- package/dist/modules/storage/components/image-grid.client.mjs.map +0 -1
- package/dist/modules/storage/components/image.client.d.mts.map +0 -1
- package/dist/modules/storage/components/image.client.mjs.map +0 -1
- package/dist/modules/storage/components/upload-button.client.d.mts.map +0 -1
- package/dist/modules/storage/components/upload-button.client.mjs.map +0 -1
- package/dist/modules/storage/components/upload-zone-context.client.d.mts.map +0 -1
- package/dist/modules/storage/components/upload-zone-context.client.mjs.map +0 -1
- package/dist/modules/storage/components/upload-zone.client.d.mts.map +0 -1
- package/dist/modules/storage/components/upload-zone.client.mjs.map +0 -1
- package/dist/modules/storage/lib/constants.d.mts.map +0 -1
- package/dist/modules/storage/lib/constants.mjs.map +0 -1
- package/dist/modules/storage/lib/helpers.d.mts.map +0 -1
- package/dist/modules/storage/lib/helpers.mjs.map +0 -1
- package/dist/modules/storage/lib/procedures.server.d.mts.map +0 -1
- package/dist/modules/storage/lib/procedures.server.mjs.map +0 -1
- package/dist/modules/storage/lib/router-handlers.server.d.mts.map +0 -1
- package/dist/modules/storage/lib/router-handlers.server.mjs.map +0 -1
- package/dist/modules/storage/lib/schema.d.mts.map +0 -1
- package/dist/modules/storage/lib/schema.mjs.map +0 -1
- package/dist/modules/storage/lib/service.server.d.mts.map +0 -1
- package/dist/modules/storage/lib/service.server.mjs.map +0 -1
- package/dist/modules/storage/lib/upload.client.d.mts.map +0 -1
- package/dist/modules/storage/lib/upload.client.mjs.map +0 -1
- package/dist/modules/storage/lib/validators.d.mts.map +0 -1
- package/dist/modules/storage/lib/validators.mjs.map +0 -1
- package/dist/modules/storage/providers/adapters/s3.server.d.mts.map +0 -1
- package/dist/modules/storage/providers/adapters/s3.server.mjs.map +0 -1
- package/dist/modules/storage/providers/lib/constants.d.mts.map +0 -1
- package/dist/modules/storage/providers/lib/constants.mjs.map +0 -1
- package/dist/modules/storage/providers/lib/errors.d.mts.map +0 -1
- package/dist/modules/storage/providers/lib/errors.mjs.map +0 -1
- package/dist/modules/storage/providers/lib/types.d.mts.map +0 -1
- package/dist/modules/storage/providers/lib/validators.d.mts.map +0 -1
- package/dist/modules/storage/providers/lib/validators.mjs.map +0 -1
package/package.json
CHANGED
|
@@ -1,105 +1,108 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tulip-systems/core",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"license": "AGPL-3.0",
|
|
7
7
|
"devDependencies": {
|
|
8
|
+
"@arethetypeswrong/core": "^0.18.2",
|
|
8
9
|
"@types/markdown-it": "^14.1.2",
|
|
9
|
-
"@types/pg": "^8.
|
|
10
|
+
"@types/pg": "^8.20.0",
|
|
10
11
|
"@types/react": "19.2.14",
|
|
11
12
|
"@types/react-dom": "19.2.3",
|
|
12
13
|
"aws-sdk-client-mock": "^4.1.0",
|
|
13
14
|
"aws-sdk-client-mock-vitest": "^7.0.1",
|
|
14
|
-
"
|
|
15
|
+
"publint": "^0.3.20",
|
|
16
|
+
"tailwindcss": "^4.3.0",
|
|
15
17
|
"tsdown": "^0.20.3",
|
|
16
18
|
"tw-animate-css": "^1.4.0",
|
|
17
19
|
"typescript": "5.9.3",
|
|
18
|
-
"
|
|
19
|
-
"vitest": "^4.1.
|
|
20
|
+
"unrun": "^0.3.0",
|
|
21
|
+
"vitest": "^4.1.5",
|
|
20
22
|
"@tulip-systems/typescript-config": "0.0.0"
|
|
21
23
|
},
|
|
22
24
|
"dependencies": {
|
|
23
|
-
"@aws-sdk/client-s3": "^3.
|
|
24
|
-
"@aws-sdk/s3-request-presigner": "^3.
|
|
25
|
+
"@aws-sdk/client-s3": "^3.1045.0",
|
|
26
|
+
"@aws-sdk/s3-request-presigner": "^3.1045.0",
|
|
27
|
+
"@better-auth/core": "^1.6.10",
|
|
25
28
|
"@dnd-kit/core": "^6.3.1",
|
|
26
29
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
27
30
|
"@dnd-kit/sortable": "^10.0.0",
|
|
28
31
|
"@dnd-kit/utilities": "^3.2.2",
|
|
29
32
|
"@hookform/resolvers": "^5.2.2",
|
|
30
|
-
"@orpc/client": "^1.
|
|
31
|
-
"@orpc/contract": "^1.
|
|
32
|
-
"@orpc/server": "^1.
|
|
33
|
-
"@orpc/tanstack-query": "^1.
|
|
34
|
-
"@react-
|
|
35
|
-
"@tanstack/react-query": "^5.
|
|
36
|
-
"@tanstack/react-query-devtools": "^5.91.3",
|
|
33
|
+
"@orpc/client": "^1.14.2",
|
|
34
|
+
"@orpc/contract": "^1.14.2",
|
|
35
|
+
"@orpc/server": "^1.14.2",
|
|
36
|
+
"@orpc/tanstack-query": "^1.14.2",
|
|
37
|
+
"@tanstack/react-query": "^5.100.9",
|
|
38
|
+
"@tanstack/react-query-devtools": "^5.100.9",
|
|
37
39
|
"@tanstack/react-table": "^8.21.3",
|
|
38
|
-
"@tanstack/react-virtual": "^3.13.
|
|
39
|
-
"@tiptap/core": "^3.
|
|
40
|
-
"@tiptap/extension-blockquote": "^3.
|
|
41
|
-
"@tiptap/extension-bold": "^3.
|
|
42
|
-
"@tiptap/extension-color": "^3.
|
|
43
|
-
"@tiptap/extension-document": "^3.
|
|
44
|
-
"@tiptap/extension-file-handler": "^3.
|
|
45
|
-
"@tiptap/extension-hard-break": "^3.
|
|
46
|
-
"@tiptap/extension-heading": "^3.
|
|
47
|
-
"@tiptap/extension-highlight": "^3.
|
|
48
|
-
"@tiptap/extension-horizontal-rule": "^3.
|
|
49
|
-
"@tiptap/extension-image": "^3.
|
|
50
|
-
"@tiptap/extension-italic": "^3.
|
|
51
|
-
"@tiptap/extension-link": "^3.
|
|
52
|
-
"@tiptap/extension-list": "^3.
|
|
53
|
-
"@tiptap/extension-paragraph": "^3.
|
|
54
|
-
"@tiptap/extension-strike": "^3.
|
|
55
|
-
"@tiptap/extension-text": "^3.
|
|
56
|
-
"@tiptap/extension-text-style": "^3.
|
|
57
|
-
"@tiptap/extension-underline": "^3.
|
|
58
|
-
"@tiptap/extensions": "^3.
|
|
59
|
-
"@tiptap/html": "^3.
|
|
60
|
-
"@tiptap/pm": "^3.
|
|
61
|
-
"@tiptap/react": "^3.
|
|
62
|
-
"@tiptap/static-renderer": "^3.
|
|
40
|
+
"@tanstack/react-virtual": "^3.13.24",
|
|
41
|
+
"@tiptap/core": "^3.23.1",
|
|
42
|
+
"@tiptap/extension-blockquote": "^3.23.1",
|
|
43
|
+
"@tiptap/extension-bold": "^3.23.1",
|
|
44
|
+
"@tiptap/extension-color": "^3.23.1",
|
|
45
|
+
"@tiptap/extension-document": "^3.23.1",
|
|
46
|
+
"@tiptap/extension-file-handler": "^3.23.1",
|
|
47
|
+
"@tiptap/extension-hard-break": "^3.23.1",
|
|
48
|
+
"@tiptap/extension-heading": "^3.23.1",
|
|
49
|
+
"@tiptap/extension-highlight": "^3.23.1",
|
|
50
|
+
"@tiptap/extension-horizontal-rule": "^3.23.1",
|
|
51
|
+
"@tiptap/extension-image": "^3.23.1",
|
|
52
|
+
"@tiptap/extension-italic": "^3.23.1",
|
|
53
|
+
"@tiptap/extension-link": "^3.23.1",
|
|
54
|
+
"@tiptap/extension-list": "^3.23.1",
|
|
55
|
+
"@tiptap/extension-paragraph": "^3.23.1",
|
|
56
|
+
"@tiptap/extension-strike": "^3.23.1",
|
|
57
|
+
"@tiptap/extension-text": "^3.23.1",
|
|
58
|
+
"@tiptap/extension-text-style": "^3.23.1",
|
|
59
|
+
"@tiptap/extension-underline": "^3.23.1",
|
|
60
|
+
"@tiptap/extensions": "^3.23.1",
|
|
61
|
+
"@tiptap/html": "^3.23.1",
|
|
62
|
+
"@tiptap/pm": "^3.23.1",
|
|
63
|
+
"@tiptap/react": "^3.23.1",
|
|
64
|
+
"@tiptap/static-renderer": "^3.23.1",
|
|
65
|
+
"better-call": "1.3.2",
|
|
63
66
|
"class-variance-authority": "^0.7.1",
|
|
64
67
|
"client-only": "^0.0.1",
|
|
65
68
|
"clsx": "^2.1.1",
|
|
66
69
|
"cmdk": "1.1.1",
|
|
67
70
|
"date-fns": "^4.1.0",
|
|
68
71
|
"deepmerge": "^4.3.1",
|
|
69
|
-
"drizzle-orm": "^0.45.
|
|
72
|
+
"drizzle-orm": "^0.45.2",
|
|
70
73
|
"drizzle-zod": "^0.8.3",
|
|
71
74
|
"embla-carousel-react": "^8.6.0",
|
|
72
|
-
"lucide-react": "^
|
|
75
|
+
"lucide-react": "^1.14.0",
|
|
73
76
|
"markdown-it": "^14.1.1",
|
|
74
|
-
"motion": "^12.
|
|
77
|
+
"motion": "^12.38.0",
|
|
75
78
|
"next-themes": "^0.4.6",
|
|
76
79
|
"radix-ui": "^1.4.3",
|
|
77
|
-
"react-colorful": "^5.
|
|
80
|
+
"react-colorful": "^5.7.0",
|
|
78
81
|
"react-day-picker": "9.13.2",
|
|
79
82
|
"react-dropzone": "^15.0.0",
|
|
80
|
-
"react-email": "^
|
|
81
|
-
"react-hook-form": "^7.
|
|
82
|
-
"react-hotkeys-hook": "^5.2
|
|
83
|
-
"react-resizable-panels": "^4.
|
|
84
|
-
"resend": "^6.
|
|
83
|
+
"react-email": "^6.1.1",
|
|
84
|
+
"react-hook-form": "^7.75.0",
|
|
85
|
+
"react-hotkeys-hook": "^5.3.2",
|
|
86
|
+
"react-resizable-panels": "^4.11.0",
|
|
87
|
+
"resend": "^6.12.3",
|
|
85
88
|
"server-cli-only": "^0.3.2",
|
|
86
89
|
"server-only": "^0.0.1",
|
|
87
90
|
"sonner": "^2.0.7",
|
|
88
|
-
"tailwind-merge": "^3.
|
|
89
|
-
"use-debounce": "^10.1.
|
|
90
|
-
"uuid": "^
|
|
91
|
+
"tailwind-merge": "^3.6.0",
|
|
92
|
+
"use-debounce": "^10.1.1",
|
|
93
|
+
"uuid": "^14.0.0",
|
|
91
94
|
"vaul": "^1.1.2",
|
|
92
|
-
"zod": "^4.3
|
|
95
|
+
"zod": "^4.4.3"
|
|
93
96
|
},
|
|
94
97
|
"peerDependencies": {
|
|
95
|
-
"@better-auth/passkey": "^1.
|
|
98
|
+
"@better-auth/passkey": "^1.6.10",
|
|
96
99
|
"@tailwindcss/typography": "^0.5.19",
|
|
97
|
-
"better-auth": "^1.
|
|
98
|
-
"next": "16.
|
|
99
|
-
"nuqs": "2.8.
|
|
100
|
-
"pg": "8.
|
|
101
|
-
"react": "19.2.
|
|
102
|
-
"react-dom": "19.2.
|
|
100
|
+
"better-auth": "^1.6.10",
|
|
101
|
+
"next": "16.2.6",
|
|
102
|
+
"nuqs": "2.8.9",
|
|
103
|
+
"pg": "8.20.0",
|
|
104
|
+
"react": "19.2.6",
|
|
105
|
+
"react-dom": "19.2.6",
|
|
103
106
|
"recharts": "2.15.4",
|
|
104
107
|
"sharp": "^0.34.5"
|
|
105
108
|
},
|
|
@@ -150,15 +153,15 @@
|
|
|
150
153
|
"./package.json": "./package.json",
|
|
151
154
|
"./styles.css": "./src/styles.css"
|
|
152
155
|
},
|
|
153
|
-
"types": "./dist/components.d.ts",
|
|
154
156
|
"scripts": {
|
|
155
|
-
"dev": "tsdown --config
|
|
156
|
-
"build": "tsdown --config
|
|
157
|
+
"dev": "tsdown --config tsdown.config.ts --config-loader unrun --watch",
|
|
158
|
+
"build": "tsdown --config tsdown.config.ts --config-loader unrun",
|
|
157
159
|
"release:build": "pnpm run build",
|
|
158
160
|
"lint": "biome check",
|
|
159
161
|
"format": "biome format --write",
|
|
160
|
-
"
|
|
162
|
+
"typecheck": "tsc --noEmit",
|
|
161
163
|
"test": "vitest",
|
|
164
|
+
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist",
|
|
162
165
|
"ui:add": "pnpm dlx shadcn@latest add",
|
|
163
166
|
"email": "email dev --port 9090 --dir src/components/emails"
|
|
164
167
|
}
|
|
@@ -2,8 +2,8 @@ import "server-cli-only";
|
|
|
2
2
|
|
|
3
3
|
import { eq } from "drizzle-orm";
|
|
4
4
|
import { headers } from "next/headers";
|
|
5
|
-
import type { TDatabaseSchema } from "@/modules/config/db/types";
|
|
6
5
|
import type { TulipContext } from "@/modules/config/entry";
|
|
6
|
+
import type { TDatabaseSchema } from "@/modules/database/lib/types";
|
|
7
7
|
import { ServerError } from "@/modules/router/lib/error.server";
|
|
8
8
|
import { users } from "../entry";
|
|
9
9
|
import type { CreateUserSchema, UpdateUserSchema } from "./validators";
|
|
@@ -3,7 +3,7 @@ import "server-cli-only";
|
|
|
3
3
|
import { and, type DBQueryConfig, getTableName, isTable, type SQL } from "drizzle-orm";
|
|
4
4
|
import type { PgTable } from "drizzle-orm/pg-core";
|
|
5
5
|
import type { RelationalQueryBuilder } from "drizzle-orm/pg-core/query-builders/query";
|
|
6
|
-
import type { TDatabaseSchema } from "@/modules/
|
|
6
|
+
import type { TDatabaseSchema } from "@/modules/database/lib/types";
|
|
7
7
|
import type { TulipContext } from "@/modules/config/entry";
|
|
8
8
|
import { convertCursorToQueryParams } from "../lib/converters/cursor";
|
|
9
9
|
import {
|
|
@@ -2,8 +2,8 @@ import "server-cli-only";
|
|
|
2
2
|
|
|
3
3
|
import { headers as headersList } from "next/headers";
|
|
4
4
|
import { cache } from "react";
|
|
5
|
-
import type { TDatabaseSchema } from "@/modules/config/db/types";
|
|
6
5
|
import type { TulipContext } from "@/modules/config/entry";
|
|
6
|
+
import type { TDatabaseSchema } from "@/modules/database/lib/types";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Create the router context
|
|
@@ -2,7 +2,7 @@ import "server-cli-only";
|
|
|
2
2
|
|
|
3
3
|
import { os } from "@orpc/server";
|
|
4
4
|
import type { Permission } from "@/modules/auth/lib/permissions";
|
|
5
|
-
import type { TDatabaseSchema } from "@/modules/
|
|
5
|
+
import type { TDatabaseSchema } from "@/modules/database/lib/types";
|
|
6
6
|
import { ServerError } from "../lib/error.server";
|
|
7
7
|
import type { ProtectedRPCContext, RPCContext } from "./context.server";
|
|
8
8
|
|
|
@@ -39,6 +39,7 @@ export function initRPC<TSchema extends TDatabaseSchema>() {
|
|
|
39
39
|
*/
|
|
40
40
|
return os.$context<ProtectedRPCContext<TSchema>>().middleware(async (opts) => {
|
|
41
41
|
const { success, error } = await opts.context.auth.api.userHasPermission({
|
|
42
|
+
headers: opts.context.headers,
|
|
42
43
|
body: {
|
|
43
44
|
userId: opts.context.session.user.id,
|
|
44
45
|
permissions,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { onError } from "@orpc/client";
|
|
2
2
|
import type { AnyRouter } from "@orpc/server";
|
|
3
3
|
import { RPCHandler } from "@orpc/server/fetch";
|
|
4
|
-
import type { TDatabaseSchema } from "@/modules/config/db/types";
|
|
5
4
|
import type { TulipContext } from "@/modules/config/lib/context";
|
|
5
|
+
import type { TDatabaseSchema } from "@/modules/database/lib/types";
|
|
6
6
|
import { createRPCContext } from "./context.server";
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { InferRouterInputs, InferRouterOutputs } from "@orpc/server";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import type { TDatabaseSchema } from "@/modules/
|
|
3
|
+
import type { TDatabaseSchema } from "@/modules/database/lib/types";
|
|
4
4
|
import { initRPC } from "@/modules/router/handler/init.server";
|
|
5
5
|
import {
|
|
6
6
|
confirmUploadInputSchema,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { connection, type NextRequest } from "next/server";
|
|
2
2
|
import z from "zod";
|
|
3
3
|
import { getSession } from "@/modules/auth/lib/helpers.server";
|
|
4
|
-
import type { TDatabaseSchema } from "@/modules/config/db/types";
|
|
5
4
|
import type { TulipContext } from "@/modules/config/lib/context";
|
|
5
|
+
import type { TDatabaseSchema } from "@/modules/database/lib/types";
|
|
6
6
|
import { ServerError } from "@/modules/router/lib/error.server";
|
|
7
7
|
import { getAssetURLSchema } from "../entry";
|
|
8
8
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.mts","names":[],"sources":["../../../src/components/common/icons.tsx"],"mappings":";;;;;KAsDY,IAAA,GAAO,UAAA;AAAA,cAEN,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAkDG,WAAA,KAAW,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"icons.mjs","names":[],"sources":["../../../src/components/common/icons.tsx"],"sourcesContent":["import {\n AlertTriangle,\n ArchiveIcon,\n ArchiveRestore,\n ArrowDown,\n ArrowLeft,\n ArrowRight,\n ArrowUp,\n BuildingIcon,\n Check,\n ChevronDown,\n ChevronLeft,\n ChevronRight,\n ChevronUp,\n ClipboardCheck,\n Copy,\n CreditCard,\n Download,\n ExternalLink,\n EyeIcon,\n File,\n FileText,\n HelpCircle,\n HomeIcon,\n Image,\n Laptop,\n LayoutDashboardIcon,\n Loader2,\n LockKeyhole,\n LockKeyholeOpen,\n type LucideIcon,\n type LucideProps,\n Mail,\n Moon,\n MoreVertical,\n MoveLeft,\n MoveRight,\n PencilRuler,\n PenSquare,\n Pizza,\n Plus,\n RefreshCcw,\n RotateCw,\n SaveIcon,\n ScrollTextIcon,\n Search,\n Settings,\n SunMedium,\n Trash,\n User,\n UsersIcon,\n X,\n} from \"lucide-react\";\n\nexport type Icon = LucideIcon;\n\nexport const Icons = {\n close: X,\n save: SaveIcon,\n spinner: Loader2,\n chevronLeft: ChevronLeft,\n chevronRight: ChevronRight,\n chevronDown: ChevronDown,\n chevronUp: ChevronUp,\n trash: Trash,\n post: FileText,\n page: File,\n media: Image,\n download: Download,\n settings: Settings,\n billing: CreditCard,\n ellipsis: MoreVertical,\n add: Plus,\n edit: PenSquare,\n warning: AlertTriangle,\n user: User,\n users: UsersIcon,\n arrowUp: ArrowUp,\n arrowDown: ArrowDown,\n arrowRight: ArrowRight,\n arrowLeft: ArrowLeft,\n moveLeft: MoveLeft,\n moveRight: MoveRight,\n help: HelpCircle,\n pizza: Pizza,\n check: Check,\n copy: Copy,\n copyDone: ClipboardCheck,\n refresh: RotateCw,\n preview: EyeIcon,\n externalLink: ExternalLink,\n sun: SunMedium,\n lock: LockKeyhole,\n unLock: LockKeyholeOpen,\n moon: Moon,\n search: Search,\n laptop: Laptop,\n active: RefreshCcw,\n draft: PencilRuler,\n archive: ArchiveIcon,\n restore: ArchiveRestore,\n dashboard: LayoutDashboardIcon,\n regulations: ScrollTextIcon,\n home: HomeIcon,\n mail: Mail,\n building: BuildingIcon,\n logo: (props: LucideProps) => (\n <svg viewBox=\"0 0 120.09 141.73\" {...props}>\n <title>Tulip Logo Icon</title>\n <defs>\n <linearGradient\n id=\"tulip-logo-icon-gradient\"\n x1=\"60.5\"\n y1=\"0\"\n x2=\"60.5\"\n y2=\"141.73\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset=\"0\" stopColor=\"#ffc754\" />\n <stop offset=\"1\" stopColor=\"#ff1800\" />\n </linearGradient>\n <linearGradient\n id=\"tulip-logo-icon-gradient-2\"\n x1=\"72.4\"\n y1=\"5.81\"\n x2=\"72.4\"\n y2=\"141.73\"\n xlinkHref=\"#tulip-logo-icon-gradient\"\n />\n <linearGradient\n id=\"tulip-logo-icon-gradient-3\"\n x1=\"47.69\"\n y1=\"5.81\"\n x2=\"47.69\"\n y2=\"141.73\"\n xlinkHref=\"#tulip-logo-icon-gradient\"\n />\n </defs>\n\n <g>\n <g>\n <path\n d=\"M107.88,93.09c0-35.95-47.38-93.09-47.38-93.09,0,0-47.39,57.14-47.38,93.09,0,26.17,21.21,48.64,47.38,48.64,26.17,0,47.39-22.47,47.38-48.64Z\"\n style={{\n fill: \"url(#tulip-logo-icon-gradient)\",\n opacity: 0.75,\n }}\n />\n <path\n d=\"M116.68,109.5c12.3-33.78-12.69-103.68-12.69-103.68,0,0-64.07,37.49-76.37,71.27-8.95,24.59,3.3,52.97,27.89,61.92,24.59,8.95,52.21-4.91,61.16-29.5Z\"\n style={{\n fill: \"url(#tulip-logo-icon-gradient-2)\",\n opacity: 0.75,\n }}\n />\n <path\n d=\"M92.46,77.09C80.16,43.3,16.09,5.81,16.09,5.81c0,0-24.98,69.9-12.69,103.68,8.95,24.59,36.57,38.45,61.16,29.5,24.59-8.95,36.84-37.32,27.89-61.92Z\"\n style={{\n fill: \"url(#tulip-logo-icon-gradient-3)\",\n opacity: 0.75,\n }}\n />\n </g>\n </g>\n </svg>\n ),\n};\n"],"mappings":";;;;AAwDA,MAAa,QAAQ;CACnB,OAAO;CACP,MAAM;CACN,SAAS;CACT,aAAa;CACb,cAAc;CACd,aAAa;CACb,WAAW;CACX,OAAO;CACP,MAAM;CACN,MAAM;CACN,OAAO;CACP,UAAU;CACV,UAAU;CACV,SAAS;CACT,UAAU;CACV,KAAK;CACL,MAAM;CACN,SAAS;CACT,MAAM;CACN,OAAO;CACP,SAAS;CACT,WAAW;CACX,YAAY;CACZ,WAAW;CACX,UAAU;CACV,WAAW;CACX,MAAM;CACN,OAAO;CACP,OAAO;CACP,MAAM;CACN,UAAU;CACV,SAAS;CACT,SAAS;CACT,cAAc;CACd,KAAK;CACL,MAAM;CACN,QAAQ;CACR,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,OAAO;CACP,SAAS;CACT,SAAS;CACT,WAAW;CACX,aAAa;CACb,MAAM;CACN,MAAM;CACN,UAAU;CACV,OAAO,UACL,qBAAC;EAAI,SAAQ;EAAoB,GAAI;;GACnC,oBAAC,qBAAM,oBAAuB;GAC9B,qBAAC;IACC,qBAAC;KACC,IAAG;KACH,IAAG;KACH,IAAG;KACH,IAAG;KACH,IAAG;KACH,eAAc;gBAEd,oBAAC;MAAK,QAAO;MAAI,WAAU;OAAY,EACvC,oBAAC;MAAK,QAAO;MAAI,WAAU;OAAY;MACxB;IACjB,oBAAC;KACC,IAAG;KACH,IAAG;KACH,IAAG;KACH,IAAG;KACH,IAAG;KACH,WAAU;MACV;IACF,oBAAC;KACC,IAAG;KACH,IAAG;KACH,IAAG;KACH,IAAG;KACH,IAAG;KACH,WAAU;MACV;OACG;GAEP,oBAAC,iBACC,qBAAC;IACC,oBAAC;KACC,GAAE;KACF,OAAO;MACL,MAAM;MACN,SAAS;MACV;MACD;IACF,oBAAC;KACC,GAAE;KACF,OAAO;MACL,MAAM;MACN,SAAS;MACV;MACD;IACF,oBAAC;KACC,GAAE;KACF,OAAO;MACL,MAAM;MACN,SAAS;MACV;MACD;OACA,GACF;;GACA;CAET"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.mts","names":[],"sources":["../../../src/components/common/status.tsx"],"mappings":";;;;;;;cAOa,kBAAA,2BAA8C,MAAA,EAAQ,cAAA,CAAe,OAAA,QAAU,cAAA,CAAA,OAAA;;;;;;;iBAS5E,UAAA;EAA6B,KAAA;AAAA,EAAA,CAC3C,MAAA,EAAQ,OAAA,IACR,MAAA,WACC,OAAA;;;;;;iBASa,oBAAA,wBAAA,CACd,MAAA;EAAU,KAAA,EAAO,OAAA;EAAS,SAAA;AAAA,MACzB,MAAA,CAAO,OAAA;;;;KAaE,0BAAA;EACV,MAAA,EAAQ,OAAA;AAAA;;;;KAML,oBAAA;EACH,MAAA,EAAQ,cAAA,CAAe,OAAA;EACvB,QAAA,GAAW,KAAA;IAAS,MAAA,EAAQ,OAAA;EAAA;EAC5B,MAAA,EAAQ,OAAA;AAAA;;;;iBAMM,WAAA,wBAAA,CAAoC,KAAA,EAAO,oBAAA,CAAqB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA;;;;iBAexE,WAAA,wBAAA,CAAoC,KAAA,EAAO,oBAAA,CAAqB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status.mjs","names":[],"sources":["../../../src/components/common/status.tsx"],"sourcesContent":["import type { ConfigWithIcon } from \"@/lib/types/config\";\nimport { cn } from \"@/lib/utils/cn\";\nimport { Badge } from \"../ui/badge\";\n\n/**\n * Create status config\n */\nexport const createStatusConfig = <TStatus extends string>(config: ConfigWithIcon<TStatus>[]) =>\n config;\n\n/**\n * Find the status object from the config\n * @param {TStatus[]} values\n * @param {string} status\n * @returns {TStatus | undefined}\n */\nexport function findStatus<TStatus extends { value: string }>(\n values: TStatus[],\n status: string,\n): TStatus | undefined {\n return values.find((s) => s.value === status);\n}\n\n/**\n * Create status variants\n * @param {TStatus[]} values\n * @returns {Record<string, string>}\n */\nexport function createStatusVariants<TStatus extends string>(\n values: { value: TStatus; className: string }[],\n): Record<TStatus, string> {\n return values.reduce(\n (acc, { value, className }) => {\n acc[value] = className;\n return acc;\n },\n {} as Record<TStatus, string>,\n );\n}\n\n/**\n * Create status component props\n */\nexport type CreateStatusComponentProps<TStatus extends string> = {\n status: TStatus | null;\n};\n\n/**\n * Status component props\n */\ntype StatusComponentProps<TStatus extends string> = {\n config: ConfigWithIcon<TStatus>[];\n variants: (props: { status: TStatus }) => string;\n status: TStatus | null;\n};\n\n/**\n * Status column\n */\nexport function StatusField<TStatus extends string>(props: StatusComponentProps<TStatus>) {\n const status = findStatus(props.config, props.status ?? \"\");\n if (!status) return <div />;\n\n return (\n <div className={cn(\"flex items-center gap-2\", props.variants({ status: status.value }))}>\n <status.icon className={cn(\"size-4\", props.variants({ status: status.value }))} />\n <span>{status.label}</span>\n </div>\n );\n}\n\n/**\n * Status badge\n */\nexport function StatusBadge<TStatus extends string>(props: StatusComponentProps<TStatus>) {\n const status = findStatus(props.config, props.status ?? \"\");\n if (!status) return <div />;\n\n return (\n <Badge\n variant=\"outline\"\n className={cn(\"flex items-center gap-2\", props.variants({ status: status.value }))}\n >\n <status.icon className={cn(\"size-3\", props.variants({ status: status.value }))} />\n <span>{status.label}</span>\n </Badge>\n );\n}\n"],"mappings":";;;;;;;;AAOA,MAAa,sBAA8C,WACzD;;;;;;;AAQF,SAAgB,WACd,QACA,QACqB;AACrB,QAAO,OAAO,MAAM,MAAM,EAAE,UAAU,OAAO;;;;;;;AAQ/C,SAAgB,qBACd,QACyB;AACzB,QAAO,OAAO,QACX,KAAK,EAAE,OAAO,gBAAgB;AAC7B,MAAI,SAAS;AACb,SAAO;IAET,EAAE,CACH;;;;;AAsBH,SAAgB,YAAoC,OAAsC;CACxF,MAAM,SAAS,WAAW,MAAM,QAAQ,MAAM,UAAU,GAAG;AAC3D,KAAI,CAAC,OAAQ,QAAO,oBAAC,UAAM;AAE3B,QACE,qBAAC;EAAI,WAAW,GAAG,2BAA2B,MAAM,SAAS,EAAE,QAAQ,OAAO,OAAO,CAAC,CAAC;aACrF,oBAAC,OAAO,QAAK,WAAW,GAAG,UAAU,MAAM,SAAS,EAAE,QAAQ,OAAO,OAAO,CAAC,CAAC,GAAI,EAClF,oBAAC,oBAAM,OAAO,QAAa;GACvB;;;;;AAOV,SAAgB,YAAoC,OAAsC;CACxF,MAAM,SAAS,WAAW,MAAM,QAAQ,MAAM,UAAU,GAAG;AAC3D,KAAI,CAAC,OAAQ,QAAO,oBAAC,UAAM;AAE3B,QACE,qBAAC;EACC,SAAQ;EACR,WAAW,GAAG,2BAA2B,MAAM,SAAS,EAAE,QAAQ,OAAO,OAAO,CAAC,CAAC;aAElF,oBAAC,OAAO,QAAK,WAAW,GAAG,UAAU,MAAM,SAAS,EAAE,QAAQ,OAAO,OAAO,CAAC,CAAC,GAAI,EAClF,oBAAC,oBAAM,OAAO,QAAa;GACrB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"content.client.d.mts","names":[],"sources":["../../../../src/components/editor/components/content.client.tsx"],"mappings":";;;iBAOgB,aAAA,CAAA,GAAa,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"content.client.mjs","names":["EditorContent","TiptapEditorContent"],"sources":["../../../../src/components/editor/components/content.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { EditorContent as TiptapEditorContent } from \"@tiptap/react\";\nimport { useContext } from \"react\";\nimport { TooltipProvider } from \"@/components/ui/tooltip.client\";\nimport { EditorContext } from \"./editor.client\";\n\nexport function EditorContent() {\n const { editor } = useContext(EditorContext);\n\n return (\n <TooltipProvider>\n <TiptapEditorContent editor={editor} />\n </TooltipProvider>\n );\n}\n"],"mappings":";;;;;;;;;AAOA,SAAgBA,kBAAgB;CAC9B,MAAM,EAAE,WAAW,WAAW,cAAc;AAE5C,QACE,oBAAC,6BACC,oBAACC,iBAA4B,SAAU,GACvB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"editor.client.d.mts","names":[],"sources":["../../../../src/components/editor/components/editor.client.tsx"],"mappings":";;;;;;;;;;;;;KAuBK,kBAAA;EACH,MAAA,EAAQ,MAAA;EACR,UAAA,EAAY,4BAAA;AAAA;AAAA,cAGD,aAAA,EAAa,KAAA,CAAA,OAAA,CAAA,kBAAA;;;;cAKb,cAAA,GAAc,KAAA;;IAazB,+BAAA,CAAA,SAAA;;AAlBF;;KAuBY,WAAA,GAAc,YAAA,QAAoB,cAAA,IAC5C,IAAA,CAAK,aAAA,iCACL,iBAAA;EACE,KAAA,GAAQ,OAAA;EACR,UAAA,GAAa,OAAA,CAAQ,sBAAA;EACrB,QAAA,IAAY,KAAA,EAAO,iBAAA;EACnB,MAAA,IAAU,KAAA,EAAO,iBAAA;EACjB,QAAA;EACA,SAAA;AAAA;AAAA,iBAGY,QAAA,CAAA;EACd,KAAA;EACA,UAAA;EACA,QAAA;EACA,MAAA;EACA,QAAA;EACA,OAAA;EACA,SAAA;EACA,QAAA;EACA;AAAA,GACC,WAAA,GAAW,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"editor.client.mjs","names":["Editor"],"sources":["../../../../src/components/editor/components/editor.client.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n type Content,\n type Editor as TiptapEditor,\n type EditorOptions as TiptapEditorOptions,\n useEditor,\n} from \"@tiptap/react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { createContext, type PropsWithChildren } from \"react\";\nimport { cn } from \"@/lib/utils/cn\";\nimport {\n type EditorExtensionsConfig,\n type EditorExtensionsConfigResult,\n editorExtensionsConfigToExtensions,\n flattenEditorExtensionsConfig,\n} from \"../lib/extensions\";\nimport type { EditorJSONContent } from \"../lib/types\";\nimport { editorImageVariants, editorProseVariants } from \"../lib/variants\";\n\n/**\n * Editor context\n */\ntype EditorContextValue = {\n editor: TiptapEditor;\n extensions: EditorExtensionsConfigResult;\n};\n\nexport const EditorContext = createContext({} as EditorContextValue);\n\n/**\n * Editor variants\n */\nexport const editorVariants = cva(\"\", {\n variants: {\n variant: {\n default:\n \"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\",\n table:\n \"[&_.editor-content[contenteditable='false']]:pointer-events-none [&_.editor-content[contenteditable='false']]:cursor-not-allowed [&_.editor-content[contenteditable='false']]:opacity-50\",\n preview: \"bg-transparent [&_.editor-content]:p-0 [&_.editor-content]:min-h-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n});\n\n/**\n * Editor context provider\n */\nexport type EditorProps = VariantProps<typeof editorVariants> &\n Pick<TiptapEditorOptions[\"editorProps\"], \"attributes\"> &\n PropsWithChildren<{\n value?: Content;\n extensions?: Partial<EditorExtensionsConfig>;\n onUpdate?: (value: EditorJSONContent) => void;\n onBlur?: (value: EditorJSONContent) => void;\n disabled?: boolean;\n className?: string;\n }>;\n\nexport function Editor({\n value,\n extensions,\n onUpdate,\n onBlur,\n disabled,\n variant,\n className,\n children,\n attributes,\n}: EditorProps) {\n const editor = useEditor({\n extensions: editorExtensionsConfigToExtensions(extensions),\n content: value,\n onUpdate: ({ editor }) => onUpdate?.(editor.getJSON()),\n onBlur: ({ editor }) => onBlur?.(editor.getJSON()),\n editable: !disabled,\n injectCSS: false,\n immediatelyRender: false,\n editorProps: {\n transformPastedHTML: (html) => html.replace(/<img.*?>/g, \"\"),\n attributes: {\n ...attributes,\n class: cn(\n \"editor-content text-sm max-w-full focus:outline-none\",\n editorProseVariants(),\n editorImageVariants(),\n className,\n ),\n },\n },\n });\n\n if (!editor) return null;\n\n return (\n <EditorContext.Provider\n value={{\n editor,\n extensions: flattenEditorExtensionsConfig(extensions),\n }}\n >\n <div className={editorVariants({ variant })}>{children}</div>\n </EditorContext.Provider>\n );\n}\n"],"mappings":";;;;;;;;;;;AA4BA,MAAa,gBAAgB,cAAc,EAAE,CAAuB;;;;AAKpE,MAAa,iBAAiB,IAAI,IAAI;CACpC,UAAU,EACR,SAAS;EACP,SACE;EACF,OACE;EACF,SAAS;EACV,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CAAC;AAgBF,SAAgBA,SAAO,EACrB,OACA,YACA,UACA,QACA,UACA,SACA,WACA,UACA,cACc;CACd,MAAM,SAAS,UAAU;EACvB,YAAY,mCAAmC,WAAW;EAC1D,SAAS;EACT,WAAW,EAAE,aAAa,WAAW,OAAO,SAAS,CAAC;EACtD,SAAS,EAAE,aAAa,SAAS,OAAO,SAAS,CAAC;EAClD,UAAU,CAAC;EACX,WAAW;EACX,mBAAmB;EACnB,aAAa;GACX,sBAAsB,SAAS,KAAK,QAAQ,aAAa,GAAG;GAC5D,YAAY;IACV,GAAG;IACH,OAAO,GACL,wDACA,qBAAqB,EACrB,qBAAqB,EACrB,UACD;IACF;GACF;EACF,CAAC;AAEF,KAAI,CAAC,OAAQ,QAAO;AAEpB,QACE,oBAAC,cAAc;EACb,OAAO;GACL;GACA,YAAY,8BAA8B,WAAW;GACtD;YAED,oBAAC;GAAI,WAAW,eAAe,EAAE,SAAS,CAAC;GAAG;IAAe;GACtC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"menu-nodes.client.mjs","names":[],"sources":["../../../../src/components/editor/components/menu-nodes.client.tsx"],"sourcesContent":["import type { Editor } from \"@tiptap/react\";\nimport {\n ChevronDown,\n Heading1Icon,\n Heading2Icon,\n Heading3Icon,\n Heading4Icon,\n Heading5Icon,\n ListIcon,\n ListOrderedIcon,\n TextIcon,\n} from \"lucide-react\";\nimport { useContext } from \"react\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu.client\";\nimport type { EditorExtensionsConfigResult } from \"../lib/extensions\";\nimport { EditorContext } from \"./editor.client\";\n\nconst blocks = [\n {\n label: \"Paragraaf\",\n icon: TextIcon,\n selected: (editor: Editor) => editor.isActive(\"paragraph\"),\n handler: (editor: Editor) => editor.commands.setParagraph(),\n hidden: (extensions: EditorExtensionsConfigResult) => !extensions.paragraph,\n },\n {\n label: \"Titel 1\",\n icon: Heading1Icon,\n selected: (editor: Editor) => editor.isActive(\"heading\", { level: 1 }),\n handler: (editor: Editor) => editor.commands.setHeading({ level: 1 }),\n hidden: (extensions: EditorExtensionsConfigResult) => !extensions.heading,\n },\n {\n label: \"Titel 2\",\n icon: Heading2Icon,\n selected: (editor: Editor) => editor.isActive(\"heading\", { level: 2 }),\n handler: (editor: Editor) => editor.commands.setHeading({ level: 2 }),\n hidden: (extensions: EditorExtensionsConfigResult) => !extensions.heading,\n },\n {\n label: \"Titel 3\",\n icon: Heading3Icon,\n selected: (editor: Editor) => editor.isActive(\"heading\", { level: 3 }),\n handler: (editor: Editor) => editor.commands.setHeading({ level: 3 }),\n hidden: (extensions: EditorExtensionsConfigResult) => !extensions.heading,\n },\n {\n label: \"Titel 4\",\n icon: Heading4Icon,\n selected: (editor: Editor) => editor.isActive(\"heading\", { level: 4 }),\n handler: (editor: Editor) => editor.commands.setHeading({ level: 4 }),\n hidden: (extensions: EditorExtensionsConfigResult) => !extensions.heading,\n },\n {\n label: \"Titel 5\",\n icon: Heading5Icon,\n selected: (editor: Editor) => editor.isActive(\"heading\", { level: 5 }),\n handler: (editor: Editor) => editor.commands.setHeading({ level: 5 }),\n hidden: (extensions: EditorExtensionsConfigResult) => !extensions.heading,\n },\n {\n label: \"Numbered List\",\n icon: ListOrderedIcon,\n selected: (editor: Editor) => editor.isActive(\"orderedList\"),\n handler: (editor: Editor) => editor.commands.toggleOrderedList(),\n hidden: (extensions: EditorExtensionsConfigResult) => !extensions.orderedList,\n },\n {\n label: \"Bulleted List\",\n icon: ListIcon,\n selected: (editor: Editor) => editor.isActive(\"bulletList\"),\n handler: (editor: Editor) => editor.commands.toggleBulletList(),\n hidden: (extensions: EditorExtensionsConfigResult) => !extensions.bulletList,\n },\n];\n\nexport function EditorMenuNodes() {\n const { editor, extensions } = useContext(EditorContext);\n\n const selectedBlock = blocks.find((block) => block.selected(editor));\n const Icon = selectedBlock?.icon;\n\n const filteredBlocks = blocks.filter((block) => !block.hidden(extensions));\n\n if (filteredBlocks.length === 0) return null;\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\" size=\"sm\" className=\"flex items-center gap-8 p-2\">\n <span className=\"flex items-center gap-2\">\n {Icon && <Icon className=\"size-3.5\" />}\n {selectedBlock?.label ?? \"Select a block\"}\n </span>\n\n <ChevronDown className=\"size-3.5\" />\n </Button>\n </DropdownMenuTrigger>\n\n <DropdownMenuContent>\n {filteredBlocks.map(({ label, icon: Icon, handler }) => (\n <DropdownMenuItem\n key={label}\n onClick={() => handler(editor)}\n className=\"flex items-center gap-2\"\n >\n {Icon && <Icon className=\"size-3.5\" />}\n {label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n"],"mappings":";;;;;;;;AAuBA,MAAM,SAAS;CACb;EACE,OAAO;EACP,MAAM;EACN,WAAW,WAAmB,OAAO,SAAS,YAAY;EAC1D,UAAU,WAAmB,OAAO,SAAS,cAAc;EAC3D,SAAS,eAA6C,CAAC,WAAW;EACnE;CACD;EACE,OAAO;EACP,MAAM;EACN,WAAW,WAAmB,OAAO,SAAS,WAAW,EAAE,OAAO,GAAG,CAAC;EACtE,UAAU,WAAmB,OAAO,SAAS,WAAW,EAAE,OAAO,GAAG,CAAC;EACrE,SAAS,eAA6C,CAAC,WAAW;EACnE;CACD;EACE,OAAO;EACP,MAAM;EACN,WAAW,WAAmB,OAAO,SAAS,WAAW,EAAE,OAAO,GAAG,CAAC;EACtE,UAAU,WAAmB,OAAO,SAAS,WAAW,EAAE,OAAO,GAAG,CAAC;EACrE,SAAS,eAA6C,CAAC,WAAW;EACnE;CACD;EACE,OAAO;EACP,MAAM;EACN,WAAW,WAAmB,OAAO,SAAS,WAAW,EAAE,OAAO,GAAG,CAAC;EACtE,UAAU,WAAmB,OAAO,SAAS,WAAW,EAAE,OAAO,GAAG,CAAC;EACrE,SAAS,eAA6C,CAAC,WAAW;EACnE;CACD;EACE,OAAO;EACP,MAAM;EACN,WAAW,WAAmB,OAAO,SAAS,WAAW,EAAE,OAAO,GAAG,CAAC;EACtE,UAAU,WAAmB,OAAO,SAAS,WAAW,EAAE,OAAO,GAAG,CAAC;EACrE,SAAS,eAA6C,CAAC,WAAW;EACnE;CACD;EACE,OAAO;EACP,MAAM;EACN,WAAW,WAAmB,OAAO,SAAS,WAAW,EAAE,OAAO,GAAG,CAAC;EACtE,UAAU,WAAmB,OAAO,SAAS,WAAW,EAAE,OAAO,GAAG,CAAC;EACrE,SAAS,eAA6C,CAAC,WAAW;EACnE;CACD;EACE,OAAO;EACP,MAAM;EACN,WAAW,WAAmB,OAAO,SAAS,cAAc;EAC5D,UAAU,WAAmB,OAAO,SAAS,mBAAmB;EAChE,SAAS,eAA6C,CAAC,WAAW;EACnE;CACD;EACE,OAAO;EACP,MAAM;EACN,WAAW,WAAmB,OAAO,SAAS,aAAa;EAC3D,UAAU,WAAmB,OAAO,SAAS,kBAAkB;EAC/D,SAAS,eAA6C,CAAC,WAAW;EACnE;CACF;AAED,SAAgB,kBAAkB;CAChC,MAAM,EAAE,QAAQ,eAAe,WAAW,cAAc;CAExD,MAAM,gBAAgB,OAAO,MAAM,UAAU,MAAM,SAAS,OAAO,CAAC;CACpE,MAAM,OAAO,eAAe;CAE5B,MAAM,iBAAiB,OAAO,QAAQ,UAAU,CAAC,MAAM,OAAO,WAAW,CAAC;AAE1E,KAAI,eAAe,WAAW,EAAG,QAAO;AAExC,QACE,qBAAC,2BACC,oBAAC;EAAoB;YACnB,qBAAC;GAAO,SAAQ;GAAU,MAAK;GAAK,WAAU;cAC5C,qBAAC;IAAK,WAAU;eACb,QAAQ,oBAAC,QAAK,WAAU,aAAa,EACrC,eAAe,SAAS;KACpB,EAEP,oBAAC,eAAY,WAAU,aAAa;IAC7B;GACW,EAEtB,oBAAC,iCACE,eAAe,KAAK,EAAE,OAAO,MAAM,MAAM,cACxC,qBAAC;EAEC,eAAe,QAAQ,OAAO;EAC9B,WAAU;aAET,QAAQ,oBAAC,QAAK,WAAU,aAAa,EACrC;IALI,MAMY,CACnB,GACkB,IACT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"menu.client.d.mts","names":[],"sources":["../../../../src/components/editor/components/menu.client.tsx"],"mappings":";;;;;iBAoBgB,eAAA,CAAgB,KAAA,EAAO,KAAA,CAAM,cAAA,UAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAgBlD,gBAAA,CAAiB,KAAA,EAAO,cAAA,QAAsB,UAAA,IAAW,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"menu.client.mjs","names":[],"sources":["../../../../src/components/editor/components/menu.client.tsx"],"sourcesContent":["import { BubbleMenu } from \"@tiptap/react/menus\";\nimport {\n BaselineIcon,\n BoldIcon,\n EraserIcon,\n ItalicIcon,\n PaintBucketIcon,\n RedoIcon,\n StrikethroughIcon,\n UnderlineIcon,\n UndoIcon,\n} from \"lucide-react\";\nimport { type ComponentProps, type PropsWithChildren, useContext } from \"react\";\nimport { Button } from \"@/components/ui/button\";\nimport { ColorPicker } from \"@/components/ui/color-picker.client\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/ui/popover.client\";\nimport { cn } from \"@/lib/entry\";\nimport { EditorContext } from \"./editor.client\";\nimport { EditorMenuNodes } from \"./menu-nodes.client\";\n\nexport function EditorMenuFixed(props: React.ComponentProps<\"div\">) {\n return (\n <div\n {...props}\n className={cn(\"z-10 overflow-auto border-input border-b bg-muted/30 p-2\", props.className)}\n >\n <EditorMenuContent>\n <EditorMenuUndoRedo />\n <EditorMenuNodes />\n <EditorMenuMarks />\n <EditorMenuColor />\n </EditorMenuContent>\n </div>\n );\n}\n\nexport function EditorMenuBubble(props: ComponentProps<typeof BubbleMenu>) {\n const { editor } = useContext(EditorContext);\n\n return (\n <BubbleMenu\n {...props}\n editor={editor}\n options={{ ...props.options, strategy: \"fixed\" }}\n className={cn(\"z-10 rounded-lg border border-input bg-muted p-2\", props.className)}\n >\n <EditorMenuContent>\n <EditorMenuMarks />\n </EditorMenuContent>\n </BubbleMenu>\n );\n}\n\nfunction EditorMenuContent(props: PropsWithChildren) {\n return <div className=\"flex items-center gap-6\">{props.children}</div>;\n}\n\n/**\n * Editor menu undo/redo\n */\nfunction EditorMenuUndoRedo() {\n const { editor, extensions } = useContext(EditorContext);\n\n if (!extensions.undoRedo) return null;\n\n return (\n <div className=\"flex items-center gap-1\">\n <Button\n onClick={() => editor.commands.undo()}\n disabled={!editor?.can().undo()}\n type=\"button\"\n aria-label=\"Undo\"\n size=\"icon\"\n className=\"p-2\"\n variant=\"outline\"\n >\n <UndoIcon className=\"size-3.5\" />\n </Button>\n\n <Button\n onClick={() => editor.commands.redo()}\n disabled={!editor?.can().redo()}\n type=\"button\"\n aria-label=\"Redo\"\n size=\"icon\"\n className=\"p-2\"\n variant=\"outline\"\n >\n <RedoIcon className=\"size-3.5\" />\n </Button>\n </div>\n );\n}\n\n/**\n * Editor menu marks\n */\nfunction EditorMenuMarks() {\n const { editor, extensions } = useContext(EditorContext);\n\n if (!extensions.bold && !extensions.italic && !extensions.underline && !extensions.strike) {\n return null;\n }\n\n return (\n <div className=\"flex items-center gap-1\">\n {extensions.bold && (\n <Button\n type=\"button\"\n size=\"icon\"\n variant={editor?.isActive(\"bold\") ? \"secondary\" : \"outline\"}\n onClick={() => editor.chain().focus().toggleBold().run()}\n className=\"border\"\n >\n <BoldIcon className=\"h-3.5 w-3.5\" />\n </Button>\n )}\n\n {extensions.italic && (\n <Button\n type=\"button\"\n size=\"icon\"\n variant={editor?.isActive(\"italic\") ? \"secondary\" : \"outline\"}\n onClick={() => editor.chain().focus().toggleItalic().run()}\n className=\"border\"\n >\n <ItalicIcon className=\"size-3.5\" />\n </Button>\n )}\n\n {extensions.underline && (\n <Button\n type=\"button\"\n size=\"icon\"\n variant={editor?.isActive(\"underline\") ? \"secondary\" : \"outline\"}\n onClick={() => editor.chain().focus().toggleUnderline().run()}\n className=\"border\"\n >\n <UnderlineIcon className=\"size-3.5\" />\n </Button>\n )}\n\n {extensions.strike && (\n <Button\n type=\"button\"\n size=\"icon\"\n variant={editor?.isActive(\"strike\") ? \"secondary\" : \"outline\"}\n onClick={() => editor.chain().focus().toggleStrike().run()}\n className=\"border\"\n >\n <StrikethroughIcon className=\"size-3.5\" />\n </Button>\n )}\n </div>\n );\n}\n\n/**\n * Editor menu alignment\n */\nfunction EditorMenuColor() {\n const { editor, extensions } = useContext(EditorContext);\n\n if (!extensions.color && !extensions.highlight) {\n return null;\n }\n\n return (\n <div className=\"flex items-center gap-1\">\n {extensions.color && (\n <Popover>\n <PopoverTrigger asChild>\n <Button size=\"icon\" variant=\"outline\">\n <BaselineIcon className=\"size-3.5\" />\n </Button>\n </PopoverTrigger>\n\n <PopoverContent className=\"w-fit p-0\">\n <ColorPicker onValueChange={(color) => editor.chain().focus().setColor(color).run()} />\n </PopoverContent>\n </Popover>\n )}\n\n {extensions.highlight && (\n <Popover>\n <PopoverTrigger asChild>\n <Button size=\"icon\" variant=\"outline\" disabled={!editor?.can().setHighlight()}>\n <PaintBucketIcon className=\"size-3.5\" />\n </Button>\n </PopoverTrigger>\n\n <PopoverContent className=\"w-fit p-0\">\n <ColorPicker\n onValueChange={(color) => editor.chain().focus().setHighlight({ color }).run()}\n />\n </PopoverContent>\n </Popover>\n )}\n\n <Button\n type=\"button\"\n size=\"icon\"\n variant=\"outline\"\n className=\"border\"\n onClick={() => {\n editor.commands.unsetColor();\n editor.commands.unsetHighlight();\n }}\n >\n <EraserIcon className=\"h-4 w-4\" />\n </Button>\n </div>\n );\n}\n\n/**\n * Editor menu image\n */\n// function EditorMenuImage() {\n// const { editor, extensions } = useContext(EditorContext);\n\n// if (!extensions.image) return null;\n\n// return (\n// <div className=\"flex items-center gap-1\">\n// {extensions.image && (\n// <Button\n// type=\"button\"\n// size=\"icon\"\n// variant=\"outline\"\n// onClick={() => editor.chain().focus().downloadImage().run()}\n// disabled={!editor?.can().downloadImage()}\n// className=\"border\"\n// >\n// <DownloadIcon className=\"size-3.5\" />\n// </Button>\n// )}\n// </div>\n// );\n// }\n"],"mappings":";;;;;;;;;;;;AAoBA,SAAgB,gBAAgB,OAAoC;AAClE,QACE,oBAAC;EACC,GAAI;EACJ,WAAW,GAAG,4DAA4D,MAAM,UAAU;YAE1F,qBAAC;GACC,oBAAC,uBAAqB;GACtB,oBAAC,oBAAkB;GACnB,oBAAC,oBAAkB;GACnB,oBAAC,oBAAkB;MACD;GAChB;;AAIV,SAAgB,iBAAiB,OAA0C;CACzE,MAAM,EAAE,WAAW,WAAW,cAAc;AAE5C,QACE,oBAAC;EACC,GAAI;EACI;EACR,SAAS;GAAE,GAAG,MAAM;GAAS,UAAU;GAAS;EAChD,WAAW,GAAG,oDAAoD,MAAM,UAAU;YAElF,oBAAC,+BACC,oBAAC,oBAAkB,GACD;GACT;;AAIjB,SAAS,kBAAkB,OAA0B;AACnD,QAAO,oBAAC;EAAI,WAAU;YAA2B,MAAM;GAAe;;;;;AAMxE,SAAS,qBAAqB;CAC5B,MAAM,EAAE,QAAQ,eAAe,WAAW,cAAc;AAExD,KAAI,CAAC,WAAW,SAAU,QAAO;AAEjC,QACE,qBAAC;EAAI,WAAU;aACb,oBAAC;GACC,eAAe,OAAO,SAAS,MAAM;GACrC,UAAU,CAAC,QAAQ,KAAK,CAAC,MAAM;GAC/B,MAAK;GACL,cAAW;GACX,MAAK;GACL,WAAU;GACV,SAAQ;aAER,oBAAC,YAAS,WAAU,aAAa;IAC1B,EAET,oBAAC;GACC,eAAe,OAAO,SAAS,MAAM;GACrC,UAAU,CAAC,QAAQ,KAAK,CAAC,MAAM;GAC/B,MAAK;GACL,cAAW;GACX,MAAK;GACL,WAAU;GACV,SAAQ;aAER,oBAAC,YAAS,WAAU,aAAa;IAC1B;GACL;;;;;AAOV,SAAS,kBAAkB;CACzB,MAAM,EAAE,QAAQ,eAAe,WAAW,cAAc;AAExD,KAAI,CAAC,WAAW,QAAQ,CAAC,WAAW,UAAU,CAAC,WAAW,aAAa,CAAC,WAAW,OACjF,QAAO;AAGT,QACE,qBAAC;EAAI,WAAU;;GACZ,WAAW,QACV,oBAAC;IACC,MAAK;IACL,MAAK;IACL,SAAS,QAAQ,SAAS,OAAO,GAAG,cAAc;IAClD,eAAe,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK;IACxD,WAAU;cAEV,oBAAC,YAAS,WAAU,gBAAgB;KAC7B;GAGV,WAAW,UACV,oBAAC;IACC,MAAK;IACL,MAAK;IACL,SAAS,QAAQ,SAAS,SAAS,GAAG,cAAc;IACpD,eAAe,OAAO,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK;IAC1D,WAAU;cAEV,oBAAC,cAAW,WAAU,aAAa;KAC5B;GAGV,WAAW,aACV,oBAAC;IACC,MAAK;IACL,MAAK;IACL,SAAS,QAAQ,SAAS,YAAY,GAAG,cAAc;IACvD,eAAe,OAAO,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK;IAC7D,WAAU;cAEV,oBAAC,iBAAc,WAAU,aAAa;KAC/B;GAGV,WAAW,UACV,oBAAC;IACC,MAAK;IACL,MAAK;IACL,SAAS,QAAQ,SAAS,SAAS,GAAG,cAAc;IACpD,eAAe,OAAO,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK;IAC1D,WAAU;cAEV,oBAAC,qBAAkB,WAAU,aAAa;KACnC;;GAEP;;;;;AAOV,SAAS,kBAAkB;CACzB,MAAM,EAAE,QAAQ,eAAe,WAAW,cAAc;AAExD,KAAI,CAAC,WAAW,SAAS,CAAC,WAAW,UACnC,QAAO;AAGT,QACE,qBAAC;EAAI,WAAU;;GACZ,WAAW,SACV,qBAAC,sBACC,oBAAC;IAAe;cACd,oBAAC;KAAO,MAAK;KAAO,SAAQ;eAC1B,oBAAC,gBAAa,WAAU,aAAa;MAC9B;KACM,EAEjB,oBAAC;IAAe,WAAU;cACxB,oBAAC,eAAY,gBAAgB,UAAU,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,MAAM,CAAC,KAAK,GAAI;KACxE,IACT;GAGX,WAAW,aACV,qBAAC,sBACC,oBAAC;IAAe;cACd,oBAAC;KAAO,MAAK;KAAO,SAAQ;KAAU,UAAU,CAAC,QAAQ,KAAK,CAAC,cAAc;eAC3E,oBAAC,mBAAgB,WAAU,aAAa;MACjC;KACM,EAEjB,oBAAC;IAAe,WAAU;cACxB,oBAAC,eACC,gBAAgB,UAAU,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,KAAK,GAC9E;KACa,IACT;GAGZ,oBAAC;IACC,MAAK;IACL,MAAK;IACL,SAAQ;IACR,WAAU;IACV,eAAe;AACb,YAAO,SAAS,YAAY;AAC5B,YAAO,SAAS,gBAAgB;;cAGlC,oBAAC,cAAW,WAAU,YAAY;KAC3B;;GACL"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extension.d.mts","names":[],"sources":["../../../../../src/components/editor/extensions/file-handler/extension.ts"],"mappings":";;;;UASiB,oBAAA,SAA2B,kBAAA;;;AAA5C;;;EAME,kBAAA,IAAsB,OAAA;EANoB;;;;;EAa1C,gBAAA,IAAoB,OAAA;AAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extension.mjs","names":["FileHandler","TiptapFileHandler"],"sources":["../../../../../src/components/editor/extensions/file-handler/extension.ts"],"sourcesContent":["\"use client\";\n\nimport {\n FileHandler as TiptapFileHandler,\n type FileHandlerOptions as TiptapFileHandlerOptions,\n} from \"@tiptap/extension-file-handler\";\nimport { Plugin, PluginKey } from \"@tiptap/pm/state\";\nimport { collectImageIds, diffIds } from \"./utils\";\n\nexport interface FileHandlerOptions extends TiptapFileHandlerOptions {\n /**\n * Callback function invoked when a image reference is removed from the editor. Receives the node ID of the removed node.\n * @type {(assetId: string) => void}\n * @default undefined\n **/\n onReferenceRemoved?: (assetId: string) => void;\n\n /**\n * Callback function invoked when a image reference is added to the editor. Receives the node ID of the added node.\n * @type {(assetId: string) => void}\n * @default undefined\n **/\n onReferenceAdded?: (assetId: string) => void;\n}\n\n/**\n * File Handler extension for Tiptap Editor\n */\nexport const FileHandler = TiptapFileHandler.extend<FileHandlerOptions>({\n addOptions() {\n return {\n ...this.parent?.(),\n onReferenceRemoved: undefined,\n onReferenceAdded: undefined,\n };\n },\n addProseMirrorPlugins() {\n const parent = this.parent?.() ?? [];\n const key = new PluginKey(\"fileHandlerItemTracker\");\n\n return [\n ...parent,\n new Plugin({\n key,\n appendTransaction: (trs, oldState, newState) => {\n if (!trs.some((tr) => tr.docChanged)) return null;\n\n const onReferenceRemoved = this.options.onReferenceRemoved;\n const onReferenceAdded = this.options.onReferenceAdded;\n if (!onReferenceRemoved && !onReferenceAdded) return null;\n\n const before = collectImageIds(oldState.doc);\n const after = collectImageIds(newState.doc);\n const { removed, added } = diffIds(before, after);\n\n for (const id of removed) {\n onReferenceRemoved?.(id);\n }\n\n for (const id of added) {\n onReferenceAdded?.(id);\n }\n\n return null;\n },\n }),\n ];\n },\n});\n"],"mappings":";;;;;;;;;;AA4BA,MAAaA,gBAAcC,YAAkB,OAA2B;CACtE,aAAa;AACX,SAAO;GACL,GAAG,KAAK,UAAU;GAClB,oBAAoB;GACpB,kBAAkB;GACnB;;CAEH,wBAAwB;EACtB,MAAM,SAAS,KAAK,UAAU,IAAI,EAAE;EACpC,MAAM,MAAM,IAAI,UAAU,yBAAyB;AAEnD,SAAO,CACL,GAAG,QACH,IAAI,OAAO;GACT;GACA,oBAAoB,KAAK,UAAU,aAAa;AAC9C,QAAI,CAAC,IAAI,MAAM,OAAO,GAAG,WAAW,CAAE,QAAO;IAE7C,MAAM,qBAAqB,KAAK,QAAQ;IACxC,MAAM,mBAAmB,KAAK,QAAQ;AACtC,QAAI,CAAC,sBAAsB,CAAC,iBAAkB,QAAO;IAIrD,MAAM,EAAE,SAAS,UAAU,QAFZ,gBAAgB,SAAS,IAAI,EAC9B,gBAAgB,SAAS,IAAI,CACM;AAEjD,SAAK,MAAM,MAAM,QACf,sBAAqB,GAAG;AAG1B,SAAK,MAAM,MAAM,MACf,oBAAmB,GAAG;AAGxB,WAAO;;GAEV,CAAC,CACH;;CAEJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"strategy.d.mts","names":[],"sources":["../../../../../src/components/editor/extensions/file-handler/strategy.ts"],"mappings":";;;;;;;AAIsD;KAKjD,oCAAA;EACH,SAAA,EAAW,IAAA,CAAK,kBAAA;EAChB,YAAA,EAAc,YAAA;EACd,WAAA,GAAc,WAAA;EACd,gBAAA;EACA,iBAAA,IAAqB,KAAA,EAAO,YAAA,KAAiB,OAAA;EAC7C,cAAA,IAAkB,KAAA,cAAmB,OAAA;AAAA;AAAA,iBAGvB,+BAAA,CAAA;EACd,SAAA;EACA,YAAA;EACA,WAAA;EACA,iBAAA;EACA,cAAA;EACA;AAAA,GACC,oCAAA,GAAuC,kBAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"strategy.mjs","names":[],"sources":["../../../../../src/components/editor/extensions/file-handler/strategy.ts"],"sourcesContent":["import type { Editor } from \"@tiptap/core\";\nimport { TextSelection } from \"@tiptap/pm/state\";\nimport type { UploadClient, UploadHooks } from \"@/modules/storage/lib/upload.client\";\nimport type { PresignUploadInput, StorageAsset } from \"@/modules/storage/lib/validators\";\nimport type { FileHandlerOptions } from \"./extension\";\n\n/**\n * Handle File Handler props\n */\ntype CreateFileHandlerUploadStrategyProps = {\n variables: Pick<PresignUploadInput, \"visibility\" | \"metadata\">;\n uploadClient: UploadClient;\n uploadHooks?: UploadHooks;\n allowedMimeTypes?: string[];\n onUploadCompleted?: (asset: StorageAsset) => Promise<void> | void;\n onUploadFailed?: (error: unknown) => Promise<void> | void;\n};\n\nexport function createFileHandlerUploadStrategy({\n variables,\n uploadClient,\n uploadHooks,\n onUploadCompleted,\n onUploadFailed,\n allowedMimeTypes,\n}: CreateFileHandlerUploadStrategyProps): FileHandlerOptions {\n const handleUpload = async (editor: Editor, files: File[], startPos: number) => {\n const insertPos = startPos;\n\n for (const file of files) {\n /**\n * Prepare upload\n */\n const input = uploadClient.prepareUpload({ file, ...variables });\n\n const imageType = editor.schema.nodes.image;\n if (!imageType) {\n console.error(\"Image type not found\");\n return;\n }\n\n try {\n /**\n * Create skeleton node\n */\n const skeletonNode = editor.schema.nodes.skeleton?.create({\n imageNodeId: input.uploadId,\n width: 500,\n height: 500,\n });\n\n /**\n * Insert skeleton node into the document\n */\n if (skeletonNode) {\n const tr = editor.state.tr.insert(insertPos, skeletonNode);\n tr.setSelection(TextSelection.create(tr.doc, insertPos + skeletonNode.nodeSize));\n tr.setMeta(\"addToHistory\", false);\n editor.view.dispatch(tr);\n }\n\n /**\n * Upload the file\n */\n const asset = await uploadClient.upload(input, uploadHooks);\n\n /**\n * Replace skeleton with image node\n */\n const replacedTr = editor.state.tr;\n let replaced = false;\n\n replacedTr.doc.descendants((node, pos) => {\n if (node.type.name === \"skeleton\" && node.attrs?.imageNodeId === input.uploadId) {\n const imageNode = imageType.create({\n assetId: asset.id,\n alt: file.name,\n fileName: file.name,\n width: node.attrs.width ?? 500,\n });\n\n replacedTr.replaceWith(pos, pos + node.nodeSize, imageNode);\n replaced = true;\n return false;\n }\n });\n\n if (replaced) {\n editor.view.dispatch(replacedTr);\n } else {\n // In case skeleton is not found, insert the image node at the original position\n const tr = editor.state.tr;\n const imageNode = imageType.create({\n assetId: asset.id,\n alt: file.name,\n fileName: file.name,\n width: 500,\n });\n tr.insert(insertPos, imageNode);\n editor.view.dispatch(tr);\n }\n\n await onUploadCompleted?.(asset);\n } catch (err) {\n console.error(\"Upload error:\", err);\n\n /**\n * Remove the pending image node from the document\n */\n const tr = editor.state.tr;\n tr.doc.descendants((node, pos) => {\n if (node.type.name === \"skeleton\" && node.attrs?.imageNodeId === input.uploadId) {\n tr.delete(pos, pos + node.nodeSize);\n return false;\n }\n });\n editor.view.dispatch(tr);\n\n await onUploadFailed?.(err);\n }\n }\n };\n\n return {\n allowedMimeTypes,\n onDrop: async (editor, files, pos) => {\n await handleUpload(editor, files, pos);\n },\n onPaste: async (editor, files, htmlContent) => {\n if (htmlContent?.length) return;\n\n const startPos = editor.state.selection.anchor;\n await handleUpload(editor, files, startPos);\n },\n onReferenceRemoved: async (assetId) => {\n await uploadClient.deleteAsset(assetId);\n },\n onReferenceAdded: async (assetId) => {\n await uploadClient.restoreAsset(assetId);\n },\n };\n}\n"],"mappings":";;;AAkBA,SAAgB,gCAAgC,EAC9C,WACA,cACA,aACA,mBACA,gBACA,oBAC2D;CAC3D,MAAM,eAAe,OAAO,QAAgB,OAAe,aAAqB;EAC9E,MAAM,YAAY;AAElB,OAAK,MAAM,QAAQ,OAAO;;;;GAIxB,MAAM,QAAQ,aAAa,cAAc;IAAE;IAAM,GAAG;IAAW,CAAC;GAEhE,MAAM,YAAY,OAAO,OAAO,MAAM;AACtC,OAAI,CAAC,WAAW;AACd,YAAQ,MAAM,uBAAuB;AACrC;;AAGF,OAAI;;;;IAIF,MAAM,eAAe,OAAO,OAAO,MAAM,UAAU,OAAO;KACxD,aAAa,MAAM;KACnB,OAAO;KACP,QAAQ;KACT,CAAC;;;;AAKF,QAAI,cAAc;KAChB,MAAM,KAAK,OAAO,MAAM,GAAG,OAAO,WAAW,aAAa;AAC1D,QAAG,aAAa,cAAc,OAAO,GAAG,KAAK,YAAY,aAAa,SAAS,CAAC;AAChF,QAAG,QAAQ,gBAAgB,MAAM;AACjC,YAAO,KAAK,SAAS,GAAG;;;;;IAM1B,MAAM,QAAQ,MAAM,aAAa,OAAO,OAAO,YAAY;;;;IAK3D,MAAM,aAAa,OAAO,MAAM;IAChC,IAAI,WAAW;AAEf,eAAW,IAAI,aAAa,MAAM,QAAQ;AACxC,SAAI,KAAK,KAAK,SAAS,cAAc,KAAK,OAAO,gBAAgB,MAAM,UAAU;MAC/E,MAAM,YAAY,UAAU,OAAO;OACjC,SAAS,MAAM;OACf,KAAK,KAAK;OACV,UAAU,KAAK;OACf,OAAO,KAAK,MAAM,SAAS;OAC5B,CAAC;AAEF,iBAAW,YAAY,KAAK,MAAM,KAAK,UAAU,UAAU;AAC3D,iBAAW;AACX,aAAO;;MAET;AAEF,QAAI,SACF,QAAO,KAAK,SAAS,WAAW;SAC3B;KAEL,MAAM,KAAK,OAAO,MAAM;KACxB,MAAM,YAAY,UAAU,OAAO;MACjC,SAAS,MAAM;MACf,KAAK,KAAK;MACV,UAAU,KAAK;MACf,OAAO;MACR,CAAC;AACF,QAAG,OAAO,WAAW,UAAU;AAC/B,YAAO,KAAK,SAAS,GAAG;;AAG1B,UAAM,oBAAoB,MAAM;YACzB,KAAK;AACZ,YAAQ,MAAM,iBAAiB,IAAI;;;;IAKnC,MAAM,KAAK,OAAO,MAAM;AACxB,OAAG,IAAI,aAAa,MAAM,QAAQ;AAChC,SAAI,KAAK,KAAK,SAAS,cAAc,KAAK,OAAO,gBAAgB,MAAM,UAAU;AAC/E,SAAG,OAAO,KAAK,MAAM,KAAK,SAAS;AACnC,aAAO;;MAET;AACF,WAAO,KAAK,SAAS,GAAG;AAExB,UAAM,iBAAiB,IAAI;;;;AAKjC,QAAO;EACL;EACA,QAAQ,OAAO,QAAQ,OAAO,QAAQ;AACpC,SAAM,aAAa,QAAQ,OAAO,IAAI;;EAExC,SAAS,OAAO,QAAQ,OAAO,gBAAgB;AAC7C,OAAI,aAAa,OAAQ;GAEzB,MAAM,WAAW,OAAO,MAAM,UAAU;AACxC,SAAM,aAAa,QAAQ,OAAO,SAAS;;EAE7C,oBAAoB,OAAO,YAAY;AACrC,SAAM,aAAa,YAAY,QAAQ;;EAEzC,kBAAkB,OAAO,YAAY;AACnC,SAAM,aAAa,aAAa,QAAQ;;EAE3C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.mjs","names":[],"sources":["../../../../../src/components/editor/extensions/file-handler/utils.ts"],"sourcesContent":["import type { Node } from \"@tiptap/pm/model\";\n\n/**\n * Collects and counts all image node IDs from a document.\n *\n * @param doc - The document node to traverse and analyze\n * @returns A Map where keys are image node IDs and values are their occurrence counts\n *\n * @example\n * const imageCounts = collectImageIds(editorDoc);\n * imageCounts.forEach((count, imageId) => {\n * console.info(`Image ${imageId} appears ${count} times`);\n * });\n */\nexport function collectImageIds(doc: Node): Map<string, number> {\n const counts = new Map<string, number>();\n\n doc.descendants((node) => {\n if (node.type.name !== \"image\") return;\n\n const id = node.attrs?.assetId;\n if (!id) return;\n\n counts.set(id, (counts.get(id) ?? 0) + 1);\n });\n\n return counts;\n}\n\n/**\n * Compares two maps of string keys to numeric values and identifies which keys have been removed or restored.\n * @param before - A Map containing the previous state of string keys with their associated numeric values\n * @param after - A Map containing the current state of string keys with their associated numeric values\n * @returns An object containing two arrays:\n * - `removed`: Array of keys where the numeric value decreased (or was deleted)\n * - `restored`: Array of keys where the numeric value increased\n */\nexport function diffIds(before: Map<string, number>, after: Map<string, number>) {\n const removed: string[] = [];\n const added: string[] = [];\n\n const keys = new Set([...before.keys(), ...after.keys()]);\n\n for (const key of keys) {\n const b = before.get(key) ?? 0;\n const a = after.get(key) ?? 0;\n\n if (a < b) removed.push(key);\n if (a > b) added.push(key);\n }\n\n return { removed, added };\n}\n"],"mappings":";;;;;;;;;;;;;AAcA,SAAgB,gBAAgB,KAAgC;CAC9D,MAAM,yBAAS,IAAI,KAAqB;AAExC,KAAI,aAAa,SAAS;AACxB,MAAI,KAAK,KAAK,SAAS,QAAS;EAEhC,MAAM,KAAK,KAAK,OAAO;AACvB,MAAI,CAAC,GAAI;AAET,SAAO,IAAI,KAAK,OAAO,IAAI,GAAG,IAAI,KAAK,EAAE;GACzC;AAEF,QAAO;;;;;;;;;;AAWT,SAAgB,QAAQ,QAA6B,OAA4B;CAC/E,MAAM,UAAoB,EAAE;CAC5B,MAAM,QAAkB,EAAE;CAE1B,MAAM,OAAO,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,CAAC;AAEzD,MAAK,MAAM,OAAO,MAAM;EACtB,MAAM,IAAI,OAAO,IAAI,IAAI,IAAI;EAC7B,MAAM,IAAI,MAAM,IAAI,IAAI,IAAI;AAE5B,MAAI,IAAI,EAAG,SAAQ,KAAK,IAAI;AAC5B,MAAI,IAAI,EAAG,OAAM,KAAK,IAAI;;AAG5B,QAAO;EAAE;EAAS;EAAO"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extension.d.mts","names":[],"sources":["../../../../../src/components/editor/extensions/image/extension.ts"],"mappings":";;;;UAQiB,cAAA,SAAqB,YAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extension.mjs","names":["Image","TiptapImage"],"sources":["../../../../../src/components/editor/extensions/image/extension.ts"],"sourcesContent":["\"use client\";\n\nimport {\n Image as TiptapImage,\n type ImageOptions as TiptapImageOptions,\n} from \"@tiptap/extension-image\";\nimport { getAssetURL } from \"@/modules/storage/entry\";\n\nexport interface ImageOptions extends TiptapImageOptions {}\n\nexport const Image = TiptapImage.extend<ImageOptions>({\n atom: true,\n addAttributes() {\n return {\n ...this.parent?.(),\n // asset id\n assetId: {\n default: null,\n parseHTML: (el) => el.getAttribute(\"data-asset-id\"),\n renderHTML: (attrs) => {\n if (!attrs.assetId) return {};\n return {\n \"data-asset-id\": attrs.assetId,\n ...(attrs.assetId && !attrs.isPending ? { src: getAssetURL(attrs.assetId) } : {}),\n };\n },\n },\n\n // semantics\n alt: { default: null },\n title: { default: null },\n\n // layout stability\n width: { default: null },\n height: { default: null },\n\n // upload UX\n isPending: {\n default: false,\n renderHTML: (attrs) => (attrs.isPending ? { \"data-pending\": \"true\" } : {}),\n },\n fileName: { default: null },\n };\n },\n parseHTML() {\n return [{ tag: \"img[data-asset-id]\" }];\n },\n renderHTML({ HTMLAttributes }) {\n const { src: _, ...attrs } = HTMLAttributes;\n\n const assetId = attrs.assetId as string | null;\n const isPending = Boolean(attrs.isPending);\n\n const src = assetId && !isPending ? getAssetURL(assetId) : null;\n\n return [\"img\", { ...attrs, ...(src ? { src } : {}) }];\n },\n});\n"],"mappings":";;;;;;AAUA,MAAaA,UAAQC,MAAY,OAAqB;CACpD,MAAM;CACN,gBAAgB;AACd,SAAO;GACL,GAAG,KAAK,UAAU;GAElB,SAAS;IACP,SAAS;IACT,YAAY,OAAO,GAAG,aAAa,gBAAgB;IACnD,aAAa,UAAU;AACrB,SAAI,CAAC,MAAM,QAAS,QAAO,EAAE;AAC7B,YAAO;MACL,iBAAiB,MAAM;MACvB,GAAI,MAAM,WAAW,CAAC,MAAM,YAAY,EAAE,KAAK,YAAY,MAAM,QAAQ,EAAE,GAAG,EAAE;MACjF;;IAEJ;GAGD,KAAK,EAAE,SAAS,MAAM;GACtB,OAAO,EAAE,SAAS,MAAM;GAGxB,OAAO,EAAE,SAAS,MAAM;GACxB,QAAQ,EAAE,SAAS,MAAM;GAGzB,WAAW;IACT,SAAS;IACT,aAAa,UAAW,MAAM,YAAY,EAAE,gBAAgB,QAAQ,GAAG,EAAE;IAC1E;GACD,UAAU,EAAE,SAAS,MAAM;GAC5B;;CAEH,YAAY;AACV,SAAO,CAAC,EAAE,KAAK,sBAAsB,CAAC;;CAExC,WAAW,EAAE,kBAAkB;EAC7B,MAAM,EAAE,KAAK,GAAG,GAAG,UAAU;EAE7B,MAAM,UAAU,MAAM;EACtB,MAAM,YAAY,QAAQ,MAAM,UAAU;EAE1C,MAAM,MAAM,WAAW,CAAC,YAAY,YAAY,QAAQ,GAAG;AAE3D,SAAO,CAAC,OAAO;GAAE,GAAG;GAAO,GAAI,MAAM,EAAE,KAAK,GAAG,EAAE;GAAG,CAAC;;CAExD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extension.mjs","names":[],"sources":["../../../../../src/components/editor/extensions/skeleton/extension.ts"],"sourcesContent":["\"use client\";\n\nimport { Node } from \"@tiptap/core\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { SkeletonNodeRenderer } from \"./renderer\";\n\nexport const Skeleton = Node.create({\n name: \"skeleton\",\n atom: true,\n inline: true,\n group: \"inline\",\n selectable: false,\n draggable: false,\n addAttributes() {\n return {\n imageNodeId: { default: null },\n width: { default: null },\n height: { default: null },\n };\n },\n addOptions() {\n return {\n addToHistory: false,\n };\n },\n parseHTML() {\n return [{ tag: \"span[data-skeleton]\" }];\n },\n renderHTML({ HTMLAttributes }) {\n return [\"span\", { ...HTMLAttributes, \"data-skeleton\": \"true\" }];\n },\n addNodeView() {\n return ReactNodeViewRenderer(SkeletonNodeRenderer);\n },\n});\n"],"mappings":";;;;;;;AAMA,MAAa,WAAW,KAAK,OAAO;CAClC,MAAM;CACN,MAAM;CACN,QAAQ;CACR,OAAO;CACP,YAAY;CACZ,WAAW;CACX,gBAAgB;AACd,SAAO;GACL,aAAa,EAAE,SAAS,MAAM;GAC9B,OAAO,EAAE,SAAS,MAAM;GACxB,QAAQ,EAAE,SAAS,MAAM;GAC1B;;CAEH,aAAa;AACX,SAAO,EACL,cAAc,OACf;;CAEH,YAAY;AACV,SAAO,CAAC,EAAE,KAAK,uBAAuB,CAAC;;CAEzC,WAAW,EAAE,kBAAkB;AAC7B,SAAO,CAAC,QAAQ;GAAE,GAAG;GAAgB,iBAAiB;GAAQ,CAAC;;CAEjE,cAAc;AACZ,SAAO,sBAAsB,qBAAqB;;CAErD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.mjs","names":[],"sources":["../../../../../src/components/editor/extensions/skeleton/renderer.tsx"],"sourcesContent":["\"use client\";\n\nimport type { Node } from \"@tiptap/pm/model\";\nimport { NodeViewWrapper } from \"@tiptap/react\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\n\nexport function SkeletonNodeRenderer(props: { node: Node }) {\n const { width, height } = props.node.attrs;\n\n return (\n <NodeViewWrapper as=\"span\" data-skeleton=\"true\">\n <Skeleton className=\"min-h-125 w-full\" style={{ width, height }} />\n </NodeViewWrapper>\n );\n}\n"],"mappings":";;;;;;;AAMA,SAAgB,qBAAqB,OAAuB;CAC1D,MAAM,EAAE,OAAO,WAAW,MAAM,KAAK;AAErC,QACE,oBAAC;EAAgB,IAAG;EAAO,iBAAc;YACvC,oBAAC;GAAS,WAAU;GAAmB,OAAO;IAAE;IAAO;IAAQ;IAAI;GACnD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.mts","names":[],"sources":["../../../../src/components/editor/lib/constants.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;cAwBa,iBAAA;;;;iCAoCZ,6BAAA,CAAA,iBAAA;;;;;;;;;;;;;EAAA;;;;;;;;;;;;;;;;;;;;KAEW,gBAAA,UAA0B,iBAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.mjs","names":[],"sources":["../../../../src/components/editor/lib/constants.ts"],"sourcesContent":["import Blockquote from \"@tiptap/extension-blockquote\";\nimport Bold from \"@tiptap/extension-bold\";\nimport Document from \"@tiptap/extension-document\";\nimport HardBreak from \"@tiptap/extension-hard-break\";\nimport Heading from \"@tiptap/extension-heading\";\nimport Highlight from \"@tiptap/extension-highlight\";\nimport HorizontalRule from \"@tiptap/extension-horizontal-rule\";\nimport Italic from \"@tiptap/extension-italic\";\nimport Link from \"@tiptap/extension-link\";\nimport { BulletList, ListItem, ListKeymap, OrderedList } from \"@tiptap/extension-list\";\nimport Paragraph from \"@tiptap/extension-paragraph\";\nimport Strike from \"@tiptap/extension-strike\";\nimport Text from \"@tiptap/extension-text\";\nimport { Color, TextStyle } from \"@tiptap/extension-text-style\";\nimport Underline from \"@tiptap/extension-underline\";\nimport { Dropcursor, Gapcursor, TrailingNode, UndoRedo } from \"@tiptap/extensions\";\nimport { FileHandler } from \"../extensions/file-handler/extension\";\nimport { Image } from \"../extensions/image/extension\";\nimport { Skeleton } from \"../extensions/skeleton/extension\";\nimport { createExtensionConfig } from \"./extensions\";\n\n/**\n * Editor extensions map\n */\nexport const EDITOR_EXTENSIONS = {\n /**\n * Nodes\n */\n blockquote: Blockquote,\n document: Document,\n hardBreak: HardBreak,\n heading: Heading,\n horizontalRule: HorizontalRule,\n listItem: ListItem,\n orderedList: OrderedList,\n bulletList: BulletList,\n paragraph: Paragraph,\n text: Text,\n image: Image,\n fileHandler: FileHandler,\n skeleton: Skeleton,\n /**\n * Marks\n */\n bold: Bold,\n italic: Italic,\n link: Link,\n strike: Strike,\n underline: Underline,\n highlight: Highlight,\n /**\n * Extensions\n */\n dropcursor: Dropcursor,\n gapcursor: Gapcursor,\n undoRedo: UndoRedo,\n listKeymap: ListKeymap,\n trailingNode: TrailingNode,\n textStyle: TextStyle,\n color: Color,\n};\n\nexport type EditorExtensions = typeof EDITOR_EXTENSIONS;\n\n/**\n * Editor extensions keys\n */\nexport const EDITOR_EXTENSIONS_KEYS = Object.keys(EDITOR_EXTENSIONS);\nexport type EditorExtensionsKeys = keyof typeof EDITOR_EXTENSIONS;\n\n/**\n * Editor extensions values\n */\nexport const EDITOR_EXTENSIONS_VALUES = Object.values(EDITOR_EXTENSIONS);\n\n/**\n * Editor extensions config\n */\nexport const EDITOR_EXTENSIONS_CONFIG = [\n /**\n * Nodes\n */\n createExtensionConfig(\"blockquote\"),\n createExtensionConfig(\"document\"),\n createExtensionConfig(\"hardBreak\"),\n createExtensionConfig(\"heading\"),\n createExtensionConfig(\"horizontalRule\"),\n createExtensionConfig(\"listItem\"),\n createExtensionConfig(\"orderedList\"),\n createExtensionConfig(\"bulletList\"),\n createExtensionConfig(\"paragraph\"),\n createExtensionConfig(\"text\"),\n createExtensionConfig(\"image\", {\n resize: {\n enabled: true,\n directions: [\"left\", \"right\"],\n minHeight: 50,\n minWidth: 50,\n alwaysPreserveAspectRatio: true,\n },\n }),\n createExtensionConfig(\"fileHandler\"),\n createExtensionConfig(\"skeleton\"),\n /**\n * Marks\n */\n createExtensionConfig(\"bold\"),\n createExtensionConfig(\"italic\"),\n createExtensionConfig(\"link\"),\n createExtensionConfig(\"strike\"),\n createExtensionConfig(\"underline\"),\n createExtensionConfig(\"highlight\", { multicolor: true }),\n /**\n * Extensions\n */\n createExtensionConfig(\"dropcursor\"),\n createExtensionConfig(\"gapcursor\"),\n createExtensionConfig(\"undoRedo\"),\n createExtensionConfig(\"listKeymap\"),\n createExtensionConfig(\"trailingNode\"),\n createExtensionConfig(\"textStyle\"),\n createExtensionConfig(\"color\"),\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,MAAa,oBAAoB;CAI/B,YAAY;CACZ,UAAU;CACV,WAAW;CACX,SAAS;CACT,gBAAgB;CAChB,UAAU;CACV,aAAa;CACb,YAAY;CACZ,WAAW;CACX,MAAM;CACN,OAAO;CACP,aAAa;CACb,UAAU;CAIV,MAAM;CACN,QAAQ;CACR,MAAM;CACN,QAAQ;CACR,WAAW;CACX,WAAW;CAIX,YAAY;CACZ,WAAW;CACX,UAAU;CACV,YAAY;CACZ,cAAc;CACd,WAAW;CACX,OAAO;CACR;;;;AAOD,MAAa,yBAAyB,OAAO,KAAK,kBAAkB;;;;AAMpE,MAAa,2BAA2B,OAAO,OAAO,kBAAkB;;;;AAKxE,MAAa,2BAA2B;CAItC,sBAAsB,aAAa;CACnC,sBAAsB,WAAW;CACjC,sBAAsB,YAAY;CAClC,sBAAsB,UAAU;CAChC,sBAAsB,iBAAiB;CACvC,sBAAsB,WAAW;CACjC,sBAAsB,cAAc;CACpC,sBAAsB,aAAa;CACnC,sBAAsB,YAAY;CAClC,sBAAsB,OAAO;CAC7B,sBAAsB,SAAS,EAC7B,QAAQ;EACN,SAAS;EACT,YAAY,CAAC,QAAQ,QAAQ;EAC7B,WAAW;EACX,UAAU;EACV,2BAA2B;EAC5B,EACF,CAAC;CACF,sBAAsB,cAAc;CACpC,sBAAsB,WAAW;CAIjC,sBAAsB,OAAO;CAC7B,sBAAsB,SAAS;CAC/B,sBAAsB,OAAO;CAC7B,sBAAsB,SAAS;CAC/B,sBAAsB,YAAY;CAClC,sBAAsB,aAAa,EAAE,YAAY,MAAM,CAAC;CAIxD,sBAAsB,aAAa;CACnC,sBAAsB,YAAY;CAClC,sBAAsB,WAAW;CACjC,sBAAsB,aAAa;CACnC,sBAAsB,eAAe;CACrC,sBAAsB,YAAY;CAClC,sBAAsB,QAAQ;CAC/B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extensions.d.mts","names":[],"sources":["../../../../src/components/editor/lib/extensions.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAoCA;;;AAAA,KAAY,sBAAA;EAIE;;;EAAZ,UAAA,EAAY,OAAA,CAAQ,iBAAA;EACpB,UAAA,EAAY,OAAA,CAAQ,iBAAA;EACpB,QAAA;EACA,SAAA,EAAW,OAAA,CAAQ,gBAAA;EACnB,OAAA,EAAS,OAAA,CAAQ,cAAA;EACjB,cAAA,EAAgB,OAAA,CAAQ,qBAAA;EACxB,QAAA,EAAU,OAAA,CAAQ,eAAA;EAClB,WAAA,EAAa,OAAA,CAAQ,kBAAA;EACrB,SAAA,EAAW,OAAA,CAAQ,gBAAA;EACnB,IAAA,EAAM,OAAA,CAAQ,gBAAA;EACd,KAAA,EAAO,OAAA,CAAQ,YAAA;EACf,WAAA,EAAa,OAAA,CAAQ,kBAAA;EACrB,QAAA;EAHM;;;EAON,IAAA,EAAM,OAAA,CAAQ,WAAA;EACd,MAAA,EAAQ,OAAA,CAAQ,aAAA;EAChB,IAAA,EAAM,OAAA,CAAQ,WAAA;EACd,MAAA,EAAQ,OAAA,CAAQ,aAAA;EAChB,SAAA,EAAW,OAAA,CAAQ,gBAAA;EACnB,SAAA,EAAW,OAAA,CAAQ,gBAAA;EAHL;;;EAOd,UAAA,EAAY,OAAA,CAAQ,iBAAA;EACpB,SAAA;EACA,QAAA,EAAU,OAAA,CAAQ,eAAA;EAClB,UAAA,EAAY,OAAA,CAAQ,iBAAA;EACpB,YAAA,EAAc,OAAA,CAAQ,mBAAA;EACtB,SAAA,EAAW,OAAA,CAAQ,gBAAA;EACnB,KAAA,EAAO,OAAA,CAAQ,YAAA;AAAA;AAAA,KAqEL,4BAAA,GAA+B,MAAA,OAAa,gBAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extensions.mjs","names":[],"sources":["../../../../src/components/editor/lib/extensions.ts"],"sourcesContent":["import type { BlockquoteOptions } from \"@tiptap/extension-blockquote\";\nimport type { BoldOptions } from \"@tiptap/extension-bold\";\nimport type { HardBreakOptions } from \"@tiptap/extension-hard-break\";\nimport type { HeadingOptions } from \"@tiptap/extension-heading\";\nimport type { HighlightOptions } from \"@tiptap/extension-highlight\";\nimport type { HorizontalRuleOptions } from \"@tiptap/extension-horizontal-rule\";\nimport type { ItalicOptions } from \"@tiptap/extension-italic\";\nimport type { LinkOptions } from \"@tiptap/extension-link\";\nimport type {\n BulletListOptions,\n ListItemOptions,\n ListKeymapOptions,\n OrderedListOptions,\n} from \"@tiptap/extension-list\";\nimport type { ParagraphOptions } from \"@tiptap/extension-paragraph\";\nimport type { StrikeOptions } from \"@tiptap/extension-strike\";\nimport type { ColorOptions, TextStyleOptions } from \"@tiptap/extension-text-style\";\nimport type { UnderlineOptions } from \"@tiptap/extension-underline\";\nimport type { DropcursorOptions, TrailingNodeOptions, UndoRedoOptions } from \"@tiptap/extensions\";\nimport type { Extension } from \"@tiptap/react\";\nimport deepmerge from \"deepmerge\";\nimport type { FileHandlerOptions } from \"../extensions/file-handler/extension\";\nimport type { ImageOptions } from \"../extensions/image/extension\";\nimport {\n EDITOR_EXTENSIONS,\n EDITOR_EXTENSIONS_CONFIG,\n EDITOR_EXTENSIONS_KEYS,\n type EditorExtensions,\n} from \"./constants\";\n\n/**\n * Editor extensions defaults\n */\n/**\n * Editor extensions map\n */\nexport type EditorExtensionsConfig = {\n /**\n * Nodes\n */\n blockquote: Partial<BlockquoteOptions> | boolean;\n bulletList: Partial<BulletListOptions> | boolean;\n document: boolean;\n hardBreak: Partial<HardBreakOptions> | boolean;\n heading: Partial<HeadingOptions> | boolean;\n horizontalRule: Partial<HorizontalRuleOptions> | boolean;\n listItem: Partial<ListItemOptions> | boolean;\n orderedList: Partial<OrderedListOptions> | boolean;\n paragraph: Partial<ParagraphOptions> | boolean;\n text: Partial<TextStyleOptions> | boolean;\n image: Partial<ImageOptions> | boolean;\n fileHandler: Partial<FileHandlerOptions> | boolean;\n skeleton: boolean;\n /**\n * Marks\n */\n bold: Partial<BoldOptions> | boolean;\n italic: Partial<ItalicOptions> | boolean;\n link: Partial<LinkOptions> | boolean;\n strike: Partial<StrikeOptions> | boolean;\n underline: Partial<UnderlineOptions> | boolean;\n highlight: Partial<HighlightOptions> | boolean;\n /**\n * Extensions\n */\n dropcursor: Partial<DropcursorOptions> | boolean;\n gapcursor: boolean;\n undoRedo: Partial<UndoRedoOptions> | boolean;\n listKeymap: Partial<ListKeymapOptions> | boolean;\n trailingNode: Partial<TrailingNodeOptions> | boolean;\n textStyle: Partial<TextStyleOptions> | boolean;\n color: Partial<ColorOptions> | boolean;\n};\n\n/**\n * Create extension config\n * @param name\n * @param defaultOptions\n * @returns\n */\nexport function createExtensionConfig<TName extends keyof EditorExtensionsConfig>(\n name: TName,\n defaultOptions: Partial<Exclude<EditorExtensionsConfig[TName], boolean>> = {},\n) {\n return {\n name,\n configure: (options: EditorExtensionsConfig[TName]) => {\n // Get extension\n const extension = EDITOR_EXTENSIONS[name];\n\n // If no options or no extension, return undefined\n if (!options || !extension) return undefined;\n\n // If no options are provided, return extension\n if (typeof options === \"boolean\") return extension.configure(defaultOptions);\n\n const extensionOptions = deepmerge(defaultOptions, options as object);\n\n // If no options are provided, return extension else configure\n return extension.configure(extensionOptions);\n },\n };\n}\n\n/**\n * Editor extensions config to extensions\n */\nexport function editorExtensionsConfigToExtensions(extensions?: Partial<EditorExtensionsConfig>) {\n return EDITOR_EXTENSIONS_CONFIG.flatMap(({ name, configure }) => {\n // Get the extension config\n const value = extensions?.[name];\n\n // if no value is provided, return extension\n if (value === undefined) return configure(true) as Extension;\n\n // If value is boolean, return extension\n // biome-ignore lint/suspicious/noExplicitAny: This is needed to satisfy the type system\n return configure(value as any) as Extension;\n });\n}\n\n/**\n * Editor extensions config result\n */\nexport function flattenEditorExtensionsConfig(\n extensions?: Partial<EditorExtensionsConfig>,\n): EditorExtensionsConfigResult {\n return EDITOR_EXTENSIONS_KEYS.reduce((acc, key) => {\n const value = extensions?.[key as keyof EditorExtensionsConfig];\n\n if (value === undefined) {\n acc[key as keyof EditorExtensionsConfigResult] = true;\n return acc;\n }\n\n acc[key as keyof EditorExtensionsConfigResult] = typeof value === \"boolean\" ? value : true;\n return acc;\n }, {} as EditorExtensionsConfigResult);\n}\n\nexport type EditorExtensionsConfigResult = Record<keyof EditorExtensions, boolean>;\n\n// const { uploadImage } = useUploadEditor();\n// StarterKit,\n// Underline,\n// Link,\n// TextStyle,\n// Color,\n// Highlight.configure({ multicolor: true }),\n// Image.configure({\n// allowBase64: false,\n// }),\n// FileHandler.configure({\n// allowedMimeTypes: [\"image/png\", \"image/jpeg\", \"image/gif\", \"image/webp\"],\n// onDrop: (currentEditor, files, pos) => {\n// files.forEach((file) => {\n// const fileReader = new FileReader();\n\n// fileReader.readAsArrayBuffer(file);\n// fileReader.onload = async () => {\n// const response = await uploadImage(file);\n// if (!response) return;\n\n// currentEditor\n// .chain()\n// .insertContentAt(pos, {\n// type: \"image\",\n// attrs: { src: response.url },\n// })\n// .focus()\n// .run();\n// };\n// });\n// },\n// onPaste: (currentEditor, files) => {\n// files.forEach((file) => {\n// const fileReader = new FileReader();\n\n// fileReader.readAsArrayBuffer(file);\n// fileReader.onload = async () => {\n// const response = await uploadImage(file);\n// if (!response) return;\n\n// currentEditor\n// .chain()\n// .insertContentAt(currentEditor.state.selection.anchor, {\n// type: \"image\",\n// attrs: { src: response.url },\n// })\n// .focus()\n// .run();\n// };\n// });\n// },\n// }),\n"],"mappings":";;;;;;;;;;AAgFA,SAAgB,sBACd,MACA,iBAA2E,EAAE,EAC7E;AACA,QAAO;EACL;EACA,YAAY,YAA2C;GAErD,MAAM,YAAY,kBAAkB;AAGpC,OAAI,CAAC,WAAW,CAAC,UAAW,QAAO;AAGnC,OAAI,OAAO,YAAY,UAAW,QAAO,UAAU,UAAU,eAAe;GAE5E,MAAM,mBAAmB,UAAU,gBAAgB,QAAkB;AAGrE,UAAO,UAAU,UAAU,iBAAiB;;EAE/C;;;;;AAMH,SAAgB,mCAAmC,YAA8C;AAC/F,QAAO,yBAAyB,SAAS,EAAE,MAAM,gBAAgB;EAE/D,MAAM,QAAQ,aAAa;AAG3B,MAAI,UAAU,OAAW,QAAO,UAAU,KAAK;AAI/C,SAAO,UAAU,MAAa;GAC9B;;;;;AAMJ,SAAgB,8BACd,YAC8B;AAC9B,QAAO,uBAAuB,QAAQ,KAAK,QAAQ;EACjD,MAAM,QAAQ,aAAa;AAE3B,MAAI,UAAU,QAAW;AACvB,OAAI,OAA6C;AACjD,UAAO;;AAGT,MAAI,OAA6C,OAAO,UAAU,YAAY,QAAQ;AACtF,SAAO;IACN,EAAE,CAAiC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.mts","names":[],"sources":["../../../../src/components/editor/lib/helpers.ts"],"mappings":";;;;;AAuCA;iBAAgB,0BAAA,CAA2B,IAAA,WAAe,iBAAA;;;;iBAO1C,8BAAA,CAA+B,QAAA,WAAmB,iBAAA;;;;iBAQlD,0BAAA,CAA2B,OAAA,EAAS,iBAAA;AAApD;;;AAAA,iBAUgB,8BAAA,CAA+B,OAAA,EAAS,iBAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.mjs","names":[],"sources":["../../../../src/components/editor/lib/helpers.ts"],"sourcesContent":["import Blockquote from \"@tiptap/extension-blockquote\";\nimport Bold from \"@tiptap/extension-bold\";\nimport Document from \"@tiptap/extension-document\";\nimport HardBreak from \"@tiptap/extension-hard-break\";\nimport Heading from \"@tiptap/extension-heading\";\nimport HorizontalRule from \"@tiptap/extension-horizontal-rule\";\nimport Italic from \"@tiptap/extension-italic\";\nimport Link from \"@tiptap/extension-link\";\nimport { BulletList, ListItem, OrderedList } from \"@tiptap/extension-list\";\nimport Paragraph from \"@tiptap/extension-paragraph\";\nimport Strike from \"@tiptap/extension-strike\";\nimport Text from \"@tiptap/extension-text\";\nimport Underline from \"@tiptap/extension-underline\";\nimport { generateJSON } from \"@tiptap/html\";\nimport { renderToHTMLString, renderToMarkdown } from \"@tiptap/static-renderer\";\nimport { markdownParser } from \"@/lib/utils/markdown\";\nimport type { EditorJSONContent } from \"./types\";\n\nconst EXTENSIONS_FOR_GENERATION = [\n Blockquote,\n BulletList,\n Document,\n HardBreak,\n Heading,\n HorizontalRule,\n ListItem,\n OrderedList,\n Paragraph,\n Text,\n Bold,\n Italic,\n Link,\n Strike,\n Underline,\n];\n\n/**\n * Convert HTML to editor content\n */\nexport function convertHTMLToEditorContent(html: string): EditorJSONContent {\n return generateJSON(html, EXTENSIONS_FOR_GENERATION);\n}\n\n/**\n * Convert markdown to editor content\n */\nexport function convertMarkdownToEditorContent(markdown: string): EditorJSONContent {\n const html = markdownParser.render(markdown);\n return convertHTMLToEditorContent(html);\n}\n\n/**\n * Convert editor content to HTML\n */\nexport function convertEditorContentToHTML(content: EditorJSONContent): string {\n return renderToHTMLString({\n content,\n extensions: EXTENSIONS_FOR_GENERATION,\n });\n}\n\n/**\n * Convert editor content to markdown\n */\nexport function convertEditorContentToMarkdown(content: EditorJSONContent): string {\n return renderToMarkdown({\n content,\n extensions: EXTENSIONS_FOR_GENERATION,\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,MAAM,4BAA4B;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;;;;AAKD,SAAgB,2BAA2B,MAAiC;AAC1E,QAAO,aAAa,MAAM,0BAA0B;;;;;AAMtD,SAAgB,+BAA+B,UAAqC;AAElF,QAAO,2BADM,eAAe,OAAO,SAAS,CACL;;;;;AAMzC,SAAgB,2BAA2B,SAAoC;AAC7E,QAAO,mBAAmB;EACxB;EACA,YAAY;EACb,CAAC;;;;;AAMJ,SAAgB,+BAA+B,SAAoC;AACjF,QAAO,iBAAiB;EACtB;EACA,YAAY;EACb,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.mts","names":[],"sources":["../../../../src/components/editor/lib/types.ts"],"mappings":";;;;;AAKA;KAAY,iBAAA,GAAoB,WAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"variants.mjs","names":[],"sources":["../../../../src/components/editor/lib/variants.ts"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils/cn\";\n\n/**\n * Prose variants\n */\nexport const editorProseVariants = cva(\n cn(\n \"prose dark:prose-invert\",\n \"prose-a:text-primary\",\n \"prose-headings:scroll-mt-20\",\n \"prose-h1:mt-6 prose-h1:mb-3\",\n \"prose-h2:mt-6 prose-h2:mb-3\",\n \"prose-h3:mt-5 prose-h3:mb-2\",\n \"prose-h4:mt-4 prose-h4:mb-2\",\n \"prose-ul:my-3 prose-ol:my-3\",\n \"prose-ul:pl-6 prose-ol:pl-6\",\n \"prose-li:my-1\",\n \"prose-li:marker:text-primary\",\n \"prose-li:p-0\",\n \"prose-img:my-0 prose-img:rounded-lg\",\n \"prose-blockquote:my-4 prose-blockquote:py-1\",\n \"prose-hr:my-6\",\n \"prose-pre:my-4\",\n ),\n);\n\n/**\n * Image variants\n */\nexport const editorImageVariants = cva(\n cn(\n // wrapper (TipTap sets display:block inline → override with !)\n \"[&_[data-resize-wrapper]]:!inline-block\",\n \"[&_[data-resize-wrapper]]:!relative\",\n \"[&_[data-resize-wrapper]]:max-w-full\",\n \"[&_[data-resize-wrapper]]:overflow-hidden\",\n\n // handle base\n \"[&_[data-resize-handle]]:absolute\",\n \"[&_[data-resize-handle]]:z-10\",\n \"[&_[data-resize-handle]]:rounded-full\",\n \"[&_[data-resize-handle]]:bg-muted/40\",\n \"[&_[data-resize-handle]]:w-1.5\",\n \"[&_[data-resize-handle]]:cursor-ew-resize\",\n \"[&_[data-resize-handle]]:opacity-0\",\n \"[&_[data-resize-handle]]:transition-opacity\",\n\n // show on hover / active\n \"[&:hover_[data-resize-handle]]:opacity-100\",\n \"[&_[data-resize-state='true']_[data-resize-handle]]:opacity-100\",\n\n // ✅ override TipTap inline: top:0; bottom:0;\n \"[&_[data-resize-handle]]:!top-1/2\",\n \"[&_[data-resize-handle]]:!bottom-auto\",\n \"[&_[data-resize-handle]]:!-translate-y-1/2\",\n\n // ✅ half height (also must beat inline)\n \"[&_[data-resize-handle]]:!h-1/2\",\n\n // ✅ spacing from edge (beat inline left:0 / right:0)\n \"[&_[data-resize-handle='left']]:!left-2\",\n \"[&_[data-resize-handle='right']]:!right-2\",\n\n // ✅ override inline visibility:hidden on the resize container while pending\n \"[&_[data-resize-container]:has(img[data-pending='true'])]:[visibility:visible!important]\",\n \"[&_[data-resize-container]:has(img[data-pending='true'])]:[pointer-events:auto!important]\",\n\n // Pending img should behave like a skeleton block (even before wrapper exists)\n \"[&_img[data-pending='true']]:bg-primary/10\",\n \"[&_img[data-pending='true']]:animate-pulse\",\n \"[&_img[data-pending='true']]:rounded-md\",\n \"[&_img[data-pending='true']]:opacity-0\",\n \"[&_img[data-pending='true']]:min-h-[500px]\",\n ),\n);\n"],"mappings":";;;;;;;AAMA,MAAa,sBAAsB,IACjC,GACE,2BACA,wBACA,+BACA,+BACA,+BACA,+BACA,+BACA,+BACA,+BACA,iBACA,gCACA,gBACA,uCACA,+CACA,iBACA,iBACD,CACF;;;;AAKD,MAAa,sBAAsB,IACjC,GAEE,2CACA,uCACA,wCACA,6CAGA,qCACA,iCACA,yCACA,wCACA,kCACA,6CACA,sCACA,+CAGA,8CACA,mEAGA,qCACA,yCACA,8CAGA,mCAGA,2CACA,6CAGA,4FACA,6FAGA,8CACA,8CACA,2CACA,0CACA,6CACD,CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"forget-password-email.mjs","names":[],"sources":["../../../src/components/emails/forget-password-email.tsx"],"sourcesContent":["import {\n Body,\n Button,\n Container,\n Head,\n Heading,\n Html,\n Preview,\n Section,\n Tailwind,\n Text,\n} from \"@react-email/components\";\nimport { url } from \"@/lib/utils/url\";\nimport { Icons } from \"../common/icons\";\n\ninterface ForgetPasswordEmailProps {\n resetPasswordHref: string;\n}\n\nexport function ForgetPasswordEmail({ resetPasswordHref }: ForgetPasswordEmailProps) {\n return (\n <Html>\n <Head />\n <Preview>Herstel je wachtwoord</Preview>\n\n <Tailwind>\n <Body className=\"mx-auto my-auto bg-white px-2 font-sans\">\n <Container className=\"mx-auto my-[40px] max-w-[465px] rounded border border-[#eaeaea] border-solid p-[20px]\">\n <Icons.logo className=\"w-8\" />\n\n <Section className=\"my-[15px]\">\n <Heading className=\"mx-0 my-[20px] p-0 font-bold text-[24px] text-black\">\n Herstel uw wachtwoord\n </Heading>\n\n <Text className=\"text-[14px] text-black leading-[24px]\">\n Iemand heeft onlangs een wachtwoordwijziging voor uw account gevraagd. Als u dit\n was, kunt u hier een nieuw wachtwoord instellen:\n </Text>\n\n <Button\n className=\"rounded bg-[#000000] px-5 py-3 text-center font-semibold text-[12px] text-white no-underline\"\n href={resetPasswordHref}\n >\n Reset password\n </Button>\n </Section>\n\n <Section>\n <Text className=\"text-[12px] text-black leading-[20px]\">\n Als u uw wachtwoord niet wilt wijzigen of dit niet heeft gevraagd, negeer en\n verwijder dit bericht gewoon en verwijdert u.\n </Text>\n\n <Text className=\"text-[12px] text-black leading-[20px]\">\n Stuur deze e-mail niet door om uw account veilig te houden.\n </Text>\n </Section>\n </Container>\n </Body>\n </Tailwind>\n </Html>\n );\n}\n\nForgetPasswordEmail.PreviewProps = {\n resetPasswordHref: url(\"/auth/reset-password\"),\n} as ForgetPasswordEmailProps;\n\nexport default ForgetPasswordEmail;\n"],"mappings":";;;;;;AAmBA,SAAgB,oBAAoB,EAAE,qBAA+C;AACnF,QACE,qBAAC;EACC,oBAAC,SAAO;EACR,oBAAC,qBAAQ,0BAA+B;EAExC,oBAAC,sBACC,oBAAC;GAAK,WAAU;aACd,qBAAC;IAAU,WAAU;;KACnB,oBAAC,MAAM,QAAK,WAAU,QAAQ;KAE9B,qBAAC;MAAQ,WAAU;;OACjB,oBAAC;QAAQ,WAAU;kBAAsD;SAE/D;OAEV,oBAAC;QAAK,WAAU;kBAAwC;SAGjD;OAEP,oBAAC;QACC,WAAU;QACV,MAAM;kBACP;SAEQ;;OACD;KAEV,qBAAC,sBACC,oBAAC;MAAK,WAAU;gBAAwC;OAGjD,EAEP,oBAAC;MAAK,WAAU;gBAAwC;OAEjD,IACC;;KACA;IACP,GACE;KACN;;AAIX,oBAAoB,eAAe,EACjC,mBAAmB,IAAI,uBAAuB,EAC/C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"back-button.client.d.mts","names":[],"sources":["../../../src/components/header/back-button.client.tsx"],"mappings":";;;iBAagB,sBAAA,CAAA;EACd,SAAA;EAAA,GACG;AAAA,GACF,KAAA,CAAM,kBAAA,CAAmB,iBAAA,IAAkB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"back-button.client.mjs","names":[],"sources":["../../../src/components/header/back-button.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { useRouter } from \"next/navigation\";\nimport { Icons } from \"@/components/common/icons\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuTrigger,\n} from \"@/components/ui/context-menu.client\";\nimport { cn } from \"@/lib/utils/cn\";\n\nexport function HeaderTopbarBackButton({\n className,\n ...props\n}: React.HtmlHTMLAttributes<HTMLButtonElement>) {\n const router = useRouter();\n\n return (\n <ContextMenu>\n <ContextMenuTrigger asChild>\n <Button\n {...props}\n variant=\"ghost\"\n onClick={() => router.back()}\n className={cn(\n \"h-full w-content rounded-none border-r border-r-border p-0 text-muted-foreground hover:text-foreground\",\n className,\n )}\n >\n <Icons.chevronLeft className=\"opacity-50\" />\n </Button>\n </ContextMenuTrigger>\n\n <ContextMenuContent>\n <ContextMenuItem className=\"flex gap-3\" onClick={() => router.back()}>\n <Icons.moveLeft className=\"w-4\" />\n Terug\n </ContextMenuItem>\n\n <ContextMenuItem className=\"flex gap-3\" onClick={() => router.forward()}>\n <Icons.moveRight className=\"w-4\" />\n Vooruit\n </ContextMenuItem>\n\n <ContextMenuItem className=\"flex gap-3\" onClick={() => router.refresh()}>\n <Icons.refresh className=\"w-3.5\" />\n Verversen\n </ContextMenuItem>\n </ContextMenuContent>\n </ContextMenu>\n );\n}\n"],"mappings":";;;;;;;;;;AAaA,SAAgB,uBAAuB,EACrC,WACA,GAAG,SAC2C;CAC9C,MAAM,SAAS,WAAW;AAE1B,QACE,qBAAC,0BACC,oBAAC;EAAmB;YAClB,oBAAC;GACC,GAAI;GACJ,SAAQ;GACR,eAAe,OAAO,MAAM;GAC5B,WAAW,GACT,0GACA,UACD;aAED,oBAAC,MAAM,eAAY,WAAU,eAAe;IACrC;GACU,EAErB,qBAAC;EACC,qBAAC;GAAgB,WAAU;GAAa,eAAe,OAAO,MAAM;cAClE,oBAAC,MAAM,YAAS,WAAU,QAAQ;IAElB;EAElB,qBAAC;GAAgB,WAAU;GAAa,eAAe,OAAO,SAAS;cACrE,oBAAC,MAAM,aAAU,WAAU,QAAQ;IAEnB;EAElB,qBAAC;GAAgB,WAAU;GAAa,eAAe,OAAO,SAAS;cACrE,oBAAC,MAAM,WAAQ,WAAU,UAAU;IAEnB;KACC,IACT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bottom-bar.client.d.mts","names":[],"sources":["../../../src/components/header/bottom-bar.client.tsx"],"mappings":";;;;;;;;KAYY,cAAA;EACV,QAAA,EAAU,KAAA,CAAM,SAAA;AAAA;AAAA,iBAGF,SAAA,CAAA;EAAY;AAAA,GAAY,cAAA,GAAc,kBAAA,CAAA,GAAA,CAAA,OAAA;;;;KAW1C,aAAA,GAAgB,IAAA,CAAK,IAAA;AAAA,KAErB,mBAAA,GAAsB,KAAA,CAAM,cAAA,CAAe,WAAA;EACrD,KAAA,EAAO,aAAA;AAAA;AAAA,iBAGO,cAAA,CAAA;EAAiB,KAAA;EAAO,SAAA;EAAA,GAAc;AAAA,GAAS,mBAAA,GAAmB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bottom-bar.client.mjs","names":[],"sources":["../../../src/components/header/bottom-bar.client.tsx"],"sourcesContent":["\"use client\";\n\nimport Link from \"next/link\";\nimport { useSelectedLayoutSegment } from \"next/navigation\";\nimport type React from \"react\";\nimport { cn } from \"@/lib/utils/cn\";\nimport { Allowed } from \"@/modules/auth/components/allowed.client\";\nimport type { Path } from \"@/modules/config/paths/types\";\n\n/**\n * Bottombar component\n */\nexport type BottomBarProps = {\n children: React.ReactNode;\n};\n\nexport function BottomBar({ children }: BottomBarProps) {\n return (\n <nav className=\"flex h-[var(--header-bottom-bar-height)] items-center justify-between overflow-x-auto border-b\">\n {children}\n </nav>\n );\n}\n\n/**\n * Bottombar link component\n */\nexport type BottomBarLink = Omit<Path, \"icon\" | \"badge\">;\n\nexport type BottomBarLinksProps = React.HTMLAttributes<HTMLElement> & {\n paths: BottomBarLink[];\n};\n\nexport function BottomBarLinks({ paths, className, ...props }: BottomBarLinksProps) {\n const currentSegment = useSelectedLayoutSegment();\n\n return (\n <ul\n {...props}\n className={cn(\"flex flex-row items-center gap-6 px-content font-medium text-sm\", className)}\n >\n {paths.map(({ href, name, segment, permission }) => {\n const children = (\n <Link\n key={href}\n href={href}\n className={cn(\n \"w-fit text-nowrap break-keep text-muted-foreground transition-colors hover:text-foreground\",\n currentSegment === segment && \"text-primary\",\n )}\n >\n {name}\n </Link>\n );\n\n if (permission) {\n return (\n <Allowed key={href} permission={permission}>\n {children}\n </Allowed>\n );\n }\n\n return children;\n })}\n </ul>\n );\n}\n"],"mappings":";;;;;;;;;AAgBA,SAAgB,UAAU,EAAE,YAA4B;AACtD,QACE,oBAAC;EAAI,WAAU;EACZ;GACG;;AAaV,SAAgB,eAAe,EAAE,OAAO,WAAW,GAAG,SAA8B;CAClF,MAAM,iBAAiB,0BAA0B;AAEjD,QACE,oBAAC;EACC,GAAI;EACJ,WAAW,GAAG,mEAAmE,UAAU;YAE1F,MAAM,KAAK,EAAE,MAAM,MAAM,SAAS,iBAAiB;GAClD,MAAM,WACJ,oBAAC;IAEO;IACN,WAAW,GACT,8FACA,mBAAmB,WAAW,eAC/B;cAEA;MAPI,KAQA;AAGT,OAAI,WACF,QACE,oBAAC;IAA+B;IAC7B;MADW,KAEJ;AAId,UAAO;IACP;GACC"}
|