@salsita-ai/sdk 0.49.0-develop.fc391028c9 → 0.50.0-develop.03ef51a292

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 (798) hide show
  1. package/CHANGELOG.md +479 -0
  2. package/README.md +20 -12
  3. package/dist/admin/create-admin-pages-from-spec.d.ts +1 -1
  4. package/dist/application-spec/errors/diagnostic-codes.d.ts +6 -0
  5. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  6. package/dist/application-spec/errors/diagnostic-messages.d.ts +6 -0
  7. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  8. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  9. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  10. package/dist/application-spec/generate-application/code/common/project-module-list.d.ts +8 -0
  11. package/dist/application-spec/generate-application/code/common/project-module-list.js +3 -0
  12. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  13. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  14. package/dist/application-spec/generate-application/code/templates/admin-domain-code.d.ts +1 -2
  15. package/dist/application-spec/generate-application/code/templates/admin-domain-code.js +6 -14
  16. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.d.ts +1 -2
  17. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.js +4 -4
  18. package/dist/application-spec/generate-application/code/templates/application-types.js +6 -6
  19. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.d.ts +2 -2
  20. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.js +7 -13
  21. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.d.ts +1 -2
  22. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.js +7 -9
  23. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.d.ts +2 -2
  24. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.js +1 -1
  25. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.d.ts +3 -1
  26. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +70 -66
  27. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  28. package/dist/application-spec/generate-application/code/templates/domain-spec.js +7 -7
  29. package/dist/application-spec/generate-application/code/templates/domain.js +4 -4
  30. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.d.ts +11 -0
  31. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.js +8 -0
  32. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
  33. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  34. package/dist/application-spec/generate-application/code/templates/globals.js +1 -0
  35. package/dist/application-spec/generate-application/code/templates/index.d.ts +7 -6
  36. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  37. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +2 -0
  38. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -0
  39. package/dist/application-spec/generate-application/code/templates/{phoenix-create-configurator-skill.d.ts → skills/phoenix-create-configurator-skill.d.ts} +1 -1
  40. package/dist/application-spec/generate-application/code/templates/{phoenix-create-configurator-skill.js → skills/phoenix-create-configurator-skill.js} +43 -13
  41. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +54 -0
  42. package/dist/application-spec/generate-application/code/templates/{phoenix-review-skill.js → skills/phoenix-review-skill.js} +7 -5
  43. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -0
  44. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.d.ts +1 -0
  45. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +6 -0
  46. package/dist/application-spec/generate-application/code/templates/{common → skills}/sdk-content.d.ts +53 -3
  47. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +81 -0
  48. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +8 -4
  49. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +2 -0
  50. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  51. package/dist/application-spec/generate-application/runtime/sections/actions-runtime.d.ts +14 -0
  52. package/dist/application-spec/generate-application/runtime/sections/actions-runtime.js +1 -0
  53. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +4 -3
  54. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.js +1 -1
  55. package/dist/application-spec/generate-application/runtime/sections/index.d.ts +1 -0
  56. package/dist/application-spec/generate-application/runtime/sections/index.js +1 -1
  57. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +3 -1
  58. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  59. package/dist/application-spec/parse-application-files/merge/index.d.ts +1 -0
  60. package/dist/application-spec/parse-application-files/merge/index.js +1 -1
  61. package/dist/application-spec/parse-application-files/merge/merged-actions.d.ts +11 -0
  62. package/dist/application-spec/parse-application-files/merge/merged-actions.js +1 -0
  63. package/dist/application-spec/parse-application-files/merge/merged-spec.d.ts +2 -0
  64. package/dist/application-spec/parse-application-files/merge/merged-spec.js +1 -1
  65. package/dist/application-spec/parse-application-files/raw-spec/index.d.ts +1 -0
  66. package/dist/application-spec/parse-application-files/raw-spec/index.js +1 -1
  67. package/dist/application-spec/parse-application-files/raw-spec/raw-actions.d.ts +18 -0
  68. package/dist/application-spec/parse-application-files/raw-spec/raw-actions.js +1 -0
  69. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +14 -2
  70. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  71. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.d.ts +2 -0
  72. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  73. package/dist/application-spec/parse-application-files/resolve/resolve-import-modules.js +1 -1
  74. package/dist/application-spec/parse-application-files/spec/application/application-spec.js +1 -1
  75. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.d.ts +4 -2
  76. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  77. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  78. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  79. package/dist/application-spec/parse-application-files/spec/common/schema-ref-resolver.d.ts +23 -0
  80. package/dist/application-spec/parse-application-files/spec/common/schema-ref-resolver.js +1 -0
  81. package/dist/application-spec/parse-application-files/spec/model/names/action-name.d.ts +10 -0
  82. package/dist/application-spec/parse-application-files/spec/model/names/action-name.js +1 -0
  83. package/dist/application-spec/parse-application-files/spec/model/names/index.d.ts +1 -0
  84. package/dist/application-spec/parse-application-files/spec/model/names/index.js +1 -1
  85. package/dist/application-spec/parse-application-files/spec/sections/actions.d.ts +35 -0
  86. package/dist/application-spec/parse-application-files/spec/sections/actions.js +1 -0
  87. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.d.ts +5 -21
  88. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.js +1 -1
  89. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +14 -39
  90. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  91. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-server-settings.d.ts +2 -2
  92. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.d.ts +5 -19
  93. package/dist/application-spec/parse-application-files/spec/sections/index.d.ts +1 -0
  94. package/dist/application-spec/parse-application-files/spec/sections/index.js +1 -1
  95. package/dist/client/phoenix-api.d.ts +63 -31
  96. package/dist/configurator/application-runtime/extensions/configurator-extension-systems.d.ts +2 -1
  97. package/dist/configurator/application-runtime/extensions/configurator-extension-systems.js +1 -1
  98. package/dist/configurator/application-runtime/extensions/selectors.d.ts +2 -1
  99. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  100. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +180 -0
  101. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -0
  102. package/dist/configurator/{assistant → application-runtime/extensions/systems/assistant-system}/browser-details.d.ts +1 -1
  103. package/dist/configurator/application-runtime/extensions/systems/assistant-system/browser-details.js +1 -0
  104. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.d.ts +85 -0
  105. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.js +1 -0
  106. package/dist/configurator/{assistant → application-runtime/extensions/systems/assistant-system}/graphql-tools.d.ts +20 -16
  107. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -0
  108. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +4 -0
  109. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  110. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +16 -1
  111. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  112. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.d.ts +9 -0
  113. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.js +1 -0
  114. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -0
  115. package/dist/configurator/application-runtime/extensions/systems/index.js +1 -1
  116. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -0
  117. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  118. package/dist/configurator/common/frontend-analytics.d.ts +21 -21
  119. package/dist/configurator/index.d.ts +0 -1
  120. package/dist/configurator/index.js +1 -1
  121. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  122. package/dist/configurator/scene/scene-analytics/scene-analytics.d.ts +2 -2
  123. package/dist/configurator/ui/assistant/AssistantChips.d.ts +11 -0
  124. package/dist/configurator/ui/assistant/AssistantChips.js +1 -0
  125. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +6 -0
  126. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -0
  127. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -0
  128. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -0
  129. package/dist/configurator/ui/assistant/AssistantPanel.d.ts +11 -0
  130. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -0
  131. package/dist/configurator/ui/assistant/AssistantThread.d.ts +6 -0
  132. package/dist/configurator/ui/assistant/AssistantThread.js +1 -0
  133. package/dist/configurator/ui/assistant/assistant-failure.d.ts +18 -0
  134. package/dist/configurator/ui/assistant/assistant-failure.js +1 -0
  135. package/dist/configurator/ui/assistant/index.d.ts +2 -0
  136. package/dist/configurator/ui/assistant/index.js +1 -0
  137. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +6 -0
  138. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -0
  139. package/dist/configurator/ui/assistant/theme.d.ts +2 -0
  140. package/dist/configurator/ui/assistant/theme.js +1 -0
  141. package/dist/configurator/ui/assistant/thread-items.d.ts +37 -0
  142. package/dist/configurator/ui/assistant/thread-items.js +1 -0
  143. package/dist/configurator/ui/assistant/tool-chip.d.ts +44 -0
  144. package/dist/configurator/ui/assistant/tool-chip.js +1 -0
  145. package/dist/configurator/ui/assistant/use-follow-stream.d.ts +17 -0
  146. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -0
  147. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.d.ts +5 -0
  148. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.js +1 -0
  149. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -5
  150. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.d.ts +2 -0
  151. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +4 -4
  152. package/dist/configurator/ui/legacy/mobile-controls/MobileControls.d.ts +1 -1
  153. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.d.ts +10 -0
  154. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -0
  155. package/dist/configurator/ui/phoenix-layout-elements/index.d.ts +1 -0
  156. package/dist/configurator/ui/phoenix-layout-elements/index.js +1 -1
  157. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +84 -98
  158. package/dist/docs/complex-use-cases/navigation-reset-selection.mdx +18 -12
  159. package/dist/docs/index.json +12 -2
  160. package/dist/docs/layouts/custom-price.mdx +14 -16
  161. package/dist/docs/layouts/sidebar/tabs.mdx +24 -21
  162. package/dist/docs/layouts/toolbar.mdx +6 -0
  163. package/dist/docs/other-features/domain-actions.mdx +418 -0
  164. package/dist/docs/other-features/side-effects.mdx +68 -34
  165. package/dist/docs/other-features/transformers.mdx +1 -1
  166. package/dist/docs/phoenix/admin.mdx +11 -26
  167. package/dist/docs/phoenix/best-practices.mdx +1 -0
  168. package/dist/docs/phoenix/finalization.mdx +1 -1
  169. package/dist/docs/phoenix/integration/headless-mode-external.mdx +5 -5
  170. package/dist/docs/phoenix/integration/widget-mode-external.mdx +5 -5
  171. package/dist/docs/phoenix/localization.mdx +3 -22
  172. package/dist/docs/phoenix/migrations.mdx +45 -5
  173. package/dist/docs/phoenix/phoenix-cli.mdx +139 -20
  174. package/dist/docs/phoenix/project-structure.mdx +13 -3
  175. package/dist/docs/phoenix/sdk-builder-workflow.mdx +12 -8
  176. package/dist/docs/phoenix/state-management.mdx +1 -1
  177. package/dist/docs/recipes-and-delete/recipe-hierarchy-selection.mdx +15 -13
  178. package/dist/docs/relations/hierarchy.mdx +13 -2
  179. package/dist/domain/admin-domain/__generated/enhanced-model.d.ts +1 -2
  180. package/dist/domain/admin-domain/__generated/model/versions/v1.d.ts +1 -1
  181. package/dist/domain/admin-domain/__generated/model/versions/v2.d.ts +1 -1
  182. package/dist/domain/admin-domain/__generated/model/versions/v3.d.ts +1 -1
  183. package/dist/domain/admin-domain/__generated/model/versions/v4.d.ts +1 -1
  184. package/dist/domain/admin-domain/__generated/model/versions/v5.d.ts +1 -1
  185. package/dist/domain/admin-domain/__generated/model/versions/v6.d.ts +2 -2
  186. package/dist/domain/admin-domain/__generated/model/versions/v6.js +1 -1
  187. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +1 -4
  188. package/dist/domain/admin-domain/implementation/common-admin-migrations.d.ts +1 -1
  189. package/dist/domain/admin-domain/index.d.ts +2 -3
  190. package/dist/domain/admin-domain/index.js +1 -1
  191. package/dist/domain/application/admin-page-factories.d.ts +1 -1
  192. package/dist/domain/application/application-config.d.ts +25 -73
  193. package/dist/domain/application/assistant/assistant-manifest.d.ts +63 -0
  194. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +95 -0
  195. package/dist/domain/application/assistant/assistant-value-type.d.ts +9 -0
  196. package/dist/domain/application/assistant/assistant-value-type.js +1 -0
  197. package/dist/domain/application/assistant/build-assistant-manifest.d.ts +4 -0
  198. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -0
  199. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  200. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -0
  201. package/dist/domain/application/assistant/index.d.ts +4 -0
  202. package/dist/domain/application/assistant/index.js +1 -0
  203. package/dist/domain/application/assistant-field-options.d.ts +2 -3
  204. package/dist/domain/application/assistant-mutations.d.ts +15 -17
  205. package/dist/domain/application/assistant-mutations.js +1 -1
  206. package/dist/domain/application/assistant-recipe-groups.d.ts +2 -6
  207. package/dist/domain/application/configurator-builder.d.ts +33 -18
  208. package/dist/domain/application/configurator-builder.js +1 -1
  209. package/dist/domain/application/element-registration.d.ts +5 -0
  210. package/dist/domain/application/element-registration.js +1 -1
  211. package/dist/domain/application/handler-registration.d.ts +5 -0
  212. package/dist/domain/application/handler-registration.js +1 -1
  213. package/dist/domain/application/index.d.ts +5 -4
  214. package/dist/domain/application/index.js +1 -1
  215. package/dist/domain/application/published-data/create-finalize-admin-domain.d.ts +1 -2
  216. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +1 -1
  217. package/dist/domain/application/published-data/map-published-data.d.ts +1 -2
  218. package/dist/domain/application/resolve-imported-transformers.d.ts +12 -2
  219. package/dist/domain/application/resolve-imported-transformers.js +1 -1
  220. package/dist/domain/available-system-components.js +1 -1
  221. package/dist/domain/core/action/action-factory.d.ts +11 -0
  222. package/dist/domain/core/action/action-factory.js +1 -0
  223. package/dist/domain/core/action/action.d.ts +66 -0
  224. package/dist/domain/core/action/index.d.ts +3 -0
  225. package/dist/domain/core/action/index.js +1 -0
  226. package/dist/domain/core/action/prepare-action-implementations.d.ts +15 -0
  227. package/dist/domain/core/action/prepare-action-implementations.js +5 -0
  228. package/dist/domain/{components → core/component}/component-reader-types.d.ts +1 -2
  229. package/dist/domain/{components → core/component}/debug-state-component.d.ts +1 -1
  230. package/dist/domain/core/component/debug-state-component.js +1 -0
  231. package/dist/domain/{components → core/component}/domain-component-optic.d.ts +6 -6
  232. package/dist/domain/core/component/domain-component-optic.js +16 -0
  233. package/dist/domain/{components → core/component}/drag-state-component.d.ts +1 -1
  234. package/dist/domain/core/component/drag-state-component.js +1 -0
  235. package/dist/domain/{components → core/component}/export-state-component.d.ts +1 -1
  236. package/dist/domain/core/component/export-state-component.js +1 -0
  237. package/dist/domain/{components → core/component}/fullscreen-state-component.d.ts +1 -1
  238. package/dist/domain/core/component/fullscreen-state-component.js +1 -0
  239. package/dist/domain/{components → core/component}/group-components-by-entity-id-and-name.d.ts +1 -2
  240. package/dist/domain/core/component/group-components-by-entity-id-and-name.js +1 -0
  241. package/dist/domain/{components → core/component}/hover-state-component.d.ts +1 -1
  242. package/dist/domain/core/component/hover-state-component.js +1 -0
  243. package/dist/domain/core/component/index.d.ts +18 -0
  244. package/dist/domain/core/component/index.js +1 -0
  245. package/dist/domain/{components → core/component}/legacy-filter.d.ts +2 -2
  246. package/dist/domain/{components → core/component}/navigation-state-component.d.ts +1 -1
  247. package/dist/domain/core/component/navigation-state-component.js +1 -0
  248. package/dist/domain/{components → core/component}/selection-state-component.d.ts +1 -1
  249. package/dist/domain/core/component/selection-state-component.js +1 -0
  250. package/dist/domain/{components → core/component}/system-component-builder.d.ts +1 -2
  251. package/dist/domain/core/component/system-component-builder.js +1 -0
  252. package/dist/domain/{components → core/component}/system-component-filter.d.ts +3 -3
  253. package/dist/domain/core/component/system-virtual-entity.js +1 -0
  254. package/dist/domain/{components → core/component}/tool-state-component.d.ts +1 -1
  255. package/dist/domain/core/component/tool-state-component.js +1 -0
  256. package/dist/domain/{components → core/component}/updates.d.ts +17 -2
  257. package/dist/domain/{components → core/component}/view-state-component.d.ts +1 -1
  258. package/dist/domain/core/component/view-state-component.js +1 -0
  259. package/dist/domain/{components → core/component}/viewport-state-component.d.ts +1 -1
  260. package/dist/domain/core/component/viewport-state-component.js +1 -0
  261. package/dist/domain/core/decoder/create-decoder.d.ts +6 -0
  262. package/dist/domain/core/decoder/create-decoder.js +1 -0
  263. package/dist/domain/core/decoder/decoder.d.ts +6 -0
  264. package/dist/domain/core/decoder/decoder.js +1 -0
  265. package/dist/domain/core/decoder/index.d.ts +2 -0
  266. package/dist/domain/core/decoder/index.js +1 -0
  267. package/dist/domain/core/domain-factory.d.ts +7 -4
  268. package/dist/domain/core/domain-factory.js +1 -1
  269. package/dist/domain/core/domain.d.ts +3 -4
  270. package/dist/domain/core/domain.js +1 -1
  271. package/dist/domain/{expressions → core/expression}/constant-expressions.d.ts +2 -3
  272. package/dist/domain/core/expression/constant-expressions.js +1 -0
  273. package/dist/domain/{expressions → core/expression}/custom-expression.d.ts +4 -5
  274. package/dist/domain/core/expression/custom-expression.js +1 -0
  275. package/dist/domain/core/{expression.d.ts → expression/expression.d.ts} +6 -8
  276. package/dist/domain/core/expression/expression.js +1 -0
  277. package/dist/domain/core/expression/index.d.ts +5 -0
  278. package/dist/domain/core/expression/index.js +1 -0
  279. package/dist/domain/{expressions → core/expression}/memoize-expression.d.ts +2 -2
  280. package/dist/domain/{expressions → core/expression}/prepare-domain-expressions.d.ts +1 -1
  281. package/dist/domain/core/index.d.ts +9 -16
  282. package/dist/domain/core/index.js +1 -1
  283. package/dist/domain/{invariants → core/invariant}/builtin-invariant.d.ts +2 -2
  284. package/dist/domain/{invariants → core/invariant}/custom-invariants.d.ts +2 -3
  285. package/dist/domain/core/invariant/custom-invariants.js +1 -0
  286. package/dist/domain/core/invariant/index.d.ts +5 -0
  287. package/dist/domain/core/invariant/index.js +1 -0
  288. package/dist/domain/{invariants → core/invariant}/invariants.d.ts +12 -4
  289. package/dist/domain/core/invariant/invariants.js +1 -0
  290. package/dist/domain/core/invariant/violation-component.js +1 -0
  291. package/dist/domain/{invariants → core/invariant}/violation.d.ts +2 -2
  292. package/dist/domain/core/{component.d.ts → model/component.d.ts} +1 -1
  293. package/dist/domain/core/model/index.d.ts +6 -0
  294. package/dist/domain/core/model/index.js +1 -0
  295. package/dist/domain/core/{reflection.d.ts → model/reflection.d.ts} +1 -1
  296. package/dist/domain/core/model/reflection.js +1 -0
  297. package/dist/domain/core/schema/enhanced-json-schema.js +1 -0
  298. package/dist/domain/core/schema/extended-schema-validator.js +1 -0
  299. package/dist/domain/core/schema/index.d.ts +3 -0
  300. package/dist/domain/core/schema/index.js +1 -0
  301. package/dist/domain/core/schema/schema-validator.js +1 -0
  302. package/dist/domain/core/state/id-sequence.d.ts +15 -0
  303. package/dist/domain/core/state/id-sequence.js +1 -0
  304. package/dist/domain/core/state/index.d.ts +3 -0
  305. package/dist/domain/core/state/index.js +1 -0
  306. package/dist/domain/core/{migrations.d.ts → state/migrations.d.ts} +1 -2
  307. package/dist/domain/core/{state.d.ts → state/state.d.ts} +1 -2
  308. package/dist/domain/domain-builder.d.ts +16 -6
  309. package/dist/domain/domain-builder.js +1 -1
  310. package/dist/domain/domain-context/action-system/action-system.d.ts +38 -0
  311. package/dist/domain/domain-context/action-system/action-system.js +1 -0
  312. package/dist/domain/domain-context/create-transformer.d.ts +1 -1
  313. package/dist/domain/domain-context/dimension-system/dimension-state.js +1 -1
  314. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +1 -2
  315. package/dist/domain/domain-context/domain-context-systems.d.ts +5 -4
  316. package/dist/domain/domain-context/index.d.ts +3 -2
  317. package/dist/domain/domain-context/index.js +1 -1
  318. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +3 -5
  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 +1 -1
  323. package/dist/domain/domain-context/navigation-system/selection-transformers.js +1 -1
  324. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +1 -2
  325. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  326. package/dist/domain/domain-context/recipe-system/recipes.d.ts +1 -3
  327. package/dist/domain/domain-context/recipe-system/recipes.js +1 -1
  328. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +1 -1
  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 +1 -1
  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 +1 -1
  333. package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
  334. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +1 -1
  335. package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
  336. package/dist/domain/domain-context/store-system/apply-updates.d.ts +1 -3
  337. package/dist/domain/domain-context/store-system/apply-updates.js +1 -1
  338. package/dist/domain/domain-context/store-system/next-domain-entity-id.d.ts +1 -13
  339. package/dist/domain/domain-context/store-system/next-domain-entity-id.js +1 -1
  340. package/dist/domain/domain-context/store-system/reconcile-projected-entities.d.ts +1 -2
  341. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  342. package/dist/domain/domain-context/store-system/store-system.d.ts +1 -5
  343. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  344. package/dist/domain/domain-context/store-system/system-state.d.ts +1 -3
  345. package/dist/domain/domain-context/store-system/system-state.js +1 -1
  346. package/dist/domain/domain-context/transformers/actions-builder.d.ts +1 -2
  347. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  348. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +1 -3
  349. package/dist/domain/domain-context/transformers/chain-builder.d.ts +2 -2
  350. package/dist/domain/domain-context/transformers/context.d.ts +1 -5
  351. package/dist/domain/domain-context/transformers/entity-builder.d.ts +1 -5
  352. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  353. package/dist/domain/domain-context/transformers/then-builder.d.ts +1 -2
  354. package/dist/domain/domain-context/transformers/then-builder.js +1 -1
  355. package/dist/domain/domain-context/transformers/when-builder.d.ts +1 -6
  356. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  357. package/dist/domain/domain-context/undo-system.d.ts +1 -1
  358. package/dist/domain/domain-runtime/domain-context/component-reader.d.ts +1 -4
  359. package/dist/domain/domain-runtime/domain-context/component-reader.js +1 -1
  360. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  361. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +5 -3
  362. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  363. package/dist/domain/domain-runtime/domain-runtime.d.ts +16 -4
  364. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  365. package/dist/domain/domain-runtime/spec/selectors.d.ts +2 -2
  366. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  367. package/dist/domain/domain-runtime/spec/types.d.ts +18 -5
  368. package/dist/domain/index.d.ts +1 -25
  369. package/dist/domain/index.js +1 -1
  370. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +9 -3
  371. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  372. package/dist/domain/project-modules/index.d.ts +1 -0
  373. package/dist/domain/project-modules/index.js +1 -0
  374. package/dist/domain/project-modules/project-modules.d.ts +41 -0
  375. package/dist/domain/project-modules/project-modules.js +1 -0
  376. package/dist/domain/projections/blender-projections/blender-projections.d.ts +1 -1
  377. package/dist/domain/projections/blender-projections/blender-projections.js +1 -1
  378. package/dist/domain/projections/composition-projections.js +1 -1
  379. package/dist/domain/projections/projected-entities-projections.d.ts +1 -2
  380. package/dist/domain/projections/snap-matching.d.ts +1 -2
  381. package/dist/domain/projections/snap-utils.d.ts +1 -2
  382. package/dist/domain/projections/validation-projections.d.ts +1 -2
  383. package/dist/domain/projections/validation-projections.js +1 -1
  384. package/dist/domain/relations/all-of-type-relation.d.ts +1 -4
  385. package/dist/domain/relations/all-of-type-relation.js +1 -1
  386. package/dist/domain/relations/component-factories.d.ts +1 -2
  387. package/dist/domain/relations/composed-of.d.ts +1 -1
  388. package/dist/domain/relations/composed-of.js +1 -1
  389. package/dist/domain/relations/direct-relation.d.ts +1 -3
  390. package/dist/domain/relations/indirect-relation.d.ts +1 -4
  391. package/dist/domain/relations/indirect-relation.js +1 -1
  392. package/dist/domain/relations/reference-component.d.ts +3 -5
  393. package/dist/domain/relations/reference-component.js +1 -1
  394. package/dist/domain/relations/reference-field.d.ts +1 -1
  395. package/dist/domain/relations/relation-factory.d.ts +1 -3
  396. package/dist/domain/relations/relation-implementation.d.ts +1 -4
  397. package/dist/domain/system-components/admin-sidebar.d.ts +1 -1
  398. package/dist/domain/system-components/admin-sidebar.js +1 -1
  399. package/dist/domain/system-components/angle-dimension.js +1 -1
  400. package/dist/domain/system-components/angle-indicator.d.ts +1 -1
  401. package/dist/domain/system-components/angle-indicator.js +1 -1
  402. package/dist/domain/system-components/application-config.d.ts +1 -1
  403. package/dist/domain/system-components/application-config.js +1 -1
  404. package/dist/domain/system-components/attribute-selection.js +1 -1
  405. package/dist/domain/system-components/attribute-switch.js +1 -1
  406. package/dist/domain/system-components/autorotate-camera-component.d.ts +1 -1
  407. package/dist/domain/system-components/autorotate-camera-component.js +1 -1
  408. package/dist/domain/system-components/basic-sidebar-footer.d.ts +1 -1
  409. package/dist/domain/system-components/basic-sidebar-footer.js +1 -1
  410. package/dist/domain/system-components/bounding-box-component.d.ts +1 -1
  411. package/dist/domain/system-components/bounding-box-component.js +1 -1
  412. package/dist/domain/system-components/bounding-sphere-component.d.ts +1 -1
  413. package/dist/domain/system-components/bounding-sphere-component.js +1 -1
  414. package/dist/domain/system-components/camera-based-hidden-entity-object.js +1 -1
  415. package/dist/domain/system-components/camera-based-hidden-entity.js +1 -1
  416. package/dist/domain/system-components/canvas-config.d.ts +1 -1
  417. package/dist/domain/system-components/canvas-config.js +1 -1
  418. package/dist/domain/system-components/canvas-custom-environment.js +1 -1
  419. package/dist/domain/system-components/canvas-padding.d.ts +1 -1
  420. package/dist/domain/system-components/canvas-padding.js +1 -1
  421. package/dist/domain/system-components/canvas-preset-environment.d.ts +1 -1
  422. package/dist/domain/system-components/canvas-preset-environment.js +1 -1
  423. package/dist/domain/system-components/child-entity-recipe-hierarchy.d.ts +1 -1
  424. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +1 -1
  425. package/dist/domain/system-components/child-entity-recipes.d.ts +1 -1
  426. package/dist/domain/system-components/child-entity-recipes.js +1 -1
  427. package/dist/domain/system-components/child-entity-selection.d.ts +1 -1
  428. package/dist/domain/system-components/child-entity-selection.js +1 -1
  429. package/dist/domain/system-components/client-side-image.js +1 -1
  430. package/dist/domain/system-components/collision-box-geometry.d.ts +1 -1
  431. package/dist/domain/system-components/collision-box-geometry.js +1 -1
  432. package/dist/domain/system-components/collision-geometries.d.ts +1 -1
  433. package/dist/domain/system-components/collision-geometry.d.ts +1 -1
  434. package/dist/domain/system-components/collision-geometry.js +1 -1
  435. package/dist/domain/system-components/collision-point-geometry.d.ts +1 -1
  436. package/dist/domain/system-components/collision-point-geometry.js +1 -1
  437. package/dist/domain/system-components/color-value.js +1 -1
  438. package/dist/domain/system-components/common/dimension-indicator-schema.d.ts +1 -1
  439. package/dist/domain/system-components/common/dimension-indicator-schema.js +1 -1
  440. package/dist/domain/system-components/constraint.d.ts +1 -1
  441. package/dist/domain/system-components/constraint.js +1 -1
  442. package/dist/domain/system-components/create-blueprint.d.ts +1 -1
  443. package/dist/domain/system-components/custom-header.d.ts +1 -1
  444. package/dist/domain/system-components/custom-header.js +1 -1
  445. package/dist/domain/system-components/custom-price-footer.js +1 -1
  446. package/dist/domain/system-components/custom-scene-entity.d.ts +1 -1
  447. package/dist/domain/system-components/custom-scene-entity.js +1 -1
  448. package/dist/domain/system-components/custom-sidebar-footer.d.ts +1 -1
  449. package/dist/domain/system-components/custom-sidebar-footer.js +1 -1
  450. package/dist/domain/system-components/detail.js +1 -1
  451. package/dist/domain/system-components/dimension-indicator.d.ts +1 -1
  452. package/dist/domain/system-components/dimension-indicator.js +1 -1
  453. package/dist/domain/system-components/distance-dimension-select.d.ts +1 -1
  454. package/dist/domain/system-components/distance-dimension-select.js +1 -1
  455. package/dist/domain/system-components/distance-dimension.d.ts +1 -1
  456. package/dist/domain/system-components/distance-dimension.js +1 -1
  457. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  458. package/dist/domain/system-components/drag-handle.js +1 -1
  459. package/dist/domain/system-components/editable-angle-indicator.d.ts +1 -1
  460. package/dist/domain/system-components/editable-angle-indicator.js +1 -1
  461. package/dist/domain/system-components/editable-distance-dimension-indicator.d.ts +1 -1
  462. package/dist/domain/system-components/editable-distance-dimension-indicator.js +1 -1
  463. package/dist/domain/system-components/editable-offset-indicator.d.ts +1 -1
  464. package/dist/domain/system-components/editable-offset-indicator.js +1 -1
  465. package/dist/domain/system-components/editable-size-indicator.d.ts +1 -1
  466. package/dist/domain/system-components/editable-size-indicator.js +1 -1
  467. package/dist/domain/system-components/entity-header.js +1 -1
  468. package/dist/domain/system-components/exit-tool-mode-fab.d.ts +1 -1
  469. package/dist/domain/system-components/exit-tool-mode-fab.js +1 -1
  470. package/dist/domain/system-components/finalize-action.d.ts +1 -1
  471. package/dist/domain/system-components/finalize-action.js +1 -1
  472. package/dist/domain/system-components/finalize-component.js +1 -1
  473. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  474. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  475. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  476. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  477. package/dist/domain/system-components/fit-selection-orthographic-camera-component.js +1 -1
  478. package/dist/domain/system-components/fit-selection-perspective-camera-component.js +1 -1
  479. package/dist/domain/system-components/fixed-header.d.ts +1 -1
  480. package/dist/domain/system-components/fixed-header.js +1 -1
  481. package/dist/domain/system-components/floating-header.d.ts +1 -1
  482. package/dist/domain/system-components/floating-header.js +1 -1
  483. package/dist/domain/system-components/generic-dimension.d.ts +1 -1
  484. package/dist/domain/system-components/generic-dimension.js +1 -1
  485. package/dist/domain/system-components/hidden-entity.js +1 -1
  486. package/dist/domain/system-components/hidden-header.d.ts +1 -1
  487. package/dist/domain/system-components/hidden-header.js +1 -1
  488. package/dist/domain/system-components/hidden-sidebar-footer.d.ts +1 -1
  489. package/dist/domain/system-components/hidden-sidebar-footer.js +1 -1
  490. package/dist/domain/system-components/horizontal-tabs.d.ts +1 -1
  491. package/dist/domain/system-components/horizontal-tabs.js +1 -1
  492. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -2
  493. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  494. package/dist/domain/system-components/list-selector-dimension-indicator.d.ts +1 -1
  495. package/dist/domain/system-components/list-selector-dimension-indicator.js +1 -1
  496. package/dist/domain/system-components/material-override-property-transition.js +1 -1
  497. package/dist/domain/system-components/material-override-transformer.js +1 -1
  498. package/dist/domain/system-components/material-swatch.js +1 -1
  499. package/dist/domain/system-components/multilingual-text-value.js +1 -1
  500. package/dist/domain/system-components/navigation-page.js +1 -1
  501. package/dist/domain/system-components/navigation-panel-list.js +1 -1
  502. package/dist/domain/system-components/navigation-steps.js +1 -1
  503. package/dist/domain/system-components/offset-anchors.d.ts +1 -1
  504. package/dist/domain/system-components/offset-anchors.js +1 -1
  505. package/dist/domain/system-components/offset-indicator.d.ts +1 -2
  506. package/dist/domain/system-components/offset-indicator.js +1 -1
  507. package/dist/domain/system-components/offset.d.ts +1 -1
  508. package/dist/domain/system-components/offset.js +1 -1
  509. package/dist/domain/system-components/other-action.d.ts +1 -1
  510. package/dist/domain/system-components/other-action.js +1 -1
  511. package/dist/domain/system-components/phoenix-layout-elements/assistant-toolbar-button.d.ts +44 -0
  512. package/dist/domain/system-components/phoenix-layout-elements/assistant-toolbar-button.js +1 -0
  513. package/dist/domain/system-components/phoenix-layout-elements/index.d.ts +1 -0
  514. package/dist/domain/system-components/phoenix-layout-elements/index.js +1 -1
  515. package/dist/domain/system-components/phoenix-layout-elements/phoenix-layout-element.d.ts +2 -1
  516. package/dist/domain/system-components/phoenix-layout-elements/phoenix-layout-element.js +1 -1
  517. package/dist/domain/system-components/pivot-point.d.ts +1 -1
  518. package/dist/domain/system-components/pivot-point.js +1 -1
  519. package/dist/domain/system-components/price.js +1 -1
  520. package/dist/domain/system-components/projected-entities.d.ts +1 -1
  521. package/dist/domain/system-components/projected-entities.js +1 -1
  522. package/dist/domain/system-components/property-page.d.ts +1 -1
  523. package/dist/domain/system-components/property-page.js +1 -1
  524. package/dist/domain/system-components/read-sidebar-footer.d.ts +1 -1
  525. package/dist/domain/system-components/read-sidebar-footer.js +1 -1
  526. package/dist/domain/system-components/replace-entity-recipe-hierarchy.d.ts +1 -1
  527. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +1 -1
  528. package/dist/domain/system-components/replace-entity-recipes.d.ts +1 -1
  529. package/dist/domain/system-components/replace-entity-recipes.js +1 -1
  530. package/dist/domain/system-components/rotatable.js +1 -1
  531. package/dist/domain/system-components/rotation-handle.js +1 -1
  532. package/dist/domain/system-components/save-template-thumbnail.js +1 -1
  533. package/dist/domain/system-components/scene-entity-add-fab.js +1 -1
  534. package/dist/domain/system-components/scene-entity-ambient-light.js +1 -1
  535. package/dist/domain/system-components/scene-entity-animation.js +1 -1
  536. package/dist/domain/system-components/scene-entity-box-object.js +1 -1
  537. package/dist/domain/system-components/scene-entity-control.js +1 -1
  538. package/dist/domain/system-components/scene-entity-delete-fab.js +1 -1
  539. package/dist/domain/system-components/scene-entity-directional-light.js +1 -1
  540. package/dist/domain/system-components/scene-entity-floor-object.js +1 -1
  541. package/dist/domain/system-components/scene-entity-html-hotspot.js +1 -1
  542. package/dist/domain/system-components/scene-entity-local-material-override.js +1 -1
  543. package/dist/domain/system-components/scene-entity-material-override.js +1 -1
  544. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +1 -1
  545. package/dist/domain/system-components/scene-entity-object-clip.js +1 -1
  546. package/dist/domain/system-components/scene-entity-object-decal.js +1 -1
  547. package/dist/domain/system-components/scene-entity-object-group.js +1 -1
  548. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +1 -1
  549. package/dist/domain/system-components/scene-entity-object-local-material-override.js +1 -1
  550. package/dist/domain/system-components/scene-entity-object-material-override.js +1 -1
  551. package/dist/domain/system-components/scene-entity-object-properties.js +1 -1
  552. package/dist/domain/system-components/scene-entity-object-remote-material-override.js +1 -1
  553. package/dist/domain/system-components/scene-entity-object-text-decal.js +1 -1
  554. package/dist/domain/system-components/scene-entity-object-transformer.js +1 -1
  555. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.js +1 -1
  556. package/dist/domain/system-components/scene-entity-object.js +1 -1
  557. package/dist/domain/system-components/scene-entity-point-light.js +1 -1
  558. package/dist/domain/system-components/scene-entity-properties.js +1 -1
  559. package/dist/domain/system-components/scene-entity-rect-area-light.js +1 -1
  560. package/dist/domain/system-components/scene-entity-remote-material-override.js +1 -1
  561. package/dist/domain/system-components/scene-entity-remote-object.js +1 -1
  562. package/dist/domain/system-components/scene-entity-select-hotspot.js +1 -1
  563. package/dist/domain/system-components/scene-entity-spot-light.js +1 -1
  564. package/dist/domain/system-components/scene-entity-transimissive-material-override.js +1 -1
  565. package/dist/domain/system-components/scene-entity-wall-object.js +1 -1
  566. package/dist/domain/system-components/selectable-component.js +1 -1
  567. package/dist/domain/system-components/sidebar-tabs.d.ts +1 -1
  568. package/dist/domain/system-components/sidebar-tabs.js +1 -1
  569. package/dist/domain/system-components/simple-summary.js +1 -1
  570. package/dist/domain/system-components/size.d.ts +1 -1
  571. package/dist/domain/system-components/size.js +1 -1
  572. package/dist/domain/system-components/sketching-draw.d.ts +1 -1
  573. package/dist/domain/system-components/sketching-draw.js +1 -1
  574. package/dist/domain/system-components/sketching-edit.d.ts +1 -1
  575. package/dist/domain/system-components/sketching-edit.js +1 -1
  576. package/dist/domain/system-components/sketching-line.d.ts +1 -1
  577. package/dist/domain/system-components/sketching-line.js +1 -1
  578. package/dist/domain/system-components/sketching-rectangle.d.ts +1 -1
  579. package/dist/domain/system-components/sketching-rectangle.js +1 -1
  580. package/dist/domain/system-components/sketching.d.ts +1 -1
  581. package/dist/domain/system-components/sketching.js +1 -1
  582. package/dist/domain/system-components/snap-axis.d.ts +1 -1
  583. package/dist/domain/system-components/snap-axis.js +1 -1
  584. package/dist/domain/system-components/snap-edge.d.ts +1 -1
  585. package/dist/domain/system-components/snap-edge.js +1 -1
  586. package/dist/domain/system-components/snap-plane.d.ts +1 -1
  587. package/dist/domain/system-components/snap-plane.js +1 -1
  588. package/dist/domain/system-components/snap-point.d.ts +1 -1
  589. package/dist/domain/system-components/snap-point.js +1 -1
  590. package/dist/domain/system-components/static-orthographic-camera-component.d.ts +1 -1
  591. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  592. package/dist/domain/system-components/static-perspective-camera-component.d.ts +1 -1
  593. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  594. package/dist/domain/system-components/summary-component.js +1 -1
  595. package/dist/domain/system-components/text-value.js +1 -1
  596. package/dist/domain/system-components/tool-controls.js +1 -1
  597. package/dist/domain/system-components/tool-menu-fab.d.ts +1 -1
  598. package/dist/domain/system-components/tool-menu-fab.js +1 -1
  599. package/dist/domain/system-components/toolbar.d.ts +1 -1
  600. package/dist/domain/system-components/toolbar.js +1 -1
  601. package/dist/domain/system-components/universal-sidebar-footer.d.ts +1 -1
  602. package/dist/domain/system-components/universal-sidebar-footer.js +1 -1
  603. package/dist/domain/system-components/view-controls.js +1 -1
  604. package/dist/domain/utils/eval-cache.d.ts +1 -2
  605. package/dist/domain/utils/memo-eval.d.ts +1 -3
  606. package/dist/editor/Editor.js +1 -1
  607. package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
  608. package/dist/editor/domain-editors/apply-spec-update.js +1 -1
  609. package/dist/editor/domain-editors/use-implementation-files.d.ts +11 -6
  610. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  611. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  612. package/dist/editor/variants/VariantAnswerFooter.d.ts +17 -0
  613. package/dist/editor/variants/VariantAnswerFooter.js +1 -0
  614. package/dist/editor/variants/VariantPreviewHandler.d.ts +6 -0
  615. package/dist/editor/variants/VariantPreviewHandler.js +1 -0
  616. package/dist/editor/variants/variant-preview-styles.d.ts +49 -0
  617. package/dist/editor/variants/variant-preview-styles.js +1 -0
  618. package/dist/i18n/locales/cs/messages.js +1 -1
  619. package/dist/i18n/locales/da/messages.js +1 -1
  620. package/dist/i18n/locales/de/messages.js +1 -1
  621. package/dist/i18n/locales/de-AT/messages.js +1 -1
  622. package/dist/i18n/locales/en/messages.js +1 -1
  623. package/dist/i18n/locales/en-AU/messages.js +1 -1
  624. package/dist/i18n/locales/en-GB/messages.js +1 -1
  625. package/dist/i18n/locales/es/messages.js +1 -1
  626. package/dist/i18n/locales/fr/messages.js +1 -1
  627. package/dist/i18n/locales/hu/messages.js +1 -1
  628. package/dist/i18n/locales/it/messages.js +1 -1
  629. package/dist/i18n/locales/nl/messages.js +1 -1
  630. package/dist/i18n/locales/pl/messages.js +1 -1
  631. package/dist/i18n/locales/pt/messages.js +1 -1
  632. package/dist/i18n/locales/ro/messages.js +1 -1
  633. package/dist/i18n/locales/sk/messages.js +1 -1
  634. package/dist/i18n/locales/tr/messages.js +1 -1
  635. package/dist/legacy/domain-cli/gen/configurator-builder.js +21 -8
  636. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  637. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  638. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +6 -0
  639. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +18 -19
  640. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +15 -16
  641. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +22 -23
  642. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +15 -16
  643. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.d.ts +7 -2
  644. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.js +8 -12
  645. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.d.ts +1 -1
  646. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.js +1 -1
  647. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/webhook-builders.js +7 -7
  648. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  649. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +4 -3
  650. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  651. package/dist/phoenix/cli.js +1 -1
  652. package/dist/phoenix/commands/build.d.ts +5 -0
  653. package/dist/phoenix/commands/build.js +1 -1
  654. package/dist/phoenix/commands/deploy.js +2 -2
  655. package/dist/phoenix/commands/dev.js +5 -5
  656. package/dist/phoenix/commands/feedback.d.ts +2 -1
  657. package/dist/phoenix/commands/feedback.js +1 -1
  658. package/dist/phoenix/commands/index.d.ts +1 -0
  659. package/dist/phoenix/commands/index.js +1 -1
  660. package/dist/phoenix/commands/login.d.ts +24 -6
  661. package/dist/phoenix/commands/login.js +2 -2
  662. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  663. package/dist/phoenix/commands/prepare-local-environment-command.js +1 -1
  664. package/dist/phoenix/commands/story-dev.js +2 -2
  665. package/dist/phoenix/commands/variants.d.ts +35 -0
  666. package/dist/phoenix/commands/variants.js +1 -0
  667. package/dist/phoenix/editor-server/commands-router.d.ts +68 -1
  668. package/dist/phoenix/editor-server/commands-router.js +1 -1
  669. package/dist/phoenix/editor-server/editor-router.d.ts +65 -0
  670. package/dist/phoenix/editor-server/editor-server.d.ts +3 -3
  671. package/dist/phoenix/editor-server/editor-server.js +1 -1
  672. package/dist/phoenix/editor-server/protocol.d.ts +1 -0
  673. package/dist/phoenix/editor-server/spec-router.js +1 -1
  674. package/dist/phoenix/editor-server/trpc.d.ts +3 -0
  675. package/dist/phoenix/scripts/build-admin.js +1 -1
  676. package/dist/phoenix/services/application-spec-project-watcher.d.ts +13 -2
  677. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  678. package/dist/phoenix/services/index.d.ts +5 -0
  679. package/dist/phoenix/services/index.js +1 -1
  680. package/dist/phoenix/services/phoenix-application.d.ts +21 -0
  681. package/dist/phoenix/services/phoenix-application.js +1 -0
  682. package/dist/phoenix/services/phoenix-store.d.ts +48 -0
  683. package/dist/phoenix/services/phoenix-store.js +1 -0
  684. package/dist/phoenix/services/phx-banner-plugin.d.ts +32 -0
  685. package/dist/phoenix/services/phx-banner-plugin.js +1 -0
  686. package/dist/phoenix/services/phx-licenses-plugin.d.ts +55 -0
  687. package/dist/phoenix/services/phx-licenses-plugin.js +8 -0
  688. package/dist/phoenix/services/phx-variant-previews-plugin.d.ts +9 -0
  689. package/dist/phoenix/services/phx-variant-previews-plugin.js +1 -0
  690. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  691. package/dist/phoenix/services/variant-file-session.d.ts +36 -0
  692. package/dist/phoenix/services/variant-file-session.js +1 -0
  693. package/dist/phoenix/services/variant-preview-service.d.ts +80 -0
  694. package/dist/phoenix/services/variant-preview-service.js +1 -0
  695. package/dist/phoenix/services/vite-config.d.ts +2 -0
  696. package/dist/phoenix/services/vite-config.js +1 -1
  697. package/dist/phoenix/utils/index.d.ts +1 -0
  698. package/dist/phoenix/utils/index.js +1 -1
  699. package/dist/phoenix/utils/read-git-commit.d.ts +14 -0
  700. package/dist/phoenix/utils/read-git-commit.js +1 -0
  701. package/dist/react-sdk/application-runtime/common-services/analytics/analytics-service.d.ts +2 -2
  702. package/dist/react-sdk/application-runtime/common-services/analytics/domain-controls-analytics.d.ts +21 -21
  703. package/dist/react-sdk/application-runtime/hooks/data/use-published-data.d.ts +1 -1
  704. package/dist/react-sdk/application-runtime/hooks/use-domain-application-props.d.ts +5 -2
  705. package/dist/react-sdk/application-runtime/hooks/use-spec.d.ts +1 -1
  706. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.d.ts +1 -1
  707. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  708. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +16 -4
  709. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +3 -0
  710. package/dist/ui-sdk/common/use-viewport-size.d.ts +4 -1
  711. package/dist/ui-sdk/common/use-viewport-size.js +1 -1
  712. package/dist/ui-sdk/components/mobile-controls/index.d.ts +1 -1
  713. package/dist/ui-sdk/theme/types.d.ts +4 -0
  714. package/dist/webhook/builders/common.d.ts +3 -0
  715. package/dist/webhook/builders/webhook-builder.d.ts +1 -1
  716. package/dist/webhook/builders/webhook-builder.js +1 -1
  717. package/package.json +5 -8
  718. package/schema/domain-spec.json +24 -0
  719. package/dist/application-spec/generate-application/code/templates/agents-md.js +0 -2
  720. package/dist/application-spec/generate-application/code/templates/common/sdk-content.js +0 -67
  721. package/dist/application-spec/generate-application/code/templates/phoenix-cli-skill.js +0 -1
  722. package/dist/application-spec/generate-application/code/templates/phoenix-feedback-skill.js +0 -31
  723. package/dist/application-spec/generate-application/code/templates/phoenix-skill.js +0 -1
  724. package/dist/configurator/assistant/browser-details.js +0 -1
  725. package/dist/configurator/assistant/graphql-tools.js +0 -1
  726. package/dist/configurator/assistant/index.d.ts +0 -1
  727. package/dist/configurator/assistant/index.js +0 -1
  728. package/dist/configurator/assistant/use-assistant-chat.d.ts +0 -20
  729. package/dist/configurator/assistant/use-assistant-chat.js +0 -1
  730. package/dist/domain/components/debug-state-component.js +0 -1
  731. package/dist/domain/components/domain-component-optic.js +0 -16
  732. package/dist/domain/components/drag-state-component.js +0 -1
  733. package/dist/domain/components/export-state-component.js +0 -1
  734. package/dist/domain/components/fullscreen-state-component.js +0 -1
  735. package/dist/domain/components/group-components-by-entity-id-and-name.js +0 -1
  736. package/dist/domain/components/hover-state-component.js +0 -1
  737. package/dist/domain/components/index.d.ts +0 -2
  738. package/dist/domain/components/index.js +0 -1
  739. package/dist/domain/components/navigation-state-component.js +0 -1
  740. package/dist/domain/components/selection-state-component.js +0 -1
  741. package/dist/domain/components/system-component-builder.js +0 -1
  742. package/dist/domain/components/system-virtual-entity.js +0 -1
  743. package/dist/domain/components/tool-state-component.js +0 -1
  744. package/dist/domain/components/view-state-component.js +0 -1
  745. package/dist/domain/components/viewport-state-component.js +0 -1
  746. package/dist/domain/core/json-schema.js +0 -1
  747. package/dist/domain/core/reflection.js +0 -1
  748. package/dist/domain/expressions/constant-expressions.js +0 -1
  749. package/dist/domain/expressions/custom-expression.js +0 -1
  750. package/dist/domain/expressions/index.d.ts +0 -1
  751. package/dist/domain/expressions/index.js +0 -1
  752. package/dist/domain/invariants/custom-invariants.js +0 -1
  753. package/dist/domain/invariants/invariants.js +0 -1
  754. package/dist/domain/invariants/violation-component.js +0 -1
  755. package/dist/extras/assistant/AssistantChat.d.ts +0 -6
  756. package/dist/extras/assistant/AssistantChat.js +0 -1
  757. package/dist/extras/assistant/index.d.ts +0 -1
  758. package/dist/extras/assistant/index.js +0 -1
  759. package/dist/phoenix/application-spec/generate-assistant-prompt.d.ts +0 -12
  760. package/dist/phoenix/application-spec/generate-assistant-prompt.js +0 -1
  761. /package/dist/application-spec/generate-application/code/templates/{common → skills}/agent-skill.d.ts +0 -0
  762. /package/dist/application-spec/generate-application/code/templates/{common → skills}/agent-skill.js +0 -0
  763. /package/dist/application-spec/generate-application/code/templates/{agents-md.d.ts → skills/agents-md.d.ts} +0 -0
  764. /package/dist/application-spec/generate-application/code/templates/{phoenix-cli-skill.d.ts → skills/phoenix-cli-skill.d.ts} +0 -0
  765. /package/dist/application-spec/generate-application/code/templates/{phoenix-feedback-skill.d.ts → skills/phoenix-feedback-skill.d.ts} +0 -0
  766. /package/dist/application-spec/generate-application/code/templates/{phoenix-review-skill.d.ts → skills/phoenix-review-skill.d.ts} +0 -0
  767. /package/dist/application-spec/generate-application/code/templates/{phoenix-skill.d.ts → skills/phoenix-skill.d.ts} +0 -0
  768. /package/dist/domain/{components/component-reader-types.js → application/assistant/assistant-manifest.js} +0 -0
  769. /package/dist/domain/{core/enhanced-json-schema.js → application/assistant/assistant-resolved-manifest.js} +0 -0
  770. /package/dist/domain/core/{expression.js → action/action.js} +0 -0
  771. /package/dist/domain/core/{schema-validator.js → component/component-reader-types.js} +0 -0
  772. /package/dist/domain/{components → core/component}/legacy-filter.js +0 -0
  773. /package/dist/domain/{components → core/component}/system-component-filter.js +0 -0
  774. /package/dist/domain/{components → core/component}/system-virtual-entity.d.ts +0 -0
  775. /package/dist/domain/{components → core/component}/updates.js +0 -0
  776. /package/dist/domain/{expressions → core/expression}/memoize-expression.js +0 -0
  777. /package/dist/domain/{expressions → core/expression}/prepare-domain-expressions.js +0 -0
  778. /package/dist/domain/{invariants → core/invariant}/builtin-invariant.js +0 -0
  779. /package/dist/domain/{invariants → core/invariant}/violation-component.d.ts +0 -0
  780. /package/dist/domain/{invariants → core/invariant}/violation.js +0 -0
  781. /package/dist/domain/core/{alias.d.ts → model/alias.d.ts} +0 -0
  782. /package/dist/domain/core/{alias.js → model/alias.js} +0 -0
  783. /package/dist/domain/core/{common-definitions.d.ts → model/common-definitions.d.ts} +0 -0
  784. /package/dist/domain/core/{common-definitions.js → model/common-definitions.js} +0 -0
  785. /package/dist/domain/core/{component.js → model/component.js} +0 -0
  786. /package/dist/domain/core/{model.d.ts → model/model.d.ts} +0 -0
  787. /package/dist/domain/core/{model.js → model/model.js} +0 -0
  788. /package/dist/domain/core/{preset.d.ts → model/preset.d.ts} +0 -0
  789. /package/dist/domain/core/{preset.js → model/preset.js} +0 -0
  790. /package/dist/domain/core/{schema-validator-ajv.d.ts → schema/create-ajv-schema-validator.d.ts} +0 -0
  791. /package/dist/domain/core/{schema-validator-ajv.js → schema/create-ajv-schema-validator.js} +0 -0
  792. /package/dist/domain/core/{schema-validator-csp.d.ts → schema/create-csp-schema-validator.d.ts} +0 -0
  793. /package/dist/domain/core/{schema-validator-csp.js → schema/create-csp-schema-validator.js} +0 -0
  794. /package/dist/domain/core/{enhanced-json-schema.d.ts → schema/enhanced-json-schema.d.ts} +0 -0
  795. /package/dist/domain/core/{json-schema.d.ts → schema/extended-schema-validator.d.ts} +0 -0
  796. /package/dist/domain/core/{schema-validator.d.ts → schema/schema-validator.d.ts} +0 -0
  797. /package/dist/domain/core/{migrations.js → state/migrations.js} +0 -0
  798. /package/dist/domain/core/{state.js → state/state.js} +0 -0
@@ -1 +1 @@
1
- import{createCascadeDeletesTransformer as e}from"../../domain-context/relation-transformers/cascade-deletes.js";import{createCascadeRefPruningTransformer as t}from"../../domain-context/relation-transformers/cascade-ref-pruning.js";import{createCreateEntityRefsTransformer as s}from"../../domain-context/relation-transformers/create-entity-refs.js";import{createRefReplaceTransformer as r}from"../../domain-context/relation-transformers/replace-refs.js";import{createAutoSnapTransformer as n}from"../../domain-context/transformers/auto-snap-transformer.js";export class DomainContext{_context;_connected=!1;_activeCreateTransformers=void 0;_userTransformerUnregisters=[];_lastExpressionContext=null;_lastDomainExpressions=null;_lastComponentReaderIndexes=null;_lastLoadedData=null;constructor(e){this._context=e}initialize(){let{selectors:o,actions:a,getExtensionSystems:i}=this._context;this._assertSchemaCoherence();let m=o.getStoreSystem();try{for(let i of(a.setInitializationContext(o.getNextInitializationContext()),this._connected||(m.registerTransformer(10,e(o.getCompositionProjections()),"CascadeDeletes"),m.registerTransformer(20,t(o.getComponentReader()),"CascadeRefPruning"),m.registerTransformer(25,s(o.getComponentReader()),"CreateEntityRefs"),m.registerTransformer(30,r(o.getComponentReader()),"RefReplace"),m.registerTransformer(40,n(o.getComponentReader(),o.getSnappingProjections(),o.getDimensionSystem(),o.getPositionProjections(),m),"AutoSnap"),this._connected=!0),this._reconcileUserTransformers(),[m,o.getUndoSystem()]))i.initialize();for(let e of(m.stageAndCommit(o.getDimensionSystem().initialize(m.stateSlices.committed.value.state)),[o.getNavigationSystem(),...i()]))e.initialize();this._lastExpressionContext=o.getExpressionContext(),this._lastDomainExpressions=o.getDomainExpressions(),this._lastComponentReaderIndexes=o.getComponentReaderIndexes(),this._lastLoadedData=o.getLoadedData(),a.completeInitialization()}catch(e){throw a.failInitialization(),e}}reconcile=()=>{this._context.selectors.getInitializationState().isCurrent&&(this._reconcileUserTransformers(),this._refreshIfLoadedDataChanged(),this._refreshIfExpressionContextChanged())};_assertSchemaCoherence(){switch(this._context.selectors.getSchemaCoherence()){case"coherent":return;case"missing-stamp":throw Error("Cannot initialize the domain context: the loaded data carries no schema identity.");case"schema-mismatch":throw Error("Cannot initialize the domain context: the loaded data belongs to a different schema identity than the active spec.")}}_registerUserTransformers(e){let t=this._context.selectors.getStoreSystem();for(let s of e)this._userTransformerUnregisters.push(t.registerTransformer(s.priority,s.transformer,s.name??"Anonymous"))}_unregisterUserTransformers(){for(let e of this._userTransformerUnregisters)e();this._userTransformerUnregisters=[]}_reconcileUserTransformers(){let e=this._context.selectors.getCreateTransformers();if(this._activeCreateTransformers===e)return;let t=e?.(this._context.selectors.getDomainSystems())??[];this._unregisterUserTransformers(),this._activeCreateTransformers=e,this._registerUserTransformers(t)}_refreshIfExpressionContextChanged(){let{selectors:e}=this._context,t=e.getExpressionContext(),s=e.getDomainExpressions(),r=e.getComponentReaderIndexes();if(this._lastExpressionContext===t&&this._lastDomainExpressions===s&&this._lastComponentReaderIndexes===r)return;let n=e.getStoreSystem();n.reset(n.stateSlices.committed.value.state,"expressionContextRefreshed"),this._lastExpressionContext=t,this._lastDomainExpressions=s,this._lastComponentReaderIndexes=r}_refreshIfLoadedDataChanged(){let{selectors:e}=this._context,t=e.getLatestLoadedData();null!==t&&this._lastLoadedData!==t&&(e.getStoreSystem().reset(e.getInitialDomainState(),"loadedDataRefreshed"),this._lastLoadedData=t)}}
1
+ import{createCascadeDeletesTransformer as e}from"../../domain-context/relation-transformers/cascade-deletes.js";import{createCascadeRefPruningTransformer as t}from"../../domain-context/relation-transformers/cascade-ref-pruning.js";import{createCreateEntityRefsTransformer as s}from"../../domain-context/relation-transformers/create-entity-refs.js";import{createRefReplaceTransformer as r}from"../../domain-context/relation-transformers/replace-refs.js";import{createAutoSnapTransformer as n}from"../../domain-context/transformers/auto-snap-transformer.js";export class DomainContext{_context;_connected=!1;_activeCreateTransformers=void 0;_userTransformerUnregisters=[];_lastExpressionContext=null;_lastDomainExpressions=null;_lastComponentReaderIndexes=null;_lastLoadedData=null;constructor(e){this._context=e}initialize(){let{selectors:o,actions:a,getExtensionSystems:i}=this._context;this._assertSchemaCoherence();let m=o.getStoreSystem();try{for(let i of(a.setInitializationContext(o.getNextInitializationContext()),this._connected||(m.registerTransformer(10,e(o.getCompositionProjections()),"CascadeDeletes"),m.registerTransformer(20,t(o.getComponentReader()),"CascadeRefPruning"),m.registerTransformer(25,s(o.getComponentReader()),"CreateEntityRefs"),m.registerTransformer(30,r(o.getComponentReader()),"RefReplace"),m.registerTransformer(40,n(o.getComponentReader(),o.getSnappingProjections(),o.getDimensionSystem(),o.getPositionProjections(),m),"AutoSnap"),this._connected=!0),this._reconcileUserTransformers(),[m,o.getUndoSystem()]))i.initialize();for(let e of(m.stageAndCommit(o.getDimensionSystem().initialize(m.stateSlices.committed.value.state)),[o.getNavigationSystem(),...i()]))e.initialize();o.getActionImplementations(),this._lastExpressionContext=o.getExpressionContext(),this._lastDomainExpressions=o.getDomainExpressions(),this._lastComponentReaderIndexes=o.getComponentReaderIndexes(),this._lastLoadedData=o.getLoadedData(),a.completeInitialization()}catch(e){throw a.failInitialization(),e}}reconcile=()=>{this._context.selectors.getInitializationState().isCurrent&&(this._reconcileUserTransformers(),this._refreshIfLoadedDataChanged(),this._refreshIfExpressionContextChanged())};_assertSchemaCoherence(){switch(this._context.selectors.getSchemaCoherence()){case"coherent":return;case"missing-stamp":throw Error("Cannot initialize the domain context: the loaded data carries no schema identity.");case"schema-mismatch":throw Error("Cannot initialize the domain context: the loaded data belongs to a different schema identity than the active spec.")}}_registerUserTransformers(e){let t=this._context.selectors.getStoreSystem();for(let s of e)this._userTransformerUnregisters.push(t.registerTransformer(s.priority,s.transformer,s.name??"Anonymous"))}_unregisterUserTransformers(){for(let e of this._userTransformerUnregisters)e();this._userTransformerUnregisters=[]}_reconcileUserTransformers(){let e=this._context.selectors.getCreateTransformers();if(this._activeCreateTransformers===e)return;let t=e?.(this._context.selectors.getDomainSystems())??[];this._unregisterUserTransformers(),this._activeCreateTransformers=e,this._registerUserTransformers(t)}_refreshIfExpressionContextChanged(){let{selectors:e}=this._context,t=e.getExpressionContext(),s=e.getDomainExpressions(),r=e.getComponentReaderIndexes();if(this._lastExpressionContext===t&&this._lastDomainExpressions===s&&this._lastComponentReaderIndexes===r)return;let n=e.getStoreSystem();n.reset(n.stateSlices.committed.value.state,"expressionContextRefreshed"),this._lastExpressionContext=t,this._lastDomainExpressions=s,this._lastComponentReaderIndexes=r}_refreshIfLoadedDataChanged(){let{selectors:e}=this._context,t=e.getLatestLoadedData();null!==t&&this._lastLoadedData!==t&&(e.getStoreSystem().reset(e.getInitialDomainState(),"loadedDataRefreshed"),this._lastLoadedData=t)}}
@@ -1,6 +1,5 @@
1
- import type { DomainComponentOptic } from '../../components/index.js';
2
- import { type AnyDomain } from '../../core/domain.js';
3
- import type { AnyDomainFactory, AnyExpressionContext, DomainEntity, DomainMode, SystemComponentTypeConstraint } from '../../core/index.js';
1
+ import { type AnyDomain, type AnyDomainFactory, type AnyExpressionContext, type DomainComponentOptic, type DomainEntity, type DomainMode, type SystemComponentTypeConstraint } from '../../core/index.js';
2
+ import { type AnyActionSystem } from '../../domain-context/action-system/action-system.js';
4
3
  import { type AnyDimensionSystem } from '../../domain-context/dimension-system/dimension-system.js';
5
4
  import type { AnyDomainContextSystems } from '../../domain-context/domain-context-systems.js';
6
5
  import { type AnyNavigationSystem } from '../../domain-context/navigation-system/navigation-system.js';
@@ -120,6 +119,8 @@ export declare const createDomainContextSelectors: (context: Context) => {
120
119
  getActiveConfigurationId: () => string;
121
120
  getFactory: () => AnyDomainFactory;
122
121
  getDomainExpressions: () => import("../../index.js").AnyExpressions;
122
+ getActionDefinitions: () => Readonly<Record<string, import("../../index.js").ActionDefinition>>;
123
+ getActionImplementations: () => Readonly<Record<string, import("../../index.js").AnyActionImplementation>>;
123
124
  getModelVersion: () => number;
124
125
  getAliasMap: () => import("../../index.js").AnyAliasMap;
125
126
  getAllowedRootEntityTypes: () => import("../../index.js").AnyAllowedRootEntityTypes;
@@ -160,6 +161,7 @@ export declare const createDomainContextSelectors: (context: Context) => {
160
161
  getNavigationSystem: () => AnyNavigationSystem;
161
162
  getUndoSystem: () => AnyUndoSystem;
162
163
  getRecipeCookerSystem: () => AnyRecipeCookerSystem;
164
+ getActionSystem: () => AnyActionSystem;
163
165
  getBlenderProjections: () => AnyBlenderProjections;
164
166
  getExpressionContext: () => AnyExpressionContext;
165
167
  getDomainSystems: () => AnyDomainContextSystems;
@@ -1 +1 @@
1
- import{createSelector as e}from"@salsita-ai/common/utils";import{Domain as t}from"../../core/domain.js";import{createInitialDomainState as n}from"../../core/state.js";import{DimensionSystem as o}from"../../domain-context/dimension-system/dimension-system.js";import{NavigationSystem as i}from"../../domain-context/navigation-system/navigation-system.js";import{RecipeCookerSystem as a}from"../../domain-context/recipe-system/recipe-cooker-system.js";import{StoreSystem as s}from"../../domain-context/store-system/store-system.js";import{UndoSystem as r}from"../../domain-context/undo-system.js";import{prepareDomainExpressions as c}from"../../expressions/index.js";import{BlenderProjections as l,CollisionProjections as m,CompositionProjections as d,ConstraintProjections as g,PositionProjections as f,ProjectedEntitiesProjections as p,SnappingProjections as u,ValidationProjections as y}from"../../projections/index.js";import{SketchingProjections as w}from"../../sketching/sketching-projections.js";import{requireAccessService as h}from"../access/index.js";import{ComponentReader as S}from"./component-reader.js";import{DomainContext as x}from"./domain-context.js";let j=e.withTypes(),C=[],D={},v={role:"admin",data:D},I=e=>{if(null!==e)return e;throw Error("Cannot read the session role and data because the domain session context is not set. The session context is written into the domain runtime by the session lifecycle after authentication. Move this read into the loaded session lifecycle.")};export const createDomainContextSelectors=e=>{let{applicationType:P,getState:M,actions:R,specSelectors:E,accessSelectors:T,webComponentSelectors:b,domainDataSelectors:A,sessionContextSelectors:k,domainServicesSelectors:$,environmentSelectors:N,getExtensionSystems:z}=e,L="configurator"===P?E.selectConfiguratorSpec:E.selectAdminSpec,V="configurator"===P?T.selectConfiguratorRawAccessService:T.selectAdminRawAccessService,B=j.leaf(e=>e.domainContext[P]),F=j([B],e=>e.initializationContext),W=j([F],e=>{if(null===e)throw Error(`Domain lifecycle context is not available for ${P}! Read it from an active domain lifecycle.`);return e}),_=j([B],e=>e.executionMode),q=j([B],e=>e.isInitialized),O=j([L],e=>e.factory),U=j([L],e=>e.expressions),G=j([L],e=>e.$entityReflections),H=j([U,G],(e,t)=>c({expressions:e,$entityReflections:t})),J=j([L],e=>e.modelVersion),K=j([L],e=>e.aliasMap),Q=j([L],e=>e.allowedRootEntityTypes),X=j([L],e=>e.entityReflections),Y=j([L],e=>e.migrate),Z=j([_,b.selectReadonly,V],(e,t,n)=>"finalize"===e?"finalize":h(P,n).accessInfo.viewMode||t?"read":"owner"),ee=j([V],e=>e?.configurationId??null),et="configurator"===P?k.selectSessionContext:j([],()=>v),en=j([et],e=>e?.role??null),eo=j([et],e=>e?.data??null),ei=j([j.leaf(e=>e.loadedData)],e=>"configurator"===P?e.configuratorLoadedData:e.adminLoadedData),ea=j([ei],e=>e?.schemaIdentity??null),es=j([ei,O],(e,t)=>{if(null===e)return"coherent";let n=e.schemaIdentity;return void 0===n?"missing-stamp":n===t?"coherent":"schema-mismatch"}),er=j([ee,en,eo,ea,es],(e,t,n,o,i)=>null===e||null===t||null===n||null===o||"coherent"!==i?null:{configurationId:e,role:t,schemaIdentity:o,sessionData:n}),ec=j([V,b.selectReadonly],(e,t)=>e?.accessInfo.viewMode===!0||t),el=j([er,F,q,ec],(e,t,n,o)=>{let i=null!==e&&null!==t&&n&&t.configurationId===e.configurationId&&t.role===e.role&&t.schemaIdentity===e.schemaIdentity&&t.sessionData===e.sessionData;return{identity:e,isCurrent:i,isViewMode:o}}),em=j([L],e=>e.componentOptics),ed=j([em],e=>(e=>{let t=new Map,n=new Map,o=new Map,i=new Map;for(let n of e)for(let e of n.entityTypes){let o=t.get(e);o||(o=new Map,t.set(e,o));let a=o.get(n.componentType);if(a||(a=new Map,o.set(n.componentType,a)),a.has(n.instanceName))throw Error(`Component instance ${n.instanceName} already exists for type ${n.componentType.name} in entity ${e}. This is likely a bug in the component definition! InstanceNames must be unique within an entity and component.`);if(a.set(n.instanceName,n),"dynamic"===n.kind){let t=i.get(e);t||(t=new Map,i.set(e,t));let o=t.get(n.componentType)??[],a=o.find(e=>{var t;return t=n.instanceName,e.startsWith(`${t}_`)||t.startsWith(`${e}_`)});if(a)throw Error(`Cannot register dynamic component instance ${n.instanceName} for component ${n.componentType.name} on entity ${e} because it overlaps with dynamic instance ${a}. Rename one dynamic instance so compound names cannot be ambiguous.`);t.set(n.componentType,[...o,n.instanceName])}}for(let[e,i]of t.entries()){n.set(e,new Set(i.keys()));let t=new Map;for(let[n,a]of(o.set(e,t),i.entries()))t.set(n,new Set(a.keys()))}return{opticMap:t,allComponentTypes:n,allComponentInstanceNames:o,dynamicInstanceNames:i}})(e)),eg=j([ed,H,Q],(e,t,n)=>({componentReaderIndexes:e,domainExpressions:t,allowedRootEntityTypes:n})),ef=j([L],e=>e.navigationStates),ep=j([L],e=>e.viewStates),eu="configurator"===P?j([E.selectConfiguratorSpec],e=>e.toolStates):j([],()=>C),ey="configurator"===P?j([E.selectConfiguratorSpec],e=>e.exportStates):j([],()=>C),ew="configurator"===P?j([E.selectConfiguratorSpec],e=>e.createTransformers):j([],()=>void 0),eh=j([ei],e=>{if(null===e)throw Error(`Loaded data is not available for ${P}! Loaded data is written after the configuration fetch succeeds and before the domain context initialization starts.`);return e}),eS=j([eh,O],(e,t)=>n(t.validateAndMigrateState(e.initialEntities,e.modelVersion),e.rootEntityType)),ex="configurator"===P?A.selectConfiguratorFrontendData:A.selectAdminFrontendData,ej="configurator"===P?A.selectConfiguratorBackendData:A.selectAdminBackendData,eC="configurator"===P?A.selectConfiguratorPublishedData:A.selectAdminPublishedData,eD="configurator"===P?j([k.selectSessionContext],e=>I(e).role):j([],()=>"admin"),ev="configurator"===P?j([k.selectSessionContext],e=>I(e).data):j([],()=>D),eI=j([ee,Z,eD,ev,eh],(e,t,n,o,i)=>({configurationId:e,mode:t,role:n,schemaIdentity:i.schemaIdentity,sessionData:o})),eP=j([W],e=>e.mode),eM=j([W],e=>{let t=e.configurationId;if(null===t)throw Error(`Configuration id is not available for ${P}! Read it from an active interactive domain lifecycle.`);return t}),eR=j([W],e=>e.role),eE=j([W],e=>e.sessionData),eT=j([eP,eR,eE,ex,ej,eC,Y],(e,t,n,o,i,a,s)=>({mode:e,role:t,sessionData:n,frontendData:o,backendData:i,publishedData:a,migrate:s,domain:eA,componentReader:ek,positionProjections:eV,sketchingProjections:eL,collisionProjections:eB,constraintProjections:eW,snappingProjections:eF,projectedEntitiesProjections:e_})),eb={selectApplicationSpec:L,selectRawAccessService:V,selectDomainContextState:B,selectInitializationContext:F,selectActiveInitializationContext:W,selectExecutionMode:_,selectIsInitialized:q,selectFactory:O,selectSpecExpressions:U,select$SpecEntityReflections:G,selectDomainExpressions:H,selectModelVersion:J,selectAliasMap:K,selectAllowedRootEntityTypes:Q,selectEntityReflections:X,selectMigrate:Y,selectLatestMode:Z,selectLatestConfigurationId:ee,selectLatestSessionContext:et,selectLatestRoleOrNull:en,selectLatestSessionDataOrNull:eo,selectLatestSchemaIdentity:ea,selectSchemaCoherence:es,selectInitializationIdentity:er,selectIsViewMode:ec,selectInitializationState:el,selectComponentOptics:em,selectComponentReaderIndexes:ed,selectStoreRuntimeDependencies:eg,selectNavigationStates:ef,selectViewStates:ep,selectToolStates:eu,selectExportStates:ey,selectCreateTransformers:ew,selectLatestLoadedData:ei,selectLoadedData:eh,selectInitialDomainState:eS,selectFrontendData:ex,selectBackendData:ej,selectPublishedData:eC,selectLatestRole:eD,selectLatestSessionData:ev,selectNextInitializationContext:eI,selectActiveMode:eP,selectActiveConfigurationId:eM,selectActiveRole:eR,selectActiveSessionData:eE,selectExpressionContext:eT,getInitializationContext:()=>F(M()),getInitializationState:()=>el(M()),getNextInitializationContext:()=>eI(M()),getLatestLoadedData:()=>ei(M()),getSchemaCoherence:()=>es(M()),getActiveConfigurationId:()=>eM(M()),getFactory:()=>O(M()),getDomainExpressions:()=>H(M()),getModelVersion:()=>J(M()),getAliasMap:()=>K(M()),getAllowedRootEntityTypes:()=>Q(M()),getEntityReflections:()=>X(M()),getMigrate:()=>Y(M()),getActiveMode:()=>eP(M()),getIsInitialized:()=>q(M()),getComponentReaderIndexes:()=>ed(M()),getStoreRuntimeDependencies:()=>eg(M()),getNavigationStates:()=>ef(M()),getViewStates:()=>ep(M()),getToolStates:()=>eu(M()),getExportStates:()=>ey(M()),getCreateTransformers:()=>ew(M()),getLoadedData:()=>eh(M()),getInitialDomainState:()=>eS(M()),getFrontendData:()=>ex(M()),getBackendData:()=>ej(M()),getPublishedData:()=>eC(M()),getActiveRole:()=>eR(M()),getActiveSessionData:()=>eE(M()),getDomain:()=>eA,getComponentReader:()=>ek,getCompositionProjections:()=>e$,getDimensionSystem:()=>eN,getValidationProjections:()=>ez,getSketchingProjections:()=>eL,getPositionProjections:()=>eV,getCollisionProjections:()=>eB,getSnappingProjections:()=>eF,getConstraintProjections:()=>eW,getProjectedEntitiesProjections:()=>e_,getStoreSystem:()=>eq,getNavigationSystem:()=>eO,getUndoSystem:()=>eU,getRecipeCookerSystem:()=>eG,getBlenderProjections:()=>eH,getExpressionContext:()=>eT(M()),getDomainSystems:function(){return eJ},getDomainContext:function(){return eK}},eA=new t({selectors:eb}),ek=new S({selectors:eb}),e$=new d({selectors:eb}),eN=new o({selectors:eb}),ez=new y({selectors:eb}),eL=new w({selectors:eb}),eV=new f({selectors:eb}),eB=new m({selectors:eb}),eF=new u({selectors:eb}),eW=new g({selectors:eb}),e_=new p({selectors:eb}),eq=new s({selectors:eb,domainServicesSelectors:$,environmentSelectors:N}),eO=new i({selectors:eb,domainServicesSelectors:$}),eU=new r({selectors:eb}),eG=new a({selectors:eb}),eH=new l({selectors:eb,domainServicesSelectors:$}),eJ={domainContextSelectors:eb,domain:eA,componentReader:ek,compositionProjections:e$,blenderProjections:eH,validationProjections:ez,storeSystem:eq,navigationSystem:eO,dimensionSystem:eN,undoSystem:eU,recipeCooker:eG,sketchingProjections:eL,collisionProjections:eB,positionProjections:eV,snappingProjections:eF,projectedEntitiesProjections:e_,constraintProjections:eW},eK=new x({selectors:eb,actions:R,getExtensionSystems:z});return eb};
1
+ import{createSelector as e}from"@salsita-ai/common/utils";import{Domain as t,createInitialDomainState as n,prepareActionImplementations as o,prepareDomainExpressions as i}from"../../core/index.js";import{ActionSystem as a}from"../../domain-context/action-system/action-system.js";import{DimensionSystem as s}from"../../domain-context/dimension-system/dimension-system.js";import{NavigationSystem as r}from"../../domain-context/navigation-system/navigation-system.js";import{RecipeCookerSystem as c}from"../../domain-context/recipe-system/recipe-cooker-system.js";import{StoreSystem as l}from"../../domain-context/store-system/store-system.js";import{UndoSystem as m}from"../../domain-context/undo-system.js";import{BlenderProjections as d,CollisionProjections as g,CompositionProjections as f,ConstraintProjections as p,PositionProjections as u,ProjectedEntitiesProjections as y,SnappingProjections as w,ValidationProjections as h}from"../../projections/index.js";import{SketchingProjections as S}from"../../sketching/sketching-projections.js";import{requireAccessService as x}from"../access/index.js";import{ComponentReader as C}from"./component-reader.js";import{DomainContext as j}from"./domain-context.js";let D=e.withTypes(),v=[],I={},P={role:"admin",data:I},M=e=>{if(null!==e)return e;throw Error("Cannot read the session role and data because the domain session context is not set. The session context is written into the domain runtime by the session lifecycle after authentication. Move this read into the loaded session lifecycle.")};export const createDomainContextSelectors=e=>{let{applicationType:A,getState:R,actions:E,specSelectors:T,accessSelectors:b,webComponentSelectors:k,domainDataSelectors:$,sessionContextSelectors:N,domainServicesSelectors:z,environmentSelectors:L,getExtensionSystems:V}=e,B="configurator"===A?T.selectConfiguratorSpec:T.selectAdminSpec,F="configurator"===A?b.selectConfiguratorRawAccessService:b.selectAdminRawAccessService,W=D.leaf(e=>e.domainContext[A]),_=D([W],e=>e.initializationContext),q=D([_],e=>{if(null===e)throw Error(`Domain lifecycle context is not available for ${A}! Read it from an active domain lifecycle.`);return e}),O=D([W],e=>e.executionMode),U=D([W],e=>e.isInitialized),G=D([B],e=>e.factory),H=D([B],e=>e.expressions),J=D([B],e=>e.actions),K=D([B],e=>e.actionImplementations),Q=D([J,K],o),X=D([B],e=>e.$entityReflections),Y=D([H,X],(e,t)=>i({expressions:e,$entityReflections:t})),Z=D([B],e=>e.modelVersion),ee=D([B],e=>e.aliasMap),et=D([B],e=>e.allowedRootEntityTypes),en=D([B],e=>e.entityReflections),eo=D([B],e=>e.migrate),ei=D([O,k.selectReadonly,F],(e,t,n)=>"finalize"===e?"finalize":x(A,n).accessInfo.viewMode||t?"read":"owner"),ea=D([F],e=>e?.configurationId??null),es="configurator"===A?N.selectSessionContext:D([],()=>P),er=D([es],e=>e?.role??null),ec=D([es],e=>e?.data??null),el=D([D.leaf(e=>e.loadedData)],e=>"configurator"===A?e.configuratorLoadedData:e.adminLoadedData),em=D([el],e=>e?.schemaIdentity??null),ed=D([el,G],(e,t)=>{if(null===e)return"coherent";let n=e.schemaIdentity;return void 0===n?"missing-stamp":n===t?"coherent":"schema-mismatch"}),eg=D([ea,er,ec,em,ed],(e,t,n,o,i)=>null===e||null===t||null===n||null===o||"coherent"!==i?null:{configurationId:e,role:t,schemaIdentity:o,sessionData:n}),ef=D([F,k.selectReadonly],(e,t)=>e?.accessInfo.viewMode===!0||t),ep=D([eg,_,U,ef],(e,t,n,o)=>{let i=null!==e&&null!==t&&n&&t.configurationId===e.configurationId&&t.role===e.role&&t.schemaIdentity===e.schemaIdentity&&t.sessionData===e.sessionData;return{identity:e,isCurrent:i,isViewMode:o}}),eu=D([B],e=>e.componentOptics),ey=D([eu],e=>(e=>{let t=new Map,n=new Map,o=new Map,i=new Map;for(let n of e)for(let e of n.entityTypes){let o=t.get(e);o||(o=new Map,t.set(e,o));let a=o.get(n.componentType);if(a||(a=new Map,o.set(n.componentType,a)),a.has(n.instanceName))throw Error(`Component instance ${n.instanceName} already exists for type ${n.componentType.name} in entity ${e}. This is likely a bug in the component definition! InstanceNames must be unique within an entity and component.`);if(a.set(n.instanceName,n),"dynamic"===n.kind){let t=i.get(e);t||(t=new Map,i.set(e,t));let o=t.get(n.componentType)??[],a=o.find(e=>{var t;return t=n.instanceName,e.startsWith(`${t}_`)||t.startsWith(`${e}_`)});if(a)throw Error(`Cannot register dynamic component instance ${n.instanceName} for component ${n.componentType.name} on entity ${e} because it overlaps with dynamic instance ${a}. Rename one dynamic instance so compound names cannot be ambiguous.`);t.set(n.componentType,[...o,n.instanceName])}}for(let[e,i]of t.entries()){n.set(e,new Set(i.keys()));let t=new Map;for(let[n,a]of(o.set(e,t),i.entries()))t.set(n,new Set(a.keys()))}return{opticMap:t,allComponentTypes:n,allComponentInstanceNames:o,dynamicInstanceNames:i}})(e)),ew=D([ey,Y,et],(e,t,n)=>({componentReaderIndexes:e,domainExpressions:t,allowedRootEntityTypes:n})),eh=D([B],e=>e.navigationStates),eS=D([B],e=>e.viewStates),ex="configurator"===A?D([T.selectConfiguratorSpec],e=>e.toolStates):D([],()=>v),eC="configurator"===A?D([T.selectConfiguratorSpec],e=>e.exportStates):D([],()=>v),ej="configurator"===A?D([T.selectConfiguratorSpec],e=>e.createTransformers):D([],()=>void 0),eD=D([el],e=>{if(null===e)throw Error(`Loaded data is not available for ${A}! Loaded data is written after the configuration fetch succeeds and before the domain context initialization starts.`);return e}),ev=D([eD,G],(e,t)=>n(t.validateAndMigrateState(e.initialEntities,e.modelVersion),e.rootEntityType)),eI="configurator"===A?$.selectConfiguratorFrontendData:$.selectAdminFrontendData,eP="configurator"===A?$.selectConfiguratorBackendData:$.selectAdminBackendData,eM="configurator"===A?$.selectConfiguratorPublishedData:$.selectAdminPublishedData,eA="configurator"===A?D([N.selectSessionContext],e=>M(e).role):D([],()=>"admin"),eR="configurator"===A?D([N.selectSessionContext],e=>M(e).data):D([],()=>I),eE=D([ea,ei,eA,eR,eD],(e,t,n,o,i)=>({configurationId:e,mode:t,role:n,schemaIdentity:i.schemaIdentity,sessionData:o})),eT=D([q],e=>e.mode),eb=D([q],e=>{let t=e.configurationId;if(null===t)throw Error(`Configuration id is not available for ${A}! Read it from an active interactive domain lifecycle.`);return t}),ek=D([q],e=>e.role),e$=D([q],e=>e.sessionData),eN=D([eT,ek,e$,eI,eP,eM,eo],(e,t,n,o,i,a,s)=>({mode:e,role:t,sessionData:n,frontendData:o,backendData:i,publishedData:a,migrate:s,domain:eL,componentReader:eV,positionProjections:eq,sketchingProjections:e_,collisionProjections:eO,constraintProjections:eG,snappingProjections:eU,projectedEntitiesProjections:eH})),ez={selectApplicationSpec:B,selectRawAccessService:F,selectDomainContextState:W,selectInitializationContext:_,selectActiveInitializationContext:q,selectExecutionMode:O,selectIsInitialized:U,selectFactory:G,selectSpecExpressions:H,select$SpecEntityReflections:X,selectDomainExpressions:Y,selectModelVersion:Z,selectAliasMap:ee,selectAllowedRootEntityTypes:et,selectEntityReflections:en,selectMigrate:eo,selectLatestMode:ei,selectLatestConfigurationId:ea,selectLatestSessionContext:es,selectLatestRoleOrNull:er,selectLatestSessionDataOrNull:ec,selectLatestSchemaIdentity:em,selectSchemaCoherence:ed,selectInitializationIdentity:eg,selectIsViewMode:ef,selectInitializationState:ep,selectComponentOptics:eu,selectComponentReaderIndexes:ey,selectStoreRuntimeDependencies:ew,selectNavigationStates:eh,selectViewStates:eS,selectToolStates:ex,selectExportStates:eC,selectCreateTransformers:ej,selectLatestLoadedData:el,selectLoadedData:eD,selectInitialDomainState:ev,selectFrontendData:eI,selectBackendData:eP,selectPublishedData:eM,selectLatestRole:eA,selectLatestSessionData:eR,selectNextInitializationContext:eE,selectActiveMode:eT,selectActiveConfigurationId:eb,selectActiveRole:ek,selectActiveSessionData:e$,selectExpressionContext:eN,getInitializationContext:()=>_(R()),getInitializationState:()=>ep(R()),getNextInitializationContext:()=>eE(R()),getLatestLoadedData:()=>el(R()),getSchemaCoherence:()=>ed(R()),getActiveConfigurationId:()=>eb(R()),getFactory:()=>G(R()),getDomainExpressions:()=>Y(R()),getActionDefinitions:()=>J(R()),getActionImplementations:()=>Q(R()),getModelVersion:()=>Z(R()),getAliasMap:()=>ee(R()),getAllowedRootEntityTypes:()=>et(R()),getEntityReflections:()=>en(R()),getMigrate:()=>eo(R()),getActiveMode:()=>eT(R()),getIsInitialized:()=>U(R()),getComponentReaderIndexes:()=>ey(R()),getStoreRuntimeDependencies:()=>ew(R()),getNavigationStates:()=>eh(R()),getViewStates:()=>eS(R()),getToolStates:()=>ex(R()),getExportStates:()=>eC(R()),getCreateTransformers:()=>ej(R()),getLoadedData:()=>eD(R()),getInitialDomainState:()=>ev(R()),getFrontendData:()=>eI(R()),getBackendData:()=>eP(R()),getPublishedData:()=>eM(R()),getActiveRole:()=>ek(R()),getActiveSessionData:()=>e$(R()),getDomain:()=>eL,getComponentReader:()=>eV,getCompositionProjections:()=>eB,getDimensionSystem:()=>eF,getValidationProjections:()=>eW,getSketchingProjections:()=>e_,getPositionProjections:()=>eq,getCollisionProjections:()=>eO,getSnappingProjections:()=>eU,getConstraintProjections:()=>eG,getProjectedEntitiesProjections:()=>eH,getStoreSystem:()=>eJ,getNavigationSystem:()=>eK,getUndoSystem:()=>eQ,getRecipeCookerSystem:()=>eX,getActionSystem:()=>eY,getBlenderProjections:()=>eZ,getExpressionContext:()=>eN(R()),getDomainSystems:function(){return e0},getDomainContext:function(){return e1}},eL=new t({selectors:ez}),eV=new C({selectors:ez}),eB=new f({selectors:ez}),eF=new s({selectors:ez}),eW=new h({selectors:ez}),e_=new S({selectors:ez}),eq=new u({selectors:ez}),eO=new g({selectors:ez}),eU=new w({selectors:ez}),eG=new p({selectors:ez}),eH=new y({selectors:ez}),eJ=new l({selectors:ez,domainServicesSelectors:z,environmentSelectors:L}),eK=new r({selectors:ez,domainServicesSelectors:z}),eQ=new m({selectors:ez}),eX=new c({selectors:ez}),eY=new a({selectors:ez}),eZ=new d({selectors:ez,domainServicesSelectors:z}),e0={domainContextSelectors:ez,domain:eL,componentReader:eV,compositionProjections:eB,blenderProjections:eZ,validationProjections:eW,storeSystem:eJ,navigationSystem:eK,dimensionSystem:eF,undoSystem:eQ,recipeCooker:eX,actionSystem:eY,sketchingProjections:e_,collisionProjections:eO,positionProjections:eq,snappingProjections:eU,projectedEntitiesProjections:eH,constraintProjections:eG},e1=new j({selectors:ez,actions:E,getExtensionSystems:V});return ez};
@@ -61,7 +61,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
61
61
  selectAdminPreset: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AnyProductPreset>;
62
62
  selectAdminModelVersion: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, number>;
63
63
  selectThemeOptions: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("@mui/material").ThemeOptions>;
64
- selectAssistant: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AssistantManifest | null>;
64
+ selectAssistant: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, Required<import("../index.js").AssistantManifest> | null>;
65
65
  selectConfiguratorFactory: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AnyDomainFactory>;
66
66
  selectAdminFactory: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AnyDomainFactory>;
67
67
  selectConfiguratorComponentOptics: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, readonly import("../index.js").AnyDomainComponentOptic[]>;
@@ -104,7 +104,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
104
104
  getAdminPreset: () => import("../index.js").AnyProductPreset;
105
105
  getAdminModelVersion: () => number;
106
106
  getThemeOptions: () => import("@mui/material").ThemeOptions;
107
- getAssistant: () => import("../index.js").AssistantManifest | null;
107
+ getAssistant: () => Required<import("../index.js").AssistantManifest> | null;
108
108
  getConfiguratorFactory: () => import("../index.js").AnyDomainFactory;
109
109
  getAdminFactory: () => import("../index.js").AnyDomainFactory;
110
110
  getConfiguratorComponentOptics: () => readonly import("../index.js").AnyDomainComponentOptic[];
@@ -398,6 +398,8 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
398
398
  getActiveConfigurationId: () => string;
399
399
  getFactory: () => import("../index.js").AnyDomainFactory;
400
400
  getDomainExpressions: () => import("../index.js").AnyExpressions;
401
+ getActionDefinitions: () => Readonly<Record<string, import("../index.js").ActionDefinition>>;
402
+ getActionImplementations: () => Readonly<Record<string, import("../index.js").AnyActionImplementation>>;
401
403
  getModelVersion: () => number;
402
404
  getAliasMap: () => import("../index.js").AnyAliasMap;
403
405
  getAllowedRootEntityTypes: () => import("../index.js").AnyAllowedRootEntityTypes;
@@ -438,6 +440,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
438
440
  getNavigationSystem: () => import("../domain-context/navigation-system/navigation-system.js").AnyNavigationSystem;
439
441
  getUndoSystem: () => import("../domain-context/undo-system.js").AnyUndoSystem;
440
442
  getRecipeCookerSystem: () => import("../index.js").AnyRecipeCookerSystem;
443
+ getActionSystem: () => import("../index.js").AnyActionSystem;
441
444
  getBlenderProjections: () => import("../index.js").AnyBlenderProjections;
442
445
  getExpressionContext: () => import("../index.js").AnyExpressionContext;
443
446
  getDomainSystems: () => import("../index.js").AnyDomainContextSystems;
@@ -504,6 +507,8 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
504
507
  getActiveConfigurationId: () => string;
505
508
  getFactory: () => import("../index.js").AnyDomainFactory;
506
509
  getDomainExpressions: () => import("../index.js").AnyExpressions;
510
+ getActionDefinitions: () => Readonly<Record<string, import("../index.js").ActionDefinition>>;
511
+ getActionImplementations: () => Readonly<Record<string, import("../index.js").AnyActionImplementation>>;
507
512
  getModelVersion: () => number;
508
513
  getAliasMap: () => import("../index.js").AnyAliasMap;
509
514
  getAllowedRootEntityTypes: () => import("../index.js").AnyAllowedRootEntityTypes;
@@ -544,6 +549,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
544
549
  getNavigationSystem: () => import("../domain-context/navigation-system/navigation-system.js").AnyNavigationSystem;
545
550
  getUndoSystem: () => import("../domain-context/undo-system.js").AnyUndoSystem;
546
551
  getRecipeCookerSystem: () => import("../index.js").AnyRecipeCookerSystem;
552
+ getActionSystem: () => import("../index.js").AnyActionSystem;
547
553
  getBlenderProjections: () => import("../index.js").AnyBlenderProjections;
548
554
  getExpressionContext: () => import("../index.js").AnyExpressionContext;
549
555
  getDomainSystems: () => import("../index.js").AnyDomainContextSystems;
@@ -645,7 +651,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
645
651
  selectAdminPreset: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AnyProductPreset>;
646
652
  selectAdminModelVersion: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, number>;
647
653
  selectThemeOptions: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("@mui/material").ThemeOptions>;
648
- selectAssistant: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AssistantManifest | null>;
654
+ selectAssistant: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, Required<import("../index.js").AssistantManifest> | null>;
649
655
  selectConfiguratorFactory: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AnyDomainFactory>;
650
656
  selectAdminFactory: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AnyDomainFactory>;
651
657
  selectConfiguratorComponentOptics: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, readonly import("../index.js").AnyDomainComponentOptic[]>;
@@ -688,7 +694,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
688
694
  getAdminPreset: () => import("../index.js").AnyProductPreset;
689
695
  getAdminModelVersion: () => number;
690
696
  getThemeOptions: () => import("@mui/material").ThemeOptions;
691
- getAssistant: () => import("../index.js").AssistantManifest | null;
697
+ getAssistant: () => Required<import("../index.js").AssistantManifest> | null;
692
698
  getConfiguratorFactory: () => import("../index.js").AnyDomainFactory;
693
699
  getAdminFactory: () => import("../index.js").AnyDomainFactory;
694
700
  getConfiguratorComponentOptics: () => readonly import("../index.js").AnyDomainComponentOptic[];
@@ -982,6 +988,8 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
982
988
  getActiveConfigurationId: () => string;
983
989
  getFactory: () => import("../index.js").AnyDomainFactory;
984
990
  getDomainExpressions: () => import("../index.js").AnyExpressions;
991
+ getActionDefinitions: () => Readonly<Record<string, import("../index.js").ActionDefinition>>;
992
+ getActionImplementations: () => Readonly<Record<string, import("../index.js").AnyActionImplementation>>;
985
993
  getModelVersion: () => number;
986
994
  getAliasMap: () => import("../index.js").AnyAliasMap;
987
995
  getAllowedRootEntityTypes: () => import("../index.js").AnyAllowedRootEntityTypes;
@@ -1022,6 +1030,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
1022
1030
  getNavigationSystem: () => import("../domain-context/navigation-system/navigation-system.js").AnyNavigationSystem;
1023
1031
  getUndoSystem: () => import("../domain-context/undo-system.js").AnyUndoSystem;
1024
1032
  getRecipeCookerSystem: () => import("../index.js").AnyRecipeCookerSystem;
1033
+ getActionSystem: () => import("../index.js").AnyActionSystem;
1025
1034
  getBlenderProjections: () => import("../index.js").AnyBlenderProjections;
1026
1035
  getExpressionContext: () => import("../index.js").AnyExpressionContext;
1027
1036
  getDomainSystems: () => import("../index.js").AnyDomainContextSystems;
@@ -1088,6 +1097,8 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
1088
1097
  getActiveConfigurationId: () => string;
1089
1098
  getFactory: () => import("../index.js").AnyDomainFactory;
1090
1099
  getDomainExpressions: () => import("../index.js").AnyExpressions;
1100
+ getActionDefinitions: () => Readonly<Record<string, import("../index.js").ActionDefinition>>;
1101
+ getActionImplementations: () => Readonly<Record<string, import("../index.js").AnyActionImplementation>>;
1091
1102
  getModelVersion: () => number;
1092
1103
  getAliasMap: () => import("../index.js").AnyAliasMap;
1093
1104
  getAllowedRootEntityTypes: () => import("../index.js").AnyAllowedRootEntityTypes;
@@ -1128,6 +1139,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
1128
1139
  getNavigationSystem: () => import("../domain-context/navigation-system/navigation-system.js").AnyNavigationSystem;
1129
1140
  getUndoSystem: () => import("../domain-context/undo-system.js").AnyUndoSystem;
1130
1141
  getRecipeCookerSystem: () => import("../index.js").AnyRecipeCookerSystem;
1142
+ getActionSystem: () => import("../index.js").AnyActionSystem;
1131
1143
  getBlenderProjections: () => import("../index.js").AnyBlenderProjections;
1132
1144
  getExpressionContext: () => import("../index.js").AnyExpressionContext;
1133
1145
  getDomainSystems: () => import("../index.js").AnyDomainContextSystems;
@@ -1 +1 @@
1
- import{SessionRole as e}from"@salsita-ai/contracts/api";let a=(e,a)=>{let t={};for(let n of e)t[n.name]=a?.[n.name]??n.name;return t},t=(e,a)=>{let t={},n=0;for(let i of e)if("entity"===i.type||"layout"===i.type)t[i.name]=a?.[i.name]??i.name;else{let e=`icon:${n}`;t[e]=a?.[e]??`${e}:${i.elements.length}`,n+=1}return t};export const initializeSpec=n=>{let i=n.adminDomain.presets[0];if(!i)throw Error("Cannot register application spec because admin preset is required.");return{version:n.version,dataConfig:n.dataSpec??null,chunks:n.chunks,publishedDataHash:n.publishedDataHash,initialPublishedData:n.initialPublishedData,canCreate:n.features?.acl?.canCreate??Object.values(e),enableAdminRelease:n.features?.enableAdminRelease??!1,textLanguages:n.domain.textLanguages??n.adminDomain.textLanguages??["en"],baseResourcesUrl:n.resources?.baseResourcesUrl??n.defaultEnvs?.resourcesUrl??"",configurator:{factory:n.domain.domainFactory,presets:n.domain.presets,aliasMap:n.domain.domainFactory.context.aliasMap,entityReflections:n.domain.domainFactory.context.entityReflections,$entityReflections:n.domain.domainFactory.context.$entityReflections,expressions:n.domain.domainFactory.context.expressions,allowedRootEntityTypes:n.domain.domainFactory.context.allowedRootEntityTypes,migrate:n.domain.domainFactory.context.migrate,componentOptics:n.domain.componentOptics,createTransformers:n.createTransformers??(()=>[]),navigationStates:n.navigation?.navigationStates??[],viewStates:n.navigation?.viewStates??[],toolStates:n.navigation?.toolStates??[],exportStates:n.navigation?.exportStates??[],handlers:n.handlers,handlerHashes:a(n.handlers),elements:n.elements,elementHashes:t(n.elements),appLoader:n.ui?.appLoader??"universal",preview:n.ui?.preview??"auto",alwaysExpand:n.ui?.alwaysExpand??!1,theme:n.ui?.theme??{},assistant:n.assistant??null,deploymentQueryDisabled:n.resources?.deploymentQueryDisabled??!1,prefetchTextureUrls:n.resources?.prefetchTextureUrls??[],modelVersion:n.domain.domainFactory.modelVersion},admin:{factory:n.adminDomain.domainFactory,modelVersion:n.adminDomain.domainFactory.modelVersion,aliasMap:n.adminDomain.domainFactory.context.aliasMap,entityReflections:n.adminDomain.domainFactory.context.entityReflections,$entityReflections:n.adminDomain.domainFactory.context.$entityReflections,expressions:n.adminDomain.domainFactory.context.expressions,allowedRootEntityTypes:n.adminDomain.domainFactory.context.allowedRootEntityTypes,migrate:n.adminDomain.domainFactory.context.migrate,preset:i,componentOptics:n.adminDomain.componentOptics,navigationStates:n.adminNavigation?.navigationStates??[],viewStates:n.adminNavigation?.viewStates??[],handlers:n.handlers,handlerHashes:a(n.handlers),elements:n.elements,elementHashes:t(n.elements)}}};
1
+ import{SessionRole as e}from"@salsita-ai/contracts/api";import{resolveElementModules as t}from"../../application/element-registration.js";import{resolveHandlerModules as a}from"../../application/handler-registration.js";import{resolveImportedTransformers as n,resolveTransformerModules as o}from"../../application/resolve-imported-transformers.js";import{resolveComponentOpticModules as i}from"../../core/index.js";export const initializeSpec=s=>{let r=s.adminDomain.presets[0];if(!r)throw Error("Cannot register application spec because admin preset is required.");let m=a(s.handlers),c=t(s.elements),d=(e=>{let t={};for(let a of e)t[a.name]=(void 0)??a.name;return t})(m),l=(e=>{let t={},a=0;for(let n of e)if("entity"===n.type||"layout"===n.type)t[n.name]=(void 0)??n.name;else{let e=`icon:${a}`;t[e]=(void 0)??`${e}:${n.elements.length}`,a+=1}return t})(c),p=o(s.transformers?.importedTransformers??[]),y=s.transformers?.specTransformers??[];return{version:s.version,dataConfig:s.dataSpec??null,chunks:s.chunks,publishedDataHash:s.publishedDataHash,initialPublishedData:s.initialPublishedData,canCreate:s.features?.acl?.canCreate??Object.values(e),enableAdminRelease:s.features?.enableAdminRelease??!1,textLanguages:s.domain.textLanguages??s.adminDomain.textLanguages??["en"],baseResourcesUrl:s.resources?.baseResourcesUrl??s.defaultEnvs?.resourcesUrl??"",configurator:{factory:s.domain.domainFactory,presets:s.domain.presets,aliasMap:s.domain.domainFactory.context.aliasMap,entityReflections:s.domain.domainFactory.context.entityReflections,$entityReflections:s.domain.domainFactory.context.$entityReflections,expressions:s.domain.domainFactory.context.expressions,actions:s.domain.domainFactory.context.actions,actionImplementations:s.domain.domainFactory.context.actionImplementations,allowedRootEntityTypes:s.domain.domainFactory.context.allowedRootEntityTypes,migrate:s.domain.domainFactory.context.migrate,componentOptics:i(s.domain.componentOptics),createTransformers:e=>n(p,y,e),navigationStates:s.navigation?.navigationStates??[],viewStates:s.navigation?.viewStates??[],toolStates:s.navigation?.toolStates??[],exportStates:s.navigation?.exportStates??[],handlers:m,handlerHashes:d,elements:c,elementHashes:l,appLoader:s.ui?.appLoader??"universal",preview:s.ui?.preview??"auto",alwaysExpand:s.ui?.alwaysExpand??!1,theme:s.ui?.theme??{},assistant:s.assistant??null,deploymentQueryDisabled:s.resources?.deploymentQueryDisabled??!1,prefetchTextureUrls:s.resources?.prefetchTextureUrls??[],modelVersion:s.domain.domainFactory.modelVersion},admin:{factory:s.adminDomain.domainFactory,modelVersion:s.adminDomain.domainFactory.modelVersion,aliasMap:s.adminDomain.domainFactory.context.aliasMap,entityReflections:s.adminDomain.domainFactory.context.entityReflections,$entityReflections:s.adminDomain.domainFactory.context.$entityReflections,expressions:s.adminDomain.domainFactory.context.expressions,actions:s.adminDomain.domainFactory.context.actions,actionImplementations:s.adminDomain.domainFactory.context.actionImplementations,allowedRootEntityTypes:s.adminDomain.domainFactory.context.allowedRootEntityTypes,migrate:s.adminDomain.domainFactory.context.migrate,preset:r,componentOptics:i(s.adminDomain.componentOptics),navigationStates:s.adminNavigation?.navigationStates??[],viewStates:s.adminNavigation?.viewStates??[],handlers:m,handlerHashes:d,elements:c,elementHashes:l}}};
@@ -22,7 +22,7 @@ export declare const createSpecSelectors: (context: Context) => {
22
22
  selectAdminPreset: import("@salsita-ai/common/utils").Selector<SpecSelectorState, import("../../index.js").AnyProductPreset>;
23
23
  selectAdminModelVersion: import("@salsita-ai/common/utils").Selector<SpecSelectorState, number>;
24
24
  selectThemeOptions: import("@salsita-ai/common/utils").Selector<SpecSelectorState, import("@mui/material").ThemeOptions>;
25
- selectAssistant: import("@salsita-ai/common/utils").Selector<SpecSelectorState, import("../../index.js").AssistantManifest | null>;
25
+ selectAssistant: import("@salsita-ai/common/utils").Selector<SpecSelectorState, Required<import("../../index.js").AssistantManifest> | null>;
26
26
  selectConfiguratorFactory: import("@salsita-ai/common/utils").Selector<SpecSelectorState, import("../../index.js").AnyDomainFactory>;
27
27
  selectAdminFactory: import("@salsita-ai/common/utils").Selector<SpecSelectorState, import("../../index.js").AnyDomainFactory>;
28
28
  selectConfiguratorComponentOptics: import("@salsita-ai/common/utils").Selector<SpecSelectorState, readonly import("../../index.js").AnyDomainComponentOptic[]>;
@@ -65,7 +65,7 @@ export declare const createSpecSelectors: (context: Context) => {
65
65
  getAdminPreset: () => import("../../index.js").AnyProductPreset;
66
66
  getAdminModelVersion: () => number;
67
67
  getThemeOptions: () => import("@mui/material").ThemeOptions;
68
- getAssistant: () => import("../../index.js").AssistantManifest | null;
68
+ getAssistant: () => Required<import("../../index.js").AssistantManifest> | null;
69
69
  getConfiguratorFactory: () => import("../../index.js").AnyDomainFactory;
70
70
  getAdminFactory: () => import("../../index.js").AnyDomainFactory;
71
71
  getConfiguratorComponentOptics: () => readonly import("../../index.js").AnyDomainComponentOptic[];
@@ -1 +1 @@
1
- import{createSelector as e}from"@salsita-ai/common/utils";import{systemElementRegistry as t}from"../../application/element-registration.js";export const createSpecSelectors=n=>{let{getState:a}=n,s=e.withTypes(),r=s([s.leaf(e=>e.spec)],e=>e),o=s([r],e=>e.version),l=s([r],e=>e.baseResourcesUrl),i=s([r],e=>e.configurator),g=s([r],e=>e.dataConfig),m=s([r],e=>e.chunks),p=s([r],e=>e.publishedDataHash),d=s([r],e=>e.initialPublishedData),c=s([r],e=>e.canCreate),u=s([r],e=>e.enableAdminRelease),y=s([r],e=>e.textLanguages),h=s([i],e=>e.modelVersion),f=s([r],e=>e.admin),C=s([f],e=>e.preset),A=s([f],e=>e.modelVersion),E=s([i],e=>e.theme),b=s([i],e=>e.assistant),H=s([i],e=>e.factory),x=s([f],e=>e.factory),D=s([i],e=>e.componentOptics),P=s([f],e=>e.componentOptics),S=s([i],e=>e.appLoader),w=s([i],e=>e.preview),O=s([i],e=>e.alwaysExpand),T=s([i],e=>e.presets),V=s([i],e=>e.deploymentQueryDisabled),L=s([i],e=>e.prefetchTextureUrls),R=s([i],e=>e.handlerHashes),U=s([i],e=>e.handlers),v=s([U,R],(e,t)=>({...(e=>{let t={},n={},a={};for(let s of e)"phoenix"===s.type&&(t[s.name]=s.handler),"system"===s.type&&(n[s.name]=s.handler),"system-async"===s.type&&(a[s.name]=s.handler);return{handlers:t,systemHandlers:n,systemAsyncHandlers:a}})(e),hashes:t})),k=s([i],e=>e.elementHashes),F=s([i],e=>e.elements),M=s([F,k],(e,n)=>({...(e=>{let n={},a={};for(let t of e)"layout"===t.type&&(n[t.name]=t.element),"entity"===t.type&&(a[t.name]=t.element);return{entityElements:{...t.entityElements,...a},layoutElements:{...t.layoutElements,...n}}})(e),hashes:n}));return{selectSpec:r,selectVersion:o,selectBaseResourcesUrl:l,selectConfiguratorSpec:i,selectConfiguratorModelVersion:h,selectAdminSpec:f,selectAdminPreset:C,selectAdminModelVersion:A,selectThemeOptions:E,selectAssistant:b,selectConfiguratorFactory:H,selectAdminFactory:x,selectConfiguratorComponentOptics:D,selectAdminComponentOptics:P,selectAppLoader:S,selectPreview:w,selectAlwaysExpand:O,selectPresetSeed:T,selectDeploymentQueryDisabled:V,selectPrefetchTextureUrls:L,selectTextLanguages:y,selectHandlerHashes:R,selectHandlers:U,selectHandlerSlots:v,selectElementHashes:k,selectElements:F,selectElementSlots:M,selectDataConfig:g,selectChunks:m,selectPublishedDataHash:p,selectInitialPublishedData:d,selectCanCreate:c,selectEnableAdminRelease:u,getVersion:()=>o(a()),getBaseResourcesUrl:()=>l(a()),getConfiguratorSpec:()=>i(a()),getConfiguratorModelVersion:()=>h(a()),getAdminSpec:()=>f(a()),getAdminPreset:()=>C(a()),getAdminModelVersion:()=>A(a()),getThemeOptions:()=>E(a()),getAssistant:()=>b(a()),getConfiguratorFactory:()=>H(a()),getAdminFactory:()=>x(a()),getConfiguratorComponentOptics:()=>D(a()),getAdminComponentOptics:()=>P(a()),getAppLoader:()=>S(a()),getPreview:()=>w(a()),getAlwaysExpand:()=>O(a()),getPresetSeed:()=>T(a()),getDeploymentQueryDisabled:()=>V(a()),getPrefetchTextureUrls:()=>L(a()),getTextLanguages:()=>y(a()),getHandlerHashes:()=>R(a()),getHandlers:()=>U(a()),getHandlerSlots:()=>v(a()),getElementHashes:()=>k(a()),getElements:()=>F(a()),getElementSlots:()=>M(a()),getDataConfig:()=>g(a()),getChunks:()=>m(a()),getPublishedDataHash:()=>p(a()),getInitialPublishedData:()=>d(a()),getCanCreate:()=>c(a()),getEnableAdminRelease:()=>u(a())}};
1
+ import{createSelector as e}from"@salsita-ai/common/utils";import{buildAssistantManifest as t}from"../../application/assistant/index.js";import{systemElementRegistry as n}from"../../application/element-registration.js";export const createSpecSelectors=a=>{let{getState:s}=a,r=e.withTypes(),o=r([r.leaf(e=>e.spec)],e=>e),l=r([o],e=>e.version),i=r([o],e=>e.baseResourcesUrl),m=r([o],e=>e.configurator),g=r([o],e=>e.dataConfig),p=r([o],e=>e.chunks),d=r([o],e=>e.publishedDataHash),c=r([o],e=>e.initialPublishedData),u=r([o],e=>e.canCreate),y=r([o],e=>e.enableAdminRelease),h=r([o],e=>e.textLanguages),f=r([m],e=>e.modelVersion),C=r([o],e=>e.admin),A=r([C],e=>e.preset),E=r([C],e=>e.modelVersion),b=r([m],e=>e.theme),x=r([m],e=>e.assistant),H=r([x],e=>e?t(e):null),D=r([m],e=>e.factory),P=r([C],e=>e.factory),S=r([m],e=>e.componentOptics),w=r([C],e=>e.componentOptics),O=r([m],e=>e.appLoader),T=r([m],e=>e.preview),V=r([m],e=>e.alwaysExpand),L=r([m],e=>e.presets),R=r([m],e=>e.deploymentQueryDisabled),U=r([m],e=>e.prefetchTextureUrls),v=r([m],e=>e.handlerHashes),j=r([m],e=>e.handlers),k=r([j,v],(e,t)=>({...(e=>{let t={},n={},a={};for(let s of e)"phoenix"===s.type&&(t[s.name]=s.handler),"system"===s.type&&(n[s.name]=s.handler),"system-async"===s.type&&(a[s.name]=s.handler);return{handlers:t,systemHandlers:n,systemAsyncHandlers:a}})(e),hashes:t})),F=r([m],e=>e.elementHashes),M=r([m],e=>e.elements),Q=r([M,F],(e,t)=>({...(e=>{let t={},a={};for(let n of e)"layout"===n.type&&(t[n.name]=n.element),"entity"===n.type&&(a[n.name]=n.element);return{entityElements:{...n.entityElements,...a},layoutElements:{...n.layoutElements,...t}}})(e),hashes:t}));return{selectSpec:o,selectVersion:l,selectBaseResourcesUrl:i,selectConfiguratorSpec:m,selectConfiguratorModelVersion:f,selectAdminSpec:C,selectAdminPreset:A,selectAdminModelVersion:E,selectThemeOptions:b,selectAssistant:H,selectConfiguratorFactory:D,selectAdminFactory:P,selectConfiguratorComponentOptics:S,selectAdminComponentOptics:w,selectAppLoader:O,selectPreview:T,selectAlwaysExpand:V,selectPresetSeed:L,selectDeploymentQueryDisabled:R,selectPrefetchTextureUrls:U,selectTextLanguages:h,selectHandlerHashes:v,selectHandlers:j,selectHandlerSlots:k,selectElementHashes:F,selectElements:M,selectElementSlots:Q,selectDataConfig:g,selectChunks:p,selectPublishedDataHash:d,selectInitialPublishedData:c,selectCanCreate:u,selectEnableAdminRelease:y,getVersion:()=>l(s()),getBaseResourcesUrl:()=>i(s()),getConfiguratorSpec:()=>m(s()),getConfiguratorModelVersion:()=>f(s()),getAdminSpec:()=>C(s()),getAdminPreset:()=>A(s()),getAdminModelVersion:()=>E(s()),getThemeOptions:()=>b(s()),getAssistant:()=>H(s()),getConfiguratorFactory:()=>D(s()),getAdminFactory:()=>P(s()),getConfiguratorComponentOptics:()=>S(s()),getAdminComponentOptics:()=>w(s()),getAppLoader:()=>O(s()),getPreview:()=>T(s()),getAlwaysExpand:()=>V(s()),getPresetSeed:()=>L(s()),getDeploymentQueryDisabled:()=>R(s()),getPrefetchTextureUrls:()=>U(s()),getTextLanguages:()=>h(s()),getHandlerHashes:()=>v(s()),getHandlers:()=>j(s()),getHandlerSlots:()=>k(s()),getElementHashes:()=>F(s()),getElements:()=>M(s()),getElementSlots:()=>Q(s()),getDataConfig:()=>g(s()),getChunks:()=>p(s()),getPublishedDataHash:()=>d(s()),getInitialPublishedData:()=>c(s()),getCanCreate:()=>u(s()),getEnableAdminRelease:()=>y(s())}};
@@ -1,8 +1,7 @@
1
1
  import type { ThemeOptions } from '@mui/material';
2
2
  import type { SessionRole } from '@salsita-ai/contracts/api';
3
- import type { AssistantManifest, ChunksSpec, DataSpec, ElementRegistration, HandlerRegistration } from '../../application/index.js';
4
- import type { AnyDomainComponentOptic } from '../../components/index.js';
5
- import type { Any$EntityReflections, AnyAliasMap, AnyAllowedRootEntityTypes, AnyDomainFactory, AnyEntityReflections, AnyExpressions, AnyProductPreset, DomainEntity, MigrateFunction } from '../../core/index.js';
3
+ import type { AssistantResolvedManifest, ChunksSpec, DataSpec, ElementRegistration, HandlerRegistration } from '../../application/index.js';
4
+ import type { ActionDefinitions, Any$EntityReflections, AnyActionImplementations, AnyAliasMap, AnyAllowedRootEntityTypes, AnyDomainComponentOptic, AnyDomainFactory, AnyEntityReflections, AnyExpressions, AnyProductPreset, DomainEntity, MigrateFunction } from '../../core/index.js';
6
5
  import type { AnyCreateTransformersFactory } from '../../domain-context/store-system/store-system.js';
7
6
  export interface ApplicationConfiguratorSpec {
8
7
  readonly modelVersion: number;
@@ -11,6 +10,13 @@ export interface ApplicationConfiguratorSpec {
11
10
  readonly entityReflections: AnyEntityReflections;
12
11
  readonly $entityReflections: Any$EntityReflections;
13
12
  readonly expressions: AnyExpressions;
13
+ /**
14
+ * The actions the application declares and their implementations. Seeded from the domain factory
15
+ * during mount; editor hot reload replaces the declarations when the spec changes and the
16
+ * implementations when a file in `src/actions/` changes.
17
+ */
18
+ readonly actions: ActionDefinitions;
19
+ readonly actionImplementations: AnyActionImplementations;
14
20
  readonly allowedRootEntityTypes: AnyAllowedRootEntityTypes;
15
21
  readonly migrate: MigrateFunction<DomainEntity<string>>;
16
22
  readonly presets: readonly AnyProductPreset[];
@@ -39,10 +45,10 @@ export interface ApplicationConfiguratorSpec {
39
45
  readonly alwaysExpand: boolean;
40
46
  readonly theme: ThemeOptions;
41
47
  /**
42
- * Experimental assistant manifest with its generated GraphQL SDL, or `null` when the application
48
+ * Resolved assistant manifest used to rebuild GraphQL SDL, or `null` when the application
43
49
  * spec declares no `assistant` section. Replaced by editor hot reload when the section changes.
44
50
  */
45
- readonly assistant: AssistantManifest | null;
51
+ readonly assistant: AssistantResolvedManifest | null;
46
52
  /**
47
53
  * When true, resource urls are not suffixed with the `?did=<deploymentId>` cache-busting
48
54
  * query — useful for demos serving local blob urls.
@@ -60,6 +66,13 @@ export interface ApplicationAdminSpec {
60
66
  readonly entityReflections: AnyEntityReflections;
61
67
  readonly $entityReflections: Any$EntityReflections;
62
68
  readonly expressions: AnyExpressions;
69
+ /**
70
+ * The actions the application declares and their implementations. Seeded from the domain factory
71
+ * during mount; editor hot reload replaces the declarations when the spec changes and the
72
+ * implementations when a file in `src/actions/` changes.
73
+ */
74
+ readonly actions: ActionDefinitions;
75
+ readonly actionImplementations: AnyActionImplementations;
63
76
  readonly allowedRootEntityTypes: AnyAllowedRootEntityTypes;
64
77
  readonly migrate: MigrateFunction<DomainEntity<string>>;
65
78
  readonly preset: AnyProductPreset;
@@ -1,33 +1,8 @@
1
1
  export * from './core/index.js';
2
- export { createConstantExpressionFactory } from './expressions/constant-expressions.js';
3
- export { createCustomExpressionFactory } from './expressions/custom-expression.js';
4
- export { createCustomInvariantFactory, type StaticallyDefinedViolations } from './invariants/custom-invariants.js';
5
- export { InvariantBuilder } from './invariants/invariants.js';
6
- export type { AliasedInvariants, Invariant } from './invariants/invariants.js';
7
- export type { Violation, ViolationSeverity, ViolationTypesOf$Entity, EntityViolation } from './invariants/violation.js';
8
- export { compareSeverity } from './invariants/violation.js';
9
- export { violationsComponent, type ViolationComponent, type ViolationComponentState, } from './invariants/violation-component.js';
10
2
  export { createRelationFactory, type Relation } from './relations/relation-factory.js';
11
3
  export { attachMultipleReferenceComponent, attachSingleReferenceComponent, referenceComponent, type ReferenceComponent, type ReferenceComponentState, } from './relations/reference-component.js';
12
4
  export { composedOfComponent, type ComposedOfComponentState, type ComposedOfComponent, } from './relations/composed-of.js';
13
5
  export { createSingleReferenceRead, createSingleReferenceWrite, createMultipleReferenceRead, createMultipleReferenceWrite, createSingleCompositionRead, createMultipleCompositionRead, createEmptyWrite, } from './relations/component-factories.js';
14
- export { systemVirtualEntityId } from './components/system-virtual-entity.js';
15
- export { navigationStateComponent, isNavigationComponentSnapshot, isSystemNavigationComponentSnapshot, type NavigationStateComponent, type NavigationStateComponentState, } from './components/navigation-state-component.js';
16
- export { hoverStateComponent, isHoverStateComponentSnapshot, isSystemHoverStateComponentSnapshot, type HoverStateComponent, type HoverStateComponentState, } from './components/hover-state-component.js';
17
- export { selectionStateComponent, isSelectionComponentSnapshot, isSystemSelectionComponentSnapshot, type SelectionStateComponent, type SelectionStateComponentState, } from './components/selection-state-component.js';
18
- export { viewStateComponent, isViewComponentSnapshot, isSystemViewComponentSnapshot, type ViewStateComponent, type ViewStateComponentState, } from './components/view-state-component.js';
19
- export { toolStateComponent, isToolStateComponentSnapshot, isSystemToolStateComponentSnapshot, type ToolStateComponent, type ToolStateComponentState, } from './components/tool-state-component.js';
20
- export { debugStateComponent, isDebugStateComponentSnapshot, isSystemDebugStateComponentSnapshot, type DebugStateComponent, type DebugStateComponentState, } from './components/debug-state-component.js';
21
- export { fullscreenStateComponent, isFullscreenStateComponentSnapshot, isSystemFullscreenStateComponentSnapshot, type FullscreenStateComponent, type FullscreenStateComponentState, } from './components/fullscreen-state-component.js';
22
- export { dragStateComponent, isDragStateComponentSnapshot, isSystemDragStateComponentSnapshot, type DragStateComponent, type DragStateComponentState, } from './components/drag-state-component.js';
23
- export { viewportStateComponent, isViewportStateComponentSnapshot, isSystemViewportStateComponentSnapshot, VIEWPORTS, type Viewport, type ViewportStateComponent, type ViewportStateComponentState, } from './components/viewport-state-component.js';
24
- export { type ComponentSystemFilterState, type ComponentSystemFilterProps, ComponentSystemFilterPropsSchema, getComponentSystemFilterState, CombinedComponentFilterSchema, type GradualComponentSystemFilter, type FilterMismatchReason, type IdOrWithId, } from './components/system-component-filter.js';
25
- export { ComponentSystemFilterSchema, type ComponentSystemFilter, type DeclarativeComponentSystemFilter, } from './components/legacy-filter.js';
26
- export type { OneComponentFilter, ManyComponentFilter, ComponentFilter, FilteredOutComponentSnapshot, FilteredOutFilterContext, } from './components/component-reader-types.js';
27
- export { DomainComponentOpticBuilder, type AnyDomainComponentOptic, type DomainComponentOptic, } from './components/domain-component-optic.js';
28
- export { groupComponentsByEntityIdAndName, isEqualGroupedComponentSnapshots, type GroupedComponentSnapshots, } from './components/group-components-by-entity-id-and-name.js';
29
- export { SystemComponentBuilder } from './components/system-component-builder.js';
30
- export { type DataUpdate, type StateUpdate, type ComponentModification, isComponentModificationOfType, type DomainEntityCreation, type EntityDeletion, type DomainEntityReplacement, type DomainEntityModification, type EphemeralRecordCreation, type EphemeralRecordDeletion, type EphemeralRecordModification, type DomainEntityStateDelta, systemUpdateFactory, type UpdateFactory, createUpdateFactory, } from './components/updates.js';
31
6
  export { DomainBuilder, type AliasedExpressions } from './domain-builder.js';
32
7
  export { memoEval, isMemoizedArray, isMemoizedObject, type MemoizedArray, type MemoizedObject, } from './utils/memo-eval.js';
33
8
  export { cloneEvalCache, getEvalCache, setEvalCache, type EvalCacheToken, createEvalCacheToken, } from './utils/eval-cache.js';
@@ -39,6 +14,7 @@ export * from './sketching/index.js';
39
14
  export * from './projections/index.js';
40
15
  export * from './admin-domain/index.js';
41
16
  export * from './application/index.js';
17
+ export { type ProjectModule, resolveActionModules, resolveExpressionModules } from './project-modules/index.js';
42
18
  export * from './scene/index.js';
43
19
  export { getAllPhxDefinitions } from './system-definitions.js';
44
20
  export { availableSystemComponents, componentsByName } from './available-system-components.js';
@@ -1 +1 @@
1
- export*from"./core/index.js";export{createConstantExpressionFactory}from"./expressions/constant-expressions.js";export{createCustomExpressionFactory}from"./expressions/custom-expression.js";export{createCustomInvariantFactory}from"./invariants/custom-invariants.js";export{InvariantBuilder}from"./invariants/invariants.js";export{compareSeverity}from"./invariants/violation.js";export{violationsComponent}from"./invariants/violation-component.js";export{createRelationFactory}from"./relations/relation-factory.js";export{attachMultipleReferenceComponent,attachSingleReferenceComponent,referenceComponent}from"./relations/reference-component.js";export{composedOfComponent}from"./relations/composed-of.js";export{createSingleReferenceRead,createSingleReferenceWrite,createMultipleReferenceRead,createMultipleReferenceWrite,createSingleCompositionRead,createMultipleCompositionRead,createEmptyWrite}from"./relations/component-factories.js";export{systemVirtualEntityId}from"./components/system-virtual-entity.js";export{navigationStateComponent,isNavigationComponentSnapshot,isSystemNavigationComponentSnapshot}from"./components/navigation-state-component.js";export{hoverStateComponent,isHoverStateComponentSnapshot,isSystemHoverStateComponentSnapshot}from"./components/hover-state-component.js";export{selectionStateComponent,isSelectionComponentSnapshot,isSystemSelectionComponentSnapshot}from"./components/selection-state-component.js";export{viewStateComponent,isViewComponentSnapshot,isSystemViewComponentSnapshot}from"./components/view-state-component.js";export{toolStateComponent,isToolStateComponentSnapshot,isSystemToolStateComponentSnapshot}from"./components/tool-state-component.js";export{debugStateComponent,isDebugStateComponentSnapshot,isSystemDebugStateComponentSnapshot}from"./components/debug-state-component.js";export{fullscreenStateComponent,isFullscreenStateComponentSnapshot,isSystemFullscreenStateComponentSnapshot}from"./components/fullscreen-state-component.js";export{dragStateComponent,isDragStateComponentSnapshot,isSystemDragStateComponentSnapshot}from"./components/drag-state-component.js";export{viewportStateComponent,isViewportStateComponentSnapshot,isSystemViewportStateComponentSnapshot,VIEWPORTS}from"./components/viewport-state-component.js";export{ComponentSystemFilterPropsSchema,getComponentSystemFilterState,CombinedComponentFilterSchema}from"./components/system-component-filter.js";export{ComponentSystemFilterSchema}from"./components/legacy-filter.js";export{DomainComponentOpticBuilder}from"./components/domain-component-optic.js";export{groupComponentsByEntityIdAndName,isEqualGroupedComponentSnapshots}from"./components/group-components-by-entity-id-and-name.js";export{SystemComponentBuilder}from"./components/system-component-builder.js";export{isComponentModificationOfType,systemUpdateFactory,createUpdateFactory}from"./components/updates.js";export{DomainBuilder}from"./domain-builder.js";export{memoEval,isMemoizedArray,isMemoizedObject}from"./utils/memo-eval.js";export{cloneEvalCache,getEvalCache,setEvalCache,createEvalCacheToken}from"./utils/eval-cache.js";export{areProfilerLabelsEnabled,setProfilerLabelsEnabled}from"./utils/profiler-label.js";export*from"./dimensions/index.js";export*from"./domain-context/index.js";export*from"./system-components/index.js";export*from"./sketching/index.js";export*from"./projections/index.js";export*from"./admin-domain/index.js";export*from"./application/index.js";export*from"./scene/index.js";export{getAllPhxDefinitions}from"./system-definitions.js";export{availableSystemComponents,componentsByName}from"./available-system-components.js";export*from"./mocks/index.js";export*from"./domain-runtime/index.js";
1
+ export*from"./core/index.js";export{createRelationFactory}from"./relations/relation-factory.js";export{attachMultipleReferenceComponent,attachSingleReferenceComponent,referenceComponent}from"./relations/reference-component.js";export{composedOfComponent}from"./relations/composed-of.js";export{createSingleReferenceRead,createSingleReferenceWrite,createMultipleReferenceRead,createMultipleReferenceWrite,createSingleCompositionRead,createMultipleCompositionRead,createEmptyWrite}from"./relations/component-factories.js";export{DomainBuilder}from"./domain-builder.js";export{memoEval,isMemoizedArray,isMemoizedObject}from"./utils/memo-eval.js";export{cloneEvalCache,getEvalCache,setEvalCache,createEvalCacheToken}from"./utils/eval-cache.js";export{areProfilerLabelsEnabled,setProfilerLabelsEnabled}from"./utils/profiler-label.js";export*from"./dimensions/index.js";export*from"./domain-context/index.js";export*from"./system-components/index.js";export*from"./sketching/index.js";export*from"./projections/index.js";export*from"./admin-domain/index.js";export*from"./application/index.js";export{resolveActionModules,resolveExpressionModules}from"./project-modules/index.js";export*from"./scene/index.js";export{getAllPhxDefinitions}from"./system-definitions.js";export{availableSystemComponents,componentsByName}from"./available-system-components.js";export*from"./mocks/index.js";export*from"./domain-runtime/index.js";
@@ -15,7 +15,7 @@ import type { RegistrableTransformer } from '../domain-context/index.js';
15
15
  *
16
16
  * Contributing no extension systems is the same shape webhook and finalize hosts run in.
17
17
  */
18
- export declare const createMockDomainRuntime: <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: {
18
+ export declare const createMockDomainRuntime: <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: {
19
19
  frontendData: FRONTEND_DATA;
20
20
  publishedData: PUBLISHED_DATA;
21
21
  sessionData: SESSION_DATA;
@@ -57,7 +57,7 @@ export declare const createMockDomainRuntime: <ENTITIES extends DomainEntity<str
57
57
  selectAdminPreset: import("@salsita-ai/common/utils").Selector<import("../index.js").SpecSelectorState, import("../index.js").AnyProductPreset>;
58
58
  selectAdminModelVersion: import("@salsita-ai/common/utils").Selector<import("../index.js").SpecSelectorState, number>;
59
59
  selectThemeOptions: import("@salsita-ai/common/utils").Selector<import("../index.js").SpecSelectorState, import("@mui/material").ThemeOptions>;
60
- selectAssistant: import("@salsita-ai/common/utils").Selector<import("../index.js").SpecSelectorState, import("../index.js").AssistantManifest | null>;
60
+ selectAssistant: import("@salsita-ai/common/utils").Selector<import("../index.js").SpecSelectorState, Required<import("../index.js").AssistantManifest> | null>;
61
61
  selectConfiguratorFactory: import("@salsita-ai/common/utils").Selector<import("../index.js").SpecSelectorState, import("../index.js").AnyDomainFactory>;
62
62
  selectAdminFactory: import("@salsita-ai/common/utils").Selector<import("../index.js").SpecSelectorState, import("../index.js").AnyDomainFactory>;
63
63
  selectConfiguratorComponentOptics: import("@salsita-ai/common/utils").Selector<import("../index.js").SpecSelectorState, readonly import("../index.js").AnyDomainComponentOptic[]>;
@@ -100,7 +100,7 @@ export declare const createMockDomainRuntime: <ENTITIES extends DomainEntity<str
100
100
  getAdminPreset: () => import("../index.js").AnyProductPreset;
101
101
  getAdminModelVersion: () => number;
102
102
  getThemeOptions: () => import("@mui/material").ThemeOptions;
103
- getAssistant: () => import("../index.js").AssistantManifest | null;
103
+ getAssistant: () => Required<import("../index.js").AssistantManifest> | null;
104
104
  getConfiguratorFactory: () => import("../index.js").AnyDomainFactory;
105
105
  getAdminFactory: () => import("../index.js").AnyDomainFactory;
106
106
  getConfiguratorComponentOptics: () => readonly import("../index.js").AnyDomainComponentOptic[];
@@ -394,6 +394,8 @@ export declare const createMockDomainRuntime: <ENTITIES extends DomainEntity<str
394
394
  getActiveConfigurationId: () => string;
395
395
  getFactory: () => import("../index.js").AnyDomainFactory;
396
396
  getDomainExpressions: () => import("../index.js").AnyExpressions;
397
+ getActionDefinitions: () => Readonly<Record<string, import("../index.js").ActionDefinition>>;
398
+ getActionImplementations: () => Readonly<Record<string, import("../index.js").AnyActionImplementation>>;
397
399
  getModelVersion: () => number;
398
400
  getAliasMap: () => import("../index.js").AnyAliasMap;
399
401
  getAllowedRootEntityTypes: () => import("../index.js").AnyAllowedRootEntityTypes;
@@ -434,6 +436,7 @@ export declare const createMockDomainRuntime: <ENTITIES extends DomainEntity<str
434
436
  getNavigationSystem: () => import("../domain-context/navigation-system/navigation-system.js").AnyNavigationSystem;
435
437
  getUndoSystem: () => import("../domain-context/undo-system.js").AnyUndoSystem;
436
438
  getRecipeCookerSystem: () => import("../index.js").AnyRecipeCookerSystem;
439
+ getActionSystem: () => import("../index.js").AnyActionSystem;
437
440
  getBlenderProjections: () => import("../index.js").AnyBlenderProjections;
438
441
  getExpressionContext: () => import("../index.js").AnyExpressionContext;
439
442
  getDomainSystems: () => import("../index.js").AnyDomainContextSystems;
@@ -500,6 +503,8 @@ export declare const createMockDomainRuntime: <ENTITIES extends DomainEntity<str
500
503
  getActiveConfigurationId: () => string;
501
504
  getFactory: () => import("../index.js").AnyDomainFactory;
502
505
  getDomainExpressions: () => import("../index.js").AnyExpressions;
506
+ getActionDefinitions: () => Readonly<Record<string, import("../index.js").ActionDefinition>>;
507
+ getActionImplementations: () => Readonly<Record<string, import("../index.js").AnyActionImplementation>>;
503
508
  getModelVersion: () => number;
504
509
  getAliasMap: () => import("../index.js").AnyAliasMap;
505
510
  getAllowedRootEntityTypes: () => import("../index.js").AnyAllowedRootEntityTypes;
@@ -540,6 +545,7 @@ export declare const createMockDomainRuntime: <ENTITIES extends DomainEntity<str
540
545
  getNavigationSystem: () => import("../domain-context/navigation-system/navigation-system.js").AnyNavigationSystem;
541
546
  getUndoSystem: () => import("../domain-context/undo-system.js").AnyUndoSystem;
542
547
  getRecipeCookerSystem: () => import("../index.js").AnyRecipeCookerSystem;
548
+ getActionSystem: () => import("../index.js").AnyActionSystem;
543
549
  getBlenderProjections: () => import("../index.js").AnyBlenderProjections;
544
550
  getExpressionContext: () => import("../index.js").AnyExpressionContext;
545
551
  getDomainSystems: () => import("../index.js").AnyDomainContextSystems;
@@ -1 +1 @@
1
- import{createDomainRuntime as o}from"../domain-runtime/index.js";import{createMockDomainRuntimeServices as e}from"./create-mock-domain-runtime-services.js";import{createMockSessionContext as t}from"./create-mock-session-context.js";export const createMockDomainRuntime=(i,a)=>{let{sessionData:n,mode:r,role:s}=a,c={...i,createTransformers:o=>a.transformers.map(e=>e.transformer.register(o,e.priority??1/0))},m=o({config:c,services:e()});return m.actions.sessionContext.setSessionContext(t(s,n)),m.actions.access.setConfiguratorAccessInfo({raw:"mock-access-token",viewMode:"read"===r,revisionId:void 0,configurationId:"mock"}),m.actions.domainData.setDomainData({publishedData:a.publishedData,frontendData:a.frontendData,backendData:a.backendData}),m.actions.loadedData.completeConfiguratorLoad({initialRevisionId:"mock-revision",initialEntities:a.entities,modelVersion:c.domain.domainFactory.modelVersion,rootEntityType:a.rootEntityType,schemaIdentity:c.domain.domainFactory}),m};
1
+ import{createDomainRuntime as o}from"../domain-runtime/index.js";import{createMockDomainRuntimeServices as t}from"./create-mock-domain-runtime-services.js";import{createMockSessionContext as e}from"./create-mock-session-context.js";export const createMockDomainRuntime=(a,i)=>{let{sessionData:n,mode:r,role:s}=i,c=o({config:a,services:t()}),m=c.getState().spec;return c.actions.spec.updateSpec({...m,configurator:{...m.configurator,createTransformers:o=>i.transformers.map(t=>t.transformer.register(o,t.priority??1/0))}}),c.actions.sessionContext.setSessionContext(e(s,n)),c.actions.access.setConfiguratorAccessInfo({raw:"mock-access-token",viewMode:"read"===r,revisionId:void 0,configurationId:"mock"}),c.actions.domainData.setDomainData({publishedData:i.publishedData,frontendData:i.frontendData,backendData:i.backendData}),c.actions.loadedData.completeConfiguratorLoad({initialRevisionId:"mock-revision",initialEntities:i.entities,modelVersion:a.domain.domainFactory.modelVersion,rootEntityType:i.rootEntityType,schemaIdentity:a.domain.domainFactory}),c};
@@ -0,0 +1 @@
1
+ export { type ExpressionModule, type ProjectModule, type ProjectModuleContract, SHARED_FOLDER_HINT, createContractError, isRecord, resolveActionModules, resolveExpressionModules, resolveListModule, } from './project-modules.js';
@@ -0,0 +1 @@
1
+ export{SHARED_FOLDER_HINT,createContractError,isRecord,resolveActionModules,resolveExpressionModules,resolveListModule}from"./project-modules.js";
@@ -0,0 +1,41 @@
1
+ import type { AnonymousExpression, AnyActionImplementations } from '../core/index.js';
2
+ /**
3
+ * The default export of one file in a project convention folder (`src/elements/`, `src/handlers/`,
4
+ * `src/expressions/`, …), paired with the project-relative path it was imported from.
5
+ *
6
+ * Generated barrels and the editor's hot reload hand project code to the SDK in this shape, without
7
+ * inspecting it. Each folder's resolver then checks the export against the folder's contract, so an
8
+ * invalid file fails with an error naming it instead of an unrelated crash later.
9
+ */
10
+ export interface ProjectModule {
11
+ readonly origin: string;
12
+ readonly exports: unknown;
13
+ }
14
+ /** The expressions of one validated expression file, keyed by entity type or alias, then by expression name. */
15
+ export interface ExpressionModule {
16
+ readonly origin: string;
17
+ readonly expressions: Readonly<Record<string, Readonly<Record<string, AnyAnonymousExpression>>>>;
18
+ }
19
+ type AnyAnonymousExpression = AnonymousExpression<any, any, any, any, any, any, unknown>;
20
+ /** What a convention folder requires of its files, in the words used by the contract error. */
21
+ export interface ProjectModuleContract {
22
+ readonly expected: string;
23
+ readonly fix: string;
24
+ }
25
+ export declare const SHARED_FOLDER_HINT = "or move the file to an underscore-prefixed folder such as src/_shared/ when it is shared code";
26
+ export declare const isRecord: (value: unknown) => value is Record<string, unknown>;
27
+ export declare const createContractError: (origin: string, contract: ProjectModuleContract, received: unknown) => Error;
28
+ /**
29
+ * Checks a file of a folder whose contract is one item or an array of them, and returns its items.
30
+ * The first item that fails the check is the value the error reports.
31
+ */
32
+ export declare const resolveListModule: <Item>(module: ProjectModule, contract: ProjectModuleContract, isItem: (value: unknown) => value is Item) => readonly Item[];
33
+ /**
34
+ * Validates the `src/expressions/` files and rejects an expression that two files define for the
35
+ * same entity type. Merging stays with the caller, because the domain builder and the editor expand
36
+ * aliases at different points; within one file the builder's own duplicate check applies.
37
+ */
38
+ export declare const resolveExpressionModules: (modules: readonly ProjectModule[], aliasMap: Readonly<Record<string, readonly string[]>>) => readonly ExpressionModule[];
39
+ /** Validates the `src/actions/` files and merges their implementations by action name; a later file wins. */
40
+ export declare const resolveActionModules: (modules: readonly ProjectModule[]) => AnyActionImplementations;
41
+ export {};
@@ -0,0 +1 @@
1
+ export const SHARED_FOLDER_HINT="or move the file to an underscore-prefixed folder such as src/_shared/ when it is shared code";let e={expected:"an object of expressions keyed by entity type or alias, then by expression name",fix:`Create it with phx.domain.implementCustomExpressions({ ... }) (phx.domain.admin.implementCustomExpressions({ ... }) under src/admin/), ${SHARED_FOLDER_HINT}.`},t={expected:"an object of action implementations keyed by action name",fix:`Create it with phx.domain.implementActions({ ... }), ${SHARED_FOLDER_HINT}.`};export const isRecord=e=>"object"==typeof e&&null!==e&&!Array.isArray(e);export const createContractError=(e,t,r)=>Error(`Invalid default export in ${e}: expected ${t.expected}, but got ${(e=>{if(void 0===e)return"nothing (the file has no default export)";if(null===e)return"null";if("function"==typeof e)return e.name?`the function "${e.name}"`:"an anonymous function";if(Array.isArray(e))return`an array of ${e.length} item(s)`;if(isRecord(e)){let t=Object.keys(e);return t.length>0?`an object with the keys ${t.join(", ")}`:"an empty object"}return`the ${typeof e} ${JSON.stringify(e)}`})(r)}. Every file in this folder is loaded by convention, so each one must default-export that shape. ${t.fix}`);export const resolveListModule=(e,t,r)=>{let o=Array.isArray(e.exports)?e.exports:[e.exports],n=[];for(let i of o){if(!r(i))throw createContractError(e.origin,t,i);n.push(i)}return n};let r=e=>isRecord(e)&&"function"==typeof e.evaluate,o=e=>isRecord(e)&&Object.values(e).every(r),n=e=>"function"==typeof e;export const resolveExpressionModules=(t,r)=>{let n=new Map;return t.map(t=>{let i;if(i=t.exports,!(isRecord(i)&&Object.values(i).every(o)))throw createContractError(t.origin,e,t.exports);for(let[e,o]of Object.entries(t.exports))for(let i of r[e]??[e])for(let e of Object.keys(o)){let r=`${i}.${e}`,o=n.get(r);if(void 0!==o&&o!==t.origin)throw Error(`Duplicate expression ${r}: it is defined in both ${o} and ${t.origin}, which would make its value depend on file order. Keep one definition and remove the other.`);n.set(r,t.origin)}return{origin:t.origin,expressions:t.exports}})};export const resolveActionModules=e=>e.reduce((e,r)=>{let o;if(o=r.exports,!(isRecord(o)&&Object.values(o).every(n)))throw createContractError(r.origin,t,r.exports);return{...e,...r.exports}},{});
@@ -1,5 +1,5 @@
1
1
  import type { BlenderLight } from '@salsita-ai/contracts/webhook';
2
- import type { DomainEntity, DomainState } from '../../core/index.js';
2
+ import { type DomainEntity, type DomainState } from '../../core/index.js';
3
3
  import type { DomainContextSelectors } from '../../domain-runtime/domain-context/index.js';
4
4
  import type { DomainServicesSelectors } from '../../domain-runtime/domain-services/index.js';
5
5
  import type { BlenderCamera, BlenderImageConfig, BlenderImageSize, BlenderSceneConfig, BlenderSceneObject, SceneEntityNode } from './types.js';
@@ -1 +1 @@
1
- import{Matrix4 as e}from"three";import{groupComponentsByEntityIdAndName as t}from"../../components/group-components-by-entity-id-and-name.js";import{resolveMorphTargetInfluences as n}from"../../scene/index.js";import{customSceneEntityComponent as r,hiddenEntityComponent as i,materialOverridePropertyTransitionComponent as o,materialOverrideTransformerComponent as s,sceneEntityAmbientLightComponent as a,sceneEntityBoxObjectComponent as c,sceneEntityDirectionalLightComponent as l,sceneEntityLocalMaterialOverrideComponent as m,sceneEntityMaterialOverrideComponent as d,sceneEntityObjectClipComponent as g,sceneEntityObjectComponent as p,sceneEntityObjectDecalComponent as h,sceneEntityObjectGroupComponent as f,sceneEntityObjectLocalMaterialOverrideComponent as y,sceneEntityObjectMaterialOverrideComponent as j,sceneEntityObjectPropertiesComponent as x,sceneEntityObjectRemoteMaterialOverrideComponent as u,sceneEntityObjectTextDecalComponent as S,sceneEntityObjectTransformerComponent as v,sceneEntityObjectTransmissiveMaterialOverrideComponent as b,sceneEntityPointLightComponent as _,sceneEntityPropertiesComponent as E,sceneEntityRectAreaLightComponent as O,sceneEntityRemoteMaterialOverrideComponent as N,sceneEntityRemoteObjectComponent as B,sceneEntitySpotLightComponent as I,sceneEntityTransmissiveMaterialOverrideComponent as w}from"../../system-components/index.js";import{createSceneObjectGroupTransformResolver as $}from"../common/scene-object-transform.js";import{reduceMaterialOverrides as L}from"../material-overrides.js";import{projectBlenderCamera as C}from"./camera.js";import{getBlenderObjectMaterialOverrides as T}from"./entity-overrides.js";import{projectBlenderLight as D}from"./lights.js";import{projectBlenderMaterialOverrides as P}from"./materials.js";import{getBlenderObjectTransform as M}from"./transforms.js";let U=e=>"fileUrl"in e,R=(e,t)=>`${e}_${t}`;export class BlenderProjections{_context;constructor(e){this._context=e}_readEntityComponents=(e,n)=>t(this._context.selectors.getComponentReader().readManyComponents({entityIds:[e],componentTypes:[r,i,E,B,p,c,N,m,d,w,x,f,j,y,u,b,S,h,v,g,s,o,_,I,l,a,O]},n)).get(e);_traverse=(e,t,r)=>{let i=this._readEntityComponents(e.id,r),o=[...i?.sceneEntityRemoteObject??[],...i?.sceneEntityObject??[],...i?.sceneEntityBoxObject??[]],s={worldMatrix:this._context.selectors.getPositionProjections().getEntityWorldMatrix(e.id,r,null)},a=(i?.hiddenEntity?.length??0)>0,c={id:e.id,parent:t,customEntity:i?.customSceneEntity?.[0]?.state.node,isHidden:a,overrideComponents:i,properties:s,sceneObjects:o.map(r=>{let o=i?.sceneEntityObjectProperties?.find(e=>e.componentInstance.instanceName===r.componentInstance.instanceName)?.state,s=i?.sceneEntityObjectTextDecal?.filter(e=>e.componentInstance.instanceName===r.componentInstance.instanceName),a=i?.sceneEntityObjectDecal?.filter(e=>e.componentInstance.instanceName===r.componentInstance.instanceName),c=i?.sceneEntityObjectTransformer?.filter(e=>e.state.target===r.componentInstance.instanceName),l=n(o?.morphTargetInfluences,t=>this._context.domainServicesSelectors.getLogger().warn(`Morph target "${t}" on object ${r.componentInstance.instanceName} of entity ${e.id} has scaleZero equal to scaleOne, so its influence is undefined and is exported to Blender as 0. Give scaleZero and scaleOne different values.`)),m=i?.sceneEntityObjectClip?.filter(e=>e.state.target===r.componentInstance.instanceName),{overrides:d,transformations:g,transitions:p}=T(i??{},t,r.componentInstance.instanceName);return{instanceName:r.componentInstance.instanceName,object:r.state,properties:o,morphTargetInfluences:l,textDecals:s,decals:a,materialOverrides:d,materialOverrideTransformations:g,materialOverridePropertyTransitions:p,objectTransformations:c,clips:m}}),nodes:[]};for(let t of e.nodes){let e=this._traverse(t.node,c,r);c.nodes.push(e)}return c};getSceneEntityTree=e=>{let{root:t}=this._context.selectors.getCompositionProjections().getTree(e);return this._traverse(t,null,e)};_getBlenderObjects=(t,n)=>{let r=this._context.selectors.getDimensionSystem().getDataDistanceUnit(t),i=[],o=t=>{if(t.isHidden)return;if(null!=t.customEntity)return void this._context.domainServicesSelectors.getLogger().warn(`Custom entity ${t.id} is not supported in Blender.`);let n=t.overrideComponents?.materialOverrideTransformer??[];n.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Entity ${t.id} has ${n.length} material override transformer(s), they are not applied in Blender. Set the final material values on the overrides active in the export state.`);let s=t.properties,a=$(t.overrideComponents?.sceneEntityObjectGroup?.map(e=>({instanceName:e.componentInstance.instanceName,state:e.state}))??[],r),c=new Map(t.sceneObjects.map(e=>[e,a(e.properties?.targetParentGroup,e.instanceName)]));for(let n of t.sceneObjects){let o=c.get(n);if(o?.visible===!1||n.properties?.visible===!1||n.properties?.rendered===!1)continue;if(!U(n.object)){this._context.domainServicesSelectors.getLogger().warn(`Object ${n.instanceName} is not a remote object, it will not be rendered in Blender.`);continue}n.textDecals&&n.textDecals.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Object ${n.instanceName} of entity ${t.id} has text decals, they are not rendered in Blender.`),n.decals&&n.decals.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Object ${n.instanceName} of entity ${t.id} has decals, they are not rendered in Blender.`),n.objectTransformations&&n.objectTransformations.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Object ${n.instanceName} of entity ${t.id} has object transformers, they are not applied in Blender. Express the transform through sceneEntityObjectProperties or a sceneEntityObjectGroup active in the export state.`),n.clips&&n.clips.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Object ${n.instanceName} of entity ${t.id} has animation clips, they are not played in Blender.`);let a=n.object,{position:l,scale:m,rotation:d}=M(o?new e().multiplyMatrices(s.worldMatrix,o.matrix):s.worldMatrix,n.properties,a.dimensionUnit??r,r),g=L(n.materialOverrides??[]),p=P({logger:this._context.domainServicesSelectors.getLogger(),materialOverrides:g,objectInstanceName:n.instanceName,transitions:n.materialOverridePropertyTransitions??[]});i.push({id:R(t.id,n.instanceName),objectName:a.objectName,position:l,scale:m,rotation:d,morphTargetInfluences:n.morphTargetInfluences,materialOverrides:p})}for(let e of t.nodes)o(e)};return o(n),i};getBlenderObjects=e=>this._getBlenderObjects(e,this.getSceneEntityTree(e));_prepareExportState=(e,t,n)=>{let r=this._context.selectors.getNavigationSystem().getExportUpdate(t,n),i=this._context.selectors.getStoreSystem().prepareStateEmission([r],e,"staged");if(!i.validity.valid)throw this._context.domainServicesSelectors.getLogger().error(`Setting an export state to ${t} for entity ${n} resulted in an invalid state! Check if there isn't a transformer corrupting the state as a reaction to setting the export state.`,i),Error("Exported state is invalid!");return i.state};_getBlenderLights=(e,t)=>{let n=this._context.selectors.getDimensionSystem().getDataDistanceUnit(e),r=[],i=e=>{if(e.isHidden||null!=e.customEntity)return;let t=e.overrideComponents,o=t?.sceneEntityAmbientLight??[];for(let i of(o.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Entity "${e.id}" has ${o.length} ambient light component(s) which are not exported to Blender because Blender has no equivalent ambient light type. Use HDRI lighting or additional point/area lights instead.`),[...t?.sceneEntityPointLight??[],...t?.sceneEntitySpotLight??[],...t?.sceneEntityDirectionalLight??[],...t?.sceneEntityRectAreaLight??[]])){let t=D({entityId:e.id,entityWorldMatrix:e.properties.worldMatrix,snapshot:i,distanceUnit:n});null!=t?r.push(t):this._context.domainServicesSelectors.getLogger().warn(`Unknown light component type for ${i.componentInstance.instanceName}`)}for(let t of e.nodes)i(t)};return i(t),r};getBlenderLights=e=>this._getBlenderLights(e,this.getSceneEntityTree(e));getBlenderCamera=(e,t)=>C(e,t,{componentReader:this._context.selectors.getComponentReader(),dimensionSystem:this._context.selectors.getDimensionSystem(),positionProjections:this._context.selectors.getPositionProjections()});_getBlenderSceneConfigFromState=e=>{let t=this.getSceneEntityTree(e),n=this._getBlenderObjects(e,t),r=this._getBlenderLights(e,t);return{renderedEntities:n.map(e=>({id:e.id,type:"default",objectName:e.objectName,position:e.position,scale:e.scale,rotation:e.rotation,materialOverrides:e.materialOverrides,morphTargetInfluences:e.morphTargetInfluences})),lights:r.length>0?r:void 0}};getBlenderSceneConfig=(e,t,n)=>{let r=this._prepareExportState(e,t,n);return this._getBlenderSceneConfigFromState(r)};getBlenderImageConfig=(e,t,n,r)=>{let i=this._prepareExportState(e,t,n);return{width:r.width,height:r.height,...this._getBlenderSceneConfigFromState(i),camera:this.getBlenderCamera(i,r)}}}
1
+ import{Matrix4 as e}from"three";import{groupComponentsByEntityIdAndName as t}from"../../core/index.js";import{resolveMorphTargetInfluences as n}from"../../scene/index.js";import{customSceneEntityComponent as r,hiddenEntityComponent as i,materialOverridePropertyTransitionComponent as o,materialOverrideTransformerComponent as s,sceneEntityAmbientLightComponent as a,sceneEntityBoxObjectComponent as c,sceneEntityDirectionalLightComponent as l,sceneEntityLocalMaterialOverrideComponent as m,sceneEntityMaterialOverrideComponent as d,sceneEntityObjectClipComponent as g,sceneEntityObjectComponent as p,sceneEntityObjectDecalComponent as h,sceneEntityObjectGroupComponent as f,sceneEntityObjectLocalMaterialOverrideComponent as y,sceneEntityObjectMaterialOverrideComponent as j,sceneEntityObjectPropertiesComponent as x,sceneEntityObjectRemoteMaterialOverrideComponent as S,sceneEntityObjectTextDecalComponent as u,sceneEntityObjectTransformerComponent as v,sceneEntityObjectTransmissiveMaterialOverrideComponent as b,sceneEntityPointLightComponent as _,sceneEntityPropertiesComponent as E,sceneEntityRectAreaLightComponent as O,sceneEntityRemoteMaterialOverrideComponent as N,sceneEntityRemoteObjectComponent as B,sceneEntitySpotLightComponent as I,sceneEntityTransmissiveMaterialOverrideComponent as w}from"../../system-components/index.js";import{createSceneObjectGroupTransformResolver as $}from"../common/scene-object-transform.js";import{reduceMaterialOverrides as L}from"../material-overrides.js";import{projectBlenderCamera as C}from"./camera.js";import{getBlenderObjectMaterialOverrides as T}from"./entity-overrides.js";import{projectBlenderLight as D}from"./lights.js";import{projectBlenderMaterialOverrides as P}from"./materials.js";import{getBlenderObjectTransform as M}from"./transforms.js";let U=e=>"fileUrl"in e,R=(e,t)=>`${e}_${t}`;export class BlenderProjections{_context;constructor(e){this._context=e}_readEntityComponents=(e,n)=>t(this._context.selectors.getComponentReader().readManyComponents({entityIds:[e],componentTypes:[r,i,E,B,p,c,N,m,d,w,x,f,j,y,S,b,u,h,v,g,s,o,_,I,l,a,O]},n)).get(e);_traverse=(e,t,r)=>{let i=this._readEntityComponents(e.id,r),o=[...i?.sceneEntityRemoteObject??[],...i?.sceneEntityObject??[],...i?.sceneEntityBoxObject??[]],s={worldMatrix:this._context.selectors.getPositionProjections().getEntityWorldMatrix(e.id,r,null)},a=(i?.hiddenEntity?.length??0)>0,c={id:e.id,parent:t,customEntity:i?.customSceneEntity?.[0]?.state.node,isHidden:a,overrideComponents:i,properties:s,sceneObjects:o.map(r=>{let o=i?.sceneEntityObjectProperties?.find(e=>e.componentInstance.instanceName===r.componentInstance.instanceName)?.state,s=i?.sceneEntityObjectTextDecal?.filter(e=>e.componentInstance.instanceName===r.componentInstance.instanceName),a=i?.sceneEntityObjectDecal?.filter(e=>e.componentInstance.instanceName===r.componentInstance.instanceName),c=i?.sceneEntityObjectTransformer?.filter(e=>e.state.target===r.componentInstance.instanceName),l=n(o?.morphTargetInfluences,t=>this._context.domainServicesSelectors.getLogger().warn(`Morph target "${t}" on object ${r.componentInstance.instanceName} of entity ${e.id} has scaleZero equal to scaleOne, so its influence is undefined and is exported to Blender as 0. Give scaleZero and scaleOne different values.`)),m=i?.sceneEntityObjectClip?.filter(e=>e.state.target===r.componentInstance.instanceName),{overrides:d,transformations:g,transitions:p}=T(i??{},t,r.componentInstance.instanceName);return{instanceName:r.componentInstance.instanceName,object:r.state,properties:o,morphTargetInfluences:l,textDecals:s,decals:a,materialOverrides:d,materialOverrideTransformations:g,materialOverridePropertyTransitions:p,objectTransformations:c,clips:m}}),nodes:[]};for(let t of e.nodes){let e=this._traverse(t.node,c,r);c.nodes.push(e)}return c};getSceneEntityTree=e=>{let{root:t}=this._context.selectors.getCompositionProjections().getTree(e);return this._traverse(t,null,e)};_getBlenderObjects=(t,n)=>{let r=this._context.selectors.getDimensionSystem().getDataDistanceUnit(t),i=[],o=t=>{if(t.isHidden)return;if(null!=t.customEntity)return void this._context.domainServicesSelectors.getLogger().warn(`Custom entity ${t.id} is not supported in Blender.`);let n=t.overrideComponents?.materialOverrideTransformer??[];n.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Entity ${t.id} has ${n.length} material override transformer(s), they are not applied in Blender. Set the final material values on the overrides active in the export state.`);let s=t.properties,a=$(t.overrideComponents?.sceneEntityObjectGroup?.map(e=>({instanceName:e.componentInstance.instanceName,state:e.state}))??[],r),c=new Map(t.sceneObjects.map(e=>[e,a(e.properties?.targetParentGroup,e.instanceName)]));for(let n of t.sceneObjects){let o=c.get(n);if(o?.visible===!1||n.properties?.visible===!1||n.properties?.rendered===!1)continue;if(!U(n.object)){this._context.domainServicesSelectors.getLogger().warn(`Object ${n.instanceName} is not a remote object, it will not be rendered in Blender.`);continue}n.textDecals&&n.textDecals.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Object ${n.instanceName} of entity ${t.id} has text decals, they are not rendered in Blender.`),n.decals&&n.decals.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Object ${n.instanceName} of entity ${t.id} has decals, they are not rendered in Blender.`),n.objectTransformations&&n.objectTransformations.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Object ${n.instanceName} of entity ${t.id} has object transformers, they are not applied in Blender. Express the transform through sceneEntityObjectProperties or a sceneEntityObjectGroup active in the export state.`),n.clips&&n.clips.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Object ${n.instanceName} of entity ${t.id} has animation clips, they are not played in Blender.`);let a=n.object,{position:l,scale:m,rotation:d}=M(o?new e().multiplyMatrices(s.worldMatrix,o.matrix):s.worldMatrix,n.properties,a.dimensionUnit??r,r),g=L(n.materialOverrides??[]),p=P({logger:this._context.domainServicesSelectors.getLogger(),materialOverrides:g,objectInstanceName:n.instanceName,transitions:n.materialOverridePropertyTransitions??[]});i.push({id:R(t.id,n.instanceName),objectName:a.objectName,position:l,scale:m,rotation:d,morphTargetInfluences:n.morphTargetInfluences,materialOverrides:p})}for(let e of t.nodes)o(e)};return o(n),i};getBlenderObjects=e=>this._getBlenderObjects(e,this.getSceneEntityTree(e));_prepareExportState=(e,t,n)=>{let r=this._context.selectors.getNavigationSystem().getExportUpdate(t,n),i=this._context.selectors.getStoreSystem().prepareStateEmission([r],e,"staged");if(!i.validity.valid)throw this._context.domainServicesSelectors.getLogger().error(`Setting an export state to ${t} for entity ${n} resulted in an invalid state! Check if there isn't a transformer corrupting the state as a reaction to setting the export state.`,i),Error("Exported state is invalid!");return i.state};_getBlenderLights=(e,t)=>{let n=this._context.selectors.getDimensionSystem().getDataDistanceUnit(e),r=[],i=e=>{if(e.isHidden||null!=e.customEntity)return;let t=e.overrideComponents,o=t?.sceneEntityAmbientLight??[];for(let i of(o.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Entity "${e.id}" has ${o.length} ambient light component(s) which are not exported to Blender because Blender has no equivalent ambient light type. Use HDRI lighting or additional point/area lights instead.`),[...t?.sceneEntityPointLight??[],...t?.sceneEntitySpotLight??[],...t?.sceneEntityDirectionalLight??[],...t?.sceneEntityRectAreaLight??[]])){let t=D({entityId:e.id,entityWorldMatrix:e.properties.worldMatrix,snapshot:i,distanceUnit:n});null!=t?r.push(t):this._context.domainServicesSelectors.getLogger().warn(`Unknown light component type for ${i.componentInstance.instanceName}`)}for(let t of e.nodes)i(t)};return i(t),r};getBlenderLights=e=>this._getBlenderLights(e,this.getSceneEntityTree(e));getBlenderCamera=(e,t)=>C(e,t,{componentReader:this._context.selectors.getComponentReader(),dimensionSystem:this._context.selectors.getDimensionSystem(),positionProjections:this._context.selectors.getPositionProjections()});_getBlenderSceneConfigFromState=e=>{let t=this.getSceneEntityTree(e),n=this._getBlenderObjects(e,t),r=this._getBlenderLights(e,t);return{renderedEntities:n.map(e=>({id:e.id,type:"default",objectName:e.objectName,position:e.position,scale:e.scale,rotation:e.rotation,materialOverrides:e.materialOverrides,morphTargetInfluences:e.morphTargetInfluences})),lights:r.length>0?r:void 0}};getBlenderSceneConfig=(e,t,n)=>{let r=this._prepareExportState(e,t,n);return this._getBlenderSceneConfigFromState(r)};getBlenderImageConfig=(e,t,n,r)=>{let i=this._prepareExportState(e,t,n);return{width:r.width,height:r.height,...this._getBlenderSceneConfigFromState(i),camera:this.getBlenderCamera(i,r)}}}