@salsita-ai/sdk 0.50.0-develop.b7caacb493 → 0.50.0-develop.b929a82a82

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 (1279) hide show
  1. package/README.md +8 -2
  2. package/dist/admin/AdminShell.js +1 -1
  3. package/dist/admin/common/admin-interface.d.ts +1 -1
  4. package/dist/admin/legacy-admin/Application.js +1 -1
  5. package/dist/application/index.d.ts +1 -0
  6. package/dist/application/index.js +1 -1
  7. package/dist/application/mount-application.d.ts +1 -1
  8. package/dist/application/mount-application.js +1 -1
  9. package/dist/application/mount-configurator.d.ts +19 -0
  10. package/dist/application/mount-configurator.js +1 -0
  11. package/dist/application/mounted-application-runtime.d.ts +4 -0
  12. package/dist/application/mounted-application-runtime.js +1 -0
  13. package/dist/application/register-web-component.d.ts +2 -0
  14. package/dist/application/register-web-component.js +1 -0
  15. package/dist/application-spec/caching/index.d.ts +6 -1
  16. package/dist/application-spec/caching/index.js +1 -1
  17. package/dist/application-spec/core/enhanced-json-value.d.ts +2 -31
  18. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  19. package/dist/application-spec/core/index.d.ts +1 -3
  20. package/dist/application-spec/core/index.js +1 -1
  21. package/dist/application-spec/core/json-schema.d.ts +2 -52
  22. package/dist/application-spec/core/markers/index.d.ts +1 -1
  23. package/dist/application-spec/core/markers/index.js +1 -1
  24. package/dist/application-spec/core/markers/msg-marker.d.ts +2 -28
  25. package/dist/application-spec/core/markers/msg-marker.js +1 -1
  26. package/dist/application-spec/core/markers/raw-eval-write-marker.d.ts +1 -1
  27. package/dist/application-spec/core/markers/raw-eval-write-marker.js +1 -1
  28. package/dist/application-spec/core/markers/raw-read-write-marker.js +1 -1
  29. package/dist/application-spec/errors/diagnostic-codes.d.ts +9 -1
  30. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  31. package/dist/application-spec/errors/diagnostic-messages.d.ts +16 -1
  32. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  33. package/dist/application-spec/generate-application/code/domain-runtime-files.d.ts +0 -19
  34. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  35. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  36. package/dist/application-spec/generate-application/code/templates/gitignore.js +2 -1
  37. package/dist/application-spec/generate-application/code/templates/index.d.ts +2 -6
  38. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  39. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +5 -4
  40. package/dist/application-spec/generate-application/code/templates/skills/core/cli.d.ts +2 -0
  41. package/dist/application-spec/generate-application/code/templates/skills/core/cli.js +1 -0
  42. package/dist/application-spec/generate-application/code/templates/skills/core/index.d.ts +3 -0
  43. package/dist/application-spec/generate-application/code/templates/skills/core/index.js +1 -0
  44. package/dist/application-spec/generate-application/code/templates/skills/core/sdk.d.ts +2 -0
  45. package/dist/application-spec/generate-application/code/templates/skills/core/sdk.js +117 -0
  46. package/dist/application-spec/generate-application/code/templates/skills/core/workflow.d.ts +2 -0
  47. package/dist/application-spec/generate-application/code/templates/skills/core/workflow.js +40 -0
  48. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/application-states.d.ts +3 -0
  49. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/application-states.js +3 -0
  50. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/index.d.ts +1 -0
  51. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/index.js +1 -0
  52. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/navigation.d.ts +3 -0
  53. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/navigation.js +48 -0
  54. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/presets.d.ts +3 -0
  55. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/presets.js +38 -0
  56. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/selection.d.ts +3 -0
  57. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/selection.js +35 -0
  58. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/views-and-tools.d.ts +3 -0
  59. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/views-and-tools.js +61 -0
  60. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/custom-layout.d.ts +3 -0
  61. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/custom-layout.js +7 -0
  62. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/finalization-actions.d.ts +3 -0
  63. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/finalization-actions.js +79 -0
  64. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/index.d.ts +1 -0
  65. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/index.js +1 -0
  66. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/messages.d.ts +3 -0
  67. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/messages.js +52 -0
  68. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/pages.d.ts +3 -0
  69. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/pages.js +49 -0
  70. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/scene-and-safe-area.d.ts +3 -0
  71. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/scene-and-safe-area.js +62 -0
  72. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/slots.d.ts +3 -0
  73. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/slots.js +40 -0
  74. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/tabs-and-steps.d.ts +3 -0
  75. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/tabs-and-steps.js +65 -0
  76. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/toolbar-actions.d.ts +3 -0
  77. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/toolbar-actions.js +58 -0
  78. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/view-mode.d.ts +3 -0
  79. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/view-mode.js +41 -0
  80. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/control-components.d.ts +3 -0
  81. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/control-components.js +24 -0
  82. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/control-hooks.d.ts +3 -0
  83. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/control-hooks.js +44 -0
  84. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/custom-controls.d.ts +3 -0
  85. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/custom-controls.js +74 -0
  86. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/domain-controls.d.ts +3 -0
  87. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/domain-controls.js +8 -0
  88. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/index.d.ts +1 -0
  89. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/index.js +1 -0
  90. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/scene-controls.d.ts +3 -0
  91. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/scene-controls.js +48 -0
  92. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/actions.d.ts +3 -0
  93. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/actions.js +64 -0
  94. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/components.d.ts +3 -0
  95. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/components.js +62 -0
  96. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/domain-model.d.ts +3 -0
  97. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/domain-model.js +1 -0
  98. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/entities-and-relations.d.ts +3 -0
  99. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/entities-and-relations.js +59 -0
  100. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/expressions.d.ts +3 -0
  101. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/expressions.js +46 -0
  102. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/index.d.ts +1 -0
  103. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/index.js +1 -0
  104. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/transformers.d.ts +3 -0
  105. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/transformers.js +43 -0
  106. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/validation-and-repair.d.ts +3 -0
  107. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/validation-and-repair.js +30 -0
  108. package/dist/application-spec/generate-application/code/templates/skills/features/features.d.ts +3 -0
  109. package/dist/application-spec/generate-application/code/templates/skills/features/features.js +1 -0
  110. package/dist/application-spec/generate-application/code/templates/skills/features/index.d.ts +1 -0
  111. package/dist/application-spec/generate-application/code/templates/skills/features/index.js +1 -0
  112. package/dist/application-spec/generate-application/code/templates/skills/features/inspection.d.ts +2 -0
  113. package/dist/application-spec/generate-application/code/templates/skills/features/inspection.js +1 -0
  114. package/dist/application-spec/generate-application/code/templates/skills/features/localization.d.ts +3 -0
  115. package/dist/application-spec/generate-application/code/templates/skills/features/localization.js +87 -0
  116. package/dist/application-spec/generate-application/code/templates/skills/features/state/index.d.ts +1 -0
  117. package/dist/application-spec/generate-application/code/templates/skills/features/state/index.js +1 -0
  118. package/dist/application-spec/generate-application/code/templates/skills/features/state/slices.d.ts +3 -0
  119. package/dist/application-spec/generate-application/code/templates/skills/features/state/slices.js +48 -0
  120. package/dist/application-spec/generate-application/code/templates/skills/features/state/state.d.ts +3 -0
  121. package/dist/application-spec/generate-application/code/templates/skills/features/state/state.js +1 -0
  122. package/dist/application-spec/generate-application/code/templates/skills/features/state/updates.d.ts +3 -0
  123. package/dist/application-spec/generate-application/code/templates/skills/features/state/updates.js +39 -0
  124. package/dist/application-spec/generate-application/code/templates/skills/features/state/violations.d.ts +3 -0
  125. package/dist/application-spec/generate-application/code/templates/skills/features/state/violations.js +36 -0
  126. package/dist/application-spec/generate-application/code/templates/skills/features/variants.d.ts +2 -0
  127. package/dist/application-spec/generate-application/code/templates/skills/features/variants.js +1 -0
  128. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks.d.ts +2 -0
  129. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks.js +1 -0
  130. package/dist/application-spec/generate-application/code/templates/skills/guide.d.ts +68 -0
  131. package/dist/application-spec/generate-application/code/templates/skills/guide.js +18 -0
  132. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.d.ts +10 -0
  133. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.js +14 -0
  134. package/dist/application-spec/generate-application/code/templates/skills/phx-members-without-guide.d.ts +9 -0
  135. package/dist/application-spec/generate-application/code/templates/skills/phx-members-without-guide.js +1 -0
  136. package/dist/application-spec/generate-application/code/templates/skills/processes/asset-conversion.d.ts +2 -0
  137. package/dist/application-spec/generate-application/code/templates/skills/processes/asset-conversion.js +23 -0
  138. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/evaluate.d.ts +2 -0
  139. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/evaluate.js +39 -0
  140. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/feedback.d.ts +3 -0
  141. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/feedback.js +1 -0
  142. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/index.d.ts +1 -0
  143. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/index.js +1 -0
  144. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/report.d.ts +2 -0
  145. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/report.js +7 -0
  146. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/send.d.ts +2 -0
  147. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/send.js +2 -0
  148. package/dist/application-spec/generate-application/code/templates/skills/processes/finalization.d.ts +2 -0
  149. package/dist/application-spec/generate-application/code/templates/skills/processes/finalization.js +2 -0
  150. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/build.d.ts +2 -0
  151. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/build.js +25 -0
  152. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/direction.d.ts +2 -0
  153. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/direction.js +26 -0
  154. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/first-draft.d.ts +3 -0
  155. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/first-draft.js +3 -0
  156. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/handoff.d.ts +2 -0
  157. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/handoff.js +7 -0
  158. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/index.d.ts +1 -0
  159. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/index.js +1 -0
  160. package/dist/application-spec/generate-application/code/templates/skills/processes/index.d.ts +9 -0
  161. package/dist/application-spec/generate-application/code/templates/skills/processes/index.js +1 -0
  162. package/dist/application-spec/generate-application/code/templates/skills/processes/model-migration.d.ts +2 -0
  163. package/dist/application-spec/generate-application/code/templates/skills/processes/model-migration.js +1 -0
  164. package/dist/application-spec/generate-application/code/templates/skills/{phoenix-skill.d.ts → processes/operations.d.ts} +2 -1
  165. package/dist/application-spec/generate-application/code/templates/skills/processes/operations.js +2 -0
  166. package/dist/application-spec/generate-application/code/templates/skills/processes/planning.d.ts +2 -0
  167. package/dist/application-spec/generate-application/code/templates/skills/processes/planning.js +5 -0
  168. package/dist/application-spec/generate-application/code/templates/skills/processes/review/appearance.d.ts +2 -0
  169. package/dist/application-spec/generate-application/code/templates/skills/processes/review/appearance.js +46 -0
  170. package/dist/application-spec/generate-application/code/templates/skills/processes/review/code.d.ts +2 -0
  171. package/dist/application-spec/generate-application/code/templates/skills/processes/review/code.js +2 -0
  172. package/dist/application-spec/generate-application/code/templates/skills/processes/review/hand-over.d.ts +2 -0
  173. package/dist/application-spec/generate-application/code/templates/skills/processes/review/hand-over.js +6 -0
  174. package/dist/application-spec/generate-application/code/templates/skills/processes/review/index.d.ts +1 -0
  175. package/dist/application-spec/generate-application/code/templates/skills/processes/review/index.js +1 -0
  176. package/dist/application-spec/generate-application/code/templates/skills/processes/review/review.d.ts +3 -0
  177. package/dist/application-spec/generate-application/code/templates/skills/processes/review/review.js +1 -0
  178. package/dist/application-spec/generate-application/code/templates/skills/processes/review/visual-inspection.d.ts +2 -0
  179. package/dist/application-spec/generate-application/code/templates/skills/processes/review/visual-inspection.js +13 -0
  180. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/branding.d.ts +2 -0
  181. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/branding.js +20 -0
  182. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/catalog.d.ts +2 -0
  183. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/catalog.js +1 -0
  184. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/index.d.ts +1 -0
  185. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/index.js +1 -0
  186. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/product-definition.d.ts +2 -0
  187. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/product-definition.js +22 -0
  188. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/specification.d.ts +3 -0
  189. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/specification.js +1 -0
  190. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/ux-guidelines.d.ts +2 -0
  191. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/ux-guidelines.js +25 -0
  192. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +51 -258
  193. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +3 -58
  194. package/dist/application-spec/generate-application/code/templates/skills/sdk-subpath-imports.d.ts +9 -0
  195. package/dist/application-spec/generate-application/code/templates/skills/sdk-subpath-imports.js +1 -0
  196. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +1 -1
  197. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -1
  198. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -4
  199. package/dist/application-spec/generate-application/code/templates/tsconfig.js +2 -1
  200. package/dist/application-spec/generate-application/index.d.ts +1 -7
  201. package/dist/application-spec/generate-application/index.js +1 -1
  202. package/dist/application-spec/parse-application-files/merge/merged-assistant.d.ts +13 -4
  203. package/dist/application-spec/parse-application-files/merge/merged-assistant.js +1 -1
  204. package/dist/application-spec/parse-application-files/merge/merged-infra.d.ts +4 -11
  205. package/dist/application-spec/parse-application-files/merge/merged-transformers.d.ts +2 -4
  206. package/dist/application-spec/parse-application-files/parse-application-files.js +1 -1
  207. package/dist/application-spec/parse-application-files/raw-spec/raw-acl.d.ts +2 -2
  208. package/dist/application-spec/parse-application-files/raw-spec/raw-acl.js +1 -1
  209. package/dist/application-spec/parse-application-files/raw-spec/raw-admin-pages.d.ts +3 -24
  210. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +25 -20
  211. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  212. package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.d.ts +1 -1
  213. package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.js +1 -1
  214. package/dist/application-spec/parse-application-files/raw-spec/raw-resources.d.ts +19 -64
  215. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-pages.d.ts +3 -20
  216. package/dist/application-spec/parse-application-files/spec/application/admin-spec/states.d.ts +3 -5
  217. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/states.d.ts +3 -8
  218. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding.d.ts +3 -13
  219. package/dist/application-spec/parse-application-files/spec/components/bindings/write-binding.d.ts +4 -32
  220. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +4 -10
  221. package/dist/application-spec/parse-application-files/spec/components/components.d.ts +3 -4
  222. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -2
  223. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  224. package/dist/application-spec/parse-application-files/spec/components/sdk-component-entry.d.ts +1 -1
  225. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +2 -3
  226. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  227. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +2 -3
  228. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +2 -2
  229. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -29
  230. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  231. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.d.ts +4 -71
  232. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  233. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +2 -2
  234. package/dist/application-spec/parse-application-files/spec/invariants/invariant.d.ts +5 -21
  235. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +4 -14
  236. package/dist/application-spec/parse-application-files/spec/model/aliases.d.ts +3 -9
  237. package/dist/application-spec/parse-application-files/spec/model/common-types.d.ts +6 -14
  238. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +6 -31
  239. package/dist/application-spec/parse-application-files/spec/model/entity-types.d.ts +3 -8
  240. package/dist/application-spec/parse-application-files/spec/model/model-version-key.d.ts +3 -3
  241. package/dist/application-spec/parse-application-files/spec/model/names/action-name.d.ts +3 -7
  242. package/dist/application-spec/parse-application-files/spec/model/names/alias-name.d.ts +3 -7
  243. package/dist/application-spec/parse-application-files/spec/model/names/entity-or-alias-name.d.ts +3 -8
  244. package/dist/application-spec/parse-application-files/spec/model/names/entity-type-name.d.ts +3 -8
  245. package/dist/application-spec/parse-application-files/spec/model/names/expression-name.d.ts +3 -6
  246. package/dist/application-spec/parse-application-files/spec/model/names/instance-name.d.ts +3 -7
  247. package/dist/application-spec/parse-application-files/spec/model/names/invariant-name.d.ts +3 -3
  248. package/dist/application-spec/parse-application-files/spec/model/names/shape-property-name.d.ts +3 -11
  249. package/dist/application-spec/parse-application-files/spec/model/names/violation-type-name.d.ts +3 -3
  250. package/dist/application-spec/parse-application-files/spec/model/presets.d.ts +6 -29
  251. package/dist/application-spec/parse-application-files/spec/sections/actions.d.ts +6 -23
  252. package/dist/application-spec/parse-application-files/spec/sections/app-metadata.d.ts +3 -18
  253. package/dist/application-spec/parse-application-files/spec/sections/application-version.d.ts +3 -7
  254. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  255. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.js +1 -1
  256. package/dist/application-spec/parse-application-files/spec/sections/data-spec/chunks.d.ts +6 -23
  257. package/dist/application-spec/parse-application-files/spec/sections/data-spec/custom-data-spec.d.ts +1 -16
  258. package/dist/application-spec/parse-application-files/spec/sections/data-spec/data-entry-key.d.ts +3 -9
  259. package/dist/application-spec/parse-application-files/spec/sections/data-spec/data-spec.d.ts +1 -10
  260. package/dist/application-spec/parse-application-files/spec/sections/data-spec/swatch-data-spec.d.ts +1 -14
  261. package/dist/application-spec/parse-application-files/spec/sections/state-value.d.ts +3 -7
  262. package/dist/application-spec/parse-application-files/spec/sections/theme.d.ts +3 -10
  263. package/dist/application-spec/parse-application-files/spec/sections/transformers.d.ts +4 -11
  264. package/dist/application-spec/parse-application-files/spec/sections/ui.d.ts +3 -12
  265. package/dist/client/authorized-client.d.ts +4 -2
  266. package/dist/client/authorized-client.js +1 -1
  267. package/dist/client/contract.d.ts +34 -4
  268. package/dist/client/contract.js +1 -1
  269. package/dist/client/index.d.ts +1 -1
  270. package/dist/client/local-authorized-client.d.ts +3 -1
  271. package/dist/client/local-authorized-client.js +1 -1
  272. package/dist/client/memory-authorized-client.d.ts +4 -1
  273. package/dist/client/memory-authorized-client.js +1 -1
  274. package/dist/client/phoenix-api.d.ts +279 -2
  275. package/dist/configurator/ConfiguratorApp.js +1 -1
  276. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  277. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-annotation.d.ts +31 -0
  278. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +136 -24
  279. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  280. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +21 -4
  281. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  282. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.d.ts +43 -0
  283. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.js +1 -1
  284. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +70 -56
  285. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  286. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +38 -11
  287. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  288. package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.d.ts +40 -0
  289. package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.js +1 -0
  290. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/capture-next-frame.d.ts +10 -0
  291. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/capture-next-frame.js +1 -0
  292. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.d.ts +8 -0
  293. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.js +1 -1
  294. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +3 -2
  295. package/dist/configurator/application-runtime/extensions/systems/index.js +1 -1
  296. package/dist/configurator/common/configurator-interface.d.ts +3 -3
  297. package/dist/configurator/common/configurator-interface.js +1 -1
  298. package/dist/configurator/configurator-context/configurator-hooks/index.d.ts +0 -1
  299. package/dist/configurator/configurator-context/configurator-hooks/index.js +1 -1
  300. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.js +1 -1
  301. package/dist/configurator/configurator-context/index.d.ts +0 -5
  302. package/dist/configurator/configurator-context/index.js +1 -1
  303. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  304. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  305. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  306. package/dist/configurator/pages/default-configurator-elements.d.ts +6 -2
  307. package/dist/configurator/pages/default-configurator-elements.js +1 -1
  308. package/dist/configurator/pages/error-boundaries/BuiltInGeneralErrorFallback.d.ts +5 -0
  309. package/dist/configurator/pages/error-boundaries/BuiltInGeneralErrorFallback.js +1 -0
  310. package/dist/configurator/pages/error-boundaries/DevContextFallback.js +1 -1
  311. package/dist/configurator/pages/error-boundaries/DevLoadingFallback.js +1 -1
  312. package/dist/configurator/pages/error-boundaries/index.d.ts +1 -0
  313. package/dist/configurator/pages/error-boundaries/index.js +1 -1
  314. package/dist/configurator/pages/provider-slots/ContainerSlotProvider.d.ts +3 -0
  315. package/dist/configurator/pages/provider-slots/ContainerSlotProvider.js +1 -0
  316. package/dist/configurator/pages/provider-slots/LoaderSlotProvider.d.ts +3 -0
  317. package/dist/configurator/pages/provider-slots/LoaderSlotProvider.js +1 -0
  318. package/dist/configurator/pages/provider-slots/MessageHostSlotProvider.d.ts +3 -0
  319. package/dist/configurator/pages/provider-slots/MessageHostSlotProvider.js +1 -0
  320. package/dist/configurator/pages/provider-slots/SceneResourcesSlotProvider.d.ts +3 -0
  321. package/dist/configurator/pages/provider-slots/SceneResourcesSlotProvider.js +1 -0
  322. package/dist/configurator/pages/provider-slots/ThemeSlotProvider.d.ts +3 -0
  323. package/dist/configurator/pages/provider-slots/ThemeSlotProvider.js +1 -0
  324. package/dist/configurator/pages/provider-slots/configurator-provider-slot-elements.d.ts +3 -0
  325. package/dist/configurator/pages/provider-slots/configurator-provider-slot-elements.js +1 -0
  326. package/dist/configurator/pages/provider-slots/index.d.ts +6 -0
  327. package/dist/configurator/pages/provider-slots/index.js +1 -0
  328. package/dist/configurator/pages/ui-elements/BuiltInInvalidDeploymentReload.d.ts +2 -0
  329. package/dist/configurator/pages/ui-elements/BuiltInInvalidDeploymentReload.js +1 -0
  330. package/dist/configurator/pages/ui-elements/configurator-ui-elements.d.ts +3 -0
  331. package/dist/configurator/pages/ui-elements/configurator-ui-elements.js +1 -0
  332. package/dist/configurator/pages/ui-elements/index.d.ts +2 -0
  333. package/dist/configurator/pages/ui-elements/index.js +1 -0
  334. package/dist/configurator/scene/cameras/CameraPadding.js +1 -1
  335. package/dist/configurator/ui/assistant/AssistantChips.d.ts +10 -0
  336. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  337. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +6 -0
  338. package/dist/configurator/ui/assistant/AssistantComposer.js +2 -1
  339. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  340. package/dist/configurator/ui/assistant/AssistantThread.d.ts +4 -3
  341. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  342. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +4 -1
  343. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -1
  344. package/dist/configurator/ui/assistant/annotation/AnnotationBadge.d.ts +9 -0
  345. package/dist/configurator/ui/assistant/annotation/AnnotationBadge.js +1 -0
  346. package/dist/configurator/ui/assistant/annotation/AnnotationOverlay.d.ts +6 -0
  347. package/dist/configurator/ui/assistant/annotation/AnnotationOverlay.js +1 -0
  348. package/dist/configurator/ui/assistant/annotation/AnnotationPin.d.ts +14 -0
  349. package/dist/configurator/ui/assistant/annotation/AnnotationPin.js +1 -0
  350. package/dist/configurator/ui/assistant/annotation/AnnotationViewer.d.ts +12 -0
  351. package/dist/configurator/ui/assistant/annotation/AnnotationViewer.js +1 -0
  352. package/dist/configurator/ui/assistant/annotation/MessageAnnotations.d.ts +11 -0
  353. package/dist/configurator/ui/assistant/annotation/MessageAnnotations.js +1 -0
  354. package/dist/configurator/ui/assistant/annotation/annotation-host-context.d.ts +5 -0
  355. package/dist/configurator/ui/assistant/annotation/annotation-host-context.js +1 -0
  356. package/dist/configurator/ui/assistant/annotation/annotation-layout.d.ts +26 -0
  357. package/dist/configurator/ui/assistant/annotation/annotation-layout.js +1 -0
  358. package/dist/configurator/ui/assistant/annotation/editor/AnnotationComment.d.ts +15 -0
  359. package/dist/configurator/ui/assistant/annotation/editor/AnnotationComment.js +1 -0
  360. package/dist/configurator/ui/assistant/annotation/editor/AnnotationEditor.d.ts +18 -0
  361. package/dist/configurator/ui/assistant/annotation/editor/AnnotationEditor.js +1 -0
  362. package/dist/configurator/ui/assistant/annotation/editor/annotation-drawing.d.ts +22 -0
  363. package/dist/configurator/ui/assistant/annotation/editor/annotation-drawing.js +1 -0
  364. package/dist/configurator/ui/assistant/annotation/editor/annotation-pins.d.ts +22 -0
  365. package/dist/configurator/ui/assistant/annotation/editor/annotation-pins.js +1 -0
  366. package/dist/configurator/ui/assistant/annotation/editor/flatten-annotation.d.ts +17 -0
  367. package/dist/configurator/ui/assistant/annotation/editor/flatten-annotation.js +1 -0
  368. package/dist/configurator/ui/assistant/annotation/editor/index.d.ts +1 -0
  369. package/dist/configurator/ui/assistant/annotation/editor/index.js +1 -0
  370. package/dist/configurator/ui/assistant/annotation/index.d.ts +4 -0
  371. package/dist/configurator/ui/assistant/annotation/index.js +1 -0
  372. package/dist/configurator/ui/assistant/annotation/prefers-reduced-motion.d.ts +2 -0
  373. package/dist/configurator/ui/assistant/annotation/prefers-reduced-motion.js +1 -0
  374. package/dist/configurator/ui/assistant/annotation/use-end-on-unmount.d.ts +6 -0
  375. package/dist/configurator/ui/assistant/annotation/use-end-on-unmount.js +1 -0
  376. package/dist/configurator/ui/assistant/assistant-failure.d.ts +15 -7
  377. package/dist/configurator/ui/assistant/assistant-failure.js +1 -1
  378. package/dist/configurator/ui/assistant/attachments/MessageImages.d.ts +19 -0
  379. package/dist/configurator/ui/assistant/attachments/MessageImages.js +1 -0
  380. package/dist/configurator/ui/assistant/attachments/index.d.ts +2 -0
  381. package/dist/configurator/ui/assistant/attachments/index.js +1 -0
  382. package/dist/configurator/ui/assistant/attachments/prepare-image.d.ts +24 -0
  383. package/dist/configurator/ui/assistant/attachments/prepare-image.js +1 -0
  384. package/dist/configurator/ui/assistant/composer/composer-frame.d.ts +15 -0
  385. package/dist/configurator/ui/assistant/composer/composer-frame.js +1 -0
  386. package/dist/configurator/ui/assistant/composer/index.d.ts +1 -0
  387. package/dist/configurator/ui/assistant/composer/index.js +1 -0
  388. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -1
  389. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -1
  390. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +26 -0
  391. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -1
  392. package/dist/configurator/ui/assistant/index.d.ts +1 -0
  393. package/dist/configurator/ui/assistant/index.js +1 -1
  394. package/dist/configurator/ui/assistant/popover/AssistantPopover.d.ts +24 -0
  395. package/dist/configurator/ui/assistant/popover/AssistantPopover.js +1 -0
  396. package/dist/configurator/ui/assistant/popover/index.d.ts +1 -0
  397. package/dist/configurator/ui/assistant/popover/index.js +1 -0
  398. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -1
  399. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -1
  400. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +1 -1
  401. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -1
  402. package/dist/configurator/ui/assistant/screenshots/index.d.ts +1 -0
  403. package/dist/configurator/ui/assistant/screenshots/index.js +1 -1
  404. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +6 -4
  405. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -1
  406. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.d.ts +8 -0
  407. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.js +1 -0
  408. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +11 -0
  409. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  410. package/dist/configurator/ui/assistant/thread-items.d.ts +5 -0
  411. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  412. package/dist/configurator/ui/assistant/tool-chip.d.ts +19 -9
  413. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  414. package/dist/configurator/ui/assistant/use-load-older-on-top.d.ts +22 -0
  415. package/dist/configurator/ui/assistant/use-load-older-on-top.js +1 -0
  416. package/dist/configurator/ui/configurator-layout/slots/canvas/GPUAccelerationDisabled.js +1 -1
  417. package/dist/configurator/ui/configurator-layout/slots/canvas/WebGLNotSupported.js +1 -1
  418. package/dist/configurator/ui/configurator-layout/slots/readonly-banner/CloneToEditDialog.js +1 -1
  419. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  420. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  421. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  422. package/dist/configurator/ui/legacy/chat/MobileChat.js +1 -1
  423. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  424. package/dist/configurator/ui/legacy/layout/simple/SimpleSidebar.js +1 -1
  425. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  426. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  427. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  428. package/dist/configurator/ui/legacy/layout/steps/StepsSideBar.js +1 -1
  429. package/dist/configurator/ui/legacy/layout/tabs/TabsSidebar.js +1 -1
  430. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  431. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  432. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/use-basic-sidebar-footer.js +1 -1
  433. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  434. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  435. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -1
  436. package/dist/docs/3d-scene/animations-basic.mdx +0 -4
  437. package/dist/docs/3d-scene/camera-based-hiding.mdx +0 -2
  438. package/dist/docs/3d-scene/cameras/custom.mdx +4 -4
  439. package/dist/docs/3d-scene/cameras/fit-during-drag.mdx +0 -4
  440. package/dist/docs/3d-scene/cameras/locks.mdx +0 -4
  441. package/dist/docs/3d-scene/cameras/transitions.mdx +0 -2
  442. package/dist/docs/3d-scene/engraving.mdx +0 -4
  443. package/dist/docs/3d-scene/materials/custom.mdx +0 -1
  444. package/dist/docs/3d-scene/materials/inherit.mdx +0 -4
  445. package/dist/docs/3d-scene/materials/multilevel.mdx +0 -47
  446. package/dist/docs/3d-scene/materials/override.mdx +0 -4
  447. package/dist/docs/3d-scene/materials/simple.mdx +0 -4
  448. package/dist/docs/3d-scene/materials/transformer.mdx +0 -4
  449. package/dist/docs/3d-scene/materials/transition.mdx +0 -4
  450. package/dist/docs/3d-scene/materials/transmissive.mdx +0 -4
  451. package/dist/docs/3d-scene/postprocessing.mdx +0 -2
  452. package/dist/docs/3d-scene/rendering/basic.mdx +0 -4
  453. package/dist/docs/3d-scene/rendering/custom-entity.mdx +0 -6
  454. package/dist/docs/3d-scene/rendering/lights/ambient-light.mdx +0 -2
  455. package/dist/docs/3d-scene/rendering/lights/directional-light.mdx +0 -2
  456. package/dist/docs/3d-scene/rendering/lights/point-light.mdx +0 -2
  457. package/dist/docs/3d-scene/rendering/lights/rect-area-light.mdx +0 -2
  458. package/dist/docs/3d-scene/rendering/lights/spot-light.mdx +0 -2
  459. package/dist/docs/3d-scene/rendering/object-groups.mdx +0 -2
  460. package/dist/docs/3d-scene/rendering/objects.mdx +0 -4
  461. package/dist/docs/3d-scene/rendering/scene-entity-object.mdx +0 -43
  462. package/dist/docs/3d-scene/rendering/smma.mdx +0 -2
  463. package/dist/docs/3d-scene/rendering/soft-shadows.mdx +0 -2
  464. package/dist/docs/3d-scene/rendering/transformer.mdx +0 -2
  465. package/dist/docs/complex-use-cases/custom-ui-on-root-level.mdx +0 -1
  466. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +19 -19
  467. package/dist/docs/complex-use-cases/navigation-guard.mdx +81 -19
  468. package/dist/docs/complex-use-cases/navigation-reset-selection.mdx +28 -65
  469. package/dist/docs/complex-use-cases/navigation-reset-undo.mdx +16 -20
  470. package/dist/docs/complex-use-cases/sketching.mdx +0 -8
  471. package/dist/docs/controls/custom.mdx +88 -87
  472. package/dist/docs/controls/manage-child-entities/entitychildrenlist.mdx +0 -4
  473. package/dist/docs/controls/nullable-attributes.mdx +0 -2
  474. package/dist/docs/controls/scene/custom-controls.mdx +7 -8
  475. package/dist/docs/controls/scene/html-hotspots.mdx +0 -4
  476. package/dist/docs/controls/scene/object-html-hotspots.mdx +0 -4
  477. package/dist/docs/controls/select-attribute/cardselect.mdx +0 -4
  478. package/dist/docs/controls/select-attribute/listselect.mdx +0 -4
  479. package/dist/docs/controls/select-attribute/select.mdx +0 -4
  480. package/dist/docs/controls/select-attribute/swatchselect.mdx +0 -4
  481. package/dist/docs/controls/select-attribute/switchselect.mdx +0 -4
  482. package/dist/docs/controls/select-attribute/toggleselect.mdx +0 -4
  483. package/dist/docs/controls/select-child-entity/cardselect.mdx +2 -6
  484. package/dist/docs/controls/select-child-entity/listselect.mdx +5 -11
  485. package/dist/docs/controls/select-child-entity/toggleselect.mdx +4 -10
  486. package/dist/docs/controls/text-input.mdx +90 -19
  487. package/dist/docs/demos/glass.mdx +0 -4
  488. package/dist/docs/demos/heater.mdx +0 -10
  489. package/dist/docs/demos/office-chair.mdx +0 -8
  490. package/dist/docs/demos/office-desk.mdx +0 -8
  491. package/dist/docs/demos/ring.mdx +0 -9
  492. package/dist/docs/dimensions/3d-scene-integration/angle-indicators.mdx +0 -2
  493. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +0 -2
  494. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +0 -2
  495. package/dist/docs/dimensions/3d-scene-integration/editable-offset-indicator.mdx +0 -6
  496. package/dist/docs/dimensions/3d-scene-integration/editable-size-indicator.mdx +0 -4
  497. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +0 -4
  498. package/dist/docs/dimensions/3d-scene-integration/offset-indicator.mdx +0 -6
  499. package/dist/docs/dimensions/3d-scene-integration/overlap-offset-demo.mdx +0 -6
  500. package/dist/docs/dimensions/input-controls/distance-slider.mdx +6 -6
  501. package/dist/docs/dimensions/selection-controls/list-selector.mdx +0 -2
  502. package/dist/docs/dimensions/selection-controls/toggle-selector.mdx +0 -2
  503. package/dist/docs/drag-and-drop/drag-handle.mdx +0 -1
  504. package/dist/docs/drag-and-drop/hotspot-handle.mdx +0 -1
  505. package/dist/docs/drag-and-drop/no-selection.mdx +0 -1
  506. package/dist/docs/drag-and-drop/planes.mdx +0 -3
  507. package/dist/docs/drag-and-drop/room-planner.mdx +1 -7
  508. package/dist/docs/drag-and-drop/rotatable.mdx +0 -1
  509. package/dist/docs/drag-and-drop/snapping/auto-rotation-demo.mdx +0 -2
  510. package/dist/docs/drag-and-drop/snapping/label-matching-demo.mdx +0 -2
  511. package/dist/docs/drag-and-drop/snapping/multi-snap-composition-demo.mdx +0 -2
  512. package/dist/docs/drag-and-drop/snapping/nested-entity-demo.mdx +0 -2
  513. package/dist/docs/drag-and-drop/snapping/priority-demo.mdx +0 -2
  514. package/dist/docs/drag-and-drop/snapping/snap-axis-demo.mdx +0 -2
  515. package/dist/docs/drag-and-drop/snapping/snap-edge-demo.mdx +0 -2
  516. package/dist/docs/drag-and-drop/snapping/snap-plane-demo.mdx +0 -5
  517. package/dist/docs/drag-and-drop/snapping/snap-point-demo.mdx +0 -2
  518. package/dist/docs/drag-and-drop/spatial-constraints/collision-system.mdx +0 -2
  519. package/dist/docs/drag-and-drop/spatial-constraints/disjoint-and-within.mdx +0 -6
  520. package/dist/docs/drag-and-drop/spatial-constraints/geometry-override.mdx +0 -4
  521. package/dist/docs/drag-and-drop/spatial-constraints/multiple-collision-meshes.mdx +0 -4
  522. package/dist/docs/drag-and-drop/spatial-constraints/touches.mdx +0 -4
  523. package/dist/docs/drag-and-drop/swap.mdx +0 -4
  524. package/dist/docs/fabs/basic.mdx +8 -12
  525. package/dist/docs/fabs/layout.mdx +0 -7
  526. package/dist/docs/index.json +4 -4
  527. package/dist/docs/integrations/lifecycle-providers.mdx +0 -12
  528. package/dist/docs/integrations/onloadprovider.mdx +0 -3
  529. package/dist/docs/integrations/webcomponent-api/basics.mdx +2 -2
  530. package/dist/docs/integrations/webcomponent-api/preset-tags.mdx +0 -1
  531. package/dist/docs/layouts/custom-layout.mdx +1 -41
  532. package/dist/docs/layouts/custom-price.mdx +0 -2
  533. package/dist/docs/layouts/custom-theme-handler.mdx +0 -4
  534. package/dist/docs/layouts/gallery/ardent-compressor.mdx +3 -34
  535. package/dist/docs/layouts/gallery/corvid-drone.mdx +0 -29
  536. package/dist/docs/layouts/gallery/fenwick-window.mdx +0 -25
  537. package/dist/docs/layouts/gallery/ferrule-bar-station.mdx +0 -27
  538. package/dist/docs/layouts/gallery/kestrel-kettle.mdx +0 -29
  539. package/dist/docs/layouts/gallery/nightjar-guitar.mdx +2 -35
  540. package/dist/docs/layouts/gallery/sunfold-solar.mdx +0 -26
  541. package/dist/docs/layouts/gallery/tidepool-aquascape.mdx +0 -46
  542. package/dist/docs/layouts/header/custom.mdx +0 -2
  543. package/dist/docs/layouts/icon-sets.mdx +0 -6
  544. package/dist/docs/layouts/phoenix-elements.mdx +0 -4
  545. package/dist/docs/layouts/phoenix-handlers.mdx +19 -28
  546. package/dist/docs/layouts/presets/action-and-overlay.mdx +0 -8
  547. package/dist/docs/layouts/presets/custom.mdx +6 -13
  548. package/dist/docs/layouts/preview/always-expand.mdx +4 -14
  549. package/dist/docs/layouts/preview/always.mdx +4 -14
  550. package/dist/docs/layouts/preview/auto-presets.mdx +4 -14
  551. package/dist/docs/layouts/preview/auto.mdx +4 -14
  552. package/dist/docs/layouts/preview/never.mdx +4 -14
  553. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +18 -13
  554. package/dist/docs/layouts/sidebar/property-page-stack.mdx +0 -2
  555. package/dist/docs/layouts/sidebar/property-page.mdx +0 -2
  556. package/dist/docs/layouts/sidebar/tabs.mdx +0 -4
  557. package/dist/docs/layouts/sidebar-footer/custom.mdx +0 -2
  558. package/dist/docs/layouts/sidebar-footer/universal.mdx +0 -10
  559. package/dist/docs/layouts/tool-controls.mdx +0 -1
  560. package/dist/docs/layouts/toolbar.mdx +0 -4
  561. package/dist/docs/layouts/universal.mdx +2 -10
  562. package/dist/docs/other-features/client-side-rendering/camera-padding.mdx +0 -2
  563. package/dist/docs/other-features/client-side-rendering/custom.mdx +0 -6
  564. package/dist/docs/other-features/client-side-rendering/declarative.mdx +0 -4
  565. package/dist/docs/other-features/client-side-rendering/postprocessing.mdx +0 -6
  566. package/dist/docs/other-features/component-filters.mdx +0 -7
  567. package/dist/docs/other-features/currency.mdx +5 -6
  568. package/dist/docs/other-features/domain-actions.mdx +0 -5
  569. package/dist/docs/other-features/dynamic-component-attachments.mdx +75 -46
  570. package/dist/docs/other-features/error-5xx.mdx +0 -2
  571. package/dist/docs/other-features/navigation-hotspot.mdx +0 -5
  572. package/dist/docs/other-features/not-found-404.mdx +0 -2
  573. package/dist/docs/other-features/projected-entities.mdx +0 -5
  574. package/dist/docs/other-features/side-effects.mdx +0 -7
  575. package/dist/docs/other-features/transformers.mdx +101 -96
  576. package/dist/docs/other-features/violation-messages.mdx +0 -4
  577. package/dist/docs/other-features/violation-severity.mdx +2 -3
  578. package/dist/docs/performance/clone-highlight.mdx +0 -7
  579. package/dist/docs/performance/dynamic-components.mdx +0 -6
  580. package/dist/docs/performance/editable-dimension-stress-test.mdx +0 -2
  581. package/dist/docs/performance/fast-highlight.mdx +0 -7
  582. package/dist/docs/performance/general.mdx +0 -7
  583. package/dist/docs/performance/render-isolation.mdx +0 -6
  584. package/dist/docs/phoenix/admin.mdx +75 -100
  585. package/dist/docs/phoenix/application-states.mdx +45 -27
  586. package/dist/docs/phoenix/components.mdx +53 -46
  587. package/dist/docs/phoenix/configurator-interface.mdx +197 -117
  588. package/dist/docs/phoenix/deployments.mdx +11 -1
  589. package/dist/docs/phoenix/domain-model.mdx +24 -16
  590. package/dist/docs/phoenix/expression-context.mdx +3 -29
  591. package/dist/docs/phoenix/getting-started.mdx +0 -2
  592. package/dist/docs/phoenix/layout-slots.mdx +21 -0
  593. package/dist/docs/phoenix/localization.mdx +64 -54
  594. package/dist/docs/phoenix/migration-guide.mdx +10 -11
  595. package/dist/docs/phoenix/phoenix-cli.mdx +57 -15
  596. package/dist/docs/phoenix/project-structure.mdx +51 -54
  597. package/dist/docs/phoenix/quickstart.mdx +1 -3
  598. package/dist/docs/phoenix/sdk-builder-workflow.mdx +7 -11
  599. package/dist/docs/phoenix/state-management.mdx +18 -16
  600. package/dist/docs/phoenix/testing.mdx +6 -1
  601. package/dist/docs/phoenix/webhooks.mdx +9 -1
  602. package/dist/docs/recipes-and-delete/delete-entity.mdx +3 -6
  603. package/dist/docs/recipes-and-delete/dynamic-root-entity.mdx +0 -2
  604. package/dist/docs/recipes-and-delete/grouped-button.mdx +0 -3
  605. package/dist/docs/recipes-and-delete/grouped-panel.mdx +0 -3
  606. package/dist/docs/recipes-and-delete/horizontal.mdx +3 -6
  607. package/dist/docs/recipes-and-delete/recipe-hierarchy-lists.mdx +0 -3
  608. package/dist/docs/recipes-and-delete/recipe-hierarchy-selection.mdx +0 -5
  609. package/dist/docs/recipes-and-delete/replace-dropdown.mdx +3 -6
  610. package/dist/docs/recipes-and-delete/replace-panel.mdx +0 -7
  611. package/dist/docs/recipes-and-delete/simple.mdx +3 -6
  612. package/dist/docs/recipes-and-delete/vertical.mdx +3 -6
  613. package/dist/docs/relations/aliases.mdx +0 -2
  614. package/dist/docs/relations/all-of-type.mdx +0 -4
  615. package/dist/docs/relations/child-nullable.mdx +0 -4
  616. package/dist/docs/relations/child-required.mdx +0 -2
  617. package/dist/docs/relations/collection-direct.mdx +0 -4
  618. package/dist/docs/relations/collection-indirect.mdx +0 -4
  619. package/dist/docs/relations/collection-multiple.mdx +0 -2
  620. package/dist/docs/relations/cross-reference.mdx +0 -2
  621. package/dist/docs/relations/hierarchy.mdx +0 -2
  622. package/dist/docs/selection-and-highlight/canvas.mdx +0 -1
  623. package/dist/docs/selection-and-highlight/disable-highlight-per-object.mdx +0 -1
  624. package/dist/docs/selection-and-highlight/disable-highlight.mdx +0 -1
  625. package/dist/docs/selection-and-highlight/effects/outline.mdx +0 -3
  626. package/dist/docs/selection-and-highlight/effects/overlay.mdx +0 -3
  627. package/dist/docs/selection-and-highlight/fast-emissive-highlight.mdx +0 -3
  628. package/dist/docs/selection-and-highlight/group-highlighting.mdx +0 -1
  629. package/dist/docs/selection-and-highlight/hierarchy.mdx +100 -151
  630. package/dist/docs/selection-and-highlight/hotspots.mdx +0 -1
  631. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +1 -1
  632. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  633. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  634. package/dist/domain/application/application-config.d.ts +6 -26
  635. package/dist/domain/application/assistant/assistant-fields.d.ts +1 -1
  636. package/dist/domain/application/assistant/assistant-value-type.d.ts +1 -1
  637. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +1 -2
  638. package/dist/domain/application/assistant/build-assistant-lenses.js +1 -1
  639. package/dist/domain/application/assistant/build-assistant-manifest.d.ts +1 -2
  640. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  641. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +1 -2
  642. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  643. package/dist/domain/application/assistant/index.d.ts +0 -4
  644. package/dist/domain/application/assistant/index.js +1 -1
  645. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +1 -1
  646. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +1 -1
  647. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
  648. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +3 -5
  649. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
  650. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +1 -2
  651. package/dist/domain/application/assistant-field-options.d.ts +1 -1
  652. package/dist/domain/application/assistant-mutations.d.ts +1 -1
  653. package/dist/domain/application/assistant-mutations.js +1 -1
  654. package/dist/domain/application/assistant-recipe-groups.d.ts +1 -1
  655. package/dist/domain/application/configurator-builder.d.ts +7 -2
  656. package/dist/domain/application/configurator-builder.js +1 -1
  657. package/dist/domain/application/create-initial-published-data.d.ts +2 -1
  658. package/dist/domain/application/index.d.ts +1 -1
  659. package/dist/domain/application/index.js +1 -1
  660. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  661. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  662. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  663. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  664. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  665. package/dist/domain/available-system-components/available-system-components.d.ts +11 -0
  666. package/dist/domain/available-system-components/available-system-components.js +1 -0
  667. package/dist/domain/available-system-components/index.d.ts +1 -0
  668. package/dist/domain/available-system-components/index.js +1 -0
  669. package/dist/domain/core/invariant/violation.d.ts +3 -2
  670. package/dist/domain/{domain-builder.d.ts → domain-builder/domain-builder.d.ts} +2 -2
  671. package/dist/domain/domain-builder/domain-builder.js +1 -0
  672. package/dist/domain/domain-builder/index.d.ts +1 -0
  673. package/dist/domain/domain-builder/index.js +1 -0
  674. package/dist/domain/domain-context/transformers/context.d.ts +4 -2
  675. package/dist/domain/domain-context/transformers/when-builder.d.ts +2 -1
  676. package/dist/domain/domain-runtime/application.d.ts +39 -0
  677. package/dist/domain/domain-runtime/application.js +1 -0
  678. package/dist/domain/domain-runtime/domain-runtime.d.ts +42 -28
  679. package/dist/domain/domain-runtime/domain-runtime.js +1 -1
  680. package/dist/domain/domain-runtime/environment/initialize.d.ts +1 -1
  681. package/dist/domain/domain-runtime/index.d.ts +1 -1
  682. package/dist/domain/domain-runtime/index.js +1 -1
  683. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +1 -1
  684. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -1
  685. package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
  686. package/dist/domain/domain-runtime/spec/index.js +1 -1
  687. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  688. package/dist/domain/domain-runtime/spec/{module-checks/resolve-imported-transformers.d.ts → resolve-imported-transformers.d.ts} +3 -3
  689. package/dist/domain/domain-runtime/spec/resolve-imported-transformers.js +1 -0
  690. package/dist/domain/domain-runtime/spec/selectors.d.ts +5 -5
  691. package/dist/domain/domain-runtime/spec/types.d.ts +2 -2
  692. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +6 -0
  693. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -1
  694. package/dist/domain/extensions/export-images/index.d.ts +1 -1
  695. package/dist/domain/extensions/export-images/index.js +1 -1
  696. package/dist/domain/extensions/index.d.ts +1 -1
  697. package/dist/domain/extensions/index.js +1 -1
  698. package/dist/domain/index.d.ts +15 -2
  699. package/dist/domain/index.js +1 -1
  700. package/dist/domain/mocks/create-test-application-config.d.ts +1 -1
  701. package/dist/domain/spec/application/admin-pages-section.d.ts +29 -0
  702. package/dist/domain/spec/application/admin-pages.d.ts +26 -0
  703. package/dist/domain/spec/application/admin-states.d.ts +5 -0
  704. package/dist/domain/spec/application/configurator-states.d.ts +8 -0
  705. package/dist/domain/spec/application/index.d.ts +5 -0
  706. package/dist/domain/spec/application/index.js +1 -0
  707. package/dist/domain/spec/components/bindings/index.d.ts +2 -0
  708. package/dist/domain/spec/components/bindings/index.js +1 -0
  709. package/dist/domain/spec/components/bindings/read-binding.d.ts +13 -0
  710. package/dist/domain/spec/components/bindings/read-binding.js +1 -0
  711. package/dist/domain/spec/components/bindings/write-binding.d.ts +32 -0
  712. package/dist/domain/spec/components/bindings/write-binding.js +1 -0
  713. package/dist/{application-spec/parse-application-files → domain}/spec/components/component-entry.d.ts +3 -3
  714. package/dist/domain/spec/components/component-entry.js +1 -0
  715. package/dist/{application-spec/core → domain/spec}/components/component-filter.d.ts +3 -2
  716. package/dist/domain/spec/components/component-filters.d.ts +10 -0
  717. package/dist/domain/spec/components/component-filters.js +1 -0
  718. package/dist/domain/spec/components/components.d.ts +4 -0
  719. package/dist/domain/spec/components/components.js +1 -0
  720. package/dist/domain/spec/components/index.d.ts +6 -0
  721. package/dist/domain/spec/enhanced-json/enhanced-json-value.d.ts +30 -0
  722. package/dist/domain/spec/enhanced-json/enhanced-json-value.js +1 -0
  723. package/dist/domain/spec/enhanced-json/index.d.ts +1 -0
  724. package/dist/domain/spec/enhanced-json/index.js +1 -0
  725. package/dist/{application-spec/parse-application-files → domain}/spec/expressions/expression.d.ts +9 -3
  726. package/dist/domain/spec/expressions/expression.js +1 -0
  727. package/dist/domain/spec/expressions/expressions.d.ts +27 -0
  728. package/dist/domain/spec/expressions/expressions.js +1 -0
  729. package/dist/domain/spec/expressions/index.d.ts +5 -0
  730. package/dist/domain/spec/expressions/memo-eval-plan.d.ts +70 -0
  731. package/dist/domain/spec/expressions/memo-eval-plan.js +1 -0
  732. package/dist/domain/spec/expressions/relation-expression-params.js +1 -0
  733. package/dist/domain/spec/index.d.ts +4 -0
  734. package/dist/domain/spec/index.js +1 -0
  735. package/dist/domain/spec/invariants/index.d.ts +2 -0
  736. package/dist/domain/spec/invariants/index.js +1 -0
  737. package/dist/domain/spec/invariants/invariant.d.ts +24 -0
  738. package/dist/domain/spec/invariants/invariant.js +1 -0
  739. package/dist/domain/spec/invariants/invariants.d.ts +14 -0
  740. package/dist/domain/spec/invariants/invariants.js +1 -0
  741. package/dist/domain/spec/json-schema.d.ts +52 -0
  742. package/dist/domain/spec/json-schema.js +1 -0
  743. package/dist/domain/spec/markers/index.d.ts +3 -0
  744. package/dist/domain/spec/markers/index.js +1 -0
  745. package/dist/domain/spec/markers/msg-marker.d.ts +28 -0
  746. package/dist/domain/spec/markers/msg-marker.js +1 -0
  747. package/dist/domain/spec/model/aliases.d.ts +9 -0
  748. package/dist/domain/spec/model/aliases.js +1 -0
  749. package/dist/domain/spec/model/common-types.d.ts +15 -0
  750. package/dist/domain/spec/model/common-types.js +1 -0
  751. package/dist/domain/spec/model/defaults.d.ts +33 -0
  752. package/dist/domain/spec/model/defaults.js +1 -0
  753. package/dist/domain/spec/model/entity-types.d.ts +8 -0
  754. package/dist/domain/spec/model/entity-types.js +1 -0
  755. package/dist/domain/spec/model/index.d.ts +7 -0
  756. package/dist/domain/spec/model/index.js +1 -0
  757. package/dist/domain/spec/model/model-version-key.d.ts +3 -0
  758. package/dist/domain/spec/model/model-version-key.js +1 -0
  759. package/dist/domain/spec/model/names/action-name.d.ts +7 -0
  760. package/dist/domain/spec/model/names/action-name.js +1 -0
  761. package/dist/domain/spec/model/names/alias-name.d.ts +7 -0
  762. package/dist/domain/spec/model/names/alias-name.js +1 -0
  763. package/dist/domain/spec/model/names/entity-or-alias-name.d.ts +8 -0
  764. package/dist/domain/spec/model/names/entity-or-alias-name.js +1 -0
  765. package/dist/domain/spec/model/names/entity-type-name.d.ts +8 -0
  766. package/dist/domain/spec/model/names/entity-type-name.js +1 -0
  767. package/dist/domain/spec/model/names/expression-name.d.ts +6 -0
  768. package/dist/domain/spec/model/names/expression-name.js +1 -0
  769. package/dist/domain/spec/model/names/index.d.ts +9 -0
  770. package/dist/domain/spec/model/names/index.js +1 -0
  771. package/dist/domain/spec/model/names/instance-name.d.ts +7 -0
  772. package/dist/domain/spec/model/names/instance-name.js +1 -0
  773. package/dist/domain/spec/model/names/invariant-name.d.ts +3 -0
  774. package/dist/domain/spec/model/names/invariant-name.js +1 -0
  775. package/dist/domain/spec/model/names/shape-property-name.d.ts +11 -0
  776. package/dist/domain/spec/model/names/shape-property-name.js +1 -0
  777. package/dist/domain/spec/model/names/violation-type-name.d.ts +3 -0
  778. package/dist/domain/spec/model/names/violation-type-name.js +1 -0
  779. package/dist/domain/spec/model/presets.d.ts +30 -0
  780. package/dist/domain/spec/model/presets.js +1 -0
  781. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/element-registration.d.ts +1 -1
  782. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/find-assistant-form-element-errors.d.ts +1 -1
  783. package/dist/domain/spec/modules/find-assistant-form-element-errors.js +1 -0
  784. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/index.d.ts +2 -3
  785. package/dist/domain/spec/modules/index.js +1 -0
  786. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/merge-expression-modules.d.ts +2 -2
  787. package/dist/domain/spec/modules/merge-expression-modules.js +1 -0
  788. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/project-modules.d.ts +1 -1
  789. package/dist/domain/spec/modules/project-modules.js +1 -0
  790. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-action-modules.d.ts +1 -1
  791. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-component-optic-modules.d.ts +1 -1
  792. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-expression-modules.d.ts +1 -1
  793. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-invariant-modules.d.ts +1 -1
  794. package/dist/domain/spec/phx/index.d.ts +1 -0
  795. package/dist/domain/spec/phx/index.js +1 -0
  796. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-application-types.d.ts +1 -1
  797. package/dist/domain/spec/phx/phx-application-types.js +1 -0
  798. package/dist/domain/spec/phx/phx-domain.js +1 -0
  799. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-model.d.ts +2 -2
  800. package/dist/domain/spec/phx/phx-model.js +1 -0
  801. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx.d.ts +1 -2
  802. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/admin-runtime.d.ts +9 -6
  803. package/dist/domain/spec/runtime/admin-runtime/admin-runtime.js +1 -0
  804. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/admin-spec-runtime.d.ts +2 -2
  805. package/dist/domain/spec/runtime/admin-runtime/admin-spec-runtime.js +1 -0
  806. package/dist/domain/spec/runtime/admin-runtime/index.d.ts +2 -0
  807. package/dist/domain/spec/runtime/admin-runtime/index.js +1 -0
  808. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/states-runtime.d.ts +1 -1
  809. package/dist/{application-spec/generate-application → domain/spec}/runtime/application-runtime.d.ts +13 -6
  810. package/dist/domain/spec/runtime/application-runtime.js +1 -0
  811. package/dist/{application-spec/generate-application → domain/spec}/runtime/application-spec-slice.d.ts +5 -2
  812. package/dist/domain/spec/runtime/application-spec-slice.js +1 -0
  813. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/configurator-runtime.d.ts +10 -10
  814. package/dist/domain/spec/runtime/configurator-runtime/configurator-runtime.js +1 -0
  815. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/configurator-spec-runtime.d.ts +2 -2
  816. package/dist/domain/spec/runtime/configurator-runtime/configurator-spec-runtime.js +1 -0
  817. package/dist/domain/spec/runtime/configurator-runtime/index.d.ts +2 -0
  818. package/dist/domain/spec/runtime/configurator-runtime/index.js +1 -0
  819. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/states-runtime.d.ts +1 -1
  820. package/dist/domain/spec/runtime/create-application.d.ts +58 -0
  821. package/dist/domain/spec/runtime/create-application.js +1 -0
  822. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/expression-runtime.d.ts +5 -3
  823. package/dist/domain/spec/runtime/expressions/expression-runtime.js +1 -0
  824. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/generate-memo-eval-plan-runtime.d.ts +2 -2
  825. package/dist/domain/spec/runtime/expressions/generate-memo-eval-plan-runtime.js +1 -0
  826. package/dist/domain/spec/runtime/expressions/index.d.ts +3 -0
  827. package/dist/domain/spec/runtime/expressions/index.js +1 -0
  828. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/reflection-constants-runtime.d.ts +2 -1
  829. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/factory-data-runtime.d.ts +4 -3
  830. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/recipe-defaults.d.ts +1 -1
  831. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/recipe-defaults.js +1 -1
  832. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/static-violations.d.ts +2 -2
  833. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/static-violations.js +1 -1
  834. package/dist/{application-spec/generate-application → domain/spec}/runtime/generate-runtime-instance.d.ts +1 -1
  835. package/dist/domain/spec/runtime/generate-runtime-instance.js +1 -0
  836. package/dist/domain/spec/runtime/index.d.ts +13 -0
  837. package/dist/domain/spec/runtime/index.js +1 -0
  838. package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/migration-runtime.d.ts +2 -2
  839. package/dist/domain/spec/runtime/migrations/migration-runtime.js +1 -0
  840. package/dist/{application-spec/generate-application/runtime/admin-runtime → domain/spec/runtime/model}/admin-model-runtime.d.ts +4 -3
  841. package/dist/domain/spec/runtime/model/admin-model-runtime.js +1 -0
  842. package/dist/{application-spec/generate-application/runtime/configurator-runtime → domain/spec/runtime/model}/configurator-model-runtime.d.ts +4 -3
  843. package/dist/domain/spec/runtime/model/configurator-model-runtime.js +1 -0
  844. package/dist/domain/spec/runtime/model/index.d.ts +2 -0
  845. package/dist/domain/spec/runtime/model/index.js +1 -0
  846. package/dist/domain/spec/runtime/optics/build-sdk-optic.d.ts +7 -0
  847. package/dist/domain/spec/runtime/optics/build-sdk-optic.js +1 -0
  848. package/dist/domain/spec/runtime/optics/build-user-bound-optic.d.ts +7 -0
  849. package/dist/domain/spec/runtime/optics/build-user-bound-optic.js +1 -0
  850. package/dist/domain/spec/runtime/optics/built-component-optic.d.ts +11 -0
  851. package/dist/domain/spec/runtime/optics/built-component-optic.js +1 -0
  852. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/optics}/component-optic.d.ts +4 -14
  853. package/dist/domain/spec/runtime/optics/index.d.ts +2 -0
  854. package/dist/domain/spec/runtime/optics/index.js +1 -0
  855. package/dist/{application-spec/caching → domain/spec/runtime}/runtime-reference-store.d.ts +1 -5
  856. package/dist/domain/spec/runtime/runtime-reference-store.js +1 -0
  857. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/actions-runtime.d.ts +3 -3
  858. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/assistant-runtime.d.ts +2 -2
  859. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/data-runtime.d.ts +1 -1
  860. package/dist/domain/spec/runtime/sections/index.d.ts +6 -0
  861. package/dist/domain/spec/runtime/sections/index.js +1 -0
  862. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/preset-runtime.d.ts +4 -4
  863. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/theme-runtime.d.ts +1 -1
  864. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/transformers-runtime.d.ts +2 -2
  865. package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/resolve-spec-code.d.ts +1 -1
  866. package/dist/domain/spec/runtime/spec-code/spec-code-module.js +1 -0
  867. package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-runtime.d.ts +3 -3
  868. package/dist/domain/spec/runtime/spec-runtime.js +1 -0
  869. package/dist/domain/spec/runtime-spec/index.d.ts +4 -0
  870. package/dist/domain/spec/runtime-spec/index.js +1 -0
  871. package/dist/domain/spec/runtime-spec/runtime-spec.d.ts +174 -0
  872. package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/spec-code-id.d.ts +1 -1
  873. package/dist/domain/spec/sections/actions.d.ts +23 -0
  874. package/dist/domain/spec/sections/actions.js +1 -0
  875. package/dist/domain/spec/sections/app-metadata.d.ts +18 -0
  876. package/dist/domain/spec/sections/app-metadata.js +1 -0
  877. package/dist/domain/spec/sections/application-version.d.ts +7 -0
  878. package/dist/domain/spec/sections/application-version.js +1 -0
  879. package/dist/domain/{application → spec/sections}/assistant/assistant-manifest.d.ts +13 -3
  880. package/dist/domain/{application → spec/sections}/assistant/assistant-resolved-manifest.d.ts +5 -9
  881. package/dist/domain/spec/sections/assistant/assistant-resolved-manifest.js +1 -0
  882. package/dist/domain/spec/sections/assistant/index.d.ts +4 -0
  883. package/dist/domain/spec/sections/assistant/index.js +1 -0
  884. package/dist/domain/spec/sections/data-spec/chunks.d.ts +23 -0
  885. package/dist/domain/spec/sections/data-spec/chunks.js +1 -0
  886. package/dist/domain/spec/sections/data-spec/custom-data-spec-entry.d.ts +16 -0
  887. package/dist/domain/spec/sections/data-spec/custom-data-spec-entry.js +1 -0
  888. package/dist/domain/spec/sections/data-spec/data-entry-key.d.ts +9 -0
  889. package/dist/domain/spec/sections/data-spec/data-entry-key.js +1 -0
  890. package/dist/domain/spec/sections/data-spec/index.d.ts +5 -0
  891. package/dist/domain/spec/sections/data-spec/index.js +1 -0
  892. package/dist/domain/spec/sections/data-spec/parsed-data-spec-entries.d.ts +10 -0
  893. package/dist/domain/spec/sections/data-spec/parsed-data-spec-entries.js +1 -0
  894. package/dist/domain/spec/sections/data-spec/swatch-data-spec-entry.d.ts +14 -0
  895. package/dist/domain/spec/sections/data-spec/swatch-data-spec-entry.js +1 -0
  896. package/dist/domain/spec/sections/index.d.ts +10 -0
  897. package/dist/domain/spec/sections/index.js +1 -0
  898. package/dist/domain/spec/sections/infra/acl.d.ts +12 -0
  899. package/dist/domain/spec/sections/infra/acl.js +1 -0
  900. package/dist/domain/spec/sections/infra/index.d.ts +3 -0
  901. package/dist/domain/spec/sections/infra/index.js +1 -0
  902. package/dist/domain/spec/sections/infra/resource-entry.d.ts +46 -0
  903. package/dist/domain/spec/sections/infra/resource-entry.js +1 -0
  904. package/dist/domain/spec/sections/infra/resources-config.d.ts +10 -0
  905. package/dist/domain/spec/sections/infra/resources-config.js +1 -0
  906. package/dist/domain/spec/sections/state-value.d.ts +7 -0
  907. package/dist/domain/spec/sections/state-value.js +1 -0
  908. package/dist/domain/spec/sections/theme.d.ts +10 -0
  909. package/dist/domain/spec/sections/theme.js +1 -0
  910. package/dist/domain/spec/sections/transformers.d.ts +15 -0
  911. package/dist/domain/spec/sections/transformers.js +1 -0
  912. package/dist/domain/spec/sections/ui.d.ts +12 -0
  913. package/dist/domain/spec/sections/ui.js +1 -0
  914. package/dist/domain/system-components/phoenix-entity-elements/child-entity-card-selector.d.ts +2 -3
  915. package/dist/domain/system-components/phoenix-entity-elements/child-entity-list-selector.d.ts +2 -3
  916. package/dist/domain/system-components/phoenix-entity-elements/child-entity-toggle-selector.d.ts +2 -3
  917. package/dist/domain/system-definitions.js +1 -1
  918. package/dist/domain/utils/index.d.ts +2 -0
  919. package/dist/domain/utils/index.js +1 -0
  920. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  921. package/dist/i18n/locales/cs/messages.js +1 -1
  922. package/dist/i18n/locales/da/messages.js +1 -1
  923. package/dist/i18n/locales/de/messages.js +1 -1
  924. package/dist/i18n/locales/de-AT/messages.js +1 -1
  925. package/dist/i18n/locales/en/messages.js +1 -1
  926. package/dist/i18n/locales/en-AU/messages.js +1 -1
  927. package/dist/i18n/locales/en-GB/messages.js +1 -1
  928. package/dist/i18n/locales/es/messages.js +1 -1
  929. package/dist/i18n/locales/fr/messages.js +1 -1
  930. package/dist/i18n/locales/hu/messages.js +1 -1
  931. package/dist/i18n/locales/it/messages.js +1 -1
  932. package/dist/i18n/locales/nl/messages.js +1 -1
  933. package/dist/i18n/locales/pl/messages.js +1 -1
  934. package/dist/i18n/locales/pt/messages.js +1 -1
  935. package/dist/i18n/locales/ro/messages.js +1 -1
  936. package/dist/i18n/locales/sk/messages.js +1 -1
  937. package/dist/i18n/locales/tr/messages.js +1 -1
  938. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +2 -2
  939. package/dist/legacy/phoenix-cli/services/webhook-service/transport.js +1 -1
  940. package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.d.ts +1 -0
  941. package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.js +1 -1
  942. package/dist/legacy/webhook-cli/lambda-local/index.js +1 -1
  943. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  944. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +1 -0
  945. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  946. package/dist/phoenix/application-spec/generate-project-files.d.ts +1 -0
  947. package/dist/phoenix/application-spec/index.d.ts +2 -0
  948. package/dist/phoenix/application-spec/index.js +1 -1
  949. package/dist/phoenix/application-spec/project-files.d.ts +8 -2
  950. package/dist/phoenix/application-spec/project-files.js +1 -1
  951. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +11 -0
  952. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  953. package/dist/phoenix/bin.js +1 -1
  954. package/dist/phoenix/cli.js +1 -1
  955. package/dist/phoenix/commands/activate-deployment.js +1 -1
  956. package/dist/phoenix/commands/build.js +1 -1
  957. package/dist/phoenix/commands/changelog.js +1 -1
  958. package/dist/phoenix/commands/check.js +1 -1
  959. package/dist/phoenix/commands/clean.js +1 -1
  960. package/dist/phoenix/commands/cleanup-environment.js +2 -2
  961. package/dist/phoenix/commands/create-environment.js +1 -1
  962. package/dist/phoenix/commands/data.js +1 -1
  963. package/dist/phoenix/commands/deploy.js +1 -1
  964. package/dist/phoenix/commands/deployment-build-envs-command.js +1 -1
  965. package/dist/phoenix/commands/dev.js +4 -5
  966. package/dist/phoenix/commands/docs.js +1 -1
  967. package/dist/phoenix/commands/finish-deployment-command.js +1 -1
  968. package/dist/phoenix/commands/fix.js +1 -1
  969. package/dist/phoenix/commands/index.d.ts +1 -1
  970. package/dist/phoenix/commands/index.js +1 -1
  971. package/dist/phoenix/commands/inspect-assets.js +1 -1
  972. package/dist/phoenix/commands/list-environments.js +1 -1
  973. package/dist/phoenix/commands/login.d.ts +4 -1
  974. package/dist/phoenix/commands/login.js +2 -2
  975. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  976. package/dist/phoenix/commands/register-deployment.js +1 -1
  977. package/dist/phoenix/commands/scene.js +1 -1
  978. package/dist/phoenix/commands/screenshot.js +1 -1
  979. package/dist/phoenix/commands/state.js +1 -1
  980. package/dist/phoenix/commands/story-build.js +3 -3
  981. package/dist/phoenix/commands/story-create.js +1 -1
  982. package/dist/phoenix/commands/story-dev.js +2 -2
  983. package/dist/phoenix/commands/sync.js +1 -1
  984. package/dist/phoenix/commands/variants.js +1 -1
  985. package/dist/phoenix/editor-server/commands-router.js +1 -1
  986. package/dist/phoenix/editor-server/editor-server.d.ts +2 -13
  987. package/dist/phoenix/editor-server/editor-server.js +1 -1
  988. package/dist/phoenix/editor-server/spec-router.js +1 -1
  989. package/dist/phoenix/editor-server/trpc.d.ts +2 -12
  990. package/dist/phoenix/lingui/index.d.ts +1 -0
  991. package/dist/phoenix/lingui/index.js +1 -0
  992. package/dist/phoenix/lingui/lingui.d.ts +18 -0
  993. package/dist/phoenix/lingui/lingui.js +1 -0
  994. package/dist/phoenix/scripts/docs-utils.js +1 -1
  995. package/dist/phoenix/services/application-spec-project-watcher.d.ts +11 -6
  996. package/dist/phoenix/services/application-spec-project-watcher.js +2 -2
  997. package/dist/phoenix/services/cli-credentials.d.ts +3 -0
  998. package/dist/phoenix/services/cli-credentials.js +1 -1
  999. package/dist/phoenix/services/cli-exit.d.ts +5 -0
  1000. package/dist/phoenix/services/cli-exit.js +1 -0
  1001. package/dist/phoenix/services/deployment/deployment-preparation-service.d.ts +28 -0
  1002. package/dist/phoenix/services/deployment/deployment-preparation-service.js +1 -0
  1003. package/dist/phoenix/{commands → services/deployment}/generated-env-markers.d.ts +1 -0
  1004. package/dist/phoenix/services/deployment/generated-env-markers.js +1 -0
  1005. package/dist/phoenix/services/deployment/index.d.ts +2 -0
  1006. package/dist/phoenix/services/deployment/index.js +1 -0
  1007. package/dist/phoenix/services/index.d.ts +5 -1
  1008. package/dist/phoenix/services/index.js +1 -1
  1009. package/dist/phoenix/services/lingui-watcher.js +1 -1
  1010. package/dist/phoenix/services/phoenix-store.d.ts +3 -0
  1011. package/dist/phoenix/services/phoenix-store.js +1 -1
  1012. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  1013. package/dist/phoenix/services/session/editor-server-handle.d.ts +5 -0
  1014. package/dist/phoenix/services/session/editor-server-handle.js +1 -0
  1015. package/dist/phoenix/services/session/index.d.ts +2 -0
  1016. package/dist/phoenix/services/session/index.js +1 -0
  1017. package/dist/phoenix/services/session/phoenix-application.d.ts +82 -0
  1018. package/dist/phoenix/services/session/phoenix-application.js +2 -0
  1019. package/dist/phoenix/services/source-archive.d.ts +2 -0
  1020. package/dist/phoenix/services/source-archive.js +1 -1
  1021. package/dist/phoenix/services/swc.d.ts +5 -4
  1022. package/dist/phoenix/services/swc.js +2 -2
  1023. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.d.ts +9 -0
  1024. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.js +1 -0
  1025. package/dist/phoenix/services/telemetry/index.d.ts +3 -0
  1026. package/dist/phoenix/services/telemetry/index.js +1 -0
  1027. package/dist/phoenix/services/telemetry/telemetry-client.d.ts +25 -0
  1028. package/dist/phoenix/services/telemetry/telemetry-client.js +1 -0
  1029. package/dist/phoenix/services/telemetry/telemetry-command.d.ts +2 -0
  1030. package/dist/phoenix/services/telemetry/telemetry-command.js +1 -0
  1031. package/dist/phoenix/services/telemetry/telemetry-event.d.ts +44 -0
  1032. package/dist/phoenix/services/telemetry/telemetry-event.js +1 -0
  1033. package/dist/phoenix/services/telemetry/telemetry-state.d.ts +25 -0
  1034. package/dist/phoenix/services/telemetry/telemetry-state.js +2 -0
  1035. package/dist/phoenix/services/vite-config.js +1 -1
  1036. package/dist/phoenix/services/webhook-service/transport.js +1 -1
  1037. package/dist/phoenix/services/webhook-service/tunnel.d.ts +1 -0
  1038. package/dist/phoenix/services/webhook-service/tunnel.js +1 -1
  1039. package/dist/react-sdk/application-runtime/common-services/analytics/analytics-service.d.ts +1 -1
  1040. package/dist/react-sdk/application-runtime/common-services/initialize.d.ts +2 -2
  1041. package/dist/react-sdk/application-runtime/domain-application-context/chat-system.d.ts +1 -1
  1042. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +17 -6
  1043. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  1044. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/ConfiguratorRoutingProvider.d.ts +1 -1
  1045. package/dist/react-sdk/configurator-routing/ConfiguratorRoutingProvider.js +1 -0
  1046. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/OnGoToIndexHandler.d.ts +1 -2
  1047. package/dist/react-sdk/configurator-routing/OnGoToIndexHandler.js +1 -0
  1048. package/dist/react-sdk/configurator-routing/index.d.ts +3 -0
  1049. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/index.js +1 -1
  1050. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/use-power-routing-lifecycle.d.ts +2 -0
  1051. package/dist/react-sdk/configurator-routing/use-power-routing-lifecycle.js +1 -0
  1052. package/dist/react-sdk/configurator-ui-elements/ConfiguratorUiElementHost.d.ts +7 -0
  1053. package/dist/react-sdk/configurator-ui-elements/ConfiguratorUiElementHost.js +1 -0
  1054. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackElement.d.ts +14 -0
  1055. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackElement.js +1 -0
  1056. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackPropsProvider.d.ts +18 -0
  1057. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackPropsProvider.js +1 -0
  1058. package/dist/react-sdk/configurator-ui-elements/PlainErrorFallback.d.ts +5 -0
  1059. package/dist/react-sdk/configurator-ui-elements/PlainErrorFallback.js +1 -0
  1060. package/dist/react-sdk/configurator-ui-elements/configurator-ui-element.d.ts +17 -0
  1061. package/dist/react-sdk/configurator-ui-elements/configurator-ui-element.js +1 -0
  1062. package/dist/react-sdk/configurator-ui-elements/create-configurator-ui-element.d.ts +5 -0
  1063. package/dist/react-sdk/configurator-ui-elements/create-configurator-ui-element.js +1 -0
  1064. package/dist/react-sdk/configurator-ui-elements/index.d.ts +6 -0
  1065. package/dist/react-sdk/configurator-ui-elements/index.js +1 -0
  1066. package/dist/react-sdk/domain-application-context/BackendDataProvider.js +1 -1
  1067. package/dist/react-sdk/domain-application-context/ConfigurationPersistSystemFailureHandler.js +1 -1
  1068. package/dist/react-sdk/domain-application-context/FrontendDataProvider.js +1 -1
  1069. package/dist/react-sdk/domain-application-context/OnPresetLoadedHandler.js +1 -0
  1070. package/dist/react-sdk/domain-application-context/PublishedDataProvider.js +1 -1
  1071. package/dist/react-sdk/domain-application-context/chat-hooks.d.ts +4 -0
  1072. package/dist/react-sdk/domain-application-context/chat-hooks.js +1 -0
  1073. package/dist/react-sdk/domain-application-context/index.d.ts +2 -0
  1074. package/dist/react-sdk/domain-application-context/index.js +1 -1
  1075. package/dist/react-sdk/domain-context/common-hooks/use-state-validity.d.ts +7 -1
  1076. package/dist/react-sdk/domain-controls/ChildEntityCardSelector.d.ts +2 -3
  1077. package/dist/react-sdk/domain-controls/ChildEntityListSelector.d.ts +2 -3
  1078. package/dist/react-sdk/domain-controls/ChildEntityToggleSelector.d.ts +2 -3
  1079. package/dist/react-sdk/domain-controls/hooks/use-cook-replace-recipes.d.ts +2 -2
  1080. package/dist/react-sdk/elements/PhoenixEntityElement.js +1 -1
  1081. package/dist/react-sdk/elements/PhoenixLayoutElement.js +1 -1
  1082. package/dist/react-sdk/index.d.ts +7 -0
  1083. package/dist/react-sdk/index.js +1 -1
  1084. package/dist/react-sdk/integration/IntegrationSubscription.js +1 -0
  1085. package/dist/react-sdk/integration/index.d.ts +1 -0
  1086. package/dist/react-sdk/integration/index.js +1 -0
  1087. package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.d.ts +8 -0
  1088. package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.js +1 -0
  1089. package/dist/react-sdk/lifecycle-providers/LifecycleProviders.js +1 -0
  1090. package/dist/react-sdk/lifecycle-providers/index.d.ts +2 -0
  1091. package/dist/react-sdk/lifecycle-providers/index.js +1 -0
  1092. package/dist/react-sdk/notifications/index.d.ts +1 -0
  1093. package/dist/react-sdk/notifications/index.js +1 -0
  1094. package/dist/react-sdk/notifications/snackbar-action-button.d.ts +30 -0
  1095. package/dist/react-sdk/notifications/snackbar-action-button.js +1 -0
  1096. package/dist/react-sdk/preset-selection/PresetSelectionProvider.js +1 -0
  1097. package/dist/react-sdk/preset-selection/index.d.ts +1 -0
  1098. package/dist/react-sdk/preset-selection/index.js +1 -0
  1099. package/dist/react-sdk/provider-slots/ConfiguratorProviderSlotHost.d.ts +11 -0
  1100. package/dist/react-sdk/provider-slots/ConfiguratorProviderSlotHost.js +1 -0
  1101. package/dist/react-sdk/provider-slots/configurator-provider-slot.d.ts +24 -0
  1102. package/dist/react-sdk/provider-slots/configurator-provider-slot.js +1 -0
  1103. package/dist/react-sdk/provider-slots/create-configurator-provider-slot.d.ts +5 -0
  1104. package/dist/react-sdk/provider-slots/create-configurator-provider-slot.js +1 -0
  1105. package/dist/react-sdk/provider-slots/index.d.ts +3 -0
  1106. package/dist/react-sdk/provider-slots/index.js +1 -0
  1107. package/dist/react-sdk/session/SessionServiceProvider.d.ts +5 -0
  1108. package/dist/react-sdk/session/SessionServiceProvider.js +1 -1
  1109. package/dist/ui-sdk/components/numerical-input/InputField.d.ts +2 -0
  1110. package/dist/ui-sdk/components/numerical-input/InputField.js +1 -1
  1111. package/dist/ui-sdk/components/numerical-input/NumericalInput.d.ts +2 -2
  1112. package/dist/ui-sdk/components/numerical-input/Slider.d.ts +3 -1
  1113. package/dist/ui-sdk/components/numerical-input/Slider.js +1 -1
  1114. package/dist/ui-sdk/components/snackbar/Snackbar.d.ts +24 -3
  1115. package/dist/ui-sdk/components/snackbar/Snackbar.js +1 -1
  1116. package/dist/ui-sdk/icons/__generated/ChatCircleText.d.ts +3 -0
  1117. package/dist/ui-sdk/icons/__generated/ChatCircleText.js +1 -0
  1118. package/dist/ui-sdk/icons/__generated/Paperclip.d.ts +3 -0
  1119. package/dist/ui-sdk/icons/__generated/Paperclip.js +1 -0
  1120. package/dist/ui-sdk/icons/__generated/PencilSimpleLine.d.ts +3 -0
  1121. package/dist/ui-sdk/icons/__generated/PencilSimpleLine.js +1 -0
  1122. package/dist/ui-sdk/icons/__generated/index.d.ts +6 -0
  1123. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  1124. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  1125. package/dist/ui-sdk/theme/types.d.ts +1 -1
  1126. package/dist/watch/glob-matcher.d.ts +4 -4
  1127. package/dist/watch/glob-matcher.js +1 -1
  1128. package/dist/watch/watch.d.ts +4 -4
  1129. package/dist/watch/watch.js +1 -1
  1130. package/package.json +3 -3
  1131. package/schema/domain-spec.json +22 -4
  1132. package/dist/application-spec/caching/runtime-reference-store.js +0 -1
  1133. package/dist/application-spec/core/components/index.d.ts +0 -2
  1134. package/dist/application-spec/core/expressions/index.d.ts +0 -2
  1135. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.d.ts +0 -1
  1136. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +0 -1
  1137. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.d.ts +0 -3
  1138. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +0 -166
  1139. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.d.ts +0 -1
  1140. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +0 -54
  1141. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.d.ts +0 -1
  1142. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +0 -115
  1143. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +0 -1
  1144. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.d.ts +0 -1
  1145. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +0 -6
  1146. package/dist/application-spec/generate-application/implementations/phx-application-types.js +0 -1
  1147. package/dist/application-spec/generate-application/implementations/phx-domain.js +0 -1
  1148. package/dist/application-spec/generate-application/implementations/phx-model.js +0 -1
  1149. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +0 -1
  1150. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +0 -1
  1151. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.js +0 -1
  1152. package/dist/application-spec/generate-application/runtime/application-runtime.js +0 -1
  1153. package/dist/application-spec/generate-application/runtime/application-spec-slice.js +0 -1
  1154. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +0 -1
  1155. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +0 -1
  1156. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.js +0 -1
  1157. package/dist/application-spec/generate-application/runtime/generate-runtime-instance.js +0 -1
  1158. package/dist/application-spec/generate-application/runtime/index.d.ts +0 -8
  1159. package/dist/application-spec/generate-application/runtime/index.js +0 -1
  1160. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +0 -1
  1161. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +0 -8
  1162. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +0 -1
  1163. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +0 -8
  1164. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +0 -1
  1165. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +0 -1
  1166. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +0 -1
  1167. package/dist/application-spec/generate-application/runtime/sections/index.d.ts +0 -10
  1168. package/dist/application-spec/generate-application/runtime/sections/index.js +0 -1
  1169. package/dist/application-spec/generate-application/runtime/spec-runtime.js +0 -1
  1170. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +0 -5
  1171. package/dist/application-spec/generate-application/runtime-spec/index.js +0 -1
  1172. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +0 -103
  1173. package/dist/configurator/application-runtime/extensions/systems/assistant-system/browser-details.d.ts +0 -17
  1174. package/dist/configurator/application-runtime/extensions/systems/assistant-system/browser-details.js +0 -1
  1175. package/dist/configurator/configurator-context/ConfiguratorDataProvider.d.ts +0 -2
  1176. package/dist/configurator/configurator-context/ConfiguratorDataProvider.js +0 -1
  1177. package/dist/configurator/configurator-context/IntegrationSubscription.js +0 -1
  1178. package/dist/configurator/configurator-context/LifecycleProviders.js +0 -1
  1179. package/dist/configurator/configurator-context/OnPresetLoadedHandler.js +0 -1
  1180. package/dist/configurator/configurator-context/PresetSelectionProvider.js +0 -1
  1181. package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.d.ts +0 -1
  1182. package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.js +0 -1
  1183. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +0 -1
  1184. package/dist/configurator/configurator-context/configurator-routing/OnGoToIndexHandler.js +0 -1
  1185. package/dist/configurator/configurator-context/configurator-routing/index.d.ts +0 -2
  1186. package/dist/configurator/configurator-context/configurator-routing/use-power-routing-lifecycle.js +0 -1
  1187. package/dist/domain/available-system-components.d.ts +0 -11
  1188. package/dist/domain/available-system-components.js +0 -1
  1189. package/dist/domain/domain-builder.js +0 -1
  1190. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +0 -1
  1191. package/dist/domain/domain-runtime/spec/module-checks/index.js +0 -1
  1192. package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.js +0 -1
  1193. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +0 -1
  1194. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +0 -1
  1195. package/dist/phoenix/commands/generated-env-markers.js +0 -1
  1196. package/dist/phoenix/services/lingui.d.ts +0 -15
  1197. package/dist/phoenix/services/lingui.js +0 -1
  1198. package/dist/phoenix/services/phoenix-application.d.ts +0 -21
  1199. package/dist/phoenix/services/phoenix-application.js +0 -1
  1200. /package/dist/{application-spec/core/expressions/relation-expression-params.js → configurator/application-runtime/extensions/systems/assistant-system/assistant-annotation.js} +0 -0
  1201. /package/dist/configurator/{configurator-context → pages/provider-slots}/ConfiguratorResponsiveProvider.d.ts +0 -0
  1202. /package/dist/configurator/{configurator-context → pages/provider-slots}/ConfiguratorResponsiveProvider.js +0 -0
  1203. /package/dist/{application-spec/generate-application/runtime/spec-code/spec-code-module.js → domain/spec/application/admin-pages-section.js} +0 -0
  1204. /package/dist/{application-spec/parse-application-files/spec/components/component-entry.js → domain/spec/application/admin-pages.js} +0 -0
  1205. /package/dist/{application-spec/parse-application-files/spec/expressions/expression.js → domain/spec/application/admin-states.js} +0 -0
  1206. /package/dist/{application-spec/core → domain/spec/application}/application-instance.d.ts +0 -0
  1207. /package/dist/{application-spec/core → domain/spec/application}/application-instance.js +0 -0
  1208. /package/dist/domain/{application/assistant/assistant-manifest.js → spec/application/configurator-states.js} +0 -0
  1209. /package/dist/{application-spec/core → domain/spec}/components/component-filter.js +0 -0
  1210. /package/dist/{application-spec/core → domain/spec}/components/index.js +0 -0
  1211. /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.d.ts +0 -0
  1212. /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.js +0 -0
  1213. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error-collector.d.ts +0 -0
  1214. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error-collector.js +0 -0
  1215. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error.d.ts +0 -0
  1216. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error.js +0 -0
  1217. /package/dist/domain/{domain-runtime → spec}/errors/implementation-errors.d.ts +0 -0
  1218. /package/dist/domain/{domain-runtime → spec}/errors/implementation-errors.js +0 -0
  1219. /package/dist/domain/{domain-runtime → spec}/errors/index.d.ts +0 -0
  1220. /package/dist/domain/{domain-runtime → spec}/errors/index.js +0 -0
  1221. /package/dist/domain/{domain-runtime → spec}/errors/to-implementation-errors.d.ts +0 -0
  1222. /package/dist/domain/{domain-runtime → spec}/errors/to-implementation-errors.js +0 -0
  1223. /package/dist/{application-spec/core → domain/spec}/expressions/index.js +0 -0
  1224. /package/dist/{application-spec/core → domain/spec}/expressions/relation-expression-params.d.ts +0 -0
  1225. /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.d.ts +0 -0
  1226. /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.js +0 -0
  1227. /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.d.ts +0 -0
  1228. /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.js +0 -0
  1229. /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.d.ts +0 -0
  1230. /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.js +0 -0
  1231. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/element-registration.js +0 -0
  1232. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/handler-registration.d.ts +0 -0
  1233. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/handler-registration.js +0 -0
  1234. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-action-modules.js +0 -0
  1235. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-component-optic-modules.js +0 -0
  1236. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-expression-modules.js +0 -0
  1237. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-invariant-modules.js +0 -0
  1238. /package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-domain.d.ts +0 -0
  1239. /package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx.js +0 -0
  1240. /package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/states-runtime.js +0 -0
  1241. /package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/states-runtime.js +0 -0
  1242. /package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/reflection-constants-runtime.js +0 -0
  1243. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/factory-data-runtime.js +0 -0
  1244. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/index.d.ts +0 -0
  1245. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/index.js +0 -0
  1246. /package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/index.d.ts +0 -0
  1247. /package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/index.js +0 -0
  1248. /package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/optics}/component-optic.js +0 -0
  1249. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/actions-runtime.js +0 -0
  1250. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/assistant-runtime.js +0 -0
  1251. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/data-runtime.js +0 -0
  1252. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/preset-runtime.js +0 -0
  1253. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/theme-runtime.js +0 -0
  1254. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/transformers-runtime.js +0 -0
  1255. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/index.d.ts +0 -0
  1256. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/index.js +0 -0
  1257. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/resolve-spec-code.js +0 -0
  1258. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/spec-code-module.d.ts +0 -0
  1259. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/decode-runtime-spec.d.ts +0 -0
  1260. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/decode-runtime-spec.js +0 -0
  1261. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encode-runtime-spec.d.ts +0 -0
  1262. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encode-runtime-spec.js +0 -0
  1263. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encoded-runtime-spec.d.ts +0 -0
  1264. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encoded-runtime-spec.js +0 -0
  1265. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/runtime-spec.js +0 -0
  1266. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/spec-code-id.js +0 -0
  1267. /package/dist/domain/{application/assistant/assistant-resolved-manifest.js → spec/sections/assistant/assistant-manifest.js} +0 -0
  1268. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-element-name.d.ts +0 -0
  1269. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-element-name.js +0 -0
  1270. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-elements.d.ts +0 -0
  1271. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-elements.js +0 -0
  1272. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-resource-path.d.ts +0 -0
  1273. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-resource-path.js +0 -0
  1274. /package/dist/domain/{application → spec/sections}/assistant/form/index.d.ts +0 -0
  1275. /package/dist/domain/{application → spec/sections}/assistant/form/index.js +0 -0
  1276. /package/dist/{configurator/configurator-context → react-sdk/domain-application-context}/OnPresetLoadedHandler.d.ts +0 -0
  1277. /package/dist/{configurator/configurator-context → react-sdk/integration}/IntegrationSubscription.d.ts +0 -0
  1278. /package/dist/{configurator/configurator-context → react-sdk/lifecycle-providers}/LifecycleProviders.d.ts +0 -0
  1279. /package/dist/{configurator/configurator-context → react-sdk/preset-selection}/PresetSelectionProvider.d.ts +0 -0
@@ -0,0 +1,40 @@
1
+ import{createPhoenixFeatureGuide as e}from"../../guide.js";let o=`The built-in scene tools placed in the free area of a project layout, for a product whose spec configures its toolbar, view controls, tool controls and tool-mode exit. The layout also mounts what the built-in layout would have shown with them: the readonly banner for viewers and the snackbar root.
2
+
3
+ \`\`\`tsx
4
+ // Part of a ConfiguratorLayout, rendered inside the safe-area element (pointerEvents: 'none')
5
+ import type { CSSProperties } from 'react'
6
+
7
+ import { LayoutSlots } from '@salsita-ai/sdk/configurator'
8
+
9
+ const corner = (place: CSSProperties): CSSProperties => ({ position: 'absolute', pointerEvents: 'auto', ...place })
10
+
11
+ export const SceneTools = () => {
12
+ const isFullscreen = phx.frontend.useIsFullscreenActive()
13
+ const { accessInfo } = phx.frontend.useAccessService()
14
+
15
+ return (
16
+ <>
17
+ <div style={corner({ insetBlockStart: 24, insetInline: 24, display: 'flex', justifyContent: 'center' })}>
18
+ <LayoutSlots.DesktopCallToAction />
19
+ {accessInfo.viewMode && !isFullscreen && <LayoutSlots.DesktopReadonlyBanner />}
20
+ </div>
21
+ {!isFullscreen && (
22
+ <div style={corner({ insetBlockEnd: 96, insetInlineEnd: 24 })}>
23
+ <LayoutSlots.DesktopToolControls />
24
+ </div>
25
+ )}
26
+ <div style={corner({ insetBlockEnd: 24, insetInline: 24, display: 'flex', gap: 16, alignItems: 'end' })}>
27
+ <LayoutSlots.DesktopToolbar />
28
+ <LayoutSlots.DesktopViewControls />
29
+ <div style={{ position: 'relative', flex: 1 }}>
30
+ <LayoutSlots.DesktopSnackbarsRoot />
31
+ </div>
32
+ </div>
33
+ </>
34
+ )
35
+ }
36
+ \`\`\`
37
+
38
+ - Without a \`toolbar\` component, the default toolbar shows only its exit button in fullscreen and drops share, undo and redo for viewers.
39
+ - A configured \`toolbar\` shows as written; the first active one counts, so give viewers their own, filtered with \`$filter.modes: [read]\`.
40
+ - The banner and the tool controls check nothing themselves, so the layout does.`;export const generatePhoenixLayoutSlotsFeature=()=>e({path:"features/custom-layout/slots.md",title:"Layout slots",summary:"Reusing built-in pieces in a project layout: header, toolbar, view and tool controls, banners and footer, and the layout element factories of the built-in layouts; read when a layout keeps part of the built-in UI or a project uses those factories.",whenToUse:"Read when a project layout should keep a built-in piece as the spec configures it, such as the toolbar or the view controls, instead of rebuilding it, or when a project registers a footer, a dialog or a `layout: custom` UI.",capabilities:"### Slot or own UI\n\n- Mount a slot when the spec-configured piece is what users should see and only its place changes. Build the piece from hooks when it has to look like the brand's own.\n- A slot brings its look, not its place: put it in a positioned container that sets its size. `SharedCanvas` fills its container.\n- `Desktop*` and `Mobile*` members are twins; pick one with `phx.frontend.useActiveViewports()` as in [Scene and safe area](scene-and-safe-area.md).\n- Slots read the spec and the configurator's state and take no props unless named below. They render only inside a `ConfiguratorLayout`.\n- A mounted slot with actions raises snackbars on failure, so mount a snackbar root with it; see [Messages](messages.md).\n\n### Panels are the layout's own\n\n- Build the side panel or bottom sheet from the project's control elements ([Custom controls](../domain-controls/custom-controls.md)), not from a slot.\n- Leave out `DesktopSidebar`, the other `*Sidebar*` pieces, `EntityHeader` and `MobileTabs`: they render the spec-driven built-in sidebar. Draw tabs and steps from hooks ([Tabs and steps](tabs-and-steps.md)).\n- Keep `Services`, `SharedCanvas` and the snackbar roots: every layout needs them ([Scene and safe area](scene-and-safe-area.md), [Messages](messages.md)).\n\n### Header, toolbar and scene controls\n\n- `DesktopHeader` and `MobileHeader` — the spec's `floatingHeader`, `fixedHeader`, `customHeader` or `hiddenHeader`.\n- `DesktopToolbar`, `MobileToolbar` and `MobileHamburgerMenu` — the spec's `toolbar` lists `desktop`, `mobile` and `mobileMenu`, or the default buttons. A project element registered under a button kind replaces that button here. [Toolbar actions](toolbar-actions.md) builds the same toolbar from data.\n- `DesktopViewControls` and `MobileViewControls` — the root's `viewControls`. `DesktopToolControls` and `MobileToolControls` — its `toolControls`.\n- `DesktopCallToAction` and `MobileCallToAction` — the `exitToolModeFab` that leaves a tool mode, not a finalize button.\n- These spec components configure only their slots: a layout that mounts none of them ignores `toolbar`, `viewControls` and `toolControls`.\n\n### Banners, branding and footer\n\n- `DesktopReadonlyBanner` and `MobileReadonlyBanner` — \"Edit configuration\" for a viewer. They render only when cloning is allowed and do not check read mode, so mount them only in read mode.\n- `DesktopPoweredBy` and `MobilePoweredBy` — the \"Powered by Salsita\" mark. The built-in layout shows it; a project layout decides.\n- `DesktopFooter` and `MobileFooter` — a page footer below the whole layout.\n\n### Layout element factories\n\nThese register elements that the built-in layouts mount. Default-export each from `src/elements/`.\n\n- `phx.frontend.createLayoutFooter(Component)` — the content of `DesktopFooter` and `MobileFooter`, nothing without it. It adds a footer to the built-in universal layout; in a `ConfiguratorLayout`, render the footer directly, or mount the slot to reuse a registered one.\n- `phx.frontend.createLayoutDialog(Component)` — an overlay the built-in layouts mount. A `ConfiguratorLayout` shows it only if it mounts `LayoutDialog` from `@salsita-ai/sdk/configurator`; open the layout's own dialog instead.\n- `phx.frontend.createLayoutCustomOwnerUi(Component)` and `phx.frontend.createLayoutCustomReadUi(Component)` — the owner and read UI of `applicationConfig.layout: custom`, the older route to a project layout.\n- A registered `ConfiguratorLayout` replaces the built-in UI that renders those two, so they never show beside it. Do not use them in new work; when a project that relies on `layout: custom` changes its layout, move both into one `ConfiguratorLayout` that reads `viewMode`.",example:o,documentation:"Read with `pnpm phoenix docs -r <path>`:\n\n- `docs/phoenix/layout-slots.mdx` — every `LayoutSlots` member: what it shows, what feeds it, its empty state and its read-mode behavior.\n- `docs/layouts/toolbar.mdx`, `docs/layouts/view-controls.mdx`, `docs/layouts/tool-controls.mdx` — what the spec configures in those slots.",phxMembers:["frontend.createLayoutFooter","frontend.createLayoutDialog","frontend.createLayoutCustomOwnerUi","frontend.createLayoutCustomReadUi"]});
@@ -0,0 +1,3 @@
1
+ import { type PhoenixGuide } from '../../guide.js';
2
+ /** Tabs and steps a project layout draws from the spec's `sidebarTabs`, `horizontalTabs` and `navigationSteps`. */
3
+ export declare const generatePhoenixTabsAndStepsFeature: () => PhoenixGuide;
@@ -0,0 +1,65 @@
1
+ import{createPhoenixFeatureGuide as t}from"../../guide.js";let e=`A three-step wizard whose Next waits until the configuration is valid, and horizontal tabs for a layout that shows that kind only.
2
+
3
+ \`\`\`yaml
4
+ navigationStates: [size, finish, summary]
5
+
6
+ components:
7
+ Desk:
8
+ navigationSteps:
9
+ main:
10
+ steps:
11
+ - label:
12
+ $msg: Size
13
+ navigationStates: [size]
14
+ - label:
15
+ $msg: Finish
16
+ navigationStates: [finish]
17
+ - label:
18
+ $msg: Summary
19
+ navigationStates: [summary]
20
+ \`\`\`
21
+
22
+ \`\`\`tsx
23
+ // Part of a ConfiguratorLayout
24
+ export const Wizard = () => {
25
+ const { steps, canGoNext, canGoPrevious, next, previous, goTo } = phx.frontend.useStepNavigation()
26
+ const { disabled: hasProblem, hints } = phx.frontend.useFinalizeViolations()
27
+
28
+ return (
29
+ <nav aria-label="Steps">
30
+ <ol>
31
+ {steps.map(step => (
32
+ <li key={step.state} aria-current={step.status === 'active' ? 'step' : undefined}>
33
+ {/* Earlier steps only: an upcoming step is reached with Next */}
34
+ <button type="button" disabled={step.status === 'upcoming'} onClick={() => goTo(step.index)}>
35
+ {step.index + 1}. {step.label}
36
+ </button>
37
+ </li>
38
+ ))}
39
+ </ol>
40
+ <button type="button" disabled={!canGoPrevious} onClick={previous}>
41
+ Back
42
+ </button>
43
+ {canGoNext && (
44
+ <button type="button" disabled={hasProblem} title={hints} onClick={next}>
45
+ Next
46
+ </button>
47
+ )}
48
+ </nav>
49
+ )
50
+ }
51
+
52
+ export const Tabs = () => {
53
+ const { tabs, select } = phx.frontend.useTabNavigation({ source: 'horizontalTabs' })
54
+
55
+ return (
56
+ <div role="tablist">
57
+ {tabs.map(tab => (
58
+ <button key={tab.state} type="button" role="tab" aria-selected={tab.isActive} onClick={() => select(tab.index)}>
59
+ {tab.label}
60
+ </button>
61
+ ))}
62
+ </div>
63
+ )
64
+ }
65
+ \`\`\``;export const generatePhoenixTabsAndStepsFeature=()=>t({path:"features/custom-layout/tabs-and-steps.md",title:"Tabs and steps",summary:"Drawing tabs and a stepper from the spec's `sidebarTabs`, `horizontalTabs` and `navigationSteps`, and holding Next while the configuration has a problem; read when a project layout shows tabs, steps or a wizard.",whenToUse:"Read when a project layout renders its own tabs or steps. The structure stays in YAML, where `$filter` can switch it; the layout decides how it looks and whether Next waits for a valid configuration.",capabilities:"### Tabs\n\n- `phx.frontend.useTabNavigation(options?)` returns `{ source, tabs, activeTab, select }` for the spec's tabs.\n- Each tab is `{ index, label, icon, iconNode, navigationStates, state, isActive }`. `label` is resolved to the current language, `icon` is a PhxIcon name, and `iconNode` is a React node only when TypeScript spec code gives one.\n- `select(tab.index)` or `select(navigationState)` enters the tab's first navigation state; an unknown tab does nothing.\n- `source` is `'sidebarTabs'` (every active instance on the selected entity, the root while nothing is selected), `'horizontalTabs'` (the first active instance on any entity) or `null` without tabs.\n- `options.source` defaults to `'auto'`, which prefers `sidebarTabs` when both kinds are active and warns in development. Pass `'sidebarTabs'` or `'horizontalTabs'` when the layout shows one kind.\n- `options.entityId` reads another entity's `sidebarTabs`.\n- A tab without navigation states is left out, with a warning in development.\n\n### Steps\n\n- `phx.frontend.useStepNavigation()` returns `{ steps, activeStep, activeIndex, isFirst, isLast, canGoNext, canGoPrevious, next, previous, goTo }` for the spec's `navigationSteps`.\n- It reads the first active `navigationSteps` instance on the root entity, so `$filter` can switch between several.\n- Each step is `{ index, label, navigationStates, state, status }`, with `status` `'complete'`, `'active'` or `'upcoming'`.\n- While the active navigation state belongs to no step, `activeStep` is `null`, `activeIndex` is -1, every step is `'upcoming'` and `next()` enters the first step.\n- `next()` and `previous()` read the committed state when called, so a double click never skips a step. `goTo(index or state)` enters any step.\n- Each action pushes the analytics event of the built-in control it replaces.\n\n### Order, validity and read mode\n\n- Tabs and steps enter navigation states, so controls, cameras and components filtered by `navigationStates` follow. [Navigation states](../application-states/navigation.md) owns declaring them.\n- Neither hook enforces an order or validity, and neither checks read mode.\n- For a stepper that offers only earlier steps, enable the steps whose `status` is `'complete'`.\n- A change with a `fixable` or `fatal` violation is never committed, so a `warning` is the problem that can stay. To hold Next while one does, require besides `canGoNext` either `!phx.frontend.useFinalizeViolations().disabled` or `phx.frontend.useStateValidity().severity !== 'warning'`.\n- Prefer `useFinalizeViolations()`: its `hints` tell users why Next waits, and it holds Next on the same rule as Finalize, a failed save included. `useStateValidity()` gives only the severity, for a gate that ignores saving.\n- [Violations](../state/violations.md) owns these semantics and gating on the violations of one step.\n- Switching tabs and steps is navigation, not editing: a viewer may use them. Hide the editing controls inside them instead ([View mode](view-mode.md)).",example:e,documentation:'Read with `pnpm phoenix docs -r <path>`:\n\n- `docs/phoenix/configurator-interface.mdx` — "Hooks for a Project Layout" and its "Steps and tabs" paragraph: both hooks and a wizard whose Next gates on `useStateValidity()`.\n- `docs/layouts/gallery/nightjar-guitar.mdx`, `docs/layouts/gallery/ardent-compressor.mdx` — complete layouts with their own steppers; `docs/layouts/gallery/corvid-drone.mdx` with its own tabs.\n- `docs/layouts/sidebar/tabs.mdx` — what `sidebarTabs` configures; its samples render the tabs in the built-in sidebar, so take only the YAML.',phxMembers:["frontend.useTabNavigation","frontend.useStepNavigation"]});
@@ -0,0 +1,3 @@
1
+ import { type PhoenixGuide } from '../../guide.js';
2
+ /** Undo, fullscreen, camera, toolbar, measurements, sharing, assistant and close actions for a project layout. */
3
+ export declare const generatePhoenixToolbarActionsFeature: () => PhoenixGuide;
@@ -0,0 +1,58 @@
1
+ import{createPhoenixFeatureGuide as e}from"../../guide.js";let n=`The spec's desktop toolbar drawn in the layout's own style, with the share entry opening the layout's dialog. Measurements, language and help would open the layout's own popovers; this toolbar leaves them out.
2
+
3
+ \`\`\`tsx
4
+ // Part of a ConfiguratorLayout
5
+ interface ToolbarProps {
6
+ readonly onShare: () => void
7
+ }
8
+
9
+ export const Toolbar = ({ onShare }: ToolbarProps) => {
10
+ const { actions } = phx.frontend.useToolbarActions('desktop')
11
+
12
+ return (
13
+ <div role="toolbar" aria-label="Tools" style={{ display: 'flex', gap: 8 }}>
14
+ {actions.map(action => {
15
+ switch (action.kind) {
16
+ case 'undo':
17
+ case 'redo':
18
+ return (
19
+ <button key={action.key} type="button" disabled={action.disabled} onClick={action.run}>
20
+ {action.label}
21
+ </button>
22
+ )
23
+ case 'fullscreen':
24
+ return (
25
+ <button key={action.key} type="button" aria-pressed={action.active} onClick={action.run}>
26
+ {action.label}
27
+ </button>
28
+ )
29
+ case 'resetCamera':
30
+ case 'assistant':
31
+ return (
32
+ <button key={action.key} type="button" onClick={action.run}>
33
+ {action.label}
34
+ </button>
35
+ )
36
+ case 'share':
37
+ return (
38
+ <button key={action.key} type="button" onClick={onShare}>
39
+ {action.label}
40
+ </button>
41
+ )
42
+ case 'custom':
43
+ return <action.Element key={action.key} />
44
+ default:
45
+ return null
46
+ }
47
+ })}
48
+ </div>
49
+ )
50
+ }
51
+
52
+ export const ShareLinks = ({ open }: { readonly open: boolean }) => {
53
+ // Generating a link saves the configuration: only while the dialog is open
54
+ const { readLink, isLoading } = phx.frontend.useShareLinks({ enabled: open })
55
+
56
+ return open ? <p>{isLoading || readLink === null ? 'Preparing a link…' : readLink}</p> : null
57
+ }
58
+ \`\`\``;export const generatePhoenixToolbarActionsFeature=()=>e({path:"features/custom-layout/toolbar-actions.md",title:"Toolbar actions",summary:"Undo and redo, fullscreen, camera reset, the spec's toolbar as data, measurements, share links, the assistant panel and the host's close action; read when a project layout draws its own toolbar or any of these buttons.",whenToUse:"Read when a project layout offers configurator actions with its own buttons instead of mounting the built-in toolbar. The language switch belongs to [Localization](../localization.md).",capabilities:"### Choose the route\n\n- Mount `LayoutSlots.DesktopToolbar` when the built-in look fits; it keeps project elements registered under button kinds ([Layout slots](slots.md)).\n- Build from `phx.frontend.useToolbarActions()` when the spec's `toolbar` should decide which actions appear but the layout draws them.\n- Use the single-action hooks when the layout places actions itself, independent of the spec's `toolbar`.\n- The hooks act as the built-in buttons do, and the toolbar's actions push the same analytics events. None checks read mode.\n\n### The spec's toolbar as data\n\n- `phx.frontend.useToolbarActions(placement?)` takes `'desktop'` (the default), `'mobile'` or `'mobileMenu'`, the `toolbar` component's list of that name.\n- It returns `{ groups, actions }`: the spec's `toolbarButtonGroup`s, an element outside a group being a group of one, and the same entries flattened.\n- Every entry has `key`, `kind`, `label` (the built-in button's title, resolved), `icon` and `showTitle`. Switch on `kind` and TypeScript narrows the rest:\n - `undo`, `redo` — `disabled` and `run`;\n - `fullscreen` — `active` and `run`, which toggles the flag;\n - `resetCamera` — `run`;\n - `share` — nothing to run: open the layout's own dialog over `useShareLinks`;\n - `measurements` — `measurements`, the result of `useMeasurements`, and `icons` per unit;\n - `language` — `language`, the locale switch [Localization](../localization.md) describes;\n - `help` — `Content`, a component that renders the help;\n - `assistant` — `assistant`, the result of `useAssistantPanel`, and `run`;\n - `custom` — `name` and `Element`, the project element a `customLayoutElement` names.\n- Entries with nothing to offer are left out: share with sharing disabled, language with one locale, an assistant the spec lacks.\n- Without a `toolbar` component it returns the default set, which drops share, undo and redo for a viewer. A configured `toolbar` is returned as written.\n- A project element registered under a button kind, such as `undoToolbarButton`, replaces that button in the built-in toolbar only, not here.\n\n### Single actions\n\n- **Undo and redo** — `phx.frontend.useUndoRedo()` returns `{ canUndo, canRedo, undo, redo }`. Disable each button from `canUndo` and `canRedo`.\n- **Fullscreen** — `phx.frontend.useIsFullscreenActive()` returns the flag and `phx.frontend.useSetFullscreen()` a setter `(enabled: boolean) => void`. The layout decides what fullscreen removes; keep the exit button where the enter button was.\n- **Camera reset** — `phx.frontend.useResetCamera()` returns `() => void`, which returns to the framing of the active camera after an orbit, pan or zoom.\n- **Measurements** — `phx.frontend.useMeasurements(options?)` returns `{ units, unit, setUnit, hasIndicatorSwitch, indicatorsShown, toggleIndicators, available }`. Offer it only while `available`; `options.showIndicatorSwitch` overrides `applicationConfig.indicatorSwitch`.\n- **Share dialog** — `phx.frontend.useShareLinks({ enabled })` returns `{ available, ownerLinkAvailable, readLinkAvailable, ownerLink, readLink, isLoading }`; each link is `null` until generated.\n- Generating a link saves the configuration, and while enabled every commit generates a new read link. Pass `enabled: isDialogOpen`.\n- **One link on demand** — `phx.frontend.useGenerateShareLink()` returns `async ({ access, expiration? }) => ({ link })`. `access` is `'o'` for an editable link or `'rr'` for the saved revision, read-only. It saves first, ignores `shareDisabled`, and suits a handler, such as a link in a quote.\n- **Assistant panel** — `phx.frontend.useAssistantPanel()` returns `{ available, open, hasUnreadReply, setOpen }`. The panel renders only inside the built-in sidebar, which a project layout leaves out ([Layout slots](slots.md)), so a project layout offers no assistant button.\n- **Close** — `phx.frontend.useCloseAction()` returns the host's close action, `() => Promise<void>`, or `null` when the integration mode offers none. Show a close button only when it is not `null`.\n\n### Read mode and fullscreen\n\n- Hide undo, redo and other editing actions while `accessInfo.viewMode` is `true` ([View mode](view-mode.md)); fullscreen, camera reset and view switching stay.\n- In fullscreen keep the controls for looking at the product: exit, reset, views.\n- Components follow the flag through `$filter.fullscreen`.",example:n,documentation:'Read with `pnpm phoenix docs -r <path>`:\n\n- `docs/phoenix/configurator-interface.mdx` — "Hooks for a Project Layout", its toolbar table and "Mode, fullscreen, preview and navigation".\n- `docs/layouts/custom-layout.mdx` — the layout\'s own fullscreen toggle, undo and redo, and camera reset.\n- `docs/layouts/toolbar.mdx` — what the spec\'s `toolbar` configures.\n- `docs/phoenix/sharing.mdx` — access levels and what a share link opens.',phxMembers:["frontend.useUndoRedo","frontend.useIsFullscreenActive","frontend.useSetFullscreen","frontend.useResetCamera","frontend.useToolbarActions","frontend.useMeasurements","frontend.useShareLinks","frontend.useGenerateShareLink","frontend.useAssistantPanel","frontend.useCloseAction"]});
@@ -0,0 +1,3 @@
1
+ import { type PhoenixGuide } from '../../guide.js';
2
+ /** Read mode, clone to edit, the preview start screen, the configuration id and the session role. */
3
+ export declare const generatePhoenixViewModeFeature: () => PhoenixGuide;
@@ -0,0 +1,41 @@
1
+ import{createPhoenixFeatureGuide as e}from"../../guide.js";let o=`What a viewer sees in place of the editing panel, and the start screen while the preview is on. Both are parts of a \`ConfiguratorLayout\`.
2
+
3
+ \`\`\`tsx
4
+ import { type ReactNode, useState } from 'react'
5
+
6
+ import { DesktopPreview, LayoutSlots, MobilePreview } from '@salsita-ai/sdk/configurator'
7
+
8
+ export const ViewerBar = () => {
9
+ const { accessInfo } = phx.frontend.useAccessService()
10
+ const canClone = phx.frontend.useIsCloningAllowed()
11
+ const [isCloneOpen, setCloneOpen] = useState(false)
12
+
13
+ if (!accessInfo.viewMode) {
14
+ return null
15
+ }
16
+
17
+ return (
18
+ <div role="status">
19
+ View only
20
+ {canClone && (
21
+ <button type="button" onClick={() => setCloneOpen(true)}>
22
+ Edit a copy
23
+ </button>
24
+ )}
25
+ <LayoutSlots.CloneToEditDialog open={isCloneOpen} onClose={() => setCloneOpen(false)} />
26
+ </div>
27
+ )
28
+ }
29
+
30
+ // Over the canvas: the start screen while the preview is on, else the interface, which calls useSceneSafeArea
31
+ export const StartOrInterface = ({ children }: { readonly children: ReactNode }) => {
32
+ const { isPreview } = phx.frontend.usePreview()
33
+ const isDesktop = phx.frontend.useActiveViewports()?.includes('desktop') ?? false
34
+
35
+ if (!isPreview) {
36
+ return <>{children}</>
37
+ }
38
+
39
+ return isDesktop ? <DesktopPreview /> : <MobilePreview />
40
+ }
41
+ \`\`\``;export const generatePhoenixViewModeFeature=()=>e({path:"features/custom-layout/view-mode.md",title:"View mode",summary:"Read mode for shared and read-only configurations, clone to edit, the preview start screen, the configuration id and the session role; read when a layout must behave differently for viewers, phone embeds or roles.",whenToUse:"Read when deciding what a viewer of a shared configuration may do, when offering to edit a copy, when a phone embed should start with a preview, or when the layout depends on the signed-in role. Every guide of [Custom project layout](index.md) relies on its read-mode rule.",capabilities:"### Read mode\n\n- `phx.frontend.useAccessService()` returns `{ configurationId, accessInfo }`.\n- `accessInfo.viewMode` is `true` while a configuration shared for viewing is open, or while the host sets the web component's `readonly` property. Decide on `viewMode`, not on `accessInfo.access`, so both routes count.\n- The same `ConfiguratorLayout` renders read mode, and no hook enforces it: control hooks, setters, undo and redo, finalize actions and step navigation keep working for a viewer.\n- Hide or disable what changes the configuration: editing controls, undo and redo, add and delete actions, finalization.\n- Keep what only looks: orbit and zoom, view states, camera reset, fullscreen, and switching tabs and steps.\n- A read-only configuration never saves, so a viewer's change would be lost; hide editing anyway, so nothing suggests it counts.\n- Read mode also sets the spec's filter mode to `read`. A component filtered with `$filter.modes: [owner]` disappears wherever it renders; use it for scene controls, hotspots and finalize actions, which the built-in pieces keep showing to viewers otherwise. Leave control components unfiltered and hide their elements instead, since their hooks throw while filtered out.\n- How a project's own control behaves for viewers belongs to [Custom controls](../domain-controls/custom-controls.md).\n\n### Clone to edit\n\n- `phx.frontend.useIsCloningAllowed()` returns `true` when `applicationConfig.shareCloneToEdit` is set and the session's role may create configurations (`acl.canCreate`). It does not check read mode.\n- Offer \"Edit a copy\" only while `viewMode` and cloning is allowed: mount `LayoutSlots.DesktopReadonlyBanner` or `LayoutSlots.MobileReadonlyBanner`, or the layout's own button.\n- The own button opens `LayoutSlots.CloneToEditDialog`, with `open` and `onClose`, which creates the editable copy and opens it.\n\n### Preview start screen\n\n- `phx.frontend.usePreview()` returns `{ isPreview, isExpanded, isPreviewEnabled, isHidden, enter, leave }`.\n- The spec's top-level `preview` decides: `auto`, the default, shows the preview while the container is `mobile`; `always` shows it everywhere and `never` nowhere. `hide` shows no preview and hides the collapsed embed (`isHidden`) until it is expanded.\n- `alwaysExpand: true` acts only when users leave the preview: `enter()` then expands the embed on every width, not only on a phone.\n- `isPreview` stays `true` until `enter()`, which also expands the embedded configurator on a phone.\n- The built-in layout shows a start screen while `isPreview`; a `ConfiguratorLayout` must do it itself, or set `preview: never`. Otherwise it renders the full interface inside the collapsed embed.\n- Render `DesktopPreview` or `MobilePreview` from `@salsita-ai/sdk/configurator`, or the layout's own start screen with a button that calls `enter`.\n- The previews frame the scene themselves, so render the component that calls `phx.frontend.useSceneSafeArea()` only while `isPreview` is `false`.\n- A project preset screen keeps its own preview branch ([Project pages](pages.md)).\n\n### Configuration and role\n\n- `phx.frontend.useConfigurationId()` returns the open configuration's id, the same as `useAccessService().configurationId`. Use it in a handler, an analytics event or a support reference.\n- `phx.frontend.useSessionRole()` returns the session's role: `'anonymous'`, `'user'`, `'admin'` or `'superadmin'`, as authentication assigned it; Admin always reports `'admin'`. It throws before the session is loaded, so call it inside the layout.\n- The same roles drive `$filter.roles` and `acl.canCreate`. Prefer `$filter.roles` for components shown per role; use the hook for differences in the layout itself, such as a dealer price panel.\n- Sessions and roles come from the project's authentication, described in `docs/phoenix/sessions-and-access.mdx`.",example:o,documentation:'Read with `pnpm phoenix docs -r <path>`:\n\n- `docs/phoenix/configurator-interface.mdx` — "Loaded Configuration UI" on the preview start screen and "Mode, fullscreen, preview and navigation".\n- `docs/layouts/custom-layout.mdx` — "Serve read mode": both read routes and what the layout hides.\n- `docs/layouts/preview/auto.mdx`, `docs/layouts/preview/always-expand.mdx` — the preview modes, set with the top-level `preview` and `alwaysExpand` keys of a spec file.\n- `docs/layouts/gallery/kestrel-kettle.mdx` — a layout with its own phone start screen.\n- `docs/ux-guidelines/interaction-modes.mdx` — what view-only and fullscreen should offer.\n- `docs/phoenix/sharing.mdx` — access levels, shared links and revisions.',phxMembers:["frontend.useAccessService","frontend.useIsCloningAllowed","frontend.usePreview","frontend.useConfigurationId","frontend.useSessionRole"]});
@@ -0,0 +1,3 @@
1
+ import { type PhoenixGuide } from '../../guide.js';
2
+ /** Choosing and declaring the YAML control components by job, with their filters and violations. */
3
+ export declare const generatePhoenixControlComponentsFeature: () => PhoenixGuide;
@@ -0,0 +1,24 @@
1
+ import{createPhoenixFeatureGuide as e}from"../../guide.js";let n=`A desk with two control components: the frame colour as a choice and the width as a length. Nothing here renders; the element in [Custom controls](custom-controls.md) reads both by instance name.
2
+
3
+ \`\`\`yaml
4
+ # spec/controls.yaml
5
+ components:
6
+ Desk:
7
+ attributeSelection:
8
+ frameColor:
9
+ value:
10
+ $bind: frameColor
11
+ options:
12
+ - label: Grey
13
+ value: Grey
14
+ - label: Black
15
+ value: Black
16
+ distanceDimension:
17
+ width:
18
+ min: 1200
19
+ max: 2000
20
+ value:
21
+ $bind: width
22
+ \`\`\`
23
+
24
+ The width is in millimetres, the default data unit, whatever unit the element displays. Neither component is filtered, so the hooks always find them; the layout hides the panel from viewers.`;export const generatePhoenixControlComponentsFeature=()=>e({path:"features/domain-controls/control-components.md",title:"Control components",summary:"Choosing the control component kind by job, declaring it in YAML with its instance name, bindings and props, filters, read mode and violations; read when adding or changing a control on an entity.",whenToUse:"Read when configurator users need to change the product: pick a value, pick, add, replace or remove a part, set a size or an angle, or enter a text. Declare the component here first; [Custom controls](custom-controls.md) renders it.",capabilities:"### What a control component is\n\n- A control component holds one control's value and options and binds them to the model. Declare it in YAML on an entity type or alias: `components: <Type>: <kind>: <instanceName>:`.\n- The instance name is the contract with the project's element: the element passes the entity id and that name to a control hook ([Control hooks](control-hooks.md)).\n- The component defines no UI. The project's element renders it ([Custom controls](custom-controls.md)); the project layout or an in-scene anchor decides where.\n- `$bind` the writable key to a field, and compute options, `min` or `max` with `$read` of an expression or `$eval`. [Components](../domain-model/components.md) owns bindings, `$eval` and `$filter`.\n\n### Pick a value\n\n- `attributeSelection` — `value` (writable) and `options`, each `{ value, label, description?, img? }`.\n- `materialSwatch` — `selectedSwatchKey` (writable) and `swatches`, a map from key to `{ swatchName, color, thumbnailUrl? }` with a six-digit hex `color`.\n- `attributeSwitch` — a boolean `value` (writable).\n- A `null` value shows no option as selected; picking one writes it, so a nullable field needs no special component.\n\n### Pick, add, replace or remove parts\n\n- `childEntitySelection` swaps a child for another type. `value` is `$read` of the current child's id (it is not writable), each option is `{ label, description?, img?, recipes }`, and `keepChildren: true` keeps the old child's composed children.\n- `childEntityRecipes` adds children: `recipes` lists `{ title, description?, thumbnailUrl?, recipes }`, usually from an expression whose inner `recipes` are fragments made with `phx.domain.createRecipe({ type, … })`; their ids are renumbered when added. `groupLabel` and `groupDescription` label the group in a grouped panel; `simpleRecipePanel` shows one flat list.\n- Set `collection: <Parent>.$<relation>` when the parent holds the child ids; omit it when the child holds its parent's id.\n- `replaceEntityRecipes` replaces the entity itself: `recipes` as above, each with exactly one root entity, and optional `keepChildren`.\n- Deleting needs no component: the element calls the deletion hook, and deleting removes the `composedOf: true` children too.\n- Each recipe is a dry run that runs every transformer and invariant ([Updates and dry runs](../state/updates.md)), so a long recipe list costs as many runs per change.\n\n### Set a size, an angle or a text\n\n- `distanceDimension` — a length: `value` (writable), `min` and `max` in the data unit (`distanceDataUnit` of `applicationConfig`, `mm` by default), optional `displayUnit` and `unitDisplayConfig`.\n- `distanceDimensionSelect` — a length from `options` of `{ value, description? }`; use it when only catalog sizes exist.\n- `genericDimension` — any other number: `value`, `unit` label, `min`, `max`, `decimalPlaces`.\n- `angleDimension` — `value`, optional `min`, `max`, `unit` (`degree` by default, or `radian`) and `decimalPlaces`.\n- `textValue` — a string `value`; limit it with an invariant, not in the component.\n- `colorValue` — a hex string `value`. No `phx.frontend` hook reads it; prefer `materialSwatch` when the palette is fixed.\n- The editable indicators of [Scene controls](scene-controls.md) target the same dimension components on the product.\n\n### Filters and read mode\n\n- A hook throws when its instance is missing, and a `$filter` that does not match removes the instance. So an element must not call the hook while the component is filtered out.\n- Leave control components unfiltered by mode. Hide the control from viewers in the element or the layout by branching on `phx.frontend.useAccessService().accessInfo.viewMode`; [View mode](../custom-layout/view-mode.md) owns read mode.\n- Filter a component by `navigationStates` or `active` only when the element mirrors the condition, such as a layout that renders it only in that step.\n\n### Violations\n\n- Every option is dry-run: one that would leave a `fatal` or `fixable` violation is disabled, with the violation's message as its hint. The value controls preview while dragging and roll back on release while they have errors.\n- The hooks' `fixableViolations` argument only hides those types from the hint; the option stays disabled. [Violations](../state/violations.md) owns the mapping and repair.",example:n,documentation:"Read each with `pnpm phoenix docs -r <path>`; `pnpm phoenix docs -l` lists the SDK documents. Their samples mount the components in YAML property pages: take only the component definitions.\n\n- `docs/phoenix/components.mdx` — bindings, `$eval` and filters.\n- `docs/controls/select-attribute/cardselect.mdx`, `docs/controls/select-attribute/swatchselect.mdx`, `docs/controls/select-child-entity/listselect.mdx`, `docs/controls/nullable-attributes.mdx` — the selection components and their options.\n- `docs/recipes-and-delete/simple.mdx`, `docs/recipes-and-delete/replace-dropdown.mdx`, `docs/recipes-and-delete/delete-entity.mdx` — recipes, replacing and deleting, with the dry-run behavior of their options.\n- `docs/dimensions/input-controls/distance-slider.mdx`, `docs/dimensions/selection-controls/list-selector.mdx`, `docs/dimensions/basic-concepts/dimension-data-unit.mdx` — the dimension components and the data unit their values use.",phxMembers:[]});
@@ -0,0 +1,3 @@
1
+ import { type PhoenixGuide } from '../../guide.js';
2
+ /** The control hooks by job: their arguments, return shapes and dry-run contract. */
3
+ export declare const generatePhoenixControlHooksFeature: () => PhoenixGuide;
@@ -0,0 +1,44 @@
1
+ import{createPhoenixFeatureGuide as e}from"../../guide.js";let t=`A toolbar for a selected base unit on the product, attached as \`htmlHotspot\` \`name: BaseToolbar\` with \`showWhen: [selected]\`. \`drawers\` is an \`attributeSelection\` instance on \`Base\`. A drawer layout or the removal that would break an invariant stays visible but disabled, with the reason as its tooltip.
2
+
3
+ \`\`\`tsx
4
+ // src/elements/BaseToolbar.tsx
5
+ import { Button, Chip, Stack, Tooltip } from '@mui/material'
6
+
7
+ const Toolbar = ({ base }: { readonly base: Base }) => {
8
+ const resolve = phx.frontend.useResolveLocalizable()
9
+ const drawers = phx.frontend.useAttributeSelection(base.id, 'drawers')
10
+ const removal = phx.frontend.useDeletedEntity(base.id)
11
+
12
+ return (
13
+ // Keeps presses on the toolbar from reaching the scene
14
+ <Stack direction="row" spacing={1} onPointerDown={event => event.stopPropagation()}>
15
+ {drawers.options.map(option => (
16
+ <Tooltip key={String(option.value)} title={option.hint ?? ''}>
17
+ <span>
18
+ <Chip
19
+ label={resolve(option.title)}
20
+ color={option.value === drawers.value ? 'primary' : 'default'}
21
+ disabled={option.disabled}
22
+ onClick={option.onSelect}
23
+ />
24
+ </span>
25
+ </Tooltip>
26
+ ))}
27
+ <Tooltip title={removal.hints ?? ''}>
28
+ <span>
29
+ <Button disabled={removal.disabled} onClick={removal.remove}>
30
+ Remove
31
+ </Button>
32
+ </span>
33
+ </Tooltip>
34
+ </Stack>
35
+ )
36
+ }
37
+
38
+ export default phx.frontend.createCustomPhoenixEntityElement('BaseToolbar', ({ entityId }) => {
39
+ // Narrow the untyped id to a Base before using the typed hooks
40
+ const base = phx.frontend.useCommittedState().entities.find(entity => entity.id === entityId)
41
+
42
+ return base?.type === 'Base' ? <Toolbar base={base} /> : <></>
43
+ })
44
+ \`\`\``;export const generatePhoenixControlHooksFeature=()=>e({path:"features/domain-controls/control-hooks.md",title:"Control hooks",summary:"The hooks of each control component, recipes and deletion, with arguments, return shapes and the dry-run contract; read when a custom element reads or writes a control.",whenToUse:"Read when a custom element reads or writes a control component: which hook serves which control, its arguments and return shape, and how it previews, commits and dry-runs. [Custom controls](custom-controls.md) covers where the element lives, how the layout mounts it and the write path for other changes.",capabilities:"### The contract\n\n- Call a hook with the entity's id and the instance name of its control component, plus optional `fixableViolations`, which only hides those violation types from hints. The single-instance hooks below throw when that entity has no such instance, a filtered-out one included.\n- Every option is dry-run in advance: `disabled` (or `error`) and `hint` follow [Violations](../state/violations.md), and the current option's `onSelect` does nothing. Each dry run runs every transformer and invariant ([Updates and dry runs](../state/updates.md)), so mount long option lists only while they are open.\n- Titles, descriptions and labels are localizable: resolve them with `phx.frontend.useResolveLocalizable()`.\n- The recipe and deletion hooks are typed with the project's entity ids: pass an id narrowed from the state, such as `base.id`, not an element's untyped `entityId`.\n\n### Pick a value\n\n- `phx.frontend.useAttributeSelection(entityId, name)` returns `{ value, options }`, each option `{ value, title, description, imageSrc, disabled, hint, onSelect }`: the spec's `label` and `img` arrive as `title` and `imageSrc`.\n- `phx.frontend.useSwatchSelection(entityId, name, [])`, whose third argument is required, returns `{ value, options }`, each `{ swatchKey, swatchName, color, thumbnailUrl, selected, disabled, hint, onClick }`.\n- `phx.frontend.useAttributeSwitch(entityId, name)` returns `{ state, onChange, disabled, hint }`: `state.value` is the boolean, and `onChange()` writes its opposite.\n- `phx.frontend.useChildEntitySelection(entityId, name)` returns `{ value, options }`, each `{ value, title, imageSrc, selected, error, hint, onSelect }`. `value` is the current child's id and `error` stands for `disabled`; it also throws when the current child is missing.\n- `phx.frontend.useDistanceDimensionSelection(entityId, name)` returns `{ value, valueWithUnit, unitLabel, options }`, each option `{ value, title, disabled, hint, onSelect }` with `title` formatted in the display unit.\n\n### Set a value continuously\n\n`phx.frontend.useDistanceDimension`, `phx.frontend.useGenericDimension`, `phx.frontend.useAngleDimension` and `phx.frontend.useTextValue` take `(entityId, name)` and return `{ value, hints, hasErrors, update, resolve }`, the numeric ones also `min` and `max`.\n\n- `update(value)` stages a preview that the scene renders; `resolve()` commits it, or rolls it back while it has errors. Call `update` on every change and `resolve` on release or blur, so a drag is one undo step.\n- Show `hints` when `hasErrors`. The numeric hooks always fill it, with the allowed range when nothing is wrong; `useTextValue` gives only the staged preview's hint, else `null`.\n- Distance: `value`, `min`, `max` and `update` use the display unit: the component's `displayUnit`, else the unit configurator users picked. `valueWithUnit`, `unitLabel`, `formatValue`, `parseValue` and `toDisplayUnit` format values and convert data-unit steps; `rollback()` drops the preview. `min` and `max` are `NaN` unless the component declares them.\n- Generic: `value`, `min` and `max` are rounded to the component's `decimalPlaces`, with its `unit` label. Angle: in the component's `unit`, degrees by default, with `unitLabel`.\n- Text: `update(event, text)` takes the text second, as MUI's `onChange` passes it.\n\n### Add, replace and delete\n\n- `phx.frontend.useGroupedRecipeOptions(entityId, instanceNames?)` returns one group per `childEntityRecipes` instance, `{ instanceName, label, description, recipes }`, each recipe `{ title, description, thumbnailUrl, disabled, tooltipTitle, handleClick }`. `phx.frontend.useReplaceEntityRecipeOptions(entityId, instanceNames?)` does the same for `replaceEntityRecipes`. Both return `[]` instead of throwing.\n- Recipes the element builds itself: `phx.frontend.useCookRecipes(parentId)` returns `cook(recipes, collection?)`, which returns `{ disabled, hints, create, recipes }`; `phx.frontend.useCookedRecipes(recipes, parentId, collection?)` cooks one memoized list. [Control components](control-components.md) explains `collection`.\n- Replace: `phx.frontend.useCookedReplaceRecipes(entityId, recipes, keepChildren?)` returns `{ disabled, hints, replace, recipes }` for one memoized list. `phx.frontend.useCookReplaceRecipes(entityId)` returns `cook(recipes)` with the same result, for several lists; leave out the cook function's second argument: it is typed as a collection but read as `keepChildren`.\n- Delete: `phx.frontend.useDeletedEntity(entityId)` returns `{ remove, disabled, hints }`; `phx.frontend.useDeleteEntity()` returns `(entityId) => { remove, disabled, hints }` for a list. Deleting removes the composed children too.",example:t,documentation:'Read each with `pnpm phoenix docs -r <path>`:\n\n- "Read and change the product" and "Put a control on the product" in `docs/layouts/custom-layout.mdx` — `useAttributeSelection` in a layout panel and in a hotspot.\n- `docs/controls/custom.mdx` — `useUpdatedControl` and `useCookedRecipes` in elements.\n- `docs/dimensions/input-controls/distance-slider.mdx`, `docs/dimensions/basic-concepts/dimension-unit-config.mdx` — the unit rules the distance hooks share.\n- "Controls" and "Recipes & Entity Creation" in `docs/phoenix/configurator-interface.mdx` — the main control, recipe and deletion hooks with a sample call each.',phxMembers:["frontend.useAttributeSelection","frontend.useSwatchSelection","frontend.useAttributeSwitch","frontend.useChildEntitySelection","frontend.useDistanceDimensionSelection","frontend.useDistanceDimension","frontend.useGenericDimension","frontend.useAngleDimension","frontend.useTextValue","frontend.useGroupedRecipeOptions","frontend.useReplaceEntityRecipeOptions","frontend.useCookRecipes","frontend.useCookedRecipes","frontend.useCookReplaceRecipes","frontend.useCookedReplaceRecipes","frontend.useDeletedEntity","frontend.useDeleteEntity"]});
@@ -0,0 +1,3 @@
1
+ import { type PhoenixGuide } from '../../guide.js';
2
+ /** Building the project's own control elements: where they live, how the layout mounts them, and the write path. */
3
+ export declare const generatePhoenixCustomControlsFeature: () => PhoenixGuide;
@@ -0,0 +1,74 @@
1
+ import{createPhoenixFeatureGuide as e}from"../../guide.js";let t=`A desk panel the layout shows while a desk is selected, over the two control components of [Control components](control-components.md). A frame colour or a width that would break an invariant is disabled or shows its message while dragging, and the width rolls back on release.
2
+
3
+ \`\`\`yaml
4
+ # spec/controls.yaml
5
+ components:
6
+ Desk:
7
+ attributeSelection:
8
+ frameColor:
9
+ value:
10
+ $bind: frameColor
11
+ options:
12
+ - { label: Grey, value: Grey }
13
+ - { label: Black, value: Black }
14
+ distanceDimension:
15
+ width:
16
+ min: 1200
17
+ max: 2000
18
+ value:
19
+ $bind: width
20
+ \`\`\`
21
+
22
+ \`\`\`tsx
23
+ // src/_shared/DeskControls.tsx
24
+ import { Button, Slider, Stack, Tooltip, Typography } from '@mui/material'
25
+
26
+ export const DeskControls = ({ deskId }: { readonly deskId: Desk['id'] }) => {
27
+ const resolve = phx.frontend.useResolveLocalizable()
28
+ const frame = phx.frontend.useAttributeSelection(deskId, 'frameColor')
29
+ // value, min and max are in the display unit, not the data unit
30
+ const width = phx.frontend.useDistanceDimension(deskId, 'width')
31
+
32
+ return (
33
+ <Stack spacing={2}>
34
+ <Stack direction="row" spacing={1}>
35
+ {frame.options.map(option => (
36
+ <Tooltip key={String(option.value)} title={option.hint ?? ''}>
37
+ <span>
38
+ <Button
39
+ variant={option.value === frame.value ? 'contained' : 'outlined'}
40
+ disabled={option.disabled}
41
+ onClick={option.onSelect}
42
+ >
43
+ {resolve(option.title)}
44
+ </Button>
45
+ </span>
46
+ </Tooltip>
47
+ ))}
48
+ </Stack>
49
+ <Typography>Width {width.valueWithUnit}</Typography>
50
+ <Slider
51
+ aria-label="Width"
52
+ min={width.min}
53
+ max={width.max}
54
+ value={width.value}
55
+ onChange={(_event, value) => typeof value === 'number' && width.update(value)}
56
+ onChangeCommitted={() => width.resolve()}
57
+ />
58
+ {width.hasErrors && <Typography color="error">{width.hints}</Typography>}
59
+ </Stack>
60
+ )
61
+ }
62
+ \`\`\`
63
+
64
+ \`\`\`tsx
65
+ // In src/elements/ConfiguratorLayout.tsx, inside the layout's own panel
66
+ import { DeskControls } from '../_shared/DeskControls.js'
67
+
68
+ const DeskPanel = () => {
69
+ const deskId = phx.frontend.useSelectedEntityId(phx.domain.enhancedModel.$Desk)
70
+ const { accessInfo } = phx.frontend.useAccessService()
71
+
72
+ return deskId !== null && !accessInfo.viewMode ? <DeskControls deskId={deskId} /> : null
73
+ }
74
+ \`\`\``;export const generatePhoenixCustomControlsFeature=()=>e({path:"features/domain-controls/custom-controls.md",title:"Custom controls",summary:"The project's own React element per control: where the file lives, registering spec-named elements, mounting it for the selected entity, read mode and the write path; read when rendering a control component.",whenToUse:"Read when a control component needs its UI: a panel in the project layout, a control next to a part on the product, or a change no single control component makes. [Control hooks](control-hooks.md) lists the hooks by job; [Updates and dry runs](../state/updates.md) covers writing the store directly.",capabilities:"### One element per control\n\n- Render each control component with the project's own React element, built from its control hook ([Control hooks](control-hooks.md)): `phx.frontend.useAttributeSelection(entityId, 'frameColor')` for an `attributeSelection` instance named `frameColor`, and so on.\n- Take a typed entity id as a prop, such as `Desk['id']`. Entity types are global in a project, like `phx`.\n- Group the elements of one entity type in a panel component when the layout shows them together.\n\n### Where the file lives\n\n- **Rendered by the layout** — a plain component in an underscore folder, such as `src/_shared/DeskControls.tsx`, with a named export. The layout imports it with a relative `.js` path. It needs no registration: the control hooks work anywhere inside the `ConfiguratorLayout`.\n- **Named by the spec** — an element that an `htmlHotspot`, `sceneEntityObjectHtmlHotspot` or `sceneEntityControl` names ([Scene controls](scene-controls.md)). Default-export `phx.frontend.createCustomPhoenixEntityElement('Name', ({ entityId }) => …)` from `src/elements/`; a file may export an array of registrations instead. It must return an element, `<></>` for nothing.\n- Every file in `src/elements/` outside an underscore folder must default-export a registration, so keep plain components out of it. An unregistered name in the spec renders a red \"not found\" box.\n- A spec-named element receives only `entityId`, untyped: find the entity in `phx.frontend.useCommittedState().entities` and narrow it by `type` before reading fields or calling the typed hooks. An element registered under a built-in kind name, such as the FAB factories of [Scene controls](scene-controls.md), also receives that kind's YAML props.\n\n### Mount it from the layout\n\n- Read the selected entity with `phx.frontend.useSelectedEntityId(phx.domain.enhancedModel.$Desk)`: the id while a desk is selected, else `null`. With nothing selected the root counts as selected.\n- `phx.frontend.useRootEntityId()` gives the root's id for controls that always show.\n- Render the panel only for an id of the right type, and only while `phx.frontend.useAccessService().accessInfo.viewMode` is `false`: no hook enforces read mode.\n- Mirror any `$filter` of the control component in the same condition, since the hook throws while its instance is filtered out ([Control components](control-components.md)).\n- [Scene and safe area](../custom-layout/scene-and-safe-area.md) has the layout skeleton with such a panel.\n\n### Write anything else\n\nWhen no control hook fits, such as a change to several fields or entities, build the updates with `phx.frontend.updates` ([Updates and dry runs](../state/updates.md)) and let a hook dry-run them:\n\n- `phx.frontend.useUpdatedControl(updates)` returns `{ disabled, hints, update }` for one update list. Memoize the list: every new array is a new dry run.\n- `phx.frontend.useUpdateControl()` returns `prepare(updates)`, which returns the same for each candidate, such as one per button.\n- `update()` stages and commits in one step, one undo entry; `disabled` and `hints` follow [Violations](../state/violations.md). Both hooks take `fixableViolations`, which only hides those types from `hints`.\n- Run a domain action the same way: `prepare(phx.frontend.useDomain().actionSystem.prepareAction(name, args, state).updates)`, with `state` from `phx.frontend.useCommittedState()`. `prepareAction` throws on arguments it rejects, so catch it and show its message; [Actions](../domain-model/actions.md) owns them.\n\n```tsx\nconst control = prepare([\n phx.frontend.updates.DomainEntityModification({\n entityId: deskId,\n stateDelta: { width: 1800, depth: 800 },\n updateTag: 'desk.sizePreset',\n }),\n])\n// <Button disabled={control.disabled} title={control.hints} onClick={control.update}>Large</Button>\n```\n\n### Look native\n\nThe project's element is the default. Inside it, the SDK's control components from `@salsita-ai/sdk/react`, such as `AttributeCardSelector` with `entityId` and `instanceName`, can render one control in the SDK's look, and `PropertyContainer` from `@salsita-ai/sdk/ui` gives section spacing and headings. None of these is on `phx`.",example:t,documentation:'Read each with `pnpm phoenix docs -r <path>`:\n\n- `docs/layouts/custom-layout.mdx` — "Read and change the product" (a control in the layout\'s panel, from `src/_shared/`) and "Put a control on the product" (a hotspot element).\n- `docs/controls/custom.mdx` — `useUpdatedControl` and `useCookedRecipes` in elements; skip its property-page attachment.\n- `docs/other-features/domain-actions.mdx` — "Run it from the UI": an action behind `useUpdateControl`.\n- "Updates Factory" in `docs/phoenix/configurator-interface.mdx` — `useUpdatedControl` and `useUpdateControl` with a worked element.',phxMembers:["frontend.createCustomPhoenixEntityElement","frontend.useUpdateControl","frontend.useUpdatedControl"]});
@@ -0,0 +1,3 @@
1
+ import { type PhoenixGuide } from '../../guide.js';
2
+ /** The domain controls index followed by its leaves. */
3
+ export declare const generatePhoenixDomainControlsGuides: () => readonly PhoenixGuide[];
@@ -0,0 +1,8 @@
1
+ import{createPhoenixIndexGuide as o}from"../../guide.js";import{generatePhoenixControlComponentsFeature as t}from"./control-components.js";import{generatePhoenixControlHooksFeature as e}from"./control-hooks.js";import{generatePhoenixCustomControlsFeature as n}from"./custom-controls.js";import{generatePhoenixSceneControlsFeature as s}from"./scene-controls.js";let r=`Domain controls let configurator users change the product. Each control has two halves:
2
+
3
+ - A **control component** in YAML, such as \`attributeSelection\` or \`distanceDimension\`, attached to an entity under an instance name. It binds the value and its options to the model and defines no UI.
4
+ - The project's own **React element**, which renders that component with a control hook. The project layout mounts it, such as in a panel for the selected entity, or the spec anchors it on the product.
5
+
6
+ Every control dry-runs its options, so one that would break the configuration is disabled with the reason. The spec does not describe the page: the layout around the controls, its tabs, steps and messages, belongs to [Custom project layout](../custom-layout/index.md).
7
+
8
+ Declare the component in Control components, build its element in Custom controls with the hooks of Control hooks, and use Scene controls for anchors, FABs and indicators on the product.`;export const generatePhoenixDomainControlsGuides=()=>{let c=[t(),n(),e(),s()];return[o({path:"features/domain-controls/index.md",title:"Domain controls",summary:"Controls that change the product: YAML control components, the project's React elements and their hooks, and in-scene controls; read when adding or changing how configurator users edit the product.",intro:r,guides:c,notes:[]}),...c]};
@@ -0,0 +1,3 @@
1
+ import { type PhoenixGuide } from '../../guide.js';
2
+ /** In-scene controls: hotspots, FABs, dimension indicators and 3D entity controls, and replacing the built-in look. */
3
+ export declare const generatePhoenixSceneControlsFeature: () => PhoenixGuide;
@@ -0,0 +1,48 @@
1
+ import{createPhoenixFeatureGuide as e}from"../../guide.js";let t=`Shelves with the SDK's in-scene controls, placed by the spec and restyled once for the brand. The delete FAB keeps its dry run: it is disabled with the reason while removing the shelf would break an invariant.
2
+
3
+ \`\`\`yaml
4
+ # spec/scene-controls.yaml
5
+ components:
6
+ Cabinet:
7
+ sceneEntityAddFab:
8
+ shelves:
9
+ $filter:
10
+ modes: [owner]
11
+ instanceNames: [shelves]
12
+ skipMenuWhenOnlyOne: true
13
+ hideWhenNone: true
14
+ title: Add a shelf
15
+ offsetY: 900
16
+ Shelf:
17
+ sceneEntityDeleteFab:
18
+ main:
19
+ $filter:
20
+ modes: [owner]
21
+ title: Remove shelf
22
+ offsetY:
23
+ $eval: self.height + 40
24
+ hideWhileDragging: true
25
+ \`\`\`
26
+
27
+ \`\`\`tsx
28
+ // src/elements/DeleteEntityFab.tsx
29
+ import { Fab, Tooltip } from '@mui/material'
30
+
31
+ export default phx.frontend.createDeleteEntityFab(({ onDelete, disabled, disabledHint, title }) => {
32
+ const resolve = phx.frontend.useResolveLocalizable()
33
+ const label = resolve(title) ?? 'Remove'
34
+
35
+ return (
36
+ <Tooltip title={disabledHint ?? label}>
37
+ {/* A disabled button fires no events, so the span carries the tooltip */}
38
+ <span>
39
+ <Fab size="small" color="primary" aria-label={label} disabled={disabled} onClick={onDelete}>
40
+ \xd7
41
+ </Fab>
42
+ </span>
43
+ </Tooltip>
44
+ )
45
+ })
46
+ \`\`\`
47
+
48
+ \`onDelete\` already stops the click's propagation and records the built-in analytics event.`;export const generatePhoenixSceneControlsFeature=()=>e({path:"features/domain-controls/scene-controls.md",title:"Scene controls",summary:"Hotspots, FABs, editable dimension indicators and 3D entity controls, their placement, and replacing the built-in look; read when putting a control on the product.",whenToUse:"Read when configurator users should act on the product itself: select a part or go to a step from a hotspot, add or delete from a FAB, edit a dimension in the scene, switch tools, or open a project control next to a part. These controls write the same control components as the project's elements ([Control components](control-components.md)).",capabilities:"### Choose the control\n\n- **Select a part** — `sceneEntitySelectHotspot`. Selection itself belongs to [Selection and hover](../application-states/selection.md).\n- **Go to a navigation state** — `sceneEntityNavigationHotspot` with `navigationState` (required), `pushToStack` and `canStackOnto`; [Navigation states](../application-states/navigation.md) owns the stack.\n- **Add children** — `sceneEntityAddFab` offers the entity's `childEntityRecipes`: `instanceNames` narrows them, `skipMenuWhenOnlyOne` adds a single recipe directly, `hideWhenNone` hides an empty FAB, `label` and `icon` style it, and `hiddenViolations` drops those types from its hints.\n- **Delete the entity** — `sceneEntityDeleteFab` with `icon` and `title`. Its YAML schema rejects `label` and `hiddenViolations`.\n- **Switch tools** — `toolMenuFab` with `title` and `options` of `{ label, icon?, toolState }`; [View and tool states](../application-states/views-and-tools.md) owns tools.\n- **Edit a dimension on the product** — the editable indicators open an input for the component they target. `editableDistanceDimensionIndicator` (`targetDimension`, a `distanceDimension` instance), `listSelectorDimensionIndicator` (`targetDistanceDimensionSelect`) and `editableSizeIndicator` (`targetSize`) draw a dimension line from `startX/Y/Z` to `endX/Y/Z`. `editableAngleIndicator` targets an `angleDimension` and is placed by `positionX/Y/Z`, `startAngle` and `sweepAngle`.\n- `editableOffsetIndicator` has no start and end: it requires `targetOffset`, `targetEntityOffsetAnchors`, `targetReferenceOffsetAnchors` and `directionVector`. `dimensionIndicator`, `angleIndicator` and `offsetIndicator` only show the value.\n- **A project control on the product** — `htmlHotspot` with `name`, a project element ([Custom controls](custom-controls.md)), or `sceneEntityObjectHtmlHotspot` with `target`, a `sceneEntityRemoteObject` instance whose animation it follows, offsets in that object's local space and units.\n- **3D content on an entity** — `sceneEntityControl` with `name`: the element renders inside the WebGL scene, so it returns React Three Fiber objects, such as drei's `Billboard` and `Text`, not DOM. It stays out of camera fitting unless `includeInCameraFit: true`.\n\nPrefer the built-in control for its job and restyle it (below); an `htmlHotspot` is for a control the SDK has none of.\n\n### Place and show\n\n- `offsetX`, `offsetY` and `offsetZ` are measured from the entity's origin in the distance data unit; `screenOffsetHorizontal` and `screenOffsetVertical` shift the control in pixels. `$read` or `$eval` an offset that follows a size.\n- `showWhen` takes `selected` and `unselected`. Defaults: `[selected]` for the add and delete FABs, `[unselected]` for the selection and navigation hotspots and the tool menu; an `htmlHotspot` shows in both.\n- `hideWhileDragging` hides the control while an entity is dragged. `azimuthAngleLimits` and `polarAngleLimits` (radians) and `distanceLimits` fade it outside `{ min, max, smoothZone?, minOpacity? }`.\n- Give an icon-only FAB or hotspot a `title`; `tooltipVisibility` is `on-hover` (default), `forced`, `forced-when-still` or `hidden`.\n- `$filter` decides when the control exists: `modes: [owner]` keeps editing controls from viewers, `navigationStates` ties them to a step. [Components](../domain-model/components.md) owns filters.\n- `controlHotspot: true` on an `htmlHotspot` hides it while a change is previewed, so its dry runs never read a stale state; the add and delete FABs always behave so. It also unmounts an open popover on every change: leave it off for a hotspot whose menu stays open while users compare options. `inert: true` makes an `htmlHotspot` ignore the pointer.\n\n### Elements in the scene\n\n- In-scene elements get the theme and every `phx.frontend` hook; MUI popovers and tooltips work inside them.\n- Stop a click inside a project control from reaching the scene with `event.stopPropagation()`, or it also changes the selection. The `onDelete`, `onSelect` and `onNavigate` props below already do; a recipe's `handleClick` does not.\n- The scene's HTML sits under the layout's panels, so a covered control cannot be clicked.\n\n### Replace a built-in control's look\n\nEach helper registers the element the scene renders for one component, everywhere the spec places it, in the built-in layout and in a project layout. The spec keeps the position, visibility, filters and tooltip settings. Pass a component `(props) => JSX.Element | null` (`null` shows nothing) and default-export the registration, or an array of registrations, from a file in `src/elements/`:\n\n- `phx.frontend.createAddEntityFab(Component)` — replaces `AddEntityFab`, for `sceneEntityAddFab`. Props: `entityId`, `instanceNames`, `fixableViolations` (the spec's `hiddenViolations`), `icon`, `label`, `title`, `tooltipVisibility`, `skipMenuWhenOnlyOne`, `hideWhenNone`. It gets no recipes: read them with `phx.frontend.useGroupedRecipeOptions(entityId, instanceNames, fixableViolations)` in the menu, mounted only while open, since every recipe is a dry run.\n- `phx.frontend.createDeleteEntityFab(Component)` — replaces `DeleteEntityFab`. Props: `entityId`, `onDelete`, `disabled`, `disabledHint`, `trace` (logs the dry run), `icon`, `label`, `title`, `tooltipVisibility`.\n- `phx.frontend.createSelectionHotspot(Component)` — replaces `SelectionHotspot`. Props: `entityId`, `onSelect`, `title`, `tooltipVisibility`.\n- `phx.frontend.createNavigationHotspot(Component)` — replaces `NavigationHotspot`. Props: `entityId`, `navigationState`, `onNavigate`, `title`, `tooltipVisibility`.\n- `phx.frontend.createToolMenuFab(Component)` — replaces `ToolMenuFab`. Props: `entityId`, `options`, `onSelectTool(toolState)`, `icon`, `title`, `tooltipVisibility`.\n\n`title` and `label` are localizable: resolve them with `phx.frontend.useResolveLocalizable()`. Registering these names with `createCustomPhoenixEntityElement` works too, but types only `entityId`. The dimension indicators have no replacement; build a different editor as an `htmlHotspot`.",example:t,documentation:'Read each with `pnpm phoenix docs -r <path>`:\n\n- "In-Scene Controls" in `docs/phoenix/configurator-interface.mdx` — the replaceable elements, their props and a complete replacement.\n- `docs/fabs/basic.mdx`, `docs/fabs/layout.mdx` — FAB settings, visibility and tooltips, and grouping controls with screen offsets.\n- `docs/controls/scene/html-hotspots.mdx`, `docs/controls/scene/object-html-hotspots.mdx`, `docs/controls/scene/custom-controls.mdx` (`sceneEntityControl`).\n- "Put a control on the product" in `docs/layouts/custom-layout.mdx` — a project hotspot with a popover.\n- `docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx` and its siblings in that folder, one per indicator (`pnpm phoenix docs -l` lists them).',phxMembers:["frontend.createAddEntityFab","frontend.createDeleteEntityFab","frontend.createSelectionHotspot","frontend.createNavigationHotspot","frontend.createToolMenuFab"]});
@@ -0,0 +1,3 @@
1
+ import { type PhoenixGuide } from '../../guide.js';
2
+ /** Named domain operations: declaration, implementation and running them from the UI or the assistant. */
3
+ export declare const generatePhoenixActionsFeature: () => PhoenixGuide;