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

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 (939) hide show
  1. package/README.md +1 -1
  2. package/dist/admin/create-admin-pages-from-spec.d.ts +1 -1
  3. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  4. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  5. package/dist/application-spec/generate-application/code/common/project-module-list.d.ts +8 -0
  6. package/dist/application-spec/generate-application/code/common/project-module-list.js +3 -0
  7. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  8. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +1 -1
  9. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  10. package/dist/application-spec/generate-application/code/templates/admin-domain-code.d.ts +1 -2
  11. package/dist/application-spec/generate-application/code/templates/admin-domain-code.js +6 -14
  12. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.d.ts +1 -2
  13. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.js +4 -4
  14. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.d.ts +1 -2
  15. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.js +7 -16
  16. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.d.ts +1 -2
  17. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.js +7 -9
  18. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.d.ts +2 -2
  19. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.js +1 -1
  20. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +36 -36
  21. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +1 -1
  22. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  23. package/dist/application-spec/generate-application/code/templates/domain-spec.js +4 -4
  24. package/dist/application-spec/generate-application/code/templates/domain.js +3 -3
  25. package/dist/application-spec/generate-application/code/templates/index.d.ts +1 -6
  26. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  27. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  28. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +93 -41
  29. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +2 -2
  30. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  31. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.d.ts +1 -0
  32. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +6 -0
  33. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +35 -11
  34. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +19 -7
  35. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +9 -4
  36. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -2
  37. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +4 -3
  38. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.js +1 -1
  39. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  40. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.d.ts +3 -8
  41. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.js +1 -1
  42. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +9 -43
  43. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  44. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-server-settings.d.ts +2 -2
  45. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.d.ts +5 -21
  46. package/dist/client/authorized-client.d.ts +3 -1
  47. package/dist/client/authorized-client.js +1 -1
  48. package/dist/client/contract.d.ts +34 -0
  49. package/dist/client/contract.js +1 -1
  50. package/dist/client/index.d.ts +2 -2
  51. package/dist/client/index.js +1 -1
  52. package/dist/client/local-authorized-client.d.ts +3 -1
  53. package/dist/client/local-authorized-client.js +1 -1
  54. package/dist/client/memory-authorized-client.d.ts +3 -1
  55. package/dist/client/memory-authorized-client.js +1 -1
  56. package/dist/client/phoenix-api.d.ts +271 -30
  57. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  58. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +245 -13
  59. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  60. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.d.ts +85 -0
  61. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.js +1 -0
  62. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +8 -3
  63. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  64. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +4 -0
  65. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  66. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +16 -1
  67. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  68. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.d.ts +9 -0
  69. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.js +1 -0
  70. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  71. package/dist/configurator/index.d.ts +0 -1
  72. package/dist/configurator/index.js +1 -1
  73. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  74. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  75. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +3 -7
  76. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -1
  77. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  78. package/dist/configurator/ui/assistant/AssistantThread.d.ts +7 -8
  79. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  80. package/dist/configurator/ui/assistant/index.d.ts +1 -1
  81. package/dist/configurator/ui/assistant/index.js +1 -1
  82. package/dist/configurator/ui/assistant/thread-items.d.ts +14 -3
  83. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  84. package/dist/configurator/ui/assistant/tool-chip.d.ts +8 -1
  85. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  86. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.d.ts +5 -0
  87. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.js +1 -0
  88. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +2 -2
  89. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  90. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +4 -4
  91. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.d.ts +2 -2
  92. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -1
  93. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +84 -98
  94. package/dist/docs/complex-use-cases/navigation-reset-selection.mdx +18 -12
  95. package/dist/docs/index.json +1 -1
  96. package/dist/docs/layouts/custom-price.mdx +14 -16
  97. package/dist/docs/layouts/sidebar/tabs.mdx +24 -21
  98. package/dist/docs/layouts/toolbar.mdx +3 -1
  99. package/dist/docs/other-features/domain-actions.mdx +1 -1
  100. package/dist/docs/other-features/side-effects.mdx +68 -34
  101. package/dist/docs/other-features/transformers.mdx +1 -1
  102. package/dist/docs/phoenix/admin.mdx +9 -24
  103. package/dist/docs/phoenix/deployments.mdx +1 -1
  104. package/dist/docs/phoenix/expression-context.mdx +11 -3
  105. package/dist/docs/phoenix/getting-started.mdx +1 -1
  106. package/dist/docs/phoenix/localization.mdx +3 -22
  107. package/dist/docs/phoenix/phoenix-cli.mdx +105 -23
  108. package/dist/docs/phoenix/project-structure.mdx +12 -3
  109. package/dist/docs/phoenix/sdk-builder-workflow.mdx +11 -10
  110. package/dist/docs/recipes-and-delete/recipe-hierarchy-selection.mdx +15 -13
  111. package/dist/docs/relations/hierarchy.mdx +13 -2
  112. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  113. package/dist/domain/admin-domain/__generated/enhanced-model.d.ts +1 -2
  114. package/dist/domain/admin-domain/__generated/model/versions/v1.d.ts +1 -1
  115. package/dist/domain/admin-domain/__generated/model/versions/v2.d.ts +1 -1
  116. package/dist/domain/admin-domain/__generated/model/versions/v3.d.ts +1 -1
  117. package/dist/domain/admin-domain/__generated/model/versions/v4.d.ts +1 -1
  118. package/dist/domain/admin-domain/__generated/model/versions/v5.d.ts +1 -1
  119. package/dist/domain/admin-domain/__generated/model/versions/v6.d.ts +2 -2
  120. package/dist/domain/admin-domain/__generated/model/versions/v6.js +1 -1
  121. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +10 -13
  122. package/dist/domain/admin-domain/implementation/common-admin-migrations.d.ts +1 -1
  123. package/dist/domain/admin-domain/index.d.ts +9 -5
  124. package/dist/domain/admin-domain/index.js +1 -1
  125. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +1 -1
  126. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  127. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  128. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  129. package/dist/domain/application/application-config.d.ts +24 -95
  130. package/dist/domain/application/assistant/assistant-manifest.d.ts +63 -0
  131. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +95 -0
  132. package/dist/domain/application/assistant/assistant-value-type.d.ts +9 -0
  133. package/dist/domain/application/assistant/assistant-value-type.js +1 -0
  134. package/dist/domain/application/assistant/build-assistant-manifest.d.ts +4 -0
  135. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -0
  136. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  137. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -0
  138. package/dist/domain/application/assistant/index.d.ts +4 -0
  139. package/dist/domain/application/assistant/index.js +1 -0
  140. package/dist/domain/application/assistant-field-options.d.ts +2 -3
  141. package/dist/domain/application/assistant-mutations.d.ts +3 -5
  142. package/dist/domain/application/assistant-mutations.js +1 -1
  143. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -7
  144. package/dist/domain/application/configurator-builder.d.ts +33 -18
  145. package/dist/domain/application/configurator-builder.js +1 -1
  146. package/dist/domain/application/create-initial-published-data.d.ts +1 -2
  147. package/dist/domain/application/index.d.ts +3 -5
  148. package/dist/domain/application/index.js +1 -1
  149. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  150. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  151. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  152. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  153. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  154. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  155. package/dist/domain/application/published-data/create-finalize-admin-domain.d.ts +1 -2
  156. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  157. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  158. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +2 -2
  159. package/dist/domain/application/published-data/map-published-data.d.ts +1 -2
  160. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  161. package/dist/domain/available-system-components.js +1 -1
  162. package/dist/domain/core/action/action-factory.d.ts +11 -0
  163. package/dist/domain/core/{action.d.ts → action/action.d.ts} +22 -18
  164. package/dist/domain/core/action/index.d.ts +2 -0
  165. package/dist/domain/core/action/index.js +1 -0
  166. package/dist/domain/{components → core/component}/component-reader-types.d.ts +1 -2
  167. package/dist/domain/{components → core/component}/debug-state-component.d.ts +1 -1
  168. package/dist/domain/core/component/debug-state-component.js +1 -0
  169. package/dist/domain/{components → core/component}/domain-component-optic.d.ts +36 -39
  170. package/dist/domain/{components → core/component}/domain-component-optic.js +2 -2
  171. package/dist/domain/{components → core/component}/drag-state-component.d.ts +1 -1
  172. package/dist/domain/core/component/drag-state-component.js +1 -0
  173. package/dist/domain/{components → core/component}/export-state-component.d.ts +1 -1
  174. package/dist/domain/core/component/export-state-component.js +1 -0
  175. package/dist/domain/{components → core/component}/fullscreen-state-component.d.ts +1 -1
  176. package/dist/domain/core/component/fullscreen-state-component.js +1 -0
  177. package/dist/domain/{components → core/component}/group-components-by-entity-id-and-name.d.ts +1 -2
  178. package/dist/domain/core/component/group-components-by-entity-id-and-name.js +1 -0
  179. package/dist/domain/{components → core/component}/hover-state-component.d.ts +1 -1
  180. package/dist/domain/core/component/hover-state-component.js +1 -0
  181. package/dist/domain/core/component/index.d.ts +18 -0
  182. package/dist/domain/core/component/index.js +1 -0
  183. package/dist/domain/{components → core/component}/legacy-filter.d.ts +2 -2
  184. package/dist/domain/{components → core/component}/navigation-state-component.d.ts +1 -1
  185. package/dist/domain/core/component/navigation-state-component.js +1 -0
  186. package/dist/domain/{components → core/component}/selection-state-component.d.ts +1 -1
  187. package/dist/domain/core/component/selection-state-component.js +1 -0
  188. package/dist/domain/{components → core/component}/system-component-builder.d.ts +1 -2
  189. package/dist/domain/core/component/system-component-builder.js +1 -0
  190. package/dist/domain/{components → core/component}/system-component-filter.d.ts +19 -19
  191. package/dist/domain/core/component/system-virtual-entity.js +1 -0
  192. package/dist/domain/{components → core/component}/tool-state-component.d.ts +1 -1
  193. package/dist/domain/core/component/tool-state-component.js +1 -0
  194. package/dist/domain/{components → core/component}/updates.d.ts +17 -2
  195. package/dist/domain/{components → core/component}/view-state-component.d.ts +1 -1
  196. package/dist/domain/core/component/view-state-component.js +1 -0
  197. package/dist/domain/{components → core/component}/viewport-state-component.d.ts +1 -1
  198. package/dist/domain/core/component/viewport-state-component.js +1 -0
  199. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  200. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  201. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  202. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  203. package/dist/domain/core/data-schema/data-schema-field.js +1 -0
  204. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  205. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  206. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  207. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  208. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  209. package/dist/domain/core/data-schema/data-schema.js +1 -0
  210. package/dist/domain/core/data-schema/index.d.ts +7 -0
  211. package/dist/domain/core/data-schema/index.js +1 -0
  212. package/dist/domain/core/decoder/create-decoder.d.ts +6 -0
  213. package/dist/domain/core/decoder/create-decoder.js +1 -0
  214. package/dist/domain/core/decoder/decoder.d.ts +6 -0
  215. package/dist/domain/core/decoder/decoder.js +1 -0
  216. package/dist/domain/core/decoder/index.d.ts +2 -0
  217. package/dist/domain/core/decoder/index.js +1 -0
  218. package/dist/domain/core/domain-factory.d.ts +4 -5
  219. package/dist/domain/core/domain-factory.js +1 -1
  220. package/dist/domain/core/domain.d.ts +4 -5
  221. package/dist/domain/core/domain.js +1 -1
  222. package/dist/domain/core/emission/index.d.ts +8 -0
  223. package/dist/domain/core/emission/index.js +1 -0
  224. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  225. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  226. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  227. package/dist/domain/core/emission/state-emission.js +1 -0
  228. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  229. package/dist/domain/core/emission/state-update-emission.js +1 -0
  230. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  231. package/dist/domain/core/emission/state-validation-result.js +1 -0
  232. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  233. package/dist/domain/core/emission/transformation-log.js +1 -0
  234. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  235. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  236. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  237. package/dist/domain/core/emission/transformer-log.js +1 -0
  238. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  239. package/dist/domain/core/emission/transformer-phase.js +1 -0
  240. package/dist/domain/core/expression/aliased-expressions.d.ts +10 -0
  241. package/dist/domain/core/expression/aliased-expressions.js +1 -0
  242. package/dist/domain/{expressions → core/expression}/constant-expressions.d.ts +3 -4
  243. package/dist/domain/core/expression/constant-expressions.js +1 -0
  244. package/dist/domain/{expressions → core/expression}/custom-expression.d.ts +9 -10
  245. package/dist/domain/core/expression/custom-expression.js +1 -0
  246. package/dist/domain/core/expression/expression.d.ts +46 -0
  247. package/dist/domain/core/expression/expression.js +1 -0
  248. package/dist/domain/core/expression/index.d.ts +4 -0
  249. package/dist/domain/core/expression/index.js +1 -0
  250. package/dist/domain/core/index.d.ts +13 -17
  251. package/dist/domain/core/index.js +1 -1
  252. package/dist/domain/{invariants → core/invariant}/builtin-invariant.d.ts +2 -2
  253. package/dist/domain/{invariants → core/invariant}/custom-invariants.d.ts +7 -8
  254. package/dist/domain/core/invariant/custom-invariants.js +1 -0
  255. package/dist/domain/core/invariant/index.d.ts +5 -0
  256. package/dist/domain/core/invariant/index.js +1 -0
  257. package/dist/domain/core/invariant/invariants.d.ts +13 -0
  258. package/dist/domain/core/invariant/invariants.js +1 -0
  259. package/dist/domain/core/invariant/violation-component.js +1 -0
  260. package/dist/domain/{invariants → core/invariant}/violation.d.ts +2 -2
  261. package/dist/domain/core/{component.d.ts → model/component.d.ts} +1 -1
  262. package/dist/domain/core/model/index.d.ts +6 -0
  263. package/dist/domain/core/model/index.js +1 -0
  264. package/dist/domain/core/{reflection.d.ts → model/reflection.d.ts} +1 -1
  265. package/dist/domain/core/model/reflection.js +1 -0
  266. package/dist/domain/core/recipe/index.d.ts +1 -0
  267. package/dist/domain/core/recipe/index.js +1 -0
  268. package/dist/domain/{domain-context/recipe-system → core/recipe}/recipes.d.ts +1 -3
  269. package/dist/domain/core/recipe/recipes.js +1 -0
  270. package/dist/domain/{relations → core/relation}/all-of-type-relation.d.ts +3 -4
  271. package/dist/domain/core/relation/all-of-type-relation.js +1 -0
  272. package/dist/domain/{relations → core/relation}/component-factories.d.ts +1 -2
  273. package/dist/domain/core/relation/component-factories.js +1 -0
  274. package/dist/domain/{relations → core/relation}/composed-of.d.ts +1 -1
  275. package/dist/domain/core/relation/composed-of.js +1 -0
  276. package/dist/domain/{relations → core/relation}/direct-relation.d.ts +2 -3
  277. package/dist/domain/core/relation/index.d.ts +9 -0
  278. package/dist/domain/core/relation/index.js +1 -0
  279. package/dist/domain/{relations → core/relation}/indirect-relation.d.ts +3 -4
  280. package/dist/domain/core/relation/indirect-relation.js +1 -0
  281. package/dist/domain/{relations → core/relation}/reference-component.d.ts +4 -5
  282. package/dist/domain/core/relation/reference-component.js +1 -0
  283. package/dist/domain/{relations → core/relation}/reference-field.d.ts +1 -1
  284. package/dist/domain/core/relation/reference-field.js +1 -0
  285. package/dist/domain/{relations → core/relation}/relation-factory.d.ts +2 -3
  286. package/dist/domain/{relations → core/relation}/relation-implementation.d.ts +3 -4
  287. package/dist/domain/core/relation/relation-implementation.js +1 -0
  288. package/dist/domain/core/schema/enhanced-json-schema.js +1 -0
  289. package/dist/domain/core/schema/extended-schema-validator.js +1 -0
  290. package/dist/domain/core/schema/index.d.ts +3 -0
  291. package/dist/domain/core/schema/index.js +1 -0
  292. package/dist/domain/core/schema/schema-validator.js +1 -0
  293. package/dist/domain/core/state/id-sequence.d.ts +15 -0
  294. package/dist/domain/core/state/id-sequence.js +1 -0
  295. package/dist/domain/core/state/index.d.ts +3 -0
  296. package/dist/domain/core/state/index.js +1 -0
  297. package/dist/domain/core/{migrations.d.ts → state/migrations.d.ts} +1 -2
  298. package/dist/domain/core/{state.d.ts → state/state.d.ts} +1 -2
  299. package/dist/domain/domain-builder.d.ts +11 -11
  300. package/dist/domain/domain-builder.js +1 -1
  301. package/dist/domain/domain-context/action-system/action-system.d.ts +2 -4
  302. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  303. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  304. package/dist/domain/domain-context/action-system/index.js +1 -0
  305. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  306. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  307. package/dist/domain/domain-context/create-transformer.d.ts +2 -2
  308. package/dist/domain/domain-context/dimension-system/dimension-state.js +1 -1
  309. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +3 -4
  310. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  311. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  312. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  313. package/dist/domain/domain-context/domain-context-systems.d.ts +8 -10
  314. package/dist/domain/domain-context/index.d.ts +8 -18
  315. package/dist/domain/domain-context/index.js +1 -1
  316. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  317. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  318. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +5 -8
  319. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  320. package/dist/domain/domain-context/navigation-system/navigation-updates.d.ts +1 -12
  321. package/dist/domain/domain-context/navigation-system/navigation-updates.js +1 -1
  322. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +2 -2
  323. package/dist/domain/domain-context/navigation-system/selection-transformers.js +1 -1
  324. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  325. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  326. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +2 -4
  327. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  328. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +3 -3
  329. package/dist/domain/domain-context/relation-transformers/cascade-deletes.js +1 -1
  330. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +3 -3
  331. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.js +1 -1
  332. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +3 -3
  333. package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
  334. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  335. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  336. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +3 -3
  337. package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
  338. package/dist/domain/domain-context/store-system/apply-updates.d.ts +1 -3
  339. package/dist/domain/domain-context/store-system/apply-updates.js +1 -1
  340. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  341. package/dist/domain/domain-context/store-system/index.js +1 -0
  342. package/dist/domain/domain-context/store-system/next-domain-entity-id.d.ts +1 -13
  343. package/dist/domain/domain-context/store-system/next-domain-entity-id.js +1 -1
  344. package/dist/domain/domain-context/store-system/reconcile-projected-entities.d.ts +1 -2
  345. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  346. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -39
  347. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  348. package/dist/domain/domain-context/store-system/system-state.d.ts +2 -4
  349. package/dist/domain/domain-context/store-system/system-state.js +1 -1
  350. package/dist/domain/domain-context/transformers/actions-builder.d.ts +1 -2
  351. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  352. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +6 -10
  353. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  354. package/dist/domain/domain-context/transformers/chain-builder.d.ts +3 -3
  355. package/dist/domain/domain-context/transformers/context.d.ts +2 -7
  356. package/dist/domain/domain-context/transformers/context.js +1 -1
  357. package/dist/domain/domain-context/transformers/entity-builder.d.ts +1 -5
  358. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  359. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  360. package/dist/domain/domain-context/transformers/index.js +1 -1
  361. package/dist/domain/domain-context/transformers/then-builder.d.ts +1 -2
  362. package/dist/domain/domain-context/transformers/then-builder.js +1 -1
  363. package/dist/domain/domain-context/transformers/when-builder.d.ts +3 -9
  364. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  365. package/dist/domain/domain-context/undo-system.d.ts +2 -3
  366. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  367. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  368. package/dist/domain/domain-runtime/domain-context/component-reader.d.ts +1 -4
  369. package/dist/domain/domain-runtime/domain-context/component-reader.js +1 -1
  370. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  371. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  372. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  373. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  374. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  375. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  376. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +6 -13
  377. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  378. package/dist/domain/domain-runtime/domain-runtime.d.ts +56 -56
  379. package/dist/domain/domain-runtime/spec/index.d.ts +5 -0
  380. package/dist/domain/domain-runtime/spec/index.js +1 -1
  381. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  382. package/dist/domain/domain-runtime/spec/invariant-builder.d.ts +26 -0
  383. package/dist/domain/domain-runtime/spec/invariant-builder.js +1 -0
  384. package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.d.ts +1 -2
  385. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +6 -1
  386. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  387. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +5 -0
  388. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  389. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  390. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  391. package/dist/domain/domain-runtime/spec/module-checks/project-modules.d.ts +25 -0
  392. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  393. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  394. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  395. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  396. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  397. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  398. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  399. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  400. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  401. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  402. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  403. package/dist/domain/{actions → domain-runtime/spec}/prepare-action-implementations.d.ts +1 -1
  404. package/dist/domain/domain-runtime/spec/prepare-action-implementations.js +5 -0
  405. package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.d.ts +1 -1
  406. package/dist/domain/domain-runtime/spec/selectors.d.ts +7 -8
  407. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  408. package/dist/domain/domain-runtime/spec/types.d.ts +6 -6
  409. package/dist/domain/{system-components → extensions}/angle-indicator.d.ts +1 -1
  410. package/dist/domain/extensions/angle-indicator.js +1 -0
  411. package/dist/domain/extensions/attribute-switch.js +1 -0
  412. package/dist/domain/{system-components → extensions}/autorotate-camera-component.d.ts +1 -1
  413. package/dist/domain/extensions/autorotate-camera-component.js +1 -0
  414. package/dist/domain/{system-components → extensions}/basic-sidebar-footer.d.ts +1 -1
  415. package/dist/domain/extensions/basic-sidebar-footer.js +1 -0
  416. package/dist/domain/extensions/camera-based-hidden-entity-object.js +1 -0
  417. package/dist/domain/extensions/camera-based-hidden-entity.js +1 -0
  418. package/dist/domain/{system-components → extensions}/canvas-config.d.ts +1 -1
  419. package/dist/domain/extensions/canvas-config.js +1 -0
  420. package/dist/domain/extensions/canvas-custom-environment.js +1 -0
  421. package/dist/domain/{system-components → extensions}/canvas-padding.d.ts +1 -1
  422. package/dist/domain/extensions/canvas-padding.js +1 -0
  423. package/dist/domain/{system-components → extensions}/canvas-preset-environment.d.ts +1 -1
  424. package/dist/domain/extensions/canvas-preset-environment.js +1 -0
  425. package/dist/domain/{system-components → extensions}/child-entity-recipe-hierarchy.d.ts +2 -2
  426. package/dist/domain/extensions/child-entity-recipe-hierarchy.js +1 -0
  427. package/dist/domain/extensions/client-side-image.js +1 -0
  428. package/dist/domain/extensions/color-value.js +1 -0
  429. package/dist/domain/{system-components → extensions}/common/angle-indicator-schema.d.ts +1 -1
  430. package/dist/domain/extensions/common/angle-indicator-schema.js +1 -0
  431. package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.d.ts +1 -1
  432. package/dist/domain/extensions/common/dimension-indicator-schema.js +1 -0
  433. package/dist/domain/extensions/common/index.d.ts +4 -0
  434. package/dist/domain/extensions/common/index.js +1 -0
  435. package/dist/domain/{system-components → extensions}/custom-header.d.ts +2 -2
  436. package/dist/domain/{system-components → extensions}/custom-header.js +1 -1
  437. package/dist/domain/extensions/custom-price-footer.js +1 -0
  438. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.d.ts +2 -2
  439. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.js +1 -1
  440. package/dist/domain/{system-components → extensions}/dimension-indicator.d.ts +1 -1
  441. package/dist/domain/extensions/dimension-indicator.js +1 -0
  442. package/dist/domain/{system-components → extensions}/editable-angle-indicator.d.ts +3 -2
  443. package/dist/domain/extensions/editable-angle-indicator.js +1 -0
  444. package/dist/domain/{system-components → extensions}/editable-distance-dimension-indicator.d.ts +3 -2
  445. package/dist/domain/extensions/editable-distance-dimension-indicator.js +1 -0
  446. package/dist/domain/{system-components → extensions}/editable-offset-indicator.d.ts +3 -2
  447. package/dist/domain/extensions/editable-offset-indicator.js +1 -0
  448. package/dist/domain/{system-components → extensions}/editable-size-indicator.d.ts +3 -2
  449. package/dist/domain/extensions/editable-size-indicator.js +1 -0
  450. package/dist/domain/{system-components → extensions}/entity-header.d.ts +1 -1
  451. package/dist/domain/extensions/entity-header.js +1 -0
  452. package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.d.ts +1 -1
  453. package/dist/domain/extensions/exit-tool-mode-fab.js +1 -0
  454. package/dist/domain/{system-components → extensions}/finalize-action.d.ts +1 -1
  455. package/dist/domain/extensions/finalize-action.js +1 -0
  456. package/dist/domain/extensions/finalize-component.js +1 -0
  457. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -0
  458. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -0
  459. package/dist/domain/{system-components → extensions}/fixed-header.d.ts +1 -1
  460. package/dist/domain/extensions/fixed-header.js +1 -0
  461. package/dist/domain/{system-components → extensions}/floating-header.d.ts +1 -1
  462. package/dist/domain/extensions/floating-header.js +1 -0
  463. package/dist/domain/{system-components → extensions}/hidden-header.d.ts +1 -1
  464. package/dist/domain/extensions/hidden-header.js +1 -0
  465. package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.d.ts +1 -1
  466. package/dist/domain/extensions/hidden-sidebar-footer.js +1 -0
  467. package/dist/domain/{system-components → extensions}/horizontal-tabs.d.ts +1 -1
  468. package/dist/domain/extensions/horizontal-tabs.js +1 -0
  469. package/dist/domain/extensions/index.d.ts +69 -0
  470. package/dist/domain/extensions/index.js +1 -0
  471. package/dist/domain/{system-components → extensions}/list-selector-dimension-indicator.d.ts +3 -2
  472. package/dist/domain/extensions/list-selector-dimension-indicator.js +1 -0
  473. package/dist/domain/extensions/multilingual-text-value.js +1 -0
  474. package/dist/domain/extensions/navigation-steps.js +1 -0
  475. package/dist/domain/{system-components → extensions}/offset-anchors.d.ts +1 -1
  476. package/dist/domain/extensions/offset-anchors.js +1 -0
  477. package/dist/domain/{system-components → extensions}/offset-indicator.d.ts +1 -2
  478. package/dist/domain/extensions/offset-indicator.js +1 -0
  479. package/dist/domain/{system-components → extensions}/offset.d.ts +1 -1
  480. package/dist/domain/extensions/offset.js +1 -0
  481. package/dist/domain/{system-components → extensions}/other-action.d.ts +1 -1
  482. package/dist/domain/extensions/other-action.js +1 -0
  483. package/dist/domain/{system-components → extensions}/property-page.d.ts +2 -2
  484. package/dist/domain/extensions/property-page.js +1 -0
  485. package/dist/domain/{system-components → extensions}/read-sidebar-footer.d.ts +1 -1
  486. package/dist/domain/extensions/read-sidebar-footer.js +1 -0
  487. package/dist/domain/{system-components → extensions}/replace-entity-recipe-hierarchy.d.ts +2 -2
  488. package/dist/domain/extensions/replace-entity-recipe-hierarchy.js +1 -0
  489. package/dist/domain/extensions/rotatable.js +1 -0
  490. package/dist/domain/extensions/rotation-handle.js +1 -0
  491. package/dist/domain/extensions/save-template-thumbnail.js +1 -0
  492. package/dist/domain/{system-components → extensions}/scene-entity-add-fab.d.ts +1 -1
  493. package/dist/domain/extensions/scene-entity-add-fab.js +1 -0
  494. package/dist/domain/extensions/scene-entity-animation.js +1 -0
  495. package/dist/domain/extensions/scene-entity-control.js +1 -0
  496. package/dist/domain/{system-components → extensions}/scene-entity-delete-fab.d.ts +1 -1
  497. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -0
  498. package/dist/domain/extensions/scene-entity-floor-object.js +1 -0
  499. package/dist/domain/{system-components → extensions}/scene-entity-html-hotspot.d.ts +1 -1
  500. package/dist/domain/extensions/scene-entity-html-hotspot.js +1 -0
  501. package/dist/domain/{system-components → extensions}/scene-entity-navigation-hotspot.d.ts +1 -1
  502. package/dist/domain/extensions/scene-entity-navigation-hotspot.js +1 -0
  503. package/dist/domain/{system-components → extensions}/scene-entity-object-html-hotspot.d.ts +1 -1
  504. package/dist/domain/extensions/scene-entity-object-html-hotspot.js +1 -0
  505. package/dist/domain/{system-components → extensions}/scene-entity-select-hotspot.d.ts +1 -1
  506. package/dist/domain/extensions/scene-entity-select-hotspot.js +1 -0
  507. package/dist/domain/extensions/scene-entity-wall-object.js +1 -0
  508. package/dist/domain/extensions/selectable-component.js +1 -0
  509. package/dist/domain/{system-components → extensions}/sidebar-tabs.d.ts +1 -1
  510. package/dist/domain/extensions/sidebar-tabs.js +1 -0
  511. package/dist/domain/extensions/simple-summary.js +1 -0
  512. package/dist/domain/{system-components → extensions}/size.d.ts +1 -1
  513. package/dist/domain/extensions/size.js +1 -0
  514. package/dist/domain/{system-components → extensions}/sketching-draw.d.ts +1 -1
  515. package/dist/domain/extensions/sketching-draw.js +1 -0
  516. package/dist/domain/{system-components → extensions}/sketching-edit.d.ts +2 -2
  517. package/dist/domain/extensions/sketching-edit.js +1 -0
  518. package/dist/domain/extensions/summary-component.js +1 -0
  519. package/dist/domain/extensions/text-value.js +1 -0
  520. package/dist/domain/extensions/tool-controls.js +1 -0
  521. package/dist/domain/{system-components → extensions}/tool-menu-fab.d.ts +2 -2
  522. package/dist/domain/extensions/tool-menu-fab.js +1 -0
  523. package/dist/domain/{system-components → extensions}/toolbar.d.ts +2 -2
  524. package/dist/domain/{system-components → extensions}/toolbar.js +1 -1
  525. package/dist/domain/{system-components → extensions}/universal-sidebar-footer.d.ts +1 -1
  526. package/dist/domain/extensions/universal-sidebar-footer.js +1 -0
  527. package/dist/domain/extensions/view-controls.js +1 -0
  528. package/dist/domain/index.d.ts +2 -32
  529. package/dist/domain/index.js +1 -1
  530. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  531. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +13 -13
  532. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  533. package/dist/domain/projections/blender-projections/blender-projections.d.ts +2 -3
  534. package/dist/domain/projections/blender-projections/blender-projections.js +1 -1
  535. package/dist/domain/projections/blender-projections/camera.d.ts +1 -1
  536. package/dist/domain/projections/collision-projections.d.ts +1 -1
  537. package/dist/domain/projections/composition-projections.d.ts +1 -1
  538. package/dist/domain/projections/composition-projections.js +1 -1
  539. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  540. package/dist/domain/projections/index.d.ts +1 -1
  541. package/dist/domain/projections/position-projections.d.ts +1 -1
  542. package/dist/domain/projections/projected-entities-projections.d.ts +2 -3
  543. package/dist/domain/projections/snap-matching.d.ts +1 -2
  544. package/dist/domain/projections/snap-utils.d.ts +1 -2
  545. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  546. package/dist/domain/projections/validation-projections.d.ts +3 -20
  547. package/dist/domain/projections/validation-projections.js +1 -1
  548. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  549. package/dist/domain/system-components/admin-sidebar.d.ts +1 -1
  550. package/dist/domain/system-components/admin-sidebar.js +1 -1
  551. package/dist/domain/system-components/angle-dimension.js +1 -1
  552. package/dist/domain/system-components/application-config.d.ts +1 -1
  553. package/dist/domain/system-components/application-config.js +1 -1
  554. package/dist/domain/system-components/attribute-selection.js +1 -1
  555. package/dist/domain/system-components/bounding-box-component.d.ts +1 -1
  556. package/dist/domain/system-components/bounding-box-component.js +1 -1
  557. package/dist/domain/system-components/bounding-sphere-component.d.ts +1 -1
  558. package/dist/domain/system-components/bounding-sphere-component.js +1 -1
  559. package/dist/domain/system-components/child-entity-recipes.d.ts +1 -1
  560. package/dist/domain/system-components/child-entity-recipes.js +1 -1
  561. package/dist/domain/system-components/child-entity-selection.d.ts +1 -2
  562. package/dist/domain/system-components/child-entity-selection.js +1 -1
  563. package/dist/domain/system-components/collision-box-geometry.d.ts +1 -1
  564. package/dist/domain/system-components/collision-box-geometry.js +1 -1
  565. package/dist/domain/system-components/collision-geometries.d.ts +1 -1
  566. package/dist/domain/system-components/collision-geometry.d.ts +1 -1
  567. package/dist/domain/system-components/collision-geometry.js +1 -1
  568. package/dist/domain/system-components/collision-point-geometry.d.ts +1 -1
  569. package/dist/domain/system-components/collision-point-geometry.js +1 -1
  570. package/dist/domain/system-components/common/index.d.ts +0 -4
  571. package/dist/domain/system-components/common/index.js +1 -1
  572. package/dist/domain/system-components/common/recipes.d.ts +1 -2
  573. package/dist/domain/system-components/constraint.d.ts +1 -1
  574. package/dist/domain/system-components/constraint.js +1 -1
  575. package/dist/domain/system-components/create-blueprint.d.ts +1 -1
  576. package/dist/domain/system-components/custom-scene-entity.d.ts +1 -1
  577. package/dist/domain/system-components/custom-scene-entity.js +1 -1
  578. package/dist/domain/system-components/detail.js +1 -1
  579. package/dist/domain/system-components/distance-dimension-select.d.ts +1 -1
  580. package/dist/domain/system-components/distance-dimension-select.js +1 -1
  581. package/dist/domain/system-components/distance-dimension.d.ts +1 -1
  582. package/dist/domain/system-components/distance-dimension.js +1 -1
  583. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  584. package/dist/domain/system-components/drag-handle.js +1 -1
  585. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  586. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  587. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  588. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  589. package/dist/domain/system-components/generic-dimension.d.ts +1 -1
  590. package/dist/domain/system-components/generic-dimension.js +1 -1
  591. package/dist/domain/system-components/hidden-entity.js +1 -1
  592. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -2
  593. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  594. package/dist/domain/system-components/index.d.ts +0 -68
  595. package/dist/domain/system-components/index.js +1 -1
  596. package/dist/domain/system-components/material-override-property-transition.js +1 -1
  597. package/dist/domain/system-components/material-override-transformer.js +1 -1
  598. package/dist/domain/system-components/material-swatch.js +1 -1
  599. package/dist/domain/system-components/navigation-page.js +1 -1
  600. package/dist/domain/system-components/navigation-panel-list.js +1 -1
  601. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  602. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  603. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  604. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  605. package/dist/domain/system-components/pivot-point.d.ts +1 -1
  606. package/dist/domain/system-components/pivot-point.js +1 -1
  607. package/dist/domain/system-components/price.js +1 -1
  608. package/dist/domain/system-components/projected-entities.d.ts +1 -1
  609. package/dist/domain/system-components/projected-entities.js +1 -1
  610. package/dist/domain/system-components/replace-entity-recipes.d.ts +1 -1
  611. package/dist/domain/system-components/replace-entity-recipes.js +1 -1
  612. package/dist/domain/system-components/scene-entity-ambient-light.js +1 -1
  613. package/dist/domain/system-components/scene-entity-box-object.js +1 -1
  614. package/dist/domain/system-components/scene-entity-directional-light.js +1 -1
  615. package/dist/domain/system-components/scene-entity-local-material-override.js +1 -1
  616. package/dist/domain/system-components/scene-entity-material-override.js +1 -1
  617. package/dist/domain/system-components/scene-entity-object-clip.js +1 -1
  618. package/dist/domain/system-components/scene-entity-object-decal.js +1 -1
  619. package/dist/domain/system-components/scene-entity-object-group.js +1 -1
  620. package/dist/domain/system-components/scene-entity-object-local-material-override.js +1 -1
  621. package/dist/domain/system-components/scene-entity-object-material-override.js +1 -1
  622. package/dist/domain/system-components/scene-entity-object-properties.js +1 -1
  623. package/dist/domain/system-components/scene-entity-object-remote-material-override.js +1 -1
  624. package/dist/domain/system-components/scene-entity-object-text-decal.js +1 -1
  625. package/dist/domain/system-components/scene-entity-object-transformer.js +1 -1
  626. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.js +1 -1
  627. package/dist/domain/system-components/scene-entity-object.js +1 -1
  628. package/dist/domain/system-components/scene-entity-point-light.js +1 -1
  629. package/dist/domain/system-components/scene-entity-properties.js +1 -1
  630. package/dist/domain/system-components/scene-entity-rect-area-light.js +1 -1
  631. package/dist/domain/system-components/scene-entity-remote-material-override.js +1 -1
  632. package/dist/domain/system-components/scene-entity-remote-object.js +1 -1
  633. package/dist/domain/system-components/scene-entity-spot-light.js +1 -1
  634. package/dist/domain/system-components/scene-entity-transimissive-material-override.js +1 -1
  635. package/dist/domain/system-components/sketching-line.d.ts +1 -1
  636. package/dist/domain/system-components/sketching-line.js +1 -1
  637. package/dist/domain/system-components/sketching-rectangle.d.ts +1 -1
  638. package/dist/domain/system-components/sketching-rectangle.js +1 -1
  639. package/dist/domain/system-components/sketching.d.ts +1 -1
  640. package/dist/domain/system-components/sketching.js +1 -1
  641. package/dist/domain/system-components/snap-axis.d.ts +1 -1
  642. package/dist/domain/system-components/snap-axis.js +1 -1
  643. package/dist/domain/system-components/snap-edge.d.ts +1 -1
  644. package/dist/domain/system-components/snap-edge.js +1 -1
  645. package/dist/domain/system-components/snap-plane.d.ts +1 -1
  646. package/dist/domain/system-components/snap-plane.js +1 -1
  647. package/dist/domain/system-components/snap-point.d.ts +1 -1
  648. package/dist/domain/system-components/snap-point.js +1 -1
  649. package/dist/domain/system-components/static-orthographic-camera-component.d.ts +1 -1
  650. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  651. package/dist/domain/system-components/static-perspective-camera-component.d.ts +1 -1
  652. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  653. package/dist/domain/utils/eval-cache.d.ts +1 -2
  654. package/dist/domain/utils/memo-eval.d.ts +2 -4
  655. package/dist/editor/Editor.js +1 -1
  656. package/dist/editor/domain-editors/use-implementation-files.d.ts +7 -6
  657. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  658. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  659. package/dist/editor/variants/VariantAnswerFooter.d.ts +17 -0
  660. package/dist/editor/variants/VariantAnswerFooter.js +1 -0
  661. package/dist/editor/variants/VariantPreviewHandler.d.ts +6 -0
  662. package/dist/editor/variants/VariantPreviewHandler.js +1 -0
  663. package/dist/editor/variants/variant-preview-styles.d.ts +49 -0
  664. package/dist/editor/variants/variant-preview-styles.js +1 -0
  665. package/dist/i18n/locales/cs/messages.js +1 -1
  666. package/dist/i18n/locales/da/messages.js +1 -1
  667. package/dist/i18n/locales/de/messages.js +1 -1
  668. package/dist/i18n/locales/de-AT/messages.js +1 -1
  669. package/dist/i18n/locales/en/messages.js +1 -1
  670. package/dist/i18n/locales/en-AU/messages.js +1 -1
  671. package/dist/i18n/locales/en-GB/messages.js +1 -1
  672. package/dist/i18n/locales/es/messages.js +1 -1
  673. package/dist/i18n/locales/fr/messages.js +1 -1
  674. package/dist/i18n/locales/hu/messages.js +1 -1
  675. package/dist/i18n/locales/it/messages.js +1 -1
  676. package/dist/i18n/locales/nl/messages.js +1 -1
  677. package/dist/i18n/locales/pl/messages.js +1 -1
  678. package/dist/i18n/locales/pt/messages.js +1 -1
  679. package/dist/i18n/locales/ro/messages.js +1 -1
  680. package/dist/i18n/locales/sk/messages.js +1 -1
  681. package/dist/i18n/locales/tr/messages.js +1 -1
  682. package/dist/legacy/domain-cli/gen/configurator-builder.js +21 -8
  683. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  684. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  685. package/dist/legacy/domain-cli/gen/invariants.js +5 -3
  686. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  687. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  688. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.d.ts +1 -1
  689. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
  690. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +18 -19
  691. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +15 -16
  692. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +22 -23
  693. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +15 -16
  694. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.d.ts +7 -2
  695. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.js +8 -12
  696. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.d.ts +1 -1
  697. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.js +1 -1
  698. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/webhook-builders.js +7 -7
  699. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  700. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +4 -3
  701. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  702. package/dist/phoenix/cli.js +1 -1
  703. package/dist/phoenix/commands/dev.js +5 -5
  704. package/dist/phoenix/commands/index.d.ts +1 -0
  705. package/dist/phoenix/commands/index.js +1 -1
  706. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  707. package/dist/phoenix/commands/prepare-local-environment-command.js +1 -1
  708. package/dist/phoenix/commands/story-dev.js +2 -2
  709. package/dist/phoenix/commands/variants.d.ts +35 -0
  710. package/dist/phoenix/commands/variants.js +1 -0
  711. package/dist/phoenix/editor-server/commands-router.d.ts +68 -1
  712. package/dist/phoenix/editor-server/commands-router.js +1 -1
  713. package/dist/phoenix/editor-server/editor-router.d.ts +65 -0
  714. package/dist/phoenix/editor-server/editor-server.d.ts +3 -3
  715. package/dist/phoenix/editor-server/editor-server.js +1 -1
  716. package/dist/phoenix/editor-server/protocol.d.ts +1 -0
  717. package/dist/phoenix/editor-server/spec-router.js +1 -1
  718. package/dist/phoenix/editor-server/trpc.d.ts +3 -0
  719. package/dist/phoenix/scripts/build-admin.js +1 -1
  720. package/dist/phoenix/services/application-spec-project-watcher.d.ts +13 -2
  721. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  722. package/dist/phoenix/services/index.d.ts +4 -0
  723. package/dist/phoenix/services/index.js +1 -1
  724. package/dist/phoenix/services/phoenix-application.d.ts +21 -0
  725. package/dist/phoenix/services/phoenix-application.js +1 -0
  726. package/dist/phoenix/services/phoenix-store.d.ts +48 -0
  727. package/dist/phoenix/services/phoenix-store.js +1 -0
  728. package/dist/phoenix/services/phx-variant-previews-plugin.d.ts +9 -0
  729. package/dist/phoenix/services/phx-variant-previews-plugin.js +1 -0
  730. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  731. package/dist/phoenix/services/variant-file-session.d.ts +36 -0
  732. package/dist/phoenix/services/variant-file-session.js +1 -0
  733. package/dist/phoenix/services/variant-preview-service.d.ts +80 -0
  734. package/dist/phoenix/services/variant-preview-service.js +1 -0
  735. package/dist/phoenix/services/vite-config.js +1 -1
  736. package/dist/react-sdk/application-runtime/hooks/use-domain-application-props.d.ts +5 -2
  737. package/dist/react-sdk/application-runtime/hooks/use-spec.d.ts +1 -1
  738. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.d.ts +1 -1
  739. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  740. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +24 -24
  741. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +5 -5
  742. package/dist/ui-sdk/common/use-viewport-size.d.ts +4 -1
  743. package/dist/ui-sdk/common/use-viewport-size.js +1 -1
  744. package/dist/ui-sdk/theme/types.d.ts +1 -1
  745. package/dist/webhook/builders/common.d.ts +8 -0
  746. package/dist/webhook/builders/webhook-builder.d.ts +1 -1
  747. package/dist/webhook/builders/webhook-builder.js +1 -1
  748. package/package.json +4 -4
  749. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  750. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  751. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  752. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -90
  753. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  754. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  755. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  756. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  757. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  758. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  759. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  760. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  761. package/dist/configurator/assistant/index.d.ts +0 -1
  762. package/dist/configurator/assistant/index.js +0 -1
  763. package/dist/configurator/assistant/use-assistant-chat.d.ts +0 -30
  764. package/dist/configurator/assistant/use-assistant-chat.js +0 -1
  765. package/dist/configurator/ui/assistant/AssistantPanelProvider.d.ts +0 -42
  766. package/dist/configurator/ui/assistant/AssistantPanelProvider.js +0 -1
  767. package/dist/domain/actions/action-factory.d.ts +0 -10
  768. package/dist/domain/actions/prepare-action-implementations.js +0 -5
  769. package/dist/domain/application/element-registration.js +0 -1
  770. package/dist/domain/application/handler-registration.js +0 -1
  771. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -13
  772. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  773. package/dist/domain/components/debug-state-component.js +0 -1
  774. package/dist/domain/components/drag-state-component.js +0 -1
  775. package/dist/domain/components/export-state-component.js +0 -1
  776. package/dist/domain/components/fullscreen-state-component.js +0 -1
  777. package/dist/domain/components/group-components-by-entity-id-and-name.js +0 -1
  778. package/dist/domain/components/hover-state-component.js +0 -1
  779. package/dist/domain/components/index.d.ts +0 -2
  780. package/dist/domain/components/index.js +0 -1
  781. package/dist/domain/components/navigation-state-component.js +0 -1
  782. package/dist/domain/components/selection-state-component.js +0 -1
  783. package/dist/domain/components/system-component-builder.js +0 -1
  784. package/dist/domain/components/system-virtual-entity.js +0 -1
  785. package/dist/domain/components/tool-state-component.js +0 -1
  786. package/dist/domain/components/view-state-component.js +0 -1
  787. package/dist/domain/components/viewport-state-component.js +0 -1
  788. package/dist/domain/core/expression.d.ts +0 -50
  789. package/dist/domain/core/json-schema.js +0 -1
  790. package/dist/domain/core/reflection.js +0 -1
  791. package/dist/domain/domain-context/recipe-system/recipes.js +0 -1
  792. package/dist/domain/expressions/constant-expressions.js +0 -1
  793. package/dist/domain/expressions/custom-expression.js +0 -1
  794. package/dist/domain/expressions/index.d.ts +0 -1
  795. package/dist/domain/expressions/index.js +0 -1
  796. package/dist/domain/invariants/custom-invariants.js +0 -1
  797. package/dist/domain/invariants/invariants.d.ts +0 -68
  798. package/dist/domain/invariants/invariants.js +0 -1
  799. package/dist/domain/invariants/violation-component.js +0 -1
  800. package/dist/domain/relations/all-of-type-relation.js +0 -1
  801. package/dist/domain/relations/component-factories.js +0 -1
  802. package/dist/domain/relations/composed-of.js +0 -1
  803. package/dist/domain/relations/indirect-relation.js +0 -1
  804. package/dist/domain/relations/reference-component.js +0 -1
  805. package/dist/domain/system-components/angle-indicator.js +0 -1
  806. package/dist/domain/system-components/attribute-switch.js +0 -1
  807. package/dist/domain/system-components/autorotate-camera-component.js +0 -1
  808. package/dist/domain/system-components/basic-sidebar-footer.js +0 -1
  809. package/dist/domain/system-components/camera-based-hidden-entity-object.js +0 -1
  810. package/dist/domain/system-components/camera-based-hidden-entity.js +0 -1
  811. package/dist/domain/system-components/canvas-config.js +0 -1
  812. package/dist/domain/system-components/canvas-custom-environment.js +0 -1
  813. package/dist/domain/system-components/canvas-padding.js +0 -1
  814. package/dist/domain/system-components/canvas-preset-environment.js +0 -1
  815. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +0 -1
  816. package/dist/domain/system-components/client-side-image.js +0 -1
  817. package/dist/domain/system-components/color-value.js +0 -1
  818. package/dist/domain/system-components/common/angle-indicator-schema.js +0 -1
  819. package/dist/domain/system-components/common/dimension-indicator-schema.js +0 -1
  820. package/dist/domain/system-components/custom-price-footer.js +0 -1
  821. package/dist/domain/system-components/dimension-indicator.js +0 -1
  822. package/dist/domain/system-components/editable-angle-indicator.js +0 -1
  823. package/dist/domain/system-components/editable-distance-dimension-indicator.js +0 -1
  824. package/dist/domain/system-components/editable-offset-indicator.js +0 -1
  825. package/dist/domain/system-components/editable-size-indicator.js +0 -1
  826. package/dist/domain/system-components/entity-header.js +0 -1
  827. package/dist/domain/system-components/exit-tool-mode-fab.js +0 -1
  828. package/dist/domain/system-components/finalize-action.js +0 -1
  829. package/dist/domain/system-components/finalize-component.js +0 -1
  830. package/dist/domain/system-components/fit-selection-orthographic-camera-component.js +0 -1
  831. package/dist/domain/system-components/fit-selection-perspective-camera-component.js +0 -1
  832. package/dist/domain/system-components/fixed-header.js +0 -1
  833. package/dist/domain/system-components/floating-header.js +0 -1
  834. package/dist/domain/system-components/hidden-header.js +0 -1
  835. package/dist/domain/system-components/hidden-sidebar-footer.js +0 -1
  836. package/dist/domain/system-components/horizontal-tabs.js +0 -1
  837. package/dist/domain/system-components/list-selector-dimension-indicator.js +0 -1
  838. package/dist/domain/system-components/multilingual-text-value.js +0 -1
  839. package/dist/domain/system-components/navigation-steps.js +0 -1
  840. package/dist/domain/system-components/offset-anchors.js +0 -1
  841. package/dist/domain/system-components/offset-indicator.js +0 -1
  842. package/dist/domain/system-components/offset.js +0 -1
  843. package/dist/domain/system-components/other-action.js +0 -1
  844. package/dist/domain/system-components/property-page.js +0 -1
  845. package/dist/domain/system-components/read-sidebar-footer.js +0 -1
  846. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +0 -1
  847. package/dist/domain/system-components/rotatable.js +0 -1
  848. package/dist/domain/system-components/rotation-handle.js +0 -1
  849. package/dist/domain/system-components/save-template-thumbnail.js +0 -1
  850. package/dist/domain/system-components/scene-entity-add-fab.js +0 -1
  851. package/dist/domain/system-components/scene-entity-animation.js +0 -1
  852. package/dist/domain/system-components/scene-entity-control.js +0 -1
  853. package/dist/domain/system-components/scene-entity-delete-fab.js +0 -1
  854. package/dist/domain/system-components/scene-entity-floor-object.js +0 -1
  855. package/dist/domain/system-components/scene-entity-html-hotspot.js +0 -1
  856. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +0 -1
  857. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +0 -1
  858. package/dist/domain/system-components/scene-entity-select-hotspot.js +0 -1
  859. package/dist/domain/system-components/scene-entity-wall-object.js +0 -1
  860. package/dist/domain/system-components/selectable-component.js +0 -1
  861. package/dist/domain/system-components/sidebar-tabs.js +0 -1
  862. package/dist/domain/system-components/simple-summary.js +0 -1
  863. package/dist/domain/system-components/size.js +0 -1
  864. package/dist/domain/system-components/sketching-draw.js +0 -1
  865. package/dist/domain/system-components/sketching-edit.js +0 -1
  866. package/dist/domain/system-components/summary-component.js +0 -1
  867. package/dist/domain/system-components/text-value.js +0 -1
  868. package/dist/domain/system-components/tool-controls.js +0 -1
  869. package/dist/domain/system-components/tool-menu-fab.js +0 -1
  870. package/dist/domain/system-components/universal-sidebar-footer.js +0 -1
  871. package/dist/domain/system-components/view-controls.js +0 -1
  872. package/dist/phoenix/application-spec/generate-assistant-prompt.d.ts +0 -12
  873. package/dist/phoenix/application-spec/generate-assistant-prompt.js +0 -1
  874. /package/dist/domain/{components/component-reader-types.js → application/assistant/assistant-manifest.js} +0 -0
  875. /package/dist/domain/{core/action.js → application/assistant/assistant-resolved-manifest.js} +0 -0
  876. /package/dist/domain/{actions → core/action}/action-factory.js +0 -0
  877. /package/dist/domain/core/{enhanced-json-schema.js → action/action.js} +0 -0
  878. /package/dist/domain/core/{expression.js → component/component-reader-types.js} +0 -0
  879. /package/dist/domain/{components → core/component}/legacy-filter.js +0 -0
  880. /package/dist/domain/{components → core/component}/system-component-filter.js +0 -0
  881. /package/dist/domain/{components → core/component}/system-virtual-entity.d.ts +0 -0
  882. /package/dist/domain/{components → core/component}/updates.js +0 -0
  883. /package/dist/domain/core/{schema-validator.js → data-schema/data-cell-value.js} +0 -0
  884. /package/dist/domain/{relations/reference-field.js → core/data-schema/data-schema-array-field.js} +0 -0
  885. /package/dist/domain/{relations/relation-implementation.js → core/data-schema/data-schema-field-object.js} +0 -0
  886. /package/dist/domain/{invariants → core/invariant}/builtin-invariant.js +0 -0
  887. /package/dist/domain/{invariants → core/invariant}/violation-component.d.ts +0 -0
  888. /package/dist/domain/{invariants → core/invariant}/violation.js +0 -0
  889. /package/dist/domain/core/{alias.d.ts → model/alias.d.ts} +0 -0
  890. /package/dist/domain/core/{alias.js → model/alias.js} +0 -0
  891. /package/dist/domain/core/{common-definitions.d.ts → model/common-definitions.d.ts} +0 -0
  892. /package/dist/domain/core/{common-definitions.js → model/common-definitions.js} +0 -0
  893. /package/dist/domain/core/{component.js → model/component.js} +0 -0
  894. /package/dist/domain/core/{model.d.ts → model/model.d.ts} +0 -0
  895. /package/dist/domain/core/{model.js → model/model.js} +0 -0
  896. /package/dist/domain/core/{preset.d.ts → model/preset.d.ts} +0 -0
  897. /package/dist/domain/core/{preset.js → model/preset.js} +0 -0
  898. /package/dist/domain/{relations → core/relation}/direct-relation.js +0 -0
  899. /package/dist/domain/{relations → core/relation}/relation-factory.js +0 -0
  900. /package/dist/domain/core/{schema-validator-ajv.d.ts → schema/create-ajv-schema-validator.d.ts} +0 -0
  901. /package/dist/domain/core/{schema-validator-ajv.js → schema/create-ajv-schema-validator.js} +0 -0
  902. /package/dist/domain/core/{schema-validator-csp.d.ts → schema/create-csp-schema-validator.d.ts} +0 -0
  903. /package/dist/domain/core/{schema-validator-csp.js → schema/create-csp-schema-validator.js} +0 -0
  904. /package/dist/domain/core/{enhanced-json-schema.d.ts → schema/enhanced-json-schema.d.ts} +0 -0
  905. /package/dist/domain/core/{json-schema.d.ts → schema/extended-schema-validator.d.ts} +0 -0
  906. /package/dist/domain/core/{schema-validator.d.ts → schema/schema-validator.d.ts} +0 -0
  907. /package/dist/domain/core/{migrations.js → state/migrations.js} +0 -0
  908. /package/dist/domain/core/{state.js → state/state.js} +0 -0
  909. /package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.js +0 -0
  910. /package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.js +0 -0
  911. /package/dist/domain/{system-components → extensions}/attribute-switch.d.ts +0 -0
  912. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.d.ts +0 -0
  913. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.d.ts +0 -0
  914. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.d.ts +0 -0
  915. /package/dist/domain/{system-components → extensions}/client-side-image.d.ts +0 -0
  916. /package/dist/domain/{system-components → extensions}/color-value.d.ts +0 -0
  917. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.d.ts +0 -0
  918. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.js +0 -0
  919. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.d.ts +0 -0
  920. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.js +0 -0
  921. /package/dist/domain/{system-components → extensions}/custom-price-footer.d.ts +0 -0
  922. /package/dist/domain/{system-components → extensions}/finalize-component.d.ts +0 -0
  923. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.d.ts +0 -0
  924. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.d.ts +0 -0
  925. /package/dist/domain/{system-components → extensions}/multilingual-text-value.d.ts +0 -0
  926. /package/dist/domain/{system-components → extensions}/navigation-steps.d.ts +0 -0
  927. /package/dist/domain/{system-components → extensions}/rotatable.d.ts +0 -0
  928. /package/dist/domain/{system-components → extensions}/rotation-handle.d.ts +0 -0
  929. /package/dist/domain/{system-components → extensions}/save-template-thumbnail.d.ts +0 -0
  930. /package/dist/domain/{system-components → extensions}/scene-entity-animation.d.ts +0 -0
  931. /package/dist/domain/{system-components → extensions}/scene-entity-control.d.ts +0 -0
  932. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.d.ts +0 -0
  933. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.d.ts +0 -0
  934. /package/dist/domain/{system-components → extensions}/selectable-component.d.ts +0 -0
  935. /package/dist/domain/{system-components → extensions}/simple-summary.d.ts +0 -0
  936. /package/dist/domain/{system-components → extensions}/summary-component.d.ts +0 -0
  937. /package/dist/domain/{system-components → extensions}/text-value.d.ts +0 -0
  938. /package/dist/domain/{system-components → extensions}/tool-controls.d.ts +0 -0
  939. /package/dist/domain/{system-components → extensions}/view-controls.d.ts +0 -0
@@ -0,0 +1,36 @@
1
+ import type { Logger } from '../utils/index.js';
2
+ /** A baseline-relative edit collected by an option script; null removes the file. */
3
+ export interface VariantFileEdit {
4
+ readonly fileName: string;
5
+ readonly content: string | null;
6
+ }
7
+ /** Owns the baseline, file transactions and recovery for one live comparison. */
8
+ export declare class VariantFileSession {
9
+ private readonly props;
10
+ private readonly queue;
11
+ private readonly applied;
12
+ private readonly baseline;
13
+ private readonly contract;
14
+ private settled;
15
+ private constructor();
16
+ static create(props: {
17
+ readonly projectRoot: string;
18
+ readonly logger: Logger;
19
+ readonly onFilesChanged: (files: readonly VariantFileEdit[]) => void;
20
+ }): Promise<VariantFileSession>;
21
+ /**
22
+ * Restores the baseline a comparison left behind when its dev session ended without closing it. A file
23
+ * edited since then is left as it is, so the edit survives and the next dev session can still start.
24
+ */
25
+ static recover(projectRoot: string, logger: Logger): Promise<void>;
26
+ private static resolveFile;
27
+ getFiles(): readonly VariantFileEdit[];
28
+ apply(edits: readonly VariantFileEdit[]): Promise<void>;
29
+ finish(keep: boolean): Promise<void>;
30
+ /**
31
+ * Moves the files from what is applied now to `target`. A file edited outside the comparison is never
32
+ * overwritten: a switch is refused, so the builder sees why, while the end of the comparison keeps that
33
+ * file as it is and restores the others, so the comparison can always be closed.
34
+ */
35
+ private writeTarget;
36
+ }
@@ -0,0 +1 @@
1
+ import{mkdir as e,readFile as t,realpath as i,rename as a,rm as r,writeFile as s}from"node:fs/promises";import{dirname as o,join as n,relative as l,resolve as p,sep as c}from"node:path";import h from"promise-queue";import{z as d}from"zod";import{RawProjectFiles as f,RuntimeReferenceStore as m,TextFile as w,buildPhoenixDefinitions as u,isTextFile as g,parseApplicationFiles as v}from"#package/application-spec";import{generateAssistantPrompt as y,getAllPhxDefinitions as b}from"#package/domain";import{readApplicationFiles as S}from"../application-spec/application-spec-file-reader.js";import{swcEvalExpressionParser as F,swcModuleAnalyzer as N}from"../application-spec/swc-module-analyzer.js";let k=".phoenix/variant-recovery.json",j=d.array(d.object({fileName:d.string(),original:d.string().nullable(),applied:d.string().nullable(),previous:d.string().nullable().optional()})),E=e=>!e.includes("\\")&&!e.split("/").some(e=>".."===e||"."===e||""===e)&&(/^spec\/(?!admin\/).+\.yaml$/.test(e)||/^src\/(?:components|transformers|handlers|elements|_[^/]+)\/.+\.tsx?$/.test(e)),M=e=>`Left ${e} as it is: it was edited outside the variant comparison, so restoring the baseline would overwrite that edit. Review the file and remove what the option added to it`,$=async e=>{try{return await t(e,"utf8")}catch(e){if(e instanceof Error&&"code"in e&&"ENOENT"===e.code)return null;throw e}},C=async(t,i)=>{if(null===i)return void await r(t,{force:!0});await e(o(t),{recursive:!0});let n=`${t}.variant-${crypto.randomUUID()}`;try{await s(n,i),await a(n,t)}finally{await r(n,{force:!0})}},R=(e,t)=>{let i=v({rawProjectFiles:e,phxDefinitions:u(b())},{analyzer:N,evalExpressionParser:F,referenceStore:new m,logger:t});if(!i.ok)throw Error(`Cannot apply variant: ${i.errors.map(e=>`[${e.code}] ${e.message}`).join("\n")}`);let{configurator:a,admin:r,appMetadata:s,infra:o,dataSpec:n}=i.value.applicationSpec,l=i.value.categorizedFiles,p=new Set([...l.webhooks,...l.expressions,...l.actions,...l.invariants,...l.migrations,...l.adminMigrations,...l.adminExpressions,...l.adminInvariants,...l.handlers.filter(e=>"pinned"===e.webhookMembership||"named-handler"===e.webhookMembership),...l.components.filter(e=>"pinned"===e.webhookMembership),...l.adminComponents.filter(e=>"pinned"===e.webhookMembership)].flatMap(e=>[e.file.name,...e.deps]));return JSON.stringify({webhookFiles:e.files.filter(g).filter(e=>p.has(e.name)).sort((e,t)=>e.name.localeCompare(t.name)),appMetadata:s,infra:o,dataSpec:n,model:a.latestModel,schema:a.configurationSchema,dataSchemas:a.dataSchemas,adminModel:r.latestModel,adminSchema:r.configurationSchema,assistant:a.assistant?.sdl,assistantSettings:a.assistantServerSettings,assistantPrompt:a.assistant?y(a.assistant):null},(e,t)=>t instanceof Map?[...t.entries()]:t)};export class VariantFileSession{props;queue=new h(1,1/0);applied=new Map;baseline=new Map;contract;settled=!1;constructor(e){for(let t of(this.props=e,e.rawFiles.files))g(t)&&E(t.name)&&this.baseline.set(t.name,t.content);this.contract=R(e.rawFiles,e.logger)}static async create(e){await VariantFileSession.recover(e.projectRoot,e.logger);let t=await S({projectRoot:e.projectRoot,envs:{}});return new VariantFileSession({...e,rawFiles:t})}static async recover(e,t){let i=await $(n(e,k));if(null!==i){for(let a of j.parse(JSON.parse(i))){let i=await VariantFileSession.resolveFile(e,a.fileName),r=await $(i);if(r!==a.applied&&r!==a.original&&r!==a.previous){t.warn(M(a.fileName));continue}await C(i,a.original)}await r(n(e,k),{force:!0})}}static async resolveFile(e,t){if(!E(t))throw Error(`Cannot override ${t}: variants support frontend spec and TypeScript files only. Keep server code, dependencies, environment files and assets unchanged`);let a=await i(e),r=p(a,t),s=r;for(;;)try{let e=await i(s),r=l(a,e);if(".."===r||r.startsWith(`..${c}`))throw Error(`Cannot override ${t}: its symbolic link leaves the project`);if(e!==s)throw Error(`Cannot override ${t}: it uses a symbolic link. Variant edits require regular files so restoration preserves the original file`);break}catch(e){if(!(e instanceof Error&&"code"in e&&"ENOENT"===e.code))throw e;s=o(s)}return r}getFiles(){return[...this.baseline].map(([e,t])=>({fileName:e,content:t}))}apply(e){return this.queue.add(async()=>{if(this.settled)throw Error("This variant comparison has already ended");let t=new Map;for(let i of e){if(await VariantFileSession.resolveFile(this.props.projectRoot,i.fileName),t.has(i.fileName))throw Error(`Cannot apply variant: ${i.fileName} is specified twice`);t.set(i.fileName,i.content)}if(t.size>0){let e=this.props.rawFiles.files.filter(e=>!t.has(e.name));for(let[i,a]of t)null!==a&&e.push(w(i,a));if(R(f(e),this.props.logger)!==this.contract)throw Error("Cannot apply variant: it changes the model, schemas, data or deployment settings. Variants must need no server preparation")}await this.writeTarget(t,"refuse")})}finish(e){return this.queue.add(async()=>{this.settled||(e||await this.writeTarget(new Map,"keep"),await r(n(this.props.projectRoot,k),{force:!0}),this.settled=!0)})}async writeTarget(t,i){let a=new Set([...this.applied.keys(),...t.keys()]);if(0===a.size)return;let r=new Map;for(let e of a){let t=await VariantFileSession.resolveFile(this.props.projectRoot,e),a=this.applied.has(e)?this.applied.get(e):this.baseline.get(e)??null;if(await $(t)===a){r.set(e,t);continue}if("refuse"===i)throw Error(`Cannot switch variant: ${e} was edited outside the preview, and switching would overwrite that edit. Choose the option that is shown, or close the comparison with \`phoenix variants --close\`, which keeps the edit`);this.props.logger.warn(M(e))}let s=[...r.keys()].map(e=>({fileName:e,original:this.baseline.get(e)??null,previous:this.applied.has(e)?this.applied.get(e)??null:this.baseline.get(e)??null,applied:t.has(e)?t.get(e)??null:this.baseline.get(e)??null}));await e(n(this.props.projectRoot,".phoenix"),{recursive:!0}),await C(n(this.props.projectRoot,k),JSON.stringify(s));let o=new Map(this.applied);try{for(let e of s){let t=r.get(e.fileName);void 0!==t&&await C(t,e.applied)}}catch(e){for(let[e,t]of r)await C(t,o.has(e)?o.get(e)??null:this.baseline.get(e)??null);throw await C(n(this.props.projectRoot,k),JSON.stringify([...o].map(([e,t])=>({fileName:e,original:this.baseline.get(e)??null,applied:t})))),e}for(let[e,i]of(this.applied.clear(),t))this.applied.set(e,i);this.props.onFilesChanged(s.map(e=>({fileName:e.fileName,content:e.applied})))}}
@@ -0,0 +1,80 @@
1
+ import { Observable } from 'rxjs';
2
+ import type { Logger } from '../utils/index.js';
3
+ import type { ApplicationSpecProjectWatcher } from './application-spec-project-watcher.js';
4
+ import type { PhoenixStore, VariantPreviewOption, VariantPreviewRequest, VariantPreviewResult } from './phoenix-store.js';
5
+ import { type VariantFileEdit } from './variant-file-session.js';
6
+ /** What a command asks the editor to show, and how long it waits for the answer. */
7
+ export interface VariantPreviewInput {
8
+ readonly title: string;
9
+ readonly description: string;
10
+ readonly variants: readonly VariantPreviewOption[];
11
+ readonly timeoutMs: number;
12
+ }
13
+ /** How a wait for the builder's answer ended. `waiting` leaves the comparison open. */
14
+ export type VariantPreviewOutcome = ({
15
+ readonly status: 'settled';
16
+ } & VariantPreviewResult) | {
17
+ readonly status: 'closed';
18
+ } | {
19
+ readonly status: 'waiting';
20
+ };
21
+ /** The files of one option, as the editor collected them from its script. */
22
+ export interface VariantFilesInput {
23
+ readonly requestId: string;
24
+ readonly choice: string | null;
25
+ readonly files: readonly VariantFileEdit[];
26
+ }
27
+ export interface VariantPreviewServiceProps {
28
+ readonly projectRoot: string;
29
+ }
30
+ export interface VariantPreviewServiceContext {
31
+ readonly store: PhoenixStore;
32
+ readonly logger: Logger;
33
+ readonly projectWatcher: Pick<ApplicationSpecProjectWatcher, 'suspend' | 'resume' | 'applyVariantFiles'>;
34
+ }
35
+ /**
36
+ * Owns the variant comparison of a dev session: which one is open, the file session that rewrites and
37
+ * restores the source files for it, and the answer. Its state lives in the store; every operation that
38
+ * changes it runs one at a time.
39
+ */
40
+ export declare class VariantPreviewService {
41
+ private readonly props;
42
+ private readonly context;
43
+ private readonly queue;
44
+ private readonly result$;
45
+ private readonly closed$;
46
+ private session;
47
+ private editors;
48
+ /**
49
+ * The comparison an editor has to show, or `null`. A subscriber counts as a connected editor, and gets
50
+ * the open comparison at once, so a reloaded browser tab shows it again.
51
+ */
52
+ readonly request$: Observable<VariantPreviewRequest | null>;
53
+ constructor(props: VariantPreviewServiceProps, context: VariantPreviewServiceContext);
54
+ /** True while option edits may be in the source files, so nothing else should write or deploy them. */
55
+ get isOpen(): boolean;
56
+ /**
57
+ * Opens the comparison in the editor and waits for the builder's answer. A wait that times out leaves
58
+ * it open, and a later call with the same options attaches to it again.
59
+ */
60
+ open(input: VariantPreviewInput): Promise<VariantPreviewOutcome>;
61
+ getBaseline(requestId: string): {
62
+ readonly files: readonly VariantFileEdit[];
63
+ readonly choice: string | null;
64
+ };
65
+ applyFiles(input: VariantFilesInput): Promise<void>;
66
+ submit(result: VariantPreviewResult): Promise<void>;
67
+ /** Closes whichever comparison is open without an answer, for a command that gives up on it. */
68
+ close(): Promise<{
69
+ readonly closed: boolean;
70
+ }>;
71
+ claim(requestId: string): void;
72
+ /** Restores the baseline when the dev session ends with a comparison still open. */
73
+ dispose(): Promise<void>;
74
+ private get state();
75
+ private setState;
76
+ /** Takes a comparison off the screen without an answer and ends the wait of the command that opened it. */
77
+ private forget;
78
+ private startSession;
79
+ private endSession;
80
+ }
@@ -0,0 +1 @@
1
+ import e from"promise-queue";import{Observable as t,Subject as s,distinctUntilChanged as i,filter as r,firstValueFrom as o,map as n,merge as a,of as h,timeout as l}from"rxjs";import{VariantFileSession as c}from"./variant-file-session.js";export class VariantPreviewService{props;context;queue=new e(1,1/0);result$=new s;closed$=new s;session=null;editors=0;request$=new t(e=>{this.editors+=1;let t=this.context.store.variantPreview$.pipe(n(e=>e.open),i()).subscribe(e);return()=>{this.editors-=1,t.unsubscribe()}});constructor(e,t){this.props=e,this.context=t}get isOpen(){return null!==this.session}async open(e){return(await this.queue.add(async()=>{let t=t=>JSON.stringify(t.variants)===JSON.stringify(e.variants),{open:s,unclaimed:i}=this.state;if(i&&t(i.request))return{outcome:Promise.resolve({status:"settled",...i.result})};if(0===this.editors)throw Error("No editor connected. Open the configurator in a browser");let c=s&&t(s)?s:{requestId:crypto.randomUUID(),title:e.title,description:e.description,variants:e.variants};if(c!==s)try{await this.endSession(!1),await this.startSession()}catch(e){throw this.forget(s),e}let u=o(a(this.result$.pipe(r(e=>e.requestId===c.requestId),n(e=>({status:"settled",...e}))),this.closed$.pipe(r(e=>e===c.requestId),n(()=>({status:"closed"})))).pipe(l({first:e.timeoutMs,with:()=>h({status:"waiting"})})));return c!==s&&(this.setState({open:c,activeChoice:null,unclaimed:null}),s&&this.closed$.next(s.requestId)),{outcome:u}})).outcome}getBaseline(e){if(this.state.open?.requestId!==e||!this.session)throw Error("This variant preview is no longer open");return{files:this.session.getFiles(),choice:this.state.activeChoice}}applyFiles(e){return this.queue.add(async()=>{let{open:t}=this.state;if(t?.requestId!==e.requestId||!this.session)throw Error("This variant preview is no longer open");let s=t.variants.find(t=>t.id===e.choice);if(null!==e.choice&&!s)throw Error("This option does not belong to the open variant preview");if(null===e.choice&&e.files.length>0)throw Error("The baseline cannot contain variant edits");if(s?.kind==="page"&&e.files.length>0)throw Error("HTML previews cannot override project files");await this.session.apply(e.files),this.setState({activeChoice:e.choice})})}submit(e){return this.queue.add(async()=>{let{open:t,activeChoice:s}=this.state;if(t?.requestId!==e.requestId)throw Error("This preview is no longer open. The agent closed it or replaced it with another one");if(!this.session||s!==e.choice||null!==e.choice&&!t.variants.some(t=>t.id===e.choice))throw Error("Apply this option before choosing it");await this.endSession(!0),this.setState({open:null,activeChoice:null,unclaimed:{request:t,result:e}}),this.result$.next(e)})}close(){return this.queue.add(async()=>{let{open:e}=this.state;try{await this.endSession(!1)}finally{this.forget(e)}return{closed:null!==e}})}claim(e){this.state.unclaimed?.result.requestId===e&&this.setState({unclaimed:null})}dispose(){return this.queue.add(()=>this.endSession(!1))}get state(){return this.context.store.variantPreview$.value}setState(e){this.context.store.variantPreview$.next({...this.state,...e})}forget(e){this.setState({open:null,activeChoice:null,unclaimed:null}),e&&this.closed$.next(e.requestId)}async startSession(){let{projectWatcher:e,logger:t}=this.context;e.suspend();try{this.session=await c.create({projectRoot:this.props.projectRoot,logger:t,onFilesChanged:t=>e.applyVariantFiles(t)})}catch(t){throw e.resume(),t}}async endSession(e){if(this.session)try{await this.session.finish(e)}finally{this.session=null,this.context.projectWatcher.resume()}}}
@@ -1 +1 @@
1
- import{lingui as e}from"@lingui/vite-plugin";import i from"@vitejs/plugin-react";import{mkdir as t,readFile as n,writeFile as r}from"fs/promises";import o from"lodash-es/camelCase.js";import{createRequire as a}from"node:module";import{dirname as s,resolve as m}from"path";import{createLogger as l}from"vite";import d from"vite-plugin-css-injected-by-js";import{isUsingLocalSdk as f}from"../utils/package-info.js";import{loadFrontendConfigModule as p}from"./frontend-config.js";import{phxBannerPlugin as c}from"./phx-banner-plugin.js";import{phxCspNoncePlugin as g}from"./phx-csp-nonce-plugin.js";import{phxGlobalIsolationPlugin as u}from"./phx-global-isolation-plugin.js";import{phxLicensesPlugin as h}from"./phx-licenses-plugin.js";let S=null;export const setViteLogSink=(e,i={})=>{S={sink:e,echo:i.echo??!1}};let b=["react","react-dom","three","@react-three/fiber","@react-three/drei","@react-three/postprocessing","its-fine","@emotion/react","@emotion/styled","@mui/material","@mui/system","@tanstack/react-query","rxjs"],y=e=>{let i=e.DEPLOYMENT_ID;if("string"!=typeof i)throw Error("DEPLOYMENT_ID is required in runtime config");return i};export const getViteDevConfig=async t=>{var n,r;let o,d,c=f(),g=p(),h=g.readRuntimeConfig(),O=g.frontendBuildConfig,x=Object.fromEntries((t?.templateFiles??[]).map(e=>[e,`.phoenix/${e}`]));return{...S&&{customLogger:(n=S.sink,r=S.echo,o=l(),{get hasWarned(){return o.hasWarned},info:(e,i)=>{n("info",e),r&&o.info(e,i)},warn:(e,i)=>{n("warn",e),r&&o.warn(e,i)},warnOnce:(e,i)=>{n("warn",e),r&&o.warnOnce(e,i)},error:(e,i)=>{n("error",e),r&&o.error(e,i)},clearScreen:e=>{r&&o.clearScreen(e)},hasErrorLogged:e=>o.hasErrorLogged(e)}),...S.echo?{}:{clearScreen:!1}},mode:"development",optimizeDeps:{exclude:["@swc/wasm-web"],...c&&{entries:["index.html","admin.html",...t?.templateFiles??[]],force:!0}},...c&&{resolve:{alias:(d=a(m(process.cwd(),"package.json")),b.flatMap(e=>{try{let i=s(d.resolve(`${e}/package.json`));return[{find:RegExp(`^${e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(/|$)`),replacement:`${i}$1`}]}catch{return[]}}))}},plugins:[i({babel:{plugins:["macros"]}}),e(),{name:"vite:runtime-config",apply:(e,i)=>"build"===i.command||"development"===i.mode,config:e=>{let i=g.readRuntimeConfig(),t=g.frontendBuildConfig;return{...e,define:{...e.define,"phx.frontendEnv":JSON.stringify(i),"globalThis.PHX_SCHEMA_VALIDATOR":JSON.stringify(t.jsonSchemaValidator),"globalThis.PHX_GLTF_DECODER":JSON.stringify(t.gltfDecoder)}}}},u({getDeploymentId:()=>y(g.readRuntimeConfig())})],define:{"process.env":{},"import.meta.env.DEV":!0,"import.meta.env.PROD":!1,"phx.frontendEnv":JSON.stringify(h),"globalThis.PHX_SCHEMA_VALIDATOR":JSON.stringify(O.jsonSchemaValidator),"globalThis.PHX_GLTF_DECODER":JSON.stringify(O.gltfDecoder)},build:{rollupOptions:{input:{index:".phoenix/index.html",admin:".phoenix/admin.html",...x}}},root:m(process.cwd(),"./.phoenix"),server:{watch:{ignored:["./**/*.{ts,tsx}","./.swc/**","../spec/**","../src/**"]}}}};export const getViteBuildConfigs=async a=>{let l=p(),f=l.readRuntimeConfig(),S=l.frontendBuildConfig,b=h(),O=c({sdkVersion:a.sdkVersion,banner:a.banner}),x=[{name:"salsita-configurator",entryFile:"./configurator.ts",mainScriptPath:"./configurator.ts",htmlFiles:["./index.html",...{templateFiles:a.templateFiles}.templateFiles],main:!0,format:"iife"},{name:"salsita-admin",entryFile:"./admin.ts",mainScriptPath:"./admin.ts",htmlFiles:["./admin.html"],main:!1,format:"iife"},{name:"salsita-embedded-admin",entryFile:"./embedded-admin.ts",mainScriptPath:"./embedded-admin.ts",htmlFiles:[],main:!1,format:"es"},{name:"salsita-embedded-configurator",entryFile:"./embedded-configurator.ts",mainScriptPath:"./embedded-configurator.ts",htmlFiles:[],main:!1,format:"es"}].map(p=>({plugins:[i({babel:{plugins:["macros"]}}),e(),d({useStrictCSP:!0}),g(),u({getDeploymentId:()=>y(l.readRuntimeConfig())}),{name:"vite:lib-index",writeBundle:async()=>{if(!p.htmlFiles.length)return;let e="iife"===p.format?`${p.name}.iife.js`:`${p.name}.js`;for(let i of p.htmlFiles){if(p.main&&a.enableEditor&&"./index.html"===i)continue;let o=m("./.phoenix",i),l=m("./.phoenix/dist/frontend",i);await t(s(l),{recursive:!0});let d=(await n(o,"utf-8")).replace(p.mainScriptPath,e);await r(l,d,"utf-8")}}},b,O],build:{outDir:"./dist/frontend",chunkSizeWarningLimit:4e3,lib:{entry:p.entryFile,name:o(p.name),formats:[p.format],fileName:()=>"iife"===p.format?`${p.name}.iife.js`:`${p.name}.js`},rollupOptions:{external:[],output:{assetFileNames:`${p.name}.[ext]`}},minify:!0,emptyOutDir:!1},root:m(process.cwd(),"./.phoenix"),define:{"process.env":{},"process.env.NODE_ENV":JSON.stringify("production"),"phx.frontendEnv":JSON.stringify(f),"globalThis.PHX_SCHEMA_VALIDATOR":JSON.stringify(S.jsonSchemaValidator),"globalThis.PHX_GLTF_DECODER":JSON.stringify(S.gltfDecoder)}}));return a.enableEditor?[...x,{plugins:[i({babel:{plugins:["macros"]}}),e(),d({useStrictCSP:!0}),g(),b,O],build:{outDir:"./dist/frontend",chunkSizeWarningLimit:4e3,rollupOptions:{external:[]},minify:!0,emptyOutDir:!1},root:m(process.cwd(),"./.phoenix"),define:{"process.env":{},"process.env.NODE_ENV":JSON.stringify("production"),"phx.frontendEnv":JSON.stringify(f),"globalThis.PHX_SCHEMA_VALIDATOR":JSON.stringify(S.jsonSchemaValidator),"globalThis.PHX_GLTF_DECODER":JSON.stringify(S.gltfDecoder)}}]:x};
1
+ import{lingui as e}from"@lingui/vite-plugin";import i from"@vitejs/plugin-react";import{mkdir as t,readFile as n,writeFile as r}from"fs/promises";import o from"lodash-es/camelCase.js";import{createRequire as a}from"node:module";import{dirname as s,resolve as m}from"path";import{createLogger as l}from"vite";import p from"vite-plugin-css-injected-by-js";import{isUsingLocalSdk as d}from"../utils/package-info.js";import{loadFrontendConfigModule as f}from"./frontend-config.js";import{phxBannerPlugin as c}from"./phx-banner-plugin.js";import{phxCspNoncePlugin as g}from"./phx-csp-nonce-plugin.js";import{phxGlobalIsolationPlugin as u}from"./phx-global-isolation-plugin.js";import{phxLicensesPlugin as h}from"./phx-licenses-plugin.js";import{phxVariantPreviewsPlugin as S}from"./phx-variant-previews-plugin.js";let b=null;export const setViteLogSink=(e,i={})=>{b={sink:e,echo:i.echo??!1}};let y=["react","react-dom","three","@react-three/fiber","@react-three/drei","@react-three/postprocessing","its-fine","@emotion/react","@emotion/styled","@mui/material","@mui/system","@tanstack/react-query","rxjs"],O=e=>{let i=e.DEPLOYMENT_ID;if("string"!=typeof i)throw Error("DEPLOYMENT_ID is required in runtime config");return i};export const getViteDevConfig=async t=>{var n,r;let o,p,c=d(),g=f(),h=g.readRuntimeConfig(),x=g.frontendBuildConfig,D=Object.fromEntries((t?.templateFiles??[]).map(e=>[e,`.phoenix/${e}`]));return{...b&&{customLogger:(n=b.sink,r=b.echo,o=l(),{get hasWarned(){return o.hasWarned},info:(e,i)=>{n("info",e),r&&o.info(e,i)},warn:(e,i)=>{n("warn",e),r&&o.warn(e,i)},warnOnce:(e,i)=>{n("warn",e),r&&o.warnOnce(e,i)},error:(e,i)=>{n("error",e),r&&o.error(e,i)},clearScreen:e=>{r&&o.clearScreen(e)},hasErrorLogged:e=>o.hasErrorLogged(e)}),...b.echo?{}:{clearScreen:!1}},mode:"development",optimizeDeps:{exclude:["@swc/wasm-web"],...c&&{entries:["index.html","admin.html",...t?.templateFiles??[]],force:!0}},...c&&{resolve:{alias:(p=a(m(process.cwd(),"package.json")),y.flatMap(e=>{try{let i=s(p.resolve(`${e}/package.json`));return[{find:RegExp(`^${e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(/|$)`),replacement:`${i}$1`}]}catch{return[]}}))}},plugins:[i({babel:{plugins:["macros"]}}),e(),{name:"vite:runtime-config",apply:(e,i)=>"build"===i.command||"development"===i.mode,config:e=>{let i=g.readRuntimeConfig(),t=g.frontendBuildConfig;return{...e,define:{...e.define,"phx.frontendEnv":JSON.stringify(i),"globalThis.PHX_SCHEMA_VALIDATOR":JSON.stringify(t.jsonSchemaValidator),"globalThis.PHX_GLTF_DECODER":JSON.stringify(t.gltfDecoder)}}}},u({getDeploymentId:()=>O(g.readRuntimeConfig())}),S()],define:{"process.env":{},"import.meta.env.DEV":!0,"import.meta.env.PROD":!1,"phx.frontendEnv":JSON.stringify(h),"globalThis.PHX_SCHEMA_VALIDATOR":JSON.stringify(x.jsonSchemaValidator),"globalThis.PHX_GLTF_DECODER":JSON.stringify(x.gltfDecoder)},build:{rollupOptions:{input:{index:".phoenix/index.html",admin:".phoenix/admin.html",...D}}},root:m(process.cwd(),"./.phoenix"),server:{watch:{ignored:["./**/*.{ts,tsx}","./.swc/**","../spec/**","../src/**"]}}}};export const getViteBuildConfigs=async a=>{let l=f(),d=l.readRuntimeConfig(),S=l.frontendBuildConfig,b=h(),y=c({sdkVersion:a.sdkVersion,banner:a.banner}),x=[{name:"salsita-configurator",entryFile:"./configurator.ts",mainScriptPath:"./configurator.ts",htmlFiles:["./index.html",...{templateFiles:a.templateFiles}.templateFiles],main:!0,format:"iife"},{name:"salsita-admin",entryFile:"./admin.ts",mainScriptPath:"./admin.ts",htmlFiles:["./admin.html"],main:!1,format:"iife"},{name:"salsita-embedded-admin",entryFile:"./embedded-admin.ts",mainScriptPath:"./embedded-admin.ts",htmlFiles:[],main:!1,format:"es"},{name:"salsita-embedded-configurator",entryFile:"./embedded-configurator.ts",mainScriptPath:"./embedded-configurator.ts",htmlFiles:[],main:!1,format:"es"}].map(f=>({plugins:[i({babel:{plugins:["macros"]}}),e(),p({useStrictCSP:!0}),g(),u({getDeploymentId:()=>O(l.readRuntimeConfig())}),{name:"vite:lib-index",writeBundle:async()=>{if(!f.htmlFiles.length)return;let e="iife"===f.format?`${f.name}.iife.js`:`${f.name}.js`;for(let i of f.htmlFiles){if(f.main&&a.enableEditor&&"./index.html"===i)continue;let o=m("./.phoenix",i),l=m("./.phoenix/dist/frontend",i);await t(s(l),{recursive:!0});let p=(await n(o,"utf-8")).replace(f.mainScriptPath,e);await r(l,p,"utf-8")}}},b,y],build:{outDir:"./dist/frontend",chunkSizeWarningLimit:4e3,lib:{entry:f.entryFile,name:o(f.name),formats:[f.format],fileName:()=>"iife"===f.format?`${f.name}.iife.js`:`${f.name}.js`},rollupOptions:{external:[],output:{assetFileNames:`${f.name}.[ext]`}},minify:!0,emptyOutDir:!1},root:m(process.cwd(),"./.phoenix"),define:{"process.env":{},"process.env.NODE_ENV":JSON.stringify("production"),"phx.frontendEnv":JSON.stringify(d),"globalThis.PHX_SCHEMA_VALIDATOR":JSON.stringify(S.jsonSchemaValidator),"globalThis.PHX_GLTF_DECODER":JSON.stringify(S.gltfDecoder)}}));return a.enableEditor?[...x,{plugins:[i({babel:{plugins:["macros"]}}),e(),p({useStrictCSP:!0}),g(),b,y],build:{outDir:"./dist/frontend",chunkSizeWarningLimit:4e3,rollupOptions:{external:[]},minify:!0,emptyOutDir:!1},root:m(process.cwd(),"./.phoenix"),define:{"process.env":{},"process.env.NODE_ENV":JSON.stringify("production"),"phx.frontendEnv":JSON.stringify(d),"globalThis.PHX_SCHEMA_VALIDATOR":JSON.stringify(S.jsonSchemaValidator),"globalThis.PHX_GLTF_DECODER":JSON.stringify(S.gltfDecoder)}}]:x};
@@ -1,8 +1,11 @@
1
- import type { AclConfig, DomainConfig, PersistenceConfig } from '#package/domain';
1
+ import type { AclConfig, AnyDomainComponentOptic, DomainConfig, PersistenceConfig } from '#package/domain';
2
2
  interface DomainApplicationProps {
3
3
  readonly deploymentId: string;
4
4
  readonly persistenceConfig: PersistenceConfig;
5
- readonly domainConfig: DomainConfig<any, any, any, any, any, any>;
5
+ /** The domain config as the runtime spec holds it: component optics already validated, never project modules. */
6
+ readonly domainConfig: Omit<DomainConfig<any, any, any, any, any, any>, 'componentOptics'> & {
7
+ readonly componentOptics: readonly AnyDomainComponentOptic[];
8
+ };
6
9
  readonly canCreate: AclConfig['canCreate'];
7
10
  readonly enableAdminRelease: boolean;
8
11
  }
@@ -1,6 +1,6 @@
1
1
  export declare const useConfiguratorSpec: () => import("../../../domain/index.js").ApplicationConfiguratorSpec;
2
2
  /** The application spec's `assistant` manifest, or nothing when the spec has no `assistant` section. */
3
- export declare const useSpecAssistant: () => import("../../../domain/index.js").AssistantManifest | null;
3
+ export declare const useSpecAssistant: () => Required<import("../../../domain/index.js").AssistantManifest> | null;
4
4
  export declare const useSpecTextLanguages: () => readonly string[];
5
5
  export declare const useSpecHandlerHashes: () => Record<string, string>;
6
6
  export declare const useSpecHandlers: () => readonly import("../../../domain/index.js").HandlerRegistration<any, any>[];
@@ -1,7 +1,7 @@
1
1
  import type { $DomainEntity, ApplicationConfig, DomainEntity, RegistrableTransformer, WebComponentOptions } from '#package/domain';
2
2
  import type { ApplicationRuntime } from '../runtime/react-runtime.js';
3
3
  import { type WebComponentApi } from '../web-component/index.js';
4
- export declare const createMockApplicationRuntime: <ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>, NAVIGATION_STATES extends string, VIEW_STATES extends string, TOOL_STATES extends string, EXPORT_STATES extends string, CHAT_CONTEXT extends Record<string, unknown>, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, ADMIN_ENTITIES extends DomainEntity<string>, ADMIN_ALLOWED_ROOT_ENTITIES extends ADMIN_ENTITIES, ADMIN_$MAP extends Record<ADMIN_ENTITIES['type'], $DomainEntity<ADMIN_ENTITIES>>, ADMIN_NAVIGATION_STATES extends string, ADMIN_VIEW_STATES extends string>(_cfg: ApplicationConfig<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES, CHAT_CONTEXT, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ADMIN_ENTITIES, ADMIN_ALLOWED_ROOT_ENTITIES, ADMIN_$MAP, ADMIN_NAVIGATION_STATES, ADMIN_VIEW_STATES>, mocks: {
4
+ export declare const createMockApplicationRuntime: <ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>, NAVIGATION_STATES extends string, VIEW_STATES extends string, TOOL_STATES extends string, EXPORT_STATES extends string, CHAT_CONTEXT extends Record<string, unknown>, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, ADMIN_ENTITIES extends DomainEntity<string>, ADMIN_ALLOWED_ROOT_ENTITIES extends ADMIN_ENTITIES, ADMIN_$MAP extends Record<ADMIN_ENTITIES['type'], $DomainEntity<ADMIN_ENTITIES>>, ADMIN_NAVIGATION_STATES extends string, ADMIN_VIEW_STATES extends string>(config: ApplicationConfig<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES, CHAT_CONTEXT, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ADMIN_ENTITIES, ADMIN_ALLOWED_ROOT_ENTITIES, ADMIN_$MAP, ADMIN_NAVIGATION_STATES, ADMIN_VIEW_STATES>, mocks: {
5
5
  frontendData: FRONTEND_DATA;
6
6
  publishedData: PUBLISHED_DATA;
7
7
  sessionData: SESSION_DATA;
@@ -1 +1 @@
1
- import{memoOnce as e}from"@salsita-ai/common/utils";import{createDomainRuntime as t,createMockDomainRuntimeServices as o,createMockSessionContext as n}from"#package/domain";import{createCommonServicesSelectors as s}from"../common-services/index.js";import{createDomainApplicationContextSelectors as i}from"../domain-application-context/index.js";import{createIntegrationActions as a,createIntegrationSelectors as r,initializeIntegration as c}from"../integration/index.js";import{createRoutingActions as m,createRoutingSelectors as d,initializeRouting as l}from"../routing/index.js";import{SessionService as p,createSessionRuntimeActions as S,createSessionRuntimeSelectors as g,initializeSessionRuntime as v}from"../session/index.js";import{createMockWebComponentApi as u}from"../web-component/index.js";export const createMockApplicationRuntime=(C,x)=>{var f;let b,y,w,A,D,k,E,I,h,j,R,T,O,L,F,{sessionData:M,mode:U,role:V}=x,z={...C,createTransformers:e=>x.transformers.map(t=>t.transformer.register(e,t.priority??1/0))},q=o(),B=(f={webComponentOptions:x.webComponentOptions??z.mount.options,webComponentApi:x.webComponentApi??u()},w=v(),A=t({config:z,services:q,getExtensionSystems:e=>F[e].getInitializableSystems()}),D=new Set,k=()=>{D.forEach(e=>{e()})},b=c({actions:E=a({setIntegration:e=>{b=e(b),k()}})}),I=r({getState:()=>({integration:b})}),h=m({setRouting:e=>{y=e(y),k()}}),y=l(),j=d({getState:()=>({...A.getState(),routing:y}),actions:h,accessActions:A.actions.access,loadedDataActions:A.actions.loadedData,domainServicesSelectors:A.selectors.domainServices,overridesSelectors:A.selectors.overrides}),R=s({getState:()=>({...A.getState(),session:w}),environmentSelectors:A.selectors.environment,specSelectors:A.selectors.spec,accessSelectors:A.selectors.access,domainServicesSelectors:A.selectors.domainServices,webComponentOptions:f.webComponentOptions,webComponentApi:f.webComponentApi,getSessionService:()=>L(),routingSelectors:j}),T=S({setSessionRuntime:e=>{w=e(w),k()}}),O=g({getState:()=>({...A.getState(),session:w}),sessionContextSelectors:A.selectors.sessionContext}),L=e(()=>new p({getLogger:()=>A.selectors.domainServices.getLogger(),getAnalyticsService:()=>A.selectors.domainServices.getAnalyticsService(),getUnauthenticatedClient:R.getUnauthenticatedClient,environmentSelectors:A.selectors.environment,sessionActions:T,setSessionContext:A.actions.sessionContext.setSessionContext,sessionSelectors:O,specSelectors:A.selectors.spec})),F={configurator:i({applicationType:"configurator",commonServicesSelectors:R,domainServicesSelectors:A.selectors.domainServices,domainContextSelectors:A.selectors.domainContext.configurator,getApplicationRuntimeExtensions:()=>[]}),admin:i({applicationType:"admin",commonServicesSelectors:R,domainServicesSelectors:A.selectors.domainServices,domainContextSelectors:A.selectors.domainContext.admin,getApplicationRuntimeExtensions:()=>[]})},{subscribe:e=>{D.add(e);let t=A.subscribe(e);return()=>{D.delete(e),t()}},getState:()=>({...A.getState(),integration:b,routing:y,session:w}),selectors:{...A.selectors,commonServices:R,integration:I,routing:j,session:O,domainApplicationContext:F},actions:{...A.actions,integration:E,routing:h,session:T}});return B.actions.sessionContext.setSessionContext(n(V,M)),B.actions.access.setConfiguratorAccessInfo({raw:"mock-access-token",viewMode:"read"===U,revisionId:void 0,configurationId:"mock"}),B.actions.domainData.setDomainData({publishedData:x.publishedData,frontendData:x.frontendData,backendData:x.backendData}),B.actions.loadedData.completeConfiguratorLoad({initialRevisionId:"mock-revision",initialEntities:x.entities,modelVersion:z.domain.domainFactory.modelVersion,rootEntityType:x.rootEntityType,schemaIdentity:z.domain.domainFactory}),B};
1
+ import{memoOnce as e}from"@salsita-ai/common/utils";import{createDomainRuntime as t,createMockDomainRuntimeServices as o,createMockSessionContext as n}from"#package/domain";import{createCommonServicesSelectors as s}from"../common-services/index.js";import{createDomainApplicationContextSelectors as i}from"../domain-application-context/index.js";import{createIntegrationActions as a,createIntegrationSelectors as r,initializeIntegration as c}from"../integration/index.js";import{createRoutingActions as m,createRoutingSelectors as d,initializeRouting as p}from"../routing/index.js";import{SessionService as l,createSessionRuntimeActions as S,createSessionRuntimeSelectors as g,initializeSessionRuntime as v}from"../session/index.js";import{createMockWebComponentApi as u}from"../web-component/index.js";export const createMockApplicationRuntime=(f,C)=>{var x;let b,y,w,A,D,k,E,I,h,j,R,T,O,L,F,{sessionData:M,mode:U,role:V}=C,z=o(),q=(x={webComponentOptions:C.webComponentOptions??f.mount.options,webComponentApi:C.webComponentApi??u()},w=v(),A=t({config:f,services:z,getExtensionSystems:e=>F[e].getInitializableSystems()}),D=new Set,k=()=>{D.forEach(e=>{e()})},b=c({actions:E=a({setIntegration:e=>{b=e(b),k()}})}),I=r({getState:()=>({integration:b})}),h=m({setRouting:e=>{y=e(y),k()}}),y=p(),j=d({getState:()=>({...A.getState(),routing:y}),actions:h,accessActions:A.actions.access,loadedDataActions:A.actions.loadedData,domainServicesSelectors:A.selectors.domainServices,overridesSelectors:A.selectors.overrides}),R=s({getState:()=>({...A.getState(),session:w}),environmentSelectors:A.selectors.environment,specSelectors:A.selectors.spec,accessSelectors:A.selectors.access,domainServicesSelectors:A.selectors.domainServices,webComponentOptions:x.webComponentOptions,webComponentApi:x.webComponentApi,getSessionService:()=>L(),routingSelectors:j}),T=S({setSessionRuntime:e=>{w=e(w),k()}}),O=g({getState:()=>({...A.getState(),session:w}),sessionContextSelectors:A.selectors.sessionContext}),L=e(()=>new l({getLogger:()=>A.selectors.domainServices.getLogger(),getAnalyticsService:()=>A.selectors.domainServices.getAnalyticsService(),getUnauthenticatedClient:R.getUnauthenticatedClient,environmentSelectors:A.selectors.environment,sessionActions:T,setSessionContext:A.actions.sessionContext.setSessionContext,sessionSelectors:O,specSelectors:A.selectors.spec})),F={configurator:i({applicationType:"configurator",commonServicesSelectors:R,domainServicesSelectors:A.selectors.domainServices,domainContextSelectors:A.selectors.domainContext.configurator,getApplicationRuntimeExtensions:()=>[]}),admin:i({applicationType:"admin",commonServicesSelectors:R,domainServicesSelectors:A.selectors.domainServices,domainContextSelectors:A.selectors.domainContext.admin,getApplicationRuntimeExtensions:()=>[]})},{subscribe:e=>{D.add(e);let t=A.subscribe(e);return()=>{D.delete(e),t()}},getState:()=>({...A.getState(),integration:b,routing:y,session:w}),selectors:{...A.selectors,commonServices:R,integration:I,routing:j,session:O,domainApplicationContext:F},actions:{...A.actions,integration:E,routing:h,session:T}}),B=q.getState().spec;return q.actions.spec.updateSpec({...B,configurator:{...B.configurator,createTransformers:e=>C.transformers.map(t=>t.transformer.register(e,t.priority??1/0))}}),q.actions.sessionContext.setSessionContext(n(V,M)),q.actions.access.setConfiguratorAccessInfo({raw:"mock-access-token",viewMode:"read"===U,revisionId:void 0,configurationId:"mock"}),q.actions.domainData.setDomainData({publishedData:C.publishedData,frontendData:C.frontendData,backendData:C.backendData}),q.actions.loadedData.completeConfiguratorLoad({initialRevisionId:"mock-revision",initialEntities:C.entities,modelVersion:f.domain.domainFactory.modelVersion,rootEntityType:C.rootEntityType,schemaIdentity:f.domain.domainFactory}),q};
@@ -67,7 +67,7 @@ export declare function createApplicationRuntimeSlices<State extends Application
67
67
  selectAdminPreset: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, import("#package/domain").AnyProductPreset>;
68
68
  selectAdminModelVersion: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, number>;
69
69
  selectThemeOptions: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, import("@mui/material").ThemeOptions>;
70
- selectAssistant: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, import("#package/domain").AssistantManifest | null>;
70
+ selectAssistant: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, Required<import("#package/domain").AssistantManifest> | null>;
71
71
  selectConfiguratorFactory: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, import("#package/domain").AnyDomainFactory>;
72
72
  selectAdminFactory: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, import("#package/domain").AnyDomainFactory>;
73
73
  selectConfiguratorComponentOptics: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, readonly import("#package/domain").AnyDomainComponentOptic[]>;
@@ -110,7 +110,7 @@ export declare function createApplicationRuntimeSlices<State extends Application
110
110
  getAdminPreset: () => import("#package/domain").AnyProductPreset;
111
111
  getAdminModelVersion: () => number;
112
112
  getThemeOptions: () => import("@mui/material").ThemeOptions;
113
- getAssistant: () => import("#package/domain").AssistantManifest | null;
113
+ getAssistant: () => Required<import("#package/domain").AssistantManifest> | null;
114
114
  getConfiguratorFactory: () => import("#package/domain").AnyDomainFactory;
115
115
  getAdminFactory: () => import("#package/domain").AnyDomainFactory;
116
116
  getConfiguratorComponentOptics: () => readonly import("#package/domain").AnyDomainComponentOptic[];
@@ -381,7 +381,7 @@ export declare function createApplicationRuntimeSlices<State extends Application
381
381
  selectViewStates: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, readonly string[]>;
382
382
  selectToolStates: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, readonly string[]>;
383
383
  selectExportStates: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, readonly string[]>;
384
- selectCreateTransformers: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, undefined> | import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("../../../domain/domain-context/store-system/store-system.js").AnyCreateTransformersFactory>;
384
+ selectCreateTransformers: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, undefined> | import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("#package/domain").AnyCreateTransformersFactory>;
385
385
  selectLatestLoadedData: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("#package/domain").ConfiguratorLoadedData | null>;
386
386
  selectLoadedData: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("#package/domain").ConfiguratorLoadedData>;
387
387
  selectInitialDomainState: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("#package/domain").DomainState<any>>;
@@ -423,7 +423,7 @@ export declare function createApplicationRuntimeSlices<State extends Application
423
423
  getViewStates: () => readonly string[];
424
424
  getToolStates: () => readonly string[];
425
425
  getExportStates: () => readonly string[];
426
- getCreateTransformers: () => import("../../../domain/domain-context/store-system/store-system.js").AnyCreateTransformersFactory | undefined;
426
+ getCreateTransformers: () => import("#package/domain").AnyCreateTransformersFactory | undefined;
427
427
  getLoadedData: () => import("#package/domain").ConfiguratorLoadedData;
428
428
  getInitialDomainState: () => import("#package/domain").DomainState<any>;
429
429
  getFrontendData: () => Record<string, unknown>;
@@ -442,9 +442,9 @@ export declare function createApplicationRuntimeSlices<State extends Application
442
442
  getSnappingProjections: () => import("#package/domain").AnySnappingProjections;
443
443
  getConstraintProjections: () => import("#package/domain").AnyConstraintProjections;
444
444
  getProjectedEntitiesProjections: () => import("#package/domain").AnyProjectedEntitiesProjections;
445
- getStoreSystem: () => import("../../../domain/domain-context/store-system/store-system.js").AnyStoreSystem;
446
- getNavigationSystem: () => import("../../../domain/domain-context/navigation-system/navigation-system.js").AnyNavigationSystem;
447
- getUndoSystem: () => import("../../../domain/domain-context/undo-system.js").AnyUndoSystem;
445
+ getStoreSystem: () => import("#package/domain").AnyStoreSystem;
446
+ getNavigationSystem: () => import("#package/domain").AnyNavigationSystem;
447
+ getUndoSystem: () => import("#package/domain").AnyUndoSystem;
448
448
  getRecipeCookerSystem: () => import("#package/domain").AnyRecipeCookerSystem;
449
449
  getActionSystem: () => import("#package/domain").AnyActionSystem;
450
450
  getBlenderProjections: () => import("#package/domain").AnyBlenderProjections;
@@ -490,7 +490,7 @@ export declare function createApplicationRuntimeSlices<State extends Application
490
490
  selectViewStates: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, readonly string[]>;
491
491
  selectToolStates: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, readonly string[]>;
492
492
  selectExportStates: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, readonly string[]>;
493
- selectCreateTransformers: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, undefined> | import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("../../../domain/domain-context/store-system/store-system.js").AnyCreateTransformersFactory>;
493
+ selectCreateTransformers: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, undefined> | import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("#package/domain").AnyCreateTransformersFactory>;
494
494
  selectLatestLoadedData: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("#package/domain").ConfiguratorLoadedData | null>;
495
495
  selectLoadedData: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("#package/domain").ConfiguratorLoadedData>;
496
496
  selectInitialDomainState: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("#package/domain").DomainState<any>>;
@@ -532,7 +532,7 @@ export declare function createApplicationRuntimeSlices<State extends Application
532
532
  getViewStates: () => readonly string[];
533
533
  getToolStates: () => readonly string[];
534
534
  getExportStates: () => readonly string[];
535
- getCreateTransformers: () => import("../../../domain/domain-context/store-system/store-system.js").AnyCreateTransformersFactory | undefined;
535
+ getCreateTransformers: () => import("#package/domain").AnyCreateTransformersFactory | undefined;
536
536
  getLoadedData: () => import("#package/domain").ConfiguratorLoadedData;
537
537
  getInitialDomainState: () => import("#package/domain").DomainState<any>;
538
538
  getFrontendData: () => Record<string, unknown>;
@@ -551,9 +551,9 @@ export declare function createApplicationRuntimeSlices<State extends Application
551
551
  getSnappingProjections: () => import("#package/domain").AnySnappingProjections;
552
552
  getConstraintProjections: () => import("#package/domain").AnyConstraintProjections;
553
553
  getProjectedEntitiesProjections: () => import("#package/domain").AnyProjectedEntitiesProjections;
554
- getStoreSystem: () => import("../../../domain/domain-context/store-system/store-system.js").AnyStoreSystem;
555
- getNavigationSystem: () => import("../../../domain/domain-context/navigation-system/navigation-system.js").AnyNavigationSystem;
556
- getUndoSystem: () => import("../../../domain/domain-context/undo-system.js").AnyUndoSystem;
554
+ getStoreSystem: () => import("#package/domain").AnyStoreSystem;
555
+ getNavigationSystem: () => import("#package/domain").AnyNavigationSystem;
556
+ getUndoSystem: () => import("#package/domain").AnyUndoSystem;
557
557
  getRecipeCookerSystem: () => import("#package/domain").AnyRecipeCookerSystem;
558
558
  getActionSystem: () => import("#package/domain").AnyActionSystem;
559
559
  getBlenderProjections: () => import("#package/domain").AnyBlenderProjections;
@@ -727,7 +727,7 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
727
727
  selectAdminPreset: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, import("#package/domain").AnyProductPreset>;
728
728
  selectAdminModelVersion: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, number>;
729
729
  selectThemeOptions: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, import("@mui/material").ThemeOptions>;
730
- selectAssistant: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, import("#package/domain").AssistantManifest | null>;
730
+ selectAssistant: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, Required<import("#package/domain").AssistantManifest> | null>;
731
731
  selectConfiguratorFactory: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, import("#package/domain").AnyDomainFactory>;
732
732
  selectAdminFactory: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, import("#package/domain").AnyDomainFactory>;
733
733
  selectConfiguratorComponentOptics: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, readonly import("#package/domain").AnyDomainComponentOptic[]>;
@@ -770,7 +770,7 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
770
770
  getAdminPreset: () => import("#package/domain").AnyProductPreset;
771
771
  getAdminModelVersion: () => number;
772
772
  getThemeOptions: () => import("@mui/material").ThemeOptions;
773
- getAssistant: () => import("#package/domain").AssistantManifest | null;
773
+ getAssistant: () => Required<import("#package/domain").AssistantManifest> | null;
774
774
  getConfiguratorFactory: () => import("#package/domain").AnyDomainFactory;
775
775
  getAdminFactory: () => import("#package/domain").AnyDomainFactory;
776
776
  getConfiguratorComponentOptics: () => readonly import("#package/domain").AnyDomainComponentOptic[];
@@ -1041,7 +1041,7 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
1041
1041
  selectViewStates: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, readonly string[]>;
1042
1042
  selectToolStates: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, readonly string[]>;
1043
1043
  selectExportStates: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, readonly string[]>;
1044
- selectCreateTransformers: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, undefined> | import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("../../../domain/domain-context/store-system/store-system.js").AnyCreateTransformersFactory>;
1044
+ selectCreateTransformers: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, undefined> | import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("#package/domain").AnyCreateTransformersFactory>;
1045
1045
  selectLatestLoadedData: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("#package/domain").ConfiguratorLoadedData | null>;
1046
1046
  selectLoadedData: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("#package/domain").ConfiguratorLoadedData>;
1047
1047
  selectInitialDomainState: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("#package/domain").DomainState<any>>;
@@ -1083,7 +1083,7 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
1083
1083
  getViewStates: () => readonly string[];
1084
1084
  getToolStates: () => readonly string[];
1085
1085
  getExportStates: () => readonly string[];
1086
- getCreateTransformers: () => import("../../../domain/domain-context/store-system/store-system.js").AnyCreateTransformersFactory | undefined;
1086
+ getCreateTransformers: () => import("#package/domain").AnyCreateTransformersFactory | undefined;
1087
1087
  getLoadedData: () => import("#package/domain").ConfiguratorLoadedData;
1088
1088
  getInitialDomainState: () => import("#package/domain").DomainState<any>;
1089
1089
  getFrontendData: () => Record<string, unknown>;
@@ -1102,9 +1102,9 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
1102
1102
  getSnappingProjections: () => import("#package/domain").AnySnappingProjections;
1103
1103
  getConstraintProjections: () => import("#package/domain").AnyConstraintProjections;
1104
1104
  getProjectedEntitiesProjections: () => import("#package/domain").AnyProjectedEntitiesProjections;
1105
- getStoreSystem: () => import("../../../domain/domain-context/store-system/store-system.js").AnyStoreSystem;
1106
- getNavigationSystem: () => import("../../../domain/domain-context/navigation-system/navigation-system.js").AnyNavigationSystem;
1107
- getUndoSystem: () => import("../../../domain/domain-context/undo-system.js").AnyUndoSystem;
1105
+ getStoreSystem: () => import("#package/domain").AnyStoreSystem;
1106
+ getNavigationSystem: () => import("#package/domain").AnyNavigationSystem;
1107
+ getUndoSystem: () => import("#package/domain").AnyUndoSystem;
1108
1108
  getRecipeCookerSystem: () => import("#package/domain").AnyRecipeCookerSystem;
1109
1109
  getActionSystem: () => import("#package/domain").AnyActionSystem;
1110
1110
  getBlenderProjections: () => import("#package/domain").AnyBlenderProjections;
@@ -1150,7 +1150,7 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
1150
1150
  selectViewStates: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, readonly string[]>;
1151
1151
  selectToolStates: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, readonly string[]>;
1152
1152
  selectExportStates: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, readonly string[]>;
1153
- selectCreateTransformers: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, undefined> | import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("../../../domain/domain-context/store-system/store-system.js").AnyCreateTransformersFactory>;
1153
+ selectCreateTransformers: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, undefined> | import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("#package/domain").AnyCreateTransformersFactory>;
1154
1154
  selectLatestLoadedData: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("#package/domain").ConfiguratorLoadedData | null>;
1155
1155
  selectLoadedData: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("#package/domain").ConfiguratorLoadedData>;
1156
1156
  selectInitialDomainState: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("#package/domain").DomainState<any>>;
@@ -1192,7 +1192,7 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
1192
1192
  getViewStates: () => readonly string[];
1193
1193
  getToolStates: () => readonly string[];
1194
1194
  getExportStates: () => readonly string[];
1195
- getCreateTransformers: () => import("../../../domain/domain-context/store-system/store-system.js").AnyCreateTransformersFactory | undefined;
1195
+ getCreateTransformers: () => import("#package/domain").AnyCreateTransformersFactory | undefined;
1196
1196
  getLoadedData: () => import("#package/domain").ConfiguratorLoadedData;
1197
1197
  getInitialDomainState: () => import("#package/domain").DomainState<any>;
1198
1198
  getFrontendData: () => Record<string, unknown>;
@@ -1211,9 +1211,9 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
1211
1211
  getSnappingProjections: () => import("#package/domain").AnySnappingProjections;
1212
1212
  getConstraintProjections: () => import("#package/domain").AnyConstraintProjections;
1213
1213
  getProjectedEntitiesProjections: () => import("#package/domain").AnyProjectedEntitiesProjections;
1214
- getStoreSystem: () => import("../../../domain/domain-context/store-system/store-system.js").AnyStoreSystem;
1215
- getNavigationSystem: () => import("../../../domain/domain-context/navigation-system/navigation-system.js").AnyNavigationSystem;
1216
- getUndoSystem: () => import("../../../domain/domain-context/undo-system.js").AnyUndoSystem;
1214
+ getStoreSystem: () => import("#package/domain").AnyStoreSystem;
1215
+ getNavigationSystem: () => import("#package/domain").AnyNavigationSystem;
1216
+ getUndoSystem: () => import("#package/domain").AnyUndoSystem;
1217
1217
  getRecipeCookerSystem: () => import("#package/domain").AnyRecipeCookerSystem;
1218
1218
  getActionSystem: () => import("#package/domain").AnyActionSystem;
1219
1219
  getBlenderProjections: () => import("#package/domain").AnyBlenderProjections;
@@ -37,7 +37,7 @@ export declare const useDomainContextSelectors: () => {
37
37
  selectViewStates: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, readonly string[]>;
38
38
  selectToolStates: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, readonly string[]>;
39
39
  selectExportStates: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, readonly string[]>;
40
- selectCreateTransformers: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, undefined> | import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("../../../domain/domain-context/store-system/store-system.js").AnyCreateTransformersFactory>;
40
+ selectCreateTransformers: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, undefined> | import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("#package/domain").AnyCreateTransformersFactory>;
41
41
  selectLatestLoadedData: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("#package/domain").ConfiguratorLoadedData | null>;
42
42
  selectLoadedData: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("#package/domain").ConfiguratorLoadedData>;
43
43
  selectInitialDomainState: import("@salsita-ai/common/utils").Selector<import("#package/domain").DomainContextSelectorState, import("#package/domain").DomainState<any>>;
@@ -79,7 +79,7 @@ export declare const useDomainContextSelectors: () => {
79
79
  getViewStates: () => readonly string[];
80
80
  getToolStates: () => readonly string[];
81
81
  getExportStates: () => readonly string[];
82
- getCreateTransformers: () => import("../../../domain/domain-context/store-system/store-system.js").AnyCreateTransformersFactory | undefined;
82
+ getCreateTransformers: () => import("#package/domain").AnyCreateTransformersFactory | undefined;
83
83
  getLoadedData: () => import("#package/domain").ConfiguratorLoadedData;
84
84
  getInitialDomainState: () => import("#package/domain").DomainState<any>;
85
85
  getFrontendData: () => Record<string, unknown>;
@@ -98,9 +98,9 @@ export declare const useDomainContextSelectors: () => {
98
98
  getSnappingProjections: () => import("#package/domain").AnySnappingProjections;
99
99
  getConstraintProjections: () => import("#package/domain").AnyConstraintProjections;
100
100
  getProjectedEntitiesProjections: () => import("#package/domain").AnyProjectedEntitiesProjections;
101
- getStoreSystem: () => import("../../../domain/domain-context/store-system/store-system.js").AnyStoreSystem;
102
- getNavigationSystem: () => import("../../../domain/domain-context/navigation-system/navigation-system.js").AnyNavigationSystem;
103
- getUndoSystem: () => import("../../../domain/domain-context/undo-system.js").AnyUndoSystem;
101
+ getStoreSystem: () => import("#package/domain").AnyStoreSystem;
102
+ getNavigationSystem: () => import("#package/domain").AnyNavigationSystem;
103
+ getUndoSystem: () => import("#package/domain").AnyUndoSystem;
104
104
  getRecipeCookerSystem: () => import("#package/domain").AnyRecipeCookerSystem;
105
105
  getActionSystem: () => import("#package/domain").AnyActionSystem;
106
106
  getBlenderProjections: () => import("#package/domain").AnyBlenderProjections;
@@ -13,8 +13,11 @@ export declare const getViewportSize: () => Size;
13
13
  * Returns the viewport size. This can also be used as a dependency in a
14
14
  * useEffect to trigger an update when the browser resizes.
15
15
  *
16
+ * @param subscriptionActive if `false`, the viewport is neither measured nor followed, and the size
17
+ * returned is the last one measured, if any (useful for optimization)
18
+ *
16
19
  * @see https://martijnhols.nl/gists/how-to-get-document-height-ios-safari-osk
17
20
  * @todo: investigate if this can use `viewport$`
18
21
  */
19
- export declare const useViewportSize: () => Size | undefined;
22
+ export declare const useViewportSize: (subscriptionActive?: boolean) => Size | undefined;
20
23
  export {};
@@ -1 +1 @@
1
- import{useCallback as e,useEffect as i,useLayoutEffect as t,useState as n}from"react";let o="u">typeof window?t:()=>{};export const getViewportSize=()=>window.visualViewport?[window.visualViewport.width,window.visualViewport.height]:[window.innerWidth,window.innerHeight];export const useViewportSize=()=>{let[t,r]=n(),w=e(()=>{let e=getViewportSize();r(i=>i&&i[0]===e[0]&&i[1]===e[1]?i:e)},[]);return o(w,[w]),i(()=>{let e=()=>{w(),setTimeout(w,1e3)};return window.addEventListener("resize",e),window.addEventListener("orientationchange",e),window.visualViewport?.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),window.removeEventListener("orientationchange",e),window.visualViewport?.removeEventListener("resize",e)}},[w]),t};
1
+ import{useCallback as e,useEffect as i,useLayoutEffect as t,useState as n}from"react";let r="u">typeof window?t:()=>{};export const getViewportSize=()=>window.visualViewport?[window.visualViewport.width,window.visualViewport.height]:[window.innerWidth,window.innerHeight];export const useViewportSize=(t=!0)=>{let[o,w]=n(),d=e(()=>{let e=getViewportSize();w(i=>i&&i[0]===e[0]&&i[1]===e[1]?i:e)},[]);return r(()=>{t&&d()},[t,d]),i(()=>{if(!t)return;let e=()=>{d(),setTimeout(d,1e3)};return window.addEventListener("resize",e),window.addEventListener("orientationchange",e),window.visualViewport?.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),window.removeEventListener("orientationchange",e),window.visualViewport?.removeEventListener("resize",e)}},[t,d]),o};
@@ -44,7 +44,7 @@ declare module '@mui/material/styles' {
44
44
  PhxChat: 'root';
45
45
  PhxChatFooter: 'root' | 'formLayout' | 'input';
46
46
  PhxChatMessage: 'base' | 'assistant' | 'user' | 'widget' | 'error' | 'helper';
47
- PhxAssistantPanel: 'root' | 'header' | 'title' | 'closeButton' | 'thread' | 'greeting' | 'messages' | 'userMessage' | 'assistantMessage' | 'chips' | 'activity' | 'activityIcon' | 'chip' | 'status' | 'notice' | 'newReplyButton' | 'composer' | 'inputFrame' | 'input' | 'sendButton' | 'stopButton' | 'hint';
47
+ PhxAssistantPanel: 'root' | 'header' | 'title' | 'closeButton' | 'thread' | 'greeting' | 'messages' | 'userMessage' | 'assistantMessage' | 'chips' | 'activity' | 'activityIcon' | 'chip' | 'status' | 'separator' | 'earlierButton' | 'notice' | 'newReplyButton' | 'composer' | 'inputFrame' | 'input' | 'sendButton' | 'stopButton' | 'hint';
48
48
  PhxTopNavigation: 'root' | 'stepper' | 'step';
49
49
  PhxListSelector: 'root';
50
50
  PhxListSelectorItem: 'root' | 'radio' | 'title' | 'description' | 'formControlLabel';
@@ -1,4 +1,5 @@
1
1
  import type { I18n } from '@lingui/core';
2
+ import type { DeploymentAssistant } from '@salsita-ai/contracts/assistant';
2
3
  import type { $DomainEntity, ConfiguratorBuilder, DomainEntity } from '#package/domain';
3
4
  export interface ClerkConfig {
4
5
  apiKey: string;
@@ -11,6 +12,13 @@ export interface ClerkConfig {
11
12
  }
12
13
  export interface BuilderDomainContext<ENTITIES extends DomainEntity<string> = never, ALLOWED_ROOT_ENTITIES extends ENTITIES = never, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>> = never, NAVIGATION_STATES extends string = never, VIEW_STATES extends string = never, TOOL_STATES extends string = never, EXPORT_STATES extends string = never, PUBLISHED_DATA extends Record<string, unknown> = never, SESSION_DATA extends Record<string, unknown> = never, FRONTEND_DATA extends Record<string, unknown> = never, ADMIN_ENTITIES extends DomainEntity<string> = never, ADMIN_ALLOWED_ROOT_ENTITIES extends ADMIN_ENTITIES = never, ADMIN_$MAP extends Record<ADMIN_ENTITIES['type'], $DomainEntity<ADMIN_ENTITIES>> = never, ADMIN_NAVIGATION_STATES extends string = never, ADMIN_VIEW_STATES extends string = never, FINALIZE_DATA extends Record<string, unknown> = never, PREFETCHED_FINALIZE_DATA extends Record<string, unknown> = never, FINALIZE_RESULT extends Record<string, unknown> = never, CALLBACK_DATA extends Record<string, unknown> = never, RESOURCE extends string = never> {
13
14
  configuratorBuilder: ConfiguratorBuilder<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ADMIN_ENTITIES, ADMIN_ALLOWED_ROOT_ENTITIES, ADMIN_$MAP, ADMIN_NAVIGATION_STATES, ADMIN_VIEW_STATES, FINALIZE_DATA, PREFETCHED_FINALIZE_DATA, FINALIZE_RESULT, CALLBACK_DATA, RESOURCE>;
15
+ /** Server-only settings supplied by the generated webhook bundle. */
16
+ assistantServerSettings?: Pick<DeploymentAssistant, 'instructions' | 'ai'> | null;
17
+ /**
18
+ * Asks a development environment to lock an assistant thread when the setup changes, as every
19
+ * other environment does. The generated webhook bundle sets it from `ASSISTANT_STRICT_THREADS`.
20
+ */
21
+ assistantStrictThreads?: boolean;
14
22
  createI18n: () => I18n;
15
23
  clerk?: ClerkConfig;
16
24
  }
@@ -1,4 +1,4 @@
1
- import type { $DomainEntity, DomainEntity } from '#package/domain';
1
+ import { type $DomainEntity, type DomainEntity } from '#package/domain';
2
2
  import type { FetchBackendDataHandler } from '../backend-data-handler.js';
3
3
  import { type AuthHandler, AuthHandlerBuilder } from './auth-handler-builder.js';
4
4
  import { CallbackBuilder } from './callback-builder.js';
@@ -1 +1 @@
1
- import{initConsoleLogger as e}from"@salsita-ai/common/utils";import{routeWebhookRequests as n}from"@salsita-ai/contracts/webhook";import{AdminFinalizeHandlerBuilder as o}from"./admin-finalize-handler-builder.js";import{AuthHandlerBuilder as t}from"./auth-handler-builder.js";import{CallbackBuilder as i}from"./callback-builder.js";import{ConfiguratorFinalizeHandlerBuilder as a}from"./configurator-finalize-handler-builder.js";import{DynamicResourcesFactory as r}from"./dynamic-resources-factory.js";import{PrefetchBuilder as s}from"./prefetch-builder.js";import{TaskFactory as l}from"./task-factory.js";export class WebhookBuilder{_context;_handlers;constructor(e,n){this._context=e,this._handlers=n}withAuthHook(e){return new WebhookBuilder(this._context,{...this._handlers,onAuth:e})}withConfiguratorFinalize(e){return new WebhookBuilder(this._context,{...this._handlers,...e})}withFetchBackendData(e){return new WebhookBuilder(this._context,{...this._handlers,onFetchBackendData:e})}build(){if(!this._handlers)throw Error("Can not build webhook without any handlers! It would be very dumb!");let t=e(),i=new o(this._context).build();return n({onAuth:void 0!==this._handlers.onAuth?(e,n)=>this._handlers.onAuth(e,{logger:t},n):void 0,admin:{onFinalize:(e,n)=>i(e,{logger:t},n)},configurator:{onFetchBackendData:this._handlers.onFetchBackendData?(e,n)=>this._handlers.onFetchBackendData(e,{logger:t},n):void 0,onFinalize:this._handlers.onFinalize?async(e,n)=>{let o=await this._handlers?.onFetchBackendData?.({deploymentId:e.deploymentId,frontendUrl:e.frontendUrl,frontendData:e.frontendData,sessionRole:e.sessionRole,sessionPayload:e.sessionPayload,publishedAdminRevisionPath:e.publishedAdminRevisionPath,publishedChunkUrls:e.publishedChunkUrls},{logger:t},n);return this._handlers.onFinalize({deploymentId:e.deploymentId,frontendUrl:e.frontendUrl,frontendData:e.frontendData,sessionRole:e.sessionRole,sessionPayload:e.sessionPayload,publishedAdminRevisionPath:e.publishedAdminRevisionPath,publishedChunkUrls:e.publishedChunkUrls,data:e.data,locale:e.locale,configurationId:e.configurationId,entities:e.entities,modelVersion:e.modelVersion,revisionId:e.revisionId,rootEntityType:e.rootEntityType,backendData:o?.backendData},{logger:t},n)}:void 0,onCallback:this._handlers.onCallback?(e,n)=>this._handlers.onCallback(e,{logger:t},n):void 0}},t)}}export const createDomainWebhook=e=>{let n=new t(e),o=new WebhookBuilder(e),d=new l(e),h=new r(e),u=new a(e,[]);return{authHandlerBuilder:n,webhookBuilder:o,taskFactory:d,finalizeHandlerBuilder:u,callbackBuilder:new i(e),dynamicResourcesFactory:h,prefetchBuilder:new s(e)}};
1
+ import{initConsoleLogger as t}from"@salsita-ai/common/utils";import{routeWebhookRequests as e}from"@salsita-ai/contracts/webhook";import{buildAssistantManifest as n,generateAssistantPrompt as o}from"#package/domain";import{AdminFinalizeHandlerBuilder as i}from"./admin-finalize-handler-builder.js";import{AuthHandlerBuilder as s}from"./auth-handler-builder.js";import{CallbackBuilder as a}from"./callback-builder.js";import{ConfiguratorFinalizeHandlerBuilder as r}from"./configurator-finalize-handler-builder.js";import{DynamicResourcesFactory as d}from"./dynamic-resources-factory.js";import{PrefetchBuilder as l}from"./prefetch-builder.js";import{TaskFactory as h}from"./task-factory.js";export class WebhookBuilder{_context;_handlers;constructor(t,e){this._context=t,this._handlers=e}withAuthHook(t){return new WebhookBuilder(this._context,{...this._handlers,onAuth:t})}withConfiguratorFinalize(t){return new WebhookBuilder(this._context,{...this._handlers,...t})}withFetchBackendData(t){return new WebhookBuilder(this._context,{...this._handlers,onFetchBackendData:t})}build(){if(!this._handlers&&!this._context.assistantServerSettings)throw Error("Can not build webhook without any handlers! It would be very dumb!");let s=t(),a=new i(this._context).build();return e({onAuth:this._handlers?.onAuth!==void 0?(t,e)=>this._handlers.onAuth(t,{logger:s},e):void 0,admin:{onFinalize:(t,e)=>a(t,{logger:s},e)},configurator:{onAssistantSetup:this._context.assistantServerSettings?async()=>{let t=this._context.configuratorBuilder.buildConfig().assistant;if(!t)throw Error("Assistant setup operation is not configured for this webhook!");let e=n(t),i=this._context.assistantServerSettings;return{setup:{sdl:e.sdl,prompt:o(e),...i},...this._context.assistantStrictThreads&&{threadLock:"strict"}}}:void 0,onFetchBackendData:this._handlers?.onFetchBackendData?(t,e)=>this._handlers.onFetchBackendData(t,{logger:s},e):void 0,onFinalize:this._handlers?.onFinalize?async(t,e)=>{let n=await this._handlers?.onFetchBackendData?.({deploymentId:t.deploymentId,frontendUrl:t.frontendUrl,frontendData:t.frontendData,sessionRole:t.sessionRole,sessionPayload:t.sessionPayload,publishedAdminRevisionPath:t.publishedAdminRevisionPath,publishedChunkUrls:t.publishedChunkUrls},{logger:s},e);return this._handlers.onFinalize({deploymentId:t.deploymentId,frontendUrl:t.frontendUrl,frontendData:t.frontendData,sessionRole:t.sessionRole,sessionPayload:t.sessionPayload,publishedAdminRevisionPath:t.publishedAdminRevisionPath,publishedChunkUrls:t.publishedChunkUrls,data:t.data,locale:t.locale,configurationId:t.configurationId,entities:t.entities,modelVersion:t.modelVersion,revisionId:t.revisionId,rootEntityType:t.rootEntityType,backendData:n?.backendData},{logger:s},e)}:void 0,onCallback:this._handlers?.onCallback?(t,e)=>this._handlers.onCallback(t,{logger:s},e):void 0}},s)}}export const createDomainWebhook=t=>{let e=new s(t),n=new WebhookBuilder(t),o=new h(t),i=new d(t),c=new r(t,[]);return{authHandlerBuilder:e,webhookBuilder:n,taskFactory:o,finalizeHandlerBuilder:c,callbackBuilder:new a(t),dynamicResourcesFactory:i,prefetchBuilder:new l(t)}};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salsita-ai/sdk",
3
- "version": "0.50.0-develop.a926ccd94f",
3
+ "version": "0.50.0-develop.abef6d86a1",
4
4
  "description": "TypeScript SDK and CLI for building, running, and deploying Phoenix configurator applications.",
5
5
  "keywords": [
6
6
  "salsita",
@@ -221,7 +221,7 @@
221
221
  "@swc/core": "1.15.40",
222
222
  "@swc/wasm-web": "1.15.40",
223
223
  "@tanstack/ai": "0.64.0",
224
- "@tanstack/ai-react": "0.29.4",
224
+ "@tanstack/ai-client": "0.36.1",
225
225
  "@trpc/client": "11.17.0",
226
226
  "@trpc/react-query": "11.17.0",
227
227
  "@trpc/server": "11.17.0",
@@ -292,8 +292,8 @@
292
292
  "yaml": "2.9.0",
293
293
  "yargs": "17.7.2",
294
294
  "zod": "3.25.76",
295
- "@salsita-ai/common": "0.50.0-develop.a926ccd94f",
296
- "@salsita-ai/contracts": "0.50.0-develop.a926ccd94f"
295
+ "@salsita-ai/common": "0.50.0-develop.abef6d86a1",
296
+ "@salsita-ai/contracts": "0.50.0-develop.abef6d86a1"
297
297
  },
298
298
  "devDependencies": {
299
299
  "@clerk/clerk-react": "5.61.8",
@@ -1 +0,0 @@
1
- export declare const generateApplicationSpecEnvCi: () => string;
@@ -1,25 +0,0 @@
1
- export const generateApplicationSpecEnvCi=()=>`# CI Environment Configuration
2
- #
3
- # This file is used to initialize environment variables in CI pipelines with mock data.
4
- # It allows the frontend and webhooks to be built without requiring actual credentials.
5
- # These values are sufficient for builds. DEPLOYMENT_ID also supports local-storage runtime;
6
- # server-backed runtime operations still require real deployment credentials.
7
- #
8
- # To use: run 'pnpm run prepare:ci' to copy this file to .env
9
-
10
- # Frontend
11
- DEPLOYMENT_ID=will-not-work-but-will-initialize
12
- SERVER_URL=http://not.valid
13
- FRONTEND_URL=http://not.valid
14
- RESOURCES_URL=http://not.valid
15
- CLERK_PUBLISHABLE_KEY=will-not-work-but-will-initialize
16
- GTM_ID=GTM-XXXXXX
17
- DATADOG_CLIENT_TOKEN=XXXXXX
18
- DATADOG_SITE=XXX
19
- SERVICE_NAME=project-template
20
-
21
- # Webhook
22
- AWS_S3_PUBLIC_RESOURCES_BUCKET=private
23
- AWS_S3_PRIVATE_RESOURCES_BUCKET=public
24
- AWS_S3_RESOURCES_REGION=eu-central-1
25
- `;
@@ -1 +0,0 @@
1
- export declare const generateApplicationSpecEnvExample: () => string;