@questpie/admin 2.0.0 → 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 +119 -122
- package/dist/augmentation.d.mts +110 -11
- package/dist/client/blocks/block-renderer.d.mts +5 -12
- package/dist/client/blocks/block-renderer.mjs +89 -55
- package/dist/client/blocks/index.d.mts +2 -4
- package/dist/client/blocks/types.d.mts +3 -4
- package/dist/client/blocks/types.mjs +1 -2
- package/dist/client/builder/admin-types.d.mts +11 -44
- package/dist/client/builder/admin.d.mts +34 -45
- package/dist/client/builder/admin.mjs +35 -44
- package/dist/client/builder/field/field.d.mts +27 -205
- package/dist/client/builder/field/field.mjs +22 -68
- package/dist/client/builder/index.d.mts +23 -28
- package/dist/client/builder/page/page.d.mts +15 -27
- package/dist/client/builder/page/page.mjs +21 -17
- package/dist/client/builder/registry.d.mts +14 -34
- package/dist/client/builder/types/action-registry.mjs +148 -14
- package/dist/client/builder/types/action-types.d.mts +8 -35
- package/dist/client/builder/types/collection-types.mjs +1 -2
- package/dist/client/builder/types/common.d.mts +6 -20
- package/dist/client/builder/types/field-types.d.mts +4 -5
- package/dist/client/builder/types/field-types.mjs +1 -2
- package/dist/client/builder/types/ui-config.d.mts +3 -5
- package/dist/client/builder/types/widget-types.d.mts +19 -20
- package/dist/client/builder/validation.d.mts +33 -3
- package/dist/client/builder/validation.mjs +169 -150
- package/dist/client/builder/view/view.d.mts +26 -106
- package/dist/client/builder/view/view.mjs +14 -96
- package/dist/client/builder/widget/widget.d.mts +16 -22
- package/dist/client/builder/widget/widget.mjs +11 -16
- package/dist/client/components/actions/action-button.mjs +207 -97
- package/dist/client/components/actions/action-dialog.mjs +471 -176
- package/dist/client/components/actions/confirmation-dialog.mjs +166 -47
- package/dist/client/components/actions/header-actions.mjs +164 -71
- package/dist/client/components/admin-link.d.mts +8 -9
- package/dist/client/components/admin-link.mjs +127 -48
- package/dist/client/components/auth/auth-guard.d.mts +6 -7
- package/dist/client/components/auth/auth-guard.mjs +9 -9
- package/dist/client/components/auth/auth-loading.d.mts +3 -4
- package/dist/client/components/auth/auth-loading.mjs +38 -10
- package/dist/client/components/blocks/block-canvas.mjs +111 -42
- package/dist/client/components/blocks/block-editor-context.mjs +90 -23
- package/dist/client/components/blocks/block-editor-layout.mjs +176 -59
- package/dist/client/components/blocks/block-editor-provider.mjs +219 -139
- package/dist/client/components/blocks/block-fields-renderer.mjs +212 -42
- package/dist/client/components/blocks/block-insert-button.mjs +168 -51
- package/dist/client/components/blocks/block-item-menu.mjs +312 -110
- package/dist/client/components/blocks/block-item.mjs +372 -125
- package/dist/client/components/blocks/block-library-sidebar.mjs +209 -114
- package/dist/client/components/blocks/block-tree.mjs +73 -15
- package/dist/client/components/blocks/block-type-icon.mjs +65 -20
- package/dist/client/components/blocks/utils/tree-utils.mjs +1 -2
- package/dist/client/components/component-renderer.d.mts +11 -22
- package/dist/client/components/component-renderer.mjs +151 -38
- package/dist/client/components/error-boundary.mjs +77 -25
- package/dist/client/components/fields/array-field.mjs +474 -199
- package/dist/client/components/fields/asset-preview-field.mjs +143 -44
- package/dist/client/components/fields/blocks-field/blocks-field.mjs +143 -35
- package/dist/client/components/fields/boolean-field.mjs +62 -32
- package/dist/client/components/fields/date-field.mjs +46 -12
- package/dist/client/components/fields/datetime-field.mjs +42 -11
- package/dist/client/components/fields/email-field.mjs +57 -28
- package/dist/client/components/fields/field-utils.mjs +1 -2
- package/dist/client/components/fields/field-wrapper.mjs +107 -32
- package/dist/client/components/fields/json-field.mjs +323 -110
- package/dist/client/components/fields/locale-badge.mjs +16 -8
- package/dist/client/components/fields/number-field.mjs +63 -30
- package/dist/client/components/fields/object-array-field.mjs +666 -272
- package/dist/client/components/fields/object-field.mjs +656 -98
- package/dist/client/components/fields/relation/displays/cards-display.mjs +225 -111
- package/dist/client/components/fields/relation/displays/chips-display.mjs +150 -77
- package/dist/client/components/fields/relation/displays/grid-display.mjs +186 -91
- package/dist/client/components/fields/relation/displays/list-display.mjs +230 -111
- package/dist/client/components/fields/relation/displays/table-display.mjs +241 -66
- package/dist/client/components/fields/relation/displays/types.mjs +2 -3
- package/dist/client/components/fields/relation/relation-items-display.mjs +131 -35
- package/dist/client/components/fields/relation-field.mjs +70 -15
- package/dist/client/components/fields/relation-picker.mjs +93 -98
- package/dist/client/components/fields/relation-select.mjs +42 -29
- package/dist/client/components/fields/rich-text-editor/bubble-menu.mjs +90 -41
- package/dist/client/components/fields/rich-text-editor/extensions.mjs +33 -7
- package/dist/client/components/fields/rich-text-editor/image-popover.mjs +48 -23
- package/dist/client/components/fields/rich-text-editor/index.mjs +491 -158
- package/dist/client/components/fields/rich-text-editor/link-popover.mjs +13 -14
- package/dist/client/components/fields/rich-text-editor/presets.mjs +1 -2
- package/dist/client/components/fields/rich-text-editor/slash-commands.mjs +96 -53
- package/dist/client/components/fields/rich-text-editor/table-controls.mjs +416 -107
- package/dist/client/components/fields/rich-text-editor/toolbar.mjs +476 -215
- package/dist/client/components/fields/rich-text-editor/types.mjs +1 -2
- package/dist/client/components/fields/rich-text-editor/utils.mjs +1 -2
- package/dist/client/components/fields/rich-text-field.mjs +55 -17
- package/dist/client/components/fields/select-field.mjs +79 -44
- package/dist/client/components/fields/text-field.mjs +62 -29
- package/dist/client/components/fields/textarea-field.mjs +61 -29
- package/dist/client/components/fields/time-field.mjs +39 -11
- package/dist/client/components/fields/upload-field.mjs +253 -129
- package/dist/client/components/filter-builder/columns-tab.mjs +287 -93
- package/dist/client/components/filter-builder/filter-builder-sheet.mjs +437 -138
- package/dist/client/components/filter-builder/filters-tab.mjs +409 -126
- package/dist/client/components/filter-builder/saved-views-tab.mjs +259 -106
- 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 +231 -108
- package/dist/client/components/media/media-grid.mjs +259 -84
- package/dist/client/components/media/media-picker-dialog.mjs +500 -192
- package/dist/client/components/preview/live-preview-mode.mjs +416 -124
- package/dist/client/components/preview/preview-pane.mjs +353 -144
- package/dist/client/components/primitives/asset-preview.mjs +665 -257
- package/dist/client/components/primitives/checkbox-input.mjs +37 -11
- package/dist/client/components/primitives/date-input.mjs +392 -149
- package/dist/client/components/primitives/dropzone.mjs +314 -185
- package/dist/client/components/primitives/number-input.mjs +14 -10
- package/dist/client/components/primitives/select-multi.mjs +519 -185
- package/dist/client/components/primitives/select-single.mjs +416 -126
- package/dist/client/components/primitives/text-input.mjs +10 -5
- package/dist/client/components/primitives/textarea-input.mjs +10 -5
- package/dist/client/components/primitives/time-input.mjs +118 -45
- package/dist/client/components/primitives/toggle-input.mjs +31 -11
- package/dist/client/components/primitives/types.mjs +1 -2
- package/dist/client/components/sheets/resource-sheet.mjs +72 -64
- package/dist/client/components/ui/accordion.mjs +156 -37
- package/dist/client/components/ui/alert.mjs +70 -17
- package/dist/client/components/ui/badge.mjs +57 -16
- package/dist/client/components/ui/button.mjs +49 -14
- package/dist/client/components/ui/card.mjs +194 -39
- package/dist/client/components/ui/checkbox.mjs +71 -16
- package/dist/client/components/ui/command.mjs +220 -50
- package/dist/client/components/ui/dialog.mjs +265 -52
- package/dist/client/components/ui/drawer.mjs +260 -57
- package/dist/client/components/ui/dropdown-menu.mjs +293 -67
- package/dist/client/components/ui/empty-state.mjs +72 -26
- package/dist/client/components/ui/field.mjs +332 -56
- package/dist/client/components/ui/input-group.mjs +174 -41
- package/dist/client/components/ui/input.mjs +38 -9
- package/dist/client/components/ui/kbd.mjs +37 -8
- package/dist/client/components/ui/label.mjs +38 -8
- package/dist/client/components/ui/popover.mjs +162 -35
- package/dist/client/components/ui/responsive-dialog.mjs +277 -71
- package/dist/client/components/ui/search-input.mjs +101 -36
- package/dist/client/components/ui/select.mjs +297 -57
- package/dist/client/components/ui/separator.mjs +39 -9
- package/dist/client/components/ui/sheet.mjs +253 -51
- package/dist/client/components/ui/sidebar.mjs +700 -182
- package/dist/client/components/ui/skeleton.mjs +33 -8
- package/dist/client/components/ui/sonner.d.mts +2 -3
- package/dist/client/components/ui/sonner.mjs +45 -15
- package/dist/client/components/ui/spinner.mjs +44 -10
- package/dist/client/components/ui/switch.mjs +47 -12
- package/dist/client/components/ui/table.mjs +260 -50
- package/dist/client/components/ui/tabs.mjs +140 -29
- package/dist/client/components/ui/textarea.mjs +33 -8
- package/dist/client/components/ui/toolbar.mjs +105 -23
- package/dist/client/components/ui/tooltip.mjs +130 -29
- package/dist/client/components/widgets/chart-widget.mjs +456 -156
- package/dist/client/components/widgets/progress-widget.mjs +150 -60
- package/dist/client/components/widgets/quick-actions-widget.mjs +175 -87
- package/dist/client/components/widgets/recent-items-widget.mjs +157 -62
- package/dist/client/components/widgets/stats-widget.mjs +153 -42
- package/dist/client/components/widgets/table-widget.mjs +198 -64
- package/dist/client/components/widgets/timeline-widget.mjs +193 -82
- package/dist/client/components/widgets/value-widget.mjs +257 -56
- package/dist/client/components/widgets/widget-skeletons.mjs +390 -108
- package/dist/client/contexts/breadcrumb-context.mjs +44 -16
- package/dist/client/{context → contexts}/focus-context.d.mts +6 -7
- package/dist/client/{context → contexts}/focus-context.mjs +134 -62
- package/dist/client/hooks/typed-hooks.d.mts +38 -12
- package/dist/client/hooks/typed-hooks.mjs +758 -142
- package/dist/client/hooks/use-action.mjs +197 -69
- package/dist/client/hooks/use-admin-config.mjs +39 -10
- package/dist/client/hooks/use-admin-preferences.mjs +118 -15
- package/dist/client/hooks/use-admin-routes.mjs +60 -27
- package/dist/client/hooks/use-audit-history.mjs +157 -0
- package/dist/client/hooks/use-auth.d.mts +14 -15
- package/dist/client/hooks/use-auth.mjs +8 -9
- package/dist/client/hooks/use-collection-fields.mjs +58 -19
- package/dist/client/hooks/use-collection-meta.mjs +45 -13
- package/dist/client/hooks/use-collection-schema.mjs +34 -11
- package/dist/client/hooks/use-collection-validation.mjs +39 -25
- package/dist/client/hooks/use-collection.d.mts +18 -8
- package/dist/client/hooks/use-collection.mjs +560 -101
- package/dist/client/hooks/use-current-user.d.mts +6 -3
- package/dist/client/hooks/use-current-user.mjs +2 -2
- package/dist/client/hooks/use-field-hooks.mjs +73 -65
- package/dist/client/hooks/use-field-options.d.mts +1 -34
- package/dist/client/hooks/use-field-options.mjs +233 -148
- package/dist/client/hooks/use-global-fields.mjs +47 -16
- package/dist/client/hooks/use-global-meta.mjs +57 -11
- package/dist/client/hooks/use-global-schema.mjs +31 -11
- package/dist/client/hooks/use-global.d.mts +13 -2
- package/dist/client/hooks/use-global.mjs +244 -34
- package/dist/client/hooks/use-locks.mjs +331 -124
- package/dist/client/hooks/use-media-query.d.mts +1 -2
- package/dist/client/hooks/use-media-query.mjs +38 -19
- package/dist/client/hooks/use-prefill-params.mjs +2 -2
- package/dist/client/hooks/use-questpie-query-options.mjs +33 -11
- package/dist/client/hooks/use-reactive-fields.d.mts +6 -3
- package/dist/client/hooks/use-reactive-fields.mjs +130 -93
- package/dist/client/hooks/use-realtime-highlight.mjs +115 -53
- package/dist/client/hooks/use-saved-views.mjs +109 -34
- 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 +147 -36
- package/dist/client/hooks/use-server-actions.mjs +191 -0
- package/dist/client/hooks/use-server-validation.mjs +164 -72
- package/dist/client/hooks/use-server-widget-data.d.mts +2 -3
- package/dist/client/hooks/use-server-widget-data.mjs +36 -11
- package/dist/client/hooks/use-setup-status.d.mts +3 -4
- package/dist/client/hooks/use-setup-status.mjs +28 -16
- 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 +1 -2
- package/dist/client/hooks/use-upload.mjs +189 -125
- package/dist/client/hooks/use-validation-error-map.mjs +10 -6
- package/dist/client/hooks/use-view-state.mjs +380 -162
- package/dist/client/i18n/hooks.mjs +191 -67
- package/dist/client/i18n/intl-cache.mjs +1 -2
- package/dist/client/i18n/messages.mjs +1 -2
- package/dist/client/i18n/simple.d.mts +1 -2
- package/dist/client/i18n/simple.mjs +1 -2
- package/dist/client/i18n/types.d.mts +1 -2
- 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 +1 -6
- package/dist/client/preview/block-scope-context.d.mts +5 -6
- package/dist/client/preview/block-scope-context.mjs +50 -27
- package/dist/client/preview/index.d.mts +2 -2
- package/dist/client/preview/preview-banner.d.mts +3 -4
- package/dist/client/preview/preview-banner.mjs +74 -35
- package/dist/client/preview/preview-field.d.mts +9 -10
- package/dist/client/preview/preview-field.mjs +163 -61
- package/dist/client/preview/types.d.mts +1 -2
- package/dist/client/preview/types.mjs +1 -2
- package/dist/client/preview/use-collection-preview.d.mts +1 -2
- package/dist/client/preview/use-collection-preview.mjs +105 -56
- package/dist/client/runtime/content-locales-provider.mjs +87 -36
- package/dist/client/runtime/index.d.mts +1 -3
- package/dist/client/runtime/index.mjs +1 -3
- package/dist/client/runtime/locale-scope.mjs +69 -29
- package/dist/client/runtime/provider.d.mts +18 -9922
- package/dist/client/runtime/provider.mjs +250 -86
- package/dist/client/runtime/routes.d.mts +7 -7
- package/dist/client/runtime/routes.mjs +4 -20
- package/dist/client/runtime/translations-provider.mjs +114 -53
- package/dist/client/scope/picker.d.mts +3 -4
- package/dist/client/scope/picker.mjs +324 -90
- package/dist/client/scope/provider.d.mts +4 -5
- package/dist/client/scope/provider.mjs +30 -22
- package/dist/client/scope/types.d.mts +1 -2
- package/dist/client/styles/index.css +301 -225
- package/dist/client/utils/auto-expand-fields.mjs +23 -5
- package/dist/client/utils/build-field-definitions-from-schema.mjs +10 -7
- package/dist/client/utils/dependency-tracker.mjs +61 -0
- package/dist/client/utils/detect-relations.mjs +1 -2
- package/dist/client/utils/locale-to-flag.d.mts +8 -7
- package/dist/client/utils/locale-to-flag.mjs +1 -2
- package/dist/client/utils/routes.mjs +1 -2
- package/dist/client/views/auth/accept-invite-form.d.mts +3 -4
- package/dist/client/views/auth/accept-invite-form.mjs +414 -121
- package/dist/client/views/auth/auth-layout.d.mts +7 -8
- package/dist/client/views/auth/auth-layout.mjs +93 -30
- package/dist/client/views/auth/forgot-password-form.d.mts +4 -5
- package/dist/client/views/auth/forgot-password-form.mjs +332 -100
- package/dist/client/views/auth/invite-form.mjs +447 -105
- package/dist/client/views/auth/login-form.d.mts +4 -5
- package/dist/client/views/auth/login-form.mjs +340 -120
- package/dist/client/views/auth/reset-password-form.d.mts +4 -5
- package/dist/client/views/auth/reset-password-form.mjs +458 -131
- package/dist/client/views/auth/setup-form.d.mts +4 -5
- package/dist/client/views/auth/setup-form.mjs +481 -141
- package/dist/client/views/collection/auto-form-fields.mjs +686 -266
- package/dist/client/views/collection/bulk-action-toolbar.mjs +392 -203
- package/dist/client/views/collection/cells/complex-cells.mjs +635 -216
- package/dist/client/views/collection/cells/primitive-cells.mjs +332 -102
- package/dist/client/views/collection/cells/relation-cells.mjs +227 -72
- package/dist/client/views/collection/cells/shared/asset-thumbnail.mjs +456 -136
- package/dist/client/views/collection/cells/shared/cell-helpers.mjs +49 -2
- package/dist/client/views/collection/cells/shared/relation-chip.mjs +109 -25
- package/dist/client/views/collection/cells/upload-cells.mjs +16 -8
- package/dist/client/views/collection/columns/build-columns.mjs +51 -12
- package/dist/client/views/collection/columns/column-defaults.mjs +17 -2
- package/dist/client/views/collection/field-context.mjs +10 -11
- package/dist/client/views/collection/field-renderer.mjs +237 -40
- package/dist/client/views/collection/form-view.mjs +1108 -445
- package/dist/client/views/collection/table-view.mjs +300 -163
- package/dist/client/views/collection/view-skeletons.mjs +181 -87
- package/dist/client/views/common/global-search.mjs +557 -233
- package/dist/client/views/dashboard/dashboard-grid.mjs +707 -211
- package/dist/client/views/dashboard/dashboard-widget.mjs +145 -58
- package/dist/client/views/dashboard/widget-card.mjs +315 -102
- package/dist/client/views/globals/global-form-view.mjs +1256 -131
- package/dist/client/views/layout/admin-layout-provider.d.mts +18 -21
- package/dist/client/views/layout/admin-layout-provider.mjs +135 -32
- package/dist/client/views/layout/admin-layout.d.mts +14 -32
- package/dist/client/views/layout/admin-layout.mjs +254 -96
- package/dist/client/views/layout/admin-router.d.mts +10 -42
- package/dist/client/views/layout/admin-router.mjs +1086 -426
- package/dist/client/views/layout/admin-sidebar.d.mts +10 -16
- package/dist/client/views/layout/admin-sidebar.mjs +1211 -382
- package/dist/client/views/layout/admin-topbar.mjs +220 -112
- package/dist/client/views/pages/accept-invite-page.d.mts +5 -6
- package/dist/client/views/pages/accept-invite-page.mjs +302 -96
- package/dist/client/views/pages/dashboard-page.d.mts +7 -16
- package/dist/client/views/pages/dashboard-page.mjs +62 -23
- package/dist/client/views/pages/forgot-password-page.d.mts +7 -10
- package/dist/client/views/pages/forgot-password-page.mjs +112 -40
- package/dist/client/views/pages/invite-page.d.mts +6 -7
- package/dist/client/views/pages/invite-page.mjs +121 -46
- package/dist/client/views/pages/login-page.d.mts +8 -15
- package/dist/client/views/pages/login-page.mjs +152 -57
- package/dist/client/views/pages/reset-password-page.d.mts +7 -10
- package/dist/client/views/pages/reset-password-page.mjs +209 -57
- package/dist/client/views/pages/setup-page.d.mts +7 -10
- package/dist/client/views/pages/setup-page.mjs +108 -43
- package/dist/client-module.d.mts +3 -0
- package/dist/client-module.mjs +3 -0
- package/dist/client.d.mts +55 -48
- package/dist/client.mjs +26 -28
- package/dist/components/rich-text/rich-text-renderer.d.mts +3 -4
- package/dist/components/rich-text/rich-text-renderer.mjs +97 -70
- package/dist/index.d.mts +36 -39
- package/dist/index.mjs +26 -28
- package/dist/plugin.d.mts +2 -0
- package/dist/plugin.mjs +3 -0
- package/dist/server/adapters/nextjs.d.mts +13 -14
- package/dist/server/adapters/nextjs.mjs +12 -13
- package/dist/server/adapters/tanstack.d.mts +10 -11
- package/dist/server/adapters/tanstack.mjs +11 -12
- 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 -1523
- package/dist/server/block/index.d.mts +4 -3
- 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 +10 -78
- package/dist/server/fields/blocks.mjs +74 -115
- package/dist/server/fields/index.d.mts +6 -39
- package/dist/server/fields/index.mjs +6 -7
- package/dist/server/fields/rich-text.d.mts +10 -77
- package/dist/server/fields/rich-text.mjs +59 -100
- package/dist/server/i18n/index.mjs +8 -9
- package/dist/server/i18n/messages/cs.mjs +3 -3
- package/dist/server/i18n/messages/de.mjs +3 -3
- package/dist/server/i18n/messages/en.mjs +217 -3
- package/dist/server/i18n/messages/es.mjs +3 -3
- package/dist/server/i18n/messages/fr.mjs +3 -3
- package/dist/server/i18n/messages/index.mjs +1 -2
- package/dist/server/i18n/messages/pl.mjs +3 -3
- package/dist/server/i18n/messages/pt.mjs +3 -3
- package/dist/server/i18n/messages/sk.mjs +202 -3
- 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/{auth-helpers.d.mts → modules/admin/auth-helpers.d.mts} +13 -14
- package/dist/server/{auth-helpers.mjs → modules/admin/auth-helpers.mjs} +15 -16
- package/dist/server/{block → modules/admin/block}/block-builder.d.mts +96 -32
- package/dist/server/{block → modules/admin/block}/block-builder.mjs +113 -15
- package/dist/server/modules/admin/block/index.d.mts +3 -0
- package/dist/server/{block → modules/admin/block}/introspection.d.mts +10 -5
- package/dist/server/{block → modules/admin/block}/introspection.mjs +18 -7
- package/dist/server/{block → modules/admin/block}/prefetch.d.mts +17 -17
- package/dist/server/{block → modules/admin/block}/prefetch.mjs +17 -16
- 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 +1060 -16846
- package/dist/server/modules/admin/index.mjs +17 -240
- 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/{functions → routes}/execute-action.d.mts +17 -32
- package/dist/server/modules/admin/{functions → routes}/execute-action.mjs +146 -44
- 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/{functions → routes}/preview.d.mts +25 -15
- package/dist/server/modules/admin/{functions → routes}/preview.mjs +84 -97
- package/dist/server/modules/admin/{functions → routes}/reactive.d.mts +19 -44
- package/dist/server/modules/admin/{functions → routes}/reactive.mjs +89 -117
- 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/{functions → routes}/setup.d.mts +11 -32
- 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.collection.mjs → admin-preferences.mjs} +13 -24
- package/dist/server/modules/admin-preferences/collections/locks.collection.mjs +18 -42
- 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 +30 -18
- package/dist/server.mjs +19 -16
- package/dist/shared/preview-utils.d.mts +2 -3
- package/dist/shared/preview-utils.mjs +2 -3
- package/dist/shared/types/saved-views.types.d.mts +2 -2
- package/package.json +50 -40
- 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/_virtual/rolldown_runtime.mjs +0 -18
- package/dist/augmentation.d.mts.map +0 -1
- package/dist/client/blocks/block-registry.d.mts +0 -199
- package/dist/client/blocks/block-registry.d.mts.map +0 -1
- package/dist/client/blocks/block-registry.mjs +0 -88
- package/dist/client/blocks/block-registry.mjs.map +0 -1
- package/dist/client/blocks/block-renderer.d.mts.map +0 -1
- package/dist/client/blocks/block-renderer.mjs.map +0 -1
- package/dist/client/blocks/prefetch.d.mts +0 -45
- package/dist/client/blocks/prefetch.d.mts.map +0 -1
- package/dist/client/blocks/prefetch.mjs +0 -26
- package/dist/client/blocks/prefetch.mjs.map +0 -1
- package/dist/client/blocks/types.d.mts.map +0 -1
- package/dist/client/blocks/types.mjs.map +0 -1
- package/dist/client/builder/admin-builder.d.mts +0 -112
- package/dist/client/builder/admin-builder.d.mts.map +0 -1
- package/dist/client/builder/admin-builder.mjs +0 -185
- package/dist/client/builder/admin-builder.mjs.map +0 -1
- package/dist/client/builder/admin-types.d.mts.map +0 -1
- package/dist/client/builder/admin.d.mts.map +0 -1
- package/dist/client/builder/admin.mjs.map +0 -1
- package/dist/client/builder/defaults/components.mjs +0 -20
- package/dist/client/builder/defaults/components.mjs.map +0 -1
- package/dist/client/builder/defaults/core.d.mts +0 -354
- package/dist/client/builder/defaults/core.d.mts.map +0 -1
- package/dist/client/builder/defaults/core.mjs +0 -49
- package/dist/client/builder/defaults/core.mjs.map +0 -1
- package/dist/client/builder/defaults/fields.mjs +0 -328
- package/dist/client/builder/defaults/fields.mjs.map +0 -1
- package/dist/client/builder/defaults/pages.mjs +0 -58
- package/dist/client/builder/defaults/pages.mjs.map +0 -1
- package/dist/client/builder/defaults/starter.d.mts +0 -351
- package/dist/client/builder/defaults/starter.d.mts.map +0 -1
- package/dist/client/builder/defaults/starter.mjs +0 -28
- package/dist/client/builder/defaults/starter.mjs.map +0 -1
- package/dist/client/builder/defaults/views.mjs +0 -27
- package/dist/client/builder/defaults/views.mjs.map +0 -1
- package/dist/client/builder/defaults/widgets.mjs +0 -31
- package/dist/client/builder/defaults/widgets.mjs.map +0 -1
- package/dist/client/builder/field/field.d.mts.map +0 -1
- package/dist/client/builder/field/field.mjs.map +0 -1
- package/dist/client/builder/index.d.mts.map +0 -1
- package/dist/client/builder/page/page.d.mts.map +0 -1
- package/dist/client/builder/page/page.mjs.map +0 -1
- package/dist/client/builder/proxies.d.mts +0 -2
- package/dist/client/builder/proxies.mjs +0 -24
- package/dist/client/builder/proxies.mjs.map +0 -1
- package/dist/client/builder/qa.d.mts +0 -50
- package/dist/client/builder/qa.d.mts.map +0 -1
- package/dist/client/builder/qa.mjs +0 -42
- package/dist/client/builder/qa.mjs.map +0 -1
- package/dist/client/builder/registry.d.mts.map +0 -1
- package/dist/client/builder/types/action-registry.d.mts +0 -2
- package/dist/client/builder/types/action-registry.mjs.map +0 -1
- package/dist/client/builder/types/action-types.d.mts.map +0 -1
- package/dist/client/builder/types/collection-types.d.mts +0 -199
- package/dist/client/builder/types/collection-types.d.mts.map +0 -1
- package/dist/client/builder/types/collection-types.mjs.map +0 -1
- package/dist/client/builder/types/common.d.mts.map +0 -1
- package/dist/client/builder/types/field-types.d.mts.map +0 -1
- package/dist/client/builder/types/field-types.mjs.map +0 -1
- package/dist/client/builder/types/global-types.d.mts +0 -22
- package/dist/client/builder/types/global-types.d.mts.map +0 -1
- package/dist/client/builder/types/ui-config.d.mts.map +0 -1
- package/dist/client/builder/types/views.d.mts +0 -89
- package/dist/client/builder/types/views.d.mts.map +0 -1
- package/dist/client/builder/types/widget-types.d.mts.map +0 -1
- package/dist/client/builder/validation.mjs.map +0 -1
- package/dist/client/builder/view/view.d.mts.map +0 -1
- package/dist/client/builder/view/view.mjs.map +0 -1
- package/dist/client/builder/widget/widget.d.mts.map +0 -1
- package/dist/client/builder/widget/widget.mjs.map +0 -1
- package/dist/client/components/actions/action-button.d.mts +0 -2
- package/dist/client/components/actions/action-button.mjs.map +0 -1
- package/dist/client/components/actions/action-dialog.d.mts +0 -2
- package/dist/client/components/actions/action-dialog.mjs.map +0 -1
- package/dist/client/components/actions/confirmation-dialog.d.mts +0 -2
- package/dist/client/components/actions/confirmation-dialog.mjs.map +0 -1
- package/dist/client/components/actions/header-actions.d.mts +0 -2
- package/dist/client/components/actions/header-actions.mjs.map +0 -1
- package/dist/client/components/actions/index.d.mts +0 -4
- package/dist/client/components/admin-link.d.mts.map +0 -1
- package/dist/client/components/admin-link.mjs.map +0 -1
- package/dist/client/components/auth/auth-guard.d.mts.map +0 -1
- package/dist/client/components/auth/auth-guard.mjs.map +0 -1
- package/dist/client/components/auth/auth-loading.d.mts.map +0 -1
- package/dist/client/components/auth/auth-loading.mjs.map +0 -1
- package/dist/client/components/auth/index.d.mts +0 -2
- package/dist/client/components/blocks/block-canvas.mjs.map +0 -1
- package/dist/client/components/blocks/block-editor-context.mjs.map +0 -1
- package/dist/client/components/blocks/block-editor-layout.mjs.map +0 -1
- package/dist/client/components/blocks/block-editor-provider.mjs.map +0 -1
- package/dist/client/components/blocks/block-fields-renderer.mjs.map +0 -1
- package/dist/client/components/blocks/block-insert-button.mjs.map +0 -1
- package/dist/client/components/blocks/block-item-menu.mjs.map +0 -1
- package/dist/client/components/blocks/block-item.mjs.map +0 -1
- package/dist/client/components/blocks/block-library-sidebar.mjs.map +0 -1
- package/dist/client/components/blocks/block-tree.mjs.map +0 -1
- package/dist/client/components/blocks/block-type-icon.mjs.map +0 -1
- package/dist/client/components/blocks/utils/tree-utils.mjs.map +0 -1
- package/dist/client/components/component-renderer.d.mts.map +0 -1
- package/dist/client/components/component-renderer.mjs.map +0 -1
- package/dist/client/components/error-boundary.mjs.map +0 -1
- package/dist/client/components/fields/array-field.d.mts +0 -44
- package/dist/client/components/fields/array-field.d.mts.map +0 -1
- package/dist/client/components/fields/array-field.mjs.map +0 -1
- package/dist/client/components/fields/asset-preview-field.d.mts +0 -52
- package/dist/client/components/fields/asset-preview-field.d.mts.map +0 -1
- package/dist/client/components/fields/asset-preview-field.mjs.map +0 -1
- package/dist/client/components/fields/blocks-field/blocks-field.d.mts +0 -41
- package/dist/client/components/fields/blocks-field/blocks-field.d.mts.map +0 -1
- package/dist/client/components/fields/blocks-field/blocks-field.mjs.map +0 -1
- package/dist/client/components/fields/blocks-field/index.d.mts +0 -1
- package/dist/client/components/fields/boolean-field.d.mts +0 -30
- package/dist/client/components/fields/boolean-field.d.mts.map +0 -1
- package/dist/client/components/fields/boolean-field.mjs.map +0 -1
- package/dist/client/components/fields/custom-field.d.mts +0 -3
- package/dist/client/components/fields/date-field.d.mts +0 -22
- package/dist/client/components/fields/date-field.d.mts.map +0 -1
- package/dist/client/components/fields/date-field.mjs.map +0 -1
- package/dist/client/components/fields/datetime-field.d.mts +0 -23
- package/dist/client/components/fields/datetime-field.d.mts.map +0 -1
- package/dist/client/components/fields/datetime-field.mjs.map +0 -1
- package/dist/client/components/fields/email-field.d.mts +0 -19
- package/dist/client/components/fields/email-field.d.mts.map +0 -1
- package/dist/client/components/fields/email-field.mjs.map +0 -1
- package/dist/client/components/fields/embedded-collection.d.mts +0 -3
- package/dist/client/components/fields/field-types.d.mts +0 -571
- package/dist/client/components/fields/field-types.d.mts.map +0 -1
- package/dist/client/components/fields/field-utils.d.mts +0 -1
- package/dist/client/components/fields/field-utils.mjs.map +0 -1
- package/dist/client/components/fields/field-wrapper.d.mts +0 -3
- package/dist/client/components/fields/field-wrapper.mjs.map +0 -1
- package/dist/client/components/fields/index.d.mts +0 -33
- package/dist/client/components/fields/json-field.d.mts +0 -84
- package/dist/client/components/fields/json-field.d.mts.map +0 -1
- package/dist/client/components/fields/json-field.mjs.map +0 -1
- package/dist/client/components/fields/locale-badge.d.mts +0 -1
- package/dist/client/components/fields/locale-badge.mjs.map +0 -1
- package/dist/client/components/fields/number-field.d.mts +0 -23
- package/dist/client/components/fields/number-field.d.mts.map +0 -1
- package/dist/client/components/fields/number-field.mjs.map +0 -1
- package/dist/client/components/fields/object-array-field.d.mts +0 -2
- package/dist/client/components/fields/object-array-field.mjs.map +0 -1
- package/dist/client/components/fields/object-field.d.mts +0 -32
- package/dist/client/components/fields/object-field.d.mts.map +0 -1
- package/dist/client/components/fields/object-field.mjs.map +0 -1
- package/dist/client/components/fields/relation/displays/cards-display.d.mts +0 -2
- package/dist/client/components/fields/relation/displays/cards-display.mjs.map +0 -1
- package/dist/client/components/fields/relation/displays/chips-display.d.mts +0 -2
- package/dist/client/components/fields/relation/displays/chips-display.mjs.map +0 -1
- package/dist/client/components/fields/relation/displays/grid-display.d.mts +0 -2
- package/dist/client/components/fields/relation/displays/grid-display.mjs.map +0 -1
- package/dist/client/components/fields/relation/displays/index.d.mts +0 -6
- package/dist/client/components/fields/relation/displays/list-display.d.mts +0 -2
- package/dist/client/components/fields/relation/displays/list-display.mjs.map +0 -1
- package/dist/client/components/fields/relation/displays/table-display.d.mts +0 -2
- package/dist/client/components/fields/relation/displays/table-display.mjs.map +0 -1
- package/dist/client/components/fields/relation/displays/types.d.mts +0 -22
- package/dist/client/components/fields/relation/displays/types.d.mts.map +0 -1
- package/dist/client/components/fields/relation/displays/types.mjs.map +0 -1
- package/dist/client/components/fields/relation/index.d.mts +0 -3
- package/dist/client/components/fields/relation/relation-items-display.d.mts +0 -5
- package/dist/client/components/fields/relation/relation-items-display.mjs.map +0 -1
- package/dist/client/components/fields/relation-field.d.mts +0 -134
- package/dist/client/components/fields/relation-field.d.mts.map +0 -1
- package/dist/client/components/fields/relation-field.mjs.map +0 -1
- package/dist/client/components/fields/relation-picker.d.mts +0 -4
- package/dist/client/components/fields/relation-picker.mjs.map +0 -1
- package/dist/client/components/fields/relation-select.d.mts +0 -3
- package/dist/client/components/fields/relation-select.mjs.map +0 -1
- package/dist/client/components/fields/reverse-relation-field.d.mts +0 -2
- package/dist/client/components/fields/rich-text-editor/bubble-menu.mjs.map +0 -1
- package/dist/client/components/fields/rich-text-editor/extensions.mjs.map +0 -1
- package/dist/client/components/fields/rich-text-editor/image-popover.mjs.map +0 -1
- package/dist/client/components/fields/rich-text-editor/index.d.mts +0 -4
- package/dist/client/components/fields/rich-text-editor/index.mjs.map +0 -1
- package/dist/client/components/fields/rich-text-editor/link-popover.mjs.map +0 -1
- package/dist/client/components/fields/rich-text-editor/presets.d.mts +0 -11
- package/dist/client/components/fields/rich-text-editor/presets.d.mts.map +0 -1
- package/dist/client/components/fields/rich-text-editor/presets.mjs.map +0 -1
- package/dist/client/components/fields/rich-text-editor/slash-commands.mjs.map +0 -1
- package/dist/client/components/fields/rich-text-editor/table-controls.mjs.map +0 -1
- package/dist/client/components/fields/rich-text-editor/toolbar.mjs.map +0 -1
- package/dist/client/components/fields/rich-text-editor/types.d.mts +0 -78
- package/dist/client/components/fields/rich-text-editor/types.d.mts.map +0 -1
- package/dist/client/components/fields/rich-text-editor/types.mjs.map +0 -1
- package/dist/client/components/fields/rich-text-editor/utils.mjs.map +0 -1
- package/dist/client/components/fields/rich-text-editor/variants.d.mts +0 -2
- package/dist/client/components/fields/rich-text-field.d.mts +0 -14
- package/dist/client/components/fields/rich-text-field.d.mts.map +0 -1
- package/dist/client/components/fields/rich-text-field.mjs.map +0 -1
- package/dist/client/components/fields/select-field.d.mts +0 -25
- package/dist/client/components/fields/select-field.d.mts.map +0 -1
- package/dist/client/components/fields/select-field.mjs.map +0 -1
- package/dist/client/components/fields/status-field.d.mts +0 -2
- package/dist/client/components/fields/text-field.d.mts +0 -22
- package/dist/client/components/fields/text-field.d.mts.map +0 -1
- package/dist/client/components/fields/text-field.mjs.map +0 -1
- package/dist/client/components/fields/textarea-field.d.mts +0 -22
- package/dist/client/components/fields/textarea-field.d.mts.map +0 -1
- package/dist/client/components/fields/textarea-field.mjs.map +0 -1
- package/dist/client/components/fields/time-field.d.mts +0 -20
- package/dist/client/components/fields/time-field.d.mts.map +0 -1
- package/dist/client/components/fields/time-field.mjs.map +0 -1
- package/dist/client/components/fields/upload-field.d.mts +0 -97
- package/dist/client/components/fields/upload-field.d.mts.map +0 -1
- package/dist/client/components/fields/upload-field.mjs.map +0 -1
- package/dist/client/components/filter-builder/columns-tab.d.mts +0 -1
- package/dist/client/components/filter-builder/columns-tab.mjs.map +0 -1
- package/dist/client/components/filter-builder/filter-builder-sheet.d.mts +0 -1
- package/dist/client/components/filter-builder/filter-builder-sheet.mjs.map +0 -1
- package/dist/client/components/filter-builder/filters-tab.d.mts +0 -1
- package/dist/client/components/filter-builder/filters-tab.mjs.map +0 -1
- package/dist/client/components/filter-builder/index.d.mts +0 -5
- package/dist/client/components/filter-builder/saved-views-tab.d.mts +0 -1
- package/dist/client/components/filter-builder/saved-views-tab.mjs.map +0 -1
- package/dist/client/components/index.d.mts +0 -80
- package/dist/client/components/locale-switcher.d.mts +0 -2
- package/dist/client/components/locale-switcher.mjs.map +0 -1
- package/dist/client/components/media/media-grid.mjs.map +0 -1
- package/dist/client/components/media/media-picker-dialog.mjs.map +0 -1
- package/dist/client/components/preview/live-preview-mode.mjs.map +0 -1
- package/dist/client/components/preview/preview-pane.mjs.map +0 -1
- package/dist/client/components/primitives/asset-preview.mjs.map +0 -1
- package/dist/client/components/primitives/checkbox-input.mjs.map +0 -1
- package/dist/client/components/primitives/date-input.mjs.map +0 -1
- package/dist/client/components/primitives/dropzone.mjs.map +0 -1
- package/dist/client/components/primitives/number-input.mjs.map +0 -1
- package/dist/client/components/primitives/select-multi.mjs.map +0 -1
- package/dist/client/components/primitives/select-single.mjs.map +0 -1
- package/dist/client/components/primitives/text-input.mjs.map +0 -1
- package/dist/client/components/primitives/textarea-input.mjs.map +0 -1
- package/dist/client/components/primitives/time-input.mjs.map +0 -1
- package/dist/client/components/primitives/toggle-input.mjs.map +0 -1
- package/dist/client/components/primitives/types.d.mts +0 -14
- package/dist/client/components/primitives/types.d.mts.map +0 -1
- package/dist/client/components/primitives/types.mjs.map +0 -1
- package/dist/client/components/sheets/index.d.mts +0 -1
- package/dist/client/components/sheets/resource-sheet.d.mts +0 -1
- package/dist/client/components/sheets/resource-sheet.mjs.map +0 -1
- package/dist/client/components/ui/accordion.d.mts +0 -2
- package/dist/client/components/ui/accordion.mjs.map +0 -1
- package/dist/client/components/ui/alert.mjs.map +0 -1
- package/dist/client/components/ui/avatar.d.mts +0 -3
- package/dist/client/components/ui/badge.d.mts +0 -3
- package/dist/client/components/ui/badge.mjs.map +0 -1
- package/dist/client/components/ui/button.d.mts +0 -3
- package/dist/client/components/ui/button.mjs.map +0 -1
- package/dist/client/components/ui/card.d.mts +0 -2
- package/dist/client/components/ui/card.mjs.map +0 -1
- package/dist/client/components/ui/checkbox.d.mts +0 -2
- package/dist/client/components/ui/checkbox.mjs.map +0 -1
- package/dist/client/components/ui/combobox.d.mts +0 -3
- package/dist/client/components/ui/command.mjs.map +0 -1
- package/dist/client/components/ui/dialog.d.mts +0 -3
- package/dist/client/components/ui/dialog.mjs.map +0 -1
- package/dist/client/components/ui/drawer.mjs.map +0 -1
- package/dist/client/components/ui/dropdown-menu.d.mts +0 -3
- package/dist/client/components/ui/dropdown-menu.mjs.map +0 -1
- package/dist/client/components/ui/empty-state.mjs.map +0 -1
- package/dist/client/components/ui/field.d.mts +0 -3
- package/dist/client/components/ui/field.mjs.map +0 -1
- package/dist/client/components/ui/input-group.d.mts +0 -4
- package/dist/client/components/ui/input-group.mjs.map +0 -1
- package/dist/client/components/ui/input.d.mts +0 -2
- package/dist/client/components/ui/input.mjs.map +0 -1
- package/dist/client/components/ui/kbd.mjs.map +0 -1
- package/dist/client/components/ui/label.d.mts +0 -2
- package/dist/client/components/ui/label.mjs.map +0 -1
- package/dist/client/components/ui/popover.d.mts +0 -3
- package/dist/client/components/ui/popover.mjs.map +0 -1
- package/dist/client/components/ui/responsive-dialog.mjs.map +0 -1
- package/dist/client/components/ui/scroll-area.d.mts +0 -2
- package/dist/client/components/ui/search-input.mjs.map +0 -1
- package/dist/client/components/ui/select.d.mts +0 -3
- package/dist/client/components/ui/select.mjs.map +0 -1
- package/dist/client/components/ui/separator.d.mts +0 -2
- package/dist/client/components/ui/separator.mjs.map +0 -1
- package/dist/client/components/ui/sheet.d.mts +0 -3
- package/dist/client/components/ui/sheet.mjs.map +0 -1
- package/dist/client/components/ui/sidebar.d.mts +0 -8
- package/dist/client/components/ui/sidebar.mjs.map +0 -1
- package/dist/client/components/ui/skeleton.d.mts +0 -1
- package/dist/client/components/ui/skeleton.mjs.map +0 -1
- package/dist/client/components/ui/sonner.d.mts.map +0 -1
- package/dist/client/components/ui/sonner.mjs.map +0 -1
- package/dist/client/components/ui/spinner.d.mts +0 -1
- package/dist/client/components/ui/spinner.mjs.map +0 -1
- package/dist/client/components/ui/switch.d.mts +0 -2
- package/dist/client/components/ui/switch.mjs.map +0 -1
- package/dist/client/components/ui/table.d.mts +0 -2
- package/dist/client/components/ui/table.mjs.map +0 -1
- package/dist/client/components/ui/tabs.d.mts +0 -3
- package/dist/client/components/ui/tabs.mjs.map +0 -1
- package/dist/client/components/ui/textarea.d.mts +0 -2
- package/dist/client/components/ui/textarea.mjs.map +0 -1
- package/dist/client/components/ui/toolbar.mjs.map +0 -1
- package/dist/client/components/ui/tooltip.d.mts +0 -2
- package/dist/client/components/ui/tooltip.mjs.map +0 -1
- package/dist/client/components/widgets/chart-widget.d.mts +0 -57
- package/dist/client/components/widgets/chart-widget.d.mts.map +0 -1
- package/dist/client/components/widgets/chart-widget.mjs.map +0 -1
- package/dist/client/components/widgets/progress-widget.d.mts +0 -41
- package/dist/client/components/widgets/progress-widget.d.mts.map +0 -1
- package/dist/client/components/widgets/progress-widget.mjs.map +0 -1
- package/dist/client/components/widgets/quick-actions-widget.d.mts +0 -29
- package/dist/client/components/widgets/quick-actions-widget.d.mts.map +0 -1
- package/dist/client/components/widgets/quick-actions-widget.mjs.map +0 -1
- package/dist/client/components/widgets/recent-items-widget.d.mts +0 -51
- package/dist/client/components/widgets/recent-items-widget.d.mts.map +0 -1
- package/dist/client/components/widgets/recent-items-widget.mjs.map +0 -1
- package/dist/client/components/widgets/stats-widget.d.mts +0 -55
- package/dist/client/components/widgets/stats-widget.d.mts.map +0 -1
- package/dist/client/components/widgets/stats-widget.mjs.map +0 -1
- package/dist/client/components/widgets/table-widget.d.mts +0 -31
- package/dist/client/components/widgets/table-widget.d.mts.map +0 -1
- package/dist/client/components/widgets/table-widget.mjs.map +0 -1
- package/dist/client/components/widgets/timeline-widget.d.mts +0 -51
- package/dist/client/components/widgets/timeline-widget.d.mts.map +0 -1
- package/dist/client/components/widgets/timeline-widget.mjs.map +0 -1
- package/dist/client/components/widgets/value-widget.d.mts +0 -39
- package/dist/client/components/widgets/value-widget.d.mts.map +0 -1
- package/dist/client/components/widgets/value-widget.mjs.map +0 -1
- package/dist/client/components/widgets/widget-skeletons.mjs.map +0 -1
- package/dist/client/context/focus-context.d.mts.map +0 -1
- package/dist/client/context/focus-context.mjs.map +0 -1
- package/dist/client/contexts/breadcrumb-context.mjs.map +0 -1
- package/dist/client/hooks/typed-hooks.d.mts.map +0 -1
- package/dist/client/hooks/typed-hooks.mjs.map +0 -1
- package/dist/client/hooks/use-action.mjs.map +0 -1
- package/dist/client/hooks/use-admin-config.mjs.map +0 -1
- package/dist/client/hooks/use-admin-preferences.mjs.map +0 -1
- package/dist/client/hooks/use-admin-routes.mjs.map +0 -1
- package/dist/client/hooks/use-auth.d.mts.map +0 -1
- package/dist/client/hooks/use-auth.mjs.map +0 -1
- package/dist/client/hooks/use-collection-fields.mjs.map +0 -1
- package/dist/client/hooks/use-collection-meta.mjs.map +0 -1
- package/dist/client/hooks/use-collection-schema.mjs.map +0 -1
- package/dist/client/hooks/use-collection-validation.mjs.map +0 -1
- package/dist/client/hooks/use-collection.d.mts.map +0 -1
- package/dist/client/hooks/use-collection.mjs.map +0 -1
- package/dist/client/hooks/use-current-user.d.mts.map +0 -1
- package/dist/client/hooks/use-current-user.mjs.map +0 -1
- package/dist/client/hooks/use-field-hooks.mjs.map +0 -1
- package/dist/client/hooks/use-field-options.d.mts.map +0 -1
- package/dist/client/hooks/use-field-options.mjs.map +0 -1
- package/dist/client/hooks/use-global-fields.mjs.map +0 -1
- package/dist/client/hooks/use-global-meta.mjs.map +0 -1
- package/dist/client/hooks/use-global-schema.mjs.map +0 -1
- package/dist/client/hooks/use-global.d.mts.map +0 -1
- package/dist/client/hooks/use-global.mjs.map +0 -1
- package/dist/client/hooks/use-locks.mjs.map +0 -1
- package/dist/client/hooks/use-media-query.d.mts.map +0 -1
- package/dist/client/hooks/use-media-query.mjs.map +0 -1
- package/dist/client/hooks/use-prefill-params.mjs.map +0 -1
- package/dist/client/hooks/use-questpie-query-options.mjs.map +0 -1
- package/dist/client/hooks/use-reactive-fields.d.mts.map +0 -1
- package/dist/client/hooks/use-reactive-fields.mjs.map +0 -1
- package/dist/client/hooks/use-realtime-highlight.mjs.map +0 -1
- package/dist/client/hooks/use-saved-views.mjs.map +0 -1
- package/dist/client/hooks/use-search.mjs.map +0 -1
- package/dist/client/hooks/use-server-validation.mjs.map +0 -1
- package/dist/client/hooks/use-server-widget-data.d.mts.map +0 -1
- package/dist/client/hooks/use-server-widget-data.mjs.map +0 -1
- package/dist/client/hooks/use-setup-status.d.mts.map +0 -1
- package/dist/client/hooks/use-setup-status.mjs.map +0 -1
- package/dist/client/hooks/use-upload-collection.mjs.map +0 -1
- package/dist/client/hooks/use-upload.d.mts +0 -23
- package/dist/client/hooks/use-upload.d.mts.map +0 -1
- package/dist/client/hooks/use-upload.mjs.map +0 -1
- package/dist/client/hooks/use-validation-error-map.mjs.map +0 -1
- package/dist/client/hooks/use-view-state.mjs.map +0 -1
- package/dist/client/i18n/hooks.mjs.map +0 -1
- package/dist/client/i18n/intl-cache.mjs.map +0 -1
- package/dist/client/i18n/messages.mjs.map +0 -1
- package/dist/client/i18n/simple.d.mts.map +0 -1
- package/dist/client/i18n/simple.mjs.map +0 -1
- package/dist/client/i18n/types.d.mts.map +0 -1
- package/dist/client/lib/utils.d.mts +0 -1
- package/dist/client/lib/utils.mjs.map +0 -1
- package/dist/client/preview/block-scope-context.d.mts.map +0 -1
- package/dist/client/preview/block-scope-context.mjs.map +0 -1
- package/dist/client/preview/preview-banner.d.mts.map +0 -1
- package/dist/client/preview/preview-banner.mjs.map +0 -1
- package/dist/client/preview/preview-field.d.mts.map +0 -1
- package/dist/client/preview/preview-field.mjs.map +0 -1
- package/dist/client/preview/types.d.mts.map +0 -1
- package/dist/client/preview/types.mjs.map +0 -1
- package/dist/client/preview/use-collection-preview.d.mts.map +0 -1
- package/dist/client/preview/use-collection-preview.mjs.map +0 -1
- package/dist/client/runtime/content-locales-provider.mjs.map +0 -1
- package/dist/client/runtime/locale-scope.mjs.map +0 -1
- package/dist/client/runtime/provider.d.mts.map +0 -1
- package/dist/client/runtime/provider.mjs.map +0 -1
- package/dist/client/runtime/routes.d.mts.map +0 -1
- package/dist/client/runtime/routes.mjs.map +0 -1
- package/dist/client/runtime/translations-provider.d.mts +0 -2
- package/dist/client/runtime/translations-provider.mjs.map +0 -1
- package/dist/client/scope/picker.d.mts.map +0 -1
- package/dist/client/scope/picker.mjs.map +0 -1
- package/dist/client/scope/provider.d.mts.map +0 -1
- package/dist/client/scope/provider.mjs.map +0 -1
- package/dist/client/scope/types.d.mts.map +0 -1
- package/dist/client/utils/auto-expand-fields.mjs.map +0 -1
- package/dist/client/utils/build-field-definitions-from-schema.mjs.map +0 -1
- package/dist/client/utils/detect-relations.mjs.map +0 -1
- package/dist/client/utils/locale-to-flag.d.mts.map +0 -1
- package/dist/client/utils/locale-to-flag.mjs.map +0 -1
- package/dist/client/utils/routes.mjs.map +0 -1
- package/dist/client/views/auth/accept-invite-form.d.mts.map +0 -1
- package/dist/client/views/auth/accept-invite-form.mjs.map +0 -1
- package/dist/client/views/auth/auth-layout.d.mts.map +0 -1
- package/dist/client/views/auth/auth-layout.mjs.map +0 -1
- package/dist/client/views/auth/forgot-password-form.d.mts.map +0 -1
- package/dist/client/views/auth/forgot-password-form.mjs.map +0 -1
- package/dist/client/views/auth/index.d.mts +0 -7
- package/dist/client/views/auth/invite-form.d.mts +0 -1
- package/dist/client/views/auth/invite-form.mjs.map +0 -1
- package/dist/client/views/auth/login-form.d.mts.map +0 -1
- package/dist/client/views/auth/login-form.mjs.map +0 -1
- package/dist/client/views/auth/reset-password-form.d.mts.map +0 -1
- package/dist/client/views/auth/reset-password-form.mjs.map +0 -1
- package/dist/client/views/auth/setup-form.d.mts.map +0 -1
- package/dist/client/views/auth/setup-form.mjs.map +0 -1
- package/dist/client/views/collection/auto-form-fields.d.mts +0 -4
- package/dist/client/views/collection/auto-form-fields.mjs.map +0 -1
- package/dist/client/views/collection/bulk-action-toolbar.mjs.map +0 -1
- package/dist/client/views/collection/cells/complex-cells.d.mts +0 -46
- package/dist/client/views/collection/cells/complex-cells.d.mts.map +0 -1
- package/dist/client/views/collection/cells/complex-cells.mjs.map +0 -1
- package/dist/client/views/collection/cells/index.d.mts +0 -7
- package/dist/client/views/collection/cells/primitive-cells.d.mts +0 -76
- package/dist/client/views/collection/cells/primitive-cells.d.mts.map +0 -1
- package/dist/client/views/collection/cells/primitive-cells.mjs.map +0 -1
- package/dist/client/views/collection/cells/relation-cells.d.mts +0 -21
- package/dist/client/views/collection/cells/relation-cells.d.mts.map +0 -1
- package/dist/client/views/collection/cells/relation-cells.mjs.map +0 -1
- package/dist/client/views/collection/cells/shared/asset-thumbnail.d.mts +0 -1
- package/dist/client/views/collection/cells/shared/asset-thumbnail.mjs.map +0 -1
- package/dist/client/views/collection/cells/shared/cell-helpers.d.mts +0 -2
- package/dist/client/views/collection/cells/shared/cell-helpers.mjs.map +0 -1
- package/dist/client/views/collection/cells/shared/relation-chip.d.mts +0 -1
- package/dist/client/views/collection/cells/shared/relation-chip.mjs.map +0 -1
- package/dist/client/views/collection/cells/upload-cells.d.mts +0 -25
- package/dist/client/views/collection/cells/upload-cells.d.mts.map +0 -1
- package/dist/client/views/collection/cells/upload-cells.mjs.map +0 -1
- package/dist/client/views/collection/columns/build-columns.d.mts +0 -2
- package/dist/client/views/collection/columns/build-columns.mjs.map +0 -1
- package/dist/client/views/collection/columns/column-defaults.d.mts +0 -2
- package/dist/client/views/collection/columns/column-defaults.mjs.map +0 -1
- package/dist/client/views/collection/columns/index.d.mts +0 -3
- package/dist/client/views/collection/columns/types.d.mts +0 -2
- package/dist/client/views/collection/field-context.mjs.map +0 -1
- package/dist/client/views/collection/field-renderer.mjs.map +0 -1
- package/dist/client/views/collection/form-view.d.mts +0 -112
- package/dist/client/views/collection/form-view.d.mts.map +0 -1
- package/dist/client/views/collection/form-view.mjs.map +0 -1
- package/dist/client/views/collection/index.d.mts +0 -9
- package/dist/client/views/collection/table-view.d.mts +0 -102
- package/dist/client/views/collection/table-view.d.mts.map +0 -1
- package/dist/client/views/collection/table-view.mjs.map +0 -1
- package/dist/client/views/collection/view-skeletons.mjs.map +0 -1
- package/dist/client/views/common/global-search.d.mts +0 -1
- package/dist/client/views/common/global-search.mjs.map +0 -1
- package/dist/client/views/common/index.d.mts +0 -1
- package/dist/client/views/dashboard/dashboard-grid.mjs.map +0 -1
- package/dist/client/views/dashboard/dashboard-widget.mjs.map +0 -1
- package/dist/client/views/dashboard/widget-card.mjs.map +0 -1
- package/dist/client/views/globals/global-form-view.d.mts +0 -74
- package/dist/client/views/globals/global-form-view.d.mts.map +0 -1
- package/dist/client/views/globals/global-form-view.mjs.map +0 -1
- package/dist/client/views/index.d.mts +0 -28
- package/dist/client/views/layout/admin-layout-provider.d.mts.map +0 -1
- package/dist/client/views/layout/admin-layout-provider.mjs.map +0 -1
- package/dist/client/views/layout/admin-layout.d.mts.map +0 -1
- package/dist/client/views/layout/admin-layout.mjs.map +0 -1
- package/dist/client/views/layout/admin-root.d.mts +0 -7
- package/dist/client/views/layout/admin-router.d.mts.map +0 -1
- package/dist/client/views/layout/admin-router.mjs.map +0 -1
- package/dist/client/views/layout/admin-sidebar.d.mts.map +0 -1
- package/dist/client/views/layout/admin-sidebar.mjs.map +0 -1
- package/dist/client/views/layout/admin-topbar.mjs.map +0 -1
- package/dist/client/views/layout/index.d.mts +0 -5
- package/dist/client/views/pages/accept-invite-page.d.mts.map +0 -1
- package/dist/client/views/pages/accept-invite-page.mjs.map +0 -1
- package/dist/client/views/pages/dashboard-page.d.mts.map +0 -1
- package/dist/client/views/pages/dashboard-page.mjs.map +0 -1
- package/dist/client/views/pages/forgot-password-page.d.mts.map +0 -1
- package/dist/client/views/pages/forgot-password-page.mjs.map +0 -1
- package/dist/client/views/pages/index.d.mts +0 -7
- package/dist/client/views/pages/invite-page.d.mts.map +0 -1
- package/dist/client/views/pages/invite-page.mjs.map +0 -1
- package/dist/client/views/pages/login-page.d.mts.map +0 -1
- package/dist/client/views/pages/login-page.mjs.map +0 -1
- package/dist/client/views/pages/reset-password-page.d.mts.map +0 -1
- package/dist/client/views/pages/reset-password-page.mjs.map +0 -1
- package/dist/client/views/pages/setup-page.d.mts.map +0 -1
- package/dist/client/views/pages/setup-page.mjs.map +0 -1
- package/dist/client.d.mts.map +0 -1
- package/dist/components/rich-text/rich-text-renderer.d.mts.map +0 -1
- package/dist/components/rich-text/rich-text-renderer.mjs.map +0 -1
- package/dist/server/adapters/nextjs.d.mts.map +0 -1
- package/dist/server/adapters/nextjs.mjs.map +0 -1
- package/dist/server/adapters/tanstack.d.mts.map +0 -1
- package/dist/server/adapters/tanstack.mjs.map +0 -1
- package/dist/server/augmentation.d.mts.map +0 -1
- package/dist/server/auth-helpers.d.mts.map +0 -1
- package/dist/server/auth-helpers.mjs.map +0 -1
- package/dist/server/block/block-builder.d.mts.map +0 -1
- package/dist/server/block/block-builder.mjs.map +0 -1
- package/dist/server/block/introspection.d.mts.map +0 -1
- package/dist/server/block/introspection.mjs.map +0 -1
- package/dist/server/block/prefetch.d.mts.map +0 -1
- package/dist/server/block/prefetch.mjs.map +0 -1
- package/dist/server/fields/blocks.d.mts.map +0 -1
- package/dist/server/fields/blocks.mjs.map +0 -1
- package/dist/server/fields/index.d.mts.map +0 -1
- package/dist/server/fields/index.mjs.map +0 -1
- package/dist/server/fields/rich-text.d.mts.map +0 -1
- package/dist/server/fields/rich-text.mjs.map +0 -1
- package/dist/server/i18n/index.d.mts +0 -16
- package/dist/server/i18n/index.d.mts.map +0 -1
- package/dist/server/i18n/index.mjs.map +0 -1
- package/dist/server/i18n/messages/cs.mjs.map +0 -1
- package/dist/server/i18n/messages/de.mjs.map +0 -1
- package/dist/server/i18n/messages/en.mjs.map +0 -1
- package/dist/server/i18n/messages/es.mjs.map +0 -1
- package/dist/server/i18n/messages/fr.mjs.map +0 -1
- package/dist/server/i18n/messages/index.mjs.map +0 -1
- package/dist/server/i18n/messages/pl.mjs.map +0 -1
- package/dist/server/i18n/messages/pt.mjs.map +0 -1
- package/dist/server/i18n/messages/sk.mjs.map +0 -1
- package/dist/server/index.d.mts +0 -20
- package/dist/server/modules/admin/functions/admin-config.mjs +0 -348
- package/dist/server/modules/admin/functions/admin-config.mjs.map +0 -1
- package/dist/server/modules/admin/functions/execute-action.d.mts.map +0 -1
- package/dist/server/modules/admin/functions/execute-action.mjs.map +0 -1
- package/dist/server/modules/admin/functions/locales.mjs +0 -80
- package/dist/server/modules/admin/functions/locales.mjs.map +0 -1
- package/dist/server/modules/admin/functions/preview.d.mts.map +0 -1
- package/dist/server/modules/admin/functions/preview.mjs.map +0 -1
- package/dist/server/modules/admin/functions/reactive.d.mts.map +0 -1
- package/dist/server/modules/admin/functions/reactive.mjs.map +0 -1
- package/dist/server/modules/admin/functions/setup.d.mts.map +0 -1
- package/dist/server/modules/admin/functions/setup.mjs +0 -131
- package/dist/server/modules/admin/functions/setup.mjs.map +0 -1
- package/dist/server/modules/admin/functions/translations.mjs +0 -125
- package/dist/server/modules/admin/functions/translations.mjs.map +0 -1
- package/dist/server/modules/admin/functions/widget-data.d.mts +0 -33
- package/dist/server/modules/admin/functions/widget-data.d.mts.map +0 -1
- package/dist/server/modules/admin/functions/widget-data.mjs +0 -70
- package/dist/server/modules/admin/functions/widget-data.mjs.map +0 -1
- package/dist/server/modules/admin/index.d.mts.map +0 -1
- package/dist/server/modules/admin/index.mjs.map +0 -1
- package/dist/server/modules/admin-preferences/collections/admin-preferences.collection.d.mts +0 -3
- package/dist/server/modules/admin-preferences/collections/admin-preferences.collection.mjs.map +0 -1
- package/dist/server/modules/admin-preferences/collections/locks.collection.d.mts +0 -3
- package/dist/server/modules/admin-preferences/collections/locks.collection.mjs.map +0 -1
- package/dist/server/modules/admin-preferences/collections/saved-views.collection.d.mts +0 -1490
- package/dist/server/modules/admin-preferences/collections/saved-views.collection.d.mts.map +0 -1
- package/dist/server/modules/admin-preferences/collections/saved-views.collection.mjs +0 -57
- package/dist/server/modules/admin-preferences/collections/saved-views.collection.mjs.map +0 -1
- package/dist/server/patch.d.mts +0 -100
- package/dist/server/patch.d.mts.map +0 -1
- package/dist/server/patch.mjs +0 -1062
- package/dist/server/patch.mjs.map +0 -1
- package/dist/shared/preview-utils.d.mts.map +0 -1
- package/dist/shared/preview-utils.mjs.map +0 -1
- package/dist/shared/types/saved-views.types.d.mts.map +0 -1
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
|
|
3
|
-
//#region src/client/blocks/block-registry.tsx
|
|
4
|
-
/**
|
|
5
|
-
* Internal class implementing BlockRegistry.
|
|
6
|
-
*/
|
|
7
|
-
var BlockRegistryImpl = class BlockRegistryImpl {
|
|
8
|
-
constructor(renderers = {}) {
|
|
9
|
-
this.renderers = renderers;
|
|
10
|
-
}
|
|
11
|
-
register(blockName, definition) {
|
|
12
|
-
return new BlockRegistryImpl({
|
|
13
|
-
...this.renderers,
|
|
14
|
-
[blockName]: definition
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
getRenderer(blockName) {
|
|
18
|
-
return this.renderers[blockName];
|
|
19
|
-
}
|
|
20
|
-
hasRenderer(blockName) {
|
|
21
|
-
return blockName in this.renderers;
|
|
22
|
-
}
|
|
23
|
-
getBlockNames() {
|
|
24
|
-
return Object.keys(this.renderers);
|
|
25
|
-
}
|
|
26
|
-
renderBlock(blockName, props, children) {
|
|
27
|
-
const renderer = this.getRenderer(blockName);
|
|
28
|
-
if (!renderer) {
|
|
29
|
-
console.warn(`No renderer registered for block type: ${blockName}`);
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
|
-
const Component = renderer.component;
|
|
33
|
-
return /* @__PURE__ */ jsx(Component, {
|
|
34
|
-
...props,
|
|
35
|
-
children
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
/**
|
|
40
|
-
* Create a new type-safe block renderer registry.
|
|
41
|
-
*
|
|
42
|
-
* The registry infers block value types from the server CMS type,
|
|
43
|
-
* ensuring type safety without duplicating schema definitions.
|
|
44
|
-
*
|
|
45
|
-
* @template TCMS - Server CMS type (e.g., `typeof cms` or `AppCMS`)
|
|
46
|
-
*
|
|
47
|
-
* @example
|
|
48
|
-
* ```ts
|
|
49
|
-
* import { createBlockRegistry } from "@questpie/admin/client";
|
|
50
|
-
* import type { AppCMS } from "@/server/cms";
|
|
51
|
-
*
|
|
52
|
-
* // Create typed registry
|
|
53
|
-
* export const blockRenderers = createBlockRegistry<AppCMS>()
|
|
54
|
-
* .register("hero", {
|
|
55
|
-
* // values is typed: { title: string, subtitle?: string, ... }
|
|
56
|
-
* // data is typed from prefetch return type
|
|
57
|
-
* component: ({ values, data }) => (
|
|
58
|
-
* <section>
|
|
59
|
-
* <h1>{values.title}</h1>
|
|
60
|
-
* {values.subtitle && <p>{values.subtitle}</p>}
|
|
61
|
-
* </section>
|
|
62
|
-
* ),
|
|
63
|
-
* })
|
|
64
|
-
* .register("columns", {
|
|
65
|
-
* component: ({ values, children }) => (
|
|
66
|
-
* <div className={`grid grid-cols-${values.columnCount}`}>
|
|
67
|
-
* {children}
|
|
68
|
-
* </div>
|
|
69
|
-
* ),
|
|
70
|
-
* });
|
|
71
|
-
*
|
|
72
|
-
* // Use in BlockRenderer component
|
|
73
|
-
* function BlockRenderer({ block }: { block: BlockNode }) {
|
|
74
|
-
* return blockRenderers.renderBlock(
|
|
75
|
-
* block.type,
|
|
76
|
-
* { id: block.id, values: blockValues[block.id], data: blockData[block.id] },
|
|
77
|
-
* block.children.map(child => <BlockRenderer key={child.id} block={child} />)
|
|
78
|
-
* );
|
|
79
|
-
* }
|
|
80
|
-
* ```
|
|
81
|
-
*/
|
|
82
|
-
function createBlockRegistry() {
|
|
83
|
-
return new BlockRegistryImpl();
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
//#endregion
|
|
87
|
-
export { createBlockRegistry };
|
|
88
|
-
//# sourceMappingURL=block-registry.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"block-registry.mjs","names":["renderers: TRegistered"],"sources":["../../../src/client/blocks/block-registry.tsx"],"sourcesContent":["/**\n * Block Renderer Registry\n *\n * Type-safe registry for client-side block renderers that infers\n * value types from server-defined block schemas.\n *\n * Key design principles:\n * 1. Server defines WHAT (block schema, prefetch) - see @questpie/admin/server\n * 2. Client defines HOW (React components for rendering)\n * 3. Types are inferred from server CMS type - no duplication\n *\n * @example\n * ```ts\n * import { createBlockRegistry } from \"@questpie/admin/client\";\n * import type { AppCMS } from \"@/server/cms\";\n *\n * export const blockRenderers = createBlockRegistry<AppCMS>()\n * .register(\"hero\", {\n * // Props are inferred from server block schema!\n * // values: { title: string, subtitle?: string, alignment: \"left\" | \"center\" | \"right\", ... }\n * // data: Awaited<ReturnType<typeof heroBlock.prefetch>>\n * component: ({ values, data }) => (\n * <section className={`hero hero--${values.alignment}`}>\n * <h1>{values.title}</h1>\n * </section>\n * ),\n * })\n * .register(\"featuredPosts\", {\n * component: ({ values, data }) => (\n * <div className=\"featured-posts\">\n * {data?.posts?.map(post => <PostCard key={post.id} post={post} />)}\n * </div>\n * ),\n * });\n * ```\n */\n\nimport type * as React from \"react\";\n\n// ============================================================================\n// Server Block Type Extraction\n// ============================================================================\n\n/**\n * Extract blocks from CMS type.\n * Handles the state.blocks structure from QuestpieBuilder.\n */\nexport type ExtractServerBlocks<TCMS> = TCMS extends {\n state: { blocks: infer B };\n}\n ? B extends Record<string, any>\n ? B\n : Record<string, never>\n : Record<string, never>;\n\n/**\n * Get block names from CMS type.\n */\nexport type ServerBlockNames<TCMS> = keyof ExtractServerBlocks<TCMS>;\n\n/**\n * Extract field values type from a server block definition.\n * Looks at the block's state.fields and extracts value types.\n */\nexport type ExtractBlockFieldValues<TBlock> = TBlock extends {\n state: { fields: infer TFields };\n}\n ? TFields extends Record<string, { $types: { value: infer V } }>\n ? { [K in keyof TFields]: TFields[K][\"$types\"][\"value\"] }\n : Record<string, unknown>\n : Record<string, unknown>;\n\n/**\n * Extract prefetch data type from a server block definition.\n * Looks at the block's state.prefetch return type.\n */\nexport type ExtractBlockPrefetchData<TBlock> = TBlock extends {\n state: { prefetch: (params: any) => Promise<infer R> };\n}\n ? R\n : TBlock extends { state: { prefetch: (params: any) => infer R } }\n ? R\n : undefined;\n\n/**\n * Block values type for a specific block name in a CMS.\n */\nexport type BlockValues<\n TCMS,\n TBlockName extends keyof ExtractServerBlocks<TCMS>,\n> = ExtractBlockFieldValues<ExtractServerBlocks<TCMS>[TBlockName]>;\n\n/**\n * Block prefetch data type for a specific block name in a CMS.\n */\nexport type BlockPrefetchData<\n TCMS,\n TBlockName extends keyof ExtractServerBlocks<TCMS>,\n> = ExtractBlockPrefetchData<ExtractServerBlocks<TCMS>[TBlockName]>;\n\n// ============================================================================\n// Block Renderer Types\n// ============================================================================\n\n/**\n * Props passed to block renderer components.\n */\nexport interface BlockRendererProps<\n TValues = Record<string, unknown>,\n TData = unknown,\n> {\n /** Block instance ID */\n id: string;\n /** Block field values */\n values: TValues;\n /** Data from server-side prefetch (if block has prefetch defined) */\n data: TData;\n /** Rendered child blocks (for layout blocks) */\n children?: React.ReactNode;\n /** Whether this block is currently selected in the editor */\n isSelected?: boolean;\n /** Whether rendering in preview mode */\n isPreview?: boolean;\n}\n\n/**\n * Block renderer component type.\n */\nexport type BlockRendererComponent<\n TValues = Record<string, unknown>,\n TData = unknown,\n> = React.ComponentType<BlockRendererProps<TValues, TData>>;\n\n/**\n * Block renderer definition.\n */\nexport interface BlockRendererDefinition<\n TValues = Record<string, unknown>,\n TData = unknown,\n> {\n /** React component for rendering the block */\n component: BlockRendererComponent<TValues, TData>;\n}\n\n// ============================================================================\n// Block Registry\n// ============================================================================\n\n/**\n * Type-safe block renderer registry.\n * Tracks which blocks have been registered for type checking.\n */\nexport interface BlockRegistry<\n TCMS,\n TRegistered extends Record<string, BlockRendererDefinition<any, any>> =\n Record<string, never>,\n> {\n /**\n * Register a renderer for a block type.\n *\n * @param blockName - Name of the block (must match server block definition)\n * @param definition - Block renderer definition with component\n * @returns Updated registry with the new block registered\n *\n * @example\n * ```ts\n * registry.register(\"hero\", {\n * component: ({ values, data }) => <HeroSection {...values} data={data} />\n * })\n * ```\n */\n register<TBlockName extends ServerBlockNames<TCMS> & string>(\n blockName: TBlockName,\n definition: BlockRendererDefinition<\n BlockValues<TCMS, TBlockName>,\n BlockPrefetchData<TCMS, TBlockName>\n >,\n ): BlockRegistry<\n TCMS,\n TRegistered & {\n [K in TBlockName]: BlockRendererDefinition<\n BlockValues<TCMS, TBlockName>,\n BlockPrefetchData<TCMS, TBlockName>\n >;\n }\n >;\n\n /**\n * Get the registered renderers.\n */\n readonly renderers: TRegistered;\n\n /**\n * Get a renderer by block name (runtime).\n */\n getRenderer(blockName: string): BlockRendererDefinition<any, any> | undefined;\n\n /**\n * Check if a block has a registered renderer (runtime).\n */\n hasRenderer(blockName: string): boolean;\n\n /**\n * Get all registered block names (runtime).\n */\n getBlockNames(): string[];\n\n /**\n * Render a block by name (runtime helper).\n */\n renderBlock(\n blockName: string,\n props: Omit<BlockRendererProps<any, any>, \"children\">,\n children?: React.ReactNode,\n ): React.ReactNode;\n}\n\n// ============================================================================\n// Registry Implementation\n// ============================================================================\n\n/**\n * Internal class implementing BlockRegistry.\n */\nclass BlockRegistryImpl<\n TCMS,\n TRegistered extends Record<string, BlockRendererDefinition<any, any>>,\n> implements BlockRegistry<TCMS, TRegistered> {\n constructor(public readonly renderers: TRegistered = {} as TRegistered) {}\n\n register<TBlockName extends ServerBlockNames<TCMS> & string>(\n blockName: TBlockName,\n definition: BlockRendererDefinition<\n BlockValues<TCMS, TBlockName>,\n BlockPrefetchData<TCMS, TBlockName>\n >,\n ): BlockRegistry<\n TCMS,\n TRegistered & {\n [K in TBlockName]: BlockRendererDefinition<\n BlockValues<TCMS, TBlockName>,\n BlockPrefetchData<TCMS, TBlockName>\n >;\n }\n > {\n return new BlockRegistryImpl({\n ...this.renderers,\n [blockName]: definition,\n } as any);\n }\n\n getRenderer(\n blockName: string,\n ): BlockRendererDefinition<any, any> | undefined {\n return (\n this.renderers as Record<string, BlockRendererDefinition<any, any>>\n )[blockName];\n }\n\n hasRenderer(blockName: string): boolean {\n return blockName in this.renderers;\n }\n\n getBlockNames(): string[] {\n return Object.keys(this.renderers);\n }\n\n renderBlock(\n blockName: string,\n props: Omit<BlockRendererProps<any, any>, \"children\">,\n children?: React.ReactNode,\n ): React.ReactNode {\n const renderer = this.getRenderer(blockName);\n if (!renderer) {\n console.warn(`No renderer registered for block type: ${blockName}`);\n return null;\n }\n const Component = renderer.component;\n return <Component {...props} children={children} />;\n }\n}\n\n// ============================================================================\n// Factory Function\n// ============================================================================\n\n/**\n * Create a new type-safe block renderer registry.\n *\n * The registry infers block value types from the server CMS type,\n * ensuring type safety without duplicating schema definitions.\n *\n * @template TCMS - Server CMS type (e.g., `typeof cms` or `AppCMS`)\n *\n * @example\n * ```ts\n * import { createBlockRegistry } from \"@questpie/admin/client\";\n * import type { AppCMS } from \"@/server/cms\";\n *\n * // Create typed registry\n * export const blockRenderers = createBlockRegistry<AppCMS>()\n * .register(\"hero\", {\n * // values is typed: { title: string, subtitle?: string, ... }\n * // data is typed from prefetch return type\n * component: ({ values, data }) => (\n * <section>\n * <h1>{values.title}</h1>\n * {values.subtitle && <p>{values.subtitle}</p>}\n * </section>\n * ),\n * })\n * .register(\"columns\", {\n * component: ({ values, children }) => (\n * <div className={`grid grid-cols-${values.columnCount}`}>\n * {children}\n * </div>\n * ),\n * });\n *\n * // Use in BlockRenderer component\n * function BlockRenderer({ block }: { block: BlockNode }) {\n * return blockRenderers.renderBlock(\n * block.type,\n * { id: block.id, values: blockValues[block.id], data: blockData[block.id] },\n * block.children.map(child => <BlockRenderer key={child.id} block={child} />)\n * );\n * }\n * ```\n */\nexport function createBlockRegistry<TCMS>(): BlockRegistry<\n TCMS,\n Record<string, never>\n> {\n return new BlockRegistryImpl<TCMS, Record<string, never>>();\n}\n\n// ============================================================================\n// Utility Types for Advanced Usage\n// ============================================================================\n\n/**\n * Extract the component props type for a registered block.\n * Useful when you need to type component props externally.\n *\n * @example\n * ```ts\n * type HeroProps = BlockComponentProps<AppCMS, \"hero\">;\n * // { id: string; values: HeroValues; data: HeroData; children?: ReactNode; ... }\n * ```\n */\nexport type BlockComponentProps<\n TCMS,\n TBlockName extends ServerBlockNames<TCMS>,\n> = BlockRendererProps<\n BlockValues<TCMS, TBlockName>,\n BlockPrefetchData<TCMS, TBlockName>\n>;\n\n/**\n * Helper type to get all possible block value types from CMS.\n * Useful for union types or discriminated unions.\n *\n * @example\n * ```ts\n * type AnyBlockValues = AllBlockValues<AppCMS>;\n * // { hero: HeroValues; text: TextValues; columns: ColumnsValues; ... }\n * ```\n */\nexport type AllBlockValues<TCMS> = {\n [K in ServerBlockNames<TCMS> & string]: BlockValues<TCMS, K>;\n};\n\n/**\n * Helper type to get all possible block data types from CMS.\n *\n * @example\n * ```ts\n * type AnyBlockData = AllBlockData<AppCMS>;\n * // { hero: HeroData; featuredPosts: { posts: Post[] }; ... }\n * ```\n */\nexport type AllBlockData<TCMS> = {\n [K in ServerBlockNames<TCMS> & string]: BlockPrefetchData<TCMS, K>;\n};\n"],"mappings":";;;;;;AAgOA,IAAM,oBAAN,MAAM,kBAGwC;CAC5C,YAAY,AAAgBA,YAAyB,EAAE,EAAiB;EAA5C;;CAE5B,SACE,WACA,YAYA;AACA,SAAO,IAAI,kBAAkB;GAC3B,GAAG,KAAK;IACP,YAAY;GACd,CAAQ;;CAGX,YACE,WAC+C;AAC/C,SACE,KAAK,UACL;;CAGJ,YAAY,WAA4B;AACtC,SAAO,aAAa,KAAK;;CAG3B,gBAA0B;AACxB,SAAO,OAAO,KAAK,KAAK,UAAU;;CAGpC,YACE,WACA,OACA,UACiB;EACjB,MAAM,WAAW,KAAK,YAAY,UAAU;AAC5C,MAAI,CAAC,UAAU;AACb,WAAQ,KAAK,0CAA0C,YAAY;AACnE,UAAO;;EAET,MAAM,YAAY,SAAS;AAC3B,SAAO,oBAAC;GAAU,GAAI;GAAiB;IAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDvD,SAAgB,sBAGd;AACA,QAAO,IAAI,mBAAgD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"block-renderer.d.mts","names":[],"sources":["../../../src/client/blocks/block-renderer.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;;KA8BY,eAAA;;;UAGH;SACD;aACI,OAAA,CAAM;MACZ,OAAA,CAAM;;;;KAKA,kBAAA;;WAEF;;aAEE,eAAe;;SAEnB;;;;;;;;;;;;;;;iBAgBQ,aAAA;;;;;;;GAOb,qBAAkB,mBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"block-renderer.mjs","names":[],"sources":["../../../src/client/blocks/block-renderer.tsx"],"sourcesContent":["/**\n * BlockRenderer Component\n *\n * Renders a tree of blocks using registered block definitions.\n * Each block type has a renderer component that receives the block's values.\n *\n * @example\n * ```tsx\n * import { BlockRenderer } from \"@questpie/admin/client\";\n * import { blocks } from \"~/admin/blocks\";\n *\n * function PageContent({ page }) {\n * return (\n * <BlockRenderer\n * content={page.content}\n * blocks={blocks}\n * />\n * );\n * }\n * ```\n */\n\nimport type * as React from \"react\";\nimport { BlockScopeProvider } from \"../preview/block-scope-context.js\";\nimport type { BlockContent, BlockNode } from \"./types\";\n\n/**\n * Block renderer function type.\n * Consumers provide their own renderers mapped by block type.\n */\nexport type BlockRendererFn = (props: {\n\tid: string;\n\ttype: string;\n\tvalues: Record<string, unknown>;\n\tdata?: Record<string, unknown>;\n\tchildren?: React.ReactNode;\n}) => React.ReactNode;\n\n/**\n * Props for BlockRenderer component.\n */\nexport type BlockRendererProps = {\n\t/** Block content from API (tree + values) */\n\tcontent: BlockContent;\n\t/** Block renderers mapped by type */\n\trenderers: Record<string, BlockRendererFn>;\n\t/** Prefetched data by block ID (optional, for SSR) */\n\tdata?: Record<string, unknown>;\n\t/** Currently selected block ID (for editor mode) */\n\tselectedBlockId?: string | null;\n\t/** Block click handler (for editor mode) */\n\tonBlockClick?: (blockId: string) => void;\n\t/** Custom class name for the container */\n\tclassName?: string;\n};\n\n/**\n * Renders a tree of blocks.\n *\n * Iterates through the block tree and renders each block using its\n * registered renderer component. Layout blocks receive their rendered\n * children as the `children` prop.\n */\nexport function BlockRenderer({\n\tcontent,\n\trenderers,\n\tdata = {},\n\tselectedBlockId,\n\tonBlockClick,\n\tclassName,\n}: BlockRendererProps) {\n\t/**\n\t * Recursively render a block node.\n\t */\n\tfunction renderBlock(node: BlockNode): React.ReactNode {\n\t\tconst renderFn = renderers[node.type];\n\n\t\tif (!renderFn) {\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`[BlockRenderer] No renderer found for block type \"${node.type}\"`,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\tconst values = content._values[node.id] || {};\n\t\tconst blockData = data[node.id] as Record<string, unknown> | undefined;\n\t\tconst isSelected = selectedBlockId === node.id;\n\n\t\t// Render children for layout blocks\n\t\tconst renderedChildren =\n\t\t\tnode.children.length > 0 ? node.children.map(renderBlock) : undefined;\n\n\t\tconst handleClick = onBlockClick\n\t\t\t? (e: React.MouseEvent) => {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tonBlockClick(node.id);\n\t\t\t\t}\n\t\t\t: undefined;\n\n\t\tconst blockElement = (\n\t\t\t<BlockScopeProvider blockId={node.id} basePath=\"content._values\">\n\t\t\t\t{renderFn({\n\t\t\t\t\tid: node.id,\n\t\t\t\t\ttype: node.type,\n\t\t\t\t\tvalues,\n\t\t\t\t\tdata: blockData,\n\t\t\t\t\tchildren: renderedChildren,\n\t\t\t\t})}\n\t\t\t</BlockScopeProvider>\n\t\t);\n\n\t\t// Wrap in interactive container when in editor mode\n\t\tif (handleClick) {\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tkey={node.id}\n\t\t\t\t\tdata-block-id={node.id}\n\t\t\t\t\tdata-block-type={node.type}\n\t\t\t\t\tonClick={handleClick}\n\t\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\t\tif (e.key === \"Enter\" || e.key === \" \") {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\tonBlockClick?.(node.id);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\trole=\"button\"\n\t\t\t\t\ttabIndex={0}\n\t\t\t\t\tclassName=\"cursor-pointer\"\n\t\t\t\t>\n\t\t\t\t\t{blockElement}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<div key={node.id} data-block-id={node.id} data-block-type={node.type}>\n\t\t\t\t{blockElement}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (!content?._tree?.length) {\n\t\treturn null;\n\t}\n\n\treturn <div className={className}>{content._tree.map(renderBlock)}</div>;\n}\n\nexport default BlockRenderer;\n"],"mappings":";;;;;;;;;;;AA+DA,SAAgB,cAAc,EAC7B,SACA,WACA,OAAO,EAAE,EACT,iBACA,cACA,aACsB;;;;CAItB,SAAS,YAAY,MAAkC;EACtD,MAAM,WAAW,UAAU,KAAK;AAEhC,MAAI,CAAC,UAAU;AACd,OAAI,QAAQ,IAAI,aAAa,aAC5B,SAAQ,KACP,qDAAqD,KAAK,KAAK,GAC/D;AAEF,UAAO;;EAGR,MAAM,SAAS,QAAQ,QAAQ,KAAK,OAAO,EAAE;EAC7C,MAAM,YAAY,KAAK,KAAK;AACT,EAAoB,KAAK;EAG5C,MAAM,mBACL,KAAK,SAAS,SAAS,IAAI,KAAK,SAAS,IAAI,YAAY,GAAG;EAE7D,MAAM,cAAc,gBAChB,MAAwB;AACzB,KAAE,iBAAiB;AACnB,gBAAa,KAAK,GAAG;MAErB;EAEH,MAAM,eACL,oBAAC;GAAmB,SAAS,KAAK;GAAI,UAAS;aAC7C,SAAS;IACT,IAAI,KAAK;IACT,MAAM,KAAK;IACX;IACA,MAAM;IACN,UAAU;IACV,CAAC;IACkB;AAItB,MAAI,YACH,QACC,oBAAC;GAEA,iBAAe,KAAK;GACpB,mBAAiB,KAAK;GACtB,SAAS;GACT,YAAY,MAAM;AACjB,QAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;AACvC,OAAE,gBAAgB;AAClB,oBAAe,KAAK,GAAG;;;GAGzB,MAAK;GACL,UAAU;GACV,WAAU;aAET;KAdI,KAAK,GAeL;AAIR,SACC,oBAAC;GAAkB,iBAAe,KAAK;GAAI,mBAAiB,KAAK;aAC/D;KADQ,KAAK,GAET;;AAIR,KAAI,CAAC,SAAS,OAAO,OACpB,QAAO;AAGR,QAAO,oBAAC;EAAe;YAAY,QAAQ,MAAM,IAAI,YAAY;GAAO"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { BlockContent } from "./types.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/client/blocks/prefetch.d.ts
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* @deprecated No longer needed. Server auto-expands relation/upload fields.
|
|
7
|
-
*/
|
|
8
|
-
type BlockPrefetchContext<TCms = unknown> = {
|
|
9
|
-
cms: TCms;
|
|
10
|
-
locale: string;
|
|
11
|
-
defaultLocale: string;
|
|
12
|
-
request?: Request;
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* @deprecated No longer needed. Server auto-expands relation/upload fields.
|
|
16
|
-
*/
|
|
17
|
-
type BlockPrefetchParams<TCms = unknown> = BlockPrefetchContext<TCms> & {
|
|
18
|
-
id: string;
|
|
19
|
-
values: Record<string, unknown>;
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* @deprecated No longer needed. Server auto-expands relation/upload fields.
|
|
23
|
-
*/
|
|
24
|
-
type BlockPrefetchResult = Record<string, unknown>;
|
|
25
|
-
/**
|
|
26
|
-
* @deprecated No longer needed. Server auto-expands relation/upload fields
|
|
27
|
-
* and supports manual prefetch via `.blocks({ name: { block, prefetch } })`.
|
|
28
|
-
*/
|
|
29
|
-
declare function prefetchBlockData<TCms = unknown>(content: BlockContent | null | undefined, _blocks: Record<string, unknown>, _context: BlockPrefetchContext<TCms>): Promise<BlockPrefetchResult>;
|
|
30
|
-
/**
|
|
31
|
-
* @deprecated No longer needed. Server handles block data fetching.
|
|
32
|
-
*/
|
|
33
|
-
declare class BlockPrefetchError extends Error {
|
|
34
|
-
readonly blockId: string;
|
|
35
|
-
readonly blockType: string;
|
|
36
|
-
readonly cause: unknown;
|
|
37
|
-
constructor(blockId: string, blockType: string, cause: unknown);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* @deprecated No longer needed. Server handles block data fetching.
|
|
41
|
-
*/
|
|
42
|
-
type TypedBlockPrefetch<TData, TCms = unknown> = (params: BlockPrefetchParams<TCms>) => Promise<TData>;
|
|
43
|
-
//#endregion
|
|
44
|
-
export { BlockPrefetchContext, BlockPrefetchError, BlockPrefetchParams, BlockPrefetchResult, TypedBlockPrefetch, prefetchBlockData };
|
|
45
|
-
//# sourceMappingURL=prefetch.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prefetch.d.mts","names":[],"sources":["../../../src/client/blocks/prefetch.ts"],"sourcesContent":[],"mappings":";;;;;;;KA+BY;OACL;;;YAGK;;;;;KAMA,sCAAsC,qBAAqB;;UAE7D;;;;;KAME,mBAAA,GAAsB;;;;;iBAMZ,2CACX,0CACA,mCACC,qBAAqB,QAC9B,QAAQ;;;;cAYE,kBAAA,SAA2B,KAAA;;;;;;;;;KAgB5B,qDACF,oBAAoB,UACzB,QAAQ"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
//#region src/client/blocks/prefetch.ts
|
|
2
|
-
/**
|
|
3
|
-
* @deprecated No longer needed. Server auto-expands relation/upload fields
|
|
4
|
-
* and supports manual prefetch via `.blocks({ name: { block, prefetch } })`.
|
|
5
|
-
*/
|
|
6
|
-
async function prefetchBlockData(content, _blocks, _context) {
|
|
7
|
-
console.warn("[prefetchBlockData] Deprecated: Client-side block prefetch is no longer needed. Block data is now automatically fetched by the server afterRead hook. Remove this call — data is available via the `data` prop in block renderers.");
|
|
8
|
-
return {};
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* @deprecated No longer needed. Server handles block data fetching.
|
|
12
|
-
*/
|
|
13
|
-
var BlockPrefetchError = class extends Error {
|
|
14
|
-
constructor(blockId, blockType, cause) {
|
|
15
|
-
const message = cause instanceof Error ? cause.message : "Unknown prefetch error";
|
|
16
|
-
super(`Block prefetch failed for "${blockType}" (${blockId}): ${message}`);
|
|
17
|
-
this.blockId = blockId;
|
|
18
|
-
this.blockType = blockType;
|
|
19
|
-
this.cause = cause;
|
|
20
|
-
this.name = "BlockPrefetchError";
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
//#endregion
|
|
25
|
-
export { BlockPrefetchError, prefetchBlockData };
|
|
26
|
-
//# sourceMappingURL=prefetch.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prefetch.mjs","names":["blockId: string","blockType: string","cause: unknown"],"sources":["../../../src/client/blocks/prefetch.ts"],"sourcesContent":["/**\n * Client Block Prefetch Utilities\n *\n * @deprecated Client-side block prefetch is no longer needed.\n * Block data is now automatically handled by the server:\n *\n * 1. **Auto-expansion**: Relation/upload fields are automatically expanded\n * to full records in the afterRead hook. No configuration needed.\n *\n * 2. **Manual prefetch**: For custom data, define prefetch in `.blocks()`:\n * ```ts\n * .blocks({\n * featuredPosts: {\n * block: featuredPostsBlock,\n * prefetch: async ({ values, ctx }) => ({ ... }),\n * },\n * })\n * ```\n *\n * Both populate `_data[blockId]` in the API response, which is\n * automatically available as the `data` prop in block renderers.\n *\n * These exports are kept for backwards compatibility but will be\n * removed in a future version.\n */\n\nimport type { BlockContent, BlockNode } from \"./types.js\";\n\n/**\n * @deprecated No longer needed. Server auto-expands relation/upload fields.\n */\nexport type BlockPrefetchContext<TCms = unknown> = {\n cms: TCms;\n locale: string;\n defaultLocale: string;\n request?: Request;\n};\n\n/**\n * @deprecated No longer needed. Server auto-expands relation/upload fields.\n */\nexport type BlockPrefetchParams<TCms = unknown> = BlockPrefetchContext<TCms> & {\n id: string;\n values: Record<string, unknown>;\n};\n\n/**\n * @deprecated No longer needed. Server auto-expands relation/upload fields.\n */\nexport type BlockPrefetchResult = Record<string, unknown>;\n\n/**\n * @deprecated No longer needed. Server auto-expands relation/upload fields\n * and supports manual prefetch via `.blocks({ name: { block, prefetch } })`.\n */\nexport async function prefetchBlockData<TCms = unknown>(\n content: BlockContent | null | undefined,\n _blocks: Record<string, unknown>,\n _context: BlockPrefetchContext<TCms>,\n): Promise<BlockPrefetchResult> {\n console.warn(\n \"[prefetchBlockData] Deprecated: Client-side block prefetch is no longer needed. \" +\n \"Block data is now automatically fetched by the server afterRead hook. \" +\n \"Remove this call — data is available via the `data` prop in block renderers.\",\n );\n return {};\n}\n\n/**\n * @deprecated No longer needed. Server handles block data fetching.\n */\nexport class BlockPrefetchError extends Error {\n constructor(\n public readonly blockId: string,\n public readonly blockType: string,\n public readonly cause: unknown,\n ) {\n const message =\n cause instanceof Error ? cause.message : \"Unknown prefetch error\";\n super(`Block prefetch failed for \"${blockType}\" (${blockId}): ${message}`);\n this.name = \"BlockPrefetchError\";\n }\n}\n\n/**\n * @deprecated No longer needed. Server handles block data fetching.\n */\nexport type TypedBlockPrefetch<TData, TCms = unknown> = (\n params: BlockPrefetchParams<TCms>,\n) => Promise<TData>;\n"],"mappings":";;;;;AAuDA,eAAsB,kBACpB,SACA,SACA,UAC8B;AAC9B,SAAQ,KACN,qOAGD;AACD,QAAO,EAAE;;;;;AAMX,IAAa,qBAAb,cAAwC,MAAM;CAC5C,YACE,AAAgBA,SAChB,AAAgBC,WAChB,AAAgBC,OAChB;EACA,MAAM,UACJ,iBAAiB,QAAQ,MAAM,UAAU;AAC3C,QAAM,8BAA8B,UAAU,KAAK,QAAQ,KAAK,UAAU;EAN1D;EACA;EACA;AAKhB,OAAK,OAAO"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.mts","names":[],"sources":["../../../src/client/blocks/types.ts"],"sourcesContent":[],"mappings":";;;;;;;AA4CA;AAeY,KA7CA,SAAA,GA6CA;EACA;EACF,EAAA,EAAA,MAAA;EAKA;EAED,IAAA,EAAA,MAAA;EAEI;EAAe,QAAA,EAlDhB,SAkDgB,EAAA;AAU5B,CAAA;AAQA;;;;;;;;KAzDY,YAAA;;SAEH;;WAEE,eAAe;;UAEhB,eAAe;;;;;;KAOb,aAAA;;;;;;;;KAeA,6BACA,iCACF;;;;UAKA;;SAED;;aAEI,OAAA,CAAM;;;;;;;;;cAUN,qBAAqB;;;;iBAQlB,cAAA,2BAAyC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.mjs","names":["EMPTY_BLOCK_CONTENT: BlockContent"],"sources":["../../../src/client/blocks/types.ts"],"sourcesContent":["/**\n * Block System Types\n *\n * Core types for the visual page building system.\n * Server stores blocks as JSONB with $i18n markers - these types\n * define the client-side structure and rendering.\n */\n\nimport type * as React from \"react\";\n\n/**\n * Block node in the tree structure.\n * Represents a single block instance with its position and children.\n */\nexport type BlockNode = {\n /** Unique block instance ID (UUID) */\n id: string;\n /** Block type name (e.g., \"hero\", \"columns\", \"text\") */\n type: string;\n /** Child blocks (for layout blocks that accept children) */\n children: BlockNode[];\n};\n\n/**\n * Block content structure stored in JSONB.\n * This is the shape of data stored in the database and passed to BlockRenderer.\n *\n * After server-side prefetch (afterRead hook), `_data` is populated with:\n * - Auto-expanded relation/upload fields\n * - Manual prefetch data from `.blocks()` registration\n */\nexport type BlockContent = {\n /** Block tree with hierarchy and order */\n _tree: BlockNode[];\n /** Block values indexed by block ID */\n _values: Record<string, Record<string, unknown>>;\n /** Prefetched data from server (populated by afterRead hook) */\n _data?: Record<string, Record<string, unknown>>;\n};\n\n/**\n * Block category for organization in the block picker.\n * Categories help users find blocks quickly when adding new content.\n */\nexport type BlockCategory =\n | \"layout\" // Columns, Grid, Container, Section\n | \"content\" // Text, Heading, List, Quote\n | \"media\" // Image, Video, Gallery, Audio\n | \"sections\" // Hero, Features, Testimonials, CTA\n | \"interactive\" // Form, Accordion, Tabs, Carousel\n | (string & {}); // Custom categories\n\n/**\n * Props passed to block renderer components.\n * Each block receives these props when being rendered.\n *\n * @template TValues - Block field values type (inferred from `.fields()`)\n * @template TData - Prefetch data type (inferred from `.prefetch()`)\n */\nexport type BlockRendererProps<\n TValues = Record<string, unknown>,\n TData = Record<string, unknown>,\n> = {\n /** Block instance ID */\n id: string;\n /** Block field values (merged with i18n for current locale) */\n values: TValues;\n /** Data from server prefetch (populated via afterRead hook into _data[blockId]) */\n data?: TData;\n /** Rendered child blocks (for layout blocks) */\n children?: React.ReactNode;\n /** Whether this block is currently selected in the editor */\n isSelected?: boolean;\n /** Whether rendering in preview mode */\n isPreview?: boolean;\n};\n\n/**\n * Empty block content for initialization.\n */\nexport const EMPTY_BLOCK_CONTENT: BlockContent = {\n _tree: [],\n _values: {},\n};\n\n/**\n * Check if a value is a valid BlockContent structure.\n */\nexport function isBlockContent(value: unknown): value is BlockContent {\n if (value == null || typeof value !== \"object\") return false;\n const obj = value as Record<string, unknown>;\n return (\n Array.isArray(obj._tree) &&\n typeof obj._values === \"object\" &&\n obj._values !== null\n );\n}\n\n"],"mappings":";;;;AAgFA,MAAaA,sBAAoC;CAC/C,OAAO,EAAE;CACT,SAAS,EAAE;CACZ;;;;AAKD,SAAgB,eAAe,OAAuC;AACpE,KAAI,SAAS,QAAQ,OAAO,UAAU,SAAU,QAAO;CACvD,MAAM,MAAM;AACZ,QACE,MAAM,QAAQ,IAAI,MAAM,IACxB,OAAO,IAAI,YAAY,YACvB,IAAI,YAAY"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { MaybeLazyComponent } from "./types/common.mjs";
|
|
2
|
-
import { PageBuilder } from "./page/page.mjs";
|
|
3
|
-
import { DefaultViewsConfig } from "./types/views.mjs";
|
|
4
|
-
import { WidgetBuilder } from "./widget/widget.mjs";
|
|
5
|
-
import { AdminBuilderState, FilterEditViews, FilterListViews } from "./admin-types.mjs";
|
|
6
|
-
import { Prettify, SetProperty, TypeMerge, UnsetProperty } from "questpie/shared";
|
|
7
|
-
|
|
8
|
-
//#region src/client/builder/admin-builder.d.ts
|
|
9
|
-
|
|
10
|
-
declare class AdminBuilder<TState extends AdminBuilderState> {
|
|
11
|
-
readonly state: TState;
|
|
12
|
-
constructor(state: TState);
|
|
13
|
-
static empty<TApp = any>(): AdminBuilder<{
|
|
14
|
-
"~app": TApp;
|
|
15
|
-
fields: {};
|
|
16
|
-
components: {};
|
|
17
|
-
listViews: {};
|
|
18
|
-
editViews: {};
|
|
19
|
-
pages: {};
|
|
20
|
-
widgets: {};
|
|
21
|
-
blocks: {};
|
|
22
|
-
translations: {};
|
|
23
|
-
locale: {
|
|
24
|
-
default: string;
|
|
25
|
-
supported: string[];
|
|
26
|
-
};
|
|
27
|
-
defaultViews: {};
|
|
28
|
-
}>;
|
|
29
|
-
/**
|
|
30
|
-
* Register field definitions
|
|
31
|
-
*/
|
|
32
|
-
fields<TNewFields extends Record<string, any>>(fields: TNewFields): AdminBuilder<SetProperty<TState, "fields", Prettify<TypeMerge<TState["fields"], TNewFields>>>>;
|
|
33
|
-
/**
|
|
34
|
-
* Register component implementations
|
|
35
|
-
*/
|
|
36
|
-
components<TNewComponents extends Record<string, any>>(components: TNewComponents): AdminBuilder<SetProperty<TState, "components", Prettify<TypeMerge<TState["components"], TNewComponents>>>>;
|
|
37
|
-
/**
|
|
38
|
-
* Register view definitions (auto-sorted by kind)
|
|
39
|
-
*/
|
|
40
|
-
views<TNewViews extends Record<string, any>>(views: TNewViews): AdminBuilder<Prettify<TypeMerge<UnsetProperty<TState, "listViews" | "editViews">, {
|
|
41
|
-
listViews: Prettify<TypeMerge<TState["listViews"], FilterListViews<TNewViews>>>;
|
|
42
|
-
editViews: Prettify<TypeMerge<TState["editViews"], FilterEditViews<TNewViews>>>;
|
|
43
|
-
}>>>;
|
|
44
|
-
/**
|
|
45
|
-
* Register widget definitions
|
|
46
|
-
*/
|
|
47
|
-
widgets<TNewWidgets extends Record<string, any>>(widgets: TNewWidgets): AdminBuilder<SetProperty<TState, "widgets", Prettify<TypeMerge<TState["widgets"], TNewWidgets>>>>;
|
|
48
|
-
/**
|
|
49
|
-
* Register page definitions
|
|
50
|
-
*/
|
|
51
|
-
pages<TNewPages extends Record<string, any>>(pages: TNewPages): AdminBuilder<SetProperty<TState, "pages", Prettify<TypeMerge<TState["pages"], TNewPages>>>>;
|
|
52
|
-
/**
|
|
53
|
-
* Compose another builder (merge modules)
|
|
54
|
-
*/
|
|
55
|
-
use<TOther extends AdminBuilder<any>>(other: TOther): AdminBuilder<Prettify<TypeMerge<UnsetProperty<TState, "fields" | "listViews" | "editViews" | "widgets" | "pages" | "components">, {
|
|
56
|
-
fields: Prettify<TypeMerge<TState["fields"], TOther["state"]["fields"]>>;
|
|
57
|
-
listViews: Prettify<TypeMerge<TState["listViews"], TOther["state"]["listViews"]>>;
|
|
58
|
-
editViews: Prettify<TypeMerge<TState["editViews"], TOther["state"]["editViews"]>>;
|
|
59
|
-
widgets: Prettify<TypeMerge<TState["widgets"], TOther["state"]["widgets"]>>;
|
|
60
|
-
pages: Prettify<TypeMerge<TState["pages"], TOther["state"]["pages"]>>;
|
|
61
|
-
components: Prettify<TypeMerge<TState["components"], TOther["state"]["components"]>>;
|
|
62
|
-
}>>>;
|
|
63
|
-
/**
|
|
64
|
-
* Set default views config
|
|
65
|
-
*/
|
|
66
|
-
defaultViews<TDefaultViews extends DefaultViewsConfig>(config: TDefaultViews): AdminBuilder<SetProperty<TState, "defaultViews", Prettify<TypeMerge<TState["defaultViews"], TDefaultViews>>>>;
|
|
67
|
-
/**
|
|
68
|
-
* Create a page definition
|
|
69
|
-
*
|
|
70
|
-
* Creates a custom admin page outside of collections/globals.
|
|
71
|
-
*
|
|
72
|
-
* @example
|
|
73
|
-
* ```ts
|
|
74
|
-
* const builder = qa<AppCMS>().use(adminModule);
|
|
75
|
-
*
|
|
76
|
-
* const analyticsPage = builder.page("analytics", {
|
|
77
|
-
* component: AnalyticsPage,
|
|
78
|
-
* })
|
|
79
|
-
* ```
|
|
80
|
-
*/
|
|
81
|
-
page<TName extends string, TComponent extends MaybeLazyComponent>(name: TName, config: {
|
|
82
|
-
component: TComponent;
|
|
83
|
-
}): PageBuilder<{
|
|
84
|
-
name: TName;
|
|
85
|
-
component: TComponent;
|
|
86
|
-
path: undefined;
|
|
87
|
-
}>;
|
|
88
|
-
/**
|
|
89
|
-
* Create a widget definition
|
|
90
|
-
*
|
|
91
|
-
* Creates a dashboard widget.
|
|
92
|
-
*
|
|
93
|
-
* @example
|
|
94
|
-
* ```ts
|
|
95
|
-
* const builder = qa<AppCMS>().use(adminModule);
|
|
96
|
-
*
|
|
97
|
-
* const statsWidget = builder.widget("stats", {
|
|
98
|
-
* component: StatsWidget,
|
|
99
|
-
* })
|
|
100
|
-
* ```
|
|
101
|
-
*/
|
|
102
|
-
widget<TName extends string, TComponent extends MaybeLazyComponent>(name: TName, config: {
|
|
103
|
-
component: TComponent;
|
|
104
|
-
}): WidgetBuilder<{
|
|
105
|
-
name: TName;
|
|
106
|
-
"~config": any;
|
|
107
|
-
component: TComponent;
|
|
108
|
-
}>;
|
|
109
|
-
}
|
|
110
|
-
//#endregion
|
|
111
|
-
export { AdminBuilder };
|
|
112
|
-
//# sourceMappingURL=admin-builder.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin-builder.d.mts","names":[],"sources":["../../../src/client/builder/admin-builder.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AA4BU,cAJG,YAIH,CAAA,eAJ+B,iBAI/B,CAAA,CAAA;EADmB,SAAA,KAAA,EAFO,MAEP;EA+BF,WAAA,CAAA,KAAA,EAjCS,MAiCT;EACjB,OAAA,KAAA,CAAA,OAAA,GAAA,CAAA,CAAA,CAAA,EAhCmB,YAgCnB,CAAA;IAGP,MAAA,EAlCO,IAkCP;IAEmB,MAAA,EAAA,CAAA,CAAA;IAAkB,UAAA,EAAA,CAAA,CAAA;IAA5B,SAAA,EAAA,CAAA,CAAA;IAAT,SAAA,EAAA,CAAA,CAAA;IAHD,KAAA,EAAA,CAAA,CAAA;IADE,OAAA,EAAA,CAAA,CAAA;IAmB+B,MAAA,EAAA,CAAA,CAAA;IACrB,YAAA,EAAA,CAAA,CAAA;IAGX,MAAA,EAAA;MAEmB,OAAA,EAAA,MAAA;MAAsB,SAAA,EAAA,MAAA,EAAA;IAAhC,CAAA;IAAT,YAAA,EAAA,CAAA,CAAA;EAHD,CAAA,CAAA;EADE;;;EAwBc,MAAA,CAAA,mBA/CS,MA+CT,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,MAAA,EA9CR,UA8CQ,CAAA,EA7Cd,YA6Cc,CA5ChB,WA4CgB,CA3Cf,MA2Ce,EAAA,QAAA,EAzCf,QAyCe,CAzCN,SAyCM,CAzCI,MAyCJ,CAAA,QAAA,CAAA,EAzCsB,UAyCtB,CAAA,CAAA,CAAA,CAAA;EAAd;;;EAGiC,UAAA,CAAA,uBA7BF,MA6BE,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,UAAA,EA5BvB,cA4BuB,CAAA,EA3BjC,YA2BiC,CA1BnC,WA0BmC,CAzBlC,MAyBkC,EAAA,YAAA,EAvBlC,QAuBkC,CAvBzB,SAuByB,CAvBf,MAuBe,CAAA,YAAA,CAAA,EAvBO,cAuBP,CAAA,CAAA,CAAA,CAAA;EAA/B;;;EAG+C,KAAA,CAAA,kBAX5B,MAW4B,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,KAAA,EAV5C,SAU4C,CAAA,EATjD,YASiD,CARnD,QAQmD,CAPlD,SAOkD,CANjD,aAMiD,CANnC,MAMmC,EAAA,WAAA,GAAA,WAAA,CAAA,EAAA;IAAhB,SAAA,EAJrB,QAIqB,CAH/B,SAG+B,CAHrB,MAGqB,CAAA,WAAA,CAAA,EAHA,eAGA,CAHgB,SAGhB,CAAA,CAAA,CAAA;IAA/B,SAAA,EADU,QACV,CAAA,SAAA,CAAU,MAAV,CAAA,WAAA,CAAA,EAA+B,eAA/B,CAA+C,SAA/C,CAAA,CAAA,CAAA;EADU,CAAA,CAAA,CAAA,CAAA;EANb;;;EAoC0B,OAAA,CAAA,oBAAA,MAAA,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,OAAA,EAClB,WADkB,CAAA,EAEzB,YAFyB,CAG3B,WAH2B,CAI1B,MAJ0B,EAAA,SAAA,EAM1B,QAN0B,CAMjB,SANiB,CAMP,MANO,CAAA,SAAA,CAAA,EAMY,WANZ,CAAA,CAAA,CAAA,CAAA;EAClB;;;EAK8B,KAAA,CAAA,kBAehB,MAfgB,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,KAAA,EAgBhC,SAhBgC,CAAA,EAiBrC,YAjBqC,CAkBvC,WAlBuC,CAmBtC,MAnBsC,EAAA,OAAA,EAqBtC,QArBsC,CAqB7B,SArB6B,CAqBnB,MArBmB,CAAA,OAAA,CAAA,EAqBF,SArBE,CAAA,CAAA,CAAA,CAAA;EAA7B;;;EAJR,GAAA,CAAA,eAwCgB,YAxChB,CAAA,GAAA,CAAA,CAAA,CAAA,KAAA,EAyCK,MAzCL,CAAA,EA0CA,YA1CA,CA2CF,QA3CE,CA4CD,SA5CC,CA6CA,aA7CA,CA8CC,MA9CD,EAAA,QAAA,GAAA,WAAA,GAAA,WAAA,GAAA,SAAA,GAAA,OAAA,GAAA,YAAA,CAAA,EAAA;IAmBqB,MAAA,EAoCZ,QApCY,CAqCnB,SArCmB,CAqCT,MArCS,CAAA,QAAA,CAAA,EAqCS,MArCT,CAAA,OAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA;IAChB,SAAA,EAsCO,QAtCP,CAuCH,SAvCG,CAuCO,MAvCP,CAAA,WAAA,CAAA,EAuC4B,MAvC5B,CAAA,OAAA,CAAA,CAAA,WAAA,CAAA,CAAA,CAAA;IAGN,SAAA,EAsCa,QAtCb,CAuCG,SAvCH,CAuCa,MAvCb,CAAA,WAAA,CAAA,EAuCkC,MAvClC,CAAA,OAAA,CAAA,CAAA,WAAA,CAAA,CAAA,CAAA;IAEmB,OAAA,EAuCR,QAvCQ,CAwChB,SAxCgB,CAwCN,MAxCM,CAAA,SAAA,CAAA,EAwCa,MAxCb,CAAA,OAAA,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA;IAAiB,KAAA,EA0C3B,QA1C2B,CA0ClB,SA1CkB,CA0CR,MA1CQ,CAAA,OAAA,CAAA,EA0CS,MA1CT,CAAA,OAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA;IAA3B,UAAA,EA2CK,QA3CL,CA4CN,SA5CM,CA4CI,MA5CJ,CAAA,YAAA,CAAA,EA4C0B,MA5C1B,CAAA,OAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;EAAT,CAAA,CAAA,CAAA,CAAA;EAHD;;;EAmBO,YAAA,CAAA,sBAkD2B,kBAlD3B,CAAA,CAAA,MAAA,EAmDC,aAnDD,CAAA,EAoDL,YApDK,CAqDP,WArDO,CAsDN,MAtDM,EAAA,cAAA,EAwDN,QAxDM,CAwDG,SAxDH,CAwDa,MAxDb,CAAA,cAAA,CAAA,EAwDqC,aAxDrC,CAAA,CAAA,CAAA,CAAA;EAKJ;;;;;;;;;;;;;;EAmBW,IAAA,CAAA,cAAA,MAAA,EAAA,mBA0D+B,kBA1D/B,CAAA,CAAA,IAAA,EA2DR,KA3DQ,EAAA,MAAA,EAAA;IAAmB,SAAA,EA4DZ,UA5DY;EAA7B,CAAA,CAAA,EA6DF,WA7DE,CAAA;IADQ,IAAA,EA+DN,KA/DM;IAGiB,SAAA,EA6DlB,UA7DkB;IAAiB,IAAA,EAAA,SAAA;EAA3B,CAAA,CAAA;EAAT;;;;;;;;;;;;;;EA8BT,MAAA,CAAA,cAAA,MAAA,EAAA,mBAmD8C,kBAnD9C,CAAA,CAAA,IAAA,EAoDK,KApDL,EAAA,MAAA,EAAA;IAHD,SAAA,EAwDqB,UAxDrB;EADE,CAAA,CAAA,EA0DA,aA1DA,CAAA;IA8B2C,IAAA,EA6BvC,KA7BuC;IACvC,SAAA,EAAA,GAAA;IACe,SAAA,EA6BV,UA7BU;EAEf,CAAA,CAAA"}
|
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
import { page } from "./page/page.mjs";
|
|
2
|
-
import { widget } from "./widget/widget.mjs";
|
|
3
|
-
import { DEFAULT_LOCALE_CONFIG } from "questpie/shared";
|
|
4
|
-
|
|
5
|
-
//#region src/client/builder/admin-builder.ts
|
|
6
|
-
/**
|
|
7
|
-
* Admin Builder
|
|
8
|
-
*
|
|
9
|
-
* Main builder class - same pattern as QuestpieBuilder.
|
|
10
|
-
* Single generic TState pattern.
|
|
11
|
-
*/
|
|
12
|
-
var AdminBuilder = class AdminBuilder {
|
|
13
|
-
constructor(state) {
|
|
14
|
-
this.state = state;
|
|
15
|
-
}
|
|
16
|
-
static empty() {
|
|
17
|
-
return new AdminBuilder({
|
|
18
|
-
"~app": void 0,
|
|
19
|
-
fields: {},
|
|
20
|
-
components: {},
|
|
21
|
-
listViews: {},
|
|
22
|
-
editViews: {},
|
|
23
|
-
pages: {},
|
|
24
|
-
widgets: {},
|
|
25
|
-
blocks: {},
|
|
26
|
-
translations: {},
|
|
27
|
-
locale: DEFAULT_LOCALE_CONFIG,
|
|
28
|
-
defaultViews: {}
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Register field definitions
|
|
33
|
-
*/
|
|
34
|
-
fields(fields) {
|
|
35
|
-
return new AdminBuilder({
|
|
36
|
-
...this.state,
|
|
37
|
-
fields: {
|
|
38
|
-
...this.state.fields,
|
|
39
|
-
...fields
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Register component implementations
|
|
45
|
-
*/
|
|
46
|
-
components(components) {
|
|
47
|
-
return new AdminBuilder({
|
|
48
|
-
...this.state,
|
|
49
|
-
components: {
|
|
50
|
-
...this.state.components,
|
|
51
|
-
...components
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Register view definitions (auto-sorted by kind)
|
|
57
|
-
*/
|
|
58
|
-
views(views) {
|
|
59
|
-
const listViews = {};
|
|
60
|
-
const editViews = {};
|
|
61
|
-
for (const [name, def] of Object.entries(views)) {
|
|
62
|
-
const kind = def.kind;
|
|
63
|
-
if (kind === "list") listViews[name] = def;
|
|
64
|
-
else if (kind === "edit") editViews[name] = def;
|
|
65
|
-
}
|
|
66
|
-
return new AdminBuilder({
|
|
67
|
-
...this.state,
|
|
68
|
-
listViews: {
|
|
69
|
-
...this.state.listViews,
|
|
70
|
-
...listViews
|
|
71
|
-
},
|
|
72
|
-
editViews: {
|
|
73
|
-
...this.state.editViews,
|
|
74
|
-
...editViews
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Register widget definitions
|
|
80
|
-
*/
|
|
81
|
-
widgets(widgets) {
|
|
82
|
-
return new AdminBuilder({
|
|
83
|
-
...this.state,
|
|
84
|
-
widgets: {
|
|
85
|
-
...this.state.widgets,
|
|
86
|
-
...widgets
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Register page definitions
|
|
92
|
-
*/
|
|
93
|
-
pages(pages) {
|
|
94
|
-
return new AdminBuilder({
|
|
95
|
-
...this.state,
|
|
96
|
-
pages: {
|
|
97
|
-
...this.state.pages,
|
|
98
|
-
...pages
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Compose another builder (merge modules)
|
|
104
|
-
*/
|
|
105
|
-
use(other) {
|
|
106
|
-
const otherState = other.state;
|
|
107
|
-
return new AdminBuilder({
|
|
108
|
-
...this.state,
|
|
109
|
-
fields: {
|
|
110
|
-
...this.state.fields,
|
|
111
|
-
...otherState.fields
|
|
112
|
-
},
|
|
113
|
-
listViews: {
|
|
114
|
-
...this.state.listViews,
|
|
115
|
-
...otherState.listViews
|
|
116
|
-
},
|
|
117
|
-
editViews: {
|
|
118
|
-
...this.state.editViews,
|
|
119
|
-
...otherState.editViews
|
|
120
|
-
},
|
|
121
|
-
widgets: {
|
|
122
|
-
...this.state.widgets,
|
|
123
|
-
...otherState.widgets
|
|
124
|
-
},
|
|
125
|
-
pages: {
|
|
126
|
-
...this.state.pages,
|
|
127
|
-
...otherState.pages
|
|
128
|
-
},
|
|
129
|
-
components: {
|
|
130
|
-
...this.state.components,
|
|
131
|
-
...otherState.components
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Set default views config
|
|
137
|
-
*/
|
|
138
|
-
defaultViews(config) {
|
|
139
|
-
return new AdminBuilder({
|
|
140
|
-
...this.state,
|
|
141
|
-
defaultViews: {
|
|
142
|
-
...this.state.defaultViews || {},
|
|
143
|
-
...config
|
|
144
|
-
}
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Create a page definition
|
|
149
|
-
*
|
|
150
|
-
* Creates a custom admin page outside of collections/globals.
|
|
151
|
-
*
|
|
152
|
-
* @example
|
|
153
|
-
* ```ts
|
|
154
|
-
* const builder = qa<AppCMS>().use(adminModule);
|
|
155
|
-
*
|
|
156
|
-
* const analyticsPage = builder.page("analytics", {
|
|
157
|
-
* component: AnalyticsPage,
|
|
158
|
-
* })
|
|
159
|
-
* ```
|
|
160
|
-
*/
|
|
161
|
-
page(name, config) {
|
|
162
|
-
return page(name, config);
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Create a widget definition
|
|
166
|
-
*
|
|
167
|
-
* Creates a dashboard widget.
|
|
168
|
-
*
|
|
169
|
-
* @example
|
|
170
|
-
* ```ts
|
|
171
|
-
* const builder = qa<AppCMS>().use(adminModule);
|
|
172
|
-
*
|
|
173
|
-
* const statsWidget = builder.widget("stats", {
|
|
174
|
-
* component: StatsWidget,
|
|
175
|
-
* })
|
|
176
|
-
* ```
|
|
177
|
-
*/
|
|
178
|
-
widget(name, config) {
|
|
179
|
-
return widget(name, config);
|
|
180
|
-
}
|
|
181
|
-
};
|
|
182
|
-
|
|
183
|
-
//#endregion
|
|
184
|
-
export { AdminBuilder };
|
|
185
|
-
//# sourceMappingURL=admin-builder.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin-builder.mjs","names":["state: TState","listViews: Record<string, any>","editViews: Record<string, any>"],"sources":["../../../src/client/builder/admin-builder.ts"],"sourcesContent":["/**\n * Admin Builder\n *\n * Main builder class - same pattern as QuestpieBuilder.\n * Single generic TState pattern.\n */\n\nimport {\n\tDEFAULT_LOCALE_CONFIG,\n\ttype Prettify,\n\ttype SetProperty,\n\ttype TypeMerge,\n\ttype UnsetProperty,\n} from \"questpie/shared\";\nimport type {\n\tAdminBuilderState,\n\tFilterEditViews,\n\tFilterListViews,\n} from \"./admin-types\";\nimport { type PageBuilder, page } from \"./page/page\";\nimport type { MaybeLazyComponent } from \"./types/common\";\nimport type { DefaultViewsConfig } from \"./types/views\";\nimport { type WidgetBuilder, widget } from \"./widget/widget\";\n\nexport class AdminBuilder<TState extends AdminBuilderState> {\n\tconstructor(public readonly state: TState) {}\n\n\tstatic empty<TApp = any>(): AdminBuilder<{\n\t\t\"~app\": TApp;\n\t\tfields: {};\n\t\tcomponents: {};\n\t\tlistViews: {};\n\t\teditViews: {};\n\t\tpages: {};\n\t\twidgets: {};\n\t\tblocks: {};\n\t\ttranslations: {};\n\t\tlocale: { default: string; supported: string[] };\n\t\tdefaultViews: {};\n\t}> {\n\t\treturn new AdminBuilder({\n\t\t\t\"~app\": undefined as TApp,\n\t\t\tfields: {},\n\t\t\tcomponents: {},\n\t\t\tlistViews: {},\n\t\t\teditViews: {},\n\t\t\tpages: {},\n\t\t\twidgets: {},\n\t\t\tblocks: {},\n\t\t\ttranslations: {},\n\t\t\tlocale: DEFAULT_LOCALE_CONFIG,\n\t\t\tdefaultViews: {},\n\t\t});\n\t}\n\n\t/**\n\t * Register field definitions\n\t */\n\tfields<TNewFields extends Record<string, any>>(\n\t\tfields: TNewFields,\n\t): AdminBuilder<\n\t\tSetProperty<\n\t\t\tTState,\n\t\t\t\"fields\",\n\t\t\tPrettify<TypeMerge<TState[\"fields\"], TNewFields>>\n\t\t>\n\t> {\n\t\treturn new AdminBuilder({\n\t\t\t...this.state,\n\t\t\tfields: {\n\t\t\t\t...this.state.fields,\n\t\t\t\t...fields,\n\t\t\t},\n\t\t} as any);\n\t}\n\n\t/**\n\t * Register component implementations\n\t */\n\tcomponents<TNewComponents extends Record<string, any>>(\n\t\tcomponents: TNewComponents,\n\t): AdminBuilder<\n\t\tSetProperty<\n\t\t\tTState,\n\t\t\t\"components\",\n\t\t\tPrettify<TypeMerge<TState[\"components\"], TNewComponents>>\n\t\t>\n\t> {\n\t\treturn new AdminBuilder({\n\t\t\t...this.state,\n\t\t\tcomponents: {\n\t\t\t\t...this.state.components,\n\t\t\t\t...components,\n\t\t\t},\n\t\t} as any);\n\t}\n\n\t/**\n\t * Register view definitions (auto-sorted by kind)\n\t */\n\tviews<TNewViews extends Record<string, any>>(\n\t\tviews: TNewViews,\n\t): AdminBuilder<\n\t\tPrettify<\n\t\t\tTypeMerge<\n\t\t\t\tUnsetProperty<TState, \"listViews\" | \"editViews\">,\n\t\t\t\t{\n\t\t\t\t\tlistViews: Prettify<\n\t\t\t\t\t\tTypeMerge<TState[\"listViews\"], FilterListViews<TNewViews>>\n\t\t\t\t\t>;\n\t\t\t\t\teditViews: Prettify<\n\t\t\t\t\t\tTypeMerge<TState[\"editViews\"], FilterEditViews<TNewViews>>\n\t\t\t\t\t>;\n\t\t\t\t}\n\t\t\t>\n\t\t>\n\t> {\n\t\tconst listViews: Record<string, any> = {};\n\t\tconst editViews: Record<string, any> = {};\n\n\t\tfor (const [name, def] of Object.entries(views)) {\n\t\t\t// ViewBuilders now implement Definition interface, so kind is directly accessible\n\t\t\tconst kind = (def as any).kind;\n\t\t\tif (kind === \"list\") {\n\t\t\t\tlistViews[name] = def;\n\t\t\t} else if (kind === \"edit\") {\n\t\t\t\teditViews[name] = def;\n\t\t\t}\n\t\t}\n\n\t\treturn new AdminBuilder({\n\t\t\t...this.state,\n\t\t\tlistViews: { ...this.state.listViews, ...listViews },\n\t\t\teditViews: { ...this.state.editViews, ...editViews },\n\t\t} as any);\n\t}\n\n\t/**\n\t * Register widget definitions\n\t */\n\twidgets<TNewWidgets extends Record<string, any>>(\n\t\twidgets: TNewWidgets,\n\t): AdminBuilder<\n\t\tSetProperty<\n\t\t\tTState,\n\t\t\t\"widgets\",\n\t\t\tPrettify<TypeMerge<TState[\"widgets\"], TNewWidgets>>\n\t\t>\n\t> {\n\t\treturn new AdminBuilder({\n\t\t\t...this.state,\n\t\t\twidgets: {\n\t\t\t\t...this.state.widgets,\n\t\t\t\t...widgets,\n\t\t\t},\n\t\t} as any);\n\t}\n\n\t/**\n\t * Register page definitions\n\t */\n\tpages<TNewPages extends Record<string, any>>(\n\t\tpages: TNewPages,\n\t): AdminBuilder<\n\t\tSetProperty<\n\t\t\tTState,\n\t\t\t\"pages\",\n\t\t\tPrettify<TypeMerge<TState[\"pages\"], TNewPages>>\n\t\t>\n\t> {\n\t\treturn new AdminBuilder({\n\t\t\t...this.state,\n\t\t\tpages: {\n\t\t\t\t...this.state.pages,\n\t\t\t\t...pages,\n\t\t\t},\n\t\t} as any);\n\t}\n\n\t/**\n\t * Compose another builder (merge modules)\n\t */\n\tuse<TOther extends AdminBuilder<any>>(\n\t\tother: TOther,\n\t): AdminBuilder<\n\t\tPrettify<\n\t\t\tTypeMerge<\n\t\t\t\tUnsetProperty<\n\t\t\t\t\tTState,\n\t\t\t\t\t| \"fields\"\n\t\t\t\t\t| \"listViews\"\n\t\t\t\t\t| \"editViews\"\n\t\t\t\t\t| \"widgets\"\n\t\t\t\t\t| \"pages\"\n\t\t\t\t\t| \"components\"\n\t\t\t\t>,\n\t\t\t\t{\n\t\t\t\t\tfields: Prettify<\n\t\t\t\t\t\tTypeMerge<TState[\"fields\"], TOther[\"state\"][\"fields\"]>\n\t\t\t\t\t>;\n\t\t\t\t\tlistViews: Prettify<\n\t\t\t\t\t\tTypeMerge<TState[\"listViews\"], TOther[\"state\"][\"listViews\"]>\n\t\t\t\t\t>;\n\t\t\t\t\teditViews: Prettify<\n\t\t\t\t\t\tTypeMerge<TState[\"editViews\"], TOther[\"state\"][\"editViews\"]>\n\t\t\t\t\t>;\n\t\t\t\t\twidgets: Prettify<\n\t\t\t\t\t\tTypeMerge<TState[\"widgets\"], TOther[\"state\"][\"widgets\"]>\n\t\t\t\t\t>;\n\t\t\t\t\tpages: Prettify<TypeMerge<TState[\"pages\"], TOther[\"state\"][\"pages\"]>>;\n\t\t\t\t\tcomponents: Prettify<\n\t\t\t\t\t\tTypeMerge<TState[\"components\"], TOther[\"state\"][\"components\"]>\n\t\t\t\t\t>;\n\t\t\t\t}\n\t\t\t>\n\t\t>\n\t> {\n\t\tconst otherState = (other as any).state;\n\n\t\treturn new AdminBuilder({\n\t\t\t...this.state,\n\t\t\tfields: { ...this.state.fields, ...otherState.fields },\n\t\t\tlistViews: { ...this.state.listViews, ...otherState.listViews },\n\t\t\teditViews: { ...this.state.editViews, ...otherState.editViews },\n\t\t\twidgets: { ...this.state.widgets, ...otherState.widgets },\n\t\t\tpages: { ...this.state.pages, ...otherState.pages },\n\t\t\tcomponents: { ...this.state.components, ...otherState.components },\n\t\t} as any);\n\t}\n\n\t/**\n\t * Set default views config\n\t */\n\tdefaultViews<TDefaultViews extends DefaultViewsConfig>(\n\t\tconfig: TDefaultViews,\n\t): AdminBuilder<\n\t\tSetProperty<\n\t\t\tTState,\n\t\t\t\"defaultViews\",\n\t\t\tPrettify<TypeMerge<TState[\"defaultViews\"], TDefaultViews>>\n\t\t>\n\t> {\n\t\treturn new AdminBuilder({\n\t\t\t...this.state,\n\t\t\tdefaultViews: {\n\t\t\t\t...(this.state.defaultViews || {}),\n\t\t\t\t...config,\n\t\t\t},\n\t\t} as any);\n\t}\n\n\t/**\n\t * Create a page definition\n\t *\n\t * Creates a custom admin page outside of collections/globals.\n\t *\n\t * @example\n\t * ```ts\n\t * const builder = qa<AppCMS>().use(adminModule);\n\t *\n\t * const analyticsPage = builder.page(\"analytics\", {\n\t * component: AnalyticsPage,\n\t * })\n\t * ```\n\t */\n\tpage<TName extends string, TComponent extends MaybeLazyComponent>(\n\t\tname: TName,\n\t\tconfig: { component: TComponent },\n\t): PageBuilder<{\n\t\tname: TName;\n\t\tcomponent: TComponent;\n\t\tpath: undefined;\n\t}> {\n\t\treturn page(name, config);\n\t}\n\n\t/**\n\t * Create a widget definition\n\t *\n\t * Creates a dashboard widget.\n\t *\n\t * @example\n\t * ```ts\n\t * const builder = qa<AppCMS>().use(adminModule);\n\t *\n\t * const statsWidget = builder.widget(\"stats\", {\n\t * component: StatsWidget,\n\t * })\n\t * ```\n\t */\n\twidget<TName extends string, TComponent extends MaybeLazyComponent>(\n\t\tname: TName,\n\t\tconfig: { component: TComponent },\n\t): WidgetBuilder<{\n\t\tname: TName;\n\t\t\"~config\": any;\n\t\tcomponent: TComponent;\n\t}> {\n\t\treturn widget(name, config);\n\t}\n}\n"],"mappings":";;;;;;;;;;;AAwBA,IAAa,eAAb,MAAa,aAA+C;CAC3D,YAAY,AAAgBA,OAAe;EAAf;;CAE5B,OAAO,QAYJ;AACF,SAAO,IAAI,aAAa;GACvB,QAAQ;GACR,QAAQ,EAAE;GACV,YAAY,EAAE;GACd,WAAW,EAAE;GACb,WAAW,EAAE;GACb,OAAO,EAAE;GACT,SAAS,EAAE;GACX,QAAQ,EAAE;GACV,cAAc,EAAE;GAChB,QAAQ;GACR,cAAc,EAAE;GAChB,CAAC;;;;;CAMH,OACC,QAOC;AACD,SAAO,IAAI,aAAa;GACvB,GAAG,KAAK;GACR,QAAQ;IACP,GAAG,KAAK,MAAM;IACd,GAAG;IACH;GACD,CAAQ;;;;;CAMV,WACC,YAOC;AACD,SAAO,IAAI,aAAa;GACvB,GAAG,KAAK;GACR,YAAY;IACX,GAAG,KAAK,MAAM;IACd,GAAG;IACH;GACD,CAAQ;;;;;CAMV,MACC,OAeC;EACD,MAAMC,YAAiC,EAAE;EACzC,MAAMC,YAAiC,EAAE;AAEzC,OAAK,MAAM,CAAC,MAAM,QAAQ,OAAO,QAAQ,MAAM,EAAE;GAEhD,MAAM,OAAQ,IAAY;AAC1B,OAAI,SAAS,OACZ,WAAU,QAAQ;YACR,SAAS,OACnB,WAAU,QAAQ;;AAIpB,SAAO,IAAI,aAAa;GACvB,GAAG,KAAK;GACR,WAAW;IAAE,GAAG,KAAK,MAAM;IAAW,GAAG;IAAW;GACpD,WAAW;IAAE,GAAG,KAAK,MAAM;IAAW,GAAG;IAAW;GACpD,CAAQ;;;;;CAMV,QACC,SAOC;AACD,SAAO,IAAI,aAAa;GACvB,GAAG,KAAK;GACR,SAAS;IACR,GAAG,KAAK,MAAM;IACd,GAAG;IACH;GACD,CAAQ;;;;;CAMV,MACC,OAOC;AACD,SAAO,IAAI,aAAa;GACvB,GAAG,KAAK;GACR,OAAO;IACN,GAAG,KAAK,MAAM;IACd,GAAG;IACH;GACD,CAAQ;;;;;CAMV,IACC,OAiCC;EACD,MAAM,aAAc,MAAc;AAElC,SAAO,IAAI,aAAa;GACvB,GAAG,KAAK;GACR,QAAQ;IAAE,GAAG,KAAK,MAAM;IAAQ,GAAG,WAAW;IAAQ;GACtD,WAAW;IAAE,GAAG,KAAK,MAAM;IAAW,GAAG,WAAW;IAAW;GAC/D,WAAW;IAAE,GAAG,KAAK,MAAM;IAAW,GAAG,WAAW;IAAW;GAC/D,SAAS;IAAE,GAAG,KAAK,MAAM;IAAS,GAAG,WAAW;IAAS;GACzD,OAAO;IAAE,GAAG,KAAK,MAAM;IAAO,GAAG,WAAW;IAAO;GACnD,YAAY;IAAE,GAAG,KAAK,MAAM;IAAY,GAAG,WAAW;IAAY;GAClE,CAAQ;;;;;CAMV,aACC,QAOC;AACD,SAAO,IAAI,aAAa;GACvB,GAAG,KAAK;GACR,cAAc;IACb,GAAI,KAAK,MAAM,gBAAgB,EAAE;IACjC,GAAG;IACH;GACD,CAAQ;;;;;;;;;;;;;;;;CAiBV,KACC,MACA,QAKE;AACF,SAAO,KAAK,MAAM,OAAO;;;;;;;;;;;;;;;;CAiB1B,OACC,MACA,QAKE;AACF,SAAO,OAAO,MAAM,OAAO"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin-types.d.mts","names":[],"sources":["../../../src/client/builder/admin-types.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;AAsCA;AACA;AACA;AACY,KAlBA,eAAA,GAAkB,MAkBA,CAAA,MAAG,EAlBY,cAkBN,CAAA;AAgBtB,KA5BL,kBAAA,GAAqB,MA4BC,CAAA,MAAA,EA5Bc,eA4Bd,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA;AAEjB,KA7BL,qBAAA,GAAwB,MA6BnB,CAAA,MAAA,EA3BhB,kBA2BgB,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA;AAAqB,KAzB1B,qBAAA,GAAwB,MAyBE,CAAA,MAAA,EAvBrC,kBAuBqC,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA;AACjB,KAtBT,iBAAA,GAAoB,MAsBX,CAAA,MAAA,EAtB0B,cAsB1B,CAAA,MAAA,CAAA,CAAA;AAAyB,KArBlC,mBAAA,GAAsB,MAqBY,CAAA,MAAA,EArBG,gBAqBH,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA;AAC1B,KArBR,sBAAA,GAAyB,MAqBjB,CAAA,MAAA,EArBgC,kBAqBhC,CAAA,GAAA,CAAA,CAAA;AAAwB,KApBhC,kBAAA,GAAqB,MAoBW,CAAA,MAAA,EAAA,KAAA,CAAA;;;;;;;;;AAKH,UATxB,iBASwB,CAAA,OAAA,GAAA,EAAA,gBAPxB,kBAOwB,GAPH,kBAOG,EAAA,oBANpB,sBAMoB,GANK,sBAML,EAAA,mBALrB,qBAKqB,GALG,qBAKH,EAAA,mBAJrB,qBAIqB,GAJG,qBAIH,EAAA,eAHzB,iBAGyB,GAHL,iBAGK,EAAA,iBAFvB,mBAEuB,GAFD,mBAEC,EAAA,gBADxB,kBACwB,GADH,kBACG,EAAA,sBAAlB,eAAkB,GAAA,eAAA,CAAA,CAAA;EAGhC,MAAA,EAAA,IAAA;EAGA,MAAA,EAAA,OAAA;EACI,UAAA,EAAA,WAAA;EACD,SAAA,EAAA,UAAA;EACA,SAAA,EAAA,UAAA;EACJ,KAAA,EAAA,MAAA;EACE,OAAA,EAAA,QAAA;EACD,MAAA,EAAA,OAAA;EACM,YAAA,EAAA,aAAA;EAGN,MAAA,EAAA,YAAA;EACM,YAAA,EAAA,kBAAA;;;;;;KA4EH,iBAAiB;;;;QAE1B;;;;;;KAOS,gBAAgB,YAAY;;;;KAK5B,gBAAgB,YAAY;;;;KAK5B,0BAA0B,qCACzB,KAAK,WAAW,EAAE,mBAAmB,YAAY,EAAE;;;;KAMpD,0BAA0B,qCACzB,KAAK,WAAW,EAAE,mBAAmB,YAAY,EAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.mts","names":[],"sources":["../../../src/client/builder/admin.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AAqCA;KAZK,mBAYiC,CAAA,CAAA,CAAA,GAZR,CAYQ,SAAA;EAAoB,KAAA,EAAA,KAAA,EAAA;CACzC,GAAA,CAAA,GAbgD,CAahD;;;;KARZ,oBASI,CAAA,CAAA,CAAA,GAAA,QAsBI,MA9BC,CA8BI,GA9BA,mBA8BA,CA9BoB,CA8BpB,CA9BsB,CA8BtB,CAAA,CAAA,EAAgB;;;;AAMA,KA9BtB,UA8BsB,CAAA,iBA9BI,iBA8BJ,GA9BwB,iBA8BxB,CAAA,GA7B9B,YA6B8B,CA7BjB,QA6BiB,CAAA,GA5B9B,KA4B8B,CA5BxB,QA4BwB,CAAA;;;;;;;;;;;;;;;;;AA0KR,cAhLb,KAgLa,CAAA,iBAhLQ,iBAgLR,GAhL4B,iBAgL5B,CAAA,CAAA;EAOR,SAAA,KAAA,EAtLmB,QAsLnB;EAOA,WAAA,CAAA,KAAA,EA7LmB,QA6LnB;EAOF;;AAYhB;EAUY,OAAA,SAAQ,CAAA,iBArNc,iBAqNd,CAAA,CAAA,KAAA,EApNT,UAoNS,CApNE,QAoNF,CAAA,CAAA,EAnNf,KAmNe,CAnNT,QAmNS,CAAA;EAClB;;;;EAEU,QAAA,CAAA,CAAA,EAvME,oBAuMF,CAvMuB,QAuMvB,CAAA,OAAA,CAAA,CAAA;EAAN;;;mBAjLa,qBAAqB;;;;8BAmBnC,oBAAoB;;;;;+BAepB,oBAAoB;;;;qBAiBJ;;;;eAWN;;;;;;;;;;;;;;;;;qBAmDM;;;;eAWN;;;;0BAOW;;;;kBAOR;;;;kBAOA;;;;gBAOF;;;;;KAYJ,wBACV,eAAe;;;;;;KASL,QAAA,GACV,wBAAwB,6BACpB,MAAM,UACN,MAAM"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin.mjs","names":["state: TState","result: Record<string, any>"],"sources":["../../../src/client/builder/admin.ts"],"sourcesContent":["/**\n * Admin Runtime Class\n *\n * Wraps AdminBuilder state with runtime methods for accessing configuration.\n * This is what gets passed to AdminProvider and used throughout the admin UI.\n */\n\nimport { DEFAULT_LOCALE, DEFAULT_LOCALE_CONFIG } from \"questpie/shared\";\nimport type { AdminBuilder } from \"./admin-builder\";\nimport type { AdminBuilderState } from \"./admin-types\";\nimport type {\n RegisteredAdmin,\n RegisteredCMS,\n RegisteredCollectionNames,\n RegisteredGlobalNames,\n} from \"./registry\";\n\n// ============================================================================\n// Type Helpers for State Extraction\n// ============================================================================\n\n/**\n * Extract state from a builder or return the value as-is.\n * Builders have a `state` property, plain configs do not.\n */\ntype ExtractBuilderState<T> = T extends { state: infer S } ? S : T;\n\n/**\n * Map over a record and extract state from each builder value.\n */\ntype ExtractBuilderStates<T> = {\n [K in keyof T]: ExtractBuilderState<T[K]>;\n};\n\n/**\n * Input type for Admin - accepts either an AdminBuilder or Admin instance\n */\nexport type AdminInput<TState extends AdminBuilderState = AdminBuilderState> =\n | AdminBuilder<TState>\n | Admin<TState>;\n\n// ============================================================================\n// Admin Class\n// ============================================================================\n\n/**\n * Admin runtime instance\n *\n * Provides methods to access admin configuration at runtime.\n *\n * @example\n * ```ts\n * import { Admin } from \"@questpie/admin/builder\";\n *\n * // Direct usage - pass builder to AdminLayoutProvider\n * <AdminLayoutProvider admin={admin} ... />\n *\n * // Or create Admin instance explicitly if needed\n * const adminInstance = Admin.normalize(adminBuilder);\n * ```\n */\nexport class Admin<TState extends AdminBuilderState = AdminBuilderState> {\n constructor(public readonly state: TState) {}\n\n /**\n * Normalize input to Admin instance (internal helper)\n */\n static normalize<TState extends AdminBuilderState>(\n input: AdminInput<TState>,\n ): Admin<TState> {\n if (input instanceof Admin) {\n return input;\n }\n return new Admin(input.state);\n }\n\n // ============================================================================\n // Page Methods\n // ============================================================================\n\n /**\n * Get all custom page configurations.\n * Automatically extracts `.state` from builders.\n */\n getPages(): ExtractBuilderStates<TState[\"pages\"]> {\n const pages = this.state.pages ?? {};\n const result: Record<string, any> = {};\n\n for (const [name, config] of Object.entries(pages)) {\n // Extract state from builders, pass through plain configs\n result[name] =\n config && typeof config === \"object\" && \"state\" in config\n ? (config as any).state\n : config;\n }\n\n return result as ExtractBuilderStates<TState[\"pages\"]>;\n }\n\n // ============================================================================\n // Component Methods\n // ============================================================================\n\n /**\n * Get all registered component implementations.\n */\n getComponents(): ExtractBuilderStates<TState[\"components\"]> {\n const components = this.state.components ?? {};\n const result: Record<string, any> = {};\n\n for (const [name, config] of Object.entries(components)) {\n result[name] =\n config && typeof config === \"object\" && \"state\" in config\n ? (config as any).state\n : config;\n }\n\n return result as ExtractBuilderStates<TState[\"components\"]>;\n }\n\n /**\n * Get a specific component implementation by name.\n */\n getComponent(\n name: string,\n ): ExtractBuilderState<TState[\"components\"][string]> | undefined {\n const config = (this.state.components as Record<string, any>)?.[name];\n if (!config) return undefined;\n\n return config && typeof config === \"object\" && \"state\" in config\n ? config.state\n : config;\n }\n\n /**\n * Get configuration for a specific page.\n * Automatically extracts `.state` from builder.\n */\n getPageConfig(\n name: string,\n ): ExtractBuilderState<TState[\"pages\"][string]> | undefined {\n const config = (this.state.pages as Record<string, any>)?.[name];\n if (!config) return undefined;\n\n // Extract state from builder, pass through plain config\n return config && typeof config === \"object\" && \"state\" in config\n ? config.state\n : config;\n }\n\n // ============================================================================\n // UI Configuration Methods\n // ============================================================================\n\n /**\n * Get default views configuration\n */\n getDefaultViews(): TState[\"defaultViews\"] {\n return this.state.defaultViews ?? ({} as TState[\"defaultViews\"]);\n }\n\n // ============================================================================\n // Locale Methods\n // ============================================================================\n\n /**\n * Get locale configuration\n */\n getLocale(): TState[\"locale\"] {\n return this.state.locale ?? DEFAULT_LOCALE_CONFIG;\n }\n\n /**\n * Get available locales\n */\n getAvailableLocales(): string[] {\n return this.getLocale().supported ?? [DEFAULT_LOCALE];\n }\n\n /**\n * Get default locale\n */\n getDefaultLocale(): string {\n return this.getLocale().default ?? DEFAULT_LOCALE;\n }\n\n /**\n * Get human-readable label for a locale\n */\n getLocaleLabel(locale: string): string {\n // TODO: Support custom labels from locale config\n const labels: Record<string, string> = {\n en: \"English\",\n sk: \"Slovencina\",\n cs: \"Cestina\",\n de: \"Deutsch\",\n fr: \"Francais\",\n es: \"Espanol\",\n it: \"Italiano\",\n pt: \"Portugues\",\n pl: \"Polski\",\n nl: \"Nederlands\",\n ru: \"Russkij\",\n uk: \"Ukrainska\",\n ja: \"Nihongo\",\n ko: \"Hangugeo\",\n zh: \"Zhongwen\",\n };\n return labels[locale] ?? locale.toUpperCase();\n }\n\n // ============================================================================\n // Translations Methods\n // ============================================================================\n\n /**\n * Get translations map from builder state\n * Used by AdminProvider to initialize i18n\n */\n getTranslations(): TState[\"translations\"] {\n return this.state.translations ?? ({} as TState[\"translations\"]);\n }\n\n // ============================================================================\n // Registry Methods (for field/view lookups)\n // ============================================================================\n\n /**\n * Get all registered field definitions\n */\n getFields(): TState[\"fields\"] {\n return this.state.fields ?? ({} as TState[\"fields\"]);\n }\n\n /**\n * Get a specific field definition\n */\n getField(name: string): TState[\"fields\"][string] | undefined {\n return (this.state.fields as Record<string, any>)?.[name];\n }\n\n /**\n * Get all registered list view definitions\n */\n getListViews(): TState[\"listViews\"] {\n return this.state.listViews ?? ({} as TState[\"listViews\"]);\n }\n\n /**\n * Get all registered edit view definitions\n */\n getEditViews(): TState[\"editViews\"] {\n return this.state.editViews ?? ({} as TState[\"editViews\"]);\n }\n\n /**\n * Get all registered widget definitions\n */\n getWidgets(): TState[\"widgets\"] {\n return this.state.widgets ?? ({} as TState[\"widgets\"]);\n }\n}\n\n// ============================================================================\n// Type Helpers\n// ============================================================================\n\n/**\n * Infer the CMS type from an Admin instance\n */\nexport type InferAdminCMS<TAdmin> =\n TAdmin extends Admin<infer TState>\n ? TState extends { \"~app\": infer TApp }\n ? TApp\n : unknown\n : unknown;\n\n/**\n * Get the registered Admin type (from module augmentation)\n */\nexport type AppAdmin =\n RegisteredAdmin extends AdminBuilder<infer TState>\n ? Admin<TState>\n : Admin<AdminBuilderState>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA6DA,IAAa,QAAb,MAAa,MAA4D;CACvE,YAAY,AAAgBA,OAAe;EAAf;;;;;CAK5B,OAAO,UACL,OACe;AACf,MAAI,iBAAiB,MACnB,QAAO;AAET,SAAO,IAAI,MAAM,MAAM,MAAM;;;;;;CAW/B,WAAkD;EAChD,MAAM,QAAQ,KAAK,MAAM,SAAS,EAAE;EACpC,MAAMC,SAA8B,EAAE;AAEtC,OAAK,MAAM,CAAC,MAAM,WAAW,OAAO,QAAQ,MAAM,CAEhD,QAAO,QACL,UAAU,OAAO,WAAW,YAAY,WAAW,SAC9C,OAAe,QAChB;AAGR,SAAO;;;;;CAUT,gBAA4D;EAC1D,MAAM,aAAa,KAAK,MAAM,cAAc,EAAE;EAC9C,MAAMA,SAA8B,EAAE;AAEtC,OAAK,MAAM,CAAC,MAAM,WAAW,OAAO,QAAQ,WAAW,CACrD,QAAO,QACL,UAAU,OAAO,WAAW,YAAY,WAAW,SAC9C,OAAe,QAChB;AAGR,SAAO;;;;;CAMT,aACE,MAC+D;EAC/D,MAAM,SAAU,KAAK,MAAM,aAAqC;AAChE,MAAI,CAAC,OAAQ,QAAO;AAEpB,SAAO,UAAU,OAAO,WAAW,YAAY,WAAW,SACtD,OAAO,QACP;;;;;;CAON,cACE,MAC0D;EAC1D,MAAM,SAAU,KAAK,MAAM,QAAgC;AAC3D,MAAI,CAAC,OAAQ,QAAO;AAGpB,SAAO,UAAU,OAAO,WAAW,YAAY,WAAW,SACtD,OAAO,QACP;;;;;CAUN,kBAA0C;AACxC,SAAO,KAAK,MAAM,gBAAiB,EAAE;;;;;CAUvC,YAA8B;AAC5B,SAAO,KAAK,MAAM,UAAU;;;;;CAM9B,sBAAgC;AAC9B,SAAO,KAAK,WAAW,CAAC,aAAa,CAAC,eAAe;;;;;CAMvD,mBAA2B;AACzB,SAAO,KAAK,WAAW,CAAC,WAAW;;;;;CAMrC,eAAe,QAAwB;AAmBrC,SAjBuC;GACrC,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACL,CACa,WAAW,OAAO,aAAa;;;;;;CAW/C,kBAA0C;AACxC,SAAO,KAAK,MAAM,gBAAiB,EAAE;;;;;CAUvC,YAA8B;AAC5B,SAAO,KAAK,MAAM,UAAW,EAAE;;;;;CAMjC,SAAS,MAAoD;AAC3D,SAAQ,KAAK,MAAM,SAAiC;;;;;CAMtD,eAAoC;AAClC,SAAO,KAAK,MAAM,aAAc,EAAE;;;;;CAMpC,eAAoC;AAClC,SAAO,KAAK,MAAM,aAAc,EAAE;;;;;CAMpC,aAAgC;AAC9B,SAAO,KAAK,MAAM,WAAY,EAAE"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Badge, IconifyIcon } from "../../components/component-renderer.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/client/builder/defaults/components.ts
|
|
4
|
-
/**
|
|
5
|
-
* Built-in Component Registry
|
|
6
|
-
*
|
|
7
|
-
* Default component implementations used by the admin UI.
|
|
8
|
-
* Registered through AdminBuilder.components() so nothing is hardcoded.
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* Built-in components registry
|
|
12
|
-
*/
|
|
13
|
-
const builtInComponents = {
|
|
14
|
-
icon: IconifyIcon,
|
|
15
|
-
badge: Badge
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
//#endregion
|
|
19
|
-
export { builtInComponents };
|
|
20
|
-
//# sourceMappingURL=components.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components.mjs","names":[],"sources":["../../../../src/client/builder/defaults/components.ts"],"sourcesContent":["/**\n * Built-in Component Registry\n *\n * Default component implementations used by the admin UI.\n * Registered through AdminBuilder.components() so nothing is hardcoded.\n */\n\nimport { Badge, IconifyIcon } from \"../../components/component-renderer\";\n\n/**\n * Built-in components registry\n */\nexport const builtInComponents = {\n icon: IconifyIcon,\n badge: Badge,\n} as const;\n"],"mappings":";;;;;;;;;;;;AAYA,MAAa,oBAAoB;CAC/B,MAAM;CACN,OAAO;CACR"}
|