@salsita-ai/sdk 0.50.0-develop.a926ccd94f → 0.50.0-develop.ab6a7ca8ae

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 (1255) 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/standalone-app-files.d.ts +2 -2
  46. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  47. package/dist/application-spec/generate-application/code/templates/admin-domain-code.d.ts +1 -2
  48. package/dist/application-spec/generate-application/code/templates/admin-domain-code.js +6 -14
  49. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.d.ts +1 -2
  50. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.js +4 -4
  51. package/dist/application-spec/generate-application/code/templates/configurator-config.js +6 -4
  52. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.d.ts +1 -2
  53. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.js +7 -16
  54. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.d.ts +1 -2
  55. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.js +7 -9
  56. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.d.ts +2 -2
  57. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.js +1 -1
  58. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +4 -4
  59. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  60. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  61. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +56 -56
  62. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +1 -1
  63. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  64. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  65. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  66. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  67. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +11 -11
  68. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +1 -1
  69. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  70. package/dist/application-spec/generate-application/code/templates/domain-spec.js +12 -12
  71. package/dist/application-spec/generate-application/code/templates/domain.js +5 -5
  72. package/dist/application-spec/generate-application/code/templates/globals.js +5 -4
  73. package/dist/application-spec/generate-application/code/templates/index.d.ts +1 -8
  74. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  75. package/dist/application-spec/generate-application/code/templates/package-json.js +1 -1
  76. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  77. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +93 -41
  78. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +10 -4
  79. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  80. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.d.ts +1 -0
  81. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +6 -0
  82. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +46 -14
  83. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +19 -7
  84. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +9 -4
  85. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +6 -1
  86. package/dist/application-spec/generate-application/code/templates/webhook-index.js +10 -1
  87. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -2
  88. package/dist/application-spec/generate-application/index.d.ts +2 -0
  89. package/dist/application-spec/generate-application/index.js +1 -1
  90. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +6 -2
  91. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  92. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +8 -3
  93. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  94. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +5 -3
  95. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  96. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +43 -0
  97. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.js +1 -0
  98. package/dist/application-spec/generate-application/runtime/factory-data/index.d.ts +3 -0
  99. package/dist/application-spec/generate-application/runtime/factory-data/index.js +1 -0
  100. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +13 -0
  101. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -0
  102. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +16 -0
  103. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -0
  104. package/dist/application-spec/generate-application/runtime/migrations/index.d.ts +1 -0
  105. package/dist/application-spec/generate-application/runtime/migrations/index.js +1 -0
  106. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +53 -0
  107. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +1 -0
  108. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +4 -3
  109. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.js +1 -1
  110. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +1 -1
  111. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  112. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +2 -1
  113. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  114. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +2 -4
  115. package/dist/application-spec/index.d.ts +1 -0
  116. package/dist/application-spec/index.js +1 -1
  117. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +6 -0
  118. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  119. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  120. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  121. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +16 -3
  122. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  123. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  124. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  125. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  126. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  127. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  128. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  129. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  130. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  131. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  132. package/dist/application-spec/parse-application-files/spec/expressions/expression.d.ts +1 -28
  133. package/dist/application-spec/parse-application-files/spec/expressions/expression.js +1 -1
  134. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +1 -1
  135. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  136. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  137. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  138. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  139. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  140. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  141. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  142. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  143. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  144. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  145. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  146. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  147. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  148. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.d.ts +3 -8
  149. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.js +1 -1
  150. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +9 -43
  151. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  152. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-server-settings.d.ts +2 -2
  153. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.d.ts +5 -21
  154. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  155. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  156. package/dist/client/authorized-client.d.ts +3 -1
  157. package/dist/client/authorized-client.js +1 -1
  158. package/dist/client/contract.d.ts +34 -0
  159. package/dist/client/contract.js +1 -1
  160. package/dist/client/index.d.ts +2 -2
  161. package/dist/client/index.js +1 -1
  162. package/dist/client/local-authorized-client.d.ts +3 -1
  163. package/dist/client/local-authorized-client.js +1 -1
  164. package/dist/client/memory-authorized-client.d.ts +3 -1
  165. package/dist/client/memory-authorized-client.js +1 -1
  166. package/dist/client/phoenix-api.d.ts +367 -30
  167. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  168. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  169. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  170. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +276 -13
  171. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  172. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.d.ts +85 -0
  173. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.js +1 -0
  174. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +14 -3
  175. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  176. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  177. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +4 -0
  178. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  179. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +36 -5
  180. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  181. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  182. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  183. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.d.ts +9 -0
  184. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.js +1 -0
  185. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  186. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  187. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  188. package/dist/configurator/common/configurator-interface.d.ts +26 -1
  189. package/dist/configurator/common/configurator-interface.js +1 -1
  190. package/dist/configurator/common/frontend-analytics.d.ts +2 -0
  191. package/dist/configurator/common/frontend-analytics.js +1 -1
  192. package/dist/configurator/common/index.d.ts +2 -0
  193. package/dist/configurator/common/index.js +1 -1
  194. package/dist/configurator/common/use-finalize-action.d.ts +31 -0
  195. package/dist/configurator/common/use-finalize-action.js +1 -0
  196. package/dist/configurator/common/use-reset-camera.d.ts +6 -0
  197. package/dist/configurator/common/use-reset-camera.js +1 -0
  198. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +1 -1
  199. package/dist/configurator/index.d.ts +0 -1
  200. package/dist/configurator/index.js +1 -1
  201. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +6 -0
  202. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  203. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  204. package/dist/configurator/pages/configurator-layout-name.d.ts +2 -0
  205. package/dist/configurator/pages/configurator-layout-name.js +1 -0
  206. package/dist/configurator/pages/default-configurator-elements.d.ts +7 -0
  207. package/dist/configurator/pages/default-configurator-elements.js +1 -0
  208. package/dist/configurator/pages/index.d.ts +1 -0
  209. package/dist/configurator/pages/index.js +1 -1
  210. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  211. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  212. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  213. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  214. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  215. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  216. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  217. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  218. package/dist/configurator/ui/assistant/AssistantChips.d.ts +8 -2
  219. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  220. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +3 -7
  221. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -1
  222. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +1 -1
  223. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  224. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  225. package/dist/configurator/ui/assistant/AssistantThread.d.ts +7 -8
  226. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  227. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  228. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  229. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  230. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  231. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  232. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  233. package/dist/configurator/ui/assistant/entity-link/entity-link-target.d.ts +5 -0
  234. package/dist/configurator/ui/assistant/entity-link/entity-link-target.js +1 -0
  235. package/dist/configurator/ui/assistant/entity-link/index.d.ts +3 -0
  236. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  237. package/dist/configurator/ui/assistant/index.d.ts +1 -1
  238. package/dist/configurator/ui/assistant/index.js +1 -1
  239. package/dist/configurator/ui/assistant/thread-items.d.ts +14 -3
  240. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  241. package/dist/configurator/ui/assistant/tool-chip.d.ts +8 -1
  242. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  243. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.d.ts +5 -0
  244. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.js +1 -0
  245. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  246. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  247. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  248. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  249. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.d.ts +101 -0
  250. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  251. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  252. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  253. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  254. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  255. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  256. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  257. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  258. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  259. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +0 -74
  260. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  261. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  262. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  263. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +2 -2
  264. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  265. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  266. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  267. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  268. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  269. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  270. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.d.ts +2 -2
  271. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -1
  272. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -2
  273. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +100 -117
  274. package/dist/docs/complex-use-cases/navigation-reset-selection.mdx +18 -12
  275. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  276. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  277. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  278. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  279. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  280. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  281. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  282. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  283. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  284. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  285. package/dist/docs/index.json +42 -1
  286. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  287. package/dist/docs/layouts/custom-layout.mdx +2125 -0
  288. package/dist/docs/layouts/custom-price.mdx +14 -16
  289. package/dist/docs/layouts/header/fixed.mdx +2 -2
  290. package/dist/docs/layouts/header/floating.mdx +2 -2
  291. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  292. package/dist/docs/layouts/sidebar/tabs.mdx +24 -21
  293. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  294. package/dist/docs/layouts/toolbar.mdx +3 -1
  295. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  296. package/dist/docs/other-features/domain-actions.mdx +1 -1
  297. package/dist/docs/other-features/side-effects.mdx +76 -45
  298. package/dist/docs/other-features/transformers.mdx +5 -1
  299. package/dist/docs/other-features/violation-messages.mdx +52 -56
  300. package/dist/docs/phoenix/admin.mdx +9 -24
  301. package/dist/docs/phoenix/application-states.mdx +9 -7
  302. package/dist/docs/phoenix/configurator-interface.mdx +237 -80
  303. package/dist/docs/phoenix/deployments.mdx +1 -1
  304. package/dist/docs/phoenix/domain-model.mdx +4 -0
  305. package/dist/docs/phoenix/expression-context.mdx +11 -3
  306. package/dist/docs/phoenix/finalization.mdx +1 -1
  307. package/dist/docs/phoenix/getting-started.mdx +1 -1
  308. package/dist/docs/phoenix/layout-slots.mdx +116 -0
  309. package/dist/docs/phoenix/localization.mdx +3 -22
  310. package/dist/docs/phoenix/phoenix-cli.mdx +148 -55
  311. package/dist/docs/phoenix/project-structure.mdx +32 -13
  312. package/dist/docs/phoenix/quickstart.mdx +2 -2
  313. package/dist/docs/phoenix/sdk-builder-workflow.mdx +12 -11
  314. package/dist/docs/phoenix/testing.mdx +140 -0
  315. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  316. package/dist/docs/phoenix/webhooks.mdx +19 -2
  317. package/dist/docs/recipes-and-delete/recipe-hierarchy-selection.mdx +15 -13
  318. package/dist/docs/relations/hierarchy.mdx +13 -2
  319. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  320. package/dist/domain/admin-domain/__generated/enhanced-model.d.ts +1 -2
  321. package/dist/domain/admin-domain/__generated/model/versions/v1.d.ts +1 -1
  322. package/dist/domain/admin-domain/__generated/model/versions/v2.d.ts +1 -1
  323. package/dist/domain/admin-domain/__generated/model/versions/v3.d.ts +1 -1
  324. package/dist/domain/admin-domain/__generated/model/versions/v4.d.ts +1 -1
  325. package/dist/domain/admin-domain/__generated/model/versions/v5.d.ts +1 -1
  326. package/dist/domain/admin-domain/__generated/model/versions/v6.d.ts +2 -2
  327. package/dist/domain/admin-domain/__generated/model/versions/v6.js +1 -1
  328. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -14
  329. package/dist/domain/admin-domain/implementation/common-admin-migrations.d.ts +1 -1
  330. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  331. package/dist/domain/admin-domain/index.d.ts +9 -5
  332. package/dist/domain/admin-domain/index.js +1 -1
  333. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  334. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  335. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  336. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  337. package/dist/domain/application/application-config.d.ts +30 -97
  338. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  339. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  340. package/dist/domain/application/assistant/assistant-manifest.d.ts +71 -0
  341. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +131 -0
  342. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -0
  343. package/dist/domain/application/assistant/assistant-value-type.d.ts +9 -0
  344. package/dist/domain/application/assistant/assistant-value-type.js +1 -0
  345. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  346. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  347. package/dist/domain/application/assistant/build-assistant-manifest.d.ts +4 -0
  348. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -0
  349. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  350. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  351. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  352. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -0
  353. package/dist/domain/application/assistant/index.d.ts +9 -0
  354. package/dist/domain/application/assistant/index.js +1 -0
  355. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  356. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  357. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  358. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  359. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +48 -0
  360. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  361. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  362. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  363. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  364. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  365. package/dist/domain/application/assistant-field-options.d.ts +2 -3
  366. package/dist/domain/application/assistant-mutations.d.ts +3 -5
  367. package/dist/domain/application/assistant-mutations.js +1 -1
  368. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -7
  369. package/dist/domain/application/configurator-builder.d.ts +36 -18
  370. package/dist/domain/application/configurator-builder.js +1 -1
  371. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  372. package/dist/domain/application/index.d.ts +3 -6
  373. package/dist/domain/application/index.js +1 -1
  374. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  375. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  376. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  377. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  378. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  379. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  380. package/dist/domain/application/published-data/create-finalize-admin-domain.d.ts +1 -2
  381. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  382. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  383. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +3 -3
  384. package/dist/domain/application/published-data/map-published-data.d.ts +7 -4
  385. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  386. package/dist/domain/available-system-components.js +1 -1
  387. package/dist/domain/core/action/action-factory.d.ts +11 -0
  388. package/dist/domain/core/{action.d.ts → action/action.d.ts} +22 -18
  389. package/dist/domain/core/action/index.d.ts +2 -0
  390. package/dist/domain/core/action/index.js +1 -0
  391. package/dist/domain/{components → core/component}/component-reader-types.d.ts +1 -2
  392. package/dist/domain/{components → core/component}/debug-state-component.d.ts +1 -1
  393. package/dist/domain/core/component/debug-state-component.js +1 -0
  394. package/dist/domain/core/component/domain-component-optic.d.ts +65 -0
  395. package/dist/domain/core/component/domain-component-optic.js +16 -0
  396. package/dist/domain/{components → core/component}/drag-state-component.d.ts +1 -1
  397. package/dist/domain/core/component/drag-state-component.js +1 -0
  398. package/dist/domain/{components → core/component}/export-state-component.d.ts +1 -1
  399. package/dist/domain/core/component/export-state-component.js +1 -0
  400. package/dist/domain/{components → core/component}/fullscreen-state-component.d.ts +1 -1
  401. package/dist/domain/core/component/fullscreen-state-component.js +1 -0
  402. package/dist/domain/{components → core/component}/group-components-by-entity-id-and-name.d.ts +1 -2
  403. package/dist/domain/core/component/group-components-by-entity-id-and-name.js +1 -0
  404. package/dist/domain/{components → core/component}/hover-state-component.d.ts +1 -1
  405. package/dist/domain/core/component/hover-state-component.js +1 -0
  406. package/dist/domain/core/component/index.d.ts +18 -0
  407. package/dist/domain/core/component/index.js +1 -0
  408. package/dist/domain/{components → core/component}/legacy-filter.d.ts +4 -19
  409. package/dist/domain/{components → core/component}/navigation-state-component.d.ts +1 -1
  410. package/dist/domain/core/component/navigation-state-component.js +1 -0
  411. package/dist/domain/{components → core/component}/selection-state-component.d.ts +1 -1
  412. package/dist/domain/core/component/selection-state-component.js +1 -0
  413. package/dist/domain/{components → core/component}/system-component-builder.d.ts +1 -2
  414. package/dist/domain/core/component/system-component-builder.js +1 -0
  415. package/dist/domain/{components → core/component}/system-component-filter.d.ts +38 -20
  416. package/dist/domain/core/component/system-virtual-entity.js +1 -0
  417. package/dist/domain/{components → core/component}/tool-state-component.d.ts +1 -1
  418. package/dist/domain/core/component/tool-state-component.js +1 -0
  419. package/dist/domain/{components → core/component}/updates.d.ts +17 -2
  420. package/dist/domain/{components → core/component}/view-state-component.d.ts +1 -1
  421. package/dist/domain/core/component/view-state-component.js +1 -0
  422. package/dist/domain/{components → core/component}/viewport-state-component.d.ts +1 -1
  423. package/dist/domain/core/component/viewport-state-component.js +1 -0
  424. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  425. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  426. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  427. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  428. package/dist/domain/core/data-schema/data-schema-field.js +1 -0
  429. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  430. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  431. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  432. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  433. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  434. package/dist/domain/core/data-schema/data-schema.js +1 -0
  435. package/dist/domain/core/data-schema/index.d.ts +7 -0
  436. package/dist/domain/core/data-schema/index.js +1 -0
  437. package/dist/domain/core/decoder/create-decoder.d.ts +6 -0
  438. package/dist/domain/core/decoder/create-decoder.js +1 -0
  439. package/dist/domain/core/decoder/decoder.d.ts +6 -0
  440. package/dist/domain/core/decoder/decoder.js +1 -0
  441. package/dist/domain/core/decoder/index.d.ts +2 -0
  442. package/dist/domain/core/decoder/index.js +1 -0
  443. package/dist/domain/core/domain-factory.d.ts +4 -5
  444. package/dist/domain/core/domain-factory.js +1 -1
  445. package/dist/domain/core/domain.d.ts +4 -5
  446. package/dist/domain/core/domain.js +1 -1
  447. package/dist/domain/core/emission/index.d.ts +8 -0
  448. package/dist/domain/core/emission/index.js +1 -0
  449. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  450. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  451. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  452. package/dist/domain/core/emission/state-emission.js +1 -0
  453. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  454. package/dist/domain/core/emission/state-update-emission.js +1 -0
  455. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  456. package/dist/domain/core/emission/state-validation-result.js +1 -0
  457. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  458. package/dist/domain/core/emission/transformation-log.js +1 -0
  459. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  460. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  461. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  462. package/dist/domain/core/emission/transformer-log.js +1 -0
  463. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  464. package/dist/domain/core/emission/transformer-phase.js +1 -0
  465. package/dist/domain/core/expression/aliased-expressions.d.ts +10 -0
  466. package/dist/domain/core/expression/aliased-expressions.js +1 -0
  467. package/dist/domain/core/expression/constant-expressions.d.ts +16 -0
  468. package/dist/domain/core/expression/constant-expressions.js +1 -0
  469. package/dist/domain/core/expression/custom-expression.d.ts +25 -0
  470. package/dist/domain/core/expression/custom-expression.js +1 -0
  471. package/dist/domain/core/expression/expression.d.ts +46 -0
  472. package/dist/domain/core/expression/expression.js +1 -0
  473. package/dist/domain/core/expression/index.d.ts +4 -0
  474. package/dist/domain/core/expression/index.js +1 -0
  475. package/dist/domain/core/index.d.ts +13 -17
  476. package/dist/domain/core/index.js +1 -1
  477. package/dist/domain/{invariants → core/invariant}/builtin-invariant.d.ts +2 -2
  478. package/dist/domain/core/invariant/custom-invariants.d.ts +13 -0
  479. package/dist/domain/core/invariant/custom-invariants.js +1 -0
  480. package/dist/domain/core/invariant/index.d.ts +5 -0
  481. package/dist/domain/core/invariant/index.js +1 -0
  482. package/dist/domain/core/invariant/invariants.d.ts +10 -0
  483. package/dist/domain/core/invariant/invariants.js +1 -0
  484. package/dist/domain/core/invariant/violation-component.js +1 -0
  485. package/dist/domain/{invariants → core/invariant}/violation.d.ts +52 -4
  486. package/dist/domain/core/invariant/violation.js +1 -0
  487. package/dist/domain/core/{component.d.ts → model/component.d.ts} +1 -1
  488. package/dist/domain/core/model/index.d.ts +6 -0
  489. package/dist/domain/core/model/index.js +1 -0
  490. package/dist/domain/core/{model.d.ts → model/model.d.ts} +1 -1
  491. package/dist/domain/core/{reflection.d.ts → model/reflection.d.ts} +1 -1
  492. package/dist/domain/core/model/reflection.js +1 -0
  493. package/dist/domain/core/recipe/index.d.ts +1 -0
  494. package/dist/domain/core/recipe/index.js +1 -0
  495. package/dist/domain/core/recipe/recipes.d.ts +23 -0
  496. package/dist/domain/core/recipe/recipes.js +1 -0
  497. package/dist/domain/core/relation/all-of-type-relation.d.ts +19 -0
  498. package/dist/domain/core/relation/all-of-type-relation.js +1 -0
  499. package/dist/domain/{relations → core/relation}/component-factories.d.ts +1 -2
  500. package/dist/domain/core/relation/component-factories.js +1 -0
  501. package/dist/domain/{relations → core/relation}/composed-of.d.ts +1 -1
  502. package/dist/domain/core/relation/composed-of.js +1 -0
  503. package/dist/domain/core/relation/direct-relation.d.ts +17 -0
  504. package/dist/domain/core/relation/index.d.ts +8 -0
  505. package/dist/domain/core/relation/index.js +1 -0
  506. package/dist/domain/core/relation/indirect-relation.d.ts +25 -0
  507. package/dist/domain/core/relation/indirect-relation.js +1 -0
  508. package/dist/domain/{relations → core/relation}/reference-component.d.ts +4 -5
  509. package/dist/domain/core/relation/reference-component.js +1 -0
  510. package/dist/domain/{relations → core/relation}/reference-field.d.ts +1 -1
  511. package/dist/domain/core/relation/reference-field.js +1 -0
  512. package/dist/domain/core/relation/relation-factory.d.ts +22 -0
  513. package/dist/domain/core/relation/relation-factory.js +1 -0
  514. package/dist/domain/core/schema/enhanced-json-schema.js +1 -0
  515. package/dist/domain/core/schema/extended-schema-validator.js +1 -0
  516. package/dist/domain/core/schema/index.d.ts +3 -0
  517. package/dist/domain/core/schema/index.js +1 -0
  518. package/dist/domain/core/schema/schema-validator.js +1 -0
  519. package/dist/domain/core/state/id-sequence.d.ts +15 -0
  520. package/dist/domain/core/state/id-sequence.js +1 -0
  521. package/dist/domain/core/state/index.d.ts +3 -0
  522. package/dist/domain/core/state/index.js +1 -0
  523. package/dist/domain/core/{migrations.d.ts → state/migrations.d.ts} +15 -47
  524. package/dist/domain/core/state/migrations.js +1 -0
  525. package/dist/domain/core/{state.d.ts → state/state.d.ts} +2 -3
  526. package/dist/domain/domain-builder.d.ts +11 -11
  527. package/dist/domain/domain-builder.js +1 -1
  528. package/dist/domain/domain-context/action-system/action-system.d.ts +2 -4
  529. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  530. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  531. package/dist/domain/domain-context/action-system/index.js +1 -0
  532. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  533. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  534. package/dist/domain/domain-context/create-transformer.d.ts +2 -2
  535. package/dist/domain/domain-context/dimension-system/dimension-state.js +1 -1
  536. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +3 -4
  537. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  538. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  539. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  540. package/dist/domain/domain-context/domain-context-systems.d.ts +8 -10
  541. package/dist/domain/domain-context/index.d.ts +8 -18
  542. package/dist/domain/domain-context/index.js +1 -1
  543. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  544. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  545. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +5 -8
  546. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  547. package/dist/domain/domain-context/navigation-system/navigation-updates.d.ts +1 -12
  548. package/dist/domain/domain-context/navigation-system/navigation-updates.js +1 -1
  549. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +2 -2
  550. package/dist/domain/domain-context/navigation-system/selection-transformers.js +1 -1
  551. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  552. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  553. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +2 -4
  554. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  555. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +3 -3
  556. package/dist/domain/domain-context/relation-transformers/cascade-deletes.js +1 -1
  557. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +3 -3
  558. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.js +1 -1
  559. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +3 -3
  560. package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
  561. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  562. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  563. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +3 -3
  564. package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
  565. package/dist/domain/domain-context/store-system/apply-updates.d.ts +1 -3
  566. package/dist/domain/domain-context/store-system/apply-updates.js +1 -1
  567. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  568. package/dist/domain/domain-context/store-system/index.js +1 -0
  569. package/dist/domain/domain-context/store-system/next-domain-entity-id.d.ts +1 -13
  570. package/dist/domain/domain-context/store-system/next-domain-entity-id.js +1 -1
  571. package/dist/domain/domain-context/store-system/reconcile-projected-entities.d.ts +1 -2
  572. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  573. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -39
  574. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  575. package/dist/domain/domain-context/store-system/system-state.d.ts +2 -4
  576. package/dist/domain/domain-context/store-system/system-state.js +1 -1
  577. package/dist/domain/domain-context/transformers/actions-builder.d.ts +1 -2
  578. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  579. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +6 -10
  580. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  581. package/dist/domain/domain-context/transformers/chain-builder.d.ts +3 -3
  582. package/dist/domain/domain-context/transformers/context.d.ts +2 -7
  583. package/dist/domain/domain-context/transformers/context.js +1 -1
  584. package/dist/domain/domain-context/transformers/entity-builder.d.ts +1 -5
  585. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  586. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  587. package/dist/domain/domain-context/transformers/index.js +1 -1
  588. package/dist/domain/domain-context/transformers/then-builder.d.ts +1 -2
  589. package/dist/domain/domain-context/transformers/then-builder.js +1 -1
  590. package/dist/domain/domain-context/transformers/when-builder.d.ts +3 -9
  591. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  592. package/dist/domain/domain-context/undo-system.d.ts +29 -3
  593. package/dist/domain/domain-context/undo-system.js +1 -1
  594. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  595. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  596. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  597. package/dist/domain/domain-runtime/access/types.js +1 -1
  598. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  599. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  600. package/dist/domain/domain-runtime/domain-context/component-reader.d.ts +1 -4
  601. package/dist/domain/domain-runtime/domain-context/component-reader.js +1 -1
  602. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  603. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  604. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  605. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  606. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  607. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  608. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +19 -25
  609. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  610. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  611. package/dist/domain/domain-runtime/domain-runtime.d.ts +88 -72
  612. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +19 -0
  613. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  614. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  615. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  616. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  617. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  618. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  619. package/dist/domain/domain-runtime/errors/index.js +1 -0
  620. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  621. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  622. package/dist/domain/domain-runtime/index.d.ts +1 -0
  623. package/dist/domain/domain-runtime/index.js +1 -1
  624. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  625. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  626. package/dist/domain/domain-runtime/spec/index.d.ts +5 -0
  627. package/dist/domain/domain-runtime/spec/index.js +1 -1
  628. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  629. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  630. package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.d.ts +1 -2
  631. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +6 -1
  632. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  633. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +5 -0
  634. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  635. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  636. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  637. package/dist/domain/domain-runtime/spec/module-checks/project-modules.d.ts +32 -0
  638. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  639. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  640. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  641. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  642. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  643. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  644. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  645. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  646. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  647. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  648. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  649. package/dist/domain/{actions → domain-runtime/spec}/prepare-action-implementations.d.ts +1 -1
  650. package/dist/domain/domain-runtime/spec/prepare-action-implementations.js +5 -0
  651. package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.d.ts +1 -1
  652. package/dist/domain/domain-runtime/spec/selectors.d.ts +7 -8
  653. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  654. package/dist/domain/domain-runtime/spec/types.d.ts +8 -6
  655. package/dist/domain/{system-components → extensions}/angle-indicator.d.ts +1 -1
  656. package/dist/domain/extensions/angle-indicator.js +1 -0
  657. package/dist/domain/{system-components → extensions}/attribute-switch.d.ts +1 -1
  658. package/dist/domain/extensions/attribute-switch.js +1 -0
  659. package/dist/domain/{system-components → extensions}/autorotate-camera-component.d.ts +1 -1
  660. package/dist/domain/extensions/autorotate-camera-component.js +1 -0
  661. package/dist/domain/{system-components → extensions}/basic-sidebar-footer.d.ts +1 -1
  662. package/dist/domain/extensions/basic-sidebar-footer.js +1 -0
  663. package/dist/domain/extensions/camera-based-hidden-entity-object.js +1 -0
  664. package/dist/domain/extensions/camera-based-hidden-entity.js +1 -0
  665. package/dist/domain/{system-components → extensions}/canvas-config.d.ts +2 -2
  666. package/dist/domain/extensions/canvas-config.js +1 -0
  667. package/dist/domain/extensions/canvas-custom-environment.js +1 -0
  668. package/dist/domain/{system-components → extensions}/canvas-padding.d.ts +1 -1
  669. package/dist/domain/extensions/canvas-padding.js +1 -0
  670. package/dist/domain/{system-components → extensions}/canvas-preset-environment.d.ts +1 -1
  671. package/dist/domain/extensions/canvas-preset-environment.js +1 -0
  672. package/dist/domain/{system-components → extensions}/child-entity-recipe-hierarchy.d.ts +2 -2
  673. package/dist/domain/extensions/child-entity-recipe-hierarchy.js +1 -0
  674. package/dist/domain/{system-components → extensions}/client-side-image.d.ts +2 -2
  675. package/dist/domain/extensions/client-side-image.js +1 -0
  676. package/dist/domain/extensions/color-value.js +1 -0
  677. package/dist/domain/{system-components → extensions}/common/angle-indicator-schema.d.ts +3 -3
  678. package/dist/domain/extensions/common/angle-indicator-schema.js +1 -0
  679. package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.d.ts +3 -3
  680. package/dist/domain/extensions/common/dimension-indicator-schema.js +1 -0
  681. package/dist/domain/extensions/common/index.d.ts +4 -0
  682. package/dist/domain/extensions/common/index.js +1 -0
  683. package/dist/domain/{system-components → extensions}/custom-header.d.ts +2 -2
  684. package/dist/domain/{system-components → extensions}/custom-header.js +1 -1
  685. package/dist/domain/extensions/custom-price-footer.js +1 -0
  686. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.d.ts +2 -2
  687. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.js +1 -1
  688. package/dist/domain/{system-components → extensions}/dimension-indicator.d.ts +1 -1
  689. package/dist/domain/extensions/dimension-indicator.js +1 -0
  690. package/dist/domain/{system-components → extensions}/editable-angle-indicator.d.ts +4 -3
  691. package/dist/domain/extensions/editable-angle-indicator.js +1 -0
  692. package/dist/domain/{system-components → extensions}/editable-distance-dimension-indicator.d.ts +4 -3
  693. package/dist/domain/extensions/editable-distance-dimension-indicator.js +1 -0
  694. package/dist/domain/{system-components → extensions}/editable-offset-indicator.d.ts +4 -3
  695. package/dist/domain/extensions/editable-offset-indicator.js +1 -0
  696. package/dist/domain/{system-components → extensions}/editable-size-indicator.d.ts +3 -2
  697. package/dist/domain/extensions/editable-size-indicator.js +1 -0
  698. package/dist/domain/{system-components → extensions}/entity-header.d.ts +1 -1
  699. package/dist/domain/extensions/entity-header.js +1 -0
  700. package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.d.ts +1 -1
  701. package/dist/domain/extensions/exit-tool-mode-fab.js +1 -0
  702. package/dist/domain/{system-components → extensions}/finalize-action.d.ts +1 -1
  703. package/dist/domain/extensions/finalize-action.js +1 -0
  704. package/dist/domain/extensions/finalize-component.js +1 -0
  705. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -0
  706. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -0
  707. package/dist/domain/{system-components → extensions}/fixed-header.d.ts +1 -1
  708. package/dist/domain/extensions/fixed-header.js +1 -0
  709. package/dist/domain/{system-components → extensions}/floating-header.d.ts +1 -1
  710. package/dist/domain/extensions/floating-header.js +1 -0
  711. package/dist/domain/{system-components → extensions}/hidden-header.d.ts +1 -1
  712. package/dist/domain/extensions/hidden-header.js +1 -0
  713. package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.d.ts +1 -1
  714. package/dist/domain/extensions/hidden-sidebar-footer.js +1 -0
  715. package/dist/domain/{system-components → extensions}/horizontal-tabs.d.ts +3 -3
  716. package/dist/domain/extensions/horizontal-tabs.js +1 -0
  717. package/dist/domain/extensions/index.d.ts +69 -0
  718. package/dist/domain/extensions/index.js +1 -0
  719. package/dist/domain/{system-components → extensions}/list-selector-dimension-indicator.d.ts +4 -3
  720. package/dist/domain/extensions/list-selector-dimension-indicator.js +1 -0
  721. package/dist/domain/extensions/multilingual-text-value.js +1 -0
  722. package/dist/domain/{system-components → extensions}/navigation-steps.d.ts +2 -2
  723. package/dist/domain/extensions/navigation-steps.js +1 -0
  724. package/dist/domain/{system-components → extensions}/offset-anchors.d.ts +1 -1
  725. package/dist/domain/extensions/offset-anchors.js +1 -0
  726. package/dist/domain/{system-components → extensions}/offset-indicator.d.ts +1 -2
  727. package/dist/domain/extensions/offset-indicator.js +1 -0
  728. package/dist/domain/{system-components → extensions}/offset.d.ts +1 -1
  729. package/dist/domain/extensions/offset.js +1 -0
  730. package/dist/domain/{system-components → extensions}/other-action.d.ts +1 -1
  731. package/dist/domain/extensions/other-action.js +1 -0
  732. package/dist/domain/{system-components → extensions}/property-page.d.ts +2 -2
  733. package/dist/domain/extensions/property-page.js +1 -0
  734. package/dist/domain/{system-components → extensions}/read-sidebar-footer.d.ts +1 -1
  735. package/dist/domain/extensions/read-sidebar-footer.js +1 -0
  736. package/dist/domain/{system-components → extensions}/replace-entity-recipe-hierarchy.d.ts +2 -2
  737. package/dist/domain/extensions/replace-entity-recipe-hierarchy.js +1 -0
  738. package/dist/domain/extensions/rotatable.js +1 -0
  739. package/dist/domain/{system-components → extensions}/rotation-handle.d.ts +2 -2
  740. package/dist/domain/extensions/rotation-handle.js +1 -0
  741. package/dist/domain/{system-components → extensions}/save-template-thumbnail.d.ts +2 -2
  742. package/dist/domain/extensions/save-template-thumbnail.js +1 -0
  743. package/dist/domain/{system-components → extensions}/scene-entity-add-fab.d.ts +1 -1
  744. package/dist/domain/extensions/scene-entity-add-fab.js +1 -0
  745. package/dist/domain/extensions/scene-entity-animation.js +1 -0
  746. package/dist/domain/extensions/scene-entity-control.js +1 -0
  747. package/dist/domain/{system-components → extensions}/scene-entity-delete-fab.d.ts +1 -1
  748. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -0
  749. package/dist/domain/extensions/scene-entity-floor-object.js +1 -0
  750. package/dist/domain/{system-components → extensions}/scene-entity-html-hotspot.d.ts +1 -1
  751. package/dist/domain/extensions/scene-entity-html-hotspot.js +1 -0
  752. package/dist/domain/{system-components → extensions}/scene-entity-navigation-hotspot.d.ts +1 -1
  753. package/dist/domain/extensions/scene-entity-navigation-hotspot.js +1 -0
  754. package/dist/domain/{system-components → extensions}/scene-entity-object-html-hotspot.d.ts +1 -1
  755. package/dist/domain/extensions/scene-entity-object-html-hotspot.js +1 -0
  756. package/dist/domain/{system-components → extensions}/scene-entity-select-hotspot.d.ts +1 -1
  757. package/dist/domain/extensions/scene-entity-select-hotspot.js +1 -0
  758. package/dist/domain/extensions/scene-entity-wall-object.js +1 -0
  759. package/dist/domain/extensions/selectable-component.js +1 -0
  760. package/dist/domain/{system-components → extensions}/sidebar-tabs.d.ts +1 -1
  761. package/dist/domain/extensions/sidebar-tabs.js +1 -0
  762. package/dist/domain/extensions/simple-summary.js +1 -0
  763. package/dist/domain/{system-components → extensions}/size.d.ts +1 -1
  764. package/dist/domain/extensions/size.js +1 -0
  765. package/dist/domain/{system-components → extensions}/sketching-draw.d.ts +1 -1
  766. package/dist/domain/extensions/sketching-draw.js +1 -0
  767. package/dist/domain/{system-components → extensions}/sketching-edit.d.ts +2 -2
  768. package/dist/domain/extensions/sketching-edit.js +1 -0
  769. package/dist/domain/extensions/summary-component.js +1 -0
  770. package/dist/domain/extensions/text-value.js +1 -0
  771. package/dist/domain/extensions/tool-controls.js +1 -0
  772. package/dist/domain/{system-components → extensions}/tool-menu-fab.d.ts +2 -2
  773. package/dist/domain/extensions/tool-menu-fab.js +1 -0
  774. package/dist/domain/{system-components → extensions}/toolbar.d.ts +2 -2
  775. package/dist/domain/{system-components → extensions}/toolbar.js +1 -1
  776. package/dist/domain/{system-components → extensions}/universal-sidebar-footer.d.ts +1 -1
  777. package/dist/domain/extensions/universal-sidebar-footer.js +1 -0
  778. package/dist/domain/extensions/view-controls.js +1 -0
  779. package/dist/domain/index.d.ts +2 -32
  780. package/dist/domain/index.js +1 -1
  781. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  782. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  783. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +30 -21
  784. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  785. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  786. package/dist/domain/mocks/create-mock-domain.js +1 -1
  787. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  788. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  789. package/dist/domain/mocks/create-test-application-config.js +1 -0
  790. package/dist/domain/mocks/index.d.ts +1 -0
  791. package/dist/domain/mocks/index.js +1 -1
  792. package/dist/domain/projections/blender-projections/blender-projections.d.ts +2 -3
  793. package/dist/domain/projections/blender-projections/blender-projections.js +1 -1
  794. package/dist/domain/projections/blender-projections/camera.d.ts +2 -2
  795. package/dist/domain/projections/collision-projections.d.ts +1 -1
  796. package/dist/domain/projections/composition-projections.d.ts +1 -1
  797. package/dist/domain/projections/composition-projections.js +1 -1
  798. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  799. package/dist/domain/projections/index.d.ts +1 -1
  800. package/dist/domain/projections/position-projections.d.ts +1 -1
  801. package/dist/domain/projections/projected-entities-projections.d.ts +2 -3
  802. package/dist/domain/projections/snap-matching.d.ts +1 -2
  803. package/dist/domain/projections/snap-utils.d.ts +1 -2
  804. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  805. package/dist/domain/projections/validation-projections.d.ts +3 -20
  806. package/dist/domain/projections/validation-projections.js +1 -1
  807. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  808. package/dist/domain/system-components/admin-sidebar.d.ts +1 -1
  809. package/dist/domain/system-components/admin-sidebar.js +1 -1
  810. package/dist/domain/system-components/angle-dimension.js +1 -1
  811. package/dist/domain/system-components/application-config.d.ts +3 -3
  812. package/dist/domain/system-components/application-config.js +1 -1
  813. package/dist/domain/system-components/attribute-selection.js +1 -1
  814. package/dist/domain/system-components/bounding-box-component.d.ts +1 -1
  815. package/dist/domain/system-components/bounding-box-component.js +1 -1
  816. package/dist/domain/system-components/bounding-sphere-component.d.ts +1 -1
  817. package/dist/domain/system-components/bounding-sphere-component.js +1 -1
  818. package/dist/domain/system-components/child-entity-recipes.d.ts +1 -1
  819. package/dist/domain/system-components/child-entity-recipes.js +1 -1
  820. package/dist/domain/system-components/child-entity-selection.d.ts +1 -2
  821. package/dist/domain/system-components/child-entity-selection.js +1 -1
  822. package/dist/domain/system-components/collision-box-geometry.d.ts +5 -3
  823. package/dist/domain/system-components/collision-box-geometry.js +1 -1
  824. package/dist/domain/system-components/collision-geometries.d.ts +1 -1
  825. package/dist/domain/system-components/collision-geometry.d.ts +5 -3
  826. package/dist/domain/system-components/collision-geometry.js +1 -1
  827. package/dist/domain/system-components/collision-point-geometry.d.ts +5 -3
  828. package/dist/domain/system-components/collision-point-geometry.js +1 -1
  829. package/dist/domain/system-components/common/index.d.ts +0 -4
  830. package/dist/domain/system-components/common/index.js +1 -1
  831. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  832. package/dist/domain/system-components/common/recipes.d.ts +21 -4
  833. package/dist/domain/system-components/common/recipes.js +1 -1
  834. package/dist/domain/system-components/constraint.d.ts +11 -24
  835. package/dist/domain/system-components/constraint.js +1 -1
  836. package/dist/domain/system-components/create-blueprint.d.ts +1 -1
  837. package/dist/domain/system-components/custom-scene-entity.d.ts +1 -1
  838. package/dist/domain/system-components/custom-scene-entity.js +1 -1
  839. package/dist/domain/system-components/detail.js +1 -1
  840. package/dist/domain/system-components/distance-dimension-select.d.ts +1 -1
  841. package/dist/domain/system-components/distance-dimension-select.js +1 -1
  842. package/dist/domain/system-components/distance-dimension.d.ts +1 -1
  843. package/dist/domain/system-components/distance-dimension.js +1 -1
  844. package/dist/domain/system-components/drag-handle.d.ts +2 -2
  845. package/dist/domain/system-components/drag-handle.js +1 -1
  846. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  847. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  848. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  849. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  850. package/dist/domain/system-components/generic-dimension.d.ts +1 -1
  851. package/dist/domain/system-components/generic-dimension.js +1 -1
  852. package/dist/domain/system-components/hidden-entity.js +1 -1
  853. package/dist/domain/system-components/hotspot-drag-handle.d.ts +2 -3
  854. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  855. package/dist/domain/system-components/index.d.ts +0 -68
  856. package/dist/domain/system-components/index.js +1 -1
  857. package/dist/domain/system-components/material-override-property-transition.js +1 -1
  858. package/dist/domain/system-components/material-override-transformer.js +1 -1
  859. package/dist/domain/system-components/material-swatch.js +1 -1
  860. package/dist/domain/system-components/navigation-page.js +1 -1
  861. package/dist/domain/system-components/navigation-panel-list.js +1 -1
  862. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  863. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  864. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  865. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  866. package/dist/domain/system-components/pivot-point.d.ts +1 -1
  867. package/dist/domain/system-components/pivot-point.js +1 -1
  868. package/dist/domain/system-components/price.js +1 -1
  869. package/dist/domain/system-components/projected-entities.d.ts +1 -1
  870. package/dist/domain/system-components/projected-entities.js +1 -1
  871. package/dist/domain/system-components/replace-entity-recipes.d.ts +1 -1
  872. package/dist/domain/system-components/replace-entity-recipes.js +1 -1
  873. package/dist/domain/system-components/scene-entity-ambient-light.js +1 -1
  874. package/dist/domain/system-components/scene-entity-box-object.js +1 -1
  875. package/dist/domain/system-components/scene-entity-directional-light.js +1 -1
  876. package/dist/domain/system-components/scene-entity-local-material-override.js +1 -1
  877. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  878. package/dist/domain/system-components/scene-entity-material-override.js +1 -1
  879. package/dist/domain/system-components/scene-entity-object-clip.js +1 -1
  880. package/dist/domain/system-components/scene-entity-object-decal.js +1 -1
  881. package/dist/domain/system-components/scene-entity-object-group.js +1 -1
  882. package/dist/domain/system-components/scene-entity-object-local-material-override.js +1 -1
  883. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  884. package/dist/domain/system-components/scene-entity-object-material-override.js +1 -1
  885. package/dist/domain/system-components/scene-entity-object-properties.js +1 -1
  886. package/dist/domain/system-components/scene-entity-object-remote-material-override.js +1 -1
  887. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  888. package/dist/domain/system-components/scene-entity-object-text-decal.js +1 -1
  889. package/dist/domain/system-components/scene-entity-object-transformer.js +1 -1
  890. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  891. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.js +1 -1
  892. package/dist/domain/system-components/scene-entity-object.js +1 -1
  893. package/dist/domain/system-components/scene-entity-point-light.js +1 -1
  894. package/dist/domain/system-components/scene-entity-properties.js +1 -1
  895. package/dist/domain/system-components/scene-entity-rect-area-light.js +1 -1
  896. package/dist/domain/system-components/scene-entity-remote-material-override.js +1 -1
  897. package/dist/domain/system-components/scene-entity-remote-object.js +1 -1
  898. package/dist/domain/system-components/scene-entity-spot-light.js +1 -1
  899. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  900. package/dist/domain/system-components/scene-entity-transimissive-material-override.js +1 -1
  901. package/dist/domain/system-components/sketching-line.d.ts +1 -1
  902. package/dist/domain/system-components/sketching-line.js +1 -1
  903. package/dist/domain/system-components/sketching-rectangle.d.ts +1 -1
  904. package/dist/domain/system-components/sketching-rectangle.js +1 -1
  905. package/dist/domain/system-components/sketching.d.ts +1 -1
  906. package/dist/domain/system-components/sketching.js +1 -1
  907. package/dist/domain/system-components/snap-axis.d.ts +1 -1
  908. package/dist/domain/system-components/snap-axis.js +1 -1
  909. package/dist/domain/system-components/snap-edge.d.ts +1 -1
  910. package/dist/domain/system-components/snap-edge.js +1 -1
  911. package/dist/domain/system-components/snap-plane.d.ts +1 -1
  912. package/dist/domain/system-components/snap-plane.js +1 -1
  913. package/dist/domain/system-components/snap-point.d.ts +1 -1
  914. package/dist/domain/system-components/snap-point.js +1 -1
  915. package/dist/domain/system-components/static-orthographic-camera-component.d.ts +1 -1
  916. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  917. package/dist/domain/system-components/static-perspective-camera-component.d.ts +1 -1
  918. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  919. package/dist/domain/utils/eval-cache.d.ts +2 -3
  920. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  921. package/dist/domain/utils/memo-eval.d.ts +2 -4
  922. package/dist/editor/Editor.js +1 -1
  923. package/dist/editor/domain-editors/use-implementation-files.d.ts +8 -8
  924. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  925. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  926. package/dist/editor/mocks/EditorMockContext.js +1 -1
  927. package/dist/editor/variants/VariantAnswerFooter.d.ts +17 -0
  928. package/dist/editor/variants/VariantAnswerFooter.js +1 -0
  929. package/dist/editor/variants/VariantPreviewHandler.d.ts +6 -0
  930. package/dist/editor/variants/VariantPreviewHandler.js +1 -0
  931. package/dist/editor/variants/variant-preview-styles.d.ts +49 -0
  932. package/dist/editor/variants/variant-preview-styles.js +1 -0
  933. package/dist/i18n/locales/cs/messages.js +1 -1
  934. package/dist/i18n/locales/da/messages.js +1 -1
  935. package/dist/i18n/locales/de/messages.js +1 -1
  936. package/dist/i18n/locales/de-AT/messages.js +1 -1
  937. package/dist/i18n/locales/en/messages.js +1 -1
  938. package/dist/i18n/locales/en-AU/messages.js +1 -1
  939. package/dist/i18n/locales/en-GB/messages.js +1 -1
  940. package/dist/i18n/locales/es/messages.js +1 -1
  941. package/dist/i18n/locales/fr/messages.js +1 -1
  942. package/dist/i18n/locales/hu/messages.js +1 -1
  943. package/dist/i18n/locales/it/messages.js +1 -1
  944. package/dist/i18n/locales/nl/messages.js +1 -1
  945. package/dist/i18n/locales/pl/messages.js +1 -1
  946. package/dist/i18n/locales/pt/messages.js +1 -1
  947. package/dist/i18n/locales/ro/messages.js +1 -1
  948. package/dist/i18n/locales/sk/messages.js +1 -1
  949. package/dist/i18n/locales/tr/messages.js +1 -1
  950. package/dist/legacy/domain-cli/gen/configurator-builder.js +30 -16
  951. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  952. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  953. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  954. package/dist/legacy/domain-cli/gen/invariants.js +7 -6
  955. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  956. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  957. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  958. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +81 -68
  959. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  960. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  961. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  962. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +7 -0
  963. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  964. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.d.ts +1 -1
  965. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
  966. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +16 -15
  967. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +16 -15
  968. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +23 -22
  969. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +16 -15
  970. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.d.ts +7 -2
  971. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.js +8 -12
  972. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.d.ts +1 -1
  973. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.js +1 -1
  974. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/webhook-builders.js +7 -7
  975. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  976. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +4 -3
  977. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  978. package/dist/phoenix/cli.js +1 -1
  979. package/dist/phoenix/commands/check.js +1 -1
  980. package/dist/phoenix/commands/deploy.js +1 -1
  981. package/dist/phoenix/commands/dev.js +5 -5
  982. package/dist/phoenix/commands/fix.js +1 -1
  983. package/dist/phoenix/commands/index.d.ts +1 -0
  984. package/dist/phoenix/commands/index.js +1 -1
  985. package/dist/phoenix/commands/init.d.ts +4 -4
  986. package/dist/phoenix/commands/init.js +1 -1
  987. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  988. package/dist/phoenix/commands/prepare-local-environment-command.js +1 -1
  989. package/dist/phoenix/commands/prettier.js +1 -1
  990. package/dist/phoenix/commands/story-dev.js +2 -2
  991. package/dist/phoenix/commands/variants.d.ts +35 -0
  992. package/dist/phoenix/commands/variants.js +1 -0
  993. package/dist/phoenix/editor-server/commands-router.d.ts +68 -1
  994. package/dist/phoenix/editor-server/commands-router.js +1 -1
  995. package/dist/phoenix/editor-server/editor-router.d.ts +65 -0
  996. package/dist/phoenix/editor-server/editor-server.d.ts +3 -3
  997. package/dist/phoenix/editor-server/editor-server.js +1 -1
  998. package/dist/phoenix/editor-server/protocol.d.ts +1 -0
  999. package/dist/phoenix/editor-server/spec-router.js +1 -1
  1000. package/dist/phoenix/editor-server/trpc.d.ts +3 -0
  1001. package/dist/phoenix/scripts/build-admin.js +1 -1
  1002. package/dist/phoenix/services/application-spec-project-watcher.d.ts +15 -2
  1003. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  1004. package/dist/phoenix/services/index.d.ts +4 -0
  1005. package/dist/phoenix/services/index.js +1 -1
  1006. package/dist/phoenix/services/phoenix-application.d.ts +21 -0
  1007. package/dist/phoenix/services/phoenix-application.js +1 -0
  1008. package/dist/phoenix/services/phoenix-store.d.ts +48 -0
  1009. package/dist/phoenix/services/phoenix-store.js +1 -0
  1010. package/dist/phoenix/services/phx-variant-previews-plugin.d.ts +9 -0
  1011. package/dist/phoenix/services/phx-variant-previews-plugin.js +1 -0
  1012. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  1013. package/dist/phoenix/services/source-archive.d.ts +1 -0
  1014. package/dist/phoenix/services/source-archive.js +1 -1
  1015. package/dist/phoenix/services/swc.js +1 -1
  1016. package/dist/phoenix/services/variant-file-session.d.ts +36 -0
  1017. package/dist/phoenix/services/variant-file-session.js +1 -0
  1018. package/dist/phoenix/services/variant-preview-service.d.ts +80 -0
  1019. package/dist/phoenix/services/variant-preview-service.js +1 -0
  1020. package/dist/phoenix/services/vite-config.js +1 -1
  1021. package/dist/phoenix/utils/git/index.d.ts +1 -0
  1022. package/dist/phoenix/utils/git/index.js +1 -0
  1023. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  1024. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  1025. package/dist/phoenix/utils/index.d.ts +1 -0
  1026. package/dist/phoenix/utils/index.js +1 -1
  1027. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +2 -0
  1028. package/dist/react-sdk/application-runtime/hooks/use-domain-application-props.d.ts +5 -2
  1029. package/dist/react-sdk/application-runtime/hooks/use-spec.d.ts +1 -1
  1030. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.d.ts +1 -1
  1031. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  1032. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  1033. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +57 -40
  1034. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  1035. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +30 -0
  1036. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  1037. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +9 -9
  1038. package/dist/react-sdk/domain-context/index.d.ts +2 -1
  1039. package/dist/react-sdk/domain-context/index.js +1 -1
  1040. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +11 -0
  1041. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  1042. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  1043. package/dist/ui-sdk/common/use-viewport-size.d.ts +4 -1
  1044. package/dist/ui-sdk/common/use-viewport-size.js +1 -1
  1045. package/dist/ui-sdk/theme/types.d.ts +1 -1
  1046. package/dist/webhook/builders/common.d.ts +8 -0
  1047. package/dist/webhook/builders/webhook-builder.d.ts +1 -1
  1048. package/dist/webhook/builders/webhook-builder.js +1 -1
  1049. package/package.json +34 -27
  1050. package/schema/domain-spec.json +1115 -209
  1051. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  1052. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  1053. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  1054. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -90
  1055. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  1056. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  1057. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  1058. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  1059. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  1060. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  1061. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  1062. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  1063. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  1064. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  1065. package/dist/application-spec/generate-application/code/templates/webhook-implementation.d.ts +0 -1
  1066. package/dist/application-spec/generate-application/code/templates/webhook-implementation.js +0 -7
  1067. package/dist/configurator/assistant/index.d.ts +0 -1
  1068. package/dist/configurator/assistant/index.js +0 -1
  1069. package/dist/configurator/assistant/use-assistant-chat.d.ts +0 -30
  1070. package/dist/configurator/assistant/use-assistant-chat.js +0 -1
  1071. package/dist/configurator/ui/assistant/AssistantPanelProvider.d.ts +0 -42
  1072. package/dist/configurator/ui/assistant/AssistantPanelProvider.js +0 -1
  1073. package/dist/domain/actions/action-factory.d.ts +0 -10
  1074. package/dist/domain/actions/prepare-action-implementations.js +0 -5
  1075. package/dist/domain/application/element-registration.js +0 -1
  1076. package/dist/domain/application/handler-registration.js +0 -1
  1077. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -13
  1078. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  1079. package/dist/domain/application/resource-builder.d.ts +0 -13
  1080. package/dist/domain/application/resource-builder.js +0 -1
  1081. package/dist/domain/components/debug-state-component.js +0 -1
  1082. package/dist/domain/components/domain-component-optic.d.ts +0 -76
  1083. package/dist/domain/components/domain-component-optic.js +0 -16
  1084. package/dist/domain/components/drag-state-component.js +0 -1
  1085. package/dist/domain/components/export-state-component.js +0 -1
  1086. package/dist/domain/components/fullscreen-state-component.js +0 -1
  1087. package/dist/domain/components/group-components-by-entity-id-and-name.js +0 -1
  1088. package/dist/domain/components/hover-state-component.js +0 -1
  1089. package/dist/domain/components/index.d.ts +0 -2
  1090. package/dist/domain/components/index.js +0 -1
  1091. package/dist/domain/components/navigation-state-component.js +0 -1
  1092. package/dist/domain/components/selection-state-component.js +0 -1
  1093. package/dist/domain/components/system-component-builder.js +0 -1
  1094. package/dist/domain/components/system-virtual-entity.js +0 -1
  1095. package/dist/domain/components/tool-state-component.js +0 -1
  1096. package/dist/domain/components/view-state-component.js +0 -1
  1097. package/dist/domain/components/viewport-state-component.js +0 -1
  1098. package/dist/domain/core/expression.d.ts +0 -50
  1099. package/dist/domain/core/json-schema.js +0 -1
  1100. package/dist/domain/core/migrations.js +0 -1
  1101. package/dist/domain/core/reflection.js +0 -1
  1102. package/dist/domain/domain-context/recipe-system/recipes.d.ts +0 -57
  1103. package/dist/domain/domain-context/recipe-system/recipes.js +0 -1
  1104. package/dist/domain/expressions/constant-expressions.d.ts +0 -9
  1105. package/dist/domain/expressions/constant-expressions.js +0 -1
  1106. package/dist/domain/expressions/custom-expression.d.ts +0 -13
  1107. package/dist/domain/expressions/custom-expression.js +0 -1
  1108. package/dist/domain/expressions/index.d.ts +0 -1
  1109. package/dist/domain/expressions/index.js +0 -1
  1110. package/dist/domain/invariants/custom-invariants.d.ts +0 -22
  1111. package/dist/domain/invariants/custom-invariants.js +0 -1
  1112. package/dist/domain/invariants/invariants.d.ts +0 -68
  1113. package/dist/domain/invariants/invariants.js +0 -1
  1114. package/dist/domain/invariants/violation-component.js +0 -1
  1115. package/dist/domain/invariants/violation.js +0 -1
  1116. package/dist/domain/relations/all-of-type-relation.d.ts +0 -33
  1117. package/dist/domain/relations/all-of-type-relation.js +0 -1
  1118. package/dist/domain/relations/component-factories.js +0 -1
  1119. package/dist/domain/relations/composed-of.js +0 -1
  1120. package/dist/domain/relations/direct-relation.d.ts +0 -29
  1121. package/dist/domain/relations/indirect-relation.d.ts +0 -81
  1122. package/dist/domain/relations/indirect-relation.js +0 -1
  1123. package/dist/domain/relations/reference-component.js +0 -1
  1124. package/dist/domain/relations/relation-factory.d.ts +0 -19
  1125. package/dist/domain/relations/relation-factory.js +0 -1
  1126. package/dist/domain/relations/relation-implementation.d.ts +0 -8
  1127. package/dist/domain/system-components/angle-indicator.js +0 -1
  1128. package/dist/domain/system-components/attribute-switch.js +0 -1
  1129. package/dist/domain/system-components/autorotate-camera-component.js +0 -1
  1130. package/dist/domain/system-components/basic-sidebar-footer.js +0 -1
  1131. package/dist/domain/system-components/camera-based-hidden-entity-object.js +0 -1
  1132. package/dist/domain/system-components/camera-based-hidden-entity.js +0 -1
  1133. package/dist/domain/system-components/canvas-config.js +0 -1
  1134. package/dist/domain/system-components/canvas-custom-environment.js +0 -1
  1135. package/dist/domain/system-components/canvas-padding.js +0 -1
  1136. package/dist/domain/system-components/canvas-preset-environment.js +0 -1
  1137. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +0 -1
  1138. package/dist/domain/system-components/client-side-image.js +0 -1
  1139. package/dist/domain/system-components/color-value.js +0 -1
  1140. package/dist/domain/system-components/common/angle-indicator-schema.js +0 -1
  1141. package/dist/domain/system-components/common/dimension-indicator-schema.js +0 -1
  1142. package/dist/domain/system-components/custom-price-footer.js +0 -1
  1143. package/dist/domain/system-components/dimension-indicator.js +0 -1
  1144. package/dist/domain/system-components/editable-angle-indicator.js +0 -1
  1145. package/dist/domain/system-components/editable-distance-dimension-indicator.js +0 -1
  1146. package/dist/domain/system-components/editable-offset-indicator.js +0 -1
  1147. package/dist/domain/system-components/editable-size-indicator.js +0 -1
  1148. package/dist/domain/system-components/entity-header.js +0 -1
  1149. package/dist/domain/system-components/exit-tool-mode-fab.js +0 -1
  1150. package/dist/domain/system-components/finalize-action.js +0 -1
  1151. package/dist/domain/system-components/finalize-component.js +0 -1
  1152. package/dist/domain/system-components/fit-selection-orthographic-camera-component.js +0 -1
  1153. package/dist/domain/system-components/fit-selection-perspective-camera-component.js +0 -1
  1154. package/dist/domain/system-components/fixed-header.js +0 -1
  1155. package/dist/domain/system-components/floating-header.js +0 -1
  1156. package/dist/domain/system-components/hidden-header.js +0 -1
  1157. package/dist/domain/system-components/hidden-sidebar-footer.js +0 -1
  1158. package/dist/domain/system-components/horizontal-tabs.js +0 -1
  1159. package/dist/domain/system-components/list-selector-dimension-indicator.js +0 -1
  1160. package/dist/domain/system-components/multilingual-text-value.js +0 -1
  1161. package/dist/domain/system-components/navigation-steps.js +0 -1
  1162. package/dist/domain/system-components/offset-anchors.js +0 -1
  1163. package/dist/domain/system-components/offset-indicator.js +0 -1
  1164. package/dist/domain/system-components/offset.js +0 -1
  1165. package/dist/domain/system-components/other-action.js +0 -1
  1166. package/dist/domain/system-components/property-page.js +0 -1
  1167. package/dist/domain/system-components/read-sidebar-footer.js +0 -1
  1168. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +0 -1
  1169. package/dist/domain/system-components/rotatable.js +0 -1
  1170. package/dist/domain/system-components/rotation-handle.js +0 -1
  1171. package/dist/domain/system-components/save-template-thumbnail.js +0 -1
  1172. package/dist/domain/system-components/scene-entity-add-fab.js +0 -1
  1173. package/dist/domain/system-components/scene-entity-animation.js +0 -1
  1174. package/dist/domain/system-components/scene-entity-control.js +0 -1
  1175. package/dist/domain/system-components/scene-entity-delete-fab.js +0 -1
  1176. package/dist/domain/system-components/scene-entity-floor-object.js +0 -1
  1177. package/dist/domain/system-components/scene-entity-html-hotspot.js +0 -1
  1178. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +0 -1
  1179. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +0 -1
  1180. package/dist/domain/system-components/scene-entity-select-hotspot.js +0 -1
  1181. package/dist/domain/system-components/scene-entity-wall-object.js +0 -1
  1182. package/dist/domain/system-components/selectable-component.js +0 -1
  1183. package/dist/domain/system-components/sidebar-tabs.js +0 -1
  1184. package/dist/domain/system-components/simple-summary.js +0 -1
  1185. package/dist/domain/system-components/size.js +0 -1
  1186. package/dist/domain/system-components/sketching-draw.js +0 -1
  1187. package/dist/domain/system-components/sketching-edit.js +0 -1
  1188. package/dist/domain/system-components/summary-component.js +0 -1
  1189. package/dist/domain/system-components/text-value.js +0 -1
  1190. package/dist/domain/system-components/tool-controls.js +0 -1
  1191. package/dist/domain/system-components/tool-menu-fab.js +0 -1
  1192. package/dist/domain/system-components/universal-sidebar-footer.js +0 -1
  1193. package/dist/domain/system-components/view-controls.js +0 -1
  1194. package/dist/phoenix/application-spec/generate-assistant-prompt.d.ts +0 -12
  1195. package/dist/phoenix/application-spec/generate-assistant-prompt.js +0 -1
  1196. /package/dist/{domain/components/component-reader-types.js → application-spec/core/expressions/relation-expression-params.js} +0 -0
  1197. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  1198. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  1199. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
  1200. /package/dist/domain/{core/action.js → application/assistant/assistant-manifest.js} +0 -0
  1201. /package/dist/domain/{actions → core/action}/action-factory.js +0 -0
  1202. /package/dist/domain/core/{enhanced-json-schema.js → action/action.js} +0 -0
  1203. /package/dist/domain/core/{expression.js → component/component-reader-types.js} +0 -0
  1204. /package/dist/domain/{components → core/component}/legacy-filter.js +0 -0
  1205. /package/dist/domain/{components → core/component}/system-component-filter.js +0 -0
  1206. /package/dist/domain/{components → core/component}/system-virtual-entity.d.ts +0 -0
  1207. /package/dist/domain/{components → core/component}/updates.js +0 -0
  1208. /package/dist/domain/core/{schema-validator.js → data-schema/data-cell-value.js} +0 -0
  1209. /package/dist/domain/{relations/reference-field.js → core/data-schema/data-schema-array-field.js} +0 -0
  1210. /package/dist/domain/{relations/relation-implementation.js → core/data-schema/data-schema-field-object.js} +0 -0
  1211. /package/dist/domain/{invariants → core/invariant}/builtin-invariant.js +0 -0
  1212. /package/dist/domain/{invariants → core/invariant}/violation-component.d.ts +0 -0
  1213. /package/dist/domain/core/{alias.d.ts → model/alias.d.ts} +0 -0
  1214. /package/dist/domain/core/{alias.js → model/alias.js} +0 -0
  1215. /package/dist/domain/core/{common-definitions.d.ts → model/common-definitions.d.ts} +0 -0
  1216. /package/dist/domain/core/{common-definitions.js → model/common-definitions.js} +0 -0
  1217. /package/dist/domain/core/{component.js → model/component.js} +0 -0
  1218. /package/dist/domain/core/{model.js → model/model.js} +0 -0
  1219. /package/dist/domain/core/{preset.d.ts → model/preset.d.ts} +0 -0
  1220. /package/dist/domain/core/{preset.js → model/preset.js} +0 -0
  1221. /package/dist/domain/{relations → core/relation}/direct-relation.js +0 -0
  1222. /package/dist/domain/core/{schema-validator-ajv.d.ts → schema/create-ajv-schema-validator.d.ts} +0 -0
  1223. /package/dist/domain/core/{schema-validator-ajv.js → schema/create-ajv-schema-validator.js} +0 -0
  1224. /package/dist/domain/core/{schema-validator-csp.d.ts → schema/create-csp-schema-validator.d.ts} +0 -0
  1225. /package/dist/domain/core/{schema-validator-csp.js → schema/create-csp-schema-validator.js} +0 -0
  1226. /package/dist/domain/core/{enhanced-json-schema.d.ts → schema/enhanced-json-schema.d.ts} +0 -0
  1227. /package/dist/domain/core/{json-schema.d.ts → schema/extended-schema-validator.d.ts} +0 -0
  1228. /package/dist/domain/core/{schema-validator.d.ts → schema/schema-validator.d.ts} +0 -0
  1229. /package/dist/domain/core/{state.js → state/state.js} +0 -0
  1230. /package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.js +0 -0
  1231. /package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.js +0 -0
  1232. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.d.ts +0 -0
  1233. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.d.ts +0 -0
  1234. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.d.ts +0 -0
  1235. /package/dist/domain/{system-components → extensions}/color-value.d.ts +0 -0
  1236. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.d.ts +0 -0
  1237. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.js +0 -0
  1238. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.d.ts +0 -0
  1239. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.js +0 -0
  1240. /package/dist/domain/{system-components → extensions}/custom-price-footer.d.ts +0 -0
  1241. /package/dist/domain/{system-components → extensions}/finalize-component.d.ts +0 -0
  1242. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.d.ts +0 -0
  1243. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.d.ts +0 -0
  1244. /package/dist/domain/{system-components → extensions}/multilingual-text-value.d.ts +0 -0
  1245. /package/dist/domain/{system-components → extensions}/rotatable.d.ts +0 -0
  1246. /package/dist/domain/{system-components → extensions}/scene-entity-animation.d.ts +0 -0
  1247. /package/dist/domain/{system-components → extensions}/scene-entity-control.d.ts +0 -0
  1248. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.d.ts +0 -0
  1249. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.d.ts +0 -0
  1250. /package/dist/domain/{system-components → extensions}/selectable-component.d.ts +0 -0
  1251. /package/dist/domain/{system-components → extensions}/simple-summary.d.ts +0 -0
  1252. /package/dist/domain/{system-components → extensions}/summary-component.d.ts +0 -0
  1253. /package/dist/domain/{system-components → extensions}/text-value.d.ts +0 -0
  1254. /package/dist/domain/{system-components → extensions}/tool-controls.d.ts +0 -0
  1255. /package/dist/domain/{system-components → extensions}/view-controls.d.ts +0 -0
@@ -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 {
@@ -3,9 +3,15 @@ export interface AssistantToolChipsProps {
3
3
  readonly tools: readonly AssistantToolItem[];
4
4
  /** True while the reply runs and this row is its newest block: the assistant is at work on it. */
5
5
  readonly isActive: boolean;
6
+ /** True when the row offers Undo: no reply runs, and the step of the undo history the configuration is at is one of its changes. */
7
+ readonly canUndo: boolean;
8
+ /** Undoes the changes of the given tool calls while one of them is the step the configuration is at. */
9
+ readonly onUndo: (toolCallIds: ReadonlySet<string>) => void;
6
10
  }
7
11
  /**
8
12
  * 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.
13
+ * the input and the result of its call to the console. While one of the row's changes is the step
14
+ * of the undo history the configuration is at, an Undo after the notes takes the row's changes
15
+ * back, up to a change the user made in between.
10
16
  */
11
- export declare const AssistantToolChips: import("react").MemoExoticComponent<({ tools, isActive }: AssistantToolChipsProps) => import("react/jsx-runtime").JSX.Element>;
17
+ export declare const AssistantToolChips: import("react").MemoExoticComponent<({ tools, isActive, canUndo, onUndo }: AssistantToolChipsProps) => import("react/jsx-runtime").JSX.Element>;
@@ -1 +1 @@
1
- import{jsx as t,jsxs as e}from"react/jsx-runtime";import{Tooltip as a,styled as i}from"@mui/material";import{memo as n,useCallback as s}from"react";import{match as o}from"ts-pattern";import{useLocalizable as r}from"#package/react-sdk";import{PhxIcon as l}from"#package/ui-sdk";import{AssistantPanelName as d}from"./theme.js";let c={id:"sdk.assistant.tool.updateDesign.label",message:"Update design"},m={id:"sdk.assistant.tool.readDesign.label",message:"Read design"},p={id:"sdk.assistant.tool.mistake.hint",message:"The assistant made a mistake."},h=i("div",{name:d,slot:"chips"})(({theme:{palette:t,spacing:e,typography:a}})=>({...a.caption,alignItems:"start",color:t.text.secondary,display:"grid",gap:e(.75),gridTemplateColumns:"min-content minmax(0, 1fr)"})),g=i("span",{name:d,slot:"activity"})(({theme:{typography:t}})=>({blockSize:`calc(${t.caption.lineHeight} * 1em)`,display:"grid",placeItems:"center"})),f=i(l,{name:d,slot:"activityIcon"})({fontSize:14,'[data-chips="active"] &':{animation:"phx-assistant-turn 2.4s linear infinite","@media (prefers-reduced-motion: reduce)":{animation:"none"}},"@keyframes phx-assistant-turn":{to:{rotate:"360deg"}}}),k=i("span",{name:d,slot:"chip"})(({theme:{palette:t,spacing:e}})=>({cursor:"default",display:"inline-block",whiteSpace:"nowrap","&:not(:last-child)::after":{color:t.text.secondary,content:'"\xb7"',display:"inline-block",marginInline:e(.75),textDecoration:"none"},'&[data-chip="failed"]':{color:t.error.main},'&[data-chip="flawed"]':{textDecoration:"line-through",textDecorationColor:t.error.main}})),u=n(({tool:e})=>{let{chip:i,input:n,result:l}=e,d=r(c),h=r(m),g=r(p),f=o(i.label).with({kind:"text"},({text:t})=>t).with({kind:"updateDesign"},()=>d).with({kind:"readDesign"},()=>h).exhaustive(),u=s(()=>{console.info(`Assistant tool call "${f}"`,{input:n,result:l})},[n,f,l]);return t(a,{title:"failed"===i.state||"flawed"===i.state?g:"",placement:"top-start",children:t(k,{onClick:u,"data-chip":i.state,children:f})})});export const AssistantToolChips=n(({tools:a,isActive:i})=>e(h,{"data-chips":i?"active":"done","aria-busy":i,children:[t(g,{children:t(f,{name:"Gear"})}),t("div",{children:a.map(e=>t(u,{tool:e},e.id))})]}));
1
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import{ButtonBase as i,Tooltip as a,styled as n}from"@mui/material";import{memo as o,useCallback as s}from"react";import{match as r}from"ts-pattern";import{useLocalizable as d}from"#package/react-sdk";import{PhxIcon as l}from"#package/ui-sdk";import{AssistantPanelName as m}from"./theme.js";let c={id:"sdk.assistant.tool.updateDesign.label",message:"Update design"},p={id:"sdk.assistant.tool.readDesign.label",message:"Read design"},h={id:"sdk.assistant.tool.mistake.hint",message:"The assistant made a mistake."},u={id:"sdk.assistant.tool.cancelled.hint",message:"Stopped before it finished."},f={id:"sdk.assistant.tool.noResult.hint",message:"The result of this step was lost. It may or may not have been done."},g={id:"sdk.assistant.tool.toolBudget.hint",message:"Not done: the assistant reached its limit of steps for one message."},k={id:"sdk.assistant.tool.undo.label",message:"Undo"},x=n("div",{name:m,slot:"chips"})(({theme:{palette:e,spacing:t,typography:i}})=>({...i.caption,alignItems:"start",color:e.text.secondary,display:"grid",gap:t(.75),gridTemplateColumns:"min-content minmax(0, 1fr)"})),y=n("span",{name:m,slot:"activity"})(({theme:{typography:e}})=>({blockSize:`calc(${e.caption.lineHeight} * 1em)`,display:"grid",placeItems:"center"})),w=n(l,{name:m,slot:"activityIcon"})({fontSize:14,'[data-chips="active"] &':{animation:"phx-assistant-turn 2.4s linear infinite","@media (prefers-reduced-motion: reduce)":{animation:"none"}},"@keyframes phx-assistant-turn":{to:{rotate:"360deg"}}}),b=n("span",{name:m,slot:"chip"})(({theme:{palette:e,spacing:t}})=>({cursor:"default",display:"inline-block",whiteSpace:"nowrap","&:not(:last-of-type)::after":{color:e.text.secondary,content:'"\xb7"',display:"inline-block",marginInline:t(.75),textDecoration:"none"},'&[data-chip="failed"]':{color:e.error.main},'&[data-chip="flawed"]':{textDecoration:"line-through",textDecorationColor:e.error.main}})),v=n(i,{name:m,slot:"undoButton"})(({theme:{palette:e,shape:t,spacing:i}})=>({alignItems:"center",animation:"phx-assistant-undo-in 150ms ease-out",borderRadius:t.borderRadius,color:e.primary.main,display:"inline-flex",font:"inherit",gap:i(.5),marginInlineStart:i(1),verticalAlign:"top","&:hover":{textDecoration:"underline"},"@media (prefers-reduced-motion: reduce)":{animation:"none"},"@keyframes phx-assistant-undo-in":{from:{opacity:0}}})),C=o(({tool:t})=>{let{chip:i,input:n,result:o}=t,l=d(c),m=d(p),k=d(h),x=d(u),y=d(f),w=d(g),v=r(i.label).with({kind:"text"},({text:e})=>e).with({kind:"updateDesign"},()=>l).with({kind:"readDesign"},()=>m).exhaustive(),C=s(()=>{console.info(`Assistant tool call "${v}"`,{input:n,result:o})},[n,v,o]);return e(a,{title:r(i).with({errorCode:"cancelled"},()=>x).with({errorCode:"no_result"},()=>y).with({errorCode:"tool_budget"},()=>w).with({state:"failed"},{state:"flawed"},()=>k).otherwise(()=>""),placement:"top-start",children:e(b,{onClick:C,"data-chip":i.state,children:v})})});export const AssistantToolChips=o(({tools:i,isActive:a,canUndo:n,onUndo:o})=>{let r=d(k),m=s(()=>{o(new Set(i.map(({id:e})=>e)))},[o,i]);return t(x,{"data-chips":a?"active":"done","aria-busy":a,children:[e(y,{children:e(w,{name:"Gear"})}),t("div",{children:[i.map(t=>e(C,{tool:t},t.id)),n&&t(v,{onClick:m,children:[e(l,{name:"ArrowCounterClockwise",fontSize:"inherit"}),r]})]})]})});
@@ -1,11 +1,7 @@
1
- import type { AssistantChatState } from '../../assistant/index.js';
2
- export interface AssistantComposerProps {
3
- readonly chat: AssistantChatState | undefined;
4
- readonly onFocusChange: (isFocused: boolean) => void;
5
- }
6
1
  /**
7
2
  * The message input of the panel. Enter sends and Shift+Enter adds a line. While a reply runs the
8
3
  * send control is a Stop control and the input stays editable, so the next message can be written.
9
- * A thread this session may not continue disables the input and says why.
4
+ * A thread this session may not continue takes a message like any other: it is resumed first, with
5
+ * the input read-only meanwhile, and the message stays in the input when that fails.
10
6
  */
11
- export declare const AssistantComposer: ({ chat, onFocusChange }: AssistantComposerProps) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const AssistantComposer: () => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- import{jsx as e,jsxs as a}from"react/jsx-runtime";import{Trans as r}from"@lingui/react";import{IconButton as o,InputBase as i,Tooltip as t,styled as n}from"@mui/material";import{useCallback as s,useRef as d,useState as l}from"react";import{useLocalizable as m}from"#package/react-sdk";import{PhxIcon as c,useResponsive as p}from"#package/ui-sdk";import{AssistantPanelName as u}from"./theme.js";let b={id:"sdk.assistant.composer.placeholder",message:"Ask or tell me what to change…"},g={id:"sdk.assistant.composer.send.label",message:"Send"},h={id:"sdk.assistant.composer.stop.label",message:"Stop"},k=n("form",{name:u,slot:"composer"})(({theme:{palette:e,spacing:a}})=>({borderBlockStart:`1px solid ${e.divider}`,display:"grid",gap:a(.75),paddingBlock:a(1.25),paddingInline:`var(--phx-sidebar-padding, ${a(2)})`})),f=n("div",{name:u,slot:"inputFrame"})(({theme:{palette:e,spacing:a}})=>({alignItems:"flex-end",border:`1px solid ${e.divider}`,borderRadius:12,display:"flex",gap:a(1),paddingBlock:a(.5),paddingInline:`${a(1.5)} ${a(.5)}`,"&:focus-within":{borderColor:e.primary.main},"&:has(textarea:disabled)":{background:e.action.disabledBackground}})),x=n(i,{name:u,slot:"input"})(({theme:{spacing:e,typography:a}})=>({...a.body2,flex:1,paddingBlock:e(.75)})),v=n(o,{name:u,slot:"sendButton"})(({theme:{palette:e}})=>({background:e.primary.main,borderRadius:8,color:e.primary.contrastText,"&:hover":{background:e.primary.dark},"&.Mui-disabled":{background:e.action.disabledBackground,color:e.action.disabled}})),y=n(o,{name:u,slot:"stopButton"})(({theme:{palette:e}})=>({background:e.text.primary,borderRadius:8,color:e.background.paper,"&:hover":{background:e.text.secondary}})),B=n("span")({background:"currentColor",blockSize:10,borderRadius:2,inlineSize:10,margin:5}),C=n("div",{name:u,slot:"hint"})(({theme:{palette:e,typography:a}})=>({...a.caption,color:e.text.secondary}));export const AssistantComposer=({chat:o,onFocusChange:i})=>{let[n,u]=l(""),R=d(null),{isDesktop:S}=p(),w=m(b),z=m(g),$=m(h),j=o?.isLoading??!1,I=o?.isContinuable??!0,A=n.trim(),D=null!=o&&I&&!j&&A.length>0,P=s(()=>{o&&D&&(u(""),o.send(A),S||R.current?.blur())},[D,o,A,S]),T=s(e=>{e.preventDefault(),P()},[P]),E=s(e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),P())},[P]),F=s(()=>{o?.stop()},[o]);return a(k,{onSubmit:T,children:[!I&&e(C,{role:"status",children:e(r,{id:"sdk.assistant.composer.notContinuable",message:"This conversation can be read here, but it can no longer be continued."})}),a(f,{children:[e(x,{multiline:!0,maxRows:6,placeholder:w,value:n,disabled:!I,inputRef:R,onChange:e=>u(e.target.value),onKeyDown:E,onFocus:()=>i(!0),onBlur:()=>i(!1),inputProps:{"aria-label":w}}),j?e(t,{title:$,placement:"top",children:e(y,{size:"small","aria-label":$,onClick:F,children:e(B,{})})}):e(t,{title:z,placement:"top",children:e("span",{children:e(v,{type:"submit",size:"small","aria-label":z,disabled:!D,children:e(c,{name:"PaperPlaneRightBold",fontSize:"small"})})})})]}),e(C,{children:e(r,{id:"sdk.assistant.composer.disclaimer",message:"AI can be wrong. Check the result."})})]})};
1
+ import{jsx as e,jsxs as a}from"react/jsx-runtime";import{Trans as r}from"@lingui/react";import{IconButton as i,InputBase as o,Tooltip as t,styled as n}from"@mui/material";import{useCallback as s,useRef as l,useState as d}from"react";import{useEagerObservableSelector as m,useLocalizable as p}from"#package/react-sdk";import{PhxIcon as c,useResponsive as u}from"#package/ui-sdk";import{useConfigurator as g}from"../../application-runtime/index.js";import{AssistantPanelName as h}from"./theme.js";let b={id:"sdk.assistant.composer.placeholder",message:"Ask or tell me what to change…"},k={id:"sdk.assistant.composer.send.label",message:"Send"},f={id:"sdk.assistant.composer.stop.label",message:"Stop"},y=n("form",{name:h,slot:"composer"})(({theme:{palette:e,spacing:a}})=>({borderBlockStart:`1px solid ${e.divider}`,display:"grid",gap:a(.75),paddingBlock:a(1.25),paddingInline:`var(--phx-sidebar-padding, ${a(2)})`})),x=n("div",{name:h,slot:"inputFrame"})(({theme:{palette:e,spacing:a}})=>({alignItems:"flex-end",border:`1px solid ${e.divider}`,borderRadius:12,display:"flex",gap:a(1),paddingBlock:a(.5),paddingInline:`${a(1.5)} ${a(.5)}`,"&:focus-within":{borderColor:e.primary.main}})),v=n(o,{name:h,slot:"input"})(({theme:{spacing:e,typography:a}})=>({...a.body2,flex:1,paddingBlock:e(.75)})),R=n(i,{name:h,slot:"sendButton"})(({theme:{palette:e}})=>({background:e.primary.main,borderRadius:8,color:e.primary.contrastText,"&:hover":{background:e.primary.dark},"&.Mui-disabled":{background:e.action.disabledBackground,color:e.action.disabled}})),B=n(i,{name:h,slot:"stopButton"})(({theme:{palette:e}})=>({background:e.text.primary,borderRadius:8,color:e.background.paper,"&:hover":{background:e.text.secondary}})),C=n("span")({background:"currentColor",blockSize:10,borderRadius:2,inlineSize:10,margin:5}),S=n("div",{name:h,slot:"hint"})(({theme:{palette:e,typography:a}})=>({...a.caption,color:e.text.secondary}));export const AssistantComposer=()=>{let{assistantSystem:i}=g(),[o,n]=d(""),h=l(null),{isDesktop:w}=u(),I=p(b),$=p(k),j=p(f),{isReplying:z,isResuming:F}=m(i.chat$,e=>({isReplying:e.isLoading,isResuming:e.isResuming}),[]),A=o.trim(),D=!z&&!F&&A.length>0,P=s(async()=>{!D||(w||h.current?.blur(),await i.resume()&&(n(""),i.send(A)))},[i,D,A,w]),E=s(e=>{e.preventDefault(),P()},[P]),K=s(e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),P())},[P]),T=s(()=>{i.stop()},[i]);return a(y,{onSubmit:E,children:[a(x,{children:[e(v,{multiline:!0,maxRows:6,placeholder:I,value:o,readOnly:F,inputRef:h,onChange:e=>n(e.target.value),onKeyDown:K,onFocus:()=>i.setInputFocused(!0),onBlur:()=>i.setInputFocused(!1),inputProps:{"aria-label":I}}),z?e(t,{title:j,placement:"top",children:e(B,{size:"small","aria-label":j,onClick:T,children:e(C,{})})}):e(t,{title:$,placement:"top",children:e("span",{children:e(R,{type:"submit",size:"small","aria-label":$,disabled:!D,children:e(c,{name:"PaperPlaneRightBold",fontSize:"small"})})})})]}),e(S,{children:e(r,{id:"sdk.assistant.composer.disclaimer",message:"AI can be wrong. Check the result."})})]})};
@@ -3,5 +3,5 @@ export interface AssistantMarkdownProps {
3
3
  /** True while the text is still arriving, so markup the model has not finished is completed. */
4
4
  readonly isStreaming: boolean;
5
5
  }
6
- /** Assistant text of the thread: Markdown with lists, tables, links and code, without a bubble. */
6
+ /** Assistant text of the thread: Markdown with lists, tables, links, entity links and code, without a bubble. */
7
7
  export declare const AssistantMarkdown: import("react").MemoExoticComponent<({ markdown, isStreaming }: AssistantMarkdownProps) => import("react/jsx-runtime").JSX.Element>;
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import{styled as e}from"@mui/material";import{memo as o}from"react";import a from"react-markdown";import i from"remark-gfm";import{completeStreamedMarkdown as n}from"./streamed-markdown.js";import{AssistantPanelName as t}from"./theme.js";let l=e("div",{name:t,slot:"assistantMessage"})(({theme:{palette:r,shape:e,spacing:o,typography:a}})=>({overflowWrap:"anywhere","& > :first-child":{marginBlockStart:0},"& > :last-child":{marginBlockEnd:0},"p, ul, ol, pre, blockquote":{marginBlock:o(1)},"h1, h2, h3, h4, h5, h6":{...a.subtitle2,marginBlock:o(1.5,.5)},"ul, ol":{paddingInlineStart:o(2.5)},a:{color:r.primary.main},code:{background:r.action.hover,borderRadius:e.borderRadius/2,fontFamily:"ui-monospace, Menlo, monospace",fontSize:"0.9em",paddingInline:o(.5)},pre:{background:r.action.hover,borderRadius:e.borderRadius,overflowX:"auto",padding:o(1),code:{background:"none",padding:0}},blockquote:{borderInlineStart:`2px solid ${r.divider}`,color:r.text.secondary,marginInline:0,paddingInlineStart:o(1.5)},"th, td":{borderBlockEnd:`1px solid ${r.divider}`,padding:o(.5,1),textAlign:"start",verticalAlign:"top"}})),d=e("div")({overflowX:"auto",table:{borderCollapse:"collapse",inlineSize:"100%"}}),m={a:({node:e,children:o,...a})=>r("a",{...a,target:"_blank",rel:"noopener noreferrer",children:o}),table:({node:e,children:o,...a})=>r(d,{children:r("table",{...a,children:o})})},s=[i],c=["img"];export const AssistantMarkdown=o(({markdown:e,isStreaming:o})=>r(l,{children:r(a,{components:m,remarkPlugins:s,disallowedElements:c,children:o?n(e):e})}));
1
+ import{jsx as r,Fragment as e}from"react/jsx-runtime";import{styled as o}from"@mui/material";import{memo as n}from"react";import i,{defaultUrlTransform as a}from"react-markdown";import t from"remark-gfm";import{AssistantEntityLink as l,isEntityLinkHref as d,parseEntityLinkTarget as m}from"./entity-link/index.js";import{completeStreamedMarkdown as s}from"./streamed-markdown.js";import{AssistantPanelName as c}from"./theme.js";let p=o("div",{name:c,slot:"assistantMessage"})(({theme:{palette:r,shape:e,spacing:o,typography:n}})=>({overflowWrap:"anywhere","& > :first-child":{marginBlockStart:0},"& > :last-child":{marginBlockEnd:0},"p, ul, ol, pre, blockquote":{marginBlock:o(1)},"h1, h2, h3, h4, h5, h6":{...n.subtitle2,marginBlock:o(1.5,.5)},"ul, ol":{paddingInlineStart:o(2.5)},a:{color:r.primary.main},code:{background:r.action.hover,borderRadius:e.borderRadius/2,fontFamily:"ui-monospace, Menlo, monospace",fontSize:"0.9em",paddingInline:o(.5)},pre:{background:r.action.hover,borderRadius:e.borderRadius,overflowX:"auto",padding:o(1),code:{background:"none",padding:0}},blockquote:{borderInlineStart:`2px solid ${r.divider}`,color:r.text.secondary,marginInline:0,paddingInlineStart:o(1.5)},"th, td":{borderBlockEnd:`1px solid ${r.divider}`,padding:o(.5,1),textAlign:"start",verticalAlign:"top"}})),u=o("div")({overflowX:"auto",table:{borderCollapse:"collapse",inlineSize:"100%"}}),g={a:({node:o,children:n,href:i,...a})=>{if(null==i||!d(i))return r("a",{...a,href:i,target:"_blank",rel:"noopener noreferrer",children:n});let t=m(i);return null==t?r(e,{children:n}):r(l,{id:t,children:n})},table:({node:e,children:o,...n})=>r(u,{children:r("table",{...n,children:o})})},h=[t],f=r=>d(r)?r:a(r),b=["img"];export const AssistantMarkdown=n(({markdown:e,isStreaming:o})=>r(p,{children:r(i,{components:g,remarkPlugins:h,disallowedElements:b,urlTransform:f,children:o?s(e):e})}));
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t}from"react/jsx-runtime";import{IconButton as a,Tooltip as s,Typography as n,styled as r}from"@mui/material";import{useCallback as o}from"react";import{useLocalizable as i}from"#package/react-sdk";import{PhxIcon as l}from"#package/ui-sdk";import{AssistantComposer as d}from"./AssistantComposer.js";import{useAssistantPanel as m,useAssistantPanelConversation as p}from"./AssistantPanelProvider.js";import{AssistantThread as c}from"./AssistantThread.js";import{AssistantPanelName as h}from"./theme.js";let u={id:"sdk.assistant.panel.title",message:"Assistant"},g={id:"sdk.assistant.panel.close.label",message:"Close assistant"};export const ASSISTANT_PANEL_SLOT="slot[assistant]";let b=r("section",{name:h,slot:"root"})(({theme:{palette:e}})=>({background:`var(--phx-sidebar-background, ${e.background.paper})`,border:"var(--phx-sidebar-border, 0)",borderRadius:"inherit",display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gridTemplateRows:"min-content minmax(0, 1fr) min-content",inset:0,overflow:"hidden",position:"absolute",zIndex:1})),f=r("header",{name:h,slot:"header"})(({theme:{palette:e,spacing:t}})=>({alignItems:"center",borderBlockEnd:`1px solid ${e.divider}`,display:"flex",gap:t(1),justifyContent:"space-between",paddingBlock:t(1),paddingInline:`var(--phx-sidebar-padding, ${t(2)}) ${t(1)}`})),x=r(n,{name:h,slot:"title"})({fontWeight:600}),k=r(a,{name:h,slot:"closeButton"})({}),j=e=>{e.target instanceof Element&&e.target.closest("button")&&e.preventDefault()};export const AssistantPanel=()=>{let a=m(),n=p(),r=i(u),h=i(g),v=a?.setOpen,A=o(()=>{v?.(!1)},[v]);return a?.open&&n?t(b,{"data-sidebar":"slot[assistant]","aria-label":r,onMouseDown:j,children:[t(f,{children:[e(x,{variant:"subtitle1",component:"h2",children:r}),e(s,{title:h,placement:"top",children:e(k,{size:"small","aria-label":h,onClick:A,children:e(l,{name:"X"})})})]}),e(c,{chat:n.chat,onRetry:n.reloadThread}),e(d,{chat:n.chat,onFocusChange:a.setInputFocused})]}):null};
1
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import{IconButton as s,Tooltip as a,Typography as i,styled as n}from"@mui/material";import{useCallback as r}from"react";import{useLocalizable as o}from"#package/react-sdk";import{PhxIcon as l}from"#package/ui-sdk";import{useConfigurator as m}from"../../application-runtime/index.js";import{AssistantComposer as d}from"./AssistantComposer.js";import{AssistantThread as p}from"./AssistantThread.js";import{AssistantPanelName as c}from"./theme.js";import{useIsAssistantPanelOpen as u}from"./use-is-assistant-panel-open.js";let b={id:"sdk.assistant.panel.title",message:"Assistant"},f={id:"sdk.assistant.panel.close.label",message:"Close assistant"};export const ASSISTANT_PANEL_SLOT="slot[assistant]";let g=n("section",{name:c,slot:"root"})(({theme:{palette:e}})=>({background:`var(--phx-sidebar-background, ${e.background.paper})`,border:"var(--phx-sidebar-border, 0)",borderRadius:"inherit",display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gridTemplateRows:"min-content minmax(0, 1fr) min-content",inset:0,overflow:"hidden",position:"absolute",zIndex:1})),h=n("header",{name:c,slot:"header"})(({theme:{palette:e,spacing:t}})=>({alignItems:"center",borderBlockEnd:`1px solid ${e.divider}`,display:"flex",gap:t(1),justifyContent:"space-between",paddingBlock:t(1),paddingInline:`var(--phx-sidebar-padding, ${t(2)}) ${t(1)}`})),x=n(i,{name:c,slot:"title"})({fontWeight:600}),k=n(s,{name:c,slot:"closeButton"})({}),j=e=>{e.target instanceof Element&&e.target.closest("button")&&e.preventDefault()};export const AssistantPanel=()=>{let{assistantSystem:s}=m(),i=u(),n=o(b),c=o(f),v=r(()=>{s.setOpen(!1)},[s]);return i?t(g,{"data-sidebar":"slot[assistant]","aria-label":n,onMouseDown:j,children:[t(h,{children:[e(x,{variant:"subtitle1",component:"h2",children:n}),e(a,{title:c,placement:"top",children:e(k,{size:"small","aria-label":c,onClick:v,children:e(l,{name:"X"})})})]}),e(p,{}),e(d,{})]}):null};
@@ -1,11 +1,10 @@
1
- import type { AssistantChatState } from '../../assistant/index.js';
2
- export interface AssistantThreadProps {
3
- readonly chat: AssistantChatState | undefined;
4
- readonly onRetry: () => void;
5
- }
6
1
  /**
7
2
  * The conversation: user bubbles, assistant Markdown, tool chips, and what the panel
8
- * has to say itself, which is a greeting for an empty thread, a "Thinking…" line and a failure with
9
- * its way out. It follows a streaming reply until the user scrolls up.
3
+ * has to say itself, which is a line while the thread loads, a greeting for an empty thread, a
4
+ * "Thinking…" line and a failure with its way out. It follows a streaming reply until the user scrolls up.
5
+ *
6
+ * A conversation the assistant continued from a summary is painted whole: the threads that were
7
+ * closed come first, each ended by a separator, and the ones still on the server are loaded one at a
8
+ * time from a control above them.
10
9
  */
11
- export declare const AssistantThread: ({ chat, onRetry }: AssistantThreadProps) => import("react/jsx-runtime").JSX.Element;
10
+ export declare const AssistantThread: () => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- import{jsx as e,jsxs as i}from"react/jsx-runtime";import{Trans as a}from"@lingui/react";import{Button as s,styled as t}from"@mui/material";import{useMemo as n}from"react";import{match as r}from"ts-pattern";import{PhxIcon as o}from"#package/ui-sdk";import{AssistantToolChips as l}from"./AssistantChips.js";import{AssistantMarkdown as d}from"./AssistantMarkdown.js";import{describeAssistantFailure as m}from"./assistant-failure.js";import{AssistantPanelName as p}from"./theme.js";import{buildThreadView as h}from"./thread-items.js";import{useFollowStream as c}from"./use-follow-stream.js";let g=t("div",{name:p,slot:"thread"})({display:"grid",position:"relative"}),u=t("div",{name:p,slot:"messages"})(({theme:{spacing:e,typography:i}})=>({...i.body2,display:"flex",flexDirection:"column",gap:e(1.5),overflowY:"auto",overscrollBehavior:"contain",paddingBlock:e(2),paddingInline:`var(--phx-sidebar-padding, ${e(2)})`,"& > :first-child":{marginBlockStart:"auto"}})),f=t("div",{name:p,slot:"userMessage"})(({theme:{palette:e,spacing:i}})=>({alignSelf:"flex-end",background:`hsl(from ${e.primary.main} h s l / 12%)`,borderRadius:"14px 14px 4px 14px",maxInlineSize:"85%",overflowWrap:"anywhere",paddingBlock:i(1),paddingInline:i(1.5),whiteSpace:"pre-wrap"})),k=t("div",{name:p,slot:"greeting"})({}),v=t("div",{name:p,slot:"status"})(({theme:{palette:e,typography:i}})=>({...i.caption,color:e.text.secondary})),w=t("div",{name:p,slot:"notice"})(({theme:{palette:e,shape:i,spacing:a}})=>({alignItems:"center",background:e.action.hover,borderRadius:i.borderRadius,display:"flex",flexWrap:"wrap",gap:a(1),justifyContent:"space-between",paddingBlock:a(1),paddingInline:a(1.5)})),b=t(s,{name:p,slot:"newReplyButton"})(({theme:{palette:e,spacing:i}})=>({background:e.text.primary,borderRadius:"calc(infinity * 1px)",color:e.background.paper,insetBlockEnd:i(1),insetInlineStart:"50%",position:"absolute",translate:"-50% 0","&:hover":{background:e.text.secondary}})),x=({item:i,isActive:a})=>r(i).with({kind:"user"},({text:i})=>e(f,{children:i})).with({kind:"text"},({markdown:i,isStreaming:a})=>e(d,{markdown:i,isStreaming:a})).with({kind:"tools"},({tools:i})=>e(l,{tools:i,isActive:a})).exhaustive();export const AssistantThread=({chat:t,onRetry:l})=>{let d=t?.messages,p=t?.isLoading??!1,{items:f,isThinking:y}=n(()=>h(d??[],p),[d,p]),j=n(()=>f.filter(({kind:e})=>"user"===e).length,[f]),I=t?.error?m(t.failedStatus):void 0,{scrollerRef:S,hasUnseenContent:T,handleScroll:A,scrollToEnd:B}=c(n(()=>({messages:d,isThinking:y,failure:I?.kind}),[d,y,I?.kind]),j);return i(g,{children:[i(u,{ref:S,onScroll:A,role:"log","aria-live":"polite",children:[t?.isLoaded===!0&&0===f.length&&!p&&!I&&e(k,{children:e(a,{id:"sdk.assistant.thread.greeting",message:"Hi. I can answer questions about this design and change it with you. Tell me what you need."})}),f.map(i=>e(x,{item:i,isActive:p&&i===f.at(-1)},i.id)),y&&e(v,{children:e(a,{id:"sdk.assistant.thread.thinking",message:"Thinking…"})}),I&&i(w,{role:"alert",children:[e("span",{children:r(I.kind).with("notAvailable",()=>e(a,{id:"sdk.assistant.failure.notAvailable",message:"The assistant is not available here."})).with("busy",()=>e(a,{id:"sdk.assistant.failure.busy",message:"The assistant is still working on an earlier message."})).with("unavailable",()=>e(a,{id:"sdk.assistant.failure.unavailable",message:"The assistant is unavailable right now."})).exhaustive()}),I.canRetry&&e(s,{size:"small",variant:"outlined",color:"inherit",onClick:l,children:e(a,{id:"sdk.assistant.failure.retry.label",message:"Try again"})})]})]}),T&&e(b,{size:"small",onClick:B,endIcon:e(o,{name:"CaretDown"}),children:e(a,{id:"sdk.assistant.thread.newReply.label",message:"New reply"})})]})};
1
+ import{jsx as e,jsxs as a}from"react/jsx-runtime";import{Trans as i}from"@lingui/react";import{Button as t,styled as s}from"@mui/material";import{useCallback as r,useMemo as n}from"react";import{match as o}from"ts-pattern";import{useEagerObservableValue as l}from"#package/react-sdk";import{PhxIcon as d}from"#package/ui-sdk";import{useConfigurator as m}from"../../application-runtime/index.js";import{AssistantToolChips as c}from"./AssistantChips.js";import{AssistantMarkdown as h}from"./AssistantMarkdown.js";import{describeAssistantFailure as p}from"./assistant-failure.js";import{EntityLinkSelectionProvider as g,useCreateEntityLinkSelection as u}from"./entity-link/index.js";import{AssistantPanelName as k}from"./theme.js";import{buildEarlierThreadItems as f,buildThreadView as v}from"./thread-items.js";import{useFollowStream as b}from"./use-follow-stream.js";let w=s("div",{name:k,slot:"thread"})({display:"grid",position:"relative"}),x=s("div",{name:k,slot:"messages"})(({theme:{spacing:e,typography:a}})=>({...a.body2,display:"flex",flexDirection:"column",gap:e(1.5),overflowY:"auto",overscrollBehavior:"contain",paddingBlock:e(2),paddingInline:`var(--phx-sidebar-padding, ${e(2)})`,"& > :first-child":{marginBlockStart:"auto"}})),y=s("div",{name:k,slot:"userMessage"})(({theme:{palette:e,spacing:a}})=>({alignSelf:"flex-end",background:`hsl(from ${e.primary.main} h s l / 12%)`,borderRadius:"14px 14px 4px 14px",maxInlineSize:"85%",overflowWrap:"anywhere",paddingBlock:a(1),paddingInline:a(1.5),whiteSpace:"pre-wrap"})),T=s("div",{name:k,slot:"greeting"})({}),C=s("div",{name:k,slot:"status"})(({theme:{palette:e,typography:a}})=>({...a.caption,color:e.text.secondary})),S=s("div",{name:k,slot:"separator"})(({theme:{palette:e,spacing:a,typography:i}})=>({...i.caption,alignItems:"center",color:e.text.secondary,display:"flex",gap:a(1),"&::before, &::after":{borderBlockStart:`1px solid ${e.divider}`,content:'""',flex:1}})),j=s(t,{name:k,slot:"earlierButton"})({alignSelf:"center"}),I=s("div",{name:k,slot:"notice"})(({theme:{palette:e,shape:a,spacing:i}})=>({alignItems:"center",background:e.action.hover,borderRadius:a.borderRadius,display:"flex",flexWrap:"wrap",gap:i(1),justifyContent:"space-between",paddingBlock:i(1),paddingInline:i(1.5)})),B=s(t,{name:k,slot:"newReplyButton"})(({theme:{palette:e,spacing:a}})=>({background:e.text.primary,borderRadius:"calc(infinity * 1px)",color:e.background.paper,insetBlockEnd:a(1),insetInlineStart:"50%",position:"absolute",translate:"-50% 0","&:hover":{background:e.text.secondary}})),E=({item:a,isActive:t,undoableToolCallId:s,onUndo:r})=>o(a).with({kind:"user"},({text:a})=>e(y,{children:a})).with({kind:"text"},({markdown:a,isStreaming:i})=>e(h,{markdown:a,isStreaming:i})).with({kind:"tools"},({tools:a})=>e(c,{tools:a,isActive:t,canUndo:a.some(({id:e})=>e===s),onUndo:r})).with({kind:"separator"},()=>e(S,{role:"separator",children:e(i,{id:"sdk.assistant.thread.earlierSummarized",message:"Earlier conversation summarized"})})).exhaustive();export const AssistantThread=()=>{let{assistantSystem:s}=m(),c=l(s.chat$),{messages:h,isLoading:k,isResuming:y,earlierThreads:S}=c,A=l(s.undoTipToolCallId$),R=k?void 0:A,{items:L,isThinking:z}=n(()=>v(h,k),[h,k]),$=n(()=>f(S),[S]),U=n(()=>L.filter(({kind:e})=>"user"===e).length,[L]),D=c.error?p(c.failedStatus):void 0,{scrollerRef:M,hasUnseenContent:W,handleScroll:q,scrollToEnd:H}=b(n(()=>({messages:h,isThinking:z,isResuming:y,failure:D?.kind}),[h,z,y,D?.kind]),U),N=u(),Y=r(e=>{e.target instanceof Element&&e.target.closest('a, button, input, select, textarea, [role="button"]')||window.getSelection()?.isCollapsed!==!1&&N.release()},[N]),F=!c.isLoaded&&0===$.length&&!y&&!D;return a(w,{children:[e(g,{selection:N,children:a(x,{ref:M,onScroll:q,onClick:Y,role:"log","aria-live":"polite",children:[c.isLoaded&&0===L.length&&0===$.length&&!k&&!y&&!D&&e(T,{children:e(i,{id:"sdk.assistant.thread.greeting",message:"Hi. I can answer questions about this design and change it with you. Tell me what you need."})}),F&&e(C,{children:e(i,{id:"sdk.assistant.thread.loading",message:"Loading the conversation…"})}),c.isLoadingEarlierThread&&e(C,{children:e(i,{id:"sdk.assistant.thread.loadingEarlier",message:"Loading the earlier conversation…"})}),c.hasEarlierThread&&!c.isLoadingEarlierThread&&e(j,{size:"small",color:"inherit",onClick:s.loadEarlierThread,children:e(i,{id:"sdk.assistant.thread.showEarlier.label",message:"Show earlier conversation"})}),$.map(a=>e(E,{item:a,isActive:!1,undoableToolCallId:R,onUndo:s.undoToolCalls},a.id)),L.map(a=>e(E,{item:a,isActive:k&&a===L.at(-1),undoableToolCallId:R,onUndo:s.undoToolCalls},a.id)),y&&e(C,{children:e(i,{id:"sdk.assistant.thread.resuming",message:"Resuming the conversation…"})}),z&&e(C,{children:e(i,{id:"sdk.assistant.thread.thinking",message:"Thinking…"})}),D&&a(I,{role:"alert",children:[e("span",{children:o(D.kind).with("notAvailable",()=>e(i,{id:"sdk.assistant.failure.notAvailable",message:"The assistant is not available here."})).with("busy",()=>e(i,{id:"sdk.assistant.failure.busy",message:"The assistant is still working on an earlier message."})).with("unavailable",()=>e(i,{id:"sdk.assistant.failure.unavailable",message:"The assistant is unavailable right now."})).exhaustive()}),D.canRetry&&e(t,{size:"small",variant:"outlined",color:"inherit",onClick:s.reloadThread,children:e(i,{id:"sdk.assistant.failure.retry.label",message:"Try again"})})]})]})}),W&&e(B,{size:"small",onClick:H,endIcon:e(d,{name:"CaretDown"}),children:e(i,{id:"sdk.assistant.thread.newReply.label",message:"New reply"})})]})};
@@ -0,0 +1,13 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type DomainEntityId } from '#package/domain';
3
+ export interface AssistantEntityLinkProps {
4
+ readonly id: DomainEntityId<string>;
5
+ /** The text the assistant gave the link; the id itself is never shown. */
6
+ readonly children: ReactNode;
7
+ }
8
+ /**
9
+ * An entity the assistant named in a reply, shown as its label. It follows the configurator live:
10
+ * a click selects the entity when the scene can select it, the link shows when the entity is
11
+ * selected or hovered in the scene, and it is struck out once the entity is gone.
12
+ */
13
+ export declare const AssistantEntityLink: import("react").MemoExoticComponent<({ id, children }: AssistantEntityLinkProps) => import("react/jsx-runtime").JSX.Element>;
@@ -0,0 +1 @@
1
+ import{jsx as e}from"react/jsx-runtime";import{alpha as t,styled as i}from"@mui/material";import{memo as n,useCallback as r,useEffect as o,useRef as a}from"react";import{sceneEntitySelectHotspotComponent as l,selectableComponent as c}from"#package/domain";import{useDomain as d,useFirstRenderedComponent as s,useHoveredDomainEntityId as m,useRenderedSelector as u,useSelectEntity as p,useSelectedDomainEntityId as k,useStoreSelector as y}from"#package/react-sdk";import{FrontendAnalyticsFactory as h}from"../../../common/index.js";import{AssistantPanelName as b}from"../theme.js";import{useEntityLinkSelection as g}from"./entity-link-selection.js";import{resolveEntityLinkState as f}from"./entity-link-state.js";let v=({theme:{palette:e,shape:i,spacing:n}})=>({background:e.action.hover,border:"none",borderRadius:i.borderRadius/2,boxDecorationBreak:"clone",color:"inherit",font:"inherit",margin:0,paddingBlock:0,paddingInline:n(.5),textAlign:"inherit",WebkitBoxDecorationBreak:"clone",'&[data-entity-link="interactive"]':{background:t(e.primary.main,e.action.hoverOpacity),color:e.primary.main,cursor:"pointer",'&:hover, &:focus-visible, &[data-hovered="true"]':{background:t(e.primary.main,e.action.focusOpacity)},"&:focus-visible":{outline:`2px solid ${e.primary.main}`,outlineOffset:1}},'&[data-entity-link="missing"]':{background:"none",color:e.text.disabled,paddingInline:0,textDecoration:"line-through"},'&[data-selected="true"]':{boxShadow:`inset 0 0 0 1px ${e.primary.main}`}}),x=i("span",{name:b,slot:"entityLink"})(v),S=i("button",{name:b,slot:"entityLink"})(v),j=({kind:t,isSelected:i,children:n})=>e(x,{"data-entity-link":t,"data-selected":i,children:n}),T=({id:t,isSelected:i,children:n})=>{let{navigationSystem:u}=d(),k=s({entityIds:[t],componentTypes:[c]}),y=s({entityIds:[t],componentTypes:[l]}),{kind:b,canHover:v}=f({isSelectable:null!=k,isHoverDisabled:k?.state.hoverable===!1,hasSelectHotspot:null!=y}),x=m()===t,T=p(h.AssistantEntityLinkClicked),B=g(),E=r(()=>{B?.remember(t),T(t)},[t,B,T]),L=a(!1),D=r(()=>{v&&(L.current=!0,u.debouncedToggleHover(t))},[v,t,u]),H=r(()=>{L.current&&(L.current=!1,u.debouncedToggleHover(null))},[u]),I=r(e=>{"touch"!==e.pointerType&&D()},[D]),A=r(e=>{e.currentTarget.matches(":focus-visible")&&D()},[D]);return(o(()=>H,[v,H,t]),"interactive"!==b)?e(j,{kind:b,isSelected:i,children:n}):e(S,{type:"button","data-entity-link":b,"data-selected":i,"data-hovered":v&&x,"aria-current":i?"true":void 0,onClick:E,onPointerEnter:I,onPointerLeave:H,onFocus:A,onBlur:H,children:n})};export const AssistantEntityLink=n(({id:t,children:i})=>{let{domain:n}=d(),r=y(e=>null!=n.getEntity(t,e.state),[n,t]),o=u(e=>null!=n.getEntity(t,e.state),[n,t]),a=k()===t;return r?o?e(T,{id:t,isSelected:a,children:i}):e(j,{kind:"plain",isSelected:a,children:i}):e(j,{kind:"missing",isSelected:!1,children:i})});
@@ -0,0 +1,22 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { DomainEntityId } from '#package/domain';
3
+ /**
4
+ * The selection an entity link made, held for the thread the links are in. A click elsewhere in
5
+ * the thread takes back what a link selected, so a user can look at an entity and let it go again.
6
+ * A selection made anywhere else, in the scene, a hotspot or the sidebar, is never taken back.
7
+ */
8
+ export interface EntityLinkSelection {
9
+ /** Records that a link is selecting this entity; call it before the select update is committed. */
10
+ readonly remember: (id: DomainEntityId<string>) => void;
11
+ /** Deselects the entity a link selected, when it is still the selected one, and forgets it. */
12
+ readonly release: () => void;
13
+ }
14
+ /** Creates the selection the entity links of one thread share; the thread provides it to them. */
15
+ export declare const useCreateEntityLinkSelection: () => EntityLinkSelection;
16
+ export interface EntityLinkSelectionProviderProps {
17
+ readonly selection: EntityLinkSelection;
18
+ readonly children: ReactNode;
19
+ }
20
+ export declare const EntityLinkSelectionProvider: ({ selection, children }: EntityLinkSelectionProviderProps) => import("react/jsx-runtime").JSX.Element;
21
+ /** The selection of the thread the link is in, or `null` for a link rendered outside a thread. */
22
+ export declare const useEntityLinkSelection: () => EntityLinkSelection | null;
@@ -0,0 +1 @@
1
+ import{jsx as t}from"react/jsx-runtime";import{createContext as e,useCallback as r,useContext as n,useEffect as l,useMemo as c,useRef as i}from"react";import{useDeselect as o,useDomain as u,useSelectedDomainEntityId as a}from"#package/react-sdk";let s=e(null);export const useCreateEntityLinkSelection=()=>{let{storeSystem:t,navigationSystem:e}=u(),n=o(),s=a(),m=i(null);l(()=>{s!==m.current&&(m.current=null)},[s]);let p=r(t=>{m.current=t},[]),S=r(()=>{let r=m.current;m.current=null,null!=r&&e.getActiveSelectionState(t.stateSlices.committed.value.state)===r&&n()},[n,e,t]);return c(()=>({remember:p,release:S}),[p,S])};export const EntityLinkSelectionProvider=({selection:e,children:r})=>t(s.Provider,{value:e,children:r});export const useEntityLinkSelection=()=>n(s);
@@ -0,0 +1,27 @@
1
+ /** What is attached right now to an existing entity that an entity link points at. */
2
+ export interface EntityLinkFacts {
3
+ /** A `selectable` component is attached to the entity under the current filters. */
4
+ readonly isSelectable: boolean;
5
+ /** The attached `selectable` component switches hover off with `hoverable: false`. */
6
+ readonly isHoverDisabled: boolean;
7
+ /** A `sceneEntitySelectHotspot` component is attached to the entity under the current filters. */
8
+ readonly hasSelectHotspot: boolean;
9
+ }
10
+ /**
11
+ * How an entity link shows and behaves:
12
+ *
13
+ * - `missing`: the entity is gone, the link is struck out;
14
+ * - `plain`: the entity exists but nothing in the scene selects it, so the link is only a label;
15
+ * - `interactive`: a click selects the entity, as a click on it or on its hotspot in the scene does.
16
+ */
17
+ export type EntityLinkKind = 'missing' | 'plain' | 'interactive';
18
+ /** The state of a link to an entity that exists; a link to one that is gone is `missing` without it. */
19
+ export interface EntityLinkState {
20
+ readonly kind: Exclude<EntityLinkKind, 'missing'>;
21
+ /**
22
+ * The link sends its hover to the scene and shows the hover of the scene. Only an entity the
23
+ * scene itself can hover takes part, so one that is selected through a hotspot alone does not.
24
+ */
25
+ readonly canHover: boolean;
26
+ }
27
+ export declare const resolveEntityLinkState: (facts: EntityLinkFacts) => EntityLinkState;
@@ -0,0 +1 @@
1
+ export const resolveEntityLinkState=e=>{let{isSelectable:n,isHoverDisabled:t,hasSelectHotspot:i}=e;return n||i?{kind:"interactive",canHover:n&&!t}:{kind:"plain",canHover:!1}};
@@ -0,0 +1,5 @@
1
+ import { type DomainEntityId } from '#package/domain';
2
+ /** True for the target of a link the assistant wrote to point at an entity, `entity:<id>`, whatever follows the scheme. */
3
+ export declare const isEntityLinkHref: (href: string) => boolean;
4
+ /** The entity id an entity link points at, or `null` when what follows the scheme is not a well-formed entity id. */
5
+ export declare const parseEntityLinkTarget: (href: string) => DomainEntityId<string> | null;
@@ -0,0 +1 @@
1
+ import{DomainEntityIdSchema as t}from"#package/domain";let e="entity:",n=new RegExp(t.pattern);export const isEntityLinkHref=t=>t.startsWith(e);export const parseEntityLinkTarget=t=>{let r=t.slice(e.length);return t.startsWith(e)&&n.test(r)?r:null};
@@ -0,0 +1,3 @@
1
+ export { AssistantEntityLink } from './AssistantEntityLink.js';
2
+ export { EntityLinkSelectionProvider, useCreateEntityLinkSelection } from './entity-link-selection.js';
3
+ export { isEntityLinkHref, parseEntityLinkTarget } from './entity-link-target.js';
@@ -0,0 +1 @@
1
+ export{AssistantEntityLink}from"./AssistantEntityLink.js";export{EntityLinkSelectionProvider,useCreateEntityLinkSelection}from"./entity-link-selection.js";export{isEntityLinkHref,parseEntityLinkTarget}from"./entity-link-target.js";
@@ -1,2 +1,2 @@
1
1
  export { AssistantPanel, ASSISTANT_PANEL_SLOT } from './AssistantPanel.js';
2
- export { AssistantPanelProvider, useAssistantPanel, type AssistantPanelState } from './AssistantPanelProvider.js';
2
+ export { useIsAssistantPanelOpen } from './use-is-assistant-panel-open.js';
@@ -1 +1 @@
1
- export{AssistantPanel,ASSISTANT_PANEL_SLOT}from"./AssistantPanel.js";export{AssistantPanelProvider,useAssistantPanel}from"./AssistantPanelProvider.js";
1
+ export{AssistantPanel,ASSISTANT_PANEL_SLOT}from"./AssistantPanel.js";export{useIsAssistantPanelOpen}from"./use-is-assistant-panel-open.js";
@@ -1,4 +1,5 @@
1
- import type { UIMessage } from '@tanstack/ai-react';
1
+ import type { UIMessage } from '@tanstack/ai-client';
2
+ import type { AssistantEarlierThreadSnapshot } from '../../application-runtime/index.js';
2
3
  import { type AssistantToolChip } from './tool-chip.js';
3
4
  /** A tool call of the thread, with what its chip shows and what a click on the chip logs. */
4
5
  export interface AssistantToolItem {
@@ -8,8 +9,9 @@ export interface AssistantToolItem {
8
9
  readonly result: unknown;
9
10
  }
10
11
  /**
11
- * One block of the thread, in reading order: a user bubble, a stretch of assistant Markdown, or a
12
- * row of chips for the tool calls that follow each other without text in between.
12
+ * One block of the thread, in reading order: a user bubble, a stretch of assistant Markdown, a row
13
+ * of chips for the tool calls that follow each other without text in between, or the line that
14
+ * ends a closed thread of the conversation.
13
15
  */
14
16
  export type AssistantThreadItem = {
15
17
  readonly kind: 'user';
@@ -24,6 +26,9 @@ export type AssistantThreadItem = {
24
26
  readonly kind: 'tools';
25
27
  readonly id: string;
26
28
  readonly tools: readonly AssistantToolItem[];
29
+ } | {
30
+ readonly kind: 'separator';
31
+ readonly id: string;
27
32
  };
28
33
  export interface AssistantThreadView {
29
34
  readonly items: readonly AssistantThreadItem[];
@@ -35,3 +40,9 @@ export interface AssistantThreadView {
35
40
  * results are not shown on their own but decide the state of the chip of their call.
36
41
  */
37
42
  export declare const buildThreadView: (messages: ReadonlyArray<UIMessage>, isReplying: boolean) => AssistantThreadView;
43
+ /**
44
+ * Lays the closed threads of the conversation out above the thread that continues them, oldest
45
+ * first, each ended by a separator: the assistant read on from a summary of it, not from the
46
+ * messages themselves.
47
+ */
48
+ export declare const buildEarlierThreadItems: (earlierThreads: ReadonlyArray<AssistantEarlierThreadSnapshot>) => readonly AssistantThreadItem[];
@@ -1 +1 @@
1
- import{describeToolCall as t}from"./tool-chip.js";let e=t=>{try{return JSON.parse(t)}catch{return t}},r=t=>t.map(t=>"text"===t.type?t.content:"").join("").trim();export const buildThreadView=(o,n)=>{let l=(t=>{let r=new Map;for(let o of t)for(let t of o.parts)"tool-result"===t.type&&r.set(t.toolCallId,{result:"string"==typeof t.content?e(t.content):t.content,error:"error"===t.state?t.error??"The tool call failed.":void 0});return r})(o),i=[],s=o.at(-1),a=t=>{let e=i.at(-1);e?.kind==="tools"?i[i.length-1]={...e,tools:[...e.tools,t]}:i.push({kind:"tools",id:t.id,tools:[t]})};for(let e of o){if("user"===e.role){let t=r(e.parts);t&&i.push({kind:"user",id:e.id,text:t});continue}let o=n&&e===s;e.parts.forEach((r,n)=>{let s=`${e.id}:${n}`;if("text"===r.type){if(r.content.trim()){let t=o&&n===e.parts.length-1;i.push({kind:"text",id:s,markdown:r.content,isStreaming:t})}return}if("tool-call"!==r.type)return;let p=l.get(r.id),d=r.input,u=r.output??p?.result;a({id:r.id,input:d,result:u,chip:t({name:r.name,input:d,result:u,error:p?.error,isReplyRunning:o})})})}let p=i.at(-1),d=s?.role==="assistant"&&(p?.kind==="text"&&p.isStreaming||p?.kind==="tools");return{items:i,isThinking:n&&!d}};
1
+ import{describeToolCall as t}from"./tool-chip.js";let e=t=>{try{return JSON.parse(t)}catch{return t}},r=t=>t.map(t=>"text"===t.type?t.content:"").join("").trim();export const buildThreadView=(o,i)=>{let l=(t=>{let r=new Map;for(let o of t)for(let t of o.parts)"tool-result"===t.type&&r.set(t.toolCallId,{result:"string"==typeof t.content?e(t.content):t.content,error:"error"===t.state?t.error??"The tool call failed.":void 0});return r})(o),n=[],a=o.at(-1),s=t=>{let e=n.at(-1);e?.kind==="tools"?n[n.length-1]={...e,tools:[...e.tools,t]}:n.push({kind:"tools",id:t.id,tools:[t]})};for(let e of o){if("user"===e.role){let t=r(e.parts);t&&n.push({kind:"user",id:e.id,text:t});continue}let o=i&&e===a;e.parts.forEach((r,i)=>{let a=`${e.id}:${i}`;if("text"===r.type){if(r.content.trim()){let t=o&&i===e.parts.length-1;n.push({kind:"text",id:a,markdown:r.content,isStreaming:t})}return}if("tool-call"!==r.type)return;let d=l.get(r.id),p=r.input,u=r.output??d?.result;s({id:r.id,input:p,result:u,chip:t({name:r.name,input:p,result:u,error:d?.error,isReplyRunning:o})})})}let d=n.at(-1),p=a?.role==="assistant"&&(d?.kind==="text"&&d.isStreaming||d?.kind==="tools");return{items:n,isThinking:i&&!p}};export const buildEarlierThreadItems=t=>t.flatMap(({threadId:t,messages:e})=>[...buildThreadView(e,!1).items.map(e=>({...e,id:`${t}:${e.id}`})),{kind:"separator",id:`${t}:separator`}]);
@@ -1,3 +1,4 @@
1
+ import { type AssistantToolErrorCode } from '@salsita-ai/contracts/assistant';
1
2
  /**
2
3
  * How a tool call of the assistant looks in the thread: still running, finished, a change that was
3
4
  * not kept (`failed`), or a read that answered with errors (`flawed`), which matters less because
@@ -16,6 +17,11 @@ export type AssistantToolChipLabel = {
16
17
  export interface AssistantToolChip {
17
18
  readonly label: AssistantToolChipLabel;
18
19
  readonly state: AssistantToolChipState;
20
+ /**
21
+ * Why the server recorded an error in place of the call's result, when it said so with a code this
22
+ * panel knows. Nothing for a call that went wrong for any other reason.
23
+ */
24
+ readonly errorCode: AssistantToolErrorCode | undefined;
19
25
  }
20
26
  /** A tool call of a message as the chip reads it. */
21
27
  export interface AssistantToolCall {
@@ -32,6 +38,7 @@ export interface AssistantToolCall {
32
38
  /**
33
39
  * Describes one tool call for its chip: the label in the order operation names, fixed text for the
34
40
  * `apply` and `query` tools, tool name; and whether the call runs, finished, or went wrong. Why it
35
- * went wrong is not part of it: the tool result words that for the model, not for the user.
41
+ * went wrong is part of it only as the code of an error the server recorded: the text of a tool
42
+ * result is worded for the model, not for the user.
36
43
  */
37
44
  export declare const describeToolCall: (call: AssistantToolCall) => AssistantToolChip;
@@ -1 +1 @@
1
- import{Kind as e,parse as t}from"graphql";import{z as n}from"zod";import{applyTool as r,queryTool as a}from"@salsita-ai/contracts/assistant";let o=n.object({operations:n.array(n.object({query:n.string(),operationName:n.string().nullish()}))}),i=n.object({results:n.array(n.object({errors:n.array(n.unknown()).optional()})),committed:n.boolean()});export const describeToolCall=n=>{let s=(({name:n,input:i})=>{let s,l=(s=o.safeParse(i)).success?s.data.operations.flatMap(({query:n,operationName:r})=>r??(n=>{try{let r=t(n).definitions.find(t=>t.kind===e.OPERATION_DEFINITION);return r?.kind===e.OPERATION_DEFINITION?r.name?.value:void 0}catch{return}})(n)??[]):[];return l.length>0?{kind:"text",text:l.join(", ")}:n===r.name?{kind:"updateDesign"}:n===a.name?{kind:"readDesign"}:{kind:"text",text:n}})(n);return null==n.result&&null==n.error?{label:s,state:n.isReplyRunning?"running":"done"}:{label:s,state:(({name:e,result:t,error:n})=>{if(null!=n)return e===a.name?"flawed":"failed";let o=i.safeParse(t);if(!o.success)return"done";let{results:s,committed:l}=o.data;return e===r.name?l?"done":"failed":s.some(({errors:e})=>(e?.length??0)>0)||0===s.length?"flawed":"done"})(n)}};
1
+ import{Kind as e,parse as t}from"graphql";import{z as n}from"zod";import{ASSISTANT_TOOL_ERROR_CODES as r,AssistantToolError as a,applyTool as i,queryTool as o}from"@salsita-ai/contracts/assistant";let l=n.object({operations:n.array(n.object({query:n.string(),operationName:n.string().nullish()}))}),s=n.object({results:n.array(n.object({errors:n.array(n.unknown()).optional()})),committed:n.boolean()});export const describeToolCall=n=>{let d=(({name:n,input:r})=>{let a,s=(a=l.safeParse(r)).success?a.data.operations.flatMap(({query:n,operationName:r})=>r??(n=>{try{let r=t(n).definitions.find(t=>t.kind===e.OPERATION_DEFINITION);return r?.kind===e.OPERATION_DEFINITION?r.name?.value:void 0}catch{return}})(n)??[]):[];return s.length>0?{kind:"text",text:s.join(", ")}:n===i.name?{kind:"updateDesign"}:n===o.name?{kind:"readDesign"}:{kind:"text",text:n}})(n);if(null==n.result&&null==n.error)return{label:d,state:n.isReplyRunning?"running":"done",errorCode:void 0};let u=(e=>{let t=a.safeParse(e);if(t.success)return r.find(e=>e===t.data.code)})(n.result);return{label:d,state:(({name:e,result:t,error:n},r)=>{if(null!=n||null!=r)return e===o.name?"flawed":"failed";if(e!==i.name&&e!==o.name)return"done";let a=s.safeParse(t);if(!a.success)return e===o.name?"flawed":"failed";let{results:l,committed:d}=a.data;return e===i.name?d?"done":"failed":l.some(({errors:e})=>(e?.length??0)>0)||0===l.length?"flawed":"done"})(n,u),errorCode:u}};
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Whether the assistant panel is shown: it was opened and the application spec still has the
3
+ * `assistant` section, which editor hot reload can take away under an open panel.
4
+ */
5
+ export declare const useIsAssistantPanelOpen: () => boolean;
@@ -0,0 +1 @@
1
+ import{useEagerObservableSelector as e,useSpecAssistant as n}from"#package/react-sdk";import{useConfigurator as t}from"../../application-runtime/index.js";export const useIsAssistantPanelOpen=()=>{let{assistantSystem:p}=t(),r=n();return e(p.panel$,e=>e.open,[])&&null!=r};
@@ -0,0 +1 @@
1
+ export { SidebarKeys } from './sidebar-keys.js';
@@ -0,0 +1 @@
1
+ export{SidebarKeys}from"./sidebar-keys.js";
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Values of the desktop sidebar's `data-sidebar` attribute: its variants and states. The sidebar writes
3
+ * them; the built-in desktop layout's rules react to them.
4
+ */
5
+ export declare const SidebarKeys: {
6
+ readonly Minimalist: 'minimalist';
7
+ readonly Split: 'split';
8
+ readonly Visible: 'visible';
9
+ readonly Hidden: 'hidden';
10
+ readonly Assistant: 'assistant';
11
+ };
@@ -0,0 +1 @@
1
+ export const SidebarKeys={Minimalist:"minimalist",Split:"split",Visible:"visible",Hidden:"hidden",Assistant:"assistant"};