includio-cms 0.0.2
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/LICENSE +0 -0
- package/README.md +58 -0
- package/dist/admin/api/upload.d.ts +2 -0
- package/dist/admin/api/upload.js +12 -0
- package/dist/admin/client/admin/admin-after-login-layout.svelte +33 -0
- package/dist/admin/client/admin/admin-after-login-layout.svelte.d.ts +7 -0
- package/dist/admin/client/admin/admin-layout.svelte +13 -0
- package/dist/admin/client/admin/admin-layout.svelte.d.ts +8 -0
- package/dist/admin/client/admin/dashboard-page.svelte +7 -0
- package/dist/admin/client/admin/dashboard-page.svelte.d.ts +18 -0
- package/dist/admin/client/collection/collection-page.svelte +53 -0
- package/dist/admin/client/collection/collection-page.svelte.d.ts +3 -0
- package/dist/admin/client/collection/columns.d.ts +10 -0
- package/dist/admin/client/collection/columns.js +32 -0
- package/dist/admin/client/collection/data-table.svelte +56 -0
- package/dist/admin/client/collection/data-table.svelte.d.ts +29 -0
- package/dist/admin/client/collection/entry-link.svelte +12 -0
- package/dist/admin/client/collection/entry-link.svelte.d.ts +7 -0
- package/dist/admin/client/entry/entry-page.svelte +14 -0
- package/dist/admin/client/entry/entry-page.svelte.d.ts +3 -0
- package/dist/admin/client/entry/entry.svelte +168 -0
- package/dist/admin/client/entry/entry.svelte.d.ts +7 -0
- package/dist/admin/client/index.d.ts +7 -0
- package/dist/admin/client/index.js +7 -0
- package/dist/admin/client/login/login-form.svelte +93 -0
- package/dist/admin/client/login/login-form.svelte.d.ts +18 -0
- package/dist/admin/client/login/login-page.svelte +25 -0
- package/dist/admin/client/login/login-page.svelte.d.ts +19 -0
- package/dist/admin/client/login/schema.d.ts +11 -0
- package/dist/admin/client/login/schema.js +5 -0
- package/dist/admin/client/media/media-page.svelte +12 -0
- package/dist/admin/client/media/media-page.svelte.d.ts +18 -0
- package/dist/admin/components/fields/array-field.svelte +140 -0
- package/dist/admin/components/fields/array-field.svelte.d.ts +30 -0
- package/dist/admin/components/fields/boolean-field.svelte +52 -0
- package/dist/admin/components/fields/boolean-field.svelte.d.ts +30 -0
- package/dist/admin/components/fields/field-renderer.svelte +89 -0
- package/dist/admin/components/fields/field-renderer.svelte.d.ts +10 -0
- package/dist/admin/components/fields/fields-form.svelte +78 -0
- package/dist/admin/components/fields/fields-form.svelte.d.ts +14 -0
- package/dist/admin/components/fields/file-field.svelte +68 -0
- package/dist/admin/components/fields/file-field.svelte.d.ts +30 -0
- package/dist/admin/components/fields/image-field.svelte +68 -0
- package/dist/admin/components/fields/image-field.svelte.d.ts +30 -0
- package/dist/admin/components/fields/object-field.svelte +60 -0
- package/dist/admin/components/fields/object-field.svelte.d.ts +30 -0
- package/dist/admin/components/fields/radio-field.svelte +47 -0
- package/dist/admin/components/fields/radio-field.svelte.d.ts +30 -0
- package/dist/admin/components/fields/richtext-field.svelte +26 -0
- package/dist/admin/components/fields/richtext-field.svelte.d.ts +30 -0
- package/dist/admin/components/fields/slug-field.svelte +74 -0
- package/dist/admin/components/fields/slug-field.svelte.d.ts +30 -0
- package/dist/admin/components/fields/text-field-wrapper.svelte +80 -0
- package/dist/admin/components/fields/text-field-wrapper.svelte.d.ts +30 -0
- package/dist/admin/components/fields/text-field.svelte +31 -0
- package/dist/admin/components/fields/text-field.svelte.d.ts +30 -0
- package/dist/admin/components/layout/app-sidebar.svelte +134 -0
- package/dist/admin/components/layout/app-sidebar.svelte.d.ts +9 -0
- package/dist/admin/components/layout/nav-breadcrumbs.svelte +23 -0
- package/dist/admin/components/layout/nav-breadcrumbs.svelte.d.ts +18 -0
- package/dist/admin/components/layout/nav-collections.svelte +67 -0
- package/dist/admin/components/layout/nav-collections.svelte.d.ts +9 -0
- package/dist/admin/components/layout/nav-main.svelte +49 -0
- package/dist/admin/components/layout/nav-main.svelte.d.ts +11 -0
- package/dist/admin/components/layout/nav-secondary.svelte +32 -0
- package/dist/admin/components/layout/nav-secondary.svelte.d.ts +14 -0
- package/dist/admin/components/layout/nav-singletons.svelte +24 -0
- package/dist/admin/components/layout/nav-singletons.svelte.d.ts +9 -0
- package/dist/admin/components/layout/nav-user.svelte +95 -0
- package/dist/admin/components/layout/nav-user.svelte.d.ts +7 -0
- package/dist/admin/components/layout/site-header.svelte +30 -0
- package/dist/admin/components/layout/site-header.svelte.d.ts +18 -0
- package/dist/admin/components/media/alt-input.svelte +32 -0
- package/dist/admin/components/media/alt-input.svelte.d.ts +7 -0
- package/dist/admin/components/media/create-folder.svelte +32 -0
- package/dist/admin/components/media/create-folder.svelte.d.ts +6 -0
- package/dist/admin/components/media/file-preview.svelte +43 -0
- package/dist/admin/components/media/file-preview.svelte.d.ts +6 -0
- package/dist/admin/components/media/file-upload.svelte +37 -0
- package/dist/admin/components/media/file-upload.svelte.d.ts +7 -0
- package/dist/admin/components/media/folder-tree.svelte +24 -0
- package/dist/admin/components/media/folder-tree.svelte.d.ts +7 -0
- package/dist/admin/components/media/media-library.svelte +121 -0
- package/dist/admin/components/media/media-library.svelte.d.ts +8 -0
- package/dist/admin/components/media/schema.d.ts +11 -0
- package/dist/admin/components/media/schema.js +5 -0
- package/dist/admin/components/media/tree-node.svelte +40 -0
- package/dist/admin/components/media/tree-node.svelte.d.ts +12 -0
- package/dist/admin/components/tiptap.svelte +101 -0
- package/dist/admin/components/tiptap.svelte.d.ts +6 -0
- package/dist/admin/context/remotes.d.ts +3 -0
- package/dist/admin/context/remotes.js +13 -0
- package/dist/admin/imports/slugify.d.ts +3 -0
- package/dist/admin/imports/slugify.js +2 -0
- package/dist/admin/index.d.ts +1 -0
- package/dist/admin/index.js +1 -0
- package/dist/admin/remote/collection.remote.d.ts +2 -0
- package/dist/admin/remote/collection.remote.js +9 -0
- package/dist/admin/remote/entry.remote.d.ts +15 -0
- package/dist/admin/remote/entry.remote.js +33 -0
- package/dist/admin/remote/index.d.ts +7 -0
- package/dist/admin/remote/index.js +7 -0
- package/dist/admin/remote/languages.remote.d.ts +1 -0
- package/dist/admin/remote/languages.remote.js +5 -0
- package/dist/admin/remote/media.remote.d.ts +17 -0
- package/dist/admin/remote/media.remote.js +36 -0
- package/dist/admin/remote/record.remote.d.ts +1 -0
- package/dist/admin/remote/record.remote.js +6 -0
- package/dist/admin/remote/single.remote.d.ts +1 -0
- package/dist/admin/remote/single.remote.js +5 -0
- package/dist/admin/remote/user.remote.d.ts +6 -0
- package/dist/admin/remote/user.remote.js +22 -0
- package/dist/admin/state/breadcrumbs.svelte.d.ts +6 -0
- package/dist/admin/state/breadcrumbs.svelte.js +3 -0
- package/dist/admin/state/content-language.svelte.d.ts +2 -0
- package/dist/admin/state/content-language.svelte.js +12 -0
- package/dist/admin/styles/admin.css +123 -0
- package/dist/admin/types.d.ts +10 -0
- package/dist/admin/types.js +1 -0
- package/dist/admin/utils/is-collection.d.ts +3 -0
- package/dist/admin/utils/is-collection.js +3 -0
- package/dist/admin/utils/objectPath.d.ts +3 -0
- package/dist/admin/utils/objectPath.js +20 -0
- package/dist/auth-lucia/index.d.ts +4 -0
- package/dist/auth-lucia/index.js +98 -0
- package/dist/auth-lucia/password.d.ts +2 -0
- package/dist/auth-lucia/password.js +19 -0
- package/dist/auth-lucia/providers/google.d.ts +3 -0
- package/dist/auth-lucia/providers/google.js +3 -0
- package/dist/auth-lucia/types.d.ts +5 -0
- package/dist/auth-lucia/types.js +1 -0
- package/dist/components/ui/accordion/accordion-content.svelte +22 -0
- package/dist/components/ui/accordion/accordion-content.svelte.d.ts +4 -0
- package/dist/components/ui/accordion/accordion-item.svelte +17 -0
- package/dist/components/ui/accordion/accordion-item.svelte.d.ts +4 -0
- package/dist/components/ui/accordion/accordion-trigger.svelte +32 -0
- package/dist/components/ui/accordion/accordion-trigger.svelte.d.ts +8 -0
- package/dist/components/ui/accordion/accordion.svelte +16 -0
- package/dist/components/ui/accordion/accordion.svelte.d.ts +4 -0
- package/dist/components/ui/accordion/index.d.ts +5 -0
- package/dist/components/ui/accordion/index.js +7 -0
- package/dist/components/ui/avatar/avatar-fallback.svelte +17 -0
- package/dist/components/ui/avatar/avatar-fallback.svelte.d.ts +4 -0
- package/dist/components/ui/avatar/avatar-image.svelte +17 -0
- package/dist/components/ui/avatar/avatar-image.svelte.d.ts +4 -0
- package/dist/components/ui/avatar/avatar.svelte +17 -0
- package/dist/components/ui/avatar/avatar.svelte.d.ts +4 -0
- package/dist/components/ui/avatar/index.d.ts +4 -0
- package/dist/components/ui/avatar/index.js +6 -0
- package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +23 -0
- package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/breadcrumb-item.svelte +20 -0
- package/dist/components/ui/breadcrumb/breadcrumb-item.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/breadcrumb-link.svelte +31 -0
- package/dist/components/ui/breadcrumb/breadcrumb-link.svelte.d.ts +11 -0
- package/dist/components/ui/breadcrumb/breadcrumb-list.svelte +23 -0
- package/dist/components/ui/breadcrumb/breadcrumb-list.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/breadcrumb-page.svelte +23 -0
- package/dist/components/ui/breadcrumb/breadcrumb-page.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte +27 -0
- package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/breadcrumb.svelte +21 -0
- package/dist/components/ui/breadcrumb/breadcrumb.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/index.d.ts +8 -0
- package/dist/components/ui/breadcrumb/index.js +10 -0
- package/dist/components/ui/button/button.svelte +80 -0
- package/dist/components/ui/button/button.svelte.d.ts +58 -0
- package/dist/components/ui/button/index.d.ts +2 -0
- package/dist/components/ui/button/index.js +4 -0
- package/dist/components/ui/card/card-action.svelte +20 -0
- package/dist/components/ui/card/card-action.svelte.d.ts +5 -0
- package/dist/components/ui/card/card-content.svelte +15 -0
- package/dist/components/ui/card/card-content.svelte.d.ts +5 -0
- package/dist/components/ui/card/card-description.svelte +20 -0
- package/dist/components/ui/card/card-description.svelte.d.ts +5 -0
- package/dist/components/ui/card/card-footer.svelte +20 -0
- package/dist/components/ui/card/card-footer.svelte.d.ts +5 -0
- package/dist/components/ui/card/card-header.svelte +23 -0
- package/dist/components/ui/card/card-header.svelte.d.ts +5 -0
- package/dist/components/ui/card/card-title.svelte +20 -0
- package/dist/components/ui/card/card-title.svelte.d.ts +5 -0
- package/dist/components/ui/card/card.svelte +23 -0
- package/dist/components/ui/card/card.svelte.d.ts +5 -0
- package/dist/components/ui/card/index.d.ts +8 -0
- package/dist/components/ui/card/index.js +10 -0
- package/dist/components/ui/checkbox/checkbox.svelte +36 -0
- package/dist/components/ui/checkbox/checkbox.svelte.d.ts +4 -0
- package/dist/components/ui/checkbox/index.d.ts +2 -0
- package/dist/components/ui/checkbox/index.js +4 -0
- package/dist/components/ui/data-table/data-table.svelte.d.ts +40 -0
- package/dist/components/ui/data-table/data-table.svelte.js +110 -0
- package/dist/components/ui/data-table/flex-render.svelte +36 -0
- package/dist/components/ui/data-table/flex-render.svelte.d.ts +30 -0
- package/dist/components/ui/data-table/index.d.ts +3 -0
- package/dist/components/ui/data-table/index.js +3 -0
- package/dist/components/ui/data-table/render-helpers.d.ts +90 -0
- package/dist/components/ui/data-table/render-helpers.js +99 -0
- package/dist/components/ui/dialog/dialog-close.svelte +7 -0
- package/dist/components/ui/dialog/dialog-close.svelte.d.ts +4 -0
- package/dist/components/ui/dialog/dialog-content.svelte +43 -0
- package/dist/components/ui/dialog/dialog-content.svelte.d.ts +11 -0
- package/dist/components/ui/dialog/dialog-description.svelte +17 -0
- package/dist/components/ui/dialog/dialog-description.svelte.d.ts +4 -0
- package/dist/components/ui/dialog/dialog-footer.svelte +20 -0
- package/dist/components/ui/dialog/dialog-footer.svelte.d.ts +5 -0
- package/dist/components/ui/dialog/dialog-header.svelte +20 -0
- package/dist/components/ui/dialog/dialog-header.svelte.d.ts +5 -0
- package/dist/components/ui/dialog/dialog-overlay.svelte +20 -0
- package/dist/components/ui/dialog/dialog-overlay.svelte.d.ts +4 -0
- package/dist/components/ui/dialog/dialog-title.svelte +17 -0
- package/dist/components/ui/dialog/dialog-title.svelte.d.ts +4 -0
- package/dist/components/ui/dialog/dialog-trigger.svelte +7 -0
- package/dist/components/ui/dialog/dialog-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/dialog/index.d.ts +11 -0
- package/dist/components/ui/dialog/index.js +14 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +41 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +9 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +27 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte.d.ts +7 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +22 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts +8 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte +7 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte.d.ts +4 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +27 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts +8 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +24 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte.d.ts +8 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +16 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts +4 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +31 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +4 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +17 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte.d.ts +4 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +20 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts +5 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +20 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +4 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +29 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +7 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +7 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/dropdown-menu/index.js +17 -0
- package/dist/components/ui/form/form-button.svelte +7 -0
- package/dist/components/ui/form/form-button.svelte.d.ts +4 -0
- package/dist/components/ui/form/form-description.svelte +17 -0
- package/dist/components/ui/form/form-description.svelte.d.ts +4 -0
- package/dist/components/ui/form/form-element-field.svelte +24 -0
- package/dist/components/ui/form/form-element-field.svelte.d.ts +28 -0
- package/dist/components/ui/form/form-field-errors.svelte +30 -0
- package/dist/components/ui/form/form-field-errors.svelte.d.ts +8 -0
- package/dist/components/ui/form/form-field.svelte +29 -0
- package/dist/components/ui/form/form-field.svelte.d.ts +28 -0
- package/dist/components/ui/form/form-fieldset.svelte +15 -0
- package/dist/components/ui/form/form-fieldset.svelte.d.ts +27 -0
- package/dist/components/ui/form/form-label.svelte +24 -0
- package/dist/components/ui/form/form-label.svelte.d.ts +4 -0
- package/dist/components/ui/form/form-legend.svelte +16 -0
- package/dist/components/ui/form/form-legend.svelte.d.ts +4 -0
- package/dist/components/ui/form/index.d.ts +11 -0
- package/dist/components/ui/form/index.js +13 -0
- package/dist/components/ui/input/index.d.ts +2 -0
- package/dist/components/ui/input/index.js +4 -0
- package/dist/components/ui/input/input.svelte +51 -0
- package/dist/components/ui/input/input.svelte.d.ts +13 -0
- package/dist/components/ui/label/index.d.ts +2 -0
- package/dist/components/ui/label/index.js +4 -0
- package/dist/components/ui/label/label.svelte +20 -0
- package/dist/components/ui/label/label.svelte.d.ts +4 -0
- package/dist/components/ui/radio-group/index.d.ts +3 -0
- package/dist/components/ui/radio-group/index.js +5 -0
- package/dist/components/ui/radio-group/radio-group-item.svelte +31 -0
- package/dist/components/ui/radio-group/radio-group-item.svelte.d.ts +4 -0
- package/dist/components/ui/radio-group/radio-group.svelte +19 -0
- package/dist/components/ui/radio-group/radio-group.svelte.d.ts +4 -0
- package/dist/components/ui/separator/index.d.ts +2 -0
- package/dist/components/ui/separator/index.js +4 -0
- package/dist/components/ui/separator/separator.svelte +20 -0
- package/dist/components/ui/separator/separator.svelte.d.ts +4 -0
- package/dist/components/ui/sheet/index.d.ts +11 -0
- package/dist/components/ui/sheet/index.js +14 -0
- package/dist/components/ui/sheet/sheet-close.svelte +7 -0
- package/dist/components/ui/sheet/sheet-close.svelte.d.ts +4 -0
- package/dist/components/ui/sheet/sheet-content.svelte +58 -0
- package/dist/components/ui/sheet/sheet-content.svelte.d.ts +35 -0
- package/dist/components/ui/sheet/sheet-description.svelte +17 -0
- package/dist/components/ui/sheet/sheet-description.svelte.d.ts +4 -0
- package/dist/components/ui/sheet/sheet-footer.svelte +20 -0
- package/dist/components/ui/sheet/sheet-footer.svelte.d.ts +5 -0
- package/dist/components/ui/sheet/sheet-header.svelte +20 -0
- package/dist/components/ui/sheet/sheet-header.svelte.d.ts +5 -0
- package/dist/components/ui/sheet/sheet-overlay.svelte +20 -0
- package/dist/components/ui/sheet/sheet-overlay.svelte.d.ts +4 -0
- package/dist/components/ui/sheet/sheet-title.svelte +17 -0
- package/dist/components/ui/sheet/sheet-title.svelte.d.ts +4 -0
- package/dist/components/ui/sheet/sheet-trigger.svelte +7 -0
- package/dist/components/ui/sheet/sheet-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/sidebar/constants.d.ts +6 -0
- package/dist/components/ui/sidebar/constants.js +6 -0
- package/dist/components/ui/sidebar/context.svelte.d.ts +42 -0
- package/dist/components/ui/sidebar/context.svelte.js +54 -0
- package/dist/components/ui/sidebar/index.d.ts +25 -0
- package/dist/components/ui/sidebar/index.js +27 -0
- package/dist/components/ui/sidebar/sidebar-content.svelte +24 -0
- package/dist/components/ui/sidebar/sidebar-content.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-footer.svelte +21 -0
- package/dist/components/ui/sidebar/sidebar-footer.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-group-action.svelte +36 -0
- package/dist/components/ui/sidebar/sidebar-group-action.svelte.d.ts +11 -0
- package/dist/components/ui/sidebar/sidebar-group-content.svelte +21 -0
- package/dist/components/ui/sidebar/sidebar-group-content.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-group-label.svelte +34 -0
- package/dist/components/ui/sidebar/sidebar-group-label.svelte.d.ts +11 -0
- package/dist/components/ui/sidebar/sidebar-group.svelte +21 -0
- package/dist/components/ui/sidebar/sidebar-group.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-header.svelte +21 -0
- package/dist/components/ui/sidebar/sidebar-header.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-input.svelte +21 -0
- package/dist/components/ui/sidebar/sidebar-input.svelte.d.ts +11 -0
- package/dist/components/ui/sidebar/sidebar-inset.svelte +24 -0
- package/dist/components/ui/sidebar/sidebar-inset.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-menu-action.svelte +43 -0
- package/dist/components/ui/sidebar/sidebar-menu-action.svelte.d.ts +12 -0
- package/dist/components/ui/sidebar/sidebar-menu-badge.svelte +29 -0
- package/dist/components/ui/sidebar/sidebar-menu-badge.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-menu-button.svelte +103 -0
- package/dist/components/ui/sidebar/sidebar-menu-button.svelte.d.ts +51 -0
- package/dist/components/ui/sidebar/sidebar-menu-item.svelte +21 -0
- package/dist/components/ui/sidebar/sidebar-menu-item.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte +36 -0
- package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte.d.ts +8 -0
- package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +43 -0
- package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte.d.ts +13 -0
- package/dist/components/ui/sidebar/sidebar-menu-sub-item.svelte +21 -0
- package/dist/components/ui/sidebar/sidebar-menu-sub-item.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-menu-sub.svelte +25 -0
- package/dist/components/ui/sidebar/sidebar-menu-sub.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-menu.svelte +21 -0
- package/dist/components/ui/sidebar/sidebar-menu.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-provider.svelte +53 -0
- package/dist/components/ui/sidebar/sidebar-provider.svelte.d.ts +9 -0
- package/dist/components/ui/sidebar/sidebar-rail.svelte +36 -0
- package/dist/components/ui/sidebar/sidebar-rail.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-separator.svelte +19 -0
- package/dist/components/ui/sidebar/sidebar-separator.svelte.d.ts +13 -0
- package/dist/components/ui/sidebar/sidebar-trigger.svelte +35 -0
- package/dist/components/ui/sidebar/sidebar-trigger.svelte.d.ts +8 -0
- package/dist/components/ui/sidebar/sidebar.svelte +104 -0
- package/dist/components/ui/sidebar/sidebar.svelte.d.ts +10 -0
- package/dist/components/ui/skeleton/index.d.ts +2 -0
- package/dist/components/ui/skeleton/index.js +4 -0
- package/dist/components/ui/skeleton/skeleton.svelte +17 -0
- package/dist/components/ui/skeleton/skeleton.svelte.d.ts +5 -0
- package/dist/components/ui/sonner/index.d.ts +1 -0
- package/dist/components/ui/sonner/index.js +1 -0
- package/dist/components/ui/sonner/sonner.svelte +13 -0
- package/dist/components/ui/sonner/sonner.svelte.d.ts +4 -0
- package/dist/components/ui/table/index.d.ts +9 -0
- package/dist/components/ui/table/index.js +11 -0
- package/dist/components/ui/table/table-body.svelte +20 -0
- package/dist/components/ui/table/table-body.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-caption.svelte +20 -0
- package/dist/components/ui/table/table-caption.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-cell.svelte +20 -0
- package/dist/components/ui/table/table-cell.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-footer.svelte +20 -0
- package/dist/components/ui/table/table-footer.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-head.svelte +23 -0
- package/dist/components/ui/table/table-head.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-header.svelte +20 -0
- package/dist/components/ui/table/table-header.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-row.svelte +23 -0
- package/dist/components/ui/table/table-row.svelte.d.ts +5 -0
- package/dist/components/ui/table/table.svelte +22 -0
- package/dist/components/ui/table/table.svelte.d.ts +5 -0
- package/dist/components/ui/tabs/index.d.ts +5 -0
- package/dist/components/ui/tabs/index.js +7 -0
- package/dist/components/ui/tabs/tabs-content.svelte +17 -0
- package/dist/components/ui/tabs/tabs-content.svelte.d.ts +4 -0
- package/dist/components/ui/tabs/tabs-list.svelte +20 -0
- package/dist/components/ui/tabs/tabs-list.svelte.d.ts +4 -0
- package/dist/components/ui/tabs/tabs-trigger.svelte +20 -0
- package/dist/components/ui/tabs/tabs-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/tabs/tabs.svelte +19 -0
- package/dist/components/ui/tabs/tabs.svelte.d.ts +4 -0
- package/dist/components/ui/textarea/index.d.ts +2 -0
- package/dist/components/ui/textarea/index.js +4 -0
- package/dist/components/ui/textarea/textarea.svelte +22 -0
- package/dist/components/ui/textarea/textarea.svelte.d.ts +5 -0
- package/dist/components/ui/toggle/index.d.ts +3 -0
- package/dist/components/ui/toggle/index.js +5 -0
- package/dist/components/ui/toggle/toggle.svelte +52 -0
- package/dist/components/ui/toggle/toggle.svelte.d.ts +43 -0
- package/dist/components/ui/tooltip/index.d.ts +7 -0
- package/dist/components/ui/tooltip/index.js +9 -0
- package/dist/components/ui/tooltip/tooltip-content.svelte +47 -0
- package/dist/components/ui/tooltip/tooltip-content.svelte.d.ts +7 -0
- package/dist/components/ui/tooltip/tooltip-trigger.svelte +7 -0
- package/dist/components/ui/tooltip/tooltip-trigger.svelte.d.ts +4 -0
- package/dist/core/auth.d.ts +69 -0
- package/dist/core/auth.js +80 -0
- package/dist/core/cms.d.ts +20 -0
- package/dist/core/cms.js +51 -0
- package/dist/core/fields/fieldSchemaToTs.d.ts +8 -0
- package/dist/core/fields/fieldSchemaToTs.js +89 -0
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +2 -0
- package/dist/core/server/entries/operations/create.d.ts +4 -0
- package/dist/core/server/entries/operations/create.js +32 -0
- package/dist/core/server/entries/operations/delete.d.ts +1 -0
- package/dist/core/server/entries/operations/delete.js +4 -0
- package/dist/core/server/entries/operations/get.d.ts +11 -0
- package/dist/core/server/entries/operations/get.js +111 -0
- package/dist/core/server/entries/operations/update.d.ts +2 -0
- package/dist/core/server/entries/operations/update.js +23 -0
- package/dist/core/server/entries/utils/getEntryTranslation.d.ts +2 -0
- package/dist/core/server/entries/utils/getEntryTranslation.js +24 -0
- package/dist/core/server/fields/resolveImageFields.d.ts +3 -0
- package/dist/core/server/fields/resolveImageFields.js +97 -0
- package/dist/core/server/generator/fieldSchemaToString.d.ts +3 -0
- package/dist/core/server/generator/fieldSchemaToString.js +86 -0
- package/dist/core/server/generator/fields.d.ts +2 -0
- package/dist/core/server/generator/fields.js +49 -0
- package/dist/core/server/generator/generator.d.ts +2 -0
- package/dist/core/server/generator/generator.js +108 -0
- package/dist/core/server/index.d.ts +1 -0
- package/dist/core/server/index.js +1 -0
- package/dist/core/server/media/operations/createMediaFolder.d.ts +2 -0
- package/dist/core/server/media/operations/createMediaFolder.js +7 -0
- package/dist/core/server/media/operations/getFiles.d.ts +4 -0
- package/dist/core/server/media/operations/getFiles.js +17 -0
- package/dist/core/server/media/operations/getFolders.d.ts +2 -0
- package/dist/core/server/media/operations/getFolders.js +4 -0
- package/dist/core/server/media/operations/updateFile.d.ts +2 -0
- package/dist/core/server/media/operations/updateFile.js +7 -0
- package/dist/core/server/media/operations/uploadFile.d.ts +2 -0
- package/dist/core/server/media/operations/uploadFile.js +10 -0
- package/dist/core/server/sessions/operations/create.d.ts +2 -0
- package/dist/core/server/sessions/operations/create.js +4 -0
- package/dist/core/server/users/operations/create.d.ts +1 -0
- package/dist/core/server/users/operations/create.js +1 -0
- package/dist/core/server/users/operations/get.d.ts +4 -0
- package/dist/core/server/users/operations/get.js +13 -0
- package/dist/core/server/users/operations/update.d.ts +2 -0
- package/dist/core/server/users/operations/update.js +4 -0
- package/dist/db-postgres/index.d.ts +3 -0
- package/dist/db-postgres/index.js +249 -0
- package/dist/db-postgres/schema/entry.d.ts +177 -0
- package/dist/db-postgres/schema/entry.js +13 -0
- package/dist/db-postgres/schema/index.d.ts +5 -0
- package/dist/db-postgres/schema/index.js +5 -0
- package/dist/db-postgres/schema/mediaFile.d.ts +247 -0
- package/dist/db-postgres/schema/mediaFile.js +20 -0
- package/dist/db-postgres/schema/mediaFolder.d.ts +75 -0
- package/dist/db-postgres/schema/mediaFolder.js +7 -0
- package/dist/db-postgres/schema/session.d.ts +58 -0
- package/dist/db-postgres/schema/session.js +9 -0
- package/dist/db-postgres/schema/user.d.ts +109 -0
- package/dist/db-postgres/schema/user.js +9 -0
- package/dist/db-postgres/types.d.ts +3 -0
- package/dist/db-postgres/types.js +1 -0
- package/dist/files-local/index.d.ts +3 -0
- package/dist/files-local/index.js +138 -0
- package/dist/files-local/types.d.ts +3 -0
- package/dist/files-local/types.js +1 -0
- package/dist/hooks/is-mobile.svelte.d.ts +4 -0
- package/dist/hooks/is-mobile.svelte.js +7 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +3 -0
- package/dist/sveltekit/components/image.svelte +19 -0
- package/dist/sveltekit/components/image.svelte.d.ts +8 -0
- package/dist/sveltekit/config.d.ts +8 -0
- package/dist/sveltekit/config.js +12 -0
- package/dist/sveltekit/index.d.ts +2 -0
- package/dist/sveltekit/index.js +2 -0
- package/dist/sveltekit/server/handle.d.ts +3 -0
- package/dist/sveltekit/server/handle.js +36 -0
- package/dist/sveltekit/server/index.d.ts +2 -0
- package/dist/sveltekit/server/index.js +2 -0
- package/dist/types/adapters/auth.d.ts +45 -0
- package/dist/types/adapters/auth.js +1 -0
- package/dist/types/adapters/files.d.ts +5 -0
- package/dist/types/adapters/files.js +1 -0
- package/dist/types/adapters.d.ts +109 -0
- package/dist/types/adapters.js +1 -0
- package/dist/types/cms.d.ts +24 -0
- package/dist/types/cms.js +1 -0
- package/dist/types/collections.d.ts +11 -0
- package/dist/types/collections.js +1 -0
- package/dist/types/config.d.ts +6 -0
- package/dist/types/config.js +1 -0
- package/dist/types/entries.d.ts +22 -0
- package/dist/types/entries.js +1 -0
- package/dist/types/errors.d.ts +8 -0
- package/dist/types/errors.js +1 -0
- package/dist/types/fields.d.ts +120 -0
- package/dist/types/fields.js +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +2 -0
- package/dist/types/languages.d.ts +1 -0
- package/dist/types/languages.js +1 -0
- package/dist/types/media.d.ts +36 -0
- package/dist/types/media.js +1 -0
- package/dist/types/plugins.d.ts +12 -0
- package/dist/types/plugins.js +1 -0
- package/dist/types/sessions.d.ts +5 -0
- package/dist/types/sessions.js +1 -0
- package/dist/types/singles.d.ts +12 -0
- package/dist/types/singles.js +1 -0
- package/dist/types/users.d.ts +8 -0
- package/dist/types/users.js +1 -0
- package/dist/utils.d.ts +12 -0
- package/dist/utils.js +5 -0
- package/package.json +198 -0
package/LICENSE
ADDED
|
File without changes
|
package/README.md
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Svelte library
|
|
2
|
+
|
|
3
|
+
Everything you need to build a Svelte library, powered by [`sv`](https://npmjs.com/package/sv).
|
|
4
|
+
|
|
5
|
+
Read more about creating a library [in the docs](https://svelte.dev/docs/kit/packaging).
|
|
6
|
+
|
|
7
|
+
## Creating a project
|
|
8
|
+
|
|
9
|
+
If you're seeing this, you've probably already done this step. Congrats!
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# create a new project in the current directory
|
|
13
|
+
npx sv create
|
|
14
|
+
|
|
15
|
+
# create a new project in my-app
|
|
16
|
+
npx sv create my-app
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Developing
|
|
20
|
+
|
|
21
|
+
Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm run dev
|
|
25
|
+
|
|
26
|
+
# or start the server and open the app in a new browser tab
|
|
27
|
+
npm run dev -- --open
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Everything inside `src/lib` is part of your library, everything inside `src/routes` can be used as a showcase or preview app.
|
|
31
|
+
|
|
32
|
+
## Building
|
|
33
|
+
|
|
34
|
+
To build your library:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npm run package
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
To create a production version of your showcase app:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm run build
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
You can preview the production build with `npm run preview`.
|
|
47
|
+
|
|
48
|
+
> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment.
|
|
49
|
+
|
|
50
|
+
## Publishing
|
|
51
|
+
|
|
52
|
+
Go into the `package.json` and give your package the desired name through the `"name"` option. Also consider adding a `"license"` field and point it to a `LICENSE` file which you can create from a template (one popular option is the [MIT license](https://opensource.org/license/mit/)).
|
|
53
|
+
|
|
54
|
+
To publish your library to [npm](https://www.npmjs.com):
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
npm publish
|
|
58
|
+
```
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { uploadFile } from '../../core/server/media/operations/uploadFile.js';
|
|
2
|
+
import { json } from '@sveltejs/kit';
|
|
3
|
+
export const POST = async ({ request }) => {
|
|
4
|
+
const form = await request.formData();
|
|
5
|
+
const file = form.get('file');
|
|
6
|
+
const folderId = form.get('folderId');
|
|
7
|
+
if (!file || file.size === 0) {
|
|
8
|
+
return new Response('No file', { status: 400 });
|
|
9
|
+
}
|
|
10
|
+
const dbFile = await uploadFile(file, folderId);
|
|
11
|
+
return json(dbFile);
|
|
12
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import * as Sidebar from '../../../components/ui/sidebar/index.js';
|
|
3
|
+
import AppSidebar from '../../components/layout/app-sidebar.svelte';
|
|
4
|
+
import type { Snippet } from 'svelte';
|
|
5
|
+
import SiteHeader from '../../components/layout/site-header.svelte';
|
|
6
|
+
import { getRemotes } from '../../context/remotes.js';
|
|
7
|
+
import { setContentLanguage } from '../../state/content-language.svelte.js';
|
|
8
|
+
|
|
9
|
+
let { children }: { children: Snippet } = $props();
|
|
10
|
+
|
|
11
|
+
const remotes = getRemotes();
|
|
12
|
+
|
|
13
|
+
const languages = await remotes.getLanguages();
|
|
14
|
+
setContentLanguage(languages[0]);
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<Sidebar.Provider
|
|
18
|
+
style="--sidebar-width: calc(var(--spacing) * 72); --header-height: calc(var(--spacing) * 12);"
|
|
19
|
+
>
|
|
20
|
+
<AppSidebar variant="inset" />
|
|
21
|
+
<Sidebar.Inset>
|
|
22
|
+
<SiteHeader />
|
|
23
|
+
<div class="flex flex-1 flex-col">
|
|
24
|
+
<div class="@container/main flex flex-1 flex-col gap-2">
|
|
25
|
+
<div class="flex flex-col gap-4 py-4 md:gap-6 md:py-6">
|
|
26
|
+
<div class="px-4 lg:px-6">
|
|
27
|
+
{@render children()}
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
</Sidebar.Inset>
|
|
33
|
+
</Sidebar.Provider>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
children: Snippet;
|
|
4
|
+
};
|
|
5
|
+
declare const AdminAfterLoginLayout: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
6
|
+
type AdminAfterLoginLayout = ReturnType<typeof AdminAfterLoginLayout>;
|
|
7
|
+
export default AdminAfterLoginLayout;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
import '../../styles/admin.css';
|
|
4
|
+
import { ModeWatcher } from 'mode-watcher';
|
|
5
|
+
import { Toaster } from '../../../components/ui/sonner/index.js';
|
|
6
|
+
|
|
7
|
+
let { children }: { children: Snippet } = $props();
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<ModeWatcher />
|
|
11
|
+
<Toaster />
|
|
12
|
+
|
|
13
|
+
{@render children()}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
import '../../styles/admin.css';
|
|
3
|
+
type $$ComponentProps = {
|
|
4
|
+
children: Snippet;
|
|
5
|
+
};
|
|
6
|
+
declare const AdminLayout: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
7
|
+
type AdminLayout = ReturnType<typeof AdminLayout>;
|
|
8
|
+
export default AdminLayout;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
2
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
+
$$bindings?: Bindings;
|
|
4
|
+
} & Exports;
|
|
5
|
+
(internal: unknown, props: {
|
|
6
|
+
$$events?: Events;
|
|
7
|
+
$$slots?: Slots;
|
|
8
|
+
}): Exports & {
|
|
9
|
+
$set?: any;
|
|
10
|
+
$on?: any;
|
|
11
|
+
};
|
|
12
|
+
z_$$bindings?: Bindings;
|
|
13
|
+
}
|
|
14
|
+
declare const DashboardPage: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
|
|
15
|
+
[evt: string]: CustomEvent<any>;
|
|
16
|
+
}, {}, {}, string>;
|
|
17
|
+
type DashboardPage = InstanceType<typeof DashboardPage>;
|
|
18
|
+
export default DashboardPage;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Plus from '@tabler/icons-svelte/icons/plus';
|
|
3
|
+
import Button from '../../../components/ui/button/button.svelte';
|
|
4
|
+
import { page } from '$app/state';
|
|
5
|
+
import { goto } from '$app/navigation';
|
|
6
|
+
import DataTable from './data-table.svelte';
|
|
7
|
+
import { columns } from './columns.js';
|
|
8
|
+
|
|
9
|
+
import { breadcrumbs } from '../../state/breadcrumbs.svelte';
|
|
10
|
+
import { getRemotes } from '../../context/remotes.js';
|
|
11
|
+
import { getContentLanguage } from '../../state/content-language.svelte.js';
|
|
12
|
+
|
|
13
|
+
const remotes = getRemotes();
|
|
14
|
+
|
|
15
|
+
const collection = $derived(await remotes.getCollection(page.params.collection || ''));
|
|
16
|
+
|
|
17
|
+
const collectionEntriesQuery = $derived(remotes.getEntries(collection.slug));
|
|
18
|
+
|
|
19
|
+
async function onCreateEntry() {
|
|
20
|
+
const newEntry = await remotes.createNewEntry({ type: 'collection', slug: collection.slug });
|
|
21
|
+
goto(`/admin/entries/${newEntry.id}`);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
$effect(() => {
|
|
25
|
+
breadcrumbs.state = [
|
|
26
|
+
{
|
|
27
|
+
label: collection.labels?.plural || collection.slug
|
|
28
|
+
}
|
|
29
|
+
];
|
|
30
|
+
});
|
|
31
|
+
</script>
|
|
32
|
+
|
|
33
|
+
{#if collection}
|
|
34
|
+
<Button onclick={onCreateEntry} size="lg"><Plus /> Create new</Button>
|
|
35
|
+
|
|
36
|
+
{#await collectionEntriesQuery then entries}
|
|
37
|
+
{@const items = entries.map((entry) => ({
|
|
38
|
+
id: entry.id,
|
|
39
|
+
collection: entry.slug,
|
|
40
|
+
name:
|
|
41
|
+
collection.entryAdminTitle && entry.data[collection.entryAdminTitle]
|
|
42
|
+
? (entry.data[collection.entryAdminTitle] as Record<string, string>)[
|
|
43
|
+
getContentLanguage()
|
|
44
|
+
] || entry.id
|
|
45
|
+
: entry.id,
|
|
46
|
+
url: `/admin/entries/${entry.id}`,
|
|
47
|
+
status: entry.status,
|
|
48
|
+
createdAt: entry.createdAt,
|
|
49
|
+
updatedAt: entry.updatedAt
|
|
50
|
+
}))}
|
|
51
|
+
<DataTable data={items} {columns} />
|
|
52
|
+
{/await}
|
|
53
|
+
{/if}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ColumnDef } from '@tanstack/table-core';
|
|
2
|
+
export interface CollectionDataTableRow {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
status: string;
|
|
6
|
+
createdAt: Date;
|
|
7
|
+
updatedAt: Date;
|
|
8
|
+
url: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const columns: ColumnDef<CollectionDataTableRow>[];
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { renderComponent } from '../../../components/ui/data-table/render-helpers.js';
|
|
2
|
+
import EntryLink from './entry-link.svelte';
|
|
3
|
+
export const columns = [
|
|
4
|
+
{
|
|
5
|
+
accessorKey: 'name',
|
|
6
|
+
header: 'Name',
|
|
7
|
+
cell: (info) => {
|
|
8
|
+
return renderComponent(EntryLink, {
|
|
9
|
+
name: info.row.original.name,
|
|
10
|
+
url: info.row.original.url
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
accessorKey: 'status',
|
|
16
|
+
header: 'Status'
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
accessorKey: 'createdAt',
|
|
20
|
+
header: 'Created At',
|
|
21
|
+
cell: (info) => {
|
|
22
|
+
return new Date(info.row.original.createdAt).toLocaleString('pl');
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
accessorKey: 'updatedAt',
|
|
27
|
+
header: 'Updated At',
|
|
28
|
+
cell: (info) => {
|
|
29
|
+
return new Date(info.row.original.updatedAt).toLocaleString('pl');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
];
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<script lang="ts" generics="TData, TValue">
|
|
2
|
+
import { type ColumnDef, getCoreRowModel } from '@tanstack/table-core';
|
|
3
|
+
import { createSvelteTable, FlexRender } from '../../../components/ui/data-table/index.js';
|
|
4
|
+
import * as Table from '../../../components/ui/table/index.js';
|
|
5
|
+
|
|
6
|
+
type DataTableProps<TData, TValue> = {
|
|
7
|
+
columns: ColumnDef<TData, TValue>[];
|
|
8
|
+
data: TData[];
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
let { data, columns }: DataTableProps<TData, TValue> = $props();
|
|
12
|
+
|
|
13
|
+
const table = createSvelteTable({
|
|
14
|
+
get data() {
|
|
15
|
+
return data;
|
|
16
|
+
},
|
|
17
|
+
columns,
|
|
18
|
+
getCoreRowModel: getCoreRowModel()
|
|
19
|
+
});
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<div class="rounded-md border">
|
|
23
|
+
<Table.Root>
|
|
24
|
+
<Table.Header>
|
|
25
|
+
{#each table.getHeaderGroups() as headerGroup (headerGroup.id)}
|
|
26
|
+
<Table.Row>
|
|
27
|
+
{#each headerGroup.headers as header (header.id)}
|
|
28
|
+
<Table.Head>
|
|
29
|
+
{#if !header.isPlaceholder}
|
|
30
|
+
<FlexRender
|
|
31
|
+
content={header.column.columnDef.header}
|
|
32
|
+
context={header.getContext()}
|
|
33
|
+
/>
|
|
34
|
+
{/if}
|
|
35
|
+
</Table.Head>
|
|
36
|
+
{/each}
|
|
37
|
+
</Table.Row>
|
|
38
|
+
{/each}
|
|
39
|
+
</Table.Header>
|
|
40
|
+
<Table.Body>
|
|
41
|
+
{#each table.getRowModel().rows as row (row.id)}
|
|
42
|
+
<Table.Row data-state={row.getIsSelected() && 'selected'}>
|
|
43
|
+
{#each row.getVisibleCells() as cell (cell.id)}
|
|
44
|
+
<Table.Cell>
|
|
45
|
+
<FlexRender content={cell.column.columnDef.cell} context={cell.getContext()} />
|
|
46
|
+
</Table.Cell>
|
|
47
|
+
{/each}
|
|
48
|
+
</Table.Row>
|
|
49
|
+
{:else}
|
|
50
|
+
<Table.Row>
|
|
51
|
+
<Table.Cell colspan={columns.length} class="h-24 text-center">No results.</Table.Cell>
|
|
52
|
+
</Table.Row>
|
|
53
|
+
{/each}
|
|
54
|
+
</Table.Body>
|
|
55
|
+
</Table.Root>
|
|
56
|
+
</div>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type ColumnDef } from '@tanstack/table-core';
|
|
2
|
+
type DataTableProps<TData, TValue> = {
|
|
3
|
+
columns: ColumnDef<TData, TValue>[];
|
|
4
|
+
data: TData[];
|
|
5
|
+
};
|
|
6
|
+
declare function $$render<TData, TValue>(): {
|
|
7
|
+
props: DataTableProps<TData, TValue>;
|
|
8
|
+
exports: {};
|
|
9
|
+
bindings: "";
|
|
10
|
+
slots: {};
|
|
11
|
+
events: {};
|
|
12
|
+
};
|
|
13
|
+
declare class __sveltets_Render<TData, TValue> {
|
|
14
|
+
props(): ReturnType<typeof $$render<TData, TValue>>['props'];
|
|
15
|
+
events(): ReturnType<typeof $$render<TData, TValue>>['events'];
|
|
16
|
+
slots(): ReturnType<typeof $$render<TData, TValue>>['slots'];
|
|
17
|
+
bindings(): "";
|
|
18
|
+
exports(): {};
|
|
19
|
+
}
|
|
20
|
+
interface $$IsomorphicComponent {
|
|
21
|
+
new <TData, TValue>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TData, TValue>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TData, TValue>['props']>, ReturnType<__sveltets_Render<TData, TValue>['events']>, ReturnType<__sveltets_Render<TData, TValue>['slots']>> & {
|
|
22
|
+
$$bindings?: ReturnType<__sveltets_Render<TData, TValue>['bindings']>;
|
|
23
|
+
} & ReturnType<__sveltets_Render<TData, TValue>['exports']>;
|
|
24
|
+
<TData, TValue>(internal: unknown, props: ReturnType<__sveltets_Render<TData, TValue>['props']> & {}): ReturnType<__sveltets_Render<TData, TValue>['exports']>;
|
|
25
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
|
|
26
|
+
}
|
|
27
|
+
declare const DataTable: $$IsomorphicComponent;
|
|
28
|
+
type DataTable<TData, TValue> = InstanceType<typeof DataTable<TData, TValue>>;
|
|
29
|
+
export default DataTable;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { page } from '$app/state';
|
|
3
|
+
import Entry from './entry.svelte';
|
|
4
|
+
|
|
5
|
+
import { getRemotes } from '../../context/remotes.js';
|
|
6
|
+
|
|
7
|
+
const remotes = getRemotes();
|
|
8
|
+
|
|
9
|
+
let entry = $derived(await remotes.getEntryById(page.params.entryId || ''));
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
{#key entry}
|
|
13
|
+
<Entry {entry} />
|
|
14
|
+
{/key}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { goto } from '$app/navigation';
|
|
3
|
+
import { PUBLIC_URL } from '$env/static/public';
|
|
4
|
+
import FieldsForm from '../../components/fields/fields-form.svelte';
|
|
5
|
+
import slugify from '../../imports/slugify.js';
|
|
6
|
+
import { breadcrumbs } from '../../state/breadcrumbs.svelte';
|
|
7
|
+
import { isCollection } from '../../utils/is-collection.js';
|
|
8
|
+
import Button from '../../../components/ui/button/button.svelte';
|
|
9
|
+
import { generateZodSchemaFromFields } from '../../../core/fields/fieldSchemaToTs.js';
|
|
10
|
+
import type { RawEntry } from '../../../types/entries.js';
|
|
11
|
+
|
|
12
|
+
import { toast } from 'svelte-sonner';
|
|
13
|
+
import { defaults, superForm } from 'sveltekit-superforms';
|
|
14
|
+
import { zod, zodClient } from 'sveltekit-superforms/adapters';
|
|
15
|
+
|
|
16
|
+
import { getRemotes } from '../../context/remotes.js';
|
|
17
|
+
import { getContentLanguage } from '../../state/content-language.svelte.js';
|
|
18
|
+
|
|
19
|
+
const remotes = getRemotes();
|
|
20
|
+
|
|
21
|
+
type Props = {
|
|
22
|
+
entry: RawEntry;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
let { entry }: Props = $props();
|
|
26
|
+
|
|
27
|
+
let collection = await remotes.getRecordBySlug(entry.slug);
|
|
28
|
+
const languages = await remotes.getLanguages();
|
|
29
|
+
|
|
30
|
+
let collectionSchema = generateZodSchemaFromFields(collection.fields, languages);
|
|
31
|
+
|
|
32
|
+
let isPreview = $state(false);
|
|
33
|
+
|
|
34
|
+
let previewUrl = $derived(
|
|
35
|
+
collection.previewUrl
|
|
36
|
+
? `${PUBLIC_URL}/${generateSlug(collection.previewUrl)}?preview=true`
|
|
37
|
+
: undefined
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
function generateSlug(pattern: string) {
|
|
41
|
+
const replacedPattern = pattern.replace(/{([^}]+)}/g, (_, key) => {
|
|
42
|
+
const keyValue = entry.data[key as keyof typeof entry.data];
|
|
43
|
+
if (keyValue === undefined) {
|
|
44
|
+
console.error(`Key not found in form data: ${key}`);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return slugify(String(keyValue), {
|
|
48
|
+
lower: true,
|
|
49
|
+
strict: true,
|
|
50
|
+
trim: true
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
return replacedPattern;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
async function onDelete() {
|
|
58
|
+
await remotes.deleteEntryCommand(entry.id);
|
|
59
|
+
toast.success('Entry deleted');
|
|
60
|
+
goto(`/admin/collections/${collection.slug}`);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
const form = superForm(defaults(entry.data, zod(collectionSchema)), {
|
|
64
|
+
validators: zodClient(collectionSchema),
|
|
65
|
+
SPA: true,
|
|
66
|
+
dataType: 'json',
|
|
67
|
+
resetForm: false,
|
|
68
|
+
onUpdate: async ({ form }) => {
|
|
69
|
+
if (form.valid) {
|
|
70
|
+
await remotes.updateEntryCommand({
|
|
71
|
+
id: entry.id,
|
|
72
|
+
data: {
|
|
73
|
+
data: form.data
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
toast.success('Entry saved!');
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
$effect(() => {
|
|
82
|
+
breadcrumbs.state = isCollection(collection)
|
|
83
|
+
? [
|
|
84
|
+
{
|
|
85
|
+
label: collection.labels?.plural || collection.slug,
|
|
86
|
+
href: `/admin/collections/${collection.slug}`
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
label:
|
|
90
|
+
(
|
|
91
|
+
entry.data[collection.entryAdminTitle || ''] as Record<string, string> | undefined
|
|
92
|
+
)?.[getContentLanguage()] || entry.id
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
: [
|
|
96
|
+
{
|
|
97
|
+
label: collection.label || collection.slug
|
|
98
|
+
}
|
|
99
|
+
];
|
|
100
|
+
});
|
|
101
|
+
</script>
|
|
102
|
+
|
|
103
|
+
<div class="flex items-stretch">
|
|
104
|
+
<FieldsForm {form} fields={collection.fields} class="grow">
|
|
105
|
+
{#snippet children()}
|
|
106
|
+
<Button type="button" variant="destructive" class="mt-2 w-full" onclick={onDelete}
|
|
107
|
+
>Delete</Button
|
|
108
|
+
>
|
|
109
|
+
|
|
110
|
+
<p>Status: {entry.status}</p>
|
|
111
|
+
<p>Created: {entry.createdAt.toLocaleString('pl')}</p>
|
|
112
|
+
<p>Updated: {entry.updatedAt.toLocaleString('pl')}</p>
|
|
113
|
+
|
|
114
|
+
{#if entry.publishedAt}
|
|
115
|
+
<p>Published: {entry.publishedAt.toLocaleString('pl')}</p>
|
|
116
|
+
{/if}
|
|
117
|
+
<p class="text-muted-foreground text-xs">ID: {entry.id}</p>
|
|
118
|
+
{/snippet}
|
|
119
|
+
|
|
120
|
+
{#snippet after()}
|
|
121
|
+
{#if entry.status === 'draft'}
|
|
122
|
+
<Button
|
|
123
|
+
onclick={() => {
|
|
124
|
+
remotes.updateEntryCommand({
|
|
125
|
+
id: entry.id,
|
|
126
|
+
data: { status: 'published' }
|
|
127
|
+
});
|
|
128
|
+
}}
|
|
129
|
+
type="button"
|
|
130
|
+
class="mt-2 w-full">Publish</Button
|
|
131
|
+
>
|
|
132
|
+
{:else}
|
|
133
|
+
<Button
|
|
134
|
+
type="button"
|
|
135
|
+
class="mt-2 w-full"
|
|
136
|
+
onclick={() => {
|
|
137
|
+
remotes.updateEntryCommand({
|
|
138
|
+
id: entry.id,
|
|
139
|
+
data: { status: 'draft' }
|
|
140
|
+
});
|
|
141
|
+
}}>Unpublish</Button
|
|
142
|
+
>
|
|
143
|
+
{/if}
|
|
144
|
+
|
|
145
|
+
{#if previewUrl}
|
|
146
|
+
<Button
|
|
147
|
+
type="button"
|
|
148
|
+
onclick={() => {
|
|
149
|
+
isPreview = !isPreview;
|
|
150
|
+
}}
|
|
151
|
+
class="mt-2 w-full"
|
|
152
|
+
variant="outline">{isPreview ? 'Hide' : 'Show'} Preview</Button
|
|
153
|
+
>
|
|
154
|
+
{/if}
|
|
155
|
+
{/snippet}
|
|
156
|
+
</FieldsForm>
|
|
157
|
+
|
|
158
|
+
{#if isPreview}
|
|
159
|
+
<div class="flex w-[768px] shrink-0 flex-col space-y-4 pl-4">
|
|
160
|
+
<h2 class="text-lg font-semibold">
|
|
161
|
+
Preview: <a href={previewUrl} target="_blank"> {previewUrl}</a>
|
|
162
|
+
</h2>
|
|
163
|
+
<div class="grow border p-4">
|
|
164
|
+
<iframe title="Preview" src={previewUrl} class="h-full w-full"></iframe>
|
|
165
|
+
</div>
|
|
166
|
+
</div>
|
|
167
|
+
{/if}
|
|
168
|
+
</div>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { default as AdminAfterLoginLayout } from './admin/admin-after-login-layout.svelte';
|
|
2
|
+
export { default as AdminLayout } from './admin/admin-layout.svelte';
|
|
3
|
+
export { default as EntryPage } from './entry/entry-page.svelte';
|
|
4
|
+
export { default as CollectionPage } from './collection/collection-page.svelte';
|
|
5
|
+
export { default as DashboardPage } from './admin/dashboard-page.svelte';
|
|
6
|
+
export { default as LoginPage } from './login/login-page.svelte';
|
|
7
|
+
export { default as MediaPage } from './media/media-page.svelte';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { default as AdminAfterLoginLayout } from './admin/admin-after-login-layout.svelte';
|
|
2
|
+
export { default as AdminLayout } from './admin/admin-layout.svelte';
|
|
3
|
+
export { default as EntryPage } from './entry/entry-page.svelte';
|
|
4
|
+
export { default as CollectionPage } from './collection/collection-page.svelte';
|
|
5
|
+
export { default as DashboardPage } from './admin/dashboard-page.svelte';
|
|
6
|
+
export { default as LoginPage } from './login/login-page.svelte';
|
|
7
|
+
export { default as MediaPage } from './media/media-page.svelte';
|