@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.
Files changed (486) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +7 -0
  3. package/package.json +73 -0
  4. package/src/besigner.d.ts +88 -0
  5. package/src/besigner.js +89 -0
  6. package/src/besigner.js.map +1 -0
  7. package/src/index.d.ts +17 -0
  8. package/src/index.js +18 -0
  9. package/src/index.js.map +1 -0
  10. package/src/lib/box-styler/box-styler.d.ts +57 -0
  11. package/src/lib/box-styler/box-styler.js +240 -0
  12. package/src/lib/box-styler/box-styler.js.map +1 -0
  13. package/src/lib/box-styler/components/box-diagram.d.ts +89 -0
  14. package/src/lib/box-styler/components/box-diagram.js +661 -0
  15. package/src/lib/box-styler/components/box-diagram.js.map +1 -0
  16. package/src/lib/box-styler/components/legend.d.ts +56 -0
  17. package/src/lib/box-styler/components/legend.js +130 -0
  18. package/src/lib/box-styler/components/legend.js.map +1 -0
  19. package/src/lib/box-styler/components/spacing-editor.d.ts +55 -0
  20. package/src/lib/box-styler/components/spacing-editor.js +347 -0
  21. package/src/lib/box-styler/components/spacing-editor.js.map +1 -0
  22. package/src/lib/box-styler/constants.d.ts +17 -0
  23. package/src/lib/box-styler/constants.js +30 -0
  24. package/src/lib/box-styler/constants.js.map +1 -0
  25. package/src/lib/box-styler/index.d.ts +2 -0
  26. package/src/lib/box-styler/index.js +4 -0
  27. package/src/lib/box-styler/index.js.map +1 -0
  28. package/src/lib/box-styler/region-fills.d.ts +107 -0
  29. package/src/lib/box-styler/region-fills.js +139 -0
  30. package/src/lib/box-styler/region-fills.js.map +1 -0
  31. package/src/lib/box-styler/spacing-value.d.ts +104 -0
  32. package/src/lib/box-styler/spacing-value.js +223 -0
  33. package/src/lib/box-styler/spacing-value.js.map +1 -0
  34. package/src/lib/box-styler/types.d.ts +29 -0
  35. package/src/lib/box-styler/types.js +18 -0
  36. package/src/lib/box-styler/types.js.map +1 -0
  37. package/src/lib/components/accordion-list.component.d.ts +50 -0
  38. package/src/lib/components/accordion-list.component.js +228 -0
  39. package/src/lib/components/accordion-list.component.js.map +1 -0
  40. package/src/lib/components/add-controls.component.d.ts +22 -0
  41. package/src/lib/components/add-controls.component.js +50 -0
  42. package/src/lib/components/add-controls.component.js.map +1 -0
  43. package/src/lib/components/app-bar-breadcrumbs.component.d.ts +29 -0
  44. package/src/lib/components/app-bar-breadcrumbs.component.js +279 -0
  45. package/src/lib/components/app-bar-breadcrumbs.component.js.map +1 -0
  46. package/src/lib/components/app-bar-primary.component.d.ts +21 -0
  47. package/src/lib/components/app-bar-primary.component.js +108 -0
  48. package/src/lib/components/app-bar-primary.component.js.map +1 -0
  49. package/src/lib/components/app-bar-secondary.component.d.ts +21 -0
  50. package/src/lib/components/app-bar-secondary.component.js +94 -0
  51. package/src/lib/components/app-bar-secondary.component.js.map +1 -0
  52. package/src/lib/components/aside-panel.component.d.ts +23 -0
  53. package/src/lib/components/aside-panel.component.js +505 -0
  54. package/src/lib/components/aside-panel.component.js.map +1 -0
  55. package/src/lib/components/besigner-conflict-alert.component.d.ts +36 -0
  56. package/src/lib/components/besigner-conflict-alert.component.js +51 -0
  57. package/src/lib/components/besigner-conflict-alert.component.js.map +1 -0
  58. package/src/lib/components/besigner-dnd-context.component.d.ts +32 -0
  59. package/src/lib/components/besigner-dnd-context.component.js +75 -0
  60. package/src/lib/components/besigner-dnd-context.component.js.map +1 -0
  61. package/src/lib/components/besigner-draft-alert.component.d.ts +70 -0
  62. package/src/lib/components/besigner-draft-alert.component.js +155 -0
  63. package/src/lib/components/besigner-draft-alert.component.js.map +1 -0
  64. package/src/lib/components/besigner-root-provider.component.d.ts +33 -0
  65. package/src/lib/components/besigner-root-provider.component.js +68 -0
  66. package/src/lib/components/besigner-root-provider.component.js.map +1 -0
  67. package/src/lib/components/binding-preview-controls.component.d.ts +28 -0
  68. package/src/lib/components/binding-preview-controls.component.js +63 -0
  69. package/src/lib/components/binding-preview-controls.component.js.map +1 -0
  70. package/src/lib/components/closeable-drawer.component.d.ts +32 -0
  71. package/src/lib/components/closeable-drawer.component.js +134 -0
  72. package/src/lib/components/closeable-drawer.component.js.map +1 -0
  73. package/src/lib/components/component-accordion-list.d.ts +28 -0
  74. package/src/lib/components/component-accordion-list.js +205 -0
  75. package/src/lib/components/component-accordion-list.js.map +1 -0
  76. package/src/lib/components/component-icon.component.d.ts +32 -0
  77. package/src/lib/components/component-icon.component.js +51 -0
  78. package/src/lib/components/component-icon.component.js.map +1 -0
  79. package/src/lib/components/component-picker.d.ts +27 -0
  80. package/src/lib/components/component-picker.js +368 -0
  81. package/src/lib/components/component-picker.js.map +1 -0
  82. package/src/lib/components/components-grid-list.component.d.ts +31 -0
  83. package/src/lib/components/components-grid-list.component.js +162 -0
  84. package/src/lib/components/components-grid-list.component.js.map +1 -0
  85. package/src/lib/components/custom-css-form.component.d.ts +115 -0
  86. package/src/lib/components/custom-css-form.component.js +699 -0
  87. package/src/lib/components/custom-css-form.component.js.map +1 -0
  88. package/src/lib/components/device-preview-controls.component.d.ts +22 -0
  89. package/src/lib/components/device-preview-controls.component.js +150 -0
  90. package/src/lib/components/device-preview-controls.component.js.map +1 -0
  91. package/src/lib/components/dnd/canvas-drop-indicator.d.ts +20 -0
  92. package/src/lib/components/dnd/canvas-drop-indicator.js +61 -0
  93. package/src/lib/components/dnd/canvas-drop-indicator.js.map +1 -0
  94. package/src/lib/components/dnd/draggable-droppable.d.ts +31 -0
  95. package/src/lib/components/dnd/draggable-droppable.js +383 -0
  96. package/src/lib/components/dnd/draggable-droppable.js.map +1 -0
  97. package/src/lib/components/dnd/draggable.d.ts +42 -0
  98. package/src/lib/components/dnd/draggable.js +66 -0
  99. package/src/lib/components/dnd/draggable.js.map +1 -0
  100. package/src/lib/components/dnd/drop-indicator.d.ts +31 -0
  101. package/src/lib/components/dnd/drop-indicator.js +139 -0
  102. package/src/lib/components/dnd/drop-indicator.js.map +1 -0
  103. package/src/lib/components/dnd/droppable.d.ts +43 -0
  104. package/src/lib/components/dnd/droppable.js +63 -0
  105. package/src/lib/components/dnd/droppable.js.map +1 -0
  106. package/src/lib/components/element-card.component.d.ts +23 -0
  107. package/src/lib/components/element-card.component.js +49 -0
  108. package/src/lib/components/element-card.component.js.map +1 -0
  109. package/src/lib/components/element-classes-field.component.d.ts +41 -0
  110. package/src/lib/components/element-classes-field.component.js +140 -0
  111. package/src/lib/components/element-classes-field.component.js.map +1 -0
  112. package/src/lib/components/element-detail-overlay.component.d.ts +55 -0
  113. package/src/lib/components/element-detail-overlay.component.js +157 -0
  114. package/src/lib/components/element-detail-overlay.component.js.map +1 -0
  115. package/src/lib/components/element-detail.component.d.ts +56 -0
  116. package/src/lib/components/element-detail.component.js +171 -0
  117. package/src/lib/components/element-detail.component.js.map +1 -0
  118. package/src/lib/components/element-info-details.component.d.ts +18 -0
  119. package/src/lib/components/element-info-details.component.js +169 -0
  120. package/src/lib/components/element-info-details.component.js.map +1 -0
  121. package/src/lib/components/element-interactions-form.component.d.ts +21 -0
  122. package/src/lib/components/element-interactions-form.component.js +199 -0
  123. package/src/lib/components/element-interactions-form.component.js.map +1 -0
  124. package/src/lib/components/element-preview.component.d.ts +75 -0
  125. package/src/lib/components/element-preview.component.js +346 -0
  126. package/src/lib/components/element-preview.component.js.map +1 -0
  127. package/src/lib/components/element-props-form.component.d.ts +565 -0
  128. package/src/lib/components/element-props-form.component.js +2392 -0
  129. package/src/lib/components/element-props-form.component.js.map +1 -0
  130. package/src/lib/components/element-styles-form-template.component.d.ts +27 -0
  131. package/src/lib/components/element-styles-form-template.component.js +89 -0
  132. package/src/lib/components/element-styles-form-template.component.js.map +1 -0
  133. package/src/lib/components/element-styles-form.component.d.ts +52 -0
  134. package/src/lib/components/element-styles-form.component.js +1350 -0
  135. package/src/lib/components/element-styles-form.component.js.map +1 -0
  136. package/src/lib/components/empty-document-slot.d.ts +39 -0
  137. package/src/lib/components/empty-document-slot.js +121 -0
  138. package/src/lib/components/empty-document-slot.js.map +1 -0
  139. package/src/lib/components/empty-results.d.ts +22 -0
  140. package/src/lib/components/empty-results.js +131 -0
  141. package/src/lib/components/empty-results.js.map +1 -0
  142. package/src/lib/components/history-controls.component.d.ts +21 -0
  143. package/src/lib/components/history-controls.component.js +67 -0
  144. package/src/lib/components/history-controls.component.js.map +1 -0
  145. package/src/lib/components/inline-markdown-editor.component.d.ts +17 -0
  146. package/src/lib/components/inline-markdown-editor.component.js +220 -0
  147. package/src/lib/components/inline-markdown-editor.component.js.map +1 -0
  148. package/src/lib/components/inline-text-editor.component.d.ts +48 -0
  149. package/src/lib/components/inline-text-editor.component.js +905 -0
  150. package/src/lib/components/inline-text-editor.component.js.map +1 -0
  151. package/src/lib/components/insert-token-menu.component.d.ts +86 -0
  152. package/src/lib/components/insert-token-menu.component.js +232 -0
  153. package/src/lib/components/insert-token-menu.component.js.map +1 -0
  154. package/src/lib/components/instance-attr-overrides.component.d.ts +50 -0
  155. package/src/lib/components/instance-attr-overrides.component.js +298 -0
  156. package/src/lib/components/instance-attr-overrides.component.js.map +1 -0
  157. package/src/lib/components/interact-controls.component.d.ts +22 -0
  158. package/src/lib/components/interact-controls.component.js +74 -0
  159. package/src/lib/components/interact-controls.component.js.map +1 -0
  160. package/src/lib/components/markdown-attribute-field.component.d.ts +40 -0
  161. package/src/lib/components/markdown-attribute-field.component.js +103 -0
  162. package/src/lib/components/markdown-attribute-field.component.js.map +1 -0
  163. package/src/lib/components/node-card.d.ts +24 -0
  164. package/src/lib/components/node-card.js +86 -0
  165. package/src/lib/components/node-card.js.map +1 -0
  166. package/src/lib/components/node-context-menu.d.ts +25 -0
  167. package/src/lib/components/node-context-menu.js +558 -0
  168. package/src/lib/components/node-context-menu.js.map +1 -0
  169. package/src/lib/components/node-leaf.d.ts +39 -0
  170. package/src/lib/components/node-leaf.js +628 -0
  171. package/src/lib/components/node-leaf.js.map +1 -0
  172. package/src/lib/components/node-outline.d.ts +24 -0
  173. package/src/lib/components/node-outline.js +156 -0
  174. package/src/lib/components/node-outline.js.map +1 -0
  175. package/src/lib/components/node-overlay.d.ts +23 -0
  176. package/src/lib/components/node-overlay.js +299 -0
  177. package/src/lib/components/node-overlay.js.map +1 -0
  178. package/src/lib/components/node-quick-actions.d.ts +24 -0
  179. package/src/lib/components/node-quick-actions.js +284 -0
  180. package/src/lib/components/node-quick-actions.js.map +1 -0
  181. package/src/lib/components/node-tree-view.d.ts +106 -0
  182. package/src/lib/components/node-tree-view.js +820 -0
  183. package/src/lib/components/node-tree-view.js.map +1 -0
  184. package/src/lib/components/panel-controls.component.d.ts +22 -0
  185. package/src/lib/components/panel-controls.component.js +76 -0
  186. package/src/lib/components/panel-controls.component.js.map +1 -0
  187. package/src/lib/components/picker-search-field.d.ts +38 -0
  188. package/src/lib/components/picker-search-field.js +79 -0
  189. package/src/lib/components/picker-search-field.js.map +1 -0
  190. package/src/lib/components/plugin-settings-field.component.d.ts +38 -0
  191. package/src/lib/components/plugin-settings-field.component.js +264 -0
  192. package/src/lib/components/plugin-settings-field.component.js.map +1 -0
  193. package/src/lib/components/properties-dialog.component.d.ts +22 -0
  194. package/src/lib/components/properties-dialog.component.js +40 -0
  195. package/src/lib/components/properties-dialog.component.js.map +1 -0
  196. package/src/lib/components/property-binding-field.component.d.ts +142 -0
  197. package/src/lib/components/property-binding-field.component.js +325 -0
  198. package/src/lib/components/property-binding-field.component.js.map +1 -0
  199. package/src/lib/components/property-values-form.component.d.ts +43 -0
  200. package/src/lib/components/property-values-form.component.js +223 -0
  201. package/src/lib/components/property-values-form.component.js.map +1 -0
  202. package/src/lib/components/scheme-preview-controls.component.d.ts +26 -0
  203. package/src/lib/components/scheme-preview-controls.component.js +56 -0
  204. package/src/lib/components/scheme-preview-controls.component.js.map +1 -0
  205. package/src/lib/components/screen-link-field.component.d.ts +118 -0
  206. package/src/lib/components/screen-link-field.component.js +282 -0
  207. package/src/lib/components/screen-link-field.component.js.map +1 -0
  208. package/src/lib/components/site-theme-color-tokens-provider.component.d.ts +33 -0
  209. package/src/lib/components/site-theme-color-tokens-provider.component.js +53 -0
  210. package/src/lib/components/site-theme-color-tokens-provider.component.js.map +1 -0
  211. package/src/lib/components/subtree-json-dialog.component.d.ts +46 -0
  212. package/src/lib/components/subtree-json-dialog.component.js +125 -0
  213. package/src/lib/components/subtree-json-dialog.component.js.map +1 -0
  214. package/src/lib/components/token-pill.component.d.ts +51 -0
  215. package/src/lib/components/token-pill.component.js +164 -0
  216. package/src/lib/components/token-pill.component.js.map +1 -0
  217. package/src/lib/components/token-text-field.component.d.ts +146 -0
  218. package/src/lib/components/token-text-field.component.js +603 -0
  219. package/src/lib/components/token-text-field.component.js.map +1 -0
  220. package/src/lib/components/tree/tree-list.d.ts +6 -0
  221. package/src/lib/components/tree/tree-list.js +108 -0
  222. package/src/lib/components/tree/tree-list.js.map +1 -0
  223. package/src/lib/components/viewport-canvas.component.d.ts +23 -0
  224. package/src/lib/components/viewport-canvas.component.js +128 -0
  225. package/src/lib/components/viewport-canvas.component.js.map +1 -0
  226. package/src/lib/components/viewport-frame.component.d.ts +47 -0
  227. package/src/lib/components/viewport-frame.component.js +332 -0
  228. package/src/lib/components/viewport-frame.component.js.map +1 -0
  229. package/src/lib/components/viewport-root.component.d.ts +22 -0
  230. package/src/lib/components/viewport-root.component.js +112 -0
  231. package/src/lib/components/viewport-root.component.js.map +1 -0
  232. package/src/lib/components/viewport-zoom-controls.d.ts +29 -0
  233. package/src/lib/components/viewport-zoom-controls.js +147 -0
  234. package/src/lib/components/viewport-zoom-controls.js.map +1 -0
  235. package/src/lib/components/workspace-editor.component.d.ts +23 -0
  236. package/src/lib/components/workspace-editor.component.js +191 -0
  237. package/src/lib/components/workspace-editor.component.js.map +1 -0
  238. package/src/lib/components/workspace-panel.component.d.ts +28 -0
  239. package/src/lib/components/workspace-panel.component.js +147 -0
  240. package/src/lib/components/workspace-panel.component.js.map +1 -0
  241. package/src/lib/constants/sample-data.d.ts +18 -0
  242. package/src/lib/constants/sample-data.js +106 -0
  243. package/src/lib/constants/sample-data.js.map +1 -0
  244. package/src/lib/constants/shared.d.ts +17 -0
  245. package/src/lib/constants/shared.js +18 -0
  246. package/src/lib/constants/shared.js.map +1 -0
  247. package/src/lib/contexts/besigner-app-context.d.ts +30 -0
  248. package/src/lib/contexts/besigner-app-context.js +41 -0
  249. package/src/lib/contexts/besigner-app-context.js.map +1 -0
  250. package/src/lib/contexts/binding-picker-context.d.ts +78 -0
  251. package/src/lib/contexts/binding-picker-context.js +21 -0
  252. package/src/lib/contexts/binding-picker-context.js.map +1 -0
  253. package/src/lib/contexts/canvas-host-tokens-context.d.ts +49 -0
  254. package/src/lib/contexts/canvas-host-tokens-context.js +63 -0
  255. package/src/lib/contexts/canvas-host-tokens-context.js.map +1 -0
  256. package/src/lib/contexts/canvas-reveal-context.d.ts +32 -0
  257. package/src/lib/contexts/canvas-reveal-context.js +34 -0
  258. package/src/lib/contexts/canvas-reveal-context.js.map +1 -0
  259. package/src/lib/contexts/component-promotion-context.d.ts +89 -0
  260. package/src/lib/contexts/component-promotion-context.js +21 -0
  261. package/src/lib/contexts/component-promotion-context.js.map +1 -0
  262. package/src/lib/contexts/components-drawer-context.provider.d.ts +32 -0
  263. package/src/lib/contexts/components-drawer-context.provider.js +80 -0
  264. package/src/lib/contexts/components-drawer-context.provider.js.map +1 -0
  265. package/src/lib/contexts/element-drawer-context.d.ts +1005 -0
  266. package/src/lib/contexts/element-drawer-context.js +45 -0
  267. package/src/lib/contexts/element-drawer-context.js.map +1 -0
  268. package/src/lib/contexts/inspected-selection.d.ts +32 -0
  269. package/src/lib/contexts/inspected-selection.js +38 -0
  270. package/src/lib/contexts/inspected-selection.js.map +1 -0
  271. package/src/lib/contexts/inspector-extras-context.d.ts +56 -0
  272. package/src/lib/contexts/inspector-extras-context.js +35 -0
  273. package/src/lib/contexts/inspector-extras-context.js.map +1 -0
  274. package/src/lib/contexts/interactions-context.d.ts +99 -0
  275. package/src/lib/contexts/interactions-context.js +22 -0
  276. package/src/lib/contexts/interactions-context.js.map +1 -0
  277. package/src/lib/contexts/layout-chrome-context.d.ts +37 -0
  278. package/src/lib/contexts/layout-chrome-context.js +75 -0
  279. package/src/lib/contexts/layout-chrome-context.js.map +1 -0
  280. package/src/lib/contexts/media-asset-facts-context.d.ts +74 -0
  281. package/src/lib/contexts/media-asset-facts-context.js +27 -0
  282. package/src/lib/contexts/media-asset-facts-context.js.map +1 -0
  283. package/src/lib/contexts/media-picker-context.d.ts +88 -0
  284. package/src/lib/contexts/media-picker-context.js +21 -0
  285. package/src/lib/contexts/media-picker-context.js.map +1 -0
  286. package/src/lib/contexts/rendered-canvas-elements.d.ts +42 -0
  287. package/src/lib/contexts/rendered-canvas-elements.js +79 -0
  288. package/src/lib/contexts/rendered-canvas-elements.js.map +1 -0
  289. package/src/lib/contexts/repeat-record-context.d.ts +38 -0
  290. package/src/lib/contexts/repeat-record-context.js +21 -0
  291. package/src/lib/contexts/repeat-record-context.js.map +1 -0
  292. package/src/lib/contexts/repeat-rows-context.d.ts +53 -0
  293. package/src/lib/contexts/repeat-rows-context.js +38 -0
  294. package/src/lib/contexts/repeat-rows-context.js.map +1 -0
  295. package/src/lib/contexts/toolbar-extras-context.d.ts +31 -0
  296. package/src/lib/contexts/toolbar-extras-context.js +33 -0
  297. package/src/lib/contexts/toolbar-extras-context.js.map +1 -0
  298. package/src/lib/drafts/besigner-draft-store.d.ts +110 -0
  299. package/src/lib/drafts/besigner-draft-store.js +125 -0
  300. package/src/lib/drafts/besigner-draft-store.js.map +1 -0
  301. package/src/lib/drafts/besigner-server-draft.d.ts +130 -0
  302. package/src/lib/drafts/besigner-server-draft.js +211 -0
  303. package/src/lib/drafts/besigner-server-draft.js.map +1 -0
  304. package/src/lib/form-fields/components/shared/inline-form-control.d.ts +32 -0
  305. package/src/lib/form-fields/components/shared/inline-form-control.js +85 -0
  306. package/src/lib/form-fields/components/shared/inline-form-control.js.map +1 -0
  307. package/src/lib/form-fields/components/shared/toggle-button-form-control.d.ts +33 -0
  308. package/src/lib/form-fields/components/shared/toggle-button-form-control.js +83 -0
  309. package/src/lib/form-fields/components/shared/toggle-button-form-control.js.map +1 -0
  310. package/src/lib/form-fields/form-fields.d.ts +20 -0
  311. package/src/lib/form-fields/form-fields.js +21 -0
  312. package/src/lib/form-fields/form-fields.js.map +1 -0
  313. package/src/lib/form-fields/index.d.ts +1 -0
  314. package/src/lib/form-fields/index.js +3 -0
  315. package/src/lib/form-fields/index.js.map +1 -0
  316. package/src/lib/hooks/use-add-element-drawer-callback.d.ts +28 -0
  317. package/src/lib/hooks/use-add-element-drawer-callback.js +112 -0
  318. package/src/lib/hooks/use-add-element-drawer-callback.js.map +1 -0
  319. package/src/lib/hooks/use-aglyn-besigner-flag.d.ts +23 -0
  320. package/src/lib/hooks/use-aglyn-besigner-flag.js +47 -0
  321. package/src/lib/hooks/use-aglyn-besigner-flag.js.map +1 -0
  322. package/src/lib/hooks/use-aglyn-besigner-panel-value.d.ts +23 -0
  323. package/src/lib/hooks/use-aglyn-besigner-panel-value.js +54 -0
  324. package/src/lib/hooks/use-aglyn-besigner-panel-value.js.map +1 -0
  325. package/src/lib/hooks/use-aglyn-besigner-panel.d.ts +23 -0
  326. package/src/lib/hooks/use-aglyn-besigner-panel.js +47 -0
  327. package/src/lib/hooks/use-aglyn-besigner-panel.js.map +1 -0
  328. package/src/lib/hooks/use-anchored-rect.d.ts +68 -0
  329. package/src/lib/hooks/use-anchored-rect.js +131 -0
  330. package/src/lib/hooks/use-anchored-rect.js.map +1 -0
  331. package/src/lib/hooks/use-besigner-app-context.d.ts +18 -0
  332. package/src/lib/hooks/use-besigner-app-context.js +19 -0
  333. package/src/lib/hooks/use-besigner-app-context.js.map +1 -0
  334. package/src/lib/hooks/use-besigner-document.d.ts +309 -0
  335. package/src/lib/hooks/use-besigner-document.js +500 -0
  336. package/src/lib/hooks/use-besigner-document.js.map +1 -0
  337. package/src/lib/hooks/use-besigner-draft.d.ts +209 -0
  338. package/src/lib/hooks/use-besigner-draft.js +429 -0
  339. package/src/lib/hooks/use-besigner-draft.js.map +1 -0
  340. package/src/lib/hooks/use-clipboard-callbacks.d.ts +29 -0
  341. package/src/lib/hooks/use-clipboard-callbacks.js +82 -0
  342. package/src/lib/hooks/use-clipboard-callbacks.js.map +1 -0
  343. package/src/lib/hooks/use-clipboard-shortcuts.d.ts +52 -0
  344. package/src/lib/hooks/use-clipboard-shortcuts.js +102 -0
  345. package/src/lib/hooks/use-clipboard-shortcuts.js.map +1 -0
  346. package/src/lib/hooks/use-component-propagation-notice.d.ts +96 -0
  347. package/src/lib/hooks/use-component-propagation-notice.js +177 -0
  348. package/src/lib/hooks/use-component-propagation-notice.js.map +1 -0
  349. package/src/lib/hooks/use-debounced-commit.d.ts +43 -0
  350. package/src/lib/hooks/use-debounced-commit.js +88 -0
  351. package/src/lib/hooks/use-debounced-commit.js.map +1 -0
  352. package/src/lib/hooks/use-delete-element-callback.d.ts +24 -0
  353. package/src/lib/hooks/use-delete-element-callback.js +82 -0
  354. package/src/lib/hooks/use-delete-element-callback.js.map +1 -0
  355. package/src/lib/hooks/use-detail-hover-intent.d.ts +76 -0
  356. package/src/lib/hooks/use-detail-hover-intent.js +123 -0
  357. package/src/lib/hooks/use-detail-hover-intent.js.map +1 -0
  358. package/src/lib/hooks/use-document-repair-callbacks.d.ts +50 -0
  359. package/src/lib/hooks/use-document-repair-callbacks.js +237 -0
  360. package/src/lib/hooks/use-document-repair-callbacks.js.map +1 -0
  361. package/src/lib/hooks/use-insert-token-options.d.ts +52 -0
  362. package/src/lib/hooks/use-insert-token-options.js +230 -0
  363. package/src/lib/hooks/use-insert-token-options.js.map +1 -0
  364. package/src/lib/hooks/use-leaf-drag.d.ts +24 -0
  365. package/src/lib/hooks/use-leaf-drag.js +28 -0
  366. package/src/lib/hooks/use-leaf-drag.js.map +1 -0
  367. package/src/lib/hooks/use-leaf-drop.d.ts +31 -0
  368. package/src/lib/hooks/use-leaf-drop.js +43 -0
  369. package/src/lib/hooks/use-leaf-drop.js.map +1 -0
  370. package/src/lib/hooks/use-markdown-media-picker.d.ts +63 -0
  371. package/src/lib/hooks/use-markdown-media-picker.js +110 -0
  372. package/src/lib/hooks/use-markdown-media-picker.js.map +1 -0
  373. package/src/lib/hooks/use-media-asset-facts-overlay.d.ts +43 -0
  374. package/src/lib/hooks/use-media-asset-facts-overlay.js +133 -0
  375. package/src/lib/hooks/use-media-asset-facts-overlay.js.map +1 -0
  376. package/src/lib/hooks/use-move-node-callbacks.d.ts +22 -0
  377. package/src/lib/hooks/use-move-node-callbacks.js +57 -0
  378. package/src/lib/hooks/use-move-node-callbacks.js.map +1 -0
  379. package/src/lib/hooks/use-node-with-host-tokens.d.ts +42 -0
  380. package/src/lib/hooks/use-node-with-host-tokens.js +59 -0
  381. package/src/lib/hooks/use-node-with-host-tokens.js.map +1 -0
  382. package/src/lib/hooks/use-picker-filter.d.ts +61 -0
  383. package/src/lib/hooks/use-picker-filter.js +122 -0
  384. package/src/lib/hooks/use-picker-filter.js.map +1 -0
  385. package/src/lib/hooks/use-repeat-preview.d.ts +64 -0
  386. package/src/lib/hooks/use-repeat-preview.js +214 -0
  387. package/src/lib/hooks/use-repeat-preview.js.map +1 -0
  388. package/src/lib/hooks/use-repeat-sources.d.ts +17 -0
  389. package/src/lib/hooks/use-repeat-sources.js +41 -0
  390. package/src/lib/hooks/use-repeat-sources.js.map +1 -0
  391. package/src/lib/hooks/use-visible-component-categories.d.ts +37 -0
  392. package/src/lib/hooks/use-visible-component-categories.js +79 -0
  393. package/src/lib/hooks/use-visible-component-categories.js.map +1 -0
  394. package/src/lib/utils/active-host-theme.d.ts +28 -0
  395. package/src/lib/utils/active-host-theme.js +77 -0
  396. package/src/lib/utils/active-host-theme.js.map +1 -0
  397. package/src/lib/utils/attr-target.d.ts +170 -0
  398. package/src/lib/utils/attr-target.js +229 -0
  399. package/src/lib/utils/attr-target.js.map +1 -0
  400. package/src/lib/utils/attribute-field-value.d.ts +21 -0
  401. package/src/lib/utils/attribute-field-value.js +28 -0
  402. package/src/lib/utils/attribute-field-value.js.map +1 -0
  403. package/src/lib/utils/canvas-context-menu.d.ts +28 -0
  404. package/src/lib/utils/canvas-context-menu.js +56 -0
  405. package/src/lib/utils/canvas-context-menu.js.map +1 -0
  406. package/src/lib/utils/canvas-reveal.d.ts +115 -0
  407. package/src/lib/utils/canvas-reveal.js +165 -0
  408. package/src/lib/utils/canvas-reveal.js.map +1 -0
  409. package/src/lib/utils/describe-element.d.ts +72 -0
  410. package/src/lib/utils/describe-element.js +159 -0
  411. package/src/lib/utils/describe-element.js.map +1 -0
  412. package/src/lib/utils/device-preview-styles.d.ts +89 -0
  413. package/src/lib/utils/device-preview-styles.js +228 -0
  414. package/src/lib/utils/device-preview-styles.js.map +1 -0
  415. package/src/lib/utils/docs-help.d.ts +22 -0
  416. package/src/lib/utils/docs-help.generated.d.ts +47 -0
  417. package/src/lib/utils/docs-help.generated.js +229 -0
  418. package/src/lib/utils/docs-help.generated.js.map +1 -0
  419. package/src/lib/utils/docs-help.js +37 -0
  420. package/src/lib/utils/docs-help.js.map +1 -0
  421. package/src/lib/utils/held-answers-store.d.ts +59 -0
  422. package/src/lib/utils/held-answers-store.js +94 -0
  423. package/src/lib/utils/held-answers-store.js.map +1 -0
  424. package/src/lib/utils/in-place-edit-surface.d.ts +118 -0
  425. package/src/lib/utils/in-place-edit-surface.js +164 -0
  426. package/src/lib/utils/in-place-edit-surface.js.map +1 -0
  427. package/src/lib/utils/inline-markdown-edit.store.d.ts +71 -0
  428. package/src/lib/utils/inline-markdown-edit.store.js +90 -0
  429. package/src/lib/utils/inline-markdown-edit.store.js.map +1 -0
  430. package/src/lib/utils/inline-text-edit.store.d.ts +85 -0
  431. package/src/lib/utils/inline-text-edit.store.js +78 -0
  432. package/src/lib/utils/inline-text-edit.store.js.map +1 -0
  433. package/src/lib/utils/instance-leaf-hit.d.ts +39 -0
  434. package/src/lib/utils/instance-leaf-hit.js +56 -0
  435. package/src/lib/utils/instance-leaf-hit.js.map +1 -0
  436. package/src/lib/utils/muted-classes.d.ts +76 -0
  437. package/src/lib/utils/muted-classes.js +108 -0
  438. package/src/lib/utils/muted-classes.js.map +1 -0
  439. package/src/lib/utils/muted-styles.d.ts +125 -0
  440. package/src/lib/utils/muted-styles.js +193 -0
  441. package/src/lib/utils/muted-styles.js.map +1 -0
  442. package/src/lib/utils/numeric-text-value.d.ts +42 -0
  443. package/src/lib/utils/numeric-text-value.js +47 -0
  444. package/src/lib/utils/numeric-text-value.js.map +1 -0
  445. package/src/lib/utils/preset-interactions.d.ts +37 -0
  446. package/src/lib/utils/preset-interactions.js +87 -0
  447. package/src/lib/utils/preset-interactions.js.map +1 -0
  448. package/src/lib/utils/publish-failure-message.d.ts +35 -0
  449. package/src/lib/utils/publish-failure-message.js +51 -0
  450. package/src/lib/utils/publish-failure-message.js.map +1 -0
  451. package/src/lib/utils/rank-picker-results.d.ts +45 -0
  452. package/src/lib/utils/rank-picker-results.js +136 -0
  453. package/src/lib/utils/rank-picker-results.js.map +1 -0
  454. package/src/lib/utils/responsive-sx.d.ts +65 -0
  455. package/src/lib/utils/responsive-sx.js +129 -0
  456. package/src/lib/utils/responsive-sx.js.map +1 -0
  457. package/src/lib/utils/rich-text-commands.d.ts +28 -0
  458. package/src/lib/utils/rich-text-commands.js +43 -0
  459. package/src/lib/utils/rich-text-commands.js.map +1 -0
  460. package/src/lib/utils/sanitize-rich-text.d.ts +52 -0
  461. package/src/lib/utils/sanitize-rich-text.js +173 -0
  462. package/src/lib/utils/sanitize-rich-text.js.map +1 -0
  463. package/src/lib/utils/state-sx.d.ts +255 -0
  464. package/src/lib/utils/state-sx.js +338 -0
  465. package/src/lib/utils/state-sx.js.map +1 -0
  466. package/src/lib/utils/style-field-groups.d.ts +136 -0
  467. package/src/lib/utils/style-field-groups.js +874 -0
  468. package/src/lib/utils/style-field-groups.js.map +1 -0
  469. package/src/lib/utils/style-field-search.d.ts +84 -0
  470. package/src/lib/utils/style-field-search.js +505 -0
  471. package/src/lib/utils/style-field-search.js.map +1 -0
  472. package/src/lib/utils/style-target.d.ts +69 -0
  473. package/src/lib/utils/style-target.js +203 -0
  474. package/src/lib/utils/style-target.js.map +1 -0
  475. package/src/lib/utils/theme-scale-options.d.ts +169 -0
  476. package/src/lib/utils/theme-scale-options.js +702 -0
  477. package/src/lib/utils/theme-scale-options.js.map +1 -0
  478. package/src/lib/utils/token-editable-dom.d.ts +82 -0
  479. package/src/lib/utils/token-editable-dom.js +280 -0
  480. package/src/lib/utils/token-editable-dom.js.map +1 -0
  481. package/src/lib/utils/token-segments.d.ts +111 -0
  482. package/src/lib/utils/token-segments.js +246 -0
  483. package/src/lib/utils/token-segments.js.map +1 -0
  484. package/src/lib/utils/visibility-styles.d.ts +38 -0
  485. package/src/lib/utils/visibility-styles.js +54 -0
  486. package/src/lib/utils/visibility-styles.js.map +1 -0
@@ -0,0 +1,332 @@
1
+ import { _ as _extends } from "@swc/helpers/_/_extends";
2
+ import { _ as _object_without_properties_loose } from "@swc/helpers/_/_object_without_properties_loose";
3
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
4
+ /**
5
+ * @license
6
+ * Copyright 2024 Aglyn LLC
7
+ *
8
+ * Licensed under the Apache License, Version 2.0 (the "License");
9
+ * you may not use this file except in compliance with the License.
10
+ * You may obtain a copy of the License at
11
+ *
12
+ * http://www.apache.org/licenses/LICENSE-2.0
13
+ *
14
+ * Unless required by applicable law or agreed to in writing, software
15
+ * distributed under the License is distributed on an "AS IS" BASIS,
16
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ * See the License for the specific language governing permissions and
18
+ * limitations under the License.
19
+ */ import { canvas, LAYOUT_SLOT_COMPONENT_ID, NODE_ROOT_ID } from "@aglyn/aglyn";
20
+ // Deep import, NOT the barrel (AGL-2486) — see `plugin-styles-ui.tsx`.
21
+ import { PluginStyles } from "@aglyn/aglyn/plugin-manager/plugin-styles-ui";
22
+ import { AglynNodeRenderer, Leaf, LeafSxTransformContext } from "@aglyn/aglyn-node-renderer";
23
+ import * as Besigner from "@aglyn/besigner";
24
+ import { useAglynSiteTheme } from "@aglyn/aglyn-node-renderer";
25
+ import { MuiShadowDom, useMuiShadowDomContext } from "@aglyn/shared-ui-jsx";
26
+ import { styled, ThemeProvider, useHostThemeDocument } from "@aglyn/shared-ui-theme";
27
+ import { Box, CssBaseline, GlobalStyles } from "@mui/material";
28
+ import { observer } from "mobx-react-lite";
29
+ // import {MuiShadowDom} from '@aglyn/shared-ui-jsx'
30
+ import { forwardRef, useCallback, useMemo } from "react";
31
+ import { CanvasHostTokensProvider } from "../contexts/canvas-host-tokens-context.js";
32
+ import CanvasRevealContext, { CanvasMutedClassesContext } from "../contexts/canvas-reveal-context.js";
33
+ import { useLayoutChromeContext } from "../contexts/layout-chrome-context.js";
34
+ import useAglynBesignerFlag from "../hooks/use-aglyn-besigner-flag.js";
35
+ import { createDevicePinnedTheme, devicePreviewWidth, resolveSxForDeviceWidth } from "../utils/device-preview-styles.js";
36
+ import { applyMutedStyles } from "../utils/muted-styles.js";
37
+ import { hoistStateSx } from "../utils/state-sx.js";
38
+ import CanvasDropIndicator from "./dnd/canvas-drop-indicator.js";
39
+ import InlineMarkdownEditorComponent from "./inline-markdown-editor.component.js";
40
+ import InlineTextEditorComponent from "./inline-text-editor.component.js";
41
+ import NodeLeaf, { MediaFactsLeaf } from "./node-leaf.js";
42
+ import NodeOverlay from "./node-overlay.js";
43
+ const ViewportFrame = styled('div', {
44
+ name: 'AglynViewportFrame'
45
+ })(({ theme })=>{
46
+ // In CSS vars mode, theme.palette.* is pinned to the static light-mode values.
47
+ // Use (theme.vars || theme) so these resolve to CSS custom-property references
48
+ // that update automatically when setMode() applies the .dark class.
49
+ const t = theme;
50
+ const tv = t.vars || theme;
51
+ return {
52
+ flexGrow: 1,
53
+ minHeight: '100%',
54
+ width: '100%',
55
+ background: tv.palette.background.paper,
56
+ borderColor: tv.palette.divider,
57
+ borderWidth: `0.3em`,
58
+ borderStyle: 'solid',
59
+ display: 'flex'
60
+ };
61
+ });
62
+ ViewportFrame.displayName = 'ViewportFrame';
63
+ const SiteShadowDom = styled(MuiShadowDom.div, {
64
+ name: 'AglynViewportShadowDom'
65
+ })(({ theme })=>({
66
+ minHeight: '100%',
67
+ width: '100%',
68
+ /**
69
+ * Positioning hack
70
+ * @see https://stackoverflow.com/a/70422489/16134372
71
+ */ transform: 'scale(1)'
72
+ }));
73
+ SiteShadowDom.displayName = 'SiteShadowDom';
74
+ const FramePaper = styled('div', {
75
+ name: 'AglynFramePaper'
76
+ })(({ theme })=>{
77
+ const tv = theme.vars || theme;
78
+ return _extends({}, theme.typography.body1, {
79
+ color: tv.palette.text.primary,
80
+ backgroundColor: tv.palette.background.default,
81
+ colorScheme: theme.palette.mode,
82
+ WebkitFontSmoothing: 'antialiased',
83
+ MozOsxFontSmoothing: 'grayscale',
84
+ height: '100%',
85
+ width: '100%',
86
+ [`> [data-aglyn="leaf\\:_@_"]`]: {
87
+ minHeight: '100%',
88
+ width: '100%'
89
+ }
90
+ });
91
+ });
92
+ FramePaper.displayName = 'FramePaper';
93
+ /**
94
+ * What `CssBaseline` gives a published page and a closed shadow root never
95
+ * inherits (AGL-3146).
96
+ *
97
+ * `:host { all: initial }` cuts inheritance at the artboard, so the canvas
98
+ * carries the document baseline itself — `FramePaper` takes the body's
99
+ * typography, color and background, and the structural half belongs here,
100
+ * because `box-sizing` is inherited from the root element rather than set on
101
+ * each one. Without it every element on the canvas is `content-box` while the
102
+ * same element on the site is `border-box`, so a band that sets a height AND
103
+ * padding measures the padding twice in the editor and once on the page.
104
+ *
105
+ * The same pair CssBaseline emits, for the same reason: declared on the host
106
+ * and inherited by everything under it, so an author's own `box-sizing` still
107
+ * wins wherever they set one.
108
+ */ export const VIEWPORT_BASELINE_STYLES = {
109
+ ':host': {
110
+ all: 'initial',
111
+ boxSizing: 'border-box'
112
+ },
113
+ '*, *::before, *::after': {
114
+ boxSizing: 'inherit'
115
+ }
116
+ };
117
+ const ViewportGlobalStyles = /*#__PURE__*/ _jsx(GlobalStyles, {
118
+ styles: _extends({}, VIEWPORT_BASELINE_STYLES, {
119
+ // Canvas-sense for aglyn-hidden elements (AGL-592): start closed
120
+ // like the live site, and stay closed unless the leaf itself is
121
+ // flagged as revealed. `node-leaf` decides that from the reveal
122
+ // toggle and the selection and stamps the flag on the hidden
123
+ // element — the same element this rule hides — so no wrapper a
124
+ // component renders around its children can separate the two.
125
+ // Expressed as a :not() guard (not hide-then-revert) so a revealed
126
+ // panel keeps its natural display. Injected into the closed shadow
127
+ // root via the shadow-scoped emotion cache — the live tenant is
128
+ // untouched.
129
+ '.aglyn-hidden:not([data-aglyn-revealed])': {
130
+ display: 'none !important'
131
+ }
132
+ })
133
+ });
134
+ const ThemedElementContainer = ({ children })=>{
135
+ var _hostTheme_breakpoints;
136
+ const shadowDom = useMuiShadowDomContext();
137
+ const hostThemeDoc = useHostThemeDocument();
138
+ const [canvasScheme] = useAglynBesignerFlag('canvasScheme');
139
+ const hostTheme = useAglynSiteTheme({
140
+ container: shadowDom,
141
+ theme: hostThemeDoc,
142
+ scheme: canvasScheme
143
+ });
144
+ // Artboard device preview (AGL-581): media queries evaluate against
145
+ // the browser viewport, never the artboard, so a selected device pins
146
+ // the canvas subtree instead — a theme whose breakpoint helpers are
147
+ // forced for the device width (responsive sx values, Stack/Grid
148
+ // props, component styles), plus a per-Leaf sx transform that
149
+ // resolves width media keys (visibility bands, custom CSS) at that
150
+ // width. Fluid Responsive leaves both untouched, and the published
151
+ // tenant never mounts any of this.
152
+ const [devicePreview] = useAglynBesignerFlag('devicePreview');
153
+ const deviceWidth = devicePreviewWidth(devicePreview, (_hostTheme_breakpoints = hostTheme.breakpoints) == null ? void 0 : _hostTheme_breakpoints.values);
154
+ const canvasTheme = useMemo(()=>deviceWidth == null ? hostTheme : createDevicePinnedTheme(hostTheme, deviceWidth), [
155
+ hostTheme,
156
+ deviceWidth
157
+ ]);
158
+ // Interaction-state hold (AGL-2486): while the Styles panel is editing a
159
+ // state slice, the SELECTED element renders as if it were in that state —
160
+ // you cannot hover an element from a side panel, so a state you cannot see
161
+ // is a state you cannot design. Composed into the SAME canvas-only
162
+ // transform the device-width pin uses, so there is still exactly one
163
+ // substitution path and the tenant (which never mounts this provider) is
164
+ // untouched. The hoist runs FIRST so a media key inside the slice reaches
165
+ // the width transform at the top level.
166
+ const [heldState] = useAglynBesignerFlag('heldState');
167
+ const [heldStateNodeId] = useAglynBesignerFlag('heldStateNodeId');
168
+ // Declarations switched off for comparison (AGL-2486). Third rider on the
169
+ // same canvas-only transform, and it runs FIRST: a muted base declaration
170
+ // has to be gone before a held state's slice is folded over it, and a muted
171
+ // slice declaration has to leave the slice so the base shows through.
172
+ const [mutedStyles] = useAglynBesignerFlag('mutedStyles');
173
+ const sxTransform = useMemo(()=>{
174
+ const held = heldState && heldStateNodeId ? heldState : null;
175
+ const muted = (mutedStyles == null ? void 0 : mutedStyles.length) ? mutedStyles : null;
176
+ if (deviceWidth == null && !held && !muted) return undefined;
177
+ return (sx, nodeId)=>{
178
+ const unmuted = muted ? applyMutedStyles(sx, nodeId, muted) : sx;
179
+ const scoped = held && nodeId === heldStateNodeId ? hoistStateSx(unmuted, held) : unmuted;
180
+ return deviceWidth == null ? scoped : resolveSxForDeviceWidth(scoped, deviceWidth);
181
+ };
182
+ }, [
183
+ deviceWidth,
184
+ heldState,
185
+ heldStateNodeId,
186
+ mutedStyles
187
+ ]);
188
+ // Elements the author opened up for designing (AGL-592). Subscribed once
189
+ // here, exactly like the held state above, and handed down by context so a
190
+ // canvas of several hundred leaves carries one subscription rather than one
191
+ // per element.
192
+ const [revealedNodeIds] = useAglynBesignerFlag('revealedNodeIds');
193
+ // Classes switched off for comparison (AGL-2486), subscribed the same way.
194
+ const [mutedClasses] = useAglynBesignerFlag('mutedClasses');
195
+ return /*#__PURE__*/ _jsxs(ThemeProvider, {
196
+ theme: canvasTheme,
197
+ children: [
198
+ /*#__PURE__*/ _jsx(CssBaseline, {}),
199
+ /*#__PURE__*/ _jsx(CanvasRevealContext.Provider, {
200
+ value: revealedNodeIds,
201
+ children: /*#__PURE__*/ _jsx(CanvasMutedClassesContext.Provider, {
202
+ value: mutedClasses,
203
+ children: /*#__PURE__*/ _jsx(LeafSxTransformContext.Provider, {
204
+ value: sxTransform,
205
+ children: /*#__PURE__*/ _jsx(CanvasHostTokensProvider, {
206
+ children: children
207
+ })
208
+ })
209
+ })
210
+ })
211
+ ]
212
+ });
213
+ };
214
+ const EditableScreenRenderer = observer(()=>/*#__PURE__*/ _jsx(AglynNodeRenderer, {
215
+ node: canvas.getNode(NODE_ROOT_ID),
216
+ LeafComponent: NodeLeaf
217
+ }));
218
+ EditableScreenRenderer.displayName = 'EditableScreenRenderer';
219
+ /**
220
+ * Leaf for the read-only layout chrome tree: the LayoutSlot renders the
221
+ * editable screen canvas after any chrome the designer left inside the slot
222
+ * (matching composition semantics); everything else renders with the
223
+ * production Leaf, which carries none of the designer's selection/dnd
224
+ * behavior — the chrome is locked by construction.
225
+ */ const LayoutChromeLeaf = /*#__PURE__*/ forwardRef((props, ref)=>{
226
+ const { node, children } = props, rest = _object_without_properties_loose(props, [
227
+ "node",
228
+ "children"
229
+ ]);
230
+ if ((node == null ? void 0 : node.componentId) === LAYOUT_SLOT_COMPONENT_ID) {
231
+ return /*#__PURE__*/ _jsxs(Leaf, _extends({
232
+ ref: ref,
233
+ node: node
234
+ }, rest, {
235
+ children: [
236
+ children,
237
+ /*#__PURE__*/ _jsx(EditableScreenRenderer, {})
238
+ ]
239
+ }));
240
+ }
241
+ // An image or film in the chrome shows its DAM asset's current facts, as the
242
+ // published page composes it (AGL-2838, AGL-2856).
243
+ return /*#__PURE__*/ _jsx(MediaFactsLeaf, _extends({
244
+ ref: ref,
245
+ node: node
246
+ }, rest, {
247
+ children: children
248
+ }));
249
+ });
250
+ LayoutChromeLeaf.displayName = 'LayoutChromeLeaf';
251
+ const SiteContainer = observer(/*#__PURE__*/ forwardRef((props, ref)=>{
252
+ const {} = props, rest = _extends({}, props);
253
+ const { chromeCanvas } = useLayoutChromeContext();
254
+ const chromeRoot = chromeCanvas == null ? void 0 : chromeCanvas.getNode(NODE_ROOT_ID);
255
+ return /*#__PURE__*/ _jsx(SiteShadowDom, _extends({
256
+ ref: ref,
257
+ "data-aglyn": 'viewport:dom',
258
+ mode: "closed"
259
+ }, rest, {
260
+ children: /*#__PURE__*/ _jsxs(_Fragment, {
261
+ children: [
262
+ ViewportGlobalStyles,
263
+ /*#__PURE__*/ _jsx(PluginStyles, {
264
+ scope: "shadow"
265
+ }),
266
+ /*#__PURE__*/ _jsx(ThemedElementContainer, {
267
+ children: /*#__PURE__*/ _jsx(FramePaper, {
268
+ children: chromeRoot ? /*#__PURE__*/ _jsx(AglynNodeRenderer, {
269
+ node: chromeRoot,
270
+ LeafComponent: LayoutChromeLeaf
271
+ }) : /*#__PURE__*/ _jsx(EditableScreenRenderer, {})
272
+ })
273
+ })
274
+ ]
275
+ })
276
+ }));
277
+ }));
278
+ const Overlays = /*#__PURE__*/ forwardRef((props, ref)=>{
279
+ const {} = props, rest = _extends({}, props);
280
+ return /*#__PURE__*/ _jsxs(Box, _extends({
281
+ ref: ref,
282
+ "data-aglyn": "viewport:popover",
283
+ sx: {
284
+ // position: 'relative',
285
+ // Above the canvas content, below the designer chrome (app bars and
286
+ // breadcrumbs sit at zIndex.appBar) within the workspace context.
287
+ zIndex: 10
288
+ }
289
+ }, rest, {
290
+ children: [
291
+ /*#__PURE__*/ _jsx(NodeOverlay, {
292
+ "data-aglyn": "overlay:hovered",
293
+ variant: "hovered"
294
+ }),
295
+ /*#__PURE__*/ _jsx(NodeOverlay, {
296
+ "data-aglyn": "overlay:selected",
297
+ variant: "selected"
298
+ }),
299
+ /*#__PURE__*/ _jsx(CanvasDropIndicator, {}),
300
+ /*#__PURE__*/ _jsx(InlineTextEditorComponent, {}),
301
+ /*#__PURE__*/ _jsx(InlineMarkdownEditorComponent, {})
302
+ ]
303
+ }));
304
+ });
305
+ export const ViewportFrameComponent = /*#__PURE__*/ forwardRef((props, ref)=>{
306
+ const { onMouseLeave } = props, rest = _object_without_properties_loose(props, [
307
+ "onMouseLeave"
308
+ ]);
309
+ const handlePointerLeave = useCallback((e)=>{
310
+ // e.stopPropagation()
311
+ Besigner.focus.clearHover();
312
+ onMouseLeave && onMouseLeave(e);
313
+ }, [
314
+ onMouseLeave
315
+ ]);
316
+ return /*#__PURE__*/ _jsxs(ViewportFrame, _extends({
317
+ ref: ref,
318
+ "data-aglyn": "viewport:frame",
319
+ onMouseLeave: handlePointerLeave,
320
+ onPointerLeave: handlePointerLeave
321
+ }, rest, {
322
+ children: [
323
+ /*#__PURE__*/ _jsx(SiteContainer, {}),
324
+ /*#__PURE__*/ _jsx(Overlays, {})
325
+ ]
326
+ }));
327
+ });
328
+ ViewportFrameComponent.displayName = 'ViewportFrameComponent';
329
+ ViewportFrameComponent.aglyn = true;
330
+ export default ViewportFrameComponent;
331
+
332
+ //# sourceMappingURL=viewport-frame.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../../libs/besigner/feature/designer/src/lib/components/viewport-frame.component.tsx"],"sourcesContent":["/**\n * @license\n * Copyright 2024 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 { canvas, LAYOUT_SLOT_COMPONENT_ID, NODE_ROOT_ID } from '@aglyn/aglyn'\n// Deep import, NOT the barrel (AGL-2486) — see `plugin-styles-ui.tsx`.\nimport { PluginStyles } from '@aglyn/aglyn/plugin-manager/plugin-styles-ui'\nimport {\n AglynNodeRenderer,\n Leaf,\n LeafSxTransformContext,\n} from '@aglyn/aglyn-node-renderer'\nimport * as Besigner from '@aglyn/besigner'\nimport { useAglynSiteTheme } from '@aglyn/aglyn-node-renderer'\nimport {\n MuiShadowDom,\n type MuiShadowRootProps,\n useMuiShadowDomContext,\n} from '@aglyn/shared-ui-jsx'\nimport {\n styled,\n ThemeProvider,\n useHostThemeDocument,\n} from '@aglyn/shared-ui-theme'\nimport { Box, type BoxProps, CssBaseline, GlobalStyles } from '@mui/material'\nimport { observer } from 'mobx-react-lite'\n// import {MuiShadowDom} from '@aglyn/shared-ui-jsx'\nimport {\n type ComponentProps,\n forwardRef,\n HTMLAttributes,\n useCallback,\n useMemo,\n} from 'react'\nimport { CanvasHostTokensProvider } from '../contexts/canvas-host-tokens-context'\nimport CanvasRevealContext, {\n CanvasMutedClassesContext,\n} from '../contexts/canvas-reveal-context'\nimport { useLayoutChromeContext } from '../contexts/layout-chrome-context'\nimport useAglynBesignerFlag from '../hooks/use-aglyn-besigner-flag'\nimport {\n createDevicePinnedTheme,\n devicePreviewWidth,\n resolveSxForDeviceWidth,\n} from '../utils/device-preview-styles'\nimport { applyMutedStyles } from '../utils/muted-styles'\nimport { hoistStateSx } from '../utils/state-sx'\nimport CanvasDropIndicator from './dnd/canvas-drop-indicator'\nimport InlineMarkdownEditorComponent from './inline-markdown-editor.component'\nimport InlineTextEditorComponent from './inline-text-editor.component'\nimport NodeLeaf, { MediaFactsLeaf } from './node-leaf'\nimport NodeOverlay from './node-overlay'\n\nconst ViewportFrame = styled('div', {\n name: 'AglynViewportFrame',\n})(({ theme }) => {\n // In CSS vars mode, theme.palette.* is pinned to the static light-mode values.\n // Use (theme.vars || theme) so these resolve to CSS custom-property references\n // that update automatically when setMode() applies the .dark class.\n const t = theme as any\n const tv = t.vars || theme\n return {\n flexGrow: 1,\n minHeight: '100%',\n width: '100%',\n background: tv.palette.background.paper,\n borderColor: tv.palette.divider,\n borderWidth: `0.3em`,\n borderStyle: 'solid',\n display: 'flex',\n // position: 'relative',\n }\n})\nViewportFrame.displayName = 'ViewportFrame'\n\ntype SiteShadowDomProps = HTMLAttributes<HTMLDivElement> & MuiShadowRootProps\nconst SiteShadowDom = styled(MuiShadowDom.div, {\n name: 'AglynViewportShadowDom',\n})<SiteShadowDomProps>(({ theme }) => ({\n minHeight: '100%',\n width: '100%',\n /**\n * Positioning hack\n * @see https://stackoverflow.com/a/70422489/16134372\n */\n transform: 'scale(1)',\n}))\nSiteShadowDom.displayName = 'SiteShadowDom'\nconst FramePaper = styled('div', {\n name: 'AglynFramePaper',\n})<SiteShadowDomProps>(({ theme }) => {\n const tv = (theme as any).vars || theme\n return {\n // CssBaseline styles the document body, which a closed shadow root never\n // sees (and `:host { all: initial }` resets inheritance), so this surface\n // carries the body-level baseline itself.\n ...theme.typography.body1,\n color: tv.palette.text.primary,\n backgroundColor: tv.palette.background.default,\n colorScheme: theme.palette.mode,\n WebkitFontSmoothing: 'antialiased',\n MozOsxFontSmoothing: 'grayscale',\n height: '100%',\n width: '100%',\n [`> [data-aglyn=\"leaf\\\\:_@_\"]`]: {\n minHeight: '100%',\n width: '100%',\n },\n }\n})\nFramePaper.displayName = 'FramePaper'\n\n/**\n * What `CssBaseline` gives a published page and a closed shadow root never\n * inherits (AGL-3146).\n *\n * `:host { all: initial }` cuts inheritance at the artboard, so the canvas\n * carries the document baseline itself — `FramePaper` takes the body's\n * typography, color and background, and the structural half belongs here,\n * because `box-sizing` is inherited from the root element rather than set on\n * each one. Without it every element on the canvas is `content-box` while the\n * same element on the site is `border-box`, so a band that sets a height AND\n * padding measures the padding twice in the editor and once on the page.\n *\n * The same pair CssBaseline emits, for the same reason: declared on the host\n * and inherited by everything under it, so an author's own `box-sizing` still\n * wins wherever they set one.\n */\nexport const VIEWPORT_BASELINE_STYLES = {\n ':host': {\n all: 'initial',\n boxSizing: 'border-box',\n },\n '*, *::before, *::after': {\n boxSizing: 'inherit',\n },\n} as const\n\nconst ViewportGlobalStyles = (\n <GlobalStyles\n styles={{\n ...VIEWPORT_BASELINE_STYLES,\n // Canvas-sense for aglyn-hidden elements (AGL-592): start closed\n // like the live site, and stay closed unless the leaf itself is\n // flagged as revealed. `node-leaf` decides that from the reveal\n // toggle and the selection and stamps the flag on the hidden\n // element — the same element this rule hides — so no wrapper a\n // component renders around its children can separate the two.\n // Expressed as a :not() guard (not hide-then-revert) so a revealed\n // panel keeps its natural display. Injected into the closed shadow\n // root via the shadow-scoped emotion cache — the live tenant is\n // untouched.\n '.aglyn-hidden:not([data-aglyn-revealed])': {\n display: 'none !important',\n },\n }}\n />\n)\nconst ThemedElementContainer = ({ children }) => {\n const shadowDom = useMuiShadowDomContext()\n const hostThemeDoc = useHostThemeDocument()\n const [canvasScheme] = useAglynBesignerFlag('canvasScheme')\n const hostTheme = useAglynSiteTheme({\n container: shadowDom,\n theme: hostThemeDoc,\n scheme: canvasScheme,\n })\n // Artboard device preview (AGL-581): media queries evaluate against\n // the browser viewport, never the artboard, so a selected device pins\n // the canvas subtree instead — a theme whose breakpoint helpers are\n // forced for the device width (responsive sx values, Stack/Grid\n // props, component styles), plus a per-Leaf sx transform that\n // resolves width media keys (visibility bands, custom CSS) at that\n // width. Fluid Responsive leaves both untouched, and the published\n // tenant never mounts any of this.\n const [devicePreview] = useAglynBesignerFlag('devicePreview')\n const deviceWidth = devicePreviewWidth(\n devicePreview,\n hostTheme.breakpoints?.values,\n )\n const canvasTheme = useMemo(\n () =>\n deviceWidth == null\n ? hostTheme\n : createDevicePinnedTheme(hostTheme, deviceWidth),\n [hostTheme, deviceWidth],\n )\n // Interaction-state hold (AGL-2486): while the Styles panel is editing a\n // state slice, the SELECTED element renders as if it were in that state —\n // you cannot hover an element from a side panel, so a state you cannot see\n // is a state you cannot design. Composed into the SAME canvas-only\n // transform the device-width pin uses, so there is still exactly one\n // substitution path and the tenant (which never mounts this provider) is\n // untouched. The hoist runs FIRST so a media key inside the slice reaches\n // the width transform at the top level.\n const [heldState] = useAglynBesignerFlag('heldState')\n const [heldStateNodeId] = useAglynBesignerFlag('heldStateNodeId')\n // Declarations switched off for comparison (AGL-2486). Third rider on the\n // same canvas-only transform, and it runs FIRST: a muted base declaration\n // has to be gone before a held state's slice is folded over it, and a muted\n // slice declaration has to leave the slice so the base shows through.\n const [mutedStyles] = useAglynBesignerFlag('mutedStyles')\n const sxTransform = useMemo(() => {\n const held = heldState && heldStateNodeId ? heldState : null\n const muted = mutedStyles?.length ? mutedStyles : null\n if (deviceWidth == null && !held && !muted) return undefined\n return (sx: unknown, nodeId?: string) => {\n const unmuted = muted ? applyMutedStyles(sx, nodeId, muted) : sx\n const scoped =\n held && nodeId === heldStateNodeId\n ? hoistStateSx(unmuted, held)\n : unmuted\n return deviceWidth == null\n ? scoped\n : resolveSxForDeviceWidth(scoped, deviceWidth)\n }\n }, [deviceWidth, heldState, heldStateNodeId, mutedStyles])\n // Elements the author opened up for designing (AGL-592). Subscribed once\n // here, exactly like the held state above, and handed down by context so a\n // canvas of several hundred leaves carries one subscription rather than one\n // per element.\n const [revealedNodeIds] = useAglynBesignerFlag('revealedNodeIds')\n // Classes switched off for comparison (AGL-2486), subscribed the same way.\n const [mutedClasses] = useAglynBesignerFlag('mutedClasses')\n return (\n <ThemeProvider theme={canvasTheme}>\n <CssBaseline />\n <CanvasRevealContext.Provider value={revealedNodeIds}>\n <CanvasMutedClassesContext.Provider value={mutedClasses}>\n <LeafSxTransformContext.Provider value={sxTransform}>\n {/* The site whose host variables every leaf fills in (AGL-2881),\n decided once for the editable document and its chrome alike. */}\n <CanvasHostTokensProvider>{children}</CanvasHostTokensProvider>\n </LeafSxTransformContext.Provider>\n </CanvasMutedClassesContext.Provider>\n </CanvasRevealContext.Provider>\n </ThemeProvider>\n )\n}\n\nconst EditableScreenRenderer = observer(() => (\n <AglynNodeRenderer\n node={canvas.getNode(NODE_ROOT_ID)!}\n LeafComponent={NodeLeaf}\n />\n))\nEditableScreenRenderer.displayName = 'EditableScreenRenderer'\n\n/**\n * Leaf for the read-only layout chrome tree: the LayoutSlot renders the\n * editable screen canvas after any chrome the designer left inside the slot\n * (matching composition semantics); everything else renders with the\n * production Leaf, which carries none of the designer's selection/dnd\n * behavior — the chrome is locked by construction.\n */\nconst LayoutChromeLeaf = forwardRef<any, any>((props, ref) => {\n const { node, children, ...rest } = props\n if (node?.componentId === LAYOUT_SLOT_COMPONENT_ID) {\n return (\n <Leaf ref={ref} node={node} {...rest}>\n {children}\n <EditableScreenRenderer />\n </Leaf>\n )\n }\n // An image or film in the chrome shows its DAM asset's current facts, as the\n // published page composes it (AGL-2838, AGL-2856).\n return (\n <MediaFactsLeaf ref={ref} node={node} {...rest}>\n {children}\n </MediaFactsLeaf>\n )\n})\nLayoutChromeLeaf.displayName = 'LayoutChromeLeaf'\n\nconst SiteContainer = observer(\n forwardRef<any, SiteShadowDomProps>((props, ref) => {\n const { ...rest } = props\n const { chromeCanvas } = useLayoutChromeContext()\n const chromeRoot = chromeCanvas?.getNode(NODE_ROOT_ID)\n return (\n <SiteShadowDom\n ref={ref}\n data-aglyn={'viewport:dom'}\n mode=\"closed\"\n {...rest}\n >\n <>\n {ViewportGlobalStyles}\n {/* Plugin stylesheets (AGL-2486). THIS is the gap `8dc718ed4` named\n and left open: a plugin's raw CSS goes into `document.head`,\n which a `mode: 'closed'` shadow root with `:host { all: initial }`\n and no `adoptedStyleSheets` never sees. Measured — the identical\n rule that beats every `@layer mui` declaration on the published\n page had literally NO effect on this canvas. Rendered here as a\n plain `<style>` child, so it lands in the shadow root in the same\n unlayered slot it occupies on the published document; `shadow`\n scope is what pulls in the MIRRORED sheets a bundle injected into\n the console's own head, which is the copy that never crossed. */}\n <PluginStyles scope=\"shadow\" />\n <ThemedElementContainer>\n <FramePaper>\n {chromeRoot ? (\n <AglynNodeRenderer\n node={chromeRoot}\n LeafComponent={LayoutChromeLeaf}\n />\n ) : (\n <EditableScreenRenderer />\n )}\n </FramePaper>\n </ThemedElementContainer>\n </>\n </SiteShadowDom>\n )\n }),\n)\n\nconst Overlays = forwardRef<any, Partial<BoxProps>>((props, ref) => {\n const { ...rest } = props\n\n return (\n <Box\n ref={ref}\n data-aglyn=\"viewport:popover\"\n sx={{\n // position: 'relative',\n // Above the canvas content, below the designer chrome (app bars and\n // breadcrumbs sit at zIndex.appBar) within the workspace context.\n zIndex: 10,\n }}\n {...rest}\n >\n {/* Document order is the only thing separating these two. Each\n overlay root is a fixed-position popper and therefore its own\n stacking context, so a z-index declared inside one cannot lift it\n past the other — the roots paint in the order they are rendered.\n The overlay carrying the action strip goes LAST so its buttons stay\n above the other overlay's outline, which draws the SELECTED\n treatment whenever the pointer is resting on the selected node,\n i.e. whenever someone is reaching for those buttons. The canvas\n chrome rendered after them keeps painting above both. */}\n <NodeOverlay data-aglyn=\"overlay:hovered\" variant=\"hovered\" />\n <NodeOverlay data-aglyn=\"overlay:selected\" variant=\"selected\" />\n <CanvasDropIndicator />\n <InlineTextEditorComponent />\n <InlineMarkdownEditorComponent />\n </Box>\n )\n})\n\nexport interface ViewportFrameComponentProps extends ComponentProps<\n typeof ViewportFrame\n> {}\n\nexport const ViewportFrameComponent = forwardRef<\n any,\n ViewportFrameComponentProps\n>((props, ref) => {\n const { onMouseLeave, ...rest } = props\n\n const handlePointerLeave = useCallback(\n (e) => {\n // e.stopPropagation()\n Besigner.focus.clearHover()\n onMouseLeave && onMouseLeave(e)\n },\n [onMouseLeave],\n )\n\n return (\n <ViewportFrame\n ref={ref}\n data-aglyn=\"viewport:frame\"\n onMouseLeave={handlePointerLeave}\n onPointerLeave={handlePointerLeave}\n {...rest}\n >\n <SiteContainer />\n <Overlays />\n </ViewportFrame>\n )\n})\n\nViewportFrameComponent.displayName = 'ViewportFrameComponent'\nViewportFrameComponent.aglyn = true\n\nexport default ViewportFrameComponent\n"],"names":["canvas","LAYOUT_SLOT_COMPONENT_ID","NODE_ROOT_ID","PluginStyles","AglynNodeRenderer","Leaf","LeafSxTransformContext","Besigner","useAglynSiteTheme","MuiShadowDom","useMuiShadowDomContext","styled","ThemeProvider","useHostThemeDocument","Box","CssBaseline","GlobalStyles","observer","forwardRef","useCallback","useMemo","CanvasHostTokensProvider","CanvasRevealContext","CanvasMutedClassesContext","useLayoutChromeContext","useAglynBesignerFlag","createDevicePinnedTheme","devicePreviewWidth","resolveSxForDeviceWidth","applyMutedStyles","hoistStateSx","CanvasDropIndicator","InlineMarkdownEditorComponent","InlineTextEditorComponent","NodeLeaf","MediaFactsLeaf","NodeOverlay","ViewportFrame","name","theme","t","tv","vars","flexGrow","minHeight","width","background","palette","paper","borderColor","divider","borderWidth","borderStyle","display","displayName","SiteShadowDom","div","transform","FramePaper","typography","body1","color","text","primary","backgroundColor","default","colorScheme","mode","WebkitFontSmoothing","MozOsxFontSmoothing","height","VIEWPORT_BASELINE_STYLES","all","boxSizing","ViewportGlobalStyles","styles","ThemedElementContainer","children","hostTheme","shadowDom","hostThemeDoc","canvasScheme","container","scheme","devicePreview","deviceWidth","breakpoints","values","canvasTheme","heldState","heldStateNodeId","mutedStyles","sxTransform","held","muted","length","undefined","sx","nodeId","unmuted","scoped","revealedNodeIds","mutedClasses","Provider","value","EditableScreenRenderer","node","getNode","LeafComponent","LayoutChromeLeaf","props","ref","rest","componentId","SiteContainer","chromeCanvas","chromeRoot","data-aglyn","scope","Overlays","zIndex","variant","ViewportFrameComponent","onMouseLeave","handlePointerLeave","e","focus","clearHover","onPointerLeave","aglyn"],"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 { ComponentProps } from 'react';
18
+ declare const AglynViewport: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, keyof import("react").HTMLAttributes<HTMLElement> | keyof import("react").ClassAttributes<HTMLElement>>, {}>;
19
+ export interface ViewportRootComponentProps extends ComponentProps<typeof AglynViewport> {
20
+ }
21
+ export declare const ViewportRootComponent: import("react").ForwardRefExoticComponent<Omit<ViewportRootComponentProps, "ref"> & import("react").RefAttributes<any>>;
22
+ export default ViewportRootComponent;
@@ -0,0 +1,112 @@
1
+ import { _ as _extends } from "@swc/helpers/_/_extends";
2
+ import { _ as _object_without_properties_loose } from "@swc/helpers/_/_object_without_properties_loose";
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ /**
5
+ * @license
6
+ * Copyright 2026 Aglyn LLC
7
+ *
8
+ * Licensed under the Apache License, Version 2.0 (the "License");
9
+ * you may not use this file except in compliance with the License.
10
+ * You may obtain a copy of the License at
11
+ *
12
+ * http://www.apache.org/licenses/LICENSE-2.0
13
+ *
14
+ * Unless required by applicable law or agreed to in writing, software
15
+ * distributed under the License is distributed on an "AS IS" BASIS,
16
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ * See the License for the specific language governing permissions and
18
+ * limitations under the License.
19
+ */ import { styled } from "@aglyn/shared-ui-theme";
20
+ import { forwardRef } from "react";
21
+ const AglynViewport = styled('main', {
22
+ name: 'AglynViewport'
23
+ })(({ theme })=>{
24
+ // const o = 'transparent'
25
+ const t = theme;
26
+ // In CSS vars mode `theme.palette.*` is always the static light value; resolve
27
+ // through `theme.vars.palette.*` so this becomes a live CSS custom-property ref.
28
+ const bg = (t.vars || theme).palette.background.default;
29
+ // const base = theme.palette.divider
30
+ // const sq = alpha(base, 0.02)
31
+ // const outline = alpha(base, 0.0312)
32
+ // const corner = alpha(base, 0.016)
33
+ // const gradient = 'linear-gradient'
34
+ // const s = {
35
+ // sq: '4px',
36
+ // grid: '97px',
37
+ // line: '1px',
38
+ // rot: '-90deg',
39
+ // }
40
+ // theme.vars is available from MuiCssVarsProvider; use channel variables so the
41
+ // colours update when the mode switches without calling alpha() on a CSS-variable string.
42
+ const divider = `rgba(${t.vars.palette.dividerChannel} / 0.0312)`;
43
+ const dot = `rgba(${t.vars.palette.dividerChannel} / 0.0486)`;
44
+ const minor = theme.spacing(1);
45
+ const major = theme.spacing(12);
46
+ return {
47
+ flexGrow: 1,
48
+ overflow: 'hidden',
49
+ flexDirection: 'column',
50
+ alignItems: 'center',
51
+ display: 'flex',
52
+ // position: 'relative',
53
+ // minHeight: '100%',
54
+ boxShadow: theme.shadowsInset[3],
55
+ backgroundColor: bg,
56
+ // backgroundImage: `radial-gradient(circle, #000000 1px, rgba(0, 0, 0, 0) 1px)`,
57
+ backgroundImage: [
58
+ // `${gradient}(${s.rot}, ${sq} ${s.line}, ${o} ${s.line})`,
59
+ // `${gradient}(${sq} ${s.line}, ${o} ${s.line})`,
60
+ // `${gradient}(${s.rot}, ${outline} ${s.line}, ${o} ${s.line})`,
61
+ // `${gradient}(${outline} ${s.line}, ${o} ${s.line})`,
62
+ // `${gradient}(${o} ${s.sq}, ${bg} ${s.sq}, ${bg} ${s.grid}, ${o} ${s.grid})`,
63
+ // `${gradient}(${s.rot}, ${corner} ${s.line}, ${o} ${s.line})`,
64
+ // `${gradient}(${s.rot}, ${o} ${s.sq}, ${bg} ${s.sq}, ${bg} ${s.grid}, ${o} ${s.grid})`,
65
+ // `${gradient}(${corner} ${s.line}, ${o} ${s.line})`,
66
+ `linear-gradient(to right, ${divider} 1px, transparent 1px)`,
67
+ `linear-gradient(to bottom, ${divider} 1px, transparent 1px)`,
68
+ `linear-gradient(to right, ${divider} 1px, transparent 1px)`,
69
+ `linear-gradient(to bottom, ${divider} 1px, transparent 1px)`,
70
+ `radial-gradient(circle at 0% 0%, ${dot} 2px, transparent 2px)`,
71
+ `radial-gradient(circle at 100% 0%, ${dot} 2px, transparent 2px)`,
72
+ `radial-gradient(circle at 100% 100%, ${dot} 2px, transparent 2px)`,
73
+ `radial-gradient(circle at 0% 100%, ${dot} 2px, transparent 2px)`
74
+ ].join(', '),
75
+ backgroundSize: [
76
+ // '40px 40px',
77
+ // '40px 40px',
78
+ // '40px 40px',
79
+ // '10px 10px',
80
+ // '100px 100px',
81
+ // '100px 100px',
82
+ // '100px 100px',
83
+ // '100px 100px',
84
+ // '100px 100px',
85
+ `${minor} ${minor}`,
86
+ `${minor} ${minor}`,
87
+ `${major} ${major}`,
88
+ `${major} ${major}`,
89
+ `${major} ${major}`,
90
+ `${major} ${major}`,
91
+ `${major} ${major}`,
92
+ `${major} ${major}`
93
+ ].join(', ')
94
+ };
95
+ });
96
+ export const ViewportRootComponent = /*#__PURE__*/ forwardRef((props, ref)=>{
97
+ const { children } = props, rest = _object_without_properties_loose(props, [
98
+ "children"
99
+ ]);
100
+ return /*#__PURE__*/ _jsx(AglynViewport, _extends({
101
+ ref: ref,
102
+ id: "aglyn:viewport-root",
103
+ "aria-label": "besigner viewport root"
104
+ }, rest, {
105
+ children: children
106
+ }));
107
+ });
108
+ ViewportRootComponent.displayName = 'ViewportRootComponent';
109
+ ViewportRootComponent.aglyn = true;
110
+ export default ViewportRootComponent;
111
+
112
+ //# sourceMappingURL=viewport-root.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../../libs/besigner/feature/designer/src/lib/components/viewport-root.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\nimport { styled } from '@aglyn/shared-ui-theme'\nimport type { ComponentProps } from 'react'\nimport { forwardRef } from 'react'\n\nconst AglynViewport = styled('main', {\n name: 'AglynViewport',\n})(({ theme }) => {\n // const o = 'transparent'\n const t = theme as any\n // In CSS vars mode `theme.palette.*` is always the static light value; resolve\n // through `theme.vars.palette.*` so this becomes a live CSS custom-property ref.\n const bg = (t.vars || theme).palette.background.default\n // const base = theme.palette.divider\n // const sq = alpha(base, 0.02)\n // const outline = alpha(base, 0.0312)\n // const corner = alpha(base, 0.016)\n // const gradient = 'linear-gradient'\n // const s = {\n // sq: '4px',\n // grid: '97px',\n // line: '1px',\n // rot: '-90deg',\n // }\n\n // theme.vars is available from MuiCssVarsProvider; use channel variables so the\n // colours update when the mode switches without calling alpha() on a CSS-variable string.\n const divider = `rgba(${t.vars.palette.dividerChannel} / 0.0312)`\n const dot = `rgba(${t.vars.palette.dividerChannel} / 0.0486)`\n const minor = theme.spacing(1)\n const major = theme.spacing(12)\n\n return {\n flexGrow: 1,\n overflow: 'hidden',\n flexDirection: 'column',\n alignItems: 'center',\n display: 'flex',\n // position: 'relative',\n // minHeight: '100%',\n boxShadow: theme.shadowsInset[3],\n backgroundColor: bg,\n // backgroundImage: `radial-gradient(circle, #000000 1px, rgba(0, 0, 0, 0) 1px)`,\n backgroundImage: [\n // `${gradient}(${s.rot}, ${sq} ${s.line}, ${o} ${s.line})`,\n // `${gradient}(${sq} ${s.line}, ${o} ${s.line})`,\n // `${gradient}(${s.rot}, ${outline} ${s.line}, ${o} ${s.line})`,\n // `${gradient}(${outline} ${s.line}, ${o} ${s.line})`,\n // `${gradient}(${o} ${s.sq}, ${bg} ${s.sq}, ${bg} ${s.grid}, ${o} ${s.grid})`,\n // `${gradient}(${s.rot}, ${corner} ${s.line}, ${o} ${s.line})`,\n // `${gradient}(${s.rot}, ${o} ${s.sq}, ${bg} ${s.sq}, ${bg} ${s.grid}, ${o} ${s.grid})`,\n // `${gradient}(${corner} ${s.line}, ${o} ${s.line})`,\n `linear-gradient(to right, ${divider} 1px, transparent 1px)`,\n `linear-gradient(to bottom, ${divider} 1px, transparent 1px)`,\n `linear-gradient(to right, ${divider} 1px, transparent 1px)`,\n `linear-gradient(to bottom, ${divider} 1px, transparent 1px)`,\n `radial-gradient(circle at 0% 0%, ${dot} 2px, transparent 2px)`,\n `radial-gradient(circle at 100% 0%, ${dot} 2px, transparent 2px)`,\n `radial-gradient(circle at 100% 100%, ${dot} 2px, transparent 2px)`,\n `radial-gradient(circle at 0% 100%, ${dot} 2px, transparent 2px)`,\n ].join(', '),\n backgroundSize: [\n // '40px 40px',\n // '40px 40px',\n // '40px 40px',\n // '10px 10px',\n // '100px 100px',\n // '100px 100px',\n // '100px 100px',\n // '100px 100px',\n // '100px 100px',\n `${minor} ${minor}`,\n `${minor} ${minor}`,\n `${major} ${major}`,\n `${major} ${major}`,\n `${major} ${major}`,\n `${major} ${major}`,\n `${major} ${major}`,\n `${major} ${major}`,\n ].join(', '),\n }\n})\n\nexport interface ViewportRootComponentProps\n extends ComponentProps<typeof AglynViewport> {}\n\nexport const ViewportRootComponent = forwardRef<\n any,\n ViewportRootComponentProps\n>((props, ref) => {\n const { children, ...rest } = props\n\n return (\n <AglynViewport\n ref={ref}\n id=\"aglyn:viewport-root\"\n aria-label=\"besigner viewport root\"\n {...rest}\n >\n {children}\n </AglynViewport>\n )\n})\n\nViewportRootComponent.displayName = 'ViewportRootComponent'\nViewportRootComponent.aglyn = true\n\nexport default ViewportRootComponent\n"],"names":["styled","forwardRef","AglynViewport","name","theme","t","bg","vars","palette","background","default","divider","dividerChannel","dot","minor","spacing","major","flexGrow","overflow","flexDirection","alignItems","display","boxShadow","shadowsInset","backgroundColor","backgroundImage","join","backgroundSize","ViewportRootComponent","props","ref","children","rest","id","aria-label","displayName","aglyn"],"mappings":";;;AAAA;;;;;;;;;;;;;;;CAeC,GAED,SAASA,MAAM,QAAQ,yBAAwB;AAE/C,SAASC,UAAU,QAAQ,QAAO;AAElC,MAAMC,gBAAgBF,OAAO,QAAQ;IACnCG,MAAM;AACR,GAAG,CAAC,EAAEC,KAAK,EAAE;IACX,0BAA0B;IAC1B,MAAMC,IAAID;IACV,+EAA+E;IAC/E,iFAAiF;IACjF,MAAME,KAAK,AAACD,CAAAA,EAAEE,IAAI,IAAIH,KAAI,EAAGI,OAAO,CAACC,UAAU,CAACC,OAAO;IACvD,qCAAqC;IACrC,+BAA+B;IAC/B,sCAAsC;IACtC,oCAAoC;IACpC,qCAAqC;IACrC,cAAc;IACd,eAAe;IACf,kBAAkB;IAClB,iBAAiB;IACjB,mBAAmB;IACnB,IAAI;IAEJ,gFAAgF;IAChF,0FAA0F;IAC1F,MAAMC,UAAU,CAAC,KAAK,EAAEN,EAAEE,IAAI,CAACC,OAAO,CAACI,cAAc,CAAC,UAAU,CAAC;IACjE,MAAMC,MAAM,CAAC,KAAK,EAAER,EAAEE,IAAI,CAACC,OAAO,CAACI,cAAc,CAAC,UAAU,CAAC;IAC7D,MAAME,QAAQV,MAAMW,OAAO,CAAC;IAC5B,MAAMC,QAAQZ,MAAMW,OAAO,CAAC;IAE5B,OAAO;QACLE,UAAU;QACVC,UAAU;QACVC,eAAe;QACfC,YAAY;QACZC,SAAS;QACT,wBAAwB;QACxB,qBAAqB;QACrBC,WAAWlB,MAAMmB,YAAY,CAAC,EAAE;QAChCC,iBAAiBlB;QACjB,iFAAiF;QACjFmB,iBAAiB;YACf,4DAA4D;YAC5D,kDAAkD;YAClD,iEAAiE;YACjE,uDAAuD;YACvD,+EAA+E;YAC/E,gEAAgE;YAChE,yFAAyF;YACzF,sDAAsD;YACtD,CAAC,0BAA0B,EAAEd,QAAQ,sBAAsB,CAAC;YAC5D,CAAC,2BAA2B,EAAEA,QAAQ,sBAAsB,CAAC;YAC7D,CAAC,0BAA0B,EAAEA,QAAQ,sBAAsB,CAAC;YAC5D,CAAC,2BAA2B,EAAEA,QAAQ,sBAAsB,CAAC;YAC7D,CAAC,iCAAiC,EAAEE,IAAI,sBAAsB,CAAC;YAC/D,CAAC,mCAAmC,EAAEA,IAAI,sBAAsB,CAAC;YACjE,CAAC,qCAAqC,EAAEA,IAAI,sBAAsB,CAAC;YACnE,CAAC,mCAAmC,EAAEA,IAAI,sBAAsB,CAAC;SAClE,CAACa,IAAI,CAAC;QACPC,gBAAgB;YACd,eAAe;YACf,eAAe;YACf,eAAe;YACf,eAAe;YACf,iBAAiB;YACjB,iBAAiB;YACjB,iBAAiB;YACjB,iBAAiB;YACjB,iBAAiB;YACjB,GAAGb,MAAM,CAAC,EAAEA,OAAO;YACnB,GAAGA,MAAM,CAAC,EAAEA,OAAO;YACnB,GAAGE,MAAM,CAAC,EAAEA,OAAO;YACnB,GAAGA,MAAM,CAAC,EAAEA,OAAO;YACnB,GAAGA,MAAM,CAAC,EAAEA,OAAO;YACnB,GAAGA,MAAM,CAAC,EAAEA,OAAO;YACnB,GAAGA,MAAM,CAAC,EAAEA,OAAO;YACnB,GAAGA,MAAM,CAAC,EAAEA,OAAO;SACpB,CAACU,IAAI,CAAC;IACT;AACF;AAKA,OAAO,MAAME,sCAAwB3B,WAGnC,CAAC4B,OAAOC;IACR,MAAM,EAAEC,QAAQ,EAAW,GAAGF,OAATG,wCAASH;;;IAE9B,qBACE,KAAC3B;QACC4B,KAAKA;QACLG,IAAG;QACHC,cAAW;OACPF;kBAEHD;;AAGP,GAAE;AAEFH,sBAAsBO,WAAW,GAAG;AACpCP,sBAAsBQ,KAAK,GAAG;AAE9B,eAAeR,sBAAqB"}
@@ -0,0 +1,29 @@
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 { ComponentProps } from 'react';
18
+ import { type EventHandler } from 'react';
19
+ declare const ZoomControlsWrapper: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import("react").ClassAttributes<HTMLDivElement> | keyof import("react").HTMLAttributes<HTMLDivElement>>, {}>;
20
+ export interface ViewportZoomControlsComponentProps extends ComponentProps<typeof ZoomControlsWrapper> {
21
+ disableZoomReset?: boolean;
22
+ disableZoomDecrease?: boolean;
23
+ disableZoomIncrease?: boolean;
24
+ onZoomReset?: EventHandler<any>;
25
+ onZoomDecrease?: EventHandler<any>;
26
+ onZoomIncrease?: EventHandler<any>;
27
+ }
28
+ export declare const ViewportZoomControls: import("react").ForwardRefExoticComponent<Omit<ViewportZoomControlsComponentProps, "ref"> & import("react").RefAttributes<any>>;
29
+ export default ViewportZoomControls;