@salsita-ai/sdk 0.50.0-develop.be40f0cee8 → 0.50.0-develop.d37f5db8ff

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 (1000) 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 +4 -0
  4. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  5. package/dist/application-spec/errors/diagnostic-messages.d.ts +4 -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-domain-block.js +46 -44
  25. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +1 -1
  26. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  27. package/dist/application-spec/generate-application/code/templates/domain-spec.js +4 -4
  28. package/dist/application-spec/generate-application/code/templates/domain.js +5 -5
  29. package/dist/application-spec/generate-application/code/templates/index.d.ts +1 -7
  30. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  31. package/dist/application-spec/generate-application/code/templates/package-json.js +1 -1
  32. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  33. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +93 -41
  34. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +1 -1
  35. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +2 -2
  36. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  37. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.d.ts +1 -0
  38. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +6 -0
  39. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +37 -12
  40. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +19 -7
  41. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +9 -4
  42. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -2
  43. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +4 -3
  44. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.js +1 -1
  45. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  46. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  47. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  48. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +5 -0
  49. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  50. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  51. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  52. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  53. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  54. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  55. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  56. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.d.ts +3 -8
  57. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.js +1 -1
  58. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +9 -43
  59. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  60. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-server-settings.d.ts +2 -2
  61. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.d.ts +5 -21
  62. package/dist/client/authorized-client.d.ts +3 -1
  63. package/dist/client/authorized-client.js +1 -1
  64. package/dist/client/contract.d.ts +34 -0
  65. package/dist/client/contract.js +1 -1
  66. package/dist/client/index.d.ts +2 -2
  67. package/dist/client/index.js +1 -1
  68. package/dist/client/local-authorized-client.d.ts +3 -1
  69. package/dist/client/local-authorized-client.js +1 -1
  70. package/dist/client/memory-authorized-client.d.ts +3 -1
  71. package/dist/client/memory-authorized-client.js +1 -1
  72. package/dist/client/phoenix-api.d.ts +271 -30
  73. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  74. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +245 -13
  75. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  76. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.d.ts +85 -0
  77. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.js +1 -0
  78. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +8 -3
  79. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  80. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +4 -0
  81. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  82. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +16 -1
  83. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  84. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.d.ts +9 -0
  85. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.js +1 -0
  86. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  87. package/dist/configurator/common/frontend-analytics.d.ts +21 -21
  88. package/dist/configurator/index.d.ts +0 -1
  89. package/dist/configurator/index.js +1 -1
  90. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +6 -0
  91. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  92. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  93. package/dist/configurator/scene/scene-analytics/scene-analytics.d.ts +2 -2
  94. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  95. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +3 -7
  96. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -1
  97. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  98. package/dist/configurator/ui/assistant/AssistantThread.d.ts +7 -8
  99. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  100. package/dist/configurator/ui/assistant/index.d.ts +1 -1
  101. package/dist/configurator/ui/assistant/index.js +1 -1
  102. package/dist/configurator/ui/assistant/thread-items.d.ts +14 -3
  103. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  104. package/dist/configurator/ui/assistant/tool-chip.d.ts +8 -1
  105. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  106. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.d.ts +5 -0
  107. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.js +1 -0
  108. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +4 -4
  109. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  110. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  111. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +2 -2
  112. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  113. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  114. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  115. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  116. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  117. package/dist/configurator/ui/legacy/mobile-controls/MobileControls.d.ts +1 -1
  118. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.d.ts +2 -2
  119. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -1
  120. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +100 -117
  121. package/dist/docs/complex-use-cases/navigation-reset-selection.mdx +18 -12
  122. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  123. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  124. package/dist/docs/index.json +1 -1
  125. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  126. package/dist/docs/layouts/custom-price.mdx +14 -16
  127. package/dist/docs/layouts/sidebar/tabs.mdx +24 -21
  128. package/dist/docs/layouts/toolbar.mdx +3 -1
  129. package/dist/docs/other-features/domain-actions.mdx +1 -1
  130. package/dist/docs/other-features/side-effects.mdx +76 -45
  131. package/dist/docs/other-features/transformers.mdx +1 -1
  132. package/dist/docs/other-features/violation-messages.mdx +52 -56
  133. package/dist/docs/phoenix/admin.mdx +9 -24
  134. package/dist/docs/phoenix/configurator-interface.mdx +100 -65
  135. package/dist/docs/phoenix/deployments.mdx +1 -1
  136. package/dist/docs/phoenix/domain-model.mdx +4 -0
  137. package/dist/docs/phoenix/expression-context.mdx +11 -3
  138. package/dist/docs/phoenix/getting-started.mdx +1 -1
  139. package/dist/docs/phoenix/localization.mdx +3 -22
  140. package/dist/docs/phoenix/phoenix-cli.mdx +124 -49
  141. package/dist/docs/phoenix/project-structure.mdx +24 -11
  142. package/dist/docs/phoenix/quickstart.mdx +2 -2
  143. package/dist/docs/phoenix/sdk-builder-workflow.mdx +12 -11
  144. package/dist/docs/phoenix/webhooks.mdx +1 -1
  145. package/dist/docs/recipes-and-delete/recipe-hierarchy-selection.mdx +15 -13
  146. package/dist/docs/relations/hierarchy.mdx +13 -2
  147. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  148. package/dist/domain/admin-domain/__generated/enhanced-model.d.ts +1 -2
  149. package/dist/domain/admin-domain/__generated/model/versions/v1.d.ts +1 -1
  150. package/dist/domain/admin-domain/__generated/model/versions/v2.d.ts +1 -1
  151. package/dist/domain/admin-domain/__generated/model/versions/v3.d.ts +1 -1
  152. package/dist/domain/admin-domain/__generated/model/versions/v4.d.ts +1 -1
  153. package/dist/domain/admin-domain/__generated/model/versions/v5.d.ts +1 -1
  154. package/dist/domain/admin-domain/__generated/model/versions/v6.d.ts +2 -2
  155. package/dist/domain/admin-domain/__generated/model/versions/v6.js +1 -1
  156. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -14
  157. package/dist/domain/admin-domain/implementation/common-admin-migrations.d.ts +1 -1
  158. package/dist/domain/admin-domain/index.d.ts +9 -5
  159. package/dist/domain/admin-domain/index.js +1 -1
  160. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +1 -1
  161. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  162. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  163. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  164. package/dist/domain/application/application-config.d.ts +24 -95
  165. package/dist/domain/application/assistant/assistant-manifest.d.ts +63 -0
  166. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +95 -0
  167. package/dist/domain/application/assistant/assistant-value-type.d.ts +9 -0
  168. package/dist/domain/application/assistant/assistant-value-type.js +1 -0
  169. package/dist/domain/application/assistant/build-assistant-manifest.d.ts +4 -0
  170. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -0
  171. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  172. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -0
  173. package/dist/domain/application/assistant/index.d.ts +4 -0
  174. package/dist/domain/application/assistant/index.js +1 -0
  175. package/dist/domain/application/assistant-field-options.d.ts +2 -3
  176. package/dist/domain/application/assistant-mutations.d.ts +3 -5
  177. package/dist/domain/application/assistant-mutations.js +1 -1
  178. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -7
  179. package/dist/domain/application/configurator-builder.d.ts +33 -18
  180. package/dist/domain/application/configurator-builder.js +1 -1
  181. package/dist/domain/application/create-initial-published-data.d.ts +1 -2
  182. package/dist/domain/application/index.d.ts +3 -5
  183. package/dist/domain/application/index.js +1 -1
  184. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  185. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  186. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  187. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  188. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  189. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  190. package/dist/domain/application/published-data/create-finalize-admin-domain.d.ts +1 -2
  191. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  192. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  193. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +2 -2
  194. package/dist/domain/application/published-data/map-published-data.d.ts +1 -2
  195. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  196. package/dist/domain/available-system-components.js +1 -1
  197. package/dist/domain/core/action/action-factory.d.ts +11 -0
  198. package/dist/domain/core/{action.d.ts → action/action.d.ts} +22 -18
  199. package/dist/domain/core/action/index.d.ts +2 -0
  200. package/dist/domain/core/action/index.js +1 -0
  201. package/dist/domain/{components → core/component}/component-reader-types.d.ts +1 -2
  202. package/dist/domain/{components → core/component}/debug-state-component.d.ts +1 -1
  203. package/dist/domain/core/component/debug-state-component.js +1 -0
  204. package/dist/domain/core/component/domain-component-optic.d.ts +66 -0
  205. package/dist/domain/core/component/domain-component-optic.js +16 -0
  206. package/dist/domain/{components → core/component}/drag-state-component.d.ts +1 -1
  207. package/dist/domain/core/component/drag-state-component.js +1 -0
  208. package/dist/domain/{components → core/component}/export-state-component.d.ts +1 -1
  209. package/dist/domain/core/component/export-state-component.js +1 -0
  210. package/dist/domain/{components → core/component}/fullscreen-state-component.d.ts +1 -1
  211. package/dist/domain/core/component/fullscreen-state-component.js +1 -0
  212. package/dist/domain/{components → core/component}/group-components-by-entity-id-and-name.d.ts +1 -2
  213. package/dist/domain/core/component/group-components-by-entity-id-and-name.js +1 -0
  214. package/dist/domain/{components → core/component}/hover-state-component.d.ts +1 -1
  215. package/dist/domain/core/component/hover-state-component.js +1 -0
  216. package/dist/domain/core/component/index.d.ts +18 -0
  217. package/dist/domain/core/component/index.js +1 -0
  218. package/dist/domain/{components → core/component}/legacy-filter.d.ts +4 -19
  219. package/dist/domain/{components → core/component}/navigation-state-component.d.ts +1 -1
  220. package/dist/domain/core/component/navigation-state-component.js +1 -0
  221. package/dist/domain/{components → core/component}/selection-state-component.d.ts +1 -1
  222. package/dist/domain/core/component/selection-state-component.js +1 -0
  223. package/dist/domain/{components → core/component}/system-component-builder.d.ts +1 -2
  224. package/dist/domain/core/component/system-component-builder.js +1 -0
  225. package/dist/domain/{components → core/component}/system-component-filter.d.ts +25 -20
  226. package/dist/domain/core/component/system-virtual-entity.js +1 -0
  227. package/dist/domain/{components → core/component}/tool-state-component.d.ts +1 -1
  228. package/dist/domain/core/component/tool-state-component.js +1 -0
  229. package/dist/domain/{components → core/component}/updates.d.ts +17 -2
  230. package/dist/domain/{components → core/component}/view-state-component.d.ts +1 -1
  231. package/dist/domain/core/component/view-state-component.js +1 -0
  232. package/dist/domain/{components → core/component}/viewport-state-component.d.ts +1 -1
  233. package/dist/domain/core/component/viewport-state-component.js +1 -0
  234. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  235. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  236. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  237. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  238. package/dist/domain/core/data-schema/data-schema-field.js +1 -0
  239. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  240. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  241. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  242. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  243. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  244. package/dist/domain/core/data-schema/data-schema.js +1 -0
  245. package/dist/domain/core/data-schema/index.d.ts +7 -0
  246. package/dist/domain/core/data-schema/index.js +1 -0
  247. package/dist/domain/core/decoder/create-decoder.d.ts +6 -0
  248. package/dist/domain/core/decoder/create-decoder.js +1 -0
  249. package/dist/domain/core/decoder/decoder.d.ts +6 -0
  250. package/dist/domain/core/decoder/decoder.js +1 -0
  251. package/dist/domain/core/decoder/index.d.ts +2 -0
  252. package/dist/domain/core/decoder/index.js +1 -0
  253. package/dist/domain/core/domain-factory.d.ts +4 -5
  254. package/dist/domain/core/domain-factory.js +1 -1
  255. package/dist/domain/core/domain.d.ts +4 -5
  256. package/dist/domain/core/domain.js +1 -1
  257. package/dist/domain/core/emission/index.d.ts +8 -0
  258. package/dist/domain/core/emission/index.js +1 -0
  259. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  260. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  261. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  262. package/dist/domain/core/emission/state-emission.js +1 -0
  263. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  264. package/dist/domain/core/emission/state-update-emission.js +1 -0
  265. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  266. package/dist/domain/core/emission/state-validation-result.js +1 -0
  267. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  268. package/dist/domain/core/emission/transformation-log.js +1 -0
  269. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  270. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  271. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  272. package/dist/domain/core/emission/transformer-log.js +1 -0
  273. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  274. package/dist/domain/core/emission/transformer-phase.js +1 -0
  275. package/dist/domain/core/expression/aliased-expressions.d.ts +10 -0
  276. package/dist/domain/core/expression/aliased-expressions.js +1 -0
  277. package/dist/domain/{expressions → core/expression}/constant-expressions.d.ts +3 -4
  278. package/dist/domain/core/expression/constant-expressions.js +1 -0
  279. package/dist/domain/core/expression/custom-expression.d.ts +25 -0
  280. package/dist/domain/core/expression/custom-expression.js +1 -0
  281. package/dist/domain/core/expression/expression.d.ts +46 -0
  282. package/dist/domain/core/expression/expression.js +1 -0
  283. package/dist/domain/core/expression/index.d.ts +4 -0
  284. package/dist/domain/core/expression/index.js +1 -0
  285. package/dist/domain/core/index.d.ts +13 -17
  286. package/dist/domain/core/index.js +1 -1
  287. package/dist/domain/{invariants → core/invariant}/builtin-invariant.d.ts +2 -2
  288. package/dist/domain/core/invariant/custom-invariants.d.ts +13 -0
  289. package/dist/domain/core/invariant/custom-invariants.js +1 -0
  290. package/dist/domain/core/invariant/index.d.ts +5 -0
  291. package/dist/domain/core/invariant/index.js +1 -0
  292. package/dist/domain/core/invariant/invariants.d.ts +10 -0
  293. package/dist/domain/core/invariant/invariants.js +1 -0
  294. package/dist/domain/core/invariant/violation-component.js +1 -0
  295. package/dist/domain/{invariants → core/invariant}/violation.d.ts +2 -2
  296. package/dist/domain/core/{component.d.ts → model/component.d.ts} +1 -1
  297. package/dist/domain/core/model/index.d.ts +6 -0
  298. package/dist/domain/core/model/index.js +1 -0
  299. package/dist/domain/core/{reflection.d.ts → model/reflection.d.ts} +1 -1
  300. package/dist/domain/core/model/reflection.js +1 -0
  301. package/dist/domain/core/recipe/index.d.ts +1 -0
  302. package/dist/domain/core/recipe/index.js +1 -0
  303. package/dist/domain/{domain-context/recipe-system → core/recipe}/recipes.d.ts +1 -3
  304. package/dist/domain/core/recipe/recipes.js +1 -0
  305. package/dist/domain/{relations → core/relation}/all-of-type-relation.d.ts +3 -4
  306. package/dist/domain/core/relation/all-of-type-relation.js +1 -0
  307. package/dist/domain/{relations → core/relation}/component-factories.d.ts +1 -2
  308. package/dist/domain/core/relation/component-factories.js +1 -0
  309. package/dist/domain/{relations → core/relation}/composed-of.d.ts +1 -1
  310. package/dist/domain/core/relation/composed-of.js +1 -0
  311. package/dist/domain/{relations → core/relation}/direct-relation.d.ts +2 -3
  312. package/dist/domain/core/relation/index.d.ts +9 -0
  313. package/dist/domain/core/relation/index.js +1 -0
  314. package/dist/domain/{relations → core/relation}/indirect-relation.d.ts +3 -4
  315. package/dist/domain/core/relation/indirect-relation.js +1 -0
  316. package/dist/domain/{relations → core/relation}/reference-component.d.ts +4 -5
  317. package/dist/domain/core/relation/reference-component.js +1 -0
  318. package/dist/domain/{relations → core/relation}/reference-field.d.ts +1 -1
  319. package/dist/domain/core/relation/reference-field.js +1 -0
  320. package/dist/domain/{relations → core/relation}/relation-factory.d.ts +2 -3
  321. package/dist/domain/{relations → core/relation}/relation-implementation.d.ts +3 -4
  322. package/dist/domain/core/relation/relation-implementation.js +1 -0
  323. package/dist/domain/core/schema/enhanced-json-schema.js +1 -0
  324. package/dist/domain/core/schema/extended-schema-validator.js +1 -0
  325. package/dist/domain/core/schema/index.d.ts +3 -0
  326. package/dist/domain/core/schema/index.js +1 -0
  327. package/dist/domain/core/schema/schema-validator.js +1 -0
  328. package/dist/domain/core/state/id-sequence.d.ts +15 -0
  329. package/dist/domain/core/state/id-sequence.js +1 -0
  330. package/dist/domain/core/state/index.d.ts +3 -0
  331. package/dist/domain/core/state/index.js +1 -0
  332. package/dist/domain/core/{migrations.d.ts → state/migrations.d.ts} +15 -47
  333. package/dist/domain/core/state/migrations.js +1 -0
  334. package/dist/domain/core/{state.d.ts → state/state.d.ts} +1 -2
  335. package/dist/domain/domain-builder.d.ts +11 -11
  336. package/dist/domain/domain-builder.js +1 -1
  337. package/dist/domain/domain-context/action-system/action-system.d.ts +2 -4
  338. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  339. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  340. package/dist/domain/domain-context/action-system/index.js +1 -0
  341. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  342. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  343. package/dist/domain/domain-context/create-transformer.d.ts +2 -2
  344. package/dist/domain/domain-context/dimension-system/dimension-state.js +1 -1
  345. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +3 -4
  346. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  347. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  348. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  349. package/dist/domain/domain-context/domain-context-systems.d.ts +8 -10
  350. package/dist/domain/domain-context/index.d.ts +8 -18
  351. package/dist/domain/domain-context/index.js +1 -1
  352. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  353. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  354. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +5 -8
  355. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  356. package/dist/domain/domain-context/navigation-system/navigation-updates.d.ts +1 -12
  357. package/dist/domain/domain-context/navigation-system/navigation-updates.js +1 -1
  358. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +2 -2
  359. package/dist/domain/domain-context/navigation-system/selection-transformers.js +1 -1
  360. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  361. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  362. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +2 -4
  363. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  364. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +3 -3
  365. package/dist/domain/domain-context/relation-transformers/cascade-deletes.js +1 -1
  366. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +3 -3
  367. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.js +1 -1
  368. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +3 -3
  369. package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
  370. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  371. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  372. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +3 -3
  373. package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
  374. package/dist/domain/domain-context/store-system/apply-updates.d.ts +1 -3
  375. package/dist/domain/domain-context/store-system/apply-updates.js +1 -1
  376. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  377. package/dist/domain/domain-context/store-system/index.js +1 -0
  378. package/dist/domain/domain-context/store-system/next-domain-entity-id.d.ts +1 -13
  379. package/dist/domain/domain-context/store-system/next-domain-entity-id.js +1 -1
  380. package/dist/domain/domain-context/store-system/reconcile-projected-entities.d.ts +1 -2
  381. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  382. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -39
  383. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  384. package/dist/domain/domain-context/store-system/system-state.d.ts +2 -4
  385. package/dist/domain/domain-context/store-system/system-state.js +1 -1
  386. package/dist/domain/domain-context/transformers/actions-builder.d.ts +1 -2
  387. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  388. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +6 -10
  389. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  390. package/dist/domain/domain-context/transformers/chain-builder.d.ts +3 -3
  391. package/dist/domain/domain-context/transformers/context.d.ts +2 -7
  392. package/dist/domain/domain-context/transformers/context.js +1 -1
  393. package/dist/domain/domain-context/transformers/entity-builder.d.ts +1 -5
  394. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  395. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  396. package/dist/domain/domain-context/transformers/index.js +1 -1
  397. package/dist/domain/domain-context/transformers/then-builder.d.ts +1 -2
  398. package/dist/domain/domain-context/transformers/then-builder.js +1 -1
  399. package/dist/domain/domain-context/transformers/when-builder.d.ts +3 -9
  400. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  401. package/dist/domain/domain-context/undo-system.d.ts +2 -3
  402. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  403. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  404. package/dist/domain/domain-runtime/domain-context/component-reader.d.ts +1 -4
  405. package/dist/domain/domain-runtime/domain-context/component-reader.js +1 -1
  406. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  407. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  408. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  409. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  410. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  411. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  412. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +6 -13
  413. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  414. package/dist/domain/domain-runtime/domain-runtime.d.ts +56 -56
  415. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  416. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  417. package/dist/domain/domain-runtime/spec/index.d.ts +5 -0
  418. package/dist/domain/domain-runtime/spec/index.js +1 -1
  419. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  420. package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.d.ts +1 -2
  421. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +6 -1
  422. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  423. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +5 -0
  424. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  425. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  426. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  427. package/dist/domain/domain-runtime/spec/module-checks/project-modules.d.ts +25 -0
  428. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  429. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  430. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  431. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  432. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  433. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  434. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  435. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  436. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  437. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  438. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  439. package/dist/domain/{actions → domain-runtime/spec}/prepare-action-implementations.d.ts +1 -1
  440. package/dist/domain/domain-runtime/spec/prepare-action-implementations.js +5 -0
  441. package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.d.ts +1 -1
  442. package/dist/domain/domain-runtime/spec/selectors.d.ts +7 -8
  443. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  444. package/dist/domain/domain-runtime/spec/types.d.ts +6 -6
  445. package/dist/domain/{system-components → extensions}/angle-indicator.d.ts +1 -1
  446. package/dist/domain/extensions/angle-indicator.js +1 -0
  447. package/dist/domain/extensions/attribute-switch.js +1 -0
  448. package/dist/domain/{system-components → extensions}/autorotate-camera-component.d.ts +1 -1
  449. package/dist/domain/extensions/autorotate-camera-component.js +1 -0
  450. package/dist/domain/{system-components → extensions}/basic-sidebar-footer.d.ts +1 -1
  451. package/dist/domain/extensions/basic-sidebar-footer.js +1 -0
  452. package/dist/domain/extensions/camera-based-hidden-entity-object.js +1 -0
  453. package/dist/domain/extensions/camera-based-hidden-entity.js +1 -0
  454. package/dist/domain/{system-components → extensions}/canvas-config.d.ts +1 -1
  455. package/dist/domain/extensions/canvas-config.js +1 -0
  456. package/dist/domain/extensions/canvas-custom-environment.js +1 -0
  457. package/dist/domain/{system-components → extensions}/canvas-padding.d.ts +1 -1
  458. package/dist/domain/extensions/canvas-padding.js +1 -0
  459. package/dist/domain/{system-components → extensions}/canvas-preset-environment.d.ts +1 -1
  460. package/dist/domain/extensions/canvas-preset-environment.js +1 -0
  461. package/dist/domain/{system-components → extensions}/child-entity-recipe-hierarchy.d.ts +2 -2
  462. package/dist/domain/extensions/child-entity-recipe-hierarchy.js +1 -0
  463. package/dist/domain/extensions/client-side-image.js +1 -0
  464. package/dist/domain/extensions/color-value.js +1 -0
  465. package/dist/domain/{system-components → extensions}/common/angle-indicator-schema.d.ts +1 -1
  466. package/dist/domain/extensions/common/angle-indicator-schema.js +1 -0
  467. package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.d.ts +1 -1
  468. package/dist/domain/extensions/common/dimension-indicator-schema.js +1 -0
  469. package/dist/domain/extensions/common/index.d.ts +4 -0
  470. package/dist/domain/extensions/common/index.js +1 -0
  471. package/dist/domain/{system-components → extensions}/custom-header.d.ts +2 -2
  472. package/dist/domain/{system-components → extensions}/custom-header.js +1 -1
  473. package/dist/domain/extensions/custom-price-footer.js +1 -0
  474. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.d.ts +2 -2
  475. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.js +1 -1
  476. package/dist/domain/{system-components → extensions}/dimension-indicator.d.ts +1 -1
  477. package/dist/domain/extensions/dimension-indicator.js +1 -0
  478. package/dist/domain/{system-components → extensions}/editable-angle-indicator.d.ts +3 -2
  479. package/dist/domain/extensions/editable-angle-indicator.js +1 -0
  480. package/dist/domain/{system-components → extensions}/editable-distance-dimension-indicator.d.ts +3 -2
  481. package/dist/domain/extensions/editable-distance-dimension-indicator.js +1 -0
  482. package/dist/domain/{system-components → extensions}/editable-offset-indicator.d.ts +3 -2
  483. package/dist/domain/extensions/editable-offset-indicator.js +1 -0
  484. package/dist/domain/{system-components → extensions}/editable-size-indicator.d.ts +3 -2
  485. package/dist/domain/extensions/editable-size-indicator.js +1 -0
  486. package/dist/domain/{system-components → extensions}/entity-header.d.ts +1 -1
  487. package/dist/domain/extensions/entity-header.js +1 -0
  488. package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.d.ts +1 -1
  489. package/dist/domain/extensions/exit-tool-mode-fab.js +1 -0
  490. package/dist/domain/{system-components → extensions}/finalize-action.d.ts +1 -1
  491. package/dist/domain/extensions/finalize-action.js +1 -0
  492. package/dist/domain/extensions/finalize-component.js +1 -0
  493. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -0
  494. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -0
  495. package/dist/domain/{system-components → extensions}/fixed-header.d.ts +1 -1
  496. package/dist/domain/extensions/fixed-header.js +1 -0
  497. package/dist/domain/{system-components → extensions}/floating-header.d.ts +1 -1
  498. package/dist/domain/extensions/floating-header.js +1 -0
  499. package/dist/domain/{system-components → extensions}/hidden-header.d.ts +1 -1
  500. package/dist/domain/extensions/hidden-header.js +1 -0
  501. package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.d.ts +1 -1
  502. package/dist/domain/extensions/hidden-sidebar-footer.js +1 -0
  503. package/dist/domain/{system-components → extensions}/horizontal-tabs.d.ts +1 -1
  504. package/dist/domain/extensions/horizontal-tabs.js +1 -0
  505. package/dist/domain/extensions/index.d.ts +69 -0
  506. package/dist/domain/extensions/index.js +1 -0
  507. package/dist/domain/{system-components → extensions}/list-selector-dimension-indicator.d.ts +3 -2
  508. package/dist/domain/extensions/list-selector-dimension-indicator.js +1 -0
  509. package/dist/domain/extensions/multilingual-text-value.js +1 -0
  510. package/dist/domain/extensions/navigation-steps.js +1 -0
  511. package/dist/domain/{system-components → extensions}/offset-anchors.d.ts +1 -1
  512. package/dist/domain/extensions/offset-anchors.js +1 -0
  513. package/dist/domain/{system-components → extensions}/offset-indicator.d.ts +1 -2
  514. package/dist/domain/extensions/offset-indicator.js +1 -0
  515. package/dist/domain/{system-components → extensions}/offset.d.ts +1 -1
  516. package/dist/domain/extensions/offset.js +1 -0
  517. package/dist/domain/{system-components → extensions}/other-action.d.ts +1 -1
  518. package/dist/domain/extensions/other-action.js +1 -0
  519. package/dist/domain/{system-components → extensions}/property-page.d.ts +2 -2
  520. package/dist/domain/extensions/property-page.js +1 -0
  521. package/dist/domain/{system-components → extensions}/read-sidebar-footer.d.ts +1 -1
  522. package/dist/domain/extensions/read-sidebar-footer.js +1 -0
  523. package/dist/domain/{system-components → extensions}/replace-entity-recipe-hierarchy.d.ts +2 -2
  524. package/dist/domain/extensions/replace-entity-recipe-hierarchy.js +1 -0
  525. package/dist/domain/extensions/rotatable.js +1 -0
  526. package/dist/domain/extensions/rotation-handle.js +1 -0
  527. package/dist/domain/extensions/save-template-thumbnail.js +1 -0
  528. package/dist/domain/{system-components → extensions}/scene-entity-add-fab.d.ts +1 -1
  529. package/dist/domain/extensions/scene-entity-add-fab.js +1 -0
  530. package/dist/domain/extensions/scene-entity-animation.js +1 -0
  531. package/dist/domain/extensions/scene-entity-control.js +1 -0
  532. package/dist/domain/{system-components → extensions}/scene-entity-delete-fab.d.ts +1 -1
  533. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -0
  534. package/dist/domain/extensions/scene-entity-floor-object.js +1 -0
  535. package/dist/domain/{system-components → extensions}/scene-entity-html-hotspot.d.ts +1 -1
  536. package/dist/domain/extensions/scene-entity-html-hotspot.js +1 -0
  537. package/dist/domain/{system-components → extensions}/scene-entity-navigation-hotspot.d.ts +1 -1
  538. package/dist/domain/extensions/scene-entity-navigation-hotspot.js +1 -0
  539. package/dist/domain/{system-components → extensions}/scene-entity-object-html-hotspot.d.ts +1 -1
  540. package/dist/domain/extensions/scene-entity-object-html-hotspot.js +1 -0
  541. package/dist/domain/{system-components → extensions}/scene-entity-select-hotspot.d.ts +1 -1
  542. package/dist/domain/extensions/scene-entity-select-hotspot.js +1 -0
  543. package/dist/domain/extensions/scene-entity-wall-object.js +1 -0
  544. package/dist/domain/extensions/selectable-component.js +1 -0
  545. package/dist/domain/{system-components → extensions}/sidebar-tabs.d.ts +1 -1
  546. package/dist/domain/extensions/sidebar-tabs.js +1 -0
  547. package/dist/domain/extensions/simple-summary.js +1 -0
  548. package/dist/domain/{system-components → extensions}/size.d.ts +1 -1
  549. package/dist/domain/extensions/size.js +1 -0
  550. package/dist/domain/{system-components → extensions}/sketching-draw.d.ts +1 -1
  551. package/dist/domain/extensions/sketching-draw.js +1 -0
  552. package/dist/domain/{system-components → extensions}/sketching-edit.d.ts +2 -2
  553. package/dist/domain/extensions/sketching-edit.js +1 -0
  554. package/dist/domain/extensions/summary-component.js +1 -0
  555. package/dist/domain/extensions/text-value.js +1 -0
  556. package/dist/domain/extensions/tool-controls.js +1 -0
  557. package/dist/domain/{system-components → extensions}/tool-menu-fab.d.ts +2 -2
  558. package/dist/domain/extensions/tool-menu-fab.js +1 -0
  559. package/dist/domain/{system-components → extensions}/toolbar.d.ts +2 -2
  560. package/dist/domain/{system-components → extensions}/toolbar.js +1 -1
  561. package/dist/domain/{system-components → extensions}/universal-sidebar-footer.d.ts +1 -1
  562. package/dist/domain/extensions/universal-sidebar-footer.js +1 -0
  563. package/dist/domain/extensions/view-controls.js +1 -0
  564. package/dist/domain/index.d.ts +2 -32
  565. package/dist/domain/index.js +1 -1
  566. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  567. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +13 -13
  568. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  569. package/dist/domain/projections/blender-projections/blender-projections.d.ts +2 -3
  570. package/dist/domain/projections/blender-projections/blender-projections.js +1 -1
  571. package/dist/domain/projections/blender-projections/camera.d.ts +1 -1
  572. package/dist/domain/projections/collision-projections.d.ts +1 -1
  573. package/dist/domain/projections/composition-projections.d.ts +1 -1
  574. package/dist/domain/projections/composition-projections.js +1 -1
  575. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  576. package/dist/domain/projections/index.d.ts +1 -1
  577. package/dist/domain/projections/position-projections.d.ts +1 -1
  578. package/dist/domain/projections/projected-entities-projections.d.ts +2 -3
  579. package/dist/domain/projections/snap-matching.d.ts +1 -2
  580. package/dist/domain/projections/snap-utils.d.ts +1 -2
  581. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  582. package/dist/domain/projections/validation-projections.d.ts +3 -20
  583. package/dist/domain/projections/validation-projections.js +1 -1
  584. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  585. package/dist/domain/system-components/admin-sidebar.d.ts +1 -1
  586. package/dist/domain/system-components/admin-sidebar.js +1 -1
  587. package/dist/domain/system-components/angle-dimension.js +1 -1
  588. package/dist/domain/system-components/application-config.d.ts +1 -1
  589. package/dist/domain/system-components/application-config.js +1 -1
  590. package/dist/domain/system-components/attribute-selection.js +1 -1
  591. package/dist/domain/system-components/bounding-box-component.d.ts +1 -1
  592. package/dist/domain/system-components/bounding-box-component.js +1 -1
  593. package/dist/domain/system-components/bounding-sphere-component.d.ts +1 -1
  594. package/dist/domain/system-components/bounding-sphere-component.js +1 -1
  595. package/dist/domain/system-components/child-entity-recipes.d.ts +1 -1
  596. package/dist/domain/system-components/child-entity-recipes.js +1 -1
  597. package/dist/domain/system-components/child-entity-selection.d.ts +1 -2
  598. package/dist/domain/system-components/child-entity-selection.js +1 -1
  599. package/dist/domain/system-components/collision-box-geometry.d.ts +1 -1
  600. package/dist/domain/system-components/collision-box-geometry.js +1 -1
  601. package/dist/domain/system-components/collision-geometries.d.ts +1 -1
  602. package/dist/domain/system-components/collision-geometry.d.ts +1 -1
  603. package/dist/domain/system-components/collision-geometry.js +1 -1
  604. package/dist/domain/system-components/collision-point-geometry.d.ts +1 -1
  605. package/dist/domain/system-components/collision-point-geometry.js +1 -1
  606. package/dist/domain/system-components/common/index.d.ts +0 -4
  607. package/dist/domain/system-components/common/index.js +1 -1
  608. package/dist/domain/system-components/common/recipes.d.ts +1 -2
  609. package/dist/domain/system-components/constraint.d.ts +1 -1
  610. package/dist/domain/system-components/constraint.js +1 -1
  611. package/dist/domain/system-components/create-blueprint.d.ts +1 -1
  612. package/dist/domain/system-components/custom-scene-entity.d.ts +1 -1
  613. package/dist/domain/system-components/custom-scene-entity.js +1 -1
  614. package/dist/domain/system-components/detail.js +1 -1
  615. package/dist/domain/system-components/distance-dimension-select.d.ts +1 -1
  616. package/dist/domain/system-components/distance-dimension-select.js +1 -1
  617. package/dist/domain/system-components/distance-dimension.d.ts +1 -1
  618. package/dist/domain/system-components/distance-dimension.js +1 -1
  619. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  620. package/dist/domain/system-components/drag-handle.js +1 -1
  621. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  622. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  623. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  624. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  625. package/dist/domain/system-components/generic-dimension.d.ts +1 -1
  626. package/dist/domain/system-components/generic-dimension.js +1 -1
  627. package/dist/domain/system-components/hidden-entity.js +1 -1
  628. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -2
  629. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  630. package/dist/domain/system-components/index.d.ts +0 -68
  631. package/dist/domain/system-components/index.js +1 -1
  632. package/dist/domain/system-components/material-override-property-transition.js +1 -1
  633. package/dist/domain/system-components/material-override-transformer.js +1 -1
  634. package/dist/domain/system-components/material-swatch.js +1 -1
  635. package/dist/domain/system-components/navigation-page.js +1 -1
  636. package/dist/domain/system-components/navigation-panel-list.js +1 -1
  637. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  638. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  639. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  640. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  641. package/dist/domain/system-components/pivot-point.d.ts +1 -1
  642. package/dist/domain/system-components/pivot-point.js +1 -1
  643. package/dist/domain/system-components/price.js +1 -1
  644. package/dist/domain/system-components/projected-entities.d.ts +1 -1
  645. package/dist/domain/system-components/projected-entities.js +1 -1
  646. package/dist/domain/system-components/replace-entity-recipes.d.ts +1 -1
  647. package/dist/domain/system-components/replace-entity-recipes.js +1 -1
  648. package/dist/domain/system-components/scene-entity-ambient-light.js +1 -1
  649. package/dist/domain/system-components/scene-entity-box-object.js +1 -1
  650. package/dist/domain/system-components/scene-entity-directional-light.js +1 -1
  651. package/dist/domain/system-components/scene-entity-local-material-override.js +1 -1
  652. package/dist/domain/system-components/scene-entity-material-override.js +1 -1
  653. package/dist/domain/system-components/scene-entity-object-clip.js +1 -1
  654. package/dist/domain/system-components/scene-entity-object-decal.js +1 -1
  655. package/dist/domain/system-components/scene-entity-object-group.js +1 -1
  656. package/dist/domain/system-components/scene-entity-object-local-material-override.js +1 -1
  657. package/dist/domain/system-components/scene-entity-object-material-override.js +1 -1
  658. package/dist/domain/system-components/scene-entity-object-properties.js +1 -1
  659. package/dist/domain/system-components/scene-entity-object-remote-material-override.js +1 -1
  660. package/dist/domain/system-components/scene-entity-object-text-decal.js +1 -1
  661. package/dist/domain/system-components/scene-entity-object-transformer.js +1 -1
  662. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.js +1 -1
  663. package/dist/domain/system-components/scene-entity-object.js +1 -1
  664. package/dist/domain/system-components/scene-entity-point-light.js +1 -1
  665. package/dist/domain/system-components/scene-entity-properties.js +1 -1
  666. package/dist/domain/system-components/scene-entity-rect-area-light.js +1 -1
  667. package/dist/domain/system-components/scene-entity-remote-material-override.js +1 -1
  668. package/dist/domain/system-components/scene-entity-remote-object.js +1 -1
  669. package/dist/domain/system-components/scene-entity-spot-light.js +1 -1
  670. package/dist/domain/system-components/scene-entity-transimissive-material-override.js +1 -1
  671. package/dist/domain/system-components/sketching-line.d.ts +1 -1
  672. package/dist/domain/system-components/sketching-line.js +1 -1
  673. package/dist/domain/system-components/sketching-rectangle.d.ts +1 -1
  674. package/dist/domain/system-components/sketching-rectangle.js +1 -1
  675. package/dist/domain/system-components/sketching.d.ts +1 -1
  676. package/dist/domain/system-components/sketching.js +1 -1
  677. package/dist/domain/system-components/snap-axis.d.ts +1 -1
  678. package/dist/domain/system-components/snap-axis.js +1 -1
  679. package/dist/domain/system-components/snap-edge.d.ts +1 -1
  680. package/dist/domain/system-components/snap-edge.js +1 -1
  681. package/dist/domain/system-components/snap-plane.d.ts +1 -1
  682. package/dist/domain/system-components/snap-plane.js +1 -1
  683. package/dist/domain/system-components/snap-point.d.ts +1 -1
  684. package/dist/domain/system-components/snap-point.js +1 -1
  685. package/dist/domain/system-components/static-orthographic-camera-component.d.ts +1 -1
  686. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  687. package/dist/domain/system-components/static-perspective-camera-component.d.ts +1 -1
  688. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  689. package/dist/domain/utils/eval-cache.d.ts +1 -2
  690. package/dist/domain/utils/memo-eval.d.ts +2 -4
  691. package/dist/editor/Editor.js +1 -1
  692. package/dist/editor/domain-editors/use-implementation-files.d.ts +7 -6
  693. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  694. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  695. package/dist/editor/variants/VariantAnswerFooter.d.ts +17 -0
  696. package/dist/editor/variants/VariantAnswerFooter.js +1 -0
  697. package/dist/editor/variants/VariantPreviewHandler.d.ts +6 -0
  698. package/dist/editor/variants/VariantPreviewHandler.js +1 -0
  699. package/dist/editor/variants/variant-preview-styles.d.ts +49 -0
  700. package/dist/editor/variants/variant-preview-styles.js +1 -0
  701. package/dist/i18n/locales/cs/messages.js +1 -1
  702. package/dist/i18n/locales/da/messages.js +1 -1
  703. package/dist/i18n/locales/de/messages.js +1 -1
  704. package/dist/i18n/locales/de-AT/messages.js +1 -1
  705. package/dist/i18n/locales/en/messages.js +1 -1
  706. package/dist/i18n/locales/en-AU/messages.js +1 -1
  707. package/dist/i18n/locales/en-GB/messages.js +1 -1
  708. package/dist/i18n/locales/es/messages.js +1 -1
  709. package/dist/i18n/locales/fr/messages.js +1 -1
  710. package/dist/i18n/locales/hu/messages.js +1 -1
  711. package/dist/i18n/locales/it/messages.js +1 -1
  712. package/dist/i18n/locales/nl/messages.js +1 -1
  713. package/dist/i18n/locales/pl/messages.js +1 -1
  714. package/dist/i18n/locales/pt/messages.js +1 -1
  715. package/dist/i18n/locales/ro/messages.js +1 -1
  716. package/dist/i18n/locales/sk/messages.js +1 -1
  717. package/dist/i18n/locales/tr/messages.js +1 -1
  718. package/dist/legacy/domain-cli/gen/configurator-builder.js +21 -8
  719. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  720. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  721. package/dist/legacy/domain-cli/gen/invariants.js +7 -6
  722. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  723. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  724. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  725. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  726. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  727. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +1 -0
  728. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  729. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.d.ts +1 -1
  730. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
  731. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +18 -19
  732. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +15 -16
  733. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +22 -23
  734. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +15 -16
  735. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.d.ts +7 -2
  736. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.js +8 -12
  737. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.d.ts +1 -1
  738. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.js +1 -1
  739. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/webhook-builders.js +7 -7
  740. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  741. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +4 -3
  742. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  743. package/dist/phoenix/cli.js +1 -1
  744. package/dist/phoenix/commands/deploy.js +2 -2
  745. package/dist/phoenix/commands/dev.js +5 -5
  746. package/dist/phoenix/commands/index.d.ts +1 -0
  747. package/dist/phoenix/commands/index.js +1 -1
  748. package/dist/phoenix/commands/init.d.ts +4 -4
  749. package/dist/phoenix/commands/init.js +1 -1
  750. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  751. package/dist/phoenix/commands/prepare-local-environment-command.js +1 -1
  752. package/dist/phoenix/commands/prettier.js +1 -1
  753. package/dist/phoenix/commands/story-dev.js +2 -2
  754. package/dist/phoenix/commands/variants.d.ts +35 -0
  755. package/dist/phoenix/commands/variants.js +1 -0
  756. package/dist/phoenix/editor-server/commands-router.d.ts +68 -1
  757. package/dist/phoenix/editor-server/commands-router.js +1 -1
  758. package/dist/phoenix/editor-server/editor-router.d.ts +65 -0
  759. package/dist/phoenix/editor-server/editor-server.d.ts +3 -3
  760. package/dist/phoenix/editor-server/editor-server.js +1 -1
  761. package/dist/phoenix/editor-server/protocol.d.ts +1 -0
  762. package/dist/phoenix/editor-server/spec-router.js +1 -1
  763. package/dist/phoenix/editor-server/trpc.d.ts +3 -0
  764. package/dist/phoenix/scripts/build-admin.js +1 -1
  765. package/dist/phoenix/services/application-spec-project-watcher.d.ts +13 -2
  766. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  767. package/dist/phoenix/services/index.d.ts +4 -0
  768. package/dist/phoenix/services/index.js +1 -1
  769. package/dist/phoenix/services/phoenix-application.d.ts +21 -0
  770. package/dist/phoenix/services/phoenix-application.js +1 -0
  771. package/dist/phoenix/services/phoenix-store.d.ts +48 -0
  772. package/dist/phoenix/services/phoenix-store.js +1 -0
  773. package/dist/phoenix/services/phx-variant-previews-plugin.d.ts +9 -0
  774. package/dist/phoenix/services/phx-variant-previews-plugin.js +1 -0
  775. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  776. package/dist/phoenix/services/variant-file-session.d.ts +36 -0
  777. package/dist/phoenix/services/variant-file-session.js +1 -0
  778. package/dist/phoenix/services/variant-preview-service.d.ts +80 -0
  779. package/dist/phoenix/services/variant-preview-service.js +1 -0
  780. package/dist/phoenix/services/vite-config.js +1 -1
  781. package/dist/phoenix/utils/git/index.d.ts +1 -0
  782. package/dist/phoenix/utils/git/index.js +1 -0
  783. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  784. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  785. package/dist/phoenix/utils/index.d.ts +1 -0
  786. package/dist/phoenix/utils/index.js +1 -1
  787. package/dist/react-sdk/application-runtime/common-services/analytics/analytics-service.d.ts +2 -2
  788. package/dist/react-sdk/application-runtime/common-services/analytics/domain-controls-analytics.d.ts +21 -21
  789. package/dist/react-sdk/application-runtime/hooks/data/use-published-data.d.ts +1 -1
  790. package/dist/react-sdk/application-runtime/hooks/use-domain-application-props.d.ts +5 -2
  791. package/dist/react-sdk/application-runtime/hooks/use-spec.d.ts +1 -1
  792. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.d.ts +1 -1
  793. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  794. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +24 -24
  795. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +5 -5
  796. package/dist/ui-sdk/common/use-viewport-size.d.ts +4 -1
  797. package/dist/ui-sdk/common/use-viewport-size.js +1 -1
  798. package/dist/ui-sdk/components/mobile-controls/index.d.ts +1 -1
  799. package/dist/ui-sdk/theme/types.d.ts +1 -1
  800. package/dist/webhook/builders/common.d.ts +8 -0
  801. package/dist/webhook/builders/webhook-builder.d.ts +1 -1
  802. package/dist/webhook/builders/webhook-builder.js +1 -1
  803. package/package.json +4 -4
  804. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  805. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  806. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  807. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -90
  808. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  809. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  810. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  811. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  812. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  813. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  814. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  815. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  816. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  817. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  818. package/dist/configurator/assistant/index.d.ts +0 -1
  819. package/dist/configurator/assistant/index.js +0 -1
  820. package/dist/configurator/assistant/use-assistant-chat.d.ts +0 -30
  821. package/dist/configurator/assistant/use-assistant-chat.js +0 -1
  822. package/dist/configurator/ui/assistant/AssistantPanelProvider.d.ts +0 -42
  823. package/dist/configurator/ui/assistant/AssistantPanelProvider.js +0 -1
  824. package/dist/domain/actions/action-factory.d.ts +0 -10
  825. package/dist/domain/actions/prepare-action-implementations.js +0 -5
  826. package/dist/domain/application/element-registration.js +0 -1
  827. package/dist/domain/application/handler-registration.js +0 -1
  828. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -13
  829. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  830. package/dist/domain/components/debug-state-component.js +0 -1
  831. package/dist/domain/components/domain-component-optic.d.ts +0 -76
  832. package/dist/domain/components/domain-component-optic.js +0 -16
  833. package/dist/domain/components/drag-state-component.js +0 -1
  834. package/dist/domain/components/export-state-component.js +0 -1
  835. package/dist/domain/components/fullscreen-state-component.js +0 -1
  836. package/dist/domain/components/group-components-by-entity-id-and-name.js +0 -1
  837. package/dist/domain/components/hover-state-component.js +0 -1
  838. package/dist/domain/components/index.d.ts +0 -2
  839. package/dist/domain/components/index.js +0 -1
  840. package/dist/domain/components/navigation-state-component.js +0 -1
  841. package/dist/domain/components/selection-state-component.js +0 -1
  842. package/dist/domain/components/system-component-builder.js +0 -1
  843. package/dist/domain/components/system-virtual-entity.js +0 -1
  844. package/dist/domain/components/tool-state-component.js +0 -1
  845. package/dist/domain/components/view-state-component.js +0 -1
  846. package/dist/domain/components/viewport-state-component.js +0 -1
  847. package/dist/domain/core/expression.d.ts +0 -50
  848. package/dist/domain/core/json-schema.js +0 -1
  849. package/dist/domain/core/migrations.js +0 -1
  850. package/dist/domain/core/reflection.js +0 -1
  851. package/dist/domain/domain-context/recipe-system/recipes.js +0 -1
  852. package/dist/domain/expressions/constant-expressions.js +0 -1
  853. package/dist/domain/expressions/custom-expression.d.ts +0 -13
  854. package/dist/domain/expressions/custom-expression.js +0 -1
  855. package/dist/domain/expressions/index.d.ts +0 -1
  856. package/dist/domain/expressions/index.js +0 -1
  857. package/dist/domain/invariants/custom-invariants.d.ts +0 -22
  858. package/dist/domain/invariants/custom-invariants.js +0 -1
  859. package/dist/domain/invariants/invariants.d.ts +0 -68
  860. package/dist/domain/invariants/invariants.js +0 -1
  861. package/dist/domain/invariants/violation-component.js +0 -1
  862. package/dist/domain/relations/all-of-type-relation.js +0 -1
  863. package/dist/domain/relations/component-factories.js +0 -1
  864. package/dist/domain/relations/composed-of.js +0 -1
  865. package/dist/domain/relations/indirect-relation.js +0 -1
  866. package/dist/domain/relations/reference-component.js +0 -1
  867. package/dist/domain/system-components/angle-indicator.js +0 -1
  868. package/dist/domain/system-components/attribute-switch.js +0 -1
  869. package/dist/domain/system-components/autorotate-camera-component.js +0 -1
  870. package/dist/domain/system-components/basic-sidebar-footer.js +0 -1
  871. package/dist/domain/system-components/camera-based-hidden-entity-object.js +0 -1
  872. package/dist/domain/system-components/camera-based-hidden-entity.js +0 -1
  873. package/dist/domain/system-components/canvas-config.js +0 -1
  874. package/dist/domain/system-components/canvas-custom-environment.js +0 -1
  875. package/dist/domain/system-components/canvas-padding.js +0 -1
  876. package/dist/domain/system-components/canvas-preset-environment.js +0 -1
  877. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +0 -1
  878. package/dist/domain/system-components/client-side-image.js +0 -1
  879. package/dist/domain/system-components/color-value.js +0 -1
  880. package/dist/domain/system-components/common/angle-indicator-schema.js +0 -1
  881. package/dist/domain/system-components/common/dimension-indicator-schema.js +0 -1
  882. package/dist/domain/system-components/custom-price-footer.js +0 -1
  883. package/dist/domain/system-components/dimension-indicator.js +0 -1
  884. package/dist/domain/system-components/editable-angle-indicator.js +0 -1
  885. package/dist/domain/system-components/editable-distance-dimension-indicator.js +0 -1
  886. package/dist/domain/system-components/editable-offset-indicator.js +0 -1
  887. package/dist/domain/system-components/editable-size-indicator.js +0 -1
  888. package/dist/domain/system-components/entity-header.js +0 -1
  889. package/dist/domain/system-components/exit-tool-mode-fab.js +0 -1
  890. package/dist/domain/system-components/finalize-action.js +0 -1
  891. package/dist/domain/system-components/finalize-component.js +0 -1
  892. package/dist/domain/system-components/fit-selection-orthographic-camera-component.js +0 -1
  893. package/dist/domain/system-components/fit-selection-perspective-camera-component.js +0 -1
  894. package/dist/domain/system-components/fixed-header.js +0 -1
  895. package/dist/domain/system-components/floating-header.js +0 -1
  896. package/dist/domain/system-components/hidden-header.js +0 -1
  897. package/dist/domain/system-components/hidden-sidebar-footer.js +0 -1
  898. package/dist/domain/system-components/horizontal-tabs.js +0 -1
  899. package/dist/domain/system-components/list-selector-dimension-indicator.js +0 -1
  900. package/dist/domain/system-components/multilingual-text-value.js +0 -1
  901. package/dist/domain/system-components/navigation-steps.js +0 -1
  902. package/dist/domain/system-components/offset-anchors.js +0 -1
  903. package/dist/domain/system-components/offset-indicator.js +0 -1
  904. package/dist/domain/system-components/offset.js +0 -1
  905. package/dist/domain/system-components/other-action.js +0 -1
  906. package/dist/domain/system-components/property-page.js +0 -1
  907. package/dist/domain/system-components/read-sidebar-footer.js +0 -1
  908. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +0 -1
  909. package/dist/domain/system-components/rotatable.js +0 -1
  910. package/dist/domain/system-components/rotation-handle.js +0 -1
  911. package/dist/domain/system-components/save-template-thumbnail.js +0 -1
  912. package/dist/domain/system-components/scene-entity-add-fab.js +0 -1
  913. package/dist/domain/system-components/scene-entity-animation.js +0 -1
  914. package/dist/domain/system-components/scene-entity-control.js +0 -1
  915. package/dist/domain/system-components/scene-entity-delete-fab.js +0 -1
  916. package/dist/domain/system-components/scene-entity-floor-object.js +0 -1
  917. package/dist/domain/system-components/scene-entity-html-hotspot.js +0 -1
  918. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +0 -1
  919. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +0 -1
  920. package/dist/domain/system-components/scene-entity-select-hotspot.js +0 -1
  921. package/dist/domain/system-components/scene-entity-wall-object.js +0 -1
  922. package/dist/domain/system-components/selectable-component.js +0 -1
  923. package/dist/domain/system-components/sidebar-tabs.js +0 -1
  924. package/dist/domain/system-components/simple-summary.js +0 -1
  925. package/dist/domain/system-components/size.js +0 -1
  926. package/dist/domain/system-components/sketching-draw.js +0 -1
  927. package/dist/domain/system-components/sketching-edit.js +0 -1
  928. package/dist/domain/system-components/summary-component.js +0 -1
  929. package/dist/domain/system-components/text-value.js +0 -1
  930. package/dist/domain/system-components/tool-controls.js +0 -1
  931. package/dist/domain/system-components/tool-menu-fab.js +0 -1
  932. package/dist/domain/system-components/universal-sidebar-footer.js +0 -1
  933. package/dist/domain/system-components/view-controls.js +0 -1
  934. package/dist/phoenix/application-spec/generate-assistant-prompt.d.ts +0 -12
  935. package/dist/phoenix/application-spec/generate-assistant-prompt.js +0 -1
  936. /package/dist/domain/{components/component-reader-types.js → application/assistant/assistant-manifest.js} +0 -0
  937. /package/dist/domain/{core/action.js → application/assistant/assistant-resolved-manifest.js} +0 -0
  938. /package/dist/domain/{actions → core/action}/action-factory.js +0 -0
  939. /package/dist/domain/core/{enhanced-json-schema.js → action/action.js} +0 -0
  940. /package/dist/domain/core/{expression.js → component/component-reader-types.js} +0 -0
  941. /package/dist/domain/{components → core/component}/legacy-filter.js +0 -0
  942. /package/dist/domain/{components → core/component}/system-component-filter.js +0 -0
  943. /package/dist/domain/{components → core/component}/system-virtual-entity.d.ts +0 -0
  944. /package/dist/domain/{components → core/component}/updates.js +0 -0
  945. /package/dist/domain/core/{schema-validator.js → data-schema/data-cell-value.js} +0 -0
  946. /package/dist/domain/{relations/reference-field.js → core/data-schema/data-schema-array-field.js} +0 -0
  947. /package/dist/domain/{relations/relation-implementation.js → core/data-schema/data-schema-field-object.js} +0 -0
  948. /package/dist/domain/{invariants → core/invariant}/builtin-invariant.js +0 -0
  949. /package/dist/domain/{invariants → core/invariant}/violation-component.d.ts +0 -0
  950. /package/dist/domain/{invariants → core/invariant}/violation.js +0 -0
  951. /package/dist/domain/core/{alias.d.ts → model/alias.d.ts} +0 -0
  952. /package/dist/domain/core/{alias.js → model/alias.js} +0 -0
  953. /package/dist/domain/core/{common-definitions.d.ts → model/common-definitions.d.ts} +0 -0
  954. /package/dist/domain/core/{common-definitions.js → model/common-definitions.js} +0 -0
  955. /package/dist/domain/core/{component.js → model/component.js} +0 -0
  956. /package/dist/domain/core/{model.d.ts → model/model.d.ts} +0 -0
  957. /package/dist/domain/core/{model.js → model/model.js} +0 -0
  958. /package/dist/domain/core/{preset.d.ts → model/preset.d.ts} +0 -0
  959. /package/dist/domain/core/{preset.js → model/preset.js} +0 -0
  960. /package/dist/domain/{relations → core/relation}/direct-relation.js +0 -0
  961. /package/dist/domain/{relations → core/relation}/relation-factory.js +0 -0
  962. /package/dist/domain/core/{schema-validator-ajv.d.ts → schema/create-ajv-schema-validator.d.ts} +0 -0
  963. /package/dist/domain/core/{schema-validator-ajv.js → schema/create-ajv-schema-validator.js} +0 -0
  964. /package/dist/domain/core/{schema-validator-csp.d.ts → schema/create-csp-schema-validator.d.ts} +0 -0
  965. /package/dist/domain/core/{schema-validator-csp.js → schema/create-csp-schema-validator.js} +0 -0
  966. /package/dist/domain/core/{enhanced-json-schema.d.ts → schema/enhanced-json-schema.d.ts} +0 -0
  967. /package/dist/domain/core/{json-schema.d.ts → schema/extended-schema-validator.d.ts} +0 -0
  968. /package/dist/domain/core/{schema-validator.d.ts → schema/schema-validator.d.ts} +0 -0
  969. /package/dist/domain/core/{state.js → state/state.js} +0 -0
  970. /package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.js +0 -0
  971. /package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.js +0 -0
  972. /package/dist/domain/{system-components → extensions}/attribute-switch.d.ts +0 -0
  973. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.d.ts +0 -0
  974. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.d.ts +0 -0
  975. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.d.ts +0 -0
  976. /package/dist/domain/{system-components → extensions}/client-side-image.d.ts +0 -0
  977. /package/dist/domain/{system-components → extensions}/color-value.d.ts +0 -0
  978. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.d.ts +0 -0
  979. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.js +0 -0
  980. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.d.ts +0 -0
  981. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.js +0 -0
  982. /package/dist/domain/{system-components → extensions}/custom-price-footer.d.ts +0 -0
  983. /package/dist/domain/{system-components → extensions}/finalize-component.d.ts +0 -0
  984. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.d.ts +0 -0
  985. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.d.ts +0 -0
  986. /package/dist/domain/{system-components → extensions}/multilingual-text-value.d.ts +0 -0
  987. /package/dist/domain/{system-components → extensions}/navigation-steps.d.ts +0 -0
  988. /package/dist/domain/{system-components → extensions}/rotatable.d.ts +0 -0
  989. /package/dist/domain/{system-components → extensions}/rotation-handle.d.ts +0 -0
  990. /package/dist/domain/{system-components → extensions}/save-template-thumbnail.d.ts +0 -0
  991. /package/dist/domain/{system-components → extensions}/scene-entity-animation.d.ts +0 -0
  992. /package/dist/domain/{system-components → extensions}/scene-entity-control.d.ts +0 -0
  993. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.d.ts +0 -0
  994. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.d.ts +0 -0
  995. /package/dist/domain/{system-components → extensions}/selectable-component.d.ts +0 -0
  996. /package/dist/domain/{system-components → extensions}/simple-summary.d.ts +0 -0
  997. /package/dist/domain/{system-components → extensions}/summary-component.d.ts +0 -0
  998. /package/dist/domain/{system-components → extensions}/text-value.d.ts +0 -0
  999. /package/dist/domain/{system-components → extensions}/tool-controls.d.ts +0 -0
  1000. /package/dist/domain/{system-components → extensions}/view-controls.d.ts +0 -0
@@ -1 +1 @@
1
- import{jsx as e,jsxs as i}from"react/jsx-runtime";import{Trans as a}from"@lingui/react";import{Button as s,styled as t}from"@mui/material";import{useMemo as n}from"react";import{match as r}from"ts-pattern";import{PhxIcon as o}from"#package/ui-sdk";import{AssistantToolChips as l}from"./AssistantChips.js";import{AssistantMarkdown as d}from"./AssistantMarkdown.js";import{describeAssistantFailure as m}from"./assistant-failure.js";import{AssistantPanelName as p}from"./theme.js";import{buildThreadView as h}from"./thread-items.js";import{useFollowStream as c}from"./use-follow-stream.js";let g=t("div",{name:p,slot:"thread"})({display:"grid",position:"relative"}),u=t("div",{name:p,slot:"messages"})(({theme:{spacing:e,typography:i}})=>({...i.body2,display:"flex",flexDirection:"column",gap:e(1.5),overflowY:"auto",overscrollBehavior:"contain",paddingBlock:e(2),paddingInline:`var(--phx-sidebar-padding, ${e(2)})`,"& > :first-child":{marginBlockStart:"auto"}})),f=t("div",{name:p,slot:"userMessage"})(({theme:{palette:e,spacing:i}})=>({alignSelf:"flex-end",background:`hsl(from ${e.primary.main} h s l / 12%)`,borderRadius:"14px 14px 4px 14px",maxInlineSize:"85%",overflowWrap:"anywhere",paddingBlock:i(1),paddingInline:i(1.5),whiteSpace:"pre-wrap"})),k=t("div",{name:p,slot:"greeting"})({}),v=t("div",{name:p,slot:"status"})(({theme:{palette:e,typography:i}})=>({...i.caption,color:e.text.secondary})),w=t("div",{name:p,slot:"notice"})(({theme:{palette:e,shape:i,spacing:a}})=>({alignItems:"center",background:e.action.hover,borderRadius:i.borderRadius,display:"flex",flexWrap:"wrap",gap:a(1),justifyContent:"space-between",paddingBlock:a(1),paddingInline:a(1.5)})),b=t(s,{name:p,slot:"newReplyButton"})(({theme:{palette:e,spacing:i}})=>({background:e.text.primary,borderRadius:"calc(infinity * 1px)",color:e.background.paper,insetBlockEnd:i(1),insetInlineStart:"50%",position:"absolute",translate:"-50% 0","&:hover":{background:e.text.secondary}})),x=({item:i,isActive:a})=>r(i).with({kind:"user"},({text:i})=>e(f,{children:i})).with({kind:"text"},({markdown:i,isStreaming:a})=>e(d,{markdown:i,isStreaming:a})).with({kind:"tools"},({tools:i})=>e(l,{tools:i,isActive:a})).exhaustive();export const AssistantThread=({chat:t,onRetry:l})=>{let d=t?.messages,p=t?.isLoading??!1,{items:f,isThinking:y}=n(()=>h(d??[],p),[d,p]),j=n(()=>f.filter(({kind:e})=>"user"===e).length,[f]),I=t?.error?m(t.failedStatus):void 0,{scrollerRef:S,hasUnseenContent:T,handleScroll:A,scrollToEnd:B}=c(n(()=>({messages:d,isThinking:y,failure:I?.kind}),[d,y,I?.kind]),j);return i(g,{children:[i(u,{ref:S,onScroll:A,role:"log","aria-live":"polite",children:[t?.isLoaded===!0&&0===f.length&&!p&&!I&&e(k,{children:e(a,{id:"sdk.assistant.thread.greeting",message:"Hi. I can answer questions about this design and change it with you. Tell me what you need."})}),f.map(i=>e(x,{item:i,isActive:p&&i===f.at(-1)},i.id)),y&&e(v,{children:e(a,{id:"sdk.assistant.thread.thinking",message:"Thinking…"})}),I&&i(w,{role:"alert",children:[e("span",{children:r(I.kind).with("notAvailable",()=>e(a,{id:"sdk.assistant.failure.notAvailable",message:"The assistant is not available here."})).with("busy",()=>e(a,{id:"sdk.assistant.failure.busy",message:"The assistant is still working on an earlier message."})).with("unavailable",()=>e(a,{id:"sdk.assistant.failure.unavailable",message:"The assistant is unavailable right now."})).exhaustive()}),I.canRetry&&e(s,{size:"small",variant:"outlined",color:"inherit",onClick:l,children:e(a,{id:"sdk.assistant.failure.retry.label",message:"Try again"})})]})]}),T&&e(b,{size:"small",onClick:B,endIcon:e(o,{name:"CaretDown"}),children:e(a,{id:"sdk.assistant.thread.newReply.label",message:"New reply"})})]})};
1
+ import{jsx as e,jsxs as a}from"react/jsx-runtime";import{Trans as i}from"@lingui/react";import{Button as 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"})})]})};
@@ -1,2 +1,2 @@
1
1
  export { AssistantPanel, ASSISTANT_PANEL_SLOT } from './AssistantPanel.js';
2
- export { AssistantPanelProvider, useAssistantPanel, type AssistantPanelState } from './AssistantPanelProvider.js';
2
+ export { useIsAssistantPanelOpen } from './use-is-assistant-panel-open.js';
@@ -1 +1 @@
1
- export{AssistantPanel,ASSISTANT_PANEL_SLOT}from"./AssistantPanel.js";export{AssistantPanelProvider,useAssistantPanel}from"./AssistantPanelProvider.js";
1
+ export{AssistantPanel,ASSISTANT_PANEL_SLOT}from"./AssistantPanel.js";export{useIsAssistantPanelOpen}from"./use-is-assistant-panel-open.js";
@@ -1,4 +1,5 @@
1
- import type { UIMessage } from '@tanstack/ai-react';
1
+ import type { UIMessage } from '@tanstack/ai-client';
2
+ import type { AssistantEarlierThreadSnapshot } from '../../application-runtime/index.js';
2
3
  import { type AssistantToolChip } from './tool-chip.js';
3
4
  /** A tool call of the thread, with what its chip shows and what a click on the chip logs. */
4
5
  export interface AssistantToolItem {
@@ -8,8 +9,9 @@ export interface AssistantToolItem {
8
9
  readonly result: unknown;
9
10
  }
10
11
  /**
11
- * One block of the thread, in reading order: a user bubble, a stretch of assistant Markdown, or a
12
- * row of chips for the tool calls that follow each other without text in between.
12
+ * One block of the thread, in reading order: a user bubble, a stretch of assistant Markdown, a row
13
+ * of chips for the tool calls that follow each other without text in between, or the line that
14
+ * ends a closed thread of the conversation.
13
15
  */
14
16
  export type AssistantThreadItem = {
15
17
  readonly kind: 'user';
@@ -24,6 +26,9 @@ export type AssistantThreadItem = {
24
26
  readonly kind: 'tools';
25
27
  readonly id: string;
26
28
  readonly tools: readonly AssistantToolItem[];
29
+ } | {
30
+ readonly kind: 'separator';
31
+ readonly id: string;
27
32
  };
28
33
  export interface AssistantThreadView {
29
34
  readonly items: readonly AssistantThreadItem[];
@@ -35,3 +40,9 @@ export interface AssistantThreadView {
35
40
  * results are not shown on their own but decide the state of the chip of their call.
36
41
  */
37
42
  export declare const buildThreadView: (messages: ReadonlyArray<UIMessage>, isReplying: boolean) => AssistantThreadView;
43
+ /**
44
+ * Lays the closed threads of the conversation out above the thread that continues them, oldest
45
+ * first, each ended by a separator: the assistant read on from a summary of it, not from the
46
+ * messages themselves.
47
+ */
48
+ export declare const buildEarlierThreadItems: (earlierThreads: ReadonlyArray<AssistantEarlierThreadSnapshot>) => readonly AssistantThreadItem[];
@@ -1 +1 @@
1
- import{describeToolCall as t}from"./tool-chip.js";let e=t=>{try{return JSON.parse(t)}catch{return t}},r=t=>t.map(t=>"text"===t.type?t.content:"").join("").trim();export const buildThreadView=(o,n)=>{let l=(t=>{let r=new Map;for(let o of t)for(let t of o.parts)"tool-result"===t.type&&r.set(t.toolCallId,{result:"string"==typeof t.content?e(t.content):t.content,error:"error"===t.state?t.error??"The tool call failed.":void 0});return r})(o),i=[],s=o.at(-1),a=t=>{let e=i.at(-1);e?.kind==="tools"?i[i.length-1]={...e,tools:[...e.tools,t]}:i.push({kind:"tools",id:t.id,tools:[t]})};for(let e of o){if("user"===e.role){let t=r(e.parts);t&&i.push({kind:"user",id:e.id,text:t});continue}let o=n&&e===s;e.parts.forEach((r,n)=>{let s=`${e.id}:${n}`;if("text"===r.type){if(r.content.trim()){let t=o&&n===e.parts.length-1;i.push({kind:"text",id:s,markdown:r.content,isStreaming:t})}return}if("tool-call"!==r.type)return;let p=l.get(r.id),d=r.input,u=r.output??p?.result;a({id:r.id,input:d,result:u,chip:t({name:r.name,input:d,result:u,error:p?.error,isReplyRunning:o})})})}let p=i.at(-1),d=s?.role==="assistant"&&(p?.kind==="text"&&p.isStreaming||p?.kind==="tools");return{items:i,isThinking:n&&!d}};
1
+ import{describeToolCall as t}from"./tool-chip.js";let e=t=>{try{return JSON.parse(t)}catch{return t}},r=t=>t.map(t=>"text"===t.type?t.content:"").join("").trim();export const buildThreadView=(o,i)=>{let l=(t=>{let r=new Map;for(let o of t)for(let t of o.parts)"tool-result"===t.type&&r.set(t.toolCallId,{result:"string"==typeof t.content?e(t.content):t.content,error:"error"===t.state?t.error??"The tool call failed.":void 0});return r})(o),n=[],a=o.at(-1),s=t=>{let e=n.at(-1);e?.kind==="tools"?n[n.length-1]={...e,tools:[...e.tools,t]}:n.push({kind:"tools",id:t.id,tools:[t]})};for(let e of o){if("user"===e.role){let t=r(e.parts);t&&n.push({kind:"user",id:e.id,text:t});continue}let o=i&&e===a;e.parts.forEach((r,i)=>{let a=`${e.id}:${i}`;if("text"===r.type){if(r.content.trim()){let t=o&&i===e.parts.length-1;n.push({kind:"text",id:a,markdown:r.content,isStreaming:t})}return}if("tool-call"!==r.type)return;let d=l.get(r.id),p=r.input,u=r.output??d?.result;s({id:r.id,input:p,result:u,chip:t({name:r.name,input:p,result:u,error:d?.error,isReplyRunning:o})})})}let d=n.at(-1),p=a?.role==="assistant"&&(d?.kind==="text"&&d.isStreaming||d?.kind==="tools");return{items:n,isThinking:i&&!p}};export const buildEarlierThreadItems=t=>t.flatMap(({threadId:t,messages:e})=>[...buildThreadView(e,!1).items.map(e=>({...e,id:`${t}:${e.id}`})),{kind:"separator",id:`${t}:separator`}]);
@@ -1,3 +1,4 @@
1
+ import { type AssistantToolErrorCode } from '@salsita-ai/contracts/assistant';
1
2
  /**
2
3
  * How a tool call of the assistant looks in the thread: still running, finished, a change that was
3
4
  * not kept (`failed`), or a read that answered with errors (`flawed`), which matters less because
@@ -16,6 +17,11 @@ export type AssistantToolChipLabel = {
16
17
  export interface AssistantToolChip {
17
18
  readonly label: AssistantToolChipLabel;
18
19
  readonly state: AssistantToolChipState;
20
+ /**
21
+ * Why the server recorded an error in place of the call's result, when it said so with a code this
22
+ * panel knows. Nothing for a call that went wrong for any other reason.
23
+ */
24
+ readonly errorCode: AssistantToolErrorCode | undefined;
19
25
  }
20
26
  /** A tool call of a message as the chip reads it. */
21
27
  export interface AssistantToolCall {
@@ -32,6 +38,7 @@ export interface AssistantToolCall {
32
38
  /**
33
39
  * Describes one tool call for its chip: the label in the order operation names, fixed text for the
34
40
  * `apply` and `query` tools, tool name; and whether the call runs, finished, or went wrong. Why it
35
- * went wrong is not part of it: the tool result words that for the model, not for the user.
41
+ * went wrong is part of it only as the code of an error the server recorded: the text of a tool
42
+ * result is worded for the model, not for the user.
36
43
  */
37
44
  export declare const describeToolCall: (call: AssistantToolCall) => AssistantToolChip;
@@ -1 +1 @@
1
- import{Kind as e,parse as t}from"graphql";import{z as n}from"zod";import{applyTool as r,queryTool as a}from"@salsita-ai/contracts/assistant";let o=n.object({operations:n.array(n.object({query:n.string(),operationName:n.string().nullish()}))}),i=n.object({results:n.array(n.object({errors:n.array(n.unknown()).optional()})),committed:n.boolean()});export const describeToolCall=n=>{let s=(({name:n,input:i})=>{let s,l=(s=o.safeParse(i)).success?s.data.operations.flatMap(({query:n,operationName:r})=>r??(n=>{try{let r=t(n).definitions.find(t=>t.kind===e.OPERATION_DEFINITION);return r?.kind===e.OPERATION_DEFINITION?r.name?.value:void 0}catch{return}})(n)??[]):[];return l.length>0?{kind:"text",text:l.join(", ")}:n===r.name?{kind:"updateDesign"}:n===a.name?{kind:"readDesign"}:{kind:"text",text:n}})(n);return null==n.result&&null==n.error?{label:s,state:n.isReplyRunning?"running":"done"}:{label:s,state:(({name:e,result:t,error:n})=>{if(null!=n)return e===a.name?"flawed":"failed";let o=i.safeParse(t);if(!o.success)return"done";let{results:s,committed:l}=o.data;return e===r.name?l?"done":"failed":s.some(({errors:e})=>(e?.length??0)>0)||0===s.length?"flawed":"done"})(n)}};
1
+ import{Kind as e,parse as t}from"graphql";import{z as n}from"zod";import{ASSISTANT_TOOL_ERROR_CODES as r,AssistantToolError as a,applyTool as i,queryTool as o}from"@salsita-ai/contracts/assistant";let l=n.object({operations:n.array(n.object({query:n.string(),operationName:n.string().nullish()}))}),s=n.object({results:n.array(n.object({errors:n.array(n.unknown()).optional()})),committed:n.boolean()});export const describeToolCall=n=>{let d=(({name:n,input:r})=>{let a,s=(a=l.safeParse(r)).success?a.data.operations.flatMap(({query:n,operationName:r})=>r??(n=>{try{let r=t(n).definitions.find(t=>t.kind===e.OPERATION_DEFINITION);return r?.kind===e.OPERATION_DEFINITION?r.name?.value:void 0}catch{return}})(n)??[]):[];return s.length>0?{kind:"text",text:s.join(", ")}:n===i.name?{kind:"updateDesign"}:n===o.name?{kind:"readDesign"}:{kind:"text",text:n}})(n);if(null==n.result&&null==n.error)return{label:d,state:n.isReplyRunning?"running":"done",errorCode:void 0};let u=(e=>{let t=a.safeParse(e);if(t.success)return r.find(e=>e===t.data.code)})(n.result);return{label:d,state:(({name:e,result:t,error:n},r)=>{if(null!=n||null!=r)return e===o.name?"flawed":"failed";if(e!==i.name&&e!==o.name)return"done";let a=s.safeParse(t);if(!a.success)return e===o.name?"flawed":"failed";let{results:l,committed:d}=a.data;return e===i.name?d?"done":"failed":l.some(({errors:e})=>(e?.length??0)>0)||0===l.length?"flawed":"done"})(n,u),errorCode:u}};
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Whether the assistant panel is shown: it was opened and the application spec still has the
3
+ * `assistant` section, which editor hot reload can take away under an open panel.
4
+ */
5
+ export declare const useIsAssistantPanelOpen: () => boolean;
@@ -0,0 +1 @@
1
+ import{useEagerObservableSelector as e,useSpecAssistant as n}from"#package/react-sdk";import{useConfigurator as t}from"../../application-runtime/index.js";export const useIsAssistantPanelOpen=()=>{let{assistantSystem:p}=t(),r=n();return e(p.panel$,e=>e.open,[])&&null!=r};
@@ -1,4 +1,4 @@
1
- import{jsx as a,jsxs as t,Fragment as o}from"react/jsx-runtime";import{keyframes as e,paperClasses as r,snackbarClasses as d,styled as i,useTheme as n,useThemeProps as s}from"@mui/material";import{AnimatePresence as l,motion as p}from"motion/react";import{useCallback as b,useRef as u}from"react";import{useAccessService as c,useIsFullscreenActive as m}from"#package/react-sdk";import{attrf as h,commonStyles as y,numToPx as g,useInvalidateScrollTimeline as f,useIsEmpty as x,useResponsive as k}from"#package/ui-sdk";import{usePreview as v}from"../../../configurator-context/index.js";import{ASSISTANT_PANEL_SLOT as S,AssistantPanel as E,useAssistantPanel as w}from"../../assistant/index.js";import{LayoutSlots as R}from"../slots/index.js";import{DesktopPreview as $}from"./DesktopPreview.js";import{useSceneSafeArea as B}from"./use-scene-safe-area.js";let C="PhxDesktopSidebar",D="minimalist",T="split",I="visible",A="hidden",P="assistant",F={Root:i("div",{name:C,slot:"root",shouldForwardProp:a=>"ownerState"!==a})(({ownerState:a})=>[`
1
+ import{jsx as a,jsxs as t,Fragment as o}from"react/jsx-runtime";import{keyframes as e,paperClasses as r,snackbarClasses as d,styled as i,useTheme as n,useThemeProps as s}from"@mui/material";import{AnimatePresence as l,motion as p}from"motion/react";import{useCallback as b,useRef as u}from"react";import{useAccessService as c,useIsFullscreenActive as h}from"#package/react-sdk";import{attrf as m,commonStyles as y,numToPx as g,useInvalidateScrollTimeline as f,useIsEmpty as x,useResponsive as k}from"#package/ui-sdk";import{usePreview as v}from"../../../configurator-context/index.js";import{ASSISTANT_PANEL_SLOT as S,AssistantPanel as E,useIsAssistantPanelOpen as w}from"../../assistant/index.js";import{LayoutSlots as R}from"../slots/index.js";import{DesktopPreview as $}from"./DesktopPreview.js";import{useLayoutSceneSafeArea as B}from"./use-layout-scene-safe-area.js";let C="PhxDesktopSidebar",D="minimalist",T="split",I="visible",A="hidden",P="assistant",F={Root:i("div",{name:C,slot:"root",shouldForwardProp:a=>"ownerState"!==a})(({ownerState:a})=>[`
2
2
  --phx-sidebar-background: ${a.background};
3
3
  --phx-sidebar-border: ${a.border};
4
4
  --phx-sidebar-filter: ${a.filter};
@@ -38,12 +38,12 @@ import{jsx as a,jsxs as t,Fragment as o}from"react/jsx-runtime";import{keyframes
38
38
  [bottom-start]
39
39
  min-content
40
40
  [bottom-end full-end]
41
- `,inset:0,isolation:"isolate",pointerEvents:"none",position:"absolute","@container style(--inspect: on)":{'& > *, & > * > *, [data-layout*="slot[body.footer]"] > *':{outline:"2px solid hsl(from tomato h s l / 50%)"}},'[data-layout*="interactive"]':{"& > *":{pointerEvents:"auto"}},'[data-layout*="slot[header]"]':{gridArea:"top-start / main-start / top-end / sidebar-end"},'[data-layout*="slot[body]"]':{containerType:"size",display:"grid",gridArea:"main",gridRowStart:"top-end",gridTemplateRows:"min-content 1fr min-content"},'[data-layout*="slot[body.top]"]':{gridArea:"1 / 1 / 2 / -1","& > *":{...y.transition.fadeIn}},'[data-layout*="slot[body.safeSceneArea]"]':{gridArea:"1 / 1 / 3 / -1","@container style(--inspect: on)":{background:"hsl(from lime h s l / 50%)"}},'[data-layout*="slot[body.bottom]"]':{alignItems:"end",display:"grid",gap:t(2),gridArea:"3 / 1 / 4 / -1",gridTemplateColumns:"minmax(0, auto) minmax(60px, 1fr)",justifyContent:"start",position:"relative",'&:has([data-layout="slot[body.viewControls]"]:empty)':{gap:0,gridTemplateColumns:"repeat(2, auto)"}},'[data-layout="slot[body.toolbar]"]':{animation:`${o} auto linear both`,animationTimeline:"scroll(self inline)",display:"flex",margin:t(-2),overflowX:"scroll",overscrollBehavior:"contain",padding:t(2),scrollbarWidth:"none","&::after":{content:'""'}},'[data-layout="slot[body.toolControls]"]':{insetBlockEnd:`calc(100% + ${t(6)})`,position:"absolute","& > *":{...y.transition.fadeIn,transitionDuration:"300ms"}},'[data-layout="slot[body.viewControls]"]':{},'[data-layout="slot[body.logo]"], [data-layout="slot[body.sideEffects]"]':{insetBlockEnd:`calc(100% + ${t(2)})`,position:"absolute"},'[data-layout="slot[body.sideEffects]"]':{insetInline:0,[`.${d.root}`]:{inset:"unset",insetBlockEnd:0,position:"absolute"}},'[data-layout*="slot[sidebar]"]':{display:"grid",gridArea:"top-start / sidebar-start / main-end / sidebar-end",gridTemplateRows:"minmax(0, auto)"},'[data-layout*="slot[footer]"]':{display:"grid",gap:"var(--phx-layout-gap)",gridArea:"bottom-start / full-start / bottom-end / full-end"},'&:has([data-header*="fixed"])':{'[data-layout*="slot[header]"]':{gridArea:"full-start / full-start / top-end / full-end"},'[data-layout*="slot[body]"]':{gridRowStart:"main-start"},'[data-layout*="slot[sidebar]"]':{gridRow:"main-start / main-end"}},'&:has([data-header*="floating"])':{'[data-layout*="slot[header]"]':{gridColumnEnd:"main-end"}},[`&:has([data-sidebar*="${D}"])`]:{'[data-layout*="slot[sidebar]"]':{alignContent:"end",gridRow:"main-start / main-end"}},[`&:has([data-header*="floating"]):has([data-sidebar*="${D}"])`]:{'[data-layout*="slot[header]"]':{gridColumnEnd:"sidebar-end"},'[data-layout*="slot[sidebar]"]':{gridRowStart:"top-end"}},[`&:has([data-sidebar*="${P}"])`]:{'[data-layout*="slot[sidebar]"]':{alignContent:"stretch"}},[`&:has([data-sidebar*="${A}"])`]:{"--phx-layout-gap":0,"--phx-layout-sidebar-track-size":0,'[data-layout*="slot[sidebar]"]':{overflow:"hidden"}}}]}),H=i("div")({gridArea:"1 / 1 / -1 / -1"});export const DesktopLayout=()=>{let e=u(null),r=u(null),{palette:d,shape:i,spacing:p}=n(),{sidebarWidth:y="clamp(360px, 30cqi, 400px)"}=s({props:{},name:j}),{background:g=d.background.paper,border:S=0,borderRadius:L=i.sidebarBorderRadius??i.borderRadius,filter:W=`
41
+ `,inset:0,isolation:"isolate",pointerEvents:"none",position:"absolute","@container style(--inspect: on)":{'& > *, & > * > *, [data-layout*="slot[body.footer]"] > *':{outline:"2px solid hsl(from tomato h s l / 50%)"}},'[data-layout*="interactive"]':{"& > *":{pointerEvents:"auto"}},'[data-layout*="slot[header]"]':{gridArea:"top-start / main-start / top-end / sidebar-end"},'[data-layout*="slot[body]"]':{containerType:"size",display:"grid",gridArea:"main",gridRowStart:"top-end",gridTemplateRows:"min-content 1fr min-content"},'[data-layout*="slot[body.top]"]':{gridArea:"1 / 1 / 2 / -1","& > *":{...y.transition.fadeIn}},'[data-layout*="slot[body.safeSceneArea]"]':{gridArea:"1 / 1 / 3 / -1","@container style(--inspect: on)":{background:"hsl(from lime h s l / 50%)"}},'[data-layout*="slot[body.bottom]"]':{alignItems:"end",display:"grid",gap:t(2),gridArea:"3 / 1 / 4 / -1",gridTemplateColumns:"minmax(0, auto) minmax(60px, 1fr)",justifyContent:"start",position:"relative",'&:has([data-layout="slot[body.viewControls]"]:empty)':{gap:0,gridTemplateColumns:"repeat(2, auto)"}},'[data-layout="slot[body.toolbar]"]':{animation:`${o} auto linear both`,animationTimeline:"scroll(self inline)",display:"flex",margin:t(-2),overflowX:"scroll",overscrollBehavior:"contain",padding:t(2),scrollbarWidth:"none","&::after":{content:'""'}},'[data-layout="slot[body.toolControls]"]':{insetBlockEnd:`calc(100% + ${t(6)})`,position:"absolute","& > *":{...y.transition.fadeIn,transitionDuration:"300ms"}},'[data-layout="slot[body.viewControls]"]':{},'[data-layout="slot[body.logo]"], [data-layout="slot[body.sideEffects]"]':{insetBlockEnd:`calc(100% + ${t(2)})`,position:"absolute"},'[data-layout="slot[body.sideEffects]"]':{insetInline:0,[`.${d.root}`]:{inset:"unset",insetBlockEnd:0,position:"absolute"}},'[data-layout*="slot[sidebar]"]':{display:"grid",gridArea:"top-start / sidebar-start / main-end / sidebar-end",gridTemplateRows:"minmax(0, auto)"},'[data-layout*="slot[footer]"]':{display:"grid",gap:"var(--phx-layout-gap)",gridArea:"bottom-start / full-start / bottom-end / full-end"},'&:has([data-header*="fixed"])':{'[data-layout*="slot[header]"]':{gridArea:"full-start / full-start / top-end / full-end"},'[data-layout*="slot[body]"]':{gridRowStart:"main-start"},'[data-layout*="slot[sidebar]"]':{gridRow:"main-start / main-end"}},'&:has([data-header*="floating"])':{'[data-layout*="slot[header]"]':{gridColumnEnd:"main-end"}},[`&:has([data-sidebar*="${D}"])`]:{'[data-layout*="slot[sidebar]"]':{alignContent:"end",gridRow:"main-start / main-end"}},[`&:has([data-header*="floating"]):has([data-sidebar*="${D}"])`]:{'[data-layout*="slot[header]"]':{gridColumnEnd:"sidebar-end"},'[data-layout*="slot[sidebar]"]':{gridRowStart:"top-end"}},[`&:has([data-sidebar*="${P}"])`]:{'[data-layout*="slot[sidebar]"]':{alignContent:"stretch"}},[`&:has([data-sidebar*="${A}"])`]:{"--phx-layout-gap":0,"--phx-layout-sidebar-track-size":0,'[data-layout*="slot[sidebar]"]':{overflow:"hidden"}}}]}),H=i("div")({gridArea:"1 / 1 / -1 / -1"});export const DesktopLayout=()=>{let e=u(null),r=u(null),{palette:d,shape:i,spacing:p}=n(),{sidebarWidth:y="clamp(360px, 30cqi, 400px)"}=s({props:{},name:j}),{background:g=d.background.paper,border:S=0,borderRadius:L=i.sidebarBorderRadius??i.borderRadius,filter:M=`
42
42
  drop-shadow(0 1px 1.5px hsl(from ${d.common.black} h s l / 12%))
43
43
  drop-shadow(0 1px 0.5px hsl(from ${d.common.black} h s l / 14%))
44
44
  drop-shadow(0 2px 0.5px hsl(from ${d.common.black} h s l / 20%))
45
- `,padding:q=p(2.5),scrollableIndicatorBackground:M=`linear-gradient(
45
+ `,padding:W=p(2.5),scrollableIndicatorBackground:q=`linear-gradient(
46
46
  180deg,
47
47
  hsl(from black h s l / 12%),
48
48
  hsl(from black h s l / 0%) 8px
49
- )`}=s({props:{},name:C}),{hasMiniSidebar:N,hasSplitSidebar:V}=R.useSidebarContent(),X=w()?.open??!1,{accessInfo:G}=c(),J=m(),{isPreview:K,isHidden:O}=v(),Q=!O&&!K,U=!J,{setCanvasPadding:Y,setAnimating:Z}=k(),{containerRef:_,safeAreaRef:aa,update:at}=B(Y,N&&!X,Q),ao=b(()=>{Z(!0)},[Z]),ae=b(()=>{Z(!1),at()},[Z,at]),ar=Q&&U,ad=x(e,{disabled:!ar}),ai=x(r,{disabled:!ar});f(r,{disabled:!ar});let an={background:g,border:S,borderRadius:L,filter:W,isHeaderEmpty:ad,isContentEmpty:ai,padding:q,scrollableIndicatorBackground:M,width:y};return a(o,{children:t(l,{mode:"wait",children:[!O&&K&&a($,{},"preview-layout"),Q&&t(z,{layoutId:"ui-layout",layout:!0,ownerState:{sidebarWidth:y},"data-layout":h({state:{initial:!J,fullscreen:J}}),onLayoutAnimationStart:ao,onLayoutAnimationComplete:ae,children:[a(H,{ref:_}),a("header",{"data-layout":"slot[header]",children:a(R.DesktopHeader,{})}),t("main",{"data-layout":"slot[body]",children:[a("div",{"data-layout":"slot[body.top] interactive",children:a(R.DesktopCallToAction,{})}),a("div",{ref:aa,"data-layout":"slot[body.safeSceneArea]"}),t("div",{"data-layout":"slot[body.bottom] interactive",children:[a("div",{"data-layout":"slot[body.toolbar]",children:a(R.DesktopToolbar,{})}),a("div",{"data-layout":"slot[body.toolControls]",children:!J&&a(R.DesktopToolControls,{})}),a("div",{"data-layout":"slot[body.viewControls]",children:a(R.DesktopViewControls,{})}),a("div",{"data-layout":"slot[body.logo]",children:a(R.DesktopPoweredBy,{})}),a("div",{"data-layout":"slot[body.sideEffects]",children:a(R.DesktopSnackbarsRoot,{})})]})]}),a("aside",{"data-layout":"slot[sidebar]",children:t(F.Root,{ownerState:an,"data-sidebar":h({variant:{[`${D}`]:N,[`${T}`]:V},state:{[`${I}`]:U,[`${A}`]:!U,[`${P}`]:X}}),inert:U?void 0:"",children:[a(F.Tabs,{ownerState:an,"data-sidebar":"slot[tabs]",children:a(R.DesktopSidebarTabs,{})}),a(F.Header,{ref:e,ownerState:an,"data-sidebar":"slot[header]",children:a(R.DesktopSidebarBackButton,{})}),a(F.Body,{ownerState:an,"data-sidebar":"slot[body]",children:a(F.Content,{ref:r,ownerState:an,"data-sidebar":"slot[content]",children:a(R.DesktopSidebarContent,{})})}),a(F.Footer,{ownerState:an,"data-sidebar":"slot[footer]",children:a(R.DesktopSidebarFooter,{})}),a(E,{})]})}),t("footer",{"data-layout":"slot[footer] interactive",children:[G.viewMode&&!J&&a(R.DesktopReadonlyBanner,{}),a(R.DesktopFooter,{})]})]},"interface-layout")]})})};
49
+ )`}=s({props:{},name:C}),{hasMiniSidebar:N,hasSplitSidebar:V}=R.useSidebarContent(),X=w(),{accessInfo:G}=c(),J=h(),{isPreview:K,isHidden:O}=v(),Q=!O&&!K,U=!J,{setAnimating:Y}=k(),{containerRef:Z,safeAreaRef:_,update:aa}=B({enabled:Q,hasMiniSidebar:N&&!X}),at=b(()=>{Y(!0)},[Y]),ao=b(()=>{Y(!1),aa()},[Y,aa]),ae=Q&&U,ar=x(e,{disabled:!ae}),ad=x(r,{disabled:!ae});f(r,{disabled:!ae});let ai={background:g,border:S,borderRadius:L,filter:M,isHeaderEmpty:ar,isContentEmpty:ad,padding:W,scrollableIndicatorBackground:q,width:y};return a(o,{children:t(l,{mode:"wait",children:[!O&&K&&a($,{},"preview-layout"),Q&&t(z,{layoutId:"ui-layout",layout:!0,ownerState:{sidebarWidth:y},"data-layout":m({state:{initial:!J,fullscreen:J}}),onLayoutAnimationStart:at,onLayoutAnimationComplete:ao,children:[a(H,{ref:Z}),a("header",{"data-layout":"slot[header]",children:a(R.DesktopHeader,{})}),t("main",{"data-layout":"slot[body]",children:[a("div",{"data-layout":"slot[body.top] interactive",children:a(R.DesktopCallToAction,{})}),a("div",{ref:_,"data-layout":"slot[body.safeSceneArea]"}),t("div",{"data-layout":"slot[body.bottom] interactive",children:[a("div",{"data-layout":"slot[body.toolbar]",children:a(R.DesktopToolbar,{})}),a("div",{"data-layout":"slot[body.toolControls]",children:!J&&a(R.DesktopToolControls,{})}),a("div",{"data-layout":"slot[body.viewControls]",children:a(R.DesktopViewControls,{})}),a("div",{"data-layout":"slot[body.logo]",children:a(R.DesktopPoweredBy,{})}),a("div",{"data-layout":"slot[body.sideEffects]",children:a(R.DesktopSnackbarsRoot,{})})]})]}),a("aside",{"data-layout":"slot[sidebar]",children:t(F.Root,{ownerState:ai,"data-sidebar":m({variant:{[`${D}`]:N,[`${T}`]:V},state:{[`${I}`]:U,[`${A}`]:!U,[`${P}`]:X}}),inert:U?void 0:"",children:[a(F.Tabs,{ownerState:ai,"data-sidebar":"slot[tabs]",children:a(R.DesktopSidebarTabs,{})}),a(F.Header,{ref:e,ownerState:ai,"data-sidebar":"slot[header]",children:a(R.DesktopSidebarBackButton,{})}),a(F.Body,{ownerState:ai,"data-sidebar":"slot[body]",children:a(F.Content,{ref:r,ownerState:ai,"data-sidebar":"slot[content]",children:a(R.DesktopSidebarContent,{})})}),a(F.Footer,{ownerState:ai,"data-sidebar":"slot[footer]",children:a(R.DesktopSidebarFooter,{})}),a(E,{})]})}),t("footer",{"data-layout":"slot[footer] interactive",children:[G.viewMode&&!J&&a(R.DesktopReadonlyBanner,{}),a(R.DesktopFooter,{})]})]},"interface-layout")]})})};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{useCallback as e,useMemo as o}from"react";import{useResolveLocalizable as a}from"#package/react-sdk";import{Preview as i,useResponsive as r}from"#package/ui-sdk";import{usePresetSelection as n,usePreview as s}from"../../../configurator-context/index.js";import{useSceneSafeArea as p}from"./use-scene-safe-area.js";let m={id:"sdk.preview.customize.title",message:"Customize product"},u={id:"sdk.preview.start.button.label",message:"Start configuring"},c={layoutId:"ui-layout",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{layout:{type:"spring",bounce:.2,duration:.6},opacity:{duration:.2,ease:"linear"}}};export const DesktopPreview=l=>{let{slotProps:d={},slots:f}=l,{enter:y}=s(),{hasMultiplePresets:g}=n(),{setCanvasPadding:k,setAnimating:x}=r(),{containerRef:b,safeAreaRef:j,update:w}=p(k,!1),S=a(),v=e(()=>{x(!0)},[x]),A=e(()=>{x(!1),w()},[x,w]),L=o(()=>({...d,root:{...c,onLayoutAnimationStart:v,onLayoutAnimationComplete:A,...d.root}}),[A,v,d]);return t(i,{title:S(m),buttonLabel:S(u),containerRef:b,safeAreaRef:j,withScene:!g,slots:f,slotProps:L,onStart:y})};
1
+ import{jsx as t}from"react/jsx-runtime";import{useCallback as e,useMemo as o}from"react";import{useResolveLocalizable as a}from"#package/react-sdk";import{Preview as i,useResponsive as r}from"#package/ui-sdk";import{usePresetSelection as n,usePreview as s}from"../../../configurator-context/index.js";import{useLayoutSceneSafeArea as p}from"./use-layout-scene-safe-area.js";let u={id:"sdk.preview.customize.title",message:"Customize product"},m={id:"sdk.preview.start.button.label",message:"Start configuring"},c={layoutId:"ui-layout",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{layout:{type:"spring",bounce:.2,duration:.6},opacity:{duration:.2,ease:"linear"}}};export const DesktopPreview=l=>{let{slotProps:d={},slots:f}=l,{enter:y}=s(),{hasMultiplePresets:g}=n(),{setAnimating:b}=r(),{containerRef:k,safeAreaRef:x,update:S}=p({enabled:!0,hasMiniSidebar:!1}),j=a(),w=e(()=>{b(!0)},[b]),v=e(()=>{b(!1),S()},[b,S]),A=o(()=>({...d,root:{...c,onLayoutAnimationStart:w,onLayoutAnimationComplete:v,...d.root}}),[v,w,d]);return t(i,{title:j(u),buttonLabel:j(m),containerRef:k,safeAreaRef:x,withScene:!g,slots:f,slotProps:A,onStart:y})};
@@ -1 +1 @@
1
- import{jsx as r,jsxs as s,Fragment as o}from"react/jsx-runtime";import{useResponsive as t}from"#package/ui-sdk";import{AssistantPanelProvider as e}from"../../assistant/index.js";import{LayoutSlots as a}from"../slots/index.js";import{DesktopLayout as i}from"./DesktopLayout.js";import{MobileLayout as m}from"./MobileLayout.js";export const Layout=()=>{let{isDesktop:n}=t();return s(o,{children:[r(a.Services,{}),r(a.SharedCanvas,{}),r(e,{children:n?r(i,{}):r(m,{})})]})};
1
+ import{jsx as r,jsxs as o,Fragment as s}from"react/jsx-runtime";import{useResponsive as t}from"#package/ui-sdk";import{LayoutSlots as e}from"../slots/index.js";import{DesktopLayout as a}from"./DesktopLayout.js";import{MobileLayout as m}from"./MobileLayout.js";export const Layout=()=>{let{isDesktop:i}=t();return o(s,{children:[r(e.Services,{}),r(e.SharedCanvas,{}),i?r(a,{}):r(m,{})]})};
@@ -1,4 +1,4 @@
1
- import{jsx as t,jsxs as a,Fragment as e}from"react/jsx-runtime";import{snackbarClasses as o,styled as i,useTheme as r,useThemeProps as n}from"@mui/material";import d from"lodash/noop.js";import{AnimatePresence as s}from"motion/react";import{useRef as l}from"react";import{useAccessService as m,useIsFullscreenActive as c}from"#package/react-sdk";import{attrf as p,commonStyles as u,numToPx as b,useIsEmpty as h,useResponsive as g,useViewportSize as f}from"#package/ui-sdk";import{usePreview as y}from"../../../configurator-context/index.js";import{ASSISTANT_PANEL_SLOT as x,AssistantPanel as v,useAssistantPanel as w}from"../../assistant/index.js";import{LayoutSlots as S}from"../slots/index.js";import{MobileHeader as $}from"../slots/slots.js";import{MobilePreview as k}from"./MobilePreview.js";import{useSceneSafeArea as C}from"./use-scene-safe-area.js";let F="visible",M="hidden",T=i("div",{name:"PhxMobileHeader",slot:"root"})(({theme:{spacing:t}})=>({...u.transition.fadeInFrom,alignItems:"center",display:"flex",gap:t(1),justifyContent:"space-between",position:"relative","@container style(--inspect: on)":{background:"hsl(from tomato h s l / 50%)"},'[data-header*="slot"]':{display:"flex",gap:t(2),"& > *":{pointerEvents:"auto"}},'[data-header="slot[center]"]':{display:"grid",inset:0,placeItems:"center",position:"absolute"},[`&[data-header*="${F}"]`]:{opacity:1,transitionDuration:"200ms, 300ms",transitionTimingFunction:"linear, ease-out",translate:"0 0"},[`&[data-header*="${M}"]`]:{opacity:0,transitionDuration:"100ms, 100ms",transitionTimingFunction:"linear, ease-in",translate:"0 -60%"}})),I="visible",R="hidden",B=i("div",{name:"PhxMobileControls",slot:"root"})(({theme:{spacing:t}})=>({alignItems:"end",display:"flex",position:"relative","@container style(--inspect: on)":{background:"hsl(from tomato h s l / 50%)"},'[data-controls*="slot"]':{"& > *":{pointerEvents:"auto"}},'[data-controls="slot[toolControls]"]':{...u.transition.fadeInFrom,"&:not(:empty)":{marginInlineEnd:t(2)},"& > *":{...u.transition.fadeIn,transitionDelay:"300ms",transitionDuration:"300ms"}},'[data-controls="slot[viewControls]"]':{...u.transition.fadeInFrom,marginInlineStart:"auto"},'[data-controls="slot[toolbar]"]':{"&:not(:empty)":{marginInlineStart:t(2)}},[`&[data-controls*="${I}"]`]:{'[data-controls="slot[toolControls]"], [data-controls="slot[viewControls]"]':{opacity:1,transitionDuration:"200ms, 300ms",transitionTimingFunction:"linear, ease-out",translate:"0 0"}},[`&[data-controls*="${R}"]`]:{'[data-controls="slot[toolControls]"], [data-controls="slot[viewControls]"]':{opacity:0,transitionDuration:"100ms, 100ms",transitionTimingFunction:"linear, ease-in",translate:"0 60%"}}})),E="PhxMobileSidebar",P="visible",D="hidden",j="assistant",A={Root:i("div",{name:E,slot:"root",shouldForwardProp:t=>"ownerState"!==t})(({ownerState:t})=>[`
1
+ import{jsx as t,jsxs as a,Fragment as e}from"react/jsx-runtime";import{snackbarClasses as o,styled as i,useTheme as r,useThemeProps as n}from"@mui/material";import{AnimatePresence as d}from"motion/react";import{useRef as s}from"react";import{useAccessService as l,useEagerObservableSelector as m,useIsFullscreenActive as c}from"#package/react-sdk";import{attrf as p,commonStyles as u,numToPx as b,useIsEmpty as h,useViewportSize as g}from"#package/ui-sdk";import{useConfigurator as f}from"../../../application-runtime/index.js";import{usePreview as y}from"../../../configurator-context/index.js";import{ASSISTANT_PANEL_SLOT as x,AssistantPanel as v,useIsAssistantPanelOpen as w}from"../../assistant/index.js";import{LayoutSlots as S}from"../slots/index.js";import{MobileHeader as $}from"../slots/slots.js";import{MobilePreview as k}from"./MobilePreview.js";import{useLayoutSceneSafeArea as C}from"./use-layout-scene-safe-area.js";let F="visible",M="hidden",T=i("div",{name:"PhxMobileHeader",slot:"root"})(({theme:{spacing:t}})=>({...u.transition.fadeInFrom,alignItems:"center",display:"flex",gap:t(1),justifyContent:"space-between",position:"relative","@container style(--inspect: on)":{background:"hsl(from tomato h s l / 50%)"},'[data-header*="slot"]':{display:"flex",gap:t(2),"& > *":{pointerEvents:"auto"}},'[data-header="slot[center]"]':{display:"grid",inset:0,placeItems:"center",position:"absolute"},[`&[data-header*="${F}"]`]:{opacity:1,transitionDuration:"200ms, 300ms",transitionTimingFunction:"linear, ease-out",translate:"0 0"},[`&[data-header*="${M}"]`]:{opacity:0,transitionDuration:"100ms, 100ms",transitionTimingFunction:"linear, ease-in",translate:"0 -60%"}})),I="visible",R="hidden",B=i("div",{name:"PhxMobileControls",slot:"root"})(({theme:{spacing:t}})=>({alignItems:"end",display:"flex",position:"relative","@container style(--inspect: on)":{background:"hsl(from tomato h s l / 50%)"},'[data-controls*="slot"]':{"& > *":{pointerEvents:"auto"}},'[data-controls="slot[toolControls]"]':{...u.transition.fadeInFrom,"&:not(:empty)":{marginInlineEnd:t(2)},"& > *":{...u.transition.fadeIn,transitionDelay:"300ms",transitionDuration:"300ms"}},'[data-controls="slot[viewControls]"]':{...u.transition.fadeInFrom,marginInlineStart:"auto"},'[data-controls="slot[toolbar]"]':{"&:not(:empty)":{marginInlineStart:t(2)}},[`&[data-controls*="${I}"]`]:{'[data-controls="slot[toolControls]"], [data-controls="slot[viewControls]"]':{opacity:1,transitionDuration:"200ms, 300ms",transitionTimingFunction:"linear, ease-out",translate:"0 0"}},[`&[data-controls*="${R}"]`]:{'[data-controls="slot[toolControls]"], [data-controls="slot[viewControls]"]':{opacity:0,transitionDuration:"100ms, 100ms",transitionTimingFunction:"linear, ease-in",translate:"0 60%"}}})),E="PhxMobileSidebar",P="visible",D="hidden",j="assistant",A={Root:i("div",{name:E,slot:"root",shouldForwardProp:t=>"ownerState"!==t})(({ownerState:t})=>[`
2
2
  --phx-sidebar-background: ${t.background};
3
3
  --phx-sidebar-padding: ${t.padding};
4
4
  --phx-sidebar-radius: ${t.borderRadius}px;
@@ -39,4 +39,4 @@ import{jsx as t,jsxs as a,Fragment as e}from"react/jsx-runtime";import{snackbarC
39
39
  [footer-end]
40
40
  var(--phx-layout-gutter)
41
41
  [full-end]
42
- `},'[data-layout*="slot[body.header]"]':{gridArea:"header-start / main-start / header-end / main-end"},'[data-layout*="slot[body.footer]"]':{gridArea:"footer-start / main-start / footer-end / main-end",position:"relative"},'[data-layout*="slot[body.safeSceneArea]"]':{gridArea:"full","@container style(--inspect: on)":{background:"hsl(from lime h s l / 50%)"}},'[data-layout="slot[body.sideEffects]"]':{insetBlockEnd:`calc(100% + ${a(2)})`,position:"absolute"},'[data-layout*="slot[sidebar]"]':{display:"grid",gridArea:"sidebar-start / full-start / sidebar-end / full-end",gridTemplateColumns:"minmax(0, 1fr)",gridTemplateRows:"minmax(0, auto)"},'[data-layout*="slot[footer]"]':{gridArea:"footer-start / full-start / footer-end / full-end",zIndex:1},'&:has([data-sidebar*="slot[content]"])':{...t.isContentEmpty&&{"--phx-layout-sidebar-track-size":"min-content"}},[`&[data-layout*="${z}"]`]:{transitionDelay:"200ms",transitionDuration:"300ms"},[`&[data-layout*="${H}"]`]:{transitionDelay:"0ms",transitionDuration:"300ms"},[`&:has([data-sidebar*="${D}"])[class]`]:{"--phx-layout-sidebar-track-size":0}},null!=t.assistantFocusHeight&&{'[data-layout*="slot[sidebar]"]':{alignSelf:"start",blockSize:`min(100%, ${t.assistantFocusHeight}px)`,gridRow:"full-start / full-end",zIndex:2}}]),V=i("div")({gridArea:"1 / 1 / -1 / -1"}),G=t=>({inert:t?"":void 0});export const MobileLayout=()=>{let o=l(null),{palette:i,shape:u,spacing:b}=r(),{sidebarHeight:x=L}=n({props:{},name:"PhxMobileLayout"}),{background:J=i.background.paper,borderRadius:K=u.sidebarBorderRadius??u.borderRadius,padding:O=b(2)}=n({props:{},name:E}),{accessInfo:Q}=m(),U=c(),{isPreview:W,isHidden:X}=y(),Y=!X&&!W,Z=!U&&Y,_=!U&&Y,tt=!U,{setCanvasPadding:ta}=g(),{containerRef:te,safeAreaRef:to}=C(Y?ta:d,!1),ti=h(o,{disabled:!tt}),tr=w(),tn=tr?.open??!1,td=tn&&tt&&(tr?.isInputFocused??!1),ts=f(),tl=ti&&!tn,tm={isContentEmpty:tl,sidebarHeight:tn?q.includes(x)?L:x:x,assistantFocusHeight:td?ts?.[1]:void 0},tc={background:J,borderRadius:K,padding:O,isContentEmpty:tl};return a(e,{children:[t(s,{initial:!1,children:!X&&W&&t(k,{})}),a(N,{ownerState:tm,"data-layout":p({state:{[`${z}`]:!U,[`${H}`]:U}}),...G(!Y),children:[t(V,{ref:te}),t("div",{"data-layout":"slot[sideEffects]",children:t(S.MobileSnackbarsRoot,{})}),a("main",{"data-layout":"slot[body]",children:[t("header",{"data-layout":"slot[body.header]",children:a(T,{"data-header":p({state:{[`${F}`]:Z,[`${M}`]:!Z}}),...G(!Z),children:[t("div",{"data-header":"slot[start]",children:t($,{})}),t("div",{"data-header":"slot[center]",children:t(S.MobileCallToAction,{})}),a("div",{"data-header":"slot[end]",children:[Q.viewMode&&!U&&t(S.MobileReadonlyBanner,{}),t(S.MobileHamburgerMenu,{})]})]})}),t("div",{ref:to,"data-layout":"slot[body.safeSceneArea]"}),t("div",{"data-layout":"slot[body.footer] interactive",children:a(B,{"data-controls":p({state:{[`${I}`]:_,[`${R}`]:!_}}),children:[t("div",{"data-controls":"slot[toolControls]",...G(!_),children:t(S.MobileToolControls,{})}),t("div",{"data-controls":"slot[viewControls]",...G(!_),children:t(S.MobileViewControls,{})}),t("div",{"data-controls":"slot[toolbar]",children:Y&&t(S.MobileToolbar,{})})]})})]}),t("aside",{"data-layout":"slot[sidebar]",children:a(A.Root,{ownerState:tc,"data-sidebar":p({state:{[`${P}`]:tt,[`${D}`]:!tt,[`${j}`]:tn}}),...G(!tt),children:[a(A.Header,{ownerState:tc,"data-sidebar":"slot[header]",children:[t("div",{"data-sidebar":"slot[header.start]",children:t(S.MobileSidebarBackButton,{})}),t("div",{"data-sidebar":"slot[header.end]",children:t(S.MobilePoweredBy,{})})]}),t(A.Body,{ownerState:tc,"data-sidebar":"slot[body]",children:t(A.Content,{ref:o,ownerState:tc,"data-sidebar":"slot[content]",children:t(S.MobileSidebarContent,{})})}),t(A.Tabs,{ownerState:tc,"data-sidebar":"slot[tabs]",children:t(S.MobileTabs,{})}),t(A.Footer,{ownerState:tc,"data-sidebar":"slot[footer]",children:t(S.MobileSidebarFooter,{})}),t(v,{})]})}),t("footer",{"data-layout":"slot[footer] interactive",children:t(S.MobileFooter,{})})]})]})};
42
+ `},'[data-layout*="slot[body.header]"]':{gridArea:"header-start / main-start / header-end / main-end"},'[data-layout*="slot[body.footer]"]':{gridArea:"footer-start / main-start / footer-end / main-end",position:"relative"},'[data-layout*="slot[body.safeSceneArea]"]':{gridArea:"full","@container style(--inspect: on)":{background:"hsl(from lime h s l / 50%)"}},'[data-layout="slot[body.sideEffects]"]':{insetBlockEnd:`calc(100% + ${a(2)})`,position:"absolute"},'[data-layout*="slot[sidebar]"]':{display:"grid",gridArea:"sidebar-start / full-start / sidebar-end / full-end",gridTemplateColumns:"minmax(0, 1fr)",gridTemplateRows:"minmax(0, auto)"},'[data-layout*="slot[footer]"]':{gridArea:"footer-start / full-start / footer-end / full-end",zIndex:1},'&:has([data-sidebar*="slot[content]"])':{...t.isContentEmpty&&{"--phx-layout-sidebar-track-size":"min-content"}},[`&[data-layout*="${z}"]`]:{transitionDelay:"200ms",transitionDuration:"300ms"},[`&[data-layout*="${H}"]`]:{transitionDelay:"0ms",transitionDuration:"300ms"},[`&:has([data-sidebar*="${D}"])[class]`]:{"--phx-layout-sidebar-track-size":0}},null!=t.assistantFocusHeight&&{'[data-layout*="slot[sidebar]"]':{alignSelf:"start",blockSize:`min(100%, ${t.assistantFocusHeight}px)`,gridRow:"full-start / full-end",zIndex:2}}]),V=i("div")({gridArea:"1 / 1 / -1 / -1"}),G=t=>({inert:t?"":void 0});export const MobileLayout=()=>{let o=s(null),{palette:i,shape:u,spacing:b}=r(),{sidebarHeight:x=L}=n({props:{},name:"PhxMobileLayout"}),{background:J=i.background.paper,borderRadius:K=u.sidebarBorderRadius??u.borderRadius,padding:O=b(2)}=n({props:{},name:E}),{accessInfo:Q}=l(),U=c(),{isPreview:W,isHidden:X}=y(),Y=!X&&!W,Z=!U&&Y,_=!U&&Y,tt=!U,{containerRef:ta,safeAreaRef:te}=C({enabled:Y,hasMiniSidebar:!1}),to=h(o,{disabled:!tt}),{assistantSystem:ti}=f(),tr=w(),tn=m(ti.panel$,t=>t.isInputFocused,[]),td=tr&&tt&&tn,ts=g(td),tl=to&&!tr,tm={isContentEmpty:tl,sidebarHeight:tr?q.includes(x)?L:x:x,assistantFocusHeight:td?ts?.[1]:void 0},tc={background:J,borderRadius:K,padding:O,isContentEmpty:tl};return a(e,{children:[t(d,{initial:!1,children:!X&&W&&t(k,{})}),a(N,{ownerState:tm,"data-layout":p({state:{[`${z}`]:!U,[`${H}`]:U}}),...G(!Y),children:[t(V,{ref:ta}),t("div",{"data-layout":"slot[sideEffects]",children:t(S.MobileSnackbarsRoot,{})}),a("main",{"data-layout":"slot[body]",children:[t("header",{"data-layout":"slot[body.header]",children:a(T,{"data-header":p({state:{[`${F}`]:Z,[`${M}`]:!Z}}),...G(!Z),children:[t("div",{"data-header":"slot[start]",children:t($,{})}),t("div",{"data-header":"slot[center]",children:t(S.MobileCallToAction,{})}),a("div",{"data-header":"slot[end]",children:[Q.viewMode&&!U&&t(S.MobileReadonlyBanner,{}),t(S.MobileHamburgerMenu,{})]})]})}),t("div",{ref:te,"data-layout":"slot[body.safeSceneArea]"}),t("div",{"data-layout":"slot[body.footer] interactive",children:a(B,{"data-controls":p({state:{[`${I}`]:_,[`${R}`]:!_}}),children:[t("div",{"data-controls":"slot[toolControls]",...G(!_),children:t(S.MobileToolControls,{})}),t("div",{"data-controls":"slot[viewControls]",...G(!_),children:t(S.MobileViewControls,{})}),t("div",{"data-controls":"slot[toolbar]",children:Y&&t(S.MobileToolbar,{})})]})})]}),t("aside",{"data-layout":"slot[sidebar]",children:a(A.Root,{ownerState:tc,"data-sidebar":p({state:{[`${P}`]:tt,[`${D}`]:!tt,[`${j}`]:tr}}),...G(!tt),children:[a(A.Header,{ownerState:tc,"data-sidebar":"slot[header]",children:[t("div",{"data-sidebar":"slot[header.start]",children:t(S.MobileSidebarBackButton,{})}),t("div",{"data-sidebar":"slot[header.end]",children:t(S.MobilePoweredBy,{})})]}),t(A.Body,{ownerState:tc,"data-sidebar":"slot[body]",children:t(A.Content,{ref:o,ownerState:tc,"data-sidebar":"slot[content]",children:t(S.MobileSidebarContent,{})})}),t(A.Tabs,{ownerState:tc,"data-sidebar":"slot[tabs]",children:t(S.MobileTabs,{})}),t(A.Footer,{ownerState:tc,"data-sidebar":"slot[footer]",children:t(S.MobileSidebarFooter,{})}),t(v,{})]})}),t("footer",{"data-layout":"slot[footer] interactive",children:t(S.MobileFooter,{})})]})]})};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import e from"lodash/noop.js";import{useCallback as o,useMemo as i}from"react";import{useResolveLocalizable as r}from"#package/react-sdk";import{Preview as a,useResponsive as s}from"#package/ui-sdk";import{usePresetSelection as n,usePreview as m}from"../../../configurator-context/index.js";import{useSceneSafeArea as p}from"./use-scene-safe-area.js";let c={id:"sdk.preview.customize.title",message:"Customize product"},l={id:"sdk.preview.start.button.label",message:"Start configuring"},u={initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{opacity:{duration:.1,ease:"linear"}}};export const MobilePreview=f=>{let{slotProps:d={},slots:g}=f,{enter:k,isPreview:x}=m(),{hasMultiplePresets:b}=n(),{setCanvasPadding:j}=s(),{containerRef:y,safeAreaRef:w,update:v}=p(x?j:e,!1),S=r(),h=o(()=>{v()},[v]),z=i(()=>({...d,root:{...u,onLayoutAnimationComplete:h,...d.root}}),[h,d]);return t(a,{title:S(c),buttonLabel:S(l),containerRef:y,safeAreaRef:w,withScene:!b,slots:g,slotProps:z,onStart:k})};
1
+ import{jsx as t}from"react/jsx-runtime";import{useCallback as e,useMemo as o}from"react";import{useResolveLocalizable as i}from"#package/react-sdk";import{Preview as a}from"#package/ui-sdk";import{usePresetSelection as r,usePreview as s}from"../../../configurator-context/index.js";import{useLayoutSceneSafeArea as n}from"./use-layout-scene-safe-area.js";let m={id:"sdk.preview.customize.title",message:"Customize product"},p={id:"sdk.preview.start.button.label",message:"Start configuring"},c={initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{opacity:{duration:.1,ease:"linear"}}};export const MobilePreview=l=>{let{slotProps:u={},slots:d}=l,{enter:f,isPreview:b}=s(),{hasMultiplePresets:g}=r(),{containerRef:k,safeAreaRef:x,update:y}=n({enabled:b,hasMiniSidebar:!1}),j=i(),w=e(()=>{y()},[y]),S=o(()=>({...u,root:{...c,onLayoutAnimationComplete:w,...u.root}}),[w,u]);return t(a,{title:j(m),buttonLabel:j(p),containerRef:k,safeAreaRef:x,withScene:!g,slots:d,slotProps:S,onStart:f})};
@@ -0,0 +1,47 @@
1
+ /** What a built-in layout tells the safe-area measurement about itself. */
2
+ export interface LayoutSceneSafeAreaOptions {
3
+ /** Whether the layout owns the canvas padding now. See `useLayoutSceneSafeArea`. */
4
+ readonly enabled: boolean;
5
+ /** Whether the sidebar is collapsed to its mini form, which the scene clears only in part. */
6
+ readonly hasMiniSidebar: boolean;
7
+ }
8
+ /**
9
+ * Measures the gap between a full-area container and an inner "safe area" element,
10
+ * and writes the resulting gaps to the responsive context as canvas padding — letting the
11
+ * 3D scene render only in the region not covered by overlay UI (preview body, sidebar, etc.).
12
+ *
13
+ * The implementation behind `useSceneSafeArea`, with the two things only the built-in
14
+ * layouts need: `enabled` and `hasMiniSidebar`.
15
+ *
16
+ * Returns:
17
+ * - `containerRef` — attach to the full-area measurement element.
18
+ * - `safeAreaRef` — attach to the region the scene should remain visible in.
19
+ * - `update` — trigger a manual re-measure on demand.
20
+ *
21
+ * `containerRef` / `safeAreaRef` are *callback* refs: the `ResizeObserver` (re)connects
22
+ * whenever a node attaches or detaches. This matters because the owning layout can mount
23
+ * late — `AnimatePresence mode="wait"` only mounts the interface after the preview has
24
+ * finished exiting, well after a one-shot mount effect would have run and bailed on null
25
+ * refs (leaving the scene stuck at the preview's padding).
26
+ *
27
+ * `enabled` is for a layout that stays mounted while another one owns the padding (e.g. the
28
+ * mobile interface while previewing, or a preview that lingers through its exit fade). While
29
+ * it is `false` the observer is disconnected, and a measurement started by the `update` of that
30
+ * render or by a pending retry writes nothing. An `update` that was created while the hook was
31
+ * enabled, such as a handler an animation already holds, still measures and writes. Turning
32
+ * `enabled` back on reconnects the observer, which measures again.
33
+ *
34
+ * `getBoundingClientRect()` returns *visually transformed* rects, so `measure` skips
35
+ * transformed frames automatically (retrying until the transform clears) to avoid feeding
36
+ * the scene a scaled gap mid layout animation.
37
+ *
38
+ * `update` exists for the complementary case: when only an ancestor's `transform` changes
39
+ * (e.g. motion FLIP settling), `ResizeObserver` doesn't fire, so nothing re-triggers
40
+ * `measure`. Call `update()` once the transform settles (e.g. from
41
+ * `onLayoutAnimationComplete`) to re-measure against the actual layout box.
42
+ */
43
+ export declare const useLayoutSceneSafeArea: (options: LayoutSceneSafeAreaOptions) => {
44
+ containerRef: (node: HTMLDivElement | null) => void;
45
+ safeAreaRef: (node: HTMLDivElement | null) => void;
46
+ update: () => void;
47
+ };
@@ -0,0 +1 @@
1
+ import{useCallback as t,useEffect as e,useRef as r}from"react";import{canvasPaddingComponent as n}from"#package/domain";import{useFirstComponent as o}from"#package/react-sdk";import{useResponsive as a}from"#package/ui-sdk";export const useLayoutSceneSafeArea=c=>{let{enabled:u,hasMiniSidebar:i}=c,{setCanvasPadding:m}=a(),l=r(null),s=r(null),f=r(null),h=r(null),p=r(0),g=r(()=>{}),b=o({componentTypes:[n]}),d=t(()=>{let t=s.current,e=f.current;if(!u||!t||!e)return;let r=t.getBoundingClientRect(),n=e.getBoundingClientRect();if(Math.abs(r.width-t.offsetWidth)>1||Math.abs(r.height-t.offsetHeight)>1){if(p.current+=1,p.current>60){p.current=0;return}l.current&&cancelAnimationFrame(l.current),l.current=requestAnimationFrame(()=>g.current());return}p.current=0;let o={bottom:Math.max(0,r.bottom-n.bottom),left:Math.max(0,n.left-r.left),right:Math.max(0,r.right-n.right),top:Math.max(0,n.top-r.top)},a=i?.3:1,c=b?.state.bottom??1,h=b?.state.left??1,d=b?.state.right??a,A=b?.state.top??1;m({bottom:o.bottom*c,left:o.left*h,right:o.right*d,top:o.top*A})},[u,i,b?.state.bottom,b?.state.left,b?.state.right,b?.state.top,m]);g.current=d;let A=t(()=>{l.current&&cancelAnimationFrame(l.current),l.current=requestAnimationFrame(d)},[d]),M=t(()=>{h.current?.disconnect(),h.current=null},[]),k=t(()=>{let t=s.current,e=f.current;if(!u||!t||!e)return void M();M();let r=new ResizeObserver(A);r.observe(t),r.observe(e),h.current=r},[M,u,A]),x=t(t=>{s.current=t,k()},[k]),F=t(t=>{f.current=t,k()},[k]);return e(()=>(k(),()=>{M(),l.current&&cancelAnimationFrame(l.current)}),[k,M]),{containerRef:x,safeAreaRef:F,update:A}};
@@ -1,33 +1,18 @@
1
- import type { CanvasPadding } from '#package/ui-sdk';
2
1
  /**
3
- * Measures the gap between a full-area container and an inner "safe area" element,
4
- * and forwards the resulting gaps as canvas padding — letting the 3D scene render
5
- * only in the region not covered by overlay UI (preview body, sidebar, etc.).
2
+ * Tells the camera which part of the canvas a layout leaves free for the scene.
6
3
  *
7
- * Returns:
8
- * - `containerRef` — attach to the full-area measurement element.
9
- * - `safeAreaRef` — attach to the region the scene should remain visible in.
10
- * - `update` — trigger a manual re-measure on demand.
11
- *
12
- * `containerRef` / `safeAreaRef` are *callback* refs: the `ResizeObserver` (re)connects
13
- * whenever a node attaches or detaches. This matters because the owning layout can mount
14
- * late — `AnimatePresence mode="wait"` only mounts the interface after the preview has
15
- * finished exiting, well after a one-shot mount effect would have run and bailed on null
16
- * refs (leaving the scene stuck at the preview's padding).
17
- *
18
- * `enabled` gates the whole thing: when `false` the observer is disconnected so an inactive
19
- * layout (e.g. the interface while previewing) neither measures nor writes padding.
4
+ * A layout attaches `containerRef` to the element that covers the whole canvas and `safeAreaRef`
5
+ * to the region the scene should stay visible in. The hook measures the gap between the two,
6
+ * again whenever either element resizes, and writes it to the responsive context as the canvas
7
+ * padding the camera frames the scene with.
20
8
  *
21
- * `getBoundingClientRect()` returns *visually transformed* rects, so `measure` skips
22
- * transformed frames automatically (retrying until the transform clears) to avoid feeding
23
- * the scene a scaled gap mid layout animation.
24
- *
25
- * `update` exists for the complementary case: when only an ancestor's `transform` changes
26
- * (e.g. motion FLIP settling), `ResizeObserver` doesn't fire, so nothing re-triggers
27
- * `measure`. Call `update()` once the transform settles (e.g. from
28
- * `onLayoutAnimationComplete`) to re-measure against the actual layout box.
9
+ * Returns:
10
+ * - `containerRef` — attach to the element that covers the whole canvas.
11
+ * - `safeAreaRef` — attach to the region the scene should stay visible in.
12
+ * - `update` — measures again on demand, for a change no resize reports, such as a `transform`
13
+ * on an ancestor settling at the end of an animation.
29
14
  */
30
- export declare const useSceneSafeArea: (setCanvasPadding: (padding: CanvasPadding) => void, hasMiniSidebar: boolean, enabled?: boolean) => {
15
+ export declare const useSceneSafeArea: () => {
31
16
  containerRef: (node: HTMLDivElement | null) => void;
32
17
  safeAreaRef: (node: HTMLDivElement | null) => void;
33
18
  update: () => void;
@@ -1 +1 @@
1
- import{useCallback as t,useEffect as e,useRef as r}from"react";import{canvasPaddingComponent as n}from"#package/domain";import{useFirstComponent as o}from"#package/react-sdk";export const useSceneSafeArea=(a,c,u=!0)=>{let i=r(null),l=r(null),m=r(null),s=r(null),f=r(0),h=r(()=>{}),g=o({componentTypes:[n]}),p=t(()=>{let t=l.current,e=m.current;if(!t||!e)return;let r=t.getBoundingClientRect(),n=e.getBoundingClientRect();if(Math.abs(r.width-t.offsetWidth)>1||Math.abs(r.height-t.offsetHeight)>1){if(f.current+=1,f.current>60){f.current=0;return}i.current&&cancelAnimationFrame(i.current),i.current=requestAnimationFrame(()=>h.current());return}f.current=0;let o={bottom:Math.max(0,r.bottom-n.bottom),left:Math.max(0,n.left-r.left),right:Math.max(0,r.right-n.right),top:Math.max(0,n.top-r.top)},u=c?.3:1,s=g?.state.bottom??1,p=g?.state.left??1,b=g?.state.right??u,d=g?.state.top??1;a({bottom:o.bottom*s,left:o.left*p,right:o.right*b,top:o.top*d})},[c,g?.state.bottom,g?.state.left,g?.state.right,g?.state.top,a]);h.current=p;let b=t(()=>{i.current&&cancelAnimationFrame(i.current),i.current=requestAnimationFrame(p)},[p]),d=t(()=>{s.current?.disconnect(),s.current=null},[]),A=t(()=>{let t=l.current,e=m.current;if(!u||!t||!e)return void d();d();let r=new ResizeObserver(b);r.observe(t),r.observe(e),s.current=r},[d,u,b]),M=t(t=>{l.current=t,A()},[A]),x=t(t=>{m.current=t,A()},[A]);return e(()=>(A(),()=>{d(),i.current&&cancelAnimationFrame(i.current)}),[A,d]),{containerRef:M,safeAreaRef:x,update:b}};
1
+ import{useLayoutSceneSafeArea as e}from"./use-layout-scene-safe-area.js";export const useSceneSafeArea=()=>e({enabled:!0,hasMiniSidebar:!1});
@@ -57,6 +57,6 @@ declare const ResponsiveNavigation: <VALUE extends string, ENTITY_ID extends Dom
57
57
  */
58
58
  export declare const MobileControls: {
59
59
  Navigation: typeof ResponsiveNavigation;
60
- ViewOnlyMode: (inProps: import("../../../../ui-sdk/components/mobile-controls/MobileControls").ViewOnlyModeProps & import("#package/ui-sdk").MobileControlsThemeableProps) => import("react/jsx-runtime").JSX.Element;
60
+ ViewOnlyMode: (inProps: import("#package/ui-sdk").ViewOnlyModeProps & import("#package/ui-sdk").MobileControlsThemeableProps) => import("react/jsx-runtime").JSX.Element;
61
61
  };
62
62
  export {};
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Opens and closes the assistant panel. It renders nothing where there is no panel to open: in a
3
- * project without an assistant, or in a layout that does not carry the panel.
2
+ * Opens and closes the assistant panel. It renders nothing in a project without an assistant. A
3
+ * layout that lists the button is expected to carry the panel; the button does not check for it.
4
4
  */
5
5
  export declare const AssistantToolbarButton: import("react").FunctionComponent<{
6
6
  readonly showTitle?: boolean;
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{Badge as r}from"@mui/material";import{memo as s,useCallback as a}from"react";import{assistantToolbarButtonSchema as o,createPhoenixLayoutElement as e}from"#package/domain";import{useLocalizable as i}from"#package/react-sdk";import{DesktopToolbar as n,PhxIcon as m,useResponsive as l}from"#package/ui-sdk";import{useAssistantPanel as p}from"../assistant/index.js";let c={id:"sdk.assistant.toolbarButton.label",message:"Assistant"};export const AssistantToolbarButton=e({schema:o,component:s(s=>{let{icon:o,showTitle:e=!0}=s,d=p(),u=i(c),{isPhone:k,isTablet:f}=l(),A=d?.open??!1,b=d?.setOpen,g=a(()=>{b?.(!A)},[A,b]);return d?t(n.Button,{title:u,onClick:g,showTitle:e&&!k&&!f,"aria-pressed":A,sx:{'&[aria-pressed="true"]':{backgroundColor:"action.selected"}},children:t(r,{color:"primary",variant:"dot",overlap:"circular",invisible:!d.hasUnreadReply,children:t(m,{name:o??(A?"CustomAiAssistantBold":"CustomAiAssistant")})})}):null})});
1
+ import{jsx as t}from"react/jsx-runtime";import{Badge as r}from"@mui/material";import{memo as o,useCallback as a}from"react";import{assistantToolbarButtonSchema as i,createPhoenixLayoutElement as e}from"#package/domain";import{useEagerObservableValue as s,useLocalizable as n,useSpecAssistant as m}from"#package/react-sdk";import{DesktopToolbar as l,PhxIcon as p,useResponsive as c}from"#package/ui-sdk";import{useConfigurator as d}from"../../application-runtime/index.js";let u={id:"sdk.assistant.toolbarButton.label",message:"Assistant"};export const AssistantToolbarButton=e({schema:i,component:o(o=>{let{icon:i,showTitle:e=!0}=o,{assistantSystem:k}=d(),f=m(),{open:A,hasUnreadReply:b}=s(k.panel$),g=n(u),{isPhone:x,isTablet:h}=c(),B=a(()=>{k.setOpen(!A)},[k,A]);return f?t(l.Button,{title:g,onClick:B,showTitle:e&&!x&&!h,"aria-pressed":A,sx:{'&[aria-pressed="true"]':{backgroundColor:"action.selected"}},children:t(r,{color:"primary",variant:"dot",overlap:"circular",invisible:!b,children:t(p,{name:i??(A?"CustomAiAssistantBold":"CustomAiAssistant")})})}):null})});