@phis/ui 0.1.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/LICENSE +201 -0
- package/NOTICE +4 -0
- package/README.md +2011 -0
- package/builder-api-route.d.ts +8 -0
- package/builder-api-route.js +19 -0
- package/builder.d.ts +2 -0
- package/builder.js +2 -0
- package/cms/error-page.d.ts +2 -0
- package/cms/error-page.js +1 -0
- package/cms/plugins.d.ts +10 -0
- package/cms/plugins.js +6 -0
- package/cms/request.d.ts +3 -0
- package/cms/request.js +3 -0
- package/cms/root-layout.d.ts +2 -0
- package/cms/root-layout.js +1 -0
- package/cms/root-page.d.ts +2 -0
- package/cms/root-page.js +1 -0
- package/cms/root-slot-page.d.ts +3 -0
- package/cms/root-slot-page.js +2 -0
- package/cms-plugins-accounting.d.ts +1 -0
- package/cms-plugins-accounting.js +1 -0
- package/cms-plugins-admin.d.ts +1 -0
- package/cms-plugins-admin.js +1 -0
- package/cms-plugins-app.d.ts +1 -0
- package/cms-plugins-app.js +1 -0
- package/cms-plugins-editor.d.ts +1 -0
- package/cms-plugins-editor.js +1 -0
- package/cms-plugins-public.d.ts +1 -0
- package/cms-plugins-public.js +1 -0
- package/cms.d.ts +16 -0
- package/cms.js +9 -0
- package/components/account/avatar-client.d.ts +18 -0
- package/components/account/avatar-client.js +37 -0
- package/components/account/avatar-revision.d.ts +12 -0
- package/components/account/avatar-revision.js +14 -0
- package/components/calendar/gregory-calendar-adapter-client.d.ts +2 -0
- package/components/calendar/gregory-calendar-adapter-client.js +173 -0
- package/components/cms/clients/phi-background-motion-layer-client.d.ts +4 -0
- package/components/cms/clients/phi-background-motion-layer-client.js +340 -0
- package/components/cms/clients/phi-background-motion-layer-lazy.d.ts +4 -0
- package/components/cms/clients/phi-background-motion-layer-lazy.js +20 -0
- package/components/cms/clients/phi-cms-node-visibility-gate.d.ts +36 -0
- package/components/cms/clients/phi-cms-node-visibility-gate.js +67 -0
- package/components/cms/phi-cms-area-render-scope.d.ts +124 -0
- package/components/cms/phi-cms-area-render-scope.js +78 -0
- package/components/cms/phi-cms-error-page.d.ts +20 -0
- package/components/cms/phi-cms-error-page.js +85 -0
- package/components/cms/phi-cms-layout-renderer.d.ts +28 -0
- package/components/cms/phi-cms-layout-renderer.js +627 -0
- package/components/cms/phi-cms-page-meta-signal-emitter.d.ts +8 -0
- package/components/cms/phi-cms-page-meta-signal-emitter.js +18 -0
- package/components/cms/phi-cms-page-redirect.d.ts +20 -0
- package/components/cms/phi-cms-page-redirect.js +70 -0
- package/components/cms/phi-cms-page-renderer.d.ts +11 -0
- package/components/cms/phi-cms-page-renderer.js +13 -0
- package/components/cms/phi-cms-region-helpers.d.ts +3 -0
- package/components/cms/phi-cms-region-helpers.js +3 -0
- package/components/cms/phi-cms-render-diagnostic-client.d.ts +4 -0
- package/components/cms/phi-cms-render-diagnostic-client.js +57 -0
- package/components/cms/phi-cms-render-diagnostic.d.ts +4 -0
- package/components/cms/phi-cms-render-diagnostic.js +15 -0
- package/components/cms/phi-cms-render-error-boundary.d.ts +20 -0
- package/components/cms/phi-cms-render-error-boundary.js +33 -0
- package/components/cms/phi-cms-root-layout.d.ts +77 -0
- package/components/cms/phi-cms-root-layout.js +197 -0
- package/components/cms/phi-cms-root-page.d.ts +7 -0
- package/components/cms/phi-cms-root-page.js +110 -0
- package/components/cms/phi-cms-root-slot-page.d.ts +8 -0
- package/components/cms/phi-cms-root-slot-page.js +116 -0
- package/components/cms/phi-cms-runtime-registry.d.ts +20 -0
- package/components/cms/phi-cms-runtime-registry.js +31 -0
- package/components/controls/config-preview-shell.d.ts +7 -0
- package/components/controls/config-preview-shell.js +20 -0
- package/components/controls/phi-alert-control.d.ts +12 -0
- package/components/controls/phi-alert-control.js +6 -0
- package/components/controls/phi-anchor-control-contract.d.ts +15 -0
- package/components/controls/phi-anchor-control-contract.js +79 -0
- package/components/controls/phi-background-control.d.ts +78 -0
- package/components/controls/phi-background-control.js +783 -0
- package/components/controls/phi-border-control.d.ts +16 -0
- package/components/controls/phi-border-control.js +78 -0
- package/components/controls/phi-bound-radius-control.d.ts +35 -0
- package/components/controls/phi-bound-radius-control.js +128 -0
- package/components/controls/phi-brand-control.d.ts +37 -0
- package/components/controls/phi-brand-control.js +102 -0
- package/components/controls/phi-builder-insert-picker-control-labels.d.ts +12 -0
- package/components/controls/phi-builder-insert-picker-control-labels.js +11 -0
- package/components/controls/phi-builder-insert-picker-control.d.ts +34 -0
- package/components/controls/phi-builder-insert-picker-control.js +190 -0
- package/components/controls/phi-button-control.d.ts +59 -0
- package/components/controls/phi-button-control.js +19 -0
- package/components/controls/phi-button-types.d.ts +2 -0
- package/components/controls/phi-button-types.js +9 -0
- package/components/controls/phi-calendar-control.d.ts +5 -0
- package/components/controls/phi-calendar-control.js +6 -0
- package/components/controls/phi-cascader-control.d.ts +32 -0
- package/components/controls/phi-cascader-control.js +174 -0
- package/components/controls/phi-checkbox-control.d.ts +12 -0
- package/components/controls/phi-checkbox-control.js +6 -0
- package/components/controls/phi-checkbox-group-control.d.ts +10 -0
- package/components/controls/phi-checkbox-group-control.js +10 -0
- package/components/controls/phi-collection-header-control.d.ts +8 -0
- package/components/controls/phi-collection-header-control.js +46 -0
- package/components/controls/phi-collection-layout-control.d.ts +8 -0
- package/components/controls/phi-collection-layout-control.js +33 -0
- package/components/controls/phi-collection-view-control.d.ts +29 -0
- package/components/controls/phi-collection-view-control.js +16 -0
- package/components/controls/phi-color-control.d.ts +31 -0
- package/components/controls/phi-color-control.js +161 -0
- package/components/controls/phi-confirm-control.d.ts +35 -0
- package/components/controls/phi-confirm-control.js +23 -0
- package/components/controls/phi-control-option-content.d.ts +5 -0
- package/components/controls/phi-control-option-content.js +37 -0
- package/components/controls/phi-control-options.d.ts +69 -0
- package/components/controls/phi-control-options.js +112 -0
- package/components/controls/phi-date-picker-control.d.ts +6 -0
- package/components/controls/phi-date-picker-control.js +8 -0
- package/components/controls/phi-description-tooltip-icon.d.ts +2 -0
- package/components/controls/phi-description-tooltip-icon.js +5 -0
- package/components/controls/phi-dimension-control.d.ts +14 -0
- package/components/controls/phi-dimension-control.js +25 -0
- package/components/controls/phi-drag-handle-control.d.ts +48 -0
- package/components/controls/phi-drag-handle-control.js +43 -0
- package/components/controls/phi-drawer-control.d.ts +11 -0
- package/components/controls/phi-drawer-control.js +58 -0
- package/components/controls/phi-dropdown-control.d.ts +47 -0
- package/components/controls/phi-dropdown-control.js +84 -0
- package/components/controls/phi-dropdown-control.module.css +63 -0
- package/components/controls/phi-expand-indicator.d.ts +5 -0
- package/components/controls/phi-expand-indicator.js +17 -0
- package/components/controls/phi-expand-indicator.module.css +16 -0
- package/components/controls/phi-form-control.d.ts +34 -0
- package/components/controls/phi-form-control.js +352 -0
- package/components/controls/phi-geometry-control.d.ts +15 -0
- package/components/controls/phi-geometry-control.js +87 -0
- package/components/controls/phi-icon-picker-control.d.ts +21 -0
- package/components/controls/phi-icon-picker-control.js +313 -0
- package/components/controls/phi-icon-picker-labels.d.ts +27 -0
- package/components/controls/phi-icon-picker-labels.js +26 -0
- package/components/controls/phi-labeled-control.d.ts +7 -0
- package/components/controls/phi-labeled-control.js +37 -0
- package/components/controls/phi-length-control.d.ts +22 -0
- package/components/controls/phi-length-control.js +27 -0
- package/components/controls/phi-mask-picker-control.d.ts +20 -0
- package/components/controls/phi-mask-picker-control.js +93 -0
- package/components/controls/phi-media-asset-tile-control.d.ts +25 -0
- package/components/controls/phi-media-asset-tile-control.js +155 -0
- package/components/controls/phi-media-picker-control-contract.d.ts +5 -0
- package/components/controls/phi-media-picker-control-contract.js +10 -0
- package/components/controls/phi-media-picker-control.d.ts +50 -0
- package/components/controls/phi-media-picker-control.js +42 -0
- package/components/controls/phi-menu-control.d.ts +44 -0
- package/components/controls/phi-menu-control.js +71 -0
- package/components/controls/phi-modal-control.d.ts +12 -0
- package/components/controls/phi-modal-control.js +132 -0
- package/components/controls/phi-multi-select-control.d.ts +24 -0
- package/components/controls/phi-multi-select-control.js +26 -0
- package/components/controls/phi-number-control.d.ts +28 -0
- package/components/controls/phi-number-control.js +8 -0
- package/components/controls/phi-options-provider.d.ts +128 -0
- package/components/controls/phi-options-provider.js +295 -0
- package/components/controls/phi-options-revision.d.ts +35 -0
- package/components/controls/phi-options-revision.js +32 -0
- package/components/controls/phi-otp-control.d.ts +49 -0
- package/components/controls/phi-otp-control.js +28 -0
- package/components/controls/phi-overlay-control-contract.d.ts +40 -0
- package/components/controls/phi-overlay-control-contract.js +33 -0
- package/components/controls/phi-padding-control.d.ts +15 -0
- package/components/controls/phi-padding-control.js +87 -0
- package/components/controls/phi-pagination-control.d.ts +18 -0
- package/components/controls/phi-pagination-control.js +10 -0
- package/components/controls/phi-picker-control-contract.d.ts +8 -0
- package/components/controls/phi-picker-control-contract.js +15 -0
- package/components/controls/phi-placement-matrix-control.d.ts +11 -0
- package/components/controls/phi-placement-matrix-control.js +52 -0
- package/components/controls/phi-popover-control.d.ts +22 -0
- package/components/controls/phi-popover-control.js +14 -0
- package/components/controls/phi-preset-size-control.d.ts +15 -0
- package/components/controls/phi-preset-size-control.js +21 -0
- package/components/controls/phi-radio-group-control.d.ts +12 -0
- package/components/controls/phi-radio-group-control.js +10 -0
- package/components/controls/phi-rate-control-contract.d.ts +3 -0
- package/components/controls/phi-rate-control-contract.js +13 -0
- package/components/controls/phi-rate-control.d.ts +19 -0
- package/components/controls/phi-rate-control.js +11 -0
- package/components/controls/phi-segmented-control.d.ts +19 -0
- package/components/controls/phi-segmented-control.js +13 -0
- package/components/controls/phi-select-control.d.ts +38 -0
- package/components/controls/phi-select-control.js +63 -0
- package/components/controls/phi-shadow-control.d.ts +17 -0
- package/components/controls/phi-shadow-control.js +74 -0
- package/components/controls/phi-slider-control-contract.d.ts +2 -0
- package/components/controls/phi-slider-control-contract.js +1 -0
- package/components/controls/phi-slider-control.d.ts +21 -0
- package/components/controls/phi-slider-control.js +12 -0
- package/components/controls/phi-switch-control.d.ts +14 -0
- package/components/controls/phi-switch-control.js +7 -0
- package/components/controls/phi-table-control.d.ts +136 -0
- package/components/controls/phi-table-control.js +1016 -0
- package/components/controls/phi-table-control.module.css +16 -0
- package/components/controls/phi-tabs-control.d.ts +23 -0
- package/components/controls/phi-tabs-control.js +12 -0
- package/components/controls/phi-tag-control.d.ts +8 -0
- package/components/controls/phi-tag-control.js +6 -0
- package/components/controls/phi-text-control.d.ts +50 -0
- package/components/controls/phi-text-control.js +65 -0
- package/components/controls/phi-text-types.d.ts +1 -0
- package/components/controls/phi-text-types.js +1 -0
- package/components/controls/phi-toolbar-control.d.ts +30 -0
- package/components/controls/phi-toolbar-control.js +14 -0
- package/components/controls/phi-tree-control.d.ts +49 -0
- package/components/controls/phi-tree-control.js +157 -0
- package/components/controls/phi-tree-control.module.css +22 -0
- package/components/controls/phi-viewport-visibility-control.d.ts +12 -0
- package/components/controls/phi-viewport-visibility-control.js +26 -0
- package/components/controls/use-phi-color-control-presets.d.ts +12 -0
- package/components/controls/use-phi-color-control-presets.js +68 -0
- package/components/controls/use-phi-immediate-picker.d.ts +13 -0
- package/components/controls/use-phi-immediate-picker.js +90 -0
- package/components/forms/auth-admin-settings-forms.d.ts +15 -0
- package/components/forms/auth-admin-settings-forms.js +349 -0
- package/components/forms/auth-admin-settings-labels.d.ts +105 -0
- package/components/forms/auth-admin-settings-labels.js +180 -0
- package/components/forms/auth-form-provider-registry.d.ts +1 -0
- package/components/forms/auth-form-provider-registry.js +38 -0
- package/components/forms/auth-form-ui-provider.d.ts +4 -0
- package/components/forms/auth-form-ui-provider.js +7 -0
- package/components/forms/auth-installations-table-service.d.ts +3 -0
- package/components/forms/auth-installations-table-service.js +144 -0
- package/components/forms/auth-link-confirmation-contract.d.ts +7 -0
- package/components/forms/auth-link-confirmation-contract.js +8 -0
- package/components/forms/compound-form-controls.d.ts +3 -0
- package/components/forms/compound-form-controls.js +218 -0
- package/components/forms/contracts.d.ts +12 -0
- package/components/forms/contracts.js +1 -0
- package/components/forms/datetime-form-control.d.ts +7 -0
- package/components/forms/datetime-form-control.js +46 -0
- package/components/forms/extended-form-field-controls.d.ts +4 -0
- package/components/forms/extended-form-field-controls.js +23 -0
- package/components/forms/form-builder-controller-address.d.ts +5 -0
- package/components/forms/form-builder-controller-address.js +8 -0
- package/components/forms/form-builder-controller-definition.d.ts +17 -0
- package/components/forms/form-builder-controller-definition.js +19 -0
- package/components/forms/form-builder-controller-plugin.d.ts +17 -0
- package/components/forms/form-builder-controller-plugin.js +8 -0
- package/components/forms/form-descriptor-contract.d.ts +432 -0
- package/components/forms/form-descriptor-contract.js +565 -0
- package/components/forms/form-descriptor-runtime-client.d.ts +13 -0
- package/components/forms/form-descriptor-runtime-client.js +379 -0
- package/components/forms/form-guard-client.d.ts +8 -0
- package/components/forms/form-guard-client.js +15 -0
- package/components/forms/form-labels.d.ts +1 -0
- package/components/forms/form-labels.js +19 -0
- package/components/forms/form-provider-contract.d.ts +1021 -0
- package/components/forms/form-provider-contract.js +246 -0
- package/components/forms/form-provider-registry.d.ts +54 -0
- package/components/forms/form-provider-registry.js +34 -0
- package/components/forms/form-registry.d.ts +35 -0
- package/components/forms/form-registry.js +24 -0
- package/components/forms/form-resolution.d.ts +69 -0
- package/components/forms/form-resolution.js +83 -0
- package/components/forms/phi-form-widget-frame.d.ts +60 -0
- package/components/forms/phi-form-widget-frame.js +94 -0
- package/components/forms/runtime-form-binding.d.ts +15 -0
- package/components/forms/runtime-form-binding.js +106 -0
- package/components/forms/runtime-form-client.d.ts +46 -0
- package/components/forms/runtime-form-client.js +146 -0
- package/components/forms/runtime-form-controller-address.d.ts +4 -0
- package/components/forms/runtime-form-controller-address.js +7 -0
- package/components/forms/runtime-form-controller-definition.d.ts +115 -0
- package/components/forms/runtime-form-controller-definition.js +21 -0
- package/components/forms/runtime-form-controller-mount.d.ts +27 -0
- package/components/forms/runtime-form-controller-mount.js +168 -0
- package/components/forms/runtime-form-controller-plugin.d.ts +116 -0
- package/components/forms/runtime-form-controller-plugin.js +15 -0
- package/components/forms/runtime-form-controller-requirement.d.ts +15 -0
- package/components/forms/runtime-form-controller-requirement.js +31 -0
- package/components/forms/runtime-form-controller-signals.d.ts +114 -0
- package/components/forms/runtime-form-controller-signals.js +128 -0
- package/components/forms/runtime-form-state.d.ts +18 -0
- package/components/forms/runtime-form-state.js +26 -0
- package/components/forms/shared-form-descriptors.d.ts +500 -0
- package/components/forms/shared-form-descriptors.js +326 -0
- package/components/forms/shared-form-ids.d.ts +17 -0
- package/components/forms/shared-form-ids.js +19 -0
- package/components/forms/shared-form-plugins.d.ts +4 -0
- package/components/forms/shared-form-plugins.js +171 -0
- package/components/forms/shared-form-provider-registry.d.ts +1 -0
- package/components/forms/shared-form-provider-registry.js +244 -0
- package/components/layouts/clients/phi-base-layout-client.d.ts +18 -0
- package/components/layouts/clients/phi-base-layout-client.js +206 -0
- package/components/layouts/clients/phi-carousel-layout-client.d.ts +64 -0
- package/components/layouts/clients/phi-carousel-layout-client.js +138 -0
- package/components/layouts/clients/phi-collapsible-layout-client.d.ts +38 -0
- package/components/layouts/clients/phi-collapsible-layout-client.js +356 -0
- package/components/layouts/clients/phi-content-layout-client.d.ts +37 -0
- package/components/layouts/clients/phi-content-layout-client.js +65 -0
- package/components/layouts/clients/phi-flex-layout-client.d.ts +17 -0
- package/components/layouts/clients/phi-flex-layout-client.js +210 -0
- package/components/layouts/clients/phi-flex-vertical-layout-client.d.ts +10 -0
- package/components/layouts/clients/phi-flex-vertical-layout-client.js +116 -0
- package/components/layouts/clients/phi-grid-layout-client.d.ts +3 -0
- package/components/layouts/clients/phi-grid-layout-client.js +197 -0
- package/components/layouts/clients/phi-layout-anchored-overlay.d.ts +32 -0
- package/components/layouts/clients/phi-layout-anchored-overlay.js +85 -0
- package/components/layouts/clients/phi-sequence-slot-editor.d.ts +48 -0
- package/components/layouts/clients/phi-sequence-slot-editor.js +72 -0
- package/components/layouts/clients/phi-split-card-layout-client.d.ts +29 -0
- package/components/layouts/clients/phi-split-card-layout-client.js +83 -0
- package/components/layouts/clients/phi-stack-layout-client.d.ts +26 -0
- package/components/layouts/clients/phi-stack-layout-client.js +177 -0
- package/components/layouts/clients/phi-three-column-layout-client.d.ts +45 -0
- package/components/layouts/clients/phi-three-column-layout-client.js +111 -0
- package/components/layouts/layout-definitions.d.ts +1267 -0
- package/components/layouts/layout-definitions.js +436 -0
- package/components/layouts/layout-plugin-renderers.d.ts +8 -0
- package/components/layouts/layout-plugin-renderers.js +6 -0
- package/components/layouts/phi-base-layout.d.ts +3 -0
- package/components/layouts/phi-base-layout.js +128 -0
- package/components/layouts/phi-carousel-layout.d.ts +3 -0
- package/components/layouts/phi-carousel-layout.js +6 -0
- package/components/layouts/phi-collapsible-layout.d.ts +3 -0
- package/components/layouts/phi-collapsible-layout.js +6 -0
- package/components/layouts/phi-content-layout.d.ts +3 -0
- package/components/layouts/phi-content-layout.js +5 -0
- package/components/layouts/phi-flex-layout.d.ts +3 -0
- package/components/layouts/phi-flex-layout.js +5 -0
- package/components/layouts/phi-flex-vertical-layout.d.ts +3 -0
- package/components/layouts/phi-flex-vertical-layout.js +5 -0
- package/components/layouts/phi-grid-contract.d.ts +26 -0
- package/components/layouts/phi-grid-contract.js +14 -0
- package/components/layouts/phi-grid-layout.d.ts +3 -0
- package/components/layouts/phi-grid-layout.js +6 -0
- package/components/layouts/phi-layout-contract.d.ts +78 -0
- package/components/layouts/phi-layout-contract.js +119 -0
- package/components/layouts/phi-layout-scaffold-utils.d.ts +2 -0
- package/components/layouts/phi-layout-scaffold-utils.js +6 -0
- package/components/layouts/phi-layout-slot-state.d.ts +41 -0
- package/components/layouts/phi-layout-slot-state.js +63 -0
- package/components/layouts/phi-layout-view-model.d.ts +32 -0
- package/components/layouts/phi-layout-view-model.js +54 -0
- package/components/layouts/phi-masonry-layout.d.ts +10 -0
- package/components/layouts/phi-masonry-layout.js +28 -0
- package/components/layouts/phi-page-region-layout.d.ts +11 -0
- package/components/layouts/phi-page-region-layout.js +63 -0
- package/components/layouts/phi-split-card-layout.d.ts +3 -0
- package/components/layouts/phi-split-card-layout.js +5 -0
- package/components/layouts/phi-stack-layout.d.ts +3 -0
- package/components/layouts/phi-stack-layout.js +6 -0
- package/components/layouts/phi-structure-region-layout.d.ts +13 -0
- package/components/layouts/phi-structure-region-layout.js +53 -0
- package/components/layouts/phi-three-column-layout.d.ts +3 -0
- package/components/layouts/phi-three-column-layout.js +5 -0
- package/components/layouts/plugins/carousel-layout-plugin.d.ts +4 -0
- package/components/layouts/plugins/carousel-layout-plugin.js +46 -0
- package/components/layouts/plugins/collapsible-layout-plugin.d.ts +4 -0
- package/components/layouts/plugins/collapsible-layout-plugin.js +33 -0
- package/components/layouts/plugins/content-layout-plugin.d.ts +4 -0
- package/components/layouts/plugins/content-layout-plugin.js +12 -0
- package/components/layouts/plugins/flex-layout-plugin.d.ts +4 -0
- package/components/layouts/plugins/flex-layout-plugin.js +13 -0
- package/components/layouts/plugins/flex-vertical-layout-plugin.d.ts +4 -0
- package/components/layouts/plugins/flex-vertical-layout-plugin.js +13 -0
- package/components/layouts/plugins/grid-layout-plugin.d.ts +4 -0
- package/components/layouts/plugins/grid-layout-plugin.js +13 -0
- package/components/layouts/plugins/masonry-layout-plugin.d.ts +4 -0
- package/components/layouts/plugins/masonry-layout-plugin.js +12 -0
- package/components/layouts/plugins/page-region-layout-plugin.d.ts +5 -0
- package/components/layouts/plugins/page-region-layout-plugin.js +17 -0
- package/components/layouts/plugins/split-card-layout-plugin.d.ts +4 -0
- package/components/layouts/plugins/split-card-layout-plugin.js +13 -0
- package/components/layouts/plugins/stack-layout-plugin.d.ts +4 -0
- package/components/layouts/plugins/stack-layout-plugin.js +40 -0
- package/components/layouts/plugins/structure-region-layout-plugin.d.ts +5 -0
- package/components/layouts/plugins/structure-region-layout-plugin.js +18 -0
- package/components/layouts/plugins/three-column-layout-plugin.d.ts +4 -0
- package/components/layouts/plugins/three-column-layout-plugin.js +13 -0
- package/components/layouts/stack-signals.d.ts +21 -0
- package/components/layouts/stack-signals.js +36 -0
- package/components/layouts/use-phi-slot-sequence.d.ts +49 -0
- package/components/layouts/use-phi-slot-sequence.js +122 -0
- package/components/media/asset-collection-runtime.d.ts +14 -0
- package/components/media/asset-collection-runtime.js +139 -0
- package/components/media/asset-collection-service.d.ts +3 -0
- package/components/media/asset-collection-service.js +160 -0
- package/components/media/asset-controller-address.d.ts +5 -0
- package/components/media/asset-controller-address.js +8 -0
- package/components/media/asset-controller-definition.d.ts +121 -0
- package/components/media/asset-controller-definition.js +128 -0
- package/components/media/asset-controller-mount.d.ts +4 -0
- package/components/media/asset-controller-mount.js +6 -0
- package/components/media/asset-controller-plugin.d.ts +124 -0
- package/components/media/asset-controller-plugin.js +10 -0
- package/components/media/asset-controller-routes.d.ts +8 -0
- package/components/media/asset-controller-routes.js +31 -0
- package/components/media/asset-controller-signals.d.ts +17 -0
- package/components/media/asset-controller-signals.js +17 -0
- package/components/media/asset-form-field-providers.d.ts +9 -0
- package/components/media/asset-form-field-providers.js +11 -0
- package/components/media/asset-form-ui-provider.d.ts +4 -0
- package/components/media/asset-form-ui-provider.js +13 -0
- package/components/media/asset-inspector-addresses.d.ts +4 -0
- package/components/media/asset-inspector-addresses.js +30 -0
- package/components/media/asset-metadata-form.d.ts +243 -0
- package/components/media/asset-metadata-form.js +209 -0
- package/components/media/asset-options-providers.d.ts +3 -0
- package/components/media/asset-options-providers.js +69 -0
- package/components/media/background-asset-projection.d.ts +42 -0
- package/components/media/background-asset-projection.js +105 -0
- package/components/media/focal-rect.d.ts +38 -0
- package/components/media/focal-rect.js +123 -0
- package/components/media/image-presentation.d.ts +91 -0
- package/components/media/image-presentation.js +63 -0
- package/components/media/label-sets/media.d.ts +4 -0
- package/components/media/label-sets/media.js +217 -0
- package/components/media/media-settings-forms.d.ts +22 -0
- package/components/media/media-settings-forms.js +130 -0
- package/components/media/media-settings-labels.d.ts +40 -0
- package/components/media/media-settings-labels.js +76 -0
- package/components/media/media-space-selection.d.ts +42 -0
- package/components/media/media-space-selection.js +48 -0
- package/components/media/media-upload-flow.d.ts +162 -0
- package/components/media/media-upload-flow.js +302 -0
- package/components/media/media-widget-labels.d.ts +123 -0
- package/components/media/media-widget-labels.js +110 -0
- package/components/media/phi-area-upload-server.d.ts +7 -0
- package/components/media/phi-area-upload-server.js +13 -0
- package/components/media/phi-area-upload-widget.d.ts +18 -0
- package/components/media/phi-area-upload-widget.js +337 -0
- package/components/media/phi-asset-collection-view-binding.d.ts +9 -0
- package/components/media/phi-asset-collection-view-binding.js +245 -0
- package/components/media/phi-asset-focal-rect-server.d.ts +6 -0
- package/components/media/phi-asset-focal-rect-server.js +6 -0
- package/components/media/phi-asset-focal-rect-widget.d.ts +4 -0
- package/components/media/phi-asset-focal-rect-widget.js +268 -0
- package/components/media/phi-asset-folder-control.d.ts +16 -0
- package/components/media/phi-asset-folder-control.js +15 -0
- package/components/media/phi-asset-inspector-section.d.ts +13 -0
- package/components/media/phi-asset-inspector-section.js +135 -0
- package/components/media/phi-file-drop-guard.d.ts +1 -0
- package/components/media/phi-file-drop-guard.js +59 -0
- package/components/media/phi-image-inspector-server.d.ts +7 -0
- package/components/media/phi-image-inspector-server.js +18 -0
- package/components/media/phi-image-inspector-widget.d.ts +12 -0
- package/components/media/phi-image-inspector-widget.js +22 -0
- package/components/media/phi-image-preview-data.d.ts +30 -0
- package/components/media/phi-image-preview-data.js +89 -0
- package/components/media/phi-image-preview-grid-widget.d.ts +7 -0
- package/components/media/phi-image-preview-grid-widget.js +16 -0
- package/components/media/phi-image-preview-store.d.ts +59 -0
- package/components/media/phi-image-preview-store.js +143 -0
- package/components/media/phi-media-kind-icon.d.ts +9 -0
- package/components/media/phi-media-kind-icon.js +34 -0
- package/components/media/phi-media-picker-binding.d.ts +70 -0
- package/components/media/phi-media-picker-binding.js +197 -0
- package/components/media/phi-media-picker-server.d.ts +7 -0
- package/components/media/phi-media-picker-server.js +19 -0
- package/components/media/phi-media-picker-widget.d.ts +20 -0
- package/components/media/phi-media-picker-widget.js +9 -0
- package/components/media/phi-media-request-headers.d.ts +3 -0
- package/components/media/phi-media-request-headers.js +11 -0
- package/components/media/phi-media-restricted-icon.d.ts +8 -0
- package/components/media/phi-media-restricted-icon.js +12 -0
- package/components/media/phi-media-scope-controller.d.ts +20 -0
- package/components/media/phi-media-scope-controller.js +398 -0
- package/components/media/phi-media-upload.d.ts +91 -0
- package/components/media/phi-media-upload.js +148 -0
- package/components/media/phi-site-font-assets.d.ts +17 -0
- package/components/media/phi-site-font-assets.js +81 -0
- package/components/media/use-authoring-asset-details.d.ts +8 -0
- package/components/media/use-authoring-asset-details.js +61 -0
- package/components/menus/phi-account-menu.d.ts +54 -0
- package/components/menus/phi-account-menu.js +101 -0
- package/components/motion/phi-sequence-viewport.d.ts +44 -0
- package/components/motion/phi-sequence-viewport.js +157 -0
- package/components/navigation/phi-link.d.ts +11 -0
- package/components/navigation/phi-link.js +32 -0
- package/components/overlays/phi-overlay-container-client.d.ts +17 -0
- package/components/overlays/phi-overlay-container-client.js +170 -0
- package/components/regions/clients/cms-region-container-client.d.ts +19 -0
- package/components/regions/clients/cms-region-container-client.js +412 -0
- package/components/regions/phi-cms-region-container.d.ts +17 -0
- package/components/regions/phi-cms-region-container.js +39 -0
- package/components/regions/phi-cms-region-static.d.ts +15 -0
- package/components/regions/phi-cms-region-static.js +216 -0
- package/components/regions/presets/admin-dashboard-label-set.d.ts +22 -0
- package/components/regions/presets/admin-dashboard-label-set.js +50 -0
- package/components/regions/presets/admin-locales-label-set.d.ts +8 -0
- package/components/regions/presets/admin-locales-label-set.js +22 -0
- package/components/regions/presets/admin-logs-label-set.d.ts +8 -0
- package/components/regions/presets/admin-logs-label-set.js +22 -0
- package/components/regions/presets/admin-settings-label-set.d.ts +6 -0
- package/components/regions/presets/admin-settings-label-set.js +18 -0
- package/components/regions/presets/admin-users-label-set.d.ts +8 -0
- package/components/regions/presets/admin-users-label-set.js +22 -0
- package/components/regions/presets/builder-navigation-label-set.d.ts +35 -0
- package/components/regions/presets/builder-navigation-label-set.js +68 -0
- package/components/regions/presets/builder-settings-label-set.d.ts +17 -0
- package/components/regions/presets/builder-settings-label-set.js +34 -0
- package/components/regions/presets/clients/sider-context.d.ts +10 -0
- package/components/regions/presets/clients/sider-context.js +10 -0
- package/components/regions/presets/editor-label-set.d.ts +8 -0
- package/components/regions/presets/editor-label-set.js +22 -0
- package/components/regions/presets/editor-shell.d.ts +7 -0
- package/components/regions/presets/editor-shell.js +44 -0
- package/components/regions/presets/editor-translations-label-set.d.ts +8 -0
- package/components/regions/presets/editor-translations-label-set.js +22 -0
- package/components/regions/presets/navigation-redirect.d.ts +42 -0
- package/components/regions/presets/navigation-redirect.js +94 -0
- package/components/regions/presets/phi-area-root-redirect-tree.d.ts +30 -0
- package/components/regions/presets/phi-area-root-redirect-tree.js +33 -0
- package/components/regions/presets/phi-auth-area-overlay-tree.server.d.ts +8 -0
- package/components/regions/presets/phi-auth-area-overlay-tree.server.js +114 -0
- package/components/regions/presets/phi-auth-runtime-page-tree.d.ts +7 -0
- package/components/regions/presets/phi-auth-runtime-page-tree.js +57 -0
- package/components/regions/presets/phi-avatar-area-overlay-tree.d.ts +7 -0
- package/components/regions/presets/phi-avatar-area-overlay-tree.js +12 -0
- package/components/regions/presets/phi-avatar-area-overlay-tree.server.d.ts +14 -0
- package/components/regions/presets/phi-avatar-area-overlay-tree.server.js +104 -0
- package/components/regions/presets/phi-base-page-layout.d.ts +38 -0
- package/components/regions/presets/phi-base-page-layout.js +66 -0
- package/components/regions/presets/phi-builder-inspector-area-overlay-tree.d.ts +7 -0
- package/components/regions/presets/phi-builder-inspector-area-overlay-tree.js +12 -0
- package/components/regions/presets/phi-builder-inspector-area-overlay-tree.server.d.ts +20 -0
- package/components/regions/presets/phi-builder-inspector-area-overlay-tree.server.js +527 -0
- package/components/regions/presets/phi-builder-page-preset-version.d.ts +13 -0
- package/components/regions/presets/phi-builder-page-preset-version.js +13 -0
- package/components/regions/presets/phi-default-accounting-page-tree.d.ts +6 -0
- package/components/regions/presets/phi-default-accounting-page-tree.js +50 -0
- package/components/regions/presets/phi-default-admin-area-preset-tree.d.ts +6 -0
- package/components/regions/presets/phi-default-admin-area-preset-tree.js +252 -0
- package/components/regions/presets/phi-default-admin-auth-settings-page-tree.d.ts +6 -0
- package/components/regions/presets/phi-default-admin-auth-settings-page-tree.js +290 -0
- package/components/regions/presets/phi-default-admin-dashboard-page-tree.d.ts +6 -0
- package/components/regions/presets/phi-default-admin-dashboard-page-tree.js +181 -0
- package/components/regions/presets/phi-default-admin-groups-page-tree.d.ts +13 -0
- package/components/regions/presets/phi-default-admin-groups-page-tree.js +409 -0
- package/components/regions/presets/phi-default-admin-locales-page-tree.d.ts +7 -0
- package/components/regions/presets/phi-default-admin-locales-page-tree.js +264 -0
- package/components/regions/presets/phi-default-admin-logs-page-tree.d.ts +6 -0
- package/components/regions/presets/phi-default-admin-logs-page-tree.js +287 -0
- package/components/regions/presets/phi-default-admin-media-settings-page-tree.d.ts +6 -0
- package/components/regions/presets/phi-default-admin-media-settings-page-tree.js +94 -0
- package/components/regions/presets/phi-default-admin-settings-page-tree.d.ts +6 -0
- package/components/regions/presets/phi-default-admin-settings-page-tree.js +82 -0
- package/components/regions/presets/phi-default-admin-users-page-tree.d.ts +6 -0
- package/components/regions/presets/phi-default-admin-users-page-tree.js +568 -0
- package/components/regions/presets/phi-default-app-groups-page-tree.d.ts +14 -0
- package/components/regions/presets/phi-default-app-groups-page-tree.js +315 -0
- package/components/regions/presets/phi-default-app-profile-page-tree.d.ts +6 -0
- package/components/regions/presets/phi-default-app-profile-page-tree.js +29 -0
- package/components/regions/presets/phi-default-area-dashboard-page-tree.d.ts +9 -0
- package/components/regions/presets/phi-default-area-dashboard-page-tree.js +67 -0
- package/components/regions/presets/phi-default-builder-area-preset-tree.d.ts +131 -0
- package/components/regions/presets/phi-default-builder-area-preset-tree.js +3580 -0
- package/components/regions/presets/phi-default-builder-dashboard-page-tree.d.ts +6 -0
- package/components/regions/presets/phi-default-builder-dashboard-page-tree.js +112 -0
- package/components/regions/presets/phi-default-builder-settings-page-tree.d.ts +12 -0
- package/components/regions/presets/phi-default-builder-settings-page-tree.js +55 -0
- package/components/regions/presets/phi-default-editor-area-preset-tree.d.ts +6 -0
- package/components/regions/presets/phi-default-editor-area-preset-tree.js +253 -0
- package/components/regions/presets/phi-default-editor-translations-page-tree.d.ts +6 -0
- package/components/regions/presets/phi-default-editor-translations-page-tree.js +323 -0
- package/components/regions/presets/phi-default-pub-confirm-page-tree.d.ts +5 -0
- package/components/regions/presets/phi-default-pub-confirm-page-tree.js +175 -0
- package/components/regions/presets/phi-default-pub-contact-page-tree.d.ts +4 -0
- package/components/regions/presets/phi-default-pub-contact-page-tree.js +112 -0
- package/components/regions/presets/phi-default-pub-error-page-tree.d.ts +8 -0
- package/components/regions/presets/phi-default-pub-error-page-tree.js +128 -0
- package/components/regions/presets/phi-default-pub-home-page-tree.d.ts +10 -0
- package/components/regions/presets/phi-default-pub-home-page-tree.js +90 -0
- package/components/regions/presets/phi-default-pub-login-page-tree.d.ts +10 -0
- package/components/regions/presets/phi-default-pub-login-page-tree.js +111 -0
- package/components/regions/presets/phi-default-pub-registration-page-tree.d.ts +10 -0
- package/components/regions/presets/phi-default-pub-registration-page-tree.js +127 -0
- package/components/regions/presets/phi-default-pub-reset-password-page-tree.d.ts +5 -0
- package/components/regions/presets/phi-default-pub-reset-password-page-tree.js +159 -0
- package/components/regions/presets/phi-default-pub-terms-page-tree.d.ts +4 -0
- package/components/regions/presets/phi-default-pub-terms-page-tree.js +93 -0
- package/components/regions/presets/phi-default-pub-welcome-page-tree.d.ts +17 -0
- package/components/regions/presets/phi-default-pub-welcome-page-tree.js +110 -0
- package/components/regions/presets/phi-default-site-area-preset-tree.d.ts +11 -0
- package/components/regions/presets/phi-default-site-area-preset-tree.js +640 -0
- package/components/regions/presets/phi-login-form-nodes.d.ts +46 -0
- package/components/regions/presets/phi-login-form-nodes.js +210 -0
- package/components/regions/presets/phi-settings-page-shell-tree.d.ts +67 -0
- package/components/regions/presets/phi-settings-page-shell-tree.js +178 -0
- package/components/regions/presets/profile-label-set.d.ts +11 -0
- package/components/regions/presets/profile-label-set.js +28 -0
- package/components/regions/presets/pub.d.ts +2 -0
- package/components/regions/presets/pub.js +130 -0
- package/components/root/phi-config-provider.d.ts +45 -0
- package/components/root/phi-config-provider.js +64 -0
- package/components/root/phi-dayjs-locale.d.ts +12 -0
- package/components/root/phi-dayjs-locale.js +131 -0
- package/components/root/phi-root-background.d.ts +82 -0
- package/components/root/phi-root-background.js +216 -0
- package/components/root/phi-root-layout.d.ts +40 -0
- package/components/root/phi-root-layout.js +109 -0
- package/components/root/phi-root-live-theme-provider.d.ts +39 -0
- package/components/root/phi-root-live-theme-provider.js +169 -0
- package/components/root/phi-root-rem-provider.d.ts +7 -0
- package/components/root/phi-root-rem-provider.js +14 -0
- package/components/root/phi-root-theme-resolver.d.ts +26 -0
- package/components/root/phi-root-theme-resolver.js +85 -0
- package/components/root/phi-shell-chrome-overlay.d.ts +144 -0
- package/components/root/phi-shell-chrome-overlay.js +272 -0
- package/components/root/phi-theme-block-catalog-provider.d.ts +7 -0
- package/components/root/phi-theme-block-catalog-provider.js +22 -0
- package/components/runtime/accounting-base-controller-plugin.d.ts +1 -0
- package/components/runtime/accounting-base-controller-plugin.js +4 -0
- package/components/runtime/app-base-controller-plugin.d.ts +1 -0
- package/components/runtime/app-base-controller-plugin.js +4 -0
- package/components/runtime/area-base-controller-addresses.d.ts +23 -0
- package/components/runtime/area-base-controller-addresses.js +26 -0
- package/components/runtime/area-base-controller-client-factory.d.ts +2 -0
- package/components/runtime/area-base-controller-client-factory.js +8 -0
- package/components/runtime/area-base-controller-definitions.d.ts +106 -0
- package/components/runtime/area-base-controller-definitions.js +75 -0
- package/components/runtime/auth-controller-plugin.d.ts +1 -0
- package/components/runtime/auth-controller-plugin.js +172 -0
- package/components/runtime/auth-controller-server-definition.d.ts +62 -0
- package/components/runtime/auth-controller-server-definition.js +3 -0
- package/components/runtime/auth-overlay-ids.d.ts +23 -0
- package/components/runtime/auth-overlay-ids.js +27 -0
- package/components/runtime/authoring-region-overrides.d.ts +18 -0
- package/components/runtime/authoring-region-overrides.js +10 -0
- package/components/runtime/avatar-overlay-ids.d.ts +7 -0
- package/components/runtime/avatar-overlay-ids.js +19 -0
- package/components/runtime/client/phi-data-dnd.d.ts +14 -0
- package/components/runtime/client/phi-data-dnd.js +139 -0
- package/components/runtime/core-runtime-application-adapter.d.ts +1 -0
- package/components/runtime/core-runtime-application-adapter.js +67 -0
- package/components/runtime/core-runtime-controller-address.d.ts +12 -0
- package/components/runtime/core-runtime-controller-address.js +21 -0
- package/components/runtime/core-runtime-controller-definition.d.ts +72 -0
- package/components/runtime/core-runtime-controller-definition.js +84 -0
- package/components/runtime/core-runtime-controller-plugin.d.ts +74 -0
- package/components/runtime/core-runtime-controller-plugin.js +8 -0
- package/components/runtime/core-runtime-controller-snapshots.d.ts +6 -0
- package/components/runtime/core-runtime-controller-snapshots.js +14 -0
- package/components/runtime/mounted-runtime-controller.d.ts +6 -0
- package/components/runtime/mounted-runtime-controller.js +27 -0
- package/components/runtime/platform-runtime-controller-client-host.d.ts +4 -0
- package/components/runtime/platform-runtime-controller-client-host.js +15 -0
- package/components/runtime/public-base-controller-plugin.d.ts +1 -0
- package/components/runtime/public-base-controller-plugin.js +4 -0
- package/components/runtime/renderable-block-runtime.d.ts +50 -0
- package/components/runtime/renderable-block-runtime.js +517 -0
- package/components/runtime/runtime-condition-state-responder.d.ts +22 -0
- package/components/runtime/runtime-condition-state-responder.js +31 -0
- package/components/runtime/runtime-controller-client-factory.d.ts +2 -0
- package/components/runtime/runtime-controller-client-factory.js +8 -0
- package/components/runtime/runtime-controller-materialization.d.ts +25 -0
- package/components/runtime/runtime-controller-materialization.js +109 -0
- package/components/runtime/runtime-controller-server-host.d.ts +18 -0
- package/components/runtime/runtime-controller-server-host.js +76 -0
- package/components/runtime/runtime-module-authoring-client-host.d.ts +9 -0
- package/components/runtime/runtime-module-authoring-client-host.js +26 -0
- package/components/runtime/runtime-module-authoring-client-manifest.d.ts +9 -0
- package/components/runtime/runtime-module-authoring-client-manifest.js +14 -0
- package/components/runtime/runtime-module-authoring-host.d.ts +11 -0
- package/components/runtime/runtime-module-authoring-host.js +13 -0
- package/components/runtime/runtime-module-calendar-adapter-client-manifest.d.ts +10 -0
- package/components/runtime/runtime-module-calendar-adapter-client-manifest.js +49 -0
- package/components/runtime/runtime-module-context.d.ts +22 -0
- package/components/runtime/runtime-module-context.js +26 -0
- package/components/runtime/runtime-module-controller-client-host.d.ts +6 -0
- package/components/runtime/runtime-module-controller-client-host.js +13 -0
- package/components/runtime/runtime-module-controller-client-manifest.d.ts +17 -0
- package/components/runtime/runtime-module-controller-client-manifest.js +14 -0
- package/components/runtime/runtime-module-data-provider-client-manifest.d.ts +20 -0
- package/components/runtime/runtime-module-data-provider-client-manifest.js +45 -0
- package/components/runtime/runtime-module-data-provider-host.d.ts +6 -0
- package/components/runtime/runtime-module-data-provider-host.js +6 -0
- package/components/runtime/runtime-module-render-client-manifest.d.ts +27 -0
- package/components/runtime/runtime-module-render-client-manifest.js +40 -0
- package/components/runtime/runtime-page-condition-state.d.ts +8 -0
- package/components/runtime/runtime-page-condition-state.js +22 -0
- package/components/runtime/runtime-signal-bus.d.ts +22 -0
- package/components/runtime/runtime-signal-bus.js +311 -0
- package/components/runtime/runtime-signal-identity.d.ts +20 -0
- package/components/runtime/runtime-signal-identity.js +40 -0
- package/components/runtime/runtime-signal-partition.d.ts +42 -0
- package/components/runtime/runtime-signal-partition.js +70 -0
- package/components/runtime/runtime-signal-registry.d.ts +40 -0
- package/components/runtime/runtime-signal-registry.js +113 -0
- package/components/runtime/use-phi-application-feedback.d.ts +8 -0
- package/components/runtime/use-phi-application-feedback.js +36 -0
- package/components/shell/menu-items.d.ts +9 -0
- package/components/shell/menu-items.js +47 -0
- package/components/shell/phi-avatar.d.ts +36 -0
- package/components/shell/phi-avatar.js +35 -0
- package/components/shell/phi-builder-icon.d.ts +7 -0
- package/components/shell/phi-builder-icon.js +44 -0
- package/components/shell/phi-builder-motif-icon.d.ts +5 -0
- package/components/shell/phi-builder-motif-icon.js +28 -0
- package/components/shell/phi-cms-shell.d.ts +23 -0
- package/components/shell/phi-cms-shell.js +65 -0
- package/components/shell/phi-icon.d.ts +6 -0
- package/components/shell/phi-icon.js +127 -0
- package/components/shell/phi-locale-switch.d.ts +12 -0
- package/components/shell/phi-locale-switch.js +52 -0
- package/components/shell/phi-management-icon.d.ts +4 -0
- package/components/shell/phi-management-icon.js +59 -0
- package/components/shell/phi-nav-link.d.ts +11 -0
- package/components/shell/phi-nav-link.js +10 -0
- package/components/shell/phi-widget-icon.d.ts +6 -0
- package/components/shell/phi-widget-icon.js +33 -0
- package/components/shell/shell-types.d.ts +77 -0
- package/components/shell/shell-types.js +68 -0
- package/components/state/history-store.d.ts +33 -0
- package/components/state/history-store.js +97 -0
- package/components/state/plugin-state-store.d.ts +15 -0
- package/components/state/plugin-state-store.js +6 -0
- package/components/state/scoped-state-store.d.ts +14 -0
- package/components/state/scoped-state-store.js +142 -0
- package/components/tables/client/phi-static-table-resource-editor.d.ts +6 -0
- package/components/tables/client/phi-static-table-resource-editor.js +10 -0
- package/components/tables/client/phi-table-binding-control.d.ts +12 -0
- package/components/tables/client/phi-table-binding-control.js +43 -0
- package/components/tables/client/phi-table-binding.d.ts +42 -0
- package/components/tables/client/phi-table-binding.js +523 -0
- package/components/tables/phi-plain-table.d.ts +28 -0
- package/components/tables/phi-plain-table.js +17 -0
- package/components/tables/phi-plain-table.module.css +34 -0
- package/components/trees/client/phi-tree-binding.d.ts +35 -0
- package/components/trees/client/phi-tree-binding.js +206 -0
- package/components/widgets/area-menu-items.d.ts +16 -0
- package/components/widgets/area-menu-items.js +26 -0
- package/components/widgets/builder/command-toolbar-authoring-tools.d.ts +5 -0
- package/components/widgets/builder/command-toolbar-authoring-tools.js +41 -0
- package/components/widgets/builder/icon-editor.d.ts +10 -0
- package/components/widgets/builder/icon-editor.js +10 -0
- package/components/widgets/builder/internal-builder.d.ts +22 -0
- package/components/widgets/builder/internal-builder.js +8 -0
- package/components/widgets/builder/navigation-items.d.ts +3 -0
- package/components/widgets/builder/navigation-items.js +17 -0
- package/components/widgets/builder/phi-static-options-picker.d.ts +6 -0
- package/components/widgets/builder/phi-static-options-picker.js +200 -0
- package/components/widgets/builder/simple-text-editor.d.ts +39 -0
- package/components/widgets/builder/simple-text-editor.js +121 -0
- package/components/widgets/builder/stack-tabs.d.ts +3 -0
- package/components/widgets/builder/stack-tabs.js +7 -0
- package/components/widgets/builder/widget-editor-placeholder.d.ts +9 -0
- package/components/widgets/builder/widget-editor-placeholder.js +6 -0
- package/components/widgets/built-in/builder-workspace-preview.d.ts +3 -0
- package/components/widgets/built-in/builder-workspace-preview.js +30 -0
- package/components/widgets/built-in/widget-preview-client.d.ts +9 -0
- package/components/widgets/built-in/widget-preview-client.js +32 -0
- package/components/widgets/built-in/widget-preview.d.ts +7 -0
- package/components/widgets/built-in/widget-preview.js +18 -0
- package/components/widgets/client/account-preview.d.ts +1 -0
- package/components/widgets/client/account-preview.js +16 -0
- package/components/widgets/client/area-menu-preview.d.ts +5 -0
- package/components/widgets/client/area-menu-preview.js +18 -0
- package/components/widgets/client/auth-workflow-body.d.ts +8 -0
- package/components/widgets/client/auth-workflow-body.js +98 -0
- package/components/widgets/client/card-editor.d.ts +11 -0
- package/components/widgets/client/card-editor.js +46 -0
- package/components/widgets/client/collection-view-widget.d.ts +10 -0
- package/components/widgets/client/collection-view-widget.js +44 -0
- package/components/widgets/client/description-editor.d.ts +6 -0
- package/components/widgets/client/description-editor.js +130 -0
- package/components/widgets/client/external-document-editor.d.ts +7 -0
- package/components/widgets/client/external-document-editor.js +31 -0
- package/components/widgets/client/html-editor-bridge.d.ts +34 -0
- package/components/widgets/client/html-editor-bridge.js +75 -0
- package/components/widgets/client/html-editor-image-attributes.d.ts +28 -0
- package/components/widgets/client/html-editor-image-attributes.js +30 -0
- package/components/widgets/client/html-editor-image-node.d.ts +46 -0
- package/components/widgets/client/html-editor-image-node.js +286 -0
- package/components/widgets/client/html-editor.d.ts +11 -0
- package/components/widgets/client/html-editor.js +443 -0
- package/components/widgets/client/image-editor.d.ts +10 -0
- package/components/widgets/client/image-editor.js +100 -0
- package/components/widgets/client/markdown-editor-bridge.d.ts +7 -0
- package/components/widgets/client/markdown-editor-bridge.js +30 -0
- package/components/widgets/client/markdown-editor.d.ts +9 -0
- package/components/widgets/client/markdown-editor.js +80 -0
- package/components/widgets/client/phi-color-widget.d.ts +34 -0
- package/components/widgets/client/phi-color-widget.js +45 -0
- package/components/widgets/client/search.d.ts +15 -0
- package/components/widgets/client/search.js +78 -0
- package/components/widgets/client/shared/core-options-providers.d.ts +3 -0
- package/components/widgets/client/shared/core-options-providers.js +16 -0
- package/components/widgets/client/shared/core-table-providers.d.ts +3 -0
- package/components/widgets/client/shared/core-table-providers.js +13 -0
- package/components/widgets/client/shared/phi-button-icons.d.ts +2 -0
- package/components/widgets/client/shared/phi-button-icons.js +72 -0
- package/components/widgets/client/shared/phi-card-collection-view-binding.d.ts +9 -0
- package/components/widgets/client/shared/phi-card-collection-view-binding.js +106 -0
- package/components/widgets/client/shared/phi-choice-controller.d.ts +29 -0
- package/components/widgets/client/shared/phi-choice-controller.js +173 -0
- package/components/widgets/client/shared/phi-collection-provider.d.ts +43 -0
- package/components/widgets/client/shared/phi-collection-provider.js +73 -0
- package/components/widgets/client/shared/phi-collection-view-binding.d.ts +29 -0
- package/components/widgets/client/shared/phi-collection-view-binding.js +107 -0
- package/components/widgets/client/shared/phi-common-controls.d.ts +2 -0
- package/components/widgets/client/shared/phi-common-controls.js +5 -0
- package/components/widgets/client/shared/phi-control-badge.d.ts +16 -0
- package/components/widgets/client/shared/phi-control-badge.js +92 -0
- package/components/widgets/client/shared/phi-control-signals.d.ts +39 -0
- package/components/widgets/client/shared/phi-control-signals.js +185 -0
- package/components/widgets/client/shared/phi-input-signals.d.ts +29 -0
- package/components/widgets/client/shared/phi-input-signals.js +31 -0
- package/components/widgets/client/shared/phi-mask-picker.d.ts +13 -0
- package/components/widgets/client/shared/phi-mask-picker.js +161 -0
- package/components/widgets/client/shared/phi-static-table-provider.d.ts +42 -0
- package/components/widgets/client/shared/phi-static-table-provider.js +181 -0
- package/components/widgets/client/shared/phi-table-provider.d.ts +28 -0
- package/components/widgets/client/shared/phi-table-provider.js +85 -0
- package/components/widgets/client/shared/phi-tree-provider.d.ts +24 -0
- package/components/widgets/client/shared/phi-tree-provider.js +59 -0
- package/components/widgets/client/shared/phi-widget-icon-picker.d.ts +3 -0
- package/components/widgets/client/shared/phi-widget-icon-picker.js +8 -0
- package/components/widgets/client/shared/phi-widget-image-tool-button.d.ts +30 -0
- package/components/widgets/client/shared/phi-widget-image-tool-button.js +46 -0
- package/components/widgets/client/shared/phi-widget-scaffold-popup.d.ts +13 -0
- package/components/widgets/client/shared/phi-widget-scaffold-popup.js +47 -0
- package/components/widgets/client/shared/phi-widget-tool-buttons.d.ts +37 -0
- package/components/widgets/client/shared/phi-widget-tool-buttons.js +208 -0
- package/components/widgets/client/stack-tabs.d.ts +6 -0
- package/components/widgets/client/stack-tabs.js +40 -0
- package/components/widgets/client/use-table-provider-mutation.d.ts +1 -0
- package/components/widgets/client/use-table-provider-mutation.js +2 -0
- package/components/widgets/config/background-pattern-authoring.d.ts +72 -0
- package/components/widgets/config/background-pattern-authoring.js +47 -0
- package/components/widgets/config/background-pattern-contract.d.ts +57 -0
- package/components/widgets/config/background-pattern-contract.js +17 -0
- package/components/widgets/config/background-pattern-live.d.ts +33 -0
- package/components/widgets/config/background-pattern-live.js +193 -0
- package/components/widgets/config/background.d.ts +157 -0
- package/components/widgets/config/background.js +429 -0
- package/components/widgets/config/choice-shared.d.ts +140 -0
- package/components/widgets/config/choice-shared.js +72 -0
- package/components/widgets/config/color-picker-presets.d.ts +5 -0
- package/components/widgets/config/color-picker-presets.js +23 -0
- package/components/widgets/config/control-signal-config.d.ts +120 -0
- package/components/widgets/config/control-signal-config.js +117 -0
- package/components/widgets/config/geometry.d.ts +13 -0
- package/components/widgets/config/geometry.js +26 -0
- package/components/widgets/config/helpers.d.ts +20 -0
- package/components/widgets/config/helpers.js +28 -0
- package/components/widgets/config/image-source-parser.d.ts +4 -0
- package/components/widgets/config/image-source-parser.js +22 -0
- package/components/widgets/config/mask.d.ts +28 -0
- package/components/widgets/config/mask.js +197 -0
- package/components/widgets/config/parser-primitives.d.ts +11 -0
- package/components/widgets/config/parser-primitives.js +59 -0
- package/components/widgets/config/search-shared.d.ts +94 -0
- package/components/widgets/config/search-shared.js +53 -0
- package/components/widgets/config/spacing-options.d.ts +9 -0
- package/components/widgets/config/spacing-options.js +53 -0
- package/components/widgets/config/stack-tabs.d.ts +128 -0
- package/components/widgets/config/stack-tabs.js +51 -0
- package/components/widgets/helpers/background-reference-resolver.server.d.ts +17 -0
- package/components/widgets/helpers/background-reference-resolver.server.js +34 -0
- package/components/widgets/helpers/font-family.d.ts +4 -0
- package/components/widgets/helpers/font-family.js +19 -0
- package/components/widgets/helpers/font-size.d.ts +3 -0
- package/components/widgets/helpers/font-size.js +16 -0
- package/components/widgets/helpers/html-content.d.ts +3 -0
- package/components/widgets/helpers/html-content.js +86 -0
- package/components/widgets/helpers/html-internal-references.server.d.ts +8 -0
- package/components/widgets/helpers/html-internal-references.server.js +108 -0
- package/components/widgets/helpers/internal-reference-resolver.server.d.ts +21 -0
- package/components/widgets/helpers/internal-reference-resolver.server.js +63 -0
- package/components/widgets/helpers/semantic-html-translation.d.ts +2 -0
- package/components/widgets/helpers/semantic-html-translation.js +76 -0
- package/components/widgets/helpers/widget-source-url.d.ts +10 -0
- package/components/widgets/helpers/widget-source-url.js +20 -0
- package/components/widgets/inspector-field-row.d.ts +8 -0
- package/components/widgets/inspector-field-row.js +8 -0
- package/components/widgets/label-sets/account.d.ts +64 -0
- package/components/widgets/label-sets/account.js +117 -0
- package/components/widgets/label-sets/admin-locales.d.ts +55 -0
- package/components/widgets/label-sets/admin-locales.js +104 -0
- package/components/widgets/label-sets/admin-settings.d.ts +45 -0
- package/components/widgets/label-sets/admin-settings.js +82 -0
- package/components/widgets/label-sets/admin-users.d.ts +93 -0
- package/components/widgets/label-sets/admin-users.js +174 -0
- package/components/widgets/label-sets/avatar.d.ts +26 -0
- package/components/widgets/label-sets/avatar.js +54 -0
- package/components/widgets/label-sets/background.d.ts +4 -0
- package/components/widgets/label-sets/background.js +203 -0
- package/components/widgets/label-sets/border.d.ts +4 -0
- package/components/widgets/label-sets/border.js +83 -0
- package/components/widgets/label-sets/builder-chrome.d.ts +4 -0
- package/components/widgets/label-sets/builder-chrome.js +169 -0
- package/components/widgets/label-sets/builder-modules.d.ts +4 -0
- package/components/widgets/label-sets/builder-modules.js +143 -0
- package/components/widgets/label-sets/color-picker.d.ts +6 -0
- package/components/widgets/label-sets/color-picker.js +53 -0
- package/components/widgets/label-sets/common-controls.d.ts +6 -0
- package/components/widgets/label-sets/common-controls.js +30 -0
- package/components/widgets/label-sets/confirm.d.ts +57 -0
- package/components/widgets/label-sets/confirm.js +68 -0
- package/components/widgets/label-sets/contact.d.ts +35 -0
- package/components/widgets/label-sets/contact.js +62 -0
- package/components/widgets/label-sets/dimension.d.ts +4 -0
- package/components/widgets/label-sets/dimension.js +23 -0
- package/components/widgets/label-sets/editor-translations.d.ts +4 -0
- package/components/widgets/label-sets/editor-translations.js +100 -0
- package/components/widgets/label-sets/effects.d.ts +4 -0
- package/components/widgets/label-sets/effects.js +203 -0
- package/components/widgets/label-sets/footer.d.ts +8 -0
- package/components/widgets/label-sets/footer.js +22 -0
- package/components/widgets/label-sets/geometry.d.ts +4 -0
- package/components/widgets/label-sets/geometry.js +57 -0
- package/components/widgets/label-sets/hello-world.d.ts +17 -0
- package/components/widgets/label-sets/hello-world.js +40 -0
- package/components/widgets/label-sets/image.d.ts +4 -0
- package/components/widgets/label-sets/image.js +19 -0
- package/components/widgets/label-sets/inspector.d.ts +4 -0
- package/components/widgets/label-sets/inspector.js +43 -0
- package/components/widgets/label-sets/length.d.ts +4 -0
- package/components/widgets/label-sets/length.js +21 -0
- package/components/widgets/label-sets/markdown-toc.d.ts +4 -0
- package/components/widgets/label-sets/markdown-toc.js +17 -0
- package/components/widgets/label-sets/observability-logs.d.ts +51 -0
- package/components/widgets/label-sets/observability-logs.js +96 -0
- package/components/widgets/label-sets/page-title.d.ts +4 -0
- package/components/widgets/label-sets/page-title.js +19 -0
- package/components/widgets/label-sets/profile.d.ts +96 -0
- package/components/widgets/label-sets/profile.js +210 -0
- package/components/widgets/label-sets/region.d.ts +4 -0
- package/components/widgets/label-sets/region.js +93 -0
- package/components/widgets/label-sets/registration.d.ts +60 -0
- package/components/widgets/label-sets/registration.js +105 -0
- package/components/widgets/label-sets/reset-password.d.ts +50 -0
- package/components/widgets/label-sets/reset-password.js +96 -0
- package/components/widgets/label-sets/revisions.d.ts +4 -0
- package/components/widgets/label-sets/revisions.js +119 -0
- package/components/widgets/label-sets/runtime-options.d.ts +3 -0
- package/components/widgets/label-sets/runtime-options.js +8 -0
- package/components/widgets/label-sets/search.d.ts +4 -0
- package/components/widgets/label-sets/search.js +25 -0
- package/components/widgets/label-sets/signals.d.ts +4 -0
- package/components/widgets/label-sets/signals.js +89 -0
- package/components/widgets/label-sets/table.d.ts +4 -0
- package/components/widgets/label-sets/table.js +51 -0
- package/components/widgets/label-sets/tree.d.ts +4 -0
- package/components/widgets/label-sets/tree.js +16 -0
- package/components/widgets/label-types/background.d.ts +112 -0
- package/components/widgets/label-types/background.js +111 -0
- package/components/widgets/label-types/border.d.ts +42 -0
- package/components/widgets/label-types/border.js +41 -0
- package/components/widgets/label-types/builder-chrome.d.ts +96 -0
- package/components/widgets/label-types/builder-chrome.js +98 -0
- package/components/widgets/label-types/builder-modules.d.ts +68 -0
- package/components/widgets/label-types/builder-modules.js +76 -0
- package/components/widgets/label-types/color-picker.d.ts +21 -0
- package/components/widgets/label-types/color-picker.js +20 -0
- package/components/widgets/label-types/common-controls.d.ts +13 -0
- package/components/widgets/label-types/common-controls.js +31 -0
- package/components/widgets/label-types/dimension.d.ts +7 -0
- package/components/widgets/label-types/dimension.js +6 -0
- package/components/widgets/label-types/editor-translations.d.ts +53 -0
- package/components/widgets/label-types/editor-translations.js +1 -0
- package/components/widgets/label-types/effects.d.ts +106 -0
- package/components/widgets/label-types/effects.js +105 -0
- package/components/widgets/label-types/geometry.d.ts +28 -0
- package/components/widgets/label-types/geometry.js +27 -0
- package/components/widgets/label-types/image.d.ts +5 -0
- package/components/widgets/label-types/image.js +4 -0
- package/components/widgets/label-types/inspector.d.ts +18 -0
- package/components/widgets/label-types/inspector.js +17 -0
- package/components/widgets/label-types/length.d.ts +6 -0
- package/components/widgets/label-types/length.js +5 -0
- package/components/widgets/label-types/markdown-toc.d.ts +4 -0
- package/components/widgets/label-types/markdown-toc.js +3 -0
- package/components/widgets/label-types/padding.d.ts +15 -0
- package/components/widgets/label-types/padding.js +14 -0
- package/components/widgets/label-types/page-title.d.ts +5 -0
- package/components/widgets/label-types/page-title.js +4 -0
- package/components/widgets/label-types/region.d.ts +30 -0
- package/components/widgets/label-types/region.js +80 -0
- package/components/widgets/label-types/revisions.d.ts +61 -0
- package/components/widgets/label-types/revisions.js +59 -0
- package/components/widgets/label-types/search.d.ts +8 -0
- package/components/widgets/label-types/search.js +7 -0
- package/components/widgets/label-types/signals.d.ts +42 -0
- package/components/widgets/label-types/signals.js +41 -0
- package/components/widgets/label-types/table.d.ts +22 -0
- package/components/widgets/label-types/table.js +23 -0
- package/components/widgets/label-types/tree.d.ts +7 -0
- package/components/widgets/label-types/tree.js +6 -0
- package/components/widgets/login-redirect.d.ts +3 -0
- package/components/widgets/login-redirect.js +42 -0
- package/components/widgets/navigation-descriptor-resolver.server.d.ts +4 -0
- package/components/widgets/navigation-descriptor-resolver.server.js +118 -0
- package/components/widgets/plugins/stack-tabs-widget-plugin.d.ts +4 -0
- package/components/widgets/plugins/stack-tabs-widget-plugin.js +10 -0
- package/components/widgets/quick-links-items.d.ts +6 -0
- package/components/widgets/quick-links-items.js +32 -0
- package/components/widgets/server/builder-chrome.d.ts +7 -0
- package/components/widgets/server/builder-chrome.js +20 -0
- package/components/widgets/server/navigation-request.d.ts +5 -0
- package/components/widgets/server/navigation-request.js +49 -0
- package/components/widgets/server/search.d.ts +14 -0
- package/components/widgets/server/search.js +24 -0
- package/components/widgets/server/stack-tabs.d.ts +6 -0
- package/components/widgets/server/stack-tabs.js +6 -0
- package/components/widgets/shared/result-body-client.d.ts +16 -0
- package/components/widgets/shared/result-body-client.js +12 -0
- package/components/widgets/shared/result-body.d.ts +3 -0
- package/components/widgets/shared/result-body.js +16 -0
- package/components/widgets/signals/command-toolbar-address.d.ts +4 -0
- package/components/widgets/signals/command-toolbar-address.js +13 -0
- package/components/widgets/signals/control-signal-capabilities.d.ts +410 -0
- package/components/widgets/signals/control-signal-capabilities.js +291 -0
- package/components/widgets/signals/page-title-signals.d.ts +21 -0
- package/components/widgets/signals/page-title-signals.js +77 -0
- package/components/widgets/signals/renderable-block-signal-capabilities.d.ts +75 -0
- package/components/widgets/signals/renderable-block-signal-capabilities.js +91 -0
- package/components/widgets/signals/signal-endpoint-list.d.ts +8 -0
- package/components/widgets/signals/signal-endpoint-list.js +63 -0
- package/components/widgets/signals/signal-endpoints.d.ts +48 -0
- package/components/widgets/signals/signal-endpoints.js +203 -0
- package/components/workspace/catalog-state.d.ts +49 -0
- package/components/workspace/catalog-state.js +1 -0
- package/components/workspace/catalog-store.d.ts +10 -0
- package/components/workspace/catalog-store.js +35 -0
- package/constants/builder-navigation-dnd.d.ts +3 -0
- package/constants/builder-navigation-dnd.js +3 -0
- package/constants/cms-areas.d.ts +18 -0
- package/constants/cms-areas.js +85 -0
- package/constants/cms-layout-types.d.ts +191 -0
- package/constants/cms-layout-types.js +320 -0
- package/constants/cms-plugin-categories.d.ts +3 -0
- package/constants/cms-plugin-categories.js +18 -0
- package/constants/cms-registry.d.ts +4 -0
- package/constants/cms-registry.js +10 -0
- package/constants/cms-widget-types.d.ts +82 -0
- package/constants/cms-widget-types.js +201 -0
- package/constants/http-headers.d.ts +8 -0
- package/constants/http-headers.js +8 -0
- package/constants/media-library-provider-keys.d.ts +22 -0
- package/constants/media-library-provider-keys.js +23 -0
- package/constants/media.d.ts +54 -0
- package/constants/media.js +85 -0
- package/constants/module-identity.d.ts +41 -0
- package/constants/module-identity.js +85 -0
- package/constants/package.d.ts +11 -0
- package/constants/package.js +11 -0
- package/constants/phi-base-role-metadata.d.ts +30 -0
- package/constants/phi-base-role-metadata.js +10 -0
- package/constants/phi-base-roles.d.ts +1 -0
- package/constants/phi-base-roles.js +5 -0
- package/constants/phi-cms.d.ts +1 -0
- package/constants/phi-cms.js +13 -0
- package/constants/runtime-data-provider-key.d.ts +2 -0
- package/constants/runtime-data-provider-key.js +4 -0
- package/constants/runtime-module-categories.d.ts +1 -0
- package/constants/runtime-module-categories.js +11 -0
- package/constants/runtime-module-ownership.d.ts +14 -0
- package/constants/runtime-module-ownership.js +226 -0
- package/constants/runtime-render-client-types.d.ts +19 -0
- package/constants/runtime-render-client-types.js +21 -0
- package/constants/site-groups.d.ts +11 -0
- package/constants/site-groups.js +11 -0
- package/constants.d.ts +12 -0
- package/constants.js +12 -0
- package/control-config.d.ts +2 -0
- package/control-config.js +1 -0
- package/controls-date-time.d.ts +4 -0
- package/controls-date-time.js +3 -0
- package/controls.d.ts +102 -0
- package/controls.js +51 -0
- package/forms.d.ts +40 -0
- package/forms.js +21 -0
- package/gateway/addon-proxy.d.ts +24 -0
- package/gateway/addon-proxy.js +27 -0
- package/gateway/auth-proxy.d.ts +9 -0
- package/gateway/auth-proxy.js +12 -0
- package/gateway/auth-public-manifest.d.ts +27 -0
- package/gateway/auth-public-manifest.js +81 -0
- package/gateway/data-source-fetch.d.ts +12 -0
- package/gateway/data-source-fetch.js +46 -0
- package/gateway/data-source.d.ts +62 -0
- package/gateway/data-source.js +23 -0
- package/gateway/errors.d.ts +8 -0
- package/gateway/errors.js +18 -0
- package/gateway/form-handler-resolution.d.ts +32 -0
- package/gateway/form-handler-resolution.js +140 -0
- package/gateway/form-registry.d.ts +47 -0
- package/gateway/form-registry.js +149 -0
- package/gateway/form-submit.d.ts +51 -0
- package/gateway/form-submit.js +163 -0
- package/gateway/hook-proxy.d.ts +25 -0
- package/gateway/hook-proxy.js +28 -0
- package/gateway/internal-references.d.ts +29 -0
- package/gateway/internal-references.js +68 -0
- package/gateway/label-set.d.ts +42 -0
- package/gateway/label-set.js +67 -0
- package/gateway/media-proxy.d.ts +9 -0
- package/gateway/media-proxy.js +12 -0
- package/gateway/mutation-fetch.d.ts +5 -0
- package/gateway/mutation-fetch.js +71 -0
- package/gateway/mutation.d.ts +50 -0
- package/gateway/mutation.js +27 -0
- package/gateway/request-url.d.ts +7 -0
- package/gateway/request-url.js +20 -0
- package/gateway/server-capabilities.d.ts +7 -0
- package/gateway/server-capabilities.js +89 -0
- package/gateway/site-area.d.ts +39 -0
- package/gateway/site-area.js +154 -0
- package/gateway/site-auth-settings.d.ts +24 -0
- package/gateway/site-auth-settings.js +35 -0
- package/gateway/site-config.d.ts +100 -0
- package/gateway/site-config.js +82 -0
- package/gateway/site-form-route.d.ts +23 -0
- package/gateway/site-form-route.js +260 -0
- package/gateway/site-media-settings.d.ts +30 -0
- package/gateway/site-media-settings.js +36 -0
- package/gateway/site-nav.d.ts +31 -0
- package/gateway/site-nav.js +133 -0
- package/gateway/site-page.d.ts +38 -0
- package/gateway/site-page.js +151 -0
- package/gateway/site-proxy.d.ts +9 -0
- package/gateway/site-proxy.js +37 -0
- package/gateway/site-read-cache.d.ts +23 -0
- package/gateway/site-read-cache.js +56 -0
- package/gateway/site-settings.d.ts +17 -0
- package/gateway/site-settings.js +35 -0
- package/gateway/site-stats.d.ts +10 -0
- package/gateway/site-stats.js +35 -0
- package/gateway/site-theme.d.ts +11 -0
- package/gateway/site-theme.js +43 -0
- package/gateway/tr.d.ts +38 -0
- package/gateway/tr.js +244 -0
- package/gateway.d.ts +13 -0
- package/gateway.js +13 -0
- package/helpers/access.d.ts +13 -0
- package/helpers/access.js +52 -0
- package/helpers/antd-locale.d.ts +5 -0
- package/helpers/antd-locale.js +98 -0
- package/helpers/border-widget-style.d.ts +9 -0
- package/helpers/border-widget-style.js +27 -0
- package/helpers/brand-contact.d.ts +14 -0
- package/helpers/brand-contact.js +26 -0
- package/helpers/brand-wordmark.d.ts +2 -0
- package/helpers/brand-wordmark.js +13 -0
- package/helpers/cms-access-policy.d.ts +12 -0
- package/helpers/cms-access-policy.js +140 -0
- package/helpers/cms-area-config.d.ts +209 -0
- package/helpers/cms-area-config.js +248 -0
- package/helpers/cms-area-root-route.d.ts +59 -0
- package/helpers/cms-area-root-route.js +103 -0
- package/helpers/cms-config-field-validation.d.ts +11 -0
- package/helpers/cms-config-field-validation.js +86 -0
- package/helpers/cms-config-serialization.d.ts +71 -0
- package/helpers/cms-config-serialization.js +63 -0
- package/helpers/cms-container-chrome.d.ts +3 -0
- package/helpers/cms-container-chrome.js +32 -0
- package/helpers/cms-layout-defaults.d.ts +19 -0
- package/helpers/cms-layout-defaults.js +298 -0
- package/helpers/cms-layout-depth.d.ts +12 -0
- package/helpers/cms-layout-depth.js +48 -0
- package/helpers/cms-navigation-catalog.d.ts +50 -0
- package/helpers/cms-navigation-catalog.js +146 -0
- package/helpers/cms-navigation-scope-key.d.ts +8 -0
- package/helpers/cms-navigation-scope-key.js +16 -0
- package/helpers/cms-node-factories.d.ts +37 -0
- package/helpers/cms-node-factories.js +42 -0
- package/helpers/cms-node-visibility.d.ts +21 -0
- package/helpers/cms-node-visibility.js +68 -0
- package/helpers/cms-page-addresses.d.ts +32 -0
- package/helpers/cms-page-addresses.js +77 -0
- package/helpers/cms-page-catalog.d.ts +82 -0
- package/helpers/cms-page-catalog.js +324 -0
- package/helpers/cms-paths.d.ts +5 -0
- package/helpers/cms-paths.js +24 -0
- package/helpers/cms-preset-nodes.d.ts +41 -0
- package/helpers/cms-preset-nodes.js +55 -0
- package/helpers/cms-region-keys.d.ts +21 -0
- package/helpers/cms-region-keys.js +44 -0
- package/helpers/cms-routing.d.ts +4 -0
- package/helpers/cms-routing.js +9 -0
- package/helpers/cms-scope-search-params.d.ts +14 -0
- package/helpers/cms-scope-search-params.js +32 -0
- package/helpers/css-length.d.ts +1 -0
- package/helpers/css-length.js +10 -0
- package/helpers/external-href.d.ts +1 -0
- package/helpers/external-href.js +3 -0
- package/helpers/flags.d.ts +1 -0
- package/helpers/flags.js +3 -0
- package/helpers/format-date-time.d.ts +2 -0
- package/helpers/format-date-time.js +25 -0
- package/helpers/layout-authoring-markers.d.ts +28 -0
- package/helpers/layout-authoring-markers.js +33 -0
- package/helpers/layout-padding-field.d.ts +5 -0
- package/helpers/layout-padding-field.js +7 -0
- package/helpers/layout-style.d.ts +45 -0
- package/helpers/layout-style.js +92 -0
- package/helpers/locale.d.ts +23 -0
- package/helpers/locale.js +144 -0
- package/helpers/motion.d.ts +58 -0
- package/helpers/motion.js +76 -0
- package/helpers/nav-selection.d.ts +3 -0
- package/helpers/nav-selection.js +47 -0
- package/helpers/navigation-target.d.ts +13 -0
- package/helpers/navigation-target.js +17 -0
- package/helpers/phi-metadata.d.ts +50 -0
- package/helpers/phi-metadata.js +114 -0
- package/helpers/phi-seo.d.ts +86 -0
- package/helpers/phi-seo.js +138 -0
- package/helpers/phi-sitemap-cache.d.ts +16 -0
- package/helpers/phi-sitemap-cache.js +41 -0
- package/helpers/phis-runtime.d.ts +14 -0
- package/helpers/phis-runtime.js +17 -0
- package/helpers/phis-server-credentials.d.ts +14 -0
- package/helpers/phis-server-credentials.js +42 -0
- package/helpers/public-route-claims.d.ts +72 -0
- package/helpers/public-route-claims.js +59 -0
- package/helpers/renderable-block-defaults.d.ts +16 -0
- package/helpers/renderable-block-defaults.js +61 -0
- package/helpers/renderable-block-effects.d.ts +14 -0
- package/helpers/renderable-block-effects.js +192 -0
- package/helpers/renderable-block-plugin-fields.d.ts +3 -0
- package/helpers/renderable-block-plugin-fields.js +38 -0
- package/helpers/renderable-block-serialization.d.ts +8 -0
- package/helpers/renderable-block-serialization.js +654 -0
- package/helpers/runtime-module-route-path.d.ts +12 -0
- package/helpers/runtime-module-route-path.js +29 -0
- package/helpers/shell-region-style.d.ts +98 -0
- package/helpers/shell-region-style.js +242 -0
- package/helpers/signal-route-lifecycle.d.ts +14 -0
- package/helpers/signal-route-lifecycle.js +84 -0
- package/helpers/site-api.d.ts +25 -0
- package/helpers/site-api.js +51 -0
- package/helpers/site-locale-config.d.ts +23 -0
- package/helpers/site-locale-config.js +18 -0
- package/helpers/site-runtime.d.ts +27 -0
- package/helpers/site-runtime.js +79 -0
- package/helpers/site-structure.d.ts +13 -0
- package/helpers/site-structure.js +82 -0
- package/helpers/structure-widget-swap.d.ts +41 -0
- package/helpers/structure-widget-swap.js +88 -0
- package/helpers/table-binding.d.ts +10 -0
- package/helpers/table-binding.js +73 -0
- package/helpers/translation-cache.d.ts +76 -0
- package/helpers/translation-cache.js +129 -0
- package/helpers/translation-format.d.ts +3 -0
- package/helpers/translation-format.js +18 -0
- package/helpers/visibility.d.ts +2 -0
- package/helpers/visibility.js +9 -0
- package/helpers/widget-dimension-plugin-fields.d.ts +2 -0
- package/helpers/widget-dimension-plugin-fields.js +10 -0
- package/helpers.d.ts +23 -0
- package/helpers.js +23 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/layouts.d.ts +20 -0
- package/layouts.js +10 -0
- package/media.d.ts +11 -0
- package/media.js +13 -0
- package/module-authoring-client.d.ts +10 -0
- package/module-authoring-client.js +5 -0
- package/module-client.d.ts +31 -0
- package/module-client.js +11 -0
- package/module-projection-authoring-client.d.ts +15 -0
- package/module-projection-authoring-client.js +27 -0
- package/module-projection-client.d.ts +7 -0
- package/module-projection-client.js +35 -0
- package/module-projection.d.ts +19 -0
- package/module-projection.js +31 -0
- package/module.d.ts +61 -0
- package/module.js +46 -0
- package/navigation.d.ts +12 -0
- package/navigation.js +7 -0
- package/net/log.d.ts +5 -0
- package/net/log.js +123 -0
- package/net/phi-next-proxy.d.ts +34 -0
- package/net/phi-next-proxy.js +149 -0
- package/net.d.ts +1 -0
- package/net.js +1 -0
- package/next/area-route.d.ts +136 -0
- package/next/area-route.js +217 -0
- package/next/areas/accounting-client.d.ts +13 -0
- package/next/areas/accounting-client.js +24 -0
- package/next/areas/accounting.d.ts +10 -0
- package/next/areas/accounting.js +15 -0
- package/next/areas/admin-client.d.ts +13 -0
- package/next/areas/admin-client.js +24 -0
- package/next/areas/admin.d.ts +10 -0
- package/next/areas/admin.js +15 -0
- package/next/areas/app-client.d.ts +13 -0
- package/next/areas/app-client.js +24 -0
- package/next/areas/app.d.ts +10 -0
- package/next/areas/app.js +15 -0
- package/next/areas/builder-client.d.ts +18 -0
- package/next/areas/builder-client.js +33 -0
- package/next/areas/builder.d.ts +10 -0
- package/next/areas/builder.js +21 -0
- package/next/areas/editor-client.d.ts +13 -0
- package/next/areas/editor-client.js +24 -0
- package/next/areas/editor.d.ts +10 -0
- package/next/areas/editor.js +15 -0
- package/next/areas/public-client.d.ts +13 -0
- package/next/areas/public-client.js +24 -0
- package/next/areas/public.d.ts +10 -0
- package/next/areas/public.js +15 -0
- package/next/cache-handler.mjs +95 -0
- package/next/module-diagnostics-route.d.ts +37 -0
- package/next/module-diagnostics-route.js +64 -0
- package/next/navigation-target-route.d.ts +8 -0
- package/next/navigation-target-route.js +216 -0
- package/next/proxy-runtime.d.ts +19 -0
- package/next/proxy-runtime.js +52 -0
- package/next/root-route.d.ts +31 -0
- package/next/root-route.js +160 -0
- package/next/runtime-module-client-boundary.d.ts +13 -0
- package/next/runtime-module-client-boundary.js +11 -0
- package/next/seo-routes.d.ts +25 -0
- package/next/seo-routes.js +220 -0
- package/next/site-bridge.d.ts +3 -0
- package/next/site-bridge.js +25 -0
- package/next/site-proxy.d.ts +4 -0
- package/next/site-proxy.js +182 -0
- package/package.json +508 -0
- package/plugins/factories/widget-builder-plugin.d.ts +4 -0
- package/plugins/factories/widget-builder-plugin.js +9 -0
- package/plugins/factories/widget-renderers.d.ts +10 -0
- package/plugins/factories/widget-renderers.js +11 -0
- package/plugins/registries/runtime-controller-core.d.ts +25 -0
- package/plugins/registries/runtime-controller-core.js +50 -0
- package/plugins/registries/runtime-controllers.d.ts +3 -0
- package/plugins/registries/runtime-controllers.js +35 -0
- package/plugins/runtime/layout-plugin-resolution.d.ts +4 -0
- package/plugins/runtime/layout-plugin-resolution.js +9 -0
- package/plugins/runtime/phi-slot-child-effects-visibility-observer.d.ts +3 -0
- package/plugins/runtime/phi-slot-child-effects-visibility-observer.js +67 -0
- package/plugins/runtime/phi-slot-child-frame-client.d.ts +2 -0
- package/plugins/runtime/phi-slot-child-frame-client.js +72 -0
- package/plugins/runtime/phi-slot-child-frame-view.d.ts +26 -0
- package/plugins/runtime/phi-slot-child-frame-view.js +91 -0
- package/plugins/runtime/phi-slot-child-frame.d.ts +27 -0
- package/plugins/runtime/phi-slot-child-frame.js +26 -0
- package/plugins/runtime/phi-slot-child-viewport-effects-observer.d.ts +4 -0
- package/plugins/runtime/phi-slot-child-viewport-effects-observer.js +160 -0
- package/plugins/runtime/slot-size-policy.d.ts +52 -0
- package/plugins/runtime/slot-size-policy.js +176 -0
- package/plugins/runtime-modules/accounting/authoring.d.ts +1 -0
- package/plugins/runtime-modules/accounting/authoring.js +4 -0
- package/plugins/runtime-modules/accounting/client.d.ts +1 -0
- package/plugins/runtime-modules/accounting/client.js +7 -0
- package/plugins/runtime-modules/accounting/definition.d.ts +15 -0
- package/plugins/runtime-modules/accounting/definition.js +17 -0
- package/plugins/runtime-modules/accounting/ids.d.ts +1 -0
- package/plugins/runtime-modules/accounting/ids.js +2 -0
- package/plugins/runtime-modules/accounting/module.d.ts +1 -0
- package/plugins/runtime-modules/accounting/module.js +4 -0
- package/plugins/runtime-modules/accounting/server.d.ts +5 -0
- package/plugins/runtime-modules/accounting/server.js +18 -0
- package/plugins/runtime-modules/admin/authoring-widgets.d.ts +2 -0
- package/plugins/runtime-modules/admin/authoring-widgets.js +3 -0
- package/plugins/runtime-modules/admin/authoring.d.ts +1 -0
- package/plugins/runtime-modules/admin/authoring.js +8 -0
- package/plugins/runtime-modules/admin/client.d.ts +1 -0
- package/plugins/runtime-modules/admin/client.js +7 -0
- package/plugins/runtime-modules/admin/controller/address.d.ts +5 -0
- package/plugins/runtime-modules/admin/controller/address.js +8 -0
- package/plugins/runtime-modules/admin/controller/client.d.ts +18 -0
- package/plugins/runtime-modules/admin/controller/client.js +8 -0
- package/plugins/runtime-modules/admin/controller/definition.d.ts +16 -0
- package/plugins/runtime-modules/admin/controller/definition.js +13 -0
- package/plugins/runtime-modules/admin/definition.d.ts +32 -0
- package/plugins/runtime-modules/admin/definition.js +19 -0
- package/plugins/runtime-modules/admin/forms.d.ts +22 -0
- package/plugins/runtime-modules/admin/forms.js +126 -0
- package/plugins/runtime-modules/admin/ids.d.ts +1 -0
- package/plugins/runtime-modules/admin/ids.js +2 -0
- package/plugins/runtime-modules/admin/module.d.ts +45 -0
- package/plugins/runtime-modules/admin/module.js +6 -0
- package/plugins/runtime-modules/admin/presets.d.ts +33 -0
- package/plugins/runtime-modules/admin/presets.js +55 -0
- package/plugins/runtime-modules/admin/server.d.ts +1 -0
- package/plugins/runtime-modules/admin/server.js +17 -0
- package/plugins/runtime-modules/admin/widgets.d.ts +7 -0
- package/plugins/runtime-modules/admin/widgets.js +6 -0
- package/plugins/runtime-modules/app/authoring.d.ts +1 -0
- package/plugins/runtime-modules/app/authoring.js +4 -0
- package/plugins/runtime-modules/app/client.d.ts +1 -0
- package/plugins/runtime-modules/app/client.js +7 -0
- package/plugins/runtime-modules/app/definition.d.ts +15 -0
- package/plugins/runtime-modules/app/definition.js +17 -0
- package/plugins/runtime-modules/app/ids.d.ts +1 -0
- package/plugins/runtime-modules/app/ids.js +2 -0
- package/plugins/runtime-modules/app/module.d.ts +1 -0
- package/plugins/runtime-modules/app/module.js +4 -0
- package/plugins/runtime-modules/app/server.d.ts +5 -0
- package/plugins/runtime-modules/app/server.js +18 -0
- package/plugins/runtime-modules/area-base-authoring.d.ts +4 -0
- package/plugins/runtime-modules/area-base-authoring.js +10 -0
- package/plugins/runtime-modules/area-base-definition.d.ts +20 -0
- package/plugins/runtime-modules/area-base-definition.js +17 -0
- package/plugins/runtime-modules/area-base-module.d.ts +3 -0
- package/plugins/runtime-modules/area-base-module.js +3 -0
- package/plugins/runtime-modules/area-base-presets.d.ts +112 -0
- package/plugins/runtime-modules/area-base-presets.js +181 -0
- package/plugins/runtime-modules/area-catalogs/accounting.d.ts +9 -0
- package/plugins/runtime-modules/area-catalogs/accounting.js +17 -0
- package/plugins/runtime-modules/area-catalogs/admin.d.ts +9 -0
- package/plugins/runtime-modules/area-catalogs/admin.js +17 -0
- package/plugins/runtime-modules/area-catalogs/app.d.ts +9 -0
- package/plugins/runtime-modules/area-catalogs/app.js +17 -0
- package/plugins/runtime-modules/area-catalogs/editor.d.ts +9 -0
- package/plugins/runtime-modules/area-catalogs/editor.js +17 -0
- package/plugins/runtime-modules/area-catalogs/public.d.ts +9 -0
- package/plugins/runtime-modules/area-catalogs/public.js +17 -0
- package/plugins/runtime-modules/area-contributions/accounting.d.ts +1 -0
- package/plugins/runtime-modules/area-contributions/accounting.js +8 -0
- package/plugins/runtime-modules/area-contributions/admin.d.ts +1 -0
- package/plugins/runtime-modules/area-contributions/admin.js +18 -0
- package/plugins/runtime-modules/area-contributions/app.d.ts +1 -0
- package/plugins/runtime-modules/area-contributions/app.js +14 -0
- package/plugins/runtime-modules/area-contributions/builder.d.ts +1 -0
- package/plugins/runtime-modules/area-contributions/builder.js +36 -0
- package/plugins/runtime-modules/area-contributions/common.d.ts +2 -0
- package/plugins/runtime-modules/area-contributions/common.js +9 -0
- package/plugins/runtime-modules/area-contributions/editor.d.ts +1 -0
- package/plugins/runtime-modules/area-contributions/editor.js +10 -0
- package/plugins/runtime-modules/area-contributions/public.d.ts +1 -0
- package/plugins/runtime-modules/area-contributions/public.js +8 -0
- package/plugins/runtime-modules/area-contributions-controller-client.d.ts +9 -0
- package/plugins/runtime-modules/area-contributions-controller-client.js +19 -0
- package/plugins/runtime-modules/area-contributions.d.ts +28 -0
- package/plugins/runtime-modules/area-contributions.js +149 -0
- package/plugins/runtime-modules/area-definitions.d.ts +688 -0
- package/plugins/runtime-modules/area-definitions.js +244 -0
- package/plugins/runtime-modules/area-root-route.d.ts +29 -0
- package/plugins/runtime-modules/area-root-route.js +42 -0
- package/plugins/runtime-modules/asset/authoring-widgets.d.ts +2 -0
- package/plugins/runtime-modules/asset/authoring-widgets.js +12 -0
- package/plugins/runtime-modules/asset/authoring.d.ts +1 -0
- package/plugins/runtime-modules/asset/authoring.js +8 -0
- package/plugins/runtime-modules/asset/client-data-providers.d.ts +7 -0
- package/plugins/runtime-modules/asset/client-data-providers.js +17 -0
- package/plugins/runtime-modules/asset/client.d.ts +1 -0
- package/plugins/runtime-modules/asset/client.js +7 -0
- package/plugins/runtime-modules/asset/data-providers.d.ts +60 -0
- package/plugins/runtime-modules/asset/data-providers.js +54 -0
- package/plugins/runtime-modules/asset/definition.d.ts +112 -0
- package/plugins/runtime-modules/asset/definition.js +32 -0
- package/plugins/runtime-modules/asset/ids.d.ts +10 -0
- package/plugins/runtime-modules/asset/ids.js +12 -0
- package/plugins/runtime-modules/asset/module.d.ts +231 -0
- package/plugins/runtime-modules/asset/module.js +6 -0
- package/plugins/runtime-modules/asset/presets.d.ts +174 -0
- package/plugins/runtime-modules/asset/presets.js +53 -0
- package/plugins/runtime-modules/asset/server.d.ts +5 -0
- package/plugins/runtime-modules/asset/server.js +29 -0
- package/plugins/runtime-modules/asset/widgets/area-upload/authoring.d.ts +3 -0
- package/plugins/runtime-modules/asset/widgets/area-upload/authoring.js +8 -0
- package/plugins/runtime-modules/asset/widgets/area-upload/config.d.ts +49 -0
- package/plugins/runtime-modules/asset/widgets/area-upload/config.js +54 -0
- package/plugins/runtime-modules/asset/widgets/area-upload/plugin.d.ts +5 -0
- package/plugins/runtime-modules/asset/widgets/area-upload/plugin.js +10 -0
- package/plugins/runtime-modules/asset/widgets/asset-focal-rect/authoring.d.ts +3 -0
- package/plugins/runtime-modules/asset/widgets/asset-focal-rect/authoring.js +8 -0
- package/plugins/runtime-modules/asset/widgets/asset-focal-rect/config.d.ts +39 -0
- package/plugins/runtime-modules/asset/widgets/asset-focal-rect/config.js +41 -0
- package/plugins/runtime-modules/asset/widgets/asset-focal-rect/plugin.d.ts +5 -0
- package/plugins/runtime-modules/asset/widgets/asset-focal-rect/plugin.js +10 -0
- package/plugins/runtime-modules/asset/widgets/image-inspector/authoring.d.ts +3 -0
- package/plugins/runtime-modules/asset/widgets/image-inspector/authoring.js +8 -0
- package/plugins/runtime-modules/asset/widgets/image-inspector/config.d.ts +41 -0
- package/plugins/runtime-modules/asset/widgets/image-inspector/config.js +42 -0
- package/plugins/runtime-modules/asset/widgets/image-inspector/plugin.d.ts +5 -0
- package/plugins/runtime-modules/asset/widgets/image-inspector/plugin.js +10 -0
- package/plugins/runtime-modules/asset/widgets/media-picker/authoring.d.ts +3 -0
- package/plugins/runtime-modules/asset/widgets/media-picker/authoring.js +8 -0
- package/plugins/runtime-modules/asset/widgets/media-picker/config.d.ts +98 -0
- package/plugins/runtime-modules/asset/widgets/media-picker/config.js +90 -0
- package/plugins/runtime-modules/asset/widgets/media-picker/plugin.d.ts +5 -0
- package/plugins/runtime-modules/asset/widgets/media-picker/plugin.js +10 -0
- package/plugins/runtime-modules/asset/widgets.d.ts +2 -0
- package/plugins/runtime-modules/asset/widgets.js +38 -0
- package/plugins/runtime-modules/auth/authoring-widgets.d.ts +2 -0
- package/plugins/runtime-modules/auth/authoring-widgets.js +16 -0
- package/plugins/runtime-modules/auth/authoring.d.ts +1 -0
- package/plugins/runtime-modules/auth/authoring.js +8 -0
- package/plugins/runtime-modules/auth/client-data-providers.d.ts +7 -0
- package/plugins/runtime-modules/auth/client-data-providers.js +11 -0
- package/plugins/runtime-modules/auth/client.d.ts +1 -0
- package/plugins/runtime-modules/auth/client.js +7 -0
- package/plugins/runtime-modules/auth/data-providers.d.ts +65 -0
- package/plugins/runtime-modules/auth/data-providers.js +51 -0
- package/plugins/runtime-modules/auth/definition.d.ts +294 -0
- package/plugins/runtime-modules/auth/definition.js +35 -0
- package/plugins/runtime-modules/auth/features.d.ts +18 -0
- package/plugins/runtime-modules/auth/features.js +26 -0
- package/plugins/runtime-modules/auth/ids.d.ts +11 -0
- package/plugins/runtime-modules/auth/ids.js +13 -0
- package/plugins/runtime-modules/auth/module.d.ts +1 -0
- package/plugins/runtime-modules/auth/module.js +4 -0
- package/plugins/runtime-modules/auth/presets.d.ts +98 -0
- package/plugins/runtime-modules/auth/presets.js +167 -0
- package/plugins/runtime-modules/auth/server.d.ts +15 -0
- package/plugins/runtime-modules/auth/server.js +42 -0
- package/plugins/runtime-modules/auth/ui-provider.d.ts +2 -0
- package/plugins/runtime-modules/auth/ui-provider.js +29 -0
- package/plugins/runtime-modules/auth/widgets/auth-methods/authoring.d.ts +7 -0
- package/plugins/runtime-modules/auth/widgets/auth-methods/authoring.js +12 -0
- package/plugins/runtime-modules/auth/widgets/auth-methods/client.d.ts +12 -0
- package/plugins/runtime-modules/auth/widgets/auth-methods/client.js +59 -0
- package/plugins/runtime-modules/auth/widgets/auth-methods/config.d.ts +23 -0
- package/plugins/runtime-modules/auth/widgets/auth-methods/config.js +18 -0
- package/plugins/runtime-modules/auth/widgets/auth-methods/plugin.d.ts +3 -0
- package/plugins/runtime-modules/auth/widgets/auth-methods/plugin.js +11 -0
- package/plugins/runtime-modules/auth/widgets/auth-methods/server.d.ts +13 -0
- package/plugins/runtime-modules/auth/widgets/auth-methods/server.js +44 -0
- package/plugins/runtime-modules/auth/widgets/auth-workflow/authoring.d.ts +7 -0
- package/plugins/runtime-modules/auth/widgets/auth-workflow/authoring.js +12 -0
- package/plugins/runtime-modules/auth/widgets/auth-workflow/client.d.ts +5 -0
- package/plugins/runtime-modules/auth/widgets/auth-workflow/client.js +67 -0
- package/plugins/runtime-modules/auth/widgets/auth-workflow/config.d.ts +49 -0
- package/plugins/runtime-modules/auth/widgets/auth-workflow/config.js +51 -0
- package/plugins/runtime-modules/auth/widgets/auth-workflow/plugin.d.ts +3 -0
- package/plugins/runtime-modules/auth/widgets/auth-workflow/plugin.js +12 -0
- package/plugins/runtime-modules/auth/widgets/logout/authoring.d.ts +3 -0
- package/plugins/runtime-modules/auth/widgets/logout/authoring.js +8 -0
- package/plugins/runtime-modules/auth/widgets/logout/client.d.ts +4 -0
- package/plugins/runtime-modules/auth/widgets/logout/client.js +49 -0
- package/plugins/runtime-modules/auth/widgets/logout/config.d.ts +13 -0
- package/plugins/runtime-modules/auth/widgets/logout/config.js +14 -0
- package/plugins/runtime-modules/auth/widgets/logout/plugin.d.ts +3 -0
- package/plugins/runtime-modules/auth/widgets/logout/plugin.js +9 -0
- package/plugins/runtime-modules/auth/widgets/logout/server.d.ts +7 -0
- package/plugins/runtime-modules/auth/widgets/logout/server.js +6 -0
- package/plugins/runtime-modules/auth/widgets/security/authoring.d.ts +3 -0
- package/plugins/runtime-modules/auth/widgets/security/authoring.js +8 -0
- package/plugins/runtime-modules/auth/widgets/security/client.d.ts +3 -0
- package/plugins/runtime-modules/auth/widgets/security/client.js +104 -0
- package/plugins/runtime-modules/auth/widgets/security/config.d.ts +13 -0
- package/plugins/runtime-modules/auth/widgets/security/config.js +14 -0
- package/plugins/runtime-modules/auth/widgets/security/plugin.d.ts +3 -0
- package/plugins/runtime-modules/auth/widgets/security/plugin.js +9 -0
- package/plugins/runtime-modules/auth/widgets/security/server.d.ts +8 -0
- package/plugins/runtime-modules/auth/widgets/security/server.js +6 -0
- package/plugins/runtime-modules/auth/widgets.d.ts +2 -0
- package/plugins/runtime-modules/auth/widgets.js +46 -0
- package/plugins/runtime-modules/authoring-contributions-client.d.ts +9 -0
- package/plugins/runtime-modules/authoring-contributions-client.js +19 -0
- package/plugins/runtime-modules/avatar/authoring-widgets.d.ts +2 -0
- package/plugins/runtime-modules/avatar/authoring-widgets.js +8 -0
- package/plugins/runtime-modules/avatar/authoring.d.ts +1 -0
- package/plugins/runtime-modules/avatar/authoring.js +8 -0
- package/plugins/runtime-modules/avatar/client.d.ts +0 -0
- package/plugins/runtime-modules/avatar/client.js +2 -0
- package/plugins/runtime-modules/avatar/definition.d.ts +27 -0
- package/plugins/runtime-modules/avatar/definition.js +26 -0
- package/plugins/runtime-modules/avatar/ids.d.ts +1 -0
- package/plugins/runtime-modules/avatar/ids.js +2 -0
- package/plugins/runtime-modules/avatar/module.d.ts +20 -0
- package/plugins/runtime-modules/avatar/module.js +9 -0
- package/plugins/runtime-modules/avatar/presets.d.ts +23 -0
- package/plugins/runtime-modules/avatar/presets.js +23 -0
- package/plugins/runtime-modules/avatar/server.d.ts +1 -0
- package/plugins/runtime-modules/avatar/server.js +22 -0
- package/plugins/runtime-modules/avatar/widgets/account-avatar/authoring.d.ts +3 -0
- package/plugins/runtime-modules/avatar/widgets/account-avatar/authoring.js +8 -0
- package/plugins/runtime-modules/avatar/widgets/account-avatar/client.d.ts +32 -0
- package/plugins/runtime-modules/avatar/widgets/account-avatar/client.js +63 -0
- package/plugins/runtime-modules/avatar/widgets/account-avatar/config.d.ts +19 -0
- package/plugins/runtime-modules/avatar/widgets/account-avatar/config.js +21 -0
- package/plugins/runtime-modules/avatar/widgets/account-avatar/plugin.d.ts +3 -0
- package/plugins/runtime-modules/avatar/widgets/account-avatar/plugin.js +9 -0
- package/plugins/runtime-modules/avatar/widgets/account-avatar/server.d.ts +8 -0
- package/plugins/runtime-modules/avatar/widgets/account-avatar/server.js +17 -0
- package/plugins/runtime-modules/avatar/widgets/account-avatar-picker/authoring.d.ts +3 -0
- package/plugins/runtime-modules/avatar/widgets/account-avatar-picker/authoring.js +8 -0
- package/plugins/runtime-modules/avatar/widgets/account-avatar-picker/client.d.ts +14 -0
- package/plugins/runtime-modules/avatar/widgets/account-avatar-picker/client.js +75 -0
- package/plugins/runtime-modules/avatar/widgets/account-avatar-picker/config.d.ts +19 -0
- package/plugins/runtime-modules/avatar/widgets/account-avatar-picker/config.js +21 -0
- package/plugins/runtime-modules/avatar/widgets/account-avatar-picker/plugin.d.ts +3 -0
- package/plugins/runtime-modules/avatar/widgets/account-avatar-picker/plugin.js +9 -0
- package/plugins/runtime-modules/avatar/widgets/account-avatar-picker/server.d.ts +8 -0
- package/plugins/runtime-modules/avatar/widgets/account-avatar-picker/server.js +17 -0
- package/plugins/runtime-modules/avatar/widgets.d.ts +2 -0
- package/plugins/runtime-modules/avatar/widgets.js +22 -0
- package/plugins/runtime-modules/builder/area-shell-presets.server.d.ts +66 -0
- package/plugins/runtime-modules/builder/area-shell-presets.server.js +299 -0
- package/plugins/runtime-modules/builder/authoring-canvas.d.ts +9 -0
- package/plugins/runtime-modules/builder/authoring-canvas.js +38 -0
- package/plugins/runtime-modules/builder/authoring-provider-keys.d.ts +31 -0
- package/plugins/runtime-modules/builder/authoring-provider-keys.js +41 -0
- package/plugins/runtime-modules/builder/authoring-widgets.d.ts +2 -0
- package/plugins/runtime-modules/builder/authoring-widgets.js +22 -0
- package/plugins/runtime-modules/builder/authoring.d.ts +1 -0
- package/plugins/runtime-modules/builder/authoring.js +16 -0
- package/plugins/runtime-modules/builder/client-data-providers.d.ts +22 -0
- package/plugins/runtime-modules/builder/client-data-providers.js +100 -0
- package/plugins/runtime-modules/builder/client.d.ts +2 -0
- package/plugins/runtime-modules/builder/client.js +11 -0
- package/plugins/runtime-modules/builder/clients/builder-region-overrides.d.ts +4 -0
- package/plugins/runtime-modules/builder/clients/builder-region-overrides.js +24 -0
- package/plugins/runtime-modules/builder/clients/canvas-widget.d.ts +21 -0
- package/plugins/runtime-modules/builder/clients/canvas-widget.js +67 -0
- package/plugins/runtime-modules/builder/clients/inline-text-editor.d.ts +31 -0
- package/plugins/runtime-modules/builder/clients/inline-text-editor.js +44 -0
- package/plugins/runtime-modules/builder/clients/inspector-choice-values.d.ts +2 -0
- package/plugins/runtime-modules/builder/clients/inspector-choice-values.js +19 -0
- package/plugins/runtime-modules/builder/clients/inspector-config-field.d.ts +47 -0
- package/plugins/runtime-modules/builder/clients/inspector-config-field.js +487 -0
- package/plugins/runtime-modules/builder/clients/inspector-section-content.d.ts +11 -0
- package/plugins/runtime-modules/builder/clients/inspector-section-content.js +9 -0
- package/plugins/runtime-modules/builder/clients/inspector-section-widget.d.ts +21 -0
- package/plugins/runtime-modules/builder/clients/inspector-section-widget.js +238 -0
- package/plugins/runtime-modules/builder/clients/inspector-signal-section.d.ts +8 -0
- package/plugins/runtime-modules/builder/clients/inspector-signal-section.js +27 -0
- package/plugins/runtime-modules/builder/clients/inspector-title.d.ts +6 -0
- package/plugins/runtime-modules/builder/clients/inspector-title.js +55 -0
- package/plugins/runtime-modules/builder/clients/layout-inspector.d.ts +43 -0
- package/plugins/runtime-modules/builder/clients/layout-inspector.js +279 -0
- package/plugins/runtime-modules/builder/clients/layout-scaffold-buttons.d.ts +25 -0
- package/plugins/runtime-modules/builder/clients/layout-scaffold-buttons.js +66 -0
- package/plugins/runtime-modules/builder/clients/layout-scaffold-overlays.d.ts +42 -0
- package/plugins/runtime-modules/builder/clients/layout-scaffold-overlays.js +70 -0
- package/plugins/runtime-modules/builder/clients/mode-switch.d.ts +5 -0
- package/plugins/runtime-modules/builder/clients/mode-switch.js +42 -0
- package/plugins/runtime-modules/builder/clients/pages-header.d.ts +9 -0
- package/plugins/runtime-modules/builder/clients/pages-header.js +138 -0
- package/plugins/runtime-modules/builder/clients/pages-workspace.d.ts +17 -0
- package/plugins/runtime-modules/builder/clients/pages-workspace.js +47 -0
- package/plugins/runtime-modules/builder/clients/region-inspector.d.ts +25 -0
- package/plugins/runtime-modules/builder/clients/region-inspector.js +85 -0
- package/plugins/runtime-modules/builder/clients/runtime-module-authoring-boundary.d.ts +14 -0
- package/plugins/runtime-modules/builder/clients/runtime-module-authoring-boundary.js +36 -0
- package/plugins/runtime-modules/builder/clients/shells-workspace.d.ts +18 -0
- package/plugins/runtime-modules/builder/clients/shells-workspace.js +70 -0
- package/plugins/runtime-modules/builder/clients/structure-canvas.d.ts +24 -0
- package/plugins/runtime-modules/builder/clients/structure-canvas.js +247 -0
- package/plugins/runtime-modules/builder/clients/widget-effects-editor.d.ts +8 -0
- package/plugins/runtime-modules/builder/clients/widget-effects-editor.js +15 -0
- package/plugins/runtime-modules/builder/clients/widget-inspector.d.ts +31 -0
- package/plugins/runtime-modules/builder/clients/widget-inspector.js +87 -0
- package/plugins/runtime-modules/builder/clients/workspace-scope-boundary.d.ts +8 -0
- package/plugins/runtime-modules/builder/clients/workspace-scope-boundary.js +13 -0
- package/plugins/runtime-modules/builder/cms-instance-allocator.d.ts +10 -0
- package/plugins/runtime-modules/builder/cms-instance-allocator.js +73 -0
- package/plugins/runtime-modules/builder/controller/address.d.ts +5 -0
- package/plugins/runtime-modules/builder/controller/address.js +8 -0
- package/plugins/runtime-modules/builder/controller/client.d.ts +107 -0
- package/plugins/runtime-modules/builder/controller/client.js +39 -0
- package/plugins/runtime-modules/builder/controller/definition.d.ts +134 -0
- package/plugins/runtime-modules/builder/controller/definition.js +208 -0
- package/plugins/runtime-modules/builder/controller/mount.d.ts +2 -0
- package/plugins/runtime-modules/builder/controller/mount.js +8 -0
- package/plugins/runtime-modules/builder/controller/server-definition.d.ts +125 -0
- package/plugins/runtime-modules/builder/controller/server-definition.js +57 -0
- package/plugins/runtime-modules/builder/data-providers.d.ts +478 -0
- package/plugins/runtime-modules/builder/data-providers.js +401 -0
- package/plugins/runtime-modules/builder/definition.d.ts +488 -0
- package/plugins/runtime-modules/builder/definition.js +19 -0
- package/plugins/runtime-modules/builder/demand-controller-registration.d.ts +13 -0
- package/plugins/runtime-modules/builder/demand-controller-registration.js +15 -0
- package/plugins/runtime-modules/builder/demand-controller-store.d.ts +8 -0
- package/plugins/runtime-modules/builder/demand-controller-store.js +58 -0
- package/plugins/runtime-modules/builder/developer-region-drafts.d.ts +3 -0
- package/plugins/runtime-modules/builder/developer-region-drafts.js +15 -0
- package/plugins/runtime-modules/builder/developer-workspace-store.d.ts +164 -0
- package/plugins/runtime-modules/builder/developer-workspace-store.js +800 -0
- package/plugins/runtime-modules/builder/developer-workspace-types.d.ts +196 -0
- package/plugins/runtime-modules/builder/developer-workspace-types.js +1 -0
- package/plugins/runtime-modules/builder/draft-allocation-key.d.ts +8 -0
- package/plugins/runtime-modules/builder/draft-allocation-key.js +6 -0
- package/plugins/runtime-modules/builder/draft-background-assets.server.d.ts +18 -0
- package/plugins/runtime-modules/builder/draft-background-assets.server.js +20 -0
- package/plugins/runtime-modules/builder/draft-command-controller.d.ts +16 -0
- package/plugins/runtime-modules/builder/draft-command-controller.js +733 -0
- package/plugins/runtime-modules/builder/edit-scaffold-drawer.d.ts +18 -0
- package/plugins/runtime-modules/builder/edit-scaffold-drawer.js +57 -0
- package/plugins/runtime-modules/builder/effects-form-values.d.ts +22 -0
- package/plugins/runtime-modules/builder/effects-form-values.js +54 -0
- package/plugins/runtime-modules/builder/history.d.ts +80 -0
- package/plugins/runtime-modules/builder/history.js +38 -0
- package/plugins/runtime-modules/builder/ids.d.ts +17 -0
- package/plugins/runtime-modules/builder/ids.js +25 -0
- package/plugins/runtime-modules/builder/inspector-actions.d.ts +31 -0
- package/plugins/runtime-modules/builder/inspector-actions.js +51 -0
- package/plugins/runtime-modules/builder/inspector-controller.d.ts +3 -0
- package/plugins/runtime-modules/builder/inspector-controller.js +283 -0
- package/plugins/runtime-modules/builder/inspector-overlay-addresses.d.ts +16 -0
- package/plugins/runtime-modules/builder/inspector-overlay-addresses.js +32 -0
- package/plugins/runtime-modules/builder/inspector-section-widget.d.ts +10 -0
- package/plugins/runtime-modules/builder/inspector-section-widget.js +62 -0
- package/plugins/runtime-modules/builder/layouts.d.ts +2 -0
- package/plugins/runtime-modules/builder/layouts.js +21 -0
- package/plugins/runtime-modules/builder/module-authoring-catalog.d.ts +16 -0
- package/plugins/runtime-modules/builder/module-authoring-catalog.js +1 -0
- package/plugins/runtime-modules/builder/module-authoring-catalog.server.d.ts +11 -0
- package/plugins/runtime-modules/builder/module-authoring-catalog.server.js +54 -0
- package/plugins/runtime-modules/builder/module-usage-client.d.ts +17 -0
- package/plugins/runtime-modules/builder/module-usage-client.js +17 -0
- package/plugins/runtime-modules/builder/module.d.ts +609 -0
- package/plugins/runtime-modules/builder/module.js +6 -0
- package/plugins/runtime-modules/builder/navigation-catalog.server.d.ts +5 -0
- package/plugins/runtime-modules/builder/navigation-catalog.server.js +40 -0
- package/plugins/runtime-modules/builder/navigation-folder-address.d.ts +46 -0
- package/plugins/runtime-modules/builder/navigation-folder-address.js +129 -0
- package/plugins/runtime-modules/builder/navigation-folder-drop.d.ts +19 -0
- package/plugins/runtime-modules/builder/navigation-folder-drop.js +54 -0
- package/plugins/runtime-modules/builder/navigation-path-context.d.ts +25 -0
- package/plugins/runtime-modules/builder/navigation-path-context.js +34 -0
- package/plugins/runtime-modules/builder/navigation-persistence.d.ts +44 -0
- package/plugins/runtime-modules/builder/navigation-persistence.js +253 -0
- package/plugins/runtime-modules/builder/navigation-signals.d.ts +36 -0
- package/plugins/runtime-modules/builder/navigation-signals.js +88 -0
- package/plugins/runtime-modules/builder/navigation-store.d.ts +12 -0
- package/plugins/runtime-modules/builder/navigation-store.js +82 -0
- package/plugins/runtime-modules/builder/navigation-widget-runtime.d.ts +19 -0
- package/plugins/runtime-modules/builder/navigation-widget-runtime.js +59 -0
- package/plugins/runtime-modules/builder/node-finders.d.ts +5 -0
- package/plugins/runtime-modules/builder/node-finders.js +28 -0
- package/plugins/runtime-modules/builder/node-kind-theme.d.ts +5 -0
- package/plugins/runtime-modules/builder/node-kind-theme.js +14 -0
- package/plugins/runtime-modules/builder/offered-page-catalog.d.ts +77 -0
- package/plugins/runtime-modules/builder/offered-page-catalog.js +159 -0
- package/plugins/runtime-modules/builder/options-providers.d.ts +37 -0
- package/plugins/runtime-modules/builder/options-providers.js +254 -0
- package/plugins/runtime-modules/builder/page-address-rule.d.ts +15 -0
- package/plugins/runtime-modules/builder/page-address-rule.js +35 -0
- package/plugins/runtime-modules/builder/page-catalog-client.d.ts +14 -0
- package/plugins/runtime-modules/builder/page-catalog-client.js +55 -0
- package/plugins/runtime-modules/builder/page-controller-helpers.d.ts +9 -0
- package/plugins/runtime-modules/builder/page-controller-helpers.js +60 -0
- package/plugins/runtime-modules/builder/page-controller.d.ts +18 -0
- package/plugins/runtime-modules/builder/page-controller.js +481 -0
- package/plugins/runtime-modules/builder/page-meta-form.d.ts +8 -0
- package/plugins/runtime-modules/builder/page-meta-form.js +491 -0
- package/plugins/runtime-modules/builder/page-preset-catalog.server.d.ts +15 -0
- package/plugins/runtime-modules/builder/page-preset-catalog.server.js +127 -0
- package/plugins/runtime-modules/builder/page-presets.server.d.ts +34 -0
- package/plugins/runtime-modules/builder/page-presets.server.js +344 -0
- package/plugins/runtime-modules/builder/page-reference-picker.d.ts +16 -0
- package/plugins/runtime-modules/builder/page-reference-picker.js +43 -0
- package/plugins/runtime-modules/builder/page-title-signal.d.ts +14 -0
- package/plugins/runtime-modules/builder/page-title-signal.js +20 -0
- package/plugins/runtime-modules/builder/pages-header.d.ts +8 -0
- package/plugins/runtime-modules/builder/pages-header.js +5 -0
- package/plugins/runtime-modules/builder/pages-workspace.d.ts +6 -0
- package/plugins/runtime-modules/builder/pages-workspace.js +76 -0
- package/plugins/runtime-modules/builder/persistence.d.ts +147 -0
- package/plugins/runtime-modules/builder/persistence.js +949 -0
- package/plugins/runtime-modules/builder/plugin-meta-store.d.ts +14 -0
- package/plugins/runtime-modules/builder/plugin-meta-store.js +12 -0
- package/plugins/runtime-modules/builder/plugin-metas.d.ts +7 -0
- package/plugins/runtime-modules/builder/plugin-metas.js +100 -0
- package/plugins/runtime-modules/builder/presets.d.ts +150 -0
- package/plugins/runtime-modules/builder/presets.js +62 -0
- package/plugins/runtime-modules/builder/preview-controller.d.ts +8 -0
- package/plugins/runtime-modules/builder/preview-controller.js +150 -0
- package/plugins/runtime-modules/builder/preview-store.d.ts +4 -0
- package/plugins/runtime-modules/builder/preview-store.js +46 -0
- package/plugins/runtime-modules/builder/preview-transport.d.ts +44 -0
- package/plugins/runtime-modules/builder/preview-transport.js +61 -0
- package/plugins/runtime-modules/builder/public-route-collisions.d.ts +58 -0
- package/plugins/runtime-modules/builder/public-route-collisions.js +141 -0
- package/plugins/runtime-modules/builder/region-controller.d.ts +4 -0
- package/plugins/runtime-modules/builder/region-controller.js +76 -0
- package/plugins/runtime-modules/builder/region-defaults.d.ts +2 -0
- package/plugins/runtime-modules/builder/region-defaults.js +122 -0
- package/plugins/runtime-modules/builder/region-hydration.d.ts +46 -0
- package/plugins/runtime-modules/builder/region-hydration.js +273 -0
- package/plugins/runtime-modules/builder/region-keys.d.ts +8 -0
- package/plugins/runtime-modules/builder/region-keys.js +15 -0
- package/plugins/runtime-modules/builder/render-root-node-preview.server.d.ts +42 -0
- package/plugins/runtime-modules/builder/render-root-node-preview.server.js +208 -0
- package/plugins/runtime-modules/builder/render-root-node-scaffold.d.ts +64 -0
- package/plugins/runtime-modules/builder/render-root-node-scaffold.js +951 -0
- package/plugins/runtime-modules/builder/root-node-css-size.d.ts +1 -0
- package/plugins/runtime-modules/builder/root-node-css-size.js +10 -0
- package/plugins/runtime-modules/builder/root-node-normalization.d.ts +34 -0
- package/plugins/runtime-modules/builder/root-node-normalization.js +67 -0
- package/plugins/runtime-modules/builder/root-node-renderable-tree.d.ts +10 -0
- package/plugins/runtime-modules/builder/root-node-renderable-tree.js +141 -0
- package/plugins/runtime-modules/builder/route-scope.d.ts +9 -0
- package/plugins/runtime-modules/builder/route-scope.js +74 -0
- package/plugins/runtime-modules/builder/runtime-module-defaults.d.ts +3 -0
- package/plugins/runtime-modules/builder/runtime-module-defaults.js +41 -0
- package/plugins/runtime-modules/builder/runtime-module-sandbox.server.d.ts +15 -0
- package/plugins/runtime-modules/builder/runtime-module-sandbox.server.js +24 -0
- package/plugins/runtime-modules/builder/runtime-module-selection.d.ts +36 -0
- package/plugins/runtime-modules/builder/runtime-module-selection.js +113 -0
- package/plugins/runtime-modules/builder/sequential-slot-helpers.d.ts +11 -0
- package/plugins/runtime-modules/builder/sequential-slot-helpers.js +31 -0
- package/plugins/runtime-modules/builder/server.d.ts +1 -0
- package/plugins/runtime-modules/builder/server.js +23 -0
- package/plugins/runtime-modules/builder/services/navigation-table.d.ts +4 -0
- package/plugins/runtime-modules/builder/services/navigation-table.js +519 -0
- package/plugins/runtime-modules/builder/services/page-source-tree.d.ts +4 -0
- package/plugins/runtime-modules/builder/services/page-source-tree.js +75 -0
- package/plugins/runtime-modules/builder/services/runtime-modules-table.d.ts +4 -0
- package/plugins/runtime-modules/builder/services/runtime-modules-table.js +435 -0
- package/plugins/runtime-modules/builder/services/signal-routes-table.d.ts +4 -0
- package/plugins/runtime-modules/builder/services/signal-routes-table.js +113 -0
- package/plugins/runtime-modules/builder/shells-workspace.d.ts +6 -0
- package/plugins/runtime-modules/builder/shells-workspace.js +60 -0
- package/plugins/runtime-modules/builder/signal-endpoints.d.ts +19 -0
- package/plugins/runtime-modules/builder/signal-endpoints.js +157 -0
- package/plugins/runtime-modules/builder/signal-route-config.d.ts +3 -0
- package/plugins/runtime-modules/builder/signal-route-config.js +37 -0
- package/plugins/runtime-modules/builder/signal-route-selection.d.ts +3 -0
- package/plugins/runtime-modules/builder/signal-route-selection.js +34 -0
- package/plugins/runtime-modules/builder/signal-wiring-controller.d.ts +36 -0
- package/plugins/runtime-modules/builder/signal-wiring-controller.js +115 -0
- package/plugins/runtime-modules/builder/signal-wiring-form.d.ts +2 -0
- package/plugins/runtime-modules/builder/signal-wiring-form.js +101 -0
- package/plugins/runtime-modules/builder/signal-wiring-options.d.ts +33 -0
- package/plugins/runtime-modules/builder/signal-wiring-options.js +189 -0
- package/plugins/runtime-modules/builder/structure-dnd.d.ts +50 -0
- package/plugins/runtime-modules/builder/structure-dnd.js +181 -0
- package/plugins/runtime-modules/builder/structure-region-pick-items.d.ts +3 -0
- package/plugins/runtime-modules/builder/structure-region-pick-items.js +37 -0
- package/plugins/runtime-modules/builder/tree-options.d.ts +7 -0
- package/plugins/runtime-modules/builder/tree-options.js +14 -0
- package/plugins/runtime-modules/builder/widgets/chrome/config.d.ts +201 -0
- package/plugins/runtime-modules/builder/widgets/chrome/config.js +72 -0
- package/plugins/runtime-modules/builder/widgets/chrome-controls/authoring.d.ts +3 -0
- package/plugins/runtime-modules/builder/widgets/chrome-controls/authoring.js +7 -0
- package/plugins/runtime-modules/builder/widgets/chrome-controls/client.d.ts +9 -0
- package/plugins/runtime-modules/builder/widgets/chrome-controls/client.js +34 -0
- package/plugins/runtime-modules/builder/widgets/chrome-controls/config.d.ts +19 -0
- package/plugins/runtime-modules/builder/widgets/chrome-controls/config.js +30 -0
- package/plugins/runtime-modules/builder/widgets/chrome-controls/plugin.d.ts +3 -0
- package/plugins/runtime-modules/builder/widgets/chrome-controls/plugin.js +9 -0
- package/plugins/runtime-modules/builder/widgets/chrome-controls/server.d.ts +8 -0
- package/plugins/runtime-modules/builder/widgets/chrome-controls/server.js +6 -0
- package/plugins/runtime-modules/builder/widgets/developer-builder-pages-header/authoring.d.ts +3 -0
- package/plugins/runtime-modules/builder/widgets/developer-builder-pages-header/authoring.js +8 -0
- package/plugins/runtime-modules/builder/widgets/developer-builder-pages-header/plugin.d.ts +3 -0
- package/plugins/runtime-modules/builder/widgets/developer-builder-pages-header/plugin.js +18 -0
- package/plugins/runtime-modules/builder/widgets/draft-status/authoring-plugin.d.ts +3 -0
- package/plugins/runtime-modules/builder/widgets/draft-status/authoring-plugin.js +8 -0
- package/plugins/runtime-modules/builder/widgets/draft-status/authoring.d.ts +4 -0
- package/plugins/runtime-modules/builder/widgets/draft-status/authoring.js +228 -0
- package/plugins/runtime-modules/builder/widgets/draft-status/plugin.d.ts +3 -0
- package/plugins/runtime-modules/builder/widgets/draft-status/plugin.js +8 -0
- package/plugins/runtime-modules/builder/widgets/hello-world/authoring.d.ts +3 -0
- package/plugins/runtime-modules/builder/widgets/hello-world/authoring.js +13 -0
- package/plugins/runtime-modules/builder/widgets/hello-world/client.d.ts +13 -0
- package/plugins/runtime-modules/builder/widgets/hello-world/client.js +44 -0
- package/plugins/runtime-modules/builder/widgets/hello-world/config.d.ts +18 -0
- package/plugins/runtime-modules/builder/widgets/hello-world/config.js +26 -0
- package/plugins/runtime-modules/builder/widgets/hello-world/plugin.d.ts +5 -0
- package/plugins/runtime-modules/builder/widgets/hello-world/plugin.js +47 -0
- package/plugins/runtime-modules/builder/widgets/inspector-header/authoring.d.ts +3 -0
- package/plugins/runtime-modules/builder/widgets/inspector-header/authoring.js +6 -0
- package/plugins/runtime-modules/builder/widgets/inspector-header/plugin.d.ts +3 -0
- package/plugins/runtime-modules/builder/widgets/inspector-header/plugin.js +22 -0
- package/plugins/runtime-modules/builder/widgets/inspector-section/authoring.d.ts +3 -0
- package/plugins/runtime-modules/builder/widgets/inspector-section/authoring.js +7 -0
- package/plugins/runtime-modules/builder/widgets/inspector-section/plugin.d.ts +3 -0
- package/plugins/runtime-modules/builder/widgets/inspector-section/plugin.js +14 -0
- package/plugins/runtime-modules/builder/widgets/mode-switch/authoring.d.ts +3 -0
- package/plugins/runtime-modules/builder/widgets/mode-switch/authoring.js +8 -0
- package/plugins/runtime-modules/builder/widgets/mode-switch/plugin.d.ts +3 -0
- package/plugins/runtime-modules/builder/widgets/mode-switch/plugin.js +8 -0
- package/plugins/runtime-modules/builder/widgets/pages-workspace/authoring.d.ts +2 -0
- package/plugins/runtime-modules/builder/widgets/pages-workspace/authoring.js +8 -0
- package/plugins/runtime-modules/builder/widgets/pages-workspace/plugin.d.ts +2 -0
- package/plugins/runtime-modules/builder/widgets/pages-workspace/plugin.js +12 -0
- package/plugins/runtime-modules/builder/widgets/pages-workspace/preview-plugin.d.ts +2 -0
- package/plugins/runtime-modules/builder/widgets/pages-workspace/preview-plugin.js +7 -0
- package/plugins/runtime-modules/builder/widgets/shells-workspace/authoring.d.ts +2 -0
- package/plugins/runtime-modules/builder/widgets/shells-workspace/authoring.js +8 -0
- package/plugins/runtime-modules/builder/widgets/shells-workspace/plugin.d.ts +2 -0
- package/plugins/runtime-modules/builder/widgets/shells-workspace/plugin.js +12 -0
- package/plugins/runtime-modules/builder/widgets/shells-workspace/preview-plugin.d.ts +2 -0
- package/plugins/runtime-modules/builder/widgets/shells-workspace/preview-plugin.js +7 -0
- package/plugins/runtime-modules/builder/widgets/structure-region/built-in.d.ts +30 -0
- package/plugins/runtime-modules/builder/widgets/structure-region/built-in.js +1673 -0
- package/plugins/runtime-modules/builder/widgets/structure-region/config.d.ts +48 -0
- package/plugins/runtime-modules/builder/widgets/structure-region/config.js +83 -0
- package/plugins/runtime-modules/builder/widgets/structure-region/plugin.d.ts +3 -0
- package/plugins/runtime-modules/builder/widgets/structure-region/plugin.js +76 -0
- package/plugins/runtime-modules/builder/widgets/test-block/authoring.d.ts +3 -0
- package/plugins/runtime-modules/builder/widgets/test-block/authoring.js +8 -0
- package/plugins/runtime-modules/builder/widgets/test-block/client.d.ts +10 -0
- package/plugins/runtime-modules/builder/widgets/test-block/client.js +18 -0
- package/plugins/runtime-modules/builder/widgets/test-block/config.d.ts +22 -0
- package/plugins/runtime-modules/builder/widgets/test-block/config.js +35 -0
- package/plugins/runtime-modules/builder/widgets/test-block/plugin.d.ts +4 -0
- package/plugins/runtime-modules/builder/widgets/test-block/plugin.js +9 -0
- package/plugins/runtime-modules/builder/widgets/workspace-headers/config.d.ts +24 -0
- package/plugins/runtime-modules/builder/widgets/workspace-headers/config.js +31 -0
- package/plugins/runtime-modules/builder/widgets/workspaces/config.d.ts +6 -0
- package/plugins/runtime-modules/builder/widgets/workspaces/config.js +31 -0
- package/plugins/runtime-modules/builder/widgets.d.ts +2 -0
- package/plugins/runtime-modules/builder/widgets.js +90 -0
- package/plugins/runtime-modules/builder/workspace-controller.d.ts +22 -0
- package/plugins/runtime-modules/builder/workspace-controller.js +1940 -0
- package/plugins/runtime-modules/builder/workspace-view-model.d.ts +4 -0
- package/plugins/runtime-modules/builder/workspace-view-model.js +24 -0
- package/plugins/runtime-modules/catalog.d.ts +9 -0
- package/plugins/runtime-modules/catalog.js +20 -0
- package/plugins/runtime-modules/client-area-contributions/accounting.d.ts +1 -0
- package/plugins/runtime-modules/client-area-contributions/accounting.js +14 -0
- package/plugins/runtime-modules/client-area-contributions/admin.d.ts +1 -0
- package/plugins/runtime-modules/client-area-contributions/admin.js +38 -0
- package/plugins/runtime-modules/client-area-contributions/app.d.ts +1 -0
- package/plugins/runtime-modules/client-area-contributions/app.js +26 -0
- package/plugins/runtime-modules/client-area-contributions/builder.d.ts +1 -0
- package/plugins/runtime-modules/client-area-contributions/builder.js +28 -0
- package/plugins/runtime-modules/client-area-contributions/common.d.ts +1 -0
- package/plugins/runtime-modules/client-area-contributions/common.js +15 -0
- package/plugins/runtime-modules/client-area-contributions/editor.d.ts +1 -0
- package/plugins/runtime-modules/client-area-contributions/editor.js +20 -0
- package/plugins/runtime-modules/client-area-contributions/public.d.ts +1 -0
- package/plugins/runtime-modules/client-area-contributions/public.js +18 -0
- package/plugins/runtime-modules/client-authoring-module.d.ts +31 -0
- package/plugins/runtime-modules/client-authoring-module.js +60 -0
- package/plugins/runtime-modules/client-authoring-providers/accounting.d.ts +1 -0
- package/plugins/runtime-modules/client-authoring-providers/accounting.js +14 -0
- package/plugins/runtime-modules/client-authoring-providers/admin.d.ts +1 -0
- package/plugins/runtime-modules/client-authoring-providers/admin.js +44 -0
- package/plugins/runtime-modules/client-authoring-providers/app.d.ts +1 -0
- package/plugins/runtime-modules/client-authoring-providers/app.js +32 -0
- package/plugins/runtime-modules/client-authoring-providers/builder.d.ts +1 -0
- package/plugins/runtime-modules/client-authoring-providers/builder.js +28 -0
- package/plugins/runtime-modules/client-authoring-providers/common.d.ts +1 -0
- package/plugins/runtime-modules/client-authoring-providers/common.js +16 -0
- package/plugins/runtime-modules/client-authoring-providers/editor.d.ts +1 -0
- package/plugins/runtime-modules/client-authoring-providers/editor.js +20 -0
- package/plugins/runtime-modules/client-authoring-providers/public.d.ts +1 -0
- package/plugins/runtime-modules/client-authoring-providers/public.js +18 -0
- package/plugins/runtime-modules/client-authoring-widget-module.d.ts +12 -0
- package/plugins/runtime-modules/client-authoring-widget-module.js +26 -0
- package/plugins/runtime-modules/client-calendar-adapters/core.d.ts +5 -0
- package/plugins/runtime-modules/client-calendar-adapters/core.js +9 -0
- package/plugins/runtime-modules/client-manifests/accounting.d.ts +4 -0
- package/plugins/runtime-modules/client-manifests/accounting.js +8 -0
- package/plugins/runtime-modules/client-manifests/admin.d.ts +4 -0
- package/plugins/runtime-modules/client-manifests/admin.js +29 -0
- package/plugins/runtime-modules/client-manifests/app.d.ts +4 -0
- package/plugins/runtime-modules/client-manifests/app.js +15 -0
- package/plugins/runtime-modules/client-manifests/auth-render-clients.d.ts +3 -0
- package/plugins/runtime-modules/client-manifests/auth-render-clients.js +21 -0
- package/plugins/runtime-modules/client-manifests/builder-authoring.d.ts +1 -0
- package/plugins/runtime-modules/client-manifests/builder-authoring.js +17 -0
- package/plugins/runtime-modules/client-manifests/builder.d.ts +4 -0
- package/plugins/runtime-modules/client-manifests/builder.js +40 -0
- package/plugins/runtime-modules/client-manifests/common-data-providers.d.ts +1 -0
- package/plugins/runtime-modules/client-manifests/common-data-providers.js +7 -0
- package/plugins/runtime-modules/client-manifests/common.d.ts +3 -0
- package/plugins/runtime-modules/client-manifests/common.js +286 -0
- package/plugins/runtime-modules/client-manifests/editor.d.ts +4 -0
- package/plugins/runtime-modules/client-manifests/editor.js +11 -0
- package/plugins/runtime-modules/client-manifests/public.d.ts +4 -0
- package/plugins/runtime-modules/client-manifests/public.js +12 -0
- package/plugins/runtime-modules/client-state.d.ts +5 -0
- package/plugins/runtime-modules/client-state.js +17 -0
- package/plugins/runtime-modules/contracts.d.ts +26 -0
- package/plugins/runtime-modules/contracts.js +760 -0
- package/plugins/runtime-modules/core/authoring-widgets.d.ts +2 -0
- package/plugins/runtime-modules/core/authoring-widgets.js +110 -0
- package/plugins/runtime-modules/core/authoring.d.ts +1 -0
- package/plugins/runtime-modules/core/authoring.js +16 -0
- package/plugins/runtime-modules/core/client-data-providers.d.ts +10 -0
- package/plugins/runtime-modules/core/client-data-providers.js +20 -0
- package/plugins/runtime-modules/core/client.d.ts +2 -0
- package/plugins/runtime-modules/core/client.js +9 -0
- package/plugins/runtime-modules/core/data-providers.d.ts +35 -0
- package/plugins/runtime-modules/core/data-providers.js +30 -0
- package/plugins/runtime-modules/core/definition.d.ts +437 -0
- package/plugins/runtime-modules/core/definition.js +25 -0
- package/plugins/runtime-modules/core/ids.d.ts +5 -0
- package/plugins/runtime-modules/core/ids.js +7 -0
- package/plugins/runtime-modules/core/layouts.d.ts +2 -0
- package/plugins/runtime-modules/core/layouts.js +27 -0
- package/plugins/runtime-modules/core/module.d.ts +508 -0
- package/plugins/runtime-modules/core/module.js +6 -0
- package/plugins/runtime-modules/core/server.d.ts +2 -0
- package/plugins/runtime-modules/core/server.js +18 -0
- package/plugins/runtime-modules/core/widgets/account/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/account/authoring.js +8 -0
- package/plugins/runtime-modules/core/widgets/account/client.d.ts +20 -0
- package/plugins/runtime-modules/core/widgets/account/client.js +121 -0
- package/plugins/runtime-modules/core/widgets/account/config.d.ts +14 -0
- package/plugins/runtime-modules/core/widgets/account/config.js +26 -0
- package/plugins/runtime-modules/core/widgets/account/index.d.ts +2 -0
- package/plugins/runtime-modules/core/widgets/account/index.js +2 -0
- package/plugins/runtime-modules/core/widgets/account/plugin.d.ts +5 -0
- package/plugins/runtime-modules/core/widgets/account/plugin.js +40 -0
- package/plugins/runtime-modules/core/widgets/account/server.d.ts +20 -0
- package/plugins/runtime-modules/core/widgets/account/server.js +96 -0
- package/plugins/runtime-modules/core/widgets/area-menu/authoring.d.ts +2 -0
- package/plugins/runtime-modules/core/widgets/area-menu/authoring.js +8 -0
- package/plugins/runtime-modules/core/widgets/area-menu/client.d.ts +11 -0
- package/plugins/runtime-modules/core/widgets/area-menu/client.js +61 -0
- package/plugins/runtime-modules/core/widgets/area-menu/config.d.ts +12 -0
- package/plugins/runtime-modules/core/widgets/area-menu/config.js +14 -0
- package/plugins/runtime-modules/core/widgets/area-menu/index.d.ts +2 -0
- package/plugins/runtime-modules/core/widgets/area-menu/index.js +2 -0
- package/plugins/runtime-modules/core/widgets/area-menu/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/area-menu/plugin.js +11 -0
- package/plugins/runtime-modules/core/widgets/area-menu/server.d.ts +5 -0
- package/plugins/runtime-modules/core/widgets/area-menu/server.js +14 -0
- package/plugins/runtime-modules/core/widgets/brand/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/brand/authoring.js +11 -0
- package/plugins/runtime-modules/core/widgets/brand/client.d.ts +19 -0
- package/plugins/runtime-modules/core/widgets/brand/client.js +43 -0
- package/plugins/runtime-modules/core/widgets/brand/config.d.ts +32 -0
- package/plugins/runtime-modules/core/widgets/brand/config.js +29 -0
- package/plugins/runtime-modules/core/widgets/brand/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/brand/plugin.js +9 -0
- package/plugins/runtime-modules/core/widgets/brand/server.d.ts +6 -0
- package/plugins/runtime-modules/core/widgets/brand/server.js +19 -0
- package/plugins/runtime-modules/core/widgets/breadcrumb/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/breadcrumb/authoring.js +8 -0
- package/plugins/runtime-modules/core/widgets/breadcrumb/client.d.ts +6 -0
- package/plugins/runtime-modules/core/widgets/breadcrumb/client.js +13 -0
- package/plugins/runtime-modules/core/widgets/breadcrumb/config.d.ts +31 -0
- package/plugins/runtime-modules/core/widgets/breadcrumb/config.js +23 -0
- package/plugins/runtime-modules/core/widgets/breadcrumb/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/breadcrumb/plugin.js +9 -0
- package/plugins/runtime-modules/core/widgets/breadcrumb/server.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/breadcrumb/server.js +6 -0
- package/plugins/runtime-modules/core/widgets/button/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/button/authoring.js +11 -0
- package/plugins/runtime-modules/core/widgets/button/client.d.ts +10 -0
- package/plugins/runtime-modules/core/widgets/button/client.js +55 -0
- package/plugins/runtime-modules/core/widgets/button/config.d.ts +118 -0
- package/plugins/runtime-modules/core/widgets/button/config.js +86 -0
- package/plugins/runtime-modules/core/widgets/button/plugin.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/button/plugin.js +20 -0
- package/plugins/runtime-modules/core/widgets/card/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/card/authoring.js +10 -0
- package/plugins/runtime-modules/core/widgets/card/client.d.ts +37 -0
- package/plugins/runtime-modules/core/widgets/card/client.js +64 -0
- package/plugins/runtime-modules/core/widgets/card/config.d.ts +88 -0
- package/plugins/runtime-modules/core/widgets/card/config.js +84 -0
- package/plugins/runtime-modules/core/widgets/card/plugin.d.ts +5 -0
- package/plugins/runtime-modules/core/widgets/card/plugin.js +15 -0
- package/plugins/runtime-modules/core/widgets/card/server.d.ts +15 -0
- package/plugins/runtime-modules/core/widgets/card/server.js +62 -0
- package/plugins/runtime-modules/core/widgets/cascader/authoring.d.ts +25 -0
- package/plugins/runtime-modules/core/widgets/cascader/authoring.js +10 -0
- package/plugins/runtime-modules/core/widgets/cascader/client.d.ts +6 -0
- package/plugins/runtime-modules/core/widgets/cascader/client.js +52 -0
- package/plugins/runtime-modules/core/widgets/cascader/config.d.ts +119 -0
- package/plugins/runtime-modules/core/widgets/cascader/config.js +66 -0
- package/plugins/runtime-modules/core/widgets/cascader/plugin.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/cascader/plugin.js +9 -0
- package/plugins/runtime-modules/core/widgets/checkbox/authoring.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/checkbox/authoring.js +9 -0
- package/plugins/runtime-modules/core/widgets/checkbox/client.d.ts +10 -0
- package/plugins/runtime-modules/core/widgets/checkbox/client.js +32 -0
- package/plugins/runtime-modules/core/widgets/checkbox/config.d.ts +54 -0
- package/plugins/runtime-modules/core/widgets/checkbox/config.js +37 -0
- package/plugins/runtime-modules/core/widgets/checkbox/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/checkbox/plugin.js +10 -0
- package/plugins/runtime-modules/core/widgets/checkbox-group/authoring.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/checkbox-group/authoring.js +17 -0
- package/plugins/runtime-modules/core/widgets/checkbox-group/client.d.ts +10 -0
- package/plugins/runtime-modules/core/widgets/checkbox-group/client.js +41 -0
- package/plugins/runtime-modules/core/widgets/checkbox-group/config.d.ts +107 -0
- package/plugins/runtime-modules/core/widgets/checkbox-group/config.js +42 -0
- package/plugins/runtime-modules/core/widgets/checkbox-group/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/checkbox-group/plugin.js +10 -0
- package/plugins/runtime-modules/core/widgets/collection-view/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/collection-view/authoring.js +8 -0
- package/plugins/runtime-modules/core/widgets/collection-view/config.d.ts +393 -0
- package/plugins/runtime-modules/core/widgets/collection-view/config.js +333 -0
- package/plugins/runtime-modules/core/widgets/collection-view/plugin.d.ts +5 -0
- package/plugins/runtime-modules/core/widgets/collection-view/plugin.js +10 -0
- package/plugins/runtime-modules/core/widgets/collection-view/server.d.ts +10 -0
- package/plugins/runtime-modules/core/widgets/collection-view/server.js +9 -0
- package/plugins/runtime-modules/core/widgets/color/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/color/authoring.js +8 -0
- package/plugins/runtime-modules/core/widgets/color/config.d.ts +72 -0
- package/plugins/runtime-modules/core/widgets/color/config.js +58 -0
- package/plugins/runtime-modules/core/widgets/color/plugin.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/color/plugin.js +20 -0
- package/plugins/runtime-modules/core/widgets/command-toolbar/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/command-toolbar/authoring.js +14 -0
- package/plugins/runtime-modules/core/widgets/command-toolbar/client.d.ts +10 -0
- package/plugins/runtime-modules/core/widgets/command-toolbar/client.js +242 -0
- package/plugins/runtime-modules/core/widgets/command-toolbar/config.d.ts +110 -0
- package/plugins/runtime-modules/core/widgets/command-toolbar/config.js +155 -0
- package/plugins/runtime-modules/core/widgets/command-toolbar/plugin.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/command-toolbar/plugin.js +26 -0
- package/plugins/runtime-modules/core/widgets/date-picker/authoring.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/date-picker/authoring.js +9 -0
- package/plugins/runtime-modules/core/widgets/date-picker/client.d.ts +6 -0
- package/plugins/runtime-modules/core/widgets/date-picker/client.js +34 -0
- package/plugins/runtime-modules/core/widgets/date-picker/config.d.ts +96 -0
- package/plugins/runtime-modules/core/widgets/date-picker/config.js +134 -0
- package/plugins/runtime-modules/core/widgets/date-picker/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/date-picker/plugin.js +10 -0
- package/plugins/runtime-modules/core/widgets/description/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/description/authoring.js +11 -0
- package/plugins/runtime-modules/core/widgets/description/client.d.ts +11 -0
- package/plugins/runtime-modules/core/widgets/description/client.js +51 -0
- package/plugins/runtime-modules/core/widgets/description/config.d.ts +32 -0
- package/plugins/runtime-modules/core/widgets/description/config.js +36 -0
- package/plugins/runtime-modules/core/widgets/description/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/description/plugin.js +28 -0
- package/plugins/runtime-modules/core/widgets/description/server.d.ts +12 -0
- package/plugins/runtime-modules/core/widgets/description/server.js +89 -0
- package/plugins/runtime-modules/core/widgets/dimension/authoring.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/dimension/authoring.js +9 -0
- package/plugins/runtime-modules/core/widgets/dimension/client.d.ts +13 -0
- package/plugins/runtime-modules/core/widgets/dimension/client.js +38 -0
- package/plugins/runtime-modules/core/widgets/dimension/config.d.ts +58 -0
- package/plugins/runtime-modules/core/widgets/dimension/config.js +31 -0
- package/plugins/runtime-modules/core/widgets/dimension/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/dimension/plugin.js +20 -0
- package/plugins/runtime-modules/core/widgets/footer/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/footer/authoring.js +22 -0
- package/plugins/runtime-modules/core/widgets/footer/client.d.ts +21 -0
- package/plugins/runtime-modules/core/widgets/footer/client.js +30 -0
- package/plugins/runtime-modules/core/widgets/footer/config.d.ts +31 -0
- package/plugins/runtime-modules/core/widgets/footer/config.js +34 -0
- package/plugins/runtime-modules/core/widgets/footer/index.d.ts +1 -0
- package/plugins/runtime-modules/core/widgets/footer/index.js +1 -0
- package/plugins/runtime-modules/core/widgets/footer/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/footer/plugin.js +9 -0
- package/plugins/runtime-modules/core/widgets/footer/server.d.ts +12 -0
- package/plugins/runtime-modules/core/widgets/footer/server.js +46 -0
- package/plugins/runtime-modules/core/widgets/form/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/form/authoring.js +8 -0
- package/plugins/runtime-modules/core/widgets/form/built-in.d.ts +15 -0
- package/plugins/runtime-modules/core/widgets/form/built-in.js +74 -0
- package/plugins/runtime-modules/core/widgets/form/config.d.ts +187 -0
- package/plugins/runtime-modules/core/widgets/form/config.js +190 -0
- package/plugins/runtime-modules/core/widgets/form/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/form/plugin.js +18 -0
- package/plugins/runtime-modules/core/widgets/form-preview/authoring.d.ts +10 -0
- package/plugins/runtime-modules/core/widgets/form-preview/authoring.js +15 -0
- package/plugins/runtime-modules/core/widgets/form-preview/built-in.d.ts +10 -0
- package/plugins/runtime-modules/core/widgets/form-preview/built-in.js +63 -0
- package/plugins/runtime-modules/core/widgets/form-preview/client.d.ts +12 -0
- package/plugins/runtime-modules/core/widgets/form-preview/client.js +106 -0
- package/plugins/runtime-modules/core/widgets/form-preview/config.d.ts +59 -0
- package/plugins/runtime-modules/core/widgets/form-preview/config.js +57 -0
- package/plugins/runtime-modules/core/widgets/form-preview/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/form-preview/plugin.js +18 -0
- package/plugins/runtime-modules/core/widgets/gallery/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/gallery/authoring.js +6 -0
- package/plugins/runtime-modules/core/widgets/gallery/client.d.ts +19 -0
- package/plugins/runtime-modules/core/widgets/gallery/client.js +107 -0
- package/plugins/runtime-modules/core/widgets/gallery/config.d.ts +110 -0
- package/plugins/runtime-modules/core/widgets/gallery/config.js +188 -0
- package/plugins/runtime-modules/core/widgets/gallery/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/gallery/plugin.js +10 -0
- package/plugins/runtime-modules/core/widgets/header-navigation/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/header-navigation/authoring.js +23 -0
- package/plugins/runtime-modules/core/widgets/header-navigation/client.d.ts +11 -0
- package/plugins/runtime-modules/core/widgets/header-navigation/client.js +62 -0
- package/plugins/runtime-modules/core/widgets/header-navigation/config.d.ts +52 -0
- package/plugins/runtime-modules/core/widgets/header-navigation/config.js +49 -0
- package/plugins/runtime-modules/core/widgets/header-navigation/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/header-navigation/plugin.js +9 -0
- package/plugins/runtime-modules/core/widgets/header-navigation/server.d.ts +7 -0
- package/plugins/runtime-modules/core/widgets/header-navigation/server.js +18 -0
- package/plugins/runtime-modules/core/widgets/html/authoring.d.ts +5 -0
- package/plugins/runtime-modules/core/widgets/html/authoring.js +21 -0
- package/plugins/runtime-modules/core/widgets/html/client.d.ts +13 -0
- package/plugins/runtime-modules/core/widgets/html/client.js +56 -0
- package/plugins/runtime-modules/core/widgets/html/config.d.ts +68 -0
- package/plugins/runtime-modules/core/widgets/html/config.js +104 -0
- package/plugins/runtime-modules/core/widgets/html/index.d.ts +1 -0
- package/plugins/runtime-modules/core/widgets/html/index.js +1 -0
- package/plugins/runtime-modules/core/widgets/html/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/html/plugin.js +22 -0
- package/plugins/runtime-modules/core/widgets/html/server.d.ts +17 -0
- package/plugins/runtime-modules/core/widgets/html/server.js +70 -0
- package/plugins/runtime-modules/core/widgets/icon/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/icon/authoring.js +15 -0
- package/plugins/runtime-modules/core/widgets/icon/client.d.ts +11 -0
- package/plugins/runtime-modules/core/widgets/icon/client.js +50 -0
- package/plugins/runtime-modules/core/widgets/icon/config.d.ts +21 -0
- package/plugins/runtime-modules/core/widgets/icon/config.js +25 -0
- package/plugins/runtime-modules/core/widgets/icon/index.d.ts +1 -0
- package/plugins/runtime-modules/core/widgets/icon/index.js +1 -0
- package/plugins/runtime-modules/core/widgets/icon/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/icon/plugin.js +12 -0
- package/plugins/runtime-modules/core/widgets/icon/server.d.ts +8 -0
- package/plugins/runtime-modules/core/widgets/icon/server.js +9 -0
- package/plugins/runtime-modules/core/widgets/image/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/image/authoring.js +15 -0
- package/plugins/runtime-modules/core/widgets/image/client.d.ts +10 -0
- package/plugins/runtime-modules/core/widgets/image/client.js +126 -0
- package/plugins/runtime-modules/core/widgets/image/config.d.ts +178 -0
- package/plugins/runtime-modules/core/widgets/image/config.js +180 -0
- package/plugins/runtime-modules/core/widgets/image/plugin.d.ts +5 -0
- package/plugins/runtime-modules/core/widgets/image/plugin.js +9 -0
- package/plugins/runtime-modules/core/widgets/image/server.d.ts +8 -0
- package/plugins/runtime-modules/core/widgets/image/server.js +35 -0
- package/plugins/runtime-modules/core/widgets/input/authoring.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/input/authoring.js +9 -0
- package/plugins/runtime-modules/core/widgets/input/client.d.ts +9 -0
- package/plugins/runtime-modules/core/widgets/input/client.js +67 -0
- package/plugins/runtime-modules/core/widgets/input/config.d.ts +98 -0
- package/plugins/runtime-modules/core/widgets/input/config.js +84 -0
- package/plugins/runtime-modules/core/widgets/input/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/input/plugin.js +19 -0
- package/plugins/runtime-modules/core/widgets/length/authoring.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/length/authoring.js +9 -0
- package/plugins/runtime-modules/core/widgets/length/client.d.ts +13 -0
- package/plugins/runtime-modules/core/widgets/length/client.js +38 -0
- package/plugins/runtime-modules/core/widgets/length/config.d.ts +84 -0
- package/plugins/runtime-modules/core/widgets/length/config.js +44 -0
- package/plugins/runtime-modules/core/widgets/length/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/length/plugin.js +20 -0
- package/plugins/runtime-modules/core/widgets/locale/authoring.d.ts +2 -0
- package/plugins/runtime-modules/core/widgets/locale/authoring.js +11 -0
- package/plugins/runtime-modules/core/widgets/locale/config.d.ts +13 -0
- package/plugins/runtime-modules/core/widgets/locale/config.js +15 -0
- package/plugins/runtime-modules/core/widgets/locale/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/locale/plugin.js +9 -0
- package/plugins/runtime-modules/core/widgets/locale/server.d.ts +6 -0
- package/plugins/runtime-modules/core/widgets/locale/server.js +29 -0
- package/plugins/runtime-modules/core/widgets/markdown/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/markdown/authoring.js +18 -0
- package/plugins/runtime-modules/core/widgets/markdown/client.d.ts +72 -0
- package/plugins/runtime-modules/core/widgets/markdown/client.js +141 -0
- package/plugins/runtime-modules/core/widgets/markdown/config.d.ts +99 -0
- package/plugins/runtime-modules/core/widgets/markdown/config.js +118 -0
- package/plugins/runtime-modules/core/widgets/markdown/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/markdown/plugin.js +22 -0
- package/plugins/runtime-modules/core/widgets/markdown/server.d.ts +22 -0
- package/plugins/runtime-modules/core/widgets/markdown/server.js +505 -0
- package/plugins/runtime-modules/core/widgets/markdown-toc/authoring.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/markdown-toc/authoring.js +10 -0
- package/plugins/runtime-modules/core/widgets/markdown-toc/client.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/markdown-toc/client.js +64 -0
- package/plugins/runtime-modules/core/widgets/markdown-toc/config.d.ts +126 -0
- package/plugins/runtime-modules/core/widgets/markdown-toc/config.js +71 -0
- package/plugins/runtime-modules/core/widgets/markdown-toc/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/markdown-toc/plugin.js +19 -0
- package/plugins/runtime-modules/core/widgets/markdown-toc/server.d.ts +8 -0
- package/plugins/runtime-modules/core/widgets/markdown-toc/server.js +40 -0
- package/plugins/runtime-modules/core/widgets/multi-select/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/multi-select/authoring.js +19 -0
- package/plugins/runtime-modules/core/widgets/multi-select/client.d.ts +14 -0
- package/plugins/runtime-modules/core/widgets/multi-select/client.js +91 -0
- package/plugins/runtime-modules/core/widgets/multi-select/config.d.ts +135 -0
- package/plugins/runtime-modules/core/widgets/multi-select/config.js +112 -0
- package/plugins/runtime-modules/core/widgets/multi-select/plugin.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/multi-select/plugin.js +9 -0
- package/plugins/runtime-modules/core/widgets/number-input/authoring.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/number-input/authoring.js +9 -0
- package/plugins/runtime-modules/core/widgets/number-input/client.d.ts +12 -0
- package/plugins/runtime-modules/core/widgets/number-input/client.js +38 -0
- package/plugins/runtime-modules/core/widgets/number-input/config.d.ts +78 -0
- package/plugins/runtime-modules/core/widgets/number-input/config.js +43 -0
- package/plugins/runtime-modules/core/widgets/number-input/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/number-input/plugin.js +10 -0
- package/plugins/runtime-modules/core/widgets/otp/authoring.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/otp/authoring.js +9 -0
- package/plugins/runtime-modules/core/widgets/otp/client.d.ts +16 -0
- package/plugins/runtime-modules/core/widgets/otp/client.js +38 -0
- package/plugins/runtime-modules/core/widgets/otp/config.d.ts +91 -0
- package/plugins/runtime-modules/core/widgets/otp/config.js +74 -0
- package/plugins/runtime-modules/core/widgets/otp/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/otp/plugin.js +19 -0
- package/plugins/runtime-modules/core/widgets/page-title/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/page-title/authoring.js +9 -0
- package/plugins/runtime-modules/core/widgets/page-title/client.d.ts +5 -0
- package/plugins/runtime-modules/core/widgets/page-title/client.js +49 -0
- package/plugins/runtime-modules/core/widgets/page-title/config.d.ts +14 -0
- package/plugins/runtime-modules/core/widgets/page-title/config.js +15 -0
- package/plugins/runtime-modules/core/widgets/page-title/plugin.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/page-title/plugin.js +8 -0
- package/plugins/runtime-modules/core/widgets/page-title/server.d.ts +5 -0
- package/plugins/runtime-modules/core/widgets/page-title/server.js +20 -0
- package/plugins/runtime-modules/core/widgets/pagination/authoring.d.ts +2 -0
- package/plugins/runtime-modules/core/widgets/pagination/authoring.js +6 -0
- package/plugins/runtime-modules/core/widgets/pagination/client.d.ts +6 -0
- package/plugins/runtime-modules/core/widgets/pagination/client.js +63 -0
- package/plugins/runtime-modules/core/widgets/pagination/config.d.ts +77 -0
- package/plugins/runtime-modules/core/widgets/pagination/config.js +52 -0
- package/plugins/runtime-modules/core/widgets/pagination/plugin.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/pagination/plugin.js +9 -0
- package/plugins/runtime-modules/core/widgets/profile-email/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/profile-email/authoring.js +8 -0
- package/plugins/runtime-modules/core/widgets/profile-email/client.d.ts +28 -0
- package/plugins/runtime-modules/core/widgets/profile-email/client.js +96 -0
- package/plugins/runtime-modules/core/widgets/profile-email/config.d.ts +12 -0
- package/plugins/runtime-modules/core/widgets/profile-email/config.js +14 -0
- package/plugins/runtime-modules/core/widgets/profile-email/plugin.d.ts +5 -0
- package/plugins/runtime-modules/core/widgets/profile-email/plugin.js +10 -0
- package/plugins/runtime-modules/core/widgets/profile-email/server.d.ts +8 -0
- package/plugins/runtime-modules/core/widgets/profile-email/server.js +16 -0
- package/plugins/runtime-modules/core/widgets/profile-locale/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/profile-locale/authoring.js +8 -0
- package/plugins/runtime-modules/core/widgets/profile-locale/client.d.ts +20 -0
- package/plugins/runtime-modules/core/widgets/profile-locale/client.js +107 -0
- package/plugins/runtime-modules/core/widgets/profile-locale/config.d.ts +12 -0
- package/plugins/runtime-modules/core/widgets/profile-locale/config.js +14 -0
- package/plugins/runtime-modules/core/widgets/profile-locale/plugin.d.ts +5 -0
- package/plugins/runtime-modules/core/widgets/profile-locale/plugin.js +10 -0
- package/plugins/runtime-modules/core/widgets/profile-locale/server.d.ts +8 -0
- package/plugins/runtime-modules/core/widgets/profile-locale/server.js +16 -0
- package/plugins/runtime-modules/core/widgets/profile-name/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/profile-name/authoring.js +8 -0
- package/plugins/runtime-modules/core/widgets/profile-name/client.d.ts +23 -0
- package/plugins/runtime-modules/core/widgets/profile-name/client.js +96 -0
- package/plugins/runtime-modules/core/widgets/profile-name/config.d.ts +12 -0
- package/plugins/runtime-modules/core/widgets/profile-name/config.js +14 -0
- package/plugins/runtime-modules/core/widgets/profile-name/plugin.d.ts +5 -0
- package/plugins/runtime-modules/core/widgets/profile-name/plugin.js +10 -0
- package/plugins/runtime-modules/core/widgets/profile-name/server.d.ts +8 -0
- package/plugins/runtime-modules/core/widgets/profile-name/server.js +16 -0
- package/plugins/runtime-modules/core/widgets/profile-overview/authoring.d.ts +2 -0
- package/plugins/runtime-modules/core/widgets/profile-overview/authoring.js +8 -0
- package/plugins/runtime-modules/core/widgets/profile-overview/client.d.ts +19 -0
- package/plugins/runtime-modules/core/widgets/profile-overview/client.js +73 -0
- package/plugins/runtime-modules/core/widgets/profile-overview/config.d.ts +12 -0
- package/plugins/runtime-modules/core/widgets/profile-overview/config.js +14 -0
- package/plugins/runtime-modules/core/widgets/profile-overview/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/profile-overview/plugin.js +10 -0
- package/plugins/runtime-modules/core/widgets/profile-overview/server.d.ts +5 -0
- package/plugins/runtime-modules/core/widgets/profile-overview/server.js +16 -0
- package/plugins/runtime-modules/core/widgets/profile-password/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/profile-password/authoring.js +8 -0
- package/plugins/runtime-modules/core/widgets/profile-password/client.d.ts +27 -0
- package/plugins/runtime-modules/core/widgets/profile-password/client.js +91 -0
- package/plugins/runtime-modules/core/widgets/profile-password/config.d.ts +12 -0
- package/plugins/runtime-modules/core/widgets/profile-password/config.js +14 -0
- package/plugins/runtime-modules/core/widgets/profile-password/plugin.d.ts +5 -0
- package/plugins/runtime-modules/core/widgets/profile-password/plugin.js +10 -0
- package/plugins/runtime-modules/core/widgets/profile-password/server.d.ts +8 -0
- package/plugins/runtime-modules/core/widgets/profile-password/server.js +16 -0
- package/plugins/runtime-modules/core/widgets/quick-links/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/quick-links/authoring.js +29 -0
- package/plugins/runtime-modules/core/widgets/quick-links/client.d.ts +19 -0
- package/plugins/runtime-modules/core/widgets/quick-links/client.js +114 -0
- package/plugins/runtime-modules/core/widgets/quick-links/config.d.ts +66 -0
- package/plugins/runtime-modules/core/widgets/quick-links/config.js +56 -0
- package/plugins/runtime-modules/core/widgets/quick-links/index.d.ts +1 -0
- package/plugins/runtime-modules/core/widgets/quick-links/index.js +1 -0
- package/plugins/runtime-modules/core/widgets/quick-links/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/quick-links/plugin.js +9 -0
- package/plugins/runtime-modules/core/widgets/quick-links/server.d.ts +10 -0
- package/plugins/runtime-modules/core/widgets/quick-links/server.js +23 -0
- package/plugins/runtime-modules/core/widgets/rate/authoring.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/rate/authoring.js +9 -0
- package/plugins/runtime-modules/core/widgets/rate/client.d.ts +11 -0
- package/plugins/runtime-modules/core/widgets/rate/client.js +41 -0
- package/plugins/runtime-modules/core/widgets/rate/config.d.ts +94 -0
- package/plugins/runtime-modules/core/widgets/rate/config.js +52 -0
- package/plugins/runtime-modules/core/widgets/rate/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/rate/plugin.js +10 -0
- package/plugins/runtime-modules/core/widgets/result/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/result/authoring.js +11 -0
- package/plugins/runtime-modules/core/widgets/result/config.d.ts +249 -0
- package/plugins/runtime-modules/core/widgets/result/config.js +84 -0
- package/plugins/runtime-modules/core/widgets/result/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/result/plugin.js +12 -0
- package/plugins/runtime-modules/core/widgets/result/server.d.ts +7 -0
- package/plugins/runtime-modules/core/widgets/result/server.js +47 -0
- package/plugins/runtime-modules/core/widgets/segmented/authoring.d.ts +1 -0
- package/plugins/runtime-modules/core/widgets/segmented/authoring.js +6 -0
- package/plugins/runtime-modules/core/widgets/segmented/client.d.ts +9 -0
- package/plugins/runtime-modules/core/widgets/segmented/client.js +17 -0
- package/plugins/runtime-modules/core/widgets/segmented/config.d.ts +122 -0
- package/plugins/runtime-modules/core/widgets/segmented/config.js +33 -0
- package/plugins/runtime-modules/core/widgets/segmented/plugin.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/segmented/plugin.js +9 -0
- package/plugins/runtime-modules/core/widgets/select-box/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/select-box/authoring.js +19 -0
- package/plugins/runtime-modules/core/widgets/select-box/client.d.ts +14 -0
- package/plugins/runtime-modules/core/widgets/select-box/client.js +33 -0
- package/plugins/runtime-modules/core/widgets/select-box/config.d.ts +127 -0
- package/plugins/runtime-modules/core/widgets/select-box/config.js +44 -0
- package/plugins/runtime-modules/core/widgets/select-box/plugin.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/select-box/plugin.js +9 -0
- package/plugins/runtime-modules/core/widgets/sidebar-navigation/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/sidebar-navigation/authoring.js +28 -0
- package/plugins/runtime-modules/core/widgets/sidebar-navigation/client.d.ts +9 -0
- package/plugins/runtime-modules/core/widgets/sidebar-navigation/client.js +77 -0
- package/plugins/runtime-modules/core/widgets/sidebar-navigation/config.d.ts +38 -0
- package/plugins/runtime-modules/core/widgets/sidebar-navigation/config.js +55 -0
- package/plugins/runtime-modules/core/widgets/sidebar-navigation/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/sidebar-navigation/plugin.js +9 -0
- package/plugins/runtime-modules/core/widgets/sidebar-navigation/server.d.ts +8 -0
- package/plugins/runtime-modules/core/widgets/sidebar-navigation/server.js +29 -0
- package/plugins/runtime-modules/core/widgets/simple-text/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/simple-text/authoring.js +16 -0
- package/plugins/runtime-modules/core/widgets/simple-text/client.d.ts +26 -0
- package/plugins/runtime-modules/core/widgets/simple-text/client.js +152 -0
- package/plugins/runtime-modules/core/widgets/simple-text/config.d.ts +55 -0
- package/plugins/runtime-modules/core/widgets/simple-text/config.js +141 -0
- package/plugins/runtime-modules/core/widgets/simple-text/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/simple-text/plugin.js +36 -0
- package/plugins/runtime-modules/core/widgets/simple-text/server.d.ts +19 -0
- package/plugins/runtime-modules/core/widgets/simple-text/server.js +15 -0
- package/plugins/runtime-modules/core/widgets/slider/authoring.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/slider/authoring.js +9 -0
- package/plugins/runtime-modules/core/widgets/slider/client.d.ts +12 -0
- package/plugins/runtime-modules/core/widgets/slider/client.js +41 -0
- package/plugins/runtime-modules/core/widgets/slider/config.d.ts +81 -0
- package/plugins/runtime-modules/core/widgets/slider/config.js +73 -0
- package/plugins/runtime-modules/core/widgets/slider/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/slider/plugin.js +10 -0
- package/plugins/runtime-modules/core/widgets/slot-upload/authoring.d.ts +7 -0
- package/plugins/runtime-modules/core/widgets/slot-upload/authoring.js +20 -0
- package/plugins/runtime-modules/core/widgets/slot-upload/client.d.ts +5 -0
- package/plugins/runtime-modules/core/widgets/slot-upload/client.js +183 -0
- package/plugins/runtime-modules/core/widgets/slot-upload/config.d.ts +59 -0
- package/plugins/runtime-modules/core/widgets/slot-upload/config.js +59 -0
- package/plugins/runtime-modules/core/widgets/slot-upload/plugin.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/slot-upload/plugin.js +8 -0
- package/plugins/runtime-modules/core/widgets/slot-upload/server.d.ts +8 -0
- package/plugins/runtime-modules/core/widgets/slot-upload/server.js +10 -0
- package/plugins/runtime-modules/core/widgets/spacer/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/spacer/authoring.js +6 -0
- package/plugins/runtime-modules/core/widgets/spacer/client.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/spacer/client.js +57 -0
- package/plugins/runtime-modules/core/widgets/spacer/config.d.ts +15 -0
- package/plugins/runtime-modules/core/widgets/spacer/config.js +17 -0
- package/plugins/runtime-modules/core/widgets/spacer/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/spacer/plugin.js +10 -0
- package/plugins/runtime-modules/core/widgets/switch/authoring.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/switch/authoring.js +8 -0
- package/plugins/runtime-modules/core/widgets/switch/client.d.ts +12 -0
- package/plugins/runtime-modules/core/widgets/switch/client.js +39 -0
- package/plugins/runtime-modules/core/widgets/switch/config.d.ts +60 -0
- package/plugins/runtime-modules/core/widgets/switch/config.js +40 -0
- package/plugins/runtime-modules/core/widgets/switch/plugin.d.ts +3 -0
- package/plugins/runtime-modules/core/widgets/switch/plugin.js +14 -0
- package/plugins/runtime-modules/core/widgets/table/authoring.d.ts +2 -0
- package/plugins/runtime-modules/core/widgets/table/authoring.js +7 -0
- package/plugins/runtime-modules/core/widgets/table/client.d.ts +21 -0
- package/plugins/runtime-modules/core/widgets/table/client.js +935 -0
- package/plugins/runtime-modules/core/widgets/table/config.d.ts +847 -0
- package/plugins/runtime-modules/core/widgets/table/config.js +1147 -0
- package/plugins/runtime-modules/core/widgets/table/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/table/plugin.js +20 -0
- package/plugins/runtime-modules/core/widgets/table/server.d.ts +7 -0
- package/plugins/runtime-modules/core/widgets/table/server.js +6 -0
- package/plugins/runtime-modules/core/widgets/tree/authoring.d.ts +2 -0
- package/plugins/runtime-modules/core/widgets/tree/authoring.js +7 -0
- package/plugins/runtime-modules/core/widgets/tree/client.d.ts +6 -0
- package/plugins/runtime-modules/core/widgets/tree/client.js +235 -0
- package/plugins/runtime-modules/core/widgets/tree/config.d.ts +241 -0
- package/plugins/runtime-modules/core/widgets/tree/config.js +255 -0
- package/plugins/runtime-modules/core/widgets/tree/plugin.d.ts +4 -0
- package/plugins/runtime-modules/core/widgets/tree/plugin.js +16 -0
- package/plugins/runtime-modules/core/widgets/tree/server.d.ts +6 -0
- package/plugins/runtime-modules/core/widgets/tree/server.js +6 -0
- package/plugins/runtime-modules/core/widgets.d.ts +2 -0
- package/plugins/runtime-modules/core/widgets.js +426 -0
- package/plugins/runtime-modules/dashboard/authoring-client.d.ts +2 -0
- package/plugins/runtime-modules/dashboard/authoring-client.js +14 -0
- package/plugins/runtime-modules/dashboard/client.d.ts +2 -0
- package/plugins/runtime-modules/dashboard/client.js +13 -0
- package/plugins/runtime-modules/dashboard/controller/address.d.ts +5 -0
- package/plugins/runtime-modules/dashboard/controller/address.js +8 -0
- package/plugins/runtime-modules/dashboard/controller/client.d.ts +18 -0
- package/plugins/runtime-modules/dashboard/controller/client.js +8 -0
- package/plugins/runtime-modules/dashboard/controller/definition.d.ts +16 -0
- package/plugins/runtime-modules/dashboard/controller/definition.js +13 -0
- package/plugins/runtime-modules/dashboard/definition.d.ts +13 -0
- package/plugins/runtime-modules/dashboard/definition.js +25 -0
- package/plugins/runtime-modules/dashboard/ids.d.ts +1 -0
- package/plugins/runtime-modules/dashboard/ids.js +2 -0
- package/plugins/runtime-modules/dashboard/module.d.ts +28 -0
- package/plugins/runtime-modules/dashboard/module.js +6 -0
- package/plugins/runtime-modules/dashboard/presets.d.ts +2 -0
- package/plugins/runtime-modules/dashboard/presets.js +77 -0
- package/plugins/runtime-modules/dashboard/server.d.ts +10 -0
- package/plugins/runtime-modules/dashboard/server.js +24 -0
- package/plugins/runtime-modules/descriptor-compiler.d.ts +105 -0
- package/plugins/runtime-modules/descriptor-compiler.js +1390 -0
- package/plugins/runtime-modules/editor/authoring-widgets.d.ts +2 -0
- package/plugins/runtime-modules/editor/authoring-widgets.js +3 -0
- package/plugins/runtime-modules/editor/authoring.d.ts +1 -0
- package/plugins/runtime-modules/editor/authoring.js +8 -0
- package/plugins/runtime-modules/editor/client.d.ts +1 -0
- package/plugins/runtime-modules/editor/client.js +7 -0
- package/plugins/runtime-modules/editor/controller/address.d.ts +5 -0
- package/plugins/runtime-modules/editor/controller/address.js +8 -0
- package/plugins/runtime-modules/editor/controller/client.d.ts +18 -0
- package/plugins/runtime-modules/editor/controller/client.js +8 -0
- package/plugins/runtime-modules/editor/controller/definition.d.ts +16 -0
- package/plugins/runtime-modules/editor/controller/definition.js +13 -0
- package/plugins/runtime-modules/editor/definition.d.ts +15 -0
- package/plugins/runtime-modules/editor/definition.js +17 -0
- package/plugins/runtime-modules/editor/ids.d.ts +1 -0
- package/plugins/runtime-modules/editor/ids.js +2 -0
- package/plugins/runtime-modules/editor/module.d.ts +28 -0
- package/plugins/runtime-modules/editor/module.js +6 -0
- package/plugins/runtime-modules/editor/presets.d.ts +9 -0
- package/plugins/runtime-modules/editor/presets.js +25 -0
- package/plugins/runtime-modules/editor/server.d.ts +1 -0
- package/plugins/runtime-modules/editor/server.js +14 -0
- package/plugins/runtime-modules/form-builder/authoring-widgets.d.ts +2 -0
- package/plugins/runtime-modules/form-builder/authoring-widgets.js +3 -0
- package/plugins/runtime-modules/form-builder/authoring.d.ts +1 -0
- package/plugins/runtime-modules/form-builder/authoring.js +8 -0
- package/plugins/runtime-modules/form-builder/client.d.ts +1 -0
- package/plugins/runtime-modules/form-builder/client.js +7 -0
- package/plugins/runtime-modules/form-builder/definition.d.ts +13 -0
- package/plugins/runtime-modules/form-builder/definition.js +18 -0
- package/plugins/runtime-modules/form-builder/ids.d.ts +1 -0
- package/plugins/runtime-modules/form-builder/ids.js +2 -0
- package/plugins/runtime-modules/form-builder/module.d.ts +28 -0
- package/plugins/runtime-modules/form-builder/module.js +6 -0
- package/plugins/runtime-modules/form-builder/server.d.ts +1 -0
- package/plugins/runtime-modules/form-builder/server.js +11 -0
- package/plugins/runtime-modules/groups/addresses.d.ts +7 -0
- package/plugins/runtime-modules/groups/addresses.js +31 -0
- package/plugins/runtime-modules/groups/authoring.d.ts +1 -0
- package/plugins/runtime-modules/groups/authoring.js +4 -0
- package/plugins/runtime-modules/groups/client-data-providers.d.ts +7 -0
- package/plugins/runtime-modules/groups/client-data-providers.js +29 -0
- package/plugins/runtime-modules/groups/client.d.ts +1 -0
- package/plugins/runtime-modules/groups/client.js +7 -0
- package/plugins/runtime-modules/groups/controller/address.d.ts +5 -0
- package/plugins/runtime-modules/groups/controller/address.js +8 -0
- package/plugins/runtime-modules/groups/controller/client.d.ts +52 -0
- package/plugins/runtime-modules/groups/controller/client.js +118 -0
- package/plugins/runtime-modules/groups/controller/definition.d.ts +57 -0
- package/plugins/runtime-modules/groups/controller/definition.js +58 -0
- package/plugins/runtime-modules/groups/data-providers.d.ts +230 -0
- package/plugins/runtime-modules/groups/data-providers.js +211 -0
- package/plugins/runtime-modules/groups/definition.d.ts +298 -0
- package/plugins/runtime-modules/groups/definition.js +46 -0
- package/plugins/runtime-modules/groups/forms.d.ts +55 -0
- package/plugins/runtime-modules/groups/forms.js +263 -0
- package/plugins/runtime-modules/groups/ids.d.ts +7 -0
- package/plugins/runtime-modules/groups/ids.js +9 -0
- package/plugins/runtime-modules/groups/labels.d.ts +90 -0
- package/plugins/runtime-modules/groups/labels.js +165 -0
- package/plugins/runtime-modules/groups/module.d.ts +335 -0
- package/plugins/runtime-modules/groups/module.js +6 -0
- package/plugins/runtime-modules/groups/page-visibility.d.ts +14 -0
- package/plugins/runtime-modules/groups/page-visibility.js +15 -0
- package/plugins/runtime-modules/groups/presets.d.ts +56 -0
- package/plugins/runtime-modules/groups/presets.js +51 -0
- package/plugins/runtime-modules/groups/server.d.ts +1 -0
- package/plugins/runtime-modules/groups/server.js +17 -0
- package/plugins/runtime-modules/groups/services/options-revision.d.ts +9 -0
- package/plugins/runtime-modules/groups/services/options-revision.js +11 -0
- package/plugins/runtime-modules/groups/services/options.d.ts +10 -0
- package/plugins/runtime-modules/groups/services/options.js +127 -0
- package/plugins/runtime-modules/groups/services/table.d.ts +3 -0
- package/plugins/runtime-modules/groups/services/table.js +213 -0
- package/plugins/runtime-modules/localization/authoring-widgets.d.ts +2 -0
- package/plugins/runtime-modules/localization/authoring-widgets.js +3 -0
- package/plugins/runtime-modules/localization/authoring.d.ts +1 -0
- package/plugins/runtime-modules/localization/authoring.js +8 -0
- package/plugins/runtime-modules/localization/client-data-providers.d.ts +11 -0
- package/plugins/runtime-modules/localization/client-data-providers.js +35 -0
- package/plugins/runtime-modules/localization/client.d.ts +1 -0
- package/plugins/runtime-modules/localization/client.js +7 -0
- package/plugins/runtime-modules/localization/controller/address.d.ts +5 -0
- package/plugins/runtime-modules/localization/controller/address.js +8 -0
- package/plugins/runtime-modules/localization/controller/client.d.ts +93 -0
- package/plugins/runtime-modules/localization/controller/client.js +254 -0
- package/plugins/runtime-modules/localization/controller/definition.d.ts +88 -0
- package/plugins/runtime-modules/localization/controller/definition.js +80 -0
- package/plugins/runtime-modules/localization/data-providers.d.ts +250 -0
- package/plugins/runtime-modules/localization/data-providers.js +168 -0
- package/plugins/runtime-modules/localization/definition.d.ts +285 -0
- package/plugins/runtime-modules/localization/definition.js +24 -0
- package/plugins/runtime-modules/localization/forms.d.ts +24 -0
- package/plugins/runtime-modules/localization/forms.js +170 -0
- package/plugins/runtime-modules/localization/ids.d.ts +8 -0
- package/plugins/runtime-modules/localization/ids.js +10 -0
- package/plugins/runtime-modules/localization/module.d.ts +372 -0
- package/plugins/runtime-modules/localization/module.js +6 -0
- package/plugins/runtime-modules/localization/presets.d.ts +25 -0
- package/plugins/runtime-modules/localization/presets.js +23 -0
- package/plugins/runtime-modules/localization/server.d.ts +1 -0
- package/plugins/runtime-modules/localization/server.js +17 -0
- package/plugins/runtime-modules/localization/services/options.d.ts +12 -0
- package/plugins/runtime-modules/localization/services/options.js +107 -0
- package/plugins/runtime-modules/localization/services/table.d.ts +4 -0
- package/plugins/runtime-modules/localization/services/table.js +293 -0
- package/plugins/runtime-modules/module-labels.server.d.ts +4 -0
- package/plugins/runtime-modules/module-labels.server.js +57 -0
- package/plugins/runtime-modules/observability/authoring-widgets.d.ts +2 -0
- package/plugins/runtime-modules/observability/authoring-widgets.js +7 -0
- package/plugins/runtime-modules/observability/authoring.d.ts +1 -0
- package/plugins/runtime-modules/observability/authoring.js +8 -0
- package/plugins/runtime-modules/observability/client-data-providers.d.ts +7 -0
- package/plugins/runtime-modules/observability/client-data-providers.js +11 -0
- package/plugins/runtime-modules/observability/data-providers.d.ts +47 -0
- package/plugins/runtime-modules/observability/data-providers.js +46 -0
- package/plugins/runtime-modules/observability/definition.d.ts +62 -0
- package/plugins/runtime-modules/observability/definition.js +16 -0
- package/plugins/runtime-modules/observability/ids.d.ts +4 -0
- package/plugins/runtime-modules/observability/ids.js +6 -0
- package/plugins/runtime-modules/observability/module.d.ts +62 -0
- package/plugins/runtime-modules/observability/module.js +4 -0
- package/plugins/runtime-modules/observability/presets.d.ts +30 -0
- package/plugins/runtime-modules/observability/presets.js +25 -0
- package/plugins/runtime-modules/observability/server.d.ts +1 -0
- package/plugins/runtime-modules/observability/server.js +14 -0
- package/plugins/runtime-modules/observability/services/table.d.ts +3 -0
- package/plugins/runtime-modules/observability/services/table.js +81 -0
- package/plugins/runtime-modules/observability/widgets/log-detail/authoring.d.ts +3 -0
- package/plugins/runtime-modules/observability/widgets/log-detail/authoring.js +8 -0
- package/plugins/runtime-modules/observability/widgets/log-detail/client.d.ts +56 -0
- package/plugins/runtime-modules/observability/widgets/log-detail/client.js +125 -0
- package/plugins/runtime-modules/observability/widgets/log-detail/config.d.ts +58 -0
- package/plugins/runtime-modules/observability/widgets/log-detail/config.js +71 -0
- package/plugins/runtime-modules/observability/widgets/log-detail/plugin.d.ts +3 -0
- package/plugins/runtime-modules/observability/widgets/log-detail/plugin.js +8 -0
- package/plugins/runtime-modules/observability/widgets/log-detail/server.d.ts +7 -0
- package/plugins/runtime-modules/observability/widgets/log-detail/server.js +13 -0
- package/plugins/runtime-modules/observability/widgets.d.ts +2 -0
- package/plugins/runtime-modules/observability/widgets.js +16 -0
- package/plugins/runtime-modules/preset-contracts/pub-area.d.ts +4 -0
- package/plugins/runtime-modules/preset-contracts/pub-area.js +30 -0
- package/plugins/runtime-modules/preset-version.d.ts +2 -0
- package/plugins/runtime-modules/preset-version.js +7 -0
- package/plugins/runtime-modules/public/authoring.d.ts +1 -0
- package/plugins/runtime-modules/public/authoring.js +4 -0
- package/plugins/runtime-modules/public/client.d.ts +1 -0
- package/plugins/runtime-modules/public/client.js +7 -0
- package/plugins/runtime-modules/public/definition.d.ts +32 -0
- package/plugins/runtime-modules/public/definition.js +19 -0
- package/plugins/runtime-modules/public/ids.d.ts +1 -0
- package/plugins/runtime-modules/public/ids.js +2 -0
- package/plugins/runtime-modules/public/module.d.ts +1 -0
- package/plugins/runtime-modules/public/module.js +4 -0
- package/plugins/runtime-modules/public/server.d.ts +5 -0
- package/plugins/runtime-modules/public/server.js +25 -0
- package/plugins/runtime-modules/render-mode.d.ts +5 -0
- package/plugins/runtime-modules/render-mode.js +17 -0
- package/plugins/runtime-modules/resolver.d.ts +33 -0
- package/plugins/runtime-modules/resolver.js +634 -0
- package/plugins/runtime-modules/revisions/authoring-client.d.ts +2 -0
- package/plugins/runtime-modules/revisions/authoring-client.js +13 -0
- package/plugins/runtime-modules/revisions/authoring-widgets.d.ts +2 -0
- package/plugins/runtime-modules/revisions/authoring-widgets.js +2 -0
- package/plugins/runtime-modules/revisions/client-data-providers.d.ts +7 -0
- package/plugins/runtime-modules/revisions/client-data-providers.js +17 -0
- package/plugins/runtime-modules/revisions/client.d.ts +2 -0
- package/plugins/runtime-modules/revisions/client.js +13 -0
- package/plugins/runtime-modules/revisions/controller/address.d.ts +5 -0
- package/plugins/runtime-modules/revisions/controller/address.js +8 -0
- package/plugins/runtime-modules/revisions/controller/client.d.ts +38 -0
- package/plugins/runtime-modules/revisions/controller/client.js +192 -0
- package/plugins/runtime-modules/revisions/controller/definition.d.ts +33 -0
- package/plugins/runtime-modules/revisions/controller/definition.js +47 -0
- package/plugins/runtime-modules/revisions/data-providers.d.ts +104 -0
- package/plugins/runtime-modules/revisions/data-providers.js +69 -0
- package/plugins/runtime-modules/revisions/definition.d.ts +117 -0
- package/plugins/runtime-modules/revisions/definition.js +20 -0
- package/plugins/runtime-modules/revisions/ids.d.ts +5 -0
- package/plugins/runtime-modules/revisions/ids.js +7 -0
- package/plugins/runtime-modules/revisions/module.d.ts +149 -0
- package/plugins/runtime-modules/revisions/module.js +6 -0
- package/plugins/runtime-modules/revisions/presets.d.ts +141 -0
- package/plugins/runtime-modules/revisions/presets.js +29 -0
- package/plugins/runtime-modules/revisions/server.d.ts +1 -0
- package/plugins/runtime-modules/revisions/server.js +14 -0
- package/plugins/runtime-modules/revisions/services/options.d.ts +3 -0
- package/plugins/runtime-modules/revisions/services/options.js +94 -0
- package/plugins/runtime-modules/revisions/services/table.d.ts +3 -0
- package/plugins/runtime-modules/revisions/services/table.js +426 -0
- package/plugins/runtime-modules/revisions/types.d.ts +65 -0
- package/plugins/runtime-modules/revisions/types.js +54 -0
- package/plugins/runtime-modules/revisions/widgets.d.ts +2 -0
- package/plugins/runtime-modules/revisions/widgets.js +1 -0
- package/plugins/runtime-modules/route-page-resolution.d.ts +8 -0
- package/plugins/runtime-modules/route-page-resolution.js +16 -0
- package/plugins/runtime-modules/runtime-calendar-adapters.d.ts +15 -0
- package/plugins/runtime-modules/runtime-calendar-adapters.js +17 -0
- package/plugins/runtime-modules/server-capabilities.d.ts +15 -0
- package/plugins/runtime-modules/server-capabilities.js +48 -0
- package/plugins/runtime-modules/settings.d.ts +57 -0
- package/plugins/runtime-modules/settings.js +154 -0
- package/plugins/runtime-modules/shell-tree-composition.d.ts +104 -0
- package/plugins/runtime-modules/shell-tree-composition.js +103 -0
- package/plugins/runtime-modules/site-module-client-manifests.d.ts +41 -0
- package/plugins/runtime-modules/site-module-client-manifests.js +31 -0
- package/plugins/runtime-modules/site-module-contributions.d.ts +28 -0
- package/plugins/runtime-modules/site-module-contributions.js +33 -0
- package/plugins/runtime-modules/site-modules-authoring-client.d.ts +18 -0
- package/plugins/runtime-modules/site-modules-authoring-client.js +5 -0
- package/plugins/runtime-modules/site-modules-client.d.ts +37 -0
- package/plugins/runtime-modules/site-modules-client.js +6 -0
- package/plugins/runtime-modules/site-modules.d.ts +21 -0
- package/plugins/runtime-modules/site-modules.js +2 -0
- package/plugins/runtime-modules/theme/authoring-widgets.d.ts +2 -0
- package/plugins/runtime-modules/theme/authoring-widgets.js +10 -0
- package/plugins/runtime-modules/theme/authoring.d.ts +1 -0
- package/plugins/runtime-modules/theme/authoring.js +8 -0
- package/plugins/runtime-modules/theme/block-catalog.d.ts +15 -0
- package/plugins/runtime-modules/theme/block-catalog.js +33 -0
- package/plugins/runtime-modules/theme/block-descriptors.d.ts +26 -0
- package/plugins/runtime-modules/theme/block-descriptors.js +30 -0
- package/plugins/runtime-modules/theme/blocks/alpine-ground-image.d.ts +17 -0
- package/plugins/runtime-modules/theme/blocks/alpine-ground-image.js +17 -0
- package/plugins/runtime-modules/theme/blocks/alpine-ground.jpg +0 -0
- package/plugins/runtime-modules/theme/blocks/alpine.d.ts +19 -0
- package/plugins/runtime-modules/theme/blocks/alpine.js +76 -0
- package/plugins/runtime-modules/theme/client-data-providers.d.ts +10 -0
- package/plugins/runtime-modules/theme/client-data-providers.js +21 -0
- package/plugins/runtime-modules/theme/client.d.ts +1 -0
- package/plugins/runtime-modules/theme/client.js +7 -0
- package/plugins/runtime-modules/theme/controller/address.d.ts +5 -0
- package/plugins/runtime-modules/theme/controller/address.js +8 -0
- package/plugins/runtime-modules/theme/controller/client.d.ts +61 -0
- package/plugins/runtime-modules/theme/controller/client.js +18 -0
- package/plugins/runtime-modules/theme/controller/definition.d.ts +67 -0
- package/plugins/runtime-modules/theme/controller/definition.js +76 -0
- package/plugins/runtime-modules/theme/controller/server-definition.d.ts +59 -0
- package/plugins/runtime-modules/theme/controller/server-definition.js +10 -0
- package/plugins/runtime-modules/theme/controller/signals.d.ts +8 -0
- package/plugins/runtime-modules/theme/controller/signals.js +8 -0
- package/plugins/runtime-modules/theme/data-providers.d.ts +9 -0
- package/plugins/runtime-modules/theme/data-providers.js +22 -0
- package/plugins/runtime-modules/theme/definition.d.ts +22 -0
- package/plugins/runtime-modules/theme/definition.js +20 -0
- package/plugins/runtime-modules/theme/ids.d.ts +5 -0
- package/plugins/runtime-modules/theme/ids.js +7 -0
- package/plugins/runtime-modules/theme/materialize-images.d.ts +34 -0
- package/plugins/runtime-modules/theme/materialize-images.js +159 -0
- package/plugins/runtime-modules/theme/module.d.ts +79 -0
- package/plugins/runtime-modules/theme/module.js +6 -0
- package/plugins/runtime-modules/theme/presets.d.ts +141 -0
- package/plugins/runtime-modules/theme/presets.js +29 -0
- package/plugins/runtime-modules/theme/server.d.ts +1 -0
- package/plugins/runtime-modules/theme/server.js +16 -0
- package/plugins/runtime-modules/theme/services/options.d.ts +6 -0
- package/plugins/runtime-modules/theme/services/options.js +11 -0
- package/plugins/runtime-modules/theme/set-options.d.ts +18 -0
- package/plugins/runtime-modules/theme/set-options.js +37 -0
- package/plugins/runtime-modules/theme/theme-descriptors.d.ts +80 -0
- package/plugins/runtime-modules/theme/theme-descriptors.js +34 -0
- package/plugins/runtime-modules/theme/widgets/brand-controls/authoring.d.ts +76 -0
- package/plugins/runtime-modules/theme/widgets/brand-controls/authoring.js +30 -0
- package/plugins/runtime-modules/theme/widgets/brand-controls/client.d.ts +40 -0
- package/plugins/runtime-modules/theme/widgets/brand-controls/client.js +2467 -0
- package/plugins/runtime-modules/theme/widgets/brand-controls/config.d.ts +13 -0
- package/plugins/runtime-modules/theme/widgets/brand-controls/config.js +119 -0
- package/plugins/runtime-modules/theme/widgets/brand-controls/plugin.d.ts +7 -0
- package/plugins/runtime-modules/theme/widgets/brand-controls/plugin.js +30 -0
- package/plugins/runtime-modules/theme/widgets.d.ts +2 -0
- package/plugins/runtime-modules/theme/widgets.js +42 -0
- package/plugins/runtime-modules/user-management/addresses.d.ts +3 -0
- package/plugins/runtime-modules/user-management/addresses.js +17 -0
- package/plugins/runtime-modules/user-management/authoring-widgets.d.ts +2 -0
- package/plugins/runtime-modules/user-management/authoring-widgets.js +3 -0
- package/plugins/runtime-modules/user-management/authoring.d.ts +1 -0
- package/plugins/runtime-modules/user-management/authoring.js +8 -0
- package/plugins/runtime-modules/user-management/client-data-providers.d.ts +7 -0
- package/plugins/runtime-modules/user-management/client-data-providers.js +11 -0
- package/plugins/runtime-modules/user-management/client.d.ts +1 -0
- package/plugins/runtime-modules/user-management/client.js +7 -0
- package/plugins/runtime-modules/user-management/controller/address.d.ts +5 -0
- package/plugins/runtime-modules/user-management/controller/address.js +8 -0
- package/plugins/runtime-modules/user-management/controller/client.d.ts +68 -0
- package/plugins/runtime-modules/user-management/controller/client.js +316 -0
- package/plugins/runtime-modules/user-management/controller/definition.d.ts +66 -0
- package/plugins/runtime-modules/user-management/controller/definition.js +67 -0
- package/plugins/runtime-modules/user-management/data-providers.d.ts +157 -0
- package/plugins/runtime-modules/user-management/data-providers.js +84 -0
- package/plugins/runtime-modules/user-management/definition.d.ts +192 -0
- package/plugins/runtime-modules/user-management/definition.js +24 -0
- package/plugins/runtime-modules/user-management/forms.d.ts +24 -0
- package/plugins/runtime-modules/user-management/forms.js +219 -0
- package/plugins/runtime-modules/user-management/ids.d.ts +4 -0
- package/plugins/runtime-modules/user-management/ids.js +6 -0
- package/plugins/runtime-modules/user-management/module.d.ts +257 -0
- package/plugins/runtime-modules/user-management/module.js +6 -0
- package/plugins/runtime-modules/user-management/presets.d.ts +30 -0
- package/plugins/runtime-modules/user-management/presets.js +30 -0
- package/plugins/runtime-modules/user-management/server.d.ts +1 -0
- package/plugins/runtime-modules/user-management/server.js +15 -0
- package/plugins/runtime-modules/user-management/services/table.d.ts +3 -0
- package/plugins/runtime-modules/user-management/services/table.js +207 -0
- package/references.d.ts +1 -0
- package/references.js +1 -0
- package/root.d.ts +4 -0
- package/root.js +2 -0
- package/runtime-authoring-client.d.ts +8 -0
- package/runtime-authoring-client.js +6 -0
- package/runtime-authoring-manifest-client.d.ts +4 -0
- package/runtime-authoring-manifest-client.js +3 -0
- package/runtime-calendar-adapter-client.d.ts +3 -0
- package/runtime-calendar-adapter-client.js +2 -0
- package/runtime-client-manifests-accounting.d.ts +1 -0
- package/runtime-client-manifests-accounting.js +1 -0
- package/runtime-client-manifests-admin.d.ts +1 -0
- package/runtime-client-manifests-admin.js +1 -0
- package/runtime-client-manifests-app.d.ts +1 -0
- package/runtime-client-manifests-app.js +1 -0
- package/runtime-client-manifests-builder.d.ts +2 -0
- package/runtime-client-manifests-builder.js +2 -0
- package/runtime-client-manifests-editor.d.ts +1 -0
- package/runtime-client-manifests-editor.js +1 -0
- package/runtime-client-manifests-public.d.ts +5 -0
- package/runtime-client-manifests-public.js +1 -0
- package/runtime-controller-client.d.ts +7 -0
- package/runtime-controller-client.js +5 -0
- package/runtime-data-provider-client.d.ts +20 -0
- package/runtime-data-provider-client.js +19 -0
- package/runtime-render-client.d.ts +2 -0
- package/runtime-render-client.js +1 -0
- package/runtime-signal-client.d.ts +5 -0
- package/runtime-signal-client.js +5 -0
- package/runtime.d.ts +2 -0
- package/runtime.js +1 -0
- package/server-helpers/area-root-route.d.ts +36 -0
- package/server-helpers/area-root-route.js +67 -0
- package/server-helpers/cms-area.d.ts +11 -0
- package/server-helpers/cms-area.js +55 -0
- package/server-helpers/cms-node-features.d.ts +20 -0
- package/server-helpers/cms-node-features.js +65 -0
- package/server-helpers/cms-request.d.ts +41 -0
- package/server-helpers/cms-request.js +325 -0
- package/server-helpers/cms-review.d.ts +19 -0
- package/server-helpers/cms-review.js +71 -0
- package/server-helpers/cms-root.d.ts +64 -0
- package/server-helpers/cms-root.js +251 -0
- package/server-helpers/cms-route.d.ts +11 -0
- package/server-helpers/cms-route.js +57 -0
- package/server-helpers/cms.d.ts +20 -0
- package/server-helpers/cms.js +44 -0
- package/server-helpers/phi-runtime.d.ts +12 -0
- package/server-helpers/phi-runtime.js +48 -0
- package/server-helpers/public-login-route.d.ts +21 -0
- package/server-helpers/public-login-route.js +92 -0
- package/server-helpers/request-locale.d.ts +6 -0
- package/server-helpers/request-locale.js +31 -0
- package/server-helpers/request-runtime.d.ts +16 -0
- package/server-helpers/request-runtime.js +53 -0
- package/server-helpers/root-layout.d.ts +13 -0
- package/server-helpers/root-layout.js +77 -0
- package/server-helpers/runtime.d.ts +214 -0
- package/server-helpers/runtime.js +178 -0
- package/server-helpers/site-locale.d.ts +14 -0
- package/server-helpers/site-locale.js +136 -0
- package/server-helpers/static-render.d.ts +9 -0
- package/server-helpers/static-render.js +18 -0
- package/server-helpers/translate.d.ts +13 -0
- package/server-helpers/translate.js +123 -0
- package/server-helpers.d.ts +8 -0
- package/server-helpers.js +8 -0
- package/shells.d.ts +3 -0
- package/shells.js +2 -0
- package/state.d.ts +1 -0
- package/state.js +1 -0
- package/styles/builder-scaffold.css +452 -0
- package/styles/control-shape.css +71 -0
- package/styles/layout-affordances.css +58 -0
- package/styles/layout-authoring-scaffold.css +584 -0
- package/styles/layout.css +337 -0
- package/styles/root.css +213 -0
- package/styles/shell.css +421 -0
- package/theme/antd-css-var-contract.d.ts +88 -0
- package/theme/antd-css-var-contract.js +88 -0
- package/theme/phi-antd-token-resolver.d.ts +4 -0
- package/theme/phi-antd-token-resolver.js +49 -0
- package/theme/phi-button-shadow.d.ts +33 -0
- package/theme/phi-button-shadow.js +64 -0
- package/theme/phi-container-breakpoints.d.ts +2 -0
- package/theme/phi-container-breakpoints.js +2 -0
- package/theme/phi-control-shape.d.ts +102 -0
- package/theme/phi-control-shape.js +149 -0
- package/theme/phi-css-vars.d.ts +10 -0
- package/theme/phi-css-vars.js +61 -0
- package/theme/phi-font-catalogue-contract.d.ts +20 -0
- package/theme/phi-font-catalogue-contract.js +12 -0
- package/theme/phi-font-catalogue.d.ts +30 -0
- package/theme/phi-font-catalogue.js +75 -0
- package/theme/phi-font-face.d.ts +72 -0
- package/theme/phi-font-face.js +145 -0
- package/theme/phi-published-root-style.d.ts +15 -0
- package/theme/phi-published-root-style.js +18 -0
- package/theme/phi-root-background.server.d.ts +15 -0
- package/theme/phi-root-background.server.js +43 -0
- package/theme/phi-server-tokens.d.ts +54 -0
- package/theme/phi-server-tokens.js +77 -0
- package/theme/phi-theme-adoption.d.ts +73 -0
- package/theme/phi-theme-adoption.js +93 -0
- package/theme/phi-theme-blocks.d.ts +142 -0
- package/theme/phi-theme-blocks.js +154 -0
- package/theme/phi-theme-brand-logo.d.ts +12 -0
- package/theme/phi-theme-brand-logo.js +12 -0
- package/theme/phi-theme-composition.d.ts +111 -0
- package/theme/phi-theme-composition.js +122 -0
- package/theme/phi-theme-fonts.server.d.ts +47 -0
- package/theme/phi-theme-fonts.server.js +85 -0
- package/theme/phi-theme-ground-image.d.ts +17 -0
- package/theme/phi-theme-ground-image.js +17 -0
- package/theme/phi-theme-mode.d.ts +47 -0
- package/theme/phi-theme-mode.js +84 -0
- package/theme/phi-theme-palette.d.ts +17 -0
- package/theme/phi-theme-palette.js +35 -0
- package/theme/phi-theme-presets.d.ts +103 -0
- package/theme/phi-theme-presets.js +122 -0
- package/theme/phi-theme-runtime.d.ts +57 -0
- package/theme/phi-theme-runtime.js +56 -0
- package/theme/phi-theme-selection.d.ts +73 -0
- package/theme/phi-theme-selection.js +101 -0
- package/theme/phi-theme-typography.d.ts +35 -0
- package/theme/phi-theme-typography.js +39 -0
- package/theme/phi-theme.d.ts +60 -0
- package/theme/phi-theme.js +63 -0
- package/theme/phi-tokens.d.ts +60 -0
- package/theme/phi-tokens.js +51 -0
- package/theme.d.ts +9 -0
- package/theme.js +9 -0
- package/types/access.d.ts +83 -0
- package/types/access.js +95 -0
- package/types/auth-manifest.d.ts +25 -0
- package/types/auth-manifest.js +1 -0
- package/types/builder.d.ts +44 -0
- package/types/builder.js +1 -0
- package/types/calendar.d.ts +175 -0
- package/types/calendar.js +88 -0
- package/types/cms-config.d.ts +198 -0
- package/types/cms-config.js +551 -0
- package/types/cms-container.d.ts +16 -0
- package/types/cms-container.js +1 -0
- package/types/cms-instance-id.d.ts +20 -0
- package/types/cms-instance-id.js +30 -0
- package/types/cms-module-descriptors.d.ts +333 -0
- package/types/cms-module-descriptors.js +1 -0
- package/types/cms-mount-policy.d.ts +71 -0
- package/types/cms-mount-policy.js +77 -0
- package/types/cms-overlay.d.ts +49 -0
- package/types/cms-overlay.js +114 -0
- package/types/cms-plugins.d.ts +647 -0
- package/types/cms-plugins.js +1 -0
- package/types/cms-presets.d.ts +84 -0
- package/types/cms-presets.js +1 -0
- package/types/cms.d.ts +155 -0
- package/types/cms.js +1 -0
- package/types/collection-provider.d.ts +79 -0
- package/types/collection-provider.js +1 -0
- package/types/control.d.ts +10 -0
- package/types/control.js +13 -0
- package/types/core-runtime-controller.d.ts +48 -0
- package/types/core-runtime-controller.js +134 -0
- package/types/dimension.d.ts +2 -0
- package/types/dimension.js +16 -0
- package/types/form-descriptor.d.ts +182 -0
- package/types/form-descriptor.js +3 -0
- package/types/form-id.d.ts +5 -0
- package/types/form-id.js +30 -0
- package/types/layout-style.d.ts +24 -0
- package/types/layout-style.js +34 -0
- package/types/length.d.ts +10 -0
- package/types/length.js +33 -0
- package/types/media.d.ts +220 -0
- package/types/media.js +13 -0
- package/types/references.d.ts +30 -0
- package/types/references.js +114 -0
- package/types/renderable-block.d.ts +107 -0
- package/types/renderable-block.js +1 -0
- package/types/responsive.d.ts +11 -0
- package/types/responsive.js +8 -0
- package/types/runtime-condition.d.ts +92 -0
- package/types/runtime-condition.js +179 -0
- package/types/runtime-data-provider.d.ts +10 -0
- package/types/runtime-data-provider.js +7 -0
- package/types/runtime-module-locale.d.ts +5 -0
- package/types/runtime-module-locale.js +17 -0
- package/types/server-capabilities.d.ts +24 -0
- package/types/server-capabilities.js +15 -0
- package/types/signals.d.ts +170 -0
- package/types/signals.js +304 -0
- package/types/site-theme.d.ts +136 -0
- package/types/site-theme.js +1 -0
- package/types/slot-size-policy.d.ts +10 -0
- package/types/slot-size-policy.js +1 -0
- package/types/spacing.d.ts +3 -0
- package/types/spacing.js +14 -0
- package/types/table-widget.d.ts +532 -0
- package/types/table-widget.js +581 -0
- package/types/tree-widget.d.ts +205 -0
- package/types/tree-widget.js +101 -0
- package/types/tree.d.ts +7 -0
- package/types/tree.js +1 -0
- package/types/widget-runtime.d.ts +154 -0
- package/types/widget-runtime.js +1 -0
- package/types/widget-ui.d.ts +1 -0
- package/types/widget-ui.js +1 -0
- package/types.d.ts +69 -0
- package/types.js +21 -0
- package/widget-config.d.ts +9 -0
- package/widget-config.js +8 -0
- package/widgets.d.ts +64 -0
- package/widgets.js +36 -0
|
@@ -0,0 +1,2467 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
4
|
+
import { Card, Collapse, ConfigProvider, Divider, Flex, Space, Statistic, Typography, theme as antdTheme } from "antd";
|
|
5
|
+
import { DeleteOutlined } from "@ant-design/icons";
|
|
6
|
+
import { usePhiSignalDispatcher, usePhiSignalListener } from "../../../../../components/runtime/runtime-signal-bus";
|
|
7
|
+
import { usePhiSignalIdentity } from "../../../../../components/runtime/runtime-signal-identity";
|
|
8
|
+
import { usePhiApplicationFeedback } from "../../../../../components/runtime/use-phi-application-feedback";
|
|
9
|
+
import { PHI_SIGNAL_VALUE_SCHEMAS } from "../../../../../types/signals";
|
|
10
|
+
import { createPhiThemeControllerAddress } from "../../../../../plugins/runtime-modules/theme/controller/address";
|
|
11
|
+
import { PHI_THEME_SIGNAL_CHANNELS } from "../../../../../plugins/runtime-modules/theme/controller/signals";
|
|
12
|
+
import { createPhiCoreRuntimeControllerAddress } from "../../../../../components/runtime/core-runtime-controller-address";
|
|
13
|
+
import { PHI_DEFAULT_THEME_PRESET_KEY, PHI_DEFAULT_THEME_PRESET_VERSION, PHI_THEME_CUSTOM_COLOR_KEYS, isPhiThemePaletteModeSeedKey, mergePhiThemePalettes, resolvePhiThemeColorTokens, resolvePhiThemePresetPlugin, } from "../../../../../theme/phi-theme-presets";
|
|
14
|
+
import { buildPhiThemeCustomColorPalette, resolvePhiThemePaletteCustomColors, resolvePhiThemePresetCustomColors, } from "../../../../../theme/phi-theme-palette";
|
|
15
|
+
import { usePhiConfig } from "../../../../../components/root/phi-config-provider";
|
|
16
|
+
import { usePhiThemeBlockCatalog } from "../../../../../components/root/phi-theme-block-catalog-provider";
|
|
17
|
+
import { resolvePhiThemeComposition, resolvePhiThemeEffectiveLogo, resolvePhiThemeEffectiveFonts, resolvePhiThemeEffectiveRoot, } from "../../../../../theme/phi-theme-composition";
|
|
18
|
+
import { usePhiSiteFontAssets } from "../../../../../components/media/phi-site-font-assets";
|
|
19
|
+
import { buildPhiFontFaceCss, buildPhiFontFamilyStack } from "../../../../../theme/phi-font-face";
|
|
20
|
+
import { PHI_THEME_HEADING_FONT_VARIABLE, readPhiThemeHeadingFont, resolvePhiThemeHeadingFontFamily, } from "../../../../../theme/phi-theme-typography";
|
|
21
|
+
import { resolvePhiThemeRuntimePayload } from "../../../../../theme/phi-theme-runtime";
|
|
22
|
+
import { materializePhiThemeBrandLogo, materializePhiThemeModuleBlocks } from "../../materialize-images";
|
|
23
|
+
import { createPhiAntdThemeCssVarKey, resolvePhiAntdAliasTokens, } from "../../../../../theme/phi-antd-token-resolver";
|
|
24
|
+
import { buildPhiThemeStructuralTokens, } from "../../../../../theme/phi-theme";
|
|
25
|
+
import { buildPhiSiteThemeSelectOptions, createPhiSiteThemeSelectionValue, createPhiThemeDerivation, ensurePhiThemeDerivation, readPhiSiteThemeSelectionState, resolvePhiThemeSelectionValue, } from "../../../../../theme/phi-theme-selection";
|
|
26
|
+
import { PHI_CONTROL_HEIGHTS, PHI_PADDING, PHI_RADII } from "../../../../../theme/phi-tokens";
|
|
27
|
+
import { PHI_COLOR_PICKER_NEUTRAL_PRESETS, PHI_COLOR_PICKER_PRESETS, } from "../../../../../components/widgets/config/color-picker-presets";
|
|
28
|
+
import { PHI_SPACING_TOKEN_KEYS } from "../../../../../components/widgets/config/spacing-options";
|
|
29
|
+
import { PhiColorWidget } from "../../../../../components/widgets/client/phi-color-widget";
|
|
30
|
+
import { PhiBrandControl, resolvePhiBrandLogoUrl } from "../../../../../components/controls/phi-brand-control";
|
|
31
|
+
import { PhiBackgroundControl } from "../../../../../components/controls/phi-background-control";
|
|
32
|
+
import { PHI_ROOT_BACKGROUND_IMAGE_SOURCE_KINDS, PHI_ROOT_BACKGROUND_MOTION_MODES, resolvePhiRootBackgroundPaintStyle, } from "../../../../../components/root/phi-root-background";
|
|
33
|
+
import { PHI_SHELL_CHROME_OVERLAY_BASE_KINDS, PHI_SHELL_CHROME_OVERLAY_EFFECTS, PHI_SHELL_CHROME_OVERLAY_IMAGE_SOURCE_KINDS, PHI_SHELL_CHROME_OVERLAY_MOTION_MODES, resolvePhiShellChromeOverlayConfig, resolvePhiShellChromePaneShadow, resolvePhiShellChromePaneShadows, resolvePhiShellChromeOverlayStyle, } from "../../../../../components/root/phi-shell-chrome-overlay";
|
|
34
|
+
import { normalizePhiBackgroundWidgetConfig } from "../../../../../components/widgets/config/background";
|
|
35
|
+
import { PhiMediaPickerBinding } from "../../../../../components/media/phi-media-picker-binding";
|
|
36
|
+
import { PHI_MEDIA_WIDGET_DEFAULT_LABELS } from "../../../../../components/media/media-widget-labels";
|
|
37
|
+
import { PHI_SEARCH_WIDGET_DEFAULT_LABELS } from "../../../../../components/widgets/label-types/search";
|
|
38
|
+
import { buildPhiMediaAssetContentDeliveryUrl, PhiMediaAssetFlags, PhiMediaKind } from "../../../../../constants/media";
|
|
39
|
+
import { createPhiMediaPickerAssetControllerRoutes } from "../../../../../components/media/asset-controller-routes";
|
|
40
|
+
import { PhiPresetSizeControl } from "../../../../../components/controls/phi-preset-size-control";
|
|
41
|
+
import { PhiButtonControl } from "../../../../../components/controls/phi-button-control";
|
|
42
|
+
import { PhiCascaderControl } from "../../../../../components/controls/phi-cascader-control";
|
|
43
|
+
import { PhiCheckboxControl } from "../../../../../components/controls/phi-checkbox-control";
|
|
44
|
+
import { PhiLabeledControl } from "../../../../../components/controls/phi-labeled-control";
|
|
45
|
+
import { PhiNumberControl } from "../../../../../components/controls/phi-number-control";
|
|
46
|
+
import { PhiColorControl } from "../../../../../components/controls/phi-color-control";
|
|
47
|
+
import { usePhiControlOptionsProvider } from "../../../../../components/controls/phi-options-provider";
|
|
48
|
+
import { PHI_BUILDER_RUNTIME_DATA_PROVIDER_KEYS } from "../../../builder/ids";
|
|
49
|
+
import { PhiShadowControl } from "../../../../../components/controls/phi-shadow-control";
|
|
50
|
+
import { createPhiHistoryStore } from "../../../../../components/state/history-store";
|
|
51
|
+
import { createPhiCommandToolbarControlAddress } from "../../../../../components/widgets/signals/command-toolbar-address";
|
|
52
|
+
import { PHI_THEME_RUNTIME_MODULE_ID } from "../../../../../plugins/runtime-modules/theme/ids";
|
|
53
|
+
import { PhiTableControl } from "../../../../../components/controls/phi-table-control";
|
|
54
|
+
import { PhiSegmentedControl } from "../../../../../components/controls/phi-segmented-control";
|
|
55
|
+
import { applyPhiButtonShadowComponentTokens, isPhiButtonShadowStep, } from "../../../../../theme/phi-button-shadow";
|
|
56
|
+
import { PhiSelectControl } from "../../../../../components/controls/phi-select-control";
|
|
57
|
+
import { PhiTextControl } from "../../../../../components/controls/phi-text-control";
|
|
58
|
+
import { PhiSwitchControl } from "../../../../../components/controls/phi-switch-control";
|
|
59
|
+
import { PhiTagControl } from "../../../../../components/controls/phi-tag-control";
|
|
60
|
+
import { PHI_CONTROL_SHAPES, applyPhiControlShapeComponentTokens, buildPhiControlShapeCssVars, createPhiControlShapeCorners, readPhiControlShapeCorners, resolvePhiControlShape, resolvePhiUniformControlShape, } from "../../../../../theme/phi-control-shape";
|
|
61
|
+
const phiThemeHistory = createPhiHistoryStore("@phis/ui/theme-history");
|
|
62
|
+
const DEFAULT_THEME_KEY = "default";
|
|
63
|
+
const PHI_THEME_CHROME_SHADOW_EDGES = [
|
|
64
|
+
{ family: "header", label: "Header, downwards onto the Page" },
|
|
65
|
+
{ family: "sider", label: "Sider, outwards at its outer edge" },
|
|
66
|
+
{ family: "footer", label: "Footer, upwards towards the Content" },
|
|
67
|
+
];
|
|
68
|
+
const BRAND_THEME_COLOR_COLLAPSE_STORAGE_KEY = "phi.builder.brand.theme.colorCollapse.activeKey";
|
|
69
|
+
const BRAND_THEME_STYLE_COLLAPSE_STORAGE_KEY = "phi.builder.brand.theme.styleCollapse.activeKey";
|
|
70
|
+
const BRAND_THEME_BACKGROUND_COLLAPSE_STORAGE_KEY = "phi.builder.brand.theme.backgroundCollapse.activeKey";
|
|
71
|
+
const BRAND_THEME_BACKGROUND_SECTION_KEYS = ["root", "chrome", "shadow"];
|
|
72
|
+
const BRAND_THEME_IDENTITY_COLLAPSE_STORAGE_KEY = "phi.builder.brand.theme.identityCollapse.activeKey";
|
|
73
|
+
const BRAND_THEME_IDENTITY_SECTION_KEYS = ["logo", "wordmark"];
|
|
74
|
+
const BRAND_THEME_STYLE_SECTION_KEYS = [
|
|
75
|
+
"controls",
|
|
76
|
+
"buttonShadow",
|
|
77
|
+
"radius",
|
|
78
|
+
"controlHeight",
|
|
79
|
+
"fontFamily",
|
|
80
|
+
"fontSize",
|
|
81
|
+
"wireframe",
|
|
82
|
+
];
|
|
83
|
+
/*
|
|
84
|
+
* The shadow under each kind of Button (theme/phi-button-shadow.ts). "Theme" is no step at all -- the
|
|
85
|
+
* shadow the Theme draws, today Ant Design's tinted line -- the same word the Controls shape uses for
|
|
86
|
+
* following.
|
|
87
|
+
*/
|
|
88
|
+
const PHI_THEME_BUTTON_SHADOW_KINDS = [
|
|
89
|
+
{ key: "default", label: "Default" },
|
|
90
|
+
{ key: "primary", label: "Primary" },
|
|
91
|
+
{ key: "danger", label: "Danger" },
|
|
92
|
+
];
|
|
93
|
+
const PHI_THEME_BUTTON_SHADOW_OPTIONS = [
|
|
94
|
+
{ value: "theme", label: "Theme", description: "Ant Design's tinted line" },
|
|
95
|
+
{ value: "none", label: "None" },
|
|
96
|
+
{ value: "soft", label: "Soft" },
|
|
97
|
+
{ value: "strong", label: "Strong" },
|
|
98
|
+
];
|
|
99
|
+
const PHI_STYLE_SIZE_PRESET_KEYS = PHI_SPACING_TOKEN_KEYS;
|
|
100
|
+
const PHI_STYLE_RADIUS_PRESETS = {
|
|
101
|
+
xxs: PHI_RADII.xxs,
|
|
102
|
+
xs: PHI_RADII.xs,
|
|
103
|
+
sm: PHI_RADII.sm,
|
|
104
|
+
base: PHI_RADII.base,
|
|
105
|
+
md: PHI_RADII.md,
|
|
106
|
+
lg: PHI_RADII.lg,
|
|
107
|
+
xl: PHI_RADII.xl,
|
|
108
|
+
xxl: PHI_RADII.xxl,
|
|
109
|
+
};
|
|
110
|
+
const PHI_STYLE_CONTROL_HEIGHT_PRESETS = {
|
|
111
|
+
xxs: PHI_PADDING.xxs,
|
|
112
|
+
xs: PHI_PADDING.xs,
|
|
113
|
+
sm: PHI_PADDING.sm,
|
|
114
|
+
base: PHI_PADDING.base,
|
|
115
|
+
md: PHI_PADDING.md,
|
|
116
|
+
lg: PHI_PADDING.lg,
|
|
117
|
+
xl: PHI_PADDING.xl,
|
|
118
|
+
xxl: PHI_PADDING.xxl,
|
|
119
|
+
};
|
|
120
|
+
const PHI_STYLE_RADIUS_PRESET_OPTIONS = PHI_STYLE_SIZE_PRESET_KEYS.map((key) => ({
|
|
121
|
+
key,
|
|
122
|
+
label: key,
|
|
123
|
+
value: PHI_STYLE_RADIUS_PRESETS[key],
|
|
124
|
+
}));
|
|
125
|
+
const PHI_STYLE_CONTROL_HEIGHT_PRESET_OPTIONS = PHI_STYLE_SIZE_PRESET_KEYS.map((key) => ({
|
|
126
|
+
key,
|
|
127
|
+
label: key,
|
|
128
|
+
value: PHI_STYLE_CONTROL_HEIGHT_PRESETS[key],
|
|
129
|
+
}));
|
|
130
|
+
const THEME_COLOR_SEED_SECTIONS = [
|
|
131
|
+
{
|
|
132
|
+
key: "colorPrimary",
|
|
133
|
+
label: "Primary",
|
|
134
|
+
fallback: "#E05A2A",
|
|
135
|
+
presets: PHI_COLOR_PICKER_PRESETS,
|
|
136
|
+
derived: [
|
|
137
|
+
{ key: "colorPrimaryBg", label: "Bg" },
|
|
138
|
+
{ key: "colorPrimaryBgHover", label: "Bg Hover" },
|
|
139
|
+
{ key: "colorPrimaryBorder", label: "Border" },
|
|
140
|
+
{ key: "colorPrimaryBorderHover", label: "Border Hover" },
|
|
141
|
+
{ key: "colorPrimaryHover", label: "Hover" },
|
|
142
|
+
{ key: "colorPrimaryActive", label: "Active" },
|
|
143
|
+
{ key: "colorPrimaryText", label: "Text" },
|
|
144
|
+
{ key: "colorPrimaryTextHover", label: "Text Hover" },
|
|
145
|
+
{ key: "colorPrimaryTextActive", label: "Text Active" },
|
|
146
|
+
],
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
key: "colorInfo",
|
|
150
|
+
label: "Info",
|
|
151
|
+
fallback: "#1677ff",
|
|
152
|
+
presets: PHI_COLOR_PICKER_PRESETS,
|
|
153
|
+
derived: [
|
|
154
|
+
{ key: "colorInfoBg", label: "Bg" },
|
|
155
|
+
{ key: "colorInfoBgHover", label: "Bg Hover" },
|
|
156
|
+
{ key: "colorInfoBorder", label: "Border" },
|
|
157
|
+
{ key: "colorInfoBorderHover", label: "Border Hover" },
|
|
158
|
+
{ key: "colorInfoHover", label: "Hover" },
|
|
159
|
+
{ key: "colorInfoActive", label: "Active" },
|
|
160
|
+
{ key: "colorInfoText", label: "Text" },
|
|
161
|
+
{ key: "colorInfoTextHover", label: "Text Hover" },
|
|
162
|
+
{ key: "colorInfoTextActive", label: "Text Active" },
|
|
163
|
+
],
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
key: "colorSuccess",
|
|
167
|
+
label: "Success",
|
|
168
|
+
fallback: "#52c41a",
|
|
169
|
+
presets: PHI_COLOR_PICKER_PRESETS,
|
|
170
|
+
derived: [
|
|
171
|
+
{ key: "colorSuccessBg", label: "Bg" },
|
|
172
|
+
{ key: "colorSuccessBgHover", label: "Bg Hover" },
|
|
173
|
+
{ key: "colorSuccessBorder", label: "Border" },
|
|
174
|
+
{ key: "colorSuccessBorderHover", label: "Border Hover" },
|
|
175
|
+
{ key: "colorSuccessHover", label: "Hover" },
|
|
176
|
+
{ key: "colorSuccessActive", label: "Active" },
|
|
177
|
+
{ key: "colorSuccessText", label: "Text" },
|
|
178
|
+
{ key: "colorSuccessTextHover", label: "Text Hover" },
|
|
179
|
+
{ key: "colorSuccessTextActive", label: "Text Active" },
|
|
180
|
+
],
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
key: "colorWarning",
|
|
184
|
+
label: "Warning",
|
|
185
|
+
fallback: "#faad14",
|
|
186
|
+
presets: PHI_COLOR_PICKER_PRESETS,
|
|
187
|
+
derived: [
|
|
188
|
+
{ key: "colorWarningBg", label: "Bg" },
|
|
189
|
+
{ key: "colorWarningBgHover", label: "Bg Hover" },
|
|
190
|
+
{ key: "colorWarningBorder", label: "Border" },
|
|
191
|
+
{ key: "colorWarningBorderHover", label: "Border Hover" },
|
|
192
|
+
{ key: "colorWarningHover", label: "Hover" },
|
|
193
|
+
{ key: "colorWarningActive", label: "Active" },
|
|
194
|
+
{ key: "colorWarningText", label: "Text" },
|
|
195
|
+
{ key: "colorWarningTextHover", label: "Text Hover" },
|
|
196
|
+
{ key: "colorWarningTextActive", label: "Text Active" },
|
|
197
|
+
],
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
key: "colorError",
|
|
201
|
+
label: "Error",
|
|
202
|
+
fallback: "#ff4d4f",
|
|
203
|
+
presets: PHI_COLOR_PICKER_PRESETS,
|
|
204
|
+
derived: [
|
|
205
|
+
{ key: "colorErrorBg", label: "Bg" },
|
|
206
|
+
{ key: "colorErrorBgHover", label: "Bg Hover" },
|
|
207
|
+
{ key: "colorErrorBgFilledHover", label: "Bg Filled Hover" },
|
|
208
|
+
{ key: "colorErrorBgActive", label: "Bg Active" },
|
|
209
|
+
{ key: "colorErrorBorder", label: "Border" },
|
|
210
|
+
{ key: "colorErrorBorderHover", label: "Border Hover" },
|
|
211
|
+
{ key: "colorErrorHover", label: "Hover" },
|
|
212
|
+
{ key: "colorErrorActive", label: "Active" },
|
|
213
|
+
{ key: "colorErrorText", label: "Text" },
|
|
214
|
+
{ key: "colorErrorTextHover", label: "Text Hover" },
|
|
215
|
+
{ key: "colorErrorTextActive", label: "Text Active" },
|
|
216
|
+
],
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
key: "colorLink",
|
|
220
|
+
label: "Link",
|
|
221
|
+
fallback: "#1677ff",
|
|
222
|
+
presets: PHI_COLOR_PICKER_PRESETS,
|
|
223
|
+
derived: [
|
|
224
|
+
{ key: "colorLinkHover", label: "Hover" },
|
|
225
|
+
{ key: "colorLinkActive", label: "Active" },
|
|
226
|
+
],
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
key: "colorTextBase",
|
|
230
|
+
label: "Text Base",
|
|
231
|
+
fallback: "#000000",
|
|
232
|
+
presets: PHI_COLOR_PICKER_NEUTRAL_PRESETS,
|
|
233
|
+
derived: [
|
|
234
|
+
{ key: "colorText", label: "Text" },
|
|
235
|
+
{ key: "colorTextSecondary", label: "Secondary" },
|
|
236
|
+
{ key: "colorTextTertiary", label: "Tertiary" },
|
|
237
|
+
{ key: "colorTextQuaternary", label: "Quaternary" },
|
|
238
|
+
{ key: "colorTextHeading", label: "Heading" },
|
|
239
|
+
{ key: "colorTextLabel", label: "Label" },
|
|
240
|
+
{ key: "colorTextDescription", label: "Description" },
|
|
241
|
+
{ key: "colorTextDisabled", label: "Disabled" },
|
|
242
|
+
{ key: "colorTextPlaceholder", label: "Placeholder" },
|
|
243
|
+
{ key: "colorTextLightSolid", label: "Light Solid" },
|
|
244
|
+
],
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
key: "colorBgBase",
|
|
248
|
+
label: "Background Base",
|
|
249
|
+
fallback: "#ffffff",
|
|
250
|
+
presets: PHI_COLOR_PICKER_NEUTRAL_PRESETS,
|
|
251
|
+
derived: [
|
|
252
|
+
{ key: "colorBgLayout", label: "Layout" },
|
|
253
|
+
{ key: "colorBgContainer", label: "Container" },
|
|
254
|
+
{ key: "colorBgElevated", label: "Elevated" },
|
|
255
|
+
{ key: "colorBgSpotlight", label: "Spotlight" },
|
|
256
|
+
{ key: "colorBgContainerDisabled", label: "Container Disabled" },
|
|
257
|
+
{ key: "colorFill", label: "Fill" },
|
|
258
|
+
{ key: "colorFillSecondary", label: "Fill Secondary" },
|
|
259
|
+
{ key: "colorFillTertiary", label: "Fill Tertiary" },
|
|
260
|
+
{ key: "colorFillQuaternary", label: "Fill Quaternary" },
|
|
261
|
+
{ key: "colorBorder", label: "Border" },
|
|
262
|
+
{ key: "colorBorderSecondary", label: "Border Secondary" },
|
|
263
|
+
{ key: "colorBorderDisabled", label: "Border Disabled" },
|
|
264
|
+
],
|
|
265
|
+
},
|
|
266
|
+
];
|
|
267
|
+
/** The Collapse order of the colour panel, which decides which section an author finds open. */
|
|
268
|
+
const BRAND_THEME_COLOR_SECTION_KEYS = [
|
|
269
|
+
"custom",
|
|
270
|
+
...THEME_COLOR_SEED_SECTIONS.map((section) => section.key),
|
|
271
|
+
];
|
|
272
|
+
/** The record without the named fields, for the places where a part of the Theme is handed back to its block. */
|
|
273
|
+
function omitThemeFields(theme, ...fields) {
|
|
274
|
+
return Object.fromEntries(Object.entries(theme).filter(([key]) => !fields.includes(key)));
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* The Site's palette written back with empty containers dropped, so a Theme whose author cleared their
|
|
278
|
+
* last colour owns nothing again and follows its palette block outright. An absent `palette` and an
|
|
279
|
+
* empty one mean the same thing to every consumer; keeping the record free of the empty one is what
|
|
280
|
+
* lets "Draft colors" and a Module take-over read the truth off the shape.
|
|
281
|
+
*/
|
|
282
|
+
function withThemePalette(theme, palette) {
|
|
283
|
+
const modes = Object.fromEntries(Object.entries(palette.modes ?? {}).filter(([, mode]) => mode && Object.keys(mode).length > 0));
|
|
284
|
+
const next = {
|
|
285
|
+
...(Object.keys(palette.seed ?? {}).length > 0 ? { seed: palette.seed } : {}),
|
|
286
|
+
...(Object.keys(modes).length > 0 ? { modes } : {}),
|
|
287
|
+
};
|
|
288
|
+
return Object.keys(next).length === 0
|
|
289
|
+
? omitThemeFields(theme, "palette")
|
|
290
|
+
: { ...theme, palette: next };
|
|
291
|
+
}
|
|
292
|
+
/** One mode of the Site's palette rewritten; a mode left with nothing in it disappears. */
|
|
293
|
+
function mergeThemePaletteMode(theme, mode, rewrite) {
|
|
294
|
+
const palette = theme.palette ?? {};
|
|
295
|
+
const written = rewrite(palette.modes?.[mode] ?? {});
|
|
296
|
+
const nextMode = Object.fromEntries(["seed", "overrides", "customColors"]
|
|
297
|
+
.filter((part) => Object.keys(written[part] ?? {}).length > 0)
|
|
298
|
+
.map((part) => [part, written[part]]));
|
|
299
|
+
return withThemePalette(theme, {
|
|
300
|
+
...palette,
|
|
301
|
+
modes: { ...(palette.modes ?? {}), [mode]: nextMode },
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* A seed the author set. The two base seeds belong to the mode being edited, every other seed to the
|
|
306
|
+
* palette as a whole, because Ant Design derives both modes from the one value. Setting a seed takes
|
|
307
|
+
* the section's derived overrides of that mode with it: they were tuned to the old seed.
|
|
308
|
+
*/
|
|
309
|
+
function mergeThemeSeedToken(theme, section, value, mode) {
|
|
310
|
+
const derivedTokenKeys = new Set(section.derived.map((item) => item.key));
|
|
311
|
+
const withoutDerived = mergeThemePaletteMode(theme, mode, (current) => ({
|
|
312
|
+
...current,
|
|
313
|
+
overrides: Object.fromEntries(Object.entries(current.overrides ?? {}).filter(([key]) => !derivedTokenKeys.has(key))),
|
|
314
|
+
}));
|
|
315
|
+
if (isPhiThemePaletteModeSeedKey(section.key)) {
|
|
316
|
+
return mergeThemePaletteMode(withoutDerived, mode, (current) => ({
|
|
317
|
+
...current,
|
|
318
|
+
seed: { ...(current.seed ?? {}), [section.key]: value },
|
|
319
|
+
}));
|
|
320
|
+
}
|
|
321
|
+
const palette = withoutDerived.palette ?? {};
|
|
322
|
+
return withThemePalette(withoutDerived, {
|
|
323
|
+
...palette,
|
|
324
|
+
seed: { ...(palette.seed ?? {}), [section.key]: value },
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
/** A derived colour stated outright for one mode: a hover tone that suits light is wrong in dark. */
|
|
328
|
+
function mergeThemeColorOverride(theme, tokenKey, value, mode) {
|
|
329
|
+
return mergeThemePaletteMode(theme, mode, (current) => ({
|
|
330
|
+
...current,
|
|
331
|
+
overrides: { ...(current.overrides ?? {}), [tokenKey]: value },
|
|
332
|
+
}));
|
|
333
|
+
}
|
|
334
|
+
/** The override taken away again, so the palette below derives the colour as before. */
|
|
335
|
+
function omitThemeColorOverride(theme, tokenKey, mode) {
|
|
336
|
+
return mergeThemePaletteMode(theme, mode, (current) => ({
|
|
337
|
+
...current,
|
|
338
|
+
overrides: Object.fromEntries(Object.entries(current.overrides ?? {}).filter(([key]) => key !== tokenKey)),
|
|
339
|
+
}));
|
|
340
|
+
}
|
|
341
|
+
function resolveThemeKey(config) {
|
|
342
|
+
return config?.themeKey?.trim() || DEFAULT_THEME_KEY;
|
|
343
|
+
}
|
|
344
|
+
function normalizeTheme(input, fallback) {
|
|
345
|
+
if (!input || typeof input !== "object" || Array.isArray(input)) {
|
|
346
|
+
return fallback;
|
|
347
|
+
}
|
|
348
|
+
return input;
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* A fresh draft names its blocks and owns nothing: the proportions come from the style block at
|
|
352
|
+
* resolve time, the colour from the palette block, and nothing is copied in that a reset would later
|
|
353
|
+
* have to know how to take away.
|
|
354
|
+
*/
|
|
355
|
+
function resolveInitialTheme(runtime) {
|
|
356
|
+
return normalizeTheme(runtime.site.theme, {
|
|
357
|
+
mode: "light",
|
|
358
|
+
preset: PHI_DEFAULT_THEME_PRESET_KEY,
|
|
359
|
+
presetVersion: PHI_DEFAULT_THEME_PRESET_VERSION,
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
function readThemeButtonShadowChoice(theme, kind) {
|
|
363
|
+
const step = theme.buttons?.shadow?.[kind];
|
|
364
|
+
return isPhiButtonShadowStep(step) ? step : "theme";
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* One Button shadow set, or handed back to the Theme by removing the step -- and with it an empty
|
|
368
|
+
* `shadow` or `buttons` entry, so a Theme that sets no shadow stores none.
|
|
369
|
+
*/
|
|
370
|
+
function mergeThemeButtonShadow(theme, kind, choice) {
|
|
371
|
+
const shadow = Object.fromEntries(Object.entries(theme.buttons?.shadow ?? {}).filter(([key]) => key !== kind));
|
|
372
|
+
if (choice !== "theme") {
|
|
373
|
+
shadow[kind] = choice;
|
|
374
|
+
}
|
|
375
|
+
const withoutButtons = omitThemeFields(theme, "buttons");
|
|
376
|
+
return Object.keys(shadow).length > 0
|
|
377
|
+
? { ...withoutButtons, buttons: { ...(theme.buttons ?? {}), shadow } }
|
|
378
|
+
: withoutButtons;
|
|
379
|
+
}
|
|
380
|
+
/** A structural token the author set, laid over the style block under `style.token`. */
|
|
381
|
+
function mergeThemeToken(theme, tokenPatch) {
|
|
382
|
+
return {
|
|
383
|
+
...theme,
|
|
384
|
+
style: {
|
|
385
|
+
...(theme.style ?? {}),
|
|
386
|
+
token: {
|
|
387
|
+
...(theme.style?.token ?? {}),
|
|
388
|
+
...tokenPatch,
|
|
389
|
+
},
|
|
390
|
+
},
|
|
391
|
+
};
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* One slot, set or handed back.
|
|
395
|
+
*
|
|
396
|
+
* Handing it back means removing the key rather than writing an empty string: an absent slot follows
|
|
397
|
+
* the fonts block, and a slot holding "" would be an author deciding on nothing.
|
|
398
|
+
*/
|
|
399
|
+
function mergeThemeFontSlot(theme, slot, family) {
|
|
400
|
+
const fonts = { ...(theme.fonts ?? {}) };
|
|
401
|
+
if (family)
|
|
402
|
+
fonts[slot] = family;
|
|
403
|
+
else
|
|
404
|
+
delete fonts[slot];
|
|
405
|
+
return Object.keys(fonts).length > 0
|
|
406
|
+
? { ...theme, fonts }
|
|
407
|
+
: Object.fromEntries(Object.entries(theme).filter(([key]) => key !== "fonts"));
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* The heading font chosen, or handed back to the body font by removing it.
|
|
411
|
+
*
|
|
412
|
+
* Body is the absence of a choice rather than a value stored, so a Theme that never picked and one that
|
|
413
|
+
* picked body and went back store the same thing -- and an empty `typography` goes with it.
|
|
414
|
+
*/
|
|
415
|
+
function mergeThemeHeadingFont(theme, heading) {
|
|
416
|
+
const typography = { ...(theme.typography ?? {}) };
|
|
417
|
+
if (heading === "body")
|
|
418
|
+
delete typography.headings;
|
|
419
|
+
else
|
|
420
|
+
typography.headings = heading;
|
|
421
|
+
return Object.keys(typography).length > 0
|
|
422
|
+
? { ...theme, typography }
|
|
423
|
+
: Object.fromEntries(Object.entries(theme).filter(([key]) => key !== "typography"));
|
|
424
|
+
}
|
|
425
|
+
function mergeThemeControlShape(theme, controls) {
|
|
426
|
+
return {
|
|
427
|
+
...theme,
|
|
428
|
+
shape: {
|
|
429
|
+
...(theme.shape ?? {}),
|
|
430
|
+
controls,
|
|
431
|
+
},
|
|
432
|
+
};
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* What the Style tab's shape segments decide together: the Control shape and the scale it is drawn on.
|
|
436
|
+
* "Theme" hands all of it back to the style the Set brings; the other type values stay the author's.
|
|
437
|
+
*/
|
|
438
|
+
const PHI_THEME_SHAPE_SCALE_TOKEN_KEYS = [
|
|
439
|
+
"borderRadiusXS",
|
|
440
|
+
"borderRadiusSM",
|
|
441
|
+
"borderRadius",
|
|
442
|
+
"borderRadiusLG",
|
|
443
|
+
"controlHeightSM",
|
|
444
|
+
"controlHeight",
|
|
445
|
+
"controlHeightLG",
|
|
446
|
+
];
|
|
447
|
+
/**
|
|
448
|
+
* Which segment the draft stands on.
|
|
449
|
+
*
|
|
450
|
+
* A named shape when the author picked one. "Theme" when the author decided none of the shape, the
|
|
451
|
+
* radii and the Control heights. Nothing when they changed a radius or a height but picked no shape:
|
|
452
|
+
* that follows the Theme no longer, and showing "Theme" would also leave it unclickable, since a
|
|
453
|
+
* segment that is already selected reports no change.
|
|
454
|
+
*/
|
|
455
|
+
function resolveThemeShapeChoice(theme) {
|
|
456
|
+
const corners = readPhiControlShapeCorners(theme.shape?.controls);
|
|
457
|
+
if (corners) {
|
|
458
|
+
return resolvePhiUniformControlShape(corners);
|
|
459
|
+
}
|
|
460
|
+
const token = theme.style?.token ?? {};
|
|
461
|
+
const authoredScale = PHI_THEME_SHAPE_SCALE_TOKEN_KEYS.some((key) => {
|
|
462
|
+
const value = token[key];
|
|
463
|
+
return value !== undefined && value !== null && value !== "";
|
|
464
|
+
});
|
|
465
|
+
return authoredScale ? null : "theme";
|
|
466
|
+
}
|
|
467
|
+
/** The shape, the radii and the Control heights handed back to the style block; the rest stays. */
|
|
468
|
+
function clearThemeShapeScale(theme) {
|
|
469
|
+
const token = Object.fromEntries(Object.entries(theme.style?.token ?? {}).filter(([key]) => !PHI_THEME_SHAPE_SCALE_TOKEN_KEYS.includes(key)));
|
|
470
|
+
return {
|
|
471
|
+
...clearThemeControlShape(theme),
|
|
472
|
+
style: { ...(theme.style ?? {}), token },
|
|
473
|
+
};
|
|
474
|
+
}
|
|
475
|
+
function clearThemeControlShape(theme) {
|
|
476
|
+
const shape = Object.fromEntries(Object.entries(theme.shape ?? {}).filter(([key]) => key !== "controls"));
|
|
477
|
+
return Object.keys(shape).length > 0 ? { ...theme, shape } : omitThemeFields(theme, "shape");
|
|
478
|
+
}
|
|
479
|
+
function resolveThemePayloadPreset(theme, presets) {
|
|
480
|
+
return resolvePhiThemePresetPlugin(presets, theme.preset);
|
|
481
|
+
}
|
|
482
|
+
function resolveThemePayloadMode(theme) {
|
|
483
|
+
return theme.mode === "dark" ? "dark" : "light";
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* The ten custom colours the draft shows in one mode: the palette block with the Site's own palette on
|
|
487
|
+
* top, resolved the way the Site renders them. Nothing is written into the record for reading them.
|
|
488
|
+
*/
|
|
489
|
+
function resolveThemeCustomPalette(theme, preset, mode) {
|
|
490
|
+
return resolvePhiThemePaletteCustomColors(mergePhiThemePalettes(preset.palette, theme.palette), mode);
|
|
491
|
+
}
|
|
492
|
+
function mergeThemeCustomColors(theme, colorPatch, mode) {
|
|
493
|
+
return mergeThemePaletteMode(theme, mode, (current) => ({
|
|
494
|
+
...current,
|
|
495
|
+
customColors: { ...(current.customColors ?? {}), ...colorPatch },
|
|
496
|
+
}));
|
|
497
|
+
}
|
|
498
|
+
/**
|
|
499
|
+
* Picking a palette block drops the author's own palette, exactly as picking a ground or a style drops
|
|
500
|
+
* theirs: somebody choosing another palette means to see it, and their seeds laid over it would hide
|
|
501
|
+
* the very thing they asked for.
|
|
502
|
+
*/
|
|
503
|
+
function applyThemePreset(theme, preset) {
|
|
504
|
+
return {
|
|
505
|
+
...omitThemeFields(theme, "palette"),
|
|
506
|
+
preset: preset.key,
|
|
507
|
+
presetVersion: preset.version,
|
|
508
|
+
};
|
|
509
|
+
}
|
|
510
|
+
/** Back to the blocks alone: the palette, the proportions, the Button shadows and the component overrides all go. */
|
|
511
|
+
function resetThemeToPreset(theme, presets, preset = resolveThemePayloadPreset(theme, presets)) {
|
|
512
|
+
return {
|
|
513
|
+
...omitThemeFields(theme, "palette", "style", "buttons", "components"),
|
|
514
|
+
preset: preset.key,
|
|
515
|
+
presetVersion: preset.version,
|
|
516
|
+
};
|
|
517
|
+
}
|
|
518
|
+
function stripEmptyTokenValues(token) {
|
|
519
|
+
return Object.fromEntries(Object.entries(token).filter(([, value]) => value !== undefined && value !== null && value !== ""));
|
|
520
|
+
}
|
|
521
|
+
function buildPhiNonColorThemeTokens() {
|
|
522
|
+
return buildPhiThemeStructuralTokens();
|
|
523
|
+
}
|
|
524
|
+
function buildPhiEffectiveNonColorThemeTokens(theme) {
|
|
525
|
+
const defaults = buildPhiNonColorThemeTokens();
|
|
526
|
+
const overrides = theme.style?.token ?? {};
|
|
527
|
+
return Object.fromEntries(Object.entries(defaults).map(([key, value]) => [
|
|
528
|
+
key,
|
|
529
|
+
overrides[key] ?? value,
|
|
530
|
+
]));
|
|
531
|
+
}
|
|
532
|
+
/** Every colour the Site owns: shared seeds, and the seeds, overrides and custom colours of each mode. */
|
|
533
|
+
function countThemePaletteLeaves(palette) {
|
|
534
|
+
return Object.values(palette?.modes ?? {}).reduce((count, mode) => count +
|
|
535
|
+
Object.keys(mode?.seed ?? {}).length +
|
|
536
|
+
Object.keys(mode?.overrides ?? {}).length +
|
|
537
|
+
Object.keys(mode?.customColors ?? {}).length, Object.keys(palette?.seed ?? {}).length);
|
|
538
|
+
}
|
|
539
|
+
function readTokenColor(token, key, fallback) {
|
|
540
|
+
const value = token[key];
|
|
541
|
+
return typeof value === "string" && value.trim() ? value : fallback;
|
|
542
|
+
}
|
|
543
|
+
function readComputedTokenColor(token, key, fallback) {
|
|
544
|
+
const value = token[key];
|
|
545
|
+
return typeof value === "string" && value.trim() ? value : fallback;
|
|
546
|
+
}
|
|
547
|
+
function readEffectiveTokenString(token, key, fallback) {
|
|
548
|
+
const value = token[key];
|
|
549
|
+
return typeof value === "string" && value.trim() ? value : fallback;
|
|
550
|
+
}
|
|
551
|
+
function readEffectiveTokenNumber(token, key, fallback) {
|
|
552
|
+
const value = token[key];
|
|
553
|
+
if (typeof value === "number" && Number.isFinite(value)) {
|
|
554
|
+
return value;
|
|
555
|
+
}
|
|
556
|
+
if (typeof value === "string" && value.trim()) {
|
|
557
|
+
const parsedValue = Number.parseFloat(value);
|
|
558
|
+
return Number.isFinite(parsedValue) ? parsedValue : fallback;
|
|
559
|
+
}
|
|
560
|
+
return fallback;
|
|
561
|
+
}
|
|
562
|
+
function readEffectiveTokenBoolean(token, key, fallback) {
|
|
563
|
+
const value = token[key];
|
|
564
|
+
return typeof value === "boolean" ? value : fallback;
|
|
565
|
+
}
|
|
566
|
+
function buildThemeReviewRoutePath(area) {
|
|
567
|
+
return area === "public" ? "/public" : `/${area}`;
|
|
568
|
+
}
|
|
569
|
+
function buildThemeReviewHref({ area, revisionId, themeKey, }) {
|
|
570
|
+
const url = new URL(buildThemeReviewRoutePath(area), window.location.origin);
|
|
571
|
+
url.searchParams.set("reviewKind", "theme");
|
|
572
|
+
url.searchParams.set("reviewRevision", String(revisionId));
|
|
573
|
+
url.searchParams.set("reviewArea", area);
|
|
574
|
+
url.searchParams.set("reviewPage", "/");
|
|
575
|
+
url.searchParams.set("reviewThemeKey", themeKey);
|
|
576
|
+
return `${url.pathname}${url.search}`;
|
|
577
|
+
}
|
|
578
|
+
/*
|
|
579
|
+
* One route set per purpose: the preview swatch and the image field each open their own picker.
|
|
580
|
+
*
|
|
581
|
+
* There used to be a set per mode as well, because the light and the dark ground were edited side by
|
|
582
|
+
* side and their four pickers were mounted at once -- two senders on one route are indistinguishable
|
|
583
|
+
* to anything that reads the route set. Only the mode being edited is mounted now, so the mode is a
|
|
584
|
+
* property of the value and not of the route. The Control is rebuilt when the mode changes, so a
|
|
585
|
+
* picker can never outlive the ground it was opened for.
|
|
586
|
+
*/
|
|
587
|
+
const PHI_THEME_ROOT_BACKGROUND_MEDIA_ROUTES = {
|
|
588
|
+
preview: createPhiMediaPickerAssetControllerRoutes("theme-root-background-preview-media", "area"),
|
|
589
|
+
field: createPhiMediaPickerAssetControllerRoutes("theme-root-background-field-media", "area"),
|
|
590
|
+
};
|
|
591
|
+
/*
|
|
592
|
+
* The renderer a Background Control asks for its media picker.
|
|
593
|
+
*
|
|
594
|
+
* Built once at module level rather than per render, so its identity is stable without a hook. Both
|
|
595
|
+
* Theme grounds ask for the same one: the Root Background and the Chrome Overlay take their pictures
|
|
596
|
+
* from the same Site library, and the picker has nothing in it that belongs to one surface.
|
|
597
|
+
*/
|
|
598
|
+
const renderPhiThemeRootBackgroundMediaPicker = function renderPhiThemeRootBackgroundMediaPicker(props) {
|
|
599
|
+
return (_jsx(PhiMediaPickerBinding, { config: {
|
|
600
|
+
mediaType: PhiMediaKind.Image,
|
|
601
|
+
presentationFlags: PhiMediaAssetFlags.Background,
|
|
602
|
+
pageSize: 12,
|
|
603
|
+
showPagination: true,
|
|
604
|
+
showGroupFilter: true,
|
|
605
|
+
showSearchBar: true,
|
|
606
|
+
signalRoutes: PHI_THEME_ROOT_BACKGROUND_MEDIA_ROUTES[props.purpose],
|
|
607
|
+
}, labels: PHI_MEDIA_WIDGET_DEFAULT_LABELS, searchLabels: PHI_SEARCH_WIDGET_DEFAULT_LABELS, value: props.value, open: props.open, trigger: props.trigger, onOpenChange: props.onOpenChange, onCommit: props.onCommit, onDiscard: props.onDiscard, onAssetSelect: props.onAssetSelect, onAssetClear: props.onAssetClear }));
|
|
608
|
+
};
|
|
609
|
+
function mergeThemeRootBackground(theme, mode, value) {
|
|
610
|
+
return {
|
|
611
|
+
...theme,
|
|
612
|
+
root: {
|
|
613
|
+
...(theme.root ?? {}),
|
|
614
|
+
background: {
|
|
615
|
+
...(theme.root?.background ?? {}),
|
|
616
|
+
[mode]: value,
|
|
617
|
+
},
|
|
618
|
+
},
|
|
619
|
+
};
|
|
620
|
+
}
|
|
621
|
+
function mergeThemeChromeShadow(theme, family, value) {
|
|
622
|
+
return {
|
|
623
|
+
...theme,
|
|
624
|
+
root: {
|
|
625
|
+
...(theme.root ?? {}),
|
|
626
|
+
chrome: {
|
|
627
|
+
...(theme.root?.chrome ?? {}),
|
|
628
|
+
shadow: {
|
|
629
|
+
...(theme.root?.chrome?.shadow ?? {}),
|
|
630
|
+
[family]: value,
|
|
631
|
+
},
|
|
632
|
+
},
|
|
633
|
+
},
|
|
634
|
+
};
|
|
635
|
+
}
|
|
636
|
+
function mergeThemeChromeOverlay(theme, mode, value) {
|
|
637
|
+
return {
|
|
638
|
+
...theme,
|
|
639
|
+
root: {
|
|
640
|
+
...(theme.root ?? {}),
|
|
641
|
+
chrome: {
|
|
642
|
+
...(theme.root?.chrome ?? {}),
|
|
643
|
+
[mode]: value,
|
|
644
|
+
},
|
|
645
|
+
},
|
|
646
|
+
};
|
|
647
|
+
}
|
|
648
|
+
/**
|
|
649
|
+
* A patch on the Brand block, with the empties taken back out.
|
|
650
|
+
*
|
|
651
|
+
* An author who clears a field means the field is not set, not that it is set to "". A stored empty
|
|
652
|
+
* string reads as authored everywhere downstream -- `resolvePhiBrandWordmarkText` and the Brand Widget
|
|
653
|
+
* both ask whether a value is there before they ask what it says -- so clearing has to remove the key
|
|
654
|
+
* rather than blank it, or the Site's own name never comes back.
|
|
655
|
+
*/
|
|
656
|
+
function mergeThemeBrand(theme, patch) {
|
|
657
|
+
const brand = { ...(theme.brand ?? {}), ...patch };
|
|
658
|
+
for (const [key, value] of Object.entries(brand)) {
|
|
659
|
+
if (value == null || value === "")
|
|
660
|
+
delete brand[key];
|
|
661
|
+
}
|
|
662
|
+
return { ...theme, brand: brand };
|
|
663
|
+
}
|
|
664
|
+
/**
|
|
665
|
+
* One mode's Logo, or the record's silence about it when `logo` is undefined -- which is what lets the
|
|
666
|
+
* Set's Logo show through again. `null` is never written: "no Logo" is `{ sourceKind: "none" }`.
|
|
667
|
+
*/
|
|
668
|
+
function mergeThemeBrandLogo(theme, mode, logo) {
|
|
669
|
+
const logos = {};
|
|
670
|
+
for (const key of ["light", "dark"]) {
|
|
671
|
+
const value = key === mode ? logo : theme.brand?.logo?.[key];
|
|
672
|
+
if (value)
|
|
673
|
+
logos[key] = value;
|
|
674
|
+
}
|
|
675
|
+
return mergeThemeBrand(theme, { logo: Object.keys(logos).length > 0 ? logos : null });
|
|
676
|
+
}
|
|
677
|
+
/**
|
|
678
|
+
* The Wordmark's parts, written as a whole rather than patched one at a time.
|
|
679
|
+
*
|
|
680
|
+
* A part carries no identity of its own -- it is text at a position -- so there is nothing to address
|
|
681
|
+
* an edit to except the position, and a list rewritten in one go cannot disagree with itself about
|
|
682
|
+
* what the positions are.
|
|
683
|
+
*
|
|
684
|
+
* A blank part is kept, because a part that has just been added is blank and dropping it here meant
|
|
685
|
+
* "Add part" wrote a list the next render could not see: the row never appeared, and the button looked
|
|
686
|
+
* like it did nothing but reopen the first part. Only a list that is blank all through clears the
|
|
687
|
+
* Wordmark, which is what hands the Site's own name back to the fallback.
|
|
688
|
+
*/
|
|
689
|
+
function mergeThemeWordmarkParts(theme, parts) {
|
|
690
|
+
const hasText = parts.some((part) => part.text.trim());
|
|
691
|
+
return mergeThemeBrand(theme, {
|
|
692
|
+
wordmark: hasText
|
|
693
|
+
? { ...(theme.brand?.wordmark ?? {}), parts: parts.map((part) => ({ ...part })) }
|
|
694
|
+
: null,
|
|
695
|
+
});
|
|
696
|
+
}
|
|
697
|
+
/**
|
|
698
|
+
* What a Widget knows before the Controller has told it anything: the theme the Site was rendered with.
|
|
699
|
+
*
|
|
700
|
+
* It used to consult a module variable the Widgets kept between them, because a Widget mounting late
|
|
701
|
+
* had no other way to learn about an unsaved draft. That variable answered for the browser tab, while
|
|
702
|
+
* the draft belongs to the Area the Controller is mounted in -- so it was right by coincidence and
|
|
703
|
+
* silently wrong wherever the two differed. A Widget asks now, and this is only the starting point.
|
|
704
|
+
*/
|
|
705
|
+
function createInitialBrandThemeState(themeKey, fallbackTheme) {
|
|
706
|
+
return {
|
|
707
|
+
key: themeKey,
|
|
708
|
+
published: fallbackTheme,
|
|
709
|
+
draft: fallbackTheme,
|
|
710
|
+
revisionId: null,
|
|
711
|
+
hasPublishedThemeRevision: false,
|
|
712
|
+
publishedRevisionId: null,
|
|
713
|
+
};
|
|
714
|
+
}
|
|
715
|
+
function isSameThemePayload(left, right) {
|
|
716
|
+
return JSON.stringify(left) === JSON.stringify(right);
|
|
717
|
+
}
|
|
718
|
+
/*
|
|
719
|
+
* `correlationId` is the exchange this state belongs to: the command that saved, published or reset,
|
|
720
|
+
* or the draft another Widget asked the Controller to take. It is absent only where the Controller
|
|
721
|
+
* announces the state it loaded on arrival, which begins one.
|
|
722
|
+
*/
|
|
723
|
+
function emitThemeState(dispatchSignal, theme, revisionId, selectionValue, draftStatus = "draft", correlationId) {
|
|
724
|
+
const sender = createPhiThemeControllerAddress();
|
|
725
|
+
const receiver = "broadcast";
|
|
726
|
+
dispatchSignal({
|
|
727
|
+
scope: "area",
|
|
728
|
+
channel: PHI_THEME_SIGNAL_CHANNELS.brandTheme,
|
|
729
|
+
action: "change",
|
|
730
|
+
value: {
|
|
731
|
+
theme,
|
|
732
|
+
revisionId,
|
|
733
|
+
draftStatus,
|
|
734
|
+
themeKey: DEFAULT_THEME_KEY,
|
|
735
|
+
},
|
|
736
|
+
valueType: "json",
|
|
737
|
+
valueSchema: PHI_SIGNAL_VALUE_SCHEMAS.brandTheme,
|
|
738
|
+
sender,
|
|
739
|
+
receiver,
|
|
740
|
+
correlationId,
|
|
741
|
+
timestamp: Date.now(),
|
|
742
|
+
});
|
|
743
|
+
dispatchSignal({
|
|
744
|
+
scope: "area",
|
|
745
|
+
channel: PHI_THEME_SIGNAL_CHANNELS.draftStatus,
|
|
746
|
+
action: "change",
|
|
747
|
+
value: {
|
|
748
|
+
status: draftStatus,
|
|
749
|
+
revisionId: draftStatus === "published" ? null : revisionId,
|
|
750
|
+
themeKey: DEFAULT_THEME_KEY,
|
|
751
|
+
},
|
|
752
|
+
valueType: "json",
|
|
753
|
+
valueSchema: PHI_SIGNAL_VALUE_SCHEMAS.revisionsDraftStatus,
|
|
754
|
+
sender,
|
|
755
|
+
receiver,
|
|
756
|
+
correlationId,
|
|
757
|
+
timestamp: Date.now(),
|
|
758
|
+
});
|
|
759
|
+
dispatchSignal({
|
|
760
|
+
scope: "area",
|
|
761
|
+
channel: PHI_THEME_SIGNAL_CHANNELS.presetSelect,
|
|
762
|
+
action: "change",
|
|
763
|
+
value: selectionValue,
|
|
764
|
+
valueType: "string",
|
|
765
|
+
sender,
|
|
766
|
+
receiver,
|
|
767
|
+
correlationId,
|
|
768
|
+
timestamp: Date.now(),
|
|
769
|
+
});
|
|
770
|
+
}
|
|
771
|
+
/**
|
|
772
|
+
* The Set select's options, stated again for a stored Theme that changed.
|
|
773
|
+
*
|
|
774
|
+
* The Site Theme entry names the Set the stored Theme was derived from, and a save or a publish is a
|
|
775
|
+
* new stored Theme. The whole list goes out, because that is what the select takes; the Sets come from
|
|
776
|
+
* the server, where the active Modules are known.
|
|
777
|
+
*/
|
|
778
|
+
function emitThemeSelectOptions(dispatchSignal, options, correlationId) {
|
|
779
|
+
dispatchSignal({
|
|
780
|
+
scope: "area",
|
|
781
|
+
channel: PHI_THEME_SIGNAL_CHANNELS.presetOptions,
|
|
782
|
+
action: "change",
|
|
783
|
+
value: { options: options.map((option) => ({ ...option })) },
|
|
784
|
+
valueType: "json",
|
|
785
|
+
valueSchema: PHI_SIGNAL_VALUE_SCHEMAS.controlOptions,
|
|
786
|
+
sender: createPhiThemeControllerAddress(),
|
|
787
|
+
receiver: "broadcast",
|
|
788
|
+
correlationId,
|
|
789
|
+
timestamp: Date.now(),
|
|
790
|
+
});
|
|
791
|
+
}
|
|
792
|
+
/**
|
|
793
|
+
* "Publish what you are holding" -- the question a Widget asks the Controller when it mounts.
|
|
794
|
+
*
|
|
795
|
+
* A Widget renders the draft but does not own it; the Controller does. Mounting late (a Stack slot
|
|
796
|
+
* that was not open, a return to the Page) it knows only the theme the Site was rendered with, and an
|
|
797
|
+
* unsaved draft would be invisible to it until something else happened to change. Nothing told it, so
|
|
798
|
+
* every Widget used to leave its state in a module variable for the next one to find, which answered
|
|
799
|
+
* for the Page and not for the Area the Controller lives in.
|
|
800
|
+
*
|
|
801
|
+
* The Controller answers by announcing its state the way it always does, so the reply is the same
|
|
802
|
+
* broadcast every other listener already understands -- the shape `stackMeta` uses between a Segmented
|
|
803
|
+
* and its Stack, and the reason no request/response machinery is needed for it.
|
|
804
|
+
*/
|
|
805
|
+
function emitThemeHydrateRequest(dispatchSignal, sender) {
|
|
806
|
+
dispatchSignal({
|
|
807
|
+
scope: "area",
|
|
808
|
+
channel: PHI_THEME_SIGNAL_CHANNELS.command,
|
|
809
|
+
action: "activate",
|
|
810
|
+
value: "hydrate",
|
|
811
|
+
valueType: "string",
|
|
812
|
+
sender,
|
|
813
|
+
receiver: createPhiThemeControllerAddress(),
|
|
814
|
+
timestamp: Date.now(),
|
|
815
|
+
});
|
|
816
|
+
}
|
|
817
|
+
/**
|
|
818
|
+
* The reply, addressed to the one Widget that asked.
|
|
819
|
+
*
|
|
820
|
+
* Deliberately not `emitThemeState`. That one announces a change everybody is affected by, and says
|
|
821
|
+
* three things -- the theme, the draft status, the selected preset -- because all three moved. Nothing
|
|
822
|
+
* moved here: one Widget arrived late and needs catching up, so a broadcast would set the state of
|
|
823
|
+
* Widgets that already had it, under the correlation of a mount they had no part in.
|
|
824
|
+
*/
|
|
825
|
+
function emitThemeStateTo(dispatchSignal, receiver, theme, revisionId, draftStatus, correlationId) {
|
|
826
|
+
dispatchSignal({
|
|
827
|
+
scope: "area",
|
|
828
|
+
channel: PHI_THEME_SIGNAL_CHANNELS.brandTheme,
|
|
829
|
+
action: "change",
|
|
830
|
+
value: { theme, revisionId, draftStatus, themeKey: DEFAULT_THEME_KEY },
|
|
831
|
+
valueType: "json",
|
|
832
|
+
valueSchema: PHI_SIGNAL_VALUE_SCHEMAS.brandTheme,
|
|
833
|
+
sender: createPhiThemeControllerAddress(),
|
|
834
|
+
receiver,
|
|
835
|
+
correlationId,
|
|
836
|
+
timestamp: Date.now(),
|
|
837
|
+
});
|
|
838
|
+
}
|
|
839
|
+
function emitThemeDraftRequest(dispatchSignal, theme, revisionId, edit) {
|
|
840
|
+
dispatchSignal({
|
|
841
|
+
scope: "area",
|
|
842
|
+
channel: PHI_THEME_SIGNAL_CHANNELS.brandTheme,
|
|
843
|
+
action: "change",
|
|
844
|
+
value: {
|
|
845
|
+
theme,
|
|
846
|
+
revisionId,
|
|
847
|
+
draftStatus: "draft",
|
|
848
|
+
themeKey: DEFAULT_THEME_KEY,
|
|
849
|
+
...(edit ? { edit } : {}),
|
|
850
|
+
},
|
|
851
|
+
valueType: "json",
|
|
852
|
+
valueSchema: PHI_SIGNAL_VALUE_SCHEMAS.brandTheme,
|
|
853
|
+
sender: null,
|
|
854
|
+
receiver: createPhiThemeControllerAddress(),
|
|
855
|
+
timestamp: Date.now(),
|
|
856
|
+
});
|
|
857
|
+
}
|
|
858
|
+
function emitRootThemeState(dispatchSignal, theme, correlationId) {
|
|
859
|
+
dispatchSignal({
|
|
860
|
+
scope: "site",
|
|
861
|
+
channel: "theme",
|
|
862
|
+
action: "change",
|
|
863
|
+
value: theme,
|
|
864
|
+
valueType: "json",
|
|
865
|
+
valueSchema: PHI_SIGNAL_VALUE_SCHEMAS.runtimeTheme,
|
|
866
|
+
sender: createPhiThemeControllerAddress(),
|
|
867
|
+
receiver: createPhiCoreRuntimeControllerAddress(),
|
|
868
|
+
correlationId,
|
|
869
|
+
timestamp: Date.now(),
|
|
870
|
+
});
|
|
871
|
+
}
|
|
872
|
+
/**
|
|
873
|
+
* The draft, for a Widget that edits it but does not own it.
|
|
874
|
+
*
|
|
875
|
+
* Three Widgets do that -- colours, style, the root background -- and each held its own copy of this:
|
|
876
|
+
* a ref for the current draft, a change that asks the Controller to take it, a listener that accepts
|
|
877
|
+
* what the Controller then states, and a question asked on mount. Written out three times it had
|
|
878
|
+
* already drifted; the fourth copy is the one worth not writing.
|
|
879
|
+
*
|
|
880
|
+
* The Controller stays the owner. Nothing here decides anything about the theme -- it asks, it renders
|
|
881
|
+
* what it is told, and it reports what the author changed.
|
|
882
|
+
*/
|
|
883
|
+
function usePhiBrandThemeDraft(runtime, themeKey) {
|
|
884
|
+
const dispatchSignal = usePhiSignalDispatcher();
|
|
885
|
+
const fallbackTheme = useMemo(() => resolveInitialTheme(runtime), [runtime]);
|
|
886
|
+
const initialState = useMemo(() => createInitialBrandThemeState(themeKey, fallbackTheme), [fallbackTheme, themeKey]);
|
|
887
|
+
const draftRef = useRef(initialState.draft);
|
|
888
|
+
const [state, setState] = useState(initialState);
|
|
889
|
+
/*
|
|
890
|
+
* The address the Controller answers a hydrate request at. A Widget the Builder mounted without one
|
|
891
|
+
* cannot be told anything, so it does not ask -- it keeps the theme the Site was rendered with.
|
|
892
|
+
*/
|
|
893
|
+
const selfAddress = usePhiSignalIdentity().receiver ?? null;
|
|
894
|
+
useEffect(() => {
|
|
895
|
+
if (selfAddress) {
|
|
896
|
+
emitThemeHydrateRequest(dispatchSignal, selfAddress);
|
|
897
|
+
}
|
|
898
|
+
}, [dispatchSignal, selfAddress]);
|
|
899
|
+
/* Whether a picker of this Widget is open or a slider held; every draft sent meanwhile is a step of its edit. */
|
|
900
|
+
const pickerOpenRef = useRef(false);
|
|
901
|
+
const publishDraft = useCallback((nextTheme) => {
|
|
902
|
+
draftRef.current = nextTheme;
|
|
903
|
+
setState((current) => ({ ...current, draft: nextTheme }));
|
|
904
|
+
emitThemeDraftRequest(dispatchSignal, nextTheme, state.revisionId, pickerOpenRef.current ? "live" : undefined);
|
|
905
|
+
}, [dispatchSignal, state.revisionId]);
|
|
906
|
+
/*
|
|
907
|
+
* The callbacks a picker takes to make its edit one history entry. Escape first hands the original
|
|
908
|
+
* value back through `onChange`, which is still a live step; `onDiscard` then ends the edit and the
|
|
909
|
+
* Controller restores the Theme it held when the edit began, exactly.
|
|
910
|
+
*/
|
|
911
|
+
const editTransaction = useMemo(() => {
|
|
912
|
+
const endEdit = (edit) => {
|
|
913
|
+
if (!pickerOpenRef.current)
|
|
914
|
+
return;
|
|
915
|
+
pickerOpenRef.current = false;
|
|
916
|
+
emitThemeDraftRequest(dispatchSignal, draftRef.current, state.revisionId, edit);
|
|
917
|
+
};
|
|
918
|
+
return {
|
|
919
|
+
onBegin: () => {
|
|
920
|
+
pickerOpenRef.current = true;
|
|
921
|
+
},
|
|
922
|
+
onCommit: () => endEdit("commit"),
|
|
923
|
+
onDiscard: () => endEdit("discard"),
|
|
924
|
+
};
|
|
925
|
+
}, [dispatchSignal, state.revisionId]);
|
|
926
|
+
/* The same edit in the shape a picker Control takes it. */
|
|
927
|
+
const pickerTransaction = useMemo(() => ({
|
|
928
|
+
onOpenChange: (open) => {
|
|
929
|
+
if (open)
|
|
930
|
+
editTransaction.onBegin();
|
|
931
|
+
},
|
|
932
|
+
onCommit: editTransaction.onCommit,
|
|
933
|
+
onDiscard: editTransaction.onDiscard,
|
|
934
|
+
}), [editTransaction]);
|
|
935
|
+
usePhiSignalListener((signal) => {
|
|
936
|
+
if (signal.channel !== PHI_THEME_SIGNAL_CHANNELS.brandTheme ||
|
|
937
|
+
signal.action !== "change" ||
|
|
938
|
+
/* A change everybody is told about, or the answer to this Widget's own hydrate request. */
|
|
939
|
+
(signal.receiver !== "broadcast" && signal.receiver !== selfAddress) ||
|
|
940
|
+
signal.sender !== createPhiThemeControllerAddress()) {
|
|
941
|
+
return;
|
|
942
|
+
}
|
|
943
|
+
const value = signal.value && typeof signal.value === "object"
|
|
944
|
+
? signal.value
|
|
945
|
+
: null;
|
|
946
|
+
const nextTheme = normalizeTheme(value?.theme, draftRef.current);
|
|
947
|
+
const revisionId = typeof value?.revisionId === "number" && Number.isInteger(value.revisionId)
|
|
948
|
+
? value.revisionId
|
|
949
|
+
: state.revisionId;
|
|
950
|
+
draftRef.current = nextTheme;
|
|
951
|
+
setState((current) => ({ ...current, draft: nextTheme, revisionId }));
|
|
952
|
+
}, undefined, selfAddress);
|
|
953
|
+
return { state, draftRef, publishDraft, pickerTransaction, editTransaction };
|
|
954
|
+
}
|
|
955
|
+
function usePhiBrandPreviewMode(initialMode) {
|
|
956
|
+
const [mode, setMode] = useState(initialMode);
|
|
957
|
+
usePhiSignalListener((signal) => {
|
|
958
|
+
if (signal.scope === "page" &&
|
|
959
|
+
signal.receiver === "broadcast" &&
|
|
960
|
+
signal.channel === PHI_THEME_SIGNAL_CHANNELS.previewThemeMode &&
|
|
961
|
+
signal.action === "change" &&
|
|
962
|
+
signal.valueType === "boolean") {
|
|
963
|
+
setMode(signal.value === true ? "dark" : "light");
|
|
964
|
+
}
|
|
965
|
+
});
|
|
966
|
+
return mode;
|
|
967
|
+
}
|
|
968
|
+
export function PhiBuilderBrandThemeControllerWidgetClient({ runtime, config, setOptions, }) {
|
|
969
|
+
const dispatchSignal = usePhiSignalDispatcher();
|
|
970
|
+
const { showMessage } = usePhiApplicationFeedback();
|
|
971
|
+
const { presets: themePresets } = usePhiConfig();
|
|
972
|
+
const themeBlocks = usePhiThemeBlockCatalog();
|
|
973
|
+
const themeKey = resolveThemeKey(config);
|
|
974
|
+
const siteKey = runtime.site.key;
|
|
975
|
+
const historyScope = `theme:${siteKey}:${themeKey}`;
|
|
976
|
+
const reviewArea = config?.reviewArea ?? (runtime.area === "builder" ? "public" : runtime.area);
|
|
977
|
+
const fallbackTheme = useMemo(() => resolveInitialTheme(runtime), [runtime]);
|
|
978
|
+
const initialState = useMemo(() => createInitialBrandThemeState(themeKey, fallbackTheme), [fallbackTheme, themeKey]);
|
|
979
|
+
const [state, setState] = useState(initialState);
|
|
980
|
+
const stateRef = useRef(initialState);
|
|
981
|
+
/*
|
|
982
|
+
* The Theme being worked on -- the Draft entry of the Set select. Trying on a Set or the Published
|
|
983
|
+
* Theme leaves it alone, so picking Draft again takes the try-on back; any edit moves it.
|
|
984
|
+
*/
|
|
985
|
+
const siteThemeRef = useRef(initialState.draft);
|
|
986
|
+
/* The options last sent, so a draft that changes nothing in the select does not send them again. */
|
|
987
|
+
const sentSelectOptionsRef = useRef(null);
|
|
988
|
+
/* The draft a picker edit started from, while one is open; see `PhiThemeDraftEdit`. */
|
|
989
|
+
const pickerEditBeforeRef = useRef(null);
|
|
990
|
+
const [saving, setSaving] = useState(false);
|
|
991
|
+
/*
|
|
992
|
+
* A draft exists once one was saved, or once the Theme being worked on is no longer the published one.
|
|
993
|
+
* Undoing back to the published Theme takes an unsaved draft away again.
|
|
994
|
+
*/
|
|
995
|
+
const hasDraft = useCallback(() => {
|
|
996
|
+
const current = stateRef.current;
|
|
997
|
+
return current.revisionId != null || !isSameThemePayload(siteThemeRef.current, current.published);
|
|
998
|
+
}, []);
|
|
999
|
+
const resolveSelectionValue = useCallback(() => resolvePhiThemeSelectionValue(siteKey, {
|
|
1000
|
+
published: stateRef.current.hasPublishedThemeRevision,
|
|
1001
|
+
draft: hasDraft(),
|
|
1002
|
+
}), [hasDraft, siteKey]);
|
|
1003
|
+
const emitSelectOptions = useCallback((correlationId) => {
|
|
1004
|
+
const current = stateRef.current;
|
|
1005
|
+
const options = [
|
|
1006
|
+
...buildPhiSiteThemeSelectOptions({
|
|
1007
|
+
siteKey,
|
|
1008
|
+
published: current.hasPublishedThemeRevision
|
|
1009
|
+
? { theme: current.published, revisionId: current.publishedRevisionId }
|
|
1010
|
+
: null,
|
|
1011
|
+
draft: hasDraft() ? { theme: siteThemeRef.current, revisionId: current.revisionId } : null,
|
|
1012
|
+
}),
|
|
1013
|
+
...setOptions,
|
|
1014
|
+
];
|
|
1015
|
+
const serialized = JSON.stringify(options);
|
|
1016
|
+
if (serialized === sentSelectOptionsRef.current) {
|
|
1017
|
+
return;
|
|
1018
|
+
}
|
|
1019
|
+
sentSelectOptionsRef.current = serialized;
|
|
1020
|
+
emitThemeSelectOptions(dispatchSignal, options, correlationId);
|
|
1021
|
+
}, [dispatchSignal, hasDraft, setOptions, siteKey]);
|
|
1022
|
+
/*
|
|
1023
|
+
* Every draft states the Set it was derived from. A Theme that never named one gets the core Set on
|
|
1024
|
+
* its first draft, so the Draft entry is never without a name.
|
|
1025
|
+
*/
|
|
1026
|
+
const publishDraft = useCallback((draftTheme, options) => {
|
|
1027
|
+
const nextTheme = ensurePhiThemeDerivation(draftTheme);
|
|
1028
|
+
const current = stateRef.current;
|
|
1029
|
+
if (options?.history !== false && !isSameThemePayload(current.draft, nextTheme)) {
|
|
1030
|
+
phiThemeHistory.record(historyScope, {
|
|
1031
|
+
label: "Update theme",
|
|
1032
|
+
before: current.draft,
|
|
1033
|
+
after: nextTheme,
|
|
1034
|
+
});
|
|
1035
|
+
}
|
|
1036
|
+
const nextState = {
|
|
1037
|
+
...current,
|
|
1038
|
+
draft: nextTheme,
|
|
1039
|
+
};
|
|
1040
|
+
stateRef.current = nextState;
|
|
1041
|
+
if (options?.updateSiteSnapshot !== false) {
|
|
1042
|
+
siteThemeRef.current = nextTheme;
|
|
1043
|
+
}
|
|
1044
|
+
setState(nextState);
|
|
1045
|
+
emitThemeState(dispatchSignal, nextTheme, nextState.revisionId, options?.selectionValue ?? resolveSelectionValue(), "draft", options?.correlationId);
|
|
1046
|
+
emitSelectOptions(options?.correlationId);
|
|
1047
|
+
}, [dispatchSignal, emitSelectOptions, historyScope, resolveSelectionValue]);
|
|
1048
|
+
useEffect(() => {
|
|
1049
|
+
const emitAvailability = () => {
|
|
1050
|
+
const availability = phiThemeHistory.getAvailability(historyScope);
|
|
1051
|
+
for (const [controlKey, enabled] of [
|
|
1052
|
+
["undo", availability.canUndo],
|
|
1053
|
+
["redo", availability.canRedo],
|
|
1054
|
+
]) {
|
|
1055
|
+
dispatchSignal({
|
|
1056
|
+
scope: "area",
|
|
1057
|
+
channel: "enabled",
|
|
1058
|
+
action: "change",
|
|
1059
|
+
value: enabled,
|
|
1060
|
+
valueType: "boolean",
|
|
1061
|
+
sender: createPhiThemeControllerAddress(),
|
|
1062
|
+
receiver: createPhiCommandToolbarControlAddress(PHI_THEME_RUNTIME_MODULE_ID, "builder-theme-page", controlKey),
|
|
1063
|
+
timestamp: Date.now(),
|
|
1064
|
+
});
|
|
1065
|
+
}
|
|
1066
|
+
};
|
|
1067
|
+
emitAvailability();
|
|
1068
|
+
return phiThemeHistory.subscribe(historyScope, emitAvailability);
|
|
1069
|
+
}, [dispatchSignal, historyScope]);
|
|
1070
|
+
useEffect(() => {
|
|
1071
|
+
let cancelled = false;
|
|
1072
|
+
void fetch(`/api/site/cms/theme?key=${encodeURIComponent(themeKey)}`, {
|
|
1073
|
+
method: "GET",
|
|
1074
|
+
cache: "no-store",
|
|
1075
|
+
})
|
|
1076
|
+
.then(async (response) => {
|
|
1077
|
+
const body = (await response.json().catch(() => null));
|
|
1078
|
+
if (!response.ok) {
|
|
1079
|
+
throw new Error(body?.error ?? "Failed to read theme.");
|
|
1080
|
+
}
|
|
1081
|
+
if (cancelled) {
|
|
1082
|
+
return;
|
|
1083
|
+
}
|
|
1084
|
+
const published = normalizeTheme(body?.published, fallbackTheme);
|
|
1085
|
+
const draft = normalizeTheme(body?.draft?.theme?.theme, published);
|
|
1086
|
+
const revisionId = typeof body?.draft?.revisionId === "number" && Number.isInteger(body.draft.revisionId)
|
|
1087
|
+
? body.draft.revisionId
|
|
1088
|
+
: null;
|
|
1089
|
+
const publishedRevisionId = typeof body?.publishedRevisionId === "number" && Number.isInteger(body.publishedRevisionId)
|
|
1090
|
+
? body.publishedRevisionId
|
|
1091
|
+
: null;
|
|
1092
|
+
const nextState = {
|
|
1093
|
+
key: body?.key?.trim() || themeKey,
|
|
1094
|
+
published,
|
|
1095
|
+
draft,
|
|
1096
|
+
revisionId,
|
|
1097
|
+
hasPublishedThemeRevision: publishedRevisionId != null,
|
|
1098
|
+
publishedRevisionId,
|
|
1099
|
+
};
|
|
1100
|
+
stateRef.current = nextState;
|
|
1101
|
+
siteThemeRef.current = draft;
|
|
1102
|
+
setState(nextState);
|
|
1103
|
+
phiThemeHistory.clear(historyScope);
|
|
1104
|
+
emitThemeState(dispatchSignal, draft, revisionId, resolveSelectionValue(), revisionId == null ? "published" : "draft");
|
|
1105
|
+
emitSelectOptions();
|
|
1106
|
+
})
|
|
1107
|
+
.catch((error) => {
|
|
1108
|
+
if (!cancelled) {
|
|
1109
|
+
showMessage({ level: "error", content: error instanceof Error ? error.message : "Failed to read theme." });
|
|
1110
|
+
}
|
|
1111
|
+
});
|
|
1112
|
+
return () => {
|
|
1113
|
+
cancelled = true;
|
|
1114
|
+
};
|
|
1115
|
+
}, [dispatchSignal, emitSelectOptions, fallbackTheme, historyScope, resolveSelectionValue, showMessage, siteKey, themeKey]);
|
|
1116
|
+
async function saveTheme(draftTheme = stateRef.current.draft, options) {
|
|
1117
|
+
let nextTheme = ensurePhiThemeDerivation(draftTheme);
|
|
1118
|
+
setSaving(true);
|
|
1119
|
+
try {
|
|
1120
|
+
const current = stateRef.current;
|
|
1121
|
+
/*
|
|
1122
|
+
* The blocks a Module brought become the Site's here, on the way to the server and nowhere else:
|
|
1123
|
+
* its palette, its style tokens, and its ground -- background, Chrome and Shadow of both modes as
|
|
1124
|
+
* values, every picture as a Site Asset. Following a block costs nothing; saving is what says
|
|
1125
|
+
* somebody means to keep it, and a look somebody decided on must not depend on a package staying
|
|
1126
|
+
* installed.
|
|
1127
|
+
*/
|
|
1128
|
+
const materialized = await materializePhiThemeModuleBlocks(nextTheme, resolvePhiThemeComposition(nextTheme, themeBlocks));
|
|
1129
|
+
/*
|
|
1130
|
+
* The Logo is taken the same way, from every Set, core included: a Set offers it, and a Site that
|
|
1131
|
+
* saved has decided to keep it -- as a picture in its own library, not as a data URL in its record.
|
|
1132
|
+
*/
|
|
1133
|
+
nextTheme = await materializePhiThemeBrandLogo(materialized.theme, resolvePhiThemeComposition(materialized.theme, themeBlocks).logoSet);
|
|
1134
|
+
const response = await fetch("/api/site/cms/theme", {
|
|
1135
|
+
method: "POST",
|
|
1136
|
+
headers: {
|
|
1137
|
+
"content-type": "application/json",
|
|
1138
|
+
},
|
|
1139
|
+
body: JSON.stringify({
|
|
1140
|
+
key: current.key,
|
|
1141
|
+
theme: nextTheme,
|
|
1142
|
+
message: "Brand theme draft",
|
|
1143
|
+
}),
|
|
1144
|
+
});
|
|
1145
|
+
const body = (await response.json().catch(() => null));
|
|
1146
|
+
if (!response.ok) {
|
|
1147
|
+
throw new Error(body?.error ?? "Failed to save theme draft.");
|
|
1148
|
+
}
|
|
1149
|
+
const revisionId = typeof body?.revisionId === "number" && Number.isInteger(body.revisionId) ? body.revisionId : null;
|
|
1150
|
+
const savedTheme = normalizeTheme(body?.theme?.theme, nextTheme);
|
|
1151
|
+
const nextState = {
|
|
1152
|
+
...stateRef.current,
|
|
1153
|
+
draft: savedTheme,
|
|
1154
|
+
revisionId,
|
|
1155
|
+
};
|
|
1156
|
+
stateRef.current = nextState;
|
|
1157
|
+
siteThemeRef.current = savedTheme;
|
|
1158
|
+
setState(nextState);
|
|
1159
|
+
emitThemeState(dispatchSignal, savedTheme, revisionId, resolveSelectionValue(), "draft", options?.correlationId);
|
|
1160
|
+
emitSelectOptions(options?.correlationId);
|
|
1161
|
+
if (options?.notify !== false) {
|
|
1162
|
+
showMessage({ level: "success", content: "Saved theme draft." }, { correlationId: options?.correlationId ?? null });
|
|
1163
|
+
}
|
|
1164
|
+
return revisionId;
|
|
1165
|
+
}
|
|
1166
|
+
finally {
|
|
1167
|
+
setSaving(false);
|
|
1168
|
+
}
|
|
1169
|
+
}
|
|
1170
|
+
async function publishTheme(correlationId) {
|
|
1171
|
+
const current = stateRef.current;
|
|
1172
|
+
if (current.revisionId == null) {
|
|
1173
|
+
throw new Error("No saved theme draft found to publish.");
|
|
1174
|
+
}
|
|
1175
|
+
const response = await fetch("/api/site/cms/theme/publish", {
|
|
1176
|
+
method: "POST",
|
|
1177
|
+
headers: {
|
|
1178
|
+
"content-type": "application/json",
|
|
1179
|
+
},
|
|
1180
|
+
body: JSON.stringify({
|
|
1181
|
+
key: current.key,
|
|
1182
|
+
revisionId: current.revisionId,
|
|
1183
|
+
}),
|
|
1184
|
+
});
|
|
1185
|
+
const body = (await response.json().catch(() => null));
|
|
1186
|
+
if (!response.ok) {
|
|
1187
|
+
throw new Error(body?.error ?? "Failed to publish theme.");
|
|
1188
|
+
}
|
|
1189
|
+
const published = normalizeTheme(body?.theme?.theme, current.draft);
|
|
1190
|
+
const nextState = {
|
|
1191
|
+
...current,
|
|
1192
|
+
published,
|
|
1193
|
+
draft: published,
|
|
1194
|
+
revisionId: null,
|
|
1195
|
+
hasPublishedThemeRevision: true,
|
|
1196
|
+
publishedRevisionId: current.revisionId,
|
|
1197
|
+
};
|
|
1198
|
+
stateRef.current = nextState;
|
|
1199
|
+
siteThemeRef.current = published;
|
|
1200
|
+
setState(nextState);
|
|
1201
|
+
emitThemeState(dispatchSignal, published, null, resolveSelectionValue(), "published", correlationId);
|
|
1202
|
+
emitSelectOptions(correlationId);
|
|
1203
|
+
showMessage({ level: "success", content: "Published theme." }, { correlationId: correlationId ?? null });
|
|
1204
|
+
}
|
|
1205
|
+
/*
|
|
1206
|
+
* The Controller names the address it is addressed at, or the bus has nobody to deliver to.
|
|
1207
|
+
*
|
|
1208
|
+
* A signal is held until a listener answers for its receiver, and a listener answers only for an
|
|
1209
|
+
* address it names. Every draft a Widget sent -- and every hydrate request -- was held here and
|
|
1210
|
+
* never arrived, silently: the Widget rendered its own copy, so the controls looked right while the
|
|
1211
|
+
* Controller knew nothing and the preview was never told.
|
|
1212
|
+
*/
|
|
1213
|
+
usePhiSignalListener((signal) => {
|
|
1214
|
+
if (signal.channel === PHI_THEME_SIGNAL_CHANNELS.brandTheme &&
|
|
1215
|
+
signal.action === "change" &&
|
|
1216
|
+
signal.receiver === createPhiThemeControllerAddress() &&
|
|
1217
|
+
signal.sender !== createPhiThemeControllerAddress()) {
|
|
1218
|
+
const value = signal.value && typeof signal.value === "object"
|
|
1219
|
+
? signal.value
|
|
1220
|
+
: null;
|
|
1221
|
+
const current = stateRef.current;
|
|
1222
|
+
const nextTheme = normalizeTheme(value?.theme, current.draft);
|
|
1223
|
+
const revisionId = typeof value?.revisionId === "number" && Number.isInteger(value.revisionId) ? value.revisionId : current.revisionId;
|
|
1224
|
+
if (revisionId !== current.revisionId) {
|
|
1225
|
+
stateRef.current = { ...current, revisionId };
|
|
1226
|
+
}
|
|
1227
|
+
const edit = value?.edit;
|
|
1228
|
+
if (edit === "live") {
|
|
1229
|
+
pickerEditBeforeRef.current ??= current.draft;
|
|
1230
|
+
publishDraft(nextTheme, { history: false, correlationId: signal.correlationId });
|
|
1231
|
+
return;
|
|
1232
|
+
}
|
|
1233
|
+
if (edit === "commit" || edit === "discard") {
|
|
1234
|
+
const before = pickerEditBeforeRef.current;
|
|
1235
|
+
pickerEditBeforeRef.current = null;
|
|
1236
|
+
if (edit === "discard") {
|
|
1237
|
+
publishDraft(before ?? nextTheme, { history: false, correlationId: signal.correlationId });
|
|
1238
|
+
return;
|
|
1239
|
+
}
|
|
1240
|
+
publishDraft(nextTheme, { history: false, correlationId: signal.correlationId });
|
|
1241
|
+
if (before && !isSameThemePayload(before, nextTheme)) {
|
|
1242
|
+
phiThemeHistory.record(historyScope, { label: "Update theme", before, after: nextTheme });
|
|
1243
|
+
}
|
|
1244
|
+
return;
|
|
1245
|
+
}
|
|
1246
|
+
pickerEditBeforeRef.current = null;
|
|
1247
|
+
publishDraft(nextTheme, { correlationId: signal.correlationId });
|
|
1248
|
+
return;
|
|
1249
|
+
}
|
|
1250
|
+
if (signal.scope === "area" &&
|
|
1251
|
+
signal.receiver === createPhiThemeControllerAddress() &&
|
|
1252
|
+
signal.channel === PHI_THEME_SIGNAL_CHANNELS.previewThemeMode &&
|
|
1253
|
+
signal.action === "change" &&
|
|
1254
|
+
signal.valueType === "boolean") {
|
|
1255
|
+
const value = signal.value;
|
|
1256
|
+
const nextMode = typeof value === "boolean" ? value ? "dark" : "light" : null;
|
|
1257
|
+
if (!nextMode) {
|
|
1258
|
+
return;
|
|
1259
|
+
}
|
|
1260
|
+
const current = stateRef.current;
|
|
1261
|
+
const baseTheme = current.hasPublishedThemeRevision ? current.published : fallbackTheme;
|
|
1262
|
+
const nextTheme = {
|
|
1263
|
+
...baseTheme,
|
|
1264
|
+
mode: nextMode,
|
|
1265
|
+
};
|
|
1266
|
+
// Resolved here, where the catalogue is: the root applies what it receives and holds no blocks.
|
|
1267
|
+
emitRootThemeState(dispatchSignal, resolvePhiThemeRuntimePayload(nextTheme, themeBlocks).theme, signal.correlationId);
|
|
1268
|
+
return;
|
|
1269
|
+
}
|
|
1270
|
+
if (signal.channel === PHI_THEME_SIGNAL_CHANNELS.presetSelect) {
|
|
1271
|
+
if (signal.scope === "area" &&
|
|
1272
|
+
signal.action === "change" &&
|
|
1273
|
+
signal.receiver === createPhiThemeControllerAddress() &&
|
|
1274
|
+
typeof signal.value === "string" &&
|
|
1275
|
+
signal.value.trim().length > 0) {
|
|
1276
|
+
/*
|
|
1277
|
+
* Draft goes back to the Theme being worked on; Published is tried on the way a Set is -- it
|
|
1278
|
+
* replaces what is shown, the Draft entry keeps what was there, and only a save or an edit on
|
|
1279
|
+
* top makes it the draft. Both are one history entry.
|
|
1280
|
+
*/
|
|
1281
|
+
const siteState = readPhiSiteThemeSelectionState(signal.value, siteKey);
|
|
1282
|
+
if (siteState) {
|
|
1283
|
+
const current = stateRef.current;
|
|
1284
|
+
if (siteState === "published" && !current.hasPublishedThemeRevision) {
|
|
1285
|
+
return;
|
|
1286
|
+
}
|
|
1287
|
+
const nextTheme = siteState === "draft" ? siteThemeRef.current : current.published;
|
|
1288
|
+
if (!isSameThemePayload(current.draft, nextTheme)) {
|
|
1289
|
+
publishDraft(nextTheme, {
|
|
1290
|
+
updateSiteSnapshot: false,
|
|
1291
|
+
correlationId: signal.correlationId,
|
|
1292
|
+
selectionValue: createPhiSiteThemeSelectionValue(siteKey, siteState),
|
|
1293
|
+
});
|
|
1294
|
+
}
|
|
1295
|
+
return;
|
|
1296
|
+
}
|
|
1297
|
+
/*
|
|
1298
|
+
* A Set is tried on, not taken: it decides all three parts and names itself as the derivation,
|
|
1299
|
+
* but the Site Theme entry keeps what was there before, so choosing it again takes the Set back.
|
|
1300
|
+
*/
|
|
1301
|
+
const set = themeBlocks.sets.find((candidate) => candidate.key === signal.value);
|
|
1302
|
+
if (!set) {
|
|
1303
|
+
return;
|
|
1304
|
+
}
|
|
1305
|
+
const palette = themeBlocks.palettes.find((candidate) => candidate.key === set.palette);
|
|
1306
|
+
const withSet = mergeThemeSetChoice(stateRef.current.draft, set);
|
|
1307
|
+
const nextTheme = {
|
|
1308
|
+
...(palette ? applyThemePreset(withSet, palette) : withSet),
|
|
1309
|
+
derivedFrom: createPhiThemeDerivation(set),
|
|
1310
|
+
};
|
|
1311
|
+
if (!isSameThemePayload(stateRef.current.draft, nextTheme)) {
|
|
1312
|
+
publishDraft(nextTheme, {
|
|
1313
|
+
updateSiteSnapshot: false,
|
|
1314
|
+
correlationId: signal.correlationId,
|
|
1315
|
+
selectionValue: set.key,
|
|
1316
|
+
});
|
|
1317
|
+
}
|
|
1318
|
+
return;
|
|
1319
|
+
}
|
|
1320
|
+
return;
|
|
1321
|
+
}
|
|
1322
|
+
if (signal.scope !== "area" ||
|
|
1323
|
+
signal.channel !== PHI_THEME_SIGNAL_CHANNELS.command ||
|
|
1324
|
+
signal.action !== "activate" ||
|
|
1325
|
+
signal.valueType !== "string" ||
|
|
1326
|
+
signal.receiver !== createPhiThemeControllerAddress()) {
|
|
1327
|
+
return;
|
|
1328
|
+
}
|
|
1329
|
+
const commandValue = signal.value;
|
|
1330
|
+
/*
|
|
1331
|
+
* Answered before the saving guard: a Widget that mounts mid-save is asking what is there, which
|
|
1332
|
+
* is a question about state and not a command that would compete with the save.
|
|
1333
|
+
*/
|
|
1334
|
+
if (commandValue === "hydrate") {
|
|
1335
|
+
const asker = signal.sender;
|
|
1336
|
+
if (asker == null) {
|
|
1337
|
+
return;
|
|
1338
|
+
}
|
|
1339
|
+
const current = stateRef.current;
|
|
1340
|
+
emitThemeStateTo(dispatchSignal, asker, current.draft, current.revisionId, current.revisionId == null ? "published" : "draft", signal.correlationId);
|
|
1341
|
+
return;
|
|
1342
|
+
}
|
|
1343
|
+
if (saving) {
|
|
1344
|
+
return;
|
|
1345
|
+
}
|
|
1346
|
+
if (commandValue === "save") {
|
|
1347
|
+
void saveTheme(undefined, { correlationId: signal.correlationId }).catch((error) => {
|
|
1348
|
+
showMessage({ level: "error", content: error instanceof Error ? error.message : "Failed to save theme draft." }, { correlationId: signal.correlationId });
|
|
1349
|
+
});
|
|
1350
|
+
return;
|
|
1351
|
+
}
|
|
1352
|
+
if (commandValue === "publish") {
|
|
1353
|
+
void publishTheme(signal.correlationId).catch((error) => {
|
|
1354
|
+
showMessage({ level: "error", content: error instanceof Error ? error.message : "Failed to publish theme." }, { correlationId: signal.correlationId });
|
|
1355
|
+
});
|
|
1356
|
+
return;
|
|
1357
|
+
}
|
|
1358
|
+
if (commandValue === "preview") {
|
|
1359
|
+
const revisionId = stateRef.current.revisionId;
|
|
1360
|
+
if (!Number.isInteger(revisionId) || revisionId <= 0) {
|
|
1361
|
+
showMessage({ level: "error", content: "No saved theme draft found. Save first before opening live preview." }, { correlationId: signal.correlationId });
|
|
1362
|
+
return;
|
|
1363
|
+
}
|
|
1364
|
+
const href = buildThemeReviewHref({
|
|
1365
|
+
area: reviewArea,
|
|
1366
|
+
revisionId: revisionId,
|
|
1367
|
+
themeKey: stateRef.current.key,
|
|
1368
|
+
});
|
|
1369
|
+
window.open(href, "_blank", "noopener,noreferrer");
|
|
1370
|
+
return;
|
|
1371
|
+
}
|
|
1372
|
+
if (commandValue === "reset") {
|
|
1373
|
+
const preset = resolveThemePayloadPreset(stateRef.current.draft, themePresets);
|
|
1374
|
+
publishDraft(resetThemeToPreset(stateRef.current.draft, themePresets, preset), { correlationId: signal.correlationId });
|
|
1375
|
+
showMessage({ level: "success", content: `Reset theme to ${preset.title}.` }, { correlationId: signal.correlationId });
|
|
1376
|
+
return;
|
|
1377
|
+
}
|
|
1378
|
+
if (commandValue === "undo") {
|
|
1379
|
+
pickerEditBeforeRef.current = null;
|
|
1380
|
+
phiThemeHistory.undo(historyScope, (previous) => {
|
|
1381
|
+
publishDraft(previous, { history: false, correlationId: signal.correlationId });
|
|
1382
|
+
});
|
|
1383
|
+
return;
|
|
1384
|
+
}
|
|
1385
|
+
if (commandValue === "redo") {
|
|
1386
|
+
pickerEditBeforeRef.current = null;
|
|
1387
|
+
phiThemeHistory.redo(historyScope, (next) => {
|
|
1388
|
+
publishDraft(next, { history: false, correlationId: signal.correlationId });
|
|
1389
|
+
});
|
|
1390
|
+
}
|
|
1391
|
+
}, undefined, createPhiThemeControllerAddress());
|
|
1392
|
+
void state;
|
|
1393
|
+
return null;
|
|
1394
|
+
}
|
|
1395
|
+
/**
|
|
1396
|
+
* The open section of a Theme panel, remembered for the session.
|
|
1397
|
+
*
|
|
1398
|
+
* The three panels are accordions: one section at a time, the first one open until the author opens
|
|
1399
|
+
* another. `sessionStorage` rather than `localStorage`, so the choice follows the working session
|
|
1400
|
+
* instead of deciding how the panel looks weeks later.
|
|
1401
|
+
*
|
|
1402
|
+
* The stored key is applied after mount and never read during render. The server has no storage to read
|
|
1403
|
+
* from, so a value read while rendering would disagree with the markup it hydrates.
|
|
1404
|
+
*/
|
|
1405
|
+
function readStoredAccordionSection(storageKey, sectionKeys) {
|
|
1406
|
+
if (typeof window === "undefined") {
|
|
1407
|
+
return null;
|
|
1408
|
+
}
|
|
1409
|
+
try {
|
|
1410
|
+
const storedValue = window.sessionStorage.getItem(storageKey);
|
|
1411
|
+
return storedValue && sectionKeys.includes(storedValue) ? storedValue : null;
|
|
1412
|
+
}
|
|
1413
|
+
catch {
|
|
1414
|
+
return null;
|
|
1415
|
+
}
|
|
1416
|
+
}
|
|
1417
|
+
function usePhiBrandAccordionSection(storageKey, sectionKeys) {
|
|
1418
|
+
const [activeSection, setActiveSection] = useState(sectionKeys[0] ?? "");
|
|
1419
|
+
useEffect(() => {
|
|
1420
|
+
queueMicrotask(() => {
|
|
1421
|
+
const storedSection = readStoredAccordionSection(storageKey, sectionKeys);
|
|
1422
|
+
if (storedSection) {
|
|
1423
|
+
setActiveSection(storedSection);
|
|
1424
|
+
}
|
|
1425
|
+
});
|
|
1426
|
+
}, [sectionKeys, storageKey]);
|
|
1427
|
+
const changeActiveSection = useCallback((keys) => {
|
|
1428
|
+
const nextSection = Array.isArray(keys) ? keys[0] ?? "" : String(keys ?? "");
|
|
1429
|
+
setActiveSection(nextSection);
|
|
1430
|
+
try {
|
|
1431
|
+
window.sessionStorage.setItem(storageKey, nextSection);
|
|
1432
|
+
}
|
|
1433
|
+
catch {
|
|
1434
|
+
// A browser that refuses storage still gets a working accordion, it just forgets the choice.
|
|
1435
|
+
}
|
|
1436
|
+
}, [storageKey]);
|
|
1437
|
+
return [activeSection, changeActiveSection];
|
|
1438
|
+
}
|
|
1439
|
+
/**
|
|
1440
|
+
* What each slot shows: the draft's own family over the block it follows, and the resolved stack the
|
|
1441
|
+
* page renders with only where neither names one. Read through the block rather than the draft alone,
|
|
1442
|
+
* so trying a Set on shows its typefaces before anything is saved.
|
|
1443
|
+
*/
|
|
1444
|
+
/**
|
|
1445
|
+
* What each catalogue family's variable resolves to, read where the variables are in scope.
|
|
1446
|
+
*
|
|
1447
|
+
* A catalogue family is reached through a CSS variable that `next/font` sets on the page root, and a
|
|
1448
|
+
* select's popup is drawn outside that root, where the variable does not exist. The family names the
|
|
1449
|
+
* variable points at are global, though -- only the variable is scoped -- so the resolved value works
|
|
1450
|
+
* anywhere. Read after mount, because the server renders no styles to read.
|
|
1451
|
+
*/
|
|
1452
|
+
/**
|
|
1453
|
+
* The `font-family` each font slot of a draft resolves to, the way the Site resolves it.
|
|
1454
|
+
*
|
|
1455
|
+
* A slot holds a catalogue family, a `phis:asset` reference to a typeface the Site owns, or any other
|
|
1456
|
+
* name. A catalogue family is reached through its variable, a Site typeface through its own face and
|
|
1457
|
+
* the substitute proportioned for it, and anything else is taken as written. Reading the raw slot value
|
|
1458
|
+
* as a `font-family` -- what the preview used to do -- rendered every catalogue family and every Site
|
|
1459
|
+
* typeface in the fallback, because neither is a name the browser knows.
|
|
1460
|
+
*
|
|
1461
|
+
* The roles fall back as the widgets' font helper does: accent to body, display to body. The faces of
|
|
1462
|
+
* the Site typefaces in use come back as CSS, since nothing else declares them until the Theme is saved.
|
|
1463
|
+
*/
|
|
1464
|
+
function usePhiThemeFontStacks(fonts) {
|
|
1465
|
+
const { fontFamilies } = usePhiConfig();
|
|
1466
|
+
const usesSiteTypeface = Object.values(fonts ?? {}).some((value) => typeof value === "string" && value.trim().startsWith("phis:asset/"));
|
|
1467
|
+
const siteFontAssets = usePhiSiteFontAssets(usesSiteTypeface);
|
|
1468
|
+
return useMemo(() => {
|
|
1469
|
+
const catalogue = new Map(fontFamilies.map((entry) => [entry.family, entry.cssVariable]));
|
|
1470
|
+
const assets = new Map(siteFontAssets.options.map((option) => [option.value, option]));
|
|
1471
|
+
const faces = new Set();
|
|
1472
|
+
const resolve = (value) => {
|
|
1473
|
+
const trimmed = value?.trim();
|
|
1474
|
+
if (!trimmed)
|
|
1475
|
+
return { stack: undefined, label: undefined };
|
|
1476
|
+
const asset = assets.get(trimmed);
|
|
1477
|
+
if (asset) {
|
|
1478
|
+
const source = {
|
|
1479
|
+
family: asset.label,
|
|
1480
|
+
url: asset.deliveryUrl,
|
|
1481
|
+
contentType: asset.contentType,
|
|
1482
|
+
metrics: asset.metrics,
|
|
1483
|
+
asset: { id: asset.assetId, deliveryRevision: asset.deliveryRevision },
|
|
1484
|
+
};
|
|
1485
|
+
const css = buildPhiFontFaceCss(source);
|
|
1486
|
+
if (css)
|
|
1487
|
+
faces.add(css);
|
|
1488
|
+
return { stack: buildPhiFontFamilyStack(source) ?? undefined, label: asset.label };
|
|
1489
|
+
}
|
|
1490
|
+
// A Site typeface the library has not answered for yet has no name to render in.
|
|
1491
|
+
if (trimmed.startsWith("phis:asset/"))
|
|
1492
|
+
return { stack: undefined, label: undefined };
|
|
1493
|
+
return { stack: catalogue.get(trimmed) ?? trimmed, label: trimmed };
|
|
1494
|
+
};
|
|
1495
|
+
const body = resolve(fonts?.body);
|
|
1496
|
+
const serif = resolve(fonts?.serif);
|
|
1497
|
+
const mono = resolve(fonts?.mono);
|
|
1498
|
+
const accent = resolve(fonts?.accent);
|
|
1499
|
+
const display = resolve(fonts?.display);
|
|
1500
|
+
return {
|
|
1501
|
+
body,
|
|
1502
|
+
serif,
|
|
1503
|
+
mono,
|
|
1504
|
+
accent: accent.stack ? accent : body,
|
|
1505
|
+
display: display.stack ? display : body,
|
|
1506
|
+
faceCss: [...faces].join(""),
|
|
1507
|
+
};
|
|
1508
|
+
}, [fontFamilies, fonts, siteFontAssets.options]);
|
|
1509
|
+
}
|
|
1510
|
+
function usePhiResolvedCatalogueFontFamilies(families) {
|
|
1511
|
+
const [resolved, setResolved] = useState(() => new Map());
|
|
1512
|
+
useEffect(() => {
|
|
1513
|
+
const root = document.querySelector("[data-phi-root-layout='true']") ?? document.documentElement;
|
|
1514
|
+
const style = getComputedStyle(root);
|
|
1515
|
+
const next = new Map();
|
|
1516
|
+
for (const { family, cssVariable } of families) {
|
|
1517
|
+
const name = /^var\((--[\w-]+)\)$/u.exec(cssVariable.trim())?.[1];
|
|
1518
|
+
const value = name ? style.getPropertyValue(name).trim() : "";
|
|
1519
|
+
if (value)
|
|
1520
|
+
next.set(family, value);
|
|
1521
|
+
}
|
|
1522
|
+
// Reading the computed style is the external state this mirrors, so it lands after the render.
|
|
1523
|
+
// eslint-disable-next-line react-hooks/set-state-in-effect
|
|
1524
|
+
setResolved(next);
|
|
1525
|
+
}, [families]);
|
|
1526
|
+
return resolved;
|
|
1527
|
+
}
|
|
1528
|
+
function resolveThemeFontSlots(theme, fonts, block) {
|
|
1529
|
+
const effective = resolvePhiThemeEffectiveFonts(theme.fonts, block);
|
|
1530
|
+
const authored = theme.fonts ?? {};
|
|
1531
|
+
/*
|
|
1532
|
+
* Two answers per slot, and the control needs both: what this Theme decided, which is what the
|
|
1533
|
+
* select holds and what clearing gives back, and what the slot resolves to without it, which is what
|
|
1534
|
+
* the field shows while nothing is decided. Collapsing them would make "follows the Set" and "is set
|
|
1535
|
+
* to the same family the Set names" look identical, and only one of the two survives a Set change.
|
|
1536
|
+
*/
|
|
1537
|
+
return [
|
|
1538
|
+
{ key: "body", label: "Body" },
|
|
1539
|
+
{ key: "serif", label: "Serif" },
|
|
1540
|
+
{ key: "mono", label: "Mono" },
|
|
1541
|
+
{ key: "accent", label: "Accent" },
|
|
1542
|
+
{ key: "display", label: "Display" },
|
|
1543
|
+
].map(({ key, label }) => ({
|
|
1544
|
+
key: key,
|
|
1545
|
+
label,
|
|
1546
|
+
authored: authored[key]?.trim() || null,
|
|
1547
|
+
inherited: effective[key]
|
|
1548
|
+
?? fonts[key]
|
|
1549
|
+
?? "",
|
|
1550
|
+
}));
|
|
1551
|
+
}
|
|
1552
|
+
export function PhiBuilderBrandThemeControlsWidgetClient({ runtime, config, colorPickerLabels, }) {
|
|
1553
|
+
const { presets: themePresets, token: clientToken } = usePhiConfig();
|
|
1554
|
+
const themeBlocks = usePhiThemeBlockCatalog();
|
|
1555
|
+
const sectionLabelWidth = clientToken.controlHeight * 3;
|
|
1556
|
+
const colorControlWidth = clientToken.controlHeight * 5.5;
|
|
1557
|
+
const themeKey = resolveThemeKey(config);
|
|
1558
|
+
const { state, draftRef, publishDraft, pickerTransaction } = usePhiBrandThemeDraft(runtime, themeKey);
|
|
1559
|
+
const previewMode = usePhiBrandPreviewMode(resolveThemePayloadMode(state.draft));
|
|
1560
|
+
const loading = false;
|
|
1561
|
+
const saving = false;
|
|
1562
|
+
const [activeColorSection, changeActiveColorSection] = usePhiBrandAccordionSection(BRAND_THEME_COLOR_COLLAPSE_STORAGE_KEY, BRAND_THEME_COLOR_SECTION_KEYS);
|
|
1563
|
+
const themeComposition = resolvePhiThemeComposition(state.draft, themeBlocks);
|
|
1564
|
+
const algorithm = previewMode === "dark" ? antdTheme.darkAlgorithm : antdTheme.defaultAlgorithm;
|
|
1565
|
+
const selectedPreset = resolveThemePayloadPreset(state.draft, themePresets);
|
|
1566
|
+
/*
|
|
1567
|
+
* What the tab shows is what the Site renders: the palette block with the draft's palette on top,
|
|
1568
|
+
* resolved for the mode being edited. The seeds the author owns are the ones present in the draft's
|
|
1569
|
+
* palette, shared or under this mode; the derived overrides live under this mode alone.
|
|
1570
|
+
*/
|
|
1571
|
+
const colorToken = resolvePhiThemeColorTokens(selectedPreset, state.draft.palette, previewMode);
|
|
1572
|
+
const ownPalette = state.draft.palette ?? {};
|
|
1573
|
+
const ownOverrides = ownPalette.modes?.[previewMode]?.overrides ?? {};
|
|
1574
|
+
/*
|
|
1575
|
+
* The same colour without the author's derived overrides: what a derived control falls back to, and
|
|
1576
|
+
* what its "Reset override" hands back. Seeds stay in, so the algorithm derives from the author's seed.
|
|
1577
|
+
*/
|
|
1578
|
+
const baseColorToken = resolvePhiThemeColorTokens(selectedPreset, mergeThemePaletteMode(state.draft, previewMode, (current) => ({ ...current, overrides: {} })).palette, previewMode);
|
|
1579
|
+
const customPalette = resolveThemeCustomPalette(state.draft, selectedPreset, previewMode);
|
|
1580
|
+
const customColorOptions = PHI_THEME_CUSTOM_COLOR_KEYS.map((key, index) => ({
|
|
1581
|
+
key,
|
|
1582
|
+
label: `${colorPickerLabels?.custom ?? "Custom"} ${index + 1}`,
|
|
1583
|
+
value: customPalette[key],
|
|
1584
|
+
}));
|
|
1585
|
+
const computedToken = antdTheme.getDesignToken({
|
|
1586
|
+
algorithm,
|
|
1587
|
+
token: {
|
|
1588
|
+
...buildPhiEffectiveNonColorThemeTokens(state.draft),
|
|
1589
|
+
...baseColorToken,
|
|
1590
|
+
},
|
|
1591
|
+
});
|
|
1592
|
+
return (_jsx(Flex, { vertical: true, gap: clientToken.padding, style: { width: "100%", minWidth: 0, opacity: loading ? 0.65 : 1 }, children: _jsx(Card, { size: "small", styles: { body: { padding: clientToken.paddingSM } }, children: _jsxs(Flex, { vertical: true, gap: clientToken.paddingSM, children: [_jsx(PhiBrandBlockPicker, { label: "Palette", value: themeComposition.palette.key, unavailable: themeComposition.unavailable.palette, options: themeBlocks.palettes, onChange: (key) => {
|
|
1593
|
+
const palette = themeBlocks.palettes.find((candidate) => candidate.key === key);
|
|
1594
|
+
if (!palette)
|
|
1595
|
+
return;
|
|
1596
|
+
publishDraft(mergeThemeBlockChoice(applyThemePreset(state.draft, palette), "palette", palette));
|
|
1597
|
+
} }), _jsx(Divider, { style: { marginBlock: 0 } }), _jsx(Collapse, { accordion: true, bordered: false, size: "small", activeKey: activeColorSection, onChange: changeActiveColorSection, styles: {
|
|
1598
|
+
root: { background: "transparent" },
|
|
1599
|
+
header: { alignItems: "center", paddingInline: 0 },
|
|
1600
|
+
body: { paddingInline: 0 },
|
|
1601
|
+
}, items: [
|
|
1602
|
+
{
|
|
1603
|
+
key: "custom",
|
|
1604
|
+
label: (_jsxs(Flex, { align: "center", gap: clientToken.paddingSM, wrap: "wrap", style: { minWidth: 0 }, children: [_jsx(Typography.Text, { strong: true, style: { width: sectionLabelWidth }, children: colorPickerLabels?.custom ?? "Custom" }), _jsx("div", { onClick: (event) => event.stopPropagation(), onKeyDown: (event) => event.stopPropagation(), style: {
|
|
1605
|
+
flex: `0 1 min(100%, ${colorControlWidth}px)`,
|
|
1606
|
+
minWidth: 0,
|
|
1607
|
+
maxWidth: "100%",
|
|
1608
|
+
}, children: _jsx(PhiColorWidget, { ...pickerTransaction, tokenKey: "custom6", value: customPalette.custom6, defaultValue: resolvePhiThemePresetCustomColors(selectedPreset, previewMode).custom6, disabled: saving, customColors: customColorOptions, presets: PHI_COLOR_PICKER_PRESETS, labels: colorPickerLabels, onChange: (value) => {
|
|
1609
|
+
publishDraft(mergeThemeCustomColors(state.draft, buildPhiThemeCustomColorPalette(value), previewMode));
|
|
1610
|
+
} }) })] })),
|
|
1611
|
+
children: (_jsx(Flex, { wrap: "wrap", style: { minWidth: 0, columnGap: clientToken.paddingXXS, rowGap: clientToken.paddingSM }, children: customColorOptions
|
|
1612
|
+
.filter((item) => item.key !== "custom6")
|
|
1613
|
+
.map((item) => (_jsx("div", { style: {
|
|
1614
|
+
flex: `1 1 calc((100% - ${clientToken.paddingXXS}) / 2)`,
|
|
1615
|
+
minWidth: 0,
|
|
1616
|
+
maxWidth: "100%",
|
|
1617
|
+
}, children: _jsx(PhiColorWidget, { ...pickerTransaction, label: item.label, tokenKey: item.key, value: item.value, defaultValue: resolvePhiThemePresetCustomColors(selectedPreset, previewMode)[item.key], disabled: saving, customColors: customColorOptions, presets: PHI_COLOR_PICKER_PRESETS, labels: colorPickerLabels, onChange: (value, tokenKey) => {
|
|
1618
|
+
if (!tokenKey || !PHI_THEME_CUSTOM_COLOR_KEYS.includes(tokenKey)) {
|
|
1619
|
+
return;
|
|
1620
|
+
}
|
|
1621
|
+
publishDraft(mergeThemeCustomColors(state.draft, { [tokenKey]: value }, previewMode));
|
|
1622
|
+
} }) }, item.key))) })),
|
|
1623
|
+
},
|
|
1624
|
+
...THEME_COLOR_SEED_SECTIONS.map((section) => {
|
|
1625
|
+
const seedAuthored = Object.prototype.hasOwnProperty.call(ownPalette.seed ?? {}, section.key) ||
|
|
1626
|
+
Object.prototype.hasOwnProperty.call(ownPalette.modes?.[previewMode]?.seed ?? {}, section.key);
|
|
1627
|
+
const seedDefaultValue = readComputedTokenColor(computedToken, section.key, section.fallback);
|
|
1628
|
+
const seedValue = seedAuthored
|
|
1629
|
+
? readTokenColor(colorToken, section.key, seedDefaultValue)
|
|
1630
|
+
: seedDefaultValue;
|
|
1631
|
+
return {
|
|
1632
|
+
key: section.key,
|
|
1633
|
+
label: (_jsxs(Flex, { align: "center", gap: clientToken.paddingSM, wrap: "wrap", style: { minWidth: 0 }, children: [_jsx(Typography.Text, { strong: true, style: { width: sectionLabelWidth }, children: section.label }), _jsx("div", { onClick: (event) => event.stopPropagation(), onKeyDown: (event) => event.stopPropagation(), style: {
|
|
1634
|
+
flex: `0 1 min(100%, ${colorControlWidth}px)`,
|
|
1635
|
+
minWidth: 0,
|
|
1636
|
+
maxWidth: "100%",
|
|
1637
|
+
}, children: _jsx(PhiColorWidget, { ...pickerTransaction, tokenKey: section.key, value: seedValue, defaultValue: seedDefaultValue, disabled: saving, customColors: customColorOptions, labels: colorPickerLabels, presets: section.presets, onChange: (value) => {
|
|
1638
|
+
publishDraft(mergeThemeSeedToken(draftRef.current, section, value, previewMode));
|
|
1639
|
+
} }) })] })),
|
|
1640
|
+
children: (_jsx(Flex, { wrap: "wrap", style: { minWidth: 0, columnGap: clientToken.paddingXXS, rowGap: clientToken.paddingSM }, children: section.derived.map((item) => {
|
|
1641
|
+
const overridden = Object.prototype.hasOwnProperty.call(ownOverrides, item.key);
|
|
1642
|
+
const fallback = readComputedTokenColor(computedToken, item.key, section.fallback);
|
|
1643
|
+
return (_jsx("div", { style: {
|
|
1644
|
+
flex: `1 1 calc((100% - ${clientToken.paddingXXS}) / 2)`,
|
|
1645
|
+
minWidth: 0,
|
|
1646
|
+
maxWidth: "100%",
|
|
1647
|
+
}, children: _jsxs(Flex, { vertical: true, gap: clientToken.paddingXXS, children: [_jsx(PhiColorWidget, { ...pickerTransaction, label: item.label, tokenKey: item.key, value: overridden ? readTokenColor(colorToken, item.key, fallback) : fallback, defaultValue: fallback, disabled: saving, customColors: customColorOptions, labels: colorPickerLabels, onChange: (value, tokenKey) => {
|
|
1648
|
+
if (!tokenKey) {
|
|
1649
|
+
return;
|
|
1650
|
+
}
|
|
1651
|
+
publishDraft(mergeThemeColorOverride(state.draft, tokenKey, value, previewMode));
|
|
1652
|
+
} }), overridden ? (_jsx(PhiButtonControl, { size: "small", type: "link", disabled: saving, style: { alignSelf: "flex-start", paddingInline: 0, height: clientToken.controlHeightSM }, onClick: () => publishDraft(omitThemeColorOverride(state.draft, item.key, previewMode)), label: "Reset override" })) : null] }) }, item.key));
|
|
1653
|
+
}) })),
|
|
1654
|
+
};
|
|
1655
|
+
}),
|
|
1656
|
+
] })] }) }) }));
|
|
1657
|
+
}
|
|
1658
|
+
export function PhiBuilderBrandStyleControlsWidgetClient({ runtime, config, }) {
|
|
1659
|
+
const { fonts, fontFamilies, token: clientToken } = usePhiConfig();
|
|
1660
|
+
const themeBlocks = usePhiThemeBlockCatalog();
|
|
1661
|
+
const fieldLabelWidth = clientToken.controlHeight * 4;
|
|
1662
|
+
const themeKey = resolveThemeKey(config);
|
|
1663
|
+
const { state, publishDraft } = usePhiBrandThemeDraft(runtime, themeKey);
|
|
1664
|
+
const loading = false;
|
|
1665
|
+
const saving = false;
|
|
1666
|
+
const [activeStyleSection, changeActiveStyleSection] = usePhiBrandAccordionSection(BRAND_THEME_STYLE_COLLAPSE_STORAGE_KEY, BRAND_THEME_STYLE_SECTION_KEYS);
|
|
1667
|
+
const token = stripEmptyTokenValues(state.draft.style?.token ?? {});
|
|
1668
|
+
const styleTokenInput = {
|
|
1669
|
+
...buildPhiEffectiveNonColorThemeTokens(state.draft),
|
|
1670
|
+
...token,
|
|
1671
|
+
};
|
|
1672
|
+
const radiusValues = {
|
|
1673
|
+
borderRadiusSM: readEffectiveTokenNumber(styleTokenInput, "borderRadiusSM", PHI_RADII.xs),
|
|
1674
|
+
borderRadius: readEffectiveTokenNumber(styleTokenInput, "borderRadius", PHI_RADII.sm),
|
|
1675
|
+
borderRadiusLG: readEffectiveTokenNumber(styleTokenInput, "borderRadiusLG", PHI_RADII.base),
|
|
1676
|
+
};
|
|
1677
|
+
const controlHeightValues = {
|
|
1678
|
+
controlHeightSM: readEffectiveTokenNumber(styleTokenInput, "controlHeightSM", PHI_CONTROL_HEIGHTS.sm),
|
|
1679
|
+
controlHeight: readEffectiveTokenNumber(styleTokenInput, "controlHeight", PHI_CONTROL_HEIGHTS.md),
|
|
1680
|
+
controlHeightLG: readEffectiveTokenNumber(styleTokenInput, "controlHeightLG", PHI_CONTROL_HEIGHTS.lg),
|
|
1681
|
+
};
|
|
1682
|
+
const wireframe = readEffectiveTokenBoolean(styleTokenInput, "wireframe", true);
|
|
1683
|
+
const remRootValue = state.draft.rem?.rootValue ?? 16;
|
|
1684
|
+
const baseFontSize = readEffectiveTokenNumber(styleTokenInput, "fontSize", 12);
|
|
1685
|
+
function updateToken(tokenPatch) {
|
|
1686
|
+
publishDraft(mergeThemeToken(state.draft, tokenPatch));
|
|
1687
|
+
}
|
|
1688
|
+
const themeComposition = resolvePhiThemeComposition(state.draft, themeBlocks);
|
|
1689
|
+
const fontSlots = resolveThemeFontSlots(state.draft, fonts, themeComposition.fonts);
|
|
1690
|
+
const siteFontAssets = usePhiSiteFontAssets();
|
|
1691
|
+
const resolvedCatalogueFamilies = usePhiResolvedCatalogueFontFamilies(fontFamilies);
|
|
1692
|
+
/*
|
|
1693
|
+
* The Site's own typefaces are declared nowhere unless the Theme already uses them, so the faces a
|
|
1694
|
+
* preview needs are written here -- the same rules the page would write, harmless twice.
|
|
1695
|
+
*/
|
|
1696
|
+
const siteFontFaceCss = useMemo(() => siteFontAssets.options
|
|
1697
|
+
.map((option) => buildPhiFontFaceCss({
|
|
1698
|
+
family: option.label,
|
|
1699
|
+
url: option.deliveryUrl,
|
|
1700
|
+
contentType: option.contentType,
|
|
1701
|
+
metrics: option.metrics,
|
|
1702
|
+
asset: { id: option.assetId, deliveryRevision: option.deliveryRevision },
|
|
1703
|
+
}))
|
|
1704
|
+
.filter(Boolean)
|
|
1705
|
+
.join(""), [siteFontAssets.options]);
|
|
1706
|
+
/*
|
|
1707
|
+
* Where a typeface comes from decides what happens to it, so the list is grouped by it. A catalogue
|
|
1708
|
+
* family is declared by this package or by an installed Module, and switching that Module off takes
|
|
1709
|
+
* it away; a typeface from the library belongs to the Site and stays. Each option is set in its own
|
|
1710
|
+
* face, so choosing a font is looking at fonts.
|
|
1711
|
+
*/
|
|
1712
|
+
const fontOptions = useMemo(() => [
|
|
1713
|
+
...fontFamilies.map(({ family }) => ({
|
|
1714
|
+
value: family,
|
|
1715
|
+
label: family,
|
|
1716
|
+
group: "Installed",
|
|
1717
|
+
preview: { kind: "font", fontFamily: resolvedCatalogueFamilies.get(family) ?? family },
|
|
1718
|
+
})),
|
|
1719
|
+
...siteFontAssets.options.map((option) => ({
|
|
1720
|
+
value: option.value,
|
|
1721
|
+
label: option.label,
|
|
1722
|
+
group: "This Site",
|
|
1723
|
+
preview: {
|
|
1724
|
+
kind: "font",
|
|
1725
|
+
fontFamily: buildPhiFontFamilyStack({
|
|
1726
|
+
family: option.label,
|
|
1727
|
+
url: option.deliveryUrl,
|
|
1728
|
+
contentType: option.contentType,
|
|
1729
|
+
metrics: option.metrics,
|
|
1730
|
+
asset: { id: option.assetId, deliveryRevision: option.deliveryRevision },
|
|
1731
|
+
}) ?? option.label,
|
|
1732
|
+
},
|
|
1733
|
+
})),
|
|
1734
|
+
], [fontFamilies, resolvedCatalogueFamilies, siteFontAssets.options]);
|
|
1735
|
+
return (_jsxs(Flex, { vertical: true, gap: clientToken.padding, style: { width: "100%", minWidth: 0, opacity: loading ? 0.65 : 1 }, children: [siteFontFaceCss ? (_jsx("style", { href: "phi-theme-font-picker-faces", precedence: "default", dangerouslySetInnerHTML: { __html: siteFontFaceCss } })) : null, _jsx(Card, { size: "small", styles: { body: { padding: clientToken.paddingSM } }, children: _jsx(Collapse, { accordion: true, bordered: false, size: "small", activeKey: activeStyleSection, onChange: changeActiveStyleSection, styles: {
|
|
1736
|
+
root: { background: "transparent" },
|
|
1737
|
+
header: { alignItems: "center", paddingInline: 0 },
|
|
1738
|
+
body: { paddingInline: 0 },
|
|
1739
|
+
}, items: [
|
|
1740
|
+
{
|
|
1741
|
+
key: "controls",
|
|
1742
|
+
label: _jsx(Typography.Text, { strong: true, children: "Controls" }),
|
|
1743
|
+
children: (_jsx(Flex, { vertical: true, gap: clientToken.paddingXS, children: _jsx(PhiSegmentedControl, { label: "Shape", value: resolveThemeShapeChoice(state.draft), options: [
|
|
1744
|
+
{
|
|
1745
|
+
value: "theme",
|
|
1746
|
+
label: "Theme",
|
|
1747
|
+
description: `${themeComposition.style.title}: ${formatShapeLabel(resolvePhiUniformControlShape(themeComposition.style.shape.controls))}`,
|
|
1748
|
+
},
|
|
1749
|
+
...PHI_CONTROL_SHAPES.map((value) => ({ value, label: formatShapeLabel(value) })),
|
|
1750
|
+
], block: true, disabled: saving, onChange: (value) => publishDraft(value === "theme"
|
|
1751
|
+
? clearThemeShapeScale(state.draft)
|
|
1752
|
+
: mergeThemeControlShape(state.draft, createPhiControlShapeCorners(value))) }) })),
|
|
1753
|
+
},
|
|
1754
|
+
{
|
|
1755
|
+
key: "buttonShadow",
|
|
1756
|
+
label: _jsx(Typography.Text, { strong: true, children: "Button Shadow" }),
|
|
1757
|
+
children: (_jsxs(Flex, { vertical: true, gap: clientToken.paddingSM, children: [_jsx(Typography.Text, { type: "secondary", children: "Under each kind of Button. Theme keeps the tinted line; applies to both modes." }), PHI_THEME_BUTTON_SHADOW_KINDS.map((item) => (_jsx(PhiSegmentedControl, { label: item.label, value: readThemeButtonShadowChoice(state.draft, item.key), options: PHI_THEME_BUTTON_SHADOW_OPTIONS, block: true, disabled: saving, onChange: (choice) => publishDraft(mergeThemeButtonShadow(state.draft, item.key, choice)) }, item.key)))] })),
|
|
1758
|
+
},
|
|
1759
|
+
{
|
|
1760
|
+
key: "radius",
|
|
1761
|
+
label: _jsx(Typography.Text, { strong: true, children: "Border Radius" }),
|
|
1762
|
+
children: (_jsx(Flex, { vertical: true, gap: clientToken.paddingXS, children: [
|
|
1763
|
+
{ key: "borderRadiusSM", label: "Small", value: radiusValues.borderRadiusSM, fallbackPreset: "xs" },
|
|
1764
|
+
{ key: "borderRadius", label: "Base", value: radiusValues.borderRadius, fallbackPreset: "sm" },
|
|
1765
|
+
{ key: "borderRadiusLG", label: "Large", value: radiusValues.borderRadiusLG, fallbackPreset: "base" },
|
|
1766
|
+
].map((item) => (_jsxs(Flex, { align: "center", gap: clientToken.paddingSM, wrap: "nowrap", children: [_jsx(Typography.Text, { style: { flex: `0 0 ${fieldLabelWidth}px` }, children: item.label }), _jsx(PhiPresetSizeControl, { disabled: saving, value: item.value, fallbackKey: item.fallbackPreset, options: PHI_STYLE_RADIUS_PRESET_OPTIONS, onChange: (value) => updateToken({ [item.key]: value }) })] }, item.key))) })),
|
|
1767
|
+
},
|
|
1768
|
+
{
|
|
1769
|
+
key: "controlHeight",
|
|
1770
|
+
label: _jsx(Typography.Text, { strong: true, children: "Control Height" }),
|
|
1771
|
+
children: (_jsx(Flex, { vertical: true, gap: clientToken.paddingXS, children: [
|
|
1772
|
+
{ key: "controlHeightSM", label: "Small", value: controlHeightValues.controlHeightSM, fallbackPreset: "base" },
|
|
1773
|
+
{ key: "controlHeight", label: "Base", value: controlHeightValues.controlHeight, fallbackPreset: "md" },
|
|
1774
|
+
{ key: "controlHeightLG", label: "Large", value: controlHeightValues.controlHeightLG, fallbackPreset: "lg" },
|
|
1775
|
+
].map((item) => (_jsxs(Flex, { align: "center", gap: clientToken.paddingSM, wrap: "nowrap", children: [_jsx(Typography.Text, { style: { flex: `0 0 ${fieldLabelWidth}px` }, children: item.label }), _jsx(PhiPresetSizeControl, { disabled: saving, value: item.value, fallbackKey: item.fallbackPreset, options: PHI_STYLE_CONTROL_HEIGHT_PRESET_OPTIONS, onChange: (value) => updateToken({ [item.key]: value }) })] }, item.key))) })),
|
|
1776
|
+
},
|
|
1777
|
+
{
|
|
1778
|
+
key: "fontFamily",
|
|
1779
|
+
label: _jsx(Typography.Text, { strong: true, children: "Font Family" }),
|
|
1780
|
+
children: (_jsxs(Flex, { vertical: true, gap: clientToken.paddingXS, children: [fontSlots.map((item) => (_jsxs(Flex, { align: "center", gap: clientToken.paddingSM, wrap: "nowrap", children: [_jsx(Typography.Text, { style: { flex: `0 0 ${fieldLabelWidth}px` }, children: item.label }), _jsx(PhiSelectControl, { ariaLabel: `${item.label} font`, value: item.authored ?? undefined, placeholder: item.inherited || "Not installed", options: fontOptions, allowClear: true, disabled: saving, size: "medium", style: { minWidth: 0, flex: "1 1 auto" }, onChange: (value) => publishDraft(
|
|
1781
|
+
// A cleared select reports nothing, which hands the slot back to the Set.
|
|
1782
|
+
mergeThemeFontSlot(state.draft, item.key, value ?? null)) })] }, item.key))), _jsx(Divider, { style: { marginBlock: clientToken.paddingXXS } }), _jsxs(Flex, { align: "center", gap: clientToken.paddingSM, wrap: "nowrap", children: [_jsx(Typography.Text, { style: { flex: `0 0 ${fieldLabelWidth}px` }, children: "Headings" }), _jsx(PhiSegmentedControl, { value: readPhiThemeHeadingFont(state.draft.typography), options: PHI_THEME_HEADING_FONT_OPTIONS, disabled: saving, size: "small", onChange: (heading) => publishDraft(mergeThemeHeadingFont(state.draft, heading)) })] })] })),
|
|
1783
|
+
},
|
|
1784
|
+
{
|
|
1785
|
+
key: "fontSize",
|
|
1786
|
+
label: _jsx(Typography.Text, { strong: true, children: "Base Font Size" }),
|
|
1787
|
+
children: (_jsxs(Flex, { vertical: true, gap: clientToken.paddingXS, children: [_jsxs(Flex, { align: "center", gap: clientToken.paddingSM, wrap: "nowrap", children: [_jsx(Typography.Text, { style: { flex: `0 0 ${fieldLabelWidth}px` }, children: "Root value" }), _jsxs(Typography.Text, { code: true, children: [remRootValue, "px"] })] }), _jsxs(Flex, { align: "center", gap: clientToken.paddingSM, wrap: "nowrap", children: [_jsx(Typography.Text, { style: { flex: `0 0 ${fieldLabelWidth}px` }, children: "Font size" }), _jsxs(Typography.Text, { code: true, children: [baseFontSize, "px"] })] }), _jsx(Typography.Text, { type: "secondary", children: "Root value controls rem conversion; font size is the seed every other type size is derived from." })] })),
|
|
1788
|
+
},
|
|
1789
|
+
{
|
|
1790
|
+
key: "wireframe",
|
|
1791
|
+
label: _jsx(Typography.Text, { strong: true, children: "Wireframe" }),
|
|
1792
|
+
children: (_jsxs(Flex, { align: "center", justify: "space-between", gap: clientToken.paddingSM, wrap: "wrap", children: [_jsx(Typography.Text, { type: "secondary", children: "Dividing lines in dialogs and popovers, outlined steps and radios" }), _jsx(PhiSwitchControl, { checked: wireframe, disabled: saving, checkedChildren: "On", unCheckedChildren: "Off", onChange: (checked) => updateToken({ wireframe: checked }) })] })),
|
|
1793
|
+
},
|
|
1794
|
+
] }) })] }));
|
|
1795
|
+
}
|
|
1796
|
+
/**
|
|
1797
|
+
* The Theme Root Background and the Shell Chrome Overlay (SHELL.md): the two site-owned grounds, one
|
|
1798
|
+
* behind the whole Site and one shared by the Header, Sider and Footer Regions, each per mode.
|
|
1799
|
+
*
|
|
1800
|
+
* Its own Stack slot rather than a section of the style controls, because it is not a token -- it is a
|
|
1801
|
+
* picture, and it wants the width. The mode being edited follows the preview switch, the way the
|
|
1802
|
+
* colour controls do: one ground at a time, and the switch says which. It used to show both at once,
|
|
1803
|
+
* so that an author setting the dark ground could see the light one, but the Control draws what it is
|
|
1804
|
+
* given, so each ground is already visible while it is being set.
|
|
1805
|
+
*
|
|
1806
|
+
* The Control is keyed by mode. Switching rebuilds it rather than handing it a different value, so an
|
|
1807
|
+
* open media picker cannot commit into the ground the author has just switched away from.
|
|
1808
|
+
*/
|
|
1809
|
+
/**
|
|
1810
|
+
* Choosing which block a part of the Theme follows.
|
|
1811
|
+
*
|
|
1812
|
+
* A choice is a pointer, never a copy: the block's values are worked out on every render, so a Module
|
|
1813
|
+
* that improves its own look reaches a Site that follows it.
|
|
1814
|
+
*
|
|
1815
|
+
* Picking a block also drops the author's values for that part, and only picking does. The rule that a
|
|
1816
|
+
* block stays under what somebody authored is about a block acting on its own -- a Module updating, a
|
|
1817
|
+
* Set filling in a part nobody decided. Reaching for the picker is not that: somebody asking for
|
|
1818
|
+
* another ground means to see it, and a switch that changed nothing on screen would read as broken.
|
|
1819
|
+
* Undo takes the whole exchange back in one step, which is what makes trying one on safe.
|
|
1820
|
+
*/
|
|
1821
|
+
function mergeThemeBlockChoice(theme, part, block) {
|
|
1822
|
+
const withChoice = {
|
|
1823
|
+
...theme,
|
|
1824
|
+
blocks: {
|
|
1825
|
+
...(theme.blocks ?? {}),
|
|
1826
|
+
[part]: { key: block.key, version: block.version },
|
|
1827
|
+
},
|
|
1828
|
+
};
|
|
1829
|
+
if (part === "ground")
|
|
1830
|
+
return clearThemeAuthoredGround(withChoice);
|
|
1831
|
+
return withChoice;
|
|
1832
|
+
}
|
|
1833
|
+
/**
|
|
1834
|
+
* A Set decides all three parts, so it clears all three: the parts picked one by one, because a Set is
|
|
1835
|
+
* what somebody falls back on when they stop deciding each part, and the values authored on top of
|
|
1836
|
+
* them, for the same reason picking a single block clears its own. The Control shape belongs to the
|
|
1837
|
+
* style, so it goes with the style tokens.
|
|
1838
|
+
*/
|
|
1839
|
+
function mergeThemeSetChoice(theme, set) {
|
|
1840
|
+
return clearThemeAuthoredFonts(clearThemeAuthoredGround(clearThemeControlShape(clearThemeStyleTokens({
|
|
1841
|
+
...theme,
|
|
1842
|
+
blocks: { set: { key: set.key, version: set.version } },
|
|
1843
|
+
}))));
|
|
1844
|
+
}
|
|
1845
|
+
/** Every font slot an author set, so the Set's fonts block is what shows. */
|
|
1846
|
+
function clearThemeAuthoredFonts(theme) {
|
|
1847
|
+
return Object.fromEntries(Object.entries(theme).filter(([key]) => key !== "fonts"));
|
|
1848
|
+
}
|
|
1849
|
+
function formatShapeLabel(shape) {
|
|
1850
|
+
return shape.charAt(0).toUpperCase() + shape.slice(1);
|
|
1851
|
+
}
|
|
1852
|
+
/** Every ground value an author set, in both modes, so the chosen block is what shows. */
|
|
1853
|
+
function clearThemeAuthoredGround(theme) {
|
|
1854
|
+
const root = Object.fromEntries(Object.entries(theme.root ?? {}).filter(([key]) => key !== "background" && key !== "chrome"));
|
|
1855
|
+
return { ...theme, root };
|
|
1856
|
+
}
|
|
1857
|
+
/**
|
|
1858
|
+
* Dropping the author's values for one surface, so the block below shows through again.
|
|
1859
|
+
*
|
|
1860
|
+
* This is what "reset" means once a Theme follows blocks: not restoring a copy, but taking the layer
|
|
1861
|
+
* on top away. One surface and one mode at a time, because that is the granularity an author edits in
|
|
1862
|
+
* -- and the Shadow goes in one piece, since it never was a per-mode value.
|
|
1863
|
+
*/
|
|
1864
|
+
function clearThemeRootSurface(theme, surface, mode) {
|
|
1865
|
+
const root = theme.root ?? {};
|
|
1866
|
+
const without = (record, key) => Object.fromEntries(Object.entries(record ?? {}).filter(([entry]) => entry !== key));
|
|
1867
|
+
if (surface === "background") {
|
|
1868
|
+
return { ...theme, root: { ...root, background: without(root.background, mode) } };
|
|
1869
|
+
}
|
|
1870
|
+
return {
|
|
1871
|
+
...theme,
|
|
1872
|
+
root: { ...root, chrome: without(root.chrome, surface === "shadow" ? "shadow" : mode) },
|
|
1873
|
+
};
|
|
1874
|
+
}
|
|
1875
|
+
/**
|
|
1876
|
+
* Handing one surface back to the block it follows.
|
|
1877
|
+
*
|
|
1878
|
+
* "Reset" here takes the author's layer away rather than restoring a copy, which is why it names the
|
|
1879
|
+
* block: what comes back is whatever that block says today, not what it said when somebody last
|
|
1880
|
+
* looked. Offered only where there is something to take away.
|
|
1881
|
+
*/
|
|
1882
|
+
function PhiBrandBlockResetButton({ blockTitle, disabled, onReset, }) {
|
|
1883
|
+
return (_jsx(PhiButtonControl, { size: "small", type: "text", disabled: disabled, onClick: onReset, label: `Follow ${blockTitle}` }));
|
|
1884
|
+
}
|
|
1885
|
+
/**
|
|
1886
|
+
* Dropping every structural override, so the style block shows through again.
|
|
1887
|
+
*
|
|
1888
|
+
* Colour stays: the two tabs are two decisions, and somebody resetting the proportions did not ask to
|
|
1889
|
+
* lose the brand colour they picked. The record keeps them apart -- `palette` and `style` -- so taking
|
|
1890
|
+
* the one away never touches the other.
|
|
1891
|
+
*/
|
|
1892
|
+
function clearThemeStyleTokens(theme) {
|
|
1893
|
+
return omitThemeFields(theme, "style");
|
|
1894
|
+
}
|
|
1895
|
+
/**
|
|
1896
|
+
* The picker for one part of the Theme.
|
|
1897
|
+
*
|
|
1898
|
+
* It names what the Site follows, and it says so even when the block is not available: a Module that
|
|
1899
|
+
* was switched off leaves its key in the record, and showing the core block as if somebody had chosen
|
|
1900
|
+
* it would be a lie the author could not act on.
|
|
1901
|
+
*/
|
|
1902
|
+
function PhiBrandBlockPicker({ label, value, unavailable, options, onChange, }) {
|
|
1903
|
+
const { token: clientToken } = usePhiConfig();
|
|
1904
|
+
return (_jsxs(Flex, { vertical: true, gap: clientToken.paddingXXS, style: { minWidth: 0 }, children: [_jsxs(Flex, { align: "center", justify: "space-between", gap: clientToken.paddingXS, children: [_jsx(Typography.Text, { strong: true, children: label }), _jsx(PhiSelectControl, { ariaLabel: label, size: "medium", value: value, style: { minWidth: clientToken.controlHeight * 5 }, onChange: onChange, options: options.map((option) => ({ value: option.key, label: option.title })) })] }), unavailable ? (_jsx(Typography.Text, { type: "warning", children: `Not available: ${unavailable}. Showing the built-in block until its Module is switched on again.` })) : null] }));
|
|
1905
|
+
}
|
|
1906
|
+
/**
|
|
1907
|
+
* Carry the ground authored for one mode over to the other.
|
|
1908
|
+
*
|
|
1909
|
+
* A Site is authored in one mode first, and the other one usually wants the same picture with at most
|
|
1910
|
+
* a colour changed. Without this the author rebuilds it field by field in a mode that is not on
|
|
1911
|
+
* screen. The copy goes through the same draft change every control here makes, so Undo takes it back
|
|
1912
|
+
* in one step like any other edit, and it is offered only while the two modes actually differ.
|
|
1913
|
+
*/
|
|
1914
|
+
function PhiBrandCopyModeButton({ mode, disabled, onCopy, }) {
|
|
1915
|
+
return (_jsx(PhiButtonControl, { size: "small", style: { flexShrink: 0 }, disabled: disabled, onClick: onCopy, label: `Copy to ${mode === "dark" ? "light" : "dark"}` }));
|
|
1916
|
+
}
|
|
1917
|
+
/*
|
|
1918
|
+
* The Logo's picker has a route set of its own.
|
|
1919
|
+
*
|
|
1920
|
+
* Two senders on one route are indistinguishable to whatever reads it, and the Identity panel can be
|
|
1921
|
+
* mounted while a Background picker still holds the Theme ground routes -- they live in different Stack
|
|
1922
|
+
* slots today, but a route set is cheap and a crossed picker is not.
|
|
1923
|
+
*/
|
|
1924
|
+
const PHI_THEME_BRAND_LOGO_MEDIA_ROUTES = createPhiMediaPickerAssetControllerRoutes("theme-brand-logo-media", "area");
|
|
1925
|
+
/**
|
|
1926
|
+
* The stored tracking as a number the control can hold.
|
|
1927
|
+
*
|
|
1928
|
+
* Reads a bare number as well, because that is what the text field this replaced allowed somebody to
|
|
1929
|
+
* write -- it never rendered, so showing it as the number it was meant to be is how it starts working.
|
|
1930
|
+
*/
|
|
1931
|
+
function readWordmarkLetterSpacingEm(value) {
|
|
1932
|
+
const parsed = Number.parseFloat((value ?? "").trim().replace(/em$/i, ""));
|
|
1933
|
+
return Number.isFinite(parsed) ? parsed : null;
|
|
1934
|
+
}
|
|
1935
|
+
/** The weights a Wordmark part is offered, which is the range a name is actually set in. */
|
|
1936
|
+
/** What a sample button in the Theme preview does when pressed: nothing, while staying a live one. */
|
|
1937
|
+
function previewNoop() { }
|
|
1938
|
+
const PHI_THEME_HEADING_FONT_OPTIONS = [
|
|
1939
|
+
{ value: "body", label: "Body" },
|
|
1940
|
+
{ value: "serif", label: "Serif" },
|
|
1941
|
+
{ value: "display", label: "Display" },
|
|
1942
|
+
];
|
|
1943
|
+
const PHI_THEME_WORDMARK_WEIGHT_OPTIONS = [
|
|
1944
|
+
{ value: "", label: "Default" },
|
|
1945
|
+
{ value: "300", label: "Light" },
|
|
1946
|
+
{ value: "400", label: "Regular" },
|
|
1947
|
+
{ value: "500", label: "Medium" },
|
|
1948
|
+
{ value: "600", label: "Semibold" },
|
|
1949
|
+
{ value: "700", label: "Bold" },
|
|
1950
|
+
];
|
|
1951
|
+
/**
|
|
1952
|
+
* Who the Site says it is: the Logo and the Wordmark.
|
|
1953
|
+
*
|
|
1954
|
+
* A Site has one name in light and in dark, so the Wordmark has no mode switch and no copy-to-other-mode
|
|
1955
|
+
* button. The Logo does: it is artwork in fixed colours, one picture per mode, and it follows the
|
|
1956
|
+
* workspace's light and dark switch the way the Background does.
|
|
1957
|
+
*
|
|
1958
|
+
* Slogan, Location and Contact are not here. They are lines of text in a Region, and a Region's text is
|
|
1959
|
+
* set where the Region is built; the Theme record still carries them as what a Preset seeds its Widgets
|
|
1960
|
+
* from, which is a different job from authoring them.
|
|
1961
|
+
*/
|
|
1962
|
+
export function PhiBuilderBrandIdentityControlsWidgetClient({ runtime, config, }) {
|
|
1963
|
+
const { token: clientToken } = usePhiConfig();
|
|
1964
|
+
const themeBlocks = usePhiThemeBlockCatalog();
|
|
1965
|
+
const themeKey = resolveThemeKey(config);
|
|
1966
|
+
const { state, publishDraft } = usePhiBrandThemeDraft(runtime, themeKey);
|
|
1967
|
+
const mode = usePhiBrandPreviewMode(resolveThemePayloadMode(state.draft));
|
|
1968
|
+
const [activeIdentitySection, changeActiveIdentitySection] = usePhiBrandAccordionSection(BRAND_THEME_IDENTITY_COLLAPSE_STORAGE_KEY, BRAND_THEME_IDENTITY_SECTION_KEYS);
|
|
1969
|
+
const brand = state.draft.brand ?? {};
|
|
1970
|
+
/*
|
|
1971
|
+
* The Logo shows what the Site draws, which is the Set's wherever the record says nothing about the
|
|
1972
|
+
* mode. Picking one takes the mode over; the reset hands it back to the Set.
|
|
1973
|
+
*/
|
|
1974
|
+
const logoSet = resolvePhiThemeComposition(state.draft, themeBlocks).logoSet;
|
|
1975
|
+
const logos = resolvePhiThemeEffectiveLogo(brand.logo, logoSet);
|
|
1976
|
+
const otherMode = mode === "dark" ? "light" : "dark";
|
|
1977
|
+
const logo = logos[mode] ?? null;
|
|
1978
|
+
const logoPreviewUrl = resolvePhiBrandLogoUrl({ logo: logos }, mode);
|
|
1979
|
+
const wordmarkParts = brand.wordmark?.parts ?? [];
|
|
1980
|
+
/*
|
|
1981
|
+
* A Site with no Wordmark yet still gets a field to type it into.
|
|
1982
|
+
*
|
|
1983
|
+
* The row is what the author came here for; offering only "Add part" made the ordinary case -- one
|
|
1984
|
+
* name, one colour -- start with a button whose name describes the rare case. The blank row is not
|
|
1985
|
+
* stored: writing in it is what creates the first part, and the placeholder says what the frame is
|
|
1986
|
+
* showing meanwhile.
|
|
1987
|
+
*/
|
|
1988
|
+
const editableWordmarkParts = wordmarkParts.length > 0
|
|
1989
|
+
? wordmarkParts
|
|
1990
|
+
: [{ text: "" }];
|
|
1991
|
+
/*
|
|
1992
|
+
* What the Site falls back to, shown rather than written. An author who has set no Wordmark should
|
|
1993
|
+
* see what the frame is showing instead of an empty field that looks like a missing name.
|
|
1994
|
+
*/
|
|
1995
|
+
const fallbackWordmark = runtime.site.name ?? runtime.site.key;
|
|
1996
|
+
/*
|
|
1997
|
+
* The Pages of the public Area, from the same provider the Builder's own Page Cascader reads. The
|
|
1998
|
+
* Widget declares the provider so the Page mounts it; without that the list is simply empty, which
|
|
1999
|
+
* would look like a Site with one Page.
|
|
2000
|
+
*/
|
|
2001
|
+
const { options: homePathOptions } = usePhiControlOptionsProvider({
|
|
2002
|
+
optionsProvider: { providerKey: PHI_BUILDER_RUNTIME_DATA_PROVIDER_KEYS.builderPages },
|
|
2003
|
+
});
|
|
2004
|
+
function updateWordmarkPart(index, patch) {
|
|
2005
|
+
publishDraft(mergeThemeWordmarkParts(state.draft, editableWordmarkParts.map((part, at) => (at === index ? { ...part, ...patch } : part))));
|
|
2006
|
+
}
|
|
2007
|
+
return (_jsx(Flex, { vertical: true, gap: clientToken.padding, style: { width: "100%", minWidth: 0 }, children: _jsx(Card, { size: "small", styles: { body: { padding: clientToken.paddingSM } }, children: _jsx(Collapse, { accordion: true, bordered: false, size: "small", activeKey: activeIdentitySection, onChange: changeActiveIdentitySection, styles: {
|
|
2008
|
+
root: { background: "transparent" },
|
|
2009
|
+
header: { alignItems: "center", paddingInline: 0 },
|
|
2010
|
+
body: { paddingInline: 0 },
|
|
2011
|
+
}, items: [
|
|
2012
|
+
{
|
|
2013
|
+
key: "logo",
|
|
2014
|
+
label: _jsx(Typography.Text, { strong: true, children: "Logo" }),
|
|
2015
|
+
children: (_jsxs(Flex, { vertical: true, gap: clientToken.paddingXS, children: [_jsxs(Flex, { align: "center", justify: "space-between", gap: clientToken.paddingXS, children: [_jsx(Flex, { align: "center", "aria-label": `${mode === "dark" ? "Dark" : "Light"} mode Logo preview`, role: "img", style: {
|
|
2016
|
+
flex: "1 1 auto",
|
|
2017
|
+
minWidth: 0,
|
|
2018
|
+
height: 48,
|
|
2019
|
+
paddingInline: clientToken.paddingSM,
|
|
2020
|
+
borderRadius: clientToken.borderRadius,
|
|
2021
|
+
border: `1px solid ${clientToken.colorBorderSecondary}`,
|
|
2022
|
+
background: mode === "dark" ? "#141414" : "#ffffff",
|
|
2023
|
+
}, children: logoPreviewUrl ? (_jsx("span", { style: {
|
|
2024
|
+
display: "block",
|
|
2025
|
+
width: "100%",
|
|
2026
|
+
height: 32,
|
|
2027
|
+
backgroundImage: `url("${logoPreviewUrl}")`,
|
|
2028
|
+
backgroundSize: "contain",
|
|
2029
|
+
backgroundRepeat: "no-repeat",
|
|
2030
|
+
backgroundPosition: "left center",
|
|
2031
|
+
} })) : (_jsx(Typography.Text, { type: "secondary", style: { color: mode === "dark" ? "rgba(255, 255, 255, 0.45)" : undefined }, children: "No Logo" })) }), _jsxs(Flex, { align: "center", gap: clientToken.paddingXXS, style: { flexShrink: 0 }, children: [_jsx(PhiBrandBlockResetButton, { disabled: brand.logo?.[mode] == null, blockTitle: logoSet.title, onReset: () => publishDraft(mergeThemeBrandLogo(state.draft, mode, undefined)) }), _jsx(PhiBrandCopyModeButton, { mode: mode, disabled: JSON.stringify(logo) === JSON.stringify(logos[otherMode] ?? null), onCopy: () => publishDraft(mergeThemeBrandLogo(state.draft, otherMode, logo ?? { sourceKind: "none" })) })] })] }), _jsx(PhiMediaPickerBinding, { config: {
|
|
2032
|
+
mediaType: PhiMediaKind.Image,
|
|
2033
|
+
pageSize: 12,
|
|
2034
|
+
showPagination: true,
|
|
2035
|
+
showGroupFilter: true,
|
|
2036
|
+
showSearchBar: true,
|
|
2037
|
+
signalRoutes: PHI_THEME_BRAND_LOGO_MEDIA_ROUTES,
|
|
2038
|
+
}, labels: PHI_MEDIA_WIDGET_DEFAULT_LABELS, searchLabels: PHI_SEARCH_WIDGET_DEFAULT_LABELS, value: logo?.sourceKind === "asset" ? logo.assetId : null, onAssetSelect: (asset) => publishDraft(mergeThemeBrandLogo(state.draft, mode, {
|
|
2039
|
+
sourceKind: "asset",
|
|
2040
|
+
assetId: asset.id,
|
|
2041
|
+
/*
|
|
2042
|
+
* The delivered address alongside the id, because the Preview and the Brand Widget
|
|
2043
|
+
* both render from the draft long before the Site resolver has seen it. It is the
|
|
2044
|
+
* same address the resolver writes, so the saved record says one thing either way.
|
|
2045
|
+
*/
|
|
2046
|
+
url: buildPhiMediaAssetContentDeliveryUrl(asset.id),
|
|
2047
|
+
})), onAssetClear: () => publishDraft(mergeThemeBrandLogo(state.draft, mode, { sourceKind: "none" })) }, mode), _jsxs(Flex, { vertical: true, gap: clientToken.paddingXS, style: {
|
|
2048
|
+
"--phi-labeled-control-label-width": "33.333333%",
|
|
2049
|
+
"--phi-labeled-control-width": "100%",
|
|
2050
|
+
}, children: [_jsx(PhiLabeledControl, { label: "Alt", fill: true, children: _jsx(PhiTextControl, { value: brand.logoAlt ?? "", placeholder: "Alt text", ariaLabel: "Logo alt text", allowClear: false, onChange: (next) => publishDraft(mergeThemeBrand(state.draft, {
|
|
2051
|
+
logoAlt: next ?? "",
|
|
2052
|
+
})) }) }), _jsx(PhiLabeledControl, { label: "Forward", fill: true, children: _jsx(PhiCascaderControl, { value: brand.homeHref ?? "/", options: homePathOptions, placeholder: "Where the Brand leads", onChange: (next) => publishDraft(mergeThemeBrand(state.draft, {
|
|
2053
|
+
homeHref: next === "/" ? null : next,
|
|
2054
|
+
})) }) })] })] })),
|
|
2055
|
+
},
|
|
2056
|
+
{
|
|
2057
|
+
key: "wordmark",
|
|
2058
|
+
label: _jsx(Typography.Text, { strong: true, children: "Wordmark" }),
|
|
2059
|
+
children: (_jsxs(Flex, { vertical: true, gap: clientToken.paddingXS, style: {
|
|
2060
|
+
"--phi-labeled-control-label-width": "33.333333%",
|
|
2061
|
+
"--phi-labeled-control-width": "100%",
|
|
2062
|
+
}, children: [_jsxs(Typography.Text, { type: "secondary", children: ["The Site name as it is set. One part per colour: a two-tone name is one word written in two. With no part at all the frame shows ", fallbackWordmark, "."] }), editableWordmarkParts.map((part, index) => (_jsx(PhiLabeledControl, { label: `Part #${index + 1}`, fill: true, children: _jsxs(Flex, { gap: clientToken.paddingXXS, align: "center", style: { width: "100%", minWidth: 0 }, children: [_jsx(PhiTextControl, { value: part.text, placeholder: index === 0 ? fallbackWordmark : "Part", ariaLabel: `Wordmark part ${index + 1}`, allowClear: false, onChange: (next) => updateWordmarkPart(index, { text: next ?? "" }) }), _jsx(PhiColorControl, { mode: "single", allowClear: true, value: part.color ?? null, presets: PHI_COLOR_PICKER_PRESETS, onChange: (next) => updateWordmarkPart(index, { color: next }) }), _jsx(PhiButtonControl, { type: "text", size: "small", danger: true, disabled: wordmarkParts.length === 0, icon: _jsx(DeleteOutlined, {}), ariaLabel: "Remove this part of the Wordmark", onClick: () => publishDraft(mergeThemeWordmarkParts(state.draft, editableWordmarkParts.filter((_, at) => at !== index))) })] }) }, index))), _jsx(PhiLabeledControl, { label: " ", fill: true, children: _jsx(PhiButtonControl, { size: "small", label: "Add part", onClick: () => publishDraft(mergeThemeWordmarkParts(state.draft, [...editableWordmarkParts, { text: "" }])) }) }), _jsx(Divider, { style: { marginBlock: clientToken.paddingXXS } }), _jsx(PhiLabeledControl, { label: "Weight", fill: true, children: _jsxs(Flex, { gap: clientToken.paddingXS, align: "center", style: { width: "100%", minWidth: 0 }, children: [_jsx(PhiSelectControl, { ariaLabel: "Wordmark weight", style: { flex: "1 1 auto", minWidth: 0 }, value: String(brand.wordmark?.fontWeight ?? ""), options: [...PHI_THEME_WORDMARK_WEIGHT_OPTIONS], onChange: (next) => publishDraft(mergeThemeBrand(state.draft, {
|
|
2063
|
+
wordmark: {
|
|
2064
|
+
...(brand.wordmark ?? {}),
|
|
2065
|
+
fontWeight: next === "" ? null : Number(next),
|
|
2066
|
+
},
|
|
2067
|
+
})) }), _jsx(PhiCheckboxControl, { checked: brand.wordmark?.fontStyle === "italic", label: "Italic", onChange: (checked) => publishDraft(mergeThemeBrand(state.draft, {
|
|
2068
|
+
wordmark: {
|
|
2069
|
+
...(brand.wordmark ?? {}),
|
|
2070
|
+
fontStyle: checked ? "italic" : null,
|
|
2071
|
+
},
|
|
2072
|
+
})) })] }) }), _jsx(PhiNumberControl, { label: "Tracking", prefix: "em", style: { width: "100%" }, value: readWordmarkLetterSpacingEm(brand.wordmark?.letterSpacing), step: 0.01, precision: 3, min: -0.2, max: 1, onChange: (next) => publishDraft(mergeThemeBrand(state.draft, {
|
|
2073
|
+
wordmark: {
|
|
2074
|
+
...(brand.wordmark ?? {}),
|
|
2075
|
+
letterSpacing: next == null ? null : `${next}em`,
|
|
2076
|
+
},
|
|
2077
|
+
})) }), _jsx(PhiLabeledControl, { label: "Eyebrow", fill: true, children: _jsx(PhiTextControl, { value: brand.eyebrow ?? "", placeholder: "The small line above the name", ariaLabel: "Eyebrow", allowClear: false, onChange: (next) => publishDraft(mergeThemeBrand(state.draft, {
|
|
2078
|
+
eyebrow: next ?? "",
|
|
2079
|
+
})) }) })] })),
|
|
2080
|
+
},
|
|
2081
|
+
] }) }) }));
|
|
2082
|
+
}
|
|
2083
|
+
/**
|
|
2084
|
+
* Whether a copy would change anything, asked of the shape the control renders rather than of the
|
|
2085
|
+
* stored record: an absent field and an explicit empty one describe the same ground.
|
|
2086
|
+
*/
|
|
2087
|
+
function isSamePhiBackgroundConfig(left, right) {
|
|
2088
|
+
return JSON.stringify(left) === JSON.stringify(right);
|
|
2089
|
+
}
|
|
2090
|
+
export function PhiBuilderBrandBackgroundControlsWidgetClient({ runtime, config, }) {
|
|
2091
|
+
const { token: clientToken } = usePhiConfig();
|
|
2092
|
+
const themeBlocks = usePhiThemeBlockCatalog();
|
|
2093
|
+
const themeKey = resolveThemeKey(config);
|
|
2094
|
+
const { state, publishDraft, editTransaction } = usePhiBrandThemeDraft(runtime, themeKey);
|
|
2095
|
+
const mode = usePhiBrandPreviewMode(resolveThemePayloadMode(state.draft));
|
|
2096
|
+
const composition = resolvePhiThemeComposition(state.draft, themeBlocks);
|
|
2097
|
+
const [activeBackgroundSection, changeActiveBackgroundSection] = usePhiBrandAccordionSection(BRAND_THEME_BACKGROUND_COLLAPSE_STORAGE_KEY, BRAND_THEME_BACKGROUND_SECTION_KEYS);
|
|
2098
|
+
const modeLabel = mode === "dark" ? "Dark mode" : "Light mode";
|
|
2099
|
+
const otherMode = mode === "dark" ? "light" : "dark";
|
|
2100
|
+
/*
|
|
2101
|
+
* The controls show what the Site paints, which is the block wherever the author set nothing. Editing
|
|
2102
|
+
* one then takes it over as an authored value, which is the same move as everywhere else here: what
|
|
2103
|
+
* you touch becomes yours, and the reset beside it hands it back.
|
|
2104
|
+
*/
|
|
2105
|
+
const effectiveRoot = resolvePhiThemeEffectiveRoot(state.draft.root, composition.ground);
|
|
2106
|
+
const rootBackground = normalizePhiBackgroundWidgetConfig(effectiveRoot.background?.[mode] ?? null);
|
|
2107
|
+
const otherRootBackground = normalizePhiBackgroundWidgetConfig(effectiveRoot.background?.[otherMode] ?? null);
|
|
2108
|
+
const chromeOverlay = resolvePhiShellChromeOverlayConfig(effectiveRoot.chrome?.[mode] ?? null);
|
|
2109
|
+
const otherChromeOverlay = resolvePhiShellChromeOverlayConfig(effectiveRoot.chrome?.[otherMode] ?? null);
|
|
2110
|
+
return (_jsx(Flex, { vertical: true, gap: clientToken.padding, style: { width: "100%", minWidth: 0 }, children: _jsxs(Card, { size: "small", styles: { body: { padding: clientToken.paddingSM } }, children: [_jsx(PhiBrandBlockPicker, { label: "Ground", value: composition.ground.key, unavailable: composition.unavailable.ground, options: themeBlocks.grounds, onChange: (key) => {
|
|
2111
|
+
const block = themeBlocks.grounds.find((candidate) => candidate.key === key);
|
|
2112
|
+
if (block)
|
|
2113
|
+
publishDraft(mergeThemeBlockChoice(state.draft, "ground", block));
|
|
2114
|
+
} }), _jsx(Divider, { style: { marginBlock: clientToken.paddingXS } }), _jsx(Collapse, { accordion: true, bordered: false, size: "small", activeKey: activeBackgroundSection, onChange: changeActiveBackgroundSection, styles: {
|
|
2115
|
+
root: { background: "transparent" },
|
|
2116
|
+
header: { alignItems: "center", paddingInline: 0 },
|
|
2117
|
+
body: { paddingInline: 0 },
|
|
2118
|
+
}, items: [
|
|
2119
|
+
{
|
|
2120
|
+
key: "root",
|
|
2121
|
+
label: _jsx(Typography.Text, { strong: true, children: "Root Background" }),
|
|
2122
|
+
children: (_jsxs(Flex, { vertical: true, gap: clientToken.paddingXS, children: [_jsxs(Flex, { align: "center", justify: "space-between", gap: clientToken.paddingXS, children: [_jsxs(Typography.Text, { type: "secondary", children: [modeLabel, ". One layer behind the whole Site, fixed to the viewport."] }), _jsxs(Flex, { align: "center", gap: clientToken.paddingXXS, style: { flexShrink: 0 }, children: [_jsx(PhiBrandBlockResetButton, { disabled: state.draft.root?.background?.[mode] == null, blockTitle: composition.ground.title, onReset: () => publishDraft(clearThemeRootSurface(state.draft, "background", mode)) }), _jsx(PhiBrandCopyModeButton, { mode: mode, disabled: isSamePhiBackgroundConfig(rootBackground, otherRootBackground), onCopy: () => publishDraft(mergeThemeRootBackground(state.draft, otherMode, rootBackground)) })] })] }), _jsx(PhiBackgroundControl, { value: rootBackground, motionModes: PHI_ROOT_BACKGROUND_MOTION_MODES, imageSourceKinds: PHI_ROOT_BACKGROUND_IMAGE_SOURCE_KINDS, renderMediaPicker: renderPhiThemeRootBackgroundMediaPicker, editTransaction: editTransaction, onChange: (value) => publishDraft(mergeThemeRootBackground(state.draft, mode, value)) }, mode)] })),
|
|
2123
|
+
},
|
|
2124
|
+
{
|
|
2125
|
+
key: "chrome",
|
|
2126
|
+
label: _jsx(Typography.Text, { strong: true, children: "Chrome Overlay" }),
|
|
2127
|
+
children: (_jsxs(Flex, { vertical: true, gap: clientToken.paddingXS, children: [_jsxs(Flex, { align: "center", justify: "space-between", gap: clientToken.paddingXS, children: [_jsxs(Typography.Text, { type: "secondary", children: [modeLabel, ". Shared by the Header, Sider and Footer Regions. Content and Hero never take it, and a Region that authors its own Background or Effect paints over it."] }), _jsxs(Flex, { align: "center", gap: clientToken.paddingXXS, style: { flexShrink: 0 }, children: [_jsx(PhiBrandBlockResetButton, { disabled: state.draft.root?.chrome?.[mode] == null, blockTitle: composition.ground.title, onReset: () => publishDraft(clearThemeRootSurface(state.draft, "chrome", mode)) }), _jsx(PhiBrandCopyModeButton, { mode: mode, disabled: isSamePhiBackgroundConfig(chromeOverlay, otherChromeOverlay), onCopy: () => publishDraft(mergeThemeChromeOverlay(state.draft, otherMode, chromeOverlay)) })] })] }), _jsx(PhiBackgroundControl, { value: chromeOverlay, motionModes: PHI_SHELL_CHROME_OVERLAY_MOTION_MODES, effects: PHI_SHELL_CHROME_OVERLAY_EFFECTS, baseKinds: PHI_SHELL_CHROME_OVERLAY_BASE_KINDS, imageSourceKinds: PHI_SHELL_CHROME_OVERLAY_IMAGE_SOURCE_KINDS, renderMediaPicker: renderPhiThemeRootBackgroundMediaPicker, editTransaction: editTransaction, onChange: (value) => publishDraft(mergeThemeChromeOverlay(state.draft, mode, value)) }, `chrome-${mode}`)] })),
|
|
2128
|
+
},
|
|
2129
|
+
{
|
|
2130
|
+
key: "shadow",
|
|
2131
|
+
label: _jsx(Typography.Text, { strong: true, children: "Chrome Shadow" }),
|
|
2132
|
+
children: (_jsxs(Flex, { vertical: true, gap: clientToken.paddingXS, children: [_jsxs(Flex, { align: "center", justify: "space-between", gap: clientToken.paddingXS, children: [_jsx(Typography.Text, { type: "secondary", children: "Cast at the outside edge of each pane, once for the whole visible stack. Applies to both modes." }), _jsx(PhiBrandBlockResetButton, { disabled: state.draft.root?.chrome?.shadow == null, blockTitle: composition.ground.title, onReset: () => publishDraft(clearThemeRootSurface(state.draft, "shadow", mode)) })] }), PHI_THEME_CHROME_SHADOW_EDGES.map(({ family, label }) => (_jsxs(Flex, { vertical: true, gap: clientToken.paddingXXS, children: [_jsx(Typography.Text, { children: label }), _jsx(PhiShadowControl, { value: effectiveRoot.chrome?.shadow?.[family] ?? "none", resolvePreview: (shadow) => resolvePhiShellChromePaneShadow(shadow, family === "sider" ? "sider-left" : family), onChange: (value) => publishDraft(mergeThemeChromeShadow(state.draft, family, value)) })] }, family)))] })),
|
|
2133
|
+
},
|
|
2134
|
+
] })] }) }));
|
|
2135
|
+
}
|
|
2136
|
+
/**
|
|
2137
|
+
* The preview surface as a small Shell: a Header, a Sider and a Footer around the Content that carries
|
|
2138
|
+
* the preview's own Widgets.
|
|
2139
|
+
*
|
|
2140
|
+
* The Chrome Overlay is a treatment the chrome lays over the ground, so without chrome there was nothing
|
|
2141
|
+
* for it to be on and an author setting a glass here saw only what the Root Background already did.
|
|
2142
|
+
* Content stays transparent, exactly as a Content Region does on a Site, so the ground reads through it.
|
|
2143
|
+
*
|
|
2144
|
+
* Two layers rather than one, because the two halves of the overlay clip differently. The frost is three
|
|
2145
|
+
* plain boxes, one per Chrome family, as three Regions filter their own boxes on a Site. The paint is a
|
|
2146
|
+
* single box clipped to the frame, so a gradient runs across the corner instead of restarting in each
|
|
2147
|
+
* strip. Putting both on one clipped box looked right until the filtered backdrop ignored the clip and
|
|
2148
|
+
* frosted the Content with it.
|
|
2149
|
+
*
|
|
2150
|
+
* The frame is padding, and the clip follows the same three numbers, so the paint stops exactly where
|
|
2151
|
+
* the Content begins and never covers a Widget.
|
|
2152
|
+
*/
|
|
2153
|
+
function PhiBrandChromePreviewShell({ overlayStyle, paneShadows, rootBackgroundStyle, surfaceBackground, textColor, labelColor, radius, padding, brand, children, }) {
|
|
2154
|
+
/*
|
|
2155
|
+
* Tall enough for a Logo. The band was 34 when it carried nothing but its own name; a Brand with a
|
|
2156
|
+
* picture in it needs the room, and the Header of a real Site is taller than a label anyway.
|
|
2157
|
+
*/
|
|
2158
|
+
const header = 44;
|
|
2159
|
+
const sider = 88;
|
|
2160
|
+
const footer = 28;
|
|
2161
|
+
const { backdropFilter, WebkitBackdropFilter, ...paintStyle } = overlayStyle ?? {};
|
|
2162
|
+
const frostStyle = backdropFilter ? { backdropFilter, WebkitBackdropFilter } : null;
|
|
2163
|
+
return (_jsxs("div", { style: {
|
|
2164
|
+
position: "relative",
|
|
2165
|
+
/*
|
|
2166
|
+
* `isolation` is what makes the ground land where it is meant to. At `z-index: -1` without a
|
|
2167
|
+
* stacking context of its own here, the layer would fall behind the opaque preview Card instead
|
|
2168
|
+
* of this surface; at `0` it would paint over the content, because a positioned box is drawn
|
|
2169
|
+
* after its static siblings.
|
|
2170
|
+
*/
|
|
2171
|
+
isolation: "isolate",
|
|
2172
|
+
background: surfaceBackground,
|
|
2173
|
+
color: textColor,
|
|
2174
|
+
borderRadius: radius,
|
|
2175
|
+
overflow: "hidden",
|
|
2176
|
+
paddingTop: header,
|
|
2177
|
+
paddingInlineStart: sider,
|
|
2178
|
+
paddingBottom: footer,
|
|
2179
|
+
}, children: [rootBackgroundStyle ? (_jsx("div", { "aria-hidden": true, "data-phi-preview-root-background": "true", style: { position: "absolute", inset: 0, zIndex: -1, ...rootBackgroundStyle } })) : null, frostStyle ? (_jsxs(_Fragment, { children: [_jsx("div", { "aria-hidden": true, style: { position: "absolute", left: 0, right: 0, top: 0, height: header, ...frostStyle } }), _jsx("div", { "aria-hidden": true, style: { position: "absolute", left: 0, width: sider, top: header, bottom: footer, ...frostStyle } }), _jsx("div", { "aria-hidden": true, style: { position: "absolute", left: 0, right: 0, bottom: 0, height: footer, ...frostStyle } })] })) : null, _jsx("div", { "aria-hidden": true, "data-phi-preview-chrome-overlay": "true", style: {
|
|
2180
|
+
position: "absolute",
|
|
2181
|
+
inset: 0,
|
|
2182
|
+
clipPath: `polygon(0 0, 100% 0, 100% ${header}px, ${sider}px ${header}px, ${sider}px calc(100% - ${footer}px), 100% calc(100% - ${footer}px), 100% 100%, 0 100%)`,
|
|
2183
|
+
...paintStyle,
|
|
2184
|
+
} }), paneShadows.header ? (_jsx("div", { "aria-hidden": true, style: { position: "absolute", left: 0, right: 0, top: 0, height: header, boxShadow: paneShadows.header, pointerEvents: "none" } })) : null, paneShadows["sider-left"] ? (_jsx("div", { "aria-hidden": true, style: { position: "absolute", left: 0, width: sider, top: header, bottom: footer, boxShadow: paneShadows["sider-left"], pointerEvents: "none" } })) : null, paneShadows.footer ? (_jsx("div", { "aria-hidden": true, style: { position: "absolute", left: 0, right: 0, bottom: 0, height: footer, boxShadow: paneShadows.footer, pointerEvents: "none" } })) : null, _jsx("div", { style: {
|
|
2185
|
+
position: "absolute",
|
|
2186
|
+
left: sider + 8,
|
|
2187
|
+
right: 8,
|
|
2188
|
+
top: 0,
|
|
2189
|
+
height: header,
|
|
2190
|
+
display: "flex",
|
|
2191
|
+
alignItems: "center",
|
|
2192
|
+
minWidth: 0,
|
|
2193
|
+
overflow: "hidden",
|
|
2194
|
+
}, children: brand }), _jsxs("div", { "aria-hidden": true, style: { position: "absolute", inset: 0, fontSize: 11, color: labelColor, pointerEvents: "none" }, children: [_jsx("span", { style: { position: "absolute", left: 8, top: header + 8 }, children: "Sider" }), _jsx("span", { style: { position: "absolute", left: sider + 8, bottom: (footer - 14) / 2 }, children: "Footer" })] }), _jsx("div", { style: { display: "flex", flexDirection: "column", gap: padding, padding, minWidth: 0 }, children: children })] }));
|
|
2195
|
+
}
|
|
2196
|
+
export function PhiBuilderBrandThemePreviewWidgetClient({ runtime, }) {
|
|
2197
|
+
// The sample field is typed into like a real one, so what the Theme does to a filled field shows too.
|
|
2198
|
+
const [previewInput, setPreviewInput] = useState("");
|
|
2199
|
+
const { presets: themePresets, token: clientToken } = usePhiConfig();
|
|
2200
|
+
const themeBlocks = usePhiThemeBlockCatalog();
|
|
2201
|
+
const fallbackTheme = useMemo(() => resolveInitialTheme(runtime), [runtime]);
|
|
2202
|
+
const [previewTheme, setPreviewTheme] = useState(fallbackTheme);
|
|
2203
|
+
/*
|
|
2204
|
+
* The preview shows the Site, so it shows the blocks folded in: a draft states what its author chose,
|
|
2205
|
+
* and the parts nobody chose are the block's. Resolving here rather than in the state keeps the draft
|
|
2206
|
+
* that travels back to the Controller free of anything that was only worked out for display.
|
|
2207
|
+
*/
|
|
2208
|
+
const previewThemeResolved = resolvePhiThemeRuntimePayload(previewTheme, themeBlocks).theme;
|
|
2209
|
+
const [hoveredStatusKey, setHoveredStatusKey] = useState(null);
|
|
2210
|
+
const [previewTableSearch, setPreviewTableSearch] = useState("");
|
|
2211
|
+
/*
|
|
2212
|
+
* The preview shows the draft too, and mounting late knew as little about it as the controls did --
|
|
2213
|
+
* it just never showed, because a broadcast happened to arrive before anyone looked. It asks now.
|
|
2214
|
+
* Rendered on the Builder canvas it has no address, so it does not, and shows the saved theme.
|
|
2215
|
+
*/
|
|
2216
|
+
const dispatchSignal = usePhiSignalDispatcher();
|
|
2217
|
+
const selfAddress = usePhiSignalIdentity().receiver ?? null;
|
|
2218
|
+
useEffect(() => {
|
|
2219
|
+
if (selfAddress) {
|
|
2220
|
+
emitThemeHydrateRequest(dispatchSignal, selfAddress);
|
|
2221
|
+
}
|
|
2222
|
+
}, [dispatchSignal, selfAddress]);
|
|
2223
|
+
const mode = usePhiBrandPreviewMode(resolveThemePayloadMode(fallbackTheme));
|
|
2224
|
+
const previewPreset = resolveThemePayloadPreset(previewThemeResolved, themePresets);
|
|
2225
|
+
const previewFontStacks = usePhiThemeFontStacks(previewThemeResolved.fonts);
|
|
2226
|
+
const previewHeadingFontFamily = resolvePhiThemeHeadingFontFamily(previewThemeResolved.typography, {
|
|
2227
|
+
serif: previewFontStacks.serif.stack,
|
|
2228
|
+
display: previewFontStacks.display.stack,
|
|
2229
|
+
});
|
|
2230
|
+
const previewTokenInput = {
|
|
2231
|
+
...buildPhiEffectiveNonColorThemeTokens(previewThemeResolved),
|
|
2232
|
+
...resolvePhiThemeColorTokens(previewPreset, previewThemeResolved.palette, mode),
|
|
2233
|
+
...(previewThemeResolved.style?.token ?? {}),
|
|
2234
|
+
// The draft's lettering, applied as the root theme applies the Site's: body text and code.
|
|
2235
|
+
...(previewFontStacks.body.stack ? { fontFamily: previewFontStacks.body.stack } : {}),
|
|
2236
|
+
...(previewFontStacks.mono.stack ? { fontFamilyCode: previewFontStacks.mono.stack } : {}),
|
|
2237
|
+
};
|
|
2238
|
+
const previewEffectiveToken = resolvePhiAntdAliasTokens(mode, previewTokenInput);
|
|
2239
|
+
const columns = [
|
|
2240
|
+
{ title: "Name", key: "name", fieldPath: "name", sizing: { mode: "fill" } },
|
|
2241
|
+
{ title: "Status", key: "status", fieldPath: "status", sizing: { mode: "content" }, render: (value) => _jsx(PhiTagControl, { color: "processing", children: String(value) }) },
|
|
2242
|
+
];
|
|
2243
|
+
const previewTableRows = [
|
|
2244
|
+
{ key: "1", name: "Landing page", status: "Ready" },
|
|
2245
|
+
{ key: "2", name: "Checkout", status: "Review" },
|
|
2246
|
+
].filter((row) => row.name.toLowerCase().includes(previewTableSearch.trim().toLowerCase()));
|
|
2247
|
+
usePhiSignalListener((signal) => {
|
|
2248
|
+
if (signal.action !== "change" ||
|
|
2249
|
+
(signal.receiver !== "broadcast" && signal.receiver !== selfAddress)) {
|
|
2250
|
+
return;
|
|
2251
|
+
}
|
|
2252
|
+
if (signal.channel !== PHI_THEME_SIGNAL_CHANNELS.brandTheme ||
|
|
2253
|
+
signal.sender !== createPhiThemeControllerAddress()) {
|
|
2254
|
+
return;
|
|
2255
|
+
}
|
|
2256
|
+
const value = signal.value && typeof signal.value === "object"
|
|
2257
|
+
? signal.value
|
|
2258
|
+
: null;
|
|
2259
|
+
setPreviewTheme(normalizeTheme(value?.theme, fallbackTheme));
|
|
2260
|
+
}, undefined, selfAddress);
|
|
2261
|
+
/**
|
|
2262
|
+
* The preview has to resolve Control shape exactly as the live render does, or the Style tab's shape
|
|
2263
|
+
* segments move the draft and nothing visible follows. Feeding the shaped components into the CSS var
|
|
2264
|
+
* identity as well is part of it: two shapes with otherwise equal tokens would hash to one key and
|
|
2265
|
+
* serve each other from cache.
|
|
2266
|
+
*/
|
|
2267
|
+
const previewShapedComponents = applyPhiControlShapeComponentTokens({ ...(applyPhiButtonShadowComponentTokens(previewThemeResolved.components, previewThemeResolved.buttons, mode) ?? {}) }, resolvePhiControlShape(previewThemeResolved.shape?.controls), previewEffectiveToken);
|
|
2268
|
+
const previewAntdTheme = {
|
|
2269
|
+
inherit: false,
|
|
2270
|
+
cssVar: {
|
|
2271
|
+
prefix: "ant",
|
|
2272
|
+
key: createPhiAntdThemeCssVarKey("builder-theme-preview", {
|
|
2273
|
+
mode,
|
|
2274
|
+
token: previewEffectiveToken,
|
|
2275
|
+
components: previewShapedComponents,
|
|
2276
|
+
}),
|
|
2277
|
+
},
|
|
2278
|
+
token: {
|
|
2279
|
+
...previewEffectiveToken,
|
|
2280
|
+
},
|
|
2281
|
+
components: previewShapedComponents,
|
|
2282
|
+
};
|
|
2283
|
+
const previewCardBackground = readEffectiveTokenString(previewEffectiveToken, "colorBgContainer", mode === "dark" ? "#141414" : "#ffffff");
|
|
2284
|
+
const previewSurfaceBackground = readEffectiveTokenString(previewEffectiveToken, "colorBgLayout", mode === "dark" ? "#000000" : "#f5f5f5");
|
|
2285
|
+
/*
|
|
2286
|
+
* The Theme Root Background, on the surface the preview treats as the page ground -- the same layer
|
|
2287
|
+
* the Site paints behind everything, in the mode the preview switch is showing. A mode with no
|
|
2288
|
+
* ground configured keeps the resolved layout background, which is exactly what the Site does.
|
|
2289
|
+
*/
|
|
2290
|
+
const previewRootBackground = resolvePhiRootBackgroundPaintStyle(previewThemeResolved.root, mode);
|
|
2291
|
+
const previewChromeOverlay = resolvePhiShellChromeOverlayStyle(previewThemeResolved.root, mode);
|
|
2292
|
+
/*
|
|
2293
|
+
* The preview's frame casts what the Theme says its frame casts. Its Sider is the left one, being the
|
|
2294
|
+
* only one the preview draws.
|
|
2295
|
+
*/
|
|
2296
|
+
const previewPaneShadows = resolvePhiShellChromePaneShadows(previewThemeResolved.root);
|
|
2297
|
+
const previewTextColor = readEffectiveTokenString(previewEffectiveToken, "colorText", mode === "dark" ? "rgba(255,255,255,0.85)" : "rgba(0,0,0,0.88)");
|
|
2298
|
+
const previewTextSecondaryColor = readEffectiveTokenString(previewEffectiveToken, "colorTextSecondary", mode === "dark" ? "rgba(255,255,255,0.65)" : "rgba(0,0,0,0.65)");
|
|
2299
|
+
const previewTextTertiaryColor = readEffectiveTokenString(previewEffectiveToken, "colorTextTertiary", mode === "dark" ? "rgba(255,255,255,0.45)" : "rgba(0,0,0,0.45)");
|
|
2300
|
+
const previewLinkColor = readEffectiveTokenString(previewEffectiveToken, "colorLink", readEffectiveTokenString(previewEffectiveToken, "colorPrimary", "#1677ff"));
|
|
2301
|
+
const previewLinkHoverColor = readEffectiveTokenString(previewEffectiveToken, "colorLinkHover", previewLinkColor);
|
|
2302
|
+
const previewLinkActiveColor = readEffectiveTokenString(previewEffectiveToken, "colorLinkActive", previewLinkColor);
|
|
2303
|
+
const statusPreviewItems = [
|
|
2304
|
+
{
|
|
2305
|
+
key: "info",
|
|
2306
|
+
label: "Info",
|
|
2307
|
+
color: readEffectiveTokenString(previewEffectiveToken, "colorInfoText", readEffectiveTokenString(previewEffectiveToken, "colorInfo", "#1677ff")),
|
|
2308
|
+
background: readEffectiveTokenString(previewEffectiveToken, "colorInfoBg", previewCardBackground),
|
|
2309
|
+
border: readEffectiveTokenString(previewEffectiveToken, "colorInfoBorder", previewLinkColor),
|
|
2310
|
+
hoverColor: readEffectiveTokenString(previewEffectiveToken, "colorInfoTextHover", readEffectiveTokenString(previewEffectiveToken, "colorInfoHover", "#4096ff")),
|
|
2311
|
+
hoverBackground: readEffectiveTokenString(previewEffectiveToken, "colorInfoBgHover", previewCardBackground),
|
|
2312
|
+
hoverBorder: readEffectiveTokenString(previewEffectiveToken, "colorInfoBorderHover", readEffectiveTokenString(previewEffectiveToken, "colorInfoHover", "#4096ff")),
|
|
2313
|
+
},
|
|
2314
|
+
{
|
|
2315
|
+
key: "success",
|
|
2316
|
+
label: "Success",
|
|
2317
|
+
color: readEffectiveTokenString(previewEffectiveToken, "colorSuccessText", readEffectiveTokenString(previewEffectiveToken, "colorSuccess", "#52c41a")),
|
|
2318
|
+
background: readEffectiveTokenString(previewEffectiveToken, "colorSuccessBg", previewCardBackground),
|
|
2319
|
+
border: readEffectiveTokenString(previewEffectiveToken, "colorSuccessBorder", readEffectiveTokenString(previewEffectiveToken, "colorSuccess", "#52c41a")),
|
|
2320
|
+
hoverColor: readEffectiveTokenString(previewEffectiveToken, "colorSuccessTextHover", readEffectiveTokenString(previewEffectiveToken, "colorSuccessHover", "#73d13d")),
|
|
2321
|
+
hoverBackground: readEffectiveTokenString(previewEffectiveToken, "colorSuccessBgHover", previewCardBackground),
|
|
2322
|
+
hoverBorder: readEffectiveTokenString(previewEffectiveToken, "colorSuccessBorderHover", readEffectiveTokenString(previewEffectiveToken, "colorSuccessHover", "#73d13d")),
|
|
2323
|
+
},
|
|
2324
|
+
{
|
|
2325
|
+
key: "warning",
|
|
2326
|
+
label: "Warning",
|
|
2327
|
+
color: readEffectiveTokenString(previewEffectiveToken, "colorWarningText", readEffectiveTokenString(previewEffectiveToken, "colorWarning", "#faad14")),
|
|
2328
|
+
background: readEffectiveTokenString(previewEffectiveToken, "colorWarningBg", previewCardBackground),
|
|
2329
|
+
border: readEffectiveTokenString(previewEffectiveToken, "colorWarningBorder", readEffectiveTokenString(previewEffectiveToken, "colorWarning", "#faad14")),
|
|
2330
|
+
hoverColor: readEffectiveTokenString(previewEffectiveToken, "colorWarningTextHover", readEffectiveTokenString(previewEffectiveToken, "colorWarningHover", "#ffc53d")),
|
|
2331
|
+
hoverBackground: readEffectiveTokenString(previewEffectiveToken, "colorWarningBgHover", previewCardBackground),
|
|
2332
|
+
hoverBorder: readEffectiveTokenString(previewEffectiveToken, "colorWarningBorderHover", readEffectiveTokenString(previewEffectiveToken, "colorWarningHover", "#ffc53d")),
|
|
2333
|
+
},
|
|
2334
|
+
{
|
|
2335
|
+
key: "error",
|
|
2336
|
+
label: "Error",
|
|
2337
|
+
color: readEffectiveTokenString(previewEffectiveToken, "colorErrorText", readEffectiveTokenString(previewEffectiveToken, "colorError", "#ff4d4f")),
|
|
2338
|
+
background: readEffectiveTokenString(previewEffectiveToken, "colorErrorBg", previewCardBackground),
|
|
2339
|
+
border: readEffectiveTokenString(previewEffectiveToken, "colorErrorBorder", readEffectiveTokenString(previewEffectiveToken, "colorError", "#ff4d4f")),
|
|
2340
|
+
hoverColor: readEffectiveTokenString(previewEffectiveToken, "colorErrorTextHover", readEffectiveTokenString(previewEffectiveToken, "colorErrorHover", "#ff7875")),
|
|
2341
|
+
hoverBackground: readEffectiveTokenString(previewEffectiveToken, "colorErrorBgHover", previewCardBackground),
|
|
2342
|
+
hoverBorder: readEffectiveTokenString(previewEffectiveToken, "colorErrorBorderHover", readEffectiveTokenString(previewEffectiveToken, "colorErrorHover", "#ff7875")),
|
|
2343
|
+
},
|
|
2344
|
+
];
|
|
2345
|
+
const fontPreviewItems = [
|
|
2346
|
+
{
|
|
2347
|
+
key: "body",
|
|
2348
|
+
label: "Body",
|
|
2349
|
+
family: previewFontStacks.body.stack ?? clientToken.fontFamily,
|
|
2350
|
+
value: previewFontStacks.body.label,
|
|
2351
|
+
sample: "The quick brand text renders in the body font.",
|
|
2352
|
+
},
|
|
2353
|
+
{
|
|
2354
|
+
key: "serif",
|
|
2355
|
+
label: "Serif",
|
|
2356
|
+
family: previewFontStacks.serif.stack ?? clientToken.fontFamily,
|
|
2357
|
+
value: previewFontStacks.serif.label,
|
|
2358
|
+
sample: "A short editorial sentence renders in the serif font.",
|
|
2359
|
+
},
|
|
2360
|
+
{
|
|
2361
|
+
key: "mono",
|
|
2362
|
+
label: "Mono",
|
|
2363
|
+
family: previewFontStacks.mono.stack ?? clientToken.fontFamilyCode,
|
|
2364
|
+
value: previewFontStacks.mono.label,
|
|
2365
|
+
sample: "const brand = \"phi\";",
|
|
2366
|
+
},
|
|
2367
|
+
{
|
|
2368
|
+
key: "accent",
|
|
2369
|
+
label: "Accent",
|
|
2370
|
+
family: previewFontStacks.accent.stack ?? clientToken.fontFamily,
|
|
2371
|
+
value: previewFontStacks.accent.label,
|
|
2372
|
+
sample: "Accent copy for compact highlights.",
|
|
2373
|
+
},
|
|
2374
|
+
{
|
|
2375
|
+
key: "display",
|
|
2376
|
+
label: "Display",
|
|
2377
|
+
family: previewFontStacks.display.stack ?? clientToken.fontFamily,
|
|
2378
|
+
value: previewFontStacks.display.label,
|
|
2379
|
+
sample: "Display headline sample",
|
|
2380
|
+
},
|
|
2381
|
+
];
|
|
2382
|
+
const radiusPreviewItems = [
|
|
2383
|
+
{
|
|
2384
|
+
key: "sm",
|
|
2385
|
+
label: "Small",
|
|
2386
|
+
value: readEffectiveTokenNumber(previewEffectiveToken, "borderRadiusSM", PHI_RADII.xs),
|
|
2387
|
+
},
|
|
2388
|
+
{
|
|
2389
|
+
key: "base",
|
|
2390
|
+
label: "Base",
|
|
2391
|
+
value: readEffectiveTokenNumber(previewEffectiveToken, "borderRadius", PHI_RADII.sm),
|
|
2392
|
+
},
|
|
2393
|
+
{
|
|
2394
|
+
key: "lg",
|
|
2395
|
+
label: "Large",
|
|
2396
|
+
value: readEffectiveTokenNumber(previewEffectiveToken, "borderRadiusLG", PHI_RADII.base),
|
|
2397
|
+
},
|
|
2398
|
+
];
|
|
2399
|
+
const controlHeightPreviewItems = [
|
|
2400
|
+
{
|
|
2401
|
+
key: "sm",
|
|
2402
|
+
label: "Small",
|
|
2403
|
+
value: readEffectiveTokenNumber(previewEffectiveToken, "controlHeightSM", PHI_CONTROL_HEIGHTS.sm),
|
|
2404
|
+
},
|
|
2405
|
+
{
|
|
2406
|
+
key: "base",
|
|
2407
|
+
label: "Base",
|
|
2408
|
+
value: readEffectiveTokenNumber(previewEffectiveToken, "controlHeight", PHI_CONTROL_HEIGHTS.md),
|
|
2409
|
+
},
|
|
2410
|
+
{
|
|
2411
|
+
key: "lg",
|
|
2412
|
+
label: "Large",
|
|
2413
|
+
value: readEffectiveTokenNumber(previewEffectiveToken, "controlHeightLG", PHI_CONTROL_HEIGHTS.lg),
|
|
2414
|
+
},
|
|
2415
|
+
];
|
|
2416
|
+
const wireframeEnabled = readEffectiveTokenBoolean(previewEffectiveToken, "wireframe", true);
|
|
2417
|
+
return (_jsxs(ConfigProvider, { theme: previewAntdTheme, children: [previewFontStacks.faceCss ? (_jsx("style", { href: "phi-theme-preview-faces", precedence: "default", dangerouslySetInnerHTML: { __html: previewFontStacks.faceCss } })) : null, _jsx(Card, { size: "small", style: {
|
|
2418
|
+
width: "100%",
|
|
2419
|
+
background: previewCardBackground,
|
|
2420
|
+
color: previewTextColor,
|
|
2421
|
+
/*
|
|
2422
|
+
* The heading family is stated even when the draft leaves headings on the body font: the
|
|
2423
|
+
* variable is inherited, and the Builder's own Root carries the published Theme's.
|
|
2424
|
+
*/
|
|
2425
|
+
...{
|
|
2426
|
+
[PHI_THEME_HEADING_FONT_VARIABLE]: previewHeadingFontFamily ?? readEffectiveTokenString(previewEffectiveToken, "fontFamily", clientToken.fontFamily),
|
|
2427
|
+
},
|
|
2428
|
+
/*
|
|
2429
|
+
* Small and large Control radii are inherited custom properties, so the preview declares its
|
|
2430
|
+
* own here and overrides whatever the surrounding Builder shape put on the Root.
|
|
2431
|
+
*/
|
|
2432
|
+
...buildPhiControlShapeCssVars(resolvePhiControlShape(previewThemeResolved.shape?.controls), previewEffectiveToken),
|
|
2433
|
+
}, children: _jsxs(PhiBrandChromePreviewShell, { overlayStyle: previewChromeOverlay, paneShadows: previewPaneShadows, rootBackgroundStyle: previewRootBackground, surfaceBackground: previewSurfaceBackground, textColor: previewTextColor, labelColor: previewTextSecondaryColor, radius: clientToken.paddingXS, padding: clientToken.padding, brand: (_jsx(PhiBrandControl, { brand: previewThemeResolved.brand ?? null, fallbackTitle: runtime.site.name ?? runtime.site.key, logoYOffset: -2, mode: mode })), children: [_jsxs(Flex, { align: "center", justify: "space-between", gap: clientToken.padding, wrap: "wrap", children: [_jsxs(Space, { orientation: "vertical", size: 0, children: [_jsx(Typography.Title, { level: 4, style: { margin: 0 }, children: "Theme Preview" }), _jsx(Typography.Text, { type: "secondary", children: "Buttons, form fields, tables and status colors use the current draft tokens." })] }), _jsxs(Space, { size: "middle", wrap: true, children: [_jsx(PhiButtonControl, { type: "primary", label: "Primary", onClick: previewNoop }), _jsx(PhiButtonControl, { label: "Default", onClick: previewNoop }), _jsx(PhiButtonControl, { danger: true, label: "Danger", onClick: previewNoop })] })] }), _jsx(Divider, { style: { margin: 0 } }), _jsxs(Flex, { vertical: true, gap: clientToken.paddingSM, style: { minWidth: 0 }, children: [_jsx(Typography.Title, { level: 5, style: { margin: 0, color: previewTextColor }, children: "Control Height" }), _jsx(Flex, { gap: clientToken.paddingXS, wrap: "wrap", align: "end", children: controlHeightPreviewItems.map((item) => (_jsx(PhiButtonControl, { style: { height: item.value }, label: item.label, onClick: previewNoop }, item.key))) }), _jsxs(Typography.Text, { type: "secondary", children: ["Wireframe ", wireframeEnabled ? "on" : "off"] })] }), _jsx(PhiTextControl, { label: "Campaign", placeholder: "Preview input", value: previewInput, onChange: (next) => setPreviewInput(next ?? "") }), _jsx(Divider, { style: { margin: 0 } }), _jsxs(Flex, { gap: clientToken.padding, wrap: "wrap", children: [_jsxs(Flex, { vertical: true, gap: clientToken.paddingXS, style: { flex: "1 1 260px", minWidth: 0 }, children: [_jsx(Typography.Title, { level: 3, style: { margin: 0, color: previewTextColor }, children: "Heading" }), _jsx(Typography.Title, { level: 5, style: { margin: 0, color: previewTextColor }, children: "Header" }), _jsx(Typography.Text, { style: { color: previewTextColor }, children: "Text" }), _jsx(Typography.Text, { style: { color: previewTextSecondaryColor }, children: "Text secondary" }), _jsx(Typography.Text, { style: { color: previewTextTertiaryColor }, children: "Text tertiary" }), _jsxs("span", { style: { display: "inline-flex", flexWrap: "wrap", gap: clientToken.paddingSM }, children: [_jsx(Typography.Link, { style: { color: previewLinkColor }, children: "Link" }), _jsx(Typography.Link, { style: { color: previewLinkHoverColor }, children: "Link Hover" }), _jsx(Typography.Link, { style: { color: previewLinkActiveColor }, children: "Link Active" })] })] }), _jsx("div", { style: {
|
|
2434
|
+
display: "grid",
|
|
2435
|
+
gridTemplateColumns: "repeat(2, minmax(0, 1fr))",
|
|
2436
|
+
gap: clientToken.paddingXS,
|
|
2437
|
+
flex: "1 1 260px",
|
|
2438
|
+
minWidth: 0,
|
|
2439
|
+
}, children: statusPreviewItems.map((item) => (_jsx("div", { onMouseEnter: () => setHoveredStatusKey(item.key), onMouseLeave: () => setHoveredStatusKey((current) => (current === item.key ? null : current)), onFocus: () => setHoveredStatusKey(item.key), onBlur: () => setHoveredStatusKey((current) => (current === item.key ? null : current)), tabIndex: 0, style: {
|
|
2440
|
+
cursor: "default",
|
|
2441
|
+
minWidth: 0,
|
|
2442
|
+
border: `1px solid ${hoveredStatusKey === item.key ? item.hoverBorder : item.border}`,
|
|
2443
|
+
background: hoveredStatusKey === item.key ? item.hoverBackground : item.background,
|
|
2444
|
+
color: hoveredStatusKey === item.key ? item.hoverColor : item.color,
|
|
2445
|
+
borderRadius: clientToken.paddingXS,
|
|
2446
|
+
padding: clientToken.paddingXS,
|
|
2447
|
+
transition: "background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease",
|
|
2448
|
+
}, children: _jsx(Typography.Text, { strong: true, style: { color: hoveredStatusKey === item.key ? item.hoverColor : item.color }, children: item.label }) }, item.key))) })] }), _jsx(Divider, { style: { margin: 0 } }), _jsxs(Flex, { gap: clientToken.padding, wrap: "wrap", children: [_jsx(Statistic, { title: "Draft colors", value: countThemePaletteLeaves(previewTheme.palette) }), _jsx(Statistic, { title: "Preset", value: previewPreset.title }), _jsx(Statistic, { title: "Mode", value: mode })] }), _jsx(Divider, { style: { margin: 0 } }), _jsxs(Flex, { vertical: true, gap: clientToken.paddingSM, children: [_jsx(Typography.Title, { level: 5, style: { margin: 0, color: previewTextColor }, children: "Font Slots" }), _jsx("div", { style: {
|
|
2449
|
+
display: "grid",
|
|
2450
|
+
gridTemplateColumns: "repeat(auto-fit, minmax(12rem, 1fr))",
|
|
2451
|
+
gap: clientToken.paddingXS,
|
|
2452
|
+
minWidth: 0,
|
|
2453
|
+
}, children: fontPreviewItems.map((item) => (_jsxs("div", { style: {
|
|
2454
|
+
minWidth: 0,
|
|
2455
|
+
border: `1px solid ${readEffectiveTokenString(previewEffectiveToken, "colorBorderSecondary", "rgba(0,0,0,0.06)")}`,
|
|
2456
|
+
borderRadius: `${readEffectiveTokenNumber(previewEffectiveToken, "borderRadius", PHI_RADII.sm)}px`,
|
|
2457
|
+
background: previewCardBackground,
|
|
2458
|
+
padding: clientToken.paddingXS,
|
|
2459
|
+
}, children: [_jsx(Typography.Text, { type: "secondary", style: { display: "block" }, children: item.label }), _jsx(Typography.Text, { style: { display: "block", color: previewTextColor, fontFamily: item.family }, children: item.sample }), item.value ? (_jsx(Typography.Text, { type: "secondary", style: { display: "block", fontFamily: item.family }, children: item.value })) : null] }, item.key))) })] }), _jsx(Flex, { gap: clientToken.padding, wrap: "wrap", children: _jsxs(Flex, { vertical: true, gap: clientToken.paddingSM, style: { flex: "1 1 260px", minWidth: 0 }, children: [_jsx(Typography.Title, { level: 5, style: { margin: 0, color: previewTextColor }, children: "Border Radius" }), _jsx(Flex, { gap: clientToken.paddingXS, wrap: "wrap", children: radiusPreviewItems.map((item) => (_jsxs("div", { style: {
|
|
2460
|
+
width: `calc(${clientToken.controlHeightLG} * 2)`,
|
|
2461
|
+
minHeight: `calc(${clientToken.controlHeight} * 1.25)`,
|
|
2462
|
+
border: `1px solid ${readEffectiveTokenString(previewEffectiveToken, "colorBorder", "rgba(0,0,0,0.15)")}`,
|
|
2463
|
+
borderRadius: item.value,
|
|
2464
|
+
background: previewCardBackground,
|
|
2465
|
+
padding: clientToken.paddingXS,
|
|
2466
|
+
}, children: [_jsx(Typography.Text, { strong: true, style: { display: "block", color: previewTextColor }, children: item.label }), _jsxs(Typography.Text, { type: "secondary", children: [item.value, "px"] })] }, item.key))) })] }) }), _jsxs(Flex, { vertical: true, gap: clientToken.paddingXS, style: { minWidth: 0 }, children: [_jsx(Flex, { justify: "end", children: _jsx(PhiTextControl, { inputType: "search", allowClear: true, size: "small", placeholder: "Search", value: previewTableSearch, onChange: (value) => setPreviewTableSearch(value ?? ""), style: { width: 260, maxWidth: "100%" } }) }), _jsx(PhiTableControl, { size: "small", pagination: false, rowIdentityPath: "key", sortingMode: "none", sorts: [], columnOrder: ["name", "status"], layout: { mode: "auto", overflowX: "auto" }, columns: columns, rows: previewTableRows, footer: { content: `${previewTableRows.length} of 2 rows`, align: "start" } })] })] }) })] }));
|
|
2467
|
+
}
|