@phis/ui 0.2.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1804) hide show
  1. package/README.md +5 -5
  2. package/cms/plugins.d.ts +1 -1
  3. package/cms.d.ts +1 -1
  4. package/components/calendar/gregory-calendar-adapter-client.js +1 -0
  5. package/components/cms/clients/phi-background-motion-layer-client.js +5 -2
  6. package/components/cms/phi-cms-area-render-scope.d.ts +1 -3
  7. package/components/cms/phi-cms-deferred-error-page.d.ts +19 -0
  8. package/components/cms/phi-cms-deferred-error-page.js +31 -0
  9. package/components/cms/phi-cms-error-fallback.d.ts +11 -0
  10. package/components/cms/phi-cms-error-fallback.js +35 -0
  11. package/components/cms/phi-cms-error-page.js +13 -32
  12. package/components/cms/phi-cms-layout-renderer.d.ts +12 -2
  13. package/components/cms/phi-cms-layout-renderer.js +140 -58
  14. package/components/cms/phi-cms-page-redirect.js +3 -5
  15. package/components/cms/phi-cms-page-render-scope.d.ts +52 -0
  16. package/components/cms/phi-cms-page-render-scope.js +94 -0
  17. package/components/cms/phi-cms-render-diagnostic-client.js +11 -3
  18. package/components/cms/phi-cms-root-layout.d.ts +2 -1
  19. package/components/cms/phi-cms-root-layout.js +67 -19
  20. package/components/cms/phi-cms-root-page.js +4 -32
  21. package/components/cms/phi-cms-root-slot-page.js +6 -38
  22. package/components/controls/phi-anchor-nav-control.d.ts +20 -0
  23. package/components/controls/phi-anchor-nav-control.js +12 -0
  24. package/components/controls/phi-avatar-control.js +2 -2
  25. package/components/controls/phi-background-control.d.ts +8 -8
  26. package/components/controls/phi-background-control.js +28 -51
  27. package/components/controls/phi-breadcrumb-control.d.ts +12 -0
  28. package/components/controls/phi-breadcrumb-control.js +7 -0
  29. package/components/controls/phi-bullet-list-control.d.ts +32 -0
  30. package/components/controls/phi-bullet-list-control.js +73 -0
  31. package/components/controls/phi-button-control.d.ts +8 -1
  32. package/components/controls/phi-button-control.js +9 -5
  33. package/components/controls/phi-button-types.d.ts +0 -1
  34. package/components/controls/phi-button-types.js +1 -9
  35. package/components/controls/phi-cascader-control.d.ts +22 -0
  36. package/components/controls/phi-cascader-control.js +62 -5
  37. package/components/controls/phi-collapse-control.d.ts +43 -0
  38. package/components/controls/phi-collapse-control.js +35 -0
  39. package/components/controls/phi-collection-header-control.js +3 -2
  40. package/components/controls/phi-collection-view-control.js +2 -1
  41. package/components/controls/phi-color-control.js +9 -67
  42. package/components/controls/phi-color-field-control.d.ts +6 -1
  43. package/components/controls/phi-color-field-control.js +4 -2
  44. package/components/controls/phi-confirm-dialog.d.ts +2 -1
  45. package/components/controls/phi-control-option-content.d.ts +7 -3
  46. package/components/controls/phi-control-option-content.js +9 -4
  47. package/components/controls/phi-date-picker-control.js +3 -2
  48. package/components/controls/phi-description-tooltip-icon.js +2 -2
  49. package/components/controls/phi-dialog-control.d.ts +3 -3
  50. package/components/controls/phi-dialog-control.js +9 -2
  51. package/components/controls/phi-drag-handle-control.js +2 -2
  52. package/components/controls/phi-drawer-control-adapter.d.ts +1 -1
  53. package/components/controls/phi-drawer-control-adapter.js +2 -2
  54. package/components/controls/phi-drawer-control.d.ts +3 -3
  55. package/components/controls/phi-expand-indicator.js +4 -3
  56. package/components/controls/phi-float-button-control.d.ts +39 -0
  57. package/components/controls/phi-float-button-control.js +73 -0
  58. package/components/controls/phi-form-control-contract.d.ts +9 -0
  59. package/components/controls/phi-form-control.js +68 -3
  60. package/components/controls/phi-icon-picker-control.js +17 -12
  61. package/components/controls/phi-image-control.d.ts +57 -0
  62. package/components/controls/phi-image-control.js +88 -0
  63. package/components/controls/phi-inline-text-editor.d.ts +6 -1
  64. package/components/controls/phi-inline-text-editor.js +15 -3
  65. package/components/controls/phi-labeled-control.d.ts +17 -2
  66. package/components/controls/phi-labeled-control.js +20 -2
  67. package/components/controls/phi-lightbox-image-control-adapter.d.ts +2 -0
  68. package/components/controls/phi-lightbox-image-control-adapter.js +11 -0
  69. package/components/controls/phi-lightbox-image-control.d.ts +17 -0
  70. package/components/controls/phi-lightbox-image-control.js +16 -0
  71. package/components/controls/phi-mask-picker-control.js +5 -13
  72. package/components/controls/phi-media-asset-tile-control.js +3 -23
  73. package/components/controls/phi-media-picker-control.js +3 -3
  74. package/components/controls/phi-menu-control.d.ts +4 -9
  75. package/components/controls/phi-menu-control.js +45 -46
  76. package/components/controls/phi-modal-control-adapter.d.ts +1 -1
  77. package/components/controls/phi-modal-control-adapter.js +67 -2
  78. package/components/controls/phi-multi-select-control.js +11 -4
  79. package/components/controls/phi-number-control.js +4 -3
  80. package/components/controls/phi-options-provider.js +3 -6
  81. package/components/controls/phi-otp-control.js +4 -3
  82. package/components/controls/phi-overlay-control-contract.d.ts +8 -3
  83. package/components/controls/phi-padding-control.d.ts +0 -2
  84. package/components/controls/phi-padding-control.js +11 -13
  85. package/components/controls/phi-pagination-control-adapter.d.ts +2 -0
  86. package/components/controls/phi-pagination-control-adapter.js +15 -0
  87. package/components/controls/phi-pagination-control.d.ts +2 -1
  88. package/components/controls/phi-pagination-control.js +11 -7
  89. package/components/controls/phi-rate-control.js +3 -2
  90. package/components/controls/phi-result-control.d.ts +15 -0
  91. package/components/controls/phi-result-control.js +11 -0
  92. package/components/controls/phi-segmented-control.js +11 -4
  93. package/components/controls/phi-select-control.js +41 -9
  94. package/components/controls/phi-shadow-control.js +5 -1
  95. package/components/controls/phi-slider-control.d.ts +17 -4
  96. package/components/controls/phi-slider-control.js +33 -8
  97. package/components/controls/phi-steps-control.d.ts +40 -0
  98. package/components/controls/phi-steps-control.js +24 -0
  99. package/components/controls/phi-surface-control.d.ts +56 -0
  100. package/components/controls/phi-surface-control.js +109 -0
  101. package/components/controls/phi-switch-control.js +3 -2
  102. package/components/controls/phi-table-control.d.ts +2 -0
  103. package/components/controls/phi-table-control.js +69 -19
  104. package/components/controls/phi-text-control.d.ts +3 -5
  105. package/components/controls/phi-text-control.js +7 -5
  106. package/components/controls/phi-text-types.d.ts +8 -0
  107. package/components/controls/phi-theme-scope-control.d.ts +23 -0
  108. package/components/controls/phi-theme-scope-control.js +29 -0
  109. package/components/controls/phi-timeline-control-adapter.d.ts +2 -0
  110. package/components/controls/phi-timeline-control-adapter.js +28 -0
  111. package/components/controls/phi-timeline-control.d.ts +34 -0
  112. package/components/controls/phi-timeline-control.js +19 -0
  113. package/components/controls/phi-toolbar-control.d.ts +1 -0
  114. package/components/controls/phi-toolbar-control.js +9 -1
  115. package/components/controls/phi-tour-control.d.ts +41 -0
  116. package/components/controls/phi-tour-control.js +47 -0
  117. package/components/controls/phi-tour-viewport.d.ts +36 -0
  118. package/components/controls/phi-tour-viewport.js +86 -0
  119. package/components/controls/phi-tree-control.js +4 -3
  120. package/components/controls/phi-tree-select-control.js +11 -4
  121. package/components/controls/phi-video-embed-control.js +2 -2
  122. package/components/controls/phi-zoom-image-overlay.d.ts +17 -0
  123. package/components/controls/phi-zoom-image-overlay.js +58 -0
  124. package/components/forms/auth-admin-settings-labels.d.ts +2 -0
  125. package/components/forms/auth-admin-settings-labels.js +4 -0
  126. package/components/forms/choice-form-field-controls.js +2 -2
  127. package/components/forms/compound-form-controls.js +29 -28
  128. package/components/forms/content-entry-curation-config.d.ts +12 -0
  129. package/components/forms/content-entry-curation-config.js +12 -0
  130. package/components/forms/content-entry-forms.d.ts +52 -0
  131. package/components/forms/content-entry-forms.js +328 -0
  132. package/components/forms/extended-form-field-controls.js +18 -1
  133. package/components/forms/form-descriptor-contract.d.ts +0 -9
  134. package/components/forms/form-descriptor-contract.js +1 -1
  135. package/components/forms/form-descriptor-runtime-client.js +86 -10
  136. package/components/forms/form-guard-client.d.ts +14 -1
  137. package/components/forms/form-guard-client.js +13 -2
  138. package/components/forms/form-labels.js +2 -1
  139. package/components/forms/form-provider-contract.d.ts +38 -0
  140. package/components/forms/form-provider-contract.js +41 -0
  141. package/components/forms/form-provider-registry.d.ts +9 -2
  142. package/components/forms/form-resolution.js +3 -5
  143. package/components/forms/form-widget-config.d.ts +5 -4
  144. package/components/forms/form-widget-config.js +3 -2
  145. package/components/forms/link-target-form-control.d.ts +10 -0
  146. package/components/forms/link-target-form-control.js +82 -0
  147. package/components/forms/phi-form-widget.js +2 -4
  148. package/components/forms/runtime-form-client.d.ts +0 -22
  149. package/components/forms/runtime-form-client.js +1 -1
  150. package/components/forms/runtime-form-controller-mount.js +6 -4
  151. package/components/forms/runtime-form-controller-requirement.d.ts +1 -11
  152. package/components/forms/runtime-form-controller-requirement.js +3 -3
  153. package/components/forms/shared-form-ids.d.ts +5 -0
  154. package/components/forms/shared-form-ids.js +5 -0
  155. package/components/forms/shared-form-loaders.d.ts +11 -2
  156. package/components/forms/shared-form-loaders.js +13 -3
  157. package/components/forms/shared-form-provider-registry.js +4 -0
  158. package/components/forms/storage-size.d.ts +0 -9
  159. package/components/forms/storage-size.js +1 -1
  160. package/components/forms/upload-form-control.d.ts +5 -0
  161. package/components/forms/upload-form-control.js +27 -7
  162. package/components/layouts/clients/phi-carousel-layout-client.d.ts +5 -17
  163. package/components/layouts/clients/phi-carousel-layout-client.js +36 -61
  164. package/components/layouts/clients/phi-collapsible-layout-client.d.ts +3 -1
  165. package/components/layouts/clients/phi-collapsible-layout-client.js +84 -81
  166. package/components/layouts/clients/phi-content-layout-client.d.ts +4 -33
  167. package/components/layouts/clients/phi-content-layout-client.js +7 -11
  168. package/components/layouts/clients/phi-flex-layout-client.d.ts +7 -0
  169. package/components/layouts/clients/phi-flex-layout-client.js +77 -51
  170. package/components/layouts/clients/phi-grid-layout-client.js +37 -38
  171. package/components/layouts/clients/phi-layout-anchored-overlay.d.ts +0 -1
  172. package/components/layouts/clients/phi-layout-anchored-overlay.js +3 -3
  173. package/components/layouts/clients/phi-sequence-slot-editor.d.ts +2 -3
  174. package/components/layouts/clients/phi-sequence-slot-editor.js +41 -38
  175. package/components/layouts/clients/phi-split-card-half.d.ts +28 -0
  176. package/components/layouts/clients/phi-split-card-half.js +33 -0
  177. package/components/layouts/clients/phi-split-card-layout-client.d.ts +12 -21
  178. package/components/layouts/clients/phi-split-card-layout-client.js +29 -51
  179. package/components/layouts/clients/phi-stack-layout-client.d.ts +2 -17
  180. package/components/layouts/clients/phi-stack-layout-client.js +67 -90
  181. package/components/layouts/clients/phi-three-column-layout-client.d.ts +3 -30
  182. package/components/layouts/clients/phi-three-column-layout-client.js +6 -10
  183. package/components/layouts/clients/use-phi-sequence-layout.d.ts +44 -0
  184. package/components/layouts/clients/use-phi-sequence-layout.js +69 -0
  185. package/components/layouts/layout-definitions.d.ts +64 -86
  186. package/components/layouts/layout-definitions.js +27 -35
  187. package/components/layouts/layout-slot-meta.d.ts +19 -0
  188. package/components/layouts/layout-slot-meta.js +34 -0
  189. package/components/layouts/phi-base-layout.d.ts +1 -1
  190. package/components/layouts/phi-base-layout.js +5 -8
  191. package/components/layouts/phi-flex-vertical-layout.d.ts +3 -2
  192. package/components/layouts/phi-flex-vertical-layout.js +2 -2
  193. package/components/layouts/phi-grid-contract.d.ts +30 -22
  194. package/components/layouts/phi-grid-contract.js +39 -38
  195. package/components/layouts/phi-layout-contract.d.ts +9 -14
  196. package/components/layouts/phi-layout-contract.js +5 -57
  197. package/components/layouts/phi-layout-signal-surface.d.ts +26 -0
  198. package/components/layouts/phi-layout-signal-surface.js +15 -0
  199. package/components/layouts/phi-layout-surface-box.d.ts +32 -0
  200. package/components/layouts/phi-layout-surface-box.js +41 -0
  201. package/components/layouts/phi-layout-view-model.d.ts +6 -2
  202. package/components/layouts/phi-layout-view-model.js +16 -26
  203. package/components/layouts/phi-masonry-columns.d.ts +18 -0
  204. package/components/layouts/phi-masonry-columns.js +77 -0
  205. package/components/layouts/phi-masonry-contract.d.ts +45 -0
  206. package/components/layouts/phi-masonry-contract.js +62 -0
  207. package/components/layouts/phi-masonry-layout.d.ts +9 -2
  208. package/components/layouts/phi-masonry-layout.js +27 -21
  209. package/components/layouts/phi-structure-region-layout.js +2 -2
  210. package/components/layouts/plugins/carousel-layout-plugin.js +3 -31
  211. package/components/layouts/plugins/collapsible-layout-plugin.js +16 -3
  212. package/components/layouts/plugins/content-layout-plugin.js +1 -1
  213. package/components/layouts/plugins/flex-layout-plugin.js +1 -1
  214. package/components/layouts/plugins/flex-vertical-layout-plugin.js +1 -1
  215. package/components/layouts/plugins/grid-layout-plugin.js +1 -1
  216. package/components/layouts/plugins/masonry-layout-plugin.js +1 -1
  217. package/components/layouts/plugins/split-card-layout-plugin.js +1 -1
  218. package/components/layouts/plugins/stack-layout-plugin.js +2 -25
  219. package/components/layouts/plugins/three-column-layout-plugin.js +1 -1
  220. package/components/layouts/split-card-geometry.d.ts +14 -0
  221. package/components/layouts/split-card-geometry.js +32 -0
  222. package/components/layouts/stack-signals.d.ts +5 -0
  223. package/components/layouts/stack-signals.js +12 -4
  224. package/components/layouts/use-phi-slot-sequence.d.ts +0 -9
  225. package/components/layouts/use-phi-slot-sequence.js +2 -2
  226. package/components/media/aspect-ratios.d.ts +14 -0
  227. package/components/media/aspect-ratios.js +13 -0
  228. package/components/media/asset-type-label.d.ts +6 -0
  229. package/components/media/asset-type-label.js +27 -0
  230. package/components/media/background-asset-projection.d.ts +3 -17
  231. package/components/media/background-asset-projection.js +15 -6
  232. package/components/media/focal-rect.d.ts +20 -1
  233. package/components/media/focal-rect.js +37 -2
  234. package/components/media/image-presentation.d.ts +12 -2
  235. package/components/media/image-presentation.js +33 -6
  236. package/components/media/media-folder-options.d.ts +2 -0
  237. package/components/media/media-folder-options.js +5 -0
  238. package/components/media/media-space-selection.d.ts +0 -27
  239. package/components/media/media-space-selection.js +2 -2
  240. package/components/media/media-upload-flow.d.ts +17 -14
  241. package/components/media/media-upload-flow.js +135 -26
  242. package/components/media/phi-area-upload-widget.js +30 -27
  243. package/components/media/phi-asset-focal-rect-widget.js +0 -1
  244. package/components/media/phi-asset-inspector-section.js +6 -9
  245. package/components/media/phi-image-preview-data.d.ts +0 -10
  246. package/components/media/phi-image-preview-data.js +1 -1
  247. package/components/media/phi-media-kind-icon.js +10 -10
  248. package/components/media/phi-media-picker-binding.js +2 -2
  249. package/components/media/phi-media-restricted-icon.js +2 -2
  250. package/components/media/phi-media-upload.d.ts +13 -1
  251. package/components/media/phi-media-upload.js +51 -7
  252. package/components/media/phi-site-font-assets.d.ts +8 -1
  253. package/components/media/phi-site-font-assets.js +20 -6
  254. package/components/motion/phi-sequence-run.d.ts +27 -0
  255. package/components/motion/phi-sequence-run.js +87 -0
  256. package/components/motion/phi-sequence-viewport.d.ts +16 -0
  257. package/components/motion/phi-sequence-viewport.js +113 -37
  258. package/components/motion/use-phi-sequence-autoplay.d.ts +26 -0
  259. package/components/motion/use-phi-sequence-autoplay.js +52 -0
  260. package/components/motion/use-phi-sequence-gestures.d.ts +24 -0
  261. package/components/motion/use-phi-sequence-gestures.js +59 -0
  262. package/components/overlays/phi-dialog-body-context.d.ts +5 -0
  263. package/components/overlays/phi-dialog-body-context.js +17 -0
  264. package/components/overlays/phi-overlay-container-client.js +40 -15
  265. package/components/regions/clients/cms-region-container-client.d.ts +6 -1
  266. package/components/regions/clients/cms-region-container-client.js +66 -28
  267. package/components/regions/clients/use-phi-region-reveal.d.ts +28 -0
  268. package/components/regions/clients/use-phi-region-reveal.js +104 -0
  269. package/components/regions/phi-cms-region-container.d.ts +4 -1
  270. package/components/regions/phi-cms-region-container.js +13 -3
  271. package/components/regions/phi-cms-region-shell.d.ts +13 -1
  272. package/components/regions/phi-cms-region-shell.js +98 -51
  273. package/components/regions/phi-cms-region-static.js +5 -2
  274. package/components/regions/presets/content-entry-editor-page-tree.d.ts +48 -0
  275. package/components/regions/presets/content-entry-editor-page-tree.js +749 -0
  276. package/components/regions/presets/content-entry-editor-tour.d.ts +19 -0
  277. package/components/regions/presets/content-entry-editor-tour.js +71 -0
  278. package/components/regions/presets/content-entry-public-page-trees.d.ts +52 -0
  279. package/components/regions/presets/content-entry-public-page-trees.js +146 -0
  280. package/components/regions/presets/phi-area-root-redirect-tree.js +7 -1
  281. package/components/regions/presets/phi-area-shell-preset-nodes.d.ts +49 -0
  282. package/components/regions/presets/phi-area-shell-preset-nodes.js +160 -0
  283. package/components/regions/presets/phi-base-page-column.d.ts +26 -0
  284. package/components/regions/presets/phi-base-page-column.js +42 -0
  285. package/components/regions/presets/phi-base-page-layout.d.ts +3 -3
  286. package/components/regions/presets/phi-base-page-layout.js +4 -3
  287. package/components/regions/presets/phi-settings-page-shell-tree.d.ts +15 -5
  288. package/components/regions/presets/phi-settings-page-shell-tree.js +34 -28
  289. package/components/root/phi-config-provider.d.ts +20 -2
  290. package/components/root/phi-config-provider.js +26 -4
  291. package/components/root/phi-dayjs-locale.d.ts +0 -7
  292. package/components/root/phi-dayjs-locale.js +4 -6
  293. package/components/root/phi-root-background.d.ts +9 -0
  294. package/components/root/phi-root-background.js +14 -3
  295. package/components/root/phi-root-layout.d.ts +1 -0
  296. package/components/root/phi-root-layout.js +32 -27
  297. package/components/root/phi-root-live-theme-provider.d.ts +1 -2
  298. package/components/root/phi-root-live-theme-provider.js +9 -3
  299. package/components/root/phi-root-theme-resolver.d.ts +4 -0
  300. package/components/root/phi-root-theme-resolver.js +65 -3
  301. package/components/root/phi-shell-chrome-overlay.d.ts +47 -22
  302. package/components/root/phi-shell-chrome-overlay.js +61 -20
  303. package/components/root/phi-theme-tone-source.d.ts +19 -0
  304. package/components/root/phi-theme-tone-source.js +7 -0
  305. package/components/runtime/core-runtime-controller-address.d.ts +0 -1
  306. package/components/runtime/core-runtime-controller-address.js +1 -1
  307. package/components/runtime/mounted-runtime-controller.js +5 -2
  308. package/components/runtime/phi-restored-request-runtime.d.ts +12 -0
  309. package/components/runtime/phi-restored-request-runtime.js +12 -0
  310. package/components/runtime/renderable-block-runtime.d.ts +10 -4
  311. package/components/runtime/renderable-block-runtime.js +53 -121
  312. package/components/runtime/runtime-controller-config-overlays.d.ts +19 -0
  313. package/components/runtime/runtime-controller-config-overlays.js +76 -0
  314. package/components/runtime/runtime-controller-materialization.d.ts +37 -1
  315. package/components/runtime/runtime-controller-materialization.js +87 -13
  316. package/components/runtime/runtime-controller-server-host.d.ts +4 -2
  317. package/components/runtime/runtime-controller-server-host.js +4 -2
  318. package/components/runtime/runtime-module-authoring-host.js +2 -1
  319. package/components/runtime/runtime-module-context.d.ts +2 -1
  320. package/components/runtime/runtime-page-condition-state.js +3 -2
  321. package/components/runtime/runtime-signal-identity.d.ts +11 -1
  322. package/components/runtime/runtime-signal-identity.js +28 -1
  323. package/components/runtime/runtime-signal-partition.d.ts +9 -0
  324. package/components/runtime/runtime-signal-partition.js +4 -0
  325. package/components/runtime/runtime-signal-registry.d.ts +1 -1
  326. package/components/runtime/runtime-signal-registry.js +2 -5
  327. package/components/runtime/runtime-visual-anchors.d.ts +59 -0
  328. package/components/runtime/runtime-visual-anchors.js +174 -0
  329. package/components/runtime/use-phi-pathname.d.ts +6 -0
  330. package/components/runtime/use-phi-pathname.js +11 -0
  331. package/components/runtime/user-state-client.js +2 -1
  332. package/components/shell/phi-antd-icon.d.ts +117 -60
  333. package/components/shell/phi-antd-icon.js +234 -61
  334. package/components/shell/phi-cms-shell.d.ts +7 -1
  335. package/components/shell/phi-cms-shell.js +4 -3
  336. package/components/shell/phi-icon.d.ts +7 -2
  337. package/components/shell/phi-icon.js +5 -5
  338. package/components/shell/phi-locale-switch.js +3 -2
  339. package/components/shell/phi-widget-icon.js +28 -28
  340. package/components/state/history-store.d.ts +28 -16
  341. package/components/state/history-store.js +10 -4
  342. package/components/surface/phi-surface-ground.d.ts +16 -0
  343. package/components/surface/phi-surface-ground.js +54 -0
  344. package/components/surface/phi-surface-tone-scope.d.ts +14 -0
  345. package/components/surface/phi-surface-tone-scope.js +11 -0
  346. package/components/surface/phi-surface-tone.d.ts +18 -0
  347. package/components/surface/phi-surface-tone.js +36 -0
  348. package/components/tables/client/phi-table-binding.d.ts +4 -2
  349. package/components/tables/client/phi-table-binding.js +15 -11
  350. package/components/trees/client/phi-tree-binding.js +85 -7
  351. package/components/widgets/builder/phi-static-options-picker.d.ts +1 -0
  352. package/components/widgets/builder/phi-static-options-picker.js +63 -195
  353. package/components/widgets/builder/phi-static-rows-editor.d.ts +65 -0
  354. package/components/widgets/builder/phi-static-rows-editor.js +190 -0
  355. package/components/widgets/builder/phi-static-timeline-picker.d.ts +7 -0
  356. package/components/widgets/builder/phi-static-timeline-picker.js +91 -0
  357. package/components/widgets/client/description-editor-sections.d.ts +1 -1
  358. package/components/widgets/client/external-document-editor.js +24 -9
  359. package/components/widgets/client/html-editor-image-node.d.ts +0 -8
  360. package/components/widgets/client/html-editor-image-node.js +2 -2
  361. package/components/widgets/client/html-editor.js +13 -2
  362. package/components/widgets/client/shared/core-options-providers.js +4 -7
  363. package/components/widgets/client/shared/description-items.d.ts +5 -4
  364. package/components/widgets/client/shared/description-items.js +9 -4
  365. package/components/widgets/client/shared/phi-choice-controller.d.ts +1 -1
  366. package/components/widgets/client/shared/phi-choice-controller.js +11 -4
  367. package/components/widgets/client/shared/phi-command-buttons-authoring-tools.d.ts +11 -0
  368. package/components/widgets/client/shared/phi-command-buttons-authoring-tools.js +40 -0
  369. package/components/widgets/client/shared/phi-command-buttons.d.ts +20 -0
  370. package/components/widgets/client/shared/phi-command-buttons.js +286 -0
  371. package/components/widgets/client/shared/phi-link-target-control.d.ts +44 -0
  372. package/components/widgets/client/shared/phi-link-target-control.js +93 -0
  373. package/components/widgets/client/shared/phi-mask-picker.js +65 -34
  374. package/components/widgets/client/shared/phi-page-reference-picker.js +2 -2
  375. package/components/widgets/client/shared/phi-rendered-value.d.ts +0 -14
  376. package/components/widgets/client/shared/phi-rendered-value.js +1 -1
  377. package/components/widgets/client/shared/phi-static-table-provider.d.ts +1 -12
  378. package/components/widgets/client/shared/phi-static-table-provider.js +16 -17
  379. package/components/widgets/client/shared/phi-table-provider-request.d.ts +11 -0
  380. package/components/widgets/client/shared/phi-table-provider-request.js +43 -0
  381. package/components/widgets/client/shared/phi-timeline-provider.d.ts +36 -0
  382. package/components/widgets/client/shared/phi-timeline-provider.js +115 -0
  383. package/components/widgets/client/shared/phi-widget-image-tool-button.d.ts +0 -1
  384. package/components/widgets/client/shared/phi-widget-image-tool-button.js +2 -4
  385. package/components/widgets/client/shared/phi-widget-tool-buttons.d.ts +17 -2
  386. package/components/widgets/client/shared/phi-widget-tool-buttons.js +53 -45
  387. package/components/widgets/config/background-pattern-live.js +4 -14
  388. package/components/widgets/config/background.d.ts +33 -11
  389. package/components/widgets/config/background.js +86 -149
  390. package/components/widgets/config/choice-shared.d.ts +2 -3
  391. package/components/widgets/config/choice-shared.js +1 -1
  392. package/components/widgets/config/command-buttons.d.ts +48 -0
  393. package/components/widgets/config/command-buttons.js +207 -0
  394. package/components/widgets/config/common-action-field.d.ts +52 -0
  395. package/components/widgets/config/common-action-field.js +57 -0
  396. package/components/widgets/config/control-signal-config.d.ts +26 -0
  397. package/components/widgets/config/control-signal-config.js +21 -13
  398. package/components/widgets/config/geometry.js +7 -5
  399. package/components/widgets/config/image-source-parser.d.ts +0 -2
  400. package/components/widgets/config/image-source-parser.js +2 -5
  401. package/components/widgets/config/image-variant-options.d.ts +3 -0
  402. package/components/widgets/config/image-variant-options.js +14 -0
  403. package/components/widgets/config/mask.d.ts +2 -1
  404. package/components/widgets/config/mask.js +11 -2
  405. package/components/widgets/config/parser-primitives.d.ts +1 -10
  406. package/components/widgets/config/parser-primitives.js +2 -42
  407. package/components/widgets/config/search-shared.d.ts +1 -6
  408. package/components/widgets/config/search-shared.js +1 -51
  409. package/components/widgets/config/sequence-settings.d.ts +75 -0
  410. package/components/widgets/config/sequence-settings.js +173 -0
  411. package/components/widgets/config/spacing-options.d.ts +4 -4
  412. package/components/widgets/config/spacing-options.js +10 -11
  413. package/components/widgets/config/stack-tabs.d.ts +0 -1
  414. package/components/widgets/config/stack-tabs.js +1 -1
  415. package/components/widgets/helpers/font-size.js +6 -1
  416. package/components/widgets/helpers/html-content.js +2 -1
  417. package/components/widgets/helpers/internal-reference-resolver.server.js +8 -7
  418. package/components/widgets/label-sets/admin-locales.d.ts +4 -0
  419. package/components/widgets/label-sets/admin-locales.js +8 -0
  420. package/components/widgets/label-sets/admin-settings.d.ts +4 -0
  421. package/components/widgets/label-sets/admin-settings.js +8 -0
  422. package/components/widgets/label-sets/admin-users.d.ts +7 -0
  423. package/components/widgets/label-sets/admin-users.js +14 -0
  424. package/components/widgets/label-sets/authoring-tools.d.ts +0 -2
  425. package/components/widgets/label-sets/authoring-tools.js +78 -6
  426. package/components/widgets/label-sets/background.js +11 -13
  427. package/components/widgets/label-sets/builder-modules.js +6 -0
  428. package/components/widgets/label-sets/card.d.ts +5 -0
  429. package/components/widgets/label-sets/card.js +17 -0
  430. package/components/widgets/label-sets/color-picker.d.ts +0 -2
  431. package/components/widgets/label-sets/color-picker.js +0 -4
  432. package/components/widgets/label-sets/common-controls.d.ts +0 -2
  433. package/components/widgets/label-sets/common-controls.js +1 -1
  434. package/components/widgets/label-sets/content-entries.d.ts +137 -0
  435. package/components/widgets/label-sets/content-entries.js +214 -0
  436. package/components/widgets/label-sets/gallery.d.ts +4 -0
  437. package/components/widgets/label-sets/gallery.js +31 -0
  438. package/components/widgets/label-sets/history.d.ts +5 -0
  439. package/components/widgets/label-sets/history.js +106 -0
  440. package/components/widgets/label-sets/icon-picker.d.ts +0 -2
  441. package/components/widgets/label-sets/icon-picker.js +0 -4
  442. package/components/widgets/label-sets/inspector.js +124 -1
  443. package/components/widgets/label-sets/logout.d.ts +4 -0
  444. package/components/widgets/label-sets/logout.js +21 -0
  445. package/components/widgets/label-sets/profile.d.ts +1 -0
  446. package/components/widgets/label-sets/profile.js +2 -0
  447. package/components/widgets/label-sets/revisions.js +20 -0
  448. package/components/widgets/label-sets/theme-mode-switch.d.ts +4 -0
  449. package/components/widgets/label-sets/theme-mode-switch.js +19 -0
  450. package/components/widgets/label-sets/tour.d.ts +4 -0
  451. package/components/widgets/label-sets/tour.js +29 -0
  452. package/components/widgets/label-types/authoring-tools.d.ts +44 -1
  453. package/components/widgets/label-types/authoring-tools.js +42 -1
  454. package/components/widgets/label-types/background.d.ts +2 -3
  455. package/components/widgets/label-types/background.js +3 -4
  456. package/components/widgets/label-types/builder-modules.d.ts +5 -0
  457. package/components/widgets/label-types/builder-modules.js +4 -0
  458. package/components/widgets/label-types/card.d.ts +5 -0
  459. package/components/widgets/label-types/card.js +3 -0
  460. package/components/widgets/label-types/gallery.d.ts +5 -0
  461. package/components/widgets/label-types/gallery.js +10 -0
  462. package/components/widgets/label-types/history.d.ts +48 -0
  463. package/components/widgets/label-types/history.js +66 -0
  464. package/components/widgets/label-types/inspector.d.ts +84 -0
  465. package/components/widgets/label-types/inspector.js +66 -0
  466. package/components/widgets/label-types/logout.d.ts +5 -0
  467. package/components/widgets/label-types/logout.js +1 -0
  468. package/components/widgets/label-types/revisions.d.ts +15 -0
  469. package/components/widgets/label-types/revisions.js +14 -4
  470. package/components/widgets/label-types/sequence.d.ts +18 -0
  471. package/components/widgets/label-types/sequence.js +1 -0
  472. package/components/widgets/label-types/theme-mode-switch.d.ts +5 -0
  473. package/components/widgets/label-types/theme-mode-switch.js +4 -0
  474. package/components/widgets/label-types/tour.d.ts +9 -0
  475. package/components/widgets/label-types/tour.js +7 -0
  476. package/components/widgets/login-redirect.d.ts +1 -1
  477. package/components/widgets/login-redirect.js +4 -6
  478. package/components/widgets/navigation-descriptor-resolver.server.js +64 -30
  479. package/components/widgets/server/navigation-request.d.ts +0 -1
  480. package/components/widgets/server/navigation-request.js +1 -1
  481. package/components/widgets/server/search.d.ts +0 -2
  482. package/components/widgets/server/search.js +1 -1
  483. package/components/widgets/shared/bullet-list-vocabulary.d.ts +80 -0
  484. package/components/widgets/shared/bullet-list-vocabulary.js +159 -0
  485. package/components/widgets/shared/card-body-client.d.ts +64 -56
  486. package/components/widgets/shared/card-body-client.js +243 -90
  487. package/components/widgets/shared/card-vocabulary.d.ts +53 -0
  488. package/components/widgets/shared/card-vocabulary.js +39 -0
  489. package/components/widgets/shared/markdown-body-client.d.ts +9 -5
  490. package/components/widgets/shared/markdown-body-client.js +24 -36
  491. package/components/widgets/shared/markdown-render.d.ts +11 -0
  492. package/components/widgets/shared/markdown-render.js +24 -6
  493. package/components/widgets/shared/result-body-client.js +2 -2
  494. package/components/widgets/signals/command-toolbar-address.d.ts +0 -2
  495. package/components/widgets/signals/command-toolbar-address.js +0 -4
  496. package/components/widgets/signals/control-signal-capabilities.d.ts +23 -13
  497. package/components/widgets/signals/control-signal-capabilities.js +33 -3
  498. package/components/widgets/signals/renderable-block-signal-capabilities.d.ts +5 -0
  499. package/components/widgets/signals/renderable-block-signal-capabilities.js +5 -0
  500. package/components/widgets/signals/signal-endpoints.d.ts +4 -1
  501. package/components/widgets/signals/signal-endpoints.js +9 -4
  502. package/components/workspace/catalog-state.d.ts +13 -0
  503. package/components/workspace/catalog-store.js +1 -0
  504. package/constants/cms-layout-types.d.ts +6 -2
  505. package/constants/cms-layout-types.js +8 -4
  506. package/constants/cms-widget-types.d.ts +8 -19
  507. package/constants/cms-widget-types.js +22 -13
  508. package/constants/content-entry-kinds.d.ts +21 -0
  509. package/constants/content-entry-kinds.js +25 -0
  510. package/constants/content-entry-parts.d.ts +55 -0
  511. package/constants/content-entry-parts.js +48 -0
  512. package/constants/core-data-provider-keys.d.ts +12 -0
  513. package/constants/core-data-provider-keys.js +12 -0
  514. package/constants/grid-columns.d.ts +4 -0
  515. package/constants/grid-columns.js +5 -0
  516. package/constants/html-link-schemes.d.ts +6 -0
  517. package/constants/html-link-schemes.js +6 -0
  518. package/constants/media-library-provider-keys.d.ts +5 -0
  519. package/constants/media-library-provider-keys.js +5 -0
  520. package/constants/public-login-route.d.ts +11 -0
  521. package/constants/public-login-route.js +12 -0
  522. package/constants/runtime-data-provider-key.d.ts +1 -1
  523. package/constants/runtime-module-ownership.js +32 -5
  524. package/constants/runtime-render-client-types.d.ts +0 -1
  525. package/constants/runtime-render-client-types.js +0 -1
  526. package/constants/site-cookies.d.ts +9 -0
  527. package/constants/site-cookies.js +13 -0
  528. package/constants/support.d.ts +1 -1
  529. package/constants/support.js +1 -1
  530. package/constants/thread-library-provider-keys.d.ts +4 -3
  531. package/constants/thread-library-provider-keys.js +4 -3
  532. package/constants.d.ts +2 -1
  533. package/constants.js +3 -1
  534. package/controls.d.ts +16 -0
  535. package/controls.js +8 -0
  536. package/forms.d.ts +3 -2
  537. package/forms.js +1 -1
  538. package/gateway/auth-public-manifest.js +21 -14
  539. package/gateway/content-entries.d.ts +57 -0
  540. package/gateway/content-entries.js +141 -0
  541. package/gateway/dashboard-cards-route.js +121 -77
  542. package/gateway/errors.d.ts +0 -1
  543. package/gateway/errors.js +1 -1
  544. package/gateway/form-registry.d.ts +1 -6
  545. package/gateway/form-registry.js +12 -28
  546. package/gateway/form-submit.d.ts +6 -21
  547. package/gateway/form-submit.js +8 -13
  548. package/gateway/internal-references.d.ts +7 -4
  549. package/gateway/internal-references.js +157 -15
  550. package/gateway/media-folder-images.d.ts +19 -0
  551. package/gateway/media-folder-images.js +37 -0
  552. package/gateway/module-diagnostics-route.js +4 -9
  553. package/gateway/navigation-target-route.js +15 -84
  554. package/gateway/page-references-route.d.ts +18 -0
  555. package/gateway/page-references-route.js +86 -0
  556. package/gateway/route-handler-helpers.d.ts +9 -0
  557. package/gateway/route-handler-helpers.js +41 -0
  558. package/gateway/server-capabilities.d.ts +1 -1
  559. package/gateway/server-capabilities.js +24 -16
  560. package/gateway/site-api-request.d.ts +32 -0
  561. package/gateway/site-api-request.js +48 -0
  562. package/gateway/site-area.d.ts +26 -2
  563. package/gateway/site-area.js +80 -95
  564. package/gateway/site-auth-settings.d.ts +4 -3
  565. package/gateway/site-auth-settings.js +11 -27
  566. package/gateway/site-config.js +15 -16
  567. package/gateway/site-content.d.ts +30 -0
  568. package/gateway/site-content.js +32 -0
  569. package/gateway/site-form-route.js +14 -5
  570. package/gateway/site-media-settings.d.ts +6 -5
  571. package/gateway/site-media-settings.js +11 -27
  572. package/gateway/site-nav.js +34 -61
  573. package/gateway/site-page.d.ts +11 -5
  574. package/gateway/site-page.js +56 -96
  575. package/gateway/site-proxy.js +13 -3
  576. package/gateway/site-settings.d.ts +4 -3
  577. package/gateway/site-settings.js +11 -27
  578. package/gateway/site-stats.d.ts +4 -3
  579. package/gateway/site-stats.js +11 -27
  580. package/gateway/site-theme.d.ts +3 -3
  581. package/gateway/site-theme.js +14 -31
  582. package/gateway/thread-inbox-stats.d.ts +4 -3
  583. package/gateway/thread-inbox-stats.js +13 -25
  584. package/gateway/tr.d.ts +8 -0
  585. package/gateway/tr.js +18 -3
  586. package/gateway/user-state.d.ts +2 -2
  587. package/gateway/user-state.js +14 -26
  588. package/helpers/access.d.ts +0 -5
  589. package/helpers/access.js +0 -19
  590. package/helpers/antd-locale.d.ts +0 -3
  591. package/helpers/antd-locale.js +4 -6
  592. package/helpers/cms-area-config.d.ts +15 -11
  593. package/helpers/cms-area-config.js +13 -10
  594. package/helpers/cms-area-root-route.d.ts +4 -5
  595. package/helpers/cms-area-root-route.js +2 -6
  596. package/helpers/cms-config-field-validation.d.ts +7 -3
  597. package/helpers/cms-config-field-validation.js +47 -6
  598. package/helpers/cms-container-chrome.d.ts +10 -2
  599. package/helpers/cms-container-chrome.js +22 -31
  600. package/helpers/cms-content-binding.d.ts +13 -0
  601. package/helpers/cms-content-binding.js +32 -0
  602. package/helpers/cms-dialog.d.ts +51 -0
  603. package/helpers/cms-dialog.js +50 -0
  604. package/helpers/cms-layout-defaults.d.ts +19 -9
  605. package/helpers/cms-layout-defaults.js +73 -76
  606. package/helpers/cms-navigation-catalog.d.ts +0 -1
  607. package/helpers/cms-navigation-catalog.js +1 -1
  608. package/helpers/cms-node-factories.d.ts +1 -3
  609. package/helpers/cms-node-factories.js +2 -5
  610. package/helpers/cms-node-visibility.d.ts +8 -0
  611. package/helpers/cms-node-visibility.js +21 -1
  612. package/helpers/cms-page-catalog.d.ts +1 -3
  613. package/helpers/cms-page-catalog.js +11 -11
  614. package/helpers/cms-preset-nodes.d.ts +51 -1
  615. package/helpers/cms-preset-nodes.js +68 -2
  616. package/helpers/cms-preset-page-tree.d.ts +28 -0
  617. package/helpers/cms-preset-page-tree.js +83 -0
  618. package/helpers/cms-region-keys.d.ts +1 -2
  619. package/helpers/cms-region-keys.js +1 -1
  620. package/helpers/cms-routing.d.ts +0 -1
  621. package/helpers/cms-scope-search-params.d.ts +5 -1
  622. package/helpers/cms-scope-search-params.js +6 -1
  623. package/helpers/cms-tree-controller-settings.d.ts +11 -0
  624. package/helpers/cms-tree-controller-settings.js +37 -0
  625. package/helpers/content-entry-record-binding.d.ts +21 -0
  626. package/helpers/content-entry-record-binding.js +31 -0
  627. package/helpers/css-linear-gradient.d.ts +28 -0
  628. package/helpers/css-linear-gradient.js +122 -0
  629. package/helpers/flags.d.ts +10 -0
  630. package/helpers/flags.js +20 -0
  631. package/helpers/form-id.d.ts +8 -0
  632. package/helpers/form-id.js +10 -0
  633. package/helpers/format-date-time.d.ts +5 -0
  634. package/helpers/format-date-time.js +31 -0
  635. package/helpers/internal-path.d.ts +12 -0
  636. package/helpers/internal-path.js +28 -0
  637. package/helpers/is-record.js +2 -1
  638. package/helpers/layout-authoring-markers.d.ts +0 -2
  639. package/helpers/layout-authoring-markers.js +1 -1
  640. package/helpers/layout-style.d.ts +2 -16
  641. package/helpers/layout-style.js +15 -32
  642. package/helpers/link-target.d.ts +6 -1
  643. package/helpers/link-target.js +12 -4
  644. package/helpers/locale.d.ts +2 -0
  645. package/helpers/locale.js +4 -0
  646. package/helpers/logout.d.ts +0 -16
  647. package/helpers/logout.js +1 -1
  648. package/helpers/motion.d.ts +7 -1
  649. package/helpers/motion.js +8 -1
  650. package/helpers/overlay-events.d.ts +9 -0
  651. package/helpers/overlay-events.js +9 -0
  652. package/helpers/page-reference-tree.d.ts +42 -0
  653. package/helpers/page-reference-tree.js +92 -0
  654. package/helpers/phi-seo.d.ts +0 -3
  655. package/helpers/phi-seo.js +2 -2
  656. package/helpers/public-route-claims.d.ts +0 -1
  657. package/helpers/public-route-claims.js +1 -1
  658. package/helpers/region-page-scope.d.ts +26 -0
  659. package/helpers/region-page-scope.js +121 -0
  660. package/helpers/renderable-block-defaults.d.ts +0 -3
  661. package/helpers/renderable-block-defaults.js +1 -1
  662. package/helpers/renderable-block-normalizers.d.ts +26 -0
  663. package/helpers/renderable-block-normalizers.js +166 -0
  664. package/helpers/renderable-block-serialization.d.ts +1 -5
  665. package/helpers/renderable-block-serialization.js +13 -166
  666. package/helpers/runtime-module-route-path.d.ts +0 -1
  667. package/helpers/runtime-module-route-path.js +1 -1
  668. package/helpers/shell-region-style.d.ts +3 -3
  669. package/helpers/shell-region-style.js +3 -3
  670. package/helpers/signal-listen-routes.d.ts +14 -0
  671. package/helpers/signal-listen-routes.js +33 -0
  672. package/helpers/signal-route-lifecycle.d.ts +1 -3
  673. package/helpers/signal-route-lifecycle.js +2 -2
  674. package/helpers/signal-route-set-join.d.ts +4 -0
  675. package/helpers/signal-route-set-join.js +29 -0
  676. package/helpers/site-api.d.ts +0 -3
  677. package/helpers/site-api.js +1 -3
  678. package/helpers/site-locale-config.d.ts +16 -6
  679. package/helpers/site-locale-config.js +14 -0
  680. package/helpers/static-render-path.d.ts +12 -0
  681. package/helpers/static-render-path.js +18 -0
  682. package/helpers/structure-widget-swap.js +4 -4
  683. package/helpers/surface-presets.d.ts +81 -0
  684. package/helpers/surface-presets.js +65 -0
  685. package/helpers/surface-style.d.ts +63 -0
  686. package/helpers/surface-style.js +74 -0
  687. package/helpers/table-binding.d.ts +6 -2
  688. package/helpers/table-binding.js +12 -1
  689. package/helpers/text-placeholders.d.ts +11 -21
  690. package/helpers/text-placeholders.js +24 -8
  691. package/helpers/translation-cache.js +3 -1
  692. package/helpers.d.ts +3 -0
  693. package/helpers.js +8 -0
  694. package/module-dashboard-cards.d.ts +15 -0
  695. package/module-dashboard-cards.js +15 -0
  696. package/module-records.d.ts +14 -0
  697. package/module-records.js +13 -0
  698. package/net/log.d.ts +1 -2
  699. package/net/log.js +1 -1
  700. package/next/area-route.d.ts +17 -3
  701. package/next/area-route.js +30 -22
  702. package/next/config.d.mts +25 -0
  703. package/next/config.mjs +277 -0
  704. package/next/overlay-zones.js +3 -7
  705. package/next/root-error-page.d.ts +15 -0
  706. package/next/root-error-page.js +30 -0
  707. package/next/root-route.d.ts +0 -4
  708. package/next/root-route.js +6 -7
  709. package/next/seo-routes.js +8 -36
  710. package/next/site-proxy.d.ts +2 -2
  711. package/next/site-proxy.js +17 -6
  712. package/package.json +23 -2
  713. package/plugins/factories/widget-builder-plugin.js +2 -3
  714. package/plugins/registries/runtime-controllers.js +4 -1
  715. package/plugins/runtime/phi-slot-child-frame-client.js +17 -8
  716. package/plugins/runtime/phi-slot-child-frame-view.d.ts +10 -2
  717. package/plugins/runtime/phi-slot-child-frame-view.js +12 -28
  718. package/plugins/runtime/phi-slot-child-frame.d.ts +2 -0
  719. package/plugins/runtime/phi-slot-child-frame.js +1 -1
  720. package/plugins/runtime/phi-slot-child-viewport-effects-observer.js +12 -5
  721. package/plugins/runtime/slot-size-policy.d.ts +1 -2
  722. package/plugins/runtime/slot-size-policy.js +17 -6
  723. package/plugins/runtime-modules/accounting/module.d.ts +1 -1
  724. package/plugins/runtime-modules/accounting/trees/phi-default-accounting-page-tree.js +2 -0
  725. package/plugins/runtime-modules/admin/definition.d.ts +2 -5
  726. package/plugins/runtime-modules/admin/definition.js +2 -8
  727. package/plugins/runtime-modules/admin/forms.d.ts +0 -3
  728. package/plugins/runtime-modules/admin/forms.js +15 -24
  729. package/plugins/runtime-modules/admin/ids.d.ts +9 -0
  730. package/plugins/runtime-modules/admin/ids.js +9 -0
  731. package/plugins/runtime-modules/admin/module.d.ts +32 -1
  732. package/plugins/runtime-modules/admin/module.js +8 -3
  733. package/plugins/runtime-modules/admin/presets.d.ts +1 -4
  734. package/plugins/runtime-modules/admin/presets.js +0 -1
  735. package/plugins/runtime-modules/admin/trees/admin-settings-label-set.js +3 -2
  736. package/plugins/runtime-modules/admin/trees/phi-default-admin-area-preset-tree.js +15 -147
  737. package/plugins/runtime-modules/admin/trees/phi-default-admin-settings-page-tree.js +7 -4
  738. package/plugins/runtime-modules/app/definition.d.ts +2 -2
  739. package/plugins/runtime-modules/app/definition.js +2 -2
  740. package/plugins/runtime-modules/app/forms.d.ts +0 -6
  741. package/plugins/runtime-modules/app/forms.js +34 -56
  742. package/plugins/runtime-modules/app/ids.d.ts +9 -0
  743. package/plugins/runtime-modules/app/ids.js +9 -0
  744. package/plugins/runtime-modules/app/module.d.ts +1 -1
  745. package/plugins/runtime-modules/app/trees/phi-default-app-area-preset-tree.js +8 -64
  746. package/plugins/runtime-modules/app/trees/phi-default-app-profile-page-tree.js +1 -0
  747. package/plugins/runtime-modules/app/trees/profile-label-set.js +3 -2
  748. package/plugins/runtime-modules/area-base-presets.d.ts +1 -1
  749. package/plugins/runtime-modules/area-base-presets.js +0 -1
  750. package/plugins/runtime-modules/area-contributions/accounting.d.ts +1 -1
  751. package/plugins/runtime-modules/area-contributions/admin.d.ts +1 -1
  752. package/plugins/runtime-modules/area-contributions/app.d.ts +1 -1
  753. package/plugins/runtime-modules/area-contributions/app.js +0 -2
  754. package/plugins/runtime-modules/area-contributions/builder.d.ts +1 -1
  755. package/plugins/runtime-modules/area-contributions/common.d.ts +7 -2
  756. package/plugins/runtime-modules/area-contributions/common.js +10 -1
  757. package/plugins/runtime-modules/area-contributions/editor.d.ts +1 -1
  758. package/plugins/runtime-modules/area-contributions/editor.js +2 -0
  759. package/plugins/runtime-modules/area-contributions/public.d.ts +1 -1
  760. package/plugins/runtime-modules/area-contributions/public.js +2 -0
  761. package/plugins/runtime-modules/area-contributions.d.ts +0 -1
  762. package/plugins/runtime-modules/area-contributions.js +14 -4
  763. package/plugins/runtime-modules/area-definitions.d.ts +0 -97
  764. package/plugins/runtime-modules/area-definitions.js +9 -31
  765. package/plugins/runtime-modules/area-module-defaults.js +13 -5
  766. package/plugins/runtime-modules/asset/client-data-providers.js +6 -0
  767. package/plugins/runtime-modules/asset/controller/client.d.ts +14 -5
  768. package/plugins/runtime-modules/asset/controller/client.js +1 -1
  769. package/plugins/runtime-modules/asset/controller/definition.d.ts +21 -5
  770. package/plugins/runtime-modules/asset/controller/definition.js +22 -10
  771. package/plugins/runtime-modules/asset/controller/mount.d.ts +5 -2
  772. package/plugins/runtime-modules/asset/controller/mount.js +2 -2
  773. package/plugins/runtime-modules/asset/controller/runtime.d.ts +8 -1
  774. package/plugins/runtime-modules/asset/controller/runtime.js +69 -115
  775. package/plugins/runtime-modules/asset/data-providers.d.ts +63 -0
  776. package/plugins/runtime-modules/asset/data-providers.js +51 -0
  777. package/plugins/runtime-modules/asset/definition.d.ts +58 -0
  778. package/plugins/runtime-modules/asset/ids.d.ts +6 -0
  779. package/plugins/runtime-modules/asset/ids.js +7 -0
  780. package/plugins/runtime-modules/asset/metadata-form.d.ts +0 -2
  781. package/plugins/runtime-modules/asset/metadata-form.js +2 -2
  782. package/plugins/runtime-modules/asset/presets.d.ts +53 -1
  783. package/plugins/runtime-modules/asset/presets.js +16 -12
  784. package/plugins/runtime-modules/asset/server.js +5 -0
  785. package/plugins/runtime-modules/asset/services/folder-images.server.d.ts +11 -0
  786. package/plugins/runtime-modules/asset/services/folder-images.server.js +41 -0
  787. package/plugins/runtime-modules/asset/services/options.d.ts +3 -0
  788. package/plugins/runtime-modules/asset/services/options.js +37 -28
  789. package/plugins/runtime-modules/asset/settings-forms.d.ts +0 -3
  790. package/plugins/runtime-modules/asset/settings-forms.js +1 -1
  791. package/plugins/runtime-modules/asset/tour.d.ts +44 -0
  792. package/plugins/runtime-modules/asset/tour.js +53 -0
  793. package/plugins/runtime-modules/asset/trees/phi-default-admin-media-settings-page-tree.js +28 -8
  794. package/plugins/runtime-modules/asset/trees/phi-default-builder-media-page-tree.js +106 -58
  795. package/plugins/runtime-modules/asset/widgets/area-upload/config.d.ts +2 -2
  796. package/plugins/runtime-modules/asset/widgets/area-upload/config.js +4 -3
  797. package/plugins/runtime-modules/asset/widgets/asset-focal-rect/config.d.ts +2 -1
  798. package/plugins/runtime-modules/asset/widgets/asset-focal-rect/config.js +1 -1
  799. package/plugins/runtime-modules/asset/widgets/image-inspector/config.d.ts +2 -2
  800. package/plugins/runtime-modules/asset/widgets/image-inspector/config.js +4 -3
  801. package/plugins/runtime-modules/asset/widgets/media-picker/config.d.ts +2 -2
  802. package/plugins/runtime-modules/asset/widgets/media-picker/config.js +4 -3
  803. package/plugins/runtime-modules/auth/admin-settings-forms.d.ts +0 -7
  804. package/plugins/runtime-modules/auth/admin-settings-forms.js +3 -3
  805. package/plugins/runtime-modules/auth/controller/definition.d.ts +13 -4
  806. package/plugins/runtime-modules/auth/controller/definition.js +3 -3
  807. package/plugins/runtime-modules/auth/controller/server-definition.d.ts +5 -5
  808. package/plugins/runtime-modules/auth/controller-plugin.js +23 -47
  809. package/plugins/runtime-modules/auth/definition.d.ts +1 -1
  810. package/plugins/runtime-modules/auth/definition.js +2 -2
  811. package/plugins/runtime-modules/auth/form-provider-registry.js +10 -6
  812. package/plugins/runtime-modules/auth/ids.d.ts +16 -0
  813. package/plugins/runtime-modules/auth/ids.js +17 -0
  814. package/plugins/runtime-modules/auth/machine.d.ts +0 -13
  815. package/plugins/runtime-modules/auth/machine.js +1 -1
  816. package/plugins/runtime-modules/auth/overlay-ids.d.ts +0 -1
  817. package/plugins/runtime-modules/auth/overlay-ids.js +0 -3
  818. package/plugins/runtime-modules/auth/services/installations-table.js +4 -3
  819. package/plugins/runtime-modules/auth/trees/phi-auth-area-overlay-tree.server.js +35 -7
  820. package/plugins/runtime-modules/auth/trees/phi-auth-runtime-page-tree.js +1 -1
  821. package/plugins/runtime-modules/auth/trees/phi-default-admin-auth-settings-page-tree.js +1 -0
  822. package/plugins/runtime-modules/auth/trees/phi-default-pub-confirm-page-tree.js +25 -21
  823. package/plugins/runtime-modules/auth/trees/phi-default-pub-login-page-tree.js +25 -21
  824. package/plugins/runtime-modules/auth/trees/phi-default-pub-registration-page-tree.js +25 -21
  825. package/plugins/runtime-modules/auth/trees/phi-default-pub-reset-password-page-tree.js +25 -21
  826. package/plugins/runtime-modules/auth/trees/security-label-set.js +3 -2
  827. package/plugins/runtime-modules/auth/widgets/auth-methods/config.d.ts +2 -1
  828. package/plugins/runtime-modules/auth/widgets/auth-methods/config.js +1 -1
  829. package/plugins/runtime-modules/auth/widgets/auth-workflow/client.js +3 -2
  830. package/plugins/runtime-modules/auth/widgets/auth-workflow/config.d.ts +2 -1
  831. package/plugins/runtime-modules/auth/widgets/auth-workflow/config.js +1 -1
  832. package/plugins/runtime-modules/auth/widgets/logout/client.d.ts +3 -1
  833. package/plugins/runtime-modules/auth/widgets/logout/client.js +12 -7
  834. package/plugins/runtime-modules/auth/widgets/logout/server.d.ts +1 -1
  835. package/plugins/runtime-modules/auth/widgets/logout/server.js +10 -2
  836. package/plugins/runtime-modules/auth/widgets/security/client.d.ts +4 -1
  837. package/plugins/runtime-modules/auth/widgets/security/client.js +11 -5
  838. package/plugins/runtime-modules/avatar/definition.d.ts +1 -1
  839. package/plugins/runtime-modules/avatar/definition.js +2 -2
  840. package/plugins/runtime-modules/avatar/ids.d.ts +9 -0
  841. package/plugins/runtime-modules/avatar/ids.js +9 -0
  842. package/plugins/runtime-modules/avatar/labels.js +3 -2
  843. package/plugins/runtime-modules/avatar/module.d.ts +1 -1
  844. package/plugins/runtime-modules/avatar/overlay-tree.server.js +2 -6
  845. package/plugins/runtime-modules/avatar/widgets/account-avatar/client.js +6 -3
  846. package/plugins/runtime-modules/blog/authoring-widgets.d.ts +2 -0
  847. package/plugins/runtime-modules/blog/authoring-widgets.js +4 -0
  848. package/plugins/runtime-modules/blog/authoring.d.ts +1 -0
  849. package/plugins/runtime-modules/blog/authoring.js +8 -0
  850. package/plugins/runtime-modules/blog/definition.d.ts +35 -0
  851. package/plugins/runtime-modules/blog/definition.js +22 -0
  852. package/plugins/runtime-modules/blog/forms.d.ts +16 -0
  853. package/plugins/runtime-modules/blog/forms.js +11 -0
  854. package/plugins/runtime-modules/blog/ids.d.ts +25 -0
  855. package/plugins/runtime-modules/blog/ids.js +27 -0
  856. package/plugins/runtime-modules/blog/labels.d.ts +4 -0
  857. package/plugins/runtime-modules/blog/labels.js +27 -0
  858. package/plugins/runtime-modules/blog/module.d.ts +35 -0
  859. package/plugins/runtime-modules/blog/module.js +12 -0
  860. package/plugins/runtime-modules/blog/presets.d.ts +53 -0
  861. package/plugins/runtime-modules/blog/presets.js +24 -0
  862. package/plugins/runtime-modules/blog/server.d.ts +1 -0
  863. package/plugins/runtime-modules/blog/server.js +17 -0
  864. package/plugins/runtime-modules/builder/addresses.d.ts +1 -1
  865. package/plugins/runtime-modules/builder/area-settings-answer.d.ts +31 -0
  866. package/plugins/runtime-modules/builder/area-settings-answer.js +81 -0
  867. package/plugins/runtime-modules/builder/area-shell-presets.server.d.ts +21 -5
  868. package/plugins/runtime-modules/builder/area-shell-presets.server.js +102 -100
  869. package/plugins/runtime-modules/builder/authoring-provider-keys.d.ts +1 -20
  870. package/plugins/runtime-modules/builder/authoring-provider-keys.js +1 -1
  871. package/plugins/runtime-modules/builder/authoring-widgets.js +0 -2
  872. package/plugins/runtime-modules/builder/cards.d.ts +3 -0
  873. package/plugins/runtime-modules/builder/cards.js +79 -0
  874. package/plugins/runtime-modules/builder/clients/builder-region-overrides.js +4 -2
  875. package/plugins/runtime-modules/builder/clients/canvas-widget.js +19 -6
  876. package/plugins/runtime-modules/builder/clients/grid-placement-settings.d.ts +24 -0
  877. package/plugins/runtime-modules/builder/clients/grid-placement-settings.js +93 -0
  878. package/plugins/runtime-modules/builder/clients/inspector-config-field.d.ts +46 -5
  879. package/plugins/runtime-modules/builder/clients/inspector-config-field.js +349 -104
  880. package/plugins/runtime-modules/builder/clients/inspector-image-field.d.ts +17 -0
  881. package/plugins/runtime-modules/builder/clients/inspector-image-field.js +59 -0
  882. package/plugins/runtime-modules/builder/clients/inspector-link-target-field.d.ts +9 -23
  883. package/plugins/runtime-modules/builder/clients/inspector-link-target-field.js +13 -60
  884. package/plugins/runtime-modules/builder/clients/inspector-section-widget.d.ts +9 -3
  885. package/plugins/runtime-modules/builder/clients/inspector-section-widget.js +51 -110
  886. package/plugins/runtime-modules/builder/clients/inspector-surface-labels.d.ts +8 -0
  887. package/plugins/runtime-modules/builder/clients/inspector-surface-labels.js +24 -0
  888. package/plugins/runtime-modules/builder/clients/inspector-title.js +7 -8
  889. package/plugins/runtime-modules/builder/clients/layout-inspector.d.ts +18 -9
  890. package/plugins/runtime-modules/builder/clients/layout-inspector.js +71 -158
  891. package/plugins/runtime-modules/builder/clients/layout-scaffold-buttons.js +4 -4
  892. package/plugins/runtime-modules/builder/clients/layout-scaffold-overlays.js +2 -2
  893. package/plugins/runtime-modules/builder/clients/mode-switch.js +3 -5
  894. package/plugins/runtime-modules/builder/clients/pages-header.js +11 -63
  895. package/plugins/runtime-modules/builder/clients/pages-workspace.js +10 -1
  896. package/plugins/runtime-modules/builder/clients/region-inspector.d.ts +6 -2
  897. package/plugins/runtime-modules/builder/clients/region-inspector.js +12 -26
  898. package/plugins/runtime-modules/builder/clients/region-visibility-fields.d.ts +15 -0
  899. package/plugins/runtime-modules/builder/clients/region-visibility-fields.js +135 -0
  900. package/plugins/runtime-modules/builder/clients/shells-workspace.js +3 -1
  901. package/plugins/runtime-modules/builder/clients/structure-canvas.d.ts +1 -3
  902. package/plugins/runtime-modules/builder/clients/structure-canvas.js +50 -41
  903. package/plugins/runtime-modules/builder/clients/widget-effects-editor.js +2 -2
  904. package/plugins/runtime-modules/builder/clients/widget-inspector.d.ts +15 -1
  905. package/plugins/runtime-modules/builder/clients/widget-inspector.js +69 -26
  906. package/plugins/runtime-modules/builder/clients/workspace-scope-boundary.js +10 -0
  907. package/plugins/runtime-modules/builder/cms-instance-allocator.d.ts +0 -1
  908. package/plugins/runtime-modules/builder/cms-instance-allocator.js +1 -1
  909. package/plugins/runtime-modules/builder/controller/client.d.ts +31 -14
  910. package/plugins/runtime-modules/builder/controller/client.js +9 -2
  911. package/plugins/runtime-modules/builder/controller/definition.d.ts +53 -14
  912. package/plugins/runtime-modules/builder/controller/definition.js +148 -37
  913. package/plugins/runtime-modules/builder/{draft-command-controller.d.ts → controller/draft-command-controller.d.ts} +12 -5
  914. package/plugins/runtime-modules/builder/{draft-command-controller.js → controller/draft-command-controller.js} +186 -232
  915. package/plugins/runtime-modules/builder/{draft-status-controller.d.ts → controller/draft-status-controller.d.ts} +9 -2
  916. package/plugins/runtime-modules/builder/{draft-status-controller.js → controller/draft-status-controller.js} +30 -12
  917. package/plugins/runtime-modules/builder/controller/inspector-controller.d.ts +3 -0
  918. package/plugins/runtime-modules/builder/controller/inspector-controller.js +207 -0
  919. package/plugins/runtime-modules/builder/controller/mount.d.ts +1 -1
  920. package/plugins/runtime-modules/builder/controller/mount.js +1 -1
  921. package/plugins/runtime-modules/builder/{page-controller-helpers.d.ts → controller/page-controller-helpers.d.ts} +2 -4
  922. package/plugins/runtime-modules/builder/{page-controller-helpers.js → controller/page-controller-helpers.js} +4 -4
  923. package/plugins/runtime-modules/builder/{page-controller.d.ts → controller/page-controller.d.ts} +6 -3
  924. package/plugins/runtime-modules/builder/{page-controller.js → controller/page-controller.js} +45 -134
  925. package/plugins/runtime-modules/builder/controller/preview-controller.d.ts +5 -0
  926. package/plugins/runtime-modules/builder/controller/preview-controller.js +68 -0
  927. package/plugins/runtime-modules/builder/{region-controller.d.ts → controller/region-controller.d.ts} +1 -2
  928. package/plugins/runtime-modules/builder/{region-controller.js → controller/region-controller.js} +18 -38
  929. package/plugins/runtime-modules/builder/controller/server-definition.d.ts +34 -14
  930. package/plugins/runtime-modules/builder/controller/server-definition.js +29 -3
  931. package/plugins/runtime-modules/builder/{signal-wiring-controller.d.ts → controller/signal-wiring-controller.d.ts} +2 -8
  932. package/plugins/runtime-modules/builder/{signal-wiring-controller.js → controller/signal-wiring-controller.js} +4 -12
  933. package/plugins/runtime-modules/builder/{workspace-controller.d.ts → controller/workspace-controller.d.ts} +15 -7
  934. package/plugins/runtime-modules/builder/{workspace-controller.js → controller/workspace-controller.js} +287 -727
  935. package/plugins/runtime-modules/builder/data-providers.d.ts +1 -1
  936. package/plugins/runtime-modules/builder/definition.d.ts +3 -3
  937. package/plugins/runtime-modules/builder/definition.js +2 -2
  938. package/plugins/runtime-modules/builder/developer-workspace-store.d.ts +27 -26
  939. package/plugins/runtime-modules/builder/developer-workspace-store.js +59 -224
  940. package/plugins/runtime-modules/builder/developer-workspace-types.d.ts +30 -34
  941. package/plugins/runtime-modules/builder/edit-scaffold-drawer.js +6 -5
  942. package/plugins/runtime-modules/builder/effects-form-values.js +3 -2
  943. package/plugins/runtime-modules/builder/history.d.ts +59 -5
  944. package/plugins/runtime-modules/builder/ids.d.ts +9 -0
  945. package/plugins/runtime-modules/builder/ids.js +9 -0
  946. package/plugins/runtime-modules/builder/inspector-actions.d.ts +18 -13
  947. package/plugins/runtime-modules/builder/inspector-actions.js +9 -16
  948. package/plugins/runtime-modules/builder/inspector-overlay-addresses.d.ts +2 -3
  949. package/plugins/runtime-modules/builder/inspector-overlay-addresses.js +3 -8
  950. package/plugins/runtime-modules/builder/inspector-section-widget.js +15 -6
  951. package/plugins/runtime-modules/builder/module-authoring-catalog.d.ts +2 -0
  952. package/plugins/runtime-modules/builder/module-authoring-catalog.server.js +3 -0
  953. package/plugins/runtime-modules/builder/module-usage-client.js +5 -1
  954. package/plugins/runtime-modules/builder/navigation-catalog.server.js +4 -1
  955. package/plugins/runtime-modules/builder/navigation-folder-address.d.ts +0 -1
  956. package/plugins/runtime-modules/builder/navigation-folder-address.js +1 -1
  957. package/plugins/runtime-modules/builder/navigation-path-context.js +3 -5
  958. package/plugins/runtime-modules/builder/navigation-store.d.ts +2 -2
  959. package/plugins/runtime-modules/builder/navigation-store.js +3 -3
  960. package/plugins/runtime-modules/builder/node-config-write.d.ts +38 -0
  961. package/plugins/runtime-modules/builder/node-config-write.js +134 -0
  962. package/plugins/runtime-modules/builder/node-finders.d.ts +0 -1
  963. package/plugins/runtime-modules/builder/node-finders.js +1 -1
  964. package/plugins/runtime-modules/builder/offered-page-catalog.d.ts +0 -13
  965. package/plugins/runtime-modules/builder/offered-page-catalog.js +2 -2
  966. package/plugins/runtime-modules/builder/options-providers.js +16 -9
  967. package/plugins/runtime-modules/builder/page-preset-catalog.server.js +2 -63
  968. package/plugins/runtime-modules/builder/page-presets.server.d.ts +8 -1
  969. package/plugins/runtime-modules/builder/page-presets.server.js +63 -76
  970. package/plugins/runtime-modules/builder/page-references-provider.js +1 -1
  971. package/plugins/runtime-modules/builder/page-tree-walk.d.ts +3 -0
  972. package/plugins/runtime-modules/builder/page-tree-walk.js +4 -0
  973. package/plugins/runtime-modules/builder/persistence.d.ts +26 -11
  974. package/plugins/runtime-modules/builder/persistence.js +38 -78
  975. package/plugins/runtime-modules/builder/plugin-meta-labels.js +10 -0
  976. package/plugins/runtime-modules/builder/plugin-meta-labels.server.d.ts +15 -0
  977. package/plugins/runtime-modules/builder/plugin-meta-labels.server.js +58 -30
  978. package/plugins/runtime-modules/builder/plugin-metas.d.ts +7 -0
  979. package/plugins/runtime-modules/builder/plugin-metas.js +27 -9
  980. package/plugins/runtime-modules/builder/presets.d.ts +0 -132
  981. package/plugins/runtime-modules/builder/presets.js +5 -4
  982. package/plugins/runtime-modules/builder/preview-transport.d.ts +9 -26
  983. package/plugins/runtime-modules/builder/preview-transport.js +2 -2
  984. package/plugins/runtime-modules/builder/public-route-collisions.d.ts +0 -33
  985. package/plugins/runtime-modules/builder/public-route-collisions.js +4 -4
  986. package/plugins/runtime-modules/builder/region-defaults.js +18 -46
  987. package/plugins/runtime-modules/builder/region-hydration.d.ts +5 -9
  988. package/plugins/runtime-modules/builder/region-hydration.js +37 -106
  989. package/plugins/runtime-modules/builder/region-keys.d.ts +0 -1
  990. package/plugins/runtime-modules/builder/region-keys.js +1 -4
  991. package/plugins/runtime-modules/builder/region-root-node.d.ts +22 -0
  992. package/plugins/runtime-modules/builder/region-root-node.js +25 -0
  993. package/plugins/runtime-modules/builder/render-root-node-preview.server.d.ts +2 -20
  994. package/plugins/runtime-modules/builder/render-root-node-preview.server.js +10 -27
  995. package/plugins/runtime-modules/builder/render-root-node-scaffold.d.ts +13 -4
  996. package/plugins/runtime-modules/builder/render-root-node-scaffold.js +27 -130
  997. package/plugins/runtime-modules/builder/root-node-normalization.d.ts +31 -23
  998. package/plugins/runtime-modules/builder/root-node-normalization.js +72 -69
  999. package/plugins/runtime-modules/builder/root-node-renderable-tree.d.ts +1 -3
  1000. package/plugins/runtime-modules/builder/root-node-renderable-tree.js +11 -53
  1001. package/plugins/runtime-modules/builder/runtime-module-selection.d.ts +3 -12
  1002. package/plugins/runtime-modules/builder/runtime-module-selection.js +25 -4
  1003. package/plugins/runtime-modules/builder/selected-collection-source.d.ts +0 -8
  1004. package/plugins/runtime-modules/builder/selected-collection-source.js +5 -6
  1005. package/plugins/runtime-modules/builder/sequential-slot-helpers.d.ts +0 -3
  1006. package/plugins/runtime-modules/builder/sequential-slot-helpers.js +1 -1
  1007. package/plugins/runtime-modules/builder/server.js +5 -0
  1008. package/plugins/runtime-modules/builder/services/navigation-table.js +31 -13
  1009. package/plugins/runtime-modules/builder/services/page-source-tree.js +20 -7
  1010. package/plugins/runtime-modules/builder/services/runtime-modules-table.d.ts +19 -0
  1011. package/plugins/runtime-modules/builder/services/runtime-modules-table.js +84 -12
  1012. package/plugins/runtime-modules/builder/signal-endpoints.js +11 -31
  1013. package/plugins/runtime-modules/builder/signal-route-selection.js +4 -7
  1014. package/plugins/runtime-modules/builder/signal-wiring-options.js +5 -4
  1015. package/plugins/runtime-modules/builder/structure-region-pick-items.js +3 -2
  1016. package/plugins/runtime-modules/builder/tour.d.ts +316 -0
  1017. package/plugins/runtime-modules/builder/tour.js +337 -0
  1018. package/plugins/runtime-modules/builder/trees/builder-navigation-label-set.js +3 -2
  1019. package/plugins/runtime-modules/builder/trees/builder-settings-label-set.js +3 -2
  1020. package/plugins/runtime-modules/builder/trees/phi-builder-inspector-area-overlay-tree.server.js +94 -36
  1021. package/plugins/runtime-modules/builder/trees/phi-default-builder-area-preset-tree.d.ts +11 -5
  1022. package/plugins/runtime-modules/builder/trees/phi-default-builder-area-preset-tree.js +196 -107
  1023. package/plugins/runtime-modules/builder/trees/phi-default-builder-settings-page-tree.js +7 -4
  1024. package/plugins/runtime-modules/builder/widgets/chrome/config.d.ts +32 -52
  1025. package/plugins/runtime-modules/builder/widgets/chrome/config.js +4 -6
  1026. package/plugins/runtime-modules/builder/widgets/hello-world/config.d.ts +2 -1
  1027. package/plugins/runtime-modules/builder/widgets/hello-world/config.js +4 -3
  1028. package/plugins/runtime-modules/builder/widgets/structure-region/built-in.js +281 -639
  1029. package/plugins/runtime-modules/builder/widgets/structure-region/config.js +3 -10
  1030. package/plugins/runtime-modules/builder/widgets/structure-region/plugin.js +4 -3
  1031. package/plugins/runtime-modules/builder/widgets/structure-region/tree-operations.d.ts +43 -0
  1032. package/plugins/runtime-modules/builder/widgets/structure-region/tree-operations.js +114 -0
  1033. package/plugins/runtime-modules/builder/widgets/test-block/config.d.ts +2 -1
  1034. package/plugins/runtime-modules/builder/widgets/test-block/config.js +4 -3
  1035. package/plugins/runtime-modules/builder/widgets/workspaces/config.d.ts +1 -1
  1036. package/plugins/runtime-modules/builder/widgets.js +0 -8
  1037. package/plugins/runtime-modules/client-area-contributions/accounting.d.ts +1 -1
  1038. package/plugins/runtime-modules/client-area-contributions/accounting.js +0 -2
  1039. package/plugins/runtime-modules/client-area-contributions/admin.js +0 -8
  1040. package/plugins/runtime-modules/client-area-contributions/app.d.ts +1 -1
  1041. package/plugins/runtime-modules/client-area-contributions/app.js +0 -8
  1042. package/plugins/runtime-modules/client-area-contributions/builder.d.ts +1 -1
  1043. package/plugins/runtime-modules/client-area-contributions/builder.js +0 -2
  1044. package/plugins/runtime-modules/client-area-contributions/common.d.ts +1 -1
  1045. package/plugins/runtime-modules/client-area-contributions/common.js +12 -0
  1046. package/plugins/runtime-modules/client-area-contributions/editor.js +0 -8
  1047. package/plugins/runtime-modules/client-area-contributions/public.d.ts +1 -1
  1048. package/plugins/runtime-modules/client-authoring-module.js +6 -0
  1049. package/plugins/runtime-modules/client-authoring-providers/accounting.d.ts +1 -1
  1050. package/plugins/runtime-modules/client-authoring-providers/admin.d.ts +1 -1
  1051. package/plugins/runtime-modules/client-authoring-providers/app.d.ts +1 -1
  1052. package/plugins/runtime-modules/client-authoring-providers/app.js +0 -6
  1053. package/plugins/runtime-modules/client-authoring-providers/builder.d.ts +1 -1
  1054. package/plugins/runtime-modules/client-authoring-providers/common.d.ts +1 -1
  1055. package/plugins/runtime-modules/client-authoring-providers/common.js +12 -0
  1056. package/plugins/runtime-modules/client-authoring-providers/editor.d.ts +1 -1
  1057. package/plugins/runtime-modules/client-authoring-providers/editor.js +9 -3
  1058. package/plugins/runtime-modules/client-authoring-providers/public.d.ts +1 -1
  1059. package/plugins/runtime-modules/client-authoring-providers/public.js +10 -4
  1060. package/plugins/runtime-modules/client-authoring-widget-module.js +6 -0
  1061. package/plugins/runtime-modules/client-manifests/app.js +0 -5
  1062. package/plugins/runtime-modules/client-manifests/builder.js +0 -4
  1063. package/plugins/runtime-modules/client-manifests/common-data-providers.js +3 -0
  1064. package/plugins/runtime-modules/client-manifests/common.d.ts +1 -0
  1065. package/plugins/runtime-modules/client-manifests/common.js +35 -3
  1066. package/plugins/runtime-modules/client-manifests/editor.js +2 -2
  1067. package/plugins/runtime-modules/client-manifests/public.js +0 -2
  1068. package/plugins/runtime-modules/content-entry-routes.d.ts +105 -0
  1069. package/plugins/runtime-modules/content-entry-routes.js +112 -0
  1070. package/plugins/runtime-modules/contracts.d.ts +2 -4
  1071. package/plugins/runtime-modules/contracts.js +39 -2
  1072. package/plugins/runtime-modules/core/authoring-widgets.js +19 -3
  1073. package/plugins/runtime-modules/core/cards.js +3 -9
  1074. package/plugins/runtime-modules/core/client-data-providers.d.ts +14 -2
  1075. package/plugins/runtime-modules/core/client-data-providers.js +31 -0
  1076. package/plugins/runtime-modules/core/content-entries/categories-table.d.ts +10 -0
  1077. package/plugins/runtime-modules/core/content-entries/categories-table.js +77 -0
  1078. package/plugins/runtime-modules/core/content-entries/curation-options.d.ts +8 -0
  1079. package/plugins/runtime-modules/core/content-entries/curation-options.js +71 -0
  1080. package/plugins/runtime-modules/core/content-entries/record-source.server.d.ts +22 -0
  1081. package/plugins/runtime-modules/core/content-entries/record-source.server.js +19 -0
  1082. package/plugins/runtime-modules/core/content-entries/record.server.d.ts +10 -0
  1083. package/plugins/runtime-modules/core/content-entries/record.server.js +18 -0
  1084. package/plugins/runtime-modules/{news/services → core/content-entries}/table.d.ts +3 -2
  1085. package/plugins/runtime-modules/core/content-entries/table.js +164 -0
  1086. package/plugins/runtime-modules/core/content-entries/tags.d.ts +14 -0
  1087. package/plugins/runtime-modules/core/content-entries/tags.js +40 -0
  1088. package/plugins/runtime-modules/core/data-providers.d.ts +289 -0
  1089. package/plugins/runtime-modules/core/data-providers.js +199 -0
  1090. package/plugins/runtime-modules/core/definition.d.ts +328 -1
  1091. package/plugins/runtime-modules/core/definition.js +2 -2
  1092. package/plugins/runtime-modules/core/form-providers.d.ts +38 -0
  1093. package/plugins/runtime-modules/core/form-providers.js +3 -0
  1094. package/plugins/runtime-modules/core/ids.d.ts +9 -0
  1095. package/plugins/runtime-modules/core/ids.js +9 -0
  1096. package/plugins/runtime-modules/core/messaging/data-providers.d.ts +106 -0
  1097. package/plugins/runtime-modules/core/messaging/data-providers.js +119 -0
  1098. package/plugins/runtime-modules/core/messaging/forms.d.ts +16 -0
  1099. package/plugins/runtime-modules/core/messaging/forms.js +145 -0
  1100. package/plugins/runtime-modules/core/messaging/labels.d.ts +49 -0
  1101. package/plugins/runtime-modules/core/messaging/labels.js +149 -0
  1102. package/plugins/runtime-modules/{threads/services/table.js → core/messaging/thread-inbox-table.js} +22 -22
  1103. package/plugins/runtime-modules/core/server.js +12 -0
  1104. package/plugins/runtime-modules/core/widgets/account/client.js +6 -4
  1105. package/plugins/runtime-modules/core/widgets/account/config.d.ts +3 -1
  1106. package/plugins/runtime-modules/core/widgets/account/config.js +2 -1
  1107. package/plugins/runtime-modules/core/widgets/brand/client.d.ts +3 -1
  1108. package/plugins/runtime-modules/core/widgets/brand/client.js +9 -2
  1109. package/plugins/runtime-modules/core/widgets/brand/config.d.ts +2 -1
  1110. package/plugins/runtime-modules/core/widgets/brand/config.js +1 -1
  1111. package/plugins/runtime-modules/core/widgets/brand/plugin.js +2 -2
  1112. package/plugins/runtime-modules/core/widgets/brand/server.d.ts +2 -2
  1113. package/plugins/runtime-modules/core/widgets/brand/server.js +2 -1
  1114. package/plugins/runtime-modules/core/widgets/breadcrumb/client.js +4 -4
  1115. package/plugins/runtime-modules/core/widgets/breadcrumb/config.d.ts +3 -1
  1116. package/plugins/runtime-modules/core/widgets/breadcrumb/config.js +2 -1
  1117. package/plugins/runtime-modules/core/widgets/button/client.js +7 -5
  1118. package/plugins/runtime-modules/core/widgets/button/config.d.ts +73 -36
  1119. package/plugins/runtime-modules/core/widgets/button/config.js +40 -29
  1120. package/plugins/runtime-modules/core/widgets/card/authoring.js +3 -3
  1121. package/plugins/runtime-modules/core/widgets/card/collection-view-binding.js +58 -15
  1122. package/plugins/runtime-modules/core/widgets/card/config.d.ts +336 -32
  1123. package/plugins/runtime-modules/core/widgets/card/config.js +176 -45
  1124. package/plugins/runtime-modules/core/widgets/card/editor.d.ts +6 -2
  1125. package/plugins/runtime-modules/core/widgets/card/editor.js +133 -25
  1126. package/plugins/runtime-modules/core/widgets/card/plugin.js +13 -6
  1127. package/plugins/runtime-modules/core/widgets/card/server.d.ts +10 -3
  1128. package/plugins/runtime-modules/core/widgets/card/server.js +71 -32
  1129. package/plugins/runtime-modules/core/widgets/cascader/authoring.d.ts +9 -4
  1130. package/plugins/runtime-modules/core/widgets/cascader/config.d.ts +3 -2
  1131. package/plugins/runtime-modules/core/widgets/cascader/config.js +1 -1
  1132. package/plugins/runtime-modules/core/widgets/checkbox-group/config.d.ts +3 -2
  1133. package/plugins/runtime-modules/core/widgets/checkbox-group/config.js +1 -1
  1134. package/plugins/runtime-modules/core/widgets/collection-view/asset-binding.js +20 -2
  1135. package/plugins/runtime-modules/core/widgets/collection-view/client.js +10 -0
  1136. package/plugins/runtime-modules/core/widgets/collection-view/config.d.ts +2 -4
  1137. package/plugins/runtime-modules/core/widgets/collection-view/config.js +8 -14
  1138. package/plugins/runtime-modules/core/widgets/color/client.js +1 -1
  1139. package/plugins/runtime-modules/core/widgets/color/config.d.ts +8 -2
  1140. package/plugins/runtime-modules/core/widgets/color/config.js +18 -2
  1141. package/plugins/runtime-modules/core/widgets/color/plugin.js +4 -3
  1142. package/plugins/runtime-modules/core/widgets/command-toolbar/authoring.js +5 -4
  1143. package/plugins/runtime-modules/core/widgets/command-toolbar/client.js +11 -237
  1144. package/plugins/runtime-modules/core/widgets/command-toolbar/config.d.ts +17 -26
  1145. package/plugins/runtime-modules/core/widgets/command-toolbar/config.js +32 -116
  1146. package/plugins/runtime-modules/core/widgets/command-toolbar/plugin.js +4 -3
  1147. package/plugins/runtime-modules/core/widgets/date-input/authoring.d.ts +3 -0
  1148. package/plugins/runtime-modules/core/widgets/date-input/authoring.js +8 -0
  1149. package/plugins/runtime-modules/core/widgets/date-input/client.d.ts +6 -0
  1150. package/plugins/runtime-modules/core/widgets/{date-picker → date-input}/client.js +5 -10
  1151. package/plugins/runtime-modules/core/widgets/{date-picker → date-input}/config.d.ts +6 -4
  1152. package/plugins/runtime-modules/core/widgets/{date-picker → date-input}/config.js +11 -16
  1153. package/plugins/runtime-modules/core/widgets/date-input/plugin.d.ts +3 -0
  1154. package/plugins/runtime-modules/core/widgets/date-input/plugin.js +9 -0
  1155. package/plugins/runtime-modules/core/widgets/date-input/selection.d.ts +8 -0
  1156. package/plugins/runtime-modules/core/widgets/date-input/selection.js +13 -0
  1157. package/plugins/runtime-modules/core/widgets/description/client.d.ts +3 -1
  1158. package/plugins/runtime-modules/core/widgets/description/client.js +5 -21
  1159. package/plugins/runtime-modules/core/widgets/description/config.d.ts +347 -12
  1160. package/plugins/runtime-modules/core/widgets/description/config.js +12 -6
  1161. package/plugins/runtime-modules/core/widgets/description/editor.js +44 -29
  1162. package/plugins/runtime-modules/core/widgets/description/plugin.js +1 -1
  1163. package/plugins/runtime-modules/core/widgets/description/server.d.ts +2 -1
  1164. package/plugins/runtime-modules/core/widgets/description/server.js +14 -31
  1165. package/plugins/runtime-modules/core/widgets/dimension/config.d.ts +1 -1
  1166. package/plugins/runtime-modules/core/widgets/draft-status/client.js +1 -1
  1167. package/plugins/runtime-modules/core/widgets/draft-status/config.d.ts +2 -1
  1168. package/plugins/runtime-modules/core/widgets/draft-status/config.js +1 -1
  1169. package/plugins/runtime-modules/core/widgets/entry-detail/authoring.d.ts +6 -0
  1170. package/plugins/runtime-modules/core/widgets/entry-detail/authoring.js +14 -0
  1171. package/plugins/runtime-modules/core/widgets/entry-detail/client.d.ts +9 -0
  1172. package/plugins/runtime-modules/core/widgets/entry-detail/client.js +7 -0
  1173. package/plugins/runtime-modules/core/widgets/entry-detail/config.d.ts +64 -0
  1174. package/plugins/runtime-modules/core/widgets/entry-detail/config.js +42 -0
  1175. package/plugins/runtime-modules/core/widgets/entry-detail/plugin.d.ts +3 -0
  1176. package/plugins/runtime-modules/core/widgets/entry-detail/plugin.js +8 -0
  1177. package/plugins/runtime-modules/core/widgets/entry-detail/server.d.ts +18 -0
  1178. package/plugins/runtime-modules/core/widgets/entry-detail/server.js +42 -0
  1179. package/plugins/runtime-modules/core/widgets/entry-header/authoring.d.ts +6 -0
  1180. package/plugins/runtime-modules/core/widgets/entry-header/authoring.js +14 -0
  1181. package/plugins/runtime-modules/core/widgets/entry-header/client.d.ts +12 -0
  1182. package/plugins/runtime-modules/core/widgets/entry-header/client.js +10 -0
  1183. package/plugins/runtime-modules/core/widgets/entry-header/config.d.ts +80 -0
  1184. package/plugins/runtime-modules/core/widgets/entry-header/config.js +59 -0
  1185. package/plugins/runtime-modules/core/widgets/entry-header/plugin.d.ts +3 -0
  1186. package/plugins/runtime-modules/core/widgets/entry-header/plugin.js +8 -0
  1187. package/plugins/runtime-modules/core/widgets/entry-header/server.d.ts +15 -0
  1188. package/plugins/runtime-modules/core/widgets/entry-header/server.js +40 -0
  1189. package/plugins/runtime-modules/core/widgets/entry-list/authoring.d.ts +2 -0
  1190. package/plugins/runtime-modules/{news/widgets/news-list → core/widgets/entry-list}/authoring.js +5 -5
  1191. package/plugins/runtime-modules/core/widgets/entry-list/client.d.ts +98 -0
  1192. package/plugins/runtime-modules/core/widgets/entry-list/client.js +131 -0
  1193. package/plugins/runtime-modules/core/widgets/entry-list/config.d.ts +500 -0
  1194. package/plugins/runtime-modules/core/widgets/entry-list/config.js +171 -0
  1195. package/plugins/runtime-modules/core/widgets/entry-list/plugin.d.ts +3 -0
  1196. package/plugins/runtime-modules/core/widgets/entry-list/plugin.js +11 -0
  1197. package/plugins/runtime-modules/core/widgets/entry-list/server.d.ts +27 -0
  1198. package/plugins/runtime-modules/core/widgets/entry-list/server.js +87 -0
  1199. package/plugins/runtime-modules/core/widgets/entry-list/view.server.d.ts +33 -0
  1200. package/plugins/runtime-modules/core/widgets/entry-list/view.server.js +104 -0
  1201. package/plugins/runtime-modules/core/widgets/float-button/authoring.d.ts +3 -0
  1202. package/plugins/runtime-modules/core/widgets/float-button/authoring.js +16 -0
  1203. package/plugins/runtime-modules/core/widgets/float-button/client.d.ts +12 -0
  1204. package/plugins/runtime-modules/core/widgets/float-button/client.js +24 -0
  1205. package/plugins/runtime-modules/core/widgets/float-button/config.d.ts +97 -0
  1206. package/plugins/runtime-modules/core/widgets/float-button/config.js +129 -0
  1207. package/plugins/runtime-modules/core/widgets/float-button/plugin.d.ts +3 -0
  1208. package/plugins/runtime-modules/core/widgets/float-button/plugin.js +29 -0
  1209. package/plugins/runtime-modules/core/widgets/form/config.d.ts +1 -1
  1210. package/plugins/runtime-modules/core/widgets/form/config.js +18 -1
  1211. package/plugins/runtime-modules/core/widgets/form-preview/client.js +2 -1
  1212. package/plugins/runtime-modules/core/widgets/form-preview/config.d.ts +2 -1
  1213. package/plugins/runtime-modules/core/widgets/form-preview/config.js +1 -1
  1214. package/plugins/runtime-modules/core/widgets/gallery/authoring.js +68 -3
  1215. package/plugins/runtime-modules/core/widgets/gallery/client.d.ts +8 -12
  1216. package/plugins/runtime-modules/core/widgets/gallery/client.js +49 -101
  1217. package/plugins/runtime-modules/core/widgets/gallery/config.d.ts +356 -86
  1218. package/plugins/runtime-modules/core/widgets/gallery/config.js +68 -121
  1219. package/plugins/runtime-modules/core/widgets/gallery/defaults.d.ts +15 -0
  1220. package/plugins/runtime-modules/core/widgets/gallery/defaults.js +20 -0
  1221. package/plugins/runtime-modules/core/widgets/gallery/plugin.js +2 -3
  1222. package/plugins/runtime-modules/core/widgets/gallery/server.d.ts +17 -0
  1223. package/plugins/runtime-modules/core/widgets/gallery/server.js +42 -0
  1224. package/plugins/runtime-modules/core/widgets/header-navigation/client.js +3 -3
  1225. package/plugins/runtime-modules/core/widgets/header-navigation/config.d.ts +2 -1
  1226. package/plugins/runtime-modules/core/widgets/header-navigation/config.js +1 -1
  1227. package/plugins/runtime-modules/core/widgets/html/config.d.ts +3 -1
  1228. package/plugins/runtime-modules/core/widgets/html/config.js +2 -1
  1229. package/plugins/runtime-modules/core/widgets/icon/config.d.ts +2 -1
  1230. package/plugins/runtime-modules/core/widgets/icon/config.js +1 -1
  1231. package/plugins/runtime-modules/core/widgets/image/client.js +8 -40
  1232. package/plugins/runtime-modules/core/widgets/image/config.d.ts +32 -5
  1233. package/plugins/runtime-modules/core/widgets/image/config.js +26 -20
  1234. package/plugins/runtime-modules/core/widgets/image/editor.js +10 -28
  1235. package/plugins/runtime-modules/core/widgets/input/client.js +24 -7
  1236. package/plugins/runtime-modules/core/widgets/input/config.d.ts +2 -1
  1237. package/plugins/runtime-modules/core/widgets/input/config.js +1 -1
  1238. package/plugins/runtime-modules/core/widgets/length/config.d.ts +1 -1
  1239. package/plugins/runtime-modules/core/widgets/locale/config.d.ts +1 -0
  1240. package/plugins/runtime-modules/core/widgets/locale/config.js +1 -0
  1241. package/plugins/runtime-modules/core/widgets/markdown/config.d.ts +13 -48
  1242. package/plugins/runtime-modules/core/widgets/markdown/config.js +25 -12
  1243. package/plugins/runtime-modules/core/widgets/markdown-toc/client.js +2 -2
  1244. package/plugins/runtime-modules/core/widgets/markdown-toc/config.d.ts +2 -1
  1245. package/plugins/runtime-modules/core/widgets/markdown-toc/config.js +1 -1
  1246. package/plugins/runtime-modules/core/widgets/multi-select/config.d.ts +3 -3
  1247. package/plugins/runtime-modules/core/widgets/multi-select/config.js +1 -3
  1248. package/plugins/runtime-modules/core/widgets/number-input/config.d.ts +1 -1
  1249. package/plugins/runtime-modules/core/widgets/otp/config.d.ts +2 -1
  1250. package/plugins/runtime-modules/core/widgets/otp/config.js +1 -1
  1251. package/plugins/runtime-modules/core/widgets/page-title/server.d.ts +0 -1
  1252. package/plugins/runtime-modules/core/widgets/page-title/server.js +1 -1
  1253. package/plugins/runtime-modules/core/widgets/pagination/client.js +2 -1
  1254. package/plugins/runtime-modules/core/widgets/pagination/config.d.ts +2 -1
  1255. package/plugins/runtime-modules/core/widgets/pagination/config.js +1 -1
  1256. package/plugins/runtime-modules/core/widgets/quick-links/client.js +9 -6
  1257. package/plugins/runtime-modules/core/widgets/quick-links/config.d.ts +2 -1
  1258. package/plugins/runtime-modules/core/widgets/quick-links/config.js +1 -1
  1259. package/plugins/runtime-modules/core/widgets/rate/config.d.ts +3 -1
  1260. package/plugins/runtime-modules/core/widgets/rate/config.js +2 -1
  1261. package/plugins/runtime-modules/core/widgets/record/authoring.d.ts +1 -2
  1262. package/plugins/runtime-modules/core/widgets/record/authoring.js +17 -5
  1263. package/plugins/runtime-modules/core/widgets/record/client.js +9 -8
  1264. package/plugins/runtime-modules/core/widgets/record/config.d.ts +2 -1
  1265. package/plugins/runtime-modules/core/widgets/record/config.js +3 -2
  1266. package/plugins/runtime-modules/core/widgets/result/config.d.ts +117 -22
  1267. package/plugins/runtime-modules/core/widgets/result/config.js +1 -1
  1268. package/plugins/runtime-modules/core/widgets/segmented/authoring.d.ts +3 -1
  1269. package/plugins/runtime-modules/core/widgets/segmented/authoring.js +24 -2
  1270. package/plugins/runtime-modules/core/widgets/segmented/client.d.ts +4 -1
  1271. package/plugins/runtime-modules/core/widgets/segmented/client.js +5 -1
  1272. package/plugins/runtime-modules/core/widgets/segmented/config.d.ts +3 -2
  1273. package/plugins/runtime-modules/core/widgets/segmented/config.js +3 -3
  1274. package/plugins/runtime-modules/core/widgets/select-box/config.d.ts +3 -2
  1275. package/plugins/runtime-modules/core/widgets/select-box/config.js +1 -1
  1276. package/plugins/runtime-modules/core/widgets/sidebar-navigation/client.js +5 -5
  1277. package/plugins/runtime-modules/core/widgets/sidebar-navigation/config.d.ts +2 -1
  1278. package/plugins/runtime-modules/core/widgets/sidebar-navigation/config.js +1 -1
  1279. package/plugins/runtime-modules/core/widgets/simple-text/client.js +2 -1
  1280. package/plugins/runtime-modules/core/widgets/simple-text/config.d.ts +117 -22
  1281. package/plugins/runtime-modules/core/widgets/simple-text/config.js +1 -1
  1282. package/plugins/runtime-modules/core/widgets/simple-text/editor.js +1 -2
  1283. package/plugins/runtime-modules/core/widgets/slider/config.d.ts +2 -1
  1284. package/plugins/runtime-modules/core/widgets/slider/config.js +1 -1
  1285. package/plugins/runtime-modules/core/widgets/slot-upload/client.js +46 -20
  1286. package/plugins/runtime-modules/core/widgets/slot-upload/config.d.ts +2 -14
  1287. package/plugins/runtime-modules/core/widgets/slot-upload/config.js +3 -3
  1288. package/plugins/runtime-modules/core/widgets/steps/authoring.d.ts +3 -0
  1289. package/plugins/runtime-modules/core/widgets/steps/authoring.js +28 -0
  1290. package/plugins/runtime-modules/core/widgets/steps/client.d.ts +9 -0
  1291. package/plugins/runtime-modules/core/widgets/steps/client.js +32 -0
  1292. package/plugins/runtime-modules/core/widgets/steps/config.d.ts +156 -0
  1293. package/plugins/runtime-modules/core/widgets/steps/config.js +69 -0
  1294. package/plugins/runtime-modules/core/widgets/steps/plugin.d.ts +3 -0
  1295. package/plugins/runtime-modules/core/widgets/steps/plugin.js +38 -0
  1296. package/plugins/runtime-modules/core/widgets/switch/config.d.ts +1 -1
  1297. package/plugins/runtime-modules/core/widgets/switch/config.js +1 -1
  1298. package/plugins/runtime-modules/core/widgets/table/client.js +153 -80
  1299. package/plugins/runtime-modules/core/widgets/table/config.d.ts +327 -25
  1300. package/plugins/runtime-modules/core/widgets/table/config.js +54 -6
  1301. package/plugins/runtime-modules/core/widgets/theme-mode-switch/authoring.js +3 -2
  1302. package/plugins/runtime-modules/core/widgets/theme-mode-switch/client.d.ts +9 -5
  1303. package/plugins/runtime-modules/core/widgets/theme-mode-switch/client.js +15 -10
  1304. package/plugins/runtime-modules/core/widgets/theme-mode-switch/config.d.ts +6 -10
  1305. package/plugins/runtime-modules/core/widgets/theme-mode-switch/config.js +3 -5
  1306. package/plugins/runtime-modules/core/widgets/theme-mode-switch/plugin.js +3 -13
  1307. package/plugins/runtime-modules/core/widgets/theme-mode-switch/server.d.ts +9 -0
  1308. package/plugins/runtime-modules/core/widgets/theme-mode-switch/server.js +23 -0
  1309. package/plugins/runtime-modules/{threads → core}/widgets/thread-conversation/client.d.ts +1 -1
  1310. package/plugins/runtime-modules/{threads → core}/widgets/thread-conversation/client.js +104 -16
  1311. package/plugins/runtime-modules/{threads → core}/widgets/thread-conversation/config.d.ts +13 -4
  1312. package/plugins/runtime-modules/{threads → core}/widgets/thread-conversation/config.js +8 -2
  1313. package/plugins/runtime-modules/{threads → core}/widgets/thread-conversation/server.js +1 -1
  1314. package/plugins/runtime-modules/{threads → core}/widgets/thread-widget-config.d.ts +7 -0
  1315. package/plugins/runtime-modules/{threads → core}/widgets/thread-widget-config.js +4 -4
  1316. package/plugins/runtime-modules/core/widgets/timeline/authoring.d.ts +3 -0
  1317. package/plugins/runtime-modules/core/widgets/timeline/authoring.js +11 -0
  1318. package/plugins/runtime-modules/core/widgets/timeline/client.d.ts +10 -0
  1319. package/plugins/runtime-modules/core/widgets/timeline/client.js +75 -0
  1320. package/plugins/runtime-modules/core/widgets/timeline/config.d.ts +116 -0
  1321. package/plugins/runtime-modules/core/widgets/timeline/config.js +102 -0
  1322. package/plugins/runtime-modules/core/widgets/timeline/plugin.d.ts +3 -0
  1323. package/plugins/runtime-modules/core/widgets/timeline/plugin.js +45 -0
  1324. package/plugins/runtime-modules/core/widgets/tour-button/authoring.d.ts +3 -0
  1325. package/plugins/runtime-modules/core/widgets/tour-button/authoring.js +10 -0
  1326. package/plugins/runtime-modules/core/widgets/tour-button/client.d.ts +13 -0
  1327. package/plugins/runtime-modules/core/widgets/tour-button/client.js +36 -0
  1328. package/plugins/runtime-modules/core/widgets/tour-button/config.d.ts +39 -0
  1329. package/plugins/runtime-modules/core/widgets/tour-button/config.js +28 -0
  1330. package/plugins/runtime-modules/core/widgets/tour-button/plugin.d.ts +3 -0
  1331. package/plugins/runtime-modules/core/widgets/tour-button/plugin.js +8 -0
  1332. package/plugins/runtime-modules/core/widgets/tour-button/server.d.ts +8 -0
  1333. package/plugins/runtime-modules/core/widgets/tour-button/server.js +14 -0
  1334. package/plugins/runtime-modules/core/widgets/tree/client.js +41 -45
  1335. package/plugins/runtime-modules/core/widgets/tree/config.js +1 -1
  1336. package/plugins/runtime-modules/core/widgets.js +72 -6
  1337. package/plugins/runtime-modules/dashboard/authoring-client.d.ts +0 -1
  1338. package/plugins/runtime-modules/dashboard/authoring-client.js +1 -1
  1339. package/plugins/runtime-modules/dashboard/clients/dashboard-card-view.js +55 -17
  1340. package/plugins/runtime-modules/dashboard/definition.d.ts +1 -4
  1341. package/plugins/runtime-modules/dashboard/definition.js +2 -8
  1342. package/plugins/runtime-modules/dashboard/ids.d.ts +9 -0
  1343. package/plugins/runtime-modules/dashboard/ids.js +9 -0
  1344. package/plugins/runtime-modules/dashboard/module.d.ts +39 -1
  1345. package/plugins/runtime-modules/dashboard/module.js +8 -3
  1346. package/plugins/runtime-modules/dashboard/services/collection.js +2 -2
  1347. package/plugins/runtime-modules/dashboard/trees/admin-dashboard-label-set.js +3 -2
  1348. package/plugins/runtime-modules/dashboard/trees/area-dashboard-label-set.d.ts +2 -0
  1349. package/plugins/runtime-modules/dashboard/trees/area-dashboard-label-set.js +7 -2
  1350. package/plugins/runtime-modules/dashboard/trees/dashboard-cards-page-tree.d.ts +37 -0
  1351. package/plugins/runtime-modules/dashboard/trees/dashboard-cards-page-tree.js +69 -0
  1352. package/plugins/runtime-modules/dashboard/trees/phi-default-admin-dashboard-page-tree.js +6 -52
  1353. package/plugins/runtime-modules/dashboard/trees/phi-default-area-dashboard-page-tree.js +7 -46
  1354. package/plugins/runtime-modules/dashboard/trees/phi-default-builder-dashboard-page-tree.js +21 -17
  1355. package/plugins/runtime-modules/descriptor-compiler.d.ts +3 -13
  1356. package/plugins/runtime-modules/descriptor-compiler.js +162 -71
  1357. package/plugins/runtime-modules/editor/client-data-providers.d.ts +5 -0
  1358. package/plugins/runtime-modules/editor/client-data-providers.js +9 -0
  1359. package/plugins/runtime-modules/editor/data-providers.d.ts +83 -0
  1360. package/plugins/runtime-modules/editor/data-providers.js +75 -0
  1361. package/plugins/runtime-modules/editor/definition.d.ts +76 -5
  1362. package/plugins/runtime-modules/editor/definition.js +4 -8
  1363. package/plugins/runtime-modules/editor/ids.d.ts +19 -0
  1364. package/plugins/runtime-modules/editor/ids.js +26 -0
  1365. package/plugins/runtime-modules/editor/module.d.ts +89 -1
  1366. package/plugins/runtime-modules/editor/module.js +8 -3
  1367. package/plugins/runtime-modules/editor/presets.d.ts +39 -1
  1368. package/plugins/runtime-modules/editor/presets.js +26 -3
  1369. package/plugins/runtime-modules/editor/services/releases-table.d.ts +10 -0
  1370. package/plugins/runtime-modules/editor/services/releases-table.js +182 -0
  1371. package/plugins/runtime-modules/editor/tour.d.ts +29 -0
  1372. package/plugins/runtime-modules/editor/tour.js +34 -0
  1373. package/plugins/runtime-modules/editor/trees/editor-releases-label-set.d.ts +35 -0
  1374. package/plugins/runtime-modules/editor/trees/editor-releases-label-set.js +54 -0
  1375. package/plugins/runtime-modules/editor/trees/phi-default-editor-area-preset-tree.js +12 -180
  1376. package/plugins/runtime-modules/editor/trees/phi-default-editor-releases-page-tree.d.ts +13 -0
  1377. package/plugins/runtime-modules/editor/trees/phi-default-editor-releases-page-tree.js +134 -0
  1378. package/plugins/runtime-modules/form-builder/client.js +1 -1
  1379. package/{components/forms/form-builder-controller-plugin.d.ts → plugins/runtime-modules/form-builder/controller/client.d.ts} +2 -2
  1380. package/{components/forms/form-builder-controller-plugin.js → plugins/runtime-modules/form-builder/controller/client.js} +2 -2
  1381. package/plugins/runtime-modules/groups/addresses.d.ts +3 -0
  1382. package/plugins/runtime-modules/groups/addresses.js +11 -0
  1383. package/plugins/runtime-modules/groups/controller/client.d.ts +5 -0
  1384. package/plugins/runtime-modules/groups/controller/client.js +43 -30
  1385. package/plugins/runtime-modules/groups/controller/definition.d.ts +5 -0
  1386. package/plugins/runtime-modules/groups/controller/definition.js +10 -0
  1387. package/plugins/runtime-modules/groups/data-providers.d.ts +2 -2
  1388. package/plugins/runtime-modules/groups/data-providers.js +3 -3
  1389. package/plugins/runtime-modules/groups/definition.d.ts +3 -3
  1390. package/plugins/runtime-modules/groups/definition.js +2 -2
  1391. package/plugins/runtime-modules/groups/forms.d.ts +1 -6
  1392. package/plugins/runtime-modules/groups/forms.js +65 -30
  1393. package/plugins/runtime-modules/groups/ids.d.ts +9 -0
  1394. package/plugins/runtime-modules/groups/ids.js +9 -0
  1395. package/plugins/runtime-modules/groups/labels.d.ts +5 -0
  1396. package/plugins/runtime-modules/groups/labels.js +15 -3
  1397. package/plugins/runtime-modules/groups/presets.js +2 -2
  1398. package/plugins/runtime-modules/groups/services/options.js +4 -3
  1399. package/plugins/runtime-modules/groups/services/table.js +32 -36
  1400. package/plugins/runtime-modules/groups/trees/phi-default-admin-groups-page-tree.d.ts +5 -1
  1401. package/plugins/runtime-modules/groups/trees/phi-default-admin-groups-page-tree.js +259 -146
  1402. package/plugins/runtime-modules/groups/trees/phi-default-app-groups-page-tree.js +3 -4
  1403. package/plugins/runtime-modules/localization/cards.js +11 -7
  1404. package/plugins/runtime-modules/localization/controller/client.d.ts +12 -4
  1405. package/plugins/runtime-modules/localization/controller/client.js +31 -131
  1406. package/plugins/runtime-modules/localization/controller/definition.d.ts +19 -4
  1407. package/plugins/runtime-modules/localization/controller/definition.js +7 -4
  1408. package/plugins/runtime-modules/localization/data-providers.js +1 -1
  1409. package/plugins/runtime-modules/localization/definition.d.ts +2 -2
  1410. package/plugins/runtime-modules/localization/definition.js +3 -3
  1411. package/plugins/runtime-modules/localization/forms.d.ts +0 -4
  1412. package/plugins/runtime-modules/localization/forms.js +35 -44
  1413. package/plugins/runtime-modules/localization/ids.d.ts +9 -0
  1414. package/plugins/runtime-modules/localization/ids.js +9 -0
  1415. package/plugins/runtime-modules/localization/presets.d.ts +45 -1
  1416. package/plugins/runtime-modules/localization/presets.js +16 -12
  1417. package/plugins/runtime-modules/localization/server.js +1 -0
  1418. package/plugins/runtime-modules/localization/services/options.js +16 -8
  1419. package/plugins/runtime-modules/localization/services/table.js +24 -44
  1420. package/plugins/runtime-modules/localization/tour.d.ts +35 -0
  1421. package/plugins/runtime-modules/localization/tour.js +42 -0
  1422. package/plugins/runtime-modules/localization/trees/admin-locales-label-set.js +3 -2
  1423. package/plugins/runtime-modules/localization/trees/editor-translations-label-set.js +3 -2
  1424. package/plugins/runtime-modules/localization/trees/editor-translations-widget-label-set.d.ts +2 -0
  1425. package/plugins/runtime-modules/localization/trees/editor-translations-widget-label-set.js +7 -2
  1426. package/plugins/runtime-modules/localization/trees/phi-default-admin-locales-page-tree.js +3 -9
  1427. package/plugins/runtime-modules/localization/trees/phi-default-editor-translations-page-tree.js +40 -24
  1428. package/plugins/runtime-modules/module-labels.server.js +21 -27
  1429. package/plugins/runtime-modules/news/authoring-widgets.js +3 -6
  1430. package/plugins/runtime-modules/news/definition.d.ts +9 -139
  1431. package/plugins/runtime-modules/news/definition.js +8 -18
  1432. package/plugins/runtime-modules/news/forms.d.ts +3 -26
  1433. package/plugins/runtime-modules/news/forms.js +10 -203
  1434. package/plugins/runtime-modules/news/ids.d.ts +19 -36
  1435. package/plugins/runtime-modules/news/ids.js +20 -118
  1436. package/plugins/runtime-modules/news/labels.d.ts +4 -0
  1437. package/plugins/runtime-modules/news/labels.js +27 -0
  1438. package/plugins/runtime-modules/news/module.d.ts +4 -126
  1439. package/plugins/runtime-modules/news/presets.d.ts +51 -15
  1440. package/plugins/runtime-modules/news/presets.js +20 -62
  1441. package/plugins/runtime-modules/news/server.js +1 -2
  1442. package/plugins/runtime-modules/observability/definition.d.ts +1 -1
  1443. package/plugins/runtime-modules/observability/definition.js +2 -2
  1444. package/plugins/runtime-modules/observability/ids.d.ts +9 -0
  1445. package/plugins/runtime-modules/observability/ids.js +9 -0
  1446. package/plugins/runtime-modules/observability/module.d.ts +1 -1
  1447. package/plugins/runtime-modules/observability/services/table.js +11 -24
  1448. package/plugins/runtime-modules/observability/trees/admin-logs-label-set.js +3 -2
  1449. package/plugins/runtime-modules/observability/trees/phi-default-admin-logs-page-tree.js +2 -7
  1450. package/plugins/runtime-modules/phi-default-site-area-preset-tree.js +38 -37
  1451. package/plugins/runtime-modules/pub-area-preset.js +7 -2
  1452. package/plugins/runtime-modules/public/module.d.ts +1 -1
  1453. package/plugins/runtime-modules/public/trees/phi-default-pub-contact-page-tree.js +25 -20
  1454. package/plugins/runtime-modules/public/trees/phi-default-pub-error-page-tree.js +15 -10
  1455. package/plugins/runtime-modules/public/trees/phi-default-pub-home-page-tree.js +11 -20
  1456. package/plugins/runtime-modules/public/trees/phi-default-pub-terms-page-tree.js +11 -20
  1457. package/plugins/runtime-modules/public/trees/phi-default-pub-unsubscribe-page-tree.js +11 -20
  1458. package/plugins/runtime-modules/public/trees/phi-default-pub-welcome-page-tree.js +0 -1
  1459. package/plugins/runtime-modules/resolver.d.ts +0 -4
  1460. package/plugins/runtime-modules/resolver.js +17 -2
  1461. package/plugins/runtime-modules/revisions/authoring-client.d.ts +0 -1
  1462. package/plugins/runtime-modules/revisions/authoring-client.js +1 -1
  1463. package/plugins/runtime-modules/revisions/controller/client.d.ts +23 -5
  1464. package/plugins/runtime-modules/revisions/controller/client.js +33 -70
  1465. package/plugins/runtime-modules/revisions/controller/definition.d.ts +30 -5
  1466. package/plugins/runtime-modules/revisions/controller/definition.js +10 -3
  1467. package/plugins/runtime-modules/revisions/data-providers.d.ts +7 -0
  1468. package/plugins/runtime-modules/revisions/data-providers.js +2 -0
  1469. package/plugins/runtime-modules/revisions/definition.d.ts +7 -0
  1470. package/plugins/runtime-modules/revisions/forms.js +7 -16
  1471. package/plugins/runtime-modules/revisions/presets.d.ts +53 -2
  1472. package/plugins/runtime-modules/revisions/presets.js +16 -12
  1473. package/plugins/runtime-modules/revisions/services/table.js +63 -11
  1474. package/plugins/runtime-modules/revisions/tour.d.ts +43 -0
  1475. package/plugins/runtime-modules/revisions/tour.js +51 -0
  1476. package/plugins/runtime-modules/revisions/trees/phi-default-builder-revisions-page-tree.js +129 -22
  1477. package/plugins/runtime-modules/revisions/types.d.ts +3 -0
  1478. package/plugins/runtime-modules/settings.d.ts +9 -1
  1479. package/plugins/runtime-modules/settings.js +19 -10
  1480. package/plugins/runtime-modules/shell-tree-composition.d.ts +4 -4
  1481. package/plugins/runtime-modules/shell-tree-composition.js +2 -0
  1482. package/plugins/runtime-modules/sidebar-route.d.ts +2 -2
  1483. package/plugins/runtime-modules/sidebar-route.js +2 -3
  1484. package/plugins/runtime-modules/site-module-client-manifests.d.ts +1 -2
  1485. package/plugins/runtime-modules/site-module-client-manifests.js +1 -1
  1486. package/plugins/runtime-modules/theme/brand-theme-model.d.ts +170 -0
  1487. package/plugins/runtime-modules/theme/brand-theme-model.js +164 -0
  1488. package/plugins/runtime-modules/theme/controller/client.d.ts +4 -9
  1489. package/plugins/runtime-modules/theme/controller/client.js +7 -5
  1490. package/plugins/runtime-modules/theme/controller/definition.d.ts +14 -8
  1491. package/plugins/runtime-modules/theme/controller/definition.js +8 -14
  1492. package/plugins/runtime-modules/theme/controller/runtime.d.ts +11 -0
  1493. package/plugins/runtime-modules/theme/controller/runtime.js +627 -0
  1494. package/plugins/runtime-modules/theme/controller/server-definition.d.ts +4 -9
  1495. package/plugins/runtime-modules/theme/controller/server-definition.js +8 -1
  1496. package/plugins/runtime-modules/theme/materialize-images.js +9 -1
  1497. package/plugins/runtime-modules/theme/presets.d.ts +76 -2
  1498. package/plugins/runtime-modules/theme/presets.js +16 -12
  1499. package/plugins/runtime-modules/theme/tour.d.ts +70 -0
  1500. package/plugins/runtime-modules/theme/tour.js +74 -0
  1501. package/plugins/runtime-modules/theme/trees/phi-default-builder-theme-page-tree.js +60 -42
  1502. package/plugins/runtime-modules/theme/widgets/brand-controls/authoring.d.ts +10 -10
  1503. package/plugins/runtime-modules/theme/widgets/brand-controls/client.d.ts +0 -6
  1504. package/plugins/runtime-modules/theme/widgets/brand-controls/client.js +177 -934
  1505. package/plugins/runtime-modules/theme/widgets/brand-controls/plugin.js +3 -2
  1506. package/plugins/runtime-modules/theme-descriptors.d.ts +0 -58
  1507. package/plugins/runtime-modules/theme-descriptors.js +1 -1
  1508. package/plugins/runtime-modules/threads/addresses.d.ts +15 -8
  1509. package/plugins/runtime-modules/threads/addresses.js +30 -23
  1510. package/plugins/runtime-modules/threads/authoring-widgets.js +3 -5
  1511. package/plugins/runtime-modules/threads/cards.js +4 -6
  1512. package/plugins/runtime-modules/threads/client-data-providers.js +0 -5
  1513. package/plugins/runtime-modules/threads/controller/client.d.ts +0 -6
  1514. package/plugins/runtime-modules/threads/controller/client.js +20 -49
  1515. package/plugins/runtime-modules/threads/controller/definition.d.ts +0 -6
  1516. package/plugins/runtime-modules/threads/controller/definition.js +14 -29
  1517. package/plugins/runtime-modules/threads/data-providers.d.ts +3 -98
  1518. package/plugins/runtime-modules/threads/data-providers.js +1 -104
  1519. package/plugins/runtime-modules/threads/definition.d.ts +6 -99
  1520. package/plugins/runtime-modules/threads/definition.js +5 -3
  1521. package/plugins/runtime-modules/threads/forms.d.ts +3 -22
  1522. package/plugins/runtime-modules/threads/forms.js +18 -145
  1523. package/plugins/runtime-modules/threads/ids.d.ts +9 -0
  1524. package/plugins/runtime-modules/threads/ids.js +9 -0
  1525. package/{components/widgets/label-sets/threads.d.ts → plugins/runtime-modules/threads/labels.d.ts} +2 -40
  1526. package/plugins/runtime-modules/threads/labels.js +156 -0
  1527. package/plugins/runtime-modules/threads/presets.js +33 -15
  1528. package/plugins/runtime-modules/threads/server.js +1 -0
  1529. package/plugins/runtime-modules/threads/services/options.js +4 -8
  1530. package/plugins/runtime-modules/threads/trees/{phi-default-app-threads-page-tree.d.ts → phi-default-threads-page-tree.d.ts} +3 -1
  1531. package/plugins/runtime-modules/threads/trees/{phi-default-app-threads-page-tree.js → phi-default-threads-page-tree.js} +185 -187
  1532. package/plugins/runtime-modules/threads/widgets.js +5 -14
  1533. package/plugins/runtime-modules/tour/authoring-widgets.d.ts +2 -0
  1534. package/plugins/runtime-modules/tour/authoring-widgets.js +4 -0
  1535. package/plugins/runtime-modules/tour/authoring.d.ts +1 -0
  1536. package/plugins/runtime-modules/tour/authoring.js +8 -0
  1537. package/plugins/runtime-modules/tour/client.d.ts +1 -0
  1538. package/plugins/runtime-modules/{admin → tour}/client.js +1 -1
  1539. package/plugins/runtime-modules/tour/controller/address.d.ts +1 -0
  1540. package/plugins/runtime-modules/tour/controller/address.js +3 -0
  1541. package/plugins/runtime-modules/tour/controller/client.d.ts +39 -0
  1542. package/plugins/runtime-modules/tour/controller/client.js +203 -0
  1543. package/plugins/runtime-modules/tour/controller/definition.d.ts +48 -0
  1544. package/plugins/runtime-modules/tour/controller/definition.js +42 -0
  1545. package/plugins/runtime-modules/tour/controller/progress.d.ts +19 -0
  1546. package/plugins/runtime-modules/tour/controller/progress.js +24 -0
  1547. package/plugins/runtime-modules/tour/definition.d.ts +27 -0
  1548. package/plugins/runtime-modules/tour/definition.js +32 -0
  1549. package/plugins/runtime-modules/tour/ids.d.ts +7 -0
  1550. package/plugins/runtime-modules/tour/ids.js +8 -0
  1551. package/plugins/runtime-modules/tour/module.d.ts +1 -0
  1552. package/plugins/runtime-modules/tour/module.js +4 -0
  1553. package/plugins/runtime-modules/tour/server.d.ts +1 -0
  1554. package/plugins/runtime-modules/tour/server.js +14 -0
  1555. package/plugins/runtime-modules/user-management/cards.js +3 -5
  1556. package/plugins/runtime-modules/user-management/controller/client.d.ts +14 -8
  1557. package/plugins/runtime-modules/user-management/controller/client.js +50 -181
  1558. package/plugins/runtime-modules/user-management/controller/definition.d.ts +21 -8
  1559. package/plugins/runtime-modules/user-management/controller/definition.js +54 -26
  1560. package/plugins/runtime-modules/user-management/definition.d.ts +1 -1
  1561. package/plugins/runtime-modules/user-management/definition.js +2 -2
  1562. package/plugins/runtime-modules/user-management/forms.d.ts +0 -4
  1563. package/plugins/runtime-modules/user-management/forms.js +34 -34
  1564. package/plugins/runtime-modules/user-management/ids.d.ts +9 -0
  1565. package/plugins/runtime-modules/user-management/ids.js +9 -0
  1566. package/plugins/runtime-modules/user-management/server.js +1 -0
  1567. package/plugins/runtime-modules/user-management/services/table.js +15 -48
  1568. package/plugins/runtime-modules/user-management/trees/admin-users-label-set.js +3 -2
  1569. package/plugins/runtime-modules/user-management/trees/phi-default-admin-users-page-tree.js +82 -19
  1570. package/plugins/runtime-modules/video/widgets/embed/config.d.ts +2 -10
  1571. package/plugins/runtime-modules/video/widgets/embed/config.js +5 -4
  1572. package/runtime-data-provider-client.d.ts +2 -0
  1573. package/runtime-data-provider-client.js +1 -0
  1574. package/server-helpers/area-root-door-warmup.js +11 -4
  1575. package/server-helpers/area-root-route.d.ts +5 -7
  1576. package/server-helpers/area-root-route.js +5 -11
  1577. package/server-helpers/cms-area.js +3 -1
  1578. package/server-helpers/cms-bound-content.d.ts +38 -0
  1579. package/server-helpers/cms-bound-content.js +97 -0
  1580. package/server-helpers/cms-link-targets.d.ts +8 -1
  1581. package/server-helpers/cms-link-targets.js +13 -1
  1582. package/server-helpers/cms-lookup.d.ts +22 -0
  1583. package/server-helpers/cms-lookup.js +56 -0
  1584. package/server-helpers/cms-node-features.d.ts +17 -3
  1585. package/server-helpers/cms-node-features.js +22 -16
  1586. package/server-helpers/cms-request.js +51 -25
  1587. package/server-helpers/cms-review.d.ts +14 -1
  1588. package/server-helpers/cms-review.js +20 -6
  1589. package/server-helpers/cms-root.d.ts +3 -1
  1590. package/server-helpers/cms-root.js +42 -44
  1591. package/server-helpers/cms-route.d.ts +2 -1
  1592. package/server-helpers/cms-route.js +8 -1
  1593. package/server-helpers/content-entry-page.d.ts +16 -0
  1594. package/server-helpers/content-entry-page.js +24 -0
  1595. package/server-helpers/page-tour.d.ts +18 -0
  1596. package/server-helpers/page-tour.js +39 -0
  1597. package/server-helpers/public-login-route.d.ts +10 -5
  1598. package/server-helpers/public-login-route.js +49 -28
  1599. package/server-helpers/record-source.d.ts +31 -0
  1600. package/server-helpers/record-source.js +44 -0
  1601. package/server-helpers/request-locale.js +23 -9
  1602. package/server-helpers/request-memo.d.ts +14 -0
  1603. package/server-helpers/request-memo.js +72 -0
  1604. package/server-helpers/request-runtime.d.ts +9 -2
  1605. package/server-helpers/request-runtime.js +2 -2
  1606. package/server-helpers/request-search-params.d.ts +12 -0
  1607. package/server-helpers/request-search-params.js +21 -0
  1608. package/server-helpers/root-layout.js +2 -13
  1609. package/server-helpers/runtime.d.ts +1 -41
  1610. package/server-helpers/runtime.js +51 -46
  1611. package/server-helpers/translate.d.ts +3 -1
  1612. package/server-helpers/translate.js +13 -7
  1613. package/styles/builder-scaffold.css +0 -112
  1614. package/styles/control-shape.css +14 -0
  1615. package/styles/controls.css +51 -0
  1616. package/styles/layout-authoring-scaffold.css +0 -31
  1617. package/styles/layout.css +233 -10
  1618. package/styles/shell.css +54 -0
  1619. package/theme/antd-css-var-contract.d.ts +5 -10
  1620. package/theme/antd-css-var-contract.js +5 -10
  1621. package/theme/phi-button-shadow.d.ts +0 -2
  1622. package/theme/phi-button-shadow.js +1 -1
  1623. package/theme/phi-control-shape.js +2 -1
  1624. package/theme/phi-css-vars.d.ts +13 -3
  1625. package/theme/phi-css-vars.js +25 -16
  1626. package/theme/phi-font-catalogue.d.ts +0 -2
  1627. package/theme/phi-font-catalogue.js +1 -1
  1628. package/theme/phi-font-face.d.ts +0 -3
  1629. package/theme/phi-font-face.js +2 -2
  1630. package/theme/phi-published-root-style.d.ts +1 -2
  1631. package/theme/phi-published-root-style.js +2 -4
  1632. package/theme/phi-theme-adoption.d.ts +0 -3
  1633. package/theme/phi-theme-adoption.js +3 -3
  1634. package/theme/phi-theme-blocks.js +4 -4
  1635. package/theme/phi-theme-palette.d.ts +0 -1
  1636. package/theme/phi-theme-palette.js +0 -3
  1637. package/theme/phi-theme-selection.d.ts +0 -9
  1638. package/theme/phi-theme-selection.js +4 -3
  1639. package/theme/phi-theme-tokens.d.ts +1 -16
  1640. package/theme/phi-theme-tokens.js +5 -2
  1641. package/theme/phi-theme.d.ts +0 -2
  1642. package/theme/phi-theme.js +38 -15
  1643. package/theme/phi-tokens.d.ts +36 -10
  1644. package/theme/phi-tokens.js +44 -2
  1645. package/types/builder.d.ts +8 -0
  1646. package/types/calendar.d.ts +5 -0
  1647. package/types/calendar.js +7 -6
  1648. package/types/cms-border-config.js +2 -1
  1649. package/types/cms-config.d.ts +23 -48
  1650. package/types/cms-config.js +39 -120
  1651. package/types/cms-container.d.ts +8 -8
  1652. package/types/cms-module-descriptors.d.ts +17 -25
  1653. package/types/cms-mount-policy.d.ts +0 -1
  1654. package/types/cms-mount-policy.js +1 -1
  1655. package/types/cms-overlay.d.ts +34 -7
  1656. package/types/cms-overlay.js +33 -43
  1657. package/types/cms-plugins.d.ts +234 -11
  1658. package/types/cms-presets.d.ts +62 -15
  1659. package/types/cms-presets.js +23 -1
  1660. package/types/cms.d.ts +41 -21
  1661. package/types/content-entries.d.ts +76 -0
  1662. package/types/content-entries.js +16 -0
  1663. package/types/core-runtime-controller.js +4 -3
  1664. package/types/core-widget-placements.d.ts +59 -21
  1665. package/types/dashboard-cards.d.ts +28 -7
  1666. package/types/dashboard-cards.js +5 -0
  1667. package/types/dimension.js +2 -1
  1668. package/types/draft-status.js +2 -1
  1669. package/types/form-descriptor.d.ts +1 -1
  1670. package/types/form-submit-route.d.ts +26 -0
  1671. package/types/form-submit-route.js +1 -0
  1672. package/types/layout-style.d.ts +12 -4
  1673. package/types/layout-style.js +15 -6
  1674. package/types/media.d.ts +0 -1
  1675. package/types/record-provider.d.ts +23 -0
  1676. package/types/record-provider.js +1 -0
  1677. package/types/references.d.ts +1 -1
  1678. package/types/references.js +1 -1
  1679. package/types/renderable-block-geometry.d.ts +0 -4
  1680. package/types/renderable-block-geometry.js +2 -2
  1681. package/types/renderable-block.d.ts +9 -6
  1682. package/types/runtime-data-provider.d.ts +11 -1
  1683. package/types/runtime-data-provider.js +25 -2
  1684. package/types/signals.d.ts +3 -1
  1685. package/types/signals.js +3 -1
  1686. package/types/site-config.d.ts +15 -3
  1687. package/types/site-request-context.d.ts +2 -159
  1688. package/types/site-theme.d.ts +1 -4
  1689. package/types/surface.d.ts +59 -0
  1690. package/types/surface.js +62 -0
  1691. package/types/table-signal-values.js +25 -4
  1692. package/types/table-widget.d.ts +50 -0
  1693. package/types/table-widget.js +3 -4
  1694. package/types/thread-widget.js +2 -1
  1695. package/types/tour-controller.d.ts +10 -0
  1696. package/types/tour-controller.js +13 -0
  1697. package/types/tours.d.ts +86 -0
  1698. package/types/tours.js +61 -0
  1699. package/types/visual-anchors.d.ts +15 -0
  1700. package/types/visual-anchors.js +12 -0
  1701. package/types/widget-runtime.d.ts +35 -41
  1702. package/types.d.ts +4 -1
  1703. package/types.js +5 -0
  1704. package/widget-config.d.ts +2 -1
  1705. package/widget-config.js +3 -1
  1706. package/components/layouts/clients/phi-flex-vertical-layout-client.d.ts +0 -10
  1707. package/components/layouts/clients/phi-flex-vertical-layout-client.js +0 -133
  1708. package/components/root/phi-root-rem-provider.d.ts +0 -7
  1709. package/components/root/phi-root-rem-provider.js +0 -14
  1710. package/components/widgets/label-sets/news.d.ts +0 -9
  1711. package/components/widgets/label-sets/news.js +0 -29
  1712. package/components/widgets/label-sets/threads.js +0 -269
  1713. package/gateway/news.d.ts +0 -22
  1714. package/gateway/news.js +0 -76
  1715. package/helpers/visibility.d.ts +0 -1
  1716. package/helpers/visibility.js +0 -4
  1717. package/plugins/runtime-modules/admin/client.d.ts +0 -1
  1718. package/plugins/runtime-modules/admin/controller/address.d.ts +0 -3
  1719. package/plugins/runtime-modules/admin/controller/address.js +0 -4
  1720. package/plugins/runtime-modules/admin/controller/client.d.ts +0 -18
  1721. package/plugins/runtime-modules/admin/controller/client.js +0 -8
  1722. package/plugins/runtime-modules/admin/controller/definition.d.ts +0 -16
  1723. package/plugins/runtime-modules/admin/controller/definition.js +0 -13
  1724. package/plugins/runtime-modules/avatar/client.d.ts +0 -0
  1725. package/plugins/runtime-modules/avatar/client.js +0 -2
  1726. package/plugins/runtime-modules/builder/inspector-controller.d.ts +0 -3
  1727. package/plugins/runtime-modules/builder/inspector-controller.js +0 -290
  1728. package/plugins/runtime-modules/builder/page-reference-tree.d.ts +0 -18
  1729. package/plugins/runtime-modules/builder/page-reference-tree.js +0 -31
  1730. package/plugins/runtime-modules/builder/preview-controller.d.ts +0 -7
  1731. package/plugins/runtime-modules/builder/preview-controller.js +0 -82
  1732. package/plugins/runtime-modules/builder/tree-options.d.ts +0 -7
  1733. package/plugins/runtime-modules/builder/tree-options.js +0 -14
  1734. package/plugins/runtime-modules/builder/widgets/chrome-controls/authoring.d.ts +0 -3
  1735. package/plugins/runtime-modules/builder/widgets/chrome-controls/authoring.js +0 -7
  1736. package/plugins/runtime-modules/builder/widgets/chrome-controls/client.d.ts +0 -9
  1737. package/plugins/runtime-modules/builder/widgets/chrome-controls/client.js +0 -34
  1738. package/plugins/runtime-modules/builder/widgets/chrome-controls/config.d.ts +0 -19
  1739. package/plugins/runtime-modules/builder/widgets/chrome-controls/config.js +0 -30
  1740. package/plugins/runtime-modules/builder/widgets/chrome-controls/plugin.d.ts +0 -3
  1741. package/plugins/runtime-modules/builder/widgets/chrome-controls/plugin.js +0 -9
  1742. package/plugins/runtime-modules/builder/widgets/chrome-controls/server.d.ts +0 -8
  1743. package/plugins/runtime-modules/builder/widgets/chrome-controls/server.js +0 -6
  1744. package/plugins/runtime-modules/client-manifests/news-render-clients.d.ts +0 -2
  1745. package/plugins/runtime-modules/client-manifests/news-render-clients.js +0 -10
  1746. package/plugins/runtime-modules/core/widgets/command-toolbar/authoring-tools.d.ts +0 -5
  1747. package/plugins/runtime-modules/core/widgets/command-toolbar/authoring-tools.js +0 -45
  1748. package/plugins/runtime-modules/core/widgets/date-picker/authoring.d.ts +0 -3
  1749. package/plugins/runtime-modules/core/widgets/date-picker/authoring.js +0 -8
  1750. package/plugins/runtime-modules/core/widgets/date-picker/client.d.ts +0 -6
  1751. package/plugins/runtime-modules/core/widgets/date-picker/plugin.d.ts +0 -3
  1752. package/plugins/runtime-modules/core/widgets/date-picker/plugin.js +0 -9
  1753. package/plugins/runtime-modules/dashboard/client.d.ts +0 -2
  1754. package/plugins/runtime-modules/dashboard/client.js +0 -13
  1755. package/plugins/runtime-modules/dashboard/controller/address.d.ts +0 -3
  1756. package/plugins/runtime-modules/dashboard/controller/address.js +0 -4
  1757. package/plugins/runtime-modules/dashboard/controller/client.d.ts +0 -18
  1758. package/plugins/runtime-modules/dashboard/controller/client.js +0 -8
  1759. package/plugins/runtime-modules/dashboard/controller/definition.d.ts +0 -16
  1760. package/plugins/runtime-modules/dashboard/controller/definition.js +0 -13
  1761. package/plugins/runtime-modules/editor/client.d.ts +0 -1
  1762. package/plugins/runtime-modules/editor/client.js +0 -7
  1763. package/plugins/runtime-modules/editor/controller/address.d.ts +0 -3
  1764. package/plugins/runtime-modules/editor/controller/address.js +0 -4
  1765. package/plugins/runtime-modules/editor/controller/client.d.ts +0 -18
  1766. package/plugins/runtime-modules/editor/controller/client.js +0 -8
  1767. package/plugins/runtime-modules/editor/controller/definition.d.ts +0 -16
  1768. package/plugins/runtime-modules/editor/controller/definition.js +0 -13
  1769. package/plugins/runtime-modules/editor/trees/editor-label-set.d.ts +0 -8
  1770. package/plugins/runtime-modules/editor/trees/editor-label-set.js +0 -22
  1771. package/plugins/runtime-modules/news/client-data-providers.d.ts +0 -11
  1772. package/plugins/runtime-modules/news/client-data-providers.js +0 -14
  1773. package/plugins/runtime-modules/news/data-providers.d.ts +0 -133
  1774. package/plugins/runtime-modules/news/data-providers.js +0 -112
  1775. package/plugins/runtime-modules/news/services/options.d.ts +0 -3
  1776. package/plugins/runtime-modules/news/services/options.js +0 -35
  1777. package/plugins/runtime-modules/news/services/table.js +0 -144
  1778. package/plugins/runtime-modules/news/trees/editor-news-label-set.d.ts +0 -8
  1779. package/plugins/runtime-modules/news/trees/editor-news-label-set.js +0 -29
  1780. package/plugins/runtime-modules/news/trees/editor-news-widget-label-set.d.ts +0 -65
  1781. package/plugins/runtime-modules/news/trees/editor-news-widget-label-set.js +0 -106
  1782. package/plugins/runtime-modules/news/trees/phi-default-editor-news-page-tree.d.ts +0 -17
  1783. package/plugins/runtime-modules/news/trees/phi-default-editor-news-page-tree.js +0 -462
  1784. package/plugins/runtime-modules/news/trees/phi-default-pub-news-page-tree.d.ts +0 -11
  1785. package/plugins/runtime-modules/news/trees/phi-default-pub-news-page-tree.js +0 -86
  1786. package/plugins/runtime-modules/news/widgets/news-list/authoring.d.ts +0 -2
  1787. package/plugins/runtime-modules/news/widgets/news-list/client.d.ts +0 -34
  1788. package/plugins/runtime-modules/news/widgets/news-list/client.js +0 -26
  1789. package/plugins/runtime-modules/news/widgets/news-list/config.d.ts +0 -43
  1790. package/plugins/runtime-modules/news/widgets/news-list/config.js +0 -52
  1791. package/plugins/runtime-modules/news/widgets/news-list/plugin.d.ts +0 -3
  1792. package/plugins/runtime-modules/news/widgets/news-list/plugin.js +0 -8
  1793. package/plugins/runtime-modules/news/widgets/news-list/server.d.ts +0 -14
  1794. package/plugins/runtime-modules/news/widgets/news-list/server.js +0 -82
  1795. package/plugins/runtime-modules/news/widgets.d.ts +0 -2
  1796. package/plugins/runtime-modules/news/widgets.js +0 -16
  1797. package/types/news.d.ts +0 -33
  1798. /package/{types/news.js → components/controls/phi-form-control-contract.js} +0 -0
  1799. /package/plugins/runtime-modules/{threads/services/table.d.ts → core/messaging/thread-inbox-table.d.ts} +0 -0
  1800. /package/plugins/runtime-modules/{threads → core}/widgets/thread-conversation/authoring.d.ts +0 -0
  1801. /package/plugins/runtime-modules/{threads → core}/widgets/thread-conversation/authoring.js +0 -0
  1802. /package/plugins/runtime-modules/{threads → core}/widgets/thread-conversation/plugin.d.ts +0 -0
  1803. /package/plugins/runtime-modules/{threads → core}/widgets/thread-conversation/plugin.js +0 -0
  1804. /package/plugins/runtime-modules/{threads → core}/widgets/thread-conversation/server.d.ts +0 -0
@@ -1,57 +1,60 @@
1
1
  "use client";
2
2
  import { Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useEffect, useEffectEvent, useMemo, useRef, useState } from "react";
4
- import { usePathname, useRouter, useSearchParams } from "next/navigation";
5
- import { createPhiSignalAddress, createPhiSignalSubcontrolAddress, PHI_SIGNAL_VALUE_SCHEMAS } from "../../../types/signals";
6
- import { readPhiTableBindingParamsSignalValue } from "../../../types/table-signal-values";
7
- import { createPhiPresetCmsInstanceId, readPhiCmsInstanceId } from "../../../types/cms-instance-id";
8
- import { usePhiSignalDispatcher, usePhiSignalListener, } from "../../../components/runtime/runtime-signal-bus";
9
- import { usePhiApplicationFeedback } from "../../../components/runtime/use-phi-application-feedback";
10
- import { resolvePhiRuntimeModuleIdsForArea } from "../../../plugins/runtime-modules/settings";
11
- import { PHI_BUILDER_PREVIEW_SEARCH_PARAM, } from "./preview-transport";
12
- import { PHI_BUILDER_AREA_SEARCH_PARAM, PHI_BUILDER_NAVIGATION_KEY_SEARCH_PARAM, PHI_BUILDER_PAGE_SEARCH_PARAM, PHI_BUILDER_RUNTIME_MODULES_SEARCH_PARAM, normalizePhiBuilderAreaSearchParam, normalizePhiBuilderPageSearchParam, serializePhiBuilderRuntimeModuleIdsSearchParam, } from "../../../helpers/cms-scope-search-params";
13
- import { createPhiBuilderControllerAddress } from "./controller/address";
14
- import { readPhiBuilderInspectorAction, } from "./inspector-actions";
15
- import { createEmptyPhiBuilderModulePresetPagesByArea, resolvePhiBuilderActivePageCatalog, resolvePhiBuilderActivePageKey, } from "../../../helpers/cms-page-catalog";
16
- import { loadPhiBuilderPersistedPageCatalog } from "./page-catalog-client";
17
- import { resolvePhiBuilderOfferedPageKey, resolvePhiBuilderOfferedPageKeyFromCatalogPath, } from "./offered-page-catalog";
18
- import { isPhiBuilderAreaKey, resolvePhiBuilderAreaAsCmsArea, } from "../../../constants/cms-areas";
19
- import { resolvePhiRuntimeAreaDefinition } from "../../../plugins/runtime-modules/area-definitions";
20
- import { resolvePhiBuilderNavigationWidgetNavKey } from "./navigation-widget-runtime";
21
- import { parsePhiBuilderNavigationScopeKey } from "../../../helpers/cms-navigation-catalog";
22
- import { builderWorkspaceStore, usePhiDeveloperBuilderWorkspaceState, completePhiDeveloperBuilderEffectsEditor, createDefaultBuilderChromeControls, normalizePhiDeveloperBuilderArea as normalizeBuilderArea, previewPhiDeveloperBuilderEffects, selectPhiDeveloperBuilderNode, usePhiDeveloperRegionDraft, getPhiDeveloperBuilderStateSnapshot, setPhiDeveloperBuilderAreaRootRoute, readPhiBuilderEffectiveAreaRootRoute, setPhiDeveloperBuilderAreaRootRoutes, setPhiDeveloperBuilderAreaMeta, setPhiDeveloperBuilderAreaMetaBaseline, readPhiBuilderEffectiveAreaMeta, closePhiBuilderModuleDeactivationRequest, closePhiBuilderPublicRouteCollisionRequest, } from "./developer-workspace-store";
23
- import {} from "./options-providers";
24
- import { PHI_AREA_META_PUBLIC_DEFAULTS } from "../../../helpers/cms-area-config";
25
- import { getPhiBuilderRegionDraftKey } from "./region-keys";
26
- import { getDefaultRegionDraft } from "./developer-region-drafts";
27
- import { isPhiAreaScopedBuilderPage, isPhiDebugScaffoldBuilderPage, readPhiDeveloperBuilderWorkspaceKey, resolvePhiDeveloperBuilderCommandWorkspace, resolvePhiDeveloperBuilderRouteScope, } from "./route-scope";
3
+ import { useCallback, useEffect, useEffectEvent, useMemo, useRef, useState } from "react";
4
+ import { useRouter, useSearchParams } from "next/navigation";
5
+ import { PHI_SIGNAL_VALUE_SCHEMAS, } from "../../../../types/signals";
6
+ import { dispatchPhiSignalCapability } from "../../../../components/runtime/runtime-signal-identity";
7
+ import { hasPhiConfigFlag } from "../../../../helpers/flags";
8
+ import { PhiCmsFlags } from "../../../../constants/phi-cms";
9
+ import { readPhiTableBindingParamsSignalValue } from "../../../../types/table-signal-values";
10
+ import { readPhiCmsInstanceId } from "../../../../types/cms-instance-id";
11
+ import { usePhiSignalDispatcher, usePhiSignalListener, } from "../../../../components/runtime/runtime-signal-bus";
12
+ import { usePhiApplicationFeedback } from "../../../../components/runtime/use-phi-application-feedback";
13
+ import { resolvePhiRuntimeModuleIdsForArea } from "../../../../plugins/runtime-modules/settings";
14
+ import { PHI_BUILDER_PREVIEW_SEARCH_PARAM, } from "../preview-transport";
15
+ import { PHI_BUILDER_AREA_SEARCH_PARAM, PHI_BUILDER_NAVIGATION_KEY_SEARCH_PARAM, PHI_BUILDER_PAGE_SEARCH_PARAM, PHI_BUILDER_RUNTIME_MODULES_SEARCH_PARAM, normalizePhiBuilderAreaSearchParam, normalizePhiBuilderPageSearchParam, serializePhiBuilderRuntimeModuleIdsSearchParam, } from "../../../../helpers/cms-scope-search-params";
16
+ import { createPhiBuilderControllerAddress } from "../controller/address";
17
+ import { readPhiBuilderInspectorAction, } from "../inspector-actions";
18
+ import { createEmptyPhiBuilderModulePresetPagesByArea, resolvePhiBuilderActivePageCatalog, resolvePhiBuilderActivePageKey, } from "../../../../helpers/cms-page-catalog";
19
+ import { loadPhiBuilderPersistedPageCatalog } from "../page-catalog-client";
20
+ import { resolvePhiBuilderOfferedPageKey, resolvePhiBuilderOfferedPageKeyFromCatalogPath, } from "../offered-page-catalog";
21
+ import { isPhiBuilderAreaKey, resolvePhiBuilderAreaAsCmsArea, } from "../../../../constants/cms-areas";
22
+ import { resolvePhiRuntimeAreaDefinition } from "../../../../plugins/runtime-modules/area-definitions";
23
+ import { resolvePhiBuilderNavigationWidgetNavKey } from "../navigation-widget-runtime";
24
+ import { parsePhiBuilderNavigationScopeKey } from "../../../../helpers/cms-navigation-catalog";
25
+ import { builderWorkspaceStore, usePhiDeveloperBuilderWorkspaceState, completePhiDeveloperBuilderEffectsEditor, normalizePhiDeveloperBuilderArea as normalizeBuilderArea, previewPhiDeveloperBuilderEffects, resetPhiBuilderSelectionToPage, selectPhiDeveloperBuilderNode, usePhiDeveloperRegionDraft, getPhiDeveloperBuilderStateSnapshot, getPhiDeveloperRegionDraftsSnapshot, readPhiBuilderEffectiveAreaRootRoute, setPhiDeveloperBuilderAreaRootRoutes, setPhiDeveloperBuilderAreaMetaBaseline, setPhiDeveloperBuilderAreaControllerSettings, readPhiBuilderEffectiveAreaMeta, closePhiBuilderModuleDeactivationRequest, closePhiBuilderPublicRouteCollisionRequest, } from "../developer-workspace-store";
26
+ import {} from "../options-providers";
27
+ import { PHI_AREA_META_PUBLIC_DEFAULTS } from "../../../../helpers/cms-area-config";
28
+ import { getPhiBuilderRegionDraftKey } from "../region-keys";
29
+ import { applyPhiBuilderAreaSettingsAnswer } from "../area-settings-answer";
30
+ import { getDefaultRegionDraft } from "../developer-region-drafts";
31
+ import { isPhiAreaScopedBuilderPage, isPhiDebugScaffoldBuilderPage, readPhiDeveloperBuilderWorkspaceKey, resolvePhiDeveloperBuilderCommandWorkspace, resolvePhiDeveloperBuilderRouteScope, } from "../route-scope";
28
32
  import { usePhiDeveloperBuilderPreviewModeController, } from "./preview-controller";
29
33
  import { runPhiDeveloperBuilderInspectorAction } from "./inspector-controller";
30
- import { PHI_BUILDER_SIGNAL_WIRING_FORM_CONTROLLER_ADDRESS, patchPhiBuilderSignalWiringSession, resetPhiBuilderSignalWiringSession, resolvePhiBuilderSignalWiringRoutes, resolvePhiBuilderSignalWiringRoutesWithout, } from "./signal-wiring-controller";
31
- import { readPhiTableActionSignalValue } from "../../../types/table-signal-values";
34
+ import { patchPhiBuilderSignalWiringSession, resetPhiBuilderSignalWiringSession, resolvePhiBuilderSignalWiringRoutes, resolvePhiBuilderSignalWiringRoutesWithout, } from "./signal-wiring-controller";
35
+ import { readPhiTableActionSignalValue } from "../../../../types/table-signal-values";
32
36
  import { usePhiBuilderPageController } from "./page-controller";
33
- import { PHI_BUILDER_AREA_LANDING_PAGE_EMPTY, PHI_BUILDER_AREA_ROOT_ROUTE_AUTOMATIC, PHI_BUILDER_AREA_ROOT_ROUTE_LANDING, } from "./area-settings-values";
34
- import { PHI_BUILDER_EFFECTS_FORM_WIDGET_IDS, PHI_BUILDER_INSPECTOR_DRAWER_OVERLAY_IDS, PHI_BUILDER_INSPECTOR_OVERLAY_IDS, PHI_BUILDER_INSPECTOR_WIDGET_IDS, } from "./inspector-overlay-addresses";
35
- import { PHI_BUILDER_MODULES_TABLE_WIDGET_ID, PHI_BUILDER_MODULE_DETAIL_OVERLAY_IDS, PHI_BUILDER_MODULE_DETAIL_WIDGET_IDS, PHI_BUILDER_PUBLIC_ROUTES_OVERLAY_IDS, PHI_BUILDER_PUBLIC_ROUTES_WIDGET_IDS, PHI_BUILDER_AREA_SETTINGS_OVERLAY_IDS, PHI_BUILDER_AREA_SETTINGS_WIDGET_IDS, PHI_BUILDER_MODULE_USAGE_OVERLAY_IDS, PHI_BUILDER_MODULE_USAGE_WIDGET_IDS, } from "./addresses";
36
- import { readPhiRuntimeFormValuesSignalValue } from "../../../components/forms/runtime-form-state";
37
- import { PHI_BUILDER_EFFECTS_SECTIONS, mergePhiBuilderEffectsFormValues, readPhiBuilderEffectsOpacity, splitPhiBuilderEffectsFormValues, } from "./effects-form-values";
37
+ import { PHI_BUILDER_AREA_LANDING_PAGE_EMPTY, PHI_BUILDER_AREA_ROOT_ROUTE_AUTOMATIC, PHI_BUILDER_AREA_ROOT_ROUTE_LANDING, } from "../area-settings-values";
38
+ import { readPhiRuntimeFormValuesSignalValue } from "../../../../components/forms/runtime-form-state";
39
+ import { PHI_BUILDER_EFFECTS_SECTIONS, mergePhiBuilderEffectsFormValues, readPhiBuilderEffectsOpacity, splitPhiBuilderEffectsFormValues, } from "../effects-form-values";
38
40
  import { usePhiBuilderDraftCommandController, } from "./draft-command-controller";
39
41
  import { usePhiBuilderDraftStatusController } from "./draft-status-controller";
40
42
  import { applyPhiDeveloperBuilderSiderLeftMode, } from "./region-controller";
41
- import { createPhiBuilderHistoryContext, phiBuilderHistory, } from "./history";
42
- import { applyPhiBuilderRuntimeModuleSelectionChange, applyPhiBuilderRuntimeModuleSelectionChanges, areRuntimeModuleIdsEqual, } from "./runtime-module-selection";
43
- import { applyPhiBuilderPublicRouteAssignments, findPhiBuilderPublicRouteAnswerProblem, } from "./public-route-collisions";
44
- import { createPhiCommandToolbarControlAddress } from "../../../components/widgets/signals/command-toolbar-address";
45
- import { PHI_BUILDER_RUNTIME_MODULE_ID } from "../../../plugins/runtime-modules/builder/ids";
46
- import { createPhiRuntimeFormControllerAddress } from "../../../components/forms/runtime-form-controller-address";
47
- import { phiWorkspaceCatalogStore } from "../../../components/workspace/catalog-store";
48
- import { PHI_BUILDER_PAGE_META_DEFAULT_PRESENTATION_LABELS, } from "./controller/definition";
43
+ import { createPhiBuilderHistoryContext, phiBuilderHistory, } from "../history";
44
+ import { applyPhiBuilderRuntimeModuleSelectionChange, applyPhiBuilderRuntimeModuleSelectionChanges, areRuntimeModuleIdsEqual, } from "../runtime-module-selection";
45
+ import { applyPhiBuilderPublicRouteAssignments, findPhiBuilderPublicRouteAnswerProblem, } from "../public-route-collisions";
46
+ import { phiWorkspaceCatalogStore } from "../../../../components/workspace/catalog-store";
47
+ import { PHI_BUILDER_PAGE_META_DEFAULT_PRESENTATION_LABELS, resolvePhiBuilderEffectsCapabilityId, } from "../controller/definition";
48
+ import { formatPhiHistoryTooltip, } from "../../../../components/widgets/label-types/history";
49
49
  const EMPTY_RUNTIME_MODULE_IDS_BY_AREA = {};
50
+ const EMPTY_SERVER_UNAVAILABLE_MODULES = {};
50
51
  const EMPTY_MODULE_PRESET_PAGES_BY_AREA = createEmptyPhiBuilderModulePresetPagesByArea();
51
52
  const EMPTY_PUBLIC_ROUTE_CLAIMS = [];
52
53
  const EMPTY_PUBLIC_ROUTE_PATHS = [];
53
54
  const EMPTY_AREA_ROOT_ROUTES = {};
54
55
  const EMPTY_AREA_META = {};
56
+ const EMPTY_AREA_CONTROLLER_SETTINGS = {};
57
+ import { usePhiPathname } from "../../../../components/runtime/use-phi-pathname";
55
58
  function readPhiDeveloperBuilderToolbarCommand(value) {
56
59
  if (value === "save" ||
57
60
  value === "preview" ||
@@ -119,17 +122,26 @@ function filterBuilderModuleCatalogs(modulePresetPagesByArea, navigationSurfaces
119
122
  navigationSurfacesByArea: filteredNavigation,
120
123
  };
121
124
  }
122
- function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
125
+ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options) {
123
126
  const { showMessage } = usePhiApplicationFeedback();
124
127
  const dispatchSignal = usePhiSignalDispatcher();
125
128
  const effectsWorkflowCorrelationRef = useRef(null);
126
129
  const initializedEffectsCorrelationRef = useRef(null);
127
130
  const effectsFormSubmissionRef = useRef(null);
128
- const { shellPresetDraftsByArea = {}, runtimeModuleDefinitions = [], runtimeModuleIdsByArea = {}, modulePresetPagesByArea = EMPTY_MODULE_PRESET_PAGES_BY_AREA, areaPresetSourcesByArea = {}, navigationSurfacesByArea = {}, unresolvedModuleIdsByArea = EMPTY_RUNTIME_MODULE_IDS_BY_AREA, publicRouteClaims = EMPTY_PUBLIC_ROUTE_CLAIMS, publicRoutePaths = EMPTY_PUBLIC_ROUTE_PATHS, areaRootRoutesByArea = EMPTY_AREA_ROOT_ROUTES, areaMetaByArea = EMPTY_AREA_META, pageMetaLabels = PHI_BUILDER_PAGE_META_DEFAULT_PRESENTATION_LABELS, } = options;
131
+ const { shellPresetDraftsByArea = {}, runtimeModuleDefinitions = [], runtimeModuleIdsByArea = {}, modulePresetPagesByArea = EMPTY_MODULE_PRESET_PAGES_BY_AREA, areaPresetSourcesByArea = {}, navigationSurfacesByArea = {}, unresolvedModuleIdsByArea = EMPTY_RUNTIME_MODULE_IDS_BY_AREA, serverUnavailableModules = EMPTY_SERVER_UNAVAILABLE_MODULES, publicRouteClaims = EMPTY_PUBLIC_ROUTE_CLAIMS, publicRoutePaths = EMPTY_PUBLIC_ROUTE_PATHS, areaRootRoutesByArea = EMPTY_AREA_ROOT_ROUTES, areaMetaByArea = EMPTY_AREA_META, areaControllerSettingsByArea = EMPTY_AREA_CONTROLLER_SETTINGS, pageMetaLabels = PHI_BUILDER_PAGE_META_DEFAULT_PRESENTATION_LABELS, historyLabels, signalRoutes = null, } = options;
132
+ /*
133
+ * One declared output, delivered through every route written for it.
134
+ *
135
+ * The Inspector drawers, the Effects and wiring dialogs, the Area settings, Page metadata and Modules
136
+ * dialogs, the header switches -- every one of them was a preset id written into this file, so the
137
+ * Controller kept addressing them on Pages that did not carry them and could not follow a copy that
138
+ * did. The trees that hold them route them now (`PhiBuilderRuntimeControllerConfig`).
139
+ */
140
+ const emitRoutes = useMemo(() => signalRoutes?.emits ?? [], [signalRoutes?.emits]);
141
+ const emitCapability = useCallback((capabilityId, value, correlationId) => dispatchPhiSignalCapability(dispatchSignal, createPhiBuilderControllerAddress(), emitRoutes, capabilityId, value, correlationId), [dispatchSignal, emitRoutes]);
129
142
  const state = usePhiDeveloperBuilderWorkspaceState(defaultArea);
130
- const effectsOverlayAddress = createPhiSignalAddress("cms", PHI_BUILDER_INSPECTOR_OVERLAY_IDS.effectsEditor);
131
143
  const router = useRouter();
132
- const pathname = usePathname();
144
+ const pathname = usePhiPathname();
133
145
  const searchParams = useSearchParams();
134
146
  const commandWorkspace = resolvePhiDeveloperBuilderCommandWorkspace(pathname);
135
147
  const builderWorkspaceKey = readPhiDeveloperBuilderWorkspaceKey(pathname);
@@ -147,17 +159,18 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
147
159
  const resolvedSiderLeftDraft = siderLeftDraft ??
148
160
  shellPresetDraftsByArea[effectiveArea]?.[siderLeftDraftKey] ??
149
161
  getDefaultRegionDraft("sider_left");
150
- const siderLeftFullHeight = resolvedSiderLeftDraft.regionConfig?.fullHeight === true;
162
+ const siderLeftFullHeight = hasPhiConfigFlag(resolvedSiderLeftDraft.regionConfig, PhiCmsFlags.FullHeight);
151
163
  const handledSiderLayoutRef = useRef(null);
152
164
  const effectiveNavKey = resolvePhiBuilderNavigationWidgetNavKey(null, searchParams.get(PHI_BUILDER_NAVIGATION_KEY_SEARCH_PARAM), effectiveArea);
153
165
  const { emitPageTitleInputValue, navigateToBuilderPage, openPageMetaDialog, pageMetaDialog, } = usePhiBuilderPageController({
166
+ emitCapability,
154
167
  defaultArea,
155
168
  effectiveArea,
156
169
  effectivePageKey,
157
170
  pageMetaLabels,
158
171
  state,
159
172
  });
160
- const { reportSaved } = usePhiBuilderDraftStatusController({
173
+ const { captureHistoryHead, reportSaved, hasUnsavedChanges } = usePhiBuilderDraftStatusController({
161
174
  commandWorkspace,
162
175
  effectiveArea,
163
176
  effectiveNavKey,
@@ -170,9 +183,12 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
170
183
  effectiveNavKey,
171
184
  effectivePageKey,
172
185
  pathname,
186
+ captureHistoryHead,
187
+ hasUnsavedChanges,
173
188
  reportSaved,
174
189
  shellPresetDraftsByArea,
175
190
  state,
191
+ historyLabels,
176
192
  });
177
193
  const currentRuntimeModuleIdsByArea = state.runtimeModuleIdsByArea ?? EMPTY_RUNTIME_MODULE_IDS_BY_AREA;
178
194
  const activePreloadCatalogs = useMemo(() => filterBuilderModuleCatalogs(modulePresetPagesByArea, navigationSurfacesByArea, runtimeModuleIdsByArea, runtimeModuleDefinitions), [
@@ -181,15 +197,21 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
181
197
  runtimeModuleDefinitions,
182
198
  runtimeModuleIdsByArea,
183
199
  ]);
184
- const runtimeModuleIdsPreloadKey = serializeRuntimeModuleIds(Object.values(runtimeModuleIdsByArea).flat());
185
- const runtimeModuleDefinitionsPreloadKey = serializeRuntimeModuleDefinitions(runtimeModuleDefinitions);
186
- const modulePresetPagesPreloadKey = JSON.stringify(activePreloadCatalogs.modulePresetPagesByArea);
187
- const areaPresetSourcesPreloadKey = JSON.stringify(areaPresetSourcesByArea);
188
- const navigationSurfacesPreloadKey = JSON.stringify(activePreloadCatalogs.navigationSurfacesByArea);
189
- const unresolvedModuleIdsPreloadKey = JSON.stringify(unresolvedModuleIdsByArea);
190
- const publicRouteClaimsPreloadKey = JSON.stringify(publicRouteClaims);
191
- const publicRoutePathsPreloadKey = JSON.stringify(publicRoutePaths);
192
- const areaRootRoutesPreloadKey = JSON.stringify(areaRootRoutesByArea);
200
+ /*
201
+ * The preload's identities, serialised once per preload and not once per render. The Controller
202
+ * re-renders on every Inspector keystroke and every slider step, and each render was stringifying the
203
+ * whole Module catalogue, every preset Page and every navigation surface to learn that nothing changed.
204
+ */
205
+ const runtimeModuleIdsPreloadKey = useMemo(() => serializeRuntimeModuleIds(Object.values(runtimeModuleIdsByArea).flat()), [runtimeModuleIdsByArea]);
206
+ const runtimeModuleDefinitionsPreloadKey = useMemo(() => serializeRuntimeModuleDefinitions(runtimeModuleDefinitions), [runtimeModuleDefinitions]);
207
+ const modulePresetPagesPreloadKey = useMemo(() => JSON.stringify(activePreloadCatalogs.modulePresetPagesByArea), [activePreloadCatalogs.modulePresetPagesByArea]);
208
+ const areaPresetSourcesPreloadKey = useMemo(() => JSON.stringify(areaPresetSourcesByArea), [areaPresetSourcesByArea]);
209
+ const navigationSurfacesPreloadKey = useMemo(() => JSON.stringify(activePreloadCatalogs.navigationSurfacesByArea), [activePreloadCatalogs.navigationSurfacesByArea]);
210
+ const unresolvedModuleIdsPreloadKey = useMemo(() => JSON.stringify(unresolvedModuleIdsByArea), [unresolvedModuleIdsByArea]);
211
+ const publicRouteClaimsPreloadKey = useMemo(() => JSON.stringify(publicRouteClaims), [publicRouteClaims]);
212
+ const serverUnavailableModulesPreloadKey = useMemo(() => JSON.stringify(serverUnavailableModules), [serverUnavailableModules]);
213
+ const publicRoutePathsPreloadKey = useMemo(() => JSON.stringify(publicRoutePaths), [publicRoutePaths]);
214
+ const areaRootRoutesPreloadKey = useMemo(() => JSON.stringify(areaRootRoutesByArea), [areaRootRoutesByArea]);
193
215
  /*
194
216
  * The Areas' root routes, handed to every workspace rather than to /shells alone.
195
217
  *
@@ -202,13 +224,17 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
202
224
  // eslint-disable-next-line react-hooks/exhaustive-deps
203
225
  }, [areaRootRoutesPreloadKey]);
204
226
  // What the Areas said about being found, read from the same revision and set the same way.
205
- const areaMetaPreloadKey = JSON.stringify(areaMetaByArea);
227
+ const areaMetaPreloadKey = useMemo(() => JSON.stringify(areaMetaByArea), [areaMetaByArea]);
206
228
  useEffect(() => {
207
229
  setPhiDeveloperBuilderAreaMetaBaseline(areaMetaByArea);
208
230
  // eslint-disable-next-line react-hooks/exhaustive-deps
209
231
  }, [areaMetaPreloadKey]);
210
- const signalWiringOverlayAddress = createPhiSignalAddress("cms", PHI_BUILDER_INSPECTOR_OVERLAY_IDS.signalWiring);
211
- const signalWiringFormAddress = createPhiSignalAddress("cms", PHI_BUILDER_INSPECTOR_WIDGET_IDS.signalWiringForm);
232
+ // What each Shell tells its Controllers, carried into every save that states the Shell whole.
233
+ const areaControllerSettingsPreloadKey = useMemo(() => JSON.stringify(areaControllerSettingsByArea), [areaControllerSettingsByArea]);
234
+ useEffect(() => {
235
+ setPhiDeveloperBuilderAreaControllerSettings(areaControllerSettingsByArea);
236
+ // eslint-disable-next-line react-hooks/exhaustive-deps
237
+ }, [areaControllerSettingsPreloadKey]);
212
238
  const openedSignalWiringCorrelationRef = useRef(null);
213
239
  useEffect(() => {
214
240
  const request = state.signalWiringRequest;
@@ -218,42 +244,12 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
218
244
  openedSignalWiringCorrelationRef.current = request.correlationId;
219
245
  // A wiring session belongs to the block it was opened on, so it starts empty every time.
220
246
  resetPhiBuilderSignalWiringSession(defaultArea);
221
- dispatchSignal({
222
- scope: "area",
223
- channel: "reset",
224
- action: "activate",
225
- value: null,
226
- valueType: "none",
227
- correlationId: request.correlationId,
228
- sender: createPhiBuilderControllerAddress(),
229
- receiver: signalWiringFormAddress,
230
- timestamp: Date.now(),
231
- });
247
+ emitCapability("signalWiringReset", null, request.correlationId);
232
248
  // The Table is mounted eagerly with the overlay, so its rows may still belong to the block wired
233
249
  // last time; opening on a new one has to ask for them again.
234
- dispatchSignal({
235
- scope: "area",
236
- channel: "reload",
237
- action: "activate",
238
- value: null,
239
- valueType: "none",
240
- correlationId: request.correlationId,
241
- sender: createPhiBuilderControllerAddress(),
242
- receiver: createPhiSignalAddress("cms", PHI_BUILDER_INSPECTOR_WIDGET_IDS.signalWiringRoutes),
243
- timestamp: Date.now(),
244
- });
245
- queueMicrotask(() => dispatchSignal({
246
- scope: "area",
247
- channel: "dialog",
248
- action: "activate",
249
- value: null,
250
- valueType: "none",
251
- correlationId: request.correlationId,
252
- sender: createPhiBuilderControllerAddress(),
253
- receiver: signalWiringOverlayAddress,
254
- timestamp: Date.now(),
255
- }));
256
- }, [defaultArea, dispatchSignal, signalWiringFormAddress, signalWiringOverlayAddress, state.signalWiringRequest]);
250
+ emitCapability("signalWiringRoutesReload", null, request.correlationId);
251
+ queueMicrotask(() => emitCapability("signalWiringOpen", null, request.correlationId));
252
+ }, [defaultArea, emitCapability, state.signalWiringRequest]);
257
253
  useEffect(() => {
258
254
  const request = state.effectsEditorRequest;
259
255
  if (!request || initializedEffectsCorrelationRef.current === request.correlationId)
@@ -262,32 +258,10 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
262
258
  initializedEffectsCorrelationRef.current = request.correlationId;
263
259
  const valuesBySection = splitPhiBuilderEffectsFormValues(request.effects);
264
260
  for (const section of PHI_BUILDER_EFFECTS_SECTIONS) {
265
- const widgetId = PHI_BUILDER_EFFECTS_FORM_WIDGET_IDS[section];
266
- dispatchSignal({
267
- scope: "area",
268
- channel: "values",
269
- action: "change",
270
- value: { values: valuesBySection[section] },
271
- valueType: "json",
272
- valueSchema: PHI_SIGNAL_VALUE_SCHEMAS.formValues,
273
- correlationId: request.correlationId,
274
- sender: createPhiBuilderControllerAddress(),
275
- receiver: createPhiRuntimeFormControllerAddress(`widget-${widgetId}`),
276
- timestamp: Date.now(),
277
- });
261
+ emitCapability(resolvePhiBuilderEffectsCapabilityId(section, "Values"), { values: valuesBySection[section] }, request.correlationId);
278
262
  }
279
- queueMicrotask(() => dispatchSignal({
280
- scope: "area",
281
- channel: "dialog",
282
- action: "activate",
283
- value: null,
284
- valueType: "none",
285
- correlationId: request.correlationId,
286
- sender: createPhiBuilderControllerAddress(),
287
- receiver: effectsOverlayAddress,
288
- timestamp: Date.now(),
289
- }));
290
- }, [dispatchSignal, effectsOverlayAddress, state.effectsEditorRequest]);
263
+ queueMicrotask(() => emitCapability("effectsDialogOpen", null, request.correlationId));
264
+ }, [emitCapability, state.effectsEditorRequest]);
291
265
  /*
292
266
  * The collision dialog follows the request rather than a click.
293
267
  *
@@ -296,8 +270,6 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
296
270
  * cancelled, or replaced by the next one. Keeping the open state derived is what makes cancelling
297
271
  * leave the Site exactly as it was: there is only ever the request to undo.
298
272
  */
299
- const publicRoutesOverlayAddress = useMemo(() => createPhiSignalAddress("cms", PHI_BUILDER_PUBLIC_ROUTES_OVERLAY_IDS.overlayPublicRoutes), []);
300
- const publicRoutesTableAddress = useMemo(() => createPhiSignalAddress("cms", PHI_BUILDER_PUBLIC_ROUTES_WIDGET_IDS.publicRoutesTable), []);
301
273
  /*
302
274
  * The other half of the same switch: what turning a Module off stops drawing.
303
275
  *
@@ -305,44 +277,25 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
305
277
  * directions of one gesture behave alike: a question that must be answered, a consequence that must
306
278
  * be acknowledged.
307
279
  */
308
- const moduleUsageOverlayAddress = useMemo(() => createPhiSignalAddress("cms", PHI_BUILDER_MODULE_USAGE_OVERLAY_IDS.overlayModuleUsage), []);
309
- const moduleUsageTableAddress = useMemo(() => createPhiSignalAddress("cms", PHI_BUILDER_MODULE_USAGE_WIDGET_IDS.moduleUsageTable), []);
310
- const openedModuleUsageCorrelationRef = useRef(null);
280
+ /*
281
+ * What was last said to the dialog, and through which routes. A question that stands when the Page
282
+ * holding the dialog arrives -- its routes come with it (`controllerSettings`) -- was said to nobody,
283
+ * so new routes say it again; the same question through the same routes is not repeated.
284
+ */
285
+ const openedModuleUsageRef = useRef(null);
311
286
  const moduleDeactivationRequest = state.moduleDeactivationRequest;
312
287
  useEffect(() => {
313
288
  const correlationId = moduleDeactivationRequest?.correlationId ?? null;
314
- if (openedModuleUsageCorrelationRef.current === correlationId) {
289
+ const opened = openedModuleUsageRef.current;
290
+ if (opened && opened.correlationId === correlationId && (correlationId == null || opened.routes === emitRoutes)) {
315
291
  return;
316
292
  }
317
- openedModuleUsageCorrelationRef.current = correlationId;
318
- dispatchSignal({
319
- scope: "page",
320
- channel: "moduleUsageDialog",
321
- action: correlationId ? "activate" : "close",
322
- value: null,
323
- valueType: "none",
324
- sender: createPhiBuilderControllerAddress(),
325
- receiver: moduleUsageOverlayAddress,
326
- timestamp: Date.now(),
327
- });
293
+ openedModuleUsageRef.current = { correlationId, routes: emitRoutes };
294
+ emitCapability(correlationId ? "moduleUsageOpen" : "moduleUsageClose", null);
328
295
  if (correlationId) {
329
- dispatchSignal({
330
- scope: "page",
331
- channel: "reload",
332
- action: "activate",
333
- value: null,
334
- valueType: "none",
335
- sender: createPhiBuilderControllerAddress(),
336
- receiver: moduleUsageTableAddress,
337
- timestamp: Date.now(),
338
- });
296
+ emitCapability("moduleUsageReload", null);
339
297
  }
340
- }, [
341
- dispatchSignal,
342
- moduleDeactivationRequest,
343
- moduleUsageOverlayAddress,
344
- moduleUsageTableAddress,
345
- ]);
298
+ }, [emitCapability, emitRoutes, moduleDeactivationRequest]);
346
299
  /*
347
300
  * What the Area settings dialog stands at, as the record its Form holds.
348
301
  *
@@ -363,10 +316,10 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
363
316
  * is on the screen -- the arrangement the Page metadata dialog fills itself with.
364
317
  */
365
318
  const [areaSettingsOpenCount, setAreaSettingsOpenCount] = useState(0);
366
- const areaSettingsFormControllerAddress = useMemo(() => createPhiRuntimeFormControllerAddress(`widget-${PHI_BUILDER_AREA_SETTINGS_WIDGET_IDS.areaSettingsForm}`), []);
367
- const areaMeta = readPhiBuilderEffectiveAreaMeta(state, state.area);
368
- const areaRootRoute = readPhiBuilderEffectiveAreaRootRoute(state, state.area);
369
- const seoAnswerable = state.area === "public";
319
+ // The Area on screen, as every other path here reads it; `state.area` lags a scope change by a render.
320
+ const areaMeta = readPhiBuilderEffectiveAreaMeta(state, effectiveArea);
321
+ const areaRootRoute = readPhiBuilderEffectiveAreaRootRoute(state, effectiveArea);
322
+ const seoAnswerable = effectiveArea === "public";
370
323
  /*
371
324
  * Only Public is ever asked: every other Area is authenticated and is not indexed whatever is
372
325
  * stored, so its switches stand at what is actually the case and are shown as unanswerable rather
@@ -393,7 +346,7 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
393
346
  ? PHI_BUILDER_AREA_ROOT_ROUTE_AUTOMATIC
394
347
  : areaRootRoute.mode === "landing"
395
348
  ? PHI_BUILDER_AREA_ROOT_ROUTE_LANDING
396
- : areaRootRoute.target;
349
+ : areaRootRoute.targetLinkTarget.reference;
397
350
  const areaLandingPageValue = areaRootRoute?.mode === "landing" && areaRootRoute.target
398
351
  ? areaRootRoute.target
399
352
  : PHI_BUILDER_AREA_LANDING_PAGE_EMPTY;
@@ -408,28 +361,17 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
408
361
  * values as though they were the Area's answer.
409
362
  */
410
363
  const publishAreaSettingsState = (correlationId) => {
411
- dispatchSignal({
412
- scope: "page",
413
- channel: "values",
414
- action: "change",
415
- value: {
416
- values: {
417
- areaRootRoute: areaRootRouteValue,
418
- areaLandingPage: areaLandingPageValue,
419
- areaTitleTemplate: titleTemplate,
420
- areaDefaultTitle: defaultTitle,
421
- areaMetaIndex: seoIndex,
422
- areaMetaSitemap: seoSitemap,
423
- seoLocked: seoAnswerable ? "false" : "true",
424
- },
364
+ emitCapability("areaSettingsValues", {
365
+ values: {
366
+ areaRootRoute: areaRootRouteValue,
367
+ areaLandingPage: areaLandingPageValue,
368
+ areaTitleTemplate: titleTemplate,
369
+ areaDefaultTitle: defaultTitle,
370
+ areaMetaIndex: seoIndex,
371
+ areaMetaSitemap: seoSitemap,
372
+ seoLocked: seoAnswerable ? "false" : "true",
425
373
  },
426
- valueType: "json",
427
- valueSchema: PHI_SIGNAL_VALUE_SCHEMAS.formValues,
428
- sender: createPhiBuilderControllerAddress(),
429
- receiver: areaSettingsFormControllerAddress,
430
- ...(correlationId ? { correlationId } : {}),
431
- timestamp: Date.now(),
432
- });
374
+ }, correlationId);
433
375
  };
434
376
  const publishAreaSettingsStateEvent = useEffectEvent(publishAreaSettingsState);
435
377
  useEffect(() => {
@@ -452,82 +394,37 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
452
394
  * while it stood in the header -- so the dialog is only a place, and the commands are the whole of
453
395
  * its lifecycle.
454
396
  */
455
- const areaSettingsOverlayAddress = useMemo(() => createPhiSignalAddress("cms", PHI_BUILDER_AREA_SETTINGS_OVERLAY_IDS.overlayAreaSettings), []);
456
397
  const dispatchAreaSettingsDialog = (open, correlationId) => {
457
- dispatchSignal({
458
- scope: "page",
459
- channel: "areaSettingsDialog",
460
- action: open ? "activate" : "close",
461
- value: null,
462
- valueType: "none",
463
- sender: createPhiBuilderControllerAddress(),
464
- receiver: areaSettingsOverlayAddress,
465
- correlationId,
466
- timestamp: Date.now(),
467
- });
398
+ emitCapability(open ? "areaSettingsOpen" : "areaSettingsClose", null, correlationId);
468
399
  };
469
- const openedPublicRoutesCorrelationRef = useRef(null);
400
+ // Said again through new routes, like the Module usage dialog above.
401
+ const openedPublicRoutesRef = useRef(null);
470
402
  const publicRouteCollisionRequest = state.publicRouteCollisionRequest;
471
403
  useEffect(() => {
472
404
  const correlationId = publicRouteCollisionRequest?.correlationId ?? null;
473
- if (openedPublicRoutesCorrelationRef.current === correlationId) {
405
+ const opened = openedPublicRoutesRef.current;
406
+ if (opened && opened.correlationId === correlationId && (correlationId == null || opened.routes === emitRoutes)) {
474
407
  return;
475
408
  }
476
- openedPublicRoutesCorrelationRef.current = correlationId;
477
- dispatchSignal({
478
- scope: "page",
479
- channel: "publicRoutesDialog",
480
- action: correlationId ? "activate" : "close",
481
- value: null,
482
- valueType: "none",
483
- sender: createPhiBuilderControllerAddress(),
484
- receiver: publicRoutesOverlayAddress,
485
- timestamp: Date.now(),
486
- });
409
+ openedPublicRoutesRef.current = { correlationId, routes: emitRoutes };
410
+ emitCapability(correlationId ? "publicRoutesOpen" : "publicRoutesClose", null);
487
411
  if (correlationId) {
488
412
  /*
489
413
  * And a re-read afterwards, not before: the rows live inside the overlay body, which mounts when
490
414
  * the modal opens and is kept mounted after -- so a second question would otherwise show the
491
415
  * first one's rows.
492
416
  */
493
- dispatchSignal({
494
- scope: "page",
495
- channel: "reload",
496
- action: "activate",
497
- value: null,
498
- valueType: "none",
499
- sender: createPhiBuilderControllerAddress(),
500
- receiver: publicRoutesTableAddress,
501
- timestamp: Date.now(),
502
- });
417
+ emitCapability("publicRoutesReload", null);
503
418
  }
504
- }, [
505
- dispatchSignal,
506
- publicRouteCollisionRequest,
507
- publicRoutesOverlayAddress,
508
- publicRoutesTableAddress,
509
- ]);
419
+ }, [emitCapability, emitRoutes, publicRouteCollisionRequest]);
510
420
  useEffect(() => {
511
- const selectedOverlayId = state.nodeKind === "region"
512
- ? PHI_BUILDER_INSPECTOR_OVERLAY_IDS.regionInspector
513
- : state.nodeKind === "layout"
514
- ? PHI_BUILDER_INSPECTOR_OVERLAY_IDS.layoutInspector
515
- : state.nodeKind === "widget"
516
- ? PHI_BUILDER_INSPECTOR_OVERLAY_IDS.widgetInspector
517
- : null;
518
- for (const overlayId of PHI_BUILDER_INSPECTOR_DRAWER_OVERLAY_IDS) {
519
- dispatchSignal({
520
- scope: "area",
521
- channel: "dialog",
522
- action: state.inspectorOpen && overlayId === selectedOverlayId ? "activate" : "close",
523
- value: null,
524
- valueType: "none",
525
- sender: createPhiBuilderControllerAddress(),
526
- receiver: createPhiSignalAddress("cms", overlayId),
527
- timestamp: Date.now(),
528
- });
421
+ const selectedInspector = state.nodeKind === "region" || state.nodeKind === "layout" || state.nodeKind === "widget"
422
+ ? state.nodeKind
423
+ : null;
424
+ for (const inspector of ["region", "layout", "widget"]) {
425
+ emitCapability(state.inspectorOpen && inspector === selectedInspector ? `${inspector}InspectorOpen` : `${inspector}InspectorClose`, null);
529
426
  }
530
- }, [dispatchSignal, state.inspectorOpen, state.nodeKind]);
427
+ }, [emitCapability, state.inspectorOpen, state.nodeKind]);
531
428
  useEffect(() => {
532
429
  /*
533
430
  * Feeding the catalog is the Builder's job, but the catalog itself is not the Builder's state --
@@ -542,6 +439,7 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
542
439
  const navigationSurfacesChanged = JSON.stringify(current.navigationSurfacesByArea) !== navigationSurfacesPreloadKey;
543
440
  const unresolvedModuleIdsChanged = JSON.stringify(current.unresolvedModuleIdsByArea) !== unresolvedModuleIdsPreloadKey;
544
441
  const publicRouteClaimsChanged = JSON.stringify(current.publicRouteClaims) !== publicRouteClaimsPreloadKey;
442
+ const serverUnavailableModulesChanged = JSON.stringify(current.serverUnavailableModules) !== serverUnavailableModulesPreloadKey;
545
443
  /*
546
444
  * The assignments arrive with the Modules draft and are edited by the collision dialog, so this
547
445
  * follows the same rule as the Module selection beside it: what the server sent replaces what is
@@ -569,7 +467,7 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
569
467
  nodeKey: `page:${initialPageKey}`,
570
468
  }));
571
469
  }
572
- return changed || definitionsChanged || modulePresetPagesChanged || areaPresetSourcesChanged || navigationSurfacesChanged || unresolvedModuleIdsChanged || publicRouteClaimsChanged || publicRoutePathsChanged || catalogHydrationChanged || initialPageChanged
470
+ return changed || definitionsChanged || modulePresetPagesChanged || areaPresetSourcesChanged || navigationSurfacesChanged || unresolvedModuleIdsChanged || serverUnavailableModulesChanged || publicRouteClaimsChanged || publicRoutePathsChanged || catalogHydrationChanged || initialPageChanged
573
471
  ? {
574
472
  ...current,
575
473
  ...(initialPageChanged ? { pageKey: initialPageKey } : {}),
@@ -580,6 +478,7 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
580
478
  areaPresetSourcesByArea,
581
479
  navigationSurfacesByArea: activePreloadCatalogs.navigationSurfacesByArea,
582
480
  unresolvedModuleIdsByArea,
481
+ serverUnavailableModules,
583
482
  publicRouteClaims,
584
483
  ...(publicRoutePathsChanged ? { publicRoutePaths } : {}),
585
484
  }
@@ -595,6 +494,8 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
595
494
  modulePresetPagesPreloadKey,
596
495
  unresolvedModuleIdsByArea,
597
496
  unresolvedModuleIdsPreloadKey,
497
+ serverUnavailableModules,
498
+ serverUnavailableModulesPreloadKey,
598
499
  publicRouteClaims,
599
500
  publicRouteClaimsPreloadKey,
600
501
  publicRoutePaths,
@@ -723,7 +624,6 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
723
624
  builderWorkspaceStore.patch(defaultArea, (current) => ({
724
625
  ...current,
725
626
  commandWorkspace,
726
- builderChromeControls: createDefaultBuilderChromeControls(),
727
627
  }));
728
628
  }, [commandWorkspace, defaultArea, state.commandWorkspace]);
729
629
  useEffect(() => {
@@ -739,36 +639,23 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
739
639
  pageKey: effectivePageKey,
740
640
  navKey: effectiveNavKey,
741
641
  });
742
- const presetKey = commandWorkspace === "structure"
743
- ? "builder-shells-page"
744
- : commandWorkspace === "pages"
745
- ? "builder-pages-page"
746
- : commandWorkspace === "modules"
747
- ? "builder-modules-page"
748
- : "builder-navigation-page";
642
+ /*
643
+ * Whether each button can move, and what it would move: the tooltip names the step an undo takes
644
+ * back, so the author knows which of their edits is next before pressing.
645
+ */
749
646
  const emitAvailability = () => {
750
647
  const availability = phiBuilderHistory.getAvailability(historyContext);
751
- for (const [controlKey, enabled] of [
752
- ["undo", availability.canUndo],
753
- ["redo", availability.canRedo],
754
- ]) {
755
- dispatchSignal({
756
- scope: "area",
757
- channel: "enabled",
758
- action: "change",
759
- value: enabled,
760
- valueType: "boolean",
761
- sender: createPhiBuilderControllerAddress(),
762
- receiver: createPhiCommandToolbarControlAddress(PHI_BUILDER_RUNTIME_MODULE_ID, presetKey, controlKey),
763
- timestamp: Date.now(),
764
- });
765
- }
648
+ emitCapability("undoEnabled", availability.canUndo);
649
+ emitCapability("redoEnabled", availability.canRedo);
650
+ emitCapability("undoTooltip", formatPhiHistoryTooltip(historyLabels, "undo", availability.undoAction));
651
+ emitCapability("redoTooltip", formatPhiHistoryTooltip(historyLabels, "redo", availability.redoAction));
766
652
  };
767
653
  emitAvailability();
768
654
  return phiBuilderHistory.subscribe(historyContext, emitAvailability);
769
655
  }, [
770
656
  commandWorkspace,
771
- dispatchSignal,
657
+ emitCapability,
658
+ historyLabels,
772
659
  effectiveArea,
773
660
  effectiveNavKey,
774
661
  effectivePageKey,
@@ -867,18 +754,7 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
867
754
  area: nextArea,
868
755
  pageKey: nextPageKey,
869
756
  }));
870
- builderWorkspaceStore.patch(defaultArea, (current) => ({
871
- ...current,
872
- nodeKey: `page:${nextPageKey}`,
873
- nodeId: null,
874
- nodeKind: "page",
875
- selectedRegionType: null,
876
- selectedRegionKey: null,
877
- selectedRootRegionKey: null,
878
- inspectorOpen: false,
879
- sidebarKey: "pages",
880
- builderChromeControls: createDefaultBuilderChromeControls(),
881
- }));
757
+ builderWorkspaceStore.patch(defaultArea, (current) => resetPhiBuilderSelectionToPage(current, nextPageKey));
882
758
  }, [
883
759
  defaultArea,
884
760
  isBuilderWorkspace,
@@ -894,28 +770,35 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
894
770
  effectiveArea,
895
771
  ]);
896
772
  usePhiSignalListener((signal) => {
897
- const effectsRequest = state.effectsEditorRequest;
898
- if (effectsRequest &&
899
- signal.correlationId === effectsRequest.correlationId &&
900
- signal.channel === "effectsCommit" &&
901
- signal.action === "change" &&
902
- signal.valueSchema === PHI_SIGNAL_VALUE_SCHEMAS.formValues) {
903
- const submitted = readPhiRuntimeFormValuesSignalValue(signal.value);
904
- const nextEffects = submitted?.values.effects;
905
- completePhiDeveloperBuilderEffectsEditor(defaultArea, effectsRequest, nextEffects && typeof nextEffects === "object" && !Array.isArray(nextEffects)
906
- ? nextEffects
907
- : undefined);
908
- initializedEffectsCorrelationRef.current = null;
773
+ /*
774
+ * Never what this Controller sent itself. The workspace store announces every state change it
775
+ * applied -- `page`, `selection`, `builderMode`, `inspectorVisibility` -- under this address, and
776
+ * a branch below that took the announcement for a request did the change a second time: a Page
777
+ * chosen in `/pages` was navigated to twice, and a failed Preview's restoring `builderMode`
778
+ * entered the Editor again. Whoever asks this Controller for something sends under its own
779
+ * address (SIGNALS.md, "Self-receive").
780
+ */
781
+ if (signal.sender === createPhiBuilderControllerAddress()) {
909
782
  return;
910
783
  }
911
- if (effectsRequest &&
912
- signal.correlationId === effectsRequest.correlationId &&
913
- signal.channel === "effectsCancel" &&
914
- signal.action === "close") {
915
- completePhiDeveloperBuilderEffectsEditor(defaultArea, effectsRequest);
784
+ /*
785
+ * What the branches below that name no receiver of their own may answer: a broadcast, or a signal
786
+ * addressed here. A `selection` or `page` change sent to some other Widget is that Widget's.
787
+ */
788
+ const addressedHere = signal.receiver === "broadcast" || signal.receiver === createPhiBuilderControllerAddress();
789
+ const effectsRequest = state.effectsEditorRequest;
790
+ /*
791
+ * Ends the Effects editor of one workflow: with the merged effects when they were taken, without
792
+ * when the editor was cancelled. Called in place, not sent: the Controller once told itself with
793
+ * an `effectsCommit` or `effectsCancel` broadcast, which stopped arriving the moment it stopped
794
+ * answering what it sends itself -- and the dialog closed with nothing taken.
795
+ */
796
+ const finishEffectsEditor = (correlationId, effects) => {
797
+ if (!effectsRequest || effectsRequest.correlationId !== correlationId)
798
+ return;
799
+ completePhiDeveloperBuilderEffectsEditor(defaultArea, effectsRequest, effects);
916
800
  initializedEffectsCorrelationRef.current = null;
917
- return;
918
- }
801
+ };
919
802
  /*
920
803
  * The Transparency as it is being dragged, drawn on the node and written nowhere.
921
804
  *
@@ -963,17 +846,7 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
963
846
  area: nextArea,
964
847
  pageKey: nextPageKey,
965
848
  }));
966
- builderWorkspaceStore.patch(defaultArea, (current) => ({
967
- ...current,
968
- nodeKey: `page:${nextPageKey}`,
969
- nodeId: null,
970
- nodeKind: "page",
971
- selectedRegionType: null,
972
- selectedRegionKey: null,
973
- selectedRootRegionKey: null,
974
- inspectorOpen: false,
975
- sidebarKey: "pages",
976
- }));
849
+ builderWorkspaceStore.patch(defaultArea, (current) => resetPhiBuilderSelectionToPage(current, nextPageKey));
977
850
  }
978
851
  return;
979
852
  }
@@ -992,21 +865,26 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
992
865
  selectedIds: (state.runtimeModuleIdsByArea?.[area] ?? [])
993
866
  .filter((moduleId) => moduleId !== request.moduleId),
994
867
  })), defaultArea);
995
- dispatchSignal({
996
- scope: "area",
997
- channel: "reload",
998
- action: "activate",
999
- value: null,
1000
- valueType: "none",
1001
- sender: createPhiBuilderControllerAddress(),
1002
- receiver: createPhiSignalAddress("cms", PHI_BUILDER_MODULES_TABLE_WIDGET_ID),
1003
- correlationId: signal.correlationId,
1004
- timestamp: Date.now(),
1005
- });
868
+ emitCapability("modulesTableReload", null, signal.correlationId);
1006
869
  }
1007
870
  closePhiBuilderModuleDeactivationRequest(defaultArea);
1008
871
  return;
1009
872
  }
873
+ /*
874
+ * The question's dialog closed by its own close button or Escape. It runs with `closeMode:
875
+ * "immediate"`, so it closes without asking, and that is a Cancel: the request goes, or it would
876
+ * stand behind a dialog nobody can see any more. Answering closes it too; the request is gone by
877
+ * then, and this finds nothing to withdraw.
878
+ */
879
+ if (signal.receiver === createPhiBuilderControllerAddress() &&
880
+ signal.channel === "publicRoutesVisibility" &&
881
+ signal.action === "change" &&
882
+ signal.value === false) {
883
+ if (state.publicRouteCollisionRequest) {
884
+ closePhiBuilderPublicRouteCollisionRequest(defaultArea);
885
+ }
886
+ return;
887
+ }
1010
888
  /*
1011
889
  * The answer to the one question enabling a Module can ask.
1012
890
  *
@@ -1041,17 +919,7 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1041
919
  selectedIds: [...(state.runtimeModuleIdsByArea?.[area] ?? []), request.moduleId],
1042
920
  })), defaultArea);
1043
921
  closePhiBuilderPublicRouteCollisionRequest(defaultArea);
1044
- dispatchSignal({
1045
- scope: "area",
1046
- channel: "reload",
1047
- action: "activate",
1048
- value: null,
1049
- valueType: "none",
1050
- sender: createPhiBuilderControllerAddress(),
1051
- receiver: createPhiSignalAddress("cms", PHI_BUILDER_MODULES_TABLE_WIDGET_ID),
1052
- correlationId: signal.correlationId,
1053
- timestamp: Date.now(),
1054
- });
922
+ emitCapability("modulesTableReload", null, signal.correlationId);
1055
923
  return;
1056
924
  }
1057
925
  if (signal.scope === "area" &&
@@ -1079,32 +947,7 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1079
947
  router.replace(`${pathname}?${nextSearchParams.toString()}`, { scroll: false });
1080
948
  return;
1081
949
  }
1082
- if (signal.channel === "builderChrome" && signal.action === "change") {
1083
- const nextControls = signal.value && typeof signal.value === "object"
1084
- ? signal.value
1085
- : null;
1086
- const currentRouteScope = resolvePhiDeveloperBuilderRouteScope(pathname);
1087
- if (!nextControls || !currentRouteScope || nextControls.area !== currentRouteScope.area || nextControls.pageKey !== currentRouteScope.pageKey) {
1088
- return;
1089
- }
1090
- const currentBuilderChromeControls = state.builderChromeControls ?? createDefaultBuilderChromeControls();
1091
- builderWorkspaceStore.patch(defaultArea, (current) => ({
1092
- ...current,
1093
- builderChromeControls: {
1094
- editorPreviewDisabled: typeof nextControls.editorPreviewDisabled === "boolean"
1095
- ? nextControls.editorPreviewDisabled
1096
- : currentBuilderChromeControls.editorPreviewDisabled,
1097
- actionsDisabled: typeof nextControls.actionsDisabled === "boolean"
1098
- ? nextControls.actionsDisabled
1099
- : currentBuilderChromeControls.actionsDisabled,
1100
- debugDisabled: typeof nextControls.debugDisabled === "boolean"
1101
- ? nextControls.debugDisabled
1102
- : currentBuilderChromeControls.debugDisabled,
1103
- },
1104
- }));
1105
- return;
1106
- }
1107
- if (signal.scope === "page" && signal.channel === "path" && signal.action === "change") {
950
+ if (addressedHere && signal.scope === "page" && signal.channel === "path" && signal.action === "change") {
1108
951
  if (builderWorkspaceKey !== "pages" || typeof signal.value !== "string" || signal.value.length === 0) {
1109
952
  return;
1110
953
  }
@@ -1116,7 +959,7 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1116
959
  emitPageTitleInputValue(nextPageKey);
1117
960
  return;
1118
961
  }
1119
- if (signal.channel === "page" && signal.action === "change") {
962
+ if (addressedHere && signal.channel === "page" && signal.action === "change") {
1120
963
  const rawValue = signal.value;
1121
964
  const next = rawValue && typeof rawValue === "object"
1122
965
  ? rawValue
@@ -1142,19 +985,7 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1142
985
  ...current,
1143
986
  pageKey: nextPageKey,
1144
987
  }));
1145
- builderWorkspaceStore.patch(defaultArea, (current) => ({
1146
- ...current,
1147
- nodeKey: `page:${nextPageKey}`,
1148
- nodeId: null,
1149
- nodeKind: "page",
1150
- selectedRegionType: null,
1151
- selectedRegionKey: null,
1152
- selectedRootRegionKey: null,
1153
- inspectorOpen: false,
1154
- sidebarKey: "pages",
1155
- pagesOpen: false,
1156
- builderChromeControls: createDefaultBuilderChromeControls(),
1157
- }));
988
+ builderWorkspaceStore.patch(defaultArea, (current) => resetPhiBuilderSelectionToPage(current, nextPageKey, { closePages: true }));
1158
989
  return;
1159
990
  }
1160
991
  const builderControllerReceiver = createPhiBuilderControllerAddress();
@@ -1165,46 +996,23 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1165
996
  * route the Table could carry on its own.
1166
997
  */
1167
998
  if (signal.scope === "area" &&
1168
- signal.channel === "action" &&
999
+ signal.channel === "moduleTableAction" &&
1169
1000
  signal.action === "activate" &&
1170
1001
  signal.valueType === "json" &&
1171
- signal.receiver === builderControllerReceiver &&
1172
- signal.sender === createPhiSignalAddress("cms", PHI_BUILDER_MODULES_TABLE_WIDGET_ID)) {
1002
+ signal.receiver === builderControllerReceiver) {
1173
1003
  const tableAction = readPhiTableActionSignalValue(signal.value);
1174
1004
  if (tableAction?.actionKey !== "details" || typeof tableAction.rowIdentity !== "string") {
1175
1005
  return;
1176
1006
  }
1177
- dispatchSignal({
1178
- scope: "page",
1179
- channel: "bindingParams",
1180
- action: "change",
1181
- value: { params: { moduleId: tableAction.rowIdentity } },
1182
- valueType: "json",
1183
- valueSchema: PHI_SIGNAL_VALUE_SCHEMAS.tableBindingParams,
1184
- correlationId: signal.correlationId,
1185
- sender: builderControllerReceiver,
1186
- receiver: createPhiSignalAddress("cms", PHI_BUILDER_MODULE_DETAIL_WIDGET_IDS.fields),
1187
- timestamp: Date.now(),
1188
- });
1189
- dispatchSignal({
1190
- scope: "page",
1191
- channel: "dialog",
1192
- action: "activate",
1193
- value: null,
1194
- valueType: "none",
1195
- correlationId: signal.correlationId,
1196
- sender: builderControllerReceiver,
1197
- receiver: createPhiSignalAddress("cms", PHI_BUILDER_MODULE_DETAIL_OVERLAY_IDS.overlayModuleDetail),
1198
- timestamp: Date.now(),
1199
- });
1007
+ emitCapability("moduleDetailParams", { params: { moduleId: tableAction.rowIdentity } }, signal.correlationId);
1008
+ emitCapability("moduleDetailOpen", null, signal.correlationId);
1200
1009
  return;
1201
1010
  }
1202
1011
  if (signal.scope === "area" &&
1203
1012
  signal.channel === "runtimeModules" &&
1204
1013
  signal.action === "change" &&
1205
1014
  signal.valueType === "string[]" &&
1206
- signal.receiver === builderControllerReceiver &&
1207
- signal.sender !== builderControllerReceiver) {
1015
+ signal.receiver === builderControllerReceiver) {
1208
1016
  const selectedIds = Array.isArray(signal.value)
1209
1017
  ? signal.value.filter((value) => typeof value === "string")
1210
1018
  : null;
@@ -1241,14 +1049,13 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1241
1049
  }
1242
1050
  const command = readPhiDeveloperBuilderToolbarCommand(commandValue);
1243
1051
  const commandWorkspace = state.commandWorkspace;
1244
- const builderChromeControls = state.builderChromeControls ?? createDefaultBuilderChromeControls();
1245
- if (!command || commandWorkspace == null || builderChromeControls.actionsDisabled) {
1052
+ if (!command || commandWorkspace == null) {
1246
1053
  return;
1247
1054
  }
1248
1055
  runBuilderCommand(command);
1249
1056
  return;
1250
1057
  }
1251
- if (signal.channel === "debugScaffold" && signal.action === "change") {
1058
+ if (addressedHere && signal.channel === "debugScaffold" && signal.action === "change") {
1252
1059
  const nextDebugScaffold = typeof signal.value === "boolean" ? signal.value : null;
1253
1060
  if (nextDebugScaffold == null) {
1254
1061
  return;
@@ -1259,41 +1066,34 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1259
1066
  }));
1260
1067
  return;
1261
1068
  }
1262
- if (signal.channel === "content") {
1263
- const rawValue = signal.value;
1264
- const next = rawValue && typeof rawValue === "object" ? rawValue : null;
1265
- if (!next || next.nodeKind !== "region" || typeof next.regionKey !== "string" || !next.draft || typeof next.draft !== "object") {
1266
- return;
1267
- }
1268
- const regionKey = next.regionKey;
1269
- const nextDraft = next.draft;
1270
- const catalog = phiWorkspaceCatalogStore.getSnapshot(defaultArea);
1271
- const nextArea = typeof next.area === "string" ? next.area : catalog.area;
1272
- const nextPageKey = typeof next.pageKey === "string" && next.pageKey.length > 0 ? next.pageKey : catalog.pageKey;
1273
- builderWorkspaceStore.patch(defaultArea, (current) => {
1274
- return {
1275
- ...current,
1276
- regionDrafts: {
1277
- ...current.regionDrafts,
1278
- [getPhiBuilderRegionDraftKey(nextArea, regionKey, nextPageKey)]: nextDraft,
1279
- },
1280
- };
1281
- });
1282
- return;
1283
- }
1284
- if (signal.channel === "selection" && signal.action === "change") {
1069
+ if (addressedHere && signal.channel === "selection" && signal.action === "change") {
1285
1070
  const rawValue = signal.value;
1286
1071
  const next = rawValue && typeof rawValue === "object" ? rawValue : null;
1287
1072
  if (!next || typeof next.nodeKey !== "string" || typeof next.nodeKind !== "string") {
1288
1073
  return;
1289
1074
  }
1290
- const nextNodeKey = next.nodeKey;
1075
+ let nextNodeKey = next.nodeKey;
1076
+ let nextNodeId = readPhiCmsInstanceId(next.nodeId);
1291
1077
  const nextPageKey = typeof next.pageKey === "string" ? next.pageKey : undefined;
1078
+ /*
1079
+ * A Layout named only by its Region is that Region's root Layout, read from its draft. A sender that
1080
+ * cannot know a Site's node ids -- a Tour step showing the Layout Inspector -- names it this way. A
1081
+ * Region without a root Layout selects nothing.
1082
+ */
1083
+ if (next.nodeKind === "layout" && nextNodeId == null && typeof next.regionKey === "string") {
1084
+ const current = getPhiDeveloperBuilderStateSnapshot(defaultArea);
1085
+ const rootNode = getPhiDeveloperRegionDraftsSnapshot()[getPhiBuilderRegionDraftKey(typeof next.area === "string" ? next.area : current.area, next.regionKey, nextPageKey ?? current.pageKey)]?.rootNode;
1086
+ if (!rootNode) {
1087
+ return;
1088
+ }
1089
+ nextNodeId = rootNode.id;
1090
+ nextNodeKey = rootNode.widgetType;
1091
+ }
1292
1092
  selectPhiDeveloperBuilderNode(defaultArea, {
1293
1093
  ...(typeof next.area === "string" ? { area: next.area } : {}),
1294
1094
  ...(nextPageKey ? { pageKey: nextPageKey } : {}),
1295
1095
  nodeKey: nextNodeKey,
1296
- nodeId: readPhiCmsInstanceId(next.nodeId),
1096
+ nodeId: nextNodeId,
1297
1097
  nodeKind: next.nodeKind,
1298
1098
  regionType: typeof next.regionType === "number" ? next.regionType : null,
1299
1099
  regionKey: typeof next.regionKey === "string" ? next.regionKey : null,
@@ -1304,7 +1104,7 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1304
1104
  });
1305
1105
  return;
1306
1106
  }
1307
- if (signal.channel === "builderMode" && signal.action === "change") {
1107
+ if (addressedHere && signal.channel === "builderMode" && signal.action === "change") {
1308
1108
  const rawValue = signal.value;
1309
1109
  if (rawValue === "editor") {
1310
1110
  enterEditor();
@@ -1352,7 +1152,7 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1352
1152
  const values = submitted.values;
1353
1153
  const historyContext = createPhiBuilderHistoryContext({
1354
1154
  workspace: "structure",
1355
- area: state.area,
1155
+ area: effectiveArea,
1356
1156
  });
1357
1157
  const rootRouteAnswer = typeof values.areaRootRoute === "string"
1358
1158
  ? values.areaRootRoute
@@ -1367,32 +1167,32 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1367
1167
  values.areaLandingPage !== PHI_BUILDER_AREA_LANDING_PAGE_EMPTY
1368
1168
  ? values.areaLandingPage
1369
1169
  : null;
1370
- if (rootRouteAnswer != null) {
1371
- setPhiDeveloperBuilderAreaRootRoute(state.area, rootRouteAnswer === PHI_BUILDER_AREA_ROOT_ROUTE_AUTOMATIC
1372
- ? null
1373
- : rootRouteAnswer === PHI_BUILDER_AREA_ROOT_ROUTE_LANDING
1374
- ? { mode: "landing", ...(landingAnswer ? { target: landingAnswer } : {}) }
1375
- : { mode: "redirect", target: rootRouteAnswer }, { historyContext, historyLabel: "Change root route" });
1376
- }
1377
1170
  /*
1378
1171
  * The indexing answers are taken only where they were asked. Outside Public the switches are
1379
1172
  * disabled and show the fact rather than the record, so reading them back would write that
1380
1173
  * fact into an Area that never said it.
1381
1174
  */
1382
- setPhiDeveloperBuilderAreaMeta(state.area, {
1383
- titleTemplate: typeof values.areaTitleTemplate === "string"
1384
- ? values.areaTitleTemplate.trim()
1385
- : "",
1386
- defaultTitle: typeof values.areaDefaultTitle === "string"
1387
- ? values.areaDefaultTitle.trim()
1388
- : "",
1389
- ...(state.area === "public"
1390
- ? {
1391
- index: values.areaMetaIndex !== false,
1392
- sitemap: values.areaMetaSitemap !== false,
1393
- }
1394
- : {}),
1395
- }, { historyContext, historyLabel: "Change area settings" });
1175
+ applyPhiBuilderAreaSettingsAnswer({
1176
+ area: effectiveArea,
1177
+ historyContext,
1178
+ rootRoute: rootRouteAnswer == null
1179
+ ? undefined
1180
+ : rootRouteAnswer === PHI_BUILDER_AREA_ROOT_ROUTE_AUTOMATIC
1181
+ ? null
1182
+ : rootRouteAnswer === PHI_BUILDER_AREA_ROOT_ROUTE_LANDING
1183
+ ? { mode: "landing", ...(landingAnswer ? { target: landingAnswer } : {}) }
1184
+ : {
1185
+ mode: "redirect",
1186
+ targetLinkTarget: { kind: "page", reference: rootRouteAnswer },
1187
+ },
1188
+ meta: {
1189
+ titleTemplate: values.areaTitleTemplate,
1190
+ defaultTitle: values.areaDefaultTitle,
1191
+ ...(effectiveArea === "public"
1192
+ ? { index: values.areaMetaIndex !== false, sitemap: values.areaMetaSitemap !== false }
1193
+ : {}),
1194
+ },
1195
+ });
1396
1196
  dispatchAreaSettingsDialog(false, signal.correlationId);
1397
1197
  return;
1398
1198
  }
@@ -1420,17 +1220,7 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1420
1220
  * states on opening, half of one record and half of another.
1421
1221
  */
1422
1222
  const leaving = signal.value === "cancel";
1423
- dispatchSignal({
1424
- scope: "page",
1425
- channel: leaving ? "reset" : "submit",
1426
- action: "activate",
1427
- value: null,
1428
- valueType: "none",
1429
- sender: createPhiBuilderControllerAddress(),
1430
- receiver: createPhiSignalAddress("cms", PHI_BUILDER_AREA_SETTINGS_WIDGET_IDS.areaSettingsForm),
1431
- correlationId: signal.correlationId,
1432
- timestamp: Date.now(),
1433
- });
1223
+ emitCapability(leaving ? "areaSettingsReset" : "areaSettingsSubmit", null, signal.correlationId);
1434
1224
  if (leaving) {
1435
1225
  dispatchAreaSettingsDialog(false, signal.correlationId);
1436
1226
  }
@@ -1462,37 +1252,7 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1462
1252
  });
1463
1253
  return;
1464
1254
  }
1465
- if ((signal.channel === "region" || signal.channel === "selection") &&
1466
- signal.action === "change") {
1467
- const rawValue = signal.value;
1468
- const next = rawValue && typeof rawValue === "object"
1469
- ? rawValue
1470
- : null;
1471
- if (!next || typeof next.regionKey !== "string" || typeof next.nodeKind !== "string") {
1472
- return;
1473
- }
1474
- const nextRegionKey = next.regionKey;
1475
- const nextNodeKind = next.nodeKind === "slot" ? "slot" : "region";
1476
- const nextNodeKey = typeof next.nodeKey === "string"
1477
- ? next.nodeKey
1478
- : `${nextNodeKind}:${nextRegionKey}`;
1479
- builderWorkspaceStore.patch(defaultArea, (current) => ({
1480
- ...current,
1481
- nodeKey: nextNodeKey,
1482
- nodeId: null,
1483
- nodeKind: nextNodeKind,
1484
- selectedRegionType: typeof next.regionType === "number"
1485
- ? next.regionType
1486
- : current.selectedRegionType,
1487
- selectedRegionKey: nextRegionKey,
1488
- selectedRootRegionKey: null,
1489
- inspectorOpen: nextNodeKind === "region",
1490
- sidebarKey: "structure",
1491
- pagesOpen: false,
1492
- }));
1493
- return;
1494
- }
1495
- if (signal.channel === "command" && signal.action === "activate" && signal.value === "pagesOpen") {
1255
+ if (addressedHere && signal.channel === "command" && signal.action === "activate" && signal.value === "pagesOpen") {
1496
1256
  builderWorkspaceStore.patch(defaultArea, (current) => ({ ...current, pagesOpen: true }));
1497
1257
  return;
1498
1258
  }
@@ -1504,30 +1264,9 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1504
1264
  else if (signal.action === "activate" && signal.valueType === "string" && signal.value === "save") {
1505
1265
  const correlationId = effectsWorkflowCorrelationRef.current ?? signal.correlationId;
1506
1266
  effectsFormSubmissionRef.current = { correlationId, values: {} };
1507
- dispatchSignal({
1508
- scope: "area",
1509
- channel: "effectsSubmitting",
1510
- action: "change",
1511
- value: true,
1512
- valueType: "boolean",
1513
- correlationId,
1514
- sender: createPhiBuilderControllerAddress(),
1515
- receiver: createPhiSignalSubcontrolAddress("cms", PHI_BUILDER_INSPECTOR_WIDGET_IDS.effectsCommands, "save"),
1516
- timestamp: Date.now(),
1517
- });
1267
+ emitCapability("effectsSubmitting", true, correlationId);
1518
1268
  for (const section of PHI_BUILDER_EFFECTS_SECTIONS) {
1519
- const widgetId = PHI_BUILDER_EFFECTS_FORM_WIDGET_IDS[section];
1520
- dispatchSignal({
1521
- scope: "area",
1522
- channel: "submit",
1523
- action: "activate",
1524
- value: null,
1525
- valueType: "none",
1526
- correlationId,
1527
- sender: createPhiBuilderControllerAddress(),
1528
- receiver: createPhiSignalAddress("cms", widgetId),
1529
- timestamp: Date.now(),
1530
- });
1269
+ emitCapability(resolvePhiBuilderEffectsCapabilityId(section, "Submit"), null, correlationId);
1531
1270
  }
1532
1271
  }
1533
1272
  else if ((signal.action === "activate" && signal.valueType === "string" && signal.value === "cancel") ||
@@ -1537,54 +1276,13 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1537
1276
  signal.valueSchema === PHI_SIGNAL_VALUE_SCHEMAS.overlayCloseRequest)))) {
1538
1277
  const correlationId = effectsWorkflowCorrelationRef.current ?? signal.correlationId;
1539
1278
  for (const section of PHI_BUILDER_EFFECTS_SECTIONS) {
1540
- const widgetId = PHI_BUILDER_EFFECTS_FORM_WIDGET_IDS[section];
1541
- dispatchSignal({
1542
- scope: "area",
1543
- channel: "reset",
1544
- action: "activate",
1545
- value: null,
1546
- valueType: "none",
1547
- correlationId,
1548
- sender: createPhiBuilderControllerAddress(),
1549
- receiver: createPhiSignalAddress("cms", widgetId),
1550
- timestamp: Date.now(),
1551
- });
1279
+ emitCapability(resolvePhiBuilderEffectsCapabilityId(section, "Reset"), null, correlationId);
1552
1280
  }
1553
- dispatchSignal({
1554
- scope: "area",
1555
- channel: "dialog",
1556
- action: "close",
1557
- value: null,
1558
- valueType: "none",
1559
- correlationId,
1560
- sender: createPhiBuilderControllerAddress(),
1561
- receiver: createPhiSignalAddress("cms", PHI_BUILDER_INSPECTOR_OVERLAY_IDS.effectsEditor),
1562
- timestamp: Date.now(),
1563
- });
1564
- dispatchSignal({
1565
- scope: "area",
1566
- channel: "effectsCancel",
1567
- action: "close",
1568
- value: null,
1569
- valueType: "none",
1570
- correlationId,
1571
- sender: createPhiBuilderControllerAddress(),
1572
- receiver: "broadcast",
1573
- timestamp: Date.now(),
1574
- });
1281
+ emitCapability("effectsDialogClose", null, correlationId);
1282
+ finishEffectsEditor(correlationId);
1575
1283
  effectsWorkflowCorrelationRef.current = null;
1576
1284
  effectsFormSubmissionRef.current = null;
1577
- dispatchSignal({
1578
- scope: "area",
1579
- channel: "effectsSubmitting",
1580
- action: "change",
1581
- value: false,
1582
- valueType: "boolean",
1583
- correlationId,
1584
- sender: createPhiBuilderControllerAddress(),
1585
- receiver: createPhiSignalSubcontrolAddress("cms", PHI_BUILDER_INSPECTOR_WIDGET_IDS.effectsCommands, "save"),
1586
- timestamp: Date.now(),
1587
- });
1285
+ emitCapability("effectsSubmitting", false, correlationId);
1588
1286
  }
1589
1287
  return;
1590
1288
  }
@@ -1593,7 +1291,8 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1593
1291
  * edits, which is what keeps the four cascading selects answerable; Apply routes through the
1594
1292
  * Form's own submit so its validation runs before a route is written.
1595
1293
  */
1596
- if (signal.receiver === PHI_BUILDER_SIGNAL_WIRING_FORM_CONTROLLER_ADDRESS &&
1294
+ if (signal.receiver === createPhiBuilderControllerAddress() &&
1295
+ signal.channel === "signalWiringValues" &&
1597
1296
  signal.action === "change" &&
1598
1297
  signal.valueSchema === PHI_SIGNAL_VALUE_SCHEMAS.formValues) {
1599
1298
  const submitted = readPhiRuntimeFormValuesSignalValue(signal.value);
@@ -1614,35 +1313,15 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1614
1313
  return;
1615
1314
  const routeState = getPhiDeveloperBuilderStateSnapshot(defaultArea);
1616
1315
  runPhiDeveloperBuilderInspectorAction(defaultArea, routeState.nodeKind === "layout"
1617
- ? { kind: "patchSelectedLayoutConfig", key: "signalRoutes", value: routes }
1316
+ ? { kind: "patchSelectedLayoutConfig", patch: { signalRoutes: routes } }
1618
1317
  : { kind: "patchSelectedWidgetConfig", patch: { signalRoutes: routes } });
1619
- dispatchSignal({
1620
- scope: "area",
1621
- channel: "reload",
1622
- action: "activate",
1623
- value: null,
1624
- valueType: "none",
1625
- correlationId: signal.correlationId,
1626
- sender: createPhiBuilderControllerAddress(),
1627
- receiver: createPhiSignalAddress("cms", PHI_BUILDER_INSPECTOR_WIDGET_IDS.signalWiringRoutes),
1628
- timestamp: Date.now(),
1629
- });
1318
+ emitCapability("signalWiringRoutesReload", null, signal.correlationId);
1630
1319
  return;
1631
1320
  }
1632
1321
  if (signal.receiver === createPhiBuilderControllerAddress() &&
1633
1322
  signal.channel === "signalWiring") {
1634
1323
  if (signal.action === "activate" && signal.valueType === "string" && signal.value === "apply") {
1635
- dispatchSignal({
1636
- scope: "area",
1637
- channel: "submit",
1638
- action: "activate",
1639
- value: null,
1640
- valueType: "none",
1641
- correlationId: signal.correlationId,
1642
- sender: createPhiBuilderControllerAddress(),
1643
- receiver: createPhiSignalAddress("cms", PHI_BUILDER_INSPECTOR_WIDGET_IDS.signalWiringForm),
1644
- timestamp: Date.now(),
1645
- });
1324
+ emitCapability("signalWiringSubmit", null, signal.correlationId);
1646
1325
  return;
1647
1326
  }
1648
1327
  /*
@@ -1660,28 +1339,8 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1660
1339
  return;
1661
1340
  }
1662
1341
  resetPhiBuilderSignalWiringSession(defaultArea);
1663
- dispatchSignal({
1664
- scope: "area",
1665
- channel: "reset",
1666
- action: "activate",
1667
- value: null,
1668
- valueType: "none",
1669
- correlationId: signal.correlationId,
1670
- sender: createPhiBuilderControllerAddress(),
1671
- receiver: createPhiSignalAddress("cms", PHI_BUILDER_INSPECTOR_WIDGET_IDS.signalWiringForm),
1672
- timestamp: Date.now(),
1673
- });
1674
- dispatchSignal({
1675
- scope: "area",
1676
- channel: "dialog",
1677
- action: "close",
1678
- value: null,
1679
- valueType: "none",
1680
- correlationId: signal.correlationId,
1681
- sender: createPhiBuilderControllerAddress(),
1682
- receiver: createPhiSignalAddress("cms", PHI_BUILDER_INSPECTOR_OVERLAY_IDS.signalWiring),
1683
- timestamp: Date.now(),
1684
- });
1342
+ emitCapability("signalWiringReset", null, signal.correlationId);
1343
+ emitCapability("signalWiringClose", null, signal.correlationId);
1685
1344
  return;
1686
1345
  }
1687
1346
  if (signal.receiver === createPhiBuilderControllerAddress() &&
@@ -1697,20 +1356,10 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1697
1356
  return;
1698
1357
  const wiringState = getPhiDeveloperBuilderStateSnapshot(defaultArea);
1699
1358
  runPhiDeveloperBuilderInspectorAction(defaultArea, wiringState.nodeKind === "layout"
1700
- ? { kind: "patchSelectedLayoutConfig", key: "signalRoutes", value: result.routes }
1359
+ ? { kind: "patchSelectedLayoutConfig", patch: { signalRoutes: result.routes } }
1701
1360
  : { kind: "patchSelectedWidgetConfig", patch: { signalRoutes: result.routes } });
1702
1361
  resetPhiBuilderSignalWiringSession(defaultArea);
1703
- dispatchSignal({
1704
- scope: "area",
1705
- channel: "dialog",
1706
- action: "close",
1707
- value: null,
1708
- valueType: "none",
1709
- correlationId: signal.correlationId,
1710
- sender: createPhiBuilderControllerAddress(),
1711
- receiver: createPhiSignalAddress("cms", PHI_BUILDER_INSPECTOR_OVERLAY_IDS.signalWiring),
1712
- timestamp: Date.now(),
1713
- });
1362
+ emitCapability("signalWiringClose", null, signal.correlationId);
1714
1363
  return;
1715
1364
  }
1716
1365
  if (signal.receiver === createPhiBuilderControllerAddress() &&
@@ -1721,17 +1370,7 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1721
1370
  if (!pending || signal.correlationId !== pending.correlationId)
1722
1371
  return;
1723
1372
  effectsFormSubmissionRef.current = null;
1724
- dispatchSignal({
1725
- scope: "area",
1726
- channel: "effectsSubmitting",
1727
- action: "change",
1728
- value: false,
1729
- valueType: "boolean",
1730
- correlationId: pending.correlationId,
1731
- sender: createPhiBuilderControllerAddress(),
1732
- receiver: createPhiSignalSubcontrolAddress("cms", PHI_BUILDER_INSPECTOR_WIDGET_IDS.effectsCommands, "save"),
1733
- timestamp: Date.now(),
1734
- });
1373
+ emitCapability("effectsSubmitting", false, pending.correlationId);
1735
1374
  return;
1736
1375
  }
1737
1376
  if (signal.receiver === createPhiBuilderControllerAddress() &&
@@ -1741,43 +1380,12 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1741
1380
  effectsWorkflowCorrelationRef.current) {
1742
1381
  const correlationId = effectsWorkflowCorrelationRef.current;
1743
1382
  for (const section of PHI_BUILDER_EFFECTS_SECTIONS) {
1744
- const widgetId = PHI_BUILDER_EFFECTS_FORM_WIDGET_IDS[section];
1745
- dispatchSignal({
1746
- scope: "area",
1747
- channel: "reset",
1748
- action: "activate",
1749
- value: null,
1750
- valueType: "none",
1751
- correlationId,
1752
- sender: createPhiBuilderControllerAddress(),
1753
- receiver: createPhiSignalAddress("cms", widgetId),
1754
- timestamp: Date.now(),
1755
- });
1383
+ emitCapability(resolvePhiBuilderEffectsCapabilityId(section, "Reset"), null, correlationId);
1756
1384
  }
1757
- dispatchSignal({
1758
- scope: "area",
1759
- channel: "effectsCancel",
1760
- action: "close",
1761
- value: null,
1762
- valueType: "none",
1763
- correlationId,
1764
- sender: createPhiBuilderControllerAddress(),
1765
- receiver: "broadcast",
1766
- timestamp: Date.now(),
1767
- });
1385
+ finishEffectsEditor(correlationId);
1768
1386
  effectsWorkflowCorrelationRef.current = null;
1769
1387
  effectsFormSubmissionRef.current = null;
1770
- dispatchSignal({
1771
- scope: "area",
1772
- channel: "effectsSubmitting",
1773
- action: "change",
1774
- value: false,
1775
- valueType: "boolean",
1776
- correlationId,
1777
- sender: createPhiBuilderControllerAddress(),
1778
- receiver: createPhiSignalSubcontrolAddress("cms", PHI_BUILDER_INSPECTOR_WIDGET_IDS.effectsCommands, "save"),
1779
- timestamp: Date.now(),
1780
- });
1388
+ emitCapability("effectsSubmitting", false, correlationId);
1781
1389
  return;
1782
1390
  }
1783
1391
  if (signal.receiver === createPhiBuilderControllerAddress() &&
@@ -1800,45 +1408,23 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1800
1408
  transitions: pending.values.transitions,
1801
1409
  viewport: pending.values.viewport,
1802
1410
  });
1803
- dispatchSignal({
1804
- scope: "area",
1805
- channel: "effectsCommit",
1806
- action: "change",
1807
- value: { values: { effects } },
1808
- valueType: "json",
1809
- valueSchema: PHI_SIGNAL_VALUE_SCHEMAS.formValues,
1810
- correlationId: effectsCorrelationId,
1811
- sender: createPhiBuilderControllerAddress(),
1812
- receiver: "broadcast",
1813
- timestamp: Date.now(),
1814
- });
1815
- dispatchSignal({
1816
- scope: "area",
1817
- channel: "dialog",
1818
- action: "close",
1819
- value: null,
1820
- valueType: "none",
1821
- correlationId: effectsCorrelationId,
1822
- sender: createPhiBuilderControllerAddress(),
1823
- receiver: createPhiSignalAddress("cms", PHI_BUILDER_INSPECTOR_OVERLAY_IDS.effectsEditor),
1824
- timestamp: Date.now(),
1825
- });
1411
+ finishEffectsEditor(effectsCorrelationId, effects);
1412
+ emitCapability("effectsDialogClose", null, effectsCorrelationId);
1826
1413
  effectsWorkflowCorrelationRef.current = null;
1827
1414
  effectsFormSubmissionRef.current = null;
1828
- dispatchSignal({
1829
- scope: "area",
1830
- channel: "effectsSubmitting",
1831
- action: "change",
1832
- value: false,
1833
- valueType: "boolean",
1834
- correlationId: effectsCorrelationId,
1835
- sender: createPhiBuilderControllerAddress(),
1836
- receiver: createPhiSignalSubcontrolAddress("cms", PHI_BUILDER_INSPECTOR_WIDGET_IDS.effectsCommands, "save"),
1837
- timestamp: Date.now(),
1838
- });
1415
+ emitCapability("effectsSubmitting", false, effectsCorrelationId);
1839
1416
  return;
1840
1417
  }
1841
- if (signal.channel === "inspectorVisibility" && signal.action === "change" && typeof signal.value === "boolean") {
1418
+ if (addressedHere && signal.channel === "inspectorVisibility" && signal.action === "change" && typeof signal.value === "boolean") {
1419
+ if (signal.value === false) {
1420
+ /*
1421
+ * Putting the Inspector away ends whatever was being adjusted in it. Everything a control
1422
+ * emitted while it was open is one edit, and the value standing when it closes is the one
1423
+ * history keeps -- so undo takes back the adjustment rather than one step of a slider still
1424
+ * being dragged.
1425
+ */
1426
+ phiBuilderHistory.endGesture();
1427
+ }
1842
1428
  builderWorkspaceStore.patch(defaultArea, (current) => ({ ...current, inspectorOpen: signal.value }));
1843
1429
  return;
1844
1430
  }
@@ -1883,52 +1469,22 @@ function usePhiDeveloperBuilderWorkspaceController(defaultArea, options = {}) {
1883
1469
  * stored tree says, the live page decides. It is stated once and held by the bus until the
1884
1470
  * selector exists, so a late-mounting Shell hears it without anybody waiting for it here.
1885
1471
  */
1886
- const areaSelectorAddress = useMemo(() => createPhiSignalAddress("cms", createPhiPresetCmsInstanceId({
1887
- domain: "area",
1888
- ownerModuleId: PHI_BUILDER_RUNTIME_MODULE_ID,
1889
- presetKey: "builder-area-preset",
1890
- nodeKey: "widgetBuilderAreaSelector",
1891
- })), []);
1892
1472
  const areaSelectorArmed = isPhiAreaScopedBuilderPage(resolvePhiDeveloperBuilderRouteScope(pathname)?.pageKey ?? "root");
1893
1473
  useEffect(() => {
1894
- dispatchSignal({
1895
- scope: "area",
1896
- channel: "enabled",
1897
- action: "change",
1898
- value: areaSelectorArmed,
1899
- valueType: "boolean",
1900
- sender: createPhiBuilderControllerAddress(),
1901
- receiver: areaSelectorAddress,
1902
- timestamp: Date.now(),
1903
- });
1904
- }, [areaSelectorArmed, areaSelectorAddress, dispatchSignal]);
1474
+ emitCapability("areaSelectorEnabled", areaSelectorArmed);
1475
+ }, [areaSelectorArmed, emitCapability]);
1905
1476
  // The debug switch rests disabled the same way, armed only where a canvas is drawn.
1906
- const debugSwitchAddress = useMemo(() => createPhiSignalAddress("cms", createPhiPresetCmsInstanceId({
1907
- domain: "area",
1908
- ownerModuleId: PHI_BUILDER_RUNTIME_MODULE_ID,
1909
- presetKey: "builder-area-preset",
1910
- nodeKey: "widgetHeaderMainDebugSwitch",
1911
- })), []);
1912
1477
  const debugSwitchArmed = isPhiDebugScaffoldBuilderPage(resolvePhiDeveloperBuilderRouteScope(pathname)?.pageKey ?? "root");
1913
1478
  useEffect(() => {
1914
- dispatchSignal({
1915
- scope: "area",
1916
- channel: "enabled",
1917
- action: "change",
1918
- value: debugSwitchArmed,
1919
- valueType: "boolean",
1920
- sender: createPhiBuilderControllerAddress(),
1921
- receiver: debugSwitchAddress,
1922
- timestamp: Date.now(),
1923
- });
1924
- }, [debugSwitchArmed, debugSwitchAddress, dispatchSignal]);
1479
+ emitCapability("debugSwitchEnabled", debugSwitchArmed);
1480
+ }, [debugSwitchArmed, emitCapability]);
1925
1481
  /*
1926
1482
  * Two Dialogs, one return. The workspace Controller renders nothing of its own except the dialogs its
1927
1483
  * commands need: the Page-meta editor, and the confirmation a reset command asks for.
1928
1484
  */
1929
1485
  return _jsxs(_Fragment, { children: [pageMetaDialog, confirmDialog] });
1930
1486
  }
1931
- export function PhiDeveloperBuilderWorkspaceController({ defaultArea = "public", shellPresetDraftsByArea = {}, runtimeModuleDefinitions = [], runtimeModuleIdsByArea = {}, modulePresetPagesByArea = EMPTY_MODULE_PRESET_PAGES_BY_AREA, areaPresetSourcesByArea = {}, navigationSurfacesByArea = {}, unresolvedModuleIdsByArea = EMPTY_RUNTIME_MODULE_IDS_BY_AREA, publicRouteClaims = EMPTY_PUBLIC_ROUTE_CLAIMS, publicRoutePaths = EMPTY_PUBLIC_ROUTE_PATHS, areaRootRoutesByArea = EMPTY_AREA_ROOT_ROUTES, areaMetaByArea = EMPTY_AREA_META, pageMetaLabels = PHI_BUILDER_PAGE_META_DEFAULT_PRESENTATION_LABELS, }) {
1487
+ export function PhiDeveloperBuilderWorkspaceController({ defaultArea = "public", shellPresetDraftsByArea = {}, runtimeModuleDefinitions = [], runtimeModuleIdsByArea = {}, modulePresetPagesByArea = EMPTY_MODULE_PRESET_PAGES_BY_AREA, areaPresetSourcesByArea = {}, navigationSurfacesByArea = {}, unresolvedModuleIdsByArea = EMPTY_RUNTIME_MODULE_IDS_BY_AREA, serverUnavailableModules = EMPTY_SERVER_UNAVAILABLE_MODULES, publicRouteClaims = EMPTY_PUBLIC_ROUTE_CLAIMS, publicRoutePaths = EMPTY_PUBLIC_ROUTE_PATHS, areaRootRoutesByArea = EMPTY_AREA_ROOT_ROUTES, areaMetaByArea = EMPTY_AREA_META, areaControllerSettingsByArea = EMPTY_AREA_CONTROLLER_SETTINGS, pageMetaLabels = PHI_BUILDER_PAGE_META_DEFAULT_PRESENTATION_LABELS, historyLabels, signalRoutes = null, }) {
1932
1488
  const controller = usePhiDeveloperBuilderWorkspaceController(defaultArea, {
1933
1489
  shellPresetDraftsByArea,
1934
1490
  runtimeModuleDefinitions,
@@ -1937,11 +1493,15 @@ export function PhiDeveloperBuilderWorkspaceController({ defaultArea = "public",
1937
1493
  areaPresetSourcesByArea,
1938
1494
  navigationSurfacesByArea,
1939
1495
  unresolvedModuleIdsByArea,
1496
+ serverUnavailableModules,
1940
1497
  publicRouteClaims,
1941
1498
  publicRoutePaths,
1942
1499
  areaRootRoutesByArea,
1943
1500
  areaMetaByArea,
1501
+ areaControllerSettingsByArea,
1944
1502
  pageMetaLabels,
1503
+ historyLabels,
1504
+ signalRoutes,
1945
1505
  });
1946
1506
  return controller;
1947
1507
  }