@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,228 @@
|
|
|
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
|
+
*/ import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
17
|
+
/**
|
|
18
|
+
* Artboard device preview styling (AGL-581).
|
|
19
|
+
*
|
|
20
|
+
* CSS media queries always evaluate against the BROWSER viewport, so a
|
|
21
|
+
* narrowed artboard never triggered visibility bands
|
|
22
|
+
* (`@media (max-width:599.95px)` in node sx), breakpoint-scoped sx
|
|
23
|
+
* values (`{ xs, sm, md }`), or MUI's own breakpoint-derived component
|
|
24
|
+
* styles. When a device is selected in the toolbar the canvas now pins
|
|
25
|
+
* both mechanisms to the device's width:
|
|
26
|
+
*
|
|
27
|
+
* - `resolveSxForDeviceWidth` statically evaluates width-only `@media`
|
|
28
|
+
* keys in node sx: matching slices inline where the key sat (keeping
|
|
29
|
+
* cascade order), off-device slices drop. Applied per-Leaf through
|
|
30
|
+
* `LeafSxTransformContext` — canvas only.
|
|
31
|
+
* - `createDevicePinnedTheme` rebuilds the canvas theme's breakpoint
|
|
32
|
+
* helpers so every `theme.breakpoints.up/down/...` query is forced
|
|
33
|
+
* always-true or never-true for the device width. Responsive sx
|
|
34
|
+
* objects, Stack/Grid responsive props, and component styleOverrides
|
|
35
|
+
* all resolve through these helpers at render time.
|
|
36
|
+
*
|
|
37
|
+
* Fluid Responsive (the default) provides neither, so the canvas keeps
|
|
38
|
+
* today's real-viewport behavior; the published tenant never sees any
|
|
39
|
+
* of this.
|
|
40
|
+
*
|
|
41
|
+
* The width each device simulates is `devicePreviewWidth`, which lives in
|
|
42
|
+
* `@aglyn/besigner` with the device flags so that anything auditing a page
|
|
43
|
+
* at the switcher's widths reads the same numbers the canvas pins to.
|
|
44
|
+
*/ export { DEVICE_PREVIEW_XS_WIDTH, devicePreviewWidth } from "@aglyn/besigner";
|
|
45
|
+
const MEDIA_CONDITION_PATTERN = /^\(\s*(min-width|max-width|width)\s*:\s*(\d+(?:\.\d+)?)px\s*\)$/i;
|
|
46
|
+
const MEDIA_TYPE_PATTERN = /^(only\s+)?(all|screen)$/i;
|
|
47
|
+
function evaluateWidthMediaClause(clause, width) {
|
|
48
|
+
let matches = true;
|
|
49
|
+
for (const rawPart of clause.split(/\band\b/i)){
|
|
50
|
+
const part = rawPart.trim();
|
|
51
|
+
if (!part) return null;
|
|
52
|
+
if (MEDIA_TYPE_PATTERN.test(part)) continue;
|
|
53
|
+
const condition = MEDIA_CONDITION_PATTERN.exec(part);
|
|
54
|
+
if (!condition) return null;
|
|
55
|
+
const feature = condition[1].toLowerCase();
|
|
56
|
+
const value = parseFloat(condition[2]);
|
|
57
|
+
if (feature === 'min-width') matches = matches && width >= value;
|
|
58
|
+
else if (feature === 'max-width') matches = matches && width <= value;
|
|
59
|
+
else matches = matches && width === value;
|
|
60
|
+
}
|
|
61
|
+
return matches;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Statically evaluates a width-only `@media` query at the given
|
|
65
|
+
* viewport width. Returns null when the query involves anything beyond
|
|
66
|
+
* px width conditions and the all/screen media types (color-scheme,
|
|
67
|
+
* hover, em units…) — such queries must stay live in the browser.
|
|
68
|
+
* Comma-separated clauses OR together, per the media-query spec.
|
|
69
|
+
*/ export function evaluateWidthMediaQuery(query, width) {
|
|
70
|
+
const conditions = query.replace(/^@media/i, '').trim();
|
|
71
|
+
if (!conditions) return null;
|
|
72
|
+
let matches = false;
|
|
73
|
+
for (const clause of conditions.split(',')){
|
|
74
|
+
const verdict = evaluateWidthMediaClause(clause.trim(), width);
|
|
75
|
+
if (verdict === null) return null;
|
|
76
|
+
matches = matches || verdict;
|
|
77
|
+
}
|
|
78
|
+
return matches;
|
|
79
|
+
}
|
|
80
|
+
const isPlainObject = (value)=>typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
81
|
+
/**
|
|
82
|
+
* Returns a copy of an sx value with width-only `@media` slices
|
|
83
|
+
* resolved at the device width: matching slices inline exactly where
|
|
84
|
+
* the media key sat (later duplicate keys override earlier ones — the
|
|
85
|
+
* same order the CSS cascade gives equal-specificity rules), and
|
|
86
|
+
* off-device slices drop. Non-width media keys pass through untouched,
|
|
87
|
+
* as do arrays (per-entry) and theme callbacks (wrapped).
|
|
88
|
+
*/ export function resolveSxForDeviceWidth(sx, width) {
|
|
89
|
+
if (Array.isArray(sx)) {
|
|
90
|
+
return sx.map((entry)=>resolveSxForDeviceWidth(entry, width));
|
|
91
|
+
}
|
|
92
|
+
if (typeof sx === 'function') {
|
|
93
|
+
const callback = sx;
|
|
94
|
+
return (...args)=>resolveSxForDeviceWidth(callback(...args), width);
|
|
95
|
+
}
|
|
96
|
+
if (!isPlainObject(sx)) return sx;
|
|
97
|
+
const out = {};
|
|
98
|
+
for (const [key, value] of Object.entries(sx)){
|
|
99
|
+
if (key.trimStart().startsWith('@media')) {
|
|
100
|
+
const verdict = evaluateWidthMediaQuery(key, width);
|
|
101
|
+
if (verdict === null) {
|
|
102
|
+
// Not a pure width query — leave it to the real viewport.
|
|
103
|
+
out[key] = value;
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
if (!verdict) continue; // Off-device slice — dropped on canvas.
|
|
107
|
+
const slice = resolveSxForDeviceWidth(value, width);
|
|
108
|
+
if (!isPlainObject(slice)) continue;
|
|
109
|
+
for (const [sliceKey, sliceValue] of Object.entries(slice)){
|
|
110
|
+
out[sliceKey] = isPlainObject(out[sliceKey]) && isPlainObject(sliceValue) ? _extends({}, out[sliceKey], sliceValue) : sliceValue;
|
|
111
|
+
}
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
out[key] = isPlainObject(value) || Array.isArray(value) ? resolveSxForDeviceWidth(value, width) : value;
|
|
115
|
+
}
|
|
116
|
+
return out;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Returns breakpoint helpers whose queries are forced for the given
|
|
120
|
+
* width: helpers whose real media query would match a `width`-wide
|
|
121
|
+
* viewport emit an always-true query (a sub-pixel min-width), the rest
|
|
122
|
+
* emit a never-true one (an unreachable min-width). Each helper/key
|
|
123
|
+
* pair gets a distinct slot number so forced queries never collide
|
|
124
|
+
* into one style-object key. `values`/`keys`/`unit` stay real —
|
|
125
|
+
* components (e.g. MuiContainer) read them as pixel numbers.
|
|
126
|
+
*
|
|
127
|
+
* `internal_mediaKeys` is rebuilt from the pinned `up()` outputs so
|
|
128
|
+
* MUI's style engine pre-seeds them in ascending-breakpoint order —
|
|
129
|
+
* responsive sx slices keep mobile-first cascade order no matter what
|
|
130
|
+
* order they were authored in.
|
|
131
|
+
*/ export function pinBreakpointsToWidth(breakpoints, width) {
|
|
132
|
+
var _breakpoints_keys, _breakpoints_values, _breakpoints_unit, _breakpoints_step;
|
|
133
|
+
const keys = (_breakpoints_keys = breakpoints.keys) != null ? _breakpoints_keys : [
|
|
134
|
+
'xs',
|
|
135
|
+
'sm',
|
|
136
|
+
'md',
|
|
137
|
+
'lg',
|
|
138
|
+
'xl'
|
|
139
|
+
];
|
|
140
|
+
const values = (_breakpoints_values = breakpoints.values) != null ? _breakpoints_values : {};
|
|
141
|
+
const unit = (_breakpoints_unit = breakpoints.unit) != null ? _breakpoints_unit : 'px';
|
|
142
|
+
const step = (_breakpoints_step = breakpoints.step) != null ? _breakpoints_step : 5;
|
|
143
|
+
const valueOf = (key)=>{
|
|
144
|
+
const value = typeof key === 'number' ? key : values[key];
|
|
145
|
+
return typeof value === 'number' ? value : null;
|
|
146
|
+
};
|
|
147
|
+
const slotOf = (key)=>typeof key === 'number' ? 60 + Math.abs(Math.round(key)) % 900 : Math.max(0, keys.indexOf(key));
|
|
148
|
+
const force = (matches, slot)=>matches ? `@media (min-width:${slot / 1000}${unit})` : `@media (min-width:${100000 + slot}${unit})`;
|
|
149
|
+
// Match semantics mirror createBreakpoints exactly: up = min-width v,
|
|
150
|
+
// down = max-width v - step/100, between = both.
|
|
151
|
+
const upMatches = (key)=>{
|
|
152
|
+
const value = valueOf(key);
|
|
153
|
+
return value == null ? null : width >= value;
|
|
154
|
+
};
|
|
155
|
+
const downMatches = (key)=>{
|
|
156
|
+
const value = valueOf(key);
|
|
157
|
+
return value == null ? null : width <= value - step / 100;
|
|
158
|
+
};
|
|
159
|
+
const betweenMatches = (start, end)=>{
|
|
160
|
+
const lower = upMatches(start);
|
|
161
|
+
const upper = downMatches(end);
|
|
162
|
+
return lower == null || upper == null ? null : lower && upper;
|
|
163
|
+
};
|
|
164
|
+
const onlyMatches = (key)=>{
|
|
165
|
+
const index = typeof key === 'number' ? -1 : keys.indexOf(key);
|
|
166
|
+
return index !== -1 && index + 1 < keys.length ? betweenMatches(key, keys[index + 1]) : upMatches(key);
|
|
167
|
+
};
|
|
168
|
+
const pinned = _extends({}, breakpoints, {
|
|
169
|
+
up: (key)=>{
|
|
170
|
+
const matches = upMatches(key);
|
|
171
|
+
return matches == null ? breakpoints.up(key) : force(matches, slotOf(key));
|
|
172
|
+
},
|
|
173
|
+
down: (key)=>{
|
|
174
|
+
const matches = downMatches(key);
|
|
175
|
+
return matches == null ? breakpoints.down(key) : force(matches, 1000 + slotOf(key));
|
|
176
|
+
},
|
|
177
|
+
between: (start, end)=>{
|
|
178
|
+
const matches = betweenMatches(start, end);
|
|
179
|
+
return matches == null ? breakpoints.between(start, end) : force(matches, 2000 + slotOf(start) * 10 + slotOf(end));
|
|
180
|
+
},
|
|
181
|
+
only: (key)=>{
|
|
182
|
+
const matches = onlyMatches(key);
|
|
183
|
+
return matches == null ? breakpoints.only(key) : force(matches, 3000 + slotOf(key));
|
|
184
|
+
},
|
|
185
|
+
not: (key)=>{
|
|
186
|
+
const matches = onlyMatches(key);
|
|
187
|
+
return matches == null ? breakpoints.not(key) : force(!matches, 4000 + slotOf(key));
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
pinned.internal_mediaKeys = keys.map((key)=>pinned.up(key));
|
|
191
|
+
return pinned;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* A canvas-only clone of the site theme pinned to the device width:
|
|
195
|
+
* breakpoint helpers are forced (see {@link pinBreakpointsToWidth}) and
|
|
196
|
+
* the toolbar mixin — whose real viewport queries were baked in at
|
|
197
|
+
* createTheme time — is rebuilt against them. The dense xs-landscape
|
|
198
|
+
* (48px) toolbar rule is intentionally omitted: device previews
|
|
199
|
+
* simulate portrait-first widths, and that rule only exists for real
|
|
200
|
+
* rotated phones.
|
|
201
|
+
*/ export function createDevicePinnedTheme(theme, width) {
|
|
202
|
+
const breakpoints = pinBreakpointsToWidth(theme.breakpoints, width);
|
|
203
|
+
// Responsive font sizes (responsiveFontSizes) are baked into the
|
|
204
|
+
// typography VARIANTS as literal `@media (min-width:…px)` string keys
|
|
205
|
+
// at createTheme time — pinning the breakpoint helpers can't reach
|
|
206
|
+
// them, so they'd keep matching the real browser viewport (AGL-593).
|
|
207
|
+
// Flatten each variant object at the device width with the same
|
|
208
|
+
// resolver Leaf sx uses; scalars and functions (pxToRem, fontFamily)
|
|
209
|
+
// pass through untouched.
|
|
210
|
+
const typography = Object.fromEntries(Object.entries(theme.typography).map(([key, value])=>[
|
|
211
|
+
key,
|
|
212
|
+
value && typeof value === 'object' && !Array.isArray(value) ? resolveSxForDeviceWidth(value, width) : value
|
|
213
|
+
]));
|
|
214
|
+
return _extends({}, theme, {
|
|
215
|
+
breakpoints,
|
|
216
|
+
typography,
|
|
217
|
+
mixins: _extends({}, theme.mixins, {
|
|
218
|
+
toolbar: {
|
|
219
|
+
minHeight: 56,
|
|
220
|
+
[breakpoints.up('sm')]: {
|
|
221
|
+
minHeight: 64
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
})
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
//# sourceMappingURL=device-preview-styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../libs/besigner/feature/designer/src/lib/utils/device-preview-styles.ts"],"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\nimport type { Theme } from '@aglyn/shared-ui-theme'\n\n/**\n * Artboard device preview styling (AGL-581).\n *\n * CSS media queries always evaluate against the BROWSER viewport, so a\n * narrowed artboard never triggered visibility bands\n * (`@media (max-width:599.95px)` in node sx), breakpoint-scoped sx\n * values (`{ xs, sm, md }`), or MUI's own breakpoint-derived component\n * styles. When a device is selected in the toolbar the canvas now pins\n * both mechanisms to the device's width:\n *\n * - `resolveSxForDeviceWidth` statically evaluates width-only `@media`\n * keys in node sx: matching slices inline where the key sat (keeping\n * cascade order), off-device slices drop. Applied per-Leaf through\n * `LeafSxTransformContext` — canvas only.\n * - `createDevicePinnedTheme` rebuilds the canvas theme's breakpoint\n * helpers so every `theme.breakpoints.up/down/...` query is forced\n * always-true or never-true for the device width. Responsive sx\n * objects, Stack/Grid responsive props, and component styleOverrides\n * all resolve through these helpers at render time.\n *\n * Fluid Responsive (the default) provides neither, so the canvas keeps\n * today's real-viewport behavior; the published tenant never sees any\n * of this.\n *\n * The width each device simulates is `devicePreviewWidth`, which lives in\n * `@aglyn/besigner` with the device flags so that anything auditing a page\n * at the switcher's widths reads the same numbers the canvas pins to.\n */\n\nexport { DEVICE_PREVIEW_XS_WIDTH, devicePreviewWidth } from '@aglyn/besigner'\n\nconst MEDIA_CONDITION_PATTERN =\n /^\\(\\s*(min-width|max-width|width)\\s*:\\s*(\\d+(?:\\.\\d+)?)px\\s*\\)$/i\n\nconst MEDIA_TYPE_PATTERN = /^(only\\s+)?(all|screen)$/i\n\nfunction evaluateWidthMediaClause(\n clause: string,\n width: number,\n): boolean | null {\n let matches = true\n for (const rawPart of clause.split(/\\band\\b/i)) {\n const part = rawPart.trim()\n if (!part) return null\n if (MEDIA_TYPE_PATTERN.test(part)) continue\n const condition = MEDIA_CONDITION_PATTERN.exec(part)\n if (!condition) return null\n const feature = condition[1].toLowerCase()\n const value = parseFloat(condition[2])\n if (feature === 'min-width') matches = matches && width >= value\n else if (feature === 'max-width') matches = matches && width <= value\n else matches = matches && width === value\n }\n return matches\n}\n\n/**\n * Statically evaluates a width-only `@media` query at the given\n * viewport width. Returns null when the query involves anything beyond\n * px width conditions and the all/screen media types (color-scheme,\n * hover, em units…) — such queries must stay live in the browser.\n * Comma-separated clauses OR together, per the media-query spec.\n */\nexport function evaluateWidthMediaQuery(\n query: string,\n width: number,\n): boolean | null {\n const conditions = query.replace(/^@media/i, '').trim()\n if (!conditions) return null\n let matches = false\n for (const clause of conditions.split(',')) {\n const verdict = evaluateWidthMediaClause(clause.trim(), width)\n if (verdict === null) return null\n matches = matches || verdict\n }\n return matches\n}\n\nconst isPlainObject = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value)\n\n/**\n * Returns a copy of an sx value with width-only `@media` slices\n * resolved at the device width: matching slices inline exactly where\n * the media key sat (later duplicate keys override earlier ones — the\n * same order the CSS cascade gives equal-specificity rules), and\n * off-device slices drop. Non-width media keys pass through untouched,\n * as do arrays (per-entry) and theme callbacks (wrapped).\n */\nexport function resolveSxForDeviceWidth<T>(sx: T, width: number): T {\n if (Array.isArray(sx)) {\n return sx.map((entry) => resolveSxForDeviceWidth(entry, width)) as T\n }\n if (typeof sx === 'function') {\n const callback = sx as (...args: unknown[]) => unknown\n return ((...args: unknown[]) =>\n resolveSxForDeviceWidth(callback(...args), width)) as T\n }\n if (!isPlainObject(sx)) return sx\n\n const out: Record<string, unknown> = {}\n for (const [key, value] of Object.entries(sx)) {\n if (key.trimStart().startsWith('@media')) {\n const verdict = evaluateWidthMediaQuery(key, width)\n if (verdict === null) {\n // Not a pure width query — leave it to the real viewport.\n out[key] = value\n continue\n }\n if (!verdict) continue // Off-device slice — dropped on canvas.\n const slice = resolveSxForDeviceWidth(value, width)\n if (!isPlainObject(slice)) continue\n for (const [sliceKey, sliceValue] of Object.entries(slice)) {\n out[sliceKey] =\n isPlainObject(out[sliceKey]) && isPlainObject(sliceValue)\n ? { ...(out[sliceKey] as object), ...sliceValue }\n : sliceValue\n }\n continue\n }\n out[key] =\n isPlainObject(value) || Array.isArray(value)\n ? resolveSxForDeviceWidth(value, width)\n : value\n }\n return out as T\n}\n\ntype ThemeBreakpoints = Theme['breakpoints']\ntype BreakpointArg = string | number\n\n/**\n * Returns breakpoint helpers whose queries are forced for the given\n * width: helpers whose real media query would match a `width`-wide\n * viewport emit an always-true query (a sub-pixel min-width), the rest\n * emit a never-true one (an unreachable min-width). Each helper/key\n * pair gets a distinct slot number so forced queries never collide\n * into one style-object key. `values`/`keys`/`unit` stay real —\n * components (e.g. MuiContainer) read them as pixel numbers.\n *\n * `internal_mediaKeys` is rebuilt from the pinned `up()` outputs so\n * MUI's style engine pre-seeds them in ascending-breakpoint order —\n * responsive sx slices keep mobile-first cascade order no matter what\n * order they were authored in.\n */\nexport function pinBreakpointsToWidth(\n breakpoints: ThemeBreakpoints,\n width: number,\n): ThemeBreakpoints {\n const keys: readonly string[] = breakpoints.keys ?? [\n 'xs',\n 'sm',\n 'md',\n 'lg',\n 'xl',\n ]\n const values = (breakpoints.values ?? {}) as Record<string, number>\n const unit = (breakpoints as { unit?: string }).unit ?? 'px'\n const step = (breakpoints as { step?: number }).step ?? 5\n\n const valueOf = (key: BreakpointArg): number | null => {\n const value = typeof key === 'number' ? key : values[key]\n return typeof value === 'number' ? value : null\n }\n const slotOf = (key: BreakpointArg): number =>\n typeof key === 'number'\n ? 60 + (Math.abs(Math.round(key)) % 900)\n : Math.max(0, keys.indexOf(key))\n const force = (matches: boolean, slot: number): string =>\n matches\n ? `@media (min-width:${slot / 1000}${unit})`\n : `@media (min-width:${100000 + slot}${unit})`\n\n // Match semantics mirror createBreakpoints exactly: up = min-width v,\n // down = max-width v - step/100, between = both.\n const upMatches = (key: BreakpointArg): boolean | null => {\n const value = valueOf(key)\n return value == null ? null : width >= value\n }\n const downMatches = (key: BreakpointArg): boolean | null => {\n const value = valueOf(key)\n return value == null ? null : width <= value - step / 100\n }\n const betweenMatches = (\n start: BreakpointArg,\n end: BreakpointArg,\n ): boolean | null => {\n const lower = upMatches(start)\n const upper = downMatches(end)\n return lower == null || upper == null ? null : lower && upper\n }\n const onlyMatches = (key: BreakpointArg): boolean | null => {\n const index = typeof key === 'number' ? -1 : keys.indexOf(key)\n return index !== -1 && index + 1 < keys.length\n ? betweenMatches(key, keys[index + 1])\n : upMatches(key)\n }\n\n const pinned: ThemeBreakpoints = {\n ...breakpoints,\n up: (key) => {\n const matches = upMatches(key)\n return matches == null\n ? breakpoints.up(key)\n : force(matches, slotOf(key))\n },\n down: (key) => {\n const matches = downMatches(key)\n return matches == null\n ? breakpoints.down(key)\n : force(matches, 1000 + slotOf(key))\n },\n between: (start, end) => {\n const matches = betweenMatches(start, end)\n return matches == null\n ? breakpoints.between(start, end)\n : force(matches, 2000 + slotOf(start) * 10 + slotOf(end))\n },\n only: (key) => {\n const matches = onlyMatches(key)\n return matches == null\n ? breakpoints.only(key)\n : force(matches, 3000 + slotOf(key))\n },\n not: (key) => {\n const matches = onlyMatches(key)\n return matches == null\n ? breakpoints.not(key)\n : force(!matches, 4000 + slotOf(key))\n },\n }\n ;(pinned as { internal_mediaKeys?: string[] }).internal_mediaKeys = keys.map(\n (key) => pinned.up(key as Parameters<ThemeBreakpoints['up']>[0]),\n )\n return pinned\n}\n\n/**\n * A canvas-only clone of the site theme pinned to the device width:\n * breakpoint helpers are forced (see {@link pinBreakpointsToWidth}) and\n * the toolbar mixin — whose real viewport queries were baked in at\n * createTheme time — is rebuilt against them. The dense xs-landscape\n * (48px) toolbar rule is intentionally omitted: device previews\n * simulate portrait-first widths, and that rule only exists for real\n * rotated phones.\n */\nexport function createDevicePinnedTheme(theme: Theme, width: number): Theme {\n const breakpoints = pinBreakpointsToWidth(theme.breakpoints, width)\n // Responsive font sizes (responsiveFontSizes) are baked into the\n // typography VARIANTS as literal `@media (min-width:…px)` string keys\n // at createTheme time — pinning the breakpoint helpers can't reach\n // them, so they'd keep matching the real browser viewport (AGL-593).\n // Flatten each variant object at the device width with the same\n // resolver Leaf sx uses; scalars and functions (pxToRem, fontFamily)\n // pass through untouched.\n const typography = Object.fromEntries(\n Object.entries(theme.typography as unknown as Record<string, unknown>).map(\n ([key, value]) => [\n key,\n value && typeof value === 'object' && !Array.isArray(value)\n ? resolveSxForDeviceWidth(value, width)\n : value,\n ],\n ),\n ) as unknown as Theme['typography']\n return {\n ...theme,\n breakpoints,\n typography,\n mixins: {\n ...theme.mixins,\n toolbar: {\n minHeight: 56,\n [breakpoints.up('sm')]: { minHeight: 64 },\n },\n },\n }\n}\n"],"names":["DEVICE_PREVIEW_XS_WIDTH","devicePreviewWidth","MEDIA_CONDITION_PATTERN","MEDIA_TYPE_PATTERN","evaluateWidthMediaClause","clause","width","matches","rawPart","split","part","trim","test","condition","exec","feature","toLowerCase","value","parseFloat","evaluateWidthMediaQuery","query","conditions","replace","verdict","isPlainObject","Array","isArray","resolveSxForDeviceWidth","sx","map","entry","callback","args","out","key","Object","entries","trimStart","startsWith","slice","sliceKey","sliceValue","pinBreakpointsToWidth","breakpoints","keys","values","unit","step","valueOf","slotOf","Math","abs","round","max","indexOf","force","slot","upMatches","downMatches","betweenMatches","start","end","lower","upper","onlyMatches","index","length","pinned","up","down","between","only","not","internal_mediaKeys","createDevicePinnedTheme","theme","typography","fromEntries","mixins","toolbar","minHeight"],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
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 { type BesignerDocsAnchor, type BesignerDocsKey } from './docs-help.generated';
|
|
18
|
+
export { BESIGNER_DOCS, type BesignerDocsAnchor, type BesignerDocsKey, } from './docs-help.generated';
|
|
19
|
+
/** Absolute docs URL for a besigner docs page, with an optional heading anchor
|
|
20
|
+
* constrained to that page's real headings (e.g.
|
|
21
|
+
* `besignerDocsUrl('responsiveStyling', '#box-stylers')`). */
|
|
22
|
+
export declare function besignerDocsUrl<K extends BesignerDocsKey>(page: K, anchor?: BesignerDocsAnchor<K>): string;
|
|
@@ -0,0 +1,47 @@
|
|
|
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 declare const BESIGNER_DOCS: {
|
|
18
|
+
readonly besigner: "/building-sites/besigner/overview";
|
|
19
|
+
readonly bindings: "/building-sites/bindings/overview";
|
|
20
|
+
readonly dragDropHierarchy: "/building-sites/besigner/drag-drop-hierarchy";
|
|
21
|
+
readonly elementCatalog: "/building-sites/besigner/element-catalog";
|
|
22
|
+
readonly interactions: "/building-sites/besigner/interactions-and-custom-html";
|
|
23
|
+
readonly layouts: "/building-sites/screens-and-layouts/layouts";
|
|
24
|
+
readonly repeat: "/building-sites/besigner/repeat";
|
|
25
|
+
readonly responsiveStyling: "/building-sites/besigner/responsive-styling";
|
|
26
|
+
readonly reusableComponents: "/building-sites/besigner/reusable-components";
|
|
27
|
+
readonly seo: "/building-sites/seo/overview";
|
|
28
|
+
readonly textEditing: "/building-sites/besigner/text-editing";
|
|
29
|
+
};
|
|
30
|
+
export type BesignerDocsKey = keyof typeof BESIGNER_DOCS;
|
|
31
|
+
export declare const BESIGNER_DOCS_ANCHORS: {
|
|
32
|
+
readonly besigner: readonly ["#preview-vs-canvas", "#what-you-can-do", "#the-canvas", "#hierarchy-panel", "#the-inspector", "#inline-and-rich-text", "#reusable-components", "#editing-together", "#ai-in-the-canvas", "#related"];
|
|
33
|
+
readonly bindings: readonly ["#binding-tokens", "#rename-safe-id-tokens", "#insert-a-variable", "#token-pills", "#in-the-canvas-text-editor", "#site-details", "#typed-variables", "#no-code-functions", "#parameters-a-visitor-can-answer", "#a-calculator-you-lay-out", "#where-used--safety", "#workflows", "#related"];
|
|
34
|
+
readonly dragDropHierarchy: readonly ["#where-you-can-drag", "#what-a-drag-does", "#drop-zones-edges-vs-center", "#containers-vs-leaf-elements", "#containers-accept-children", "#leaf-elements-dont--dropping-on-one-makes-a-sibling", "#adding-a-new-element", "#when-a-drop-is-rejected", "#moving-an-element-without-dragging", "#multi-drag", "#tips", "#related"];
|
|
35
|
+
readonly elementCatalog: readonly ["#finding-an-element", "#element-search", "#element-detail", "#layout", "#the-pages-main-landmark", "#every-container-can-be-a-semantic-element", "#which-link-groups-want-to-be-a-nav", "#header-and-footer-for-your-site-chrome", "#grid", "#surface", "#accordion", "#navigation", "#where-a-link-opens", "#linking-to-a-collection-listing", "#link-container", "#tabs", "#tabs-that-go-to-another-screen", "#pagination", "#text", "#data-display", "#media", "#image-list", "#forms-input-commerce-members", "#related"];
|
|
36
|
+
readonly interactions: readonly ["#fluent-interactions", "#interactions-belong-to-the-page-they-are-on", "#plan-availability", "#pick-the-target-by-clicking", "#interaction-cookbook", "#scroll-to-element-step", "#play-video-step", "#analytics-event-step", "#analytics-event-name", "#analytics-event-parameters", "#analytics-event-delivery", "#custom-html-block", "#related"];
|
|
37
|
+
readonly layouts: readonly ["#what-a-layout-is", "#nested-layouts", "#layout-properties", "#duplicate", "#generate-a-layout-with-aglyn-ai", "#used-by", "#layouts-vs-reusable-components", "#related"];
|
|
38
|
+
readonly repeat: readonly ["#turn-it-on", "#what-repeats-the-element-or-whats-inside-it", "#fill-each-copy-in", "#see-the-copies-while-you-design", "#bound-what-renders", "#the-hundred-record-ceiling", "#what-you-cant-do", "#when-a-dataset-goes-away", "#related"];
|
|
39
|
+
readonly responsiveStyling: readonly ["#style-per-breakpoint", "#mute-a-style", "#interaction-states", "#you-can-see-the-state-while-you-style-it", "#fields-you-dont-touch-keep-inheriting", "#states-and-breakpoints-combine", "#focus-state", "#box-stylers", "#spacing-side-names", "#spacing-units", "#spacing-steps", "#spacing-custom-amounts", "#unit-px", "#unit-rem", "#unit-em", "#unit-percent", "#unit-ch", "#unit-viewport", "#unit-small-viewport", "#style-groups", "#borders-without-css", "#picking-a-font", "#gradient-backgrounds", "#visibility-per-device-band", "#scheme-scoped-colors", "#custom-classes", "#custom-css-sx", "#semantic-sections--theme-mode", "#edit-json-for-one-element"];
|
|
40
|
+
readonly reusableComponents: readonly ["#promote", "#insert-instances", "#properties", "#declare-them", "#make-a-property-conditional", "#use-them", "#save-then-publish", "#fill-them-in-per-page", "#restyle-one-instance", "#override-an-attribute-on-one-instance", "#retrofit-duplicated-sections", "#detach", "#nesting", "#used-by", "#manage", "#duplicate", "#copy--paste-vs-reusable-components", "#tips", "#related"];
|
|
41
|
+
readonly seo: readonly ["#per-screen-seo", "#how-a-page-title-is-built", "#variables-so-a-title-is-not-a-copy-of-your-site-name", "#site-wide-defaults", "#what-language-your-site-says-it-is-in", "#search-engine-visibility", "#the-whole-site", "#a-single-page", "#sitemap--robots", "#one-index-one-file-per-section", "#social-cards", "#what-each-kind-of-page-emits", "#structured-data", "#ai-agents", "#markdown-for-any-page", "#llmstxt", "#openapijson", "#well-knownapi-catalog", "#crawler-access", "#analytics-integration", "#related"];
|
|
42
|
+
readonly textEditing: readonly ["#edit-inline", "#committing", "#inline-toolbar", "#rich-text", "#the-text-attribute", "#text-field-read-only", "#remove-formatting", "#line-breaks", "#bindings-in-text", "#limits", "#wrapped-outlines", "#related"];
|
|
43
|
+
};
|
|
44
|
+
type BesignerAnchorMap = typeof BESIGNER_DOCS_ANCHORS;
|
|
45
|
+
/** Valid heading anchors for a besigner docs page (`never` when none). */
|
|
46
|
+
export type BesignerDocsAnchor<K extends BesignerDocsKey> = K extends keyof BesignerAnchorMap ? BesignerAnchorMap[K][number] : never;
|
|
47
|
+
export {};
|
|
@@ -0,0 +1,229 @@
|
|
|
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
|
+
*/ // GENERATED FILE — do not edit. Regenerate with:
|
|
17
|
+
// node tools/scripts/generate-docs-help.mjs
|
|
18
|
+
// Source of truth: apps/docs/docs frontmatter + headings (AGL-602).
|
|
19
|
+
// The besigner designer lib can't import the console constants, so it carries
|
|
20
|
+
// its own generated subset of the docs help registry.
|
|
21
|
+
export const BESIGNER_DOCS = {
|
|
22
|
+
besigner: '/building-sites/besigner/overview',
|
|
23
|
+
bindings: '/building-sites/bindings/overview',
|
|
24
|
+
dragDropHierarchy: '/building-sites/besigner/drag-drop-hierarchy',
|
|
25
|
+
elementCatalog: '/building-sites/besigner/element-catalog',
|
|
26
|
+
interactions: '/building-sites/besigner/interactions-and-custom-html',
|
|
27
|
+
layouts: '/building-sites/screens-and-layouts/layouts',
|
|
28
|
+
repeat: '/building-sites/besigner/repeat',
|
|
29
|
+
responsiveStyling: '/building-sites/besigner/responsive-styling',
|
|
30
|
+
reusableComponents: '/building-sites/besigner/reusable-components',
|
|
31
|
+
seo: '/building-sites/seo/overview',
|
|
32
|
+
textEditing: '/building-sites/besigner/text-editing'
|
|
33
|
+
};
|
|
34
|
+
export const BESIGNER_DOCS_ANCHORS = {
|
|
35
|
+
besigner: [
|
|
36
|
+
'#preview-vs-canvas',
|
|
37
|
+
'#what-you-can-do',
|
|
38
|
+
'#the-canvas',
|
|
39
|
+
'#hierarchy-panel',
|
|
40
|
+
'#the-inspector',
|
|
41
|
+
'#inline-and-rich-text',
|
|
42
|
+
'#reusable-components',
|
|
43
|
+
'#editing-together',
|
|
44
|
+
'#ai-in-the-canvas',
|
|
45
|
+
'#related'
|
|
46
|
+
],
|
|
47
|
+
bindings: [
|
|
48
|
+
'#binding-tokens',
|
|
49
|
+
'#rename-safe-id-tokens',
|
|
50
|
+
'#insert-a-variable',
|
|
51
|
+
'#token-pills',
|
|
52
|
+
'#in-the-canvas-text-editor',
|
|
53
|
+
'#site-details',
|
|
54
|
+
'#typed-variables',
|
|
55
|
+
'#no-code-functions',
|
|
56
|
+
'#parameters-a-visitor-can-answer',
|
|
57
|
+
'#a-calculator-you-lay-out',
|
|
58
|
+
'#where-used--safety',
|
|
59
|
+
'#workflows',
|
|
60
|
+
'#related'
|
|
61
|
+
],
|
|
62
|
+
dragDropHierarchy: [
|
|
63
|
+
'#where-you-can-drag',
|
|
64
|
+
'#what-a-drag-does',
|
|
65
|
+
'#drop-zones-edges-vs-center',
|
|
66
|
+
'#containers-vs-leaf-elements',
|
|
67
|
+
'#containers-accept-children',
|
|
68
|
+
'#leaf-elements-dont--dropping-on-one-makes-a-sibling',
|
|
69
|
+
'#adding-a-new-element',
|
|
70
|
+
'#when-a-drop-is-rejected',
|
|
71
|
+
'#moving-an-element-without-dragging',
|
|
72
|
+
'#multi-drag',
|
|
73
|
+
'#tips',
|
|
74
|
+
'#related'
|
|
75
|
+
],
|
|
76
|
+
elementCatalog: [
|
|
77
|
+
'#finding-an-element',
|
|
78
|
+
'#element-search',
|
|
79
|
+
'#element-detail',
|
|
80
|
+
'#layout',
|
|
81
|
+
'#the-pages-main-landmark',
|
|
82
|
+
'#every-container-can-be-a-semantic-element',
|
|
83
|
+
'#which-link-groups-want-to-be-a-nav',
|
|
84
|
+
'#header-and-footer-for-your-site-chrome',
|
|
85
|
+
'#grid',
|
|
86
|
+
'#surface',
|
|
87
|
+
'#accordion',
|
|
88
|
+
'#navigation',
|
|
89
|
+
'#where-a-link-opens',
|
|
90
|
+
'#linking-to-a-collection-listing',
|
|
91
|
+
'#link-container',
|
|
92
|
+
'#tabs',
|
|
93
|
+
'#tabs-that-go-to-another-screen',
|
|
94
|
+
'#pagination',
|
|
95
|
+
'#text',
|
|
96
|
+
'#data-display',
|
|
97
|
+
'#media',
|
|
98
|
+
'#image-list',
|
|
99
|
+
'#forms-input-commerce-members',
|
|
100
|
+
'#related'
|
|
101
|
+
],
|
|
102
|
+
interactions: [
|
|
103
|
+
'#fluent-interactions',
|
|
104
|
+
'#interactions-belong-to-the-page-they-are-on',
|
|
105
|
+
'#plan-availability',
|
|
106
|
+
'#pick-the-target-by-clicking',
|
|
107
|
+
'#interaction-cookbook',
|
|
108
|
+
'#scroll-to-element-step',
|
|
109
|
+
'#play-video-step',
|
|
110
|
+
'#analytics-event-step',
|
|
111
|
+
'#analytics-event-name',
|
|
112
|
+
'#analytics-event-parameters',
|
|
113
|
+
'#analytics-event-delivery',
|
|
114
|
+
'#custom-html-block',
|
|
115
|
+
'#related'
|
|
116
|
+
],
|
|
117
|
+
layouts: [
|
|
118
|
+
'#what-a-layout-is',
|
|
119
|
+
'#nested-layouts',
|
|
120
|
+
'#layout-properties',
|
|
121
|
+
'#duplicate',
|
|
122
|
+
'#generate-a-layout-with-aglyn-ai',
|
|
123
|
+
'#used-by',
|
|
124
|
+
'#layouts-vs-reusable-components',
|
|
125
|
+
'#related'
|
|
126
|
+
],
|
|
127
|
+
repeat: [
|
|
128
|
+
'#turn-it-on',
|
|
129
|
+
'#what-repeats-the-element-or-whats-inside-it',
|
|
130
|
+
'#fill-each-copy-in',
|
|
131
|
+
'#see-the-copies-while-you-design',
|
|
132
|
+
'#bound-what-renders',
|
|
133
|
+
'#the-hundred-record-ceiling',
|
|
134
|
+
'#what-you-cant-do',
|
|
135
|
+
'#when-a-dataset-goes-away',
|
|
136
|
+
'#related'
|
|
137
|
+
],
|
|
138
|
+
responsiveStyling: [
|
|
139
|
+
'#style-per-breakpoint',
|
|
140
|
+
'#mute-a-style',
|
|
141
|
+
'#interaction-states',
|
|
142
|
+
'#you-can-see-the-state-while-you-style-it',
|
|
143
|
+
'#fields-you-dont-touch-keep-inheriting',
|
|
144
|
+
'#states-and-breakpoints-combine',
|
|
145
|
+
'#focus-state',
|
|
146
|
+
'#box-stylers',
|
|
147
|
+
'#spacing-side-names',
|
|
148
|
+
'#spacing-units',
|
|
149
|
+
'#spacing-steps',
|
|
150
|
+
'#spacing-custom-amounts',
|
|
151
|
+
'#unit-px',
|
|
152
|
+
'#unit-rem',
|
|
153
|
+
'#unit-em',
|
|
154
|
+
'#unit-percent',
|
|
155
|
+
'#unit-ch',
|
|
156
|
+
'#unit-viewport',
|
|
157
|
+
'#unit-small-viewport',
|
|
158
|
+
'#style-groups',
|
|
159
|
+
'#borders-without-css',
|
|
160
|
+
'#picking-a-font',
|
|
161
|
+
'#gradient-backgrounds',
|
|
162
|
+
'#visibility-per-device-band',
|
|
163
|
+
'#scheme-scoped-colors',
|
|
164
|
+
'#custom-classes',
|
|
165
|
+
'#custom-css-sx',
|
|
166
|
+
'#semantic-sections--theme-mode',
|
|
167
|
+
'#edit-json-for-one-element'
|
|
168
|
+
],
|
|
169
|
+
reusableComponents: [
|
|
170
|
+
'#promote',
|
|
171
|
+
'#insert-instances',
|
|
172
|
+
'#properties',
|
|
173
|
+
'#declare-them',
|
|
174
|
+
'#make-a-property-conditional',
|
|
175
|
+
'#use-them',
|
|
176
|
+
'#save-then-publish',
|
|
177
|
+
'#fill-them-in-per-page',
|
|
178
|
+
'#restyle-one-instance',
|
|
179
|
+
'#override-an-attribute-on-one-instance',
|
|
180
|
+
'#retrofit-duplicated-sections',
|
|
181
|
+
'#detach',
|
|
182
|
+
'#nesting',
|
|
183
|
+
'#used-by',
|
|
184
|
+
'#manage',
|
|
185
|
+
'#duplicate',
|
|
186
|
+
'#copy--paste-vs-reusable-components',
|
|
187
|
+
'#tips',
|
|
188
|
+
'#related'
|
|
189
|
+
],
|
|
190
|
+
seo: [
|
|
191
|
+
'#per-screen-seo',
|
|
192
|
+
'#how-a-page-title-is-built',
|
|
193
|
+
'#variables-so-a-title-is-not-a-copy-of-your-site-name',
|
|
194
|
+
'#site-wide-defaults',
|
|
195
|
+
'#what-language-your-site-says-it-is-in',
|
|
196
|
+
'#search-engine-visibility',
|
|
197
|
+
'#the-whole-site',
|
|
198
|
+
'#a-single-page',
|
|
199
|
+
'#sitemap--robots',
|
|
200
|
+
'#one-index-one-file-per-section',
|
|
201
|
+
'#social-cards',
|
|
202
|
+
'#what-each-kind-of-page-emits',
|
|
203
|
+
'#structured-data',
|
|
204
|
+
'#ai-agents',
|
|
205
|
+
'#markdown-for-any-page',
|
|
206
|
+
'#llmstxt',
|
|
207
|
+
'#openapijson',
|
|
208
|
+
'#well-knownapi-catalog',
|
|
209
|
+
'#crawler-access',
|
|
210
|
+
'#analytics-integration',
|
|
211
|
+
'#related'
|
|
212
|
+
],
|
|
213
|
+
textEditing: [
|
|
214
|
+
'#edit-inline',
|
|
215
|
+
'#committing',
|
|
216
|
+
'#inline-toolbar',
|
|
217
|
+
'#rich-text',
|
|
218
|
+
'#the-text-attribute',
|
|
219
|
+
'#text-field-read-only',
|
|
220
|
+
'#remove-formatting',
|
|
221
|
+
'#line-breaks',
|
|
222
|
+
'#bindings-in-text',
|
|
223
|
+
'#limits',
|
|
224
|
+
'#wrapped-outlines',
|
|
225
|
+
'#related'
|
|
226
|
+
]
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
//# sourceMappingURL=docs-help.generated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../libs/besigner/feature/designer/src/lib/utils/docs-help.generated.ts"],"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// GENERATED FILE — do not edit. Regenerate with:\n// node tools/scripts/generate-docs-help.mjs\n// Source of truth: apps/docs/docs frontmatter + headings (AGL-602).\n\n// The besigner designer lib can't import the console constants, so it carries\n// its own generated subset of the docs help registry.\n\nexport const BESIGNER_DOCS = {\n besigner: '/building-sites/besigner/overview',\n bindings: '/building-sites/bindings/overview',\n dragDropHierarchy: '/building-sites/besigner/drag-drop-hierarchy',\n elementCatalog: '/building-sites/besigner/element-catalog',\n interactions: '/building-sites/besigner/interactions-and-custom-html',\n layouts: '/building-sites/screens-and-layouts/layouts',\n repeat: '/building-sites/besigner/repeat',\n responsiveStyling: '/building-sites/besigner/responsive-styling',\n reusableComponents: '/building-sites/besigner/reusable-components',\n seo: '/building-sites/seo/overview',\n textEditing: '/building-sites/besigner/text-editing',\n} as const satisfies Record<string, string>\n\nexport type BesignerDocsKey = keyof typeof BESIGNER_DOCS\n\nexport const BESIGNER_DOCS_ANCHORS = {\n besigner: ['#preview-vs-canvas', '#what-you-can-do', '#the-canvas', '#hierarchy-panel', '#the-inspector', '#inline-and-rich-text', '#reusable-components', '#editing-together', '#ai-in-the-canvas', '#related'],\n bindings: ['#binding-tokens', '#rename-safe-id-tokens', '#insert-a-variable', '#token-pills', '#in-the-canvas-text-editor', '#site-details', '#typed-variables', '#no-code-functions', '#parameters-a-visitor-can-answer', '#a-calculator-you-lay-out', '#where-used--safety', '#workflows', '#related'],\n dragDropHierarchy: ['#where-you-can-drag', '#what-a-drag-does', '#drop-zones-edges-vs-center', '#containers-vs-leaf-elements', '#containers-accept-children', '#leaf-elements-dont--dropping-on-one-makes-a-sibling', '#adding-a-new-element', '#when-a-drop-is-rejected', '#moving-an-element-without-dragging', '#multi-drag', '#tips', '#related'],\n elementCatalog: ['#finding-an-element', '#element-search', '#element-detail', '#layout', '#the-pages-main-landmark', '#every-container-can-be-a-semantic-element', '#which-link-groups-want-to-be-a-nav', '#header-and-footer-for-your-site-chrome', '#grid', '#surface', '#accordion', '#navigation', '#where-a-link-opens', '#linking-to-a-collection-listing', '#link-container', '#tabs', '#tabs-that-go-to-another-screen', '#pagination', '#text', '#data-display', '#media', '#image-list', '#forms-input-commerce-members', '#related'],\n interactions: ['#fluent-interactions', '#interactions-belong-to-the-page-they-are-on', '#plan-availability', '#pick-the-target-by-clicking', '#interaction-cookbook', '#scroll-to-element-step', '#play-video-step', '#analytics-event-step', '#analytics-event-name', '#analytics-event-parameters', '#analytics-event-delivery', '#custom-html-block', '#related'],\n layouts: ['#what-a-layout-is', '#nested-layouts', '#layout-properties', '#duplicate', '#generate-a-layout-with-aglyn-ai', '#used-by', '#layouts-vs-reusable-components', '#related'],\n repeat: ['#turn-it-on', '#what-repeats-the-element-or-whats-inside-it', '#fill-each-copy-in', '#see-the-copies-while-you-design', '#bound-what-renders', '#the-hundred-record-ceiling', '#what-you-cant-do', '#when-a-dataset-goes-away', '#related'],\n responsiveStyling: ['#style-per-breakpoint', '#mute-a-style', '#interaction-states', '#you-can-see-the-state-while-you-style-it', '#fields-you-dont-touch-keep-inheriting', '#states-and-breakpoints-combine', '#focus-state', '#box-stylers', '#spacing-side-names', '#spacing-units', '#spacing-steps', '#spacing-custom-amounts', '#unit-px', '#unit-rem', '#unit-em', '#unit-percent', '#unit-ch', '#unit-viewport', '#unit-small-viewport', '#style-groups', '#borders-without-css', '#picking-a-font', '#gradient-backgrounds', '#visibility-per-device-band', '#scheme-scoped-colors', '#custom-classes', '#custom-css-sx', '#semantic-sections--theme-mode', '#edit-json-for-one-element'],\n reusableComponents: ['#promote', '#insert-instances', '#properties', '#declare-them', '#make-a-property-conditional', '#use-them', '#save-then-publish', '#fill-them-in-per-page', '#restyle-one-instance', '#override-an-attribute-on-one-instance', '#retrofit-duplicated-sections', '#detach', '#nesting', '#used-by', '#manage', '#duplicate', '#copy--paste-vs-reusable-components', '#tips', '#related'],\n seo: ['#per-screen-seo', '#how-a-page-title-is-built', '#variables-so-a-title-is-not-a-copy-of-your-site-name', '#site-wide-defaults', '#what-language-your-site-says-it-is-in', '#search-engine-visibility', '#the-whole-site', '#a-single-page', '#sitemap--robots', '#one-index-one-file-per-section', '#social-cards', '#what-each-kind-of-page-emits', '#structured-data', '#ai-agents', '#markdown-for-any-page', '#llmstxt', '#openapijson', '#well-knownapi-catalog', '#crawler-access', '#analytics-integration', '#related'],\n textEditing: ['#edit-inline', '#committing', '#inline-toolbar', '#rich-text', '#the-text-attribute', '#text-field-read-only', '#remove-formatting', '#line-breaks', '#bindings-in-text', '#limits', '#wrapped-outlines', '#related'],\n} as const satisfies Partial<Record<BesignerDocsKey, readonly `#${string}`[]>>\n\ntype BesignerAnchorMap = typeof BESIGNER_DOCS_ANCHORS\n\n/** Valid heading anchors for a besigner docs page (`never` when none). */\nexport type BesignerDocsAnchor<K extends BesignerDocsKey> =\n K extends keyof BesignerAnchorMap ? BesignerAnchorMap[K][number] : never\n"],"names":["BESIGNER_DOCS","besigner","bindings","dragDropHierarchy","elementCatalog","interactions","layouts","repeat","responsiveStyling","reusableComponents","seo","textEditing","BESIGNER_DOCS_ANCHORS"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GACD,iDAAiD;AACjD,8CAA8C;AAC9C,oEAAoE;AAEpE,8EAA8E;AAC9E,sDAAsD;AAEtD,OAAO,MAAMA,gBAAgB;IAC3BC,UAAU;IACVC,UAAU;IACVC,mBAAmB;IACnBC,gBAAgB;IAChBC,cAAc;IACdC,SAAS;IACTC,QAAQ;IACRC,mBAAmB;IACnBC,oBAAoB;IACpBC,KAAK;IACLC,aAAa;AACf,EAA2C;AAI3C,OAAO,MAAMC,wBAAwB;IACnCX,UAAU;QAAC;QAAsB;QAAoB;QAAe;QAAoB;QAAkB;QAAyB;QAAwB;QAAqB;QAAqB;KAAW;IAChNC,UAAU;QAAC;QAAmB;QAA0B;QAAsB;QAAgB;QAA8B;QAAiB;QAAoB;QAAsB;QAAoC;QAA6B;QAAuB;QAAc;KAAW;IACxSC,mBAAmB;QAAC;QAAuB;QAAqB;QAA+B;QAAgC;QAA+B;QAAwD;QAAyB;QAA4B;QAAuC;QAAe;QAAS;KAAW;IACrVC,gBAAgB;QAAC;QAAuB;QAAmB;QAAmB;QAAW;QAA4B;QAA8C;QAAuC;QAA2C;QAAS;QAAY;QAAc;QAAe;QAAuB;QAAoC;QAAmB;QAAS;QAAmC;QAAe;QAAS;QAAiB;QAAU;QAAe;QAAiC;KAAW;IAC/gBC,cAAc;QAAC;QAAwB;QAAgD;QAAsB;QAAgC;QAAyB;QAA2B;QAAoB;QAAyB;QAAyB;QAA+B;QAA6B;QAAsB;KAAW;IACpWC,SAAS;QAAC;QAAqB;QAAmB;QAAsB;QAAc;QAAoC;QAAY;QAAmC;KAAW;IACpLC,QAAQ;QAAC;QAAe;QAAgD;QAAsB;QAAoC;QAAuB;QAA+B;QAAqB;QAA6B;KAAW;IACrPC,mBAAmB;QAAC;QAAyB;QAAiB;QAAuB;QAA6C;QAA0C;QAAmC;QAAgB;QAAgB;QAAuB;QAAkB;QAAkB;QAA2B;QAAY;QAAa;QAAY;QAAiB;QAAY;QAAkB;QAAwB;QAAiB;QAAwB;QAAmB;QAAyB;QAA+B;QAAyB;QAAmB;QAAkB;QAAkC;KAA6B;IAClqBC,oBAAoB;QAAC;QAAY;QAAqB;QAAe;QAAiB;QAAgC;QAAa;QAAsB;QAA0B;QAAyB;QAA0C;QAAiC;QAAW;QAAY;QAAY;QAAW;QAAc;QAAuC;QAAS;KAAW;IAC9YC,KAAK;QAAC;QAAmB;QAA8B;QAAyD;QAAuB;QAA0C;QAA6B;QAAmB;QAAkB;QAAoB;QAAmC;QAAiB;QAAiC;QAAoB;QAAc;QAA0B;QAAY;QAAgB;QAA0B;QAAmB;QAA0B;KAAW;IACtgBC,aAAa;QAAC;QAAgB;QAAe;QAAmB;QAAc;QAAuB;QAAyB;QAAsB;QAAgB;QAAqB;QAAW;QAAqB;KAAW;AACtO,EAA8E"}
|
|
@@ -0,0 +1,37 @@
|
|
|
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
|
+
*/ // BESIGNER_DOCS + anchor types are GENERATED from the docs site — see
|
|
17
|
+
// docs/DOCS_HELP_REGISTRY.md. This lib can't import the console constants, so
|
|
18
|
+
// it carries its own subset. Regenerate with:
|
|
19
|
+
// node tools/scripts/generate-docs-help.mjs
|
|
20
|
+
import { BESIGNER_DOCS } from "./docs-help.generated.js";
|
|
21
|
+
export { BESIGNER_DOCS } from "./docs-help.generated.js";
|
|
22
|
+
// Same env override + fallback as the console's constants/docs-links.ts —
|
|
23
|
+
// this lib can't import app code, so the base URL is resolved here too.
|
|
24
|
+
const DOCS_BASE_URL = // Dot notation (AGL-2037): this is a designer lib that ships in the client
|
|
25
|
+
// bundle, and the bracket form is never substituted there — so every help
|
|
26
|
+
// link pointed at Aglyn's docs regardless of what an operator configured.
|
|
27
|
+
//
|
|
28
|
+
// Canonical name first, older name as a fallback (AGL-2186) — see
|
|
29
|
+
// apps/console/constants/docs-links.ts for why there were two.
|
|
30
|
+
(process.env.NEXT_PUBLIC_DOCS_ORIGIN || process.env.NEXT_PUBLIC_AGLYN_DOCS_URL || 'https://docs.aglyn.com').replace(/\/+$/, '');
|
|
31
|
+
/** Absolute docs URL for a besigner docs page, with an optional heading anchor
|
|
32
|
+
* constrained to that page's real headings (e.g.
|
|
33
|
+
* `besignerDocsUrl('responsiveStyling', '#box-stylers')`). */ export function besignerDocsUrl(page, anchor) {
|
|
34
|
+
return `${DOCS_BASE_URL}${BESIGNER_DOCS[page]}${anchor != null ? anchor : ''}`;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=docs-help.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../libs/besigner/feature/designer/src/lib/utils/docs-help.ts"],"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\n// BESIGNER_DOCS + anchor types are GENERATED from the docs site — see\n// docs/DOCS_HELP_REGISTRY.md. This lib can't import the console constants, so\n// it carries its own subset. Regenerate with:\n// node tools/scripts/generate-docs-help.mjs\nimport {\n BESIGNER_DOCS,\n type BesignerDocsAnchor,\n type BesignerDocsKey,\n} from './docs-help.generated'\n\nexport {\n BESIGNER_DOCS,\n type BesignerDocsAnchor,\n type BesignerDocsKey,\n} from './docs-help.generated'\n\n// Same env override + fallback as the console's constants/docs-links.ts —\n// this lib can't import app code, so the base URL is resolved here too.\nconst DOCS_BASE_URL = (\n // Dot notation (AGL-2037): this is a designer lib that ships in the client\n // bundle, and the bracket form is never substituted there — so every help\n // link pointed at Aglyn's docs regardless of what an operator configured.\n //\n // Canonical name first, older name as a fallback (AGL-2186) — see\n // apps/console/constants/docs-links.ts for why there were two.\n process.env.NEXT_PUBLIC_DOCS_ORIGIN ||\n process.env.NEXT_PUBLIC_AGLYN_DOCS_URL ||\n 'https://docs.aglyn.com'\n).replace(/\\/+$/, '')\n\n/** Absolute docs URL for a besigner docs page, with an optional heading anchor\n * constrained to that page's real headings (e.g.\n * `besignerDocsUrl('responsiveStyling', '#box-stylers')`). */\nexport function besignerDocsUrl<K extends BesignerDocsKey>(\n page: K,\n anchor?: BesignerDocsAnchor<K>,\n): string {\n return `${DOCS_BASE_URL}${BESIGNER_DOCS[page]}${anchor ?? ''}`\n}\n"],"names":["BESIGNER_DOCS","DOCS_BASE_URL","process","env","NEXT_PUBLIC_DOCS_ORIGIN","NEXT_PUBLIC_AGLYN_DOCS_URL","replace","besignerDocsUrl","page","anchor"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED,sEAAsE;AACtE,8EAA8E;AAC9E,8CAA8C;AAC9C,8CAA8C;AAC9C,SACEA,aAAa,QAGR,2BAAuB;AAE9B,SACEA,aAAa,QAGR,2BAAuB;AAE9B,0EAA0E;AAC1E,wEAAwE;AACxE,MAAMC,gBAAgB,AACpB,2EAA2E;AAC3E,0EAA0E;AAC1E,0EAA0E;AAC1E,EAAE;AACF,kEAAkE;AAClE,+DAA+D;AAC/DC,CAAAA,QAAQC,GAAG,CAACC,uBAAuB,IACnCF,QAAQC,GAAG,CAACE,0BAA0B,IACtC,wBAAuB,EACvBC,OAAO,CAAC,QAAQ;AAElB;;4DAE4D,GAC5D,OAAO,SAASC,gBACdC,IAAO,EACPC,MAA8B;IAE9B,OAAO,GAAGR,gBAAgBD,aAAa,CAACQ,KAAK,GAAGC,iBAAAA,SAAU,IAAI;AAChE"}
|