@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,110 @@
|
|
|
1
|
+
import { ViewKind } from "./view/view.mjs";
|
|
2
|
+
import { AdminState } from "./admin-types.mjs";
|
|
3
|
+
import { RegisteredAdmin } from "./registry.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/client/builder/admin.d.ts
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Input type for Admin - accepts Admin instance or plain state.
|
|
9
|
+
*
|
|
10
|
+
* The plain state form is used by generated admin client configs from codegen.
|
|
11
|
+
*/
|
|
12
|
+
type AdminInput<TState$1 extends AdminState = AdminState> = Admin<TState$1> | TState$1;
|
|
13
|
+
/**
|
|
14
|
+
* Admin runtime instance
|
|
15
|
+
*
|
|
16
|
+
* Provides methods to access admin configuration at runtime.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* // Generated by `questpie generate`:
|
|
21
|
+
* // import admin from "#questpie/admin/.generated/client";
|
|
22
|
+
* import { Admin } from "@questpie/admin/builder";
|
|
23
|
+
*
|
|
24
|
+
* <AdminLayoutProvider admin={admin} ... />
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
declare class Admin<TState$1 extends AdminState = AdminState> {
|
|
28
|
+
readonly state: TState$1;
|
|
29
|
+
constructor(state: TState$1);
|
|
30
|
+
/**
|
|
31
|
+
* Normalize input to Admin instance.
|
|
32
|
+
*
|
|
33
|
+
* Accepts two input forms:
|
|
34
|
+
* - `Admin` instance — returned as-is
|
|
35
|
+
* - Plain `AdminState` object — wraps directly (from codegen)
|
|
36
|
+
*/
|
|
37
|
+
static normalize<TState$1 extends AdminState>(input: AdminInput<TState$1>): Admin<TState$1>;
|
|
38
|
+
/**
|
|
39
|
+
* Get all custom page configurations.
|
|
40
|
+
*/
|
|
41
|
+
getPages(): TState$1["pages"];
|
|
42
|
+
/**
|
|
43
|
+
* Get configuration for a specific page.
|
|
44
|
+
*/
|
|
45
|
+
getPageConfig(name: string): TState$1["pages"][string] | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* Get all registered component implementations.
|
|
48
|
+
*/
|
|
49
|
+
getComponents(): TState$1["components"];
|
|
50
|
+
/**
|
|
51
|
+
* Get a specific component implementation by name.
|
|
52
|
+
*/
|
|
53
|
+
getComponent(name: string): TState$1["components"][string] | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* Get all registered view definitions (flat map with kind discriminant)
|
|
56
|
+
*/
|
|
57
|
+
getViews(): TState$1["views"];
|
|
58
|
+
/**
|
|
59
|
+
* Get a specific view definition by name
|
|
60
|
+
*/
|
|
61
|
+
getView(name: string): TState$1["views"][string] | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Get all views of a specific kind
|
|
64
|
+
*/
|
|
65
|
+
getViewsByKind(kind: ViewKind): Record<string, any>;
|
|
66
|
+
/**
|
|
67
|
+
* Get locale configuration
|
|
68
|
+
*/
|
|
69
|
+
getLocale(): TState$1["locale"];
|
|
70
|
+
/**
|
|
71
|
+
* Get available locales
|
|
72
|
+
*/
|
|
73
|
+
getAvailableLocales(): string[];
|
|
74
|
+
/**
|
|
75
|
+
* Get default locale
|
|
76
|
+
*/
|
|
77
|
+
getDefaultLocale(): string;
|
|
78
|
+
/**
|
|
79
|
+
* Get human-readable label for a locale
|
|
80
|
+
*/
|
|
81
|
+
getLocaleLabel(locale: string): string;
|
|
82
|
+
/**
|
|
83
|
+
* Get translations map from state
|
|
84
|
+
*/
|
|
85
|
+
getTranslations(): TState$1["translations"];
|
|
86
|
+
/**
|
|
87
|
+
* Get all registered field definitions
|
|
88
|
+
*/
|
|
89
|
+
getFields(): TState$1["fields"];
|
|
90
|
+
/**
|
|
91
|
+
* Get a specific field definition
|
|
92
|
+
*/
|
|
93
|
+
getField(name: string): TState$1["fields"][string] | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* Get all registered widget definitions
|
|
96
|
+
*/
|
|
97
|
+
getWidgets(): TState$1["widgets"];
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Infer the app type from an Admin instance
|
|
101
|
+
*/
|
|
102
|
+
type InferAdminCMS<TAdmin> = TAdmin extends Admin<infer TState> ? TState extends {
|
|
103
|
+
"~app": infer TApp;
|
|
104
|
+
} ? TApp : unknown : unknown;
|
|
105
|
+
/**
|
|
106
|
+
* Get the registered Admin type (from module augmentation)
|
|
107
|
+
*/
|
|
108
|
+
type AppAdmin = RegisteredAdmin extends Admin<infer TState> ? Admin<TState> : Admin<AdminState>;
|
|
109
|
+
//#endregion
|
|
110
|
+
export { Admin, AdminInput, AppAdmin, InferAdminCMS };
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { DEFAULT_LOCALE, DEFAULT_LOCALE_CONFIG } from "questpie/shared";
|
|
2
|
+
|
|
3
|
+
//#region src/client/builder/admin.ts
|
|
4
|
+
/**
|
|
5
|
+
* Admin Runtime Class
|
|
6
|
+
*
|
|
7
|
+
* Wraps AdminState with runtime methods for accessing configuration.
|
|
8
|
+
* This is what gets passed to AdminProvider and used throughout the admin UI.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Admin runtime instance
|
|
12
|
+
*
|
|
13
|
+
* Provides methods to access admin configuration at runtime.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* // Generated by `questpie generate`:
|
|
18
|
+
* // import admin from "#questpie/admin/.generated/client";
|
|
19
|
+
* import { Admin } from "@questpie/admin/builder";
|
|
20
|
+
*
|
|
21
|
+
* <AdminLayoutProvider admin={admin} ... />
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
var Admin = class Admin {
|
|
25
|
+
constructor(state) {
|
|
26
|
+
this.state = state;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Normalize input to Admin instance.
|
|
30
|
+
*
|
|
31
|
+
* Accepts two input forms:
|
|
32
|
+
* - `Admin` instance — returned as-is
|
|
33
|
+
* - Plain `AdminState` object — wraps directly (from codegen)
|
|
34
|
+
*/
|
|
35
|
+
static normalize(input) {
|
|
36
|
+
if (input instanceof Admin) return input;
|
|
37
|
+
return new Admin(input);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Get all custom page configurations.
|
|
41
|
+
*/
|
|
42
|
+
getPages() {
|
|
43
|
+
return this.state.pages ?? {};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get configuration for a specific page.
|
|
47
|
+
*/
|
|
48
|
+
getPageConfig(name) {
|
|
49
|
+
return this.state.pages?.[name];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Get all registered component implementations.
|
|
53
|
+
*/
|
|
54
|
+
getComponents() {
|
|
55
|
+
return this.state.components ?? {};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get a specific component implementation by name.
|
|
59
|
+
*/
|
|
60
|
+
getComponent(name) {
|
|
61
|
+
return this.state.components?.[name];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get all registered view definitions (flat map with kind discriminant)
|
|
65
|
+
*/
|
|
66
|
+
getViews() {
|
|
67
|
+
return this.state.views ?? {};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get a specific view definition by name
|
|
71
|
+
*/
|
|
72
|
+
getView(name) {
|
|
73
|
+
return this.state.views?.[name];
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get all views of a specific kind
|
|
77
|
+
*/
|
|
78
|
+
getViewsByKind(kind) {
|
|
79
|
+
const views = this.state.views ?? {};
|
|
80
|
+
const result = {};
|
|
81
|
+
for (const [name, view] of Object.entries(views)) if (view?.kind === kind) result[name] = view;
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Get locale configuration
|
|
86
|
+
*/
|
|
87
|
+
getLocale() {
|
|
88
|
+
return this.state.locale ?? DEFAULT_LOCALE_CONFIG;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Get available locales
|
|
92
|
+
*/
|
|
93
|
+
getAvailableLocales() {
|
|
94
|
+
return this.getLocale().supported ?? [DEFAULT_LOCALE];
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get default locale
|
|
98
|
+
*/
|
|
99
|
+
getDefaultLocale() {
|
|
100
|
+
return this.getLocale().default ?? DEFAULT_LOCALE;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get human-readable label for a locale
|
|
104
|
+
*/
|
|
105
|
+
getLocaleLabel(locale) {
|
|
106
|
+
return {
|
|
107
|
+
en: "English",
|
|
108
|
+
sk: "Slovencina",
|
|
109
|
+
cs: "Cestina",
|
|
110
|
+
de: "Deutsch",
|
|
111
|
+
fr: "Francais",
|
|
112
|
+
es: "Espanol",
|
|
113
|
+
it: "Italiano",
|
|
114
|
+
pt: "Portugues",
|
|
115
|
+
pl: "Polski",
|
|
116
|
+
nl: "Nederlands",
|
|
117
|
+
ru: "Russkij",
|
|
118
|
+
uk: "Ukrainska",
|
|
119
|
+
ja: "Nihongo",
|
|
120
|
+
ko: "Hangugeo",
|
|
121
|
+
zh: "Zhongwen"
|
|
122
|
+
}[locale] ?? locale.toUpperCase();
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get translations map from state
|
|
126
|
+
*/
|
|
127
|
+
getTranslations() {
|
|
128
|
+
return this.state.translations ?? {};
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Get all registered field definitions
|
|
132
|
+
*/
|
|
133
|
+
getFields() {
|
|
134
|
+
return this.state.fields ?? {};
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Get a specific field definition
|
|
138
|
+
*/
|
|
139
|
+
getField(name) {
|
|
140
|
+
return this.state.fields?.[name];
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Get all registered widget definitions
|
|
144
|
+
*/
|
|
145
|
+
getWidgets() {
|
|
146
|
+
return this.state.widgets ?? {};
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
//#endregion
|
|
151
|
+
export { Admin };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { MaybeLazyComponent } from "../types/common.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/client/builder/field/field.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Field definition — a registry entry mapping a field type name to its components.
|
|
7
|
+
*
|
|
8
|
+
* This is what the admin module stores per field type. All field options
|
|
9
|
+
* (label, required, validation, etc.) come from server introspection at runtime,
|
|
10
|
+
* not from the FE definition.
|
|
11
|
+
*/
|
|
12
|
+
interface FieldDefinition<TName extends string = string> {
|
|
13
|
+
readonly name: TName;
|
|
14
|
+
readonly component: MaybeLazyComponent;
|
|
15
|
+
readonly cell?: MaybeLazyComponent;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* A field instance with runtime options from server introspection.
|
|
19
|
+
* Created by `configureField()` when mapping server metadata to field rendering.
|
|
20
|
+
*/
|
|
21
|
+
interface FieldInstance {
|
|
22
|
+
readonly name: string;
|
|
23
|
+
readonly component: MaybeLazyComponent;
|
|
24
|
+
readonly cell?: MaybeLazyComponent;
|
|
25
|
+
readonly "~options": Record<string, unknown>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Create a field definition as a plain frozen object.
|
|
29
|
+
*
|
|
30
|
+
* @param name - Field type name (e.g. "text", "relation")
|
|
31
|
+
* @param config - Component and optional cell component
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* export default field("text", {
|
|
36
|
+
* component: () => import("./text-field.js"),
|
|
37
|
+
* cell: () => import("./cells/primitive-cells.js"),
|
|
38
|
+
* });
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
declare function field<TName extends string>(name: TName, config: {
|
|
42
|
+
component: MaybeLazyComponent;
|
|
43
|
+
cell?: MaybeLazyComponent;
|
|
44
|
+
}): FieldDefinition<TName>;
|
|
45
|
+
/**
|
|
46
|
+
* Create a configured field instance (field + server-provided options).
|
|
47
|
+
* Used when mapping server introspection metadata to field rendering.
|
|
48
|
+
*/
|
|
49
|
+
declare function configureField(base: FieldDefinition, options: Record<string, unknown>): FieldInstance;
|
|
50
|
+
//#endregion
|
|
51
|
+
export { FieldDefinition, FieldInstance, configureField, field };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
//#region src/client/builder/field/field.ts
|
|
2
|
+
/**
|
|
3
|
+
* Create a field definition as a plain frozen object.
|
|
4
|
+
*
|
|
5
|
+
* @param name - Field type name (e.g. "text", "relation")
|
|
6
|
+
* @param config - Component and optional cell component
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* export default field("text", {
|
|
11
|
+
* component: () => import("./text-field.js"),
|
|
12
|
+
* cell: () => import("./cells/primitive-cells.js"),
|
|
13
|
+
* });
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
function field(name, config) {
|
|
17
|
+
return Object.freeze({
|
|
18
|
+
name,
|
|
19
|
+
component: config.component,
|
|
20
|
+
cell: config.cell
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Create a configured field instance (field + server-provided options).
|
|
25
|
+
* Used when mapping server introspection metadata to field rendering.
|
|
26
|
+
*/
|
|
27
|
+
function configureField(base, options) {
|
|
28
|
+
return Object.freeze({
|
|
29
|
+
name: base.name,
|
|
30
|
+
component: base.component,
|
|
31
|
+
cell: base.cell,
|
|
32
|
+
"~options": options
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
//#endregion
|
|
37
|
+
export { configureField, field };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { IconComponent } from "./types/common.mjs";
|
|
2
|
+
import { PageDefinition } from "./page/page.mjs";
|
|
3
|
+
import { AnyWidgetConfig, WidgetAction, WidgetCardVariant, WidgetComponentProps, WidgetConfig } from "./types/widget-types.mjs";
|
|
4
|
+
import { DashboardAction, DashboardConfig, DashboardLayoutItem, DashboardSection, DashboardTabConfig, DashboardTabs } from "./types/ui-config.mjs";
|
|
5
|
+
import { AdminState } from "./admin-types.mjs";
|
|
6
|
+
import { Admin, AppAdmin, InferAdminCMS } from "./admin.mjs";
|
|
7
|
+
import { ComponentRegistry, FieldComponentProps, FieldLayoutItem, FormSidebarConfig, FormViewConfig, SectionLayout, TabConfig, TabsLayout } from "./types/field-types.mjs";
|
|
8
|
+
import { QuestpieApp, QuestpieClient } from "questpie/client";
|
|
9
|
+
import { CollectionInfer } from "questpie";
|
|
10
|
+
|
|
11
|
+
//#region src/client/builder/index.d.ts
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Unparameterised client type used throughout the admin library.
|
|
15
|
+
*
|
|
16
|
+
* The admin package is app-agnostic — it cannot know the concrete `TApp` at
|
|
17
|
+
* build time. This alias replaces the raw `QuestpieClient<any>` escape hatch
|
|
18
|
+
* with a single, intentional definition that documents the trade-off and
|
|
19
|
+
* provides a future narrowing point.
|
|
20
|
+
*/
|
|
21
|
+
type AnyQuestpieClient = QuestpieClient<any>;
|
|
22
|
+
/**
|
|
23
|
+
* Extract collection names from a QuestpieApp config
|
|
24
|
+
*/
|
|
25
|
+
type CollectionNames<TApp extends QuestpieApp> = keyof TApp["collections"] & string;
|
|
26
|
+
/**
|
|
27
|
+
* Extract global names from a QuestpieApp config
|
|
28
|
+
*/
|
|
29
|
+
type GlobalNames<TApp extends QuestpieApp> = keyof NonNullable<TApp["globals"]> & string;
|
|
30
|
+
//#endregion
|
|
31
|
+
export { AnyQuestpieClient, CollectionNames, GlobalNames };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { I18nText } from "../../i18n/types.mjs";
|
|
2
|
+
import { IconComponent, MaybeLazyComponent } from "../types/common.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/client/builder/page/page.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Page definition — a plain frozen object describing a custom admin page.
|
|
8
|
+
*/
|
|
9
|
+
interface PageDefinition<TName extends string = string> {
|
|
10
|
+
readonly name: TName;
|
|
11
|
+
readonly component: MaybeLazyComponent;
|
|
12
|
+
readonly path?: string;
|
|
13
|
+
readonly showInNav?: boolean;
|
|
14
|
+
/** Display label for navigation. Falls back to formatted page name. */
|
|
15
|
+
readonly label?: I18nText;
|
|
16
|
+
/** Icon for navigation sidebar. */
|
|
17
|
+
readonly icon?: IconComponent;
|
|
18
|
+
/** Navigation group this page belongs to. */
|
|
19
|
+
readonly group?: string;
|
|
20
|
+
/** Sort order within the navigation group (default: 0). */
|
|
21
|
+
readonly order?: number;
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { PageDefinition };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
//#region src/client/builder/page/page.ts
|
|
2
|
+
/**
|
|
3
|
+
* Create a custom page as a plain frozen object.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* // Generated by `questpie generate`:
|
|
8
|
+
* export default page("login", {
|
|
9
|
+
* component: async () => ({
|
|
10
|
+
* default: (await import("./login-page.js")).LoginPage,
|
|
11
|
+
* }),
|
|
12
|
+
* showInNav: false,
|
|
13
|
+
* path: "/login",
|
|
14
|
+
* });
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
function page(name, config) {
|
|
18
|
+
return Object.freeze({
|
|
19
|
+
name,
|
|
20
|
+
component: config.component,
|
|
21
|
+
path: config.path,
|
|
22
|
+
showInNav: config.showInNav,
|
|
23
|
+
label: config.label,
|
|
24
|
+
icon: config.icon,
|
|
25
|
+
group: config.group,
|
|
26
|
+
order: config.order
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
//#endregion
|
|
31
|
+
export { page };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Admin } from "./admin.mjs";
|
|
2
|
+
import { Questpie } from "questpie";
|
|
3
|
+
|
|
4
|
+
//#region src/client/builder/registry.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Admin Type Registry for module augmentation.
|
|
8
|
+
*
|
|
9
|
+
* @deprecated Use `createTypedHooks<App>()` instead for new projects.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* // Generated by `questpie generate`:
|
|
14
|
+
* // import admin from "#questpie/admin/.generated/client";
|
|
15
|
+
*
|
|
16
|
+
* import type { App } from "./server/app";
|
|
17
|
+
* import { createTypedHooks } from '@questpie/admin/client';
|
|
18
|
+
*
|
|
19
|
+
* export const {
|
|
20
|
+
* useCollectionList,
|
|
21
|
+
* useCollectionItem,
|
|
22
|
+
* useGlobal,
|
|
23
|
+
* } = createTypedHooks<App>();
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
interface AdminTypeRegistry {}
|
|
27
|
+
/**
|
|
28
|
+
* Extract the app type from AdminTypeRegistry if augmented, otherwise unknown.
|
|
29
|
+
*/
|
|
30
|
+
type RegisteredCMS = AdminTypeRegistry extends {
|
|
31
|
+
app: infer T;
|
|
32
|
+
} ? T extends Questpie<any> ? T : unknown : unknown;
|
|
33
|
+
/**
|
|
34
|
+
* Extract the Admin config type from AdminTypeRegistry if augmented, otherwise unknown.
|
|
35
|
+
*/
|
|
36
|
+
type RegisteredAdmin = AdminTypeRegistry extends {
|
|
37
|
+
admin: infer T;
|
|
38
|
+
} ? T extends Admin<any> ? T : unknown : unknown;
|
|
39
|
+
/**
|
|
40
|
+
* Extract collection names from registered app.
|
|
41
|
+
* Falls back to string if app is not registered.
|
|
42
|
+
*/
|
|
43
|
+
type RegisteredCollectionNames = RegisteredCMS extends Questpie<infer TConfig> ? keyof TConfig["collections"] & string : string;
|
|
44
|
+
/**
|
|
45
|
+
* Extract global names from registered app.
|
|
46
|
+
* Falls back to string if app is not registered.
|
|
47
|
+
*/
|
|
48
|
+
type RegisteredGlobalNames = RegisteredCMS extends Questpie<infer TConfig> ? keyof TConfig["globals"] & string : string;
|
|
49
|
+
//#endregion
|
|
50
|
+
export { RegisteredAdmin, RegisteredCMS, RegisteredCollectionNames, RegisteredGlobalNames };
|