@salsita-ai/sdk 0.50.0-develop.9cf426b400 → 0.50.0-develop.9db1e1f3bf

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 (1238) hide show
  1. package/README.md +3 -3
  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/expressions/index.d.ts +2 -0
  12. package/dist/application-spec/core/expressions/index.js +1 -0
  13. package/dist/application-spec/core/expressions/relation-expression-params.d.ts +11 -0
  14. package/dist/application-spec/core/expressions/sdk-expression-implementation.d.ts +24 -0
  15. package/dist/application-spec/core/expressions/sdk-expression-implementation.js +1 -0
  16. package/dist/application-spec/core/index.d.ts +2 -0
  17. package/dist/application-spec/core/index.js +1 -1
  18. package/dist/application-spec/core/json-value.d.ts +1 -1
  19. package/dist/application-spec/{core → enhanced-json}/eval-to-constant.d.ts +1 -1
  20. package/dist/application-spec/enhanced-json/index.d.ts +4 -0
  21. package/dist/application-spec/enhanced-json/index.js +1 -0
  22. package/dist/application-spec/enhanced-json/is-enhanced-json-array.d.ts +2 -0
  23. package/dist/application-spec/enhanced-json/is-enhanced-json-array.js +1 -0
  24. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.d.ts +18 -0
  25. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.js +1 -0
  26. package/dist/application-spec/enhanced-json/schema-from-value.d.ts +24 -0
  27. package/dist/application-spec/enhanced-json/schema-from-value.js +1 -0
  28. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.d.ts +14 -0
  29. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.js +1 -0
  30. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.d.ts +12 -0
  31. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.js +1 -0
  32. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.d.ts +13 -0
  33. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.js +1 -0
  34. package/dist/application-spec/errors/diagnostic-codes.d.ts +9 -0
  35. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  36. package/dist/application-spec/errors/diagnostic-messages.d.ts +12 -0
  37. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  38. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  39. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  40. package/dist/application-spec/generate-application/code/common/project-module-list.d.ts +8 -0
  41. package/dist/application-spec/generate-application/code/common/project-module-list.js +3 -0
  42. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  43. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +8 -1
  44. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  45. package/dist/application-spec/generate-application/code/templates/admin-domain-code.d.ts +1 -2
  46. package/dist/application-spec/generate-application/code/templates/admin-domain-code.js +6 -14
  47. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.d.ts +1 -2
  48. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.js +4 -4
  49. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.d.ts +1 -2
  50. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.js +7 -16
  51. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.d.ts +1 -2
  52. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.js +7 -9
  53. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.d.ts +2 -2
  54. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.js +1 -1
  55. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +4 -4
  56. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  57. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  58. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +56 -56
  59. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +1 -1
  60. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  61. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  62. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  63. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  64. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +11 -11
  65. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +1 -1
  66. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  67. package/dist/application-spec/generate-application/code/templates/domain-spec.js +12 -12
  68. package/dist/application-spec/generate-application/code/templates/domain.js +5 -5
  69. package/dist/application-spec/generate-application/code/templates/globals.js +5 -4
  70. package/dist/application-spec/generate-application/code/templates/index.d.ts +1 -7
  71. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  72. package/dist/application-spec/generate-application/code/templates/package-json.js +1 -1
  73. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  74. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +93 -41
  75. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +1 -1
  76. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +10 -4
  77. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  78. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.d.ts +1 -0
  79. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +6 -0
  80. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +40 -13
  81. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +19 -7
  82. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +9 -4
  83. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -2
  84. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +1 -3
  85. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +1 -3
  86. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +4 -3
  87. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.js +1 -1
  88. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +1 -1
  89. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  90. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +2 -1
  91. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  92. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +2 -4
  93. package/dist/application-spec/index.d.ts +1 -0
  94. package/dist/application-spec/index.js +1 -1
  95. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  96. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  97. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +16 -3
  98. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  99. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  100. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  101. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  102. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  103. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  104. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  105. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  106. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  107. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  108. package/dist/application-spec/parse-application-files/spec/expressions/expression.d.ts +1 -28
  109. package/dist/application-spec/parse-application-files/spec/expressions/expression.js +1 -1
  110. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +1 -1
  111. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  112. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  113. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  114. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  115. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  116. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  117. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  118. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  119. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  120. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  121. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  122. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  123. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  124. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.d.ts +3 -8
  125. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.js +1 -1
  126. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +9 -43
  127. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  128. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-server-settings.d.ts +2 -2
  129. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.d.ts +5 -21
  130. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  131. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  132. package/dist/client/authorized-client.d.ts +3 -1
  133. package/dist/client/authorized-client.js +1 -1
  134. package/dist/client/contract.d.ts +34 -0
  135. package/dist/client/contract.js +1 -1
  136. package/dist/client/index.d.ts +2 -2
  137. package/dist/client/index.js +1 -1
  138. package/dist/client/local-authorized-client.d.ts +3 -1
  139. package/dist/client/local-authorized-client.js +1 -1
  140. package/dist/client/memory-authorized-client.d.ts +3 -1
  141. package/dist/client/memory-authorized-client.js +1 -1
  142. package/dist/client/phoenix-api.d.ts +367 -30
  143. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  144. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  145. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  146. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +247 -13
  147. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  148. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.d.ts +85 -0
  149. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.js +1 -0
  150. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +8 -3
  151. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  152. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  153. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +4 -0
  154. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  155. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +30 -5
  156. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  157. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  158. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  159. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.d.ts +9 -0
  160. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.js +1 -0
  161. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  162. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +4 -2
  163. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  164. package/dist/configurator/common/configurator-interface.d.ts +11 -1
  165. package/dist/configurator/common/configurator-interface.js +1 -1
  166. package/dist/configurator/common/frontend-analytics.d.ts +23 -21
  167. package/dist/configurator/common/frontend-analytics.js +1 -1
  168. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +1 -1
  169. package/dist/configurator/index.d.ts +0 -1
  170. package/dist/configurator/index.js +1 -1
  171. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +6 -0
  172. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  173. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  174. package/dist/configurator/scene/scene-analytics/scene-analytics.d.ts +2 -2
  175. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  176. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  177. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  178. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  179. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  180. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  181. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  182. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  183. package/dist/configurator/ui/assistant/AssistantChips.d.ts +11 -0
  184. package/dist/configurator/ui/assistant/AssistantChips.js +1 -0
  185. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +7 -0
  186. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -0
  187. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -0
  188. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -0
  189. package/dist/configurator/ui/assistant/AssistantPanel.d.ts +11 -0
  190. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -0
  191. package/dist/configurator/ui/assistant/AssistantThread.d.ts +10 -0
  192. package/dist/configurator/ui/assistant/AssistantThread.js +1 -0
  193. package/dist/configurator/ui/assistant/assistant-failure.d.ts +18 -0
  194. package/dist/configurator/ui/assistant/assistant-failure.js +1 -0
  195. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  196. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  197. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  198. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  199. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  200. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  201. package/dist/configurator/ui/assistant/entity-link/entity-link-target.d.ts +5 -0
  202. package/dist/configurator/ui/assistant/entity-link/entity-link-target.js +1 -0
  203. package/dist/configurator/ui/assistant/entity-link/index.d.ts +3 -0
  204. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  205. package/dist/configurator/ui/assistant/index.d.ts +2 -0
  206. package/dist/configurator/ui/assistant/index.js +1 -0
  207. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +6 -0
  208. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -0
  209. package/dist/configurator/ui/assistant/theme.d.ts +2 -0
  210. package/dist/configurator/ui/assistant/theme.js +1 -0
  211. package/dist/configurator/ui/assistant/thread-items.d.ts +48 -0
  212. package/dist/configurator/ui/assistant/thread-items.js +1 -0
  213. package/dist/configurator/ui/assistant/tool-chip.d.ts +44 -0
  214. package/dist/configurator/ui/assistant/tool-chip.js +1 -0
  215. package/dist/configurator/ui/assistant/use-follow-stream.d.ts +17 -0
  216. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -0
  217. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.d.ts +5 -0
  218. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.js +1 -0
  219. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  220. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  221. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  222. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  223. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.d.ts +101 -0
  224. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  225. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  226. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  227. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  228. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  229. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  230. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  231. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  232. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  233. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +0 -74
  234. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  235. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  236. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.d.ts +2 -0
  237. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +3 -3
  238. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  239. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  240. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  241. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  242. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  243. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  244. package/dist/configurator/ui/legacy/mobile-controls/MobileControls.d.ts +1 -1
  245. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.d.ts +10 -0
  246. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -0
  247. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -2
  248. package/dist/configurator/ui/phoenix-layout-elements/index.d.ts +1 -0
  249. package/dist/configurator/ui/phoenix-layout-elements/index.js +1 -1
  250. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +100 -117
  251. package/dist/docs/complex-use-cases/navigation-reset-selection.mdx +18 -12
  252. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  253. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  254. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  255. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  256. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  257. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  258. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  259. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  260. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  261. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  262. package/dist/docs/index.json +42 -1
  263. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  264. package/dist/docs/layouts/custom-layout.mdx +1164 -0
  265. package/dist/docs/layouts/custom-price.mdx +14 -16
  266. package/dist/docs/layouts/header/fixed.mdx +2 -2
  267. package/dist/docs/layouts/header/floating.mdx +2 -2
  268. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  269. package/dist/docs/layouts/sidebar/tabs.mdx +24 -21
  270. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  271. package/dist/docs/layouts/toolbar.mdx +6 -0
  272. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  273. package/dist/docs/other-features/domain-actions.mdx +1 -1
  274. package/dist/docs/other-features/side-effects.mdx +76 -45
  275. package/dist/docs/other-features/transformers.mdx +5 -1
  276. package/dist/docs/other-features/violation-messages.mdx +52 -56
  277. package/dist/docs/phoenix/admin.mdx +9 -24
  278. package/dist/docs/phoenix/application-states.mdx +9 -7
  279. package/dist/docs/phoenix/configurator-interface.mdx +184 -80
  280. package/dist/docs/phoenix/deployments.mdx +1 -1
  281. package/dist/docs/phoenix/domain-model.mdx +4 -0
  282. package/dist/docs/phoenix/expression-context.mdx +11 -3
  283. package/dist/docs/phoenix/finalization.mdx +1 -1
  284. package/dist/docs/phoenix/getting-started.mdx +1 -1
  285. package/dist/docs/phoenix/layout-slots.mdx +114 -0
  286. package/dist/docs/phoenix/localization.mdx +3 -22
  287. package/dist/docs/phoenix/phoenix-cli.mdx +129 -50
  288. package/dist/docs/phoenix/project-structure.mdx +25 -11
  289. package/dist/docs/phoenix/quickstart.mdx +2 -2
  290. package/dist/docs/phoenix/sdk-builder-workflow.mdx +12 -11
  291. package/dist/docs/phoenix/testing.mdx +140 -0
  292. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  293. package/dist/docs/phoenix/webhooks.mdx +2 -2
  294. package/dist/docs/recipes-and-delete/recipe-hierarchy-selection.mdx +15 -13
  295. package/dist/docs/relations/hierarchy.mdx +13 -2
  296. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  297. package/dist/domain/admin-domain/__generated/enhanced-model.d.ts +1 -2
  298. package/dist/domain/admin-domain/__generated/model/versions/v1.d.ts +1 -1
  299. package/dist/domain/admin-domain/__generated/model/versions/v2.d.ts +1 -1
  300. package/dist/domain/admin-domain/__generated/model/versions/v3.d.ts +1 -1
  301. package/dist/domain/admin-domain/__generated/model/versions/v4.d.ts +1 -1
  302. package/dist/domain/admin-domain/__generated/model/versions/v5.d.ts +1 -1
  303. package/dist/domain/admin-domain/__generated/model/versions/v6.d.ts +2 -2
  304. package/dist/domain/admin-domain/__generated/model/versions/v6.js +1 -1
  305. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -14
  306. package/dist/domain/admin-domain/implementation/common-admin-migrations.d.ts +1 -1
  307. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  308. package/dist/domain/admin-domain/index.d.ts +9 -5
  309. package/dist/domain/admin-domain/index.js +1 -1
  310. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  311. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  312. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  313. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  314. package/dist/domain/application/application-config.d.ts +28 -97
  315. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  316. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  317. package/dist/domain/application/assistant/assistant-manifest.d.ts +71 -0
  318. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +131 -0
  319. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -0
  320. package/dist/domain/application/assistant/assistant-value-type.d.ts +9 -0
  321. package/dist/domain/application/assistant/assistant-value-type.js +1 -0
  322. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  323. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  324. package/dist/domain/application/assistant/build-assistant-manifest.d.ts +4 -0
  325. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -0
  326. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  327. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  328. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  329. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -0
  330. package/dist/domain/application/assistant/index.d.ts +9 -0
  331. package/dist/domain/application/assistant/index.js +1 -0
  332. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  333. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  334. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  335. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  336. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +48 -0
  337. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  338. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  339. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  340. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  341. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  342. package/dist/domain/application/assistant-field-options.d.ts +2 -3
  343. package/dist/domain/application/assistant-mutations.d.ts +3 -5
  344. package/dist/domain/application/assistant-mutations.js +1 -1
  345. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -7
  346. package/dist/domain/application/configurator-builder.d.ts +33 -18
  347. package/dist/domain/application/configurator-builder.js +1 -1
  348. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  349. package/dist/domain/application/index.d.ts +3 -6
  350. package/dist/domain/application/index.js +1 -1
  351. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  352. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  353. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  354. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  355. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  356. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  357. package/dist/domain/application/published-data/create-finalize-admin-domain.d.ts +1 -2
  358. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  359. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  360. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +3 -3
  361. package/dist/domain/application/published-data/map-published-data.d.ts +7 -4
  362. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  363. package/dist/domain/available-system-components.js +1 -1
  364. package/dist/domain/core/action/action-factory.d.ts +11 -0
  365. package/dist/domain/core/{action.d.ts → action/action.d.ts} +22 -18
  366. package/dist/domain/core/action/index.d.ts +2 -0
  367. package/dist/domain/core/action/index.js +1 -0
  368. package/dist/domain/{components → core/component}/component-reader-types.d.ts +1 -2
  369. package/dist/domain/{components → core/component}/debug-state-component.d.ts +1 -1
  370. package/dist/domain/core/component/debug-state-component.js +1 -0
  371. package/dist/domain/core/component/domain-component-optic.d.ts +65 -0
  372. package/dist/domain/core/component/domain-component-optic.js +16 -0
  373. package/dist/domain/{components → core/component}/drag-state-component.d.ts +1 -1
  374. package/dist/domain/core/component/drag-state-component.js +1 -0
  375. package/dist/domain/{components → core/component}/export-state-component.d.ts +1 -1
  376. package/dist/domain/core/component/export-state-component.js +1 -0
  377. package/dist/domain/{components → core/component}/fullscreen-state-component.d.ts +1 -1
  378. package/dist/domain/core/component/fullscreen-state-component.js +1 -0
  379. package/dist/domain/{components → core/component}/group-components-by-entity-id-and-name.d.ts +1 -2
  380. package/dist/domain/core/component/group-components-by-entity-id-and-name.js +1 -0
  381. package/dist/domain/{components → core/component}/hover-state-component.d.ts +1 -1
  382. package/dist/domain/core/component/hover-state-component.js +1 -0
  383. package/dist/domain/core/component/index.d.ts +18 -0
  384. package/dist/domain/core/component/index.js +1 -0
  385. package/dist/domain/{components → core/component}/legacy-filter.d.ts +4 -19
  386. package/dist/domain/{components → core/component}/navigation-state-component.d.ts +1 -1
  387. package/dist/domain/core/component/navigation-state-component.js +1 -0
  388. package/dist/domain/{components → core/component}/selection-state-component.d.ts +1 -1
  389. package/dist/domain/core/component/selection-state-component.js +1 -0
  390. package/dist/domain/{components → core/component}/system-component-builder.d.ts +1 -2
  391. package/dist/domain/core/component/system-component-builder.js +1 -0
  392. package/dist/domain/{components → core/component}/system-component-filter.d.ts +38 -20
  393. package/dist/domain/core/component/system-virtual-entity.js +1 -0
  394. package/dist/domain/{components → core/component}/tool-state-component.d.ts +1 -1
  395. package/dist/domain/core/component/tool-state-component.js +1 -0
  396. package/dist/domain/{components → core/component}/updates.d.ts +17 -2
  397. package/dist/domain/{components → core/component}/view-state-component.d.ts +1 -1
  398. package/dist/domain/core/component/view-state-component.js +1 -0
  399. package/dist/domain/{components → core/component}/viewport-state-component.d.ts +1 -1
  400. package/dist/domain/core/component/viewport-state-component.js +1 -0
  401. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  402. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  403. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  404. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  405. package/dist/domain/core/data-schema/data-schema-field.js +1 -0
  406. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  407. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  408. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  409. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  410. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  411. package/dist/domain/core/data-schema/data-schema.js +1 -0
  412. package/dist/domain/core/data-schema/index.d.ts +7 -0
  413. package/dist/domain/core/data-schema/index.js +1 -0
  414. package/dist/domain/core/decoder/create-decoder.d.ts +6 -0
  415. package/dist/domain/core/decoder/create-decoder.js +1 -0
  416. package/dist/domain/core/decoder/decoder.d.ts +6 -0
  417. package/dist/domain/core/decoder/decoder.js +1 -0
  418. package/dist/domain/core/decoder/index.d.ts +2 -0
  419. package/dist/domain/core/decoder/index.js +1 -0
  420. package/dist/domain/core/domain-factory.d.ts +4 -5
  421. package/dist/domain/core/domain-factory.js +1 -1
  422. package/dist/domain/core/domain.d.ts +4 -5
  423. package/dist/domain/core/domain.js +1 -1
  424. package/dist/domain/core/emission/index.d.ts +8 -0
  425. package/dist/domain/core/emission/index.js +1 -0
  426. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  427. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  428. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  429. package/dist/domain/core/emission/state-emission.js +1 -0
  430. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  431. package/dist/domain/core/emission/state-update-emission.js +1 -0
  432. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  433. package/dist/domain/core/emission/state-validation-result.js +1 -0
  434. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  435. package/dist/domain/core/emission/transformation-log.js +1 -0
  436. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  437. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  438. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  439. package/dist/domain/core/emission/transformer-log.js +1 -0
  440. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  441. package/dist/domain/core/emission/transformer-phase.js +1 -0
  442. package/dist/domain/core/expression/aliased-expressions.d.ts +10 -0
  443. package/dist/domain/core/expression/aliased-expressions.js +1 -0
  444. package/dist/domain/core/expression/constant-expressions.d.ts +16 -0
  445. package/dist/domain/core/expression/constant-expressions.js +1 -0
  446. package/dist/domain/core/expression/custom-expression.d.ts +25 -0
  447. package/dist/domain/core/expression/custom-expression.js +1 -0
  448. package/dist/domain/core/expression/expression.d.ts +46 -0
  449. package/dist/domain/core/expression/expression.js +1 -0
  450. package/dist/domain/core/expression/index.d.ts +4 -0
  451. package/dist/domain/core/expression/index.js +1 -0
  452. package/dist/domain/core/index.d.ts +13 -17
  453. package/dist/domain/core/index.js +1 -1
  454. package/dist/domain/{invariants → core/invariant}/builtin-invariant.d.ts +2 -2
  455. package/dist/domain/core/invariant/custom-invariants.d.ts +13 -0
  456. package/dist/domain/core/invariant/custom-invariants.js +1 -0
  457. package/dist/domain/core/invariant/index.d.ts +5 -0
  458. package/dist/domain/core/invariant/index.js +1 -0
  459. package/dist/domain/core/invariant/invariants.d.ts +10 -0
  460. package/dist/domain/core/invariant/invariants.js +1 -0
  461. package/dist/domain/core/invariant/violation-component.js +1 -0
  462. package/dist/domain/{invariants → core/invariant}/violation.d.ts +52 -4
  463. package/dist/domain/core/invariant/violation.js +1 -0
  464. package/dist/domain/core/{component.d.ts → model/component.d.ts} +1 -1
  465. package/dist/domain/core/model/index.d.ts +6 -0
  466. package/dist/domain/core/model/index.js +1 -0
  467. package/dist/domain/core/{model.d.ts → model/model.d.ts} +1 -1
  468. package/dist/domain/core/{reflection.d.ts → model/reflection.d.ts} +1 -1
  469. package/dist/domain/core/model/reflection.js +1 -0
  470. package/dist/domain/core/recipe/index.d.ts +1 -0
  471. package/dist/domain/core/recipe/index.js +1 -0
  472. package/dist/domain/core/recipe/recipes.d.ts +23 -0
  473. package/dist/domain/core/recipe/recipes.js +1 -0
  474. package/dist/domain/core/relation/all-of-type-relation.d.ts +19 -0
  475. package/dist/domain/core/relation/all-of-type-relation.js +1 -0
  476. package/dist/domain/{relations → core/relation}/component-factories.d.ts +1 -2
  477. package/dist/domain/core/relation/component-factories.js +1 -0
  478. package/dist/domain/{relations → core/relation}/composed-of.d.ts +1 -1
  479. package/dist/domain/core/relation/composed-of.js +1 -0
  480. package/dist/domain/core/relation/direct-relation.d.ts +17 -0
  481. package/dist/domain/core/relation/index.d.ts +8 -0
  482. package/dist/domain/core/relation/index.js +1 -0
  483. package/dist/domain/core/relation/indirect-relation.d.ts +25 -0
  484. package/dist/domain/core/relation/indirect-relation.js +1 -0
  485. package/dist/domain/{relations → core/relation}/reference-component.d.ts +4 -5
  486. package/dist/domain/core/relation/reference-component.js +1 -0
  487. package/dist/domain/{relations → core/relation}/reference-field.d.ts +1 -1
  488. package/dist/domain/core/relation/reference-field.js +1 -0
  489. package/dist/domain/core/relation/relation-factory.d.ts +22 -0
  490. package/dist/domain/core/relation/relation-factory.js +1 -0
  491. package/dist/domain/core/schema/enhanced-json-schema.js +1 -0
  492. package/dist/domain/core/schema/extended-schema-validator.js +1 -0
  493. package/dist/domain/core/schema/index.d.ts +3 -0
  494. package/dist/domain/core/schema/index.js +1 -0
  495. package/dist/domain/core/schema/schema-validator.js +1 -0
  496. package/dist/domain/core/state/id-sequence.d.ts +15 -0
  497. package/dist/domain/core/state/id-sequence.js +1 -0
  498. package/dist/domain/core/state/index.d.ts +3 -0
  499. package/dist/domain/core/state/index.js +1 -0
  500. package/dist/domain/core/{migrations.d.ts → state/migrations.d.ts} +15 -47
  501. package/dist/domain/core/state/migrations.js +1 -0
  502. package/dist/domain/core/{state.d.ts → state/state.d.ts} +2 -3
  503. package/dist/domain/domain-builder.d.ts +11 -11
  504. package/dist/domain/domain-builder.js +1 -1
  505. package/dist/domain/domain-context/action-system/action-system.d.ts +2 -4
  506. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  507. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  508. package/dist/domain/domain-context/action-system/index.js +1 -0
  509. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  510. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  511. package/dist/domain/domain-context/create-transformer.d.ts +2 -2
  512. package/dist/domain/domain-context/dimension-system/dimension-state.js +1 -1
  513. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +3 -4
  514. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  515. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  516. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  517. package/dist/domain/domain-context/domain-context-systems.d.ts +8 -10
  518. package/dist/domain/domain-context/index.d.ts +8 -18
  519. package/dist/domain/domain-context/index.js +1 -1
  520. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  521. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  522. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +5 -8
  523. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  524. package/dist/domain/domain-context/navigation-system/navigation-updates.d.ts +1 -12
  525. package/dist/domain/domain-context/navigation-system/navigation-updates.js +1 -1
  526. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +2 -2
  527. package/dist/domain/domain-context/navigation-system/selection-transformers.js +1 -1
  528. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  529. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  530. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +2 -4
  531. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  532. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +3 -3
  533. package/dist/domain/domain-context/relation-transformers/cascade-deletes.js +1 -1
  534. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +3 -3
  535. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.js +1 -1
  536. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +3 -3
  537. package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
  538. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  539. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  540. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +3 -3
  541. package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
  542. package/dist/domain/domain-context/store-system/apply-updates.d.ts +1 -3
  543. package/dist/domain/domain-context/store-system/apply-updates.js +1 -1
  544. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  545. package/dist/domain/domain-context/store-system/index.js +1 -0
  546. package/dist/domain/domain-context/store-system/next-domain-entity-id.d.ts +1 -13
  547. package/dist/domain/domain-context/store-system/next-domain-entity-id.js +1 -1
  548. package/dist/domain/domain-context/store-system/reconcile-projected-entities.d.ts +1 -2
  549. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  550. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -39
  551. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  552. package/dist/domain/domain-context/store-system/system-state.d.ts +2 -4
  553. package/dist/domain/domain-context/store-system/system-state.js +1 -1
  554. package/dist/domain/domain-context/transformers/actions-builder.d.ts +1 -2
  555. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  556. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +6 -10
  557. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  558. package/dist/domain/domain-context/transformers/chain-builder.d.ts +3 -3
  559. package/dist/domain/domain-context/transformers/context.d.ts +2 -7
  560. package/dist/domain/domain-context/transformers/context.js +1 -1
  561. package/dist/domain/domain-context/transformers/entity-builder.d.ts +1 -5
  562. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  563. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  564. package/dist/domain/domain-context/transformers/index.js +1 -1
  565. package/dist/domain/domain-context/transformers/then-builder.d.ts +1 -2
  566. package/dist/domain/domain-context/transformers/then-builder.js +1 -1
  567. package/dist/domain/domain-context/transformers/when-builder.d.ts +3 -9
  568. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  569. package/dist/domain/domain-context/undo-system.d.ts +2 -3
  570. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  571. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  572. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  573. package/dist/domain/domain-runtime/access/types.js +1 -1
  574. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  575. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  576. package/dist/domain/domain-runtime/domain-context/component-reader.d.ts +1 -4
  577. package/dist/domain/domain-runtime/domain-context/component-reader.js +1 -1
  578. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  579. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  580. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  581. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  582. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  583. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  584. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +19 -25
  585. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  586. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  587. package/dist/domain/domain-runtime/domain-runtime.d.ts +88 -72
  588. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +19 -0
  589. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  590. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  591. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  592. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  593. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  594. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  595. package/dist/domain/domain-runtime/errors/index.js +1 -0
  596. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  597. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  598. package/dist/domain/domain-runtime/index.d.ts +1 -0
  599. package/dist/domain/domain-runtime/index.js +1 -1
  600. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  601. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  602. package/dist/domain/domain-runtime/spec/index.d.ts +5 -0
  603. package/dist/domain/domain-runtime/spec/index.js +1 -1
  604. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  605. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  606. package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.d.ts +1 -2
  607. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +6 -1
  608. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  609. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +5 -0
  610. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  611. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  612. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  613. package/dist/domain/domain-runtime/spec/module-checks/project-modules.d.ts +32 -0
  614. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  615. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  616. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  617. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  618. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  619. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  620. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  621. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  622. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  623. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  624. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  625. package/dist/domain/{actions → domain-runtime/spec}/prepare-action-implementations.d.ts +1 -1
  626. package/dist/domain/domain-runtime/spec/prepare-action-implementations.js +5 -0
  627. package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.d.ts +1 -1
  628. package/dist/domain/domain-runtime/spec/selectors.d.ts +7 -8
  629. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  630. package/dist/domain/domain-runtime/spec/types.d.ts +6 -6
  631. package/dist/domain/{system-components → extensions}/angle-indicator.d.ts +1 -1
  632. package/dist/domain/extensions/angle-indicator.js +1 -0
  633. package/dist/domain/{system-components → extensions}/attribute-switch.d.ts +1 -1
  634. package/dist/domain/extensions/attribute-switch.js +1 -0
  635. package/dist/domain/{system-components → extensions}/autorotate-camera-component.d.ts +1 -1
  636. package/dist/domain/extensions/autorotate-camera-component.js +1 -0
  637. package/dist/domain/{system-components → extensions}/basic-sidebar-footer.d.ts +1 -1
  638. package/dist/domain/extensions/basic-sidebar-footer.js +1 -0
  639. package/dist/domain/extensions/camera-based-hidden-entity-object.js +1 -0
  640. package/dist/domain/extensions/camera-based-hidden-entity.js +1 -0
  641. package/dist/domain/{system-components → extensions}/canvas-config.d.ts +2 -2
  642. package/dist/domain/extensions/canvas-config.js +1 -0
  643. package/dist/domain/extensions/canvas-custom-environment.js +1 -0
  644. package/dist/domain/{system-components → extensions}/canvas-padding.d.ts +1 -1
  645. package/dist/domain/extensions/canvas-padding.js +1 -0
  646. package/dist/domain/{system-components → extensions}/canvas-preset-environment.d.ts +1 -1
  647. package/dist/domain/extensions/canvas-preset-environment.js +1 -0
  648. package/dist/domain/{system-components → extensions}/child-entity-recipe-hierarchy.d.ts +2 -2
  649. package/dist/domain/extensions/child-entity-recipe-hierarchy.js +1 -0
  650. package/dist/domain/{system-components → extensions}/client-side-image.d.ts +2 -2
  651. package/dist/domain/extensions/client-side-image.js +1 -0
  652. package/dist/domain/extensions/color-value.js +1 -0
  653. package/dist/domain/{system-components → extensions}/common/angle-indicator-schema.d.ts +3 -3
  654. package/dist/domain/extensions/common/angle-indicator-schema.js +1 -0
  655. package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.d.ts +3 -3
  656. package/dist/domain/extensions/common/dimension-indicator-schema.js +1 -0
  657. package/dist/domain/extensions/common/index.d.ts +4 -0
  658. package/dist/domain/extensions/common/index.js +1 -0
  659. package/dist/domain/{system-components → extensions}/custom-header.d.ts +2 -2
  660. package/dist/domain/{system-components → extensions}/custom-header.js +1 -1
  661. package/dist/domain/extensions/custom-price-footer.js +1 -0
  662. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.d.ts +2 -2
  663. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.js +1 -1
  664. package/dist/domain/{system-components → extensions}/dimension-indicator.d.ts +1 -1
  665. package/dist/domain/extensions/dimension-indicator.js +1 -0
  666. package/dist/domain/{system-components → extensions}/editable-angle-indicator.d.ts +4 -3
  667. package/dist/domain/extensions/editable-angle-indicator.js +1 -0
  668. package/dist/domain/{system-components → extensions}/editable-distance-dimension-indicator.d.ts +4 -3
  669. package/dist/domain/extensions/editable-distance-dimension-indicator.js +1 -0
  670. package/dist/domain/{system-components → extensions}/editable-offset-indicator.d.ts +4 -3
  671. package/dist/domain/extensions/editable-offset-indicator.js +1 -0
  672. package/dist/domain/{system-components → extensions}/editable-size-indicator.d.ts +3 -2
  673. package/dist/domain/extensions/editable-size-indicator.js +1 -0
  674. package/dist/domain/{system-components → extensions}/entity-header.d.ts +1 -1
  675. package/dist/domain/extensions/entity-header.js +1 -0
  676. package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.d.ts +1 -1
  677. package/dist/domain/extensions/exit-tool-mode-fab.js +1 -0
  678. package/dist/domain/{system-components → extensions}/finalize-action.d.ts +1 -1
  679. package/dist/domain/extensions/finalize-action.js +1 -0
  680. package/dist/domain/extensions/finalize-component.js +1 -0
  681. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -0
  682. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -0
  683. package/dist/domain/{system-components → extensions}/fixed-header.d.ts +1 -1
  684. package/dist/domain/extensions/fixed-header.js +1 -0
  685. package/dist/domain/{system-components → extensions}/floating-header.d.ts +1 -1
  686. package/dist/domain/extensions/floating-header.js +1 -0
  687. package/dist/domain/{system-components → extensions}/hidden-header.d.ts +1 -1
  688. package/dist/domain/extensions/hidden-header.js +1 -0
  689. package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.d.ts +1 -1
  690. package/dist/domain/extensions/hidden-sidebar-footer.js +1 -0
  691. package/dist/domain/{system-components → extensions}/horizontal-tabs.d.ts +3 -3
  692. package/dist/domain/extensions/horizontal-tabs.js +1 -0
  693. package/dist/domain/extensions/index.d.ts +69 -0
  694. package/dist/domain/extensions/index.js +1 -0
  695. package/dist/domain/{system-components → extensions}/list-selector-dimension-indicator.d.ts +4 -3
  696. package/dist/domain/extensions/list-selector-dimension-indicator.js +1 -0
  697. package/dist/domain/extensions/multilingual-text-value.js +1 -0
  698. package/dist/domain/{system-components → extensions}/navigation-steps.d.ts +2 -2
  699. package/dist/domain/extensions/navigation-steps.js +1 -0
  700. package/dist/domain/{system-components → extensions}/offset-anchors.d.ts +1 -1
  701. package/dist/domain/extensions/offset-anchors.js +1 -0
  702. package/dist/domain/{system-components → extensions}/offset-indicator.d.ts +1 -2
  703. package/dist/domain/extensions/offset-indicator.js +1 -0
  704. package/dist/domain/{system-components → extensions}/offset.d.ts +1 -1
  705. package/dist/domain/extensions/offset.js +1 -0
  706. package/dist/domain/{system-components → extensions}/other-action.d.ts +1 -1
  707. package/dist/domain/extensions/other-action.js +1 -0
  708. package/dist/domain/{system-components → extensions}/property-page.d.ts +2 -2
  709. package/dist/domain/extensions/property-page.js +1 -0
  710. package/dist/domain/{system-components → extensions}/read-sidebar-footer.d.ts +1 -1
  711. package/dist/domain/extensions/read-sidebar-footer.js +1 -0
  712. package/dist/domain/{system-components → extensions}/replace-entity-recipe-hierarchy.d.ts +2 -2
  713. package/dist/domain/extensions/replace-entity-recipe-hierarchy.js +1 -0
  714. package/dist/domain/extensions/rotatable.js +1 -0
  715. package/dist/domain/{system-components → extensions}/rotation-handle.d.ts +2 -2
  716. package/dist/domain/extensions/rotation-handle.js +1 -0
  717. package/dist/domain/{system-components → extensions}/save-template-thumbnail.d.ts +2 -2
  718. package/dist/domain/extensions/save-template-thumbnail.js +1 -0
  719. package/dist/domain/{system-components → extensions}/scene-entity-add-fab.d.ts +1 -1
  720. package/dist/domain/extensions/scene-entity-add-fab.js +1 -0
  721. package/dist/domain/extensions/scene-entity-animation.js +1 -0
  722. package/dist/domain/extensions/scene-entity-control.js +1 -0
  723. package/dist/domain/{system-components → extensions}/scene-entity-delete-fab.d.ts +1 -1
  724. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -0
  725. package/dist/domain/extensions/scene-entity-floor-object.js +1 -0
  726. package/dist/domain/{system-components → extensions}/scene-entity-html-hotspot.d.ts +1 -1
  727. package/dist/domain/extensions/scene-entity-html-hotspot.js +1 -0
  728. package/dist/domain/{system-components → extensions}/scene-entity-navigation-hotspot.d.ts +1 -1
  729. package/dist/domain/extensions/scene-entity-navigation-hotspot.js +1 -0
  730. package/dist/domain/{system-components → extensions}/scene-entity-object-html-hotspot.d.ts +1 -1
  731. package/dist/domain/extensions/scene-entity-object-html-hotspot.js +1 -0
  732. package/dist/domain/{system-components → extensions}/scene-entity-select-hotspot.d.ts +1 -1
  733. package/dist/domain/extensions/scene-entity-select-hotspot.js +1 -0
  734. package/dist/domain/extensions/scene-entity-wall-object.js +1 -0
  735. package/dist/domain/extensions/selectable-component.js +1 -0
  736. package/dist/domain/{system-components → extensions}/sidebar-tabs.d.ts +1 -1
  737. package/dist/domain/extensions/sidebar-tabs.js +1 -0
  738. package/dist/domain/extensions/simple-summary.js +1 -0
  739. package/dist/domain/{system-components → extensions}/size.d.ts +1 -1
  740. package/dist/domain/extensions/size.js +1 -0
  741. package/dist/domain/{system-components → extensions}/sketching-draw.d.ts +1 -1
  742. package/dist/domain/extensions/sketching-draw.js +1 -0
  743. package/dist/domain/{system-components → extensions}/sketching-edit.d.ts +2 -2
  744. package/dist/domain/extensions/sketching-edit.js +1 -0
  745. package/dist/domain/extensions/summary-component.js +1 -0
  746. package/dist/domain/extensions/text-value.js +1 -0
  747. package/dist/domain/extensions/tool-controls.js +1 -0
  748. package/dist/domain/{system-components → extensions}/tool-menu-fab.d.ts +2 -2
  749. package/dist/domain/extensions/tool-menu-fab.js +1 -0
  750. package/dist/domain/{system-components → extensions}/toolbar.d.ts +2 -2
  751. package/dist/domain/{system-components → extensions}/toolbar.js +1 -1
  752. package/dist/domain/{system-components → extensions}/universal-sidebar-footer.d.ts +1 -1
  753. package/dist/domain/extensions/universal-sidebar-footer.js +1 -0
  754. package/dist/domain/extensions/view-controls.js +1 -0
  755. package/dist/domain/index.d.ts +2 -32
  756. package/dist/domain/index.js +1 -1
  757. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  758. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  759. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +30 -21
  760. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  761. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  762. package/dist/domain/mocks/create-mock-domain.js +1 -1
  763. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  764. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  765. package/dist/domain/mocks/create-test-application-config.js +1 -0
  766. package/dist/domain/mocks/index.d.ts +1 -0
  767. package/dist/domain/mocks/index.js +1 -1
  768. package/dist/domain/projections/blender-projections/blender-projections.d.ts +2 -3
  769. package/dist/domain/projections/blender-projections/blender-projections.js +1 -1
  770. package/dist/domain/projections/blender-projections/camera.d.ts +2 -2
  771. package/dist/domain/projections/collision-projections.d.ts +1 -1
  772. package/dist/domain/projections/composition-projections.d.ts +1 -1
  773. package/dist/domain/projections/composition-projections.js +1 -1
  774. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  775. package/dist/domain/projections/index.d.ts +1 -1
  776. package/dist/domain/projections/position-projections.d.ts +1 -1
  777. package/dist/domain/projections/projected-entities-projections.d.ts +2 -3
  778. package/dist/domain/projections/snap-matching.d.ts +1 -2
  779. package/dist/domain/projections/snap-utils.d.ts +1 -2
  780. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  781. package/dist/domain/projections/validation-projections.d.ts +3 -20
  782. package/dist/domain/projections/validation-projections.js +1 -1
  783. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  784. package/dist/domain/system-components/admin-sidebar.d.ts +1 -1
  785. package/dist/domain/system-components/admin-sidebar.js +1 -1
  786. package/dist/domain/system-components/angle-dimension.js +1 -1
  787. package/dist/domain/system-components/application-config.d.ts +3 -3
  788. package/dist/domain/system-components/application-config.js +1 -1
  789. package/dist/domain/system-components/attribute-selection.js +1 -1
  790. package/dist/domain/system-components/bounding-box-component.d.ts +1 -1
  791. package/dist/domain/system-components/bounding-box-component.js +1 -1
  792. package/dist/domain/system-components/bounding-sphere-component.d.ts +1 -1
  793. package/dist/domain/system-components/bounding-sphere-component.js +1 -1
  794. package/dist/domain/system-components/child-entity-recipes.d.ts +1 -1
  795. package/dist/domain/system-components/child-entity-recipes.js +1 -1
  796. package/dist/domain/system-components/child-entity-selection.d.ts +1 -2
  797. package/dist/domain/system-components/child-entity-selection.js +1 -1
  798. package/dist/domain/system-components/collision-box-geometry.d.ts +5 -3
  799. package/dist/domain/system-components/collision-box-geometry.js +1 -1
  800. package/dist/domain/system-components/collision-geometries.d.ts +1 -1
  801. package/dist/domain/system-components/collision-geometry.d.ts +5 -3
  802. package/dist/domain/system-components/collision-geometry.js +1 -1
  803. package/dist/domain/system-components/collision-point-geometry.d.ts +5 -3
  804. package/dist/domain/system-components/collision-point-geometry.js +1 -1
  805. package/dist/domain/system-components/common/index.d.ts +0 -4
  806. package/dist/domain/system-components/common/index.js +1 -1
  807. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  808. package/dist/domain/system-components/common/recipes.d.ts +21 -4
  809. package/dist/domain/system-components/common/recipes.js +1 -1
  810. package/dist/domain/system-components/constraint.d.ts +11 -24
  811. package/dist/domain/system-components/constraint.js +1 -1
  812. package/dist/domain/system-components/create-blueprint.d.ts +1 -1
  813. package/dist/domain/system-components/custom-scene-entity.d.ts +1 -1
  814. package/dist/domain/system-components/custom-scene-entity.js +1 -1
  815. package/dist/domain/system-components/detail.js +1 -1
  816. package/dist/domain/system-components/distance-dimension-select.d.ts +1 -1
  817. package/dist/domain/system-components/distance-dimension-select.js +1 -1
  818. package/dist/domain/system-components/distance-dimension.d.ts +1 -1
  819. package/dist/domain/system-components/distance-dimension.js +1 -1
  820. package/dist/domain/system-components/drag-handle.d.ts +2 -2
  821. package/dist/domain/system-components/drag-handle.js +1 -1
  822. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  823. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  824. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  825. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  826. package/dist/domain/system-components/generic-dimension.d.ts +1 -1
  827. package/dist/domain/system-components/generic-dimension.js +1 -1
  828. package/dist/domain/system-components/hidden-entity.js +1 -1
  829. package/dist/domain/system-components/hotspot-drag-handle.d.ts +2 -3
  830. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  831. package/dist/domain/system-components/index.d.ts +0 -68
  832. package/dist/domain/system-components/index.js +1 -1
  833. package/dist/domain/system-components/material-override-property-transition.js +1 -1
  834. package/dist/domain/system-components/material-override-transformer.js +1 -1
  835. package/dist/domain/system-components/material-swatch.js +1 -1
  836. package/dist/domain/system-components/navigation-page.js +1 -1
  837. package/dist/domain/system-components/navigation-panel-list.js +1 -1
  838. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  839. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  840. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  841. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  842. package/dist/domain/system-components/phoenix-layout-elements/assistant-toolbar-button.d.ts +44 -0
  843. package/dist/domain/system-components/phoenix-layout-elements/assistant-toolbar-button.js +1 -0
  844. package/dist/domain/system-components/phoenix-layout-elements/index.d.ts +1 -0
  845. package/dist/domain/system-components/phoenix-layout-elements/index.js +1 -1
  846. package/dist/domain/system-components/phoenix-layout-elements/phoenix-layout-element.d.ts +2 -1
  847. package/dist/domain/system-components/phoenix-layout-elements/phoenix-layout-element.js +1 -1
  848. package/dist/domain/system-components/pivot-point.d.ts +1 -1
  849. package/dist/domain/system-components/pivot-point.js +1 -1
  850. package/dist/domain/system-components/price.js +1 -1
  851. package/dist/domain/system-components/projected-entities.d.ts +1 -1
  852. package/dist/domain/system-components/projected-entities.js +1 -1
  853. package/dist/domain/system-components/replace-entity-recipes.d.ts +1 -1
  854. package/dist/domain/system-components/replace-entity-recipes.js +1 -1
  855. package/dist/domain/system-components/scene-entity-ambient-light.js +1 -1
  856. package/dist/domain/system-components/scene-entity-box-object.js +1 -1
  857. package/dist/domain/system-components/scene-entity-directional-light.js +1 -1
  858. package/dist/domain/system-components/scene-entity-local-material-override.js +1 -1
  859. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  860. package/dist/domain/system-components/scene-entity-material-override.js +1 -1
  861. package/dist/domain/system-components/scene-entity-object-clip.js +1 -1
  862. package/dist/domain/system-components/scene-entity-object-decal.js +1 -1
  863. package/dist/domain/system-components/scene-entity-object-group.js +1 -1
  864. package/dist/domain/system-components/scene-entity-object-local-material-override.js +1 -1
  865. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  866. package/dist/domain/system-components/scene-entity-object-material-override.js +1 -1
  867. package/dist/domain/system-components/scene-entity-object-properties.js +1 -1
  868. package/dist/domain/system-components/scene-entity-object-remote-material-override.js +1 -1
  869. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  870. package/dist/domain/system-components/scene-entity-object-text-decal.js +1 -1
  871. package/dist/domain/system-components/scene-entity-object-transformer.js +1 -1
  872. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  873. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.js +1 -1
  874. package/dist/domain/system-components/scene-entity-object.js +1 -1
  875. package/dist/domain/system-components/scene-entity-point-light.js +1 -1
  876. package/dist/domain/system-components/scene-entity-properties.js +1 -1
  877. package/dist/domain/system-components/scene-entity-rect-area-light.js +1 -1
  878. package/dist/domain/system-components/scene-entity-remote-material-override.js +1 -1
  879. package/dist/domain/system-components/scene-entity-remote-object.js +1 -1
  880. package/dist/domain/system-components/scene-entity-spot-light.js +1 -1
  881. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  882. package/dist/domain/system-components/scene-entity-transimissive-material-override.js +1 -1
  883. package/dist/domain/system-components/sketching-line.d.ts +1 -1
  884. package/dist/domain/system-components/sketching-line.js +1 -1
  885. package/dist/domain/system-components/sketching-rectangle.d.ts +1 -1
  886. package/dist/domain/system-components/sketching-rectangle.js +1 -1
  887. package/dist/domain/system-components/sketching.d.ts +1 -1
  888. package/dist/domain/system-components/sketching.js +1 -1
  889. package/dist/domain/system-components/snap-axis.d.ts +1 -1
  890. package/dist/domain/system-components/snap-axis.js +1 -1
  891. package/dist/domain/system-components/snap-edge.d.ts +1 -1
  892. package/dist/domain/system-components/snap-edge.js +1 -1
  893. package/dist/domain/system-components/snap-plane.d.ts +1 -1
  894. package/dist/domain/system-components/snap-plane.js +1 -1
  895. package/dist/domain/system-components/snap-point.d.ts +1 -1
  896. package/dist/domain/system-components/snap-point.js +1 -1
  897. package/dist/domain/system-components/static-orthographic-camera-component.d.ts +1 -1
  898. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  899. package/dist/domain/system-components/static-perspective-camera-component.d.ts +1 -1
  900. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  901. package/dist/domain/utils/eval-cache.d.ts +2 -3
  902. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  903. package/dist/domain/utils/memo-eval.d.ts +2 -4
  904. package/dist/editor/Editor.js +1 -1
  905. package/dist/editor/domain-editors/use-implementation-files.d.ts +8 -8
  906. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  907. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  908. package/dist/editor/mocks/EditorMockContext.js +1 -1
  909. package/dist/editor/variants/VariantAnswerFooter.d.ts +17 -0
  910. package/dist/editor/variants/VariantAnswerFooter.js +1 -0
  911. package/dist/editor/variants/VariantPreviewHandler.d.ts +6 -0
  912. package/dist/editor/variants/VariantPreviewHandler.js +1 -0
  913. package/dist/editor/variants/variant-preview-styles.d.ts +49 -0
  914. package/dist/editor/variants/variant-preview-styles.js +1 -0
  915. package/dist/i18n/locales/cs/messages.js +1 -1
  916. package/dist/i18n/locales/da/messages.js +1 -1
  917. package/dist/i18n/locales/de/messages.js +1 -1
  918. package/dist/i18n/locales/de-AT/messages.js +1 -1
  919. package/dist/i18n/locales/en/messages.js +1 -1
  920. package/dist/i18n/locales/en-AU/messages.js +1 -1
  921. package/dist/i18n/locales/en-GB/messages.js +1 -1
  922. package/dist/i18n/locales/es/messages.js +1 -1
  923. package/dist/i18n/locales/fr/messages.js +1 -1
  924. package/dist/i18n/locales/hu/messages.js +1 -1
  925. package/dist/i18n/locales/it/messages.js +1 -1
  926. package/dist/i18n/locales/nl/messages.js +1 -1
  927. package/dist/i18n/locales/pl/messages.js +1 -1
  928. package/dist/i18n/locales/pt/messages.js +1 -1
  929. package/dist/i18n/locales/ro/messages.js +1 -1
  930. package/dist/i18n/locales/sk/messages.js +1 -1
  931. package/dist/i18n/locales/tr/messages.js +1 -1
  932. package/dist/legacy/domain-cli/gen/configurator-builder.js +30 -16
  933. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  934. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  935. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  936. package/dist/legacy/domain-cli/gen/invariants.js +7 -6
  937. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  938. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  939. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  940. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +87 -68
  941. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  942. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  943. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  944. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +2 -0
  945. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  946. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.d.ts +1 -1
  947. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
  948. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +18 -19
  949. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +15 -16
  950. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +22 -23
  951. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +15 -16
  952. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.d.ts +7 -2
  953. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.js +8 -12
  954. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.d.ts +1 -1
  955. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.js +1 -1
  956. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/webhook-builders.js +7 -7
  957. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  958. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +4 -3
  959. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  960. package/dist/phoenix/cli.js +1 -1
  961. package/dist/phoenix/commands/deploy.js +2 -2
  962. package/dist/phoenix/commands/dev.js +5 -5
  963. package/dist/phoenix/commands/index.d.ts +1 -0
  964. package/dist/phoenix/commands/index.js +1 -1
  965. package/dist/phoenix/commands/init.d.ts +4 -4
  966. package/dist/phoenix/commands/init.js +1 -1
  967. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  968. package/dist/phoenix/commands/prepare-local-environment-command.js +1 -1
  969. package/dist/phoenix/commands/prettier.js +1 -1
  970. package/dist/phoenix/commands/story-dev.js +2 -2
  971. package/dist/phoenix/commands/variants.d.ts +35 -0
  972. package/dist/phoenix/commands/variants.js +1 -0
  973. package/dist/phoenix/editor-server/commands-router.d.ts +68 -1
  974. package/dist/phoenix/editor-server/commands-router.js +1 -1
  975. package/dist/phoenix/editor-server/editor-router.d.ts +65 -0
  976. package/dist/phoenix/editor-server/editor-server.d.ts +3 -3
  977. package/dist/phoenix/editor-server/editor-server.js +1 -1
  978. package/dist/phoenix/editor-server/protocol.d.ts +1 -0
  979. package/dist/phoenix/editor-server/spec-router.js +1 -1
  980. package/dist/phoenix/editor-server/trpc.d.ts +3 -0
  981. package/dist/phoenix/scripts/build-admin.js +1 -1
  982. package/dist/phoenix/services/application-spec-project-watcher.d.ts +13 -2
  983. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  984. package/dist/phoenix/services/index.d.ts +4 -0
  985. package/dist/phoenix/services/index.js +1 -1
  986. package/dist/phoenix/services/phoenix-application.d.ts +21 -0
  987. package/dist/phoenix/services/phoenix-application.js +1 -0
  988. package/dist/phoenix/services/phoenix-store.d.ts +48 -0
  989. package/dist/phoenix/services/phoenix-store.js +1 -0
  990. package/dist/phoenix/services/phx-variant-previews-plugin.d.ts +9 -0
  991. package/dist/phoenix/services/phx-variant-previews-plugin.js +1 -0
  992. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  993. package/dist/phoenix/services/source-archive.d.ts +1 -0
  994. package/dist/phoenix/services/source-archive.js +1 -1
  995. package/dist/phoenix/services/variant-file-session.d.ts +36 -0
  996. package/dist/phoenix/services/variant-file-session.js +1 -0
  997. package/dist/phoenix/services/variant-preview-service.d.ts +80 -0
  998. package/dist/phoenix/services/variant-preview-service.js +1 -0
  999. package/dist/phoenix/services/vite-config.js +1 -1
  1000. package/dist/phoenix/utils/git/index.d.ts +1 -0
  1001. package/dist/phoenix/utils/git/index.js +1 -0
  1002. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  1003. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  1004. package/dist/phoenix/utils/index.d.ts +1 -0
  1005. package/dist/phoenix/utils/index.js +1 -1
  1006. package/dist/react-sdk/application-runtime/common-services/analytics/analytics-service.d.ts +2 -2
  1007. package/dist/react-sdk/application-runtime/common-services/analytics/domain-controls-analytics.d.ts +21 -21
  1008. package/dist/react-sdk/application-runtime/hooks/data/use-published-data.d.ts +1 -1
  1009. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +2 -0
  1010. package/dist/react-sdk/application-runtime/hooks/use-domain-application-props.d.ts +5 -2
  1011. package/dist/react-sdk/application-runtime/hooks/use-spec.d.ts +1 -1
  1012. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.d.ts +1 -1
  1013. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  1014. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  1015. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +57 -40
  1016. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  1017. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +30 -0
  1018. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  1019. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +9 -9
  1020. package/dist/react-sdk/domain-context/index.d.ts +2 -1
  1021. package/dist/react-sdk/domain-context/index.js +1 -1
  1022. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +6 -0
  1023. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  1024. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  1025. package/dist/ui-sdk/common/use-viewport-size.d.ts +4 -1
  1026. package/dist/ui-sdk/common/use-viewport-size.js +1 -1
  1027. package/dist/ui-sdk/components/mobile-controls/index.d.ts +1 -1
  1028. package/dist/ui-sdk/theme/types.d.ts +4 -0
  1029. package/dist/webhook/builders/common.d.ts +8 -0
  1030. package/dist/webhook/builders/webhook-builder.d.ts +1 -1
  1031. package/dist/webhook/builders/webhook-builder.js +1 -1
  1032. package/package.json +5 -8
  1033. package/schema/domain-spec.json +1139 -209
  1034. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  1035. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  1036. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  1037. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -90
  1038. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  1039. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  1040. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  1041. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  1042. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  1043. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  1044. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  1045. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  1046. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  1047. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  1048. package/dist/configurator/assistant/index.d.ts +0 -1
  1049. package/dist/configurator/assistant/index.js +0 -1
  1050. package/dist/configurator/assistant/use-assistant-chat.d.ts +0 -20
  1051. package/dist/configurator/assistant/use-assistant-chat.js +0 -1
  1052. package/dist/domain/actions/action-factory.d.ts +0 -10
  1053. package/dist/domain/actions/prepare-action-implementations.js +0 -5
  1054. package/dist/domain/application/element-registration.js +0 -1
  1055. package/dist/domain/application/handler-registration.js +0 -1
  1056. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -13
  1057. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  1058. package/dist/domain/application/resource-builder.d.ts +0 -13
  1059. package/dist/domain/application/resource-builder.js +0 -1
  1060. package/dist/domain/components/debug-state-component.js +0 -1
  1061. package/dist/domain/components/domain-component-optic.d.ts +0 -76
  1062. package/dist/domain/components/domain-component-optic.js +0 -16
  1063. package/dist/domain/components/drag-state-component.js +0 -1
  1064. package/dist/domain/components/export-state-component.js +0 -1
  1065. package/dist/domain/components/fullscreen-state-component.js +0 -1
  1066. package/dist/domain/components/group-components-by-entity-id-and-name.js +0 -1
  1067. package/dist/domain/components/hover-state-component.js +0 -1
  1068. package/dist/domain/components/index.d.ts +0 -2
  1069. package/dist/domain/components/index.js +0 -1
  1070. package/dist/domain/components/navigation-state-component.js +0 -1
  1071. package/dist/domain/components/selection-state-component.js +0 -1
  1072. package/dist/domain/components/system-component-builder.js +0 -1
  1073. package/dist/domain/components/system-virtual-entity.js +0 -1
  1074. package/dist/domain/components/tool-state-component.js +0 -1
  1075. package/dist/domain/components/view-state-component.js +0 -1
  1076. package/dist/domain/components/viewport-state-component.js +0 -1
  1077. package/dist/domain/core/expression.d.ts +0 -50
  1078. package/dist/domain/core/json-schema.js +0 -1
  1079. package/dist/domain/core/migrations.js +0 -1
  1080. package/dist/domain/core/reflection.js +0 -1
  1081. package/dist/domain/domain-context/recipe-system/recipes.d.ts +0 -57
  1082. package/dist/domain/domain-context/recipe-system/recipes.js +0 -1
  1083. package/dist/domain/expressions/constant-expressions.d.ts +0 -9
  1084. package/dist/domain/expressions/constant-expressions.js +0 -1
  1085. package/dist/domain/expressions/custom-expression.d.ts +0 -13
  1086. package/dist/domain/expressions/custom-expression.js +0 -1
  1087. package/dist/domain/expressions/index.d.ts +0 -1
  1088. package/dist/domain/expressions/index.js +0 -1
  1089. package/dist/domain/invariants/custom-invariants.d.ts +0 -22
  1090. package/dist/domain/invariants/custom-invariants.js +0 -1
  1091. package/dist/domain/invariants/invariants.d.ts +0 -68
  1092. package/dist/domain/invariants/invariants.js +0 -1
  1093. package/dist/domain/invariants/violation-component.js +0 -1
  1094. package/dist/domain/invariants/violation.js +0 -1
  1095. package/dist/domain/relations/all-of-type-relation.d.ts +0 -33
  1096. package/dist/domain/relations/all-of-type-relation.js +0 -1
  1097. package/dist/domain/relations/component-factories.js +0 -1
  1098. package/dist/domain/relations/composed-of.js +0 -1
  1099. package/dist/domain/relations/direct-relation.d.ts +0 -29
  1100. package/dist/domain/relations/indirect-relation.d.ts +0 -81
  1101. package/dist/domain/relations/indirect-relation.js +0 -1
  1102. package/dist/domain/relations/reference-component.js +0 -1
  1103. package/dist/domain/relations/relation-factory.d.ts +0 -19
  1104. package/dist/domain/relations/relation-factory.js +0 -1
  1105. package/dist/domain/relations/relation-implementation.d.ts +0 -8
  1106. package/dist/domain/system-components/angle-indicator.js +0 -1
  1107. package/dist/domain/system-components/attribute-switch.js +0 -1
  1108. package/dist/domain/system-components/autorotate-camera-component.js +0 -1
  1109. package/dist/domain/system-components/basic-sidebar-footer.js +0 -1
  1110. package/dist/domain/system-components/camera-based-hidden-entity-object.js +0 -1
  1111. package/dist/domain/system-components/camera-based-hidden-entity.js +0 -1
  1112. package/dist/domain/system-components/canvas-config.js +0 -1
  1113. package/dist/domain/system-components/canvas-custom-environment.js +0 -1
  1114. package/dist/domain/system-components/canvas-padding.js +0 -1
  1115. package/dist/domain/system-components/canvas-preset-environment.js +0 -1
  1116. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +0 -1
  1117. package/dist/domain/system-components/client-side-image.js +0 -1
  1118. package/dist/domain/system-components/color-value.js +0 -1
  1119. package/dist/domain/system-components/common/angle-indicator-schema.js +0 -1
  1120. package/dist/domain/system-components/common/dimension-indicator-schema.js +0 -1
  1121. package/dist/domain/system-components/custom-price-footer.js +0 -1
  1122. package/dist/domain/system-components/dimension-indicator.js +0 -1
  1123. package/dist/domain/system-components/editable-angle-indicator.js +0 -1
  1124. package/dist/domain/system-components/editable-distance-dimension-indicator.js +0 -1
  1125. package/dist/domain/system-components/editable-offset-indicator.js +0 -1
  1126. package/dist/domain/system-components/editable-size-indicator.js +0 -1
  1127. package/dist/domain/system-components/entity-header.js +0 -1
  1128. package/dist/domain/system-components/exit-tool-mode-fab.js +0 -1
  1129. package/dist/domain/system-components/finalize-action.js +0 -1
  1130. package/dist/domain/system-components/finalize-component.js +0 -1
  1131. package/dist/domain/system-components/fit-selection-orthographic-camera-component.js +0 -1
  1132. package/dist/domain/system-components/fit-selection-perspective-camera-component.js +0 -1
  1133. package/dist/domain/system-components/fixed-header.js +0 -1
  1134. package/dist/domain/system-components/floating-header.js +0 -1
  1135. package/dist/domain/system-components/hidden-header.js +0 -1
  1136. package/dist/domain/system-components/hidden-sidebar-footer.js +0 -1
  1137. package/dist/domain/system-components/horizontal-tabs.js +0 -1
  1138. package/dist/domain/system-components/list-selector-dimension-indicator.js +0 -1
  1139. package/dist/domain/system-components/multilingual-text-value.js +0 -1
  1140. package/dist/domain/system-components/navigation-steps.js +0 -1
  1141. package/dist/domain/system-components/offset-anchors.js +0 -1
  1142. package/dist/domain/system-components/offset-indicator.js +0 -1
  1143. package/dist/domain/system-components/offset.js +0 -1
  1144. package/dist/domain/system-components/other-action.js +0 -1
  1145. package/dist/domain/system-components/property-page.js +0 -1
  1146. package/dist/domain/system-components/read-sidebar-footer.js +0 -1
  1147. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +0 -1
  1148. package/dist/domain/system-components/rotatable.js +0 -1
  1149. package/dist/domain/system-components/rotation-handle.js +0 -1
  1150. package/dist/domain/system-components/save-template-thumbnail.js +0 -1
  1151. package/dist/domain/system-components/scene-entity-add-fab.js +0 -1
  1152. package/dist/domain/system-components/scene-entity-animation.js +0 -1
  1153. package/dist/domain/system-components/scene-entity-control.js +0 -1
  1154. package/dist/domain/system-components/scene-entity-delete-fab.js +0 -1
  1155. package/dist/domain/system-components/scene-entity-floor-object.js +0 -1
  1156. package/dist/domain/system-components/scene-entity-html-hotspot.js +0 -1
  1157. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +0 -1
  1158. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +0 -1
  1159. package/dist/domain/system-components/scene-entity-select-hotspot.js +0 -1
  1160. package/dist/domain/system-components/scene-entity-wall-object.js +0 -1
  1161. package/dist/domain/system-components/selectable-component.js +0 -1
  1162. package/dist/domain/system-components/sidebar-tabs.js +0 -1
  1163. package/dist/domain/system-components/simple-summary.js +0 -1
  1164. package/dist/domain/system-components/size.js +0 -1
  1165. package/dist/domain/system-components/sketching-draw.js +0 -1
  1166. package/dist/domain/system-components/sketching-edit.js +0 -1
  1167. package/dist/domain/system-components/summary-component.js +0 -1
  1168. package/dist/domain/system-components/text-value.js +0 -1
  1169. package/dist/domain/system-components/tool-controls.js +0 -1
  1170. package/dist/domain/system-components/tool-menu-fab.js +0 -1
  1171. package/dist/domain/system-components/universal-sidebar-footer.js +0 -1
  1172. package/dist/domain/system-components/view-controls.js +0 -1
  1173. package/dist/extras/assistant/AssistantChat.d.ts +0 -6
  1174. package/dist/extras/assistant/AssistantChat.js +0 -1
  1175. package/dist/extras/assistant/index.d.ts +0 -1
  1176. package/dist/extras/assistant/index.js +0 -1
  1177. package/dist/phoenix/application-spec/generate-assistant-prompt.d.ts +0 -12
  1178. package/dist/phoenix/application-spec/generate-assistant-prompt.js +0 -1
  1179. /package/dist/{domain/components/component-reader-types.js → application-spec/core/expressions/relation-expression-params.js} +0 -0
  1180. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  1181. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  1182. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
  1183. /package/dist/domain/{core/action.js → application/assistant/assistant-manifest.js} +0 -0
  1184. /package/dist/domain/{actions → core/action}/action-factory.js +0 -0
  1185. /package/dist/domain/core/{enhanced-json-schema.js → action/action.js} +0 -0
  1186. /package/dist/domain/core/{expression.js → component/component-reader-types.js} +0 -0
  1187. /package/dist/domain/{components → core/component}/legacy-filter.js +0 -0
  1188. /package/dist/domain/{components → core/component}/system-component-filter.js +0 -0
  1189. /package/dist/domain/{components → core/component}/system-virtual-entity.d.ts +0 -0
  1190. /package/dist/domain/{components → core/component}/updates.js +0 -0
  1191. /package/dist/domain/core/{schema-validator.js → data-schema/data-cell-value.js} +0 -0
  1192. /package/dist/domain/{relations/reference-field.js → core/data-schema/data-schema-array-field.js} +0 -0
  1193. /package/dist/domain/{relations/relation-implementation.js → core/data-schema/data-schema-field-object.js} +0 -0
  1194. /package/dist/domain/{invariants → core/invariant}/builtin-invariant.js +0 -0
  1195. /package/dist/domain/{invariants → core/invariant}/violation-component.d.ts +0 -0
  1196. /package/dist/domain/core/{alias.d.ts → model/alias.d.ts} +0 -0
  1197. /package/dist/domain/core/{alias.js → model/alias.js} +0 -0
  1198. /package/dist/domain/core/{common-definitions.d.ts → model/common-definitions.d.ts} +0 -0
  1199. /package/dist/domain/core/{common-definitions.js → model/common-definitions.js} +0 -0
  1200. /package/dist/domain/core/{component.js → model/component.js} +0 -0
  1201. /package/dist/domain/core/{model.js → model/model.js} +0 -0
  1202. /package/dist/domain/core/{preset.d.ts → model/preset.d.ts} +0 -0
  1203. /package/dist/domain/core/{preset.js → model/preset.js} +0 -0
  1204. /package/dist/domain/{relations → core/relation}/direct-relation.js +0 -0
  1205. /package/dist/domain/core/{schema-validator-ajv.d.ts → schema/create-ajv-schema-validator.d.ts} +0 -0
  1206. /package/dist/domain/core/{schema-validator-ajv.js → schema/create-ajv-schema-validator.js} +0 -0
  1207. /package/dist/domain/core/{schema-validator-csp.d.ts → schema/create-csp-schema-validator.d.ts} +0 -0
  1208. /package/dist/domain/core/{schema-validator-csp.js → schema/create-csp-schema-validator.js} +0 -0
  1209. /package/dist/domain/core/{enhanced-json-schema.d.ts → schema/enhanced-json-schema.d.ts} +0 -0
  1210. /package/dist/domain/core/{json-schema.d.ts → schema/extended-schema-validator.d.ts} +0 -0
  1211. /package/dist/domain/core/{schema-validator.d.ts → schema/schema-validator.d.ts} +0 -0
  1212. /package/dist/domain/core/{state.js → state/state.js} +0 -0
  1213. /package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.js +0 -0
  1214. /package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.js +0 -0
  1215. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.d.ts +0 -0
  1216. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.d.ts +0 -0
  1217. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.d.ts +0 -0
  1218. /package/dist/domain/{system-components → extensions}/color-value.d.ts +0 -0
  1219. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.d.ts +0 -0
  1220. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.js +0 -0
  1221. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.d.ts +0 -0
  1222. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.js +0 -0
  1223. /package/dist/domain/{system-components → extensions}/custom-price-footer.d.ts +0 -0
  1224. /package/dist/domain/{system-components → extensions}/finalize-component.d.ts +0 -0
  1225. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.d.ts +0 -0
  1226. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.d.ts +0 -0
  1227. /package/dist/domain/{system-components → extensions}/multilingual-text-value.d.ts +0 -0
  1228. /package/dist/domain/{system-components → extensions}/rotatable.d.ts +0 -0
  1229. /package/dist/domain/{system-components → extensions}/scene-entity-animation.d.ts +0 -0
  1230. /package/dist/domain/{system-components → extensions}/scene-entity-control.d.ts +0 -0
  1231. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.d.ts +0 -0
  1232. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.d.ts +0 -0
  1233. /package/dist/domain/{system-components → extensions}/selectable-component.d.ts +0 -0
  1234. /package/dist/domain/{system-components → extensions}/simple-summary.d.ts +0 -0
  1235. /package/dist/domain/{system-components → extensions}/summary-component.d.ts +0 -0
  1236. /package/dist/domain/{system-components → extensions}/text-value.d.ts +0 -0
  1237. /package/dist/domain/{system-components → extensions}/tool-controls.d.ts +0 -0
  1238. /package/dist/domain/{system-components → extensions}/view-controls.d.ts +0 -0
@@ -1 +1 @@
1
- import{GraphQLError as e,buildSchema as t,defaultFieldResolver as i,getNamedType as o,graphql as a,validateSchema as n}from"graphql";import{assertExistence as r,createSelector as s,isMessageDescriptor as l,isMultilingualString as c}from"@salsita-ai/common/utils";import{DomainEntityIdSchema as h,findAssistantMutation as d}from"#package/domain";import{createEntityMeta as m}from"./entity-meta.js";let p={errors:[new e('No assistant manifest in the application spec. The GraphQL schema is generated from the "assistant" section. Add an "assistant" section to a spec file to expose a schema.')]},u={errors:[new e("The configuration is not loaded yet, so there is no state to query. Run the query again once the configurator has finished loading.")]},f=new RegExp(h.pattern),y=e=>"object"==typeof e&&null!==e&&"type"in e&&"string"==typeof e.type&&"id"in e&&"string"==typeof e.id,g=(e,t)=>"object"==typeof e&&null!==e?Reflect.get(e,t):void 0,v=e=>e instanceof Error?e.message:String(e),S=e=>/[.!?]$/.test(e)?e:`${e}.`,_=e=>"object"==typeof e&&null!==e&&Object.getPrototypeOf(e)===Object.prototype,x=(e,t)=>{let i=_(e)?e._raw:void 0;if(y(i))return i;if(!Array.isArray(e)&&!_(e))return e;if(t.has(e))throw Error("The value contains itself. Return ids or copies of the values instead of objects that reference each other.");let o=new Set([...t,e]);return Array.isArray(e)?e.map(e=>x(e,o)):Object.fromEntries(Object.entries(e).map(([e,t])=>[e,x(t,o)]))},w=(e,t)=>Array.isArray(e)?e.map(e=>w(e,t)):"string"==typeof e||l(e)||c(e)?t(e):e,$=t=>new e(`The GraphQL schema generated from the "assistant" manifest is invalid: ${S(t)} Regenerate the application so the schema is rebuilt from the current spec.`),E=e=>(e.errors?.length??0)>0,b=t=>({errors:[new e(`Not run: operation ${t+1} failed, so the operations after it were skipped and no change of the list takes effect. Fix the failing operation and send the whole list again.`)]});export class GraphQLSystem{_context;_selectSchema=s([s.leaf(e=>e)],e=>{try{let i=t(e),o=n(i);return o.length>0?$(o.map(e=>e.message).join(" ")):i}catch(e){return $(v(e))}});_selectFieldResolver=s([s.leaf(e=>e)],t=>(a,n,r,s)=>{if(s.parentType===s.schema.getQueryType())return i(a,n,r,s);if(s.parentType===s.schema.getMutationType())return this._resolveMutation(s.fieldName,String(s.path.key),n,r);if(!y(a))return i(a,n,r,s);if("meta"===s.fieldName){let e;return m({entity:a,state:("object"==typeof(e=g(a,"_state"))&&null!==e&&"entities"in e&&"rootEntityId"in e?e:void 0)??r.state},{manifest:r.manifest,recipes:this._recipeContext(),prepareStateEmission:(e,t,i)=>this._context.domainContextSelectors.getStoreSystem().prepareStateEmission(e,t,i),find$Entity:(e,t)=>this._find$Entity(e,t),validateEntity:e=>this._context.domainContextSelectors.getDomain().validateEntity(e)})}let{source:l,localized:c}=t[s.parentType.name]?.[s.fieldName]??{source:s.fieldName},h=((t,i)=>{try{return g(t,i)}catch(o){throw new e(`Expression "${i}" failed on ${y(t)?t.id:"an entity"}: ${S(v(o))} The expression threw while the query read it; fix the expression or the configuration state it reads.`,{originalError:o instanceof Error?o:void 0})}})(a,l);return c?w(h,this._context.domainServicesSelectors.getResolveLocalizable()):l.startsWith("$")&&"JSON"===o(s.returnType).name?((t,i,o)=>{try{return x(o,new Set)}catch(o){throw new e(`Expression "${i}" returned a value that is not plain serializable data on ${y(t)?t.id:"an entity"}: ${S(v(o))} A JSON field can only return data that serializes to JSON.`,{originalError:o instanceof Error?o:void 0})}})(a,l,h):h});constructor(e){this._context=e}_get$Entity=(e,t)=>this._context.domainContextSelectors.getDomain().get$Entity(e,t);_find$Entity=(e,t)=>this._context.domainContextSelectors.getDomain().getEntity(e,t)?this._get$Entity(e,t):null;_recipeContext=()=>({componentReader:this._context.domainContextSelectors.getComponentReader(),recipeCooker:this._context.domainContextSelectors.getRecipeCookerSystem(),resolveLocalizable:this._context.domainServicesSelectors.getResolveLocalizable()});_rootValue={root:(e,{state:t})=>this._get$Entity(t.rootEntityId,t),entities:({ids:t},{state:i})=>{if(null==t)return i.entities.map(e=>this._get$Entity(e.id,i));var o=i.rootEntityId;let a=t.filter(e=>!f.test(e));if(a.length>0)throw new e(`${a.map(e=>`"${e}"`).join(", ")} ${1===a.length?"is not an entity id":"are not entity ids"}. Entity ids have the form "<Type>-<number>", e.g. "${o}". Use ids as returned by the "id" field.`);return t.map(e=>f.test(e)?this._find$Entity(e,i):null)},selectedEntity:(e,{state:t})=>this._find$Entity(this._context.domainContextSelectors.getNavigationSystem().getActiveSelectionState(t),t),navigation:(e,{state:t})=>{let i=this._context.domainContextSelectors.getNavigationSystem();return{navigationState:i.getActiveNavigationState(t),viewState:i.getActiveViewState(t),toolState:i.getActiveToolState(t)}}};_resolveType=e=>y(e)?e.type:void 0;initialize=()=>{};_resolveMutation=(t,i,o,a)=>{if(void 0!==a.failedMutationField)throw new e(`Not run: the earlier field "${a.failedMutationField}" of this operation failed, so "${i}" was skipped and no change of the operation takes effect. Fix the failing field and send the operation again.`);try{return this._runMutation(t,o,a)}catch(e){throw a.failedMutationField=i,e}};_runMutation=(t,i,o)=>{let a=d(t,o.manifest);if(!a)throw new e(`The schema declares the mutation "${t}", but the configurator has no implementation for it. Regenerate the application so the schema matches the configurator.`);let n=o.state,r=a.implementation(i,n,{manifest:o.manifest,action:this._context.domainContextSelectors.getActionSystem().createContext(n),resolveLocalizable:this._context.domainServicesSelectors.getResolveLocalizable()});if(r.updates.length>0){let i=this._context.domainContextSelectors.getStoreSystem().prepareStateEmission(r.updates,n,"committed");if(!i.validity.valid)throw new e(`The changes of "${t}" were not applied, because the resulting configuration is invalid: ${(e=>{if("uncaught"===e.severity)return`validating it threw: ${S(v(e.error))}`;let t=[...new Set(e.entityViolations.filter(({violation:t})=>t.severity===e.severity).map(({entityId:e})=>e))];return`it has ${e.severity} violations on ${t.join(", ")}.`})(i.validity)} Change the request so the configuration stays valid.`);o.emissions.push(i),o.state=i.state}return r.readResult({previousState:n,state:o.state})};_setup=()=>{let t=this._context.specSelectors.getAssistant();if(!t)return{ready:!1,result:p};let i=this._selectSchema(t.sdl);return i instanceof e?{ready:!1,result:{errors:[i]}}:{ready:!0,assistant:t,schema:i,fieldResolver:this._selectFieldResolver(t.fields)}};prepare=async(e,t)=>{let i,o=this._setup();if(!o.ready)return t.map(()=>({result:o.result,emissions:[]}));let n={manifest:o.assistant,state:e,emissions:[],failedMutationField:void 0},r=[];for(let[e,s]of t.entries())if(void 0===i){let t=n.emissions.length;n.failedMutationField=void 0;let l=await a({schema:o.schema,source:s.document,rootValue:this._rootValue,contextValue:n,variableValues:s.variables,operationName:s.operationName,fieldResolver:o.fieldResolver,typeResolver:this._resolveType});r.push({result:l,emissions:n.emissions.slice(t)}),E(l)&&(i=e)}else r.push({result:b(i),emissions:[]});return r};_prepareAndCommit=async e=>{let t,i,o,a=this._context.domainContextSelectors.getStoreSystem(),n=await this.prepare(a.stateSlices.committed.value.state,e),s=n.map(({result:e})=>e),l=n.flatMap(e=>e.emissions);return s.some(E)||0===l.length?{results:s,outcome:"none"}:{results:s,outcome:a.commitPrepared((t=r(l[0]),i=r(l[l.length-1]),o=l.some(e=>void 0!==e.transformationLog),{kind:"committed",previousState:t.previousState,state:i.state,updates:l.flatMap(e=>e.updates),validity:i.validity,transformationLog:o?l.flatMap(e=>e.transformationLog??[]):void 0}))}};execute=async e=>{if(!this._context.domainContextSelectors.getStoreSystem().isInitialized)return{results:e.map(()=>u),committed:!1};let t=await this._prepareAndCommit(e),{results:i,outcome:o}="conflict"===t.outcome?await this._prepareAndCommit(e):t;return"committed"===o?{results:i,committed:!0}:"held"===o?{results:i,committed:!1,message:"The changes were not committed yet: the application held them, usually to ask the user for approval. They may still be applied once the user approves, and the next turn shows whether they were. Do not send the operations again."}:"conflict"===o?{results:i,committed:!1,message:"The changes were not committed, because the configuration changed while they were being applied. The results describe a state that was discarded. Query the current configuration and send the operations again if they still make sense."}:{results:i,committed:!1}}}
1
+ import{GraphQLError as e,NoSchemaIntrospectionCustomRule as t,defaultFieldResolver as i,execute as o,getNamedType as n,parse as r,specifiedRules as a,validate as s,validateSchema as l}from"graphql";import{assertExistence as c,createSelector as d,isMessageDescriptor as h,isMultilingualString as u}from"@salsita-ai/common/utils";import{DomainEntityIdSchema as m,createAssistantExecutionSchema as f,findAssistantMutation as p}from"#package/domain";import{createEntityMeta as g}from"./entity-meta.js";import{injectAssistantLenses as y}from"./inject-assistant-lenses.js";import{readSideEffects as v}from"./side-effects.js";let S={errors:[new e("The configurator does not provide this request. This is a fault in the configurator, not in your request. Tell the user this is not available.")]},_={errors:[new e("The configuration is not loaded yet, so there is no state to query. Run the query again once the configurator has finished loading.")]},x=new RegExp(m.pattern),w=[...a,t],E=e=>"object"==typeof e&&null!==e&&"type"in e&&"string"==typeof e.type&&"id"in e&&"string"==typeof e.id,$=(e,t)=>"object"==typeof e&&null!==e?Reflect.get(e,t):void 0,b=e=>e instanceof Error?e.message:String(e),T=e=>/[.!?]$/.test(e)?e:`${e}.`,C=e=>"object"==typeof e&&null!==e&&Object.getPrototypeOf(e)===Object.prototype,R=(e,t)=>{let i=C(e)?e._raw:void 0;if(E(i))return i;if(!Array.isArray(e)&&!C(e))return e;if(t.has(e))throw Error("The value contains itself.");let o=new Set([...t,e]);return Array.isArray(e)?e.map(e=>R(e,o)):Object.fromEntries(Object.entries(e).map(([e,t])=>[e,R(t,o)]))};export const localize=(e,t)=>Array.isArray(e)?e.map(e=>localize(e,t)):"string"==typeof e||h(e)||u(e)?t(e):e;let j=t=>new e(`The configurator cannot handle this request: ${T(t)} This is a fault in the configurator, not in your request. Tell the user this is not available.`),A=e=>(e.errors?.length??0)>0,M=t=>({errors:[new e(`Not run: operation ${t+1} failed, so the operations after it were skipped and no change of the list takes effect. Fix the failing operation and send the whole list again.`)]});export class GraphQLSystem{_context;_selectSchema=d([d.leaf(e=>e)],e=>{try{let t=f(e),i=l(t);return i.length>0?j(i.map(e=>e.message).join(" ")):t}catch(e){return j(b(e))}});_selectLenses=d([d.leaf(e=>e)],e=>r(e));_selectFieldResolver=d([d.leaf(e=>e)],t=>(o,r,a,s)=>{if(s.parentType===s.schema.getQueryType())return i(o,r,a,s);if(s.parentType===s.schema.getMutationType())return this._resolveMutation(s.fieldName,String(s.path.key),r,a);if(!E(o))return i(o,r,a,s);if("meta"===s.fieldName){let e;return g({entity:o,state:("object"==typeof(e=$(o,"_state"))&&null!==e&&"entities"in e&&"rootEntityId"in e?e:void 0)??a.state},{manifest:a.manifest,recipes:this._recipeContext(),prepareStateEmission:(e,t,i)=>this._context.domainContextSelectors.getStoreSystem().prepareStateEmission(e,t,i),find$Entity:(e,t)=>this._find$Entity(e,t),validateEntity:e=>this._context.domainContextSelectors.getDomain().validateEntity(e)})}let{source:l,localized:c}=t[s.parentType.name]?.[s.fieldName]??{source:s.fieldName},d=((t,i)=>{try{return $(t,i)}catch(o){throw new e(`Expression "${i}" failed on ${E(t)?t.id:"an entity"}: ${T(b(o))} This is a fault in the configurator, not in your request. Tell the user this is not available.`,{originalError:o instanceof Error?o:void 0})}})(o,l);return c?localize(d,this._context.domainServicesSelectors.getResolveLocalizable()):l.startsWith("$")&&"JSON"===n(s.returnType).name?((t,i,o)=>{try{return R(o,new Set)}catch(o){throw new e(`Expression "${i}" returned a value that is not plain serializable data on ${E(t)?t.id:"an entity"}: ${T(b(o))} This is a fault in the configurator, not in your request. Tell the user this is not available.`,{originalError:o instanceof Error?o:void 0})}})(o,l,d):d});constructor(e){this._context=e}_get$Entity=(e,t)=>this._context.domainContextSelectors.getDomain().get$Entity(e,t);_find$Entity=(e,t)=>this._context.domainContextSelectors.getDomain().getEntity(e,t)?this._get$Entity(e,t):null;_recipeContext=()=>({componentReader:this._context.domainContextSelectors.getComponentReader(),recipeCooker:this._context.domainContextSelectors.getRecipeCookerSystem(),resolveLocalizable:this._context.domainServicesSelectors.getResolveLocalizable()});_rootValue={root:(e,{state:t})=>this._get$Entity(t.rootEntityId,t),entities:({ids:t},{state:i})=>{if(null==t)return i.entities.map(e=>this._get$Entity(e.id,i));var o=i.rootEntityId;let n=t.filter(e=>!x.test(e));if(n.length>0)throw new e(`${n.map(e=>`"${e}"`).join(", ")} ${1===n.length?"is not an entity id":"are not entity ids"}. Entity ids have the form "<Type>-<number>", e.g. "${o}". Use ids as returned by the "id" field.`);return t.map(e=>x.test(e)?this._find$Entity(e,i):null)},selectedEntity:(e,{state:t})=>this._find$Entity(this._context.domainContextSelectors.getNavigationSystem().getActiveSelectionState(t),t),navigation:(e,{state:t})=>{let i=this._context.domainContextSelectors.getNavigationSystem();return{navigationState:i.getActiveNavigationState(t),viewState:i.getActiveViewState(t),toolState:i.getActiveToolState(t)}}};_resolveType=e=>E(e)?e.type:void 0;initialize=()=>{};_resolveMutation=(t,i,o,n)=>{if(void 0!==n.failedMutationField)throw new e(`Not run: the earlier field "${n.failedMutationField}" of this operation failed, so "${i}" was skipped and no change of the operation takes effect. Fix the failing field and send the operation again.`);try{return this._runMutation(t,o,n)}catch(e){throw n.failedMutationField=i,e}};_runMutation=(t,i,o)=>{let n=p(t,o.manifest);if(!n)throw new e(`The schema declares the mutation "${t}", but the configurator has no implementation for it. This is a fault in the configurator, not in your request. Tell the user this is not available.`);let r=o.state,a=n.implementation(i,r,{manifest:o.manifest,action:this._context.domainContextSelectors.getActionSystem().createContext(r),resolveLocalizable:this._context.domainServicesSelectors.getResolveLocalizable()});if(a.updates.length>0){let i=this._context.domainContextSelectors.getStoreSystem().prepareStateEmission(a.updates,r,"committed");if(!i.validity.valid)throw new e(`The changes of "${t}" were not applied, because the resulting configuration is invalid: ${(e=>{if("uncaught"===e.severity)return`validating it threw: ${T(b(e.error))}`;let t=[...new Set(e.entityViolations.filter(({violation:t})=>t.severity===e.severity).map(({entityId:e})=>e))];return`it has ${e.severity} violations on ${t.join(", ")}.`})(i.validity)} Change the request so the configuration stays valid.`);o.emissions.push(i),o.state=i.state}return a.readResult({previousState:r,state:o.state})};_setup=()=>{let{manifest:t,error:i}=this._context.getAssistantSetup();if(i)return{ready:!1,result:{errors:[new e(i.message,{originalError:i})]}};if(!t)return{ready:!1,result:S};let o=this._selectSchema(t.sdl);return o instanceof e?{ready:!1,result:{errors:[o]}}:{ready:!0,assistant:t,schema:o,lenses:t.lenses?.definitions?this._selectLenses(t.lenses.definitions):void 0,fieldResolver:this._selectFieldResolver(t.fields)}};_run=(t,i,n,a)=>{let l;try{l=r(t)}catch(t){return{errors:[t instanceof e?t:new e(b(t))]}}let c=s(n.schema,l,w);return c.length>0?{errors:c}:o({schema:n.schema,document:l,rootValue:this._rootValue,contextValue:a,variableValues:i.variables,operationName:i.operationName,fieldResolver:n.fieldResolver,typeResolver:this._resolveType})};prepare=async(t,i)=>{let o,n=this._setup();if(!n.ready)return i.map(()=>({result:n.result,emissions:[]}));let r={manifest:n.assistant,state:t,emissions:[],failedMutationField:void 0},a=[];for(let[t,s]of i.entries())if(void 0===o){let i=r.emissions.length;r.failedMutationField=void 0;let l=n.lenses?y(s.document,n.lenses):s.document,c=l instanceof e?{errors:[l]}:await this._run(l,s,n,r);a.push({result:c,emissions:r.emissions.slice(i)}),A(c)&&(o=t)}else a.push({result:M(o),emissions:[]});return a};readSideEffects=e=>{let t=this._context.domainServicesSelectors.getResolveLocalizable();return e.flatMap(({emissions:e})=>e.flatMap(e=>v(e.updates,t)))};_prepareAndCommit=async e=>{let t,i,o,n=this._context.domainContextSelectors.getStoreSystem(),r=await this.prepare(n.stateSlices.committed.value.state,e),a=r.map(({result:e})=>e),s=this.readSideEffects(r),l=r.flatMap(e=>e.emissions);return a.some(A)||0===l.length?{results:a,sideEffects:s,outcome:"none"}:{results:a,sideEffects:s,outcome:n.commitPrepared((t=c(l[0]),i=c(l[l.length-1]),o=l.some(e=>void 0!==e.transformationLog),{kind:"committed",previousState:t.previousState,state:i.state,updates:l.flatMap(e=>e.updates),validity:i.validity,transformationLog:o?l.flatMap(e=>e.transformationLog??[]):void 0}))}};execute=async e=>{if(!this._context.domainContextSelectors.getStoreSystem().isInitialized)return{results:e.map(()=>_),committed:!1,sideEffects:[]};let t=await this._prepareAndCommit(e),{results:i,sideEffects:o,outcome:n}="conflict"===t.outcome?await this._prepareAndCommit(e):t;return"committed"===n?{results:i,committed:!0,sideEffects:o}:"held"===n?{results:i,committed:!1,message:"The changes wait for the user's approval and are not applied yet. Do not send them again; the next `[changes]` block lists them once approved.",sideEffects:o}:"conflict"===n?{results:i,committed:!1,message:"The changes were not committed, because the configuration changed while they were being applied. The results describe a state that was discarded. Query the current configuration and send the operations again if they still make sense.",sideEffects:o}:{results:i,committed:!1,sideEffects:o}}}
@@ -0,0 +1,11 @@
1
+ import { type DocumentNode, GraphQLError } from 'graphql';
2
+ /**
3
+ * Makes the lenses an operation document spreads available to it: appends the definition of every
4
+ * lens the document spreads, with the copies that definition spreads in turn, taken from the
5
+ * manifest's lens `definitions`. Appending keeps the positions GraphQL reports for the caller's own
6
+ * text. A document that defines a fragment under the name of a lens, or of a copy of one, is
7
+ * rejected, since the caller would silently read its own selection instead of the lens. A document
8
+ * that does not parse is returned as it is, so GraphQL reports the syntax error; a spread that names
9
+ * no lens is left for GraphQL to report as an unknown fragment.
10
+ */
11
+ export declare const injectAssistantLenses: (document: string, definitions: DocumentNode) => string | GraphQLError;
@@ -0,0 +1 @@
1
+ import{GraphQLError as e,Kind as n,parse as t,print as a,visit as i}from"graphql";let r=e=>{let n=[];return i(e,{FragmentSpread:e=>{n.push(e.name.value)}}),n};export const injectAssistantLenses=(i,o)=>{let l,s=new Map;for(let e of o.definitions)e.kind===n.FRAGMENT_DEFINITION&&s.set(e.name.value,e);try{l=t(i)}catch{return i}for(let t of l.definitions)if(t.kind===n.FRAGMENT_DEFINITION&&s.has(t.name.value)){let n=t.name.value.split("__")[0];return new e(`A built-in fragment named "${n}" already exists, so "${t.name.value}" cannot be defined. Remove the definition and spread "...${n}", or give your fragment another name.`)}let m=new Map,u=[...r(l)];for(;u.length>0;){let e=u.pop(),n=void 0===e?void 0:s.get(e);n&&!m.has(n.name.value)&&(m.set(n.name.value,n),u.push(...r(n)))}return 0===m.size?i:[i,...[...m.values()].map(a)].join("\n\n")};
@@ -0,0 +1,9 @@
1
+ import type { Localizable } from '@salsita-ai/common/utils';
2
+ import type { DataUpdate, DomainEntity } from '#package/domain';
3
+ /**
4
+ * What the updates of an emission tell the assistant agent the configurator did beyond what was
5
+ * asked, in applied order with duplicates kept, the way the user gets them as snackbars. An update's
6
+ * `agentHint` replaces its user-facing `hint` for the agent, `null` keeps the update from the agent,
7
+ * and an update with neither says nothing. Empty text counts as none, as it does for the snackbar.
8
+ */
9
+ export declare const readSideEffects: (updates: ReadonlyArray<DataUpdate<DomainEntity<string>, DomainEntity<string>>>, resolveLocalizable: (message: Localizable) => string) => readonly string[];
@@ -0,0 +1 @@
1
+ export const readSideEffects=(e,t)=>e.flatMap(({hint:e,agentHint:a})=>null===a?[]:void 0!==a?a?[a]:[]:e?[t(e)]:[]);
@@ -1,5 +1,5 @@
1
1
  export { AnimationSystem, type AnimationSystemContext } from './animation-system.js';
2
- export { type AssistantClientTool, AssistantSystem, type AssistantSystemContext, } from './assistant-system/assistant-system.js';
2
+ export { type AssistantChatSnapshot, type AssistantEarlierThreadSnapshot, type AssistantClientTool, type AssistantPanelSnapshot, AssistantSystem, type AssistantSystemContext, } from './assistant-system/assistant-system.js';
3
3
  export { CameraControlSystem, CameraControlType } from './camera-control-system/camera-control-system.js';
4
4
  export { type AnyCameraSystem, CameraSystem, type CameraSystemContext } from './camera-control-system/camera-system.js';
5
5
  export { createCameraControls } from './camera-control-system/create-camera-controls.js';
@@ -25,6 +25,8 @@ export declare class LayoutSystem<ENTITIES extends DomainEntity<string>> {
25
25
  * whatever was true when it was created.
26
26
  */
27
27
  private get _toolbarHelpExists();
28
+ /** Whether the application spec has an `assistant` section; read on demand for the same reason. */
29
+ private get _hasAssistant();
28
30
  initialize: () => void;
29
31
  getCleanUpPropertyPageStateUpdates: (entityId: DomainEntityId<string>, state: DomainState<ENTITIES>) => import("#package/domain").ComponentModification<import("#package/domain").SystemComponentType<"layoutStateComponent", import("./layout-state.js").LayoutStateComponentState, "propertyPageStates">>[];
30
32
  getLayoutConfig: (state: DomainState<ENTITIES>) => {
@@ -34,7 +36,7 @@ export declare class LayoutSystem<ENTITIES extends DomainEntity<string>> {
34
36
  splitSidebar: boolean;
35
37
  showSelectionBackButton: boolean;
36
38
  shareDisabled: boolean;
37
- availableLocales: string[];
39
+ availableLocales: readonly string[];
38
40
  indicatorSwitch: boolean;
39
41
  };
40
42
  getSidebarSummaryPage: (state: DomainState<ENTITIES>) => {
@@ -69,5 +71,5 @@ export declare class LayoutSystem<ENTITIES extends DomainEntity<string>> {
69
71
  hasSplitSidebar: boolean;
70
72
  };
71
73
  getToolbarState: (state: DomainState<ENTITIES>) => ToolbarComponentState;
72
- getNavigationSteps: (state: DomainState<ENTITIES>) => import("#package/domain").NavigationStep[];
74
+ getNavigationSteps: (state: DomainState<ENTITIES>) => readonly import("#package/domain").NavigationStep[];
73
75
  }
@@ -1 +1 @@
1
- import{P as t,match as e}from"ts-pattern";import{SystemState as o,applicationConfigComponent as n,customSummaryPageComponent as a,entityHeaderComponent as i,navigationStepsComponent as r,propertyPageComponent as s,sidebarTabsComponent as l,simpleSummaryComponent as d,toolbarComponent as c}from"#package/domain";import{layoutStateComponent as g}from"./layout-state.js";import{toolbarHelpElementName as u}from"./toolbar-help-element.js";export class LayoutSystem{_context;_toolbarCache=new WeakMap;state;constructor(t){this._context=t,this.state=new o({...this._context,selectors:this._context.domainContextSelectors,componentType:g,getInitialState:()=>({propertyPageStates:{}})})}get _toolbarHelpExists(){return void 0!==this._context.specSelectors.getElementSlots().layoutElements[u]}initialize=()=>{this.state.initialize()};getCleanUpPropertyPageStateUpdates=(t,e)=>this.state.getUpdates(e=>{if(!e.propertyPageStates[t])return null;let o={...e.propertyPageStates};return delete o[t],{...e,propertyPageStates:o}},e);getLayoutConfig=t=>{let e=this._context.domainContextSelectors.getComponentReader().readFirstRootComponent({componentTypes:[n]},t),o=e?.state.shareDisabled??!1,a=o||(e?.state.shareOwnerLinkDisabled??!1),i=o||(e?.state.shareReadRevisionLinkDisabled??!1);return{layout:e?.state.layout??"universal",ignoreSelectionInSidebar:e?.state.ignoreSelectionInSidebar??!1,miniSidebar:e?.state.miniSidebar??!1,splitSidebar:e?.state.splitSidebar??!1,showSelectionBackButton:e?.state.showSelectionBackButton??!0,shareDisabled:a&&i,availableLocales:e?.state.availableLocales??["en"],indicatorSwitch:e?.state.indicatorSwitch??!0}};getSidebarSummaryPage=t=>{let e=this._context.domainContextSelectors.getNavigationSystem().getActiveNavigationState(t),o=this._context.domainContextSelectors.getComponentReader().readFirstRootComponent({componentTypes:[a,d]},t),n=e===o?.state.summaryNavigationState,i=o?.state.summaryNavigationState;return{page:o,isSummaryActive:n,summaryNavigationState:i}};getEnterSidebarSummaryUpdates=t=>{let{summaryNavigationState:e}=this.getSidebarSummaryPage(t);return e?[this._context.domainContextSelectors.getNavigationSystem().getPushNavigationUpdate(e,t)]:[]};getLeaveSidebarSummaryUpdates=t=>{let e=this._context.domainContextSelectors.getNavigationSystem().getPopNavigationUpdate(t);if(e)return[e];let o=this._context.domainContextSelectors.getNavigationStates().at(0);return o?(this._context.domainServicesSelectors.getLogger().error("There is no navigation state to pop, falling back to the initial navigation state. Check whether the history stack is not broken by some custom navigation logic."),[this._context.domainContextSelectors.getNavigationSystem().getNavigationUpdate(o)]):(this._context.domainServicesSelectors.getLogger().error("There is no navigation state to pop and no initial navigation state to fallback to, this should not happen"),[])};getPushSidebarStackPageUpdates=(t,e,o,n)=>this.state.getUpdates(n=>{let a=n.propertyPageStates[t]??{customState:{},stackPages:[]};return{...n,propertyPageStates:{...n.propertyPageStates,[t]:{...a,stackPages:[...a.stackPages,{props:o,component:e}]}}}},n);getPopSidebarStackPageUpdates=(t,e)=>this.state.getUpdates(e=>{let o=e.propertyPageStates[t]??{customState:{},stackPages:[]};return{...e,propertyPageStates:{...e.propertyPageStates,[t]:{...o,stackPages:o.stackPages.slice(0,-1)}}}},e);getSidebarBackUpdates=t=>{let e=this._context.domainContextSelectors.getNavigationSystem().getHasStackToPop(t),o=this._context.domainContextSelectors.getNavigationSystem().getIsRootSelected(t),{renderedStackedPage:n,summaryPage:a,activePropertyPageId:i}=this.getSidebarContent(t);if(a)return this.getLeaveSidebarSummaryUpdates(t);if(n&&i)return this.getPopSidebarStackPageUpdates(i,t);if(e){let e=this._context.domainContextSelectors.getNavigationSystem().getPopNavigationUpdate(t);return e?[e]:[]}return o?[]:[this._context.domainContextSelectors.getNavigationSystem().getDeselectUpdate()]};getSidebarContent=t=>{let e=this._context.domainContextSelectors.getNavigationSystem().getActiveSelectionState(t),o=this.state.get(t),n=this.getLayoutConfig(t),a=this._context.domainContextSelectors.getComponentReader().readManyComponents({componentTypes:[l],entityIds:[e]},t).some(t=>t.state.tabs.length>0),r=n.miniSidebar&&!a;r&&a&&this._context.domainServicesSelectors.getLogger().warn("Mini sidebar is not active because the layout contains tabs. Only layouts without tabs can have mini sidebar.");let d=this._context.domainContextSelectors.getComponentReader().readManyComponents({componentTypes:[s]},t),{isSummaryActive:c,page:g}=this.getSidebarSummaryPage(t),u=this._context.domainContextSelectors.getComponentReader().readManyComponents({componentTypes:[i]},t),p=this._context.domainContextSelectors.getCompositionProjections().getTree(t).map.get(e);if(!p)throw Error(`Selected entity ${e} not found in composition tree`);let m=this._context.domainContextSelectors.getCompositionProjections().getTree(t).map.get(t.rootEntityId);if(!m)throw Error(`Root entity ${t.rootEntityId} not found in composition tree`);let S=(n.ignoreSelectionInSidebar?[m]:[p,...p.ancestors()]).map(t=>{let e=n.ignoreSelectionInSidebar?d:d.filter(e=>e.componentInstance.entityId===t.id),o=u.filter(e=>e.componentInstance.entityId===t.id);return{id:t.id,propertyPages:e,header:o[0]??null}}),h=S[0]?.id,b=(h?o.propertyPageStates[h]?.stackPages??[]:[]).at(-1)??null,k=this._context.domainContextSelectors.getNavigationSystem().getHasStackToPop(t),x=this._context.domainContextSelectors.getNavigationSystem().getIsRootSelected(t),y=c&&k||k||!!b||!x&&n.showSelectionBackButton&&!n.ignoreSelectionInSidebar;return c?{summaryPage:g,propertyPages:[],isBackAvailable:y,hasMiniSidebar:r,hasSplitSidebar:n.splitSidebar}:{summaryPage:null,propertyPages:S,renderedStackedPage:b,activePropertyPageId:h,isBackAvailable:y,hasMiniSidebar:r,hasSplitSidebar:n.splitSidebar}};getToolbarState=o=>{let n=this._toolbarHelpExists,a=this._toolbarCache.get(o);if(a&&a.toolbarHelpExists===n)return a.result;let i=this._context.domainContextSelectors.getExpressionContext(),r=this._context.domainContextSelectors.getNavigationSystem().getActiveFullscreenState(o),s="read"===i.mode,l=this._context.domainContextSelectors.getComponentReader().readFirstRootComponent({componentTypes:[c]},o),d=this._context.domainContextSelectors.getDimensionSystem().getDimensionConfig(o),g=this.getLayoutConfig(o),u="read"===this._context.domainContextSelectors.getExpressionContext().mode,p=g.availableLocales.length>1,m=!u&&!g.shareDisabled,S=g.indicatorSwitch,h=d.availableDimensions.length>1||S,b=e(l).returnType().with(t.nonNullable,t=>t.state).with(t.nullish,()=>e([r,s]).returnType().with([!1,!1],()=>({desktop:[{kind:"toolbarButtonGroup",children:[{kind:"enterFullscreenToolbarButton"}]},{kind:"toolbarButtonGroup",children:[{kind:"resetCameraToolbarButton"}]},...p?[{kind:"toolbarButtonGroup",children:[{kind:"languageToolbarButton"}]}]:[],...m||h?[{kind:"toolbarButtonGroup",children:[...m?[{kind:"shareToolbarButton"}]:[],...h?[{kind:"measurementsToolbarButton"}]:[],...n?[{kind:"helpToolbarButton"}]:[]]}]:[],{kind:"toolbarButtonGroup",children:[{kind:"undoToolbarButton"},{kind:"redoToolbarButton"}]}],mobile:[{kind:"toolbarButtonGroup",children:[{kind:"undoToolbarButton"},{kind:"redoToolbarButton"}]},{kind:"toolbarButtonGroup",children:[{kind:"resetCameraToolbarButton"}]},{kind:"toolbarButtonGroup",children:[{kind:"enterFullscreenToolbarButton"}]}],mobileMenu:[...m?[{kind:"shareMenuAction"}]:[],...h?[{kind:"measurementsMenuAction"}]:[],...p?[{kind:"languageMenuAction"}]:[],...n?[{kind:"helpMenuAction"}]:[]]})).with([!0,!1],()=>({desktop:[{kind:"toolbarButtonGroup",children:[{kind:"exitFullscreenToolbarButton"}]}],mobile:[{kind:"toolbarButtonGroup",children:[{kind:"exitFullscreenToolbarButton"}]}],mobileMenu:[]})).with([!1,!0],()=>({desktop:[{kind:"toolbarButtonGroup",children:[{kind:"enterFullscreenToolbarButton"}]},{kind:"toolbarButtonGroup",children:[{kind:"resetCameraToolbarButton"}]},...p?[{kind:"toolbarButtonGroup",children:[{kind:"languageToolbarButton"}]}]:[],...h?[{kind:"toolbarButtonGroup",children:[...h?[{kind:"measurementsToolbarButton"}]:[]]}]:[],...n?[{kind:"helpToolbarButton"}]:[]],mobile:[{kind:"toolbarButtonGroup",children:[{kind:"resetCameraToolbarButton"}]},{kind:"toolbarButtonGroup",children:[{kind:"enterFullscreenToolbarButton"}]}],mobileMenu:[...h?[{kind:"measurementsMenuAction"}]:[],...p?[{kind:"languageMenuAction"}]:[],...n?[{kind:"helpMenuAction"}]:[]]})).with([!0,!0],()=>({desktop:[{kind:"toolbarButtonGroup",children:[{kind:"exitFullscreenToolbarButton"}]}],mobile:[{kind:"toolbarButtonGroup",children:[{kind:"exitFullscreenToolbarButton"}]}],mobileMenu:[]})).exhaustive()).exhaustive();return this._toolbarCache.set(o,{toolbarHelpExists:n,result:b}),b};getNavigationSteps=t=>{let e=this._context.domainContextSelectors.getComponentReader().readFirstRootComponent({componentTypes:[r]},t);return e?.state.steps??[]}}
1
+ import{P as t,match as e}from"ts-pattern";import{SystemState as o,applicationConfigComponent as n,customSummaryPageComponent as a,entityHeaderComponent as i,navigationStepsComponent as r,propertyPageComponent as s,sidebarTabsComponent as l,simpleSummaryComponent as d,toolbarComponent as c}from"#package/domain";import{layoutStateComponent as g}from"./layout-state.js";import{toolbarHelpElementName as u}from"./toolbar-help-element.js";export class LayoutSystem{_context;_toolbarCache=new WeakMap;state;constructor(t){this._context=t,this.state=new o({...this._context,selectors:this._context.domainContextSelectors,componentType:g,getInitialState:()=>({propertyPageStates:{}})})}get _toolbarHelpExists(){return void 0!==this._context.specSelectors.getElementSlots().layoutElements[u]}get _hasAssistant(){return null!=this._context.specSelectors.getAssistant()}initialize=()=>{this.state.initialize()};getCleanUpPropertyPageStateUpdates=(t,e)=>this.state.getUpdates(e=>{if(!e.propertyPageStates[t])return null;let o={...e.propertyPageStates};return delete o[t],{...e,propertyPageStates:o}},e);getLayoutConfig=t=>{let e=this._context.domainContextSelectors.getComponentReader().readFirstRootComponent({componentTypes:[n]},t),o=e?.state.shareDisabled??!1,a=o||(e?.state.shareOwnerLinkDisabled??!1),i=o||(e?.state.shareReadRevisionLinkDisabled??!1);return{layout:e?.state.layout??"universal",ignoreSelectionInSidebar:e?.state.ignoreSelectionInSidebar??!1,miniSidebar:e?.state.miniSidebar??!1,splitSidebar:e?.state.splitSidebar??!1,showSelectionBackButton:e?.state.showSelectionBackButton??!0,shareDisabled:a&&i,availableLocales:e?.state.availableLocales??["en"],indicatorSwitch:e?.state.indicatorSwitch??!0}};getSidebarSummaryPage=t=>{let e=this._context.domainContextSelectors.getNavigationSystem().getActiveNavigationState(t),o=this._context.domainContextSelectors.getComponentReader().readFirstRootComponent({componentTypes:[a,d]},t),n=e===o?.state.summaryNavigationState,i=o?.state.summaryNavigationState;return{page:o,isSummaryActive:n,summaryNavigationState:i}};getEnterSidebarSummaryUpdates=t=>{let{summaryNavigationState:e}=this.getSidebarSummaryPage(t);return e?[this._context.domainContextSelectors.getNavigationSystem().getPushNavigationUpdate(e,t)]:[]};getLeaveSidebarSummaryUpdates=t=>{let e=this._context.domainContextSelectors.getNavigationSystem().getPopNavigationUpdate(t);if(e)return[e];let o=this._context.domainContextSelectors.getNavigationStates().at(0);return o?(this._context.domainServicesSelectors.getLogger().error("There is no navigation state to pop, falling back to the initial navigation state. Check whether the history stack is not broken by some custom navigation logic."),[this._context.domainContextSelectors.getNavigationSystem().getNavigationUpdate(o)]):(this._context.domainServicesSelectors.getLogger().error("There is no navigation state to pop and no initial navigation state to fallback to, this should not happen"),[])};getPushSidebarStackPageUpdates=(t,e,o,n)=>this.state.getUpdates(n=>{let a=n.propertyPageStates[t]??{customState:{},stackPages:[]};return{...n,propertyPageStates:{...n.propertyPageStates,[t]:{...a,stackPages:[...a.stackPages,{props:o,component:e}]}}}},n);getPopSidebarStackPageUpdates=(t,e)=>this.state.getUpdates(e=>{let o=e.propertyPageStates[t]??{customState:{},stackPages:[]};return{...e,propertyPageStates:{...e.propertyPageStates,[t]:{...o,stackPages:o.stackPages.slice(0,-1)}}}},e);getSidebarBackUpdates=t=>{let e=this._context.domainContextSelectors.getNavigationSystem().getHasStackToPop(t),o=this._context.domainContextSelectors.getNavigationSystem().getIsRootSelected(t),{renderedStackedPage:n,summaryPage:a,activePropertyPageId:i}=this.getSidebarContent(t);if(a)return this.getLeaveSidebarSummaryUpdates(t);if(n&&i)return this.getPopSidebarStackPageUpdates(i,t);if(e){let e=this._context.domainContextSelectors.getNavigationSystem().getPopNavigationUpdate(t);return e?[e]:[]}return o?[]:[this._context.domainContextSelectors.getNavigationSystem().getDeselectUpdate()]};getSidebarContent=t=>{let e=this._context.domainContextSelectors.getNavigationSystem().getActiveSelectionState(t),o=this.state.get(t),n=this.getLayoutConfig(t),a=this._context.domainContextSelectors.getComponentReader().readManyComponents({componentTypes:[l],entityIds:[e]},t).some(t=>t.state.tabs.length>0),r=n.miniSidebar&&!a;r&&a&&this._context.domainServicesSelectors.getLogger().warn("Mini sidebar is not active because the layout contains tabs. Only layouts without tabs can have mini sidebar.");let d=this._context.domainContextSelectors.getComponentReader().readManyComponents({componentTypes:[s]},t),{isSummaryActive:c,page:g}=this.getSidebarSummaryPage(t),u=this._context.domainContextSelectors.getComponentReader().readManyComponents({componentTypes:[i]},t),p=this._context.domainContextSelectors.getCompositionProjections().getTree(t).map.get(e);if(!p)throw Error(`Selected entity ${e} not found in composition tree`);let m=this._context.domainContextSelectors.getCompositionProjections().getTree(t).map.get(t.rootEntityId);if(!m)throw Error(`Root entity ${t.rootEntityId} not found in composition tree`);let h=(n.ignoreSelectionInSidebar?[m]:[p,...p.ancestors()]).map(t=>{let e=n.ignoreSelectionInSidebar?d:d.filter(e=>e.componentInstance.entityId===t.id),o=u.filter(e=>e.componentInstance.entityId===t.id);return{id:t.id,propertyPages:e,header:o[0]??null}}),S=h[0]?.id,b=(S?o.propertyPageStates[S]?.stackPages??[]:[]).at(-1)??null,k=this._context.domainContextSelectors.getNavigationSystem().getHasStackToPop(t),x=this._context.domainContextSelectors.getNavigationSystem().getIsRootSelected(t),y=c&&k||k||!!b||!x&&n.showSelectionBackButton&&!n.ignoreSelectionInSidebar;return c?{summaryPage:g,propertyPages:[],isBackAvailable:y,hasMiniSidebar:r,hasSplitSidebar:n.splitSidebar}:{summaryPage:null,propertyPages:h,renderedStackedPage:b,activePropertyPageId:S,isBackAvailable:y,hasMiniSidebar:r,hasSplitSidebar:n.splitSidebar}};getToolbarState=o=>{let n=this._toolbarHelpExists,a=this._hasAssistant,i=this._toolbarCache.get(o);if(i&&i.toolbarHelpExists===n&&i.hasAssistant===a)return i.result;let r=this._context.domainContextSelectors.getExpressionContext(),s=this._context.domainContextSelectors.getNavigationSystem().getActiveFullscreenState(o),l="read"===r.mode,d=this._context.domainContextSelectors.getComponentReader().readFirstRootComponent({componentTypes:[c]},o),g=this._context.domainContextSelectors.getDimensionSystem().getDimensionConfig(o),u=this.getLayoutConfig(o),p="read"===this._context.domainContextSelectors.getExpressionContext().mode,m=u.availableLocales.length>1,h=!p&&!u.shareDisabled,S=u.indicatorSwitch,b=g.availableDimensions.length>1||S,k=a?[{kind:"toolbarButtonGroup",children:[{kind:"assistantToolbarButton"}]}]:[],x=e(d).returnType().with(t.nonNullable,t=>t.state).with(t.nullish,()=>e([s,l]).returnType().with([!1,!1],()=>({desktop:[{kind:"toolbarButtonGroup",children:[{kind:"enterFullscreenToolbarButton"}]},{kind:"toolbarButtonGroup",children:[{kind:"resetCameraToolbarButton"}]},...m?[{kind:"toolbarButtonGroup",children:[{kind:"languageToolbarButton"}]}]:[],...h||b?[{kind:"toolbarButtonGroup",children:[...h?[{kind:"shareToolbarButton"}]:[],...b?[{kind:"measurementsToolbarButton"}]:[],...n?[{kind:"helpToolbarButton"}]:[]]}]:[],{kind:"toolbarButtonGroup",children:[{kind:"undoToolbarButton"},{kind:"redoToolbarButton"}]},...k],mobile:[{kind:"toolbarButtonGroup",children:[{kind:"undoToolbarButton"},{kind:"redoToolbarButton"}]},{kind:"toolbarButtonGroup",children:[{kind:"resetCameraToolbarButton"}]},{kind:"toolbarButtonGroup",children:[{kind:"enterFullscreenToolbarButton"}]},...k],mobileMenu:[...h?[{kind:"shareMenuAction"}]:[],...b?[{kind:"measurementsMenuAction"}]:[],...m?[{kind:"languageMenuAction"}]:[],...n?[{kind:"helpMenuAction"}]:[]]})).with([!0,!1],()=>({desktop:[{kind:"toolbarButtonGroup",children:[{kind:"exitFullscreenToolbarButton"}]}],mobile:[{kind:"toolbarButtonGroup",children:[{kind:"exitFullscreenToolbarButton"}]}],mobileMenu:[]})).with([!1,!0],()=>({desktop:[{kind:"toolbarButtonGroup",children:[{kind:"enterFullscreenToolbarButton"}]},{kind:"toolbarButtonGroup",children:[{kind:"resetCameraToolbarButton"}]},...m?[{kind:"toolbarButtonGroup",children:[{kind:"languageToolbarButton"}]}]:[],...b?[{kind:"toolbarButtonGroup",children:[...b?[{kind:"measurementsToolbarButton"}]:[]]}]:[],...n?[{kind:"helpToolbarButton"}]:[],...k],mobile:[{kind:"toolbarButtonGroup",children:[{kind:"resetCameraToolbarButton"}]},{kind:"toolbarButtonGroup",children:[{kind:"enterFullscreenToolbarButton"}]},...k],mobileMenu:[...b?[{kind:"measurementsMenuAction"}]:[],...m?[{kind:"languageMenuAction"}]:[],...n?[{kind:"helpMenuAction"}]:[]]})).with([!0,!0],()=>({desktop:[{kind:"toolbarButtonGroup",children:[{kind:"exitFullscreenToolbarButton"}]}],mobile:[{kind:"toolbarButtonGroup",children:[{kind:"exitFullscreenToolbarButton"}]}],mobileMenu:[]})).exhaustive()).exhaustive();return this._toolbarCache.set(o,{toolbarHelpExists:n,hasAssistant:a,result:x}),x};getNavigationSteps=t=>{let e=this._context.domainContextSelectors.getComponentReader().readFirstRootComponent({componentTypes:[r]},t);return e?.state.steps??[]}}
@@ -1,5 +1,5 @@
1
1
  import { type $DomainEntity, type ConfiguratorBuilder, type CreateCustomPhoenixEntityElement, type CreateCustomPhoenixLayoutElement, type CreateGetThemeHandler, type CreateGetWebComponentOptionsHandler, type CreatePhoenixHandler, type DomainEntity, type IsCreateRecipeUpdate, type IsReplaceRecipeUpdate, type TransformerBuilder, type TransformerFactory, type UpdateFactory, getIdSequence } from '#package/domain';
2
- import { type CreateCollectFrontendDataHandler, type CreateFilterPublishedChunksHandler, type CreateNotAuthenticatedPage, type IsAngleDimensionUpdate, type IsAttributeSelectionUpdate, type IsAttributeSwitchUpdate, type IsDeleteEntityUpdate, type IsDistanceDimensionUpdate, type IsGenericDimensionUpdate, type IsSwatchSelectionUpdate, type IsTextValueUpdate, type UseAccessService, type UseActiveNavigationState, type UseActiveToolState, type UseActiveViewState, type UseAnalyticsService, type UseAngleDimension, type UseAttributeSelection, type UseAttributeSwitch, type UseAuthenticatedClient, type UseAuthorizedClient, type UseBackendData, type UseChildEntitySelection, type UseComponent, type UseComponents, type UseComposition, type UseConfigurationId, type UseControlViolations, type UseCookRecipes, type UseCookReplaceRecipes, type UseCookedRecipes, type UseCookedReplaceRecipes, type UseCreateAuthorizedClient, type UseDeleteEntity, type UseDeletedEntity, type UseDeselect, type UseDistanceDimension, type UseDistanceDimensionSelection, type UseDomainApplicationContext, type UseDomainApplicationProps, type UseDomainContext, type UseDomainEntityState, type UseEntityPrice, type UseEntitySelector, type UseFinalizeViolations, type UseFirstComponent, type UseFirstRootComponent, type UseFrontendData, type UseGenericDimension, type UseGroupedRecipeOptions, type UseHoveredDomainEntityId, type UseHoveredEntity, type UseHoveredEntityId, type UseIntegrationService, type UseIntegrationState, type UseIsFullscreenActive, type UseLoadedData, type UseLoadingState, type UseMapViolationHints, type UseNavigate, type UsePopNavigate, type UsePresetEmbeddedState, type UsePublishedData, type UsePushNavigate, type UseRecipeEmbeddedState, type UseReplaceEntityRecipeOptions, type UseRootComponents, type UseRootEntityId, type UseRootEntityPrice, type UseRootEntitySelector, type UseRootEntityState, type UseSelectEntity, type UseSelectParent, type UseSelectedDomainEntityId, type UseSelectedEntity, type UseSelectedEntityId, type UseSession, type UseSessionRole, type UseSessionService, type UseSlice, type UseState, type UseStateValidity, type UseSwatchSelection, type UseSynchronizedSelector, type UseSynchronizedSelector$, type UseTextValue, type UseUpdateControl, type UseUpdatedControl, useLoadingStateValue } from '#package/react-sdk';
2
+ import { type CreateCollectFrontendDataHandler, type CreateFilterPublishedChunksHandler, type CreateNotAuthenticatedPage, type IsAngleDimensionUpdate, type IsAttributeSelectionUpdate, type IsAttributeSwitchUpdate, type IsDeleteEntityUpdate, type IsDistanceDimensionUpdate, type IsGenericDimensionUpdate, type IsSwatchSelectionUpdate, type IsTextValueUpdate, type UseAccessService, type UseActiveNavigationState, type UseActiveToolState, type UseActiveViewState, type UseAnalyticsService, type UseAngleDimension, type UseAttributeSelection, type UseAttributeSwitch, type UseAuthenticatedClient, type UseAuthorizedClient, type UseBackendData, type UseChildEntitySelection, type UseComponent, type UseComponents, type UseComposition, type UseConfigurationId, type UseConfiguratorMessages, type UseControlViolations, type UseCookRecipes, type UseCookReplaceRecipes, type UseCookedRecipes, type UseCookedReplaceRecipes, type UseCreateAuthorizedClient, type UseDeleteEntity, type UseDeletedEntity, type UseDeselect, type UseDistanceDimension, type UseDistanceDimensionSelection, type UseDomainApplicationContext, type UseDomainApplicationProps, type UseDomainContext, type UseDomainEntityState, type UseEntityPrice, type UseEntitySelector, type UseFinalizeViolations, type UseFirstComponent, type UseFirstRootComponent, type UseFrontendData, type UseGenericDimension, type UseGroupedRecipeOptions, type UseHoveredDomainEntityId, type UseHoveredEntity, type UseHoveredEntityId, type UseIntegrationService, type UseIntegrationState, type UseIsFullscreenActive, type UseLoadedData, type UseLoadingState, type UseMapViolationHints, type UseNavigate, type UsePopNavigate, type UsePresetEmbeddedState, type UsePublishedData, type UsePushNavigate, type UseRecipeEmbeddedState, type UseReplaceEntityRecipeOptions, type UseRootComponents, type UseRootEntityId, type UseRootEntityPrice, type UseRootEntitySelector, type UseRootEntityState, type UseSelectEntity, type UseSelectParent, type UseSelectedDomainEntityId, type UseSelectedEntity, type UseSelectedEntityId, type UseSession, type UseSessionRole, type UseSessionService, type UseSetFullscreen, type UseSlice, type UseState, type UseStateValidity, type UseSwatchSelection, type UseSynchronizedSelector, type UseSynchronizedSelector$, type UseTextValue, type UseUpdateControl, type UseUpdatedControl, useLoadingStateValue } from '#package/react-sdk';
3
3
  import { type CreatePhoenixIconSet } from '#package/ui-sdk';
4
4
  import { type UseConfiguratorExtensions } from '../application-runtime/index.js';
5
5
  import { type CreateOnApplicationStartProvider, type CreateOnBackendDataReadyProvider, type CreateOnConfiguratorReadyProvider, type CreateOnFrontendDataReadyProvider, type CreateOnGoToIndexHandler, type CreateOnPresetLoadedHandler, type CreateOnPublishedDataReadyProvider, type CreateOnRoutingReadyProvider, type CreateOnSessionReadyProvider, type UseConfiguratorRouting, type UsePresetSelection, usePropertyPageStack, usePropertyPageState } from '../configurator-context/index.js';
@@ -341,6 +341,12 @@ export interface ConfiguratorInterface<ENTITIES extends DomainEntity<string>, AL
341
341
  * Returns finalize properties based on the validity of the provided emission used for dry running finalize button
342
342
  */
343
343
  useFinalizeViolations: UseFinalizeViolations<ENTITIES, $MAP>;
344
+ /**
345
+ * Calls the given function once for every violation, side-effect hint and validation error: the violations of a
346
+ * rejected change, the hints of a committed change and an error thrown while a change was validated, with the
347
+ * text resolved
348
+ */
349
+ useConfiguratorMessages: UseConfiguratorMessages<ENTITIES, $MAP>;
344
350
  /**
345
351
  * Returns component based on a filter specified
346
352
  */
@@ -466,6 +472,10 @@ export interface ConfiguratorInterface<ENTITIES extends DomainEntity<string>, AL
466
472
  * Get the currently active fullscreen state
467
473
  */
468
474
  useIsFullscreenActive: UseIsFullscreenActive;
475
+ /**
476
+ * Turn the fullscreen state on or off. The state is a flag the layout reads with `useIsFullscreenActive`
477
+ */
478
+ useSetFullscreen: UseSetFullscreen;
469
479
  /**
470
480
  * Returns composition tree of the domain
471
481
  */
@@ -1 +1 @@
1
- import{createCustomPhoenixEntityElement as e,createCustomPhoenixLayoutElement as t,createGetThemeHandler as r,createGetWebComponentOptionsHandler as o,createPhoenixHandler as i,createTransformer as s,createTransformerBuilder as a,createUpdateFactory as n,getIdSequence as m,isCreateEntityUpdate as p,isReplaceEntityUpdate as u}from"#package/domain";import{createCollectFrontendDataHandler as d,createFilterPublishedChunksHandler as c,createNotAuthenticatedPage as f,isAngleDimensionUpdate as g,isAttributeSelectionUpdate as j,isAttributeSwitchUpdate as l,isDeleteEntityUpdate as x,isDistanceDimensionUpdate as y,isGenericDimensionUpdate as k,isSwatchSelectionUpdate as h,isTextValueUpdate as S,useAccessService as E,useActiveNavigationState as I,useActiveToolState as q,useActiveViewState as A,useAnalyticsService as B,useAngleDimension as C,useAttributeSelection as P,useAttributeSwitch as R,useAuthenticatedClient as U,useAuthorizedClient as b,useBackendData as v,useChildEntitySelection as w,useCommittedSlice as z,useCommittedState as D,useComponent as F,useComponents as G,useComposition as H,useConfigurationId as J,useControlViolations as K,useCookRecipes as L,useCookReplaceRecipes as M,useCookedRecipes as N,useCookedReplaceRecipes as O,useCreateAuthorizedClient as Q,useDeleteEntity as T,useDeletedEntity as V,useDeselect as W,useDistanceDimension as X,useDistanceDimensionSelection as Y,useDomain as Z,useDomainApplication as $,useDomainApplicationProps as _,useDomainEntityRenderedState as ee,useDomainEntityState as et,useEntityPrice as er,useEntitySelector as eo,useFinalizeViolations as ei,useFirstComponent as es,useFirstRenderedComponent as ea,useFirstRootComponent as en,useFirstRootRenderedComponent as em,useFrontendData as ep,useGenericDimension as eu,useGroupedRecipeOptions as ed,useHoveredDomainEntityId as ec,useHoveredEntity as ef,useHoveredEntityId as eg,useIntegrationService as ej,useIntegrationState as el,useIsFullscreenActive as ex,useLoadedData as ey,useLoadingState as ek,useLoadingStateValue as eh,useMapViolationHints as eS,useNavigate as eE,usePopNavigate as eI,usePresetEmbeddedState as eq,usePublishedData as eA,usePushNavigate as eB,useRecipeEmbeddedState as eC,useRenderedComponent as eP,useRenderedComponents as eR,useRenderedEntitySelector as eU,useRenderedRootEntitySelector as eb,useRenderedSelector as ev,useRenderedSelector$ as ew,useRenderedSlice as ez,useRenderedState as eD,useReplaceEntityRecipeOptions as eF,useRootComponents as eG,useRootEntityId as eH,useRootEntityPrice as eJ,useRootEntityRenderedId as eK,useRootEntityRenderedState as eL,useRootEntitySelector as eM,useRootEntityState as eN,useRootRenderedComponents as eO,useSelectEntity as eQ,useSelectParent as eT,useSelectedDomainEntityId as eV,useSelectedEntity as eW,useSelectedEntityId as eX,useSession as eY,useSessionRole as eZ,useSessionService as e$,useStateValidity as e_,useStoreSelector as e0,useStoreSelector$ as e1,useSwatchSelection as e2,useTextValue as e3,useUpdateControl as e4,useUpdatedControl as e5}from"#package/react-sdk";import{createPhoenixIconSet as e6}from"#package/ui-sdk";import{useConfigurator as e7}from"../application-runtime/index.js";import{createOnApplicationStartProvider as e8,createOnBackendDataReadyProvider as e9,createOnConfiguratorReadyProvider as te,createOnFrontendDataReadyProvider as tt,createOnGoToIndexHandler as tr,createOnPresetLoadedHandler as to,createOnPublishedDataReadyProvider as ti,createOnRoutingReadyProvider as ts,createOnSessionReadyProvider as ta,useConfiguratorRouting as tn,usePresetSelection as tm,usePropertyPageStack as tp,usePropertyPageState as tu}from"../configurator-context/index.js";import{createGetTextureProcessingMapHandler as td}from"../scene/index.js";import{useUpdateEntityObjectSelection as tc}from"../scene/scene-entity/drag-and-drop/use-updated-selection.js";import{createAppLoader as tf,createCanvasLoader as tg,createLayoutAdminUi as tj,createLayoutCustomOwnerUi as tl,createLayoutCustomReadUi as tx,createLayoutDialog as ty,createLayoutFooter as tk,createLayoutToolbarDesktop as th,createLayoutToolbarDesktopFullScreen as tS,createLayoutToolbarReadDesktop as tE,createLayoutToolbarReadDesktopFullScreen as tI,createLayoutUserUi as tq,createToolbarHelp as tA}from"../ui/index.js";import{useGenerateShareLink as tB}from"../ui/phoenix-layout-elements/share/use-share.js";import{createPresetDeviceNotSupported as tC,createPresetPageAction as tP,createPresetUi as tR}from"../ui/preset-layout/PresetUi.js";export const createConfiguratorInterface=tU=>({updates:n(),getIdSequence:m,createGetWebComponentOptionsHandler:o,createGetThemeHandler:r,createPhoenixHandler:i,createCustomPhoenixEntityElement:e,createCustomPhoenixLayoutElement:t,createPhoenixIconSet:e6,createGetTextureProcessingMapHandler:td,createCollectFrontendDataHandler:d,createFilterPublishedChunksHandler:c,createOnGoToIndexHandler:tr,createOnApplicationStartProvider:e8,createOnSessionReadyProvider:ta,createOnPublishedDataReadyProvider:ti,createOnFrontendDataReadyProvider:tt,createOnBackendDataReadyProvider:e9,createOnRoutingReadyProvider:ts,createOnConfiguratorReadyProvider:te,createOnPresetLoadedHandler:to,createPresetUi:tR,createPresetPageAction:tP,createPresetDeviceNotSupported:tC,createLayoutFooter:tk,createAppLoader:tf,createCanvasLoader:tg,createLayoutDialog:ty,createLayoutToolbarDesktop:th,createLayoutToolbarDesktopFullScreen:tS,createLayoutToolbarReadDesktop:tE,createLayoutToolbarReadDesktopFullScreen:tI,createLayoutCustomOwnerUi:tl,createLayoutCustomReadUi:tx,createLayoutAdminUi:tj,createLayoutUserUi:tq,createToolbarHelp:tA,createNotAuthenticatedPage:f,createTransformer:s,transformerBuilder:a(),useAnalytics:B,useAuthenticatedClient:U,useAuthorizedClient:b,useCreateAuthorizedClient:Q,useAccessService:E,useConfigurationId:J,useSession:eY,useSessionRole:eZ,useSessionService:e$,useDomain:Z,useDomainApplication:$,useConfigurator:e7,useConfiguratorRouting:tn,usePresetSelection:tm,usePublishedData:eA,useFrontendData:ep,useBackendData:v,useDomainApplicationProps:_,useLoadedData:ey,useIntegrationService:ej,useIntegrationState:el,usePresetEmbeddedState:eq,useRecipeEmbeddedState:eC,useCommittedSlice:z,useRenderedSlice:ez,useCommittedState:D,useRenderedState:eD,useStoreSelector:e0,useRenderedSelector:ev,useStoreSelector$:e1,useRenderedSelector$:ew,useEntitySelector:eo,useRenderedEntitySelector:eU,useRootEntitySelector:eM,useRenderedRootEntitySelector:eb,useStateValidity:e_,useMapViolationHints:eS,useNavigate:eE,usePopNavigate:eI,usePushNavigate:eB,useControlViolations:K,useFinalizeViolations:ei,useComponent:F,useRenderedComponent:eP,useComponents:G,useRenderedComponents:eR,useFirstComponent:es,useFirstRenderedComponent:ea,useRootComponents:eG,useRootRenderedComponents:eO,useFirstRootComponent:en,useFirstRootRenderedComponent:em,useEntityState:et,useEntityRenderedState:ee,useRootEntityState:eN,useRootEntityRenderedState:eL,useRootEntityId:eH,useRootEntityRenderedId:eK,useEntityPrice:er,useRootEntityPrice:eJ,useSelectedEntity:eW,useSelectedEntityId:eX,useSelectedDomainEntityId:eV,useSelectEntity:eQ,useDeselect:W,useSelectParent:eT,useHoveredEntity:ef,useHoveredEntityId:eg,useHoveredDomainEntityId:ec,useActiveNavigationState:I,useActiveViewState:A,useActiveToolState:q,useIsFullscreenActive:ex,useComposition:H,useUpdateControl:e4,useUpdatedControl:e5,useCookRecipes:L,useCookedRecipes:N,useCookReplaceRecipes:M,useCookedReplaceRecipes:O,useDeleteEntity:T,useDeletedEntity:V,useSwatchSelection:e2,useTextValue:e3,useAttributeSelection:P,useAttributeSwitch:R,useDistanceDimension:X,useDistanceDimensionSelection:Y,useGenericDimension:eu,useAngleDimension:C,useChildEntitySelection:w,useGroupedRecipeOptions:ed,useReplaceEntityRecipeOptions:eF,useUpdateEntityObjectSelection:tc,useGenerateShareLink:tB,useLoadingState:ek,useLoadingStateValue:eh,usePropertyPageStack:tp,usePropertyPageState:tu,isCreateEntityUpdate:p,isReplaceEntityUpdate:u,isDeleteEntityUpdate:x,isAngleDimensionUpdate:g,isDistanceDimensionUpdate:y,isGenericDimensionUpdate:k,isAttributeSelectionUpdate:j,isAttributeSwitchUpdate:l,isTextValueUpdate:S,isSwatchSelectionUpdate:h});
1
+ import{createCustomPhoenixEntityElement as e,createCustomPhoenixLayoutElement as t,createGetThemeHandler as r,createGetWebComponentOptionsHandler as o,createPhoenixHandler as i,createTransformer as s,createTransformerBuilder as a,createUpdateFactory as n,getIdSequence as m,isCreateEntityUpdate as p,isReplaceEntityUpdate as u}from"#package/domain";import{createCollectFrontendDataHandler as d,createFilterPublishedChunksHandler as c,createNotAuthenticatedPage as f,isAngleDimensionUpdate as g,isAttributeSelectionUpdate as j,isAttributeSwitchUpdate as l,isDeleteEntityUpdate as x,isDistanceDimensionUpdate as y,isGenericDimensionUpdate as k,isSwatchSelectionUpdate as h,isTextValueUpdate as S,useAccessService as E,useActiveNavigationState as I,useActiveToolState as q,useActiveViewState as A,useAnalyticsService as B,useAngleDimension as C,useAttributeSelection as P,useAttributeSwitch as R,useAuthenticatedClient as U,useAuthorizedClient as b,useBackendData as v,useChildEntitySelection as w,useCommittedSlice as z,useCommittedState as D,useComponent as F,useComponents as G,useComposition as H,useConfigurationId as J,useConfiguratorMessages as K,useControlViolations as L,useCookRecipes as M,useCookReplaceRecipes as N,useCookedRecipes as O,useCookedReplaceRecipes as Q,useCreateAuthorizedClient as T,useDeleteEntity as V,useDeletedEntity as W,useDeselect as X,useDistanceDimension as Y,useDistanceDimensionSelection as Z,useDomain as $,useDomainApplication as _,useDomainApplicationProps as ee,useDomainEntityRenderedState as et,useDomainEntityState as er,useEntityPrice as eo,useEntitySelector as ei,useFinalizeViolations as es,useFirstComponent as ea,useFirstRenderedComponent as en,useFirstRootComponent as em,useFirstRootRenderedComponent as ep,useFrontendData as eu,useGenericDimension as ed,useGroupedRecipeOptions as ec,useHoveredDomainEntityId as ef,useHoveredEntity as eg,useHoveredEntityId as ej,useIntegrationService as el,useIntegrationState as ex,useIsFullscreenActive as ey,useLoadedData as ek,useLoadingState as eh,useLoadingStateValue as eS,useMapViolationHints as eE,useNavigate as eI,usePopNavigate as eq,usePresetEmbeddedState as eA,usePublishedData as eB,usePushNavigate as eC,useRecipeEmbeddedState as eP,useRenderedComponent as eR,useRenderedComponents as eU,useRenderedEntitySelector as eb,useRenderedRootEntitySelector as ev,useRenderedSelector as ew,useRenderedSelector$ as ez,useRenderedSlice as eD,useRenderedState as eF,useReplaceEntityRecipeOptions as eG,useRootComponents as eH,useRootEntityId as eJ,useRootEntityPrice as eK,useRootEntityRenderedId as eL,useRootEntityRenderedState as eM,useRootEntitySelector as eN,useRootEntityState as eO,useRootRenderedComponents as eQ,useSelectEntity as eT,useSelectParent as eV,useSelectedDomainEntityId as eW,useSelectedEntity as eX,useSelectedEntityId as eY,useSession as eZ,useSessionRole as e$,useSessionService as e_,useSetFullscreen as e0,useStateValidity as e1,useStoreSelector as e2,useStoreSelector$ as e3,useSwatchSelection as e4,useTextValue as e5,useUpdateControl as e6,useUpdatedControl as e7}from"#package/react-sdk";import{createPhoenixIconSet as e8}from"#package/ui-sdk";import{useConfigurator as e9}from"../application-runtime/index.js";import{createOnApplicationStartProvider as te,createOnBackendDataReadyProvider as tt,createOnConfiguratorReadyProvider as tr,createOnFrontendDataReadyProvider as to,createOnGoToIndexHandler as ti,createOnPresetLoadedHandler as ts,createOnPublishedDataReadyProvider as ta,createOnRoutingReadyProvider as tn,createOnSessionReadyProvider as tm,useConfiguratorRouting as tp,usePresetSelection as tu,usePropertyPageStack as td,usePropertyPageState as tc}from"../configurator-context/index.js";import{createGetTextureProcessingMapHandler as tf}from"../scene/index.js";import{useUpdateEntityObjectSelection as tg}from"../scene/scene-entity/drag-and-drop/use-updated-selection.js";import{createAppLoader as tj,createCanvasLoader as tl,createLayoutAdminUi as tx,createLayoutCustomOwnerUi as ty,createLayoutCustomReadUi as tk,createLayoutDialog as th,createLayoutFooter as tS,createLayoutToolbarDesktop as tE,createLayoutToolbarDesktopFullScreen as tI,createLayoutToolbarReadDesktop as tq,createLayoutToolbarReadDesktopFullScreen as tA,createLayoutUserUi as tB,createToolbarHelp as tC}from"../ui/index.js";import{useGenerateShareLink as tP}from"../ui/phoenix-layout-elements/share/use-share.js";import{createPresetDeviceNotSupported as tR,createPresetPageAction as tU,createPresetUi as tb}from"../ui/preset-layout/PresetUi.js";export const createConfiguratorInterface=tv=>({updates:n(),getIdSequence:m,createGetWebComponentOptionsHandler:o,createGetThemeHandler:r,createPhoenixHandler:i,createCustomPhoenixEntityElement:e,createCustomPhoenixLayoutElement:t,createPhoenixIconSet:e8,createGetTextureProcessingMapHandler:tf,createCollectFrontendDataHandler:d,createFilterPublishedChunksHandler:c,createOnGoToIndexHandler:ti,createOnApplicationStartProvider:te,createOnSessionReadyProvider:tm,createOnPublishedDataReadyProvider:ta,createOnFrontendDataReadyProvider:to,createOnBackendDataReadyProvider:tt,createOnRoutingReadyProvider:tn,createOnConfiguratorReadyProvider:tr,createOnPresetLoadedHandler:ts,createPresetUi:tb,createPresetPageAction:tU,createPresetDeviceNotSupported:tR,createLayoutFooter:tS,createAppLoader:tj,createCanvasLoader:tl,createLayoutDialog:th,createLayoutToolbarDesktop:tE,createLayoutToolbarDesktopFullScreen:tI,createLayoutToolbarReadDesktop:tq,createLayoutToolbarReadDesktopFullScreen:tA,createLayoutCustomOwnerUi:ty,createLayoutCustomReadUi:tk,createLayoutAdminUi:tx,createLayoutUserUi:tB,createToolbarHelp:tC,createNotAuthenticatedPage:f,createTransformer:s,transformerBuilder:a(),useAnalytics:B,useAuthenticatedClient:U,useAuthorizedClient:b,useCreateAuthorizedClient:T,useAccessService:E,useConfigurationId:J,useSession:eZ,useSessionRole:e$,useSessionService:e_,useDomain:$,useDomainApplication:_,useConfigurator:e9,useConfiguratorRouting:tp,usePresetSelection:tu,usePublishedData:eB,useFrontendData:eu,useBackendData:v,useDomainApplicationProps:ee,useLoadedData:ek,useIntegrationService:el,useIntegrationState:ex,usePresetEmbeddedState:eA,useRecipeEmbeddedState:eP,useCommittedSlice:z,useRenderedSlice:eD,useCommittedState:D,useRenderedState:eF,useStoreSelector:e2,useRenderedSelector:ew,useStoreSelector$:e3,useRenderedSelector$:ez,useEntitySelector:ei,useRenderedEntitySelector:eb,useRootEntitySelector:eN,useRenderedRootEntitySelector:ev,useStateValidity:e1,useMapViolationHints:eE,useNavigate:eI,usePopNavigate:eq,usePushNavigate:eC,useControlViolations:L,useFinalizeViolations:es,useConfiguratorMessages:K,useComponent:F,useRenderedComponent:eR,useComponents:G,useRenderedComponents:eU,useFirstComponent:ea,useFirstRenderedComponent:en,useRootComponents:eH,useRootRenderedComponents:eQ,useFirstRootComponent:em,useFirstRootRenderedComponent:ep,useEntityState:er,useEntityRenderedState:et,useRootEntityState:eO,useRootEntityRenderedState:eM,useRootEntityId:eJ,useRootEntityRenderedId:eL,useEntityPrice:eo,useRootEntityPrice:eK,useSelectedEntity:eX,useSelectedEntityId:eY,useSelectedDomainEntityId:eW,useSelectEntity:eT,useDeselect:X,useSelectParent:eV,useHoveredEntity:eg,useHoveredEntityId:ej,useHoveredDomainEntityId:ef,useActiveNavigationState:I,useActiveViewState:A,useActiveToolState:q,useIsFullscreenActive:ey,useSetFullscreen:e0,useComposition:H,useUpdateControl:e6,useUpdatedControl:e7,useCookRecipes:M,useCookedRecipes:O,useCookReplaceRecipes:N,useCookedReplaceRecipes:Q,useDeleteEntity:V,useDeletedEntity:W,useSwatchSelection:e4,useTextValue:e5,useAttributeSelection:P,useAttributeSwitch:R,useDistanceDimension:Y,useDistanceDimensionSelection:Z,useGenericDimension:ed,useAngleDimension:C,useChildEntitySelection:w,useGroupedRecipeOptions:ec,useReplaceEntityRecipeOptions:eG,useUpdateEntityObjectSelection:tg,useGenerateShareLink:tP,useLoadingState:eh,useLoadingStateValue:eS,usePropertyPageStack:td,usePropertyPageState:tc,isCreateEntityUpdate:p,isReplaceEntityUpdate:u,isDeleteEntityUpdate:x,isAngleDimensionUpdate:g,isDistanceDimensionUpdate:y,isGenericDimensionUpdate:k,isAttributeSelectionUpdate:j,isAttributeSwitchUpdate:l,isTextValueUpdate:S,isSwatchSelectionUpdate:h});
@@ -1,25 +1,26 @@
1
1
  import { type EntityId } from '#package/domain';
2
- declare const CloseConfiguratorClicked: () => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
3
- declare const PreviousStepButtonClicked: () => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
4
- declare const NextStepButtonClicked: () => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
5
- declare const FinalizeButtonClicked: () => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
6
- declare const SummaryButtonClicked: () => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
7
- declare const TopNavigationStepClicked: (step: string) => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
8
- declare const HorizontalTabClicked: (tab: string) => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
9
- declare const GoToProductsClicked: () => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
10
- declare const ExpandedViewClosed: () => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
11
- declare const ProductSelected: (productType: string, productName: string) => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
12
- declare const SelectionHotspotClicked: (id: string) => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
13
- declare const RedoButtonClicked: () => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
14
- declare const UndoButtonClicked: () => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
15
- declare const GlobalDimensionsButtonClicked: (dimensionUnit: string) => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
16
- declare const MeasurementsMenuToggled: () => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
17
- declare const MeasurementsMenuClosed: () => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
18
- declare const DimensionIndicatorsToggled: () => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
19
- declare const FullScreenModeToggled: () => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
20
- declare const HelpDialogOpened: () => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
21
- declare const HelpDialogClosed: () => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
22
- declare const EntityDeleteHotspotClicked: (id: EntityId) => import("../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
2
+ declare const CloseConfiguratorClicked: () => import("#package/domain").UserActionEvent;
3
+ declare const PreviousStepButtonClicked: () => import("#package/domain").UserActionEvent;
4
+ declare const NextStepButtonClicked: () => import("#package/domain").UserActionEvent;
5
+ declare const FinalizeButtonClicked: () => import("#package/domain").UserActionEvent;
6
+ declare const SummaryButtonClicked: () => import("#package/domain").UserActionEvent;
7
+ declare const TopNavigationStepClicked: (step: string) => import("#package/domain").UserActionEvent;
8
+ declare const HorizontalTabClicked: (tab: string) => import("#package/domain").UserActionEvent;
9
+ declare const GoToProductsClicked: () => import("#package/domain").UserActionEvent;
10
+ declare const ExpandedViewClosed: () => import("#package/domain").UserActionEvent;
11
+ declare const ProductSelected: (productType: string, productName: string) => import("#package/domain").UserActionEvent;
12
+ declare const SelectionHotspotClicked: (id: string) => import("#package/domain").UserActionEvent;
13
+ declare const AssistantEntityLinkClicked: (id: string) => import("#package/domain").UserActionEvent;
14
+ declare const RedoButtonClicked: () => import("#package/domain").UserActionEvent;
15
+ declare const UndoButtonClicked: () => import("#package/domain").UserActionEvent;
16
+ declare const GlobalDimensionsButtonClicked: (dimensionUnit: string) => import("#package/domain").UserActionEvent;
17
+ declare const MeasurementsMenuToggled: () => import("#package/domain").UserActionEvent;
18
+ declare const MeasurementsMenuClosed: () => import("#package/domain").UserActionEvent;
19
+ declare const DimensionIndicatorsToggled: () => import("#package/domain").UserActionEvent;
20
+ declare const FullScreenModeToggled: () => import("#package/domain").UserActionEvent;
21
+ declare const HelpDialogOpened: () => import("#package/domain").UserActionEvent;
22
+ declare const HelpDialogClosed: () => import("#package/domain").UserActionEvent;
23
+ declare const EntityDeleteHotspotClicked: (id: EntityId) => import("#package/domain").UserActionEvent;
23
24
  export declare const FrontendAnalyticsFactory: {
24
25
  CloseConfiguratorClicked: typeof CloseConfiguratorClicked;
25
26
  PreviousStepButtonClicked: typeof PreviousStepButtonClicked;
@@ -31,6 +32,7 @@ export declare const FrontendAnalyticsFactory: {
31
32
  GoToProductsClicked: typeof GoToProductsClicked;
32
33
  ProductSelected: typeof ProductSelected;
33
34
  SelectionHotspotClicked: typeof SelectionHotspotClicked;
35
+ AssistantEntityLinkClicked: typeof AssistantEntityLinkClicked;
34
36
  RedoButtonClicked: typeof RedoButtonClicked;
35
37
  UndoButtonClicked: typeof UndoButtonClicked;
36
38
  GlobalDimensionsButtonClicked: typeof GlobalDimensionsButtonClicked;
@@ -1 +1 @@
1
- import{AnalyticsEventFactory as e,domainEntityTypeFromId as t,isVirtualEntityId as o}from"#package/domain";export const FrontendAnalyticsFactory={CloseConfiguratorClicked:()=>e.UserActionEvent({section:"topNavigation",element:"button",action:"click",result:"User requested to close the configurator."}),PreviousStepButtonClicked:()=>e.UserActionEvent({section:"sidebar",element:"previousStepButton",action:"click",result:"User clicked on previous step button."}),NextStepButtonClicked:()=>e.UserActionEvent({section:"sidebar",element:"nextStepButton",action:"click",result:"User clicked on next step button."}),FinalizeButtonClicked:()=>e.UserActionEvent({section:"sidebar",element:"finalizeButton",action:"click",result:"User clicked on finalize button."}),SummaryButtonClicked:()=>e.UserActionEvent({section:"sidebar",element:"summaryButton",action:"click",result:"User clicked go to summary button."}),TopNavigationStepClicked:t=>e.UserActionEvent({section:"topNavigation",element:"step",action:"click",result:"User clicked on top navigation step.",data:{step:t}}),HorizontalTabClicked:t=>e.UserActionEvent({section:"topNavigation",element:"horizontalTab",action:"click",result:"User clicked on horizontal tab.",data:{tab:t}}),GoToProductsClicked:()=>e.UserActionEvent({section:"topNavigation",element:"button",action:"click",result:"User requested to go to the product page."}),ProductSelected:(t,o)=>e.UserActionEvent({section:"productPage",element:"selectCardButton",action:"click",data:{productType:t,productName:o},result:"User has selected a product."}),SelectionHotspotClicked:t=>e.UserActionEvent({section:"canvas",element:"selectionHotspot",action:"click",result:"User clicked on selection hotspot of an entity.",data:{id:t}}),RedoButtonClicked:()=>e.UserActionEvent({section:"bottomToolbar",element:"redoButton",action:"click",result:"User clicked on redo button."}),UndoButtonClicked:()=>e.UserActionEvent({section:"bottomToolbar",element:"undoButton",action:"click",result:"User clicked on undo button."}),GlobalDimensionsButtonClicked:t=>e.UserActionEvent({section:"bottomToolbar",element:"measurementUnitButton",action:"click",data:{dimensionUnit:t},result:"Global measurement units were changed."}),MeasurementsMenuToggled:()=>e.UserActionEvent({section:"bottomToolbar",element:"measurementsMenu",action:"click",result:"User opened the measurements menu."}),MeasurementsMenuClosed:()=>e.UserActionEvent({section:"bottomToolbar",element:"measurementsMenu",action:"click",result:"User closed the measurements menu."}),DimensionIndicatorsToggled:()=>e.UserActionEvent({section:"bottomToolbar",element:"dimensionIndicatorsToggle",action:"click",result:"User toggled dimension indicators visibility."}),FullScreenModeToggled:()=>e.UserActionEvent({section:"bottomToolbar",element:"fullscreenButton",action:"click",result:"User toggled fullscreen mode."}),HelpDialogOpened:()=>e.UserActionEvent({section:"bottomToolbar",element:"helpButton",action:"click",result:"Help dialog opened."}),HelpDialogClosed:()=>e.UserActionEvent({section:"bottomToolbar",element:"helpDialog",action:"click",result:"Help dialog closed."}),EntityDeleteHotspotClicked:n=>{let i=o(n)?"":t(n);return e.UserActionEvent({section:"canvas",element:"deleteEntityHotspot",action:"click",data:{id:n,type:i},result:"User has deleted an entity."})},ExpandedViewClosed:()=>e.UserActionEvent({section:"topNavigation",element:"button",action:"click",result:"User requested to close the expanded view."})};
1
+ import{AnalyticsEventFactory as e,domainEntityTypeFromId as t,isVirtualEntityId as o}from"#package/domain";export const FrontendAnalyticsFactory={CloseConfiguratorClicked:()=>e.UserActionEvent({section:"topNavigation",element:"button",action:"click",result:"User requested to close the configurator."}),PreviousStepButtonClicked:()=>e.UserActionEvent({section:"sidebar",element:"previousStepButton",action:"click",result:"User clicked on previous step button."}),NextStepButtonClicked:()=>e.UserActionEvent({section:"sidebar",element:"nextStepButton",action:"click",result:"User clicked on next step button."}),FinalizeButtonClicked:()=>e.UserActionEvent({section:"sidebar",element:"finalizeButton",action:"click",result:"User clicked on finalize button."}),SummaryButtonClicked:()=>e.UserActionEvent({section:"sidebar",element:"summaryButton",action:"click",result:"User clicked go to summary button."}),TopNavigationStepClicked:t=>e.UserActionEvent({section:"topNavigation",element:"step",action:"click",result:"User clicked on top navigation step.",data:{step:t}}),HorizontalTabClicked:t=>e.UserActionEvent({section:"topNavigation",element:"horizontalTab",action:"click",result:"User clicked on horizontal tab.",data:{tab:t}}),GoToProductsClicked:()=>e.UserActionEvent({section:"topNavigation",element:"button",action:"click",result:"User requested to go to the product page."}),ProductSelected:(t,o)=>e.UserActionEvent({section:"productPage",element:"selectCardButton",action:"click",data:{productType:t,productName:o},result:"User has selected a product."}),SelectionHotspotClicked:t=>e.UserActionEvent({section:"canvas",element:"selectionHotspot",action:"click",result:"User clicked on selection hotspot of an entity.",data:{id:t}}),AssistantEntityLinkClicked:t=>e.UserActionEvent({section:"chat",element:"entityLink",action:"click",result:"User clicked on a link to an entity in a reply of the assistant.",data:{id:t}}),RedoButtonClicked:()=>e.UserActionEvent({section:"bottomToolbar",element:"redoButton",action:"click",result:"User clicked on redo button."}),UndoButtonClicked:()=>e.UserActionEvent({section:"bottomToolbar",element:"undoButton",action:"click",result:"User clicked on undo button."}),GlobalDimensionsButtonClicked:t=>e.UserActionEvent({section:"bottomToolbar",element:"measurementUnitButton",action:"click",data:{dimensionUnit:t},result:"Global measurement units were changed."}),MeasurementsMenuToggled:()=>e.UserActionEvent({section:"bottomToolbar",element:"measurementsMenu",action:"click",result:"User opened the measurements menu."}),MeasurementsMenuClosed:()=>e.UserActionEvent({section:"bottomToolbar",element:"measurementsMenu",action:"click",result:"User closed the measurements menu."}),DimensionIndicatorsToggled:()=>e.UserActionEvent({section:"bottomToolbar",element:"dimensionIndicatorsToggle",action:"click",result:"User toggled dimension indicators visibility."}),FullScreenModeToggled:()=>e.UserActionEvent({section:"bottomToolbar",element:"fullscreenButton",action:"click",result:"User toggled fullscreen mode."}),HelpDialogOpened:()=>e.UserActionEvent({section:"bottomToolbar",element:"helpButton",action:"click",result:"Help dialog opened."}),HelpDialogClosed:()=>e.UserActionEvent({section:"bottomToolbar",element:"helpDialog",action:"click",result:"Help dialog closed."}),EntityDeleteHotspotClicked:n=>{let i=o(n)?"":t(n);return e.UserActionEvent({section:"canvas",element:"deleteEntityHotspot",action:"click",data:{id:n,type:i},result:"User has deleted an entity."})},ExpandedViewClosed:()=>e.UserActionEvent({section:"topNavigation",element:"button",action:"click",result:"User requested to close the expanded view."})};
@@ -5,7 +5,7 @@ export declare const useLayoutSystemConfig: () => {
5
5
  splitSidebar: boolean;
6
6
  showSelectionBackButton: boolean;
7
7
  shareDisabled: boolean;
8
- availableLocales: string[];
8
+ availableLocales: readonly string[];
9
9
  indicatorSwitch: boolean;
10
10
  };
11
11
  export declare const useEnterSidebarSummary: () => () => void;
@@ -1,6 +1,5 @@
1
1
  export { ConfiguratorApp } from './ConfiguratorApp.js';
2
2
  export * from './application-runtime/index.js';
3
- export * from './assistant/index.js';
4
3
  export * from './common/index.js';
5
4
  export * from './configurator-context/index.js';
6
5
  export * from './pages/index.js';
@@ -1 +1 @@
1
- export{ConfiguratorApp}from"./ConfiguratorApp.js";export*from"./application-runtime/index.js";export*from"./assistant/index.js";export*from"./common/index.js";export*from"./configurator-context/index.js";export*from"./pages/index.js";export*from"./scene/index.js";export*from"./ui/index.js";export*from"./integration/index.js";
1
+ export{ConfiguratorApp}from"./ConfiguratorApp.js";export*from"./application-runtime/index.js";export*from"./common/index.js";export*from"./configurator-context/index.js";export*from"./pages/index.js";export*from"./scene/index.js";export*from"./ui/index.js";export*from"./integration/index.js";
@@ -0,0 +1,6 @@
1
+ /**
2
+ * The built-in UI of a loaded configuration: the layout the spec's `layout` selects, in owner or
3
+ * read mode. `LoadedConfiguratorDetailPage` renders it when the project registers no layout element
4
+ * named `ConfiguratorLayout`.
5
+ */
6
+ export declare const DefaultConfiguratorLayout: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ import{jsx as r,jsxs as e,Fragment as t}from"react/jsx-runtime";import{useMemo as a}from"react";import{match as o}from"ts-pattern";import{useAccessService as i}from"#package/react-sdk";import{useLayoutSystemConfig as m}from"../configurator-context/index.js";import{Layout as n,LayoutCustomOwnerUi as u,LayoutCustomReadUi as s,LayoutDialog as d,Legacy as w}from"../ui/index.js";export const DefaultConfiguratorLayout=()=>{let{accessInfo:p}=i(),y=m(),{ownerUi:l,readUi:c}=a(()=>o(y.layout).with("simple",()=>({ownerUi:r(w.SimpleOwnerLayout,{}),readUi:r(w.SummaryReadLayout,{})})).with("tabs",()=>({ownerUi:r(w.TabsOwnerLayout,{}),readUi:r(w.SummaryReadLayout,{})})).with("steps",()=>({ownerUi:r(w.StepsOwnerLayout,{}),readUi:r(w.SummaryReadLayout,{})})).with("universal",()=>({ownerUi:r(n,{}),readUi:r(n,{})})).with("custom",()=>({ownerUi:r(u,{}),readUi:r(s,{})})).exhaustive(),[y.layout]);return e(t,{children:[p.viewMode?c:l,"universal"===y.layout&&e(t,{children:[r(w.CommonFinalizePage,{}),r(d,{})]})]})};
@@ -1 +1 @@
1
- import{jsx as o,jsxs as e,Fragment as i}from"react/jsx-runtime";import r from"mui-modal-provider";import{memo as n,useCallback as t,useMemo as a}from"react";import{match as d}from"ts-pattern";import{InvalidAccessKeyError as s}from"#package/client";import{BuiltInLoadingPhase as u,CommonAnalyticsFactory as l,DomainLifecycleBoundary as m,LoadedDataProvider as c,useAccessService as f,useAnalyticsService as p,useAuthorizedClient as g,useConfiguratorDomainFactory as v,useConfiguratorLoadStatus as w,useConfiguratorRawLoadedData as y,useExpectPhase as h,useLoadedDataActions as I,useLoadingError as C,useLoadingPhase as b,useLogger as j,useRoutingService as x}from"#package/react-sdk";import{IntegrationSubscription as k,OnConfiguratorReadyProvider as L,ViewportStateSync as U,useLayoutSystemConfig as M}from"../configurator-context/index.js";import{Layout as S,Legacy as E}from"../ui/index.js";import{LayoutCustomOwnerUi as F,LayoutCustomReadUi as R,LayoutDialog as D}from"../ui/phoenix-layout-elements/index.js";import{ConfiguratorNotFoundPage as T}from"./ConfiguratorNotFoundPage.js";import{DevContextFallback as P}from"./error-boundaries/DevContextFallback.js";import{DevLoadingFallback as A}from"./error-boundaries/DevLoadingFallback.js";import{LoadingErrorBoundary as O}from"./error-boundaries/LoadingErrorBoundary.js";import{useLoad as V}from"./use-load.js";let q=n(n=>{let{viewMode:t}=n,s=M(),{ownerUi:u,readUi:l}=a(()=>d(s.layout).with("simple",()=>({ownerUi:o(E.SimpleOwnerLayout,{}),readUi:o(E.SummaryReadLayout,{})})).with("tabs",()=>({ownerUi:o(E.TabsOwnerLayout,{}),readUi:o(E.SummaryReadLayout,{})})).with("steps",()=>({ownerUi:o(E.StepsOwnerLayout,{}),readUi:o(E.SummaryReadLayout,{})})).with("universal",()=>({ownerUi:o(S,{}),readUi:o(S,{})})).with("custom",()=>({ownerUi:o(F,{}),readUi:o(R,{})})).exhaustive(),[s.layout]);return o(r,{children:e(L,{children:[t?l:u,"universal"===s.layout&&e(i,{children:[o(E.CommonFinalizePage,{}),o(D,{})]})]})})});export const LoadedConfiguratorDetailPage=()=>{h(u.SceneAssets);let{configurationId:i,accessInfo:r}=f(),n=g(),a=x(),d=j(),L=p(),{startConfiguratorLoad:M,completeConfiguratorLoad:S,failConfiguratorLoad:E,resetConfiguratorLoad:F}=I(),{isLoading:R,isError:D}=w(),z=y(),B=v(),G=t(()=>r.viewMode&&void 0!==r.revisionId?n.getConfigurationRevision(i,r.revisionId):n.getConfiguration(i),[r.revisionId,r.viewMode,n,i]),N=t(()=>{M()},[M]),H=t(o=>{S({initialRevisionId:o.revisionId,initialEntities:o.data,modelVersion:o.modelVersion,rootEntityType:o.rootEntityType,schemaIdentity:B}),L.push(l.ConfigurationLoaded(o.configurationId,o.revisionId,r.viewMode?"read":"owner")),d.appendToGlobalContext({configurationId:o.configurationId,revisionId:o.revisionId,mode:r.viewMode}),d.info("Configuration loaded.")},[r.viewMode,L,S,B,d]),J=t(o=>{if(E(o),o instanceof s)return void a.rejectAccessToken(i,r.raw);let e=o instanceof Error?o:Error("Configuration loading failed with an unknown error.",{cause:o});d.error("Configuration loading failed because the API request did not succeed. Verify the configuration ID and access token.",{configurationId:i},e)},[r.raw,i,E,d,a]),K=t(()=>{F()},[F]);return(V({key:[n,i,r.revisionId,r.viewMode],load:G,onStart:N,onSuccess:H,onError:J,onCleanup:K}),b({id:u.DataFetch,label:"Loading configuration…"},R),C(D),D)?o(T,{}):null===z?null:o(c,{value:z,children:o(O,{fallbackRender:e=>o(A,{...e}),children:o(m,{type:"configurator",children:o(O,{FallbackComponent:P,children:e(k,{children:[o(U,{}),o(q,{viewMode:r.viewMode})]})})})})})};
1
+ import{jsx as o,jsxs as r}from"react/jsx-runtime";import e from"mui-modal-provider";import{memo as i,useCallback as n,useEffect as t}from"react";import{InvalidAccessKeyError as a}from"#package/client";import{BuiltInLoadingPhase as d,CommonAnalyticsFactory as s,DomainLifecycleBoundary as l,LoadedDataProvider as u,PhoenixLayoutElement as c,useAccessService as f,useAnalyticsService as m,useAuthorizedClient as g,useConfiguratorDomainFactory as p,useConfiguratorLoadStatus as v,useConfiguratorRawLoadedData as I,useExpectPhase as C,useLoadedDataActions as h,useLoadingError as j,useLoadingPhase as k,useLogger as w,useRoutingService as y,useSpecAssistant as b}from"#package/react-sdk";import{useConfigurator as x}from"../application-runtime/index.js";import{IntegrationSubscription as E,OnConfiguratorReadyProvider as L,ViewportStateSync as D}from"../configurator-context/index.js";import{ConfiguratorNotFoundPage as M}from"./ConfiguratorNotFoundPage.js";import{DefaultConfiguratorLayout as F}from"./DefaultConfiguratorLayout.js";import{DevContextFallback as S}from"./error-boundaries/DevContextFallback.js";import{DevLoadingFallback as T}from"./error-boundaries/DevLoadingFallback.js";import{LoadingErrorBoundary as A}from"./error-boundaries/LoadingErrorBoundary.js";import{useLoad as P}from"./use-load.js";let R=i(()=>((()=>{let{assistantSystem:o}=x(),r=null!=b();t(()=>{if(r)return o.activate()},[o,r])})(),o(e,{children:o(L,{children:o(c,{name:"ConfiguratorLayout",defaultSlot:F})})})));export const LoadedConfiguratorDetailPage=()=>{C(d.SceneAssets);let{configurationId:e,accessInfo:i}=f(),t=g(),c=y(),b=w(),x=m(),{startConfiguratorLoad:L,completeConfiguratorLoad:F,failConfiguratorLoad:V,resetConfiguratorLoad:q}=h(),{isLoading:B,isError:G}=v(),N=I(),z=p(),H=n(()=>i.viewMode&&void 0!==i.revisionId?t.getConfigurationRevision(e,i.revisionId):t.getConfiguration(e),[i.revisionId,i.viewMode,t,e]),J=n(()=>{L()},[L]),K=n(o=>{F({initialRevisionId:o.revisionId,initialEntities:o.data,modelVersion:o.modelVersion,rootEntityType:o.rootEntityType,schemaIdentity:z}),x.push(s.ConfigurationLoaded(o.configurationId,o.revisionId,i.viewMode?"read":"owner")),b.appendToGlobalContext({configurationId:o.configurationId,revisionId:o.revisionId,mode:i.viewMode}),b.info("Configuration loaded.")},[i.viewMode,x,F,z,b]),O=n(o=>{if(V(o),o instanceof a)return void c.rejectAccessToken(e,i.raw);let r=o instanceof Error?o:Error("Configuration loading failed with an unknown error.",{cause:o});b.error("Configuration loading failed because the API request did not succeed. Verify the configuration ID and access token.",{configurationId:e},r)},[i.raw,e,V,b,c]),Q=n(()=>{q()},[q]);return(P({key:[t,e,i.revisionId,i.viewMode],load:H,onStart:J,onSuccess:K,onError:O,onCleanup:Q}),k({id:d.DataFetch,label:"Loading configuration…"},B),j(G),G)?o(M,{}):null===N?null:o(u,{value:N,children:o(A,{fallbackRender:r=>o(T,{...r}),children:o(l,{type:"configurator",children:o(A,{FallbackComponent:S,children:r(E,{children:[o(D,{}),o(R,{})]})})})})})};
@@ -1,5 +1,5 @@
1
- declare const PerspectiveCameraDragEvent: () => import("../../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
2
- declare const OrthographicCameraDragEvent: () => import("../../../domain/domain-context/analytics-system/analytics-contracts").UserActionEvent;
1
+ declare const PerspectiveCameraDragEvent: () => import("#package/domain").UserActionEvent;
2
+ declare const OrthographicCameraDragEvent: () => import("#package/domain").UserActionEvent;
3
3
  export declare const SceneAnalyticsFactory: {
4
4
  PerspectiveCameraDragEvent: typeof PerspectiveCameraDragEvent;
5
5
  OrthographicCameraDragEvent: typeof OrthographicCameraDragEvent;
@@ -2,7 +2,7 @@ import type { DraggableSurface } from '#package/domain';
2
2
  import { HotspotDragHandleVariant } from '#package/domain';
3
3
  import type { SceneEntitySpecificProps, SceneHtmlOpacityProps, SceneHtmlPositionProps, SceneHtmlVisibilityProps } from '../../scene-html/index.js';
4
4
  export interface HotspotDragHandleProps extends SceneHtmlOpacityProps, SceneHtmlVisibilityProps, SceneHtmlPositionProps, SceneEntitySpecificProps {
5
- readonly surfaces: DraggableSurface[];
5
+ readonly surfaces: readonly DraggableSurface[];
6
6
  readonly instanceName: string;
7
7
  readonly handleSize?: number;
8
8
  readonly variant?: HotspotDragHandleVariant;
@@ -3,7 +3,7 @@ import { type DraggableSurface } from '#package/domain';
3
3
  import { type SceneEntitySpecificProps, type SceneHtmlOpacityProps, type SceneHtmlPositionProps, type SceneHtmlVisibilityProps } from '../../scene-html/index.js';
4
4
  export declare const useHotspotHovered: () => boolean;
5
5
  export interface HotspotDragSceneHandleProps extends SceneHtmlOpacityProps, SceneHtmlVisibilityProps, SceneHtmlPositionProps, SceneEntitySpecificProps {
6
- readonly surfaces: DraggableSurface[];
6
+ readonly surfaces: readonly DraggableSurface[];
7
7
  readonly instanceName: string;
8
8
  readonly children: ReactNode;
9
9
  readonly handleSize?: number;
@@ -37,7 +37,7 @@ export interface DimensionIndicatorProps {
37
37
  readonly labelDirection?: 'auto' | 'ltr' | 'rtl';
38
38
  readonly labelFillOpacity?: number;
39
39
  readonly labelFontStyle?: 'normal' | 'italic';
40
- readonly labelFontWeight?: number | 'normal' | 'bold';
40
+ readonly labelFontWeight?: number | string;
41
41
  readonly labelLetterSpacing?: number;
42
42
  readonly labelLineHeight?: number;
43
43
  readonly labelMaxWidth?: number;
@@ -76,7 +76,7 @@ interface DimensionIndicatorProps {
76
76
  /** Font style. See https://protectwise.github.io/troika/troika-three-text/ */
77
77
  labelFontStyle?: 'normal' | 'italic';
78
78
  /** Font weight. See https://protectwise.github.io/troika/troika-three-text/ */
79
- labelFontWeight?: number | 'normal' | 'bold';
79
+ labelFontWeight?: number | string;
80
80
  /** Spacing between letters. See https://protectwise.github.io/troika/troika-three-text/ */
81
81
  labelLetterSpacing?: number;
82
82
  /** Line height as a multiple of the font size. See https://protectwise.github.io/troika/troika-three-text/ */
@@ -1,6 +1,6 @@
1
1
  import { type Size } from '@react-three/fiber';
2
2
  import { type Camera, Vector2, Vector3 } from 'three';
3
- import type { DraggableSurface } from '#package/domain';
3
+ import type { DraggableSurface, RotatableSurface } from '#package/domain';
4
4
  /**
5
5
  * Converts mouse coordinates to normalized device coordinates
6
6
  */
@@ -20,7 +20,7 @@ export declare const findSurfaceClosestToPoint: (worldPoint: Vector3, surfaces:
20
20
  * Projects the cursor ray onto a single specified surface. Returns null if the
21
21
  * ray is parallel to or points away from the plane.
22
22
  */
23
- export declare const projectMouseOntoSurface: (mouse: Vector2, surface: DraggableSurface, camera: Camera) => Vector3 | null;
23
+ export declare const projectMouseOntoSurface: (mouse: Vector2, surface: DraggableSurface | RotatableSurface, camera: Camera) => Vector3 | null;
24
24
  /**
25
25
  * Among the camera-facing surfaces the cursor ray actually hits, picks the
26
26
  * intersection closest to the world origin. Used during multi-surface drag-move
@@ -1,7 +1,7 @@
1
1
  import { type Object3D } from 'three';
2
2
  import { type DomainEntityId, type DraggableSurface } from '#package/domain';
3
3
  interface DragHandle {
4
- surfaces: DraggableSurface[];
4
+ surfaces: readonly DraggableSurface[];
5
5
  instanceName: string;
6
6
  }
7
7
  export declare const useDragObject: (entityId: DomainEntityId<string>, object: Object3D | null, dragHandle: DragHandle | undefined, onUpdate: () => void, onDragStart?: () => void, onDragEnd?: () => void) => {
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t,Fragment as a}from"react/jsx-runtime";import s from"lodash-es/isNumber.js";import{memo as r,useEffect as n,useMemo as i}from"react";import{Color as o,RepeatWrapping as l}from"three";import{isRemoteMaterialOverrideComponent as c}from"#package/domain";import{useResourceUrl as p}from"#package/react-sdk";import{useCombinedQueries as M,usePhxGltf as m,useResourceQueryFactories as d}from"../../resources/index.js";import{isPhysicalMaterial as h,isStandardMaterial as u,isWithColor as U}from"../../three/with-material.js";import{ReplacedMaterialTransformations as v}from"./ReplacedMaterialTransformer.js";import{ReplacedMaterialTransitions as g}from"./ReplacedMaterialTransition.js";export const applyRemoteMaterialOverride=(e,t,a,r)=>{let n=t=>{let{offsetX:a,offsetY:r,rotation:n,rotationCenterX:i,rotationCenterY:o,repeatX:c,repeatY:p}=e.state,M=s(a)||s(r),m=s(n),d=s(c)||s(p);return M&&t.offset.set(a??0,r??0),m&&(t.rotation=n,t.center.set(i??0,o??0)),d&&(t.repeat.set(c??1,p??1),t.wrapS=l,t.wrapT=l),t},i=(e,t)=>{if(null===e)t(null);else if(e){let s=r[a.findIndex(t=>t===e)];s&&t(n(s))}};if((u(t)||h(t))&&(i(e.state.textureUrl,e=>{t.map=e}),e.state.color&&t.color.set(new o(e.state.color)),i(e.state.roughnessMapUrl,e=>{t.roughnessMap=e}),s(e.state.roughness)&&(t.roughness=e.state.roughness),i(e.state.bumpMapUrl,e=>{t.bumpMap=e}),s(e.state.bumpScale)&&(t.bumpScale=e.state.bumpScale),i(e.state.metalnessMapUrl,e=>{t.metalnessMap=e}),s(e.state.metalness)&&(t.metalness=e.state.metalness),s(e.state.envMapIntensity)&&(t.envMapIntensity=e.state.envMapIntensity),void 0!==e.state.toneMapped&&(t.toneMapped=e.state.toneMapped),void 0!==e.state.emissive&&t.emissive.set(new o(e.state.emissive)),void 0!==e.state.emissiveIntensity&&(t.emissiveIntensity=e.state.emissiveIntensity),i(e.state.alphaMapUrl,e=>{t.alphaMap=e}),void 0!==e.state.transparent&&(t.transparent=e.state.transparent),s(e.state.opacity)&&(t.opacity=e.state.opacity),i(e.state.aoMapUrl,e=>{t.aoMap=e}),s(e.state.aoMapIntensity)&&(t.aoMapIntensity=e.state.aoMapIntensity),i(e.state.displacementMapUrl,e=>{t.displacementMap=e}),s(e.state.displacementScale)&&(t.displacementScale=e.state.displacementScale),i(e.state.lightMapUrl,e=>{t.lightMap=e}),s(e.state.lightMapIntensity)&&(t.lightMapIntensity=e.state.lightMapIntensity),i(e.state.envMapUrl,e=>{t.envMap=e}),s(e.state.envMapIntensity)&&(t.envMapIntensity=e.state.envMapIntensity),s(e.state.blendingMode)&&(t.blending=e.state.blendingMode),i(e.state.normalMapUrl,e=>{t.normalMap=e}),s(e.state.normalScale)&&t.normalScale.set(e.state.normalScale,e.state.normalScale),void 0!==e.state.wireframe&&(t.wireframe=e.state.wireframe)),h(t)&&(void 0!==e.state.clearcoat&&(t.clearcoat=e.state.clearcoat),void 0!==e.state.clearcoatRoughness&&(t.clearcoatRoughness=e.state.clearcoatRoughness),void 0!==e.state.iridescence&&(t.iridescence=e.state.iridescence),void 0!==e.state.iridescenceIor&&(t.iridescenceIOR=e.state.iridescenceIor),s(e.state.sheen)&&(t.sheen=e.state.sheen),void 0!==e.state.sheenColor&&U(t)&&t.sheenColor.set(new o(e.state.sheenColor)),s(e.state.sheenRoughness)&&(t.sheenRoughness=e.state.sheenRoughness),i(e.state.anisotropyMapUrl,e=>{t.anisotropyMap=e}),s(e.state.anisotropyStrength)&&(t.anisotropy=e.state.anisotropyStrength),s(e.state.anisotropyRotation)&&(t.anisotropyRotation=e.state.anisotropyRotation),s(e.state.ior)&&(t.ior=e.state.ior),s(e.state.reflectivity)&&(t.reflectivity=e.state.reflectivity),s(e.state.transmission)&&(t.transmission=e.state.transmission),s(e.state.thickness)&&(t.thickness=e.state.thickness),s(e.state.attenuationDistance)&&(t.attenuationDistance=e.state.attenuationDistance),void 0!==e.state.attenuationColor&&t.attenuationColor.set(new o(e.state.attenuationColor)),s(e.state.specularIntensity)&&(t.specularIntensity=e.state.specularIntensity),void 0!==e.state.specularColor&&t.specularColor.set(new o(e.state.specularColor)),i(e.state.specularIntensityMapUrl,e=>{t.specularIntensityMap=e}),i(e.state.specularColorMapUrl,e=>{t.specularColorMap=e}),i(e.state.clearcoatNormalMapUrl,e=>{t.clearcoatNormalMap=e}),s(e.state.clearcoatNormalScale)&&t.clearcoatNormalScale.set(e.state.clearcoatNormalScale,e.state.clearcoatNormalScale),i(e.state.clearcoatMapUrl,e=>{t.clearcoatMap=e}),i(e.state.clearcoatRoughnessMapUrl,e=>{t.clearcoatRoughnessMap=e}),i(e.state.iridescenceMapUrl,e=>{t.iridescenceMap=e}),void 0!==e.state.iridescenceThicknessRange&&(t.iridescenceThicknessRange=e.state.iridescenceThicknessRange),i(e.state.iridescenceThicknessMapUrl,e=>{t.iridescenceThicknessMap=e}),i(e.state.sheenColorMapUrl,e=>{t.sheenColorMap=e}),i(e.state.sheenRoughnessMapUrl,e=>{t.sheenRoughnessMap=e}),i(e.state.transmissionMapUrl,e=>{t.transmissionMap=e}),i(e.state.thicknessMapUrl,e=>{t.thicknessMap=e})),u(t)&&!h(t)){let a=[void 0!==e.state.clearcoat?"clearcoat":"",void 0!==e.state.clearcoatRoughness?"clearcoatRoughness":"",void 0!==e.state.iridescence?"iridescence":"",void 0!==e.state.iridescenceIor?"iridescenceIor":"",void 0!==e.state.sheen?"sheen":"",void 0!==e.state.sheenColor?"sheenColor":"",void 0!==e.state.sheenRoughness?"sheenRoughness":"",void 0!==e.state.anisotropyMapUrl?"anisotropyMapUrl":"",void 0!==e.state.anisotropyStrength?"anisotropyStrength":"",void 0!==e.state.anisotropyRotation?"anisotropyRotation":"",void 0!==e.state.ior?"ior":"",void 0!==e.state.reflectivity?"reflectivity":"",void 0!==e.state.transmission?"transmission":"",void 0!==e.state.thickness?"thickness":"",void 0!==e.state.attenuationDistance?"attenuationDistance":"",void 0!==e.state.attenuationColor?"attenuationColor":"",void 0!==e.state.specularIntensity?"specularIntensity":"",void 0!==e.state.specularColor?"specularColor":"",void 0!==e.state.specularIntensityMapUrl?"specularIntensityMapUrl":"",void 0!==e.state.specularColorMapUrl?"specularColorMapUrl":"",void 0!==e.state.clearcoatNormalMapUrl?"clearcoatNormalMapUrl":"",void 0!==e.state.clearcoatNormalScale?"clearcoatNormalScale":"",void 0!==e.state.clearcoatMapUrl?"clearcoatMapUrl":"",void 0!==e.state.clearcoatRoughnessMapUrl?"clearcoatRoughnessMapUrl":"",void 0!==e.state.iridescenceMapUrl?"iridescenceMapUrl":"",void 0!==e.state.iridescenceThicknessRange?"iridescenceThicknessRange":"",void 0!==e.state.iridescenceThicknessMapUrl?"iridescenceThicknessMapUrl":"",void 0!==e.state.sheenColorMapUrl?"sheenColorMapUrl":"",void 0!==e.state.sheenRoughnessMapUrl?"sheenRoughnessMapUrl":"",void 0!==e.state.transmissionMapUrl?"transmissionMapUrl":"",void 0!==e.state.thicknessMapUrl?"thicknessMapUrl":""].filter(Boolean);a.length>0&&console.warn(`[Phoenix] Material override properties [${a.join(", ")}] were ignored because the target material "${t.name}" is a MeshStandardMaterial, not a MeshPhysicalMaterial. These properties require MeshPhysicalMaterial. Ensure the source material in the override file uses a physical property (e.g. clearcoat) to trigger MeshPhysicalMaterial.`)}};let y=["textureUrl","roughnessMapUrl","bumpMapUrl","metalnessMapUrl","anisotropyMapUrl","normalMapUrl","alphaMapUrl","aoMapUrl","displacementMapUrl","lightMapUrl","envMapUrl","specularIntensityMapUrl","specularColorMapUrl","clearcoatNormalMapUrl","clearcoatMapUrl","clearcoatRoughnessMapUrl","iridescenceMapUrl","iridescenceThicknessMapUrl","sheenColorMapUrl","sheenRoughnessMapUrl","transmissionMapUrl","thicknessMapUrl"];export const getMaterialOverrideTextureNames=e=>y.flatMap(t=>{let a=e.state[t];return"string"==typeof a&&""!==a?[a]:[]});export const RemoteReplacedMaterial=r(s=>{let{overrideComponent:r,original:o,object:l}=s,{getResourceUrl:h}=p(),u=i(()=>[r].reduce((e,t)=>(c(t)&&e.push(t.state.fileUrl),e),[]),[r]),U=i(()=>getMaterialOverrideTextureNames(r),[r]),y=m(u.map(h)),{createTextureQuery:R}=d(),f=M(U.map(R)),I=i(()=>f.map(e=>e.clone()),[f]),C=i(()=>{let e=y[u.findIndex(e=>e===r.state.fileUrl)],t=e?.materials[r.state.materialName];if(null==t)throw Error(`Material with name '${r.state.materialName}' not found in '${r.state.fileUrl}'`);let a=t.clone();return applyRemoteMaterialOverride(r,a,U,I),a},[r,u,y,U,I]);return n(()=>(l.material=C,l.material.name=o.name,()=>{l.material=o}),[l,o,C]),t(a,{children:[e(v,{material:C,instanceName:r.componentInstance.instanceName}),e(g,{material:C,instanceName:r.componentInstance.instanceName})]})});
1
+ import{jsx as e,jsxs as t,Fragment as a}from"react/jsx-runtime";import s from"lodash-es/isNumber.js";import{memo as r,useEffect as n,useMemo as o}from"react";import{Color as i,RepeatWrapping as l}from"three";import{isRemoteMaterialOverrideComponent as c}from"#package/domain";import{useResourceUrl as p}from"#package/react-sdk";import{useCombinedQueries as M,usePhxGltf as m,useResourceQueryFactories as d}from"../../resources/index.js";import{isPhysicalMaterial as h,isStandardMaterial as u,isWithColor as v}from"../../three/with-material.js";import{ReplacedMaterialTransformations as U}from"./ReplacedMaterialTransformer.js";import{ReplacedMaterialTransitions as y}from"./ReplacedMaterialTransition.js";export const applyRemoteMaterialOverride=(e,t,a,r)=>{let n=t=>{let{offsetX:a,offsetY:r,rotation:n,rotationCenterX:o,rotationCenterY:i,repeatX:c,repeatY:p}=e.state,M=s(a)||s(r),m=s(n),d=s(c)||s(p);return M&&t.offset.set(a??0,r??0),m&&(t.rotation=n,t.center.set(o??0,i??0)),d&&(t.repeat.set(c??1,p??1),t.wrapS=l,t.wrapT=l),t},o=(e,t)=>{if(null===e)t(null);else if(e){let s=r[a.findIndex(t=>t===e)];s&&t(n(s))}};if((u(t)||h(t))&&(o(e.state.textureUrl,e=>{t.map=e}),e.state.color&&t.color.set(new i(e.state.color)),o(e.state.roughnessMapUrl,e=>{t.roughnessMap=e}),s(e.state.roughness)&&(t.roughness=e.state.roughness),o(e.state.bumpMapUrl,e=>{t.bumpMap=e}),s(e.state.bumpScale)&&(t.bumpScale=e.state.bumpScale),o(e.state.metalnessMapUrl,e=>{t.metalnessMap=e}),s(e.state.metalness)&&(t.metalness=e.state.metalness),s(e.state.envMapIntensity)&&(t.envMapIntensity=e.state.envMapIntensity),void 0!==e.state.toneMapped&&(t.toneMapped=e.state.toneMapped),void 0!==e.state.emissive&&t.emissive.set(new i(e.state.emissive)),void 0!==e.state.emissiveIntensity&&(t.emissiveIntensity=e.state.emissiveIntensity),o(e.state.alphaMapUrl,e=>{t.alphaMap=e}),void 0!==e.state.transparent&&(t.transparent=e.state.transparent),s(e.state.opacity)&&(t.opacity=e.state.opacity),o(e.state.aoMapUrl,e=>{t.aoMap=e}),s(e.state.aoMapIntensity)&&(t.aoMapIntensity=e.state.aoMapIntensity),o(e.state.displacementMapUrl,e=>{t.displacementMap=e}),s(e.state.displacementScale)&&(t.displacementScale=e.state.displacementScale),o(e.state.lightMapUrl,e=>{t.lightMap=e}),s(e.state.lightMapIntensity)&&(t.lightMapIntensity=e.state.lightMapIntensity),o(e.state.envMapUrl,e=>{t.envMap=e}),s(e.state.envMapIntensity)&&(t.envMapIntensity=e.state.envMapIntensity),s(e.state.blendingMode)&&(t.blending=e.state.blendingMode),o(e.state.normalMapUrl,e=>{t.normalMap=e}),s(e.state.normalScale)&&t.normalScale.set(e.state.normalScale,e.state.normalScale),void 0!==e.state.wireframe&&(t.wireframe=e.state.wireframe)),h(t)){void 0!==e.state.clearcoat&&(t.clearcoat=e.state.clearcoat),void 0!==e.state.clearcoatRoughness&&(t.clearcoatRoughness=e.state.clearcoatRoughness),void 0!==e.state.iridescence&&(t.iridescence=e.state.iridescence),void 0!==e.state.iridescenceIor&&(t.iridescenceIOR=e.state.iridescenceIor),s(e.state.sheen)&&(t.sheen=e.state.sheen),void 0!==e.state.sheenColor&&v(t)&&t.sheenColor.set(new i(e.state.sheenColor)),s(e.state.sheenRoughness)&&(t.sheenRoughness=e.state.sheenRoughness),o(e.state.anisotropyMapUrl,e=>{t.anisotropyMap=e}),s(e.state.anisotropyStrength)&&(t.anisotropy=e.state.anisotropyStrength),s(e.state.anisotropyRotation)&&(t.anisotropyRotation=e.state.anisotropyRotation),s(e.state.ior)&&(t.ior=e.state.ior),s(e.state.reflectivity)&&(t.reflectivity=e.state.reflectivity),s(e.state.transmission)&&(t.transmission=e.state.transmission),s(e.state.thickness)&&(t.thickness=e.state.thickness),s(e.state.attenuationDistance)&&(t.attenuationDistance=e.state.attenuationDistance),void 0!==e.state.attenuationColor&&t.attenuationColor.set(new i(e.state.attenuationColor)),s(e.state.specularIntensity)&&(t.specularIntensity=e.state.specularIntensity),void 0!==e.state.specularColor&&t.specularColor.set(new i(e.state.specularColor)),o(e.state.specularIntensityMapUrl,e=>{t.specularIntensityMap=e}),o(e.state.specularColorMapUrl,e=>{t.specularColorMap=e}),o(e.state.clearcoatNormalMapUrl,e=>{t.clearcoatNormalMap=e}),s(e.state.clearcoatNormalScale)&&t.clearcoatNormalScale.set(e.state.clearcoatNormalScale,e.state.clearcoatNormalScale),o(e.state.clearcoatMapUrl,e=>{t.clearcoatMap=e}),o(e.state.clearcoatRoughnessMapUrl,e=>{t.clearcoatRoughnessMap=e}),o(e.state.iridescenceMapUrl,e=>{t.iridescenceMap=e});let[a,r]=e.state.iridescenceThicknessRange??[];void 0!==a&&void 0!==r&&(t.iridescenceThicknessRange=[a,r]),o(e.state.iridescenceThicknessMapUrl,e=>{t.iridescenceThicknessMap=e}),o(e.state.sheenColorMapUrl,e=>{t.sheenColorMap=e}),o(e.state.sheenRoughnessMapUrl,e=>{t.sheenRoughnessMap=e}),o(e.state.transmissionMapUrl,e=>{t.transmissionMap=e}),o(e.state.thicknessMapUrl,e=>{t.thicknessMap=e})}if(u(t)&&!h(t)){let a=[void 0!==e.state.clearcoat?"clearcoat":"",void 0!==e.state.clearcoatRoughness?"clearcoatRoughness":"",void 0!==e.state.iridescence?"iridescence":"",void 0!==e.state.iridescenceIor?"iridescenceIor":"",void 0!==e.state.sheen?"sheen":"",void 0!==e.state.sheenColor?"sheenColor":"",void 0!==e.state.sheenRoughness?"sheenRoughness":"",void 0!==e.state.anisotropyMapUrl?"anisotropyMapUrl":"",void 0!==e.state.anisotropyStrength?"anisotropyStrength":"",void 0!==e.state.anisotropyRotation?"anisotropyRotation":"",void 0!==e.state.ior?"ior":"",void 0!==e.state.reflectivity?"reflectivity":"",void 0!==e.state.transmission?"transmission":"",void 0!==e.state.thickness?"thickness":"",void 0!==e.state.attenuationDistance?"attenuationDistance":"",void 0!==e.state.attenuationColor?"attenuationColor":"",void 0!==e.state.specularIntensity?"specularIntensity":"",void 0!==e.state.specularColor?"specularColor":"",void 0!==e.state.specularIntensityMapUrl?"specularIntensityMapUrl":"",void 0!==e.state.specularColorMapUrl?"specularColorMapUrl":"",void 0!==e.state.clearcoatNormalMapUrl?"clearcoatNormalMapUrl":"",void 0!==e.state.clearcoatNormalScale?"clearcoatNormalScale":"",void 0!==e.state.clearcoatMapUrl?"clearcoatMapUrl":"",void 0!==e.state.clearcoatRoughnessMapUrl?"clearcoatRoughnessMapUrl":"",void 0!==e.state.iridescenceMapUrl?"iridescenceMapUrl":"",void 0!==e.state.iridescenceThicknessRange?"iridescenceThicknessRange":"",void 0!==e.state.iridescenceThicknessMapUrl?"iridescenceThicknessMapUrl":"",void 0!==e.state.sheenColorMapUrl?"sheenColorMapUrl":"",void 0!==e.state.sheenRoughnessMapUrl?"sheenRoughnessMapUrl":"",void 0!==e.state.transmissionMapUrl?"transmissionMapUrl":"",void 0!==e.state.thicknessMapUrl?"thicknessMapUrl":""].filter(Boolean);a.length>0&&console.warn(`[Phoenix] Material override properties [${a.join(", ")}] were ignored because the target material "${t.name}" is a MeshStandardMaterial, not a MeshPhysicalMaterial. These properties require MeshPhysicalMaterial. Ensure the source material in the override file uses a physical property (e.g. clearcoat) to trigger MeshPhysicalMaterial.`)}};let g=["textureUrl","roughnessMapUrl","bumpMapUrl","metalnessMapUrl","anisotropyMapUrl","normalMapUrl","alphaMapUrl","aoMapUrl","displacementMapUrl","lightMapUrl","envMapUrl","specularIntensityMapUrl","specularColorMapUrl","clearcoatNormalMapUrl","clearcoatMapUrl","clearcoatRoughnessMapUrl","iridescenceMapUrl","iridescenceThicknessMapUrl","sheenColorMapUrl","sheenRoughnessMapUrl","transmissionMapUrl","thicknessMapUrl"];export const getMaterialOverrideTextureNames=e=>g.flatMap(t=>{let a=e.state[t];return"string"==typeof a&&""!==a?[a]:[]});export const RemoteReplacedMaterial=r(s=>{let{overrideComponent:r,original:i,object:l}=s,{getResourceUrl:h}=p(),u=o(()=>[r].reduce((e,t)=>(c(t)&&e.push(t.state.fileUrl),e),[]),[r]),v=o(()=>getMaterialOverrideTextureNames(r),[r]),g=m(u.map(h)),{createTextureQuery:f}=d(),R=M(v.map(f)),I=o(()=>R.map(e=>e.clone()),[R]),C=o(()=>{let e=g[u.findIndex(e=>e===r.state.fileUrl)],t=e?.materials[r.state.materialName];if(null==t)throw Error(`Material with name '${r.state.materialName}' not found in '${r.state.fileUrl}'`);let a=t.clone();return applyRemoteMaterialOverride(r,a,v,I),a},[r,u,g,v,I]);return n(()=>(l.material=C,l.material.name=i.name,()=>{l.material=i}),[l,i,C]),t(a,{children:[e(U,{material:C,instanceName:r.componentInstance.instanceName}),e(y,{material:C,instanceName:r.componentInstance.instanceName})]})});
@@ -29,7 +29,7 @@ export interface SceneEntityTextDecalV2Props {
29
29
  text: string;
30
30
  textureUrl?: string | undefined;
31
31
  roughnessMapUrl?: string | undefined;
32
- preloadFonts?: string[] | undefined;
32
+ preloadFonts?: readonly string[] | undefined;
33
33
  invertedBump?: boolean | undefined;
34
34
  }
35
35
  export interface SceneEntityObjectTextDecalProps {
@@ -0,0 +1,11 @@
1
+ import type { AssistantToolItem } from './thread-items.js';
2
+ export interface AssistantToolChipsProps {
3
+ readonly tools: readonly AssistantToolItem[];
4
+ /** True while the reply runs and this row is its newest block: the assistant is at work on it. */
5
+ readonly isActive: boolean;
6
+ }
7
+ /**
8
+ * A row of notes on what the assistant did in a reply, one per tool call. A click on a note logs
9
+ * the input and the result of its call to the console.
10
+ */
11
+ export declare const AssistantToolChips: import("react").MemoExoticComponent<({ tools, isActive }: AssistantToolChipsProps) => import("react/jsx-runtime").JSX.Element>;