@questpie/admin 1.1.1 → 2.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 +245 -474
- package/dist/_virtual/rolldown_runtime.mjs +18 -0
- package/dist/augmentation.d.mts +315 -0
- package/dist/augmentation.d.mts.map +1 -0
- package/dist/client/blocks/block-registry.d.mts +199 -0
- package/dist/client/blocks/block-registry.d.mts.map +1 -0
- package/dist/client/blocks/block-registry.mjs +88 -0
- package/dist/client/blocks/block-registry.mjs.map +1 -0
- package/dist/client/blocks/block-renderer.d.mts +52 -0
- package/dist/client/blocks/block-renderer.d.mts.map +1 -0
- package/dist/client/blocks/block-renderer.mjs +71 -0
- package/dist/client/blocks/block-renderer.mjs.map +1 -0
- package/dist/client/blocks/index.d.mts +4 -0
- package/dist/client/blocks/prefetch.d.mts +45 -0
- package/dist/client/blocks/prefetch.d.mts.map +1 -0
- package/dist/client/blocks/prefetch.mjs +26 -0
- package/dist/client/blocks/prefetch.mjs.map +1 -0
- package/dist/client/blocks/types.d.mts +69 -0
- package/dist/client/blocks/types.d.mts.map +1 -0
- package/dist/client/blocks/types.mjs +20 -0
- package/dist/client/blocks/types.mjs.map +1 -0
- package/dist/client/builder/admin-builder.d.mts +112 -0
- package/dist/client/builder/admin-builder.d.mts.map +1 -0
- package/dist/client/builder/admin-builder.mjs +185 -0
- package/dist/client/builder/admin-builder.mjs.map +1 -0
- package/dist/client/builder/admin-types.d.mts +73 -0
- package/dist/client/builder/admin-types.d.mts.map +1 -0
- package/dist/client/builder/admin.d.mts +121 -0
- package/dist/client/builder/admin.d.mts.map +1 -0
- package/dist/client/builder/admin.mjs +160 -0
- package/dist/client/builder/admin.mjs.map +1 -0
- package/dist/client/builder/defaults/components.mjs +20 -0
- package/dist/client/builder/defaults/components.mjs.map +1 -0
- package/dist/client/builder/defaults/core.d.mts +354 -0
- package/dist/client/builder/defaults/core.d.mts.map +1 -0
- package/dist/client/builder/defaults/core.mjs +49 -0
- package/dist/client/builder/defaults/core.mjs.map +1 -0
- package/dist/client/builder/defaults/fields.mjs +328 -0
- package/dist/client/builder/defaults/fields.mjs.map +1 -0
- package/dist/client/builder/defaults/pages.mjs +58 -0
- package/dist/client/builder/defaults/pages.mjs.map +1 -0
- package/dist/client/builder/defaults/starter.d.mts +351 -0
- package/dist/client/builder/defaults/starter.d.mts.map +1 -0
- package/dist/client/builder/defaults/starter.mjs +28 -0
- package/dist/client/builder/defaults/starter.mjs.map +1 -0
- package/dist/client/builder/defaults/views.mjs +27 -0
- package/dist/client/builder/defaults/views.mjs.map +1 -0
- package/dist/client/builder/defaults/widgets.mjs +31 -0
- package/dist/client/builder/defaults/widgets.mjs.map +1 -0
- package/dist/client/builder/field/field.d.mts +229 -0
- package/dist/client/builder/field/field.d.mts.map +1 -0
- package/dist/client/builder/field/field.mjs +83 -0
- package/dist/client/builder/field/field.mjs.map +1 -0
- package/dist/client/builder/index.d.mts +36 -0
- package/dist/client/builder/index.d.mts.map +1 -0
- package/dist/client/builder/page/page.d.mts +36 -0
- package/dist/client/builder/page/page.d.mts.map +1 -0
- package/dist/client/builder/page/page.mjs +27 -0
- package/dist/client/builder/page/page.mjs.map +1 -0
- package/dist/client/builder/proxies.d.mts +2 -0
- package/dist/client/builder/proxies.mjs +24 -0
- package/dist/client/builder/proxies.mjs.map +1 -0
- package/dist/client/builder/qa.d.mts +50 -0
- package/dist/client/builder/qa.d.mts.map +1 -0
- package/dist/client/builder/qa.mjs +42 -0
- package/dist/client/builder/qa.mjs.map +1 -0
- package/dist/client/builder/registry.d.mts +70 -0
- package/dist/client/builder/registry.d.mts.map +1 -0
- package/dist/client/builder/types/action-registry.d.mts +2 -0
- package/dist/client/builder/types/action-registry.mjs +142 -0
- package/dist/client/builder/types/action-registry.mjs.map +1 -0
- package/dist/client/builder/types/action-types.d.mts +253 -0
- package/dist/client/builder/types/action-types.d.mts.map +1 -0
- package/dist/client/builder/types/collection-types.d.mts +199 -0
- package/dist/client/builder/types/collection-types.d.mts.map +1 -0
- package/dist/client/builder/types/collection-types.mjs +11 -0
- package/dist/client/builder/types/collection-types.mjs.map +1 -0
- package/dist/client/builder/types/common.d.mts +60 -0
- package/dist/client/builder/types/common.d.mts.map +1 -0
- package/dist/client/builder/types/field-types.d.mts +593 -0
- package/dist/client/builder/types/field-types.d.mts.map +1 -0
- package/dist/client/builder/types/field-types.mjs +19 -0
- package/dist/client/builder/types/field-types.mjs.map +1 -0
- package/dist/client/builder/types/global-types.d.mts +22 -0
- package/dist/client/builder/types/global-types.d.mts.map +1 -0
- package/dist/client/builder/types/ui-config.d.mts +160 -0
- package/dist/client/builder/types/ui-config.d.mts.map +1 -0
- package/dist/client/builder/types/views.d.mts +89 -0
- package/dist/client/builder/types/views.d.mts.map +1 -0
- package/dist/client/builder/types/widget-types.d.mts +563 -0
- package/dist/client/builder/types/widget-types.d.mts.map +1 -0
- package/dist/client/builder/validation.d.mts +3 -0
- package/dist/client/builder/validation.mjs +208 -0
- package/dist/client/builder/validation.mjs.map +1 -0
- package/dist/client/builder/view/view.d.mts +129 -0
- package/dist/client/builder/view/view.d.mts.map +1 -0
- package/dist/client/builder/view/view.mjs +109 -0
- package/dist/client/builder/view/view.mjs.map +1 -0
- package/dist/client/builder/widget/widget.d.mts +33 -0
- package/dist/client/builder/widget/widget.d.mts.map +1 -0
- package/dist/client/builder/widget/widget.mjs +26 -0
- package/dist/client/builder/widget/widget.mjs.map +1 -0
- package/dist/client/components/actions/action-button.d.mts +2 -0
- package/dist/client/components/actions/action-button.mjs +135 -0
- package/dist/client/components/actions/action-button.mjs.map +1 -0
- package/dist/client/components/actions/action-dialog.d.mts +2 -0
- package/dist/client/components/actions/action-dialog.mjs +264 -0
- package/dist/client/components/actions/action-dialog.mjs.map +1 -0
- package/dist/client/components/actions/confirmation-dialog.d.mts +2 -0
- package/dist/client/components/actions/confirmation-dialog.mjs +82 -0
- package/dist/client/components/actions/confirmation-dialog.mjs.map +1 -0
- package/dist/client/components/actions/header-actions.d.mts +2 -0
- package/dist/client/components/actions/header-actions.mjs +117 -0
- package/dist/client/components/actions/header-actions.mjs.map +1 -0
- package/dist/client/components/actions/index.d.mts +4 -0
- package/dist/client/components/admin-link.d.mts +67 -0
- package/dist/client/components/admin-link.d.mts.map +1 -0
- package/dist/client/components/admin-link.mjs +92 -0
- package/dist/client/components/admin-link.mjs.map +1 -0
- package/dist/client/components/auth/auth-guard.d.mts +51 -0
- package/dist/client/components/auth/auth-guard.d.mts.map +1 -0
- package/dist/client/components/auth/auth-guard.mjs +60 -0
- package/dist/client/components/auth/auth-guard.mjs.map +1 -0
- package/dist/client/components/auth/auth-loading.d.mts +36 -0
- package/dist/client/components/auth/auth-loading.d.mts.map +1 -0
- package/dist/client/components/auth/auth-loading.mjs +27 -0
- package/dist/client/components/auth/auth-loading.mjs.map +1 -0
- package/dist/client/components/auth/index.d.mts +2 -0
- package/dist/client/components/blocks/block-canvas.mjs +90 -0
- package/dist/client/components/blocks/block-canvas.mjs.map +1 -0
- package/dist/client/components/blocks/block-editor-context.mjs +58 -0
- package/dist/client/components/blocks/block-editor-context.mjs.map +1 -0
- package/dist/client/components/blocks/block-editor-layout.mjs +82 -0
- package/dist/client/components/blocks/block-editor-layout.mjs.map +1 -0
- package/dist/client/components/blocks/block-editor-provider.mjs +155 -0
- package/dist/client/components/blocks/block-editor-provider.mjs.map +1 -0
- package/dist/client/components/blocks/block-fields-renderer.mjs +70 -0
- package/dist/client/components/blocks/block-fields-renderer.mjs.map +1 -0
- package/dist/client/components/blocks/block-insert-button.mjs +72 -0
- package/dist/client/components/blocks/block-insert-button.mjs.map +1 -0
- package/dist/client/components/blocks/block-item-menu.mjs +161 -0
- package/dist/client/components/blocks/block-item-menu.mjs.map +1 -0
- package/dist/client/components/blocks/block-item.mjs +187 -0
- package/dist/client/components/blocks/block-item.mjs.map +1 -0
- package/dist/client/components/blocks/block-library-sidebar.mjs +190 -0
- package/dist/client/components/blocks/block-library-sidebar.mjs.map +1 -0
- package/dist/client/components/blocks/block-tree.mjs +45 -0
- package/dist/client/components/blocks/block-tree.mjs.map +1 -0
- package/dist/client/components/blocks/block-type-icon.mjs +50 -0
- package/dist/client/components/blocks/block-type-icon.mjs.map +1 -0
- package/dist/client/components/blocks/utils/tree-utils.mjs +186 -0
- package/dist/client/components/blocks/utils/tree-utils.mjs.map +1 -0
- package/dist/client/components/component-renderer.d.mts +125 -0
- package/dist/client/components/component-renderer.d.mts.map +1 -0
- package/dist/client/components/component-renderer.mjs +145 -0
- package/dist/client/components/component-renderer.mjs.map +1 -0
- package/dist/client/components/error-boundary.mjs +92 -0
- package/dist/client/components/error-boundary.mjs.map +1 -0
- package/dist/client/components/fields/array-field.d.mts +44 -0
- package/dist/client/components/fields/array-field.d.mts.map +1 -0
- package/dist/client/components/fields/array-field.mjs +231 -0
- package/dist/client/components/fields/array-field.mjs.map +1 -0
- package/dist/client/components/fields/asset-preview-field.d.mts +52 -0
- package/dist/client/components/fields/asset-preview-field.d.mts.map +1 -0
- package/dist/client/components/fields/asset-preview-field.mjs +60 -0
- package/dist/client/components/fields/asset-preview-field.mjs.map +1 -0
- package/dist/client/components/fields/blocks-field/blocks-field.d.mts +41 -0
- package/dist/client/components/fields/blocks-field/blocks-field.d.mts.map +1 -0
- package/dist/client/components/fields/blocks-field/blocks-field.mjs +101 -0
- package/dist/client/components/fields/blocks-field/blocks-field.mjs.map +1 -0
- package/dist/client/components/fields/blocks-field/index.d.mts +1 -0
- package/dist/client/components/fields/boolean-field.d.mts +30 -0
- package/dist/client/components/fields/boolean-field.d.mts.map +1 -0
- package/dist/client/components/fields/boolean-field.mjs +47 -0
- package/dist/client/components/fields/boolean-field.mjs.map +1 -0
- package/dist/client/components/fields/custom-field.d.mts +3 -0
- package/dist/client/components/fields/date-field.d.mts +22 -0
- package/dist/client/components/fields/date-field.d.mts.map +1 -0
- package/dist/client/components/fields/date-field.mjs +42 -0
- package/dist/client/components/fields/date-field.mjs.map +1 -0
- package/dist/client/components/fields/datetime-field.d.mts +23 -0
- package/dist/client/components/fields/datetime-field.d.mts.map +1 -0
- package/dist/client/components/fields/datetime-field.mjs +43 -0
- package/dist/client/components/fields/datetime-field.mjs.map +1 -0
- package/dist/client/components/fields/email-field.d.mts +19 -0
- package/dist/client/components/fields/email-field.d.mts.map +1 -0
- package/dist/client/components/fields/email-field.mjs +38 -0
- package/dist/client/components/fields/email-field.mjs.map +1 -0
- package/dist/client/components/fields/embedded-collection.d.mts +3 -0
- package/dist/client/components/fields/field-types.d.mts +571 -0
- package/dist/client/components/fields/field-types.d.mts.map +1 -0
- package/dist/client/components/fields/field-utils.d.mts +1 -0
- package/dist/client/components/fields/field-utils.mjs +65 -0
- package/dist/client/components/fields/field-utils.mjs.map +1 -0
- package/dist/client/components/fields/field-wrapper.d.mts +3 -0
- package/dist/client/components/fields/field-wrapper.mjs +49 -0
- package/dist/client/components/fields/field-wrapper.mjs.map +1 -0
- package/dist/client/components/fields/index.d.mts +33 -0
- package/dist/client/components/fields/json-field.d.mts +84 -0
- package/dist/client/components/fields/json-field.d.mts.map +1 -0
- package/dist/client/components/fields/json-field.mjs +248 -0
- package/dist/client/components/fields/json-field.mjs.map +1 -0
- package/dist/client/components/fields/locale-badge.d.mts +1 -0
- package/dist/client/components/fields/locale-badge.mjs +17 -0
- package/dist/client/components/fields/locale-badge.mjs.map +1 -0
- package/dist/client/components/fields/number-field.d.mts +23 -0
- package/dist/client/components/fields/number-field.d.mts.map +1 -0
- package/dist/client/components/fields/number-field.mjs +40 -0
- package/dist/client/components/fields/number-field.mjs.map +1 -0
- package/dist/client/components/fields/object-array-field.d.mts +2 -0
- package/dist/client/components/fields/object-array-field.mjs +313 -0
- package/dist/client/components/fields/object-array-field.mjs.map +1 -0
- package/dist/client/components/fields/object-field.d.mts +32 -0
- package/dist/client/components/fields/object-field.d.mts.map +1 -0
- package/dist/client/components/fields/object-field.mjs +128 -0
- package/dist/client/components/fields/object-field.mjs.map +1 -0
- package/dist/client/components/fields/relation/displays/cards-display.d.mts +2 -0
- package/dist/client/components/fields/relation/displays/cards-display.mjs +140 -0
- package/dist/client/components/fields/relation/displays/cards-display.mjs.map +1 -0
- package/dist/client/components/fields/relation/displays/chips-display.d.mts +2 -0
- package/dist/client/components/fields/relation/displays/chips-display.mjs +100 -0
- package/dist/client/components/fields/relation/displays/chips-display.mjs.map +1 -0
- package/dist/client/components/fields/relation/displays/grid-display.d.mts +2 -0
- package/dist/client/components/fields/relation/displays/grid-display.mjs +114 -0
- package/dist/client/components/fields/relation/displays/grid-display.mjs.map +1 -0
- package/dist/client/components/fields/relation/displays/index.d.mts +6 -0
- package/dist/client/components/fields/relation/displays/list-display.d.mts +2 -0
- package/dist/client/components/fields/relation/displays/list-display.mjs +128 -0
- package/dist/client/components/fields/relation/displays/list-display.mjs.map +1 -0
- package/dist/client/components/fields/relation/displays/table-display.d.mts +2 -0
- package/dist/client/components/fields/relation/displays/table-display.mjs +134 -0
- package/dist/client/components/fields/relation/displays/table-display.mjs.map +1 -0
- package/dist/client/components/fields/relation/displays/types.d.mts +22 -0
- package/dist/client/components/fields/relation/displays/types.d.mts.map +1 -0
- package/dist/client/components/fields/relation/displays/types.mjs +73 -0
- package/dist/client/components/fields/relation/displays/types.mjs.map +1 -0
- package/dist/client/components/fields/relation/index.d.mts +3 -0
- package/dist/client/components/fields/relation/relation-items-display.d.mts +5 -0
- package/dist/client/components/fields/relation/relation-items-display.mjs +47 -0
- package/dist/client/components/fields/relation/relation-items-display.mjs.map +1 -0
- package/dist/client/components/fields/relation-field.d.mts +134 -0
- package/dist/client/components/fields/relation-field.d.mts.map +1 -0
- package/dist/client/components/fields/relation-field.mjs +106 -0
- package/dist/client/components/fields/relation-field.mjs.map +1 -0
- package/dist/client/components/fields/relation-picker.d.mts +4 -0
- package/dist/client/components/fields/relation-picker.mjs +301 -0
- package/dist/client/components/fields/relation-picker.mjs.map +1 -0
- package/dist/client/components/fields/relation-select.d.mts +3 -0
- package/dist/client/components/fields/relation-select.mjs +219 -0
- package/dist/client/components/fields/relation-select.mjs.map +1 -0
- package/dist/client/components/fields/reverse-relation-field.d.mts +2 -0
- package/dist/client/components/fields/rich-text-editor/bubble-menu.mjs +56 -0
- package/dist/client/components/fields/rich-text-editor/bubble-menu.mjs.map +1 -0
- package/dist/client/components/fields/rich-text-editor/extensions.mjs +118 -0
- package/dist/client/components/fields/rich-text-editor/extensions.mjs.map +1 -0
- package/dist/client/components/fields/rich-text-editor/image-popover.mjs +196 -0
- package/dist/client/components/fields/rich-text-editor/image-popover.mjs.map +1 -0
- package/dist/client/components/fields/rich-text-editor/index.d.mts +4 -0
- package/dist/client/components/fields/rich-text-editor/index.mjs +187 -0
- package/dist/client/components/fields/rich-text-editor/index.mjs.map +1 -0
- package/dist/client/components/fields/rich-text-editor/link-popover.mjs +86 -0
- package/dist/client/components/fields/rich-text-editor/link-popover.mjs.map +1 -0
- package/dist/client/components/fields/rich-text-editor/presets.d.mts +11 -0
- package/dist/client/components/fields/rich-text-editor/presets.d.mts.map +1 -0
- package/dist/client/components/fields/rich-text-editor/presets.mjs +124 -0
- package/dist/client/components/fields/rich-text-editor/presets.mjs.map +1 -0
- package/dist/client/components/fields/rich-text-editor/slash-commands.mjs +145 -0
- package/dist/client/components/fields/rich-text-editor/slash-commands.mjs.map +1 -0
- package/dist/client/components/fields/rich-text-editor/table-controls.mjs +124 -0
- package/dist/client/components/fields/rich-text-editor/table-controls.mjs.map +1 -0
- package/dist/client/components/fields/rich-text-editor/toolbar.mjs +280 -0
- package/dist/client/components/fields/rich-text-editor/toolbar.mjs.map +1 -0
- package/dist/client/components/fields/rich-text-editor/types.d.mts +78 -0
- package/dist/client/components/fields/rich-text-editor/types.d.mts.map +1 -0
- package/dist/client/components/fields/rich-text-editor/types.mjs +31 -0
- package/dist/client/components/fields/rich-text-editor/types.mjs.map +1 -0
- package/dist/client/components/fields/rich-text-editor/utils.mjs +51 -0
- package/dist/client/components/fields/rich-text-editor/utils.mjs.map +1 -0
- package/dist/client/components/fields/rich-text-editor/variants.d.mts +2 -0
- package/dist/client/components/fields/rich-text-field.d.mts +14 -0
- package/dist/client/components/fields/rich-text-field.d.mts.map +1 -0
- package/dist/client/components/fields/rich-text-field.mjs +26 -0
- package/dist/client/components/fields/rich-text-field.mjs.map +1 -0
- package/dist/client/components/fields/select-field.d.mts +25 -0
- package/dist/client/components/fields/select-field.d.mts.map +1 -0
- package/dist/client/components/fields/select-field.mjs +53 -0
- package/dist/client/components/fields/select-field.mjs.map +1 -0
- package/dist/client/components/fields/status-field.d.mts +2 -0
- package/dist/client/components/fields/text-field.d.mts +22 -0
- package/dist/client/components/fields/text-field.d.mts.map +1 -0
- package/dist/client/components/fields/text-field.mjs +39 -0
- package/dist/client/components/fields/text-field.mjs.map +1 -0
- package/dist/client/components/fields/textarea-field.d.mts +22 -0
- package/dist/client/components/fields/textarea-field.d.mts.map +1 -0
- package/dist/client/components/fields/textarea-field.mjs +39 -0
- package/dist/client/components/fields/textarea-field.mjs.map +1 -0
- package/dist/client/components/fields/time-field.d.mts +20 -0
- package/dist/client/components/fields/time-field.d.mts.map +1 -0
- package/dist/client/components/fields/time-field.mjs +39 -0
- package/dist/client/components/fields/time-field.mjs.map +1 -0
- package/dist/client/components/fields/upload-field.d.mts +97 -0
- package/dist/client/components/fields/upload-field.d.mts.map +1 -0
- package/dist/client/components/fields/upload-field.mjs +497 -0
- package/dist/client/components/fields/upload-field.mjs.map +1 -0
- package/dist/client/components/filter-builder/columns-tab.d.mts +1 -0
- package/dist/client/components/filter-builder/columns-tab.mjs +131 -0
- package/dist/client/components/filter-builder/columns-tab.mjs.map +1 -0
- package/dist/client/components/filter-builder/filter-builder-sheet.d.mts +1 -0
- package/dist/client/components/filter-builder/filter-builder-sheet.mjs +157 -0
- package/dist/client/components/filter-builder/filter-builder-sheet.mjs.map +1 -0
- package/dist/client/components/filter-builder/filters-tab.d.mts +1 -0
- package/dist/client/components/filter-builder/filters-tab.mjs +380 -0
- package/dist/client/components/filter-builder/filters-tab.mjs.map +1 -0
- package/dist/client/components/filter-builder/index.d.mts +5 -0
- package/dist/client/components/filter-builder/saved-views-tab.d.mts +1 -0
- package/dist/client/components/filter-builder/saved-views-tab.mjs +125 -0
- package/dist/client/components/filter-builder/saved-views-tab.mjs.map +1 -0
- package/dist/client/components/index.d.mts +80 -0
- package/dist/client/components/locale-switcher.d.mts +2 -0
- package/dist/client/components/locale-switcher.mjs +128 -0
- package/dist/client/components/locale-switcher.mjs.map +1 -0
- package/dist/client/components/media/media-grid.mjs +139 -0
- package/dist/client/components/media/media-grid.mjs.map +1 -0
- package/dist/client/components/media/media-picker-dialog.mjs +255 -0
- package/dist/client/components/media/media-picker-dialog.mjs.map +1 -0
- package/dist/client/components/preview/live-preview-mode.mjs +211 -0
- package/dist/client/components/preview/live-preview-mode.mjs.map +1 -0
- package/dist/client/components/preview/preview-pane.mjs +179 -0
- package/dist/client/components/preview/preview-pane.mjs.map +1 -0
- package/dist/client/components/primitives/asset-preview.mjs +363 -0
- package/dist/client/components/primitives/asset-preview.mjs.map +1 -0
- package/dist/client/components/primitives/checkbox-input.mjs +33 -0
- package/dist/client/components/primitives/checkbox-input.mjs.map +1 -0
- package/dist/client/components/primitives/date-input.mjs +218 -0
- package/dist/client/components/primitives/date-input.mjs.map +1 -0
- package/dist/client/components/primitives/dropzone.mjs +239 -0
- package/dist/client/components/primitives/dropzone.mjs.map +1 -0
- package/dist/client/components/primitives/number-input.mjs +113 -0
- package/dist/client/components/primitives/number-input.mjs.map +1 -0
- package/dist/client/components/primitives/select-multi.mjs +256 -0
- package/dist/client/components/primitives/select-multi.mjs.map +1 -0
- package/dist/client/components/primitives/select-single.mjs +183 -0
- package/dist/client/components/primitives/select-single.mjs.map +1 -0
- package/dist/client/components/primitives/text-input.mjs +40 -0
- package/dist/client/components/primitives/text-input.mjs.map +1 -0
- package/dist/client/components/primitives/textarea-input.mjs +38 -0
- package/dist/client/components/primitives/textarea-input.mjs.map +1 -0
- package/dist/client/components/primitives/time-input.mjs +72 -0
- package/dist/client/components/primitives/time-input.mjs.map +1 -0
- package/dist/client/components/primitives/toggle-input.mjs +31 -0
- package/dist/client/components/primitives/toggle-input.mjs.map +1 -0
- package/dist/client/components/primitives/types.d.mts +14 -0
- package/dist/client/components/primitives/types.d.mts.map +1 -0
- package/dist/client/components/primitives/types.mjs +13 -0
- package/dist/client/components/primitives/types.mjs.map +1 -0
- package/dist/client/components/sheets/index.d.mts +1 -0
- package/dist/client/components/sheets/resource-sheet.d.mts +1 -0
- package/dist/client/components/sheets/resource-sheet.mjs +78 -0
- package/dist/client/components/sheets/resource-sheet.mjs.map +1 -0
- package/dist/client/components/ui/accordion.d.mts +2 -0
- package/dist/client/components/ui/accordion.mjs +50 -0
- package/dist/client/components/ui/accordion.mjs.map +1 -0
- package/dist/client/components/ui/alert.mjs +32 -0
- package/dist/client/components/ui/alert.mjs.map +1 -0
- package/dist/client/components/ui/avatar.d.mts +3 -0
- package/dist/client/components/ui/badge.d.mts +3 -0
- package/dist/client/components/ui/badge.mjs +35 -0
- package/dist/client/components/ui/badge.mjs.map +1 -0
- package/dist/client/components/ui/button.d.mts +3 -0
- package/dist/client/components/ui/button.mjs +49 -0
- package/dist/client/components/ui/button.mjs.map +1 -0
- package/dist/client/components/ui/card.d.mts +2 -0
- package/dist/{card-BKHjBQfw.mjs → client/components/ui/card.mjs} +3 -10
- package/dist/{card-BKHjBQfw.mjs.map → client/components/ui/card.mjs.map} +1 -1
- package/dist/client/components/ui/checkbox.d.mts +2 -0
- package/dist/client/components/ui/checkbox.mjs +27 -0
- package/dist/client/components/ui/checkbox.mjs.map +1 -0
- package/dist/client/components/ui/combobox.d.mts +3 -0
- package/dist/client/components/ui/command.mjs +69 -0
- package/dist/client/components/ui/command.mjs.map +1 -0
- package/dist/client/components/ui/dialog.d.mts +3 -0
- package/dist/client/components/ui/dialog.mjs +83 -0
- package/dist/client/components/ui/dialog.mjs.map +1 -0
- package/dist/client/components/ui/drawer.mjs +75 -0
- package/dist/client/components/ui/drawer.mjs.map +1 -0
- package/dist/client/components/ui/dropdown-menu.d.mts +3 -0
- package/dist/client/components/ui/dropdown-menu.mjs +89 -0
- package/dist/client/components/ui/dropdown-menu.mjs.map +1 -0
- package/dist/client/components/ui/empty-state.mjs +53 -0
- package/dist/client/components/ui/empty-state.mjs.map +1 -0
- package/dist/client/components/ui/field.d.mts +3 -0
- package/dist/client/components/ui/field.mjs +78 -0
- package/dist/client/components/ui/field.mjs.map +1 -0
- package/dist/client/components/ui/input-group.d.mts +4 -0
- package/dist/client/components/ui/input-group.mjs +68 -0
- package/dist/client/components/ui/input-group.mjs.map +1 -0
- package/dist/client/components/ui/input.d.mts +2 -0
- package/dist/client/components/ui/input.mjs +17 -0
- package/dist/client/components/ui/input.mjs.map +1 -0
- package/dist/client/components/ui/kbd.mjs +24 -0
- package/dist/client/components/ui/kbd.mjs.map +1 -0
- package/dist/client/components/ui/label.d.mts +2 -0
- package/dist/client/components/ui/label.mjs +15 -0
- package/dist/client/components/ui/label.mjs.map +1 -0
- package/dist/client/components/ui/popover.d.mts +3 -0
- package/dist/client/components/ui/popover.mjs +49 -0
- package/dist/client/components/ui/popover.mjs.map +1 -0
- package/dist/client/components/ui/responsive-dialog.mjs +102 -0
- package/dist/client/components/ui/responsive-dialog.mjs.map +1 -0
- package/dist/client/components/ui/scroll-area.d.mts +2 -0
- package/dist/client/components/ui/search-input.mjs +74 -0
- package/dist/client/components/ui/search-input.mjs.map +1 -0
- package/dist/client/components/ui/select.d.mts +3 -0
- package/dist/client/components/ui/select.mjs +85 -0
- package/dist/client/components/ui/select.mjs.map +1 -0
- package/dist/client/components/ui/separator.d.mts +2 -0
- package/dist/client/components/ui/separator.mjs +17 -0
- package/dist/client/components/ui/separator.mjs.map +1 -0
- package/dist/client/components/ui/sheet.d.mts +3 -0
- package/dist/client/components/ui/sheet.mjs +78 -0
- package/dist/client/components/ui/sheet.mjs.map +1 -0
- package/dist/client/components/ui/sidebar.d.mts +8 -0
- package/dist/client/components/ui/sidebar.mjs +256 -0
- package/dist/client/components/ui/sidebar.mjs.map +1 -0
- package/dist/client/components/ui/skeleton.d.mts +1 -0
- package/dist/client/components/ui/skeleton.mjs +15 -0
- package/dist/client/components/ui/skeleton.mjs.map +1 -0
- package/dist/client/components/ui/sonner.d.mts +14 -0
- package/dist/client/components/ui/sonner.d.mts.map +1 -0
- package/dist/client/components/ui/sonner.mjs +55 -0
- package/dist/client/components/ui/sonner.mjs.map +1 -0
- package/dist/client/components/ui/spinner.d.mts +1 -0
- package/dist/client/components/ui/spinner.mjs +18 -0
- package/dist/client/components/ui/spinner.mjs.map +1 -0
- package/dist/client/components/ui/switch.d.mts +2 -0
- package/dist/client/components/ui/switch.mjs +23 -0
- package/dist/client/components/ui/switch.mjs.map +1 -0
- package/dist/client/components/ui/table.d.mts +2 -0
- package/dist/client/components/ui/table.mjs +66 -0
- package/dist/client/components/ui/table.mjs.map +1 -0
- package/dist/client/components/ui/tabs.d.mts +3 -0
- package/dist/client/components/ui/tabs.mjs +49 -0
- package/dist/client/components/ui/tabs.mjs.map +1 -0
- package/dist/client/components/ui/textarea.d.mts +2 -0
- package/dist/client/components/ui/textarea.mjs +15 -0
- package/dist/client/components/ui/textarea.mjs.map +1 -0
- package/dist/client/components/ui/toolbar.mjs +54 -0
- package/dist/client/components/ui/toolbar.mjs.map +1 -0
- package/dist/client/components/ui/tooltip.d.mts +2 -0
- package/dist/client/components/ui/tooltip.mjs +45 -0
- package/dist/client/components/ui/tooltip.mjs.map +1 -0
- package/dist/client/components/widgets/chart-widget.d.mts +57 -0
- package/dist/client/components/widgets/chart-widget.d.mts.map +1 -0
- package/dist/client/components/widgets/chart-widget.mjs +282 -0
- package/dist/client/components/widgets/chart-widget.mjs.map +1 -0
- package/dist/client/components/widgets/progress-widget.d.mts +41 -0
- package/dist/client/components/widgets/progress-widget.d.mts.map +1 -0
- package/dist/client/components/widgets/progress-widget.mjs +110 -0
- package/dist/client/components/widgets/progress-widget.mjs.map +1 -0
- package/dist/client/components/widgets/quick-actions-widget.d.mts +29 -0
- package/dist/client/components/widgets/quick-actions-widget.d.mts.map +1 -0
- package/dist/client/components/widgets/quick-actions-widget.mjs +121 -0
- package/dist/client/components/widgets/quick-actions-widget.mjs.map +1 -0
- package/dist/client/components/widgets/recent-items-widget.d.mts +51 -0
- package/dist/client/components/widgets/recent-items-widget.d.mts.map +1 -0
- package/dist/client/components/widgets/recent-items-widget.mjs +101 -0
- package/dist/client/components/widgets/recent-items-widget.mjs.map +1 -0
- package/dist/client/components/widgets/stats-widget.d.mts +55 -0
- package/dist/client/components/widgets/stats-widget.d.mts.map +1 -0
- package/dist/client/components/widgets/stats-widget.mjs +150 -0
- package/dist/client/components/widgets/stats-widget.mjs.map +1 -0
- package/dist/client/components/widgets/table-widget.d.mts +31 -0
- package/dist/client/components/widgets/table-widget.d.mts.map +1 -0
- package/dist/client/components/widgets/table-widget.mjs +139 -0
- package/dist/client/components/widgets/table-widget.mjs.map +1 -0
- package/dist/client/components/widgets/timeline-widget.d.mts +51 -0
- package/dist/client/components/widgets/timeline-widget.d.mts.map +1 -0
- package/dist/client/components/widgets/timeline-widget.mjs +168 -0
- package/dist/client/components/widgets/timeline-widget.mjs.map +1 -0
- package/dist/client/components/widgets/value-widget.d.mts +39 -0
- package/dist/client/components/widgets/value-widget.d.mts.map +1 -0
- package/dist/client/components/widgets/value-widget.mjs +111 -0
- package/dist/client/components/widgets/value-widget.mjs.map +1 -0
- package/dist/client/components/widgets/widget-skeletons.mjs +145 -0
- package/dist/client/components/widgets/widget-skeletons.mjs.map +1 -0
- package/dist/client/context/focus-context.d.mts +88 -0
- package/dist/client/context/focus-context.d.mts.map +1 -0
- package/dist/client/context/focus-context.mjs +178 -0
- package/dist/client/context/focus-context.mjs.map +1 -0
- package/dist/client/contexts/breadcrumb-context.mjs +32 -0
- package/dist/client/contexts/breadcrumb-context.mjs.map +1 -0
- package/dist/client/hooks/typed-hooks.d.mts +84 -0
- package/dist/client/hooks/typed-hooks.d.mts.map +1 -0
- package/dist/client/hooks/typed-hooks.mjs +272 -0
- package/dist/client/hooks/typed-hooks.mjs.map +1 -0
- package/dist/client/hooks/use-action.mjs +201 -0
- package/dist/client/hooks/use-action.mjs.map +1 -0
- package/dist/client/hooks/use-admin-config.mjs +40 -0
- package/dist/client/hooks/use-admin-config.mjs.map +1 -0
- package/dist/client/hooks/use-admin-preferences.mjs +68 -0
- package/dist/client/hooks/use-admin-preferences.mjs.map +1 -0
- package/dist/client/hooks/use-admin-routes.mjs +97 -0
- package/dist/client/hooks/use-admin-routes.mjs.map +1 -0
- package/dist/client/hooks/use-auth.d.mts +98 -0
- package/dist/client/hooks/use-auth.d.mts.map +1 -0
- package/dist/{use-auth-BoLmWtmU.mjs → client/hooks/use-auth.mjs} +3 -3
- package/dist/client/hooks/use-auth.mjs.map +1 -0
- package/dist/client/hooks/use-collection-fields.mjs +32 -0
- package/dist/client/hooks/use-collection-fields.mjs.map +1 -0
- package/dist/client/hooks/use-collection-meta.mjs +121 -0
- package/dist/client/hooks/use-collection-meta.mjs.map +1 -0
- package/dist/client/hooks/use-collection-schema.mjs +67 -0
- package/dist/client/hooks/use-collection-schema.mjs.map +1 -0
- package/dist/client/hooks/use-collection-validation.mjs +74 -0
- package/dist/client/hooks/use-collection-validation.mjs.map +1 -0
- package/dist/client/hooks/use-collection.d.mts +86 -0
- package/dist/client/hooks/use-collection.d.mts.map +1 -0
- package/dist/client/hooks/use-collection.mjs +214 -0
- package/dist/client/hooks/use-collection.mjs.map +1 -0
- package/dist/client/hooks/use-current-user.d.mts +57 -0
- package/dist/client/hooks/use-current-user.d.mts.map +1 -0
- package/dist/client/hooks/use-current-user.mjs +79 -0
- package/dist/client/hooks/use-current-user.mjs.map +1 -0
- package/dist/client/hooks/use-field-hooks.mjs +191 -0
- package/dist/client/hooks/use-field-hooks.mjs.map +1 -0
- package/dist/client/hooks/use-field-options.d.mts +90 -0
- package/dist/client/hooks/use-field-options.d.mts.map +1 -0
- package/dist/client/hooks/use-field-options.mjs +184 -0
- package/dist/client/hooks/use-field-options.mjs.map +1 -0
- package/dist/client/hooks/use-global-fields.mjs +27 -0
- package/dist/client/hooks/use-global-fields.mjs.map +1 -0
- package/dist/client/hooks/use-global-meta.mjs +59 -0
- package/dist/client/hooks/use-global-meta.mjs.map +1 -0
- package/dist/client/hooks/use-global-schema.mjs +33 -0
- package/dist/client/hooks/use-global-schema.mjs.map +1 -0
- package/dist/client/hooks/use-global.d.mts +40 -0
- package/dist/client/hooks/use-global.d.mts.map +1 -0
- package/dist/client/hooks/use-global.mjs +74 -0
- package/dist/client/hooks/use-global.mjs.map +1 -0
- package/dist/client/hooks/use-locks.mjs +245 -0
- package/dist/client/hooks/use-locks.mjs.map +1 -0
- package/dist/client/hooks/use-media-query.d.mts +23 -0
- package/dist/client/hooks/use-media-query.d.mts.map +1 -0
- package/dist/client/hooks/use-media-query.mjs +62 -0
- package/dist/client/hooks/use-media-query.mjs.map +1 -0
- package/dist/client/hooks/use-prefill-params.mjs +47 -0
- package/dist/client/hooks/use-prefill-params.mjs.map +1 -0
- package/dist/client/hooks/use-questpie-query-options.mjs +28 -0
- package/dist/client/hooks/use-questpie-query-options.mjs.map +1 -0
- package/dist/client/hooks/use-reactive-fields.d.mts +75 -0
- package/dist/client/hooks/use-reactive-fields.d.mts.map +1 -0
- package/dist/client/hooks/use-reactive-fields.mjs +164 -0
- package/dist/client/hooks/use-reactive-fields.mjs.map +1 -0
- package/dist/client/hooks/use-realtime-highlight.mjs +96 -0
- package/dist/client/hooks/use-realtime-highlight.mjs.map +1 -0
- package/dist/client/hooks/use-saved-views.mjs +65 -0
- package/dist/client/hooks/use-saved-views.mjs.map +1 -0
- package/dist/client/hooks/use-search.mjs +147 -0
- package/dist/client/hooks/use-search.mjs.map +1 -0
- package/dist/client/hooks/use-server-validation.mjs +199 -0
- package/dist/client/hooks/use-server-validation.mjs.map +1 -0
- package/dist/client/hooks/use-server-widget-data.d.mts +26 -0
- package/dist/client/hooks/use-server-widget-data.d.mts.map +1 -0
- package/dist/client/hooks/use-server-widget-data.mjs +40 -0
- package/dist/client/hooks/use-server-widget-data.mjs.map +1 -0
- package/dist/client/hooks/use-setup-status.d.mts +39 -0
- package/dist/client/hooks/use-setup-status.d.mts.map +1 -0
- package/dist/client/hooks/use-setup-status.mjs +50 -0
- package/dist/client/hooks/use-setup-status.mjs.map +1 -0
- package/dist/client/hooks/use-upload-collection.mjs +32 -0
- package/dist/client/hooks/use-upload-collection.mjs.map +1 -0
- package/dist/client/hooks/use-upload.d.mts +23 -0
- package/dist/client/hooks/use-upload.d.mts.map +1 -0
- package/dist/client/hooks/use-upload.mjs +145 -0
- package/dist/client/hooks/use-upload.mjs.map +1 -0
- package/dist/client/hooks/use-validation-error-map.mjs +53 -0
- package/dist/client/hooks/use-validation-error-map.mjs.map +1 -0
- package/dist/client/hooks/use-view-state.mjs +261 -0
- package/dist/client/hooks/use-view-state.mjs.map +1 -0
- package/dist/client/i18n/hooks.mjs +160 -0
- package/dist/client/i18n/hooks.mjs.map +1 -0
- package/dist/client/i18n/intl-cache.mjs +65 -0
- package/dist/client/i18n/intl-cache.mjs.map +1 -0
- package/dist/client/i18n/messages.mjs +7 -0
- package/dist/client/i18n/messages.mjs.map +1 -0
- package/dist/client/i18n/simple.d.mts +22 -0
- package/dist/client/i18n/simple.d.mts.map +1 -0
- package/dist/client/i18n/simple.mjs +157 -0
- package/dist/client/i18n/simple.mjs.map +1 -0
- package/dist/client/i18n/types.d.mts +110 -0
- package/dist/client/i18n/types.d.mts.map +1 -0
- package/dist/client/lib/utils.d.mts +1 -0
- package/dist/client/lib/utils.mjs +28 -0
- package/dist/client/lib/utils.mjs.map +1 -0
- package/dist/client/preview/block-scope-context.d.mts +74 -0
- package/dist/client/preview/block-scope-context.d.mts.map +1 -0
- package/dist/client/preview/block-scope-context.mjs +93 -0
- package/dist/client/preview/block-scope-context.mjs.map +1 -0
- package/dist/client/preview/index.d.mts +5 -0
- package/dist/client/preview/preview-banner.d.mts +46 -0
- package/dist/client/preview/preview-banner.d.mts.map +1 -0
- package/dist/client/preview/preview-banner.mjs +95 -0
- package/dist/client/preview/preview-banner.mjs.map +1 -0
- package/dist/client/preview/preview-field.d.mts +108 -0
- package/dist/client/preview/preview-field.d.mts.map +1 -0
- package/dist/client/preview/preview-field.mjs +125 -0
- package/dist/client/preview/preview-field.mjs.map +1 -0
- package/dist/client/preview/types.d.mts +115 -0
- package/dist/client/preview/types.d.mts.map +1 -0
- package/dist/client/preview/types.mjs +21 -0
- package/dist/client/preview/types.mjs.map +1 -0
- package/dist/client/preview/use-collection-preview.d.mts +71 -0
- package/dist/client/preview/use-collection-preview.d.mts.map +1 -0
- package/dist/client/preview/use-collection-preview.mjs +114 -0
- package/dist/client/preview/use-collection-preview.mjs.map +1 -0
- package/dist/client/runtime/content-locales-provider.d.mts +1 -0
- package/dist/client/runtime/content-locales-provider.mjs +85 -0
- package/dist/client/runtime/content-locales-provider.mjs.map +1 -0
- package/dist/client/runtime/index.d.mts +7 -0
- package/dist/client/runtime/index.mjs +8 -0
- package/dist/client/runtime/locale-scope.d.mts +2 -0
- package/dist/{runtime-6VZM878K.mjs → client/runtime/locale-scope.mjs} +3 -4
- package/dist/client/runtime/locale-scope.mjs.map +1 -0
- package/dist/client/runtime/provider.d.mts +10107 -0
- package/dist/client/runtime/provider.d.mts.map +1 -0
- package/dist/client/runtime/provider.mjs +229 -0
- package/dist/client/runtime/provider.mjs.map +1 -0
- package/dist/client/runtime/routes.d.mts +49 -0
- package/dist/client/runtime/routes.d.mts.map +1 -0
- package/dist/client/runtime/routes.mjs +107 -0
- package/dist/client/runtime/routes.mjs.map +1 -0
- package/dist/client/runtime/translations-provider.d.mts +2 -0
- package/dist/client/runtime/translations-provider.mjs +181 -0
- package/dist/client/runtime/translations-provider.mjs.map +1 -0
- package/dist/client/scope/index.d.mts +3 -0
- package/dist/client/scope/picker.d.mts +54 -0
- package/dist/client/scope/picker.d.mts.map +1 -0
- package/dist/client/scope/picker.mjs +161 -0
- package/dist/client/scope/picker.mjs.map +1 -0
- package/dist/client/scope/provider.d.mts +104 -0
- package/dist/client/scope/provider.d.mts.map +1 -0
- package/dist/client/scope/provider.mjs +159 -0
- package/dist/client/scope/provider.mjs.map +1 -0
- package/dist/client/scope/types.d.mts +112 -0
- package/dist/client/scope/types.d.mts.map +1 -0
- package/dist/client/styles/index.css +80 -0
- package/dist/client/utils/auto-expand-fields.mjs +65 -0
- package/dist/client/utils/auto-expand-fields.mjs.map +1 -0
- package/dist/client/utils/build-field-definitions-from-schema.mjs +256 -0
- package/dist/client/utils/build-field-definitions-from-schema.mjs.map +1 -0
- package/dist/client/utils/detect-relations.mjs +46 -0
- package/dist/client/utils/detect-relations.mjs.map +1 -0
- package/dist/client/utils/locale-to-flag.d.mts +118 -0
- package/dist/client/utils/locale-to-flag.d.mts.map +1 -0
- package/dist/client/utils/locale-to-flag.mjs +130 -0
- package/dist/client/utils/locale-to-flag.mjs.map +1 -0
- package/dist/client/utils/routes.mjs +196 -0
- package/dist/client/utils/routes.mjs.map +1 -0
- package/dist/client/views/auth/accept-invite-form.d.mts +73 -0
- package/dist/client/views/auth/accept-invite-form.d.mts.map +1 -0
- package/dist/client/views/auth/accept-invite-form.mjs +180 -0
- package/dist/client/views/auth/accept-invite-form.mjs.map +1 -0
- package/dist/client/views/auth/auth-layout.d.mts +44 -0
- package/dist/client/views/auth/auth-layout.d.mts.map +1 -0
- package/dist/client/views/auth/auth-layout.mjs +53 -0
- package/dist/client/views/auth/auth-layout.mjs.map +1 -0
- package/dist/client/views/auth/forgot-password-form.d.mts +59 -0
- package/dist/client/views/auth/forgot-password-form.d.mts.map +1 -0
- package/dist/{forgot-password-page-Bcp-An4Y.mjs → client/views/auth/forgot-password-form.mjs} +22 -89
- package/dist/client/views/auth/forgot-password-form.mjs.map +1 -0
- package/dist/client/views/auth/index.d.mts +7 -0
- package/dist/client/views/auth/invite-form.d.mts +1 -0
- package/dist/client/views/auth/invite-form.mjs +155 -0
- package/dist/client/views/auth/invite-form.mjs.map +1 -0
- package/dist/client/views/auth/login-form.d.mts +76 -0
- package/dist/client/views/auth/login-form.d.mts.map +1 -0
- package/dist/client/views/auth/login-form.mjs +167 -0
- package/dist/client/views/auth/login-form.mjs.map +1 -0
- package/dist/client/views/auth/reset-password-form.d.mts +66 -0
- package/dist/client/views/auth/reset-password-form.d.mts.map +1 -0
- package/dist/client/views/auth/reset-password-form.mjs +188 -0
- package/dist/client/views/auth/reset-password-form.mjs.map +1 -0
- package/dist/client/views/auth/setup-form.d.mts +61 -0
- package/dist/client/views/auth/setup-form.d.mts.map +1 -0
- package/dist/{setup-page-YAP_fzqh.mjs → client/views/auth/setup-form.mjs} +46 -124
- package/dist/client/views/auth/setup-form.mjs.map +1 -0
- package/dist/client/views/collection/auto-form-fields.d.mts +4 -0
- package/dist/client/views/collection/auto-form-fields.mjs +453 -0
- package/dist/client/views/collection/auto-form-fields.mjs.map +1 -0
- package/dist/client/views/collection/bulk-action-toolbar.mjs +291 -0
- package/dist/client/views/collection/bulk-action-toolbar.mjs.map +1 -0
- package/dist/client/views/collection/cells/complex-cells.d.mts +46 -0
- package/dist/client/views/collection/cells/complex-cells.d.mts.map +1 -0
- package/dist/client/views/collection/cells/complex-cells.mjs +327 -0
- package/dist/client/views/collection/cells/complex-cells.mjs.map +1 -0
- package/dist/client/views/collection/cells/index.d.mts +7 -0
- package/dist/client/views/collection/cells/primitive-cells.d.mts +76 -0
- package/dist/client/views/collection/cells/primitive-cells.d.mts.map +1 -0
- package/dist/client/views/collection/cells/primitive-cells.mjs +165 -0
- package/dist/client/views/collection/cells/primitive-cells.mjs.map +1 -0
- package/dist/client/views/collection/cells/relation-cells.d.mts +21 -0
- package/dist/client/views/collection/cells/relation-cells.d.mts.map +1 -0
- package/dist/client/views/collection/cells/relation-cells.mjs +105 -0
- package/dist/client/views/collection/cells/relation-cells.mjs.map +1 -0
- package/dist/client/views/collection/cells/shared/asset-thumbnail.d.mts +1 -0
- package/dist/client/views/collection/cells/shared/asset-thumbnail.mjs +189 -0
- package/dist/client/views/collection/cells/shared/asset-thumbnail.mjs.map +1 -0
- package/dist/client/views/collection/cells/shared/cell-helpers.d.mts +2 -0
- package/dist/client/views/collection/cells/shared/cell-helpers.mjs +78 -0
- package/dist/client/views/collection/cells/shared/cell-helpers.mjs.map +1 -0
- package/dist/client/views/collection/cells/shared/relation-chip.d.mts +1 -0
- package/dist/client/views/collection/cells/shared/relation-chip.mjs +37 -0
- package/dist/client/views/collection/cells/shared/relation-chip.mjs.map +1 -0
- package/dist/client/views/collection/cells/upload-cells.d.mts +25 -0
- package/dist/client/views/collection/cells/upload-cells.d.mts.map +1 -0
- package/dist/client/views/collection/cells/upload-cells.mjs +20 -0
- package/dist/client/views/collection/cells/upload-cells.mjs.map +1 -0
- package/dist/client/views/collection/columns/build-columns.d.mts +2 -0
- package/dist/client/views/collection/columns/build-columns.mjs +156 -0
- package/dist/client/views/collection/columns/build-columns.mjs.map +1 -0
- package/dist/client/views/collection/columns/column-defaults.d.mts +2 -0
- package/dist/client/views/collection/columns/column-defaults.mjs +108 -0
- package/dist/client/views/collection/columns/column-defaults.mjs.map +1 -0
- package/dist/client/views/collection/columns/index.d.mts +3 -0
- package/dist/client/views/collection/columns/types.d.mts +2 -0
- package/dist/client/views/collection/field-context.mjs +127 -0
- package/dist/client/views/collection/field-context.mjs.map +1 -0
- package/dist/client/views/collection/field-renderer.mjs +171 -0
- package/dist/client/views/collection/field-renderer.mjs.map +1 -0
- package/dist/client/views/collection/form-view.d.mts +112 -0
- package/dist/client/views/collection/form-view.d.mts.map +1 -0
- package/dist/client/views/collection/form-view.mjs +903 -0
- package/dist/client/views/collection/form-view.mjs.map +1 -0
- package/dist/client/views/collection/index.d.mts +9 -0
- package/dist/client/views/collection/table-view.d.mts +102 -0
- package/dist/client/views/collection/table-view.d.mts.map +1 -0
- package/dist/client/views/collection/table-view.mjs +695 -0
- package/dist/client/views/collection/table-view.mjs.map +1 -0
- package/dist/client/views/collection/view-skeletons.mjs +121 -0
- package/dist/client/views/collection/view-skeletons.mjs.map +1 -0
- package/dist/client/views/common/global-search.d.mts +1 -0
- package/dist/client/views/common/global-search.mjs +376 -0
- package/dist/client/views/common/global-search.mjs.map +1 -0
- package/dist/client/views/common/index.d.mts +1 -0
- package/dist/client/views/dashboard/dashboard-grid.mjs +385 -0
- package/dist/client/views/dashboard/dashboard-grid.mjs.map +1 -0
- package/dist/client/views/dashboard/dashboard-widget.mjs +178 -0
- package/dist/client/views/dashboard/dashboard-widget.mjs.map +1 -0
- package/dist/client/views/dashboard/widget-card.mjs +159 -0
- package/dist/client/views/dashboard/widget-card.mjs.map +1 -0
- package/dist/client/views/globals/global-form-view.d.mts +74 -0
- package/dist/client/views/globals/global-form-view.d.mts.map +1 -0
- package/dist/client/views/globals/global-form-view.mjs +181 -0
- package/dist/client/views/globals/global-form-view.mjs.map +1 -0
- package/dist/client/views/index.d.mts +28 -0
- package/dist/client/views/layout/admin-layout-provider.d.mts +140 -0
- package/dist/client/views/layout/admin-layout-provider.d.mts.map +1 -0
- package/dist/client/views/layout/admin-layout-provider.mjs +90 -0
- package/dist/client/views/layout/admin-layout-provider.mjs.map +1 -0
- package/dist/client/views/layout/admin-layout.d.mts +151 -0
- package/dist/client/views/layout/admin-layout.d.mts.map +1 -0
- package/dist/client/views/layout/admin-layout.mjs +144 -0
- package/dist/client/views/layout/admin-layout.mjs.map +1 -0
- package/dist/client/views/layout/admin-root.d.mts +7 -0
- package/dist/client/views/layout/admin-router.d.mts +125 -0
- package/dist/client/views/layout/admin-router.d.mts.map +1 -0
- package/dist/client/views/layout/admin-router.mjs +594 -0
- package/dist/client/views/layout/admin-router.mjs.map +1 -0
- package/dist/client/views/layout/admin-sidebar.d.mts +105 -0
- package/dist/client/views/layout/admin-sidebar.d.mts.map +1 -0
- package/dist/client/views/layout/admin-sidebar.mjs +550 -0
- package/dist/client/views/layout/admin-sidebar.mjs.map +1 -0
- package/dist/client/views/layout/admin-topbar.mjs +128 -0
- package/dist/client/views/layout/admin-topbar.mjs.map +1 -0
- package/dist/client/views/layout/index.d.mts +5 -0
- package/dist/client/views/pages/accept-invite-page.d.mts +67 -0
- package/dist/client/views/pages/accept-invite-page.d.mts.map +1 -0
- package/dist/client/views/pages/accept-invite-page.mjs +143 -0
- package/dist/client/views/pages/accept-invite-page.mjs.map +1 -0
- package/dist/client/views/pages/dashboard-page.d.mts +52 -0
- package/dist/client/views/pages/dashboard-page.d.mts.map +1 -0
- package/dist/client/views/pages/dashboard-page.mjs +45 -0
- package/dist/client/views/pages/dashboard-page.mjs.map +1 -0
- package/dist/client/views/pages/forgot-password-page.d.mts +59 -0
- package/dist/client/views/pages/forgot-password-page.d.mts.map +1 -0
- package/dist/client/views/pages/forgot-password-page.mjs +80 -0
- package/dist/client/views/pages/forgot-password-page.mjs.map +1 -0
- package/dist/client/views/pages/index.d.mts +7 -0
- package/dist/client/views/pages/invite-page.d.mts +71 -0
- package/dist/client/views/pages/invite-page.d.mts.map +1 -0
- package/dist/client/views/pages/invite-page.mjs +86 -0
- package/dist/client/views/pages/invite-page.mjs.map +1 -0
- package/dist/client/views/pages/login-page.d.mts +76 -0
- package/dist/client/views/pages/login-page.d.mts.map +1 -0
- package/dist/client/views/pages/login-page.mjs +98 -0
- package/dist/client/views/pages/login-page.mjs.map +1 -0
- package/dist/client/views/pages/reset-password-page.d.mts +66 -0
- package/dist/client/views/pages/reset-password-page.d.mts.map +1 -0
- package/dist/client/views/pages/reset-password-page.mjs +105 -0
- package/dist/client/views/pages/reset-password-page.mjs.map +1 -0
- package/dist/client/views/pages/setup-page.d.mts +64 -0
- package/dist/client/views/pages/setup-page.d.mts.map +1 -0
- package/dist/client/views/pages/setup-page.mjs +91 -0
- package/dist/client/views/pages/setup-page.mjs.map +1 -0
- package/dist/client.d.mts +92 -3
- package/dist/client.d.mts.map +1 -0
- package/dist/client.mjs +54 -12
- package/dist/components/rich-text/index.d.mts +1 -0
- package/dist/components/rich-text/rich-text-renderer.d.mts +104 -0
- package/dist/components/rich-text/rich-text-renderer.d.mts.map +1 -0
- package/dist/components/rich-text/rich-text-renderer.mjs +210 -0
- package/dist/components/rich-text/rich-text-renderer.mjs.map +1 -0
- package/dist/index.d.mts +62 -3
- package/dist/index.mjs +54 -12
- package/dist/server/adapters/nextjs.d.mts +121 -0
- package/dist/server/adapters/nextjs.d.mts.map +1 -0
- package/dist/server/adapters/nextjs.mjs +111 -0
- package/dist/server/adapters/nextjs.mjs.map +1 -0
- package/dist/server/adapters/tanstack.d.mts +133 -0
- package/dist/server/adapters/tanstack.d.mts.map +1 -0
- package/dist/server/adapters/tanstack.mjs +90 -0
- package/dist/server/adapters/tanstack.mjs.map +1 -0
- package/dist/server/augmentation.d.mts +1523 -0
- package/dist/server/augmentation.d.mts.map +1 -0
- package/dist/server/auth-helpers.d.mts +143 -0
- package/dist/server/auth-helpers.d.mts.map +1 -0
- package/dist/server/auth-helpers.mjs +108 -0
- package/dist/server/auth-helpers.mjs.map +1 -0
- package/dist/server/block/block-builder.d.mts +319 -0
- package/dist/server/block/block-builder.d.mts.map +1 -0
- package/dist/server/block/block-builder.mjs +217 -0
- package/dist/server/block/block-builder.mjs.map +1 -0
- package/dist/server/block/index.d.mts +3 -0
- package/dist/server/block/introspection.d.mts +84 -0
- package/dist/server/block/introspection.d.mts.map +1 -0
- package/dist/server/block/introspection.mjs +89 -0
- package/dist/server/block/introspection.mjs.map +1 -0
- package/dist/server/block/prefetch.d.mts +78 -0
- package/dist/server/block/prefetch.d.mts.map +1 -0
- package/dist/server/block/prefetch.mjs +240 -0
- package/dist/server/block/prefetch.mjs.map +1 -0
- package/dist/server/fields/blocks.d.mts +139 -0
- package/dist/server/fields/blocks.d.mts.map +1 -0
- package/dist/server/fields/blocks.mjs +192 -0
- package/dist/server/fields/blocks.mjs.map +1 -0
- package/dist/server/fields/index.d.mts +48 -0
- package/dist/server/fields/index.d.mts.map +1 -0
- package/dist/server/fields/index.mjs +16 -0
- package/dist/server/fields/index.mjs.map +1 -0
- package/dist/server/fields/rich-text.d.mts +135 -0
- package/dist/server/fields/rich-text.d.mts.map +1 -0
- package/dist/server/fields/rich-text.mjs +188 -0
- package/dist/server/fields/rich-text.mjs.map +1 -0
- package/dist/server/i18n/index.d.mts +16 -0
- package/dist/server/i18n/index.d.mts.map +1 -0
- package/dist/server/i18n/index.mjs +44 -0
- package/dist/server/i18n/index.mjs.map +1 -0
- package/dist/server/i18n/messages/cs.mjs +461 -0
- package/dist/server/i18n/messages/cs.mjs.map +1 -0
- package/dist/server/i18n/messages/de.mjs +461 -0
- package/dist/server/i18n/messages/de.mjs.map +1 -0
- package/dist/server/i18n/messages/en.mjs +493 -0
- package/dist/server/i18n/messages/en.mjs.map +1 -0
- package/dist/server/i18n/messages/es.mjs +461 -0
- package/dist/server/i18n/messages/es.mjs.map +1 -0
- package/dist/server/i18n/messages/fr.mjs +461 -0
- package/dist/server/i18n/messages/fr.mjs.map +1 -0
- package/dist/server/i18n/messages/index.mjs +24 -0
- package/dist/server/i18n/messages/index.mjs.map +1 -0
- package/dist/server/i18n/messages/pl.mjs +461 -0
- package/dist/server/i18n/messages/pl.mjs.map +1 -0
- package/dist/server/i18n/messages/pt.mjs +464 -0
- package/dist/server/i18n/messages/pt.mjs.map +1 -0
- package/dist/server/i18n/messages/sk.mjs +490 -0
- package/dist/server/i18n/messages/sk.mjs.map +1 -0
- package/dist/server/index.d.mts +20 -0
- package/dist/server/modules/admin/functions/admin-config.mjs +348 -0
- package/dist/server/modules/admin/functions/admin-config.mjs.map +1 -0
- package/dist/server/modules/admin/functions/execute-action.d.mts +107 -0
- package/dist/server/modules/admin/functions/execute-action.d.mts.map +1 -0
- package/dist/server/modules/admin/functions/execute-action.mjs +331 -0
- package/dist/server/modules/admin/functions/execute-action.mjs.map +1 -0
- package/dist/server/modules/admin/functions/locales.mjs +80 -0
- package/dist/server/modules/admin/functions/locales.mjs.map +1 -0
- package/dist/server/modules/admin/functions/preview.d.mts +70 -0
- package/dist/server/modules/admin/functions/preview.d.mts.map +1 -0
- package/dist/server/modules/admin/functions/preview.mjs +243 -0
- package/dist/server/modules/admin/functions/preview.mjs.map +1 -0
- package/dist/server/modules/admin/functions/reactive.d.mts +99 -0
- package/dist/server/modules/admin/functions/reactive.d.mts.map +1 -0
- package/dist/server/modules/admin/functions/reactive.mjs +378 -0
- package/dist/server/modules/admin/functions/reactive.mjs.map +1 -0
- package/dist/server/modules/admin/functions/setup.d.mts +84 -0
- package/dist/server/modules/admin/functions/setup.d.mts.map +1 -0
- package/dist/server/modules/admin/functions/setup.mjs +131 -0
- package/dist/server/modules/admin/functions/setup.mjs.map +1 -0
- package/dist/server/modules/admin/functions/translations.mjs +125 -0
- package/dist/server/modules/admin/functions/translations.mjs.map +1 -0
- package/dist/server/modules/admin/functions/widget-data.d.mts +33 -0
- package/dist/server/modules/admin/functions/widget-data.d.mts.map +1 -0
- package/dist/server/modules/admin/functions/widget-data.mjs +70 -0
- package/dist/server/modules/admin/functions/widget-data.mjs.map +1 -0
- package/dist/server/modules/admin/index.d.mts +16879 -0
- package/dist/server/modules/admin/index.d.mts.map +1 -0
- package/dist/server/modules/admin/index.mjs +249 -0
- package/dist/server/modules/admin/index.mjs.map +1 -0
- package/dist/server/modules/admin-preferences/collections/admin-preferences.collection.d.mts +3 -0
- package/dist/server/modules/admin-preferences/collections/admin-preferences.collection.mjs +48 -0
- package/dist/server/modules/admin-preferences/collections/admin-preferences.collection.mjs.map +1 -0
- package/dist/server/modules/admin-preferences/collections/locks.collection.d.mts +3 -0
- package/dist/server/modules/admin-preferences/collections/locks.collection.mjs +79 -0
- package/dist/server/modules/admin-preferences/collections/locks.collection.mjs.map +1 -0
- package/dist/server/modules/admin-preferences/collections/saved-views.collection.d.mts +1490 -0
- package/dist/server/modules/admin-preferences/collections/saved-views.collection.d.mts.map +1 -0
- package/dist/server/modules/admin-preferences/collections/saved-views.collection.mjs +57 -0
- package/dist/server/modules/admin-preferences/collections/saved-views.collection.mjs.map +1 -0
- package/dist/server/patch.d.mts +100 -0
- package/dist/server/patch.d.mts.map +1 -0
- package/dist/server/patch.mjs +1062 -0
- package/dist/server/patch.mjs.map +1 -0
- package/dist/server.d.mts +21 -250
- package/dist/server.mjs +19 -832
- package/dist/shared/preview-utils.d.mts +54 -0
- package/dist/shared/preview-utils.d.mts.map +1 -0
- package/dist/{preview-utils-BKQ9-TMa.mjs → shared/preview-utils.mjs} +2 -2
- package/dist/shared/preview-utils.mjs.map +1 -0
- package/dist/{saved-views.types-BMsz5mCy.d.mts → shared/types/saved-views.types.d.mts} +7 -2
- package/dist/shared/types/saved-views.types.d.mts.map +1 -0
- package/dist/shared.d.mts +3 -57
- package/dist/shared.mjs +1 -1
- package/package.json +12 -17
- package/dist/auth-layout-M8K8_q5R.mjs +0 -181
- package/dist/auth-layout-M8K8_q5R.mjs.map +0 -1
- package/dist/bulk-upload-dialog-D7w7W1Hl.mjs +0 -273
- package/dist/bulk-upload-dialog-D7w7W1Hl.mjs.map +0 -1
- package/dist/client-D1DqawtP.d.mts +0 -13403
- package/dist/client-D1DqawtP.d.mts.map +0 -1
- package/dist/client-njX1rZmi.mjs +0 -22612
- package/dist/client-njX1rZmi.mjs.map +0 -1
- package/dist/content-locales-provider-BXvuIgfg.mjs +0 -1650
- package/dist/content-locales-provider-BXvuIgfg.mjs.map +0 -1
- package/dist/dashboard-page-B4PGEdc2.mjs +0 -2500
- package/dist/dashboard-page-B4PGEdc2.mjs.map +0 -1
- package/dist/dashboard-page-mCY0pgZv.mjs +0 -3
- package/dist/dropzone-Do3awXKd.mjs +0 -634
- package/dist/dropzone-Do3awXKd.mjs.map +0 -1
- package/dist/forgot-password-page-Bcp-An4Y.mjs.map +0 -1
- package/dist/forgot-password-page-CEwsdLwn.mjs +0 -3
- package/dist/index-B4H3amCD.d.mts +0 -2753
- package/dist/index-B4H3amCD.d.mts.map +0 -1
- package/dist/login-page-BUnpCbCa.mjs +0 -3
- package/dist/login-page-CP4gA-dl.mjs +0 -298
- package/dist/login-page-CP4gA-dl.mjs.map +0 -1
- package/dist/preview-utils-BKQ9-TMa.mjs.map +0 -1
- package/dist/reset-password-page-BqfDmLxA.mjs +0 -281
- package/dist/reset-password-page-BqfDmLxA.mjs.map +0 -1
- package/dist/reset-password-page-CufHz3h3.mjs +0 -3
- package/dist/runtime-6VZM878K.mjs.map +0 -1
- package/dist/saved-views.types-BMsz5mCy.d.mts.map +0 -1
- package/dist/server.d.mts.map +0 -1
- package/dist/server.mjs.map +0 -1
- package/dist/setup-page-BNNzt_Z6.mjs +0 -3
- package/dist/setup-page-YAP_fzqh.mjs.map +0 -1
- package/dist/shared.d.mts.map +0 -1
- package/dist/use-auth-BoLmWtmU.mjs.map +0 -1
|
@@ -0,0 +1,1523 @@
|
|
|
1
|
+
import { AnyBlockBuilder, AnyBlockDefinition, BlockBuilder } from "./block/block-builder.mjs";
|
|
2
|
+
import "./block/index.mjs";
|
|
3
|
+
import { I18nText } from "questpie/shared";
|
|
4
|
+
import { BuilderCollectionsMap, BuilderEmailTemplatesMap, BuilderFieldsMap, BuilderGlobalsMap, BuilderJobsMap, FieldsOf, GlobalFieldsOf, QuestpieStateOf, RegisteredApp } from "questpie";
|
|
5
|
+
import { BetterAuthOptions } from "better-auth";
|
|
6
|
+
|
|
7
|
+
//#region src/server/augmentation.d.ts
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Admin locale configuration for UI language support.
|
|
11
|
+
* Separate from content locales - UI can have different languages than content.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* .adminLocale({
|
|
16
|
+
* locales: ["en", "sk"], // UI available in 2 languages
|
|
17
|
+
* defaultLocale: "en",
|
|
18
|
+
* })
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
interface AdminLocaleConfig {
|
|
22
|
+
/** Available UI locales for admin interface */
|
|
23
|
+
locales: string[];
|
|
24
|
+
/** Default UI locale */
|
|
25
|
+
defaultLocale: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Reference to a server-registered component.
|
|
29
|
+
* Used for icons, badges, and other UI elements defined on server.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* { type: "icon", props: { name: "ph:users" } }
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
interface ComponentReference<TType extends string = string, TProps extends Record<string, unknown> = Record<string, unknown>> {
|
|
37
|
+
type: TType;
|
|
38
|
+
props: TProps;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Icon component reference with typed props.
|
|
42
|
+
*/
|
|
43
|
+
type IconReference = ComponentReference<"icon", {
|
|
44
|
+
name: string;
|
|
45
|
+
}>;
|
|
46
|
+
/**
|
|
47
|
+
* Badge component reference with typed props.
|
|
48
|
+
*/
|
|
49
|
+
type BadgeReference = ComponentReference<"badge", {
|
|
50
|
+
text: string;
|
|
51
|
+
color?: string;
|
|
52
|
+
}>;
|
|
53
|
+
/**
|
|
54
|
+
* View definition for list views (table, cards, etc.)
|
|
55
|
+
*/
|
|
56
|
+
interface ListViewDefinition<TName extends string = string> {
|
|
57
|
+
type: "listView";
|
|
58
|
+
name: TName;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* View definition for edit views (form, wizard, etc.)
|
|
62
|
+
*/
|
|
63
|
+
interface EditViewDefinition<TName extends string = string> {
|
|
64
|
+
type: "editView";
|
|
65
|
+
name: TName;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Component definition for reusable UI components
|
|
69
|
+
*/
|
|
70
|
+
interface ComponentDefinition<TName extends string = string> {
|
|
71
|
+
type: "component";
|
|
72
|
+
name: TName;
|
|
73
|
+
}
|
|
74
|
+
type ComponentFactoryInput<TName extends string> = TName extends "icon" ? string | {
|
|
75
|
+
name: string;
|
|
76
|
+
} : TName extends "badge" ? {
|
|
77
|
+
text: string;
|
|
78
|
+
color?: string;
|
|
79
|
+
} : Record<string, unknown> | string;
|
|
80
|
+
type ComponentFactoryOutput<TName extends string> = TName extends "icon" ? IconReference : TName extends "badge" ? BadgeReference : ComponentReference<TName, Record<string, unknown>>;
|
|
81
|
+
/**
|
|
82
|
+
* Component factory API generated from registered components.
|
|
83
|
+
*
|
|
84
|
+
* Each key returns a serializable component reference.
|
|
85
|
+
*
|
|
86
|
+
* Note: `icon` keeps backward-compatible string shorthand:
|
|
87
|
+
* `c.icon("ph:users")` => `{ type: "icon", props: { name: "ph:users" } }`
|
|
88
|
+
*/
|
|
89
|
+
type ComponentFactory<TComponentNames extends string = string> = { [K in TComponentNames]: (props: ComponentFactoryInput<K>) => ComponentFactoryOutput<K> };
|
|
90
|
+
/**
|
|
91
|
+
* Admin metadata for a collection.
|
|
92
|
+
* Defines how the collection appears in the admin sidebar and UI.
|
|
93
|
+
*/
|
|
94
|
+
interface AdminCollectionConfig {
|
|
95
|
+
/** Display label for the collection */
|
|
96
|
+
label?: I18nText;
|
|
97
|
+
/** Description shown in tooltips/help text */
|
|
98
|
+
description?: I18nText;
|
|
99
|
+
/** Icon reference (resolved by client's icon component) */
|
|
100
|
+
icon?: ComponentReference;
|
|
101
|
+
/** Hide from admin sidebar */
|
|
102
|
+
hidden?: boolean;
|
|
103
|
+
/** Group in sidebar */
|
|
104
|
+
group?: string;
|
|
105
|
+
/** Order within group */
|
|
106
|
+
order?: number;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Block category configuration.
|
|
110
|
+
* Defines how blocks are grouped in the block picker.
|
|
111
|
+
*/
|
|
112
|
+
interface BlockCategoryConfig {
|
|
113
|
+
/** Display label for the category */
|
|
114
|
+
label: I18nText;
|
|
115
|
+
/** Icon for the category */
|
|
116
|
+
icon?: ComponentReference;
|
|
117
|
+
/** Order in block picker (lower = first) */
|
|
118
|
+
order?: number;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Admin metadata for a block.
|
|
122
|
+
* Defines how the block appears in the block picker and editor.
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```ts
|
|
126
|
+
* block("hero")
|
|
127
|
+
* .admin(({ c }) => ({
|
|
128
|
+
* label: { en: "Hero Section", sk: "Hero sekcia" },
|
|
129
|
+
* icon: c.icon("ph:image"),
|
|
130
|
+
* category: {
|
|
131
|
+
* label: { en: "Sections", sk: "Sekcie" },
|
|
132
|
+
* icon: c.icon("ph:layout"),
|
|
133
|
+
* },
|
|
134
|
+
* }))
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
interface AdminBlockConfig {
|
|
138
|
+
/** Display label for the block */
|
|
139
|
+
label?: I18nText;
|
|
140
|
+
/** Description shown in tooltips/help text */
|
|
141
|
+
description?: I18nText;
|
|
142
|
+
/** Icon reference (resolved by client's icon component) */
|
|
143
|
+
icon?: ComponentReference;
|
|
144
|
+
/** Category for grouping in block picker */
|
|
145
|
+
category?: BlockCategoryConfig;
|
|
146
|
+
/** Order within category in block picker (lower = first) */
|
|
147
|
+
order?: number;
|
|
148
|
+
/** Hide from block picker (useful for deprecated blocks) */
|
|
149
|
+
hidden?: boolean;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* List view configuration for a collection.
|
|
153
|
+
* Defines columns, sorting, filtering, and actions.
|
|
154
|
+
*/
|
|
155
|
+
interface ListViewConfig {
|
|
156
|
+
/** View type to use (e.g., "table", "cards") */
|
|
157
|
+
view?: string;
|
|
158
|
+
/** Columns to display */
|
|
159
|
+
columns?: string[];
|
|
160
|
+
/** Default sort configuration */
|
|
161
|
+
defaultSort?: {
|
|
162
|
+
field: string;
|
|
163
|
+
direction: "asc" | "desc";
|
|
164
|
+
};
|
|
165
|
+
/** Searchable fields */
|
|
166
|
+
searchable?: string[];
|
|
167
|
+
/** Filterable fields */
|
|
168
|
+
filterable?: string[];
|
|
169
|
+
/** Actions configuration */
|
|
170
|
+
actions?: {
|
|
171
|
+
header?: {
|
|
172
|
+
primary?: ActionReference[];
|
|
173
|
+
secondary?: ActionReference[];
|
|
174
|
+
};
|
|
175
|
+
row?: ActionReference[];
|
|
176
|
+
bulk?: ActionReference[];
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Context passed to form reactive handlers.
|
|
181
|
+
*/
|
|
182
|
+
interface FormReactiveContext<TData = Record<string, unknown>> {
|
|
183
|
+
data: TData;
|
|
184
|
+
sibling: Record<string, unknown>;
|
|
185
|
+
ctx: {
|
|
186
|
+
db: any;
|
|
187
|
+
user?: any;
|
|
188
|
+
locale?: string;
|
|
189
|
+
};
|
|
190
|
+
prev?: {
|
|
191
|
+
data: TData;
|
|
192
|
+
sibling: Record<string, unknown>;
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Reactive config for field-level form behavior.
|
|
197
|
+
*/
|
|
198
|
+
type FormReactiveConfig<TData = any, TReturn = any> = ((ctx: FormReactiveContext<TData>) => TReturn | Promise<TReturn>) | {
|
|
199
|
+
handler: (ctx: FormReactiveContext<TData>) => TReturn | Promise<TReturn>;
|
|
200
|
+
deps?: string[] | ((ctx: FormReactiveContext<TData>) => any[]);
|
|
201
|
+
debounce?: number;
|
|
202
|
+
} | {
|
|
203
|
+
deps: string[];
|
|
204
|
+
debounce?: number;
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* Section layout for form views.
|
|
208
|
+
* Groups fields with optional visual wrapper and layout mode.
|
|
209
|
+
*
|
|
210
|
+
* @example
|
|
211
|
+
* ```ts
|
|
212
|
+
* {
|
|
213
|
+
* type: "section",
|
|
214
|
+
* label: { en: "Contact Information" },
|
|
215
|
+
* layout: "grid",
|
|
216
|
+
* columns: 2,
|
|
217
|
+
* fields: [f.name, f.email, f.phone],
|
|
218
|
+
* }
|
|
219
|
+
* ```
|
|
220
|
+
*/
|
|
221
|
+
interface FormSectionLayout {
|
|
222
|
+
type: "section";
|
|
223
|
+
/** Section label */
|
|
224
|
+
label?: I18nText;
|
|
225
|
+
/** Section description */
|
|
226
|
+
description?: I18nText;
|
|
227
|
+
/** Visual wrapper mode */
|
|
228
|
+
wrapper?: "flat" | "collapsible";
|
|
229
|
+
/** Default collapsed state (for collapsible wrapper) */
|
|
230
|
+
defaultCollapsed?: boolean;
|
|
231
|
+
/** Field arrangement mode */
|
|
232
|
+
layout?: "stack" | "inline" | "grid";
|
|
233
|
+
/** Number of columns (for grid layout) */
|
|
234
|
+
columns?: number;
|
|
235
|
+
/** Custom gap (in quarter rems) */
|
|
236
|
+
gap?: number;
|
|
237
|
+
/** Fields in this section */
|
|
238
|
+
fields: FieldLayoutItem[];
|
|
239
|
+
/** Conditional visibility */
|
|
240
|
+
hidden?: boolean;
|
|
241
|
+
/** Custom CSS class */
|
|
242
|
+
className?: string;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Tab configuration for tabbed form views.
|
|
246
|
+
*/
|
|
247
|
+
interface FormTabConfig {
|
|
248
|
+
/** Unique tab identifier */
|
|
249
|
+
id: string;
|
|
250
|
+
/** Tab label */
|
|
251
|
+
label: I18nText;
|
|
252
|
+
/** Tab icon */
|
|
253
|
+
icon?: ComponentReference;
|
|
254
|
+
/** Fields in this tab */
|
|
255
|
+
fields: FieldLayoutItem[];
|
|
256
|
+
/** Conditional visibility */
|
|
257
|
+
hidden?: boolean;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Tabs layout for form views.
|
|
261
|
+
*
|
|
262
|
+
* @example
|
|
263
|
+
* ```ts
|
|
264
|
+
* {
|
|
265
|
+
* type: "tabs",
|
|
266
|
+
* tabs: [
|
|
267
|
+
* { id: "basic", label: { en: "Basic" }, fields: [f.name, f.email] },
|
|
268
|
+
* { id: "advanced", label: { en: "Advanced" }, fields: [f.settings] },
|
|
269
|
+
* ],
|
|
270
|
+
* }
|
|
271
|
+
* ```
|
|
272
|
+
*/
|
|
273
|
+
interface FormTabsLayout {
|
|
274
|
+
type: "tabs";
|
|
275
|
+
tabs: FormTabConfig[];
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Field entry with optional reactive form behavior.
|
|
279
|
+
*/
|
|
280
|
+
interface FormFieldLayoutItem<TData = any> {
|
|
281
|
+
field: string;
|
|
282
|
+
className?: string;
|
|
283
|
+
hidden?: boolean | FormReactiveConfig<TData, boolean>;
|
|
284
|
+
readOnly?: boolean | FormReactiveConfig<TData, boolean>;
|
|
285
|
+
disabled?: boolean | FormReactiveConfig<TData, boolean>;
|
|
286
|
+
compute?: FormReactiveConfig<TData, any>;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Field layout item - union of field reference or layout container.
|
|
290
|
+
*
|
|
291
|
+
* Can be:
|
|
292
|
+
* - Field name string: `f.name`
|
|
293
|
+
* - Field with className: `{ field: "name", className: "col-span-2" }`
|
|
294
|
+
* - Section layout: `{ type: "section", ... }`
|
|
295
|
+
* - Tabs layout: `{ type: "tabs", ... }`
|
|
296
|
+
*/
|
|
297
|
+
type FieldLayoutItem = string | FormFieldLayoutItem | FormSectionLayout | FormTabsLayout;
|
|
298
|
+
/**
|
|
299
|
+
* Form sidebar configuration.
|
|
300
|
+
* Places fields in a fixed sidebar alongside the main content.
|
|
301
|
+
*
|
|
302
|
+
* @example
|
|
303
|
+
* ```ts
|
|
304
|
+
* sidebar: {
|
|
305
|
+
* position: "right",
|
|
306
|
+
* fields: [f.isActive, f.avatar],
|
|
307
|
+
* }
|
|
308
|
+
* ```
|
|
309
|
+
*/
|
|
310
|
+
interface FormSidebarConfig {
|
|
311
|
+
/** Sidebar position (default: "right") */
|
|
312
|
+
position?: "left" | "right";
|
|
313
|
+
/** Fields in the sidebar */
|
|
314
|
+
fields: FieldLayoutItem[];
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Form view configuration for a collection.
|
|
318
|
+
* Defines field layout with sections, tabs, and optional sidebar.
|
|
319
|
+
*
|
|
320
|
+
* @example
|
|
321
|
+
* ```ts
|
|
322
|
+
* v.form({
|
|
323
|
+
* sidebar: { position: "right", fields: [f.status] },
|
|
324
|
+
* fields: [
|
|
325
|
+
* { type: "section", label: { en: "Details" }, layout: "grid", columns: 2, fields: [f.name, f.email] },
|
|
326
|
+
* { type: "section", label: { en: "Content" }, fields: [f.body] },
|
|
327
|
+
* ],
|
|
328
|
+
* })
|
|
329
|
+
* ```
|
|
330
|
+
*/
|
|
331
|
+
interface FormViewConfig {
|
|
332
|
+
/** View type to use (e.g., "form", "wizard") */
|
|
333
|
+
view?: string;
|
|
334
|
+
/** Main content fields */
|
|
335
|
+
fields: FieldLayoutItem[];
|
|
336
|
+
/** Sidebar configuration */
|
|
337
|
+
sidebar?: FormSidebarConfig;
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Preview configuration for a collection.
|
|
341
|
+
* Enables live preview of content.
|
|
342
|
+
*/
|
|
343
|
+
interface PreviewConfig {
|
|
344
|
+
/** Enable preview panel */
|
|
345
|
+
enabled?: boolean;
|
|
346
|
+
/** Preview URL builder (runs on server) */
|
|
347
|
+
url?: (ctx: {
|
|
348
|
+
record: Record<string, unknown>;
|
|
349
|
+
locale?: string;
|
|
350
|
+
}) => string;
|
|
351
|
+
/** Preview panel position */
|
|
352
|
+
position?: "left" | "right" | "bottom";
|
|
353
|
+
/** Default panel width (percentage) */
|
|
354
|
+
defaultWidth?: number;
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Reference to an action
|
|
358
|
+
*/
|
|
359
|
+
type ActionReference = string | {
|
|
360
|
+
type: string;
|
|
361
|
+
config?: unknown;
|
|
362
|
+
};
|
|
363
|
+
/**
|
|
364
|
+
* Admin metadata for a global.
|
|
365
|
+
*/
|
|
366
|
+
interface AdminGlobalConfig {
|
|
367
|
+
/** Display label */
|
|
368
|
+
label?: I18nText;
|
|
369
|
+
/** Description */
|
|
370
|
+
description?: I18nText;
|
|
371
|
+
/** Icon reference */
|
|
372
|
+
icon?: ComponentReference;
|
|
373
|
+
/** Hide from admin */
|
|
374
|
+
hidden?: boolean;
|
|
375
|
+
/** Group in sidebar */
|
|
376
|
+
group?: string;
|
|
377
|
+
/** Order within group */
|
|
378
|
+
order?: number;
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Context available to widget fetchFn and access functions on the server.
|
|
382
|
+
* When you register your app via `Register.app`, `ctx.app` is automatically typed.
|
|
383
|
+
*/
|
|
384
|
+
type WidgetFetchContext = {
|
|
385
|
+
app: RegisteredApp;
|
|
386
|
+
db: any;
|
|
387
|
+
session?: any;
|
|
388
|
+
locale?: string;
|
|
389
|
+
};
|
|
390
|
+
/**
|
|
391
|
+
* Per-widget access rule. Can be a boolean or async function.
|
|
392
|
+
* - `true` or `undefined`: always visible
|
|
393
|
+
* - `false`: always hidden
|
|
394
|
+
* - function: evaluated at request time
|
|
395
|
+
*/
|
|
396
|
+
type WidgetAccessRule = boolean | ((ctx: WidgetFetchContext) => boolean | Promise<boolean>);
|
|
397
|
+
/**
|
|
398
|
+
* Server-side dashboard widget configuration.
|
|
399
|
+
* These are serializable and can be sent via introspection API.
|
|
400
|
+
*/
|
|
401
|
+
type ServerDashboardWidget = ServerStatsWidget | ServerChartWidget | ServerRecentItemsWidget | ServerQuickActionsWidget | ServerCustomWidget | ServerValueWidget | ServerTableWidget | ServerTimelineWidget | ServerProgressWidget;
|
|
402
|
+
/**
|
|
403
|
+
* Stats widget - shows count from a collection
|
|
404
|
+
*/
|
|
405
|
+
interface ServerStatsWidget {
|
|
406
|
+
type: "stats";
|
|
407
|
+
/** Unique widget ID */
|
|
408
|
+
id?: string;
|
|
409
|
+
/** Widget label */
|
|
410
|
+
label?: I18nText;
|
|
411
|
+
/** Icon reference */
|
|
412
|
+
icon?: ComponentReference;
|
|
413
|
+
/** Collection to count */
|
|
414
|
+
collection: string;
|
|
415
|
+
/** Filter to apply */
|
|
416
|
+
filter?: Record<string, unknown>;
|
|
417
|
+
/** Grid span (1-4) */
|
|
418
|
+
span?: number;
|
|
419
|
+
/** Optional server-side data fetcher (overrides collection count) */
|
|
420
|
+
fetchFn?: (ctx: WidgetFetchContext) => Promise<{
|
|
421
|
+
count: number;
|
|
422
|
+
}>;
|
|
423
|
+
/** Per-widget access rule */
|
|
424
|
+
access?: WidgetAccessRule;
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Chart widget - shows data over time
|
|
428
|
+
*/
|
|
429
|
+
interface ServerChartWidget {
|
|
430
|
+
type: "chart";
|
|
431
|
+
/** Unique widget ID */
|
|
432
|
+
id?: string;
|
|
433
|
+
/** Widget label */
|
|
434
|
+
label?: I18nText;
|
|
435
|
+
/** Chart type */
|
|
436
|
+
chartType: "line" | "bar" | "area" | "pie";
|
|
437
|
+
/** Collection to query */
|
|
438
|
+
collection: string;
|
|
439
|
+
/** Date field for time series */
|
|
440
|
+
dateField: string;
|
|
441
|
+
/** Time range */
|
|
442
|
+
timeRange?: "7d" | "30d" | "90d" | "1y";
|
|
443
|
+
/** Filter to apply */
|
|
444
|
+
filter?: Record<string, unknown>;
|
|
445
|
+
/** Grid span (1-4) */
|
|
446
|
+
span?: number;
|
|
447
|
+
/** Optional server-side data fetcher (overrides collection query) */
|
|
448
|
+
fetchFn?: (ctx: WidgetFetchContext) => Promise<Array<{
|
|
449
|
+
name: string;
|
|
450
|
+
value: number;
|
|
451
|
+
}>>;
|
|
452
|
+
/** Per-widget access rule */
|
|
453
|
+
access?: WidgetAccessRule;
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Recent items widget - shows latest items from a collection
|
|
457
|
+
*/
|
|
458
|
+
interface ServerRecentItemsWidget {
|
|
459
|
+
type: "recentItems";
|
|
460
|
+
/** Unique widget ID */
|
|
461
|
+
id?: string;
|
|
462
|
+
/** Widget label */
|
|
463
|
+
label?: I18nText;
|
|
464
|
+
/** Collection to query */
|
|
465
|
+
collection: string;
|
|
466
|
+
/** Date field for ordering */
|
|
467
|
+
dateField: string;
|
|
468
|
+
/** Number of items to show */
|
|
469
|
+
limit?: number;
|
|
470
|
+
/** Filter to apply */
|
|
471
|
+
filter?: Record<string, unknown>;
|
|
472
|
+
/** Grid span (1-4) */
|
|
473
|
+
span?: number;
|
|
474
|
+
/** Optional server-side data fetcher */
|
|
475
|
+
fetchFn?: (ctx: WidgetFetchContext) => Promise<unknown>;
|
|
476
|
+
/** Per-widget access rule */
|
|
477
|
+
access?: WidgetAccessRule;
|
|
478
|
+
}
|
|
479
|
+
/**
|
|
480
|
+
* Quick actions widget - shows action buttons
|
|
481
|
+
*/
|
|
482
|
+
interface ServerQuickActionsWidget {
|
|
483
|
+
type: "quickActions";
|
|
484
|
+
/** Unique widget ID */
|
|
485
|
+
id?: string;
|
|
486
|
+
/** Widget label */
|
|
487
|
+
label?: I18nText;
|
|
488
|
+
/** Actions to display */
|
|
489
|
+
actions: ServerQuickAction[];
|
|
490
|
+
/** Grid span (1-4) */
|
|
491
|
+
span?: number;
|
|
492
|
+
/** Per-widget access rule */
|
|
493
|
+
access?: WidgetAccessRule;
|
|
494
|
+
}
|
|
495
|
+
/**
|
|
496
|
+
* Quick action definition
|
|
497
|
+
*/
|
|
498
|
+
interface ServerQuickAction {
|
|
499
|
+
/** Action label */
|
|
500
|
+
label: I18nText;
|
|
501
|
+
/** Action icon */
|
|
502
|
+
icon?: ComponentReference;
|
|
503
|
+
/** Action to perform */
|
|
504
|
+
action: {
|
|
505
|
+
type: "create";
|
|
506
|
+
collection: string;
|
|
507
|
+
} | {
|
|
508
|
+
type: "link";
|
|
509
|
+
href: string;
|
|
510
|
+
external?: boolean;
|
|
511
|
+
} | {
|
|
512
|
+
type: "page";
|
|
513
|
+
pageId: string;
|
|
514
|
+
};
|
|
515
|
+
}
|
|
516
|
+
/**
|
|
517
|
+
* Custom widget - rendered by client component
|
|
518
|
+
*/
|
|
519
|
+
interface ServerCustomWidget {
|
|
520
|
+
type: "custom";
|
|
521
|
+
/** Unique widget ID (required for custom) */
|
|
522
|
+
id: string;
|
|
523
|
+
/** Widget label */
|
|
524
|
+
label?: I18nText;
|
|
525
|
+
/** Custom widget type name (resolved by client registry) */
|
|
526
|
+
widgetType: string;
|
|
527
|
+
/** Widget props (passed to client component) */
|
|
528
|
+
props?: Record<string, unknown>;
|
|
529
|
+
/** Grid span (1-4) */
|
|
530
|
+
span?: number;
|
|
531
|
+
/** Optional server-side data fetcher */
|
|
532
|
+
fetchFn?: (ctx: WidgetFetchContext) => Promise<unknown>;
|
|
533
|
+
/** Per-widget access rule */
|
|
534
|
+
access?: WidgetAccessRule;
|
|
535
|
+
}
|
|
536
|
+
/**
|
|
537
|
+
* Value widget - displays a single metric with optional trend
|
|
538
|
+
*/
|
|
539
|
+
interface ServerValueWidget {
|
|
540
|
+
type: "value";
|
|
541
|
+
/** Unique widget ID */
|
|
542
|
+
id: string;
|
|
543
|
+
/** Widget label */
|
|
544
|
+
label?: I18nText;
|
|
545
|
+
/** Icon reference */
|
|
546
|
+
icon?: ComponentReference;
|
|
547
|
+
/** Grid span (1-4) */
|
|
548
|
+
span?: number;
|
|
549
|
+
/** Server-side data fetcher (required) */
|
|
550
|
+
fetchFn: (ctx: WidgetFetchContext) => Promise<{
|
|
551
|
+
value: number | string;
|
|
552
|
+
formatted?: string;
|
|
553
|
+
label?: I18nText | string;
|
|
554
|
+
subtitle?: I18nText | string;
|
|
555
|
+
footer?: I18nText | string;
|
|
556
|
+
icon?: ComponentReference;
|
|
557
|
+
trend?: {
|
|
558
|
+
value: string;
|
|
559
|
+
icon?: ComponentReference;
|
|
560
|
+
};
|
|
561
|
+
classNames?: Record<string, string>;
|
|
562
|
+
}>;
|
|
563
|
+
/** Per-widget access rule */
|
|
564
|
+
access?: WidgetAccessRule;
|
|
565
|
+
}
|
|
566
|
+
/**
|
|
567
|
+
* Table widget - displays a mini table from a collection
|
|
568
|
+
*/
|
|
569
|
+
interface ServerTableWidget {
|
|
570
|
+
type: "table";
|
|
571
|
+
/** Unique widget ID */
|
|
572
|
+
id: string;
|
|
573
|
+
/** Widget label */
|
|
574
|
+
label?: I18nText;
|
|
575
|
+
/** Collection to fetch from */
|
|
576
|
+
collection: string;
|
|
577
|
+
/** Columns to display */
|
|
578
|
+
columns: Array<string | {
|
|
579
|
+
key: string;
|
|
580
|
+
label?: I18nText;
|
|
581
|
+
}>;
|
|
582
|
+
/** Number of rows */
|
|
583
|
+
limit?: number;
|
|
584
|
+
/** Sort field */
|
|
585
|
+
sortBy?: string;
|
|
586
|
+
/** Sort direction */
|
|
587
|
+
sortOrder?: "asc" | "desc";
|
|
588
|
+
/** Filter */
|
|
589
|
+
filter?: Record<string, unknown>;
|
|
590
|
+
/** Grid span (1-4) */
|
|
591
|
+
span?: number;
|
|
592
|
+
/** Optional server-side data fetcher */
|
|
593
|
+
fetchFn?: (ctx: WidgetFetchContext) => Promise<unknown>;
|
|
594
|
+
/** Per-widget access rule */
|
|
595
|
+
access?: WidgetAccessRule;
|
|
596
|
+
}
|
|
597
|
+
/**
|
|
598
|
+
* Timeline widget - displays activity/event timeline
|
|
599
|
+
*/
|
|
600
|
+
interface ServerTimelineWidget {
|
|
601
|
+
type: "timeline";
|
|
602
|
+
/** Unique widget ID */
|
|
603
|
+
id: string;
|
|
604
|
+
/** Widget label */
|
|
605
|
+
label?: I18nText;
|
|
606
|
+
/** Max items to show */
|
|
607
|
+
maxItems?: number;
|
|
608
|
+
/** Show timestamps */
|
|
609
|
+
showTimestamps?: boolean;
|
|
610
|
+
/** Timestamp format */
|
|
611
|
+
timestampFormat?: "relative" | "absolute" | "datetime";
|
|
612
|
+
/** Empty state message */
|
|
613
|
+
emptyMessage?: I18nText;
|
|
614
|
+
/** Grid span (1-4) */
|
|
615
|
+
span?: number;
|
|
616
|
+
/** Server-side data fetcher (required) */
|
|
617
|
+
fetchFn: (ctx: WidgetFetchContext) => Promise<Array<{
|
|
618
|
+
id: string;
|
|
619
|
+
title: string;
|
|
620
|
+
description?: string;
|
|
621
|
+
timestamp: Date | string;
|
|
622
|
+
icon?: ComponentReference;
|
|
623
|
+
variant?: "default" | "success" | "warning" | "error" | "info";
|
|
624
|
+
href?: string;
|
|
625
|
+
}>>;
|
|
626
|
+
/** Per-widget access rule */
|
|
627
|
+
access?: WidgetAccessRule;
|
|
628
|
+
}
|
|
629
|
+
/**
|
|
630
|
+
* Progress widget - displays progress towards a goal
|
|
631
|
+
*/
|
|
632
|
+
interface ServerProgressWidget {
|
|
633
|
+
type: "progress";
|
|
634
|
+
/** Unique widget ID */
|
|
635
|
+
id: string;
|
|
636
|
+
/** Widget label */
|
|
637
|
+
label?: I18nText;
|
|
638
|
+
/** Progress bar color */
|
|
639
|
+
color?: string;
|
|
640
|
+
/** Show percentage */
|
|
641
|
+
showPercentage?: boolean;
|
|
642
|
+
/** Grid span (1-4) */
|
|
643
|
+
span?: number;
|
|
644
|
+
/** Server-side data fetcher (required) */
|
|
645
|
+
fetchFn: (ctx: WidgetFetchContext) => Promise<{
|
|
646
|
+
current: number;
|
|
647
|
+
target: number;
|
|
648
|
+
label?: string;
|
|
649
|
+
subtitle?: string;
|
|
650
|
+
}>;
|
|
651
|
+
/** Per-widget access rule */
|
|
652
|
+
access?: WidgetAccessRule;
|
|
653
|
+
}
|
|
654
|
+
/**
|
|
655
|
+
* Dashboard section - groups widgets
|
|
656
|
+
*/
|
|
657
|
+
interface ServerDashboardSection {
|
|
658
|
+
type: "section";
|
|
659
|
+
/** Section label */
|
|
660
|
+
label?: I18nText;
|
|
661
|
+
/** Section description */
|
|
662
|
+
description?: I18nText;
|
|
663
|
+
/** Section icon */
|
|
664
|
+
icon?: ComponentReference;
|
|
665
|
+
/** Layout mode */
|
|
666
|
+
layout?: "grid" | "stack";
|
|
667
|
+
/** Grid columns */
|
|
668
|
+
columns?: number;
|
|
669
|
+
/** Wrapper style */
|
|
670
|
+
wrapper?: "flat" | "card" | "collapsible";
|
|
671
|
+
/** Default collapsed (for collapsible) */
|
|
672
|
+
defaultCollapsed?: boolean;
|
|
673
|
+
/** Section items */
|
|
674
|
+
items: ServerDashboardItem[];
|
|
675
|
+
}
|
|
676
|
+
/**
|
|
677
|
+
* Dashboard tabs - tabbed sections
|
|
678
|
+
*/
|
|
679
|
+
interface ServerDashboardTabs {
|
|
680
|
+
type: "tabs";
|
|
681
|
+
/** Tabs configuration */
|
|
682
|
+
tabs: ServerDashboardTab[];
|
|
683
|
+
/** Default active tab ID */
|
|
684
|
+
defaultTab?: string;
|
|
685
|
+
}
|
|
686
|
+
/**
|
|
687
|
+
* Single tab configuration
|
|
688
|
+
*/
|
|
689
|
+
interface ServerDashboardTab {
|
|
690
|
+
/** Tab ID */
|
|
691
|
+
id: string;
|
|
692
|
+
/** Tab label */
|
|
693
|
+
label: I18nText;
|
|
694
|
+
/** Tab icon */
|
|
695
|
+
icon?: ComponentReference;
|
|
696
|
+
/** Tab items */
|
|
697
|
+
items: ServerDashboardItem[];
|
|
698
|
+
}
|
|
699
|
+
/**
|
|
700
|
+
* Dashboard layout item
|
|
701
|
+
*/
|
|
702
|
+
type ServerDashboardItem = ServerDashboardWidget | ServerDashboardSection | ServerDashboardTabs;
|
|
703
|
+
/**
|
|
704
|
+
* Dashboard header action shown beside title/description.
|
|
705
|
+
*/
|
|
706
|
+
interface ServerDashboardAction {
|
|
707
|
+
/** Unique action ID */
|
|
708
|
+
id: string;
|
|
709
|
+
/** Action label */
|
|
710
|
+
label: I18nText;
|
|
711
|
+
/** Action icon */
|
|
712
|
+
icon?: ComponentReference;
|
|
713
|
+
/** Action URL */
|
|
714
|
+
href: string;
|
|
715
|
+
/** Visual variant */
|
|
716
|
+
variant?: "default" | "primary" | "secondary" | "outline" | "ghost";
|
|
717
|
+
}
|
|
718
|
+
/**
|
|
719
|
+
* Server-side dashboard configuration
|
|
720
|
+
*/
|
|
721
|
+
interface ServerDashboardConfig {
|
|
722
|
+
/** Dashboard title */
|
|
723
|
+
title?: I18nText;
|
|
724
|
+
/** Dashboard description */
|
|
725
|
+
description?: I18nText;
|
|
726
|
+
/** Header actions */
|
|
727
|
+
actions?: ServerDashboardAction[];
|
|
728
|
+
/** Grid columns (default: 4) */
|
|
729
|
+
columns?: number;
|
|
730
|
+
/** Gap between widgets */
|
|
731
|
+
gap?: number;
|
|
732
|
+
/** Dashboard items */
|
|
733
|
+
items?: ServerDashboardItem[];
|
|
734
|
+
/** Enable realtime invalidation for dashboard widgets by default */
|
|
735
|
+
realtime?: boolean;
|
|
736
|
+
/** Auto-refresh interval in milliseconds */
|
|
737
|
+
refreshInterval?: number;
|
|
738
|
+
}
|
|
739
|
+
/**
|
|
740
|
+
* Branding configuration for the admin panel.
|
|
741
|
+
*/
|
|
742
|
+
interface ServerBrandingConfig {
|
|
743
|
+
/** Admin panel name */
|
|
744
|
+
name?: I18nText;
|
|
745
|
+
/** Logo configuration */
|
|
746
|
+
logo?: unknown;
|
|
747
|
+
}
|
|
748
|
+
/**
|
|
749
|
+
* Server-side sidebar item types
|
|
750
|
+
*/
|
|
751
|
+
type ServerSidebarItem = ServerSidebarCollectionItem | ServerSidebarGlobalItem | ServerSidebarPageItem | ServerSidebarLinkItem | ServerSidebarDividerItem;
|
|
752
|
+
/**
|
|
753
|
+
* Collection item in sidebar
|
|
754
|
+
*/
|
|
755
|
+
interface ServerSidebarCollectionItem {
|
|
756
|
+
type: "collection";
|
|
757
|
+
/** Collection name (validated against registered collections) */
|
|
758
|
+
collection: string;
|
|
759
|
+
/** Override display label */
|
|
760
|
+
label?: I18nText;
|
|
761
|
+
/** Override icon */
|
|
762
|
+
icon?: ComponentReference;
|
|
763
|
+
}
|
|
764
|
+
/**
|
|
765
|
+
* Global item in sidebar
|
|
766
|
+
*/
|
|
767
|
+
interface ServerSidebarGlobalItem {
|
|
768
|
+
type: "global";
|
|
769
|
+
/** Global name (validated against registered globals) */
|
|
770
|
+
global: string;
|
|
771
|
+
/** Override display label */
|
|
772
|
+
label?: I18nText;
|
|
773
|
+
/** Override icon */
|
|
774
|
+
icon?: ComponentReference;
|
|
775
|
+
}
|
|
776
|
+
/**
|
|
777
|
+
* Custom page item in sidebar
|
|
778
|
+
*/
|
|
779
|
+
interface ServerSidebarPageItem {
|
|
780
|
+
type: "page";
|
|
781
|
+
/** Page ID (resolved by client) */
|
|
782
|
+
pageId: string;
|
|
783
|
+
/** Display label */
|
|
784
|
+
label?: I18nText;
|
|
785
|
+
/** Icon */
|
|
786
|
+
icon?: ComponentReference;
|
|
787
|
+
}
|
|
788
|
+
/**
|
|
789
|
+
* External link item in sidebar
|
|
790
|
+
*/
|
|
791
|
+
interface ServerSidebarLinkItem {
|
|
792
|
+
type: "link";
|
|
793
|
+
/** Display label */
|
|
794
|
+
label: I18nText;
|
|
795
|
+
/** Link URL */
|
|
796
|
+
href: string;
|
|
797
|
+
/** Icon */
|
|
798
|
+
icon?: ComponentReference;
|
|
799
|
+
/** Open in new tab */
|
|
800
|
+
external?: boolean;
|
|
801
|
+
}
|
|
802
|
+
/**
|
|
803
|
+
* Divider item in sidebar
|
|
804
|
+
*/
|
|
805
|
+
interface ServerSidebarDividerItem {
|
|
806
|
+
type: "divider";
|
|
807
|
+
}
|
|
808
|
+
/**
|
|
809
|
+
* Sidebar section
|
|
810
|
+
*/
|
|
811
|
+
interface ServerSidebarSection {
|
|
812
|
+
/** Section ID (for targeting/extending) */
|
|
813
|
+
id: string;
|
|
814
|
+
/** Section title */
|
|
815
|
+
title?: I18nText;
|
|
816
|
+
/** Section icon */
|
|
817
|
+
icon?: ComponentReference;
|
|
818
|
+
/** Whether collapsed by default */
|
|
819
|
+
collapsed?: boolean;
|
|
820
|
+
/** Section items */
|
|
821
|
+
items?: ServerSidebarItem[];
|
|
822
|
+
/** Nested subsections */
|
|
823
|
+
sections?: ServerSidebarSection[];
|
|
824
|
+
}
|
|
825
|
+
/**
|
|
826
|
+
* Server-side sidebar configuration
|
|
827
|
+
*/
|
|
828
|
+
interface ServerSidebarConfig {
|
|
829
|
+
/** Sidebar sections */
|
|
830
|
+
sections: ServerSidebarSection[];
|
|
831
|
+
}
|
|
832
|
+
/**
|
|
833
|
+
* Action result types returned from action handlers.
|
|
834
|
+
*/
|
|
835
|
+
type ServerActionResult = ServerActionSuccess | ServerActionError | ServerActionRedirect | ServerActionDownload;
|
|
836
|
+
/**
|
|
837
|
+
* Successful action result
|
|
838
|
+
*/
|
|
839
|
+
interface ServerActionSuccess {
|
|
840
|
+
type: "success";
|
|
841
|
+
/** Toast notification to show */
|
|
842
|
+
toast?: {
|
|
843
|
+
message: string;
|
|
844
|
+
title?: string;
|
|
845
|
+
};
|
|
846
|
+
/** Side effects to trigger */
|
|
847
|
+
effects?: ServerActionEffects;
|
|
848
|
+
}
|
|
849
|
+
/**
|
|
850
|
+
* Error action result
|
|
851
|
+
*/
|
|
852
|
+
interface ServerActionError {
|
|
853
|
+
type: "error";
|
|
854
|
+
/** Toast notification to show */
|
|
855
|
+
toast?: {
|
|
856
|
+
message: string;
|
|
857
|
+
title?: string;
|
|
858
|
+
};
|
|
859
|
+
/** Field-level errors */
|
|
860
|
+
errors?: Record<string, string>;
|
|
861
|
+
}
|
|
862
|
+
/**
|
|
863
|
+
* Redirect action result
|
|
864
|
+
*/
|
|
865
|
+
interface ServerActionRedirect {
|
|
866
|
+
type: "redirect";
|
|
867
|
+
/** URL to redirect to */
|
|
868
|
+
url: string;
|
|
869
|
+
/** Open in new tab */
|
|
870
|
+
external?: boolean;
|
|
871
|
+
}
|
|
872
|
+
/**
|
|
873
|
+
* Download action result
|
|
874
|
+
*/
|
|
875
|
+
interface ServerActionDownload {
|
|
876
|
+
type: "download";
|
|
877
|
+
/** File data */
|
|
878
|
+
file: {
|
|
879
|
+
name: string;
|
|
880
|
+
content: string | Uint8Array;
|
|
881
|
+
mimeType: string;
|
|
882
|
+
};
|
|
883
|
+
}
|
|
884
|
+
/**
|
|
885
|
+
* Action side effects
|
|
886
|
+
*/
|
|
887
|
+
interface ServerActionEffects {
|
|
888
|
+
/** Close the action modal */
|
|
889
|
+
closeModal?: boolean;
|
|
890
|
+
/** Invalidate queries (true = all, string[] = specific collections) */
|
|
891
|
+
invalidate?: boolean | string[];
|
|
892
|
+
/** Redirect after success */
|
|
893
|
+
redirect?: string;
|
|
894
|
+
}
|
|
895
|
+
/**
|
|
896
|
+
* Action handler context
|
|
897
|
+
*/
|
|
898
|
+
interface ServerActionContext<TData = Record<string, unknown>> {
|
|
899
|
+
/** Form data submitted */
|
|
900
|
+
data: TData;
|
|
901
|
+
/** Item ID (for single-item actions) */
|
|
902
|
+
itemId?: string;
|
|
903
|
+
/** Item IDs (for bulk actions) */
|
|
904
|
+
itemIds?: string[];
|
|
905
|
+
/** CMS app instance — typed via Register.app */
|
|
906
|
+
app: RegisteredApp;
|
|
907
|
+
/** Database client */
|
|
908
|
+
db: unknown;
|
|
909
|
+
/** Current user session */
|
|
910
|
+
session?: unknown;
|
|
911
|
+
/** Current locale */
|
|
912
|
+
locale?: string;
|
|
913
|
+
}
|
|
914
|
+
/**
|
|
915
|
+
* Action handler function type
|
|
916
|
+
*/
|
|
917
|
+
type ServerActionHandler<TData = Record<string, unknown>> = (ctx: ServerActionContext<TData>) => Promise<ServerActionResult> | ServerActionResult;
|
|
918
|
+
/**
|
|
919
|
+
* Server-side action form field definition.
|
|
920
|
+
* Can be either a field definition from the registry or a simple config object.
|
|
921
|
+
*/
|
|
922
|
+
type ServerActionFormField = ServerActionFormFieldConfig | ServerActionFormFieldDefinition;
|
|
923
|
+
/**
|
|
924
|
+
* Simple field config for action forms (when not using field registry)
|
|
925
|
+
*/
|
|
926
|
+
interface ServerActionFormFieldConfig {
|
|
927
|
+
/** Field type */
|
|
928
|
+
type: string;
|
|
929
|
+
/** Field label */
|
|
930
|
+
label?: I18nText;
|
|
931
|
+
/** Field description */
|
|
932
|
+
description?: I18nText;
|
|
933
|
+
/** Whether field is required */
|
|
934
|
+
required?: boolean;
|
|
935
|
+
/** Default value */
|
|
936
|
+
default?: unknown;
|
|
937
|
+
/** Field-specific options */
|
|
938
|
+
options?: unknown;
|
|
939
|
+
}
|
|
940
|
+
/**
|
|
941
|
+
* Field definition from field registry (has getMetadata method)
|
|
942
|
+
*/
|
|
943
|
+
interface ServerActionFormFieldDefinition {
|
|
944
|
+
/** Field definition state */
|
|
945
|
+
state: {
|
|
946
|
+
label?: I18nText;
|
|
947
|
+
description?: I18nText;
|
|
948
|
+
required?: boolean;
|
|
949
|
+
};
|
|
950
|
+
/** Get metadata for introspection */
|
|
951
|
+
getMetadata(): {
|
|
952
|
+
type: string;
|
|
953
|
+
label?: I18nText;
|
|
954
|
+
description?: I18nText;
|
|
955
|
+
};
|
|
956
|
+
/** Generate Zod schema for validation */
|
|
957
|
+
toZodSchema(): unknown;
|
|
958
|
+
}
|
|
959
|
+
/**
|
|
960
|
+
* Server-side action form configuration
|
|
961
|
+
*/
|
|
962
|
+
interface ServerActionForm {
|
|
963
|
+
/** Form dialog title */
|
|
964
|
+
title: I18nText;
|
|
965
|
+
/** Form dialog description */
|
|
966
|
+
description?: I18nText;
|
|
967
|
+
/** Form fields */
|
|
968
|
+
fields: Record<string, ServerActionFormField>;
|
|
969
|
+
/** Submit button label */
|
|
970
|
+
submitLabel?: I18nText;
|
|
971
|
+
/** Cancel button label */
|
|
972
|
+
cancelLabel?: I18nText;
|
|
973
|
+
/** Dialog width */
|
|
974
|
+
width?: "sm" | "md" | "lg" | "xl";
|
|
975
|
+
}
|
|
976
|
+
/**
|
|
977
|
+
* Server-side action definition
|
|
978
|
+
*/
|
|
979
|
+
interface ServerActionDefinition<TData = Record<string, unknown>> {
|
|
980
|
+
/** Unique action ID */
|
|
981
|
+
id: string;
|
|
982
|
+
/** Display label */
|
|
983
|
+
label: I18nText;
|
|
984
|
+
/** Action description */
|
|
985
|
+
description?: I18nText;
|
|
986
|
+
/** Icon reference */
|
|
987
|
+
icon?: ComponentReference;
|
|
988
|
+
/** Button variant */
|
|
989
|
+
variant?: "default" | "destructive" | "outline" | "secondary" | "ghost";
|
|
990
|
+
/** Where the action appears */
|
|
991
|
+
scope?: "single" | "bulk" | "header" | "row";
|
|
992
|
+
/** Form configuration (for actions with input) */
|
|
993
|
+
form?: ServerActionForm;
|
|
994
|
+
/** Confirmation dialog */
|
|
995
|
+
confirmation?: {
|
|
996
|
+
title: I18nText;
|
|
997
|
+
description?: I18nText;
|
|
998
|
+
confirmLabel?: I18nText;
|
|
999
|
+
cancelLabel?: I18nText;
|
|
1000
|
+
destructive?: boolean;
|
|
1001
|
+
};
|
|
1002
|
+
/** Action handler (runs on server) */
|
|
1003
|
+
handler: ServerActionHandler<TData>;
|
|
1004
|
+
}
|
|
1005
|
+
/**
|
|
1006
|
+
* Built-in action types
|
|
1007
|
+
*/
|
|
1008
|
+
type BuiltinActionType = "create" | "save" | "delete" | "deleteMany" | "duplicate";
|
|
1009
|
+
/**
|
|
1010
|
+
* Server-side actions configuration for a collection
|
|
1011
|
+
*/
|
|
1012
|
+
interface ServerActionsConfig {
|
|
1013
|
+
/** Built-in actions to enable */
|
|
1014
|
+
builtin?: BuiltinActionType[];
|
|
1015
|
+
/** Custom actions */
|
|
1016
|
+
custom?: ServerActionDefinition[];
|
|
1017
|
+
}
|
|
1018
|
+
/**
|
|
1019
|
+
* Context for actions config function.
|
|
1020
|
+
*
|
|
1021
|
+
* Uses the same field registry as collections, so you can use `f.text()`, `f.select()` etc.
|
|
1022
|
+
* for action form fields.
|
|
1023
|
+
*
|
|
1024
|
+
* @example
|
|
1025
|
+
* ```ts
|
|
1026
|
+
* .actions(({ a, c, f }) => ({
|
|
1027
|
+
* custom: [
|
|
1028
|
+
* a.action({
|
|
1029
|
+
* id: "send-email",
|
|
1030
|
+
* label: { en: "Send Email" },
|
|
1031
|
+
* form: {
|
|
1032
|
+
* title: { en: "Send Email" },
|
|
1033
|
+
* fields: {
|
|
1034
|
+
* subject: f.text({ label: { en: "Subject" }, required: true }),
|
|
1035
|
+
* message: f.textarea({ label: { en: "Message" } }),
|
|
1036
|
+
* priority: f.select({
|
|
1037
|
+
* label: { en: "Priority" },
|
|
1038
|
+
* options: [
|
|
1039
|
+
* { value: "low", label: { en: "Low" } },
|
|
1040
|
+
* { value: "high", label: { en: "High" } },
|
|
1041
|
+
* ],
|
|
1042
|
+
* }),
|
|
1043
|
+
* },
|
|
1044
|
+
* },
|
|
1045
|
+
* handler: async ({ data }) => {
|
|
1046
|
+
* // data.subject, data.message, data.priority are typed
|
|
1047
|
+
* return { type: "success" };
|
|
1048
|
+
* },
|
|
1049
|
+
* }),
|
|
1050
|
+
* ],
|
|
1051
|
+
* }))
|
|
1052
|
+
* ```
|
|
1053
|
+
*/
|
|
1054
|
+
interface ActionsConfigContext<TFields extends Record<string, unknown> = Record<string, unknown>, TComponentNames extends string = string> {
|
|
1055
|
+
/** Action builders */
|
|
1056
|
+
a: {
|
|
1057
|
+
/** Enable create action */
|
|
1058
|
+
create: () => BuiltinActionType;
|
|
1059
|
+
/** Enable save action */
|
|
1060
|
+
save: () => BuiltinActionType;
|
|
1061
|
+
/** Enable delete action */
|
|
1062
|
+
delete: () => BuiltinActionType;
|
|
1063
|
+
/** Enable delete many action */
|
|
1064
|
+
deleteMany: () => BuiltinActionType;
|
|
1065
|
+
/** Enable duplicate action */
|
|
1066
|
+
duplicate: () => BuiltinActionType;
|
|
1067
|
+
/** Define a custom action */
|
|
1068
|
+
action: <TData = Record<string, unknown>>(def: Omit<ServerActionDefinition<TData>, "scope"> & {
|
|
1069
|
+
scope?: "single" | "row";
|
|
1070
|
+
}) => ServerActionDefinition<TData>;
|
|
1071
|
+
/** Define a bulk action */
|
|
1072
|
+
bulkAction: <TData = Record<string, unknown>>(def: Omit<ServerActionDefinition<TData>, "scope">) => ServerActionDefinition<TData>;
|
|
1073
|
+
/** Define a header action */
|
|
1074
|
+
headerAction: <TData = Record<string, unknown>>(def: Omit<ServerActionDefinition<TData>, "scope">) => ServerActionDefinition<TData>;
|
|
1075
|
+
};
|
|
1076
|
+
/** Component helpers (from registered component registry) */
|
|
1077
|
+
c: ComponentFactory<TComponentNames>;
|
|
1078
|
+
/**
|
|
1079
|
+
* Field proxy from field registry.
|
|
1080
|
+
* Use the same field types as in collections: f.text(), f.select(), etc.
|
|
1081
|
+
*/
|
|
1082
|
+
f: Record<string, (config?: Record<string, unknown>) => ServerActionFormField>;
|
|
1083
|
+
}
|
|
1084
|
+
/**
|
|
1085
|
+
* Action factory for dashboard header actions.
|
|
1086
|
+
*/
|
|
1087
|
+
interface DashboardActionFactory {
|
|
1088
|
+
/** Return action as-is */
|
|
1089
|
+
action: (config: ServerDashboardAction) => ServerDashboardAction;
|
|
1090
|
+
/** Link action */
|
|
1091
|
+
link: (config: ServerDashboardAction) => ServerDashboardAction;
|
|
1092
|
+
/** Create action linking to collection create view */
|
|
1093
|
+
create: (config: Omit<ServerDashboardAction, "href"> & {
|
|
1094
|
+
collection: string;
|
|
1095
|
+
}) => ServerDashboardAction;
|
|
1096
|
+
/** Global action linking to global edit view */
|
|
1097
|
+
global: (config: Omit<ServerDashboardAction, "href"> & {
|
|
1098
|
+
global: string;
|
|
1099
|
+
}) => ServerDashboardAction;
|
|
1100
|
+
}
|
|
1101
|
+
/**
|
|
1102
|
+
* Context for dashboard config function
|
|
1103
|
+
*/
|
|
1104
|
+
interface DashboardConfigContext<TComponentNames extends string = string> {
|
|
1105
|
+
/** Dashboard action helpers */
|
|
1106
|
+
a: DashboardActionFactory;
|
|
1107
|
+
/** Dashboard builder helpers */
|
|
1108
|
+
d: {
|
|
1109
|
+
/** Create dashboard config */
|
|
1110
|
+
dashboard: (config: ServerDashboardConfig) => ServerDashboardConfig;
|
|
1111
|
+
/** Create a section */
|
|
1112
|
+
section: (config: Omit<ServerDashboardSection, "type">) => ServerDashboardSection;
|
|
1113
|
+
/** Create tabs */
|
|
1114
|
+
tabs: (config: Omit<ServerDashboardTabs, "type">) => ServerDashboardTabs;
|
|
1115
|
+
/** Create a stats widget */
|
|
1116
|
+
stats: (config: Omit<ServerStatsWidget, "type">) => ServerStatsWidget;
|
|
1117
|
+
/** Create a chart widget */
|
|
1118
|
+
chart: (config: Omit<ServerChartWidget, "type">) => ServerChartWidget;
|
|
1119
|
+
/** Create a recent items widget */
|
|
1120
|
+
recentItems: (config: Omit<ServerRecentItemsWidget, "type">) => ServerRecentItemsWidget;
|
|
1121
|
+
/** Create a quick actions widget */
|
|
1122
|
+
quickActions: (config: Omit<ServerQuickActionsWidget, "type">) => ServerQuickActionsWidget;
|
|
1123
|
+
/** Create a custom widget */
|
|
1124
|
+
custom: (config: Omit<ServerCustomWidget, "type">) => ServerCustomWidget;
|
|
1125
|
+
/** Create a value widget */
|
|
1126
|
+
value: (config: Omit<ServerValueWidget, "type">) => ServerValueWidget;
|
|
1127
|
+
/** Create a table widget */
|
|
1128
|
+
table: (config: Omit<ServerTableWidget, "type">) => ServerTableWidget;
|
|
1129
|
+
/** Create a timeline widget */
|
|
1130
|
+
timeline: (config: Omit<ServerTimelineWidget, "type">) => ServerTimelineWidget;
|
|
1131
|
+
/** Create a progress widget */
|
|
1132
|
+
progress: (config: Omit<ServerProgressWidget, "type">) => ServerProgressWidget;
|
|
1133
|
+
};
|
|
1134
|
+
/** Component helpers (from registered component registry) */
|
|
1135
|
+
c: ComponentFactory<TComponentNames>;
|
|
1136
|
+
}
|
|
1137
|
+
/**
|
|
1138
|
+
* Context for sidebar config function
|
|
1139
|
+
*/
|
|
1140
|
+
interface SidebarConfigContext<TComponentNames extends string = string> {
|
|
1141
|
+
/** Sidebar builder helpers */
|
|
1142
|
+
s: {
|
|
1143
|
+
/** Create sidebar config */
|
|
1144
|
+
sidebar: (config: ServerSidebarConfig) => ServerSidebarConfig;
|
|
1145
|
+
/** Create a section */
|
|
1146
|
+
section: (config: Omit<ServerSidebarSection, "items"> & {
|
|
1147
|
+
items?: ServerSidebarItem[];
|
|
1148
|
+
}) => ServerSidebarSection;
|
|
1149
|
+
};
|
|
1150
|
+
/** Component helpers (from registered component registry) */
|
|
1151
|
+
c: ComponentFactory<TComponentNames>;
|
|
1152
|
+
}
|
|
1153
|
+
/**
|
|
1154
|
+
* Context for admin config functions with component proxy
|
|
1155
|
+
*/
|
|
1156
|
+
interface AdminConfigContext<TComponentNames extends string = string> {
|
|
1157
|
+
c: ComponentFactory<TComponentNames>;
|
|
1158
|
+
}
|
|
1159
|
+
/**
|
|
1160
|
+
* Extract state from a builder-like object.
|
|
1161
|
+
*/
|
|
1162
|
+
type BuilderStateOf<TBuilder> = TBuilder extends {
|
|
1163
|
+
state: infer TState;
|
|
1164
|
+
} ? TState : never;
|
|
1165
|
+
/**
|
|
1166
|
+
* Resolve source state for registry lookups.
|
|
1167
|
+
*
|
|
1168
|
+
* - Collection/Global builders: use `state["~questpieApp"].state`
|
|
1169
|
+
* - QuestpieBuilder: use `state`
|
|
1170
|
+
*/
|
|
1171
|
+
type RegistrySourceStateOf<TBuilder> = QuestpieStateOf<BuilderStateOf<TBuilder> extends {
|
|
1172
|
+
"~questpieApp"?: infer TQuestpieApp;
|
|
1173
|
+
} ? NonNullable<TQuestpieApp> : never> extends never ? BuilderStateOf<TBuilder> : QuestpieStateOf<BuilderStateOf<TBuilder> extends {
|
|
1174
|
+
"~questpieApp"?: infer TQuestpieApp;
|
|
1175
|
+
} ? NonNullable<TQuestpieApp> : never>;
|
|
1176
|
+
/**
|
|
1177
|
+
* Extract registered list view names from a builder.
|
|
1178
|
+
*/
|
|
1179
|
+
type RegisteredListViewNamesOfBuilder<TBuilder> = RegistrySourceStateOf<TBuilder> extends {
|
|
1180
|
+
listViews?: infer TViews;
|
|
1181
|
+
} ? TViews extends Record<string, ListViewDefinition> ? keyof TViews & string : string : string;
|
|
1182
|
+
/**
|
|
1183
|
+
* Extract registered edit view names from a builder.
|
|
1184
|
+
*/
|
|
1185
|
+
type RegisteredEditViewNamesOfBuilder<TBuilder> = RegistrySourceStateOf<TBuilder> extends {
|
|
1186
|
+
editViews?: infer TViews;
|
|
1187
|
+
} ? TViews extends Record<string, EditViewDefinition> ? keyof TViews & string : string : string;
|
|
1188
|
+
/**
|
|
1189
|
+
* Extract registered component names from a builder.
|
|
1190
|
+
*/
|
|
1191
|
+
type RegisteredComponentNamesOfBuilder<TBuilder> = RegistrySourceStateOf<TBuilder> extends {
|
|
1192
|
+
components?: infer TComponents;
|
|
1193
|
+
} ? TComponents extends Record<string, ComponentDefinition> ? keyof TComponents & string : string : string;
|
|
1194
|
+
/**
|
|
1195
|
+
* View factory API generated from registered list views.
|
|
1196
|
+
*/
|
|
1197
|
+
type ListViewFactory<TListViewNames extends string = string> = { [K in TListViewNames]: (config: Omit<ListViewConfig, "view">) => ListViewConfig & {
|
|
1198
|
+
view: K;
|
|
1199
|
+
} };
|
|
1200
|
+
/**
|
|
1201
|
+
* View factory API generated from registered edit views.
|
|
1202
|
+
*/
|
|
1203
|
+
type EditViewFactory<TEditViewNames extends string = string> = { [K in TEditViewNames]: (config: Omit<FormViewConfig, "view">) => FormViewConfig & {
|
|
1204
|
+
view: K;
|
|
1205
|
+
} };
|
|
1206
|
+
/**
|
|
1207
|
+
* Context for list view config functions
|
|
1208
|
+
*/
|
|
1209
|
+
interface ListViewConfigContext<TFields extends Record<string, any> = Record<string, any>, TListViewNames extends string = string> {
|
|
1210
|
+
/** View factory */
|
|
1211
|
+
v: ListViewFactory<TListViewNames>;
|
|
1212
|
+
/** Field reference proxy - returns field names as strings */
|
|
1213
|
+
f: { [K in keyof TFields]: K };
|
|
1214
|
+
/** Action reference proxy */
|
|
1215
|
+
a: {
|
|
1216
|
+
create: string;
|
|
1217
|
+
save: string;
|
|
1218
|
+
delete: string;
|
|
1219
|
+
deleteMany: string;
|
|
1220
|
+
duplicate: string;
|
|
1221
|
+
export: string;
|
|
1222
|
+
custom: (name: string, config?: unknown) => {
|
|
1223
|
+
type: string;
|
|
1224
|
+
config?: unknown;
|
|
1225
|
+
};
|
|
1226
|
+
};
|
|
1227
|
+
}
|
|
1228
|
+
/**
|
|
1229
|
+
* Context for form view config functions
|
|
1230
|
+
*/
|
|
1231
|
+
interface FormViewConfigContext<TFields extends Record<string, any> = Record<string, any>, TEditViewNames extends string = string> {
|
|
1232
|
+
/** View factory */
|
|
1233
|
+
v: EditViewFactory<TEditViewNames>;
|
|
1234
|
+
/** Field reference proxy - returns field names as strings */
|
|
1235
|
+
f: { [K in keyof TFields]: K };
|
|
1236
|
+
}
|
|
1237
|
+
/**
|
|
1238
|
+
* Admin methods added to QuestpieBuilder via monkey patching.
|
|
1239
|
+
* Use with type assertion when you need type safety:
|
|
1240
|
+
*
|
|
1241
|
+
* @example
|
|
1242
|
+
* ```ts
|
|
1243
|
+
* import type { WithAdminMethods } from "@questpie/admin/server";
|
|
1244
|
+
*
|
|
1245
|
+
* const builder = q({ name: "app" }).use(adminModule) as WithAdminMethods<typeof q>;
|
|
1246
|
+
* builder.listView("table"); // now has type support
|
|
1247
|
+
* ```
|
|
1248
|
+
*/
|
|
1249
|
+
interface QuestpieBuilderAdminMethods<TComponentNames extends string = string> {
|
|
1250
|
+
/** Create a list view definition */
|
|
1251
|
+
listView<TName extends string>(name: TName, config?: Record<string, unknown>): ListViewDefinition<TName>;
|
|
1252
|
+
/** Create an edit view definition */
|
|
1253
|
+
editView<TName extends string>(name: TName, config?: Record<string, unknown>): EditViewDefinition<TName>;
|
|
1254
|
+
/** Create a component definition */
|
|
1255
|
+
component<TName extends string>(name: TName, config?: Record<string, unknown>): ComponentDefinition<TName>;
|
|
1256
|
+
/** Register list views */
|
|
1257
|
+
listViews<TViews$1 extends Record<string, ListViewDefinition>>(views: TViews$1): this;
|
|
1258
|
+
/** Register edit views */
|
|
1259
|
+
editViews<TViews$1 extends Record<string, EditViewDefinition>>(views: TViews$1): this;
|
|
1260
|
+
/** Register components */
|
|
1261
|
+
components<TComponents$1 extends Record<string, ComponentDefinition>>(components: TComponents$1): this;
|
|
1262
|
+
/** Register block definitions */
|
|
1263
|
+
blocks<TBlocks extends Record<string, AnyBlockBuilder>>(blocks: TBlocks): this;
|
|
1264
|
+
/**
|
|
1265
|
+
* Configure the admin dashboard.
|
|
1266
|
+
*
|
|
1267
|
+
* @example
|
|
1268
|
+
* ```ts
|
|
1269
|
+
* .dashboard(({ d, c, a }) => d.dashboard({
|
|
1270
|
+
* title: { en: "Dashboard" },
|
|
1271
|
+
* actions: [
|
|
1272
|
+
* a.create({
|
|
1273
|
+
* id: "new-user",
|
|
1274
|
+
* collection: "users",
|
|
1275
|
+
* label: { en: "New User" },
|
|
1276
|
+
* icon: c.icon("ph:user-plus"),
|
|
1277
|
+
* }),
|
|
1278
|
+
* ],
|
|
1279
|
+
* items: [
|
|
1280
|
+
* d.section({
|
|
1281
|
+
* label: { en: "Overview" },
|
|
1282
|
+
* items: [
|
|
1283
|
+
* d.stats({ collection: "users", label: { en: "Total Users" } }),
|
|
1284
|
+
* d.chart({ collection: "posts", chartType: "line", dateField: "createdAt" }),
|
|
1285
|
+
* ],
|
|
1286
|
+
* }),
|
|
1287
|
+
* ],
|
|
1288
|
+
* }))
|
|
1289
|
+
* ```
|
|
1290
|
+
*/
|
|
1291
|
+
dashboard(configFn: (ctx: DashboardConfigContext<TComponentNames>) => ServerDashboardConfig): this;
|
|
1292
|
+
/**
|
|
1293
|
+
* Configure the admin sidebar.
|
|
1294
|
+
*
|
|
1295
|
+
* @example
|
|
1296
|
+
* ```ts
|
|
1297
|
+
* .sidebar(({ s, c }) => s.sidebar({
|
|
1298
|
+
* sections: [
|
|
1299
|
+
* s.section({
|
|
1300
|
+
* id: "content",
|
|
1301
|
+
* title: { en: "Content" },
|
|
1302
|
+
* icon: c.icon("ph:files"),
|
|
1303
|
+
* items: [
|
|
1304
|
+
* { type: "collection", collection: "posts" },
|
|
1305
|
+
* { type: "collection", collection: "pages" },
|
|
1306
|
+
* ],
|
|
1307
|
+
* }),
|
|
1308
|
+
* ],
|
|
1309
|
+
* }))
|
|
1310
|
+
* ```
|
|
1311
|
+
*/
|
|
1312
|
+
sidebar(configFn: (ctx: SidebarConfigContext<TComponentNames>) => ServerSidebarConfig): this;
|
|
1313
|
+
/**
|
|
1314
|
+
* Configure admin branding (name, logo).
|
|
1315
|
+
*
|
|
1316
|
+
* @example
|
|
1317
|
+
* ```ts
|
|
1318
|
+
* .branding({
|
|
1319
|
+
* name: { en: "My App", sk: "Moja Appka" },
|
|
1320
|
+
* })
|
|
1321
|
+
* ```
|
|
1322
|
+
*/
|
|
1323
|
+
branding(config: ServerBrandingConfig): this;
|
|
1324
|
+
}
|
|
1325
|
+
/**
|
|
1326
|
+
* Admin methods added to CollectionBuilder via monkey patching.
|
|
1327
|
+
*/
|
|
1328
|
+
interface CollectionBuilderAdminMethods<TFields extends Record<string, any> = Record<string, any>, TListViewNames extends string = string, TEditViewNames extends string = string, TComponentNames extends string = string> {
|
|
1329
|
+
/**
|
|
1330
|
+
* Set admin metadata for the collection.
|
|
1331
|
+
*/
|
|
1332
|
+
admin(configOrFn: AdminCollectionConfig | ((ctx: AdminConfigContext<TComponentNames>) => AdminCollectionConfig)): this;
|
|
1333
|
+
/**
|
|
1334
|
+
* Configure list view for the collection.
|
|
1335
|
+
*/
|
|
1336
|
+
list(configFn: (ctx: ListViewConfigContext<TFields, TListViewNames>) => ListViewConfig): this;
|
|
1337
|
+
/**
|
|
1338
|
+
* Configure form view for the collection.
|
|
1339
|
+
*/
|
|
1340
|
+
form(configFn: (ctx: FormViewConfigContext<TFields, TEditViewNames>) => FormViewConfig): this;
|
|
1341
|
+
/**
|
|
1342
|
+
* Configure preview for the collection.
|
|
1343
|
+
*/
|
|
1344
|
+
preview(config: PreviewConfig): this;
|
|
1345
|
+
/**
|
|
1346
|
+
* Configure actions for the collection.
|
|
1347
|
+
* Enables built-in actions and custom actions with forms.
|
|
1348
|
+
*
|
|
1349
|
+
* @example
|
|
1350
|
+
* ```ts
|
|
1351
|
+
* .actions(({ a, c, fr }) => ({
|
|
1352
|
+
* builtin: [a.create(), a.delete(), a.deleteMany()],
|
|
1353
|
+
* custom: [
|
|
1354
|
+
* a.action({
|
|
1355
|
+
* id: "publish",
|
|
1356
|
+
* label: { en: "Publish" },
|
|
1357
|
+
* icon: c.icon("ph:check-circle"),
|
|
1358
|
+
* handler: async ({ itemId }) => {
|
|
1359
|
+
* return { type: "success", toast: { message: "Published!" } };
|
|
1360
|
+
* },
|
|
1361
|
+
* }),
|
|
1362
|
+
* ],
|
|
1363
|
+
* }))
|
|
1364
|
+
* ```
|
|
1365
|
+
*/
|
|
1366
|
+
actions(configFn: (ctx: ActionsConfigContext<TFields, TComponentNames>) => ServerActionsConfig): this;
|
|
1367
|
+
}
|
|
1368
|
+
/**
|
|
1369
|
+
* Admin methods added to GlobalBuilder via monkey patching.
|
|
1370
|
+
*/
|
|
1371
|
+
interface GlobalBuilderAdminMethods<TFields extends Record<string, any> = Record<string, any>, TEditViewNames extends string = string, TComponentNames extends string = string> {
|
|
1372
|
+
/**
|
|
1373
|
+
* Set admin metadata for the global.
|
|
1374
|
+
*/
|
|
1375
|
+
admin(configOrFn: AdminGlobalConfig | ((ctx: AdminConfigContext<TComponentNames>) => AdminGlobalConfig)): this;
|
|
1376
|
+
/**
|
|
1377
|
+
* Configure form view for the global.
|
|
1378
|
+
*/
|
|
1379
|
+
form(configFn: (ctx: FormViewConfigContext<TFields, TEditViewNames>) => FormViewConfig): this;
|
|
1380
|
+
}
|
|
1381
|
+
/**
|
|
1382
|
+
* Type helper to add admin methods to a QuestpieBuilder type.
|
|
1383
|
+
*
|
|
1384
|
+
* @example
|
|
1385
|
+
* ```ts
|
|
1386
|
+
* const builder = q({ name: "app" }).use(adminModule) as WithAdminMethods<typeof q>;
|
|
1387
|
+
* ```
|
|
1388
|
+
*/
|
|
1389
|
+
type WithAdminMethods<T> = T & QuestpieBuilderAdminMethods;
|
|
1390
|
+
/**
|
|
1391
|
+
* Type helper to add admin methods to a CollectionBuilder type.
|
|
1392
|
+
*/
|
|
1393
|
+
type WithCollectionAdminMethods<T, TFields extends Record<string, any> = Record<string, any>, TListViewNames extends string = string, TEditViewNames extends string = string, TComponentNames extends string = string> = T & CollectionBuilderAdminMethods<TFields, TListViewNames, TEditViewNames, TComponentNames>;
|
|
1394
|
+
/**
|
|
1395
|
+
* Type helper to add admin methods to a GlobalBuilder type.
|
|
1396
|
+
*/
|
|
1397
|
+
type WithGlobalAdminMethods<T, TFields extends Record<string, any> = Record<string, any>, TEditViewNames extends string = string, TComponentNames extends string = string> = T & GlobalBuilderAdminMethods<TFields, TEditViewNames, TComponentNames>;
|
|
1398
|
+
declare module "questpie" {
|
|
1399
|
+
/**
|
|
1400
|
+
* Admin methods for QuestpieBuilder.
|
|
1401
|
+
* Added via runtime monkey patching in ./patch.ts.
|
|
1402
|
+
*/
|
|
1403
|
+
interface QuestpieBuilderExtensions extends QuestpieBuilderAdminMethods {
|
|
1404
|
+
/**
|
|
1405
|
+
* Configure admin UI locales (separate from content locales).
|
|
1406
|
+
*
|
|
1407
|
+
* UI locales control the admin interface language.
|
|
1408
|
+
* Content locales control which languages content can be edited in.
|
|
1409
|
+
* These don't need to match.
|
|
1410
|
+
*
|
|
1411
|
+
* @example
|
|
1412
|
+
* ```ts
|
|
1413
|
+
* const cms = q({ name: "my-app" })
|
|
1414
|
+
* .use(adminModule)
|
|
1415
|
+
* // Content can be in 10 languages
|
|
1416
|
+
* .locale({
|
|
1417
|
+
* locales: [{ code: "en" }, { code: "sk" }, { code: "de" }, ...],
|
|
1418
|
+
* defaultLocale: "en",
|
|
1419
|
+
* })
|
|
1420
|
+
* // But admin UI only in 2 languages
|
|
1421
|
+
* .adminLocale({
|
|
1422
|
+
* locales: ["en", "sk"],
|
|
1423
|
+
* defaultLocale: "en",
|
|
1424
|
+
* })
|
|
1425
|
+
* .build({ ... });
|
|
1426
|
+
* ```
|
|
1427
|
+
*/
|
|
1428
|
+
adminLocale(config: AdminLocaleConfig): this;
|
|
1429
|
+
/**
|
|
1430
|
+
* Create a block builder bound to this Questpie builder.
|
|
1431
|
+
* The block has access to all registered field types.
|
|
1432
|
+
*
|
|
1433
|
+
* @example
|
|
1434
|
+
* ```ts
|
|
1435
|
+
* const qb = q.use(adminModule);
|
|
1436
|
+
*
|
|
1437
|
+
* const heroBlock = qb.block("hero")
|
|
1438
|
+
* .label({ en: "Hero Section" })
|
|
1439
|
+
* .icon("ph:image")
|
|
1440
|
+
* .fields((f) => ({
|
|
1441
|
+
* title: f.text({ required: true }), // typed from builder's field registry
|
|
1442
|
+
* subtitle: f.text(),
|
|
1443
|
+
* }));
|
|
1444
|
+
*
|
|
1445
|
+
* const cms = qb
|
|
1446
|
+
* .blocks({ hero: heroBlock })
|
|
1447
|
+
* .build({ ... });
|
|
1448
|
+
* ```
|
|
1449
|
+
*/
|
|
1450
|
+
block<TName extends string>(name: TName): BlockBuilder<{
|
|
1451
|
+
name: TName;
|
|
1452
|
+
}, QuestpieStateOf<this> extends {
|
|
1453
|
+
fields: infer F extends Record<string, any>;
|
|
1454
|
+
} ? F : Record<string, any>>;
|
|
1455
|
+
}
|
|
1456
|
+
/**
|
|
1457
|
+
* Admin methods for CollectionBuilder.
|
|
1458
|
+
* Uses FieldsOf<this> for lazy field type extraction - this prevents
|
|
1459
|
+
* type explosion (TS7056) when combining many collections.
|
|
1460
|
+
*/
|
|
1461
|
+
interface CollectionBuilderExtensions {
|
|
1462
|
+
/**
|
|
1463
|
+
* Set admin metadata for the collection.
|
|
1464
|
+
*/
|
|
1465
|
+
admin(configOrFn: AdminCollectionConfig | ((ctx: AdminConfigContext<RegisteredComponentNamesOfBuilder<this>>) => AdminCollectionConfig)): this;
|
|
1466
|
+
/**
|
|
1467
|
+
* Configure list view for the collection.
|
|
1468
|
+
* Field proxy `f` provides autocomplete for field names.
|
|
1469
|
+
*/
|
|
1470
|
+
list(configFn: (ctx: ListViewConfigContext<FieldsOf<this>, RegisteredListViewNamesOfBuilder<this>>) => ListViewConfig): this;
|
|
1471
|
+
/**
|
|
1472
|
+
* Configure form view for the collection.
|
|
1473
|
+
*/
|
|
1474
|
+
form(configFn: (ctx: FormViewConfigContext<FieldsOf<this>, RegisteredEditViewNamesOfBuilder<this>>) => FormViewConfig): this;
|
|
1475
|
+
/**
|
|
1476
|
+
* Configure preview for the collection.
|
|
1477
|
+
*/
|
|
1478
|
+
preview(config: PreviewConfig): this;
|
|
1479
|
+
/**
|
|
1480
|
+
* Configure actions for the collection.
|
|
1481
|
+
*/
|
|
1482
|
+
actions(configFn: (ctx: ActionsConfigContext<FieldsOf<this>, RegisteredComponentNamesOfBuilder<this>>) => ServerActionsConfig): this;
|
|
1483
|
+
}
|
|
1484
|
+
/**
|
|
1485
|
+
* Admin methods for GlobalBuilder.
|
|
1486
|
+
* Uses GlobalFieldsOf<this> for lazy field type extraction.
|
|
1487
|
+
*/
|
|
1488
|
+
interface GlobalBuilderExtensions {
|
|
1489
|
+
/**
|
|
1490
|
+
* Set admin metadata for the global.
|
|
1491
|
+
*/
|
|
1492
|
+
admin(configOrFn: AdminGlobalConfig | ((ctx: AdminConfigContext<RegisteredComponentNamesOfBuilder<this>>) => AdminGlobalConfig)): this;
|
|
1493
|
+
/**
|
|
1494
|
+
* Configure form view for the global.
|
|
1495
|
+
*/
|
|
1496
|
+
form(configFn: (ctx: FormViewConfigContext<GlobalFieldsOf<this>, RegisteredEditViewNamesOfBuilder<this>>) => FormViewConfig): this;
|
|
1497
|
+
}
|
|
1498
|
+
interface QuestpieBuilderState<TName extends string = string, TCollections extends BuilderCollectionsMap = BuilderCollectionsMap, TGlobals extends BuilderGlobalsMap = BuilderGlobalsMap, TJobs extends BuilderJobsMap = BuilderJobsMap, TEmailTemplates extends BuilderEmailTemplatesMap = BuilderEmailTemplatesMap, TAuth extends BetterAuthOptions | Record<never, never> = Record<never, never>, TMessageKeys extends string = never, TBuilderFields extends BuilderFieldsMap = BuilderFieldsMap> {
|
|
1499
|
+
listViews?: Record<string, ListViewDefinition>;
|
|
1500
|
+
editViews?: Record<string, EditViewDefinition>;
|
|
1501
|
+
components?: Record<string, ComponentDefinition>;
|
|
1502
|
+
blocks?: Record<string, AnyBlockDefinition>;
|
|
1503
|
+
dashboard?: ServerDashboardConfig;
|
|
1504
|
+
sidebar?: ServerSidebarConfig;
|
|
1505
|
+
branding?: ServerBrandingConfig;
|
|
1506
|
+
/** Admin UI locale configuration (separate from content locales) */
|
|
1507
|
+
adminLocale?: AdminLocaleConfig;
|
|
1508
|
+
}
|
|
1509
|
+
interface CollectionBuilderState {
|
|
1510
|
+
admin?: AdminCollectionConfig;
|
|
1511
|
+
adminList?: ListViewConfig;
|
|
1512
|
+
adminForm?: FormViewConfig;
|
|
1513
|
+
adminPreview?: PreviewConfig;
|
|
1514
|
+
adminActions?: ServerActionsConfig;
|
|
1515
|
+
}
|
|
1516
|
+
interface GlobalBuilderState {
|
|
1517
|
+
admin?: AdminGlobalConfig;
|
|
1518
|
+
adminForm?: FormViewConfig;
|
|
1519
|
+
}
|
|
1520
|
+
}
|
|
1521
|
+
//#endregion
|
|
1522
|
+
export { ActionReference, ActionsConfigContext, AdminBlockConfig, AdminCollectionConfig, AdminConfigContext, AdminGlobalConfig, AdminLocaleConfig, BlockCategoryConfig, BuiltinActionType, ComponentDefinition, ComponentFactory, ComponentReference, DashboardActionFactory, DashboardConfigContext, EditViewDefinition, EditViewFactory, FieldLayoutItem, FormFieldLayoutItem, FormReactiveConfig, FormReactiveContext, FormSectionLayout, FormSidebarConfig, FormTabConfig, FormTabsLayout, FormViewConfig, ListViewConfig, ListViewDefinition, ListViewFactory, PreviewConfig, ServerActionContext, ServerActionDefinition, ServerActionDownload, ServerActionEffects, ServerActionError, ServerActionForm, ServerActionFormField, ServerActionHandler, ServerActionRedirect, ServerActionResult, ServerActionSuccess, ServerActionsConfig, ServerBrandingConfig, ServerChartWidget, ServerCustomWidget, ServerDashboardAction, ServerDashboardConfig, ServerDashboardItem, ServerDashboardSection, ServerDashboardTab, ServerDashboardTabs, ServerDashboardWidget, ServerProgressWidget, ServerQuickAction, ServerQuickActionsWidget, ServerRecentItemsWidget, ServerSidebarCollectionItem, ServerSidebarConfig, ServerSidebarDividerItem, ServerSidebarGlobalItem, ServerSidebarItem, ServerSidebarLinkItem, ServerSidebarPageItem, ServerSidebarSection, ServerStatsWidget, ServerTableWidget, ServerTimelineWidget, ServerValueWidget, SidebarConfigContext, WidgetAccessRule, WidgetFetchContext, WithAdminMethods, WithCollectionAdminMethods, WithGlobalAdminMethods };
|
|
1523
|
+
//# sourceMappingURL=augmentation.d.mts.map
|