@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,547 @@
|
|
|
1
|
+
import { ComponentReference } from "./common.mjs";
|
|
2
|
+
import { ComponentFactory } from "./views.mjs";
|
|
3
|
+
import { I18nText } from "questpie/shared";
|
|
4
|
+
import { AppContext } from "questpie";
|
|
5
|
+
|
|
6
|
+
//#region src/server/augmentation/dashboard.d.ts
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Context available to widget loader and access functions on the server.
|
|
10
|
+
* Provides typed access to collections, globals, and infrastructure.
|
|
11
|
+
*/
|
|
12
|
+
type WidgetFetchContext = AppContext & {
|
|
13
|
+
/** Database handle — populated at runtime by extractAppServices */
|
|
14
|
+
db: unknown;
|
|
15
|
+
/** Collection APIs — populated at runtime by extractAppServices */
|
|
16
|
+
collections: Record<string, any>;
|
|
17
|
+
/** Global APIs — populated at runtime by extractAppServices */
|
|
18
|
+
globals: Record<string, any>;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Per-widget access rule. Can be a boolean or async function.
|
|
22
|
+
* - `true` or `undefined`: always visible
|
|
23
|
+
* - `false`: always hidden
|
|
24
|
+
* - function: evaluated at request time
|
|
25
|
+
*/
|
|
26
|
+
type WidgetAccessRule = boolean | ((ctx: WidgetFetchContext) => boolean | Promise<boolean>);
|
|
27
|
+
/**
|
|
28
|
+
* Server-side dashboard widget configuration.
|
|
29
|
+
* These are serializable and can be sent via introspection API.
|
|
30
|
+
*/
|
|
31
|
+
type ServerDashboardWidget = ServerStatsWidget | ServerChartWidget | ServerRecentItemsWidget | ServerQuickActionsWidget | ServerCustomWidget | ServerValueWidget | ServerTableWidget | ServerTimelineWidget | ServerProgressWidget;
|
|
32
|
+
/**
|
|
33
|
+
* Stats widget - shows count from a collection
|
|
34
|
+
*/
|
|
35
|
+
interface ServerStatsWidget {
|
|
36
|
+
type: "stats";
|
|
37
|
+
/** Unique widget ID */
|
|
38
|
+
id?: string;
|
|
39
|
+
/** Widget label */
|
|
40
|
+
label?: I18nText;
|
|
41
|
+
/** Icon reference */
|
|
42
|
+
icon?: ComponentReference;
|
|
43
|
+
/** Collection to count */
|
|
44
|
+
collection: string;
|
|
45
|
+
/** Filter to apply */
|
|
46
|
+
filter?: Record<string, unknown>;
|
|
47
|
+
/** Grid span (1-4) */
|
|
48
|
+
span?: number;
|
|
49
|
+
/** Optional server-side data loader (overrides collection count) */
|
|
50
|
+
loader?: (ctx: WidgetFetchContext) => Promise<{
|
|
51
|
+
count: number;
|
|
52
|
+
}>;
|
|
53
|
+
/** Per-widget access rule */
|
|
54
|
+
access?: WidgetAccessRule;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Chart widget - shows data over time
|
|
58
|
+
*/
|
|
59
|
+
interface ServerChartWidget {
|
|
60
|
+
type: "chart";
|
|
61
|
+
/** Unique widget ID */
|
|
62
|
+
id?: string;
|
|
63
|
+
/** Widget label */
|
|
64
|
+
label?: I18nText;
|
|
65
|
+
/** Chart type */
|
|
66
|
+
chartType: "line" | "bar" | "area" | "pie";
|
|
67
|
+
/** Collection to query */
|
|
68
|
+
collection: string;
|
|
69
|
+
/** Date field for time series */
|
|
70
|
+
dateField?: string;
|
|
71
|
+
/** Field to aggregate by (for pie charts, etc.) */
|
|
72
|
+
field?: string;
|
|
73
|
+
/** Time range */
|
|
74
|
+
timeRange?: "7d" | "30d" | "90d" | "1y";
|
|
75
|
+
/** Filter to apply */
|
|
76
|
+
filter?: Record<string, unknown>;
|
|
77
|
+
/** Grid span (1-4) */
|
|
78
|
+
span?: number;
|
|
79
|
+
/** Optional server-side data loader (overrides collection query) */
|
|
80
|
+
loader?: (ctx: WidgetFetchContext) => Promise<Array<{
|
|
81
|
+
name: string;
|
|
82
|
+
value: number;
|
|
83
|
+
}>>;
|
|
84
|
+
/** Per-widget access rule */
|
|
85
|
+
access?: WidgetAccessRule;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Recent items widget - shows latest items from a collection
|
|
89
|
+
*/
|
|
90
|
+
interface ServerRecentItemsWidget {
|
|
91
|
+
type: "recentItems";
|
|
92
|
+
/** Unique widget ID */
|
|
93
|
+
id?: string;
|
|
94
|
+
/** Widget label */
|
|
95
|
+
label?: I18nText;
|
|
96
|
+
/** Collection to query */
|
|
97
|
+
collection: string;
|
|
98
|
+
/** Date field for ordering */
|
|
99
|
+
dateField: string;
|
|
100
|
+
/** Number of items to show */
|
|
101
|
+
limit?: number;
|
|
102
|
+
/** Filter to apply */
|
|
103
|
+
filter?: Record<string, unknown>;
|
|
104
|
+
/** Grid span (1-4) */
|
|
105
|
+
span?: number;
|
|
106
|
+
/** Optional server-side data loader */
|
|
107
|
+
loader?: (ctx: WidgetFetchContext) => Promise<unknown>;
|
|
108
|
+
/** Per-widget access rule */
|
|
109
|
+
access?: WidgetAccessRule;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Quick actions widget - shows action buttons
|
|
113
|
+
*/
|
|
114
|
+
interface ServerQuickActionsWidget {
|
|
115
|
+
type: "quickActions";
|
|
116
|
+
/** Unique widget ID */
|
|
117
|
+
id?: string;
|
|
118
|
+
/** Widget label */
|
|
119
|
+
label?: I18nText;
|
|
120
|
+
/** Actions to display */
|
|
121
|
+
actions: ServerQuickAction[];
|
|
122
|
+
/** Grid span (1-4) */
|
|
123
|
+
span?: number;
|
|
124
|
+
/** Per-widget access rule */
|
|
125
|
+
access?: WidgetAccessRule;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Quick action definition
|
|
129
|
+
*/
|
|
130
|
+
interface ServerQuickAction {
|
|
131
|
+
/** Action label */
|
|
132
|
+
label: I18nText;
|
|
133
|
+
/** Action icon */
|
|
134
|
+
icon?: ComponentReference;
|
|
135
|
+
/** Action to perform */
|
|
136
|
+
action: {
|
|
137
|
+
type: "create";
|
|
138
|
+
collection: string;
|
|
139
|
+
} | {
|
|
140
|
+
type: "link";
|
|
141
|
+
href: string;
|
|
142
|
+
external?: boolean;
|
|
143
|
+
} | {
|
|
144
|
+
type: "page";
|
|
145
|
+
pageId: string;
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Custom widget - rendered by client component
|
|
150
|
+
*/
|
|
151
|
+
interface ServerCustomWidget {
|
|
152
|
+
type: "custom";
|
|
153
|
+
/** Unique widget ID (required for custom) */
|
|
154
|
+
id: string;
|
|
155
|
+
/** Widget label */
|
|
156
|
+
label?: I18nText;
|
|
157
|
+
/** Custom widget type name (resolved by client registry) */
|
|
158
|
+
widgetType: string;
|
|
159
|
+
/** Widget props (passed to client component) */
|
|
160
|
+
props?: Record<string, unknown>;
|
|
161
|
+
/** Grid span (1-4) */
|
|
162
|
+
span?: number;
|
|
163
|
+
/** Optional server-side data loader */
|
|
164
|
+
loader?: (ctx: WidgetFetchContext) => Promise<unknown>;
|
|
165
|
+
/** Per-widget access rule */
|
|
166
|
+
access?: WidgetAccessRule;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Value widget - displays a single metric with optional trend
|
|
170
|
+
*/
|
|
171
|
+
interface ServerValueWidget {
|
|
172
|
+
type: "value";
|
|
173
|
+
/** Unique widget ID */
|
|
174
|
+
id: string;
|
|
175
|
+
/** Widget label */
|
|
176
|
+
label?: I18nText;
|
|
177
|
+
/** Icon reference */
|
|
178
|
+
icon?: ComponentReference;
|
|
179
|
+
/** Grid span (1-4) */
|
|
180
|
+
span?: number;
|
|
181
|
+
/** Auto-refresh interval in milliseconds */
|
|
182
|
+
refreshInterval?: number;
|
|
183
|
+
/** Server-side data loader (required) */
|
|
184
|
+
loader: (ctx: WidgetFetchContext) => Promise<{
|
|
185
|
+
value: number | string;
|
|
186
|
+
formatted?: string;
|
|
187
|
+
label?: I18nText | string;
|
|
188
|
+
subtitle?: I18nText | string;
|
|
189
|
+
footer?: I18nText | string;
|
|
190
|
+
icon?: ComponentReference;
|
|
191
|
+
trend?: {
|
|
192
|
+
value: string;
|
|
193
|
+
icon?: ComponentReference;
|
|
194
|
+
};
|
|
195
|
+
classNames?: Record<string, string>;
|
|
196
|
+
}>;
|
|
197
|
+
/** Per-widget access rule */
|
|
198
|
+
access?: WidgetAccessRule;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Table widget - displays a mini table from a collection
|
|
202
|
+
*/
|
|
203
|
+
interface ServerTableWidget {
|
|
204
|
+
type: "table";
|
|
205
|
+
/** Unique widget ID */
|
|
206
|
+
id: string;
|
|
207
|
+
/** Widget label */
|
|
208
|
+
label?: I18nText;
|
|
209
|
+
/** Collection to fetch from */
|
|
210
|
+
collection: string;
|
|
211
|
+
/** Columns to display */
|
|
212
|
+
columns: Array<string | {
|
|
213
|
+
key: string;
|
|
214
|
+
label?: I18nText;
|
|
215
|
+
}>;
|
|
216
|
+
/** Number of rows */
|
|
217
|
+
limit?: number;
|
|
218
|
+
/** Sort field */
|
|
219
|
+
sortBy?: string;
|
|
220
|
+
/** Sort direction */
|
|
221
|
+
sortOrder?: "asc" | "desc";
|
|
222
|
+
/** Filter */
|
|
223
|
+
filter?: Record<string, unknown>;
|
|
224
|
+
/** Grid span (1-4) */
|
|
225
|
+
span?: number;
|
|
226
|
+
/** Optional server-side data loader */
|
|
227
|
+
loader?: (ctx: WidgetFetchContext) => Promise<unknown>;
|
|
228
|
+
/** Per-widget access rule */
|
|
229
|
+
access?: WidgetAccessRule;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Timeline widget - displays activity/event timeline
|
|
233
|
+
*/
|
|
234
|
+
interface ServerTimelineWidget {
|
|
235
|
+
type: "timeline";
|
|
236
|
+
/** Unique widget ID */
|
|
237
|
+
id: string;
|
|
238
|
+
/** Widget label */
|
|
239
|
+
label?: I18nText;
|
|
240
|
+
/** Max items to show */
|
|
241
|
+
maxItems?: number;
|
|
242
|
+
/** Show timestamps */
|
|
243
|
+
showTimestamps?: boolean;
|
|
244
|
+
/** Timestamp format */
|
|
245
|
+
timestampFormat?: "relative" | "absolute" | "datetime";
|
|
246
|
+
/** Empty state message */
|
|
247
|
+
emptyMessage?: I18nText;
|
|
248
|
+
/** Grid span (1-4) */
|
|
249
|
+
span?: number;
|
|
250
|
+
/** Server-side data loader (required) */
|
|
251
|
+
loader: (ctx: WidgetFetchContext) => Promise<Array<{
|
|
252
|
+
id: string;
|
|
253
|
+
title: string;
|
|
254
|
+
description?: string;
|
|
255
|
+
timestamp: Date | string;
|
|
256
|
+
icon?: ComponentReference;
|
|
257
|
+
variant?: "default" | "success" | "warning" | "error" | "info";
|
|
258
|
+
href?: string;
|
|
259
|
+
}>>;
|
|
260
|
+
/** Per-widget access rule */
|
|
261
|
+
access?: WidgetAccessRule;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Progress widget - displays progress towards a goal
|
|
265
|
+
*/
|
|
266
|
+
interface ServerProgressWidget {
|
|
267
|
+
type: "progress";
|
|
268
|
+
/** Unique widget ID */
|
|
269
|
+
id: string;
|
|
270
|
+
/** Widget label */
|
|
271
|
+
label?: I18nText;
|
|
272
|
+
/** Progress bar color */
|
|
273
|
+
color?: string;
|
|
274
|
+
/** Show percentage */
|
|
275
|
+
showPercentage?: boolean;
|
|
276
|
+
/** Grid span (1-4) */
|
|
277
|
+
span?: number;
|
|
278
|
+
/** Server-side data loader (required) */
|
|
279
|
+
loader: (ctx: WidgetFetchContext) => Promise<{
|
|
280
|
+
current: number;
|
|
281
|
+
target: number;
|
|
282
|
+
label?: string;
|
|
283
|
+
subtitle?: string;
|
|
284
|
+
}>;
|
|
285
|
+
/** Per-widget access rule */
|
|
286
|
+
access?: WidgetAccessRule;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Dashboard section - groups widgets
|
|
290
|
+
*/
|
|
291
|
+
interface ServerDashboardSection {
|
|
292
|
+
type: "section";
|
|
293
|
+
/** Section label */
|
|
294
|
+
label?: I18nText;
|
|
295
|
+
/** Section description */
|
|
296
|
+
description?: I18nText;
|
|
297
|
+
/** Section icon */
|
|
298
|
+
icon?: ComponentReference;
|
|
299
|
+
/** Layout mode */
|
|
300
|
+
layout?: "grid" | "stack";
|
|
301
|
+
/** Grid columns */
|
|
302
|
+
columns?: number;
|
|
303
|
+
/** Wrapper style */
|
|
304
|
+
wrapper?: "flat" | "card" | "collapsible";
|
|
305
|
+
/** Default collapsed (for collapsible) */
|
|
306
|
+
defaultCollapsed?: boolean;
|
|
307
|
+
/** Section items */
|
|
308
|
+
items: ServerDashboardItem[];
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Dashboard tabs - tabbed sections
|
|
312
|
+
*/
|
|
313
|
+
interface ServerDashboardTabs {
|
|
314
|
+
type: "tabs";
|
|
315
|
+
/** Tabs configuration */
|
|
316
|
+
tabs: ServerDashboardTab[];
|
|
317
|
+
/** Default active tab ID */
|
|
318
|
+
defaultTab?: string;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Single tab configuration
|
|
322
|
+
*/
|
|
323
|
+
interface ServerDashboardTab {
|
|
324
|
+
/** Tab ID */
|
|
325
|
+
id: string;
|
|
326
|
+
/** Tab label */
|
|
327
|
+
label: I18nText;
|
|
328
|
+
/** Tab icon */
|
|
329
|
+
icon?: ComponentReference;
|
|
330
|
+
/** Tab items */
|
|
331
|
+
items: ServerDashboardItem[];
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Dashboard layout item
|
|
335
|
+
*/
|
|
336
|
+
type ServerDashboardItem = ServerDashboardWidget | ServerDashboardSection | ServerDashboardTabs;
|
|
337
|
+
/**
|
|
338
|
+
* Dashboard header action shown beside title/description.
|
|
339
|
+
*/
|
|
340
|
+
interface ServerDashboardAction {
|
|
341
|
+
/** Unique action ID */
|
|
342
|
+
id: string;
|
|
343
|
+
/** Action label */
|
|
344
|
+
label: I18nText;
|
|
345
|
+
/** Action icon */
|
|
346
|
+
icon?: ComponentReference;
|
|
347
|
+
/** Action URL */
|
|
348
|
+
href: string;
|
|
349
|
+
/** Visual variant */
|
|
350
|
+
variant?: "default" | "primary" | "secondary" | "outline" | "ghost";
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Server-side dashboard configuration
|
|
354
|
+
*/
|
|
355
|
+
interface ServerDashboardConfig {
|
|
356
|
+
/** Dashboard title */
|
|
357
|
+
title?: I18nText;
|
|
358
|
+
/** Dashboard description */
|
|
359
|
+
description?: I18nText;
|
|
360
|
+
/** Header actions */
|
|
361
|
+
actions?: ServerDashboardAction[];
|
|
362
|
+
/** Grid columns (default: 4) */
|
|
363
|
+
columns?: number;
|
|
364
|
+
/** Gap between widgets */
|
|
365
|
+
gap?: number;
|
|
366
|
+
/** Dashboard items */
|
|
367
|
+
items?: ServerDashboardItem[];
|
|
368
|
+
/** Enable realtime invalidation for dashboard widgets by default */
|
|
369
|
+
realtime?: boolean;
|
|
370
|
+
/** Auto-refresh interval in milliseconds */
|
|
371
|
+
refreshInterval?: number;
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Branding configuration for the admin panel.
|
|
375
|
+
*/
|
|
376
|
+
interface ServerBrandingConfig {
|
|
377
|
+
/** Admin panel name */
|
|
378
|
+
name?: I18nText;
|
|
379
|
+
/** Logo configuration */
|
|
380
|
+
logo?: unknown;
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Action factory for dashboard header actions.
|
|
384
|
+
*/
|
|
385
|
+
interface DashboardActionFactory {
|
|
386
|
+
/** Return action as-is */
|
|
387
|
+
action: (config: ServerDashboardAction) => ServerDashboardAction;
|
|
388
|
+
/** Link action */
|
|
389
|
+
link: (config: ServerDashboardAction) => ServerDashboardAction;
|
|
390
|
+
/** Create action linking to collection create view */
|
|
391
|
+
create: (config: Omit<ServerDashboardAction, "href"> & {
|
|
392
|
+
collection: string;
|
|
393
|
+
}) => ServerDashboardAction;
|
|
394
|
+
/** Global action linking to global edit view */
|
|
395
|
+
global: (config: Omit<ServerDashboardAction, "href"> & {
|
|
396
|
+
global: string;
|
|
397
|
+
}) => ServerDashboardAction;
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Context for dashboard config function
|
|
401
|
+
*/
|
|
402
|
+
interface DashboardConfigContext<TComponents extends Record<string, any> | string = string> {
|
|
403
|
+
/** Dashboard action helpers */
|
|
404
|
+
a: DashboardActionFactory;
|
|
405
|
+
/** Dashboard builder helpers */
|
|
406
|
+
d: {
|
|
407
|
+
/** Create dashboard config */
|
|
408
|
+
dashboard: (config: ServerDashboardConfig) => ServerDashboardConfig;
|
|
409
|
+
/** Create a section */
|
|
410
|
+
section: (config: Omit<ServerDashboardSection, "type">) => ServerDashboardSection;
|
|
411
|
+
/** Create tabs */
|
|
412
|
+
tabs: (config: Omit<ServerDashboardTabs, "type">) => ServerDashboardTabs;
|
|
413
|
+
/** Create a stats widget */
|
|
414
|
+
stats: (config: Omit<ServerStatsWidget, "type">) => ServerStatsWidget;
|
|
415
|
+
/** Create a chart widget */
|
|
416
|
+
chart: (config: Omit<ServerChartWidget, "type">) => ServerChartWidget;
|
|
417
|
+
/** Create a recent items widget */
|
|
418
|
+
recentItems: (config: Omit<ServerRecentItemsWidget, "type">) => ServerRecentItemsWidget;
|
|
419
|
+
/** Create a quick actions widget */
|
|
420
|
+
quickActions: (config: Omit<ServerQuickActionsWidget, "type">) => ServerQuickActionsWidget;
|
|
421
|
+
/** Create a custom widget */
|
|
422
|
+
custom: (config: Omit<ServerCustomWidget, "type">) => ServerCustomWidget;
|
|
423
|
+
/** Create a value widget */
|
|
424
|
+
value: (config: Omit<ServerValueWidget, "type">) => ServerValueWidget;
|
|
425
|
+
/** Create a table widget */
|
|
426
|
+
table: (config: Omit<ServerTableWidget, "type">) => ServerTableWidget;
|
|
427
|
+
/** Create a timeline widget */
|
|
428
|
+
timeline: (config: Omit<ServerTimelineWidget, "type">) => ServerTimelineWidget;
|
|
429
|
+
/** Create a progress widget */
|
|
430
|
+
progress: (config: Omit<ServerProgressWidget, "type">) => ServerProgressWidget;
|
|
431
|
+
};
|
|
432
|
+
/** Component helpers (from registered component registry) */
|
|
433
|
+
c: ComponentFactory<TComponents>;
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* Dashboard action proxy — provided in dashboard callbacks as `a`.
|
|
437
|
+
* Creates dashboard header action objects.
|
|
438
|
+
*/
|
|
439
|
+
interface DashboardActionProxy {
|
|
440
|
+
/** Create link for a collection. */
|
|
441
|
+
create(config: Omit<ServerDashboardAction, "href"> & {
|
|
442
|
+
collection: string;
|
|
443
|
+
}): ServerDashboardAction;
|
|
444
|
+
/** Edit link for a global. */
|
|
445
|
+
global(config: Omit<ServerDashboardAction, "href"> & {
|
|
446
|
+
global: string;
|
|
447
|
+
}): ServerDashboardAction;
|
|
448
|
+
/** Plain link. */
|
|
449
|
+
link(config: ServerDashboardAction): ServerDashboardAction;
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* Dashboard proxy — provided in dashboard callbacks as `d`.
|
|
453
|
+
* Creates serializable widget/section objects.
|
|
454
|
+
*/
|
|
455
|
+
interface DashboardProxy {
|
|
456
|
+
/** Define a dashboard section. */
|
|
457
|
+
section(def: DashboardSectionDef): DashboardSectionDef;
|
|
458
|
+
/** Stats widget — count docs from a collection. */
|
|
459
|
+
stats(def: DashboardItemDef): DashboardItemDef;
|
|
460
|
+
/** Value widget — custom value from async loader. */
|
|
461
|
+
value(def: DashboardItemDef): DashboardItemDef;
|
|
462
|
+
/** Progress widget — progress bar from async loader. */
|
|
463
|
+
progress(def: DashboardItemDef): DashboardItemDef;
|
|
464
|
+
/** Chart widget — aggregate a field into chart. */
|
|
465
|
+
chart(def: DashboardItemDef): DashboardItemDef;
|
|
466
|
+
/** Recent items widget — latest docs from a collection. */
|
|
467
|
+
recentItems(def: DashboardItemDef): DashboardItemDef;
|
|
468
|
+
/** Timeline widget — event stream from async loader. */
|
|
469
|
+
timeline(def: DashboardItemDef): DashboardItemDef;
|
|
470
|
+
/** Table widget — tabular data from async loader. */
|
|
471
|
+
table(def: DashboardItemDef): DashboardItemDef;
|
|
472
|
+
/** Custom widget — resolved by client. */
|
|
473
|
+
custom(def: DashboardItemDef): DashboardItemDef;
|
|
474
|
+
}
|
|
475
|
+
/**
|
|
476
|
+
* Dashboard section definition for contributions.
|
|
477
|
+
*/
|
|
478
|
+
interface DashboardSectionDef {
|
|
479
|
+
/** Unique section ID. */
|
|
480
|
+
id: string;
|
|
481
|
+
/** Section title. */
|
|
482
|
+
label?: I18nText;
|
|
483
|
+
/** Layout mode. */
|
|
484
|
+
layout?: "grid";
|
|
485
|
+
/** Grid columns for this section. */
|
|
486
|
+
columns?: number;
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* Dashboard item (widget) definition for contributions.
|
|
490
|
+
* Each item references a sectionId to indicate which section it belongs to.
|
|
491
|
+
*/
|
|
492
|
+
interface DashboardItemDef {
|
|
493
|
+
/** Which section this item belongs to. */
|
|
494
|
+
sectionId: string;
|
|
495
|
+
/** 'start' to prepend, default is 'end' (append). */
|
|
496
|
+
position?: "start" | "end";
|
|
497
|
+
/** Unique widget ID. */
|
|
498
|
+
id: string;
|
|
499
|
+
/** Widget type. */
|
|
500
|
+
type: "stats" | "value" | "progress" | "chart" | "recentItems" | "timeline" | "table" | "custom";
|
|
501
|
+
/** Display label. */
|
|
502
|
+
label?: I18nText;
|
|
503
|
+
/** Grid span (1-4). */
|
|
504
|
+
span?: number;
|
|
505
|
+
/** Refresh interval in ms. */
|
|
506
|
+
refreshInterval?: number;
|
|
507
|
+
/** Widget-specific config (collection, filter, loader, chartType, etc.) */
|
|
508
|
+
[key: string]: unknown;
|
|
509
|
+
}
|
|
510
|
+
/**
|
|
511
|
+
* Dashboard contribution — what a module or user config contributes.
|
|
512
|
+
* Multiple contributions are merged by createApp() (§5.8.3).
|
|
513
|
+
* Resolved from callback: `dashboard: ({ d, c, a }) => ({ ... })`
|
|
514
|
+
*/
|
|
515
|
+
interface DashboardContribution {
|
|
516
|
+
/** Dashboard title — last module/user wins. */
|
|
517
|
+
title?: I18nText;
|
|
518
|
+
/** Dashboard description — last module/user wins. */
|
|
519
|
+
description?: I18nText;
|
|
520
|
+
/** Grid columns — last module/user wins. */
|
|
521
|
+
columns?: number;
|
|
522
|
+
/** Enable realtime — last module/user wins. */
|
|
523
|
+
realtime?: boolean;
|
|
524
|
+
/** Quick actions — concatenated from all modules. */
|
|
525
|
+
actions?: ServerDashboardAction[];
|
|
526
|
+
/** Section definitions — merged by id across modules. */
|
|
527
|
+
sections?: DashboardSectionDef[];
|
|
528
|
+
/** Widget items — appended to sections by sectionId. */
|
|
529
|
+
items?: DashboardItemDef[];
|
|
530
|
+
}
|
|
531
|
+
/**
|
|
532
|
+
* Context for dashboard callbacks on module() and config().
|
|
533
|
+
*/
|
|
534
|
+
interface DashboardCallbackContext {
|
|
535
|
+
/** Dashboard builder proxy. */
|
|
536
|
+
d: DashboardProxy;
|
|
537
|
+
/** Component proxy (scoped to registered components). */
|
|
538
|
+
c: ComponentFactory;
|
|
539
|
+
/** Dashboard action proxy. */
|
|
540
|
+
a: DashboardActionProxy;
|
|
541
|
+
}
|
|
542
|
+
/**
|
|
543
|
+
* Dashboard callback type for module() and config().
|
|
544
|
+
*/
|
|
545
|
+
type DashboardCallback = (ctx: DashboardCallbackContext) => DashboardContribution;
|
|
546
|
+
//#endregion
|
|
547
|
+
export { DashboardActionFactory, DashboardActionProxy, DashboardCallback, DashboardCallbackContext, DashboardConfigContext, DashboardContribution, DashboardItemDef, DashboardProxy, DashboardSectionDef, ServerBrandingConfig, ServerChartWidget, ServerCustomWidget, ServerDashboardAction, ServerDashboardConfig, ServerDashboardItem, ServerDashboardSection, ServerDashboardTab, ServerDashboardTabs, ServerDashboardWidget, ServerProgressWidget, ServerQuickAction, ServerQuickActionsWidget, ServerRecentItemsWidget, ServerStatsWidget, ServerTableWidget, ServerTimelineWidget, ServerValueWidget, WidgetAccessRule, WidgetFetchContext };
|