@aglyn/besigner-ui 1.0.0-beta.143
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/README.md +7 -0
- package/package.json +73 -0
- package/src/besigner.d.ts +88 -0
- package/src/besigner.js +89 -0
- package/src/besigner.js.map +1 -0
- package/src/index.d.ts +17 -0
- package/src/index.js +18 -0
- package/src/index.js.map +1 -0
- package/src/lib/box-styler/box-styler.d.ts +57 -0
- package/src/lib/box-styler/box-styler.js +240 -0
- package/src/lib/box-styler/box-styler.js.map +1 -0
- package/src/lib/box-styler/components/box-diagram.d.ts +89 -0
- package/src/lib/box-styler/components/box-diagram.js +661 -0
- package/src/lib/box-styler/components/box-diagram.js.map +1 -0
- package/src/lib/box-styler/components/legend.d.ts +56 -0
- package/src/lib/box-styler/components/legend.js +130 -0
- package/src/lib/box-styler/components/legend.js.map +1 -0
- package/src/lib/box-styler/components/spacing-editor.d.ts +55 -0
- package/src/lib/box-styler/components/spacing-editor.js +347 -0
- package/src/lib/box-styler/components/spacing-editor.js.map +1 -0
- package/src/lib/box-styler/constants.d.ts +17 -0
- package/src/lib/box-styler/constants.js +30 -0
- package/src/lib/box-styler/constants.js.map +1 -0
- package/src/lib/box-styler/index.d.ts +2 -0
- package/src/lib/box-styler/index.js +4 -0
- package/src/lib/box-styler/index.js.map +1 -0
- package/src/lib/box-styler/region-fills.d.ts +107 -0
- package/src/lib/box-styler/region-fills.js +139 -0
- package/src/lib/box-styler/region-fills.js.map +1 -0
- package/src/lib/box-styler/spacing-value.d.ts +104 -0
- package/src/lib/box-styler/spacing-value.js +223 -0
- package/src/lib/box-styler/spacing-value.js.map +1 -0
- package/src/lib/box-styler/types.d.ts +29 -0
- package/src/lib/box-styler/types.js +18 -0
- package/src/lib/box-styler/types.js.map +1 -0
- package/src/lib/components/accordion-list.component.d.ts +50 -0
- package/src/lib/components/accordion-list.component.js +228 -0
- package/src/lib/components/accordion-list.component.js.map +1 -0
- package/src/lib/components/add-controls.component.d.ts +22 -0
- package/src/lib/components/add-controls.component.js +50 -0
- package/src/lib/components/add-controls.component.js.map +1 -0
- package/src/lib/components/app-bar-breadcrumbs.component.d.ts +29 -0
- package/src/lib/components/app-bar-breadcrumbs.component.js +279 -0
- package/src/lib/components/app-bar-breadcrumbs.component.js.map +1 -0
- package/src/lib/components/app-bar-primary.component.d.ts +21 -0
- package/src/lib/components/app-bar-primary.component.js +108 -0
- package/src/lib/components/app-bar-primary.component.js.map +1 -0
- package/src/lib/components/app-bar-secondary.component.d.ts +21 -0
- package/src/lib/components/app-bar-secondary.component.js +94 -0
- package/src/lib/components/app-bar-secondary.component.js.map +1 -0
- package/src/lib/components/aside-panel.component.d.ts +23 -0
- package/src/lib/components/aside-panel.component.js +505 -0
- package/src/lib/components/aside-panel.component.js.map +1 -0
- package/src/lib/components/besigner-conflict-alert.component.d.ts +36 -0
- package/src/lib/components/besigner-conflict-alert.component.js +51 -0
- package/src/lib/components/besigner-conflict-alert.component.js.map +1 -0
- package/src/lib/components/besigner-dnd-context.component.d.ts +32 -0
- package/src/lib/components/besigner-dnd-context.component.js +75 -0
- package/src/lib/components/besigner-dnd-context.component.js.map +1 -0
- package/src/lib/components/besigner-draft-alert.component.d.ts +70 -0
- package/src/lib/components/besigner-draft-alert.component.js +155 -0
- package/src/lib/components/besigner-draft-alert.component.js.map +1 -0
- package/src/lib/components/besigner-root-provider.component.d.ts +33 -0
- package/src/lib/components/besigner-root-provider.component.js +68 -0
- package/src/lib/components/besigner-root-provider.component.js.map +1 -0
- package/src/lib/components/binding-preview-controls.component.d.ts +28 -0
- package/src/lib/components/binding-preview-controls.component.js +63 -0
- package/src/lib/components/binding-preview-controls.component.js.map +1 -0
- package/src/lib/components/closeable-drawer.component.d.ts +32 -0
- package/src/lib/components/closeable-drawer.component.js +134 -0
- package/src/lib/components/closeable-drawer.component.js.map +1 -0
- package/src/lib/components/component-accordion-list.d.ts +28 -0
- package/src/lib/components/component-accordion-list.js +205 -0
- package/src/lib/components/component-accordion-list.js.map +1 -0
- package/src/lib/components/component-icon.component.d.ts +32 -0
- package/src/lib/components/component-icon.component.js +51 -0
- package/src/lib/components/component-icon.component.js.map +1 -0
- package/src/lib/components/component-picker.d.ts +27 -0
- package/src/lib/components/component-picker.js +368 -0
- package/src/lib/components/component-picker.js.map +1 -0
- package/src/lib/components/components-grid-list.component.d.ts +31 -0
- package/src/lib/components/components-grid-list.component.js +162 -0
- package/src/lib/components/components-grid-list.component.js.map +1 -0
- package/src/lib/components/custom-css-form.component.d.ts +115 -0
- package/src/lib/components/custom-css-form.component.js +699 -0
- package/src/lib/components/custom-css-form.component.js.map +1 -0
- package/src/lib/components/device-preview-controls.component.d.ts +22 -0
- package/src/lib/components/device-preview-controls.component.js +150 -0
- package/src/lib/components/device-preview-controls.component.js.map +1 -0
- package/src/lib/components/dnd/canvas-drop-indicator.d.ts +20 -0
- package/src/lib/components/dnd/canvas-drop-indicator.js +61 -0
- package/src/lib/components/dnd/canvas-drop-indicator.js.map +1 -0
- package/src/lib/components/dnd/draggable-droppable.d.ts +31 -0
- package/src/lib/components/dnd/draggable-droppable.js +383 -0
- package/src/lib/components/dnd/draggable-droppable.js.map +1 -0
- package/src/lib/components/dnd/draggable.d.ts +42 -0
- package/src/lib/components/dnd/draggable.js +66 -0
- package/src/lib/components/dnd/draggable.js.map +1 -0
- package/src/lib/components/dnd/drop-indicator.d.ts +31 -0
- package/src/lib/components/dnd/drop-indicator.js +139 -0
- package/src/lib/components/dnd/drop-indicator.js.map +1 -0
- package/src/lib/components/dnd/droppable.d.ts +43 -0
- package/src/lib/components/dnd/droppable.js +63 -0
- package/src/lib/components/dnd/droppable.js.map +1 -0
- package/src/lib/components/element-card.component.d.ts +23 -0
- package/src/lib/components/element-card.component.js +49 -0
- package/src/lib/components/element-card.component.js.map +1 -0
- package/src/lib/components/element-classes-field.component.d.ts +41 -0
- package/src/lib/components/element-classes-field.component.js +140 -0
- package/src/lib/components/element-classes-field.component.js.map +1 -0
- package/src/lib/components/element-detail-overlay.component.d.ts +55 -0
- package/src/lib/components/element-detail-overlay.component.js +157 -0
- package/src/lib/components/element-detail-overlay.component.js.map +1 -0
- package/src/lib/components/element-detail.component.d.ts +56 -0
- package/src/lib/components/element-detail.component.js +171 -0
- package/src/lib/components/element-detail.component.js.map +1 -0
- package/src/lib/components/element-info-details.component.d.ts +18 -0
- package/src/lib/components/element-info-details.component.js +169 -0
- package/src/lib/components/element-info-details.component.js.map +1 -0
- package/src/lib/components/element-interactions-form.component.d.ts +21 -0
- package/src/lib/components/element-interactions-form.component.js +199 -0
- package/src/lib/components/element-interactions-form.component.js.map +1 -0
- package/src/lib/components/element-preview.component.d.ts +75 -0
- package/src/lib/components/element-preview.component.js +346 -0
- package/src/lib/components/element-preview.component.js.map +1 -0
- package/src/lib/components/element-props-form.component.d.ts +565 -0
- package/src/lib/components/element-props-form.component.js +2392 -0
- package/src/lib/components/element-props-form.component.js.map +1 -0
- package/src/lib/components/element-styles-form-template.component.d.ts +27 -0
- package/src/lib/components/element-styles-form-template.component.js +89 -0
- package/src/lib/components/element-styles-form-template.component.js.map +1 -0
- package/src/lib/components/element-styles-form.component.d.ts +52 -0
- package/src/lib/components/element-styles-form.component.js +1350 -0
- package/src/lib/components/element-styles-form.component.js.map +1 -0
- package/src/lib/components/empty-document-slot.d.ts +39 -0
- package/src/lib/components/empty-document-slot.js +121 -0
- package/src/lib/components/empty-document-slot.js.map +1 -0
- package/src/lib/components/empty-results.d.ts +22 -0
- package/src/lib/components/empty-results.js +131 -0
- package/src/lib/components/empty-results.js.map +1 -0
- package/src/lib/components/history-controls.component.d.ts +21 -0
- package/src/lib/components/history-controls.component.js +67 -0
- package/src/lib/components/history-controls.component.js.map +1 -0
- package/src/lib/components/inline-markdown-editor.component.d.ts +17 -0
- package/src/lib/components/inline-markdown-editor.component.js +220 -0
- package/src/lib/components/inline-markdown-editor.component.js.map +1 -0
- package/src/lib/components/inline-text-editor.component.d.ts +48 -0
- package/src/lib/components/inline-text-editor.component.js +905 -0
- package/src/lib/components/inline-text-editor.component.js.map +1 -0
- package/src/lib/components/insert-token-menu.component.d.ts +86 -0
- package/src/lib/components/insert-token-menu.component.js +232 -0
- package/src/lib/components/insert-token-menu.component.js.map +1 -0
- package/src/lib/components/instance-attr-overrides.component.d.ts +50 -0
- package/src/lib/components/instance-attr-overrides.component.js +298 -0
- package/src/lib/components/instance-attr-overrides.component.js.map +1 -0
- package/src/lib/components/interact-controls.component.d.ts +22 -0
- package/src/lib/components/interact-controls.component.js +74 -0
- package/src/lib/components/interact-controls.component.js.map +1 -0
- package/src/lib/components/markdown-attribute-field.component.d.ts +40 -0
- package/src/lib/components/markdown-attribute-field.component.js +103 -0
- package/src/lib/components/markdown-attribute-field.component.js.map +1 -0
- package/src/lib/components/node-card.d.ts +24 -0
- package/src/lib/components/node-card.js +86 -0
- package/src/lib/components/node-card.js.map +1 -0
- package/src/lib/components/node-context-menu.d.ts +25 -0
- package/src/lib/components/node-context-menu.js +558 -0
- package/src/lib/components/node-context-menu.js.map +1 -0
- package/src/lib/components/node-leaf.d.ts +39 -0
- package/src/lib/components/node-leaf.js +628 -0
- package/src/lib/components/node-leaf.js.map +1 -0
- package/src/lib/components/node-outline.d.ts +24 -0
- package/src/lib/components/node-outline.js +156 -0
- package/src/lib/components/node-outline.js.map +1 -0
- package/src/lib/components/node-overlay.d.ts +23 -0
- package/src/lib/components/node-overlay.js +299 -0
- package/src/lib/components/node-overlay.js.map +1 -0
- package/src/lib/components/node-quick-actions.d.ts +24 -0
- package/src/lib/components/node-quick-actions.js +284 -0
- package/src/lib/components/node-quick-actions.js.map +1 -0
- package/src/lib/components/node-tree-view.d.ts +106 -0
- package/src/lib/components/node-tree-view.js +820 -0
- package/src/lib/components/node-tree-view.js.map +1 -0
- package/src/lib/components/panel-controls.component.d.ts +22 -0
- package/src/lib/components/panel-controls.component.js +76 -0
- package/src/lib/components/panel-controls.component.js.map +1 -0
- package/src/lib/components/picker-search-field.d.ts +38 -0
- package/src/lib/components/picker-search-field.js +79 -0
- package/src/lib/components/picker-search-field.js.map +1 -0
- package/src/lib/components/plugin-settings-field.component.d.ts +38 -0
- package/src/lib/components/plugin-settings-field.component.js +264 -0
- package/src/lib/components/plugin-settings-field.component.js.map +1 -0
- package/src/lib/components/properties-dialog.component.d.ts +22 -0
- package/src/lib/components/properties-dialog.component.js +40 -0
- package/src/lib/components/properties-dialog.component.js.map +1 -0
- package/src/lib/components/property-binding-field.component.d.ts +142 -0
- package/src/lib/components/property-binding-field.component.js +325 -0
- package/src/lib/components/property-binding-field.component.js.map +1 -0
- package/src/lib/components/property-values-form.component.d.ts +43 -0
- package/src/lib/components/property-values-form.component.js +223 -0
- package/src/lib/components/property-values-form.component.js.map +1 -0
- package/src/lib/components/scheme-preview-controls.component.d.ts +26 -0
- package/src/lib/components/scheme-preview-controls.component.js +56 -0
- package/src/lib/components/scheme-preview-controls.component.js.map +1 -0
- package/src/lib/components/screen-link-field.component.d.ts +118 -0
- package/src/lib/components/screen-link-field.component.js +282 -0
- package/src/lib/components/screen-link-field.component.js.map +1 -0
- package/src/lib/components/site-theme-color-tokens-provider.component.d.ts +33 -0
- package/src/lib/components/site-theme-color-tokens-provider.component.js +53 -0
- package/src/lib/components/site-theme-color-tokens-provider.component.js.map +1 -0
- package/src/lib/components/subtree-json-dialog.component.d.ts +46 -0
- package/src/lib/components/subtree-json-dialog.component.js +125 -0
- package/src/lib/components/subtree-json-dialog.component.js.map +1 -0
- package/src/lib/components/token-pill.component.d.ts +51 -0
- package/src/lib/components/token-pill.component.js +164 -0
- package/src/lib/components/token-pill.component.js.map +1 -0
- package/src/lib/components/token-text-field.component.d.ts +146 -0
- package/src/lib/components/token-text-field.component.js +603 -0
- package/src/lib/components/token-text-field.component.js.map +1 -0
- package/src/lib/components/tree/tree-list.d.ts +6 -0
- package/src/lib/components/tree/tree-list.js +108 -0
- package/src/lib/components/tree/tree-list.js.map +1 -0
- package/src/lib/components/viewport-canvas.component.d.ts +23 -0
- package/src/lib/components/viewport-canvas.component.js +128 -0
- package/src/lib/components/viewport-canvas.component.js.map +1 -0
- package/src/lib/components/viewport-frame.component.d.ts +47 -0
- package/src/lib/components/viewport-frame.component.js +332 -0
- package/src/lib/components/viewport-frame.component.js.map +1 -0
- package/src/lib/components/viewport-root.component.d.ts +22 -0
- package/src/lib/components/viewport-root.component.js +112 -0
- package/src/lib/components/viewport-root.component.js.map +1 -0
- package/src/lib/components/viewport-zoom-controls.d.ts +29 -0
- package/src/lib/components/viewport-zoom-controls.js +147 -0
- package/src/lib/components/viewport-zoom-controls.js.map +1 -0
- package/src/lib/components/workspace-editor.component.d.ts +23 -0
- package/src/lib/components/workspace-editor.component.js +191 -0
- package/src/lib/components/workspace-editor.component.js.map +1 -0
- package/src/lib/components/workspace-panel.component.d.ts +28 -0
- package/src/lib/components/workspace-panel.component.js +147 -0
- package/src/lib/components/workspace-panel.component.js.map +1 -0
- package/src/lib/constants/sample-data.d.ts +18 -0
- package/src/lib/constants/sample-data.js +106 -0
- package/src/lib/constants/sample-data.js.map +1 -0
- package/src/lib/constants/shared.d.ts +17 -0
- package/src/lib/constants/shared.js +18 -0
- package/src/lib/constants/shared.js.map +1 -0
- package/src/lib/contexts/besigner-app-context.d.ts +30 -0
- package/src/lib/contexts/besigner-app-context.js +41 -0
- package/src/lib/contexts/besigner-app-context.js.map +1 -0
- package/src/lib/contexts/binding-picker-context.d.ts +78 -0
- package/src/lib/contexts/binding-picker-context.js +21 -0
- package/src/lib/contexts/binding-picker-context.js.map +1 -0
- package/src/lib/contexts/canvas-host-tokens-context.d.ts +49 -0
- package/src/lib/contexts/canvas-host-tokens-context.js +63 -0
- package/src/lib/contexts/canvas-host-tokens-context.js.map +1 -0
- package/src/lib/contexts/canvas-reveal-context.d.ts +32 -0
- package/src/lib/contexts/canvas-reveal-context.js +34 -0
- package/src/lib/contexts/canvas-reveal-context.js.map +1 -0
- package/src/lib/contexts/component-promotion-context.d.ts +89 -0
- package/src/lib/contexts/component-promotion-context.js +21 -0
- package/src/lib/contexts/component-promotion-context.js.map +1 -0
- package/src/lib/contexts/components-drawer-context.provider.d.ts +32 -0
- package/src/lib/contexts/components-drawer-context.provider.js +80 -0
- package/src/lib/contexts/components-drawer-context.provider.js.map +1 -0
- package/src/lib/contexts/element-drawer-context.d.ts +1005 -0
- package/src/lib/contexts/element-drawer-context.js +45 -0
- package/src/lib/contexts/element-drawer-context.js.map +1 -0
- package/src/lib/contexts/inspected-selection.d.ts +32 -0
- package/src/lib/contexts/inspected-selection.js +38 -0
- package/src/lib/contexts/inspected-selection.js.map +1 -0
- package/src/lib/contexts/inspector-extras-context.d.ts +56 -0
- package/src/lib/contexts/inspector-extras-context.js +35 -0
- package/src/lib/contexts/inspector-extras-context.js.map +1 -0
- package/src/lib/contexts/interactions-context.d.ts +99 -0
- package/src/lib/contexts/interactions-context.js +22 -0
- package/src/lib/contexts/interactions-context.js.map +1 -0
- package/src/lib/contexts/layout-chrome-context.d.ts +37 -0
- package/src/lib/contexts/layout-chrome-context.js +75 -0
- package/src/lib/contexts/layout-chrome-context.js.map +1 -0
- package/src/lib/contexts/media-asset-facts-context.d.ts +74 -0
- package/src/lib/contexts/media-asset-facts-context.js +27 -0
- package/src/lib/contexts/media-asset-facts-context.js.map +1 -0
- package/src/lib/contexts/media-picker-context.d.ts +88 -0
- package/src/lib/contexts/media-picker-context.js +21 -0
- package/src/lib/contexts/media-picker-context.js.map +1 -0
- package/src/lib/contexts/rendered-canvas-elements.d.ts +42 -0
- package/src/lib/contexts/rendered-canvas-elements.js +79 -0
- package/src/lib/contexts/rendered-canvas-elements.js.map +1 -0
- package/src/lib/contexts/repeat-record-context.d.ts +38 -0
- package/src/lib/contexts/repeat-record-context.js +21 -0
- package/src/lib/contexts/repeat-record-context.js.map +1 -0
- package/src/lib/contexts/repeat-rows-context.d.ts +53 -0
- package/src/lib/contexts/repeat-rows-context.js +38 -0
- package/src/lib/contexts/repeat-rows-context.js.map +1 -0
- package/src/lib/contexts/toolbar-extras-context.d.ts +31 -0
- package/src/lib/contexts/toolbar-extras-context.js +33 -0
- package/src/lib/contexts/toolbar-extras-context.js.map +1 -0
- package/src/lib/drafts/besigner-draft-store.d.ts +110 -0
- package/src/lib/drafts/besigner-draft-store.js +125 -0
- package/src/lib/drafts/besigner-draft-store.js.map +1 -0
- package/src/lib/drafts/besigner-server-draft.d.ts +130 -0
- package/src/lib/drafts/besigner-server-draft.js +211 -0
- package/src/lib/drafts/besigner-server-draft.js.map +1 -0
- package/src/lib/form-fields/components/shared/inline-form-control.d.ts +32 -0
- package/src/lib/form-fields/components/shared/inline-form-control.js +85 -0
- package/src/lib/form-fields/components/shared/inline-form-control.js.map +1 -0
- package/src/lib/form-fields/components/shared/toggle-button-form-control.d.ts +33 -0
- package/src/lib/form-fields/components/shared/toggle-button-form-control.js +83 -0
- package/src/lib/form-fields/components/shared/toggle-button-form-control.js.map +1 -0
- package/src/lib/form-fields/form-fields.d.ts +20 -0
- package/src/lib/form-fields/form-fields.js +21 -0
- package/src/lib/form-fields/form-fields.js.map +1 -0
- package/src/lib/form-fields/index.d.ts +1 -0
- package/src/lib/form-fields/index.js +3 -0
- package/src/lib/form-fields/index.js.map +1 -0
- package/src/lib/hooks/use-add-element-drawer-callback.d.ts +28 -0
- package/src/lib/hooks/use-add-element-drawer-callback.js +112 -0
- package/src/lib/hooks/use-add-element-drawer-callback.js.map +1 -0
- package/src/lib/hooks/use-aglyn-besigner-flag.d.ts +23 -0
- package/src/lib/hooks/use-aglyn-besigner-flag.js +47 -0
- package/src/lib/hooks/use-aglyn-besigner-flag.js.map +1 -0
- package/src/lib/hooks/use-aglyn-besigner-panel-value.d.ts +23 -0
- package/src/lib/hooks/use-aglyn-besigner-panel-value.js +54 -0
- package/src/lib/hooks/use-aglyn-besigner-panel-value.js.map +1 -0
- package/src/lib/hooks/use-aglyn-besigner-panel.d.ts +23 -0
- package/src/lib/hooks/use-aglyn-besigner-panel.js +47 -0
- package/src/lib/hooks/use-aglyn-besigner-panel.js.map +1 -0
- package/src/lib/hooks/use-anchored-rect.d.ts +68 -0
- package/src/lib/hooks/use-anchored-rect.js +131 -0
- package/src/lib/hooks/use-anchored-rect.js.map +1 -0
- package/src/lib/hooks/use-besigner-app-context.d.ts +18 -0
- package/src/lib/hooks/use-besigner-app-context.js +19 -0
- package/src/lib/hooks/use-besigner-app-context.js.map +1 -0
- package/src/lib/hooks/use-besigner-document.d.ts +309 -0
- package/src/lib/hooks/use-besigner-document.js +500 -0
- package/src/lib/hooks/use-besigner-document.js.map +1 -0
- package/src/lib/hooks/use-besigner-draft.d.ts +209 -0
- package/src/lib/hooks/use-besigner-draft.js +429 -0
- package/src/lib/hooks/use-besigner-draft.js.map +1 -0
- package/src/lib/hooks/use-clipboard-callbacks.d.ts +29 -0
- package/src/lib/hooks/use-clipboard-callbacks.js +82 -0
- package/src/lib/hooks/use-clipboard-callbacks.js.map +1 -0
- package/src/lib/hooks/use-clipboard-shortcuts.d.ts +52 -0
- package/src/lib/hooks/use-clipboard-shortcuts.js +102 -0
- package/src/lib/hooks/use-clipboard-shortcuts.js.map +1 -0
- package/src/lib/hooks/use-component-propagation-notice.d.ts +96 -0
- package/src/lib/hooks/use-component-propagation-notice.js +177 -0
- package/src/lib/hooks/use-component-propagation-notice.js.map +1 -0
- package/src/lib/hooks/use-debounced-commit.d.ts +43 -0
- package/src/lib/hooks/use-debounced-commit.js +88 -0
- package/src/lib/hooks/use-debounced-commit.js.map +1 -0
- package/src/lib/hooks/use-delete-element-callback.d.ts +24 -0
- package/src/lib/hooks/use-delete-element-callback.js +82 -0
- package/src/lib/hooks/use-delete-element-callback.js.map +1 -0
- package/src/lib/hooks/use-detail-hover-intent.d.ts +76 -0
- package/src/lib/hooks/use-detail-hover-intent.js +123 -0
- package/src/lib/hooks/use-detail-hover-intent.js.map +1 -0
- package/src/lib/hooks/use-document-repair-callbacks.d.ts +50 -0
- package/src/lib/hooks/use-document-repair-callbacks.js +237 -0
- package/src/lib/hooks/use-document-repair-callbacks.js.map +1 -0
- package/src/lib/hooks/use-insert-token-options.d.ts +52 -0
- package/src/lib/hooks/use-insert-token-options.js +230 -0
- package/src/lib/hooks/use-insert-token-options.js.map +1 -0
- package/src/lib/hooks/use-leaf-drag.d.ts +24 -0
- package/src/lib/hooks/use-leaf-drag.js +28 -0
- package/src/lib/hooks/use-leaf-drag.js.map +1 -0
- package/src/lib/hooks/use-leaf-drop.d.ts +31 -0
- package/src/lib/hooks/use-leaf-drop.js +43 -0
- package/src/lib/hooks/use-leaf-drop.js.map +1 -0
- package/src/lib/hooks/use-markdown-media-picker.d.ts +63 -0
- package/src/lib/hooks/use-markdown-media-picker.js +110 -0
- package/src/lib/hooks/use-markdown-media-picker.js.map +1 -0
- package/src/lib/hooks/use-media-asset-facts-overlay.d.ts +43 -0
- package/src/lib/hooks/use-media-asset-facts-overlay.js +133 -0
- package/src/lib/hooks/use-media-asset-facts-overlay.js.map +1 -0
- package/src/lib/hooks/use-move-node-callbacks.d.ts +22 -0
- package/src/lib/hooks/use-move-node-callbacks.js +57 -0
- package/src/lib/hooks/use-move-node-callbacks.js.map +1 -0
- package/src/lib/hooks/use-node-with-host-tokens.d.ts +42 -0
- package/src/lib/hooks/use-node-with-host-tokens.js +59 -0
- package/src/lib/hooks/use-node-with-host-tokens.js.map +1 -0
- package/src/lib/hooks/use-picker-filter.d.ts +61 -0
- package/src/lib/hooks/use-picker-filter.js +122 -0
- package/src/lib/hooks/use-picker-filter.js.map +1 -0
- package/src/lib/hooks/use-repeat-preview.d.ts +64 -0
- package/src/lib/hooks/use-repeat-preview.js +214 -0
- package/src/lib/hooks/use-repeat-preview.js.map +1 -0
- package/src/lib/hooks/use-repeat-sources.d.ts +17 -0
- package/src/lib/hooks/use-repeat-sources.js +41 -0
- package/src/lib/hooks/use-repeat-sources.js.map +1 -0
- package/src/lib/hooks/use-visible-component-categories.d.ts +37 -0
- package/src/lib/hooks/use-visible-component-categories.js +79 -0
- package/src/lib/hooks/use-visible-component-categories.js.map +1 -0
- package/src/lib/utils/active-host-theme.d.ts +28 -0
- package/src/lib/utils/active-host-theme.js +77 -0
- package/src/lib/utils/active-host-theme.js.map +1 -0
- package/src/lib/utils/attr-target.d.ts +170 -0
- package/src/lib/utils/attr-target.js +229 -0
- package/src/lib/utils/attr-target.js.map +1 -0
- package/src/lib/utils/attribute-field-value.d.ts +21 -0
- package/src/lib/utils/attribute-field-value.js +28 -0
- package/src/lib/utils/attribute-field-value.js.map +1 -0
- package/src/lib/utils/canvas-context-menu.d.ts +28 -0
- package/src/lib/utils/canvas-context-menu.js +56 -0
- package/src/lib/utils/canvas-context-menu.js.map +1 -0
- package/src/lib/utils/canvas-reveal.d.ts +115 -0
- package/src/lib/utils/canvas-reveal.js +165 -0
- package/src/lib/utils/canvas-reveal.js.map +1 -0
- package/src/lib/utils/describe-element.d.ts +72 -0
- package/src/lib/utils/describe-element.js +159 -0
- package/src/lib/utils/describe-element.js.map +1 -0
- package/src/lib/utils/device-preview-styles.d.ts +89 -0
- package/src/lib/utils/device-preview-styles.js +228 -0
- package/src/lib/utils/device-preview-styles.js.map +1 -0
- package/src/lib/utils/docs-help.d.ts +22 -0
- package/src/lib/utils/docs-help.generated.d.ts +47 -0
- package/src/lib/utils/docs-help.generated.js +229 -0
- package/src/lib/utils/docs-help.generated.js.map +1 -0
- package/src/lib/utils/docs-help.js +37 -0
- package/src/lib/utils/docs-help.js.map +1 -0
- package/src/lib/utils/held-answers-store.d.ts +59 -0
- package/src/lib/utils/held-answers-store.js +94 -0
- package/src/lib/utils/held-answers-store.js.map +1 -0
- package/src/lib/utils/in-place-edit-surface.d.ts +118 -0
- package/src/lib/utils/in-place-edit-surface.js +164 -0
- package/src/lib/utils/in-place-edit-surface.js.map +1 -0
- package/src/lib/utils/inline-markdown-edit.store.d.ts +71 -0
- package/src/lib/utils/inline-markdown-edit.store.js +90 -0
- package/src/lib/utils/inline-markdown-edit.store.js.map +1 -0
- package/src/lib/utils/inline-text-edit.store.d.ts +85 -0
- package/src/lib/utils/inline-text-edit.store.js +78 -0
- package/src/lib/utils/inline-text-edit.store.js.map +1 -0
- package/src/lib/utils/instance-leaf-hit.d.ts +39 -0
- package/src/lib/utils/instance-leaf-hit.js +56 -0
- package/src/lib/utils/instance-leaf-hit.js.map +1 -0
- package/src/lib/utils/muted-classes.d.ts +76 -0
- package/src/lib/utils/muted-classes.js +108 -0
- package/src/lib/utils/muted-classes.js.map +1 -0
- package/src/lib/utils/muted-styles.d.ts +125 -0
- package/src/lib/utils/muted-styles.js +193 -0
- package/src/lib/utils/muted-styles.js.map +1 -0
- package/src/lib/utils/numeric-text-value.d.ts +42 -0
- package/src/lib/utils/numeric-text-value.js +47 -0
- package/src/lib/utils/numeric-text-value.js.map +1 -0
- package/src/lib/utils/preset-interactions.d.ts +37 -0
- package/src/lib/utils/preset-interactions.js +87 -0
- package/src/lib/utils/preset-interactions.js.map +1 -0
- package/src/lib/utils/publish-failure-message.d.ts +35 -0
- package/src/lib/utils/publish-failure-message.js +51 -0
- package/src/lib/utils/publish-failure-message.js.map +1 -0
- package/src/lib/utils/rank-picker-results.d.ts +45 -0
- package/src/lib/utils/rank-picker-results.js +136 -0
- package/src/lib/utils/rank-picker-results.js.map +1 -0
- package/src/lib/utils/responsive-sx.d.ts +65 -0
- package/src/lib/utils/responsive-sx.js +129 -0
- package/src/lib/utils/responsive-sx.js.map +1 -0
- package/src/lib/utils/rich-text-commands.d.ts +28 -0
- package/src/lib/utils/rich-text-commands.js +43 -0
- package/src/lib/utils/rich-text-commands.js.map +1 -0
- package/src/lib/utils/sanitize-rich-text.d.ts +52 -0
- package/src/lib/utils/sanitize-rich-text.js +173 -0
- package/src/lib/utils/sanitize-rich-text.js.map +1 -0
- package/src/lib/utils/state-sx.d.ts +255 -0
- package/src/lib/utils/state-sx.js +338 -0
- package/src/lib/utils/state-sx.js.map +1 -0
- package/src/lib/utils/style-field-groups.d.ts +136 -0
- package/src/lib/utils/style-field-groups.js +874 -0
- package/src/lib/utils/style-field-groups.js.map +1 -0
- package/src/lib/utils/style-field-search.d.ts +84 -0
- package/src/lib/utils/style-field-search.js +505 -0
- package/src/lib/utils/style-field-search.js.map +1 -0
- package/src/lib/utils/style-target.d.ts +69 -0
- package/src/lib/utils/style-target.js +203 -0
- package/src/lib/utils/style-target.js.map +1 -0
- package/src/lib/utils/theme-scale-options.d.ts +169 -0
- package/src/lib/utils/theme-scale-options.js +702 -0
- package/src/lib/utils/theme-scale-options.js.map +1 -0
- package/src/lib/utils/token-editable-dom.d.ts +82 -0
- package/src/lib/utils/token-editable-dom.js +280 -0
- package/src/lib/utils/token-editable-dom.js.map +1 -0
- package/src/lib/utils/token-segments.d.ts +111 -0
- package/src/lib/utils/token-segments.js +246 -0
- package/src/lib/utils/token-segments.js.map +1 -0
- package/src/lib/utils/visibility-styles.d.ts +38 -0
- package/src/lib/utils/visibility-styles.js +54 -0
- package/src/lib/utils/visibility-styles.js.map +1 -0
|
@@ -0,0 +1,565 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import PluginSettingsField from './plugin-settings-field.component';
|
|
18
|
+
import type * as Aglyn from '@aglyn/aglyn';
|
|
19
|
+
import { type RepeatSource } from '@aglyn/aglyn/app-utils/repeat-sources';
|
|
20
|
+
import { type FormRendererProps, type FormTemplateRenderProps } from '@aglyn/shared-ui-jsx-forms';
|
|
21
|
+
import { MarkdownAttributeField } from './markdown-attribute-field.component';
|
|
22
|
+
import { ScreenLinkField, ScreenTargetField } from './screen-link-field.component';
|
|
23
|
+
import { PropertyBindingField } from './property-binding-field.component';
|
|
24
|
+
export { ATTRIBUTE_COMMIT_DEBOUNCE_MS, useDebouncedCommit, } from '../hooks/use-debounced-commit';
|
|
25
|
+
export { readAttributeFieldValue } from '../utils/attribute-field-value';
|
|
26
|
+
/**
|
|
27
|
+
* @TODO ⚠️ remove and reimplement following PR merge
|
|
28
|
+
* https://github.com/data-driven-forms/react-forms/pull/1218
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* Whether a node's text is FORMATTED — it carries a `html` prop the renderer
|
|
32
|
+
* draws in preference to `children` (AGL-2486).
|
|
33
|
+
*
|
|
34
|
+
* An instance is excluded: its text rides `propValues`, not a `html` prop of
|
|
35
|
+
* its own, so the question does not arise there.
|
|
36
|
+
*/
|
|
37
|
+
export declare function isFormattedText(node: Aglyn.NodeSchema<any> | undefined | null): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* The same props with the formatting dropped and the words kept
|
|
40
|
+
* (AGL-2486).
|
|
41
|
+
*
|
|
42
|
+
* `children` is deliberately untouched. It already holds the plain reading
|
|
43
|
+
* of the markup — and since `richTextToPlain` keeps line breaks, that
|
|
44
|
+
* reading has the author's breaks in it — so the element goes on saying the
|
|
45
|
+
* same thing in the same shape, in a form this panel can edit.
|
|
46
|
+
*/
|
|
47
|
+
export declare function withoutFormatting(props: Record<string, unknown> | undefined): Record<string, unknown>;
|
|
48
|
+
export declare const ElementPropsFormTemplate: import("react").ForwardRefExoticComponent<Omit<FormTemplateRenderProps, "ref"> & import("react").RefAttributes<any>>;
|
|
49
|
+
export interface ElementPropsFormProps extends Omit<FormRendererProps, 'schema' | 'componentMapper'> {
|
|
50
|
+
node?: Aglyn.NodeSchema<any>;
|
|
51
|
+
/**
|
|
52
|
+
* Supplied by the component, not the caller: `ElementPropsFormRaw` reads
|
|
53
|
+
* `node.componentSchema` and ignores anything passed in, and the production
|
|
54
|
+
* mount (`withLastSelectedNode(withTabPanelInner(...))`) passes neither. They
|
|
55
|
+
* stayed required only because the interface extended `FormRendererProps`
|
|
56
|
+
* wholesale, so any direct render was a type error for props the component
|
|
57
|
+
* discards.
|
|
58
|
+
*/
|
|
59
|
+
schema?: FormRendererProps['schema'];
|
|
60
|
+
componentMapper?: FormRendererProps['componentMapper'];
|
|
61
|
+
}
|
|
62
|
+
export declare const elementPropsComponentMapper: {
|
|
63
|
+
"icon-picker": import("@aglyn/shared-ui-jsx-forms").ExtendedMapperComponent;
|
|
64
|
+
checkbox: import("@aglyn/shared-ui-jsx-forms").ExtendedMapperComponent;
|
|
65
|
+
"color-picker": import("@aglyn/shared-ui-jsx-forms").ExtendedMapperComponent;
|
|
66
|
+
"css-dimension": import("@aglyn/shared-ui-jsx-forms").ExtendedMapperComponent;
|
|
67
|
+
"css-gradient": import("@aglyn/shared-ui-jsx-forms").ExtendedMapperComponent;
|
|
68
|
+
"data-table": import("@aglyn/shared-ui-jsx-forms").ExtendedMapperComponent;
|
|
69
|
+
"breakpoint-span": import("@aglyn/shared-ui-jsx-forms").ExtendedMapperComponent;
|
|
70
|
+
"css-border": import("@aglyn/shared-ui-jsx-forms").ExtendedMapperComponent;
|
|
71
|
+
"preset-choice": import("@aglyn/shared-ui-jsx-forms").ExtendedMapperComponent;
|
|
72
|
+
"theme-scale": import("@aglyn/shared-ui-jsx-forms").ExtendedMapperComponent;
|
|
73
|
+
radio: import("@aglyn/shared-ui-jsx-forms").ExtendedMapperComponent;
|
|
74
|
+
slider: import("@aglyn/shared-ui-jsx-forms").ExtendedMapperComponent;
|
|
75
|
+
"toggle-button": import("@aglyn/shared-ui-jsx-forms").ExtendedMapperComponent;
|
|
76
|
+
"dual-list-select": import("@aglyn/shared-ui-jsx-forms").ExtendedMapperComponent;
|
|
77
|
+
"aglyn-token-text-field": {
|
|
78
|
+
(props: import("./token-text-field.component").TokenTextFieldProps): import("react").JSX.Element;
|
|
79
|
+
displayName: string;
|
|
80
|
+
};
|
|
81
|
+
"aglyn-screen-link-field": typeof ScreenLinkField;
|
|
82
|
+
"aglyn-screen-target-field": typeof ScreenTargetField;
|
|
83
|
+
markdown: typeof MarkdownAttributeField;
|
|
84
|
+
"aglyn-markdown-attribute-field": typeof MarkdownAttributeField;
|
|
85
|
+
"aglyn-plugin-settings-field": typeof PluginSettingsField;
|
|
86
|
+
"aglyn-property-binding-field": typeof PropertyBindingField;
|
|
87
|
+
select: import("@aglyn/shared-ui-jsx-forms").ExtendedMapperComponent;
|
|
88
|
+
"sub-form": import("@aglyn/shared-ui-jsx-forms").ExtendedMapperComponent;
|
|
89
|
+
switch: import("@aglyn/shared-ui-jsx-forms").ExtendedMapperComponent;
|
|
90
|
+
"text-field": import("@aglyn/shared-ui-jsx-forms").ExtendedMapperComponent;
|
|
91
|
+
textarea: import("@aglyn/shared-ui-jsx-forms").ExtendedMapperComponent;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* A number-typed field persists a NUMBER, not the text that was typed.
|
|
95
|
+
*
|
|
96
|
+
* Every control in this panel can only hand back a string, and for a prop
|
|
97
|
+
* the renderer reads as a number that changes what the value DOES: MUI
|
|
98
|
+
* renders `size: 24` as 24px and passes the string `'24'` through verbatim,
|
|
99
|
+
* where it is not CSS and the declaration is dropped — the icon silently
|
|
100
|
+
* goes back to its default size. Clearing the box to retype the same number
|
|
101
|
+
* is enough to do it.
|
|
102
|
+
*
|
|
103
|
+
* Gated on the field's declared `type: 'number'` rather than on the value's
|
|
104
|
+
* shape, which is how the styles panel decides ({@link numericTextValue}):
|
|
105
|
+
* every value there is CSS, while an attribute holds arbitrary authored
|
|
106
|
+
* content, and a Text element reading `2026` is text that must stay text.
|
|
107
|
+
*
|
|
108
|
+
* Implemented as final-form's `parse` rather than data-driven-forms'
|
|
109
|
+
* `dataType`, which converts the same way but ALSO attaches a pattern
|
|
110
|
+
* validator. These fields are token-capable, so a `{{var:id}}` binding —
|
|
111
|
+
* legitimate in a numeric prop — would make the form invalid, and this
|
|
112
|
+
* panel's autosave only commits while it is valid: every attribute on the
|
|
113
|
+
* element would stop saving, with nothing on screen to say so.
|
|
114
|
+
*/
|
|
115
|
+
export declare function withNumericValueParse<T extends Record<string, unknown>>(field: T): T;
|
|
116
|
+
/**
|
|
117
|
+
* The field, with its `resolveProps` handed the element it edits as a fourth
|
|
118
|
+
* argument (see {@link Aglyn.AttributeFieldContext}).
|
|
119
|
+
*
|
|
120
|
+
* data-driven-forms calls `resolveProps` with the field's value and the form's
|
|
121
|
+
* values, which are the element's own props. A warning about the element as a
|
|
122
|
+
* whole also needs what is inside it — a Link Container holding only an icon
|
|
123
|
+
* renders an unnamed link (AGL-2886) — and nothing else tells a field which
|
|
124
|
+
* element on the canvas it belongs to.
|
|
125
|
+
*
|
|
126
|
+
* The context is read when the field renders, not when this runs, so the
|
|
127
|
+
* lookup answers from the live canvas rather than from a copy taken when the
|
|
128
|
+
* element was selected. A field that declares no `resolveProps` is returned
|
|
129
|
+
* untouched.
|
|
130
|
+
*/
|
|
131
|
+
export declare function withAttributeFieldContext<T extends Record<string, unknown>>(field: T, context: Aglyn.AttributeFieldContext | undefined): T;
|
|
132
|
+
/**
|
|
133
|
+
* The switch's position as the page stores it: a real boolean, read with the
|
|
134
|
+
* spellings every Yes / no reader accepts, so a value stored as the text
|
|
135
|
+
* `'false'` or `'off'` shows off rather than on.
|
|
136
|
+
*
|
|
137
|
+
* Unset is not a position a switch has, and it is the one a page needs to hand
|
|
138
|
+
* the choice back to the default — so the field's clear button is the way
|
|
139
|
+
* there, and it removes the value rather than storing either answer.
|
|
140
|
+
*/
|
|
141
|
+
export declare function parseYesNoPropValue(value: unknown): boolean | undefined;
|
|
142
|
+
/**
|
|
143
|
+
* The path each icon picker's companion prop should hold once these values
|
|
144
|
+
* are saved: `iconId` → `iconPath`, `startIconId` → `startIconPath`
|
|
145
|
+
* (AGL-1212).
|
|
146
|
+
*
|
|
147
|
+
* The id stays the source of truth and the path travels with the document,
|
|
148
|
+
* because the catalog is ~2.9 MB, only picker surfaces load it, and a
|
|
149
|
+
* published page has to draw the icon without it.
|
|
150
|
+
*
|
|
151
|
+
* The lookup runs on every save of the panel, and the panel saves edits to
|
|
152
|
+
* every other attribute too — from the moment it opens, before the picker has
|
|
153
|
+
* finished loading the catalog (AGL-2879). So a miss is not evidence the icon
|
|
154
|
+
* has no path: for an id that did NOT change it keeps the path already
|
|
155
|
+
* stored. For a changed id the lookup decides, and a miss clears the path,
|
|
156
|
+
* because the old icon's path is never the new icon's.
|
|
157
|
+
*/
|
|
158
|
+
export declare function iconPathsForSave(attributes: readonly Aglyn.AglynAttributeSchema[] | undefined | null, values: Record<string, unknown>, stored: Record<string, unknown> | undefined | null): Record<string, string | undefined>;
|
|
159
|
+
/**
|
|
160
|
+
* An icon property's stored pick as the icon picker shows it: the icon's id,
|
|
161
|
+
* or `''` for nothing picked.
|
|
162
|
+
*/
|
|
163
|
+
export declare function formatIconPropValue(value: unknown): string;
|
|
164
|
+
/**
|
|
165
|
+
* The icon picker's choice as the instance stores it: the id AND its SVG path,
|
|
166
|
+
* or unset.
|
|
167
|
+
*
|
|
168
|
+
* The path is looked up here, at the moment of the pick, for the reason
|
|
169
|
+
* `handleElementSave` stores `iconPath` beside an Icon element's `iconId`
|
|
170
|
+
* (AGL-1212): a published page never loads the icon catalog, so an id alone
|
|
171
|
+
* draws the empty Icon placeholder. This is the one moment the catalog is
|
|
172
|
+
* certainly loaded — the picker needed it to offer the icon — and an
|
|
173
|
+
* untouched field is never parsed again, so no later edit can look the id up
|
|
174
|
+
* against a catalog that has not arrived.
|
|
175
|
+
*/
|
|
176
|
+
export declare function parseIconPropValue(value: unknown): Aglyn.ReusableComponentIcon | undefined;
|
|
177
|
+
/** Who a property belongs to, in the words its fields speak. */
|
|
178
|
+
export type PropertyOwnerNoun = 'component' | 'layout';
|
|
179
|
+
/** How {@link buildPropertyField} draws one property. */
|
|
180
|
+
export interface PropertyFieldOptions {
|
|
181
|
+
/** The form path the field saves to, e.g. `propValues.headline`. */
|
|
182
|
+
name: string;
|
|
183
|
+
/**
|
|
184
|
+
* `value` for a page setting the property, where an empty field means "use
|
|
185
|
+
* the default" and says so; `default` for the Properties dialog declaring
|
|
186
|
+
* that default, where it means "no default".
|
|
187
|
+
*/
|
|
188
|
+
role: 'value' | 'default';
|
|
189
|
+
/** Every property the owner declares, so a condition can read the others. */
|
|
190
|
+
declared?: readonly Aglyn.ReusableComponentProp[];
|
|
191
|
+
/** The form path a declared property's value sits at, by name. */
|
|
192
|
+
valuePath?: (propName: string) => string;
|
|
193
|
+
noun?: PropertyOwnerNoun;
|
|
194
|
+
/** Token-capable fields offer these in their `{}` menu. */
|
|
195
|
+
tokenOptions?: unknown;
|
|
196
|
+
tokenLabelContext?: unknown;
|
|
197
|
+
/** The site theme's scales, for the Theme scale and Theme preset kinds. */
|
|
198
|
+
themeScales?: Partial<Record<string, unknown>>;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* A property's condition as the form renderer evaluates one (AGL-2893): each
|
|
202
|
+
* rule reads the named property's field, and compares what that property is
|
|
203
|
+
* worth on the page — its own value, else its default — the way the published
|
|
204
|
+
* page compares it, so the field shows exactly where the value applies.
|
|
205
|
+
*
|
|
206
|
+
* The operators are data-driven-forms' own; each rule becomes a function `is`
|
|
207
|
+
* only so an unset field can be read as its default first.
|
|
208
|
+
*/
|
|
209
|
+
export declare function propertyFieldCondition(condition: Aglyn.ReusableComponentProp['condition'], declared: readonly Aglyn.ReusableComponentProp[], valuePath: (propName: string) => string): unknown;
|
|
210
|
+
/**
|
|
211
|
+
* One component or layout property as an Attributes field (AGL-1247,
|
|
212
|
+
* AGL-2893): the attribute schema field its kind names — a switch for a
|
|
213
|
+
* Yes / no, the icon picker for an Icon, the color picker for a Color — with
|
|
214
|
+
* the kind's options and settings, and the property's condition.
|
|
215
|
+
*
|
|
216
|
+
* The result is an attribute field like any coded component's, so it is
|
|
217
|
+
* finished by {@link resolveAttributeField} and drawn by
|
|
218
|
+
* `elementPropsComponentMapper`: the Properties dialog's Default, an
|
|
219
|
+
* instance's Attributes and a screen's layout values all edit a property with
|
|
220
|
+
* the control a coded component's attribute of that kind gets.
|
|
221
|
+
*/
|
|
222
|
+
export declare function buildPropertyField(prop: Aglyn.ReusableComponentProp, options: PropertyFieldOptions): Record<string, unknown>;
|
|
223
|
+
/**
|
|
224
|
+
* One Attributes field per prop a reusable component declares (AGL-1247),
|
|
225
|
+
* so the same hero can carry different copy on eleven pages instead of
|
|
226
|
+
* being copied onto each — each drawn by {@link buildPropertyField} and
|
|
227
|
+
* finished by {@link resolveAttributeField}, like the component's own
|
|
228
|
+
* attributes.
|
|
229
|
+
*
|
|
230
|
+
* Fields are named for the `propValues.<name>` path the graft reads, so the
|
|
231
|
+
* form round-trips them through final-form's nested-path handling with no
|
|
232
|
+
* flatten/unflatten step. A name that is not an identifier is skipped
|
|
233
|
+
* rather than rendered as a field that could not save.
|
|
234
|
+
*/
|
|
235
|
+
export declare function buildInstancePropFields(declared: Aglyn.ReusableComponentProp[] | undefined, tokenOptions?: unknown, tokenLabelContext?: unknown, context?: AttributeFieldResolveContext & {
|
|
236
|
+
themeScales?: Partial<Record<string, unknown>>;
|
|
237
|
+
}): Array<Record<string, unknown>>;
|
|
238
|
+
/**
|
|
239
|
+
* One field per declared property for a page setting their values, at the
|
|
240
|
+
* paths `pathOf` names — an instance's `propValues`, or a screen's values for
|
|
241
|
+
* its layout.
|
|
242
|
+
*/
|
|
243
|
+
export declare function buildPropertyValueFields(declared: readonly Aglyn.ReusableComponentProp[] | undefined, options: {
|
|
244
|
+
pathOf: (propName: string) => string;
|
|
245
|
+
noun: PropertyOwnerNoun;
|
|
246
|
+
context?: AttributeFieldResolveContext;
|
|
247
|
+
themeScales?: Partial<Record<string, unknown>>;
|
|
248
|
+
}): Array<Record<string, unknown>>;
|
|
249
|
+
/** What {@link resolveAttributeField} reads beyond the field itself. */
|
|
250
|
+
export interface AttributeFieldResolveContext {
|
|
251
|
+
/** The routing map and screen names, for Screen pickers. */
|
|
252
|
+
screens?: Aglyn.ScreenLinkContextValue['screens'];
|
|
253
|
+
labels?: Aglyn.ScreenLinkContextValue['labels'];
|
|
254
|
+
/** The values the form holds, so a picker can name what is stored. */
|
|
255
|
+
values?: Record<string, unknown> | null;
|
|
256
|
+
entityOptions?: Aglyn.EntityPickerContextValue;
|
|
257
|
+
/** The canvas's other elements, for element pickers. */
|
|
258
|
+
nodeOptions?: ReadonlyArray<{
|
|
259
|
+
value: string;
|
|
260
|
+
label: string;
|
|
261
|
+
}>;
|
|
262
|
+
/** The dataset of the nearest ancestor that chose one. */
|
|
263
|
+
ancestorDatasetId?: string;
|
|
264
|
+
/** Whether the edited element's text is formatted markup. */
|
|
265
|
+
hasFormattedText?: boolean;
|
|
266
|
+
insertOptions?: unknown;
|
|
267
|
+
tokenLabelContext?: unknown;
|
|
268
|
+
/**
|
|
269
|
+
* Bumped when the installed-plugin set changes, so a memo holding this
|
|
270
|
+
* context re-resolves the Plugin picker (AGL-1030).
|
|
271
|
+
*/
|
|
272
|
+
pluginInstallsVersion?: number;
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* An attribute field as the panel draws it: a declared kind that needs the
|
|
276
|
+
* site's data resolved into a dropdown the form renderer knows, a free-text
|
|
277
|
+
* field upgraded to the token editor, and every other field as declared.
|
|
278
|
+
*
|
|
279
|
+
* Pure, and the one place this happens — the element's own attributes, a
|
|
280
|
+
* component instance's properties and a screen's layout values all pass
|
|
281
|
+
* through it, so a kind cannot draw one way as an attribute and another as a
|
|
282
|
+
* property.
|
|
283
|
+
*/
|
|
284
|
+
export declare function resolveAttributeField<T extends Record<string, any>>(field: T, context?: AttributeFieldResolveContext): Record<string, any>;
|
|
285
|
+
/**
|
|
286
|
+
* What a "Browse media" pick should ALSO write for `alt` (AGL-1896).
|
|
287
|
+
*
|
|
288
|
+
* The DAM has stored per-asset alt text since AGL-173 and nothing ever read
|
|
289
|
+
* it back, so an author placing the same logo on eight pages typed its alt
|
|
290
|
+
* eight times — and a field that must be retyped per placement is a field
|
|
291
|
+
* that ships blank, on the customer's published site.
|
|
292
|
+
*
|
|
293
|
+
* Exported and pure so the decision is testable on real inputs; the handler
|
|
294
|
+
* that calls it is inside a component wired to the live canvas.
|
|
295
|
+
*
|
|
296
|
+
* Two narrowings, both deliberate:
|
|
297
|
+
*
|
|
298
|
+
* * **`src` only.** The Browse button is offered on every media-ish
|
|
299
|
+
* attribute — `poster`, `background`, `thumbnail`, `logo`. A poster
|
|
300
|
+
* frame's description is not the element's alt text, and no attribute
|
|
301
|
+
* pairing anywhere says which of those an `alt` belongs to. Guessing would
|
|
302
|
+
* put the wrong sentence on the element and look like a bug.
|
|
303
|
+
* * **Only where the SCHEMA declares an `alt`.** Read off the element's own
|
|
304
|
+
* attributes rather than assumed, so a component without one is never
|
|
305
|
+
* handed a prop its renderer would drop on the floor.
|
|
306
|
+
*
|
|
307
|
+
* Returns `{}` — not `{ alt: undefined }` — whenever nothing should change,
|
|
308
|
+
* because the caller spreads the result into a props object that
|
|
309
|
+
* `updateNodeProps` REPLACES wholesale. An `alt` key present with an
|
|
310
|
+
* undefined value is indistinguishable from an authored empty alt to
|
|
311
|
+
* everything downstream, and would silently clear one.
|
|
312
|
+
*/
|
|
313
|
+
export declare function inheritedAltPatch(options: {
|
|
314
|
+
/** The attribute the Browse button was pressed for. */
|
|
315
|
+
propName: string;
|
|
316
|
+
/** Whether this element's schema declares an `alt` attribute at all. */
|
|
317
|
+
declaresAlt: boolean;
|
|
318
|
+
/** The node's CURRENT props, snapshotted from the canvas. */
|
|
319
|
+
props?: Record<string, unknown> | null;
|
|
320
|
+
/** The chosen DAM asset's own stored alt. */
|
|
321
|
+
assetAlt?: unknown;
|
|
322
|
+
}): {
|
|
323
|
+
alt?: string;
|
|
324
|
+
};
|
|
325
|
+
/**
|
|
326
|
+
* The one kind of file a "Browse media" pick can place in an attribute, or
|
|
327
|
+
* `undefined` where the picker stays unnarrowed (AGL-2953).
|
|
328
|
+
*
|
|
329
|
+
* The Video element's `src` plays a film and its `poster` is the still shown
|
|
330
|
+
* before anyone presses play, so each opens a picker that lists only what it
|
|
331
|
+
* can use and uploads nothing else. Every other media attribute is left as it
|
|
332
|
+
* was, because nothing on it says what the element's renderer accepts.
|
|
333
|
+
*
|
|
334
|
+
* Exported and pure for the reason {@link inheritedAltPatch} is; keyed on the
|
|
335
|
+
* persisted component id, which is never renamed.
|
|
336
|
+
*/
|
|
337
|
+
export declare function browseMediaKind(options: {
|
|
338
|
+
/** The element being written to. */
|
|
339
|
+
componentId?: unknown;
|
|
340
|
+
/** The attribute the Browse button was pressed for. */
|
|
341
|
+
propName: string;
|
|
342
|
+
}): Aglyn.MediaPickerKind | undefined;
|
|
343
|
+
/**
|
|
344
|
+
* The two visibility fields every node inside a component definition gets
|
|
345
|
+
* (AGL-1314), so "this part is optional" is something an author declares by
|
|
346
|
+
* clicking rather than something the component hard-codes.
|
|
347
|
+
*
|
|
348
|
+
* Token-capable, because the value that decides is almost always the
|
|
349
|
+
* definition's own `{{prop.*}}`: `hideIf` takes a `boolean` prop ("Hide the
|
|
350
|
+
* mockup"), `hideUnless` takes the prop that would have supplied the
|
|
351
|
+
* content ("no link, no button" — AGL-1348).
|
|
352
|
+
*
|
|
353
|
+
* Offered ONLY where `{{prop.*}}` exists — inside a component editor,
|
|
354
|
+
* signalled by `BindingPickerContext.componentProps` exactly as the insert
|
|
355
|
+
* picker uses it. On an ordinary screen the directive is inert (the graft
|
|
356
|
+
* is the only thing that evaluates it), and a field that silently does
|
|
357
|
+
* nothing is worse than no field.
|
|
358
|
+
*/
|
|
359
|
+
export declare function buildVisibilityFields(tokenOptions?: unknown, tokenLabelContext?: unknown): Array<Record<string, unknown>>;
|
|
360
|
+
/**
|
|
361
|
+
* The animation fields every element gets (AGL-2486).
|
|
362
|
+
*
|
|
363
|
+
* Presets rather than a keyframes box, because the audience includes people
|
|
364
|
+
* who have never written CSS: an author picks "Slide up", "on scroll into
|
|
365
|
+
* view", and adjusts a few obvious knobs. The knobs named — duration,
|
|
366
|
+
* delay, easing — plus stagger, and this is that list and nothing more. There
|
|
367
|
+
* is deliberately no keyframe editor and no general trigger picker; the
|
|
368
|
+
* things that are NOT offered (the distance a slide travels, the difference
|
|
369
|
+
* between a transition and a keyframe run, arbitrary curves) are decided for
|
|
370
|
+
* the author, and an author who needs them has the sx tab.
|
|
371
|
+
*
|
|
372
|
+
* Easing is a named list, never a `cubic-bezier()` text box. That keeps the
|
|
373
|
+
* curve out of author free-text — the id becomes a class and the curve is
|
|
374
|
+
* looked up in the tenant's own stylesheet — so there is nothing here for the
|
|
375
|
+
* sx sanitizer to have to catch.
|
|
376
|
+
*
|
|
377
|
+
* "Stagger children" is the one control that changes WHAT animates rather
|
|
378
|
+
* than how: the element stops animating and its children animate in
|
|
379
|
+
* sequence instead. It reads as a switch rather than a separate "Stagger"
|
|
380
|
+
* preset because stagger is orthogonal to fade/slide/zoom — a "Stagger"
|
|
381
|
+
* preset would have had to answer "stagger which animation?".
|
|
382
|
+
*
|
|
383
|
+
* Offered on every element, unlike the visibility directives above, because an
|
|
384
|
+
* animation is meaningful on any node on any screen — there is no context in
|
|
385
|
+
* which the field would be inert.
|
|
386
|
+
*
|
|
387
|
+
* The "None" option carries a real value, never `''` (AGL-1451/AGL-1191): an
|
|
388
|
+
* empty value cannot persist, so an author who picked a preset could never
|
|
389
|
+
* turn it back off.
|
|
390
|
+
*
|
|
391
|
+
* The dependent fields are gated on the PRESET rather than on "not none", so
|
|
392
|
+
* an element that has never been animated shows one dropdown and nothing else.
|
|
393
|
+
* `is` takes the explicit list; a `notMatch` against `'none'` would be true for
|
|
394
|
+
* the undefined case too and would show all five fields on every element.
|
|
395
|
+
*/
|
|
396
|
+
export declare function buildAnimationFields(): Array<Record<string, unknown>>;
|
|
397
|
+
/**
|
|
398
|
+
* The Repeat fields every element gets (AGL-3111).
|
|
399
|
+
*
|
|
400
|
+
* Repeating used to be one component's feature: only the MUI Stack declared
|
|
401
|
+
* `repeatDataset`, so a card, an image or a placed component could not be
|
|
402
|
+
* data-driven at all. It is a node capability now, offered here the way
|
|
403
|
+
* visibility and animation are — and on a component instance too, which is the
|
|
404
|
+
* shape most authors reach for first.
|
|
405
|
+
*
|
|
406
|
+
* WHAT an element repeats over is not decided here. Each registered
|
|
407
|
+
* {@link RepeatSource} contributes its own key field under its own prop name,
|
|
408
|
+
* and the plugin that owns the rows registers it; this list names no kind of
|
|
409
|
+
* data. With nothing registered there is no Repeat section at all, which is
|
|
410
|
+
* correct rather than degraded: an editor with no source has nothing to repeat
|
|
411
|
+
* over.
|
|
412
|
+
*
|
|
413
|
+
* The bounds are shared by every source, because they are properties of the
|
|
414
|
+
* REPEAT and not of the rows: the composition applies the same filter, sort
|
|
415
|
+
* and limit whatever answered with the records. They are declared once, in
|
|
416
|
+
* core, as {@link REPEAT_NODE_CAPABILITY} — this panel draws them, and
|
|
417
|
+
* anything that has to describe what an author can build reads the same list.
|
|
418
|
+
* While the list lived here it was invisible to every other reader, and a
|
|
419
|
+
* reader that walked component schemas to find repeat found nothing at all.
|
|
420
|
+
*
|
|
421
|
+
* `hasChildren` decides whether the scope field is offered at all. An element
|
|
422
|
+
* with nothing inside it has only one possible reading — it repeats itself —
|
|
423
|
+
* and a control whose two options do the same thing is worse than no control.
|
|
424
|
+
*/
|
|
425
|
+
export declare function buildRepeatFields(options: {
|
|
426
|
+
sources: readonly RepeatSource[];
|
|
427
|
+
/** Whether the edited node holds a child list, which the scope field needs. */
|
|
428
|
+
hasChildren: boolean;
|
|
429
|
+
/** Finishes a key field that names an entity picker, as an attribute is. */
|
|
430
|
+
resolveKeyField: (field: Record<string, unknown>) => Record<string, unknown>;
|
|
431
|
+
}): Array<Record<string, unknown>>;
|
|
432
|
+
/**
|
|
433
|
+
* The list each entity picker DISPLAYS, keyed by the attribute type a
|
|
434
|
+
* component schema declares.
|
|
435
|
+
*
|
|
436
|
+
* One table rather than two switches, because the demand signal and the
|
|
437
|
+
* option list have to agree about which list a picker means. When they
|
|
438
|
+
* disagreed the failure was silent and total: the panel would open a
|
|
439
|
+
* listener on one collection and read its options out of another, and the
|
|
440
|
+
* dropdown stayed empty on a site full of data.
|
|
441
|
+
*
|
|
442
|
+
* `DATASET_FIELD_SELECT` is deliberately absent. Its options are the model
|
|
443
|
+
* fields of the dataset an ANCESTOR chose, so it needs the dataset list to
|
|
444
|
+
* resolve against but is not itself a picker OF datasets — it asks for the
|
|
445
|
+
* list below and renders its own options.
|
|
446
|
+
*/
|
|
447
|
+
export declare const ENTITY_PICKER_KINDS: Readonly<Partial<Record<Aglyn.FieldComponentType, Aglyn.EntityPickerKind>>>;
|
|
448
|
+
/**
|
|
449
|
+
* The label on an entity picker's empty first option.
|
|
450
|
+
*
|
|
451
|
+
* An empty dropdown and a broken dropdown look identical, and an author who
|
|
452
|
+
* cannot tell them apart goes looking for a form they already made. So the
|
|
453
|
+
* four reasons a picker has nothing say four different things, and only the
|
|
454
|
+
* settled one claims anything about the site.
|
|
455
|
+
*/
|
|
456
|
+
export declare function entityPickerPlaceholder(kind: Aglyn.EntityPickerKind, state: Aglyn.EntityListState, count: number): string;
|
|
457
|
+
/**
|
|
458
|
+
* What a picker owes the reader about the list it is showing.
|
|
459
|
+
*
|
|
460
|
+
* A browse window is a PAGE of the site's catalog, and a page that does not
|
|
461
|
+
* say so is the silent-truncation defect: "not in the picker" and "does not
|
|
462
|
+
* exist" are the same absence to look at, and only one of them is a fact
|
|
463
|
+
* about their site. The inbox's form filter carries the same sentence for the
|
|
464
|
+
* same reason.
|
|
465
|
+
*
|
|
466
|
+
* Two sentences, because the second half is only true for a kind whose
|
|
467
|
+
* documents carry the name-search keys. A picker that promised to search the
|
|
468
|
+
* whole catalog and then searched 25 rows would be a worse lie than saying
|
|
469
|
+
* nothing.
|
|
470
|
+
*/
|
|
471
|
+
export declare function entityPickerBrowseNotice(kind: Aglyn.EntityPickerKind, context: Aglyn.EntityPickerContextValue | undefined): string | undefined;
|
|
472
|
+
/**
|
|
473
|
+
* What the dropdown says when the reader's typing matches nothing it holds.
|
|
474
|
+
*
|
|
475
|
+
* On a truncated list that cannot be searched on the server, "no match" is a
|
|
476
|
+
* statement about the WINDOW and must not be read as one about the site —
|
|
477
|
+
* this is where an author concludes a form they already made does not exist
|
|
478
|
+
* and makes a second one.
|
|
479
|
+
*/
|
|
480
|
+
export declare function entityPickerNoMatchText(kind: Aglyn.EntityPickerKind, context: Aglyn.EntityPickerContextValue | undefined): string;
|
|
481
|
+
/**
|
|
482
|
+
* The extra option a picker needs when its stored value is not in the window.
|
|
483
|
+
*
|
|
484
|
+
* The counterpart to {@link Aglyn.unresolvedScreenOption}, and it exists for
|
|
485
|
+
* the same reason: a picker whose value matches no option renders BLANK, which
|
|
486
|
+
* reads as "nothing chosen" on an element that is bound. An author repairs
|
|
487
|
+
* that by choosing again — which is how a correct reference gets replaced with
|
|
488
|
+
* a different one.
|
|
489
|
+
*
|
|
490
|
+
* Returns the stored value UNCHANGED as the option's value. Naming a
|
|
491
|
+
* selection must never rewrite it.
|
|
492
|
+
*
|
|
493
|
+
* A value nothing has answered for yet shows as the raw id, NOT as a warning.
|
|
494
|
+
* Flashing "unavailable" over every live reference for the beat before the
|
|
495
|
+
* keyed read lands would teach authors to ignore the one warning that means
|
|
496
|
+
* something — the same call `unavailableScreenLabel` makes.
|
|
497
|
+
*
|
|
498
|
+
* The exception is a picker that has settled and has no way to look anything
|
|
499
|
+
* up. There is no answer coming, so the raw value is all there will ever be,
|
|
500
|
+
* and left unmarked it would read as a resolved name — which is exactly what
|
|
501
|
+
* a free-text caption stored where an id belongs looks like.
|
|
502
|
+
*/
|
|
503
|
+
export declare function entitySelectionOption(context: Aglyn.EntityPickerContextValue | undefined, kind: Aglyn.EntityPickerKind, value: unknown): {
|
|
504
|
+
value: string;
|
|
505
|
+
label: string;
|
|
506
|
+
} | undefined;
|
|
507
|
+
/**
|
|
508
|
+
* An entity picker rendered as the SELECT the form renderer knows how to
|
|
509
|
+
* draw, resolved against whatever the surface's picker context can offer.
|
|
510
|
+
*
|
|
511
|
+
* Three things this must not do, each of which renders as something other
|
|
512
|
+
* than a broken picker.
|
|
513
|
+
*
|
|
514
|
+
* Every option carries the entity's ID, never its label. The label is
|
|
515
|
+
* resolved fresh at edit time and a rename moves it; the id is the whole
|
|
516
|
+
* reference, and for a form it is the difference between one submission list
|
|
517
|
+
* and two (`docs/specs/reusable-forms.md` §2c).
|
|
518
|
+
*
|
|
519
|
+
* The field is decided by the attribute's own TYPE, not by whether a list
|
|
520
|
+
* happens to have arrived. Keying off the list meant a surface with no picker
|
|
521
|
+
* context dropped the attribute from the panel entirely — no control, no
|
|
522
|
+
* explanation, indistinguishable from a component that simply has no such
|
|
523
|
+
* setting. A picker with nothing to offer must still be a picker, and must
|
|
524
|
+
* say what is wrong.
|
|
525
|
+
*
|
|
526
|
+
* And the STORED VALUE is offered whether or not the browse window contains
|
|
527
|
+
* it, which is what lets that window be a console page rather than hundreds
|
|
528
|
+
* of documents. A picker that took its options and its current selection from
|
|
529
|
+
* one list needs the list wide enough to hold whatever an author picked last
|
|
530
|
+
* month, and past that width renders a bound element as unbound anyway. The
|
|
531
|
+
* selection is a keyed read; this is where its answer is offered.
|
|
532
|
+
*/
|
|
533
|
+
export declare function buildEntityPickerField<T extends Aglyn.AglynAttributeSchema>(field: T, kind: Aglyn.EntityPickerKind, context: Aglyn.EntityPickerContextValue | undefined, value?: unknown): T & {
|
|
534
|
+
noOptionsText: () => string;
|
|
535
|
+
options: {
|
|
536
|
+
value: string;
|
|
537
|
+
label: string;
|
|
538
|
+
}[];
|
|
539
|
+
helperText?: string;
|
|
540
|
+
onSearchInput?: (text: string, reason?: string) => void;
|
|
541
|
+
isSearchable: boolean;
|
|
542
|
+
onOpen?: () => void;
|
|
543
|
+
component: Aglyn.FieldComponentType;
|
|
544
|
+
};
|
|
545
|
+
/**
|
|
546
|
+
* Which entity lists a node's attributes will need (AGL-703).
|
|
547
|
+
*
|
|
548
|
+
* The provider that owns those lists reads them from Firestore, and it used
|
|
549
|
+
* to read all four the moment the besigner opened — up to 300 products, 200
|
|
550
|
+
* catalog collections, 200 categories and 200 datasets — for pickers most
|
|
551
|
+
* editing sessions never open. This is the demand signal that replaced that:
|
|
552
|
+
* a node whose schema declares the picker.
|
|
553
|
+
*
|
|
554
|
+
* `DATASET_FIELD_SELECT` asks for `datasets` and not for some list of its
|
|
555
|
+
* own, which is the one mapping worth stating: its options are the model
|
|
556
|
+
* fields of the dataset an ANCESTOR chose, so it cannot resolve one without
|
|
557
|
+
* the dataset list to resolve it against.
|
|
558
|
+
*
|
|
559
|
+
* Exported for the test that pins the mapping — a picker silently missing
|
|
560
|
+
* from {@link ENTITY_PICKER_KINDS} renders as a permanently empty dropdown,
|
|
561
|
+
* which looks exactly like a site with no products.
|
|
562
|
+
*/
|
|
563
|
+
export declare function entityKindsForAttributes(attributes: readonly Aglyn.AglynAttributeSchema[] | undefined): Aglyn.EntityPickerKind[];
|
|
564
|
+
export declare const ElementPropsForm: import("react").FunctionComponent<ElementPropsFormProps & import("react").RefAttributes<any>>;
|
|
565
|
+
export default ElementPropsForm;
|