@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,21 @@
|
|
|
1
|
+
import type * as Aglyn from '@aglyn/aglyn';
|
|
2
|
+
export interface ElementInteractionsFormProps {
|
|
3
|
+
node: Aglyn.NodeSchema<any>;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Interactions on the selected element, as its own panel tab.
|
|
7
|
+
*
|
|
8
|
+
* They used to sit at the bottom of Attributes, under every field the
|
|
9
|
+
* component declares — so on anything with more than a handful of attributes
|
|
10
|
+
* they were below the fold, and an author had no reason to believe the
|
|
11
|
+
* element had any. An interaction is not an attribute: it is a behaviour, it
|
|
12
|
+
* is authored in a dialog rather than a field, and it now lives with the
|
|
13
|
+
* canvas states and styles as a peer.
|
|
14
|
+
*
|
|
15
|
+
* The list, the trigger picker and the section experiment move verbatim; what
|
|
16
|
+
* changes is where they are.
|
|
17
|
+
*/
|
|
18
|
+
export declare const ElementInteractionsForm: ((props: ElementInteractionsFormProps) => import("react").JSX.Element) & {
|
|
19
|
+
displayName: string;
|
|
20
|
+
};
|
|
21
|
+
export default ElementInteractionsForm;
|
|
@@ -0,0 +1,199 @@
|
|
|
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
|
+
*/ 'use client';
|
|
17
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
18
|
+
import { HelpTip } from "@aglyn/shared-ui-jsx";
|
|
19
|
+
import { Button, FormControl, IconButton, MenuItem as MuiMenuItem, Stack, Switch, TextField, Typography } from "@mui/material";
|
|
20
|
+
import { observer } from "mobx-react-lite";
|
|
21
|
+
import { useContext } from "react";
|
|
22
|
+
import { InteractionsContext, nodeElementSelector } from "../contexts/interactions-context.js";
|
|
23
|
+
import { besignerDocsUrl } from "../utils/docs-help.js";
|
|
24
|
+
/**
|
|
25
|
+
* Interactions on the selected element, as its own panel tab.
|
|
26
|
+
*
|
|
27
|
+
* They used to sit at the bottom of Attributes, under every field the
|
|
28
|
+
* component declares — so on anything with more than a handful of attributes
|
|
29
|
+
* they were below the fold, and an author had no reason to believe the
|
|
30
|
+
* element had any. An interaction is not an attribute: it is a behaviour, it
|
|
31
|
+
* is authored in a dialog rather than a field, and it now lives with the
|
|
32
|
+
* canvas states and styles as a peer.
|
|
33
|
+
*
|
|
34
|
+
* The list, the trigger picker and the section experiment move verbatim; what
|
|
35
|
+
* changes is where they are.
|
|
36
|
+
*/ export const ElementInteractionsForm = observer((props)=>{
|
|
37
|
+
var _interactions_automations, _interactions_sectionExperiments, _nodeExperiment_name, _nodeExperiment_status;
|
|
38
|
+
const { node } = props;
|
|
39
|
+
const interactions = useContext(InteractionsContext);
|
|
40
|
+
const nodeSelector = (node == null ? void 0 : node.$id) ? nodeElementSelector(node.$id) : '';
|
|
41
|
+
const nodeAutomations = ((_interactions_automations = interactions.automations) != null ? _interactions_automations : []).filter((automation)=>automation.selector === nodeSelector);
|
|
42
|
+
const nodeExperiment = ((_interactions_sectionExperiments = interactions.sectionExperiments) != null ? _interactions_sectionExperiments : []).find((experiment)=>experiment.nodeId === (node == null ? void 0 : node.$id));
|
|
43
|
+
if (!interactions.onCreateInteraction || !(node == null ? void 0 : node.$id)) {
|
|
44
|
+
return /*#__PURE__*/ _jsx(Typography, {
|
|
45
|
+
variant: "body2",
|
|
46
|
+
color: "text.secondary",
|
|
47
|
+
sx: {
|
|
48
|
+
p: 2
|
|
49
|
+
},
|
|
50
|
+
children: 'Interactions are not available on this kind of document.'
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return /*#__PURE__*/ _jsx(Stack, {
|
|
54
|
+
sx: {
|
|
55
|
+
p: 2
|
|
56
|
+
},
|
|
57
|
+
children: /*#__PURE__*/ _jsxs(FormControl, {
|
|
58
|
+
margin: "none",
|
|
59
|
+
fullWidth: true,
|
|
60
|
+
children: [
|
|
61
|
+
/*#__PURE__*/ _jsxs(Typography, {
|
|
62
|
+
variant: "overline",
|
|
63
|
+
color: "text.secondary",
|
|
64
|
+
sx: {
|
|
65
|
+
mt: 2
|
|
66
|
+
},
|
|
67
|
+
children: [
|
|
68
|
+
'Interactions',
|
|
69
|
+
/*#__PURE__*/ _jsx(HelpTip, {
|
|
70
|
+
title: "Interactions",
|
|
71
|
+
excerpt: "Run an action when this element is clicked, hovered, or scrolled into view. Targets are picked by clicking them on the canvas.",
|
|
72
|
+
href: besignerDocsUrl('interactions', '#fluent-interactions'),
|
|
73
|
+
sx: {
|
|
74
|
+
ml: 0.25,
|
|
75
|
+
fontSize: '0.9em'
|
|
76
|
+
}
|
|
77
|
+
})
|
|
78
|
+
]
|
|
79
|
+
}),
|
|
80
|
+
nodeAutomations.map((automation)=>{
|
|
81
|
+
var _automation_name;
|
|
82
|
+
return /*#__PURE__*/ _jsxs(Stack, {
|
|
83
|
+
direction: "row",
|
|
84
|
+
spacing: 1,
|
|
85
|
+
sx: {
|
|
86
|
+
alignItems: 'center',
|
|
87
|
+
mb: 0.5
|
|
88
|
+
},
|
|
89
|
+
children: [
|
|
90
|
+
/*#__PURE__*/ _jsx(Typography, {
|
|
91
|
+
variant: "body2",
|
|
92
|
+
noWrap: true,
|
|
93
|
+
sx: {
|
|
94
|
+
flex: 1
|
|
95
|
+
},
|
|
96
|
+
children: (_automation_name = automation.name) != null ? _automation_name : automation.id
|
|
97
|
+
}),
|
|
98
|
+
/*#__PURE__*/ _jsx(Typography, {
|
|
99
|
+
variant: "caption",
|
|
100
|
+
color: "text.secondary",
|
|
101
|
+
children: automation.event
|
|
102
|
+
}),
|
|
103
|
+
interactions.onToggleInteraction ? /*#__PURE__*/ _jsx(Switch, {
|
|
104
|
+
size: "small",
|
|
105
|
+
checked: automation.enabled !== false,
|
|
106
|
+
onChange: (event)=>interactions.onToggleInteraction == null ? void 0 : interactions.onToggleInteraction.call(interactions, {
|
|
107
|
+
id: automation.id,
|
|
108
|
+
enabled: event.target.checked
|
|
109
|
+
}),
|
|
110
|
+
slotProps: {
|
|
111
|
+
input: {
|
|
112
|
+
'aria-label': 'Interaction enabled'
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}) : automation.enabled === false ? /*#__PURE__*/ _jsx(Typography, {
|
|
116
|
+
variant: "caption",
|
|
117
|
+
color: "text.secondary",
|
|
118
|
+
children: 'off'
|
|
119
|
+
}) : null,
|
|
120
|
+
interactions.onEditInteraction && (node == null ? void 0 : node.$id) ? /*#__PURE__*/ _jsx(IconButton, {
|
|
121
|
+
size: "small",
|
|
122
|
+
"aria-label": "Edit interaction",
|
|
123
|
+
onClick: ()=>interactions.onEditInteraction == null ? void 0 : interactions.onEditInteraction.call(interactions, {
|
|
124
|
+
id: automation.id,
|
|
125
|
+
nodeId: node.$id
|
|
126
|
+
}),
|
|
127
|
+
children: '✎'
|
|
128
|
+
}) : null,
|
|
129
|
+
interactions.onDeleteInteraction ? /*#__PURE__*/ _jsx(IconButton, {
|
|
130
|
+
size: "small",
|
|
131
|
+
"aria-label": "Remove interaction",
|
|
132
|
+
onClick: ()=>interactions.onDeleteInteraction == null ? void 0 : interactions.onDeleteInteraction.call(interactions, {
|
|
133
|
+
id: automation.id
|
|
134
|
+
}),
|
|
135
|
+
children: '✕'
|
|
136
|
+
}) : null
|
|
137
|
+
]
|
|
138
|
+
}, automation.id);
|
|
139
|
+
}),
|
|
140
|
+
/*#__PURE__*/ _jsxs(TextField, {
|
|
141
|
+
select: true,
|
|
142
|
+
size: "small",
|
|
143
|
+
label: "Add interaction",
|
|
144
|
+
value: "",
|
|
145
|
+
onChange: (event)=>{
|
|
146
|
+
const trigger = event.target.value;
|
|
147
|
+
if (trigger && (node == null ? void 0 : node.$id)) {
|
|
148
|
+
interactions.onCreateInteraction == null ? void 0 : interactions.onCreateInteraction.call(interactions, {
|
|
149
|
+
nodeId: node.$id,
|
|
150
|
+
event: trigger
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
children: [
|
|
155
|
+
/*#__PURE__*/ _jsx(MuiMenuItem, {
|
|
156
|
+
value: "elementClick",
|
|
157
|
+
children: 'When clicked…'
|
|
158
|
+
}),
|
|
159
|
+
/*#__PURE__*/ _jsx(MuiMenuItem, {
|
|
160
|
+
value: "elementHoverEnter",
|
|
161
|
+
children: 'When hovered…'
|
|
162
|
+
}),
|
|
163
|
+
/*#__PURE__*/ _jsx(MuiMenuItem, {
|
|
164
|
+
value: "elementHoverLeave",
|
|
165
|
+
children: 'When hover ends…'
|
|
166
|
+
}),
|
|
167
|
+
/*#__PURE__*/ _jsx(MuiMenuItem, {
|
|
168
|
+
value: "elementVisible",
|
|
169
|
+
children: 'When scrolled into view…'
|
|
170
|
+
})
|
|
171
|
+
]
|
|
172
|
+
}),
|
|
173
|
+
interactions.onCreateSectionExperiment ? nodeExperiment ? /*#__PURE__*/ _jsx(Typography, {
|
|
174
|
+
variant: "caption",
|
|
175
|
+
color: "primary",
|
|
176
|
+
sx: {
|
|
177
|
+
mt: 1
|
|
178
|
+
},
|
|
179
|
+
children: `A/B test: ${(_nodeExperiment_name = nodeExperiment.name) != null ? _nodeExperiment_name : nodeExperiment.id}` + ` (${(_nodeExperiment_status = nodeExperiment.status) != null ? _nodeExperiment_status : 'draft'})`
|
|
180
|
+
}) : /*#__PURE__*/ _jsx(Button, {
|
|
181
|
+
color: "primary",
|
|
182
|
+
size: "small",
|
|
183
|
+
sx: {
|
|
184
|
+
mt: 1,
|
|
185
|
+
alignSelf: 'flex-start'
|
|
186
|
+
},
|
|
187
|
+
onClick: ()=>(node == null ? void 0 : node.$id) && (interactions.onCreateSectionExperiment == null ? void 0 : interactions.onCreateSectionExperiment.call(interactions, {
|
|
188
|
+
nodeId: node.$id
|
|
189
|
+
})),
|
|
190
|
+
children: 'A/B test this section'
|
|
191
|
+
}) : null
|
|
192
|
+
]
|
|
193
|
+
})
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
ElementInteractionsForm.displayName = 'ElementInteractionsForm';
|
|
197
|
+
export default ElementInteractionsForm;
|
|
198
|
+
|
|
199
|
+
//# sourceMappingURL=element-interactions-form.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../libs/besigner/feature/designer/src/lib/components/element-interactions-form.component.tsx"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use client'\n\nimport type * as Aglyn from '@aglyn/aglyn'\nimport { HelpTip } from '@aglyn/shared-ui-jsx'\nimport {\n Button,\n FormControl,\n IconButton,\n MenuItem as MuiMenuItem,\n Stack,\n Switch,\n TextField,\n Typography,\n} from '@mui/material'\nimport { observer } from 'mobx-react-lite'\nimport { useContext } from 'react'\nimport {\n InteractionsContext,\n nodeElementSelector,\n type InteractionTriggerEvent,\n} from '../contexts/interactions-context'\nimport { besignerDocsUrl } from '../utils/docs-help'\n\nexport interface ElementInteractionsFormProps {\n node: Aglyn.NodeSchema<any>\n}\n\n/**\n * Interactions on the selected element, as its own panel tab.\n *\n * They used to sit at the bottom of Attributes, under every field the\n * component declares — so on anything with more than a handful of attributes\n * they were below the fold, and an author had no reason to believe the\n * element had any. An interaction is not an attribute: it is a behaviour, it\n * is authored in a dialog rather than a field, and it now lives with the\n * canvas states and styles as a peer.\n *\n * The list, the trigger picker and the section experiment move verbatim; what\n * changes is where they are.\n */\nexport const ElementInteractionsForm = observer(\n (props: ElementInteractionsFormProps) => {\n const { node } = props\n const interactions = useContext(InteractionsContext)\n const nodeSelector = node?.$id ? nodeElementSelector(node.$id) : ''\n const nodeAutomations = (interactions.automations ?? []).filter(\n (automation) => automation.selector === nodeSelector,\n )\n const nodeExperiment = (interactions.sectionExperiments ?? []).find(\n (experiment) => experiment.nodeId === node?.$id,\n )\n if (!interactions.onCreateInteraction || !node?.$id) {\n return (\n <Typography variant=\"body2\" color=\"text.secondary\" sx={{ p: 2 }}>\n {'Interactions are not available on this kind of document.'}\n </Typography>\n )\n }\n return (\n <Stack sx={{ p: 2 }}>\n <FormControl margin=\"none\" fullWidth>\n {/* Interactions (AGL-258): automations bound to this\n element's stable data-aglyn selector. */}\n <Typography\n variant=\"overline\"\n color=\"text.secondary\"\n sx={{ mt: 2 }}\n >\n {'Interactions'}\n {/* AGL-2167 — the trigger list says when, and\n nothing here says what an interaction can then\n do, or that the target is picked by clicking. */}\n <HelpTip\n title=\"Interactions\"\n excerpt=\"Run an action when this element is clicked, hovered, or scrolled into view. Targets are picked by clicking them on the canvas.\"\n href={besignerDocsUrl('interactions', '#fluent-interactions')}\n sx={{ ml: 0.25, fontSize: '0.9em' }}\n />\n </Typography>\n {nodeAutomations.map((automation) => (\n <Stack\n key={automation.id}\n direction=\"row\"\n spacing={1}\n sx={{ alignItems: 'center', mb: 0.5 }}\n >\n <Typography variant=\"body2\" noWrap sx={{ flex: 1 }}>\n {automation.name ?? automation.id}\n </Typography>\n <Typography variant=\"caption\" color=\"text.secondary\">\n {automation.event}\n </Typography>\n {/* Manage in place (wave v7): toggle + remove\n without leaving the canvas. */}\n {interactions.onToggleInteraction ? (\n <Switch\n size=\"small\"\n checked={automation.enabled !== false}\n onChange={(event) =>\n interactions.onToggleInteraction?.({\n id: automation.id,\n enabled: event.target.checked,\n })\n }\n slotProps={{\n input: { 'aria-label': 'Interaction enabled' },\n }}\n />\n ) : automation.enabled === false ? (\n <Typography\n variant=\"caption\"\n color=\"text.secondary\"\n >\n {'off'}\n </Typography>\n ) : null}\n {/* Fluent builder (AGL-319): edit reopens the\n inline dialog — no Automation detour. */}\n {interactions.onEditInteraction && node?.$id ? (\n <IconButton\n size=\"small\"\n aria-label=\"Edit interaction\"\n onClick={() =>\n interactions.onEditInteraction?.({\n id: automation.id,\n nodeId: node.$id as string,\n })\n }\n >\n {'✎'}\n </IconButton>\n ) : null}\n {interactions.onDeleteInteraction ? (\n <IconButton\n size=\"small\"\n aria-label=\"Remove interaction\"\n onClick={() =>\n interactions.onDeleteInteraction?.({\n id: automation.id,\n })\n }\n >\n {'✕'}\n </IconButton>\n ) : null}\n </Stack>\n ))}\n <TextField\n select\n size=\"small\"\n label=\"Add interaction\"\n value=\"\"\n onChange={(event) => {\n const trigger = event.target\n .value as InteractionTriggerEvent\n if (trigger && node?.$id) {\n interactions.onCreateInteraction?.({\n nodeId: node.$id,\n event: trigger,\n })\n }\n }}\n >\n <MuiMenuItem value=\"elementClick\">\n {'When clicked…'}\n </MuiMenuItem>\n {/* Hover choreography (AGL-562). */}\n <MuiMenuItem value=\"elementHoverEnter\">\n {'When hovered…'}\n </MuiMenuItem>\n <MuiMenuItem value=\"elementHoverLeave\">\n {'When hover ends…'}\n </MuiMenuItem>\n <MuiMenuItem value=\"elementVisible\">\n {'When scrolled into view…'}\n </MuiMenuItem>\n </TextField>\n {interactions.onCreateSectionExperiment ? (\n nodeExperiment ? (\n <Typography\n variant=\"caption\"\n color=\"primary\"\n sx={{ mt: 1 }}\n >\n {`A/B test: ${nodeExperiment.name ?? nodeExperiment.id}` +\n ` (${nodeExperiment.status ?? 'draft'})`}\n </Typography>\n ) : (\n <Button\n color=\"primary\"\n size=\"small\"\n sx={{ mt: 1, alignSelf: 'flex-start' }}\n onClick={() =>\n node?.$id &&\n interactions.onCreateSectionExperiment?.({\n nodeId: node.$id,\n })\n }\n >\n {'A/B test this section'}\n </Button>\n )\n ) : null}\n </FormControl>\n </Stack>\n )\n },\n)\nElementInteractionsForm.displayName = 'ElementInteractionsForm'\n\nexport default ElementInteractionsForm\n"],"names":["HelpTip","Button","FormControl","IconButton","MenuItem","MuiMenuItem","Stack","Switch","TextField","Typography","observer","useContext","InteractionsContext","nodeElementSelector","besignerDocsUrl","ElementInteractionsForm","props","interactions","nodeExperiment","node","nodeSelector","$id","nodeAutomations","automations","filter","automation","selector","sectionExperiments","find","experiment","nodeId","onCreateInteraction","variant","color","sx","p","margin","fullWidth","mt","title","excerpt","href","ml","fontSize","map","direction","spacing","alignItems","mb","noWrap","flex","name","id","event","onToggleInteraction","size","checked","enabled","onChange","target","slotProps","input","onEditInteraction","aria-label","onClick","onDeleteInteraction","select","label","value","trigger","onCreateSectionExperiment","status","alignSelf","displayName"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GACD;;AAGA,SAASA,OAAO,QAAQ,uBAAsB;AAC9C,SACEC,MAAM,EACNC,WAAW,EACXC,UAAU,EACVC,YAAYC,WAAW,EACvBC,KAAK,EACLC,MAAM,EACNC,SAAS,EACTC,UAAU,QACL,gBAAe;AACtB,SAASC,QAAQ,QAAQ,kBAAiB;AAC1C,SAASC,UAAU,QAAQ,QAAO;AAClC,SACEC,mBAAmB,EACnBC,mBAAmB,QAEd,sCAAkC;AACzC,SAASC,eAAe,QAAQ,wBAAoB;AAMpD;;;;;;;;;;;;CAYC,GACD,OAAO,MAAMC,0BAA0BL,SACrC,CAACM;QAI0BC,2BAGDA,kCAwIEC,sBACPA;IA/InB,MAAM,EAAEC,IAAI,EAAE,GAAGH;IACjB,MAAMC,eAAeN,WAAWC;IAChC,MAAMQ,eAAeD,CAAAA,wBAAAA,KAAME,GAAG,IAAGR,oBAAoBM,KAAKE,GAAG,IAAI;IACjE,MAAMC,kBAAkB,EAACL,4BAAAA,aAAaM,WAAW,YAAxBN,4BAA4B,EAAE,EAAEO,MAAM,CAC7D,CAACC,aAAeA,WAAWC,QAAQ,KAAKN;IAE1C,MAAMF,iBAAiB,EAACD,mCAAAA,aAAaU,kBAAkB,YAA/BV,mCAAmC,EAAE,EAAEW,IAAI,CACjE,CAACC,aAAeA,WAAWC,MAAM,MAAKX,wBAAAA,KAAME,GAAG;IAEjD,IAAI,CAACJ,aAAac,mBAAmB,IAAI,EAACZ,wBAAAA,KAAME,GAAG,GAAE;QACnD,qBACE,KAACZ;YAAWuB,SAAQ;YAAQC,OAAM;YAAiBC,IAAI;gBAAEC,GAAG;YAAE;sBAC3D;;IAGP;IACA,qBACE,KAAC7B;QAAM4B,IAAI;YAAEC,GAAG;QAAE;kBAChB,cAAA,MAACjC;YAAYkC,QAAO;YAAOC,SAAS;;8BAGlC,MAAC5B;oBACCuB,SAAQ;oBACRC,OAAM;oBACNC,IAAI;wBAAEI,IAAI;oBAAE;;wBAEX;sCAID,KAACtC;4BACCuC,OAAM;4BACNC,SAAQ;4BACRC,MAAM3B,gBAAgB,gBAAgB;4BACtCoB,IAAI;gCAAEQ,IAAI;gCAAMC,UAAU;4BAAQ;;;;gBAGrCrB,gBAAgBsB,GAAG,CAAC,CAACnB;wBAQfA;yCAPL,MAACnB;wBAECuC,WAAU;wBACVC,SAAS;wBACTZ,IAAI;4BAAEa,YAAY;4BAAUC,IAAI;wBAAI;;0CAEpC,KAACvC;gCAAWuB,SAAQ;gCAAQiB,MAAM;gCAACf,IAAI;oCAAEgB,MAAM;gCAAE;2CAC9CzB,mBAAAA,WAAW0B,IAAI,YAAf1B,mBAAmBA,WAAW2B,EAAE;;0CAEnC,KAAC3C;gCAAWuB,SAAQ;gCAAUC,OAAM;0CACjCR,WAAW4B,KAAK;;4BAIlBpC,aAAaqC,mBAAmB,iBAC/B,KAAC/C;gCACCgD,MAAK;gCACLC,SAAS/B,WAAWgC,OAAO,KAAK;gCAChCC,UAAU,CAACL,QACTpC,aAAaqC,mBAAmB,oBAAhCrC,aAAaqC,mBAAmB,MAAhCrC,cAAmC;wCACjCmC,IAAI3B,WAAW2B,EAAE;wCACjBK,SAASJ,MAAMM,MAAM,CAACH,OAAO;oCAC/B;gCAEFI,WAAW;oCACTC,OAAO;wCAAE,cAAc;oCAAsB;gCAC/C;iCAEApC,WAAWgC,OAAO,KAAK,sBACzB,KAAChD;gCACCuB,SAAQ;gCACRC,OAAM;0CAEL;iCAED;4BAGHhB,aAAa6C,iBAAiB,KAAI3C,wBAAAA,KAAME,GAAG,kBAC1C,KAAClB;gCACCoD,MAAK;gCACLQ,cAAW;gCACXC,SAAS,IACP/C,aAAa6C,iBAAiB,oBAA9B7C,aAAa6C,iBAAiB,MAA9B7C,cAAiC;wCAC/BmC,IAAI3B,WAAW2B,EAAE;wCACjBtB,QAAQX,KAAKE,GAAG;oCAClB;0CAGD;iCAED;4BACHJ,aAAagD,mBAAmB,iBAC/B,KAAC9D;gCACCoD,MAAK;gCACLQ,cAAW;gCACXC,SAAS,IACP/C,aAAagD,mBAAmB,oBAAhChD,aAAagD,mBAAmB,MAAhChD,cAAmC;wCACjCmC,IAAI3B,WAAW2B,EAAE;oCACnB;0CAGD;iCAED;;uBA/DC3B,WAAW2B,EAAE;;8BAkEtB,MAAC5C;oBACC0D,MAAM;oBACNX,MAAK;oBACLY,OAAM;oBACNC,OAAM;oBACNV,UAAU,CAACL;wBACT,MAAMgB,UAAUhB,MAAMM,MAAM,CACzBS,KAAK;wBACR,IAAIC,YAAWlD,wBAAAA,KAAME,GAAG,GAAE;4BACxBJ,aAAac,mBAAmB,oBAAhCd,aAAac,mBAAmB,MAAhCd,cAAmC;gCACjCa,QAAQX,KAAKE,GAAG;gCAChBgC,OAAOgB;4BACT;wBACF;oBACF;;sCAEA,KAAChE;4BAAY+D,OAAM;sCAChB;;sCAGH,KAAC/D;4BAAY+D,OAAM;sCAChB;;sCAEH,KAAC/D;4BAAY+D,OAAM;sCAChB;;sCAEH,KAAC/D;4BAAY+D,OAAM;sCAChB;;;;gBAGJnD,aAAaqD,yBAAyB,GACrCpD,+BACE,KAACT;oBACCuB,SAAQ;oBACRC,OAAM;oBACNC,IAAI;wBAAEI,IAAI;oBAAE;8BAEX,CAAC,UAAU,GAAEpB,uBAAAA,eAAeiC,IAAI,YAAnBjC,uBAAuBA,eAAekC,EAAE,EAAE,GACtD,CAAC,EAAE,GAAElC,yBAAAA,eAAeqD,MAAM,YAArBrD,yBAAyB,QAAQ,CAAC,CAAC;mCAG5C,KAACjB;oBACCgC,OAAM;oBACNsB,MAAK;oBACLrB,IAAI;wBAAEI,IAAI;wBAAGkC,WAAW;oBAAa;oBACrCR,SAAS,IACP7C,CAAAA,wBAAAA,KAAME,GAAG,MACTJ,aAAaqD,yBAAyB,oBAAtCrD,aAAaqD,yBAAyB,MAAtCrD,cAAyC;4BACvCa,QAAQX,KAAKE,GAAG;wBAClB;8BAGD;qBAGH;;;;AAIZ,GACD;AACDN,wBAAwB0D,WAAW,GAAG;AAEtC,eAAe1D,wBAAuB"}
|
|
@@ -0,0 +1,75 @@
|
|
|
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
|
+
export interface ElementPreviewProps {
|
|
18
|
+
/** The picker item — a preset in both drawers. */
|
|
19
|
+
node: any;
|
|
20
|
+
/** Bounded height of the preview box in CSS pixels. */
|
|
21
|
+
height?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Parents this element must sit inside, from the schema. An element that
|
|
24
|
+
* only renders in context frequently draws nothing on its own, and the
|
|
25
|
+
* note says which parent it is waiting for.
|
|
26
|
+
*/
|
|
27
|
+
requiredParents?: string[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Renders the preset's own nodes into an isolated stage, so a picker shows
|
|
31
|
+
* what an element LOOKS like and not only what it is called (AGL-2486).
|
|
32
|
+
*
|
|
33
|
+
* Three things this must never do, each of which is a real hazard rather than
|
|
34
|
+
* a hypothetical one:
|
|
35
|
+
*
|
|
36
|
+
* 1. **Touch `Aglyn.canvas`.** That singleton holds the document being
|
|
37
|
+
* edited; the console's Preview route calls `setNodes` on it, and doing
|
|
38
|
+
* the same here would blow away the user's screen to draw a thumbnail.
|
|
39
|
+
* Every preview gets its own `CanvasManager`, backed by the real app so
|
|
40
|
+
* component schemas still resolve — the pattern `useLayoutChromeCanvas`
|
|
41
|
+
* already uses for locked layout chrome.
|
|
42
|
+
* 2. **Mutate anything from inside.** The stage is inert: pointer events are
|
|
43
|
+
* off, the subtree is marked `inert` so nothing in it is focusable or
|
|
44
|
+
* clickable, links are told not to navigate, and `SiteContext.preview`
|
|
45
|
+
* turns every write into a synthetic 423.
|
|
46
|
+
* 3. **Escape its box.** The stage is scaled to fit and clipped, so a Footer
|
|
47
|
+
* cannot push Confirm off the dialog or stretch the docked column.
|
|
48
|
+
*
|
|
49
|
+
* Elements that cannot render standalone — a Cart, a Product grid, anything
|
|
50
|
+
* reading site data — are NOT special-cased here. Deliberately: they already
|
|
51
|
+
* render their own dashed "Cart — lines render here" placeholder when there
|
|
52
|
+
* is no `hostId`, and this preview does not supply one. That placeholder is
|
|
53
|
+
* the honest answer to "what will I get", and it means the picker needs no
|
|
54
|
+
* second list of which elements are self-contained: each element already
|
|
55
|
+
* says so itself.
|
|
56
|
+
*/
|
|
57
|
+
export declare const ElementPreview: ((props: ElementPreviewProps) => import("react").JSX.Element) & {
|
|
58
|
+
displayName: string;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Whether the rendered preview drew anything a person can actually see.
|
|
62
|
+
*
|
|
63
|
+
* Text, or a media element. A preset with no child nodes composes a real but
|
|
64
|
+
* EMPTY element — `Toolbar Content` is a 64px transparent flex row — which
|
|
65
|
+
* renders correctly and looks identical to the bug where nothing rendered at
|
|
66
|
+
* all. Since one of those has already shipped here, the frame says which it
|
|
67
|
+
* is rather than leaving a blank box to be read as broken.
|
|
68
|
+
*
|
|
69
|
+
* Deliberately conservative and slightly imprecise: a lone Divider draws a
|
|
70
|
+
* 1px rule and is reported as nothing to show. At preview scale that is very
|
|
71
|
+
* nearly true, and the alternative — probing computed backgrounds and
|
|
72
|
+
* borders — guesses far more than it settles.
|
|
73
|
+
*/
|
|
74
|
+
export declare function subtreeHasInk(host: HTMLElement | null): boolean;
|
|
75
|
+
export default ElementPreview;
|