@salsita-ai/sdk 0.50.0-develop.7d4723b0a5 → 0.50.0-develop.8c8c362f86

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