@questpie/admin 1.1.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +256 -488
- package/dist/augmentation.d.mts +414 -0
- package/dist/client/blocks/block-renderer.d.mts +45 -0
- package/dist/client/blocks/block-renderer.mjs +105 -0
- package/dist/client/blocks/index.d.mts +2 -0
- package/dist/client/blocks/types.d.mts +68 -0
- package/dist/client/blocks/types.mjs +19 -0
- package/dist/client/builder/admin-types.d.mts +40 -0
- package/dist/client/builder/admin.d.mts +110 -0
- package/dist/client/builder/admin.mjs +151 -0
- package/dist/client/builder/field/field.d.mts +51 -0
- package/dist/client/builder/field/field.mjs +37 -0
- package/dist/client/builder/index.d.mts +31 -0
- package/dist/client/builder/page/page.d.mts +24 -0
- package/dist/client/builder/page/page.mjs +31 -0
- package/dist/client/builder/registry.d.mts +50 -0
- package/dist/client/builder/types/action-registry.mjs +276 -0
- package/dist/client/builder/types/action-types.d.mts +226 -0
- package/dist/client/builder/types/collection-types.mjs +10 -0
- package/dist/client/builder/types/common.d.mts +46 -0
- package/dist/client/builder/types/field-types.d.mts +592 -0
- package/dist/client/builder/types/field-types.mjs +18 -0
- package/dist/client/builder/types/ui-config.d.mts +158 -0
- package/dist/client/builder/types/widget-types.d.mts +562 -0
- package/dist/client/builder/validation.d.mts +33 -0
- package/dist/client/builder/validation.mjs +227 -0
- package/dist/client/builder/view/view.d.mts +49 -0
- package/dist/client/builder/view/view.mjs +27 -0
- package/dist/client/builder/widget/widget.d.mts +27 -0
- package/dist/client/builder/widget/widget.mjs +21 -0
- package/dist/client/components/actions/action-button.mjs +245 -0
- package/dist/client/components/actions/action-dialog.mjs +559 -0
- package/dist/client/components/actions/confirmation-dialog.mjs +201 -0
- package/dist/client/components/actions/header-actions.mjs +210 -0
- package/dist/client/components/admin-link.d.mts +66 -0
- package/dist/client/components/admin-link.mjs +171 -0
- package/dist/client/components/auth/auth-guard.d.mts +50 -0
- package/dist/client/components/auth/auth-guard.mjs +60 -0
- package/dist/client/components/auth/auth-loading.d.mts +35 -0
- package/dist/client/components/auth/auth-loading.mjs +55 -0
- package/dist/client/components/blocks/block-canvas.mjs +159 -0
- package/dist/client/components/blocks/block-editor-context.mjs +125 -0
- package/dist/client/components/blocks/block-editor-layout.mjs +199 -0
- package/dist/client/components/blocks/block-editor-provider.mjs +235 -0
- package/dist/client/components/blocks/block-fields-renderer.mjs +240 -0
- package/dist/client/components/blocks/block-insert-button.mjs +189 -0
- package/dist/client/components/blocks/block-item-menu.mjs +363 -0
- package/dist/client/components/blocks/block-item.mjs +434 -0
- package/dist/client/components/blocks/block-library-sidebar.mjs +285 -0
- package/dist/client/components/blocks/block-tree.mjs +103 -0
- package/dist/client/components/blocks/block-type-icon.mjs +95 -0
- package/dist/client/components/blocks/utils/tree-utils.mjs +185 -0
- package/dist/client/components/component-renderer.d.mts +114 -0
- package/dist/client/components/component-renderer.mjs +258 -0
- package/dist/client/components/error-boundary.mjs +144 -0
- package/dist/client/components/fields/array-field.mjs +506 -0
- package/dist/client/components/fields/asset-preview-field.mjs +159 -0
- package/dist/client/components/fields/blocks-field/blocks-field.mjs +209 -0
- package/dist/client/components/fields/boolean-field.mjs +77 -0
- package/dist/client/components/fields/date-field.mjs +76 -0
- package/dist/client/components/fields/datetime-field.mjs +74 -0
- package/dist/client/components/fields/email-field.mjs +67 -0
- package/dist/client/components/fields/field-utils.mjs +64 -0
- package/dist/client/components/fields/field-wrapper.mjs +124 -0
- package/dist/client/components/fields/json-field.mjs +461 -0
- package/dist/client/components/fields/locale-badge.mjs +25 -0
- package/dist/client/components/fields/number-field.mjs +73 -0
- package/dist/client/components/fields/object-array-field.mjs +707 -0
- package/dist/client/components/fields/object-field.mjs +686 -0
- package/dist/client/components/fields/relation/displays/cards-display.mjs +254 -0
- package/dist/client/components/fields/relation/displays/chips-display.mjs +173 -0
- package/dist/client/components/fields/relation/displays/grid-display.mjs +209 -0
- package/dist/client/components/fields/relation/displays/list-display.mjs +247 -0
- package/dist/client/components/fields/relation/displays/table-display.mjs +309 -0
- package/dist/client/components/fields/relation/displays/types.mjs +72 -0
- package/dist/client/components/fields/relation/relation-items-display.mjs +143 -0
- package/dist/client/components/fields/relation-field.mjs +161 -0
- package/dist/client/components/fields/relation-picker.mjs +296 -0
- package/dist/client/components/fields/relation-select.mjs +232 -0
- package/dist/client/components/fields/rich-text-editor/bubble-menu.mjs +105 -0
- package/dist/client/components/fields/rich-text-editor/extensions.mjs +144 -0
- package/dist/client/components/fields/rich-text-editor/image-popover.mjs +221 -0
- package/dist/client/components/fields/rich-text-editor/index.mjs +520 -0
- package/dist/client/components/fields/rich-text-editor/link-popover.mjs +85 -0
- package/dist/client/components/fields/rich-text-editor/presets.mjs +123 -0
- package/dist/client/components/fields/rich-text-editor/slash-commands.mjs +188 -0
- package/dist/client/components/fields/rich-text-editor/table-controls.mjs +433 -0
- package/dist/client/components/fields/rich-text-editor/toolbar.mjs +541 -0
- package/dist/client/components/fields/rich-text-editor/types.mjs +30 -0
- package/dist/client/components/fields/rich-text-editor/utils.mjs +50 -0
- package/dist/client/components/fields/rich-text-field.mjs +64 -0
- package/dist/client/components/fields/select-field.mjs +88 -0
- package/dist/client/components/fields/text-field.mjs +72 -0
- package/dist/client/components/fields/textarea-field.mjs +71 -0
- package/dist/client/components/fields/time-field.mjs +67 -0
- package/dist/client/components/fields/upload-field.mjs +621 -0
- package/dist/client/components/filter-builder/columns-tab.mjs +325 -0
- package/dist/client/components/filter-builder/filter-builder-sheet.mjs +456 -0
- package/dist/client/components/filter-builder/filters-tab.mjs +663 -0
- package/dist/client/components/filter-builder/saved-views-tab.mjs +278 -0
- package/dist/client/components/history-sidebar.mjs +496 -0
- package/dist/client/components/layout/field-layout-renderer.mjs +301 -0
- package/dist/client/components/locale-switcher.mjs +251 -0
- package/dist/client/components/media/media-grid.mjs +314 -0
- package/dist/client/components/media/media-picker-dialog.mjs +563 -0
- package/dist/client/components/preview/live-preview-mode.mjs +503 -0
- package/dist/client/components/preview/preview-pane.mjs +388 -0
- package/dist/client/components/primitives/asset-preview.mjs +771 -0
- package/dist/client/components/primitives/checkbox-input.mjs +59 -0
- package/dist/client/components/primitives/date-input.mjs +461 -0
- package/dist/client/components/primitives/dropzone.mjs +368 -0
- package/dist/client/components/primitives/number-input.mjs +117 -0
- package/dist/client/components/primitives/select-multi.mjs +590 -0
- package/dist/client/components/primitives/select-single.mjs +473 -0
- package/dist/client/components/primitives/text-input.mjs +45 -0
- package/dist/client/components/primitives/textarea-input.mjs +43 -0
- package/dist/client/components/primitives/time-input.mjs +145 -0
- package/dist/client/components/primitives/toggle-input.mjs +51 -0
- package/dist/client/components/primitives/types.mjs +12 -0
- package/dist/client/components/sheets/resource-sheet.mjs +86 -0
- package/dist/client/components/ui/accordion.mjs +169 -0
- package/dist/client/components/ui/alert.mjs +85 -0
- package/dist/client/components/ui/badge.mjs +76 -0
- package/dist/client/components/ui/button.mjs +84 -0
- package/dist/client/components/ui/card.mjs +206 -0
- package/dist/client/components/ui/checkbox.mjs +82 -0
- package/dist/client/components/ui/command.mjs +239 -0
- package/dist/client/components/ui/dialog.mjs +296 -0
- package/dist/client/components/ui/drawer.mjs +278 -0
- package/dist/client/components/ui/dropdown-menu.mjs +315 -0
- package/dist/client/components/ui/empty-state.mjs +99 -0
- package/dist/client/components/ui/field.mjs +354 -0
- package/dist/client/components/ui/input-group.mjs +201 -0
- package/dist/client/components/ui/input.mjs +46 -0
- package/dist/client/components/ui/kbd.mjs +53 -0
- package/dist/client/components/ui/label.mjs +45 -0
- package/dist/client/components/ui/popover.mjs +176 -0
- package/dist/client/components/ui/responsive-dialog.mjs +308 -0
- package/dist/client/components/ui/search-input.mjs +139 -0
- package/dist/client/components/ui/select.mjs +325 -0
- package/dist/client/components/ui/separator.mjs +47 -0
- package/dist/client/components/ui/sheet.mjs +280 -0
- package/dist/client/components/ui/sidebar.mjs +774 -0
- package/dist/client/components/ui/skeleton.mjs +40 -0
- package/dist/client/components/ui/sonner.d.mts +13 -0
- package/dist/client/components/ui/sonner.mjs +85 -0
- package/dist/client/components/ui/spinner.mjs +52 -0
- package/dist/client/components/ui/switch.mjs +58 -0
- package/dist/client/components/ui/table.mjs +276 -0
- package/dist/client/components/ui/tabs.mjs +160 -0
- package/dist/client/components/ui/textarea.mjs +40 -0
- package/dist/client/components/ui/toolbar.mjs +136 -0
- package/dist/client/components/ui/tooltip.mjs +146 -0
- package/dist/client/components/widgets/chart-widget.mjs +582 -0
- package/dist/client/components/widgets/progress-widget.mjs +200 -0
- package/dist/client/components/widgets/quick-actions-widget.mjs +209 -0
- package/dist/client/components/widgets/recent-items-widget.mjs +196 -0
- package/dist/client/components/widgets/stats-widget.mjs +261 -0
- package/dist/client/components/widgets/table-widget.mjs +273 -0
- package/dist/client/components/widgets/timeline-widget.mjs +279 -0
- package/dist/client/components/widgets/value-widget.mjs +312 -0
- package/dist/client/components/widgets/widget-skeletons.mjs +427 -0
- package/dist/client/contexts/breadcrumb-context.mjs +60 -0
- package/dist/client/contexts/focus-context.d.mts +87 -0
- package/dist/client/contexts/focus-context.mjs +250 -0
- package/dist/client/hooks/typed-hooks.d.mts +110 -0
- package/dist/client/hooks/typed-hooks.mjs +888 -0
- package/dist/client/hooks/use-action.mjs +329 -0
- package/dist/client/hooks/use-admin-config.mjs +69 -0
- package/dist/client/hooks/use-admin-preferences.mjs +171 -0
- package/dist/client/hooks/use-admin-routes.mjs +130 -0
- package/dist/client/hooks/use-audit-history.mjs +157 -0
- package/dist/client/hooks/use-auth.d.mts +97 -0
- package/dist/{use-auth-BoLmWtmU.mjs → client/hooks/use-auth.mjs} +9 -10
- package/dist/client/hooks/use-collection-fields.mjs +71 -0
- package/dist/client/hooks/use-collection-meta.mjs +153 -0
- package/dist/client/hooks/use-collection-schema.mjs +90 -0
- package/dist/client/hooks/use-collection-validation.mjs +88 -0
- package/dist/client/hooks/use-collection.d.mts +96 -0
- package/dist/client/hooks/use-collection.mjs +673 -0
- package/dist/client/hooks/use-current-user.d.mts +60 -0
- package/dist/client/hooks/use-current-user.mjs +79 -0
- package/dist/client/hooks/use-field-hooks.mjs +199 -0
- package/dist/client/hooks/use-field-options.d.mts +57 -0
- package/dist/client/hooks/use-field-options.mjs +269 -0
- package/dist/client/hooks/use-global-fields.mjs +58 -0
- package/dist/client/hooks/use-global-meta.mjs +105 -0
- package/dist/client/hooks/use-global-schema.mjs +53 -0
- package/dist/client/hooks/use-global.d.mts +51 -0
- package/dist/client/hooks/use-global.mjs +284 -0
- package/dist/client/hooks/use-locks.mjs +452 -0
- package/dist/client/hooks/use-media-query.d.mts +22 -0
- package/dist/client/hooks/use-media-query.mjs +81 -0
- package/dist/client/hooks/use-prefill-params.mjs +47 -0
- package/dist/client/hooks/use-questpie-query-options.mjs +50 -0
- package/dist/client/hooks/use-reactive-fields.d.mts +78 -0
- package/dist/client/hooks/use-reactive-fields.mjs +201 -0
- package/dist/client/hooks/use-realtime-highlight.mjs +158 -0
- package/dist/client/hooks/use-saved-views.mjs +140 -0
- package/dist/client/hooks/use-search-param-toggle.d.mts +12 -0
- package/dist/client/hooks/use-search-param-toggle.mjs +115 -0
- package/dist/client/hooks/use-search.mjs +258 -0
- package/dist/client/hooks/use-server-actions.mjs +191 -0
- package/dist/client/hooks/use-server-validation.mjs +291 -0
- package/dist/client/hooks/use-server-widget-data.d.mts +25 -0
- package/dist/client/hooks/use-server-widget-data.mjs +65 -0
- package/dist/client/hooks/use-setup-status.d.mts +38 -0
- package/dist/client/hooks/use-setup-status.mjs +62 -0
- package/dist/client/hooks/use-sidebar-search-param.d.mts +9 -0
- package/dist/client/hooks/use-sidebar-search-param.mjs +104 -0
- package/dist/client/hooks/use-transition-stage.mjs +125 -0
- package/dist/client/hooks/use-upload-collection.mjs +31 -0
- package/dist/client/hooks/use-upload.mjs +209 -0
- package/dist/client/hooks/use-validation-error-map.mjs +57 -0
- package/dist/client/hooks/use-view-state.mjs +479 -0
- package/dist/client/i18n/hooks.mjs +284 -0
- package/dist/client/i18n/intl-cache.mjs +64 -0
- package/dist/client/i18n/messages.mjs +6 -0
- package/dist/client/i18n/simple.d.mts +21 -0
- package/dist/client/i18n/simple.mjs +156 -0
- package/dist/client/i18n/types.d.mts +109 -0
- package/dist/client/lib/cookies.mjs +9 -0
- package/dist/client/lib/events.mjs +5 -0
- package/dist/client/lib/render-profiler.mjs +51 -0
- package/dist/client/lib/utils.mjs +23 -0
- package/dist/client/preview/block-scope-context.d.mts +73 -0
- package/dist/client/preview/block-scope-context.mjs +116 -0
- package/dist/client/preview/index.d.mts +5 -0
- package/dist/client/preview/preview-banner.d.mts +45 -0
- package/dist/client/preview/preview-banner.mjs +134 -0
- package/dist/client/preview/preview-field.d.mts +107 -0
- package/dist/client/preview/preview-field.mjs +227 -0
- package/dist/client/preview/types.d.mts +114 -0
- package/dist/client/preview/types.mjs +20 -0
- package/dist/client/preview/use-collection-preview.d.mts +70 -0
- package/dist/client/preview/use-collection-preview.mjs +163 -0
- package/dist/client/runtime/content-locales-provider.d.mts +1 -0
- package/dist/client/runtime/content-locales-provider.mjs +136 -0
- package/dist/client/runtime/index.d.mts +5 -0
- package/dist/client/runtime/index.mjs +6 -0
- package/dist/client/runtime/locale-scope.d.mts +2 -0
- package/dist/client/runtime/locale-scope.mjs +108 -0
- package/dist/client/runtime/provider.d.mts +203 -0
- package/dist/client/runtime/provider.mjs +393 -0
- package/dist/client/runtime/routes.d.mts +49 -0
- package/dist/client/runtime/routes.mjs +91 -0
- package/dist/client/runtime/translations-provider.mjs +242 -0
- package/dist/client/scope/index.d.mts +3 -0
- package/dist/client/scope/picker.d.mts +53 -0
- package/dist/client/scope/picker.mjs +395 -0
- package/dist/client/scope/provider.d.mts +103 -0
- package/dist/client/scope/provider.mjs +167 -0
- package/dist/client/scope/types.d.mts +111 -0
- package/dist/client/styles/index.css +344 -188
- package/dist/client/utils/auto-expand-fields.mjs +83 -0
- package/dist/client/utils/build-field-definitions-from-schema.mjs +259 -0
- package/dist/client/utils/dependency-tracker.mjs +61 -0
- package/dist/client/utils/detect-relations.mjs +45 -0
- package/dist/client/utils/locale-to-flag.d.mts +119 -0
- package/dist/client/utils/locale-to-flag.mjs +129 -0
- package/dist/client/utils/routes.mjs +195 -0
- package/dist/client/views/auth/accept-invite-form.d.mts +72 -0
- package/dist/client/views/auth/accept-invite-form.mjs +473 -0
- package/dist/client/views/auth/auth-layout.d.mts +43 -0
- package/dist/client/views/auth/auth-layout.mjs +116 -0
- package/dist/client/views/auth/forgot-password-form.d.mts +58 -0
- package/dist/client/views/auth/forgot-password-form.mjs +386 -0
- package/dist/client/views/auth/invite-form.mjs +497 -0
- package/dist/client/views/auth/login-form.d.mts +75 -0
- package/dist/client/views/auth/login-form.mjs +387 -0
- package/dist/client/views/auth/reset-password-form.d.mts +65 -0
- package/dist/client/views/auth/reset-password-form.mjs +515 -0
- package/dist/client/views/auth/setup-form.d.mts +60 -0
- package/dist/client/views/auth/setup-form.mjs +526 -0
- package/dist/client/views/collection/auto-form-fields.mjs +873 -0
- package/dist/client/views/collection/bulk-action-toolbar.mjs +480 -0
- package/dist/client/views/collection/cells/complex-cells.mjs +746 -0
- package/dist/client/views/collection/cells/primitive-cells.mjs +395 -0
- package/dist/client/views/collection/cells/relation-cells.mjs +260 -0
- package/dist/client/views/collection/cells/shared/asset-thumbnail.mjs +509 -0
- package/dist/client/views/collection/cells/shared/cell-helpers.mjs +125 -0
- package/dist/client/views/collection/cells/shared/relation-chip.mjs +121 -0
- package/dist/client/views/collection/cells/upload-cells.mjs +28 -0
- package/dist/client/views/collection/columns/build-columns.mjs +195 -0
- package/dist/client/views/collection/columns/column-defaults.mjs +123 -0
- package/dist/client/views/collection/field-context.mjs +126 -0
- package/dist/client/views/collection/field-renderer.mjs +368 -0
- package/dist/client/views/collection/form-view.mjs +1566 -0
- package/dist/client/views/collection/table-view.mjs +832 -0
- package/dist/client/views/collection/view-skeletons.mjs +215 -0
- package/dist/client/views/common/global-search.mjs +700 -0
- package/dist/client/views/dashboard/dashboard-grid.mjs +881 -0
- package/dist/client/views/dashboard/dashboard-widget.mjs +265 -0
- package/dist/client/views/dashboard/widget-card.mjs +372 -0
- package/dist/client/views/globals/global-form-view.mjs +1306 -0
- package/dist/client/views/layout/admin-layout-provider.d.mts +137 -0
- package/dist/client/views/layout/admin-layout-provider.mjs +193 -0
- package/dist/client/views/layout/admin-layout.d.mts +133 -0
- package/dist/client/views/layout/admin-layout.mjs +302 -0
- package/dist/client/views/layout/admin-router.d.mts +93 -0
- package/dist/client/views/layout/admin-router.mjs +1254 -0
- package/dist/client/views/layout/admin-sidebar.d.mts +99 -0
- package/dist/client/views/layout/admin-sidebar.mjs +1379 -0
- package/dist/client/views/layout/admin-topbar.mjs +236 -0
- package/dist/client/views/pages/accept-invite-page.d.mts +66 -0
- package/dist/client/views/pages/accept-invite-page.mjs +349 -0
- package/dist/client/views/pages/dashboard-page.d.mts +43 -0
- package/dist/client/views/pages/dashboard-page.mjs +84 -0
- package/dist/client/views/pages/forgot-password-page.d.mts +56 -0
- package/dist/client/views/pages/forgot-password-page.mjs +152 -0
- package/dist/client/views/pages/invite-page.d.mts +70 -0
- package/dist/client/views/pages/invite-page.mjs +161 -0
- package/dist/client/views/pages/login-page.d.mts +69 -0
- package/dist/client/views/pages/login-page.mjs +193 -0
- package/dist/client/views/pages/reset-password-page.d.mts +63 -0
- package/dist/client/views/pages/reset-password-page.mjs +257 -0
- package/dist/client/views/pages/setup-page.d.mts +61 -0
- package/dist/client/views/pages/setup-page.mjs +156 -0
- package/dist/client-module.d.mts +3 -0
- package/dist/client-module.mjs +3 -0
- package/dist/client.d.mts +99 -3
- package/dist/client.mjs +52 -12
- package/dist/components/rich-text/index.d.mts +1 -0
- package/dist/components/rich-text/rich-text-renderer.d.mts +103 -0
- package/dist/components/rich-text/rich-text-renderer.mjs +237 -0
- package/dist/index.d.mts +59 -3
- package/dist/index.mjs +52 -12
- package/dist/plugin.d.mts +2 -0
- package/dist/plugin.mjs +3 -0
- package/dist/server/adapters/nextjs.d.mts +120 -0
- package/dist/server/adapters/nextjs.mjs +110 -0
- package/dist/server/adapters/tanstack.d.mts +132 -0
- package/dist/server/adapters/tanstack.mjs +89 -0
- package/dist/server/augmentation/actions.d.mts +279 -0
- package/dist/server/augmentation/common.d.mts +76 -0
- package/dist/server/augmentation/dashboard.d.mts +547 -0
- package/dist/server/augmentation/form-layout.d.mts +303 -0
- package/dist/server/augmentation/index.d.mts +44 -0
- package/dist/server/augmentation/index.mjs +10 -0
- package/dist/server/augmentation/sidebar.d.mts +181 -0
- package/dist/server/augmentation/views.d.mts +237 -0
- package/dist/server/augmentation.d.mts +7 -0
- package/dist/server/block/index.d.mts +4 -0
- package/dist/server/codegen/admin-client-template.mjs +93 -0
- package/dist/server/codegen/projection-validator.mjs +67 -0
- package/dist/server/fields/blocks.d.mts +71 -0
- package/dist/server/fields/blocks.mjs +151 -0
- package/dist/server/fields/index.d.mts +15 -0
- package/dist/server/fields/index.mjs +15 -0
- package/dist/server/fields/rich-text.d.mts +68 -0
- package/dist/server/fields/rich-text.mjs +147 -0
- package/dist/server/i18n/index.mjs +43 -0
- package/dist/server/i18n/messages/cs.mjs +461 -0
- package/dist/server/i18n/messages/de.mjs +461 -0
- package/dist/server/i18n/messages/en.mjs +707 -0
- package/dist/server/i18n/messages/es.mjs +461 -0
- package/dist/server/i18n/messages/fr.mjs +461 -0
- package/dist/server/i18n/messages/index.mjs +23 -0
- package/dist/server/i18n/messages/pl.mjs +461 -0
- package/dist/server/i18n/messages/pt.mjs +464 -0
- package/dist/server/i18n/messages/sk.mjs +689 -0
- package/dist/server/modules/admin/.generated/module.d.mts +52 -0
- package/dist/server/modules/admin/.generated/module.mjs +78 -0
- package/dist/server/modules/admin/.generated/registries.d.mts +22 -0
- package/dist/server/modules/admin/auth-helpers.d.mts +142 -0
- package/dist/server/modules/admin/auth-helpers.mjs +107 -0
- package/dist/server/modules/admin/block/block-builder.d.mts +383 -0
- package/dist/server/modules/admin/block/block-builder.mjs +315 -0
- package/dist/server/modules/admin/block/index.d.mts +3 -0
- package/dist/server/modules/admin/block/introspection.d.mts +89 -0
- package/dist/server/modules/admin/block/introspection.mjs +100 -0
- package/dist/server/modules/admin/block/prefetch.d.mts +78 -0
- package/dist/server/modules/admin/block/prefetch.mjs +241 -0
- package/dist/server/modules/admin/client/.generated/module.d.mts +94 -0
- package/dist/server/modules/admin/client/.generated/module.mjs +91 -0
- package/dist/server/modules/admin/client/components/badge.d.mts +1 -0
- package/dist/server/modules/admin/client/components/icon.d.mts +1 -0
- package/dist/server/modules/admin/client/fields/array.d.mts +6 -0
- package/dist/server/modules/admin/client/fields/array.mjs +12 -0
- package/dist/server/modules/admin/client/fields/assetPreview.d.mts +6 -0
- package/dist/server/modules/admin/client/fields/assetPreview.mjs +18 -0
- package/dist/server/modules/admin/client/fields/blocks.d.mts +6 -0
- package/dist/server/modules/admin/client/fields/blocks.mjs +12 -0
- package/dist/server/modules/admin/client/fields/boolean.d.mts +6 -0
- package/dist/server/modules/admin/client/fields/boolean.mjs +12 -0
- package/dist/server/modules/admin/client/fields/date.d.mts +6 -0
- package/dist/server/modules/admin/client/fields/date.mjs +12 -0
- package/dist/server/modules/admin/client/fields/datetime.d.mts +6 -0
- package/dist/server/modules/admin/client/fields/datetime.mjs +12 -0
- package/dist/server/modules/admin/client/fields/email.d.mts +6 -0
- package/dist/server/modules/admin/client/fields/email.mjs +12 -0
- package/dist/server/modules/admin/client/fields/json.d.mts +6 -0
- package/dist/server/modules/admin/client/fields/json.mjs +11 -0
- package/dist/server/modules/admin/client/fields/number.d.mts +6 -0
- package/dist/server/modules/admin/client/fields/number.mjs +12 -0
- package/dist/server/modules/admin/client/fields/object.d.mts +6 -0
- package/dist/server/modules/admin/client/fields/object.mjs +12 -0
- package/dist/server/modules/admin/client/fields/relation.d.mts +6 -0
- package/dist/server/modules/admin/client/fields/relation.mjs +12 -0
- package/dist/server/modules/admin/client/fields/richText.d.mts +6 -0
- package/dist/server/modules/admin/client/fields/richText.mjs +11 -0
- package/dist/server/modules/admin/client/fields/select.d.mts +6 -0
- package/dist/server/modules/admin/client/fields/select.mjs +12 -0
- package/dist/server/modules/admin/client/fields/text.d.mts +6 -0
- package/dist/server/modules/admin/client/fields/text.mjs +12 -0
- package/dist/server/modules/admin/client/fields/textarea.d.mts +6 -0
- package/dist/server/modules/admin/client/fields/textarea.mjs +12 -0
- package/dist/server/modules/admin/client/fields/time.d.mts +6 -0
- package/dist/server/modules/admin/client/fields/time.mjs +12 -0
- package/dist/server/modules/admin/client/fields/upload.d.mts +6 -0
- package/dist/server/modules/admin/client/fields/upload.mjs +12 -0
- package/dist/server/modules/admin/client/fields/url.d.mts +6 -0
- package/dist/server/modules/admin/client/fields/url.mjs +12 -0
- package/dist/server/modules/admin/client/index.d.mts +1 -0
- package/dist/server/modules/admin/client/pages/dashboard.d.mts +6 -0
- package/dist/server/modules/admin/client/pages/dashboard.mjs +11 -0
- package/dist/server/modules/admin/client/pages/forgotPassword.d.mts +6 -0
- package/dist/server/modules/admin/client/pages/forgotPassword.mjs +11 -0
- package/dist/server/modules/admin/client/pages/login.d.mts +6 -0
- package/dist/server/modules/admin/client/pages/login.mjs +11 -0
- package/dist/server/modules/admin/client/pages/resetPassword.d.mts +6 -0
- package/dist/server/modules/admin/client/pages/resetPassword.mjs +11 -0
- package/dist/server/modules/admin/client/pages/setup.d.mts +6 -0
- package/dist/server/modules/admin/client/pages/setup.mjs +11 -0
- package/dist/server/modules/admin/client/views/collection-form.mjs +10 -0
- package/dist/server/modules/admin/client/views/collection-table.mjs +10 -0
- package/dist/server/modules/admin/client/views/global-form.mjs +10 -0
- package/dist/server/modules/admin/client/widgets/chart.d.mts +6 -0
- package/dist/server/modules/admin/client/widgets/chart.mjs +7 -0
- package/dist/server/modules/admin/client/widgets/progress.d.mts +6 -0
- package/dist/server/modules/admin/client/widgets/progress.mjs +7 -0
- package/dist/server/modules/admin/client/widgets/quickActions.d.mts +6 -0
- package/dist/server/modules/admin/client/widgets/quickActions.mjs +7 -0
- package/dist/server/modules/admin/client/widgets/recentItems.d.mts +6 -0
- package/dist/server/modules/admin/client/widgets/recentItems.mjs +7 -0
- package/dist/server/modules/admin/client/widgets/stats.d.mts +6 -0
- package/dist/server/modules/admin/client/widgets/stats.mjs +7 -0
- package/dist/server/modules/admin/client/widgets/table.d.mts +6 -0
- package/dist/server/modules/admin/client/widgets/table.mjs +7 -0
- package/dist/server/modules/admin/client/widgets/timeline.d.mts +6 -0
- package/dist/server/modules/admin/client/widgets/timeline.mjs +7 -0
- package/dist/server/modules/admin/client/widgets/value.d.mts +6 -0
- package/dist/server/modules/admin/client/widgets/value.mjs +7 -0
- package/dist/server/modules/admin/collections/account.d.mts +77 -0
- package/dist/server/modules/admin/collections/account.mjs +23 -0
- package/dist/server/modules/admin/collections/admin-locks.d.mts +90 -0
- package/dist/server/modules/admin/collections/admin-locks.mjs +16 -0
- package/dist/server/modules/admin/collections/admin-preferences.d.mts +69 -0
- package/dist/server/modules/admin/collections/admin-preferences.mjs +16 -0
- package/dist/server/modules/admin/collections/admin-saved-views.d.mts +83 -0
- package/dist/server/modules/admin/collections/admin-saved-views.mjs +16 -0
- package/dist/server/modules/admin/collections/apikey.d.mts +99 -0
- package/dist/server/modules/admin/collections/apikey.mjs +15 -0
- package/dist/server/modules/admin/collections/assets.d.mts +72 -0
- package/dist/server/modules/admin/collections/assets.mjs +71 -0
- package/dist/server/modules/admin/collections/session.d.mts +69 -0
- package/dist/server/modules/admin/collections/session.mjs +15 -0
- package/dist/server/modules/admin/collections/user.d.mts +85 -0
- package/dist/server/modules/admin/collections/user.mjs +204 -0
- package/dist/server/modules/admin/collections/verification.d.mts +63 -0
- package/dist/server/modules/admin/collections/verification.mjs +15 -0
- package/dist/server/modules/admin/components/badge.d.mts +10 -0
- package/dist/server/modules/admin/components/badge.mjs +10 -0
- package/dist/server/modules/admin/components/icon.d.mts +9 -0
- package/dist/server/modules/admin/components/icon.mjs +11 -0
- package/dist/server/modules/admin/config/admin.mjs +34 -0
- package/dist/server/modules/admin/dto/admin-config.dto.mjs +102 -0
- package/dist/server/modules/admin/factories.mjs +172 -0
- package/dist/server/modules/admin/index.d.mts +1093 -0
- package/dist/server/modules/admin/index.mjs +26 -0
- package/dist/server/modules/admin/modules.mjs +11 -0
- package/dist/server/modules/admin/plugin.mjs +13 -0
- package/dist/server/modules/admin/routes/admin-config.d.mts +28 -0
- package/dist/server/modules/admin/routes/admin-config.mjs +552 -0
- package/dist/server/modules/admin/routes/execute-action.d.mts +92 -0
- package/dist/server/modules/admin/routes/execute-action.mjs +433 -0
- package/dist/server/modules/admin/routes/locales.d.mts +18 -0
- package/dist/server/modules/admin/routes/locales.mjs +69 -0
- package/dist/server/modules/admin/routes/preview.d.mts +80 -0
- package/dist/server/modules/admin/routes/preview.mjs +230 -0
- package/dist/server/modules/admin/routes/reactive.d.mts +74 -0
- package/dist/server/modules/admin/routes/reactive.mjs +350 -0
- package/dist/server/modules/admin/routes/route-helpers.d.mts +23 -0
- package/dist/server/modules/admin/routes/route-helpers.mjs +76 -0
- package/dist/server/modules/admin/routes/setup.d.mts +63 -0
- package/dist/server/modules/admin/routes/setup.mjs +114 -0
- package/dist/server/modules/admin/routes/translations.d.mts +26 -0
- package/dist/server/modules/admin/routes/translations.mjs +114 -0
- package/dist/server/modules/admin/routes/widget-data.d.mts +32 -0
- package/dist/server/modules/admin/routes/widget-data.mjs +62 -0
- package/dist/server/modules/admin/views/form.d.mts +8 -0
- package/dist/server/modules/admin/views/form.mjs +7 -0
- package/dist/server/modules/admin/views/global-form.d.mts +8 -0
- package/dist/server/modules/admin/views/global-form.mjs +7 -0
- package/dist/server/modules/admin/views/table.d.mts +8 -0
- package/dist/server/modules/admin/views/table.mjs +7 -0
- package/dist/server/modules/admin-preferences/collections/admin-preferences.mjs +37 -0
- package/dist/server/modules/admin-preferences/collections/locks.collection.mjs +55 -0
- package/dist/server/modules/admin-preferences/collections/saved-views.d.mts +99 -0
- package/dist/server/modules/admin-preferences/collections/saved-views.mjs +38 -0
- package/dist/server/modules/audit/.generated/module.d.mts +60 -0
- package/dist/server/modules/audit/.generated/module.mjs +30 -0
- package/dist/server/modules/audit/collections/audit-log.d.mts +214 -0
- package/dist/server/modules/audit/collections/audit-log.mjs +107 -0
- package/dist/server/modules/audit/config/admin.mjs +21 -0
- package/dist/server/modules/audit/config/app.mjs +262 -0
- package/dist/server/modules/audit/index.d.mts +2 -0
- package/dist/server/modules/audit/jobs/audit-cleanup.d.mts +13 -0
- package/dist/server/modules/audit/jobs/audit-cleanup.mjs +28 -0
- package/dist/server/plugin.d.mts +26 -0
- package/dist/server/plugin.mjs +385 -0
- package/dist/server/proxy-factories.d.mts +85 -0
- package/dist/server/proxy-factories.mjs +302 -0
- package/dist/server/registry-helpers.d.mts +83 -0
- package/dist/server/registry-helpers.mjs +104 -0
- package/dist/server.d.mts +33 -250
- package/dist/server.mjs +22 -832
- package/dist/shared/preview-utils.d.mts +53 -0
- package/dist/{preview-utils-BKQ9-TMa.mjs → shared/preview-utils.mjs} +2 -3
- package/dist/{saved-views.types-BMsz5mCy.d.mts → shared/types/saved-views.types.d.mts} +7 -2
- package/dist/shared.d.mts +3 -57
- package/dist/shared.mjs +1 -1
- package/package.json +56 -51
- package/skills/questpie-admin/SKILL.md +397 -0
- package/skills/questpie-admin/blocks/SKILL.md +305 -0
- package/skills/questpie-admin/custom-ui/SKILL.md +307 -0
- package/skills/questpie-admin/views/SKILL.md +442 -0
- package/dist/auth-layout-M8K8_q5R.mjs +0 -181
- package/dist/auth-layout-M8K8_q5R.mjs.map +0 -1
- package/dist/bulk-upload-dialog-D7w7W1Hl.mjs +0 -273
- package/dist/bulk-upload-dialog-D7w7W1Hl.mjs.map +0 -1
- package/dist/card-BKHjBQfw.mjs +0 -58
- package/dist/card-BKHjBQfw.mjs.map +0 -1
- package/dist/client-D1DqawtP.d.mts +0 -13403
- package/dist/client-D1DqawtP.d.mts.map +0 -1
- package/dist/client-njX1rZmi.mjs +0 -22612
- package/dist/client-njX1rZmi.mjs.map +0 -1
- package/dist/content-locales-provider-BXvuIgfg.mjs +0 -1650
- package/dist/content-locales-provider-BXvuIgfg.mjs.map +0 -1
- package/dist/dashboard-page-B4PGEdc2.mjs +0 -2500
- package/dist/dashboard-page-B4PGEdc2.mjs.map +0 -1
- package/dist/dashboard-page-mCY0pgZv.mjs +0 -3
- package/dist/dropzone-Do3awXKd.mjs +0 -634
- package/dist/dropzone-Do3awXKd.mjs.map +0 -1
- package/dist/forgot-password-page-Bcp-An4Y.mjs +0 -221
- package/dist/forgot-password-page-Bcp-An4Y.mjs.map +0 -1
- package/dist/forgot-password-page-CEwsdLwn.mjs +0 -3
- package/dist/index-B4H3amCD.d.mts +0 -2753
- package/dist/index-B4H3amCD.d.mts.map +0 -1
- package/dist/login-page-BUnpCbCa.mjs +0 -3
- package/dist/login-page-CP4gA-dl.mjs +0 -298
- package/dist/login-page-CP4gA-dl.mjs.map +0 -1
- package/dist/preview-utils-BKQ9-TMa.mjs.map +0 -1
- package/dist/reset-password-page-BqfDmLxA.mjs +0 -281
- package/dist/reset-password-page-BqfDmLxA.mjs.map +0 -1
- package/dist/reset-password-page-CufHz3h3.mjs +0 -3
- package/dist/runtime-6VZM878K.mjs +0 -69
- package/dist/runtime-6VZM878K.mjs.map +0 -1
- package/dist/saved-views.types-BMsz5mCy.d.mts.map +0 -1
- package/dist/server.d.mts.map +0 -1
- package/dist/server.mjs.map +0 -1
- package/dist/setup-page-BNNzt_Z6.mjs +0 -3
- package/dist/setup-page-YAP_fzqh.mjs +0 -264
- package/dist/setup-page-YAP_fzqh.mjs.map +0 -1
- package/dist/shared.d.mts.map +0 -1
- package/dist/use-auth-BoLmWtmU.mjs.map +0 -1
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { ComponentReference } from "../../../augmentation/common.mjs";
|
|
2
|
+
import { BlockCategoryConfig, FieldLayoutItem } from "../../../augmentation/form-layout.mjs";
|
|
3
|
+
import "../../../augmentation.mjs";
|
|
4
|
+
import { AnyBlockDefinition } from "./block-builder.mjs";
|
|
5
|
+
import { I18nText } from "questpie/shared";
|
|
6
|
+
import { FieldSchema } from "questpie";
|
|
7
|
+
|
|
8
|
+
//#region src/server/modules/admin/block/introspection.d.ts
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Introspected block schema for admin consumption.
|
|
12
|
+
* All admin metadata comes from the .admin() configuration.
|
|
13
|
+
*/
|
|
14
|
+
interface BlockSchema {
|
|
15
|
+
/** Block type name */
|
|
16
|
+
name: string;
|
|
17
|
+
/** Admin configuration */
|
|
18
|
+
admin?: {
|
|
19
|
+
/** Display label */
|
|
20
|
+
label?: I18nText;
|
|
21
|
+
/** Description */
|
|
22
|
+
description?: I18nText;
|
|
23
|
+
/** Icon reference */
|
|
24
|
+
icon?: ComponentReference;
|
|
25
|
+
/** Category for grouping in block picker */
|
|
26
|
+
category?: BlockCategoryConfig;
|
|
27
|
+
/** Order within category in block picker */
|
|
28
|
+
order?: number;
|
|
29
|
+
/** Hide from block picker */
|
|
30
|
+
hidden?: boolean;
|
|
31
|
+
};
|
|
32
|
+
/** Allow child blocks */
|
|
33
|
+
allowChildren?: boolean;
|
|
34
|
+
/** Maximum number of child blocks */
|
|
35
|
+
maxChildren?: number;
|
|
36
|
+
/** Has prefetch function */
|
|
37
|
+
hasPrefetch: boolean;
|
|
38
|
+
/** Field schemas - unified format using FieldSchema */
|
|
39
|
+
fields: Record<string, FieldSchema>;
|
|
40
|
+
/** Form layout for block fields (sections, tabs, grid) */
|
|
41
|
+
form?: {
|
|
42
|
+
fields: FieldLayoutItem[];
|
|
43
|
+
};
|
|
44
|
+
/** Validation schemas */
|
|
45
|
+
validation?: {
|
|
46
|
+
insert?: unknown;
|
|
47
|
+
update?: unknown;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Category info extracted from blocks for UI rendering.
|
|
52
|
+
*/
|
|
53
|
+
interface CategoryInfo {
|
|
54
|
+
/** Category key (derived from label or auto-generated) */
|
|
55
|
+
key: string;
|
|
56
|
+
/** Category configuration */
|
|
57
|
+
config: BlockCategoryConfig;
|
|
58
|
+
/** Blocks in this category */
|
|
59
|
+
blocks: BlockSchema[];
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Introspect a single block definition.
|
|
63
|
+
* Handles both server BlockBuilder definitions and client BlockDefinition objects
|
|
64
|
+
* that were converted via the `.blocks()` patch.
|
|
65
|
+
*/
|
|
66
|
+
declare function introspectBlock(blockDef: AnyBlockDefinition): BlockSchema;
|
|
67
|
+
/**
|
|
68
|
+
* Introspect all registered blocks.
|
|
69
|
+
*
|
|
70
|
+
* @param blocks - Record of registered block definitions
|
|
71
|
+
* @returns Record of block schemas
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```ts
|
|
75
|
+
* import { introspectBlocks } from "@questpie/admin/server";
|
|
76
|
+
*
|
|
77
|
+
* // In an API route
|
|
78
|
+
* const blocks = introspectBlocks(app.state.blocks);
|
|
79
|
+
* return Response.json({ blocks });
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
declare function introspectBlocks(blocks: Record<string, AnyBlockDefinition> | undefined): Record<string, BlockSchema>;
|
|
83
|
+
/**
|
|
84
|
+
* Get blocks grouped by category with full category info.
|
|
85
|
+
* Useful for block picker UI.
|
|
86
|
+
*/
|
|
87
|
+
declare function getBlocksByCategory(blocks: Record<string, BlockSchema>): CategoryInfo[];
|
|
88
|
+
//#endregion
|
|
89
|
+
export { BlockSchema, getBlocksByCategory, introspectBlock, introspectBlocks };
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { isI18nLocaleMap } from "questpie/shared";
|
|
2
|
+
|
|
3
|
+
//#region src/server/modules/admin/block/introspection.ts
|
|
4
|
+
/**
|
|
5
|
+
* Normalize a block entry to a BlockDefinition.
|
|
6
|
+
* App state may contain either built BlockDefinition objects (with getFieldMetadata)
|
|
7
|
+
* or raw BlockBuilder instances (with a .build() method). This normalizes both
|
|
8
|
+
* to a BlockDefinition by calling .build() on builders.
|
|
9
|
+
*/
|
|
10
|
+
function normalizeBlockDef(blockDef) {
|
|
11
|
+
if (typeof blockDef?.build === "function" && !blockDef.getFieldMetadata) return blockDef.build();
|
|
12
|
+
return blockDef;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Introspect a single block definition.
|
|
16
|
+
* Handles both server BlockBuilder definitions and client BlockDefinition objects
|
|
17
|
+
* that were converted via the `.blocks()` patch.
|
|
18
|
+
*/
|
|
19
|
+
function introspectBlock(blockDef) {
|
|
20
|
+
const resolved = normalizeBlockDef(blockDef);
|
|
21
|
+
const state = resolved.state;
|
|
22
|
+
return {
|
|
23
|
+
name: state.name ?? resolved.name,
|
|
24
|
+
admin: state.admin,
|
|
25
|
+
allowChildren: state.allowChildren,
|
|
26
|
+
maxChildren: state.maxChildren,
|
|
27
|
+
hasPrefetch: typeof state.prefetch === "function",
|
|
28
|
+
fields: resolved.getFieldMetadata(),
|
|
29
|
+
form: state.form
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Introspect all registered blocks.
|
|
34
|
+
*
|
|
35
|
+
* @param blocks - Record of registered block definitions
|
|
36
|
+
* @returns Record of block schemas
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* import { introspectBlocks } from "@questpie/admin/server";
|
|
41
|
+
*
|
|
42
|
+
* // In an API route
|
|
43
|
+
* const blocks = introspectBlocks(app.state.blocks);
|
|
44
|
+
* return Response.json({ blocks });
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
function introspectBlocks(blocks) {
|
|
48
|
+
if (!blocks) return {};
|
|
49
|
+
const schemas = {};
|
|
50
|
+
for (const [name, blockDef] of Object.entries(blocks)) schemas[name] = introspectBlock(blockDef);
|
|
51
|
+
return schemas;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Generate a category key from category config.
|
|
55
|
+
* Uses English label as key, falling back to first available label.
|
|
56
|
+
*/
|
|
57
|
+
function getCategoryKey(category) {
|
|
58
|
+
const { label } = category;
|
|
59
|
+
if (typeof label === "string") return label.toLowerCase().replace(/\s+/g, "-");
|
|
60
|
+
if (isI18nLocaleMap(label)) return (label.en ?? Object.values(label)[0] ?? "").toLowerCase().replace(/\s+/g, "-");
|
|
61
|
+
return label.key.toLowerCase().replace(/[.:]/g, "-");
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get blocks grouped by category with full category info.
|
|
65
|
+
* Useful for block picker UI.
|
|
66
|
+
*/
|
|
67
|
+
function getBlocksByCategory(blocks) {
|
|
68
|
+
const categoryMap = /* @__PURE__ */ new Map();
|
|
69
|
+
const uncategorizedKey = "uncategorized";
|
|
70
|
+
const uncategorizedConfig = {
|
|
71
|
+
label: { en: "Uncategorized" },
|
|
72
|
+
order: 999
|
|
73
|
+
};
|
|
74
|
+
for (const block of Object.values(blocks)) {
|
|
75
|
+
if (block.admin?.hidden) continue;
|
|
76
|
+
const categoryConfig = block.admin?.category;
|
|
77
|
+
let key;
|
|
78
|
+
let config;
|
|
79
|
+
if (categoryConfig) {
|
|
80
|
+
key = getCategoryKey(categoryConfig);
|
|
81
|
+
config = categoryConfig;
|
|
82
|
+
} else {
|
|
83
|
+
key = uncategorizedKey;
|
|
84
|
+
config = uncategorizedConfig;
|
|
85
|
+
}
|
|
86
|
+
if (!categoryMap.has(key)) categoryMap.set(key, {
|
|
87
|
+
key,
|
|
88
|
+
config,
|
|
89
|
+
blocks: []
|
|
90
|
+
});
|
|
91
|
+
categoryMap.get(key).blocks.push(block);
|
|
92
|
+
}
|
|
93
|
+
const categories = Array.from(categoryMap.values());
|
|
94
|
+
categories.sort((a, b) => (a.config.order ?? 999) - (b.config.order ?? 999));
|
|
95
|
+
for (const category of categories) category.blocks.sort((a, b) => (a.admin?.order ?? 999) - (b.admin?.order ?? 999));
|
|
96
|
+
return categories;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
//#endregion
|
|
100
|
+
export { getBlocksByCategory, introspectBlock, introspectBlocks };
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { BlocksDocument } from "../../../fields/blocks.mjs";
|
|
2
|
+
import { AnyBlockDefinition } from "./block-builder.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/server/modules/admin/block/prefetch.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Context for blocks prefetch processing.
|
|
8
|
+
* Use `typedApp<App>(ctx.app)` for typed access.
|
|
9
|
+
*/
|
|
10
|
+
interface BlocksPrefetchContext {
|
|
11
|
+
/** app instance — use `typedApp<App>(ctx.app)` for typed access */
|
|
12
|
+
app: any;
|
|
13
|
+
/** Database client */
|
|
14
|
+
db: unknown;
|
|
15
|
+
/** Current locale */
|
|
16
|
+
locale?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Process blocks data for a single blocks document.
|
|
20
|
+
*
|
|
21
|
+
* This function does two things:
|
|
22
|
+
* 1. **Expands declared fields** from `.prefetch({ with: [...] })` (batch-fetched)
|
|
23
|
+
* 2. **Executes prefetch functions/loaders** for blocks that have them
|
|
24
|
+
*
|
|
25
|
+
* The results are merged into `_data[blockId]`. Prefetch function / loader data
|
|
26
|
+
* takes precedence over expanded data on key conflicts.
|
|
27
|
+
*
|
|
28
|
+
* @param blocks - The blocks document to process
|
|
29
|
+
* @param blockDefinitions - Registered block definitions
|
|
30
|
+
* @param ctx - Prefetch context
|
|
31
|
+
* @returns The blocks document with `_data` populated
|
|
32
|
+
*/
|
|
33
|
+
declare function processBlocksDocument(blocks: BlocksDocument | null | undefined, blockDefinitions: Record<string, AnyBlockDefinition>, ctx: BlocksPrefetchContext): Promise<BlocksDocument | null | undefined>;
|
|
34
|
+
/**
|
|
35
|
+
* Process blocks prefetch for a document.
|
|
36
|
+
* Finds all blocks fields in the document and processes them.
|
|
37
|
+
*
|
|
38
|
+
* @param doc - The document containing blocks fields
|
|
39
|
+
* @param fieldDefinitions - Field definitions to identify blocks fields
|
|
40
|
+
* @param blockDefinitions - Registered block definitions
|
|
41
|
+
* @param ctx - Prefetch context
|
|
42
|
+
* @returns The document with blocks prefetch data attached
|
|
43
|
+
*/
|
|
44
|
+
declare function processDocumentBlocksPrefetch<T extends Record<string, unknown>>(doc: T, fieldDefinitions: Record<string, {
|
|
45
|
+
_state: {
|
|
46
|
+
customType?: string;
|
|
47
|
+
type: string;
|
|
48
|
+
};
|
|
49
|
+
}>, blockDefinitions: Record<string, AnyBlockDefinition>, ctx: BlocksPrefetchContext): Promise<T>;
|
|
50
|
+
/**
|
|
51
|
+
* Create an afterRead hook for processing blocks prefetch.
|
|
52
|
+
* This hook can be added to collections that have blocks fields.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```ts
|
|
56
|
+
* // collections/pages/index.ts
|
|
57
|
+
* import { collection } from "questpie";
|
|
58
|
+
* import { createBlocksPrefetchHook } from "@questpie/admin/server";
|
|
59
|
+
*
|
|
60
|
+
* export default collection("pages", {
|
|
61
|
+
* fields: ({ f }) => ({
|
|
62
|
+
* title: f.text({ required: true }),
|
|
63
|
+
* content: f.blocks({ allowedBlocks: ["hero", "text"] }),
|
|
64
|
+
* }),
|
|
65
|
+
* hooks: {
|
|
66
|
+
* afterRead: createBlocksPrefetchHook(),
|
|
67
|
+
* },
|
|
68
|
+
* });
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
declare function createBlocksPrefetchHook(): (ctx: {
|
|
72
|
+
data: Record<string, unknown>;
|
|
73
|
+
app: any;
|
|
74
|
+
db: unknown;
|
|
75
|
+
locale?: string;
|
|
76
|
+
}) => Promise<void>;
|
|
77
|
+
//#endregion
|
|
78
|
+
export { BlocksPrefetchContext, createBlocksPrefetchHook, processBlocksDocument, processDocumentBlocksPrefetch };
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
//#region src/server/modules/admin/block/prefetch.ts
|
|
2
|
+
/**
|
|
3
|
+
* Expand relation/upload fields declared in `prefetchWith`.
|
|
4
|
+
*
|
|
5
|
+
* Uses the same object syntax as `with` in find operations:
|
|
6
|
+
* ```ts
|
|
7
|
+
* { backgroundImage: true, author: { with: { avatar: true } } }
|
|
8
|
+
* ```
|
|
9
|
+
*
|
|
10
|
+
* Nested `with` is passed through to the collection's `find` call,
|
|
11
|
+
* reusing the existing relation resolution machinery.
|
|
12
|
+
*
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
async function expandDeclaredFields(allNodes, values, blockDefinitions, ctx) {
|
|
16
|
+
const expansionsByCollection = /* @__PURE__ */ new Map();
|
|
17
|
+
for (const node of allNodes) {
|
|
18
|
+
const blockDef = blockDefinitions[node.type];
|
|
19
|
+
const prefetchWith = blockDef?.state.prefetchWith;
|
|
20
|
+
if (!prefetchWith || typeof prefetchWith !== "object") continue;
|
|
21
|
+
if (!blockDef?.state.fields) continue;
|
|
22
|
+
const blockValues = values[node.id] || {};
|
|
23
|
+
for (const [fieldName, fieldConfig] of Object.entries(prefetchWith)) {
|
|
24
|
+
if (!fieldConfig) continue;
|
|
25
|
+
const fieldDef = blockDef.state.fields[fieldName];
|
|
26
|
+
if (!fieldDef || typeof fieldDef !== "object") continue;
|
|
27
|
+
const metadata = "getMetadata" in fieldDef && typeof fieldDef.getMetadata === "function" ? fieldDef.getMetadata() : void 0;
|
|
28
|
+
if (!metadata) continue;
|
|
29
|
+
if (metadata.type !== "relation") continue;
|
|
30
|
+
const targetCollection = metadata.targetCollection;
|
|
31
|
+
if (!targetCollection || typeof targetCollection !== "string") continue;
|
|
32
|
+
const value = blockValues[fieldName];
|
|
33
|
+
if (!value) continue;
|
|
34
|
+
const stringIds = (Array.isArray(value) ? value : [value]).filter((id) => typeof id === "string" && id.length > 0);
|
|
35
|
+
if (stringIds.length === 0) continue;
|
|
36
|
+
const nestedWith = typeof fieldConfig === "object" && fieldConfig.with ? fieldConfig.with : void 0;
|
|
37
|
+
const groupKey = nestedWith ? `${targetCollection}:${JSON.stringify(nestedWith)}` : targetCollection;
|
|
38
|
+
if (!expansionsByCollection.has(groupKey)) expansionsByCollection.set(groupKey, {
|
|
39
|
+
ids: /* @__PURE__ */ new Set(),
|
|
40
|
+
targets: [],
|
|
41
|
+
nestedWith
|
|
42
|
+
});
|
|
43
|
+
const entry = expansionsByCollection.get(groupKey);
|
|
44
|
+
for (const id of stringIds) entry.ids.add(id);
|
|
45
|
+
entry.targets.push({
|
|
46
|
+
blockId: node.id,
|
|
47
|
+
fieldName,
|
|
48
|
+
isSingle: !Array.isArray(value),
|
|
49
|
+
nestedWith
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (expansionsByCollection.size === 0) return {};
|
|
54
|
+
const fetchedByGroup = /* @__PURE__ */ new Map();
|
|
55
|
+
const fetchPromises = [...expansionsByCollection.entries()].map(async ([groupKey, { ids, nestedWith }]) => {
|
|
56
|
+
const collection = groupKey.includes(":") ? groupKey.slice(0, groupKey.indexOf(":")) : groupKey;
|
|
57
|
+
try {
|
|
58
|
+
const collectionApi = ctx.app?.collections?.[collection];
|
|
59
|
+
if (!collectionApi?.find) {
|
|
60
|
+
console.warn(`[prefetch] Collection "${collection}" not found on app.collections, skipping`);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const result = await collectionApi.find({
|
|
64
|
+
where: { id: { in: [...ids] } },
|
|
65
|
+
limit: ids.size,
|
|
66
|
+
...nestedWith ? { with: nestedWith } : {}
|
|
67
|
+
});
|
|
68
|
+
const recordMap = /* @__PURE__ */ new Map();
|
|
69
|
+
for (const doc of result?.docs || []) if (doc && typeof doc === "object" && "id" in doc) recordMap.set(doc.id, doc);
|
|
70
|
+
fetchedByGroup.set(groupKey, recordMap);
|
|
71
|
+
} catch (error) {
|
|
72
|
+
console.error(`[prefetch] Failed to fetch from "${collection}":`, error);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
await Promise.all(fetchPromises);
|
|
76
|
+
const expandedData = {};
|
|
77
|
+
for (const [groupKey, { targets }] of expansionsByCollection) {
|
|
78
|
+
const recordMap = fetchedByGroup.get(groupKey);
|
|
79
|
+
if (!recordMap) continue;
|
|
80
|
+
for (const { blockId, fieldName, isSingle } of targets) {
|
|
81
|
+
if (!expandedData[blockId]) expandedData[blockId] = {};
|
|
82
|
+
const blockVal = values[blockId]?.[fieldName];
|
|
83
|
+
if (isSingle) expandedData[blockId][fieldName] = recordMap.get(blockVal) ?? null;
|
|
84
|
+
else {
|
|
85
|
+
const ids = blockVal;
|
|
86
|
+
expandedData[blockId][fieldName] = ids.map((id) => recordMap.get(id)).filter(Boolean);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return expandedData;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Process blocks data for a single blocks document.
|
|
94
|
+
*
|
|
95
|
+
* This function does two things:
|
|
96
|
+
* 1. **Expands declared fields** from `.prefetch({ with: [...] })` (batch-fetched)
|
|
97
|
+
* 2. **Executes prefetch functions/loaders** for blocks that have them
|
|
98
|
+
*
|
|
99
|
+
* The results are merged into `_data[blockId]`. Prefetch function / loader data
|
|
100
|
+
* takes precedence over expanded data on key conflicts.
|
|
101
|
+
*
|
|
102
|
+
* @param blocks - The blocks document to process
|
|
103
|
+
* @param blockDefinitions - Registered block definitions
|
|
104
|
+
* @param ctx - Prefetch context
|
|
105
|
+
* @returns The blocks document with `_data` populated
|
|
106
|
+
*/
|
|
107
|
+
async function processBlocksDocument(blocks, blockDefinitions, ctx) {
|
|
108
|
+
if (!blocks || !blocks._tree || !blocks._values) return blocks;
|
|
109
|
+
const allNodes = [];
|
|
110
|
+
const collectNodes = (nodes) => {
|
|
111
|
+
for (const node of nodes) {
|
|
112
|
+
allNodes.push(node);
|
|
113
|
+
if (node.children.length > 0) collectNodes(node.children);
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
collectNodes(blocks._tree);
|
|
117
|
+
const expandedData = await expandDeclaredFields(allNodes, blocks._values, blockDefinitions, ctx);
|
|
118
|
+
const prefetchedData = await executePrefetchFunctions(allNodes, blocks._values, blockDefinitions, ctx, expandedData);
|
|
119
|
+
const mergedData = {};
|
|
120
|
+
const allBlockIds = new Set([...Object.keys(expandedData), ...Object.keys(prefetchedData)]);
|
|
121
|
+
for (const blockId of allBlockIds) mergedData[blockId] = {
|
|
122
|
+
...expandedData[blockId] || {},
|
|
123
|
+
...prefetchedData[blockId] || {}
|
|
124
|
+
};
|
|
125
|
+
return {
|
|
126
|
+
...blocks,
|
|
127
|
+
_data: mergedData
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Execute prefetch functions and loaders for blocks.
|
|
132
|
+
*
|
|
133
|
+
* Handles two shapes:
|
|
134
|
+
* - Shape 1: `state.prefetch` — call with `{ values, ctx }`
|
|
135
|
+
* - Shape 3: `state._prefetchLoader` — call with `{ values, expanded, ctx }`
|
|
136
|
+
*
|
|
137
|
+
* Shape 2 (with-only) has no function to call — expansion is handled separately.
|
|
138
|
+
*
|
|
139
|
+
* @internal
|
|
140
|
+
*/
|
|
141
|
+
async function executePrefetchFunctions(allNodes, values, blockDefinitions, ctx, expandedData) {
|
|
142
|
+
const prefetchedData = {};
|
|
143
|
+
const prefetchPromises = [];
|
|
144
|
+
for (const node of allNodes) {
|
|
145
|
+
const blockDef = blockDefinitions[node.type];
|
|
146
|
+
if (!blockDef) continue;
|
|
147
|
+
const blockValues = values[node.id] || {};
|
|
148
|
+
const prefetchCtx = {
|
|
149
|
+
blockId: node.id,
|
|
150
|
+
blockType: node.type,
|
|
151
|
+
...ctx,
|
|
152
|
+
locale: ctx.locale
|
|
153
|
+
};
|
|
154
|
+
const loader = blockDef.state._prefetchLoader;
|
|
155
|
+
if (typeof loader === "function") {
|
|
156
|
+
const expanded = expandedData[node.id] || {};
|
|
157
|
+
prefetchPromises.push((async () => {
|
|
158
|
+
try {
|
|
159
|
+
const data = await loader({
|
|
160
|
+
values: blockValues,
|
|
161
|
+
expanded,
|
|
162
|
+
ctx: prefetchCtx
|
|
163
|
+
});
|
|
164
|
+
if (data && typeof data === "object") prefetchedData[node.id] = data;
|
|
165
|
+
} catch (error) {
|
|
166
|
+
console.error(`Block prefetch loader failed for ${node.type}:${node.id}:`, error);
|
|
167
|
+
prefetchedData[node.id] = { _error: "Prefetch failed" };
|
|
168
|
+
}
|
|
169
|
+
})());
|
|
170
|
+
} else if (blockDef.state.prefetch) prefetchPromises.push((async () => {
|
|
171
|
+
try {
|
|
172
|
+
const data = await blockDef.executePrefetch(blockValues, prefetchCtx);
|
|
173
|
+
prefetchedData[node.id] = data;
|
|
174
|
+
} catch (error) {
|
|
175
|
+
console.error(`Block prefetch failed for ${node.type}:${node.id}:`, error);
|
|
176
|
+
prefetchedData[node.id] = { _error: "Prefetch failed" };
|
|
177
|
+
}
|
|
178
|
+
})());
|
|
179
|
+
}
|
|
180
|
+
await Promise.all(prefetchPromises);
|
|
181
|
+
return prefetchedData;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Process blocks prefetch for a document.
|
|
185
|
+
* Finds all blocks fields in the document and processes them.
|
|
186
|
+
*
|
|
187
|
+
* @param doc - The document containing blocks fields
|
|
188
|
+
* @param fieldDefinitions - Field definitions to identify blocks fields
|
|
189
|
+
* @param blockDefinitions - Registered block definitions
|
|
190
|
+
* @param ctx - Prefetch context
|
|
191
|
+
* @returns The document with blocks prefetch data attached
|
|
192
|
+
*/
|
|
193
|
+
async function processDocumentBlocksPrefetch(doc, fieldDefinitions, blockDefinitions, ctx) {
|
|
194
|
+
if (!doc || !blockDefinitions || Object.keys(blockDefinitions).length === 0) return doc;
|
|
195
|
+
const result = { ...doc };
|
|
196
|
+
for (const [fieldName, fieldDef] of Object.entries(fieldDefinitions)) if ((fieldDef?._state?.customType ?? fieldDef?._state?.type) === "blocks" && result[fieldName]) result[fieldName] = await processBlocksDocument(result[fieldName], blockDefinitions, ctx);
|
|
197
|
+
return result;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Create an afterRead hook for processing blocks prefetch.
|
|
201
|
+
* This hook can be added to collections that have blocks fields.
|
|
202
|
+
*
|
|
203
|
+
* @example
|
|
204
|
+
* ```ts
|
|
205
|
+
* // collections/pages/index.ts
|
|
206
|
+
* import { collection } from "questpie";
|
|
207
|
+
* import { createBlocksPrefetchHook } from "@questpie/admin/server";
|
|
208
|
+
*
|
|
209
|
+
* export default collection("pages", {
|
|
210
|
+
* fields: ({ f }) => ({
|
|
211
|
+
* title: f.text({ required: true }),
|
|
212
|
+
* content: f.blocks({ allowedBlocks: ["hero", "text"] }),
|
|
213
|
+
* }),
|
|
214
|
+
* hooks: {
|
|
215
|
+
* afterRead: createBlocksPrefetchHook(),
|
|
216
|
+
* },
|
|
217
|
+
* });
|
|
218
|
+
* ```
|
|
219
|
+
*/
|
|
220
|
+
function createBlocksPrefetchHook() {
|
|
221
|
+
return async (ctx) => {
|
|
222
|
+
const blocks = ctx.app?.state?.blocks;
|
|
223
|
+
if (!blocks || Object.keys(blocks).length === 0) return;
|
|
224
|
+
for (const [key, value] of Object.entries(ctx.data)) if (isBlocksDocument(value)) ctx.data[key] = await processBlocksDocument(value, blocks, {
|
|
225
|
+
app: ctx.app,
|
|
226
|
+
db: ctx.db,
|
|
227
|
+
locale: ctx.locale
|
|
228
|
+
});
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Check if a value is a blocks document.
|
|
233
|
+
*/
|
|
234
|
+
function isBlocksDocument(value) {
|
|
235
|
+
if (!value || typeof value !== "object") return false;
|
|
236
|
+
const doc = value;
|
|
237
|
+
return Array.isArray(doc._tree) && typeof doc._values === "object" && doc._values !== null;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
//#endregion
|
|
241
|
+
export { createBlocksPrefetchHook, processBlocksDocument, processDocumentBlocksPrefetch };
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { ViewDefinition } from "../../../../../client/builder/view/view.mjs";
|
|
2
|
+
import { Badge, IconifyIcon } from "../../../../../client/components/component-renderer.mjs";
|
|
3
|
+
import "../../../../../index.mjs";
|
|
4
|
+
import "../components/badge.mjs";
|
|
5
|
+
import "../components/icon.mjs";
|
|
6
|
+
import { _default } from "../fields/array.mjs";
|
|
7
|
+
import { _default as _default$1 } from "../fields/assetPreview.mjs";
|
|
8
|
+
import { _default as _default$2 } from "../fields/blocks.mjs";
|
|
9
|
+
import { _default as _default$3 } from "../fields/boolean.mjs";
|
|
10
|
+
import { _default as _default$4 } from "../fields/date.mjs";
|
|
11
|
+
import { _default as _default$5 } from "../fields/datetime.mjs";
|
|
12
|
+
import { _default as _default$6 } from "../fields/email.mjs";
|
|
13
|
+
import { _default as _default$7 } from "../fields/json.mjs";
|
|
14
|
+
import { _default as _default$8 } from "../fields/number.mjs";
|
|
15
|
+
import { _default as _default$9 } from "../fields/object.mjs";
|
|
16
|
+
import { _default as _default$10 } from "../fields/relation.mjs";
|
|
17
|
+
import { _default as _default$11 } from "../fields/richText.mjs";
|
|
18
|
+
import { _default as _default$12 } from "../fields/select.mjs";
|
|
19
|
+
import { _default as _default$13 } from "../fields/text.mjs";
|
|
20
|
+
import { _default as _default$14 } from "../fields/textarea.mjs";
|
|
21
|
+
import { _default as _default$15 } from "../fields/time.mjs";
|
|
22
|
+
import { _default as _default$16 } from "../fields/upload.mjs";
|
|
23
|
+
import { _default as _default$17 } from "../fields/url.mjs";
|
|
24
|
+
import { _default as _default$18 } from "../pages/dashboard.mjs";
|
|
25
|
+
import { _default as _default$19 } from "../pages/forgotPassword.mjs";
|
|
26
|
+
import { _default as _default$20 } from "../pages/login.mjs";
|
|
27
|
+
import { _default as _default$21 } from "../pages/resetPassword.mjs";
|
|
28
|
+
import { _default as _default$22 } from "../pages/setup.mjs";
|
|
29
|
+
import { _default as _default$23 } from "../widgets/chart.mjs";
|
|
30
|
+
import { _default as _default$24 } from "../widgets/progress.mjs";
|
|
31
|
+
import { _default as _default$25 } from "../widgets/quickActions.mjs";
|
|
32
|
+
import { _default as _default$26 } from "../widgets/recentItems.mjs";
|
|
33
|
+
import { _default as _default$27 } from "../widgets/stats.mjs";
|
|
34
|
+
import { _default as _default$28 } from "../widgets/table.mjs";
|
|
35
|
+
import { _default as _default$29 } from "../widgets/timeline.mjs";
|
|
36
|
+
import { _default as _default$30 } from "../widgets/value.mjs";
|
|
37
|
+
|
|
38
|
+
//#region src/server/modules/admin/client/.generated/module.d.ts
|
|
39
|
+
interface AdminComponents {
|
|
40
|
+
badge: typeof Badge;
|
|
41
|
+
icon: typeof IconifyIcon;
|
|
42
|
+
}
|
|
43
|
+
interface AdminFields {
|
|
44
|
+
array: typeof _default;
|
|
45
|
+
assetPreview: typeof _default$1;
|
|
46
|
+
blocks: typeof _default$2;
|
|
47
|
+
boolean: typeof _default$3;
|
|
48
|
+
date: typeof _default$4;
|
|
49
|
+
datetime: typeof _default$5;
|
|
50
|
+
email: typeof _default$6;
|
|
51
|
+
json: typeof _default$7;
|
|
52
|
+
number: typeof _default$8;
|
|
53
|
+
object: typeof _default$9;
|
|
54
|
+
relation: typeof _default$10;
|
|
55
|
+
richText: typeof _default$11;
|
|
56
|
+
select: typeof _default$12;
|
|
57
|
+
text: typeof _default$13;
|
|
58
|
+
textarea: typeof _default$14;
|
|
59
|
+
time: typeof _default$15;
|
|
60
|
+
upload: typeof _default$16;
|
|
61
|
+
url: typeof _default$17;
|
|
62
|
+
}
|
|
63
|
+
interface AdminPages {
|
|
64
|
+
dashboard: typeof _default$18;
|
|
65
|
+
forgotPassword: typeof _default$19;
|
|
66
|
+
login: typeof _default$20;
|
|
67
|
+
resetPassword: typeof _default$21;
|
|
68
|
+
setup: typeof _default$22;
|
|
69
|
+
}
|
|
70
|
+
interface AdminWidgets {
|
|
71
|
+
chart: typeof _default$23;
|
|
72
|
+
progress: typeof _default$24;
|
|
73
|
+
quickActions: typeof _default$25;
|
|
74
|
+
recentItems: typeof _default$26;
|
|
75
|
+
stats: typeof _default$27;
|
|
76
|
+
table: typeof _default$28;
|
|
77
|
+
timeline: typeof _default$29;
|
|
78
|
+
value: typeof _default$30;
|
|
79
|
+
}
|
|
80
|
+
declare const _module: {
|
|
81
|
+
name: "questpie-admin";
|
|
82
|
+
views: {
|
|
83
|
+
"collection-form": ViewDefinition<"collection-form", "form">;
|
|
84
|
+
"collection-table": ViewDefinition<"collection-table", "list">;
|
|
85
|
+
"global-form": ViewDefinition<"global-form", "form">;
|
|
86
|
+
};
|
|
87
|
+
components: AdminComponents;
|
|
88
|
+
fields: AdminFields;
|
|
89
|
+
pages: AdminPages;
|
|
90
|
+
widgets: AdminWidgets;
|
|
91
|
+
blocks: {};
|
|
92
|
+
};
|
|
93
|
+
//#endregion
|
|
94
|
+
export { _module };
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import collection_form_default from "../views/collection-form.mjs";
|
|
2
|
+
import collection_table_default from "../views/collection-table.mjs";
|
|
3
|
+
import global_form_default from "../views/global-form.mjs";
|
|
4
|
+
import { Badge, IconifyIcon } from "../../../../../client/components/component-renderer.mjs";
|
|
5
|
+
import array_default from "../fields/array.mjs";
|
|
6
|
+
import assetPreview_default from "../fields/assetPreview.mjs";
|
|
7
|
+
import blocks_default from "../fields/blocks.mjs";
|
|
8
|
+
import boolean_default from "../fields/boolean.mjs";
|
|
9
|
+
import date_default from "../fields/date.mjs";
|
|
10
|
+
import datetime_default from "../fields/datetime.mjs";
|
|
11
|
+
import email_default from "../fields/email.mjs";
|
|
12
|
+
import json_default from "../fields/json.mjs";
|
|
13
|
+
import number_default from "../fields/number.mjs";
|
|
14
|
+
import object_default from "../fields/object.mjs";
|
|
15
|
+
import relation_default from "../fields/relation.mjs";
|
|
16
|
+
import richText_default from "../fields/richText.mjs";
|
|
17
|
+
import select_default from "../fields/select.mjs";
|
|
18
|
+
import text_default from "../fields/text.mjs";
|
|
19
|
+
import textarea_default from "../fields/textarea.mjs";
|
|
20
|
+
import time_default from "../fields/time.mjs";
|
|
21
|
+
import upload_default from "../fields/upload.mjs";
|
|
22
|
+
import url_default from "../fields/url.mjs";
|
|
23
|
+
import dashboard_default from "../pages/dashboard.mjs";
|
|
24
|
+
import forgotPassword_default from "../pages/forgotPassword.mjs";
|
|
25
|
+
import login_default from "../pages/login.mjs";
|
|
26
|
+
import resetPassword_default from "../pages/resetPassword.mjs";
|
|
27
|
+
import setup_default from "../pages/setup.mjs";
|
|
28
|
+
import chart_default from "../widgets/chart.mjs";
|
|
29
|
+
import progress_default from "../widgets/progress.mjs";
|
|
30
|
+
import quickActions_default from "../widgets/quickActions.mjs";
|
|
31
|
+
import recentItems_default from "../widgets/recentItems.mjs";
|
|
32
|
+
import stats_default from "../widgets/stats.mjs";
|
|
33
|
+
import table_default from "../widgets/table.mjs";
|
|
34
|
+
import timeline_default from "../widgets/timeline.mjs";
|
|
35
|
+
import value_default from "../widgets/value.mjs";
|
|
36
|
+
|
|
37
|
+
//#region src/server/modules/admin/client/.generated/module.ts
|
|
38
|
+
const _module = {
|
|
39
|
+
name: "questpie-admin",
|
|
40
|
+
views: {
|
|
41
|
+
[collection_form_default.name]: collection_form_default,
|
|
42
|
+
[collection_table_default.name]: collection_table_default,
|
|
43
|
+
[global_form_default.name]: global_form_default
|
|
44
|
+
},
|
|
45
|
+
components: {
|
|
46
|
+
badge: Badge,
|
|
47
|
+
icon: IconifyIcon
|
|
48
|
+
},
|
|
49
|
+
fields: {
|
|
50
|
+
array: array_default,
|
|
51
|
+
assetPreview: assetPreview_default,
|
|
52
|
+
blocks: blocks_default,
|
|
53
|
+
boolean: boolean_default,
|
|
54
|
+
date: date_default,
|
|
55
|
+
datetime: datetime_default,
|
|
56
|
+
email: email_default,
|
|
57
|
+
json: json_default,
|
|
58
|
+
number: number_default,
|
|
59
|
+
object: object_default,
|
|
60
|
+
relation: relation_default,
|
|
61
|
+
richText: richText_default,
|
|
62
|
+
select: select_default,
|
|
63
|
+
text: text_default,
|
|
64
|
+
textarea: textarea_default,
|
|
65
|
+
time: time_default,
|
|
66
|
+
upload: upload_default,
|
|
67
|
+
url: url_default
|
|
68
|
+
},
|
|
69
|
+
pages: {
|
|
70
|
+
dashboard: dashboard_default,
|
|
71
|
+
forgotPassword: forgotPassword_default,
|
|
72
|
+
login: login_default,
|
|
73
|
+
resetPassword: resetPassword_default,
|
|
74
|
+
setup: setup_default
|
|
75
|
+
},
|
|
76
|
+
widgets: {
|
|
77
|
+
chart: chart_default,
|
|
78
|
+
progress: progress_default,
|
|
79
|
+
quickActions: quickActions_default,
|
|
80
|
+
recentItems: recentItems_default,
|
|
81
|
+
stats: stats_default,
|
|
82
|
+
table: table_default,
|
|
83
|
+
timeline: timeline_default,
|
|
84
|
+
value: value_default
|
|
85
|
+
},
|
|
86
|
+
blocks: {}
|
|
87
|
+
};
|
|
88
|
+
var module_default = _module;
|
|
89
|
+
|
|
90
|
+
//#endregion
|
|
91
|
+
export { module_default as default };
|