@salsita-ai/sdk 0.50.0-develop.03ef51a292 → 0.50.0-develop.08837efd9c

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 (780) hide show
  1. package/README.md +2 -2
  2. package/dist/admin/create-admin-pages-from-spec.d.ts +1 -1
  3. package/dist/application-spec/core/components/component-filter.d.ts +53 -0
  4. package/dist/application-spec/core/components/component-filter.js +1 -0
  5. package/dist/application-spec/core/components/index.d.ts +2 -0
  6. package/dist/application-spec/core/components/index.js +1 -0
  7. package/dist/application-spec/core/components/sdk-code-ref.d.ts +9 -0
  8. package/dist/application-spec/core/components/sdk-code-ref.js +1 -0
  9. package/dist/application-spec/core/enhanced-json-value.d.ts +0 -68
  10. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  11. package/dist/application-spec/core/index.d.ts +1 -0
  12. package/dist/application-spec/core/index.js +1 -1
  13. package/dist/application-spec/core/json-value.d.ts +1 -1
  14. package/dist/application-spec/{core → enhanced-json}/eval-to-constant.d.ts +1 -1
  15. package/dist/application-spec/enhanced-json/index.d.ts +4 -0
  16. package/dist/application-spec/enhanced-json/index.js +1 -0
  17. package/dist/application-spec/enhanced-json/is-enhanced-json-array.d.ts +2 -0
  18. package/dist/application-spec/enhanced-json/is-enhanced-json-array.js +1 -0
  19. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.d.ts +18 -0
  20. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.js +1 -0
  21. package/dist/application-spec/enhanced-json/schema-from-value.d.ts +24 -0
  22. package/dist/application-spec/enhanced-json/schema-from-value.js +1 -0
  23. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.d.ts +14 -0
  24. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.js +1 -0
  25. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.d.ts +12 -0
  26. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.js +1 -0
  27. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.d.ts +13 -0
  28. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.js +1 -0
  29. package/dist/application-spec/errors/diagnostic-codes.d.ts +9 -0
  30. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  31. package/dist/application-spec/errors/diagnostic-messages.d.ts +12 -0
  32. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  33. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +8 -1
  34. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  35. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +4 -4
  36. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  37. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  38. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +56 -56
  39. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +1 -1
  40. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  41. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  42. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  43. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  44. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +11 -11
  45. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +1 -1
  46. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  47. package/dist/application-spec/generate-application/code/templates/domain-spec.js +12 -12
  48. package/dist/application-spec/generate-application/code/templates/domain.js +3 -3
  49. package/dist/application-spec/generate-application/code/templates/globals.js +5 -4
  50. package/dist/application-spec/generate-application/code/templates/index.d.ts +0 -7
  51. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  52. package/dist/application-spec/generate-application/code/templates/package-json.js +1 -1
  53. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +66 -42
  54. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +8 -2
  55. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +13 -14
  56. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +6 -8
  57. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +4 -3
  58. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -2
  59. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +1 -3
  60. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +1 -3
  61. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +1 -1
  62. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  63. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +2 -1
  64. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  65. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +2 -4
  66. package/dist/application-spec/index.d.ts +1 -0
  67. package/dist/application-spec/index.js +1 -1
  68. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  69. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  70. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +16 -3
  71. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  72. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  73. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  74. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  75. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  76. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  77. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  78. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  79. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  80. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  81. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  82. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  83. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  84. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  85. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  86. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  87. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  88. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  89. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  90. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  91. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  92. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  93. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  94. package/dist/client/authorized-client.d.ts +3 -1
  95. package/dist/client/authorized-client.js +1 -1
  96. package/dist/client/contract.d.ts +34 -0
  97. package/dist/client/contract.js +1 -1
  98. package/dist/client/index.d.ts +2 -2
  99. package/dist/client/index.js +1 -1
  100. package/dist/client/local-authorized-client.d.ts +3 -1
  101. package/dist/client/local-authorized-client.js +1 -1
  102. package/dist/client/memory-authorized-client.d.ts +3 -1
  103. package/dist/client/memory-authorized-client.js +1 -1
  104. package/dist/client/phoenix-api.d.ts +311 -2
  105. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  106. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  107. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  108. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +92 -3
  109. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  110. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  111. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  112. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +14 -4
  113. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  114. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  115. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  116. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  117. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  118. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  119. package/dist/configurator/common/configurator-interface.d.ts +5 -1
  120. package/dist/configurator/common/configurator-interface.js +1 -1
  121. package/dist/configurator/common/frontend-analytics.d.ts +2 -0
  122. package/dist/configurator/common/frontend-analytics.js +1 -1
  123. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +1 -1
  124. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +6 -0
  125. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  126. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  127. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  128. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  129. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  130. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  131. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  132. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  133. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  134. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  135. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +2 -1
  136. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -1
  137. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +1 -1
  138. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  139. package/dist/configurator/ui/assistant/AssistantThread.d.ts +6 -2
  140. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  141. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  142. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  143. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  144. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  145. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  146. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  147. package/dist/configurator/ui/assistant/entity-link/entity-link-target.d.ts +5 -0
  148. package/dist/configurator/ui/assistant/entity-link/entity-link-target.js +1 -0
  149. package/dist/configurator/ui/assistant/entity-link/index.d.ts +3 -0
  150. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  151. package/dist/configurator/ui/assistant/thread-items.d.ts +13 -2
  152. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  153. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  154. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  155. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  156. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  157. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.d.ts +101 -0
  158. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  159. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  160. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  161. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  162. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  163. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +0 -74
  164. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  165. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  166. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +4 -4
  167. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  168. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  169. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  170. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  171. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  172. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  173. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -2
  174. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +16 -19
  175. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  176. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  177. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  178. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  179. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  180. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  181. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  182. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  183. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  184. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  185. package/dist/docs/index.json +32 -1
  186. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  187. package/dist/docs/layouts/custom-layout.mdx +981 -0
  188. package/dist/docs/layouts/header/fixed.mdx +2 -2
  189. package/dist/docs/layouts/header/floating.mdx +2 -2
  190. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  191. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  192. package/dist/docs/other-features/side-effects.mdx +8 -11
  193. package/dist/docs/other-features/transformers.mdx +4 -0
  194. package/dist/docs/other-features/violation-messages.mdx +52 -56
  195. package/dist/docs/phoenix/configurator-interface.mdx +106 -65
  196. package/dist/docs/phoenix/deployments.mdx +1 -1
  197. package/dist/docs/phoenix/domain-model.mdx +4 -0
  198. package/dist/docs/phoenix/expression-context.mdx +11 -3
  199. package/dist/docs/phoenix/getting-started.mdx +1 -1
  200. package/dist/docs/phoenix/phoenix-cli.mdx +43 -47
  201. package/dist/docs/phoenix/project-structure.mdx +18 -11
  202. package/dist/docs/phoenix/quickstart.mdx +2 -2
  203. package/dist/docs/phoenix/sdk-builder-workflow.mdx +8 -8
  204. package/dist/docs/phoenix/testing.mdx +140 -0
  205. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  206. package/dist/docs/phoenix/webhooks.mdx +2 -2
  207. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  208. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -11
  209. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  210. package/dist/domain/admin-domain/index.d.ts +8 -3
  211. package/dist/domain/admin-domain/index.js +1 -1
  212. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  213. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  214. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  215. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  216. package/dist/domain/application/application-config.d.ts +7 -26
  217. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  218. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  219. package/dist/domain/application/assistant/assistant-manifest.d.ts +9 -1
  220. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +38 -2
  221. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -1
  222. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  223. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  224. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  225. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  226. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  227. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  228. package/dist/domain/application/assistant/index.d.ts +6 -1
  229. package/dist/domain/application/assistant/index.js +1 -1
  230. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  231. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  232. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  233. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  234. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +48 -0
  235. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  236. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  237. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  238. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  239. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  240. package/dist/domain/application/assistant-mutations.d.ts +2 -1
  241. package/dist/domain/application/assistant-recipe-groups.d.ts +1 -1
  242. package/dist/domain/application/configurator-builder.d.ts +2 -2
  243. package/dist/domain/application/configurator-builder.js +1 -1
  244. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  245. package/dist/domain/application/index.d.ts +2 -6
  246. package/dist/domain/application/index.js +1 -1
  247. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  248. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  249. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  250. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  251. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  252. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  253. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  254. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  255. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +3 -3
  256. package/dist/domain/application/published-data/map-published-data.d.ts +7 -3
  257. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  258. package/dist/domain/available-system-components.js +1 -1
  259. package/dist/domain/core/action/action-factory.d.ts +2 -2
  260. package/dist/domain/core/action/action.d.ts +19 -14
  261. package/dist/domain/core/action/index.d.ts +0 -1
  262. package/dist/domain/core/action/index.js +1 -1
  263. package/dist/domain/core/component/domain-component-optic.d.ts +29 -40
  264. package/dist/domain/core/component/domain-component-optic.js +2 -2
  265. package/dist/domain/core/component/legacy-filter.d.ts +2 -17
  266. package/dist/domain/core/component/system-component-filter.d.ts +36 -18
  267. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  268. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  269. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  270. package/dist/domain/core/data-schema/data-schema-field-object.js +1 -0
  271. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  272. package/dist/domain/core/data-schema/data-schema-field.js +1 -0
  273. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  274. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  275. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  276. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  277. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  278. package/dist/domain/core/data-schema/data-schema.js +1 -0
  279. package/dist/domain/core/data-schema/index.d.ts +7 -0
  280. package/dist/domain/core/data-schema/index.js +1 -0
  281. package/dist/domain/core/domain.d.ts +2 -2
  282. package/dist/domain/core/emission/index.d.ts +8 -0
  283. package/dist/domain/core/emission/index.js +1 -0
  284. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  285. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  286. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  287. package/dist/domain/core/emission/state-emission.js +1 -0
  288. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  289. package/dist/domain/core/emission/state-update-emission.js +1 -0
  290. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  291. package/dist/domain/core/emission/state-validation-result.js +1 -0
  292. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  293. package/dist/domain/core/emission/transformation-log.js +1 -0
  294. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  295. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  296. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  297. package/dist/domain/core/emission/transformer-log.js +1 -0
  298. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  299. package/dist/domain/core/emission/transformer-phase.js +1 -0
  300. package/dist/domain/core/expression/aliased-expressions.d.ts +10 -0
  301. package/dist/domain/core/expression/aliased-expressions.js +1 -0
  302. package/dist/domain/core/expression/constant-expressions.d.ts +16 -8
  303. package/dist/domain/core/expression/constant-expressions.js +1 -1
  304. package/dist/domain/core/expression/custom-expression.d.ts +21 -8
  305. package/dist/domain/core/expression/custom-expression.js +1 -1
  306. package/dist/domain/core/expression/expression.d.ts +15 -17
  307. package/dist/domain/core/expression/index.d.ts +1 -2
  308. package/dist/domain/core/expression/index.js +1 -1
  309. package/dist/domain/core/index.d.ts +4 -0
  310. package/dist/domain/core/index.js +1 -1
  311. package/dist/domain/core/invariant/custom-invariants.d.ts +8 -16
  312. package/dist/domain/core/invariant/index.d.ts +1 -1
  313. package/dist/domain/core/invariant/index.js +1 -1
  314. package/dist/domain/core/invariant/invariants.d.ts +4 -70
  315. package/dist/domain/core/invariant/invariants.js +1 -1
  316. package/dist/domain/core/invariant/violation.d.ts +51 -3
  317. package/dist/domain/core/invariant/violation.js +1 -1
  318. package/dist/domain/core/recipe/index.d.ts +1 -0
  319. package/dist/domain/core/recipe/index.js +1 -0
  320. package/dist/domain/core/recipe/recipes.d.ts +23 -0
  321. package/dist/domain/core/recipe/recipes.js +1 -0
  322. package/dist/domain/core/relation/all-of-type-relation.d.ts +19 -0
  323. package/dist/domain/core/relation/all-of-type-relation.js +1 -0
  324. package/dist/domain/{relations → core/relation}/component-factories.d.ts +1 -1
  325. package/dist/domain/core/relation/component-factories.js +1 -0
  326. package/dist/domain/{relations → core/relation}/composed-of.d.ts +1 -1
  327. package/dist/domain/core/relation/composed-of.js +1 -0
  328. package/dist/domain/core/relation/direct-relation.d.ts +17 -0
  329. package/dist/domain/core/relation/index.d.ts +8 -0
  330. package/dist/domain/core/relation/index.js +1 -0
  331. package/dist/domain/core/relation/indirect-relation.d.ts +25 -0
  332. package/dist/domain/core/relation/indirect-relation.js +1 -0
  333. package/dist/domain/{relations → core/relation}/reference-component.d.ts +4 -3
  334. package/dist/domain/core/relation/reference-component.js +1 -0
  335. package/dist/domain/{relations → core/relation}/reference-field.d.ts +1 -1
  336. package/dist/domain/core/relation/reference-field.js +1 -0
  337. package/dist/domain/core/relation/relation-factory.d.ts +22 -0
  338. package/dist/domain/core/relation/relation-factory.js +1 -0
  339. package/dist/domain/core/state/migrations.d.ts +14 -45
  340. package/dist/domain/core/state/migrations.js +1 -1
  341. package/dist/domain/core/state/state.d.ts +1 -1
  342. package/dist/domain/domain-builder.d.ts +2 -5
  343. package/dist/domain/domain-builder.js +1 -1
  344. package/dist/domain/domain-context/action-system/action-system.d.ts +2 -2
  345. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  346. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  347. package/dist/domain/domain-context/action-system/index.js +1 -0
  348. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  349. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  350. package/dist/domain/domain-context/create-transformer.d.ts +1 -1
  351. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +2 -2
  352. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  353. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  354. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  355. package/dist/domain/domain-context/domain-context-systems.d.ts +7 -7
  356. package/dist/domain/domain-context/index.d.ts +8 -18
  357. package/dist/domain/domain-context/index.js +1 -1
  358. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  359. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  360. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +2 -3
  361. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  362. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +1 -1
  363. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  364. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  365. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +2 -3
  366. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  367. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +2 -2
  368. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +2 -2
  369. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.js +1 -1
  370. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +2 -2
  371. package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
  372. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  373. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  374. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +2 -2
  375. package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
  376. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  377. package/dist/domain/domain-context/store-system/index.js +1 -0
  378. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  379. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -35
  380. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  381. package/dist/domain/domain-context/store-system/system-state.d.ts +1 -1
  382. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  383. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +5 -7
  384. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  385. package/dist/domain/domain-context/transformers/chain-builder.d.ts +1 -1
  386. package/dist/domain/domain-context/transformers/context.d.ts +2 -3
  387. package/dist/domain/domain-context/transformers/context.js +1 -1
  388. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  389. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  390. package/dist/domain/domain-context/transformers/index.js +1 -1
  391. package/dist/domain/domain-context/transformers/when-builder.d.ts +2 -3
  392. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  393. package/dist/domain/domain-context/undo-system.d.ts +2 -3
  394. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  395. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  396. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  397. package/dist/domain/domain-runtime/access/types.js +1 -1
  398. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  399. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  400. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  401. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  402. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  403. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  404. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  405. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  406. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +19 -23
  407. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  408. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  409. package/dist/domain/domain-runtime/domain-runtime.d.ts +84 -68
  410. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +19 -0
  411. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  412. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  413. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  414. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  415. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  416. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  417. package/dist/domain/domain-runtime/errors/index.js +1 -0
  418. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  419. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  420. package/dist/domain/domain-runtime/index.d.ts +1 -0
  421. package/dist/domain/domain-runtime/index.js +1 -1
  422. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  423. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  424. package/dist/domain/domain-runtime/spec/index.d.ts +5 -0
  425. package/dist/domain/domain-runtime/spec/index.js +1 -1
  426. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  427. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  428. package/dist/domain/{core/expression → domain-runtime/spec}/memoize-expression.d.ts +1 -2
  429. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +2 -2
  430. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  431. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +1 -1
  432. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  433. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  434. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  435. package/dist/domain/{project-modules → domain-runtime/spec/module-checks}/project-modules.d.ts +8 -17
  436. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  437. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  438. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  439. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  440. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  441. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  442. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  443. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  444. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  445. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  446. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  447. package/dist/domain/{core/action → domain-runtime/spec}/prepare-action-implementations.d.ts +1 -1
  448. package/dist/domain/domain-runtime/spec/prepare-action-implementations.js +5 -0
  449. package/dist/domain/{core/expression → domain-runtime/spec}/prepare-domain-expressions.d.ts +1 -1
  450. package/dist/domain/domain-runtime/spec/selectors.d.ts +5 -6
  451. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  452. package/dist/domain/domain-runtime/spec/types.d.ts +3 -2
  453. package/dist/domain/{system-components → extensions}/canvas-config.d.ts +1 -1
  454. package/dist/domain/{system-components → extensions}/child-entity-recipe-hierarchy.d.ts +1 -1
  455. package/dist/domain/extensions/child-entity-recipe-hierarchy.js +1 -0
  456. package/dist/domain/{system-components → extensions}/client-side-image.d.ts +2 -2
  457. package/dist/domain/{system-components → extensions}/client-side-image.js +1 -1
  458. package/dist/domain/{system-components → extensions}/common/angle-indicator-schema.d.ts +3 -3
  459. package/dist/domain/extensions/common/angle-indicator-schema.js +1 -0
  460. package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.d.ts +2 -2
  461. package/dist/domain/extensions/common/index.d.ts +4 -0
  462. package/dist/domain/extensions/common/index.js +1 -0
  463. package/dist/domain/{system-components → extensions}/custom-header.d.ts +1 -1
  464. package/dist/domain/extensions/custom-header.js +1 -0
  465. package/dist/domain/{system-components → extensions}/custom-price-footer.js +1 -1
  466. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.d.ts +1 -1
  467. package/dist/domain/extensions/custom-sidebar-footer.js +1 -0
  468. package/dist/domain/{system-components → extensions}/editable-angle-indicator.d.ts +3 -2
  469. package/dist/domain/extensions/editable-angle-indicator.js +1 -0
  470. package/dist/domain/{system-components → extensions}/editable-distance-dimension-indicator.d.ts +3 -2
  471. package/dist/domain/extensions/editable-distance-dimension-indicator.js +1 -0
  472. package/dist/domain/{system-components → extensions}/editable-offset-indicator.d.ts +3 -2
  473. package/dist/domain/extensions/editable-offset-indicator.js +1 -0
  474. package/dist/domain/{system-components → extensions}/editable-size-indicator.d.ts +2 -1
  475. package/dist/domain/extensions/editable-size-indicator.js +1 -0
  476. package/dist/domain/{system-components → extensions}/entity-header.d.ts +1 -1
  477. package/dist/domain/extensions/entity-header.js +1 -0
  478. package/dist/domain/{system-components → extensions}/finalize-component.js +1 -1
  479. package/dist/domain/{system-components → extensions}/horizontal-tabs.d.ts +2 -2
  480. package/dist/domain/extensions/index.d.ts +69 -0
  481. package/dist/domain/extensions/index.js +1 -0
  482. package/dist/domain/{system-components → extensions}/list-selector-dimension-indicator.d.ts +3 -2
  483. package/dist/domain/extensions/list-selector-dimension-indicator.js +1 -0
  484. package/dist/domain/{system-components → extensions}/navigation-steps.d.ts +2 -2
  485. package/dist/domain/extensions/offset-indicator.js +1 -0
  486. package/dist/domain/{system-components → extensions}/property-page.d.ts +1 -1
  487. package/dist/domain/extensions/property-page.js +1 -0
  488. package/dist/domain/{system-components → extensions}/replace-entity-recipe-hierarchy.d.ts +1 -1
  489. package/dist/domain/extensions/replace-entity-recipe-hierarchy.js +1 -0
  490. package/dist/domain/{system-components → extensions}/rotation-handle.d.ts +2 -2
  491. package/dist/domain/{system-components → extensions}/save-template-thumbnail.d.ts +2 -2
  492. package/dist/domain/{system-components → extensions}/save-template-thumbnail.js +1 -1
  493. package/dist/domain/{system-components → extensions}/scene-entity-add-fab.d.ts +1 -1
  494. package/dist/domain/extensions/scene-entity-add-fab.js +1 -0
  495. package/dist/domain/{system-components → extensions}/scene-entity-delete-fab.d.ts +1 -1
  496. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -0
  497. package/dist/domain/{system-components → extensions}/scene-entity-html-hotspot.d.ts +1 -1
  498. package/dist/domain/extensions/scene-entity-html-hotspot.js +1 -0
  499. package/dist/domain/{system-components → extensions}/scene-entity-navigation-hotspot.d.ts +1 -1
  500. package/dist/domain/extensions/scene-entity-navigation-hotspot.js +1 -0
  501. package/dist/domain/{system-components → extensions}/scene-entity-object-html-hotspot.d.ts +1 -1
  502. package/dist/domain/extensions/scene-entity-object-html-hotspot.js +1 -0
  503. package/dist/domain/{system-components → extensions}/scene-entity-select-hotspot.d.ts +1 -1
  504. package/dist/domain/extensions/scene-entity-select-hotspot.js +1 -0
  505. package/dist/domain/{system-components → extensions}/sketching-edit.d.ts +1 -1
  506. package/dist/domain/extensions/sketching-edit.js +1 -0
  507. package/dist/domain/{system-components → extensions}/summary-component.js +1 -1
  508. package/dist/domain/{system-components → extensions}/tool-menu-fab.d.ts +1 -1
  509. package/dist/domain/extensions/tool-menu-fab.js +1 -0
  510. package/dist/domain/{system-components → extensions}/toolbar.d.ts +1 -1
  511. package/dist/domain/extensions/toolbar.js +1 -0
  512. package/dist/domain/index.d.ts +2 -6
  513. package/dist/domain/index.js +1 -1
  514. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  515. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  516. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +28 -19
  517. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  518. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  519. package/dist/domain/mocks/create-mock-domain.js +1 -1
  520. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  521. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  522. package/dist/domain/mocks/create-test-application-config.js +1 -0
  523. package/dist/domain/mocks/index.d.ts +1 -0
  524. package/dist/domain/mocks/index.js +1 -1
  525. package/dist/domain/projections/blender-projections/blender-projections.d.ts +1 -2
  526. package/dist/domain/projections/blender-projections/camera.d.ts +2 -2
  527. package/dist/domain/projections/collision-projections.d.ts +1 -1
  528. package/dist/domain/projections/composition-projections.d.ts +1 -1
  529. package/dist/domain/projections/composition-projections.js +1 -1
  530. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  531. package/dist/domain/projections/index.d.ts +1 -1
  532. package/dist/domain/projections/position-projections.d.ts +1 -1
  533. package/dist/domain/projections/projected-entities-projections.d.ts +1 -1
  534. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  535. package/dist/domain/projections/validation-projections.d.ts +3 -19
  536. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  537. package/dist/domain/system-components/application-config.d.ts +2 -2
  538. package/dist/domain/system-components/child-entity-selection.d.ts +1 -2
  539. package/dist/domain/system-components/collision-box-geometry.d.ts +4 -2
  540. package/dist/domain/system-components/collision-geometry.d.ts +4 -2
  541. package/dist/domain/system-components/collision-point-geometry.d.ts +4 -2
  542. package/dist/domain/system-components/common/index.d.ts +0 -4
  543. package/dist/domain/system-components/common/index.js +1 -1
  544. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  545. package/dist/domain/system-components/common/recipes.d.ts +1 -2
  546. package/dist/domain/system-components/constraint.d.ts +10 -23
  547. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  548. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -1
  549. package/dist/domain/system-components/index.d.ts +0 -68
  550. package/dist/domain/system-components/index.js +1 -1
  551. package/dist/domain/system-components/material-swatch.js +1 -1
  552. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  553. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  554. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  555. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  556. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  557. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  558. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  559. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  560. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  561. package/dist/domain/utils/eval-cache.d.ts +1 -1
  562. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  563. package/dist/domain/utils/memo-eval.d.ts +2 -2
  564. package/dist/editor/domain-editors/use-implementation-files.d.ts +1 -2
  565. package/dist/editor/mocks/EditorMockContext.js +1 -1
  566. package/dist/i18n/locales/cs/messages.js +1 -1
  567. package/dist/i18n/locales/da/messages.js +1 -1
  568. package/dist/i18n/locales/de/messages.js +1 -1
  569. package/dist/i18n/locales/de-AT/messages.js +1 -1
  570. package/dist/i18n/locales/en/messages.js +1 -1
  571. package/dist/i18n/locales/en-AU/messages.js +1 -1
  572. package/dist/i18n/locales/en-GB/messages.js +1 -1
  573. package/dist/i18n/locales/es/messages.js +1 -1
  574. package/dist/i18n/locales/fr/messages.js +1 -1
  575. package/dist/i18n/locales/hu/messages.js +1 -1
  576. package/dist/i18n/locales/it/messages.js +1 -1
  577. package/dist/i18n/locales/nl/messages.js +1 -1
  578. package/dist/i18n/locales/pl/messages.js +1 -1
  579. package/dist/i18n/locales/pt/messages.js +1 -1
  580. package/dist/i18n/locales/ro/messages.js +1 -1
  581. package/dist/i18n/locales/sk/messages.js +1 -1
  582. package/dist/i18n/locales/tr/messages.js +1 -1
  583. package/dist/legacy/domain-cli/gen/configurator-builder.js +13 -12
  584. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  585. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  586. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  587. package/dist/legacy/domain-cli/gen/invariants.js +7 -6
  588. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  589. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  590. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  591. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +16 -5
  592. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  593. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  594. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  595. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +1 -0
  596. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  597. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.d.ts +1 -1
  598. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
  599. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  600. package/dist/phoenix/commands/init.d.ts +4 -4
  601. package/dist/phoenix/commands/init.js +1 -1
  602. package/dist/phoenix/commands/prettier.js +1 -1
  603. package/dist/phoenix/utils/git/index.d.ts +1 -0
  604. package/dist/phoenix/utils/git/index.js +1 -0
  605. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  606. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  607. package/dist/phoenix/utils/index.d.ts +1 -0
  608. package/dist/phoenix/utils/index.js +1 -1
  609. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +2 -0
  610. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  611. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  612. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +53 -36
  613. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  614. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +9 -9
  615. package/dist/react-sdk/domain-context/index.d.ts +1 -1
  616. package/dist/react-sdk/domain-context/index.js +1 -1
  617. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +6 -0
  618. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  619. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  620. package/dist/ui-sdk/theme/types.d.ts +1 -1
  621. package/dist/webhook/builders/common.d.ts +5 -0
  622. package/dist/webhook/builders/webhook-builder.js +1 -1
  623. package/package.json +3 -3
  624. package/schema/domain-spec.json +209 -16
  625. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  626. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  627. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  628. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -90
  629. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  630. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  631. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  632. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  633. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  634. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  635. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  636. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  637. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  638. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  639. package/dist/domain/application/element-registration.js +0 -1
  640. package/dist/domain/application/handler-registration.js +0 -1
  641. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -23
  642. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  643. package/dist/domain/application/resource-builder.d.ts +0 -13
  644. package/dist/domain/application/resource-builder.js +0 -1
  645. package/dist/domain/core/action/prepare-action-implementations.js +0 -5
  646. package/dist/domain/domain-context/recipe-system/recipes.d.ts +0 -55
  647. package/dist/domain/domain-context/recipe-system/recipes.js +0 -1
  648. package/dist/domain/project-modules/index.d.ts +0 -1
  649. package/dist/domain/project-modules/index.js +0 -1
  650. package/dist/domain/project-modules/project-modules.js +0 -1
  651. package/dist/domain/relations/all-of-type-relation.d.ts +0 -30
  652. package/dist/domain/relations/all-of-type-relation.js +0 -1
  653. package/dist/domain/relations/component-factories.js +0 -1
  654. package/dist/domain/relations/composed-of.js +0 -1
  655. package/dist/domain/relations/direct-relation.d.ts +0 -27
  656. package/dist/domain/relations/indirect-relation.d.ts +0 -78
  657. package/dist/domain/relations/indirect-relation.js +0 -1
  658. package/dist/domain/relations/reference-component.js +0 -1
  659. package/dist/domain/relations/relation-factory.d.ts +0 -17
  660. package/dist/domain/relations/relation-factory.js +0 -1
  661. package/dist/domain/relations/relation-implementation.d.ts +0 -5
  662. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +0 -1
  663. package/dist/domain/system-components/common/angle-indicator-schema.js +0 -1
  664. package/dist/domain/system-components/custom-header.js +0 -1
  665. package/dist/domain/system-components/custom-sidebar-footer.js +0 -1
  666. package/dist/domain/system-components/editable-angle-indicator.js +0 -1
  667. package/dist/domain/system-components/editable-distance-dimension-indicator.js +0 -1
  668. package/dist/domain/system-components/editable-offset-indicator.js +0 -1
  669. package/dist/domain/system-components/editable-size-indicator.js +0 -1
  670. package/dist/domain/system-components/entity-header.js +0 -1
  671. package/dist/domain/system-components/list-selector-dimension-indicator.js +0 -1
  672. package/dist/domain/system-components/offset-indicator.js +0 -1
  673. package/dist/domain/system-components/property-page.js +0 -1
  674. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +0 -1
  675. package/dist/domain/system-components/scene-entity-add-fab.js +0 -1
  676. package/dist/domain/system-components/scene-entity-delete-fab.js +0 -1
  677. package/dist/domain/system-components/scene-entity-html-hotspot.js +0 -1
  678. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +0 -1
  679. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +0 -1
  680. package/dist/domain/system-components/scene-entity-select-hotspot.js +0 -1
  681. package/dist/domain/system-components/sketching-edit.js +0 -1
  682. package/dist/domain/system-components/tool-menu-fab.js +0 -1
  683. package/dist/domain/system-components/toolbar.js +0 -1
  684. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  685. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  686. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
  687. /package/dist/domain/{relations/reference-field.js → core/data-schema/data-cell-value.js} +0 -0
  688. /package/dist/domain/{relations/relation-implementation.js → core/data-schema/data-schema-array-field.js} +0 -0
  689. /package/dist/domain/{relations → core/relation}/direct-relation.js +0 -0
  690. /package/dist/domain/{core/expression → domain-runtime/spec}/memoize-expression.js +0 -0
  691. /package/dist/domain/{core/expression → domain-runtime/spec}/prepare-domain-expressions.js +0 -0
  692. /package/dist/domain/{system-components → extensions}/angle-indicator.d.ts +0 -0
  693. /package/dist/domain/{system-components → extensions}/angle-indicator.js +0 -0
  694. /package/dist/domain/{system-components → extensions}/attribute-switch.d.ts +0 -0
  695. /package/dist/domain/{system-components → extensions}/attribute-switch.js +0 -0
  696. /package/dist/domain/{system-components → extensions}/autorotate-camera-component.d.ts +0 -0
  697. /package/dist/domain/{system-components → extensions}/autorotate-camera-component.js +0 -0
  698. /package/dist/domain/{system-components → extensions}/basic-sidebar-footer.d.ts +0 -0
  699. /package/dist/domain/{system-components → extensions}/basic-sidebar-footer.js +0 -0
  700. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.d.ts +0 -0
  701. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.js +0 -0
  702. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.d.ts +0 -0
  703. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.js +0 -0
  704. /package/dist/domain/{system-components → extensions}/canvas-config.js +0 -0
  705. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.d.ts +0 -0
  706. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.js +0 -0
  707. /package/dist/domain/{system-components → extensions}/canvas-padding.d.ts +0 -0
  708. /package/dist/domain/{system-components → extensions}/canvas-padding.js +0 -0
  709. /package/dist/domain/{system-components → extensions}/canvas-preset-environment.d.ts +0 -0
  710. /package/dist/domain/{system-components → extensions}/canvas-preset-environment.js +0 -0
  711. /package/dist/domain/{system-components → extensions}/color-value.d.ts +0 -0
  712. /package/dist/domain/{system-components → extensions}/color-value.js +0 -0
  713. /package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.js +0 -0
  714. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.d.ts +0 -0
  715. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.js +0 -0
  716. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.d.ts +0 -0
  717. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.js +0 -0
  718. /package/dist/domain/{system-components → extensions}/custom-price-footer.d.ts +0 -0
  719. /package/dist/domain/{system-components → extensions}/dimension-indicator.d.ts +0 -0
  720. /package/dist/domain/{system-components → extensions}/dimension-indicator.js +0 -0
  721. /package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.d.ts +0 -0
  722. /package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.js +0 -0
  723. /package/dist/domain/{system-components → extensions}/finalize-action.d.ts +0 -0
  724. /package/dist/domain/{system-components → extensions}/finalize-action.js +0 -0
  725. /package/dist/domain/{system-components → extensions}/finalize-component.d.ts +0 -0
  726. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.d.ts +0 -0
  727. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.js +0 -0
  728. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.d.ts +0 -0
  729. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.js +0 -0
  730. /package/dist/domain/{system-components → extensions}/fixed-header.d.ts +0 -0
  731. /package/dist/domain/{system-components → extensions}/fixed-header.js +0 -0
  732. /package/dist/domain/{system-components → extensions}/floating-header.d.ts +0 -0
  733. /package/dist/domain/{system-components → extensions}/floating-header.js +0 -0
  734. /package/dist/domain/{system-components → extensions}/hidden-header.d.ts +0 -0
  735. /package/dist/domain/{system-components → extensions}/hidden-header.js +0 -0
  736. /package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.d.ts +0 -0
  737. /package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.js +0 -0
  738. /package/dist/domain/{system-components → extensions}/horizontal-tabs.js +0 -0
  739. /package/dist/domain/{system-components → extensions}/multilingual-text-value.d.ts +0 -0
  740. /package/dist/domain/{system-components → extensions}/multilingual-text-value.js +0 -0
  741. /package/dist/domain/{system-components → extensions}/navigation-steps.js +0 -0
  742. /package/dist/domain/{system-components → extensions}/offset-anchors.d.ts +0 -0
  743. /package/dist/domain/{system-components → extensions}/offset-anchors.js +0 -0
  744. /package/dist/domain/{system-components → extensions}/offset-indicator.d.ts +0 -0
  745. /package/dist/domain/{system-components → extensions}/offset.d.ts +0 -0
  746. /package/dist/domain/{system-components → extensions}/offset.js +0 -0
  747. /package/dist/domain/{system-components → extensions}/other-action.d.ts +0 -0
  748. /package/dist/domain/{system-components → extensions}/other-action.js +0 -0
  749. /package/dist/domain/{system-components → extensions}/read-sidebar-footer.d.ts +0 -0
  750. /package/dist/domain/{system-components → extensions}/read-sidebar-footer.js +0 -0
  751. /package/dist/domain/{system-components → extensions}/rotatable.d.ts +0 -0
  752. /package/dist/domain/{system-components → extensions}/rotatable.js +0 -0
  753. /package/dist/domain/{system-components → extensions}/rotation-handle.js +0 -0
  754. /package/dist/domain/{system-components → extensions}/scene-entity-animation.d.ts +0 -0
  755. /package/dist/domain/{system-components → extensions}/scene-entity-animation.js +0 -0
  756. /package/dist/domain/{system-components → extensions}/scene-entity-control.d.ts +0 -0
  757. /package/dist/domain/{system-components → extensions}/scene-entity-control.js +0 -0
  758. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.d.ts +0 -0
  759. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.js +0 -0
  760. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.d.ts +0 -0
  761. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.js +0 -0
  762. /package/dist/domain/{system-components → extensions}/selectable-component.d.ts +0 -0
  763. /package/dist/domain/{system-components → extensions}/selectable-component.js +0 -0
  764. /package/dist/domain/{system-components → extensions}/sidebar-tabs.d.ts +0 -0
  765. /package/dist/domain/{system-components → extensions}/sidebar-tabs.js +0 -0
  766. /package/dist/domain/{system-components → extensions}/simple-summary.d.ts +0 -0
  767. /package/dist/domain/{system-components → extensions}/simple-summary.js +0 -0
  768. /package/dist/domain/{system-components → extensions}/size.d.ts +0 -0
  769. /package/dist/domain/{system-components → extensions}/size.js +0 -0
  770. /package/dist/domain/{system-components → extensions}/sketching-draw.d.ts +0 -0
  771. /package/dist/domain/{system-components → extensions}/sketching-draw.js +0 -0
  772. /package/dist/domain/{system-components → extensions}/summary-component.d.ts +0 -0
  773. /package/dist/domain/{system-components → extensions}/text-value.d.ts +0 -0
  774. /package/dist/domain/{system-components → extensions}/text-value.js +0 -0
  775. /package/dist/domain/{system-components → extensions}/tool-controls.d.ts +0 -0
  776. /package/dist/domain/{system-components → extensions}/tool-controls.js +0 -0
  777. /package/dist/domain/{system-components → extensions}/universal-sidebar-footer.d.ts +0 -0
  778. /package/dist/domain/{system-components → extensions}/universal-sidebar-footer.js +0 -0
  779. /package/dist/domain/{system-components → extensions}/view-controls.d.ts +0 -0
  780. /package/dist/domain/{system-components → extensions}/view-controls.js +0 -0
@@ -145,7 +145,7 @@ interface HorizontalTab {
145
145
  /**
146
146
  * List of navigation states when the tab is active. First one will be used for activation.
147
147
  */
148
- readonly navigationStates: string[]
148
+ readonly navigationStates: readonly string[]
149
149
  }
150
150
  ```
151
151
 
@@ -158,7 +158,7 @@ type HorizontalTabsComponentState = {
158
158
  /**
159
159
  * List of tabs in the horizontal tabs.
160
160
  */
161
- readonly tabs: HorizontalTab[]
161
+ readonly tabs: readonly HorizontalTab[]
162
162
  }
163
163
  ```
164
164
 
@@ -110,11 +110,11 @@ The configuration uses these component types:
110
110
  ```typescript
111
111
  export interface NavigationStep {
112
112
  readonly label: Localizable
113
- readonly navigationStates: string[]
113
+ readonly navigationStates: readonly string[]
114
114
  }
115
115
 
116
116
  export type NavigationStepsComponentState = {
117
- readonly steps: NavigationStep[]
117
+ readonly steps: readonly NavigationStep[]
118
118
  }
119
119
  ```
120
120
 
@@ -0,0 +1,380 @@
1
+ # Sidebar in a Custom Layout
2
+
3
+ - [Use case](#use-case)
4
+ - [Guide](#guide)
5
+ - [Example](#example)
6
+ - [Known gaps](#known-gaps)
7
+ - [Test cases](#test-cases)
8
+ - [Complete Implementation](#complete-implementation)
9
+
10
+ ## Use case
11
+
12
+ A project wants the configurator arranged differently, for example with the sidebar on the left, but the sidebar itself is right as it is: the spec's tabs, property pages and sidebar footer, with their spacing, scrolling and empty states. The project writes its own layout, a `ConfiguratorLayout` element, and places the built-in sidebar in it as one piece, `LayoutSlots.DesktopSidebar`. The spec keeps describing what the sidebar shows; the layout only decides where it goes.
13
+
14
+ Build the sidebar's controls yourself instead when they have to look like the brand's own, as [Custom Layout](?path=/docs/layouts-custom-layout--docs) does; [Configurator Interface → Loaded Configuration UI](?path=/docs/phoenix-configurator-interface--docs#loaded-configuration-ui) lists what a project layout can use. Stay with the built-in layout when its arrangement fits: [Sidebar - General](?path=/docs/layouts-sidebar-general--docs) describes what the spec configures in the sidebar.
15
+
16
+ ## Guide
17
+
18
+ The layout registers itself under the name `ConfiguratorLayout` and mounts the scene, the safe area and the sidebar:
19
+
20
+ ```tsx
21
+ // src/elements/ConfiguratorLayout.tsx
22
+ import { LayoutSlots, useSceneSafeArea } from '@salsita-ai/sdk/configurator'
23
+
24
+ import { phx } from '../../.phoenix/phx.js'
25
+
26
+ const GUTTER = 24
27
+ const SIDEBAR_WIDTH = 380
28
+
29
+ const ConfiguratorLayout = () => {
30
+ const { containerRef, safeAreaRef } = useSceneSafeArea()
31
+ const isFullscreen = phx.frontend.useIsFullscreenActive()
32
+
33
+ return (
34
+ <div ref={containerRef} style={{ position: 'absolute', inset: 0 }}>
35
+ <LayoutSlots.Services />
36
+ <LayoutSlots.SharedCanvas />
37
+
38
+ {!isFullscreen && (
39
+ <aside
40
+ style={{
41
+ position: 'absolute',
42
+ insetBlock: GUTTER,
43
+ insetInlineStart: GUTTER,
44
+ inlineSize: SIDEBAR_WIDTH,
45
+ }}
46
+ >
47
+ <LayoutSlots.DesktopSidebar side="start" />
48
+ </aside>
49
+ )}
50
+
51
+ <div
52
+ ref={safeAreaRef}
53
+ style={{
54
+ position: 'absolute',
55
+ insetBlock: 0,
56
+ insetInlineStart: isFullscreen ? 0 : SIDEBAR_WIDTH + 2 * GUTTER,
57
+ insetInlineEnd: 0,
58
+ pointerEvents: 'none',
59
+ }}
60
+ >
61
+ <div style={{ position: 'absolute', insetBlockEnd: GUTTER, insetInlineStart: GUTTER, pointerEvents: 'auto' }}>
62
+ <LayoutSlots.DesktopToolbar />
63
+ </div>
64
+ </div>
65
+ </div>
66
+ )
67
+ }
68
+
69
+ export default phx.frontend.createCustomPhoenixLayoutElement('ConfiguratorLayout', ConfiguratorLayout)
70
+ ```
71
+
72
+ - **Size the container.** Without `width`, `LayoutSlots.DesktopSidebar` fills the width and height of its container. The layout positions the container above the canvas and gives it a size, here a fixed width and the full height less a gutter. The sidebar's content scrolls inside that height and its footer stays at the bottom.
73
+ - **Say which side it is on.** The sidebar's tabs sit outside it. With `side="start"` they sit on its right, toward the scene; the default, `side="end"`, puts them on its left, as in the built-in layout.
74
+ - **Frame the scene beside it.** `useSceneSafeArea()` measures the free region right of the sidebar, so the camera frames the table there.
75
+ - **Decide what fullscreen does.** In fullscreen the sidebar stays in place, transparent and inert. This layout removes it while `phx.frontend.useIsFullscreenActive()` is set and lets the safe area start at the left edge, so the table is framed in the whole canvas. The toolbar's fullscreen button sets the flag.
76
+ - **Read mode.** The same element renders a configuration shared for viewing. The sidebar handles read mode itself: it applies the spec's `$filter.modes`, so the tabs, which the spec limits to owners, are gone and the footer shows the price only. The banner that offers **Edit configuration** to a viewer is the layout's to mount: the built-in layout shows `LayoutSlots.DesktopReadonlyBanner` in read mode outside fullscreen, and it renders only when the spec sets `shareCloneToEdit` and the viewer's role may create configurations. This spec does not set it, so this layout mounts no banner.
77
+
78
+ `LayoutSlots.DesktopSidebar` takes two optional props:
79
+
80
+ | Prop | Type | Default | Meaning |
81
+ | ------- | -------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
82
+ | `width` | CSS width | none | Fixed inline size; the sidebar then takes its content's height unless its container stretches it. Without it the sidebar fills its container's width and height. |
83
+ | `side` | `'start'` \| `'end'` | `'end'` | The side of the layout the sidebar is on; its tabs sit on the other side of it. |
84
+
85
+ Its look follows the theme component `PhxDesktopSidebar`, as in the built-in layout, see [Theming](?path=/docs/phoenix-theming--docs).
86
+
87
+ ## Example
88
+
89
+ The spec is a table with one property, its edge finish, on a **Design** tab and a short text on a **Details** tab, and a price. Nothing in the YAML refers to the layout.
90
+
91
+ ## Known gaps
92
+
93
+ - The finalize button is disabled unless the spec configures `finalizeButton` or `finalizePage`, as in the built-in layout. A `finalizePage` is not shown by a project layout unless the layout renders it.
94
+ - `LayoutSlots.DesktopSidebar` is the desktop sidebar. At phone width a project layout needs its own arrangement, for example the `Mobile*` members of `LayoutSlots` in a drawer.
95
+ - The tabs overlap the scene beside the sidebar; the safe area in this example does not leave room for them.
96
+ - `miniSidebar` does not shrink the sidebar: the built-in layout does that, and here the sidebar fills its container. A layout that honours it reads `LayoutSlots.useSidebarContent().hasMiniSidebar` and gives the container no fixed height, anchored at the bottom for example, so the sidebar takes its content's height.
97
+
98
+ ## Test cases
99
+
100
+ - The sidebar sits on the left with its tabs on its right; the table is framed in the space right of the sidebar.
101
+ - **Design** shows the edge finishes; choosing one changes the table. **Details** shows the text.
102
+ - The footer shows the price and the finalize button.
103
+ - Fullscreen removes the sidebar and frames the table in the whole canvas; leaving it brings the sidebar back.
104
+ - With the **Read User** mock template the tabs are gone and the footer shows the price only.
105
+
106
+ ## Complete Implementation
107
+
108
+ {/* AUTO-GENERATED SECTION: This section is automatically updated by 'phoenix story build' */}
109
+
110
+ <details>
111
+ <summary>Click to view the complete implementation files</summary>
112
+
113
+ ### ./spec/domain.yaml
114
+
115
+ ```yaml
116
+ model:
117
+ latest:
118
+ entityTypes:
119
+ - Table
120
+ aliases:
121
+ RootEntity:
122
+ - Table
123
+ commonTypes:
124
+ EdgeFinish:
125
+ enum:
126
+ - None
127
+ - Facet
128
+ - Round
129
+ - TreeTrunk
130
+ shapes:
131
+ Table:
132
+ edgeFinish:
133
+ $ref: '#/model/latest/commonTypes/EdgeFinish'
134
+
135
+ presets:
136
+ - rootEntityType: 'Table'
137
+ initialDomainEntities:
138
+ - id: 'Table-1'
139
+ type: 'Table'
140
+ edgeFinish: 'None'
141
+
142
+ navigationStates:
143
+ - design
144
+ - details
145
+
146
+ invariants:
147
+ Table:
148
+ trunkDisabled:
149
+ types:
150
+ - 'trunkDisabled'
151
+
152
+ components:
153
+ Table:
154
+ propertyPage:
155
+ design:
156
+ $filter:
157
+ navigationStates:
158
+ - design
159
+ children:
160
+ - kind: propertyContainerGroup
161
+ props:
162
+ spacing: large
163
+ children:
164
+ - kind: propertyContainerItem
165
+ props:
166
+ title: Edge Finish
167
+ description: Select the edge finish for the table.
168
+ children:
169
+ - kind: attributeCardSelector
170
+ props:
171
+ instanceName: edgeFinish
172
+ details:
173
+ $filter:
174
+ navigationStates:
175
+ - details
176
+ children:
177
+ - kind: propertyContainerItem
178
+ props:
179
+ title: Dimensions
180
+ description: 1600 × 800 mm, 750 mm high. Solid oak top on powder-coated steel legs.
181
+ sidebarTabs:
182
+ main:
183
+ $filter:
184
+ modes:
185
+ - owner
186
+ tabs:
187
+ - label: Design
188
+ navigationStates:
189
+ - design
190
+ - label: Details
191
+ navigationStates:
192
+ - details
193
+ price:
194
+ main:
195
+ price: 1200
196
+ fitRootPerspectiveCamera:
197
+ main:
198
+ priority: 1
199
+ fov: 35
200
+ near: 100
201
+ far: 10000
202
+ minDistance: 1000
203
+ maxDistance: 9000
204
+ distance: 5000
205
+ azimuthAngle: 1.5
206
+ polarAngle: 1.1
207
+ fitMeshChanges: true
208
+ animateOnLoad: true
209
+ sceneEntityRemoteObject:
210
+ top:
211
+ fileUrl: '/models/tables.gltf'
212
+ objectName: RECHTHOEK_RECTANGLE
213
+ dimensionUnit: m
214
+ leg:
215
+ fileUrl: '/models/tables.gltf'
216
+ objectName: AXL_LEG
217
+ dimensionUnit: m
218
+ sceneEntityObjectProperties:
219
+ top:
220
+ offsetY: 820
221
+ morphTargetInfluences:
222
+ Facet:
223
+ value:
224
+ $read: $edgeFinishFacet
225
+ scaleOne: 1
226
+ scaleZero: 0
227
+ Bol:
228
+ value:
229
+ $read: $edgeFinishRound
230
+ scaleOne: 1
231
+ scaleZero: 0
232
+ Boomstamrand:
233
+ value:
234
+ $read: $edgeFinishTreeTrunk
235
+ scaleOne: 1
236
+ scaleZero: 0
237
+ leg:
238
+ morphTargetInfluences:
239
+ Length:
240
+ value: 1000
241
+ scaleOne: 3000
242
+ scaleZero: 1400
243
+ Width:
244
+ value: 700
245
+ scaleOne: 1300
246
+ scaleZero: 600
247
+ Height:
248
+ value: 780
249
+ scaleOne: 780
250
+ scaleZero: 740
251
+ attributeSelection:
252
+ edgeFinish:
253
+ value:
254
+ $bind: edgeFinish
255
+ options:
256
+ $read: $edgeFinishOptions
257
+ ```
258
+
259
+ ### ./src/elements/ConfiguratorLayout.tsx
260
+
261
+ ```tsx
262
+ import { LayoutSlots, useSceneSafeArea } from '@salsita-ai/sdk/configurator'
263
+
264
+ import { phx } from '../../.phoenix/phx.js'
265
+
266
+ const GUTTER = 24
267
+ const SIDEBAR_WIDTH = 380
268
+
269
+ const ConfiguratorLayout = () => {
270
+ const { containerRef, safeAreaRef } = useSceneSafeArea()
271
+ const isFullscreen = phx.frontend.useIsFullscreenActive()
272
+
273
+ return (
274
+ <div ref={containerRef} style={{ position: 'absolute', inset: 0 }}>
275
+ <LayoutSlots.Services />
276
+ <LayoutSlots.SharedCanvas />
277
+
278
+ {!isFullscreen && (
279
+ <aside
280
+ style={{
281
+ position: 'absolute',
282
+ insetBlock: GUTTER,
283
+ insetInlineStart: GUTTER,
284
+ inlineSize: SIDEBAR_WIDTH,
285
+ }}
286
+ >
287
+ <LayoutSlots.DesktopSidebar side="start" />
288
+ </aside>
289
+ )}
290
+
291
+ <div
292
+ ref={safeAreaRef}
293
+ style={{
294
+ position: 'absolute',
295
+ insetBlock: 0,
296
+ insetInlineStart: isFullscreen ? 0 : SIDEBAR_WIDTH + 2 * GUTTER,
297
+ insetInlineEnd: 0,
298
+ pointerEvents: 'none',
299
+ }}
300
+ >
301
+ <div style={{ position: 'absolute', insetBlockEnd: GUTTER, insetInlineStart: GUTTER, pointerEvents: 'auto' }}>
302
+ <LayoutSlots.DesktopToolbar />
303
+ </div>
304
+ </div>
305
+ </div>
306
+ )
307
+ }
308
+
309
+ export default phx.frontend.createCustomPhoenixLayoutElement('ConfiguratorLayout', ConfiguratorLayout)
310
+ ```
311
+
312
+ ### ./src/expressions/expressions.ts
313
+
314
+ ```ts
315
+ import { phx } from '../../.phoenix/phx.js'
316
+
317
+ export default phx.domain.implementCustomExpressions({
318
+ Table: {
319
+ $edgeFinishFacet: s => {
320
+ return s.edgeFinish === 'Facet' ? 1 : 0
321
+ },
322
+ $edgeFinishRound: s => {
323
+ return s.edgeFinish === 'Round' ? 1 : 0
324
+ },
325
+ $edgeFinishTreeTrunk: s => {
326
+ return s.edgeFinish === 'TreeTrunk' ? 1 : 0
327
+ },
328
+ $edgeFinishOptions: () => {
329
+ return [
330
+ {
331
+ label: 'None',
332
+ img: '/images/edge-none.png',
333
+ value: phx.domain.model.EdgeFinish.None,
334
+ },
335
+ {
336
+ label: 'Facet',
337
+ img: '/images/edge-facet.png',
338
+ value: phx.domain.model.EdgeFinish.Facet,
339
+ },
340
+ {
341
+ label: 'Round',
342
+ img: '/images/edge-round.png',
343
+ value: phx.domain.model.EdgeFinish.Round,
344
+ },
345
+ {
346
+ label: 'TreeTrunk',
347
+ img: '/images/edge-tree-trunk.png',
348
+ value: phx.domain.model.EdgeFinish.TreeTrunk,
349
+ },
350
+ ]
351
+ },
352
+ },
353
+ })
354
+ ```
355
+
356
+ ### ./src/invariants/invariants.ts
357
+
358
+ ```ts
359
+ import { phx } from '../../.phoenix/phx.js'
360
+
361
+ export default phx.domain.implementCustomInvariants({
362
+ Table: {
363
+ trunkDisabled: s => {
364
+ if (s.edgeFinish === 'TreeTrunk') {
365
+ return [
366
+ {
367
+ type: 'trunkDisabled',
368
+ severity: 'fatal',
369
+ message: 'TreeTrunk finish is disabled because stuff!',
370
+ },
371
+ ]
372
+ }
373
+
374
+ return []
375
+ },
376
+ },
377
+ })
378
+ ```
379
+
380
+ </details>
@@ -229,7 +229,7 @@ export type ClientSideImageComponentState = {
229
229
  /** Output format: PNG (with transparency) or JPEG */
230
230
  readonly fileFormat: 'PNG' | 'JPEG'
231
231
  /** Optional background color (hex string) */
232
- readonly backgroundColor?: string
232
+ readonly backgroundColor?: HexColor
233
233
 
234
234
  /** Tool state the image is rendered in (pins component filters keyed on tool state) */
235
235
  readonly toolState: string
@@ -32,17 +32,14 @@ finishNotAvailable:
32
32
  ```
33
33
 
34
34
  ```ts
35
- const violationExpressions = invariantBuilder
36
- .withInvariants(
37
- implementCustomInvariants({
38
- Plate: {
39
- finishNotAvailable: s => {
40
- return availableMaterials.some(state => state.material === s.material && state.finish === s.finish)
41
- },
42
- },
43
- })
44
- )
45
- .buildViolationExpressions()
35
+ // src/invariants/invariants.ts
36
+ export default phx.domain.implementCustomInvariants({
37
+ Plate: {
38
+ finishNotAvailable: s => {
39
+ return availableMaterials.some(state => state.material === s.material && state.finish === s.finish)
40
+ },
41
+ },
42
+ })
46
43
  ```
47
44
 
48
45
  With following control structure. The top input selects the material, the bottom one selects the finish.
@@ -433,6 +433,10 @@ The following sample application has all the above described transformers active
433
433
  - When the view changes to `Y`, the navigation state is changed to `C`.
434
434
  - When any entity is deselected in view `Z`, the view is changed to `X`.
435
435
 
436
+ The example's own tests under `__tests__/` check these cases with `createMockDomainContext` on the config
437
+ `createTestApplicationConfig` builds from the generated application; [Testing](?path=/docs/phoenix-testing--docs)
438
+ shows how a project's test sets that up.
439
+
436
440
  ## Complete Implementation
437
441
 
438
442
  {/* AUTO-GENERATED SECTION: This section is automatically updated by 'phoenix story build' */}
@@ -153,10 +153,10 @@ The `formatControlViolationMessage` function is where the magic happens. It rece
153
153
  3. **Actionable guidance**: Tell users exactly what values are valid or how to fix the problem
154
154
  4. **Consistent terminology**: Use the same terms and units throughout your application
155
155
 
156
- Implement violations with custom message formatting in your domain TypeScript file:
156
+ Implement violations with custom message formatting in a file of `src/invariants/`:
157
157
 
158
158
  ```typescript
159
- // domain/index.ts
159
+ // src/invariants/invariants.ts
160
160
 
161
161
  // Pre-define translatable labels for nested localization
162
162
  const colorLabels = {
@@ -166,60 +166,56 @@ const colorLabels = {
166
166
  yellow: msg`yellow`,
167
167
  } as const
168
168
 
169
- const violationExpressions = invariantBuilder
170
- .withInvariants(
171
- implementCustomInvariants({
172
- Scene: {
173
- itIsNotZero: s => {
174
- if (s.x !== 0) {
175
- return [
176
- {
177
- type: 'itIsNotZero',
178
- severity: 'fatal',
179
- message: 'Scene is not zero',
180
- controlViolationPriority: 1,
181
- formatControlViolationMessage: () => {
182
- return msg({
183
- message: `Scene is not zero: The position would be ${s.x} which is not equal to 0`,
184
- })
185
- },
186
- },
187
- ]
188
- }
189
- return []
190
- },
191
- // ... tooMuchRight omitted for brevity ...
192
-
193
- // Static violation: severity, message and controlViolationPriority
194
- // are declared in YAML. Implementation only returns a boolean.
195
- wayTooFarRight: s => s.x < 200,
196
-
197
- colorPositionIncompatible: s => {
198
- const compatibleColors = ['red', 'blue', 'green'] as const
199
- if (s.x >= 200 && !compatibleColors.includes(s.color)) {
200
- return [
201
- {
202
- type: 'colorPositionIncompatible',
203
- severity: 'fatal',
204
- message: 'Color is not compatible with far right position',
205
- controlViolationPriority: 3,
206
- formatControlViolationMessage: (_emission, { i18n }) => {
207
- const labels = new Intl.ListFormat(i18n.locale, {
208
- style: 'long',
209
- type: 'disjunction',
210
- }).format(compatibleColors.map(c => i18n.t(colorLabels[c])))
211
-
212
- return msg({ message: `Far right position is only available for ${labels}` })
213
- },
214
- },
215
- ]
216
- }
217
- return []
218
- },
219
- },
220
- })
221
- )
222
- .buildViolationExpressions()
169
+ export default phx.domain.implementCustomInvariants({
170
+ Buckyball: {
171
+ itIsNotZero: s => {
172
+ if (s.x !== 0) {
173
+ return [
174
+ {
175
+ type: 'itIsNotZero',
176
+ severity: 'fatal',
177
+ message: 'Scene is not zero',
178
+ controlViolationPriority: 1,
179
+ formatControlViolationMessage: () => {
180
+ return msg({
181
+ message: `Scene is not zero: The position would be ${s.x} which is not equal to 0`,
182
+ })
183
+ },
184
+ },
185
+ ]
186
+ }
187
+ return []
188
+ },
189
+ // ... tooMuchRight omitted for brevity ...
190
+
191
+ // Static violation: severity, message and controlViolationPriority
192
+ // are declared in YAML. Implementation only returns a boolean.
193
+ wayTooFarRight: s => s.x < 200,
194
+
195
+ colorPositionIncompatible: s => {
196
+ const compatibleColors = ['red', 'blue', 'green'] as const
197
+ if (s.x >= 200 && !compatibleColors.includes(s.color)) {
198
+ return [
199
+ {
200
+ type: 'colorPositionIncompatible',
201
+ severity: 'fatal',
202
+ message: 'Color is not compatible with far right position',
203
+ controlViolationPriority: 3,
204
+ formatControlViolationMessage: (_emission, { i18n }) => {
205
+ const labels = new Intl.ListFormat(i18n.locale, {
206
+ style: 'long',
207
+ type: 'disjunction',
208
+ }).format(compatibleColors.map(c => i18n.t(colorLabels[c])))
209
+
210
+ return msg({ message: `Far right position is only available for ${labels}` })
211
+ },
212
+ },
213
+ ]
214
+ }
215
+ return []
216
+ },
217
+ },
218
+ })
223
219
  ```
224
220
 
225
221
  ### Internationalization with Dynamic Content