@salsita-ai/sdk 0.50.0-develop.61e519cfcc → 0.50.0-develop.662fa65a4c

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 (979) hide show
  1. package/README.md +19 -14
  2. package/dist/admin/default-admin-elements.d.ts +9 -0
  3. package/dist/admin/default-admin-elements.js +1 -0
  4. package/dist/admin/default-elements/built-in-entity-element.d.ts +10 -0
  5. package/dist/admin/default-elements/built-in-entity-element.js +1 -0
  6. package/dist/admin/default-elements/built-in-layout-element.d.ts +10 -0
  7. package/dist/admin/default-elements/built-in-layout-element.js +1 -0
  8. package/dist/admin/default-elements/index.d.ts +2 -0
  9. package/dist/admin/default-elements/index.js +1 -0
  10. package/dist/admin/index.d.ts +1 -0
  11. package/dist/admin/index.js +1 -1
  12. package/dist/application-spec/caching/content-diff.js +1 -1
  13. package/dist/application-spec/core/application-file.d.ts +0 -2
  14. package/dist/application-spec/core/application-file.js +1 -1
  15. package/dist/application-spec/errors/diagnostic-codes.d.ts +14 -0
  16. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  17. package/dist/application-spec/errors/diagnostic-messages.d.ts +15 -1
  18. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  19. package/dist/application-spec/generate-application/code/common/code-imports.js +1 -1
  20. package/dist/application-spec/generate-application/code/common/env-reader.js +2 -2
  21. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  22. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  23. package/dist/application-spec/generate-application/code/common/single-quoted-string.d.ts +6 -0
  24. package/dist/application-spec/generate-application/code/common/single-quoted-string.js +1 -0
  25. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  26. package/dist/application-spec/generate-application/code/generate-application-code.d.ts +3 -2
  27. package/dist/application-spec/generate-application/code/generate-application-code.js +1 -1
  28. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +15 -14
  29. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  30. package/dist/application-spec/generate-application/code/story-files.js +1 -1
  31. package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -0
  32. package/dist/application-spec/generate-application/code/templates/application-types.js +6 -6
  33. package/dist/application-spec/generate-application/code/templates/common/doc-comment.d.ts +2 -0
  34. package/dist/application-spec/generate-application/code/templates/common/doc-comment.js +1 -0
  35. package/dist/application-spec/generate-application/code/templates/common/format-property-key.d.ts +7 -0
  36. package/dist/application-spec/generate-application/code/templates/common/format-property-key.js +1 -0
  37. package/dist/application-spec/generate-application/code/templates/common/schema-to-type-string.js +3 -3
  38. package/dist/application-spec/generate-application/code/templates/configurator-globals.d.ts +2 -1
  39. package/dist/application-spec/generate-application/code/templates/configurator-globals.js +19 -6
  40. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +35 -0
  41. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +5 -0
  42. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.d.ts +1 -0
  43. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.js +1 -0
  44. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.d.ts +1 -1
  45. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +6 -6
  46. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +59 -63
  47. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +8 -0
  48. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  49. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-presets.js +1 -1
  50. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +13 -13
  51. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.d.ts +1 -1
  52. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.js +2 -2
  53. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +2 -1
  54. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  55. package/dist/application-spec/generate-application/code/templates/eslint-config.d.ts +5 -0
  56. package/dist/application-spec/generate-application/code/templates/eslint-config.js +4 -5
  57. package/dist/application-spec/generate-application/code/templates/frontend-config.js +3 -5
  58. package/dist/application-spec/generate-application/code/templates/gitignore.js +0 -3
  59. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.js +7 -7
  60. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.d.ts +12 -0
  61. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.js +7 -0
  62. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.d.ts +43 -0
  63. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +33 -0
  64. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +2 -0
  65. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  66. package/dist/application-spec/generate-application/code/templates/globals.js +24 -44
  67. package/dist/application-spec/generate-application/code/templates/index.d.ts +3 -2
  68. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  69. package/dist/application-spec/generate-application/code/templates/lingui-rc.d.ts +5 -0
  70. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +4 -4
  71. package/dist/application-spec/generate-application/code/templates/prettier-config.d.ts +5 -0
  72. package/dist/application-spec/generate-application/code/templates/prettier-config.js +4 -5
  73. package/dist/application-spec/generate-application/code/templates/root-tsconfig.d.ts +6 -0
  74. package/dist/application-spec/generate-application/code/templates/root-tsconfig.js +2 -0
  75. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  76. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +1 -1
  77. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +5 -5
  78. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +3 -3
  79. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  80. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +2 -2
  81. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +29 -10
  82. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -2
  83. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
  84. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
  85. package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
  86. package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
  87. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
  88. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
  89. package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
  90. package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
  91. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
  92. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
  93. package/dist/application-spec/generate-application/code/templates/story/phx-module.d.ts +8 -2
  94. package/dist/application-spec/generate-application/code/templates/story/phx-module.js +15 -3
  95. package/dist/application-spec/generate-application/code/templates/story/wrapper.d.ts +3 -0
  96. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -1
  97. package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
  98. package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
  99. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -3
  100. package/dist/application-spec/generate-application/implementations/phx-application-types.d.ts +25 -0
  101. package/dist/application-spec/generate-application/implementations/phx-application-types.js +1 -0
  102. package/dist/application-spec/generate-application/implementations/phx-domain.d.ts +36 -0
  103. package/dist/application-spec/generate-application/implementations/phx-domain.js +1 -0
  104. package/dist/application-spec/generate-application/implementations/phx-model.d.ts +24 -0
  105. package/dist/application-spec/generate-application/implementations/phx-model.js +1 -0
  106. package/dist/application-spec/generate-application/implementations/phx.d.ts +22 -0
  107. package/dist/application-spec/generate-application/implementations/phx.js +1 -0
  108. package/dist/application-spec/generate-application/index.d.ts +1 -0
  109. package/dist/application-spec/generate-application/index.js +1 -1
  110. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +6 -4
  111. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +1 -1
  112. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +7 -5
  113. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  114. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.d.ts +16 -0
  115. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.js +1 -0
  116. package/dist/application-spec/generate-application/runtime/admin-runtime/states-runtime.d.ts +2 -2
  117. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +24 -9
  118. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  119. package/dist/application-spec/generate-application/runtime/application-spec-slice.d.ts +70 -0
  120. package/dist/application-spec/generate-application/runtime/application-spec-slice.js +1 -0
  121. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +7 -5
  122. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +1 -1
  123. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +7 -6
  124. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  125. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.d.ts +16 -0
  126. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.js +1 -0
  127. package/dist/application-spec/generate-application/runtime/configurator-runtime/states-runtime.d.ts +2 -2
  128. package/dist/application-spec/generate-application/runtime/index.d.ts +8 -0
  129. package/dist/application-spec/generate-application/runtime/index.js +1 -0
  130. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +2 -2
  131. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +2 -2
  132. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +2 -1
  133. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  134. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +2 -1
  135. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +1 -1
  136. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +3 -0
  137. package/dist/application-spec/generate-application/runtime/sections/component-optic.js +1 -1
  138. package/dist/application-spec/generate-application/runtime/sections/data-runtime.d.ts +4 -4
  139. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +15 -6
  140. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  141. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +9 -5
  142. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  143. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +3 -1
  144. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.js +1 -1
  145. package/dist/application-spec/generate-application/runtime/sections/theme-runtime.d.ts +2 -2
  146. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +3 -3
  147. package/dist/application-spec/generate-application/runtime/spec-code/index.d.ts +2 -0
  148. package/dist/application-spec/generate-application/runtime/spec-code/index.js +1 -0
  149. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +18 -0
  150. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.js +1 -0
  151. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.d.ts +17 -0
  152. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.js +1 -0
  153. package/dist/application-spec/generate-application/runtime/spec-runtime.d.ts +21 -0
  154. package/dist/application-spec/generate-application/runtime/spec-runtime.js +1 -0
  155. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.d.ts +9 -0
  156. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.js +1 -0
  157. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.d.ts +8 -0
  158. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.js +1 -0
  159. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +28 -0
  160. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.js +1 -0
  161. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +5 -0
  162. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -0
  163. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +103 -0
  164. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -0
  165. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +40 -0
  166. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.js +1 -0
  167. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +28 -0
  168. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  169. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.d.ts +16 -0
  170. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.js +9 -0
  171. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts +9 -0
  172. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
  173. package/dist/application-spec/parse-application-files/raw-spec/parse-yaml-spec-file.js +1 -1
  174. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +33 -3
  175. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  176. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  177. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  178. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  179. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  180. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.d.ts +3 -0
  181. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js +1 -0
  182. package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +5 -0
  183. package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -0
  184. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.d.ts +6 -0
  185. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.js +1 -0
  186. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.d.ts +8 -0
  187. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.js +1 -0
  188. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts +10 -0
  189. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.js +1 -0
  190. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.d.ts +98 -0
  191. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.js +1 -0
  192. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts +13 -0
  193. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js +1 -0
  194. package/dist/application-spec/parse-application-files/spec/components/bindings/index.d.ts +2 -0
  195. package/dist/application-spec/parse-application-files/spec/components/bindings/index.js +1 -1
  196. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.d.ts +24 -0
  197. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js +1 -0
  198. package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts +8 -0
  199. package/dist/application-spec/parse-application-files/spec/components/component-state-type.js +1 -0
  200. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts +13 -0
  201. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js +1 -0
  202. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.d.ts +14 -0
  203. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.js +1 -0
  204. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +6 -0
  205. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  206. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +7 -4
  207. package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
  208. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +24 -0
  209. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -0
  210. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.d.ts +13 -0
  211. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.js +1 -0
  212. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
  213. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
  214. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +6 -2
  215. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  216. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +3 -1
  217. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  218. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +2 -2
  219. package/dist/application-spec/parse-application-files/spec/invariants/invariants.js +1 -1
  220. package/dist/application-spec/parse-application-files/spec/model/index.d.ts +1 -0
  221. package/dist/application-spec/parse-application-files/spec/model/index.js +1 -1
  222. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.d.ts +10 -0
  223. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.js +1 -0
  224. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.d.ts +9 -0
  225. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.js +1 -0
  226. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +4 -1
  227. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  228. package/dist/client/phoenix-api.d.ts +367 -0
  229. package/dist/configurator/ConfiguratorApp.js +1 -1
  230. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.d.ts +2 -0
  231. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.js +5 -0
  232. package/dist/configurator/app-loader-content/index.d.ts +1 -0
  233. package/dist/configurator/app-loader-content/index.js +1 -0
  234. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  235. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +11 -4
  236. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  237. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +33 -7
  238. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  239. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.d.ts +1 -1
  240. package/dist/configurator/application-runtime/extensions/systems/canvas-system.d.ts +8 -0
  241. package/dist/configurator/application-runtime/extensions/systems/canvas-system.js +1 -1
  242. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.d.ts +8 -0
  243. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.js +1 -0
  244. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.d.ts +23 -1
  245. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.js +1 -1
  246. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.d.ts +12 -0
  247. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.js +1 -0
  248. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +14 -1
  249. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  250. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +46 -5
  251. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  252. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.d.ts +14 -5
  253. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.js +1 -1
  254. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  255. package/dist/configurator/common/configurator-interface.d.ts +121 -6
  256. package/dist/configurator/common/configurator-interface.js +1 -1
  257. package/dist/configurator/common/index.d.ts +2 -2
  258. package/dist/configurator/common/index.js +1 -1
  259. package/dist/configurator/configuration-not-found-page/BuiltInConfigurationNotFoundPage.d.ts +5 -0
  260. package/dist/configurator/configuration-not-found-page/BuiltInConfigurationNotFoundPage.js +1 -0
  261. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +6 -0
  262. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -0
  263. package/dist/configurator/configuration-not-found-page/index.d.ts +2 -0
  264. package/dist/configurator/configuration-not-found-page/index.js +1 -0
  265. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +12 -0
  266. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -0
  267. package/dist/configurator/configurator-context/PresetSelectionProvider.js +1 -1
  268. package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
  269. package/dist/configurator/configurator-context/ViewportStateSync.d.ts +2 -2
  270. package/dist/configurator/configurator-context/ViewportStateSync.js +1 -1
  271. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +10 -0
  272. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +1 -1
  273. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.d.ts +6 -0
  274. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.js +1 -0
  275. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.d.ts +7 -0
  276. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.js +1 -0
  277. package/dist/configurator/configurator-error-page/index.d.ts +2 -0
  278. package/dist/configurator/configurator-error-page/index.js +1 -0
  279. package/dist/configurator/index.d.ts +10 -0
  280. package/dist/configurator/index.js +1 -1
  281. package/dist/configurator/pages/ConfiguratorErrorPage.d.ts +0 -1
  282. package/dist/configurator/pages/ConfiguratorErrorPage.js +1 -1
  283. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  284. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +3 -2
  285. package/dist/configurator/pages/DefaultNotAuthenticatedPage.d.ts +8 -0
  286. package/dist/configurator/pages/DefaultNotAuthenticatedPage.js +1 -0
  287. package/dist/configurator/pages/DefaultPresetUi.d.ts +7 -0
  288. package/dist/configurator/pages/DefaultPresetUi.js +1 -0
  289. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  290. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  291. package/dist/configurator/pages/PresetCreationErrorPage.d.ts +1 -1
  292. package/dist/configurator/pages/PresetCreationErrorPage.js +1 -1
  293. package/dist/configurator/pages/RootPage.js +1 -1
  294. package/dist/configurator/pages/default-configurator-elements.d.ts +7 -1
  295. package/dist/configurator/pages/default-configurator-elements.js +1 -1
  296. package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +10 -0
  297. package/dist/configurator/pages/default-elements/built-in-entity-element.js +1 -0
  298. package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +10 -0
  299. package/dist/configurator/pages/default-elements/built-in-layout-element.js +1 -0
  300. package/dist/configurator/pages/default-elements/domain-control-elements.d.ts +6 -0
  301. package/dist/configurator/pages/default-elements/domain-control-elements.js +1 -0
  302. package/dist/configurator/pages/default-elements/index.d.ts +5 -0
  303. package/dist/configurator/pages/default-elements/index.js +1 -0
  304. package/dist/configurator/pages/default-elements/recipe-panel-elements.d.ts +3 -0
  305. package/dist/configurator/pages/default-elements/recipe-panel-elements.js +1 -0
  306. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.d.ts +3 -0
  307. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.js +1 -0
  308. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.d.ts +3 -0
  309. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.js +1 -0
  310. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.d.ts +3 -0
  311. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.js +1 -0
  312. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.d.ts +3 -0
  313. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.js +1 -0
  314. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.d.ts +3 -0
  315. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.js +1 -0
  316. package/dist/configurator/pages/default-elements/scene-controls/index.d.ts +6 -0
  317. package/dist/configurator/pages/default-elements/scene-controls/index.js +1 -0
  318. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.d.ts +6 -0
  319. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.js +1 -0
  320. package/dist/configurator/pages/default-elements/sidebar-footer-elements.d.ts +7 -0
  321. package/dist/configurator/pages/default-elements/sidebar-footer-elements.js +1 -0
  322. package/dist/configurator/pages/default-elements/toolbar-elements.d.ts +7 -0
  323. package/dist/configurator/pages/default-elements/toolbar-elements.js +1 -0
  324. package/dist/configurator/pages/error-boundaries/GeneralErrorBoundary.js +1 -1
  325. package/dist/configurator/pages/error-boundaries/LoadingErrorBoundary.js +1 -1
  326. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.d.ts +4 -0
  327. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.js +1 -0
  328. package/dist/configurator/preset-screen-elements/PresetPageActionElement.d.ts +4 -0
  329. package/dist/configurator/preset-screen-elements/PresetPageActionElement.js +1 -0
  330. package/dist/configurator/preset-screen-elements/index.d.ts +2 -0
  331. package/dist/configurator/preset-screen-elements/index.js +1 -0
  332. package/dist/configurator/scene/index.d.ts +1 -0
  333. package/dist/configurator/scene/index.js +1 -1
  334. package/dist/configurator/scene/scene-controls/DeleteEntityFab.js +1 -1
  335. package/dist/configurator/scene/scene-controls/SelectionHotspot.js +1 -1
  336. package/dist/configurator/scene/scene-controls/ToolFab.d.ts +4 -0
  337. package/dist/configurator/scene/scene-controls/ToolFab.js +1 -1
  338. package/dist/configurator/scene/scene-controls/use-scene-control-tooltip.d.ts +2 -1
  339. package/dist/configurator/scene/scene-entity/scene-controls/SceneEntityHtmlHotspots.js +1 -1
  340. package/dist/configurator/toolbar-actions/index.d.ts +3 -0
  341. package/dist/configurator/toolbar-actions/index.js +1 -0
  342. package/dist/configurator/toolbar-actions/use-assistant-panel.d.ts +18 -0
  343. package/dist/configurator/toolbar-actions/use-assistant-panel.js +1 -0
  344. package/dist/configurator/toolbar-actions/use-measurements.d.ts +35 -0
  345. package/dist/configurator/toolbar-actions/use-measurements.js +1 -0
  346. package/dist/configurator/toolbar-actions/use-toolbar-actions.d.ts +100 -0
  347. package/dist/configurator/toolbar-actions/use-toolbar-actions.js +1 -0
  348. package/dist/configurator/toolbar-actions/use-toolbar-help.d.ts +7 -0
  349. package/dist/configurator/toolbar-actions/use-toolbar-help.js +1 -0
  350. package/dist/configurator/ui/assistant/AssistantChips.d.ts +3 -2
  351. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  352. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -2
  353. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  354. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  355. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  356. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +8 -0
  357. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -0
  358. package/dist/configurator/ui/assistant/alert/index.d.ts +2 -0
  359. package/dist/configurator/ui/assistant/alert/index.js +1 -0
  360. package/dist/configurator/ui/assistant/alert/remark-alerts.d.ts +10 -0
  361. package/dist/configurator/ui/assistant/alert/remark-alerts.js +1 -0
  362. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +1 -1
  363. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -1
  364. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +1 -1
  365. package/dist/configurator/ui/assistant/entity-link/index.d.ts +0 -1
  366. package/dist/configurator/ui/assistant/entity-link/index.js +1 -1
  367. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +19 -0
  368. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -0
  369. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +11 -0
  370. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -0
  371. package/dist/configurator/ui/assistant/form/describe-build-errors.d.ts +6 -0
  372. package/dist/configurator/ui/assistant/form/describe-build-errors.js +1 -0
  373. package/dist/configurator/ui/assistant/form/form-model.d.ts +37 -0
  374. package/dist/configurator/ui/assistant/form/form-model.js +1 -0
  375. package/dist/configurator/ui/assistant/form/form-state.d.ts +4 -0
  376. package/dist/configurator/ui/assistant/form/form-state.js +1 -0
  377. package/dist/configurator/ui/assistant/form/index.d.ts +4 -0
  378. package/dist/configurator/ui/assistant/form/index.js +1 -0
  379. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +10 -0
  380. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -0
  381. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +13 -0
  382. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -0
  383. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +3 -0
  384. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.js +1 -0
  385. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.d.ts +31 -0
  386. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.js +1 -0
  387. package/dist/configurator/ui/assistant/form/registry/form-element-definition.d.ts +16 -0
  388. package/dist/configurator/ui/assistant/form/registry/form-element-definition.js +1 -0
  389. package/dist/configurator/ui/assistant/form/registry/form-registry.d.ts +31 -0
  390. package/dist/configurator/ui/assistant/form/registry/form-registry.js +1 -0
  391. package/dist/configurator/ui/assistant/form/registry/index.d.ts +6 -0
  392. package/dist/configurator/ui/assistant/form/registry/index.js +1 -0
  393. package/dist/configurator/ui/assistant/form/registry/use-form-registry.d.ts +8 -0
  394. package/dist/configurator/ui/assistant/form/registry/use-form-registry.js +1 -0
  395. package/dist/configurator/ui/assistant/form-elements/FormCard.d.ts +9 -0
  396. package/dist/configurator/ui/assistant/form-elements/FormCard.js +1 -0
  397. package/dist/configurator/ui/assistant/form-elements/FormConfirm.d.ts +9 -0
  398. package/dist/configurator/ui/assistant/form-elements/FormConfirm.js +1 -0
  399. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +6 -0
  400. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -0
  401. package/dist/configurator/ui/assistant/form-elements/FormNumber.d.ts +9 -0
  402. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -0
  403. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +6 -0
  404. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -0
  405. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +6 -0
  406. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -0
  407. package/dist/configurator/ui/assistant/form-elements/FormSwatch.d.ts +10 -0
  408. package/dist/configurator/ui/assistant/form-elements/FormSwatch.js +1 -0
  409. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +6 -0
  410. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -0
  411. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.d.ts +10 -0
  412. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.js +1 -0
  413. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +38 -0
  414. package/dist/configurator/ui/assistant/form-elements/form-element-props.js +1 -0
  415. package/dist/configurator/ui/assistant/form-elements/index.d.ts +9 -0
  416. package/dist/configurator/ui/assistant/form-elements/index.js +1 -0
  417. package/dist/configurator/ui/assistant/index.d.ts +3 -0
  418. package/dist/configurator/ui/assistant/index.js +1 -1
  419. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +16 -0
  420. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -0
  421. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.d.ts +34 -0
  422. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.js +1 -0
  423. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.d.ts +25 -0
  424. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.js +1 -0
  425. package/dist/configurator/ui/assistant/reference-link/index.d.ts +3 -0
  426. package/dist/configurator/ui/assistant/reference-link/index.js +1 -0
  427. package/dist/configurator/ui/assistant/reference-link/reference-styles.d.ts +12 -0
  428. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -0
  429. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.d.ts +8 -0
  430. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.js +1 -0
  431. package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +9 -0
  432. package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -0
  433. package/dist/configurator/ui/assistant/resource-image/index.d.ts +3 -0
  434. package/dist/configurator/ui/assistant/resource-image/index.js +1 -0
  435. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +2 -0
  436. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -0
  437. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.d.ts +5 -0
  438. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.js +1 -0
  439. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +9 -0
  440. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -0
  441. package/dist/configurator/ui/assistant/screenshots/index.d.ts +2 -0
  442. package/dist/configurator/ui/assistant/screenshots/index.js +1 -0
  443. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +14 -0
  444. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -0
  445. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +4 -2
  446. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  447. package/dist/configurator/ui/assistant/thread-items.d.ts +8 -1
  448. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  449. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  450. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -1
  451. package/dist/configurator/ui/configurator-layout/slots/canvas/LayoutCanvas.js +1 -1
  452. package/dist/configurator/ui/configurator-layout/slots/canvas/SharedCanvas.js +1 -1
  453. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.d.ts +1 -1
  454. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.js +1 -1
  455. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  456. package/dist/configurator/ui/configurator-layout/slots/services/Services.js +1 -1
  457. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.d.ts +1 -1
  458. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.js +1 -1
  459. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.d.ts +5 -0
  460. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.js +1 -0
  461. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  462. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +1 -1
  463. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -1
  464. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +1 -1
  465. package/dist/configurator/ui/index.d.ts +1 -0
  466. package/dist/configurator/ui/index.js +1 -1
  467. package/dist/configurator/ui/legacy/layout/common/CommonFinalizeButton.js +1 -1
  468. package/dist/configurator/ui/legacy/layout/common/CommonSummaryButton.js +1 -1
  469. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  470. package/dist/configurator/ui/legacy/layout/common/ReactiveInterfaceLayout.js +1 -1
  471. package/dist/configurator/ui/legacy/layout/common/ResponsiveFinalizeButton.js +1 -1
  472. package/dist/configurator/ui/legacy/layout/common/SummaryReadLayout.js +1 -1
  473. package/dist/configurator/ui/legacy/layout/simple/SimpleOwnerLayout.js +1 -1
  474. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  475. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  476. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  477. package/dist/configurator/ui/legacy/layout/steps/StepsSidebarFooter.js +1 -1
  478. package/dist/configurator/ui/legacy/layout/tabs/TabsOwnerLayout.js +1 -1
  479. package/dist/configurator/ui/legacy/toolbar/common/DimensionUnitSelector.js +1 -1
  480. package/dist/configurator/ui/legacy/toolbar/common/MeasurementsIndicatorsSwitch.js +1 -1
  481. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/FullscreenToolbarAction.js +1 -1
  482. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/HelpToolbarAction.js +1 -1
  483. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/MeasurementsToolbarAction.js +1 -1
  484. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/UndoRedoToolbarGroup.js +1 -1
  485. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.d.ts +0 -7
  486. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.js +2 -6
  487. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -1
  488. package/dist/configurator/ui/phoenix-layout-elements/EnterFullscreenToolbarButton.js +1 -1
  489. package/dist/configurator/ui/phoenix-layout-elements/ExitFullscreenToolbarButton.js +1 -1
  490. package/dist/configurator/ui/phoenix-layout-elements/HelpToolbarButton.js +1 -1
  491. package/dist/configurator/ui/phoenix-layout-elements/LanguageMenuAction.js +1 -1
  492. package/dist/configurator/ui/phoenix-layout-elements/LanguageToolbarButton.js +1 -1
  493. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.d.ts +1 -0
  494. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.js +1 -1
  495. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.d.ts +1 -0
  496. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.js +1 -1
  497. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsMenuAction.js +1 -1
  498. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsToolbarButton.js +1 -1
  499. package/dist/configurator/ui/phoenix-layout-elements/RedoToolbarButton.js +1 -1
  500. package/dist/configurator/ui/phoenix-layout-elements/ShareToolbarButton.js +1 -1
  501. package/dist/configurator/ui/phoenix-layout-elements/UndoToolbarButton.js +1 -1
  502. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  503. package/dist/configurator/ui/phoenix-layout-elements/header/common/horizontal-tabs/DesktopHorizontalTabs.js +1 -1
  504. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.d.ts +1 -1
  505. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.js +1 -1
  506. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -8
  507. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  508. package/dist/configurator/ui/phoenix-layout-elements/index.d.ts +8 -1
  509. package/dist/configurator/ui/phoenix-layout-elements/index.js +1 -1
  510. package/dist/configurator/ui/phoenix-layout-elements/measurements/DimensionUnitSelector.js +1 -1
  511. package/dist/configurator/ui/phoenix-layout-elements/measurements/MeasurementsIndicatorsSwitch.js +1 -1
  512. package/dist/configurator/ui/phoenix-layout-elements/share/ShareModal.js +1 -1
  513. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.d.ts +7 -8
  514. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.js +1 -1
  515. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/BasicFinalizeButton.js +1 -1
  516. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/CustomFinalizeButton.js +1 -1
  517. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/EnterSummaryButton.js +1 -1
  518. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/FinalizeActions.js +1 -1
  519. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/NextStepButton.js +1 -1
  520. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  521. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  522. package/dist/configurator/ui/preset-layout/PresetUi.d.ts +4 -2
  523. package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
  524. package/dist/configurator/ui/preset-layout/index.d.ts +6 -1
  525. package/dist/configurator/ui/preset-layout/index.js +1 -1
  526. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.d.ts +10 -0
  527. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -0
  528. package/dist/configurator/ui/save-message-snackbars/index.d.ts +1 -0
  529. package/dist/configurator/ui/save-message-snackbars/index.js +1 -0
  530. package/dist/docs/complex-use-cases/focus-mode.mdx +2 -0
  531. package/dist/docs/controls/select-child-entity/cardselect.mdx +1 -0
  532. package/dist/docs/fabs/basic.mdx +6 -2
  533. package/dist/docs/index.json +95 -1
  534. package/dist/docs/integrations/webcomponent-api/basics.mdx +2 -0
  535. package/dist/docs/layouts/custom-layout.mdx +1473 -280
  536. package/dist/docs/layouts/gallery/ardent-compressor.mdx +3516 -0
  537. package/dist/docs/layouts/gallery/corvid-drone.mdx +3428 -0
  538. package/dist/docs/layouts/gallery/fenwick-window.mdx +2803 -0
  539. package/dist/docs/layouts/gallery/ferrule-bar-station.mdx +6567 -0
  540. package/dist/docs/layouts/gallery/kestrel-kettle.mdx +1858 -0
  541. package/dist/docs/layouts/gallery/nightjar-guitar.mdx +3683 -0
  542. package/dist/docs/layouts/gallery/sunfold-solar.mdx +2683 -0
  543. package/dist/docs/layouts/gallery/tidepool-aquascape.mdx +5031 -0
  544. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  545. package/dist/docs/other-features/error-5xx.mdx +1 -1
  546. package/dist/docs/other-features/navigation-hotspot.mdx +2 -0
  547. package/dist/docs/other-features/not-found-404.mdx +1 -1
  548. package/dist/docs/phoenix/clerk-sign-in.mdx +1 -1
  549. package/dist/docs/phoenix/components.mdx +6 -0
  550. package/dist/docs/phoenix/configurator-interface.mdx +223 -59
  551. package/dist/docs/phoenix/deployments.mdx +2 -6
  552. package/dist/docs/phoenix/domain-model.mdx +2 -0
  553. package/dist/docs/phoenix/finalization.mdx +1 -1
  554. package/dist/docs/phoenix/getting-started.mdx +6 -3
  555. package/dist/docs/phoenix/layout-slots.mdx +23 -23
  556. package/dist/docs/phoenix/localization.mdx +10 -6
  557. package/dist/docs/phoenix/migration-guide.mdx +24 -11
  558. package/dist/docs/phoenix/phoenix-cli.mdx +65 -20
  559. package/dist/docs/phoenix/project-structure.mdx +66 -32
  560. package/dist/docs/phoenix/quickstart.mdx +7 -7
  561. package/dist/docs/phoenix/sdk-builder-workflow.mdx +8 -8
  562. package/dist/docs/phoenix/sessions-and-access.mdx +2 -0
  563. package/dist/docs/phoenix/testing.mdx +8 -0
  564. package/dist/docs/phoenix/webhooks.mdx +4 -4
  565. package/dist/docs/selection-and-highlight/hotspots.mdx +2 -0
  566. package/dist/domain/application/assistant/assistant-manifest.d.ts +16 -1
  567. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +8 -1
  568. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  569. package/dist/domain/application/assistant/form/assistant-form-element-name.d.ts +11 -0
  570. package/dist/domain/application/assistant/form/assistant-form-element-name.js +8 -0
  571. package/dist/domain/application/assistant/form/assistant-form-elements.d.ts +174 -0
  572. package/dist/domain/application/assistant/form/assistant-form-elements.js +1 -0
  573. package/dist/domain/application/assistant/form/assistant-resource-path.d.ts +10 -0
  574. package/dist/domain/application/assistant/form/assistant-resource-path.js +1 -0
  575. package/dist/domain/application/assistant/form/index.d.ts +4 -0
  576. package/dist/domain/application/assistant/form/index.js +1 -0
  577. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  578. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  579. package/dist/domain/application/assistant/index.d.ts +2 -1
  580. package/dist/domain/application/assistant/index.js +1 -1
  581. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
  582. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +2 -0
  583. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
  584. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -1
  585. package/dist/domain/application/standard-properties.js +1 -1
  586. package/dist/domain/application/web-component-property.d.ts +3 -1
  587. package/dist/domain/application/web-component-property.js +1 -1
  588. package/dist/domain/available-system-components.d.ts +1 -1
  589. package/dist/domain/available-system-components.js +1 -1
  590. package/dist/domain/core/schema/extended-schema-validator.js +1 -1
  591. package/dist/domain/domain-builder.d.ts +9 -3
  592. package/dist/domain/domain-builder.js +1 -1
  593. package/dist/domain/domain-context/store-system/store-system.d.ts +5 -0
  594. package/dist/domain/domain-context/store-system/store-system.js +1 -1
  595. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +1 -0
  596. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  597. package/dist/domain/domain-runtime/domain-runtime.d.ts +26 -0
  598. package/dist/domain/domain-runtime/domain-runtime.js +1 -1
  599. package/dist/domain/domain-runtime/environment/types.d.ts +1 -1
  600. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +2 -0
  601. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -1
  602. package/dist/domain/domain-runtime/index.d.ts +1 -1
  603. package/dist/domain/domain-runtime/index.js +1 -1
  604. package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
  605. package/dist/domain/domain-runtime/spec/index.js +1 -1
  606. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  607. package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +27 -12
  608. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -1
  609. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.d.ts +12 -0
  610. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +1 -0
  611. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +3 -1
  612. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -1
  613. package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.d.ts +23 -0
  614. package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.js +1 -0
  615. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +3 -4
  616. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -1
  617. package/dist/domain/domain-runtime/spec/selectors.d.ts +3 -1
  618. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  619. package/dist/domain/domain-runtime/web-component/actions.d.ts +3 -0
  620. package/dist/domain/domain-runtime/web-component/actions.js +1 -1
  621. package/dist/domain/domain-runtime/web-component/initialize.d.ts +1 -0
  622. package/dist/domain/domain-runtime/web-component/initialize.js +1 -1
  623. package/dist/domain/domain-runtime/web-component/selectors.d.ts +2 -0
  624. package/dist/domain/domain-runtime/web-component/selectors.js +1 -1
  625. package/dist/domain/domain-runtime/web-component/types.d.ts +6 -3
  626. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +24 -0
  627. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -0
  628. package/dist/domain/extensions/{client-side-image.d.ts → export-images/client-side-image.d.ts} +2 -2
  629. package/dist/domain/extensions/export-images/client-side-image.js +1 -0
  630. package/dist/domain/extensions/export-images/index.d.ts +3 -0
  631. package/dist/domain/extensions/export-images/index.js +1 -0
  632. package/dist/domain/extensions/{save-template-thumbnail.d.ts → export-images/save-template-thumbnail.d.ts} +2 -2
  633. package/dist/domain/extensions/export-images/save-template-thumbnail.js +1 -0
  634. package/dist/domain/extensions/index.d.ts +1 -2
  635. package/dist/domain/extensions/index.js +1 -1
  636. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +9 -0
  637. package/dist/domain/system-components/child-entity-selection.js +1 -1
  638. package/dist/domain/system-components/common/scene-entity-control-schema.d.ts +3 -0
  639. package/dist/domain/system-components/common/scene-entity-control-schema.js +1 -1
  640. package/dist/editor/Editor.d.ts +7 -0
  641. package/dist/editor/Editor.js +1 -1
  642. package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
  643. package/dist/editor/domain-editors/apply-spec-update.d.ts +10 -2
  644. package/dist/editor/domain-editors/apply-spec-update.js +1 -1
  645. package/dist/editor/domain-editors/use-implementation-files.d.ts +6 -14
  646. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  647. package/dist/editor/mocks/CreateMockYaml.js +2 -2
  648. package/dist/editor/mocks/EditorMockContext.d.ts +2 -0
  649. package/dist/editor/mocks/EditorMockContext.js +1 -1
  650. package/dist/editor/screenshot/ScreenshotHandler.js +1 -1
  651. package/dist/globals/index.d.ts +2 -0
  652. package/dist/i18n/locales/cs/messages.js +1 -1
  653. package/dist/i18n/locales/da/messages.js +1 -1
  654. package/dist/i18n/locales/de/messages.js +1 -1
  655. package/dist/i18n/locales/de-AT/messages.js +1 -1
  656. package/dist/i18n/locales/en/messages.js +1 -1
  657. package/dist/i18n/locales/en-AU/messages.js +1 -1
  658. package/dist/i18n/locales/en-GB/messages.js +1 -1
  659. package/dist/i18n/locales/es/messages.js +1 -1
  660. package/dist/i18n/locales/fr/messages.js +1 -1
  661. package/dist/i18n/locales/hu/messages.js +1 -1
  662. package/dist/i18n/locales/it/messages.js +1 -1
  663. package/dist/i18n/locales/nl/messages.js +1 -1
  664. package/dist/i18n/locales/pl/messages.js +1 -1
  665. package/dist/i18n/locales/pt/messages.js +1 -1
  666. package/dist/i18n/locales/ro/messages.js +1 -1
  667. package/dist/i18n/locales/sk/messages.js +1 -1
  668. package/dist/i18n/locales/tr/messages.js +1 -1
  669. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  670. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  671. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +95 -80
  672. package/dist/legacy/domain-spec/spec/domain-spec.js +1 -1
  673. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  674. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  675. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  676. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +11 -5
  677. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +10 -11
  678. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +9 -10
  679. package/dist/phoenix/application-spec/application-spec-builder.d.ts +0 -2
  680. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  681. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +0 -2
  682. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  683. package/dist/phoenix/application-spec/generate-application-spec-story.js +2 -2
  684. package/dist/phoenix/application-spec/generate-project-files.d.ts +0 -2
  685. package/dist/phoenix/application-spec/project-files.js +1 -1
  686. package/dist/phoenix/bin.d.ts +2 -0
  687. package/dist/phoenix/bin.js +2 -0
  688. package/dist/phoenix/check-configs/built-in-eslint-config.d.ts +9 -0
  689. package/dist/phoenix/check-configs/built-in-eslint-config.js +1 -0
  690. package/dist/phoenix/check-configs/eslint-config.d.ts +10 -0
  691. package/dist/phoenix/check-configs/eslint-config.js +1 -0
  692. package/dist/phoenix/check-configs/index.d.ts +8 -0
  693. package/dist/phoenix/check-configs/index.js +1 -0
  694. package/dist/phoenix/check-configs/typescript-project.d.ts +5 -0
  695. package/dist/phoenix/check-configs/typescript-project.js +1 -0
  696. package/dist/phoenix/cli.d.ts +0 -1
  697. package/dist/phoenix/cli.js +1 -2
  698. package/dist/phoenix/commands/build.js +1 -1
  699. package/dist/phoenix/commands/check.js +1 -1
  700. package/dist/phoenix/commands/clean.js +1 -1
  701. package/dist/phoenix/commands/deploy.js +2 -2
  702. package/dist/phoenix/commands/deps/deps.d.ts +73 -0
  703. package/dist/phoenix/commands/deps/deps.js +3 -0
  704. package/dist/phoenix/commands/deps/index.d.ts +1 -0
  705. package/dist/phoenix/commands/deps/index.js +1 -0
  706. package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
  707. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
  708. package/dist/phoenix/commands/dev.js +5 -5
  709. package/dist/phoenix/commands/fix.js +1 -1
  710. package/dist/phoenix/commands/index.d.ts +1 -0
  711. package/dist/phoenix/commands/index.js +1 -1
  712. package/dist/phoenix/commands/init.d.ts +17 -5
  713. package/dist/phoenix/commands/init.js +1 -1
  714. package/dist/phoenix/commands/link.js +1 -1
  715. package/dist/phoenix/commands/prettier.js +1 -1
  716. package/dist/phoenix/commands/sync.js +1 -1
  717. package/dist/phoenix/commands/unlink.js +1 -1
  718. package/dist/phoenix/services/application-spec-project-watcher.d.ts +2 -2
  719. package/dist/phoenix/services/application-spec-project-watcher.js +2 -2
  720. package/dist/phoenix/services/lingui.d.ts +8 -0
  721. package/dist/phoenix/services/lingui.js +1 -1
  722. package/dist/phoenix/services/swc.js +1 -1
  723. package/dist/phoenix/services/vite-config.js +1 -1
  724. package/dist/phoenix/utils/index.d.ts +4 -2
  725. package/dist/phoenix/utils/index.js +1 -1
  726. package/dist/phoenix/utils/node-version/index.d.ts +1 -0
  727. package/dist/phoenix/utils/node-version/index.js +1 -0
  728. package/dist/phoenix/utils/node-version/supported-node-version.d.ts +12 -0
  729. package/dist/phoenix/utils/node-version/supported-node-version.js +4 -0
  730. package/dist/phoenix/utils/package-info.d.ts +0 -9
  731. package/dist/phoenix/utils/package-info.js +1 -1
  732. package/dist/phoenix/utils/package-manager/index.d.ts +2 -0
  733. package/dist/phoenix/utils/package-manager/index.js +1 -0
  734. package/dist/phoenix/utils/package-manager/package-manager-commands.d.ts +19 -0
  735. package/dist/phoenix/utils/package-manager/package-manager-commands.js +1 -0
  736. package/dist/phoenix/utils/package-manager/pnpm-project.d.ts +9 -0
  737. package/dist/phoenix/utils/package-manager/pnpm-project.js +1 -0
  738. package/dist/phoenix/utils/run-command.d.ts +11 -0
  739. package/dist/phoenix/utils/run-command.js +1 -1
  740. package/dist/phoenix/utils/sdk-tool/index.d.ts +1 -0
  741. package/dist/phoenix/utils/sdk-tool/index.js +1 -0
  742. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.d.ts +15 -0
  743. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.js +1 -0
  744. package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.d.ts +4 -0
  745. package/dist/react-sdk/application-runtime/common-services/analytics/index.d.ts +1 -0
  746. package/dist/react-sdk/application-runtime/common-services/analytics/index.js +1 -1
  747. package/dist/react-sdk/application-runtime/hooks/index.d.ts +2 -0
  748. package/dist/react-sdk/application-runtime/hooks/index.js +1 -1
  749. package/dist/react-sdk/application-runtime/hooks/loading/index.d.ts +5 -0
  750. package/dist/react-sdk/application-runtime/hooks/loading/index.js +1 -0
  751. package/dist/react-sdk/application-runtime/hooks/loading/loader-host-context.d.ts +11 -0
  752. package/dist/react-sdk/application-runtime/hooks/loading/loader-host-context.js +1 -0
  753. package/dist/react-sdk/application-runtime/hooks/loading/use-is-awaiting-loading-phase.d.ts +8 -0
  754. package/dist/react-sdk/application-runtime/hooks/loading/use-is-awaiting-loading-phase.js +1 -0
  755. package/dist/react-sdk/application-runtime/hooks/loading/use-is-loader-hosted.d.ts +7 -0
  756. package/dist/react-sdk/application-runtime/hooks/loading/use-is-loader-hosted.js +1 -0
  757. package/dist/react-sdk/application-runtime/hooks/loading/use-loading-actions.d.ts +9 -0
  758. package/dist/react-sdk/application-runtime/hooks/loading/use-loading-actions.js +1 -0
  759. package/dist/react-sdk/application-runtime/hooks/loading/use-loading-application.d.ts +24 -0
  760. package/dist/react-sdk/application-runtime/hooks/loading/use-loading-application.js +1 -0
  761. package/dist/react-sdk/application-runtime/hooks/responsive/index.d.ts +3 -0
  762. package/dist/react-sdk/application-runtime/hooks/responsive/index.js +1 -0
  763. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.d.ts +9 -0
  764. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.js +1 -0
  765. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.d.ts +26 -0
  766. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.js +1 -0
  767. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.d.ts +10 -0
  768. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.js +1 -0
  769. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.d.ts +24 -0
  770. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.js +1 -0
  771. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +5 -0
  772. package/dist/react-sdk/application-runtime/hooks/use-access-service.js +1 -1
  773. package/dist/react-sdk/application-runtime/hooks/use-phoenix-element-slots.d.ts +2 -1
  774. package/dist/react-sdk/application-runtime/hooks/use-web-component-readonly-sync.d.ts +4 -11
  775. package/dist/react-sdk/application-runtime/hooks/use-web-component-readonly-sync.js +1 -1
  776. package/dist/react-sdk/application-runtime/hooks/use-web-component.d.ts +5 -0
  777. package/dist/react-sdk/application-runtime/hooks/use-web-component.js +1 -1
  778. package/dist/react-sdk/application-runtime/host-properties/actions.d.ts +15 -0
  779. package/dist/react-sdk/application-runtime/host-properties/actions.js +1 -0
  780. package/dist/react-sdk/application-runtime/host-properties/connect-host-properties.d.ts +30 -0
  781. package/dist/react-sdk/application-runtime/host-properties/connect-host-properties.js +1 -0
  782. package/dist/react-sdk/application-runtime/host-properties/domain-host-properties.d.ts +7 -0
  783. package/dist/react-sdk/application-runtime/host-properties/domain-host-properties.js +1 -0
  784. package/dist/react-sdk/application-runtime/host-properties/host-property-descriptors.d.ts +21 -0
  785. package/dist/react-sdk/application-runtime/host-properties/host-property-descriptors.js +1 -0
  786. package/dist/react-sdk/application-runtime/host-properties/host-property-scopes.d.ts +42 -0
  787. package/dist/react-sdk/application-runtime/host-properties/host-property-scopes.js +1 -0
  788. package/dist/react-sdk/application-runtime/host-properties/index.d.ts +8 -0
  789. package/dist/react-sdk/application-runtime/host-properties/index.js +1 -0
  790. package/dist/react-sdk/application-runtime/host-properties/initialize.d.ts +7 -0
  791. package/dist/react-sdk/application-runtime/host-properties/initialize.js +1 -0
  792. package/dist/react-sdk/application-runtime/host-properties/selectors.d.ts +54 -0
  793. package/dist/react-sdk/application-runtime/host-properties/selectors.js +1 -0
  794. package/dist/react-sdk/application-runtime/host-properties/types.d.ts +18 -0
  795. package/dist/react-sdk/application-runtime/host-properties/types.js +1 -0
  796. package/dist/react-sdk/application-runtime/index.d.ts +3 -0
  797. package/dist/react-sdk/application-runtime/integration/initialize.d.ts +7 -6
  798. package/dist/react-sdk/application-runtime/integration/initialize.js +1 -1
  799. package/dist/react-sdk/application-runtime/integration/selectors.d.ts +11 -2
  800. package/dist/react-sdk/application-runtime/integration/selectors.js +1 -1
  801. package/dist/react-sdk/application-runtime/integration/types.d.ts +5 -2
  802. package/dist/react-sdk/application-runtime/loading/actions.d.ts +45 -0
  803. package/dist/react-sdk/application-runtime/loading/actions.js +1 -0
  804. package/dist/react-sdk/application-runtime/loading/index.d.ts +4 -0
  805. package/dist/react-sdk/application-runtime/loading/index.js +1 -0
  806. package/dist/react-sdk/application-runtime/loading/initialize.d.ts +3 -0
  807. package/dist/react-sdk/application-runtime/loading/initialize.js +1 -0
  808. package/dist/react-sdk/application-runtime/loading/selectors.d.ts +18 -0
  809. package/dist/react-sdk/application-runtime/loading/selectors.js +1 -0
  810. package/dist/react-sdk/application-runtime/loading/types.d.ts +59 -0
  811. package/dist/react-sdk/application-runtime/loading/types.js +1 -0
  812. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  813. package/dist/react-sdk/application-runtime/provider/ApplicationRuntime.d.ts +6 -0
  814. package/dist/react-sdk/application-runtime/provider/ApplicationRuntime.js +1 -1
  815. package/dist/react-sdk/application-runtime/provider/ApplicationType.d.ts +7 -0
  816. package/dist/react-sdk/application-runtime/provider/ApplicationType.js +1 -1
  817. package/dist/react-sdk/application-runtime/responsive/actions.d.ts +47 -0
  818. package/dist/react-sdk/application-runtime/responsive/actions.js +1 -0
  819. package/dist/react-sdk/application-runtime/responsive/index.d.ts +4 -0
  820. package/dist/react-sdk/application-runtime/responsive/index.js +1 -0
  821. package/dist/react-sdk/application-runtime/responsive/initialize.d.ts +3 -0
  822. package/dist/react-sdk/application-runtime/responsive/initialize.js +1 -0
  823. package/dist/react-sdk/application-runtime/responsive/selectors.d.ts +20 -0
  824. package/dist/react-sdk/application-runtime/responsive/selectors.js +1 -0
  825. package/dist/react-sdk/application-runtime/responsive/types.d.ts +104 -0
  826. package/dist/react-sdk/application-runtime/responsive/types.js +1 -0
  827. package/dist/react-sdk/application-runtime/routing/routing-service.d.ts +34 -2
  828. package/dist/react-sdk/application-runtime/routing/routing-service.js +1 -1
  829. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +296 -4
  830. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  831. package/dist/react-sdk/domain-application-context/BackendDataProvider.js +1 -1
  832. package/dist/react-sdk/domain-application-context/DomainLifecycleBoundary.js +1 -1
  833. package/dist/react-sdk/domain-application-context/FrontendDataProvider.js +1 -1
  834. package/dist/react-sdk/domain-application-context/PublishedDataProvider.js +1 -1
  835. package/dist/react-sdk/domain-context/common-hooks/index.d.ts +9 -0
  836. package/dist/react-sdk/domain-context/common-hooks/index.js +1 -0
  837. package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.d.ts +23 -0
  838. package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.js +1 -0
  839. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +15 -4
  840. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -1
  841. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +1 -0
  842. package/dist/react-sdk/domain-context/component-hooks/index.d.ts +1 -0
  843. package/dist/react-sdk/domain-context/component-hooks/index.js +1 -0
  844. package/dist/react-sdk/domain-context/component-hooks/use-component.js +1 -1
  845. package/dist/react-sdk/domain-context/entity-hooks/use-domain-entity-state.js +1 -1
  846. package/dist/react-sdk/domain-context/entity-hooks/use-entity-price.js +1 -1
  847. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-id.js +1 -1
  848. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-state.js +1 -1
  849. package/dist/react-sdk/domain-context/index.d.ts +7 -0
  850. package/dist/react-sdk/domain-context/index.js +1 -1
  851. package/dist/react-sdk/domain-context/system-hooks/composition-hooks.js +1 -1
  852. package/dist/react-sdk/domain-context/system-hooks/dimension-hooks.js +1 -1
  853. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.d.ts +8 -0
  854. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.js +1 -0
  855. package/dist/react-sdk/domain-context/system-hooks/hover-hooks.js +1 -1
  856. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.d.ts +24 -0
  857. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.js +1 -0
  858. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  859. package/dist/react-sdk/domain-context/system-hooks/selection-hooks.js +1 -1
  860. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.d.ts +32 -0
  861. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.js +1 -0
  862. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.d.ts +57 -0
  863. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.js +1 -0
  864. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.d.ts +61 -0
  865. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.js +1 -0
  866. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.d.ts +20 -0
  867. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -0
  868. package/dist/react-sdk/handlers/FinalizeActionRunner.d.ts +13 -0
  869. package/dist/react-sdk/handlers/FinalizeActionRunner.js +1 -0
  870. package/dist/react-sdk/handlers/FinalizeActionsHost.d.ts +10 -0
  871. package/dist/react-sdk/handlers/FinalizeActionsHost.js +1 -0
  872. package/dist/react-sdk/handlers/FinalizeActionsProvider.d.ts +11 -0
  873. package/dist/react-sdk/handlers/FinalizeActionsProvider.js +1 -0
  874. package/dist/react-sdk/handlers/finalize-actions-context.d.ts +6 -0
  875. package/dist/react-sdk/handlers/finalize-actions-context.js +1 -0
  876. package/dist/react-sdk/handlers/finalize-actions-store.d.ts +23 -0
  877. package/dist/react-sdk/handlers/finalize-actions-store.js +1 -0
  878. package/dist/react-sdk/handlers/index.d.ts +6 -0
  879. package/dist/react-sdk/handlers/index.js +1 -1
  880. package/dist/{configurator/common → react-sdk/handlers}/use-finalize-action.d.ts +3 -2
  881. package/dist/react-sdk/handlers/use-finalize-action.js +1 -0
  882. package/dist/react-sdk/handlers/use-finalize-actions.d.ts +53 -0
  883. package/dist/react-sdk/handlers/use-finalize-actions.js +1 -0
  884. package/dist/react-sdk/index.d.ts +2 -0
  885. package/dist/react-sdk/index.js +1 -1
  886. package/dist/react-sdk/loading-state/LoaderHost.d.ts +20 -0
  887. package/dist/react-sdk/loading-state/LoaderHost.js +1 -0
  888. package/dist/react-sdk/loading-state/built-in-loading-phase.d.ts +9 -0
  889. package/dist/react-sdk/loading-state/built-in-loading-phase.js +1 -0
  890. package/dist/react-sdk/loading-state/create-app-loader.d.ts +18 -0
  891. package/dist/react-sdk/loading-state/create-app-loader.js +1 -0
  892. package/dist/react-sdk/loading-state/index.d.ts +4 -2
  893. package/dist/react-sdk/loading-state/index.js +1 -1
  894. package/dist/react-sdk/loading-state/{LoadingStateProvider.d.ts → loading-state-hooks.d.ts} +3 -12
  895. package/dist/react-sdk/loading-state/loading-state-hooks.js +1 -0
  896. package/dist/react-sdk/page-elements/ConfigurationNotFoundPagePropsProvider.d.ts +17 -0
  897. package/dist/react-sdk/page-elements/ConfigurationNotFoundPagePropsProvider.js +1 -0
  898. package/dist/react-sdk/page-elements/ConfiguratorErrorPagePropsProvider.d.ts +17 -0
  899. package/dist/react-sdk/page-elements/ConfiguratorErrorPagePropsProvider.js +1 -0
  900. package/dist/react-sdk/page-elements/configurator-error-page-props.d.ts +20 -0
  901. package/dist/react-sdk/page-elements/configurator-error-page-props.js +1 -0
  902. package/dist/react-sdk/page-elements/create-configuration-not-found-page.d.ts +15 -0
  903. package/dist/react-sdk/page-elements/create-configuration-not-found-page.js +1 -0
  904. package/dist/react-sdk/page-elements/create-configurator-error-page.d.ts +14 -0
  905. package/dist/react-sdk/page-elements/create-configurator-error-page.js +1 -0
  906. package/dist/react-sdk/page-elements/create-preset-ui.d.ts +9 -0
  907. package/dist/react-sdk/page-elements/create-preset-ui.js +1 -0
  908. package/dist/react-sdk/page-elements/index.d.ts +6 -0
  909. package/dist/react-sdk/page-elements/index.js +1 -0
  910. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.d.ts +36 -0
  911. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.js +1 -0
  912. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.d.ts +44 -0
  913. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.js +1 -0
  914. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.d.ts +38 -0
  915. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.js +1 -0
  916. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.d.ts +30 -0
  917. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.js +1 -0
  918. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.d.ts +30 -0
  919. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.js +1 -0
  920. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.d.ts +9 -0
  921. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.js +1 -0
  922. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.d.ts +9 -0
  923. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.js +1 -0
  924. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.d.ts +10 -0
  925. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.js +1 -0
  926. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.d.ts +9 -0
  927. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.js +1 -0
  928. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.d.ts +9 -0
  929. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.js +1 -0
  930. package/dist/react-sdk/scene-control-elements/index.d.ts +11 -0
  931. package/dist/react-sdk/scene-control-elements/index.js +1 -0
  932. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.d.ts +5 -0
  933. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.js +1 -0
  934. package/dist/react-sdk/session/NotAuthenticatedPage.d.ts +4 -0
  935. package/dist/react-sdk/session/NotAuthenticatedPage.js +1 -1
  936. package/dist/react-sdk/session/SessionServiceProvider.js +1 -1
  937. package/dist/react-sdk/web-component/create-web-component.js +1 -1
  938. package/dist/react-sdk/web-component/god-mode/god-mode-registry.d.ts +30 -0
  939. package/dist/react-sdk/web-component/god-mode/god-mode-registry.js +1 -0
  940. package/dist/react-sdk/web-component/god-mode/index.d.ts +1 -0
  941. package/dist/react-sdk/web-component/god-mode/index.js +1 -0
  942. package/dist/ui-sdk/icons/__generated/Lightbulb.d.ts +3 -0
  943. package/dist/ui-sdk/icons/__generated/Lightbulb.js +1 -0
  944. package/dist/ui-sdk/icons/__generated/XCircle.d.ts +3 -0
  945. package/dist/ui-sdk/icons/__generated/XCircle.js +1 -0
  946. package/dist/ui-sdk/icons/__generated/index.d.ts +4 -0
  947. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  948. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  949. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +9 -0
  950. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.js +1 -1
  951. package/dist/ui-sdk/responsive-application/index.d.ts +1 -0
  952. package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +59 -0
  953. package/dist/ui-sdk/responsive-application/responsive-state-store.js +1 -0
  954. package/dist/ui-sdk/responsive-application/use-store-responsive-info.d.ts +7 -0
  955. package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -0
  956. package/dist/ui-sdk/theme/types.d.ts +5 -1
  957. package/package.json +58 -36
  958. package/schema/domain-spec.json +226 -8
  959. package/dist/application-spec/generate-application/code/templates/nvmrc.d.ts +0 -1
  960. package/dist/application-spec/generate-application/code/templates/nvmrc.js +0 -2
  961. package/dist/application-spec/generate-application/code/templates/package-json.d.ts +0 -10
  962. package/dist/application-spec/generate-application/code/templates/package-json.js +0 -1
  963. package/dist/configurator/common/use-finalize-action.js +0 -1
  964. package/dist/configurator/ui/assistant/entity-link/entity-link-target.d.ts +0 -5
  965. package/dist/configurator/ui/assistant/entity-link/entity-link-target.js +0 -1
  966. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.d.ts +0 -4
  967. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.js +0 -1
  968. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.d.ts +0 -4
  969. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.js +0 -1
  970. package/dist/domain/extensions/client-side-image.js +0 -1
  971. package/dist/domain/extensions/save-template-thumbnail.js +0 -1
  972. package/dist/phoenix/commands/generate-project-files.d.ts +0 -6
  973. package/dist/phoenix/commands/generate-project-files.js +0 -1
  974. package/dist/react-sdk/application-runtime/runtime/god-mode.d.ts +0 -19
  975. package/dist/react-sdk/application-runtime/runtime/god-mode.js +0 -1
  976. package/dist/react-sdk/loading-state/LoadingStateProvider.js +0 -1
  977. package/dist/react-sdk/loading-state/loading-state-manager.d.ts +0 -32
  978. package/dist/react-sdk/loading-state/loading-state-manager.js +0 -1
  979. /package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.js +0 -0
@@ -53,6 +53,11 @@ export declare class StoreSystem<ENTITIES extends DomainEntity<string>, $MAP ext
53
53
  private readonly _context;
54
54
  readonly stateSlices: Readonly<Record<StateSliceName, ObservableWithLastValue<StateEmission<ENTITIES, $MAP>>>>;
55
55
  get isInitialized(): boolean;
56
+ /**
57
+ * True while a change the user is making, such as a drag, is staged and neither committed nor
58
+ * rolled back. A hover is shown through a staged emission too, but stages no updates.
59
+ */
60
+ get hasStagedUpdates(): boolean;
56
61
  private _onBeforeCommitHooks;
57
62
  private readonly committed;
58
63
  private readonly potentiallyInvalid;
@@ -1,2 +1,2 @@
1
- import{CompositeKeyMap as e,assertExistence as t,isEqualArray as i}from"@salsita-ai/common/utils";import{domainEntityTypeFromId as r,dragStateComponent as o,getComponentSystemFilterState as s,hoverStateComponent as n,isEqualComponentInstance as a,isSystemViewportStateComponentSnapshot as d,isVirtualEntityId as m,selectionStateComponent as l,systemUpdateFactory as c,systemVirtualEntityId as p}from"../../core/index.js";import{projectedEntitiesComponent as h}from"../../system-components/index.js";import{cloneEvalCache as v,createEvalCacheToken as f,getEvalCache as g,setEvalCache as u}from"../../utils/eval-cache.js";import{createCascadeDeletesTransformer as y,createCascadeRefPruningTransformer as S}from"../relation-transformers/index.js";import{applyUpdates as I}from"./apply-updates.js";import{LifecycleStateSlice as _}from"./lifecycle-state-slice.js";import{mergeReconciliationsUpdates as x,reconcileProjectedEntities as T}from"./reconcile-projected-entities.js";let E={uninitializedError:"StoreSystem is not initialized."},k=f({clone:e=>e}),w=class InvalidInitialStateError extends Error{emission;childError;constructor(e,t,i){let r="";"uncaught"===e.validity.severity&&(r=`: ${e.validity.error.message}`),("fatal"===e.validity.severity||"fixable"===e.validity.severity)&&(r=`: ${e.validity.entityViolations.map(e=>{let i=e.violation.message;return null!=i?t(i):e.violation.type}).join(", ")}`),super(`Initial state is not valid! Severity: ${e.validity.severity}, Cause: ${r}`),this.emission=e,this.childError=i,this.name="InvalidInitialStateError"}},b=(e,t)=>{try{return e()}catch(e){throw t(e),e}};export class StoreSystem{_context;stateSlices;get isInitialized(){return this.committed.isInitialized}_onBeforeCommitHooks=[];committed=new _(E);potentiallyInvalid=new _(E);rendered=new _(E);stagedUpdates=void 0;transformToDataUpdates=(e,t)=>{let i=!1,r=e.map(e=>"modifyComponent"===e.kind?(i=!0,this.componentModificationToDataUpdate(e,t)):e);return i?r:e};createInitialTransformPipe=()=>[{transformer:this.transformToDataUpdates,priority:1/0,registrationToken:{},name:"TransformToDataUpdates"}];transformPipe=this.createInitialTransformPipe();_cascadeDeletesTransformer=(...e)=>(this._cascadeDeletesTransformerMemo??=y(this._context.selectors.getCompositionProjections()))(...e);_cascadeDeletesTransformerMemo;_refPruningTransformer=(...e)=>(this._refPruningTransformerMemo??=S(this._context.selectors.getComponentReader()))(...e);_refPruningTransformerMemo;_deselectOnDeleteTransformer=(e,t)=>{let i=new Set(e.filter(e=>"deleteEntity"===e.kind).map(e=>e.entityId));if(0===i.size)return e;let r=s(t).selectedEntityId;return r&&i.has(r)?[...e,c.EphemeralRecordModification({componentInstance:{entityId:p,componentType:l},updateTag:"AutoDeselectRemovedProjectedEntity",writableState:{selectedEntityId:t.rootEntityId}})]:e};constructor(e){this._context=e,this.stateSlices={committed:this.committed.observable,rendered:this.rendered.observable,potentiallyInvalid:this.potentiallyInvalid.observable}}_validateState=e=>this._context.selectors.getValidationProjections().validateState(e);initialize=()=>{let e=this._context.selectors.getInitialDomainState();this.stagedUpdates=void 0;let t=this._validateState(e),i={kind:"reset",state:e,validity:t,tag:void 0,transformationLog:void 0},r=i;if(!r.validity.valid&&"fatal"===r.validity.severity||"fixable"===r.validity.severity){this._context.domainServicesSelectors.getLogger().debug("Trying to fix initial emission:",r);let e=r.state,{transformedUpdates:t,transformationLog:i}=this.applyTransformers([],e,"committed"),o=I(this.transformToDataUpdates(t,e),e);v(e,o),r={kind:"reset",state:o,validity:this._validateState(o),tag:"fixed",transformationLog:i}}if(!r.validity.valid){if(this._context.domainServicesSelectors.getLogger().error("Invalid initial emission:",{initialEmission:i,fixedEmission:r}),"uncaught"===r.validity.severity)throw new w(r,this._context.domainServicesSelectors.getResolveLocalizable(),r.validity.error??void 0);throw new w(r,this._context.domainServicesSelectors.getResolveLocalizable())}this.committed.next(r),this.rendered.next(r),this.potentiallyInvalid.next(r)};registerTransformer(e,i,r){let o={};return((e,i,r)=>{let o=0;for(;o<e.length&&0>=r(t(e[o]),i);)o++;e.splice(o,0,i)})(this.transformPipe,{registrationToken:o,transformer:i,priority:e,name:r},(e,t)=>e.priority===t.priority?0:e.priority<t.priority?-1:1),()=>{let e=this.transformPipe.findIndex(e=>e.registrationToken===o);-1!==e&&this.transformPipe.splice(e,1)}}onBeforeCommit(e){return this._onBeforeCommitHooks.push(e),()=>{this._onBeforeCommitHooks=this._onBeforeCommitHooks.filter(t=>t!==e)}}componentModificationToDataUpdate=(e,t)=>{let i=e.entityId;if(!m(i)){let t=this._context.selectors.getComponentReaderIndexes().opticMap.get(r(i))?.get(e.componentInstance.componentType)?.get(e.componentInstance.instanceName);if(t?.kind==="simple"){let r=t.write(e.writableState);return{kind:"modifyDomainEntity",entityId:i,updateTag:e.updateTag,stateDelta:r,hint:e.hint,agentHint:e.agentHint,origin:e}}}let o=t.ephemeralRecords.find(t=>a(t.componentInstance,e.componentInstance));if(o)return{kind:"modifyEphemeralRecord",entityId:e.entityId,updateTag:e.updateTag,componentInstance:o.componentInstance,writableState:e.writableState,hint:e.hint,agentHint:e.agentHint};throw Error(`Component ${e.componentInstance.componentType.name} is not attached on entity #${e.entityId}`)};getNewState=(e,t)=>{let i=I(this.transformToDataUpdates(e,t),t);return v(this.rendered.isInitialized?this.rendered.value.state:t,i),i};applyTransformers(e,t,i){let r=this._context.environmentSelectors.getEnvironmentIsDev()?[]:void 0;return{transformedUpdates:this.transformPipe.reduce((e,{transformer:o,name:s})=>{let n,a=r?[]:void 0,d=a?(e,t,i)=>{n=e,a.push({phase:e,message:t,data:i})}:void 0,m=b(()=>o(e,t,i,d),o=>{this._context.domainServicesSelectors.getLogger().error("Error while applying transformer!",{name:s,updates:e,previousState:t,kind:i,transformationLog:r},o instanceof Error?o:Error(String(o)))});return a&&r&&r.push({name:s,status:n??(m===e?"no-event":"apply"),entries:a,updatesIn:e,updatesOut:m}),m},e),transformationLog:r}}_updateProjectedEntities(e,t,r){if(!e.validity.valid)return e;let o=this._context.selectors.getComponentReader().readManyComponents({componentTypes:[h]},e.state),s=g(e.previousState,k);if(s&&i(s,o))return e;let n=0,a=e,d=[];for(;a.validity.valid;){n++;let i=T(a.state.entities,o,t);if(0===i.length)break;if(n>10)throw Error(`Maximum number of reconciliation rounds reached: 10. Projected entities seem to be recursively depending on themselves.
1
+ import{CompositeKeyMap as e,assertExistence as t,isEqualArray as i}from"@salsita-ai/common/utils";import{domainEntityTypeFromId as r,dragStateComponent as o,getComponentSystemFilterState as s,hoverStateComponent as n,isEqualComponentInstance as a,isSystemViewportStateComponentSnapshot as d,isVirtualEntityId as m,selectionStateComponent as l,systemUpdateFactory as c,systemVirtualEntityId as p}from"../../core/index.js";import{projectedEntitiesComponent as h}from"../../system-components/index.js";import{cloneEvalCache as v,createEvalCacheToken as f,getEvalCache as g,setEvalCache as u}from"../../utils/eval-cache.js";import{createCascadeDeletesTransformer as y,createCascadeRefPruningTransformer as S}from"../relation-transformers/index.js";import{applyUpdates as I}from"./apply-updates.js";import{LifecycleStateSlice as _}from"./lifecycle-state-slice.js";import{mergeReconciliationsUpdates as x,reconcileProjectedEntities as T}from"./reconcile-projected-entities.js";let E={uninitializedError:"StoreSystem is not initialized."},k=f({clone:e=>e}),w=class InvalidInitialStateError extends Error{emission;childError;constructor(e,t,i){let r="";"uncaught"===e.validity.severity&&(r=`: ${e.validity.error.message}`),("fatal"===e.validity.severity||"fixable"===e.validity.severity)&&(r=`: ${e.validity.entityViolations.map(e=>{let i=e.violation.message;return null!=i?t(i):e.violation.type}).join(", ")}`),super(`Initial state is not valid! Severity: ${e.validity.severity}, Cause: ${r}`),this.emission=e,this.childError=i,this.name="InvalidInitialStateError"}},b=(e,t)=>{try{return e()}catch(e){throw t(e),e}};export class StoreSystem{_context;stateSlices;get isInitialized(){return this.committed.isInitialized}get hasStagedUpdates(){return void 0!==this.stagedUpdates}_onBeforeCommitHooks=[];committed=new _(E);potentiallyInvalid=new _(E);rendered=new _(E);stagedUpdates=void 0;transformToDataUpdates=(e,t)=>{let i=!1,r=e.map(e=>"modifyComponent"===e.kind?(i=!0,this.componentModificationToDataUpdate(e,t)):e);return i?r:e};createInitialTransformPipe=()=>[{transformer:this.transformToDataUpdates,priority:1/0,registrationToken:{},name:"TransformToDataUpdates"}];transformPipe=this.createInitialTransformPipe();_cascadeDeletesTransformer=(...e)=>(this._cascadeDeletesTransformerMemo??=y(this._context.selectors.getCompositionProjections()))(...e);_cascadeDeletesTransformerMemo;_refPruningTransformer=(...e)=>(this._refPruningTransformerMemo??=S(this._context.selectors.getComponentReader()))(...e);_refPruningTransformerMemo;_deselectOnDeleteTransformer=(e,t)=>{let i=new Set(e.filter(e=>"deleteEntity"===e.kind).map(e=>e.entityId));if(0===i.size)return e;let r=s(t).selectedEntityId;return r&&i.has(r)?[...e,c.EphemeralRecordModification({componentInstance:{entityId:p,componentType:l},updateTag:"AutoDeselectRemovedProjectedEntity",writableState:{selectedEntityId:t.rootEntityId}})]:e};constructor(e){this._context=e,this.stateSlices={committed:this.committed.observable,rendered:this.rendered.observable,potentiallyInvalid:this.potentiallyInvalid.observable}}_validateState=e=>this._context.selectors.getValidationProjections().validateState(e);initialize=()=>{let e=this._context.selectors.getInitialDomainState();this.stagedUpdates=void 0;let t=this._validateState(e),i={kind:"reset",state:e,validity:t,tag:void 0,transformationLog:void 0},r=i;if(!r.validity.valid&&"fatal"===r.validity.severity||"fixable"===r.validity.severity){this._context.domainServicesSelectors.getLogger().debug("Trying to fix initial emission:",r);let e=r.state,{transformedUpdates:t,transformationLog:i}=this.applyTransformers([],e,"committed"),o=I(this.transformToDataUpdates(t,e),e);v(e,o),r={kind:"reset",state:o,validity:this._validateState(o),tag:"fixed",transformationLog:i}}if(!r.validity.valid){if(this._context.domainServicesSelectors.getLogger().error("Invalid initial emission:",{initialEmission:i,fixedEmission:r}),"uncaught"===r.validity.severity)throw new w(r,this._context.domainServicesSelectors.getResolveLocalizable(),r.validity.error??void 0);throw new w(r,this._context.domainServicesSelectors.getResolveLocalizable())}this.committed.next(r),this.rendered.next(r),this.potentiallyInvalid.next(r)};registerTransformer(e,i,r){let o={};return((e,i,r)=>{let o=0;for(;o<e.length&&0>=r(t(e[o]),i);)o++;e.splice(o,0,i)})(this.transformPipe,{registrationToken:o,transformer:i,priority:e,name:r},(e,t)=>e.priority===t.priority?0:e.priority<t.priority?-1:1),()=>{let e=this.transformPipe.findIndex(e=>e.registrationToken===o);-1!==e&&this.transformPipe.splice(e,1)}}onBeforeCommit(e){return this._onBeforeCommitHooks.push(e),()=>{this._onBeforeCommitHooks=this._onBeforeCommitHooks.filter(t=>t!==e)}}componentModificationToDataUpdate=(e,t)=>{let i=e.entityId;if(!m(i)){let t=this._context.selectors.getComponentReaderIndexes().opticMap.get(r(i))?.get(e.componentInstance.componentType)?.get(e.componentInstance.instanceName);if(t?.kind==="simple"){let r=t.write(e.writableState);return{kind:"modifyDomainEntity",entityId:i,updateTag:e.updateTag,stateDelta:r,hint:e.hint,agentHint:e.agentHint,origin:e}}}let o=t.ephemeralRecords.find(t=>a(t.componentInstance,e.componentInstance));if(o)return{kind:"modifyEphemeralRecord",entityId:e.entityId,updateTag:e.updateTag,componentInstance:o.componentInstance,writableState:e.writableState,hint:e.hint,agentHint:e.agentHint};throw Error(`Component ${e.componentInstance.componentType.name} is not attached on entity #${e.entityId}`)};getNewState=(e,t)=>{let i=I(this.transformToDataUpdates(e,t),t);return v(this.rendered.isInitialized?this.rendered.value.state:t,i),i};applyTransformers(e,t,i){let r=this._context.environmentSelectors.getEnvironmentIsDev()?[]:void 0;return{transformedUpdates:this.transformPipe.reduce((e,{transformer:o,name:s})=>{let n,a=r?[]:void 0,d=a?(e,t,i)=>{n=e,a.push({phase:e,message:t,data:i})}:void 0,m=b(()=>o(e,t,i,d),o=>{this._context.domainServicesSelectors.getLogger().error("Error while applying transformer!",{name:s,updates:e,previousState:t,kind:i,transformationLog:r},o instanceof Error?o:Error(String(o)))});return a&&r&&r.push({name:s,status:n??(m===e?"no-event":"apply"),entries:a,updatesIn:e,updatesOut:m}),m},e),transformationLog:r}}_updateProjectedEntities(e,t,r){if(!e.validity.valid)return e;let o=this._context.selectors.getComponentReader().readManyComponents({componentTypes:[h]},e.state),s=g(e.previousState,k);if(s&&i(s,o))return e;let n=0,a=e,d=[];for(;a.validity.valid;){n++;let i=T(a.state.entities,o,t);if(0===i.length)break;if(n>10)throw Error(`Maximum number of reconciliation rounds reached: 10. Projected entities seem to be recursively depending on themselves.
2
2
  If expressions populating 'projectedEntities' components rely on other projected entities, make sure that the dependencies do not have cycles.`);let s=(d=x(d,i)).map(e=>e.dataUpdate),m=this._cascadeDeletesTransformer(s,e.previousState,r,void 0,t),l=this._refPruningTransformer(m,e.previousState,r,void 0,t),c=this._deselectOnDeleteTransformer(l,e.previousState,r,void 0,t);if(!(a=this.prepareStateEmissionWithoutTransformation([...t,...c],e.previousState,r)).validity.valid)return this._context.domainServicesSelectors.getLogger().error("Reconciliation of projected entities led to an invalid state! Reconciliation skipped.",{emission:a}),e;o=this._context.selectors.getComponentReader().readManyComponents({componentTypes:[h]},a.state)}return u(a.state,k,o),a}prepareStateEmission(e,t,i){let{transformedUpdates:r,transformationLog:o}=this.applyTransformers(e,t,i),s=this.prepareStateEmissionWithoutTransformation(r,t,i);return{...this._updateProjectedEntities(s,r,i),transformationLog:o}}emissionCache=new e([Map,WeakMap,WeakMap,WeakMap,WeakMap]);getEmissionCacheKey=(e,t,i)=>[e,t,i,this._context.selectors.getStoreRuntimeDependencies(),this._context.selectors.getExpressionContext()];prepareStateEmissionWithoutTransformation=(e,t,i)=>{let r=this.getEmissionCacheKey(i,t,e),o=this.emissionCache.get(r);if(o)return o;let s=b(()=>this.transformToDataUpdates(e,t),r=>{this._context.domainServicesSelectors.getLogger().error("Error while transforming updates to data updates!",{updates:e,previousState:t,kind:i},r instanceof Error?r:Error(String(r)))}),n=b(()=>I(s,t),r=>{this._context.domainServicesSelectors.getLogger().error("Error while applying updates!",{updates:e,previousState:t,kind:i,dataUpdates:s},r instanceof Error?r:Error(String(r)))});v(this.rendered.isInitialized?this.rendered.value.state:t,n);let a=this._validateState(n);"uncaught"===a.severity&&this._context.domainServicesSelectors.getLogger().error("There was an uncaught validation error:",{updates:e,dataUpdates:s,previousState:t,newState:n,kind:i},a.error);let d={kind:i,previousState:t,state:n,updates:s,validity:a,transformationLog:void 0};return this.emissionCache.set(r,d),d};stage(e,t=!0){this.stagedUpdates=e;let i=this.prepareStateEmission(e,this.committed.value.state,"staged");return t&&this.emit(i),i}emit(e){"staged"===e.kind?e.validity.valid&&this.rendered.nextIfDifferent(e):(e.validity.valid?(this.committed.nextIfDifferent(e),this.rendered.nextIfDifferent(e)):this.rendered.nextIfDifferent(this.committed.value),this.potentiallyInvalid.nextIfDifferent(e))}commit=()=>{if(void 0===this.stagedUpdates)return;let e=this.prepareStateEmission(this.stagedUpdates,this.committed.value.state,"committed"),t=()=>{if(this._onBeforeCommitHooks.some(i=>!1===i(e,t))){this._context.domainServicesSelectors.getLogger().debug("Commit was canceled by one of the onBeforeCommit hooks! Resetting rendered state.",e),this.rollback();return}this.stagedUpdates=void 0,this._context.domainServicesSelectors.getLogger().debug("commit",e),this.emit(e)};t()};commitPrepared=e=>{if("committed"!==e.kind||!e.validity.valid)throw Error(`commitPrepared received a ${e.validity.valid?e.kind:"invalid"} emission, but only a valid committed emission can become the committed state. Prepare the emission with kind "committed" and check its validity before committing it.`);let t=()=>e.previousState===this.committed.value.state;if(!t())return"conflict";let i=()=>{t()?r():this._context.domainServicesSelectors.getLogger().warn("A held commit was dropped, because the committed state changed since it was prepared.",e)},r=()=>this._onBeforeCommitHooks.some(t=>!1===t(e,i))?(this._context.domainServicesSelectors.getLogger().debug("A prepared commit was held by one of the onBeforeCommit hooks.",e),!1):(this._context.domainServicesSelectors.getLogger().debug("commitPrepared",e),this.stagedUpdates=void 0,this.emit(e),!0);return r()?"committed":"held"};rollback=()=>{void 0!==this.stagedUpdates&&(this.stagedUpdates=void 0,this.emit(this.committed.value))};_resetInteractionState(e){return e.ephemeralRecords.some(e=>{let t;return(t=e.componentInstance.componentType)===n||t===o})?{...e,ephemeralRecords:e.ephemeralRecords.map(e=>e.componentInstance.componentType===n?{...e,state:{hoveredEntityId:null}}:e.componentInstance.componentType===o?{...e,state:{draggedEntityId:null}}:e)}:e}_preserveViewportState(e,t){let i=t.ephemeralRecords.find(d),r=e.ephemeralRecords.filter(e=>!d(e));return{...e,ephemeralRecords:i?[...r,i]:r}}reset(e,t){let i=this.committed.value.state,r=this._preserveViewportState(e,i),o=this._resetInteractionState(r),s=this._validateState(o);if(!s.valid)throw Error("Cannot reset to an invalid state");this.stagedUpdates=void 0,this.emit({kind:"reset",state:o,validity:s,tag:t,transformationLog:void 0})}stageAndCommit(e){if(0!==e.length){this.stagedUpdates=e;try{this.commit()}finally{this.stagedUpdates=void 0}}}}
@@ -124,6 +124,7 @@ export declare const createDomainContextSelectors: (context: Context) => {
124
124
  getMigrate: () => import("../../index.js").MigrateFunction<import("../../index.js").DomainEntity<string>>;
125
125
  getActiveMode: () => DomainMode;
126
126
  getIsInitialized: () => boolean;
127
+ getIsViewMode: () => boolean;
127
128
  getComponentReaderIndexes: () => ComponentReaderIndexes;
128
129
  getStoreRuntimeDependencies: () => {
129
130
  componentReaderIndexes: ComponentReaderIndexes;
@@ -1 +1 @@
1
- import{createSelector as e}from"@salsita-ai/common/utils";import{Domain as t,createInitialDomainState as n}from"../../core/index.js";import{ActionSystem as o,DimensionSystem as i,NavigationSystem as a,RecipeCookerSystem as s,StoreSystem as r,UndoSystem as c}from"../../domain-context/index.js";import{BlenderProjections as l,CollisionProjections as m,CompositionProjections as d,ConstraintProjections as g,PositionProjections as f,ProjectedEntitiesProjections as u,SnappingProjections as p,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{prepareActionImplementations as S,prepareDomainExpressions as x}from"../spec/index.js";import{ComponentReader as C}from"./component-reader.js";import{DomainContext as D}from"./domain-context.js";let j=e.withTypes(),I=[],v={},P={role:"admin",data:v},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:$,domainDataSelectors:k,sessionContextSelectors:N,domainServicesSelectors:z,environmentSelectors:L,getExtensionSystems:V}=e,B="configurator"===A?T.selectConfiguratorSpec:T.selectAdminSpec,F="configurator"===A?b.selectConfiguratorRawAccessService:b.selectAdminRawAccessService,W=j.leaf(e=>e.domainContext[A]),_=j([W],e=>e.initializationContext),q=j([_],e=>{if(null===e)throw Error(`Domain lifecycle context is not available for ${A}! Read it from an active domain lifecycle.`);return e}),O=j([W],e=>e.executionMode),U=j([W],e=>e.isInitialized),G=j([B],e=>e.factory),H=j([B],e=>e.expressions),J=j([B],e=>e.actions),K=j([B],e=>e.actionImplementations),Q=j([J,K],S),X=j([B],e=>e.$entityReflections),Y=j([H,X],(e,t)=>x({expressions:e,$entityReflections:t})),Z=j([B],e=>e.modelVersion),ee=j([B],e=>e.aliasMap),et=j([B],e=>e.allowedRootEntityTypes),en=j([B],e=>e.entityReflections),eo=j([B],e=>e.migrate),ei=j([O,$.selectReadonly,F],(e,t,n)=>"finalize"===e?"finalize":h(A,n).accessInfo.viewMode||t?"read":"owner"),ea=j([F],e=>e?.configurationId??null),es="configurator"===A?N.selectSessionContext:j([],()=>P),er=j([es],e=>e?.role??null),ec=j([es],e=>e?.data??null),el=j([j.leaf(e=>e.loadedData)],e=>"configurator"===A?e.configuratorLoadedData:e.adminLoadedData),em=j([el],e=>e?.schemaIdentity??null),ed=j([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=j([ea,er,ec,em,ed,F],(e,t,n,o,i,a)=>null===e||null===a||null===t||null===n||null===o||"coherent"!==i?null:{access:a.accessInfo.access,configurationId:e,role:t,schemaIdentity:o,sessionData:n}),ef=j([F,$.selectReadonly],(e,t)=>e?.accessInfo.viewMode===!0||t),eu=j([eg,_,U,ef],(e,t,n,o)=>{let i=null!==e&&null!==t&&n&&t.access===e.access&&t.configurationId===e.configurationId&&t.role===e.role&&t.schemaIdentity===e.schemaIdentity&&t.sessionData===e.sessionData;return{identity:e,isCurrent:i,isViewMode:o}}),ep=j([B],e=>e.componentOptics),ey=j([ep],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=j([ey,Y,et],(e,t,n)=>({componentReaderIndexes:e,domainExpressions:t,allowedRootEntityTypes:n})),eh=j([B],e=>e.navigationStates),eS=j([B],e=>e.viewStates),ex="configurator"===A?j([T.selectConfiguratorSpec],e=>e.toolStates):j([],()=>I),eC="configurator"===A?j([T.selectConfiguratorSpec],e=>e.exportStates):j([],()=>I),eD="configurator"===A?j([T.selectConfiguratorSpec],e=>e.createTransformers):j([],()=>void 0),ej=j([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}),eI=j([ej,G],(e,t)=>n(t.validateAndMigrateState(e.initialEntities,e.modelVersion),e.rootEntityType)),ev="configurator"===A?k.selectConfiguratorFrontendData:k.selectAdminFrontendData,eP="configurator"===A?k.selectConfiguratorBackendData:k.selectAdminBackendData,eM="configurator"===A?k.selectConfiguratorPublishedData:k.selectAdminPublishedData,eA="configurator"===A?j([N.selectSessionContext],e=>M(e).role):j([],()=>"admin"),eR="configurator"===A?j([N.selectSessionContext],e=>M(e).data):j([],()=>v),eE=j([ea,ei,eA,eR,ej,F],(e,t,n,o,i,a)=>({access:a?.accessInfo.access??null,configurationId:e,mode:t,role:n,schemaIdentity:i.schemaIdentity,sessionData:o})),eT=j([q],e=>e.mode),eb=j([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}),e$=j([q],e=>e.role),ek=j([q],e=>e.sessionData),eN=j([eT,e$,ek,ev,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:eu,selectComponentOptics:ep,selectComponentReaderIndexes:ey,selectStoreRuntimeDependencies:ew,selectNavigationStates:eh,selectViewStates:eS,selectToolStates:ex,selectExportStates:eC,selectCreateTransformers:eD,selectLatestLoadedData:el,selectLoadedData:ej,selectInitialDomainState:eI,selectFrontendData:ev,selectBackendData:eP,selectPublishedData:eM,selectLatestRole:eA,selectLatestSessionData:eR,selectNextInitializationContext:eE,selectActiveMode:eT,selectActiveConfigurationId:eb,selectActiveRole:e$,selectActiveSessionData:ek,selectExpressionContext:eN,getInitializationContext:()=>_(R()),getInitializationState:()=>eu(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:()=>eD(R()),getLoadedData:()=>ej(R()),getInitialDomainState:()=>eI(R()),getFrontendData:()=>ev(R()),getBackendData:()=>eP(R()),getPublishedData:()=>eM(R()),getActiveRole:()=>e$(R()),getActiveSessionData:()=>ek(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 d({selectors:ez}),eF=new i({selectors:ez}),eW=new y({selectors:ez}),e_=new w({selectors:ez}),eq=new f({selectors:ez}),eO=new m({selectors:ez}),eU=new p({selectors:ez}),eG=new g({selectors:ez}),eH=new u({selectors:ez}),eJ=new r({selectors:ez,domainServicesSelectors:z,environmentSelectors:L}),eK=new a({selectors:ez,domainServicesSelectors:z}),eQ=new c({selectors:ez}),eX=new s({selectors:ez}),eY=new o({selectors:ez}),eZ=new l({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 D({selectors:ez,actions:E,getExtensionSystems:V});return ez};
1
+ import{createSelector as e}from"@salsita-ai/common/utils";import{Domain as t,createInitialDomainState as n}from"../../core/index.js";import{ActionSystem as o,DimensionSystem as i,NavigationSystem as a,RecipeCookerSystem as s,StoreSystem as r,UndoSystem as c}from"../../domain-context/index.js";import{BlenderProjections as l,CollisionProjections as d,CompositionProjections as m,ConstraintProjections as g,PositionProjections as f,ProjectedEntitiesProjections as u,SnappingProjections as p,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{prepareActionImplementations as S,prepareDomainExpressions as x}from"../spec/index.js";import{ComponentReader as C}from"./component-reader.js";import{DomainContext as D}from"./domain-context.js";let j=e.withTypes(),I=[],v={},P={role:"admin",data:v},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:$,domainDataSelectors:k,sessionContextSelectors:N,domainServicesSelectors:z,environmentSelectors:L,getExtensionSystems:V}=e,B="configurator"===A?T.selectConfiguratorSpec:T.selectAdminSpec,F="configurator"===A?b.selectConfiguratorRawAccessService:b.selectAdminRawAccessService,W=j.leaf(e=>e.domainContext[A]),_=j([W],e=>e.initializationContext),q=j([_],e=>{if(null===e)throw Error(`Domain lifecycle context is not available for ${A}! Read it from an active domain lifecycle.`);return e}),O=j([W],e=>e.executionMode),U=j([W],e=>e.isInitialized),G=j([B],e=>e.factory),H=j([B],e=>e.expressions),J=j([B],e=>e.actions),K=j([B],e=>e.actionImplementations),Q=j([J,K],S),X=j([B],e=>e.$entityReflections),Y=j([H,X],(e,t)=>x({expressions:e,$entityReflections:t})),Z=j([B],e=>e.modelVersion),ee=j([B],e=>e.aliasMap),et=j([B],e=>e.allowedRootEntityTypes),en=j([B],e=>e.entityReflections),eo=j([B],e=>e.migrate),ei=j([O,$.selectReadonly,F],(e,t,n)=>"finalize"===e?"finalize":h(A,n).accessInfo.viewMode||t?"read":"owner"),ea=j([F],e=>e?.configurationId??null),es="configurator"===A?N.selectSessionContext:j([],()=>P),er=j([es],e=>e?.role??null),ec=j([es],e=>e?.data??null),el=j([j.leaf(e=>e.loadedData)],e=>"configurator"===A?e.configuratorLoadedData:e.adminLoadedData),ed=j([el],e=>e?.schemaIdentity??null),em=j([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=j([ea,er,ec,ed,em,F],(e,t,n,o,i,a)=>null===e||null===a||null===t||null===n||null===o||"coherent"!==i?null:{access:a.accessInfo.access,configurationId:e,role:t,schemaIdentity:o,sessionData:n}),ef=j([F,$.selectReadonly],(e,t)=>e?.accessInfo.viewMode===!0||t),eu=j([eg,_,U,ef],(e,t,n,o)=>{let i=null!==e&&null!==t&&n&&t.access===e.access&&t.configurationId===e.configurationId&&t.role===e.role&&t.schemaIdentity===e.schemaIdentity&&t.sessionData===e.sessionData;return{identity:e,isCurrent:i,isViewMode:o}}),ep=j([B],e=>e.componentOptics),ey=j([ep],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=j([ey,Y,et],(e,t,n)=>({componentReaderIndexes:e,domainExpressions:t,allowedRootEntityTypes:n})),eh=j([B],e=>e.navigationStates),eS=j([B],e=>e.viewStates),ex="configurator"===A?j([T.selectConfiguratorSpec],e=>e.toolStates):j([],()=>I),eC="configurator"===A?j([T.selectConfiguratorSpec],e=>e.exportStates):j([],()=>I),eD="configurator"===A?j([T.selectConfiguratorSpec],e=>e.createTransformers):j([],()=>void 0),ej=j([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}),eI=j([ej,G],(e,t)=>n(t.validateAndMigrateState(e.initialEntities,e.modelVersion),e.rootEntityType)),ev="configurator"===A?k.selectConfiguratorFrontendData:k.selectAdminFrontendData,eP="configurator"===A?k.selectConfiguratorBackendData:k.selectAdminBackendData,eM="configurator"===A?k.selectConfiguratorPublishedData:k.selectAdminPublishedData,eA="configurator"===A?j([N.selectSessionContext],e=>M(e).role):j([],()=>"admin"),eR="configurator"===A?j([N.selectSessionContext],e=>M(e).data):j([],()=>v),eE=j([ea,ei,eA,eR,ej,F],(e,t,n,o,i,a)=>({access:a?.accessInfo.access??null,configurationId:e,mode:t,role:n,schemaIdentity:i.schemaIdentity,sessionData:o})),eT=j([q],e=>e.mode),eb=j([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}),e$=j([q],e=>e.role),ek=j([q],e=>e.sessionData),eN=j([eT,e$,ek,ev,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:ed,selectSchemaCoherence:em,selectInitializationIdentity:eg,selectIsViewMode:ef,selectInitializationState:eu,selectComponentOptics:ep,selectComponentReaderIndexes:ey,selectStoreRuntimeDependencies:ew,selectNavigationStates:eh,selectViewStates:eS,selectToolStates:ex,selectExportStates:eC,selectCreateTransformers:eD,selectLatestLoadedData:el,selectLoadedData:ej,selectInitialDomainState:eI,selectFrontendData:ev,selectBackendData:eP,selectPublishedData:eM,selectLatestRole:eA,selectLatestSessionData:eR,selectNextInitializationContext:eE,selectActiveMode:eT,selectActiveConfigurationId:eb,selectActiveRole:e$,selectActiveSessionData:ek,selectExpressionContext:eN,getInitializationContext:()=>_(R()),getInitializationState:()=>eu(R()),getNextInitializationContext:()=>eE(R()),getLatestLoadedData:()=>el(R()),getSchemaCoherence:()=>em(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()),getIsViewMode:()=>ef(R()),getComponentReaderIndexes:()=>ey(R()),getStoreRuntimeDependencies:()=>ew(R()),getNavigationStates:()=>eh(R()),getViewStates:()=>eS(R()),getToolStates:()=>ex(R()),getExportStates:()=>eC(R()),getCreateTransformers:()=>eD(R()),getLoadedData:()=>ej(R()),getInitialDomainState:()=>eI(R()),getFrontendData:()=>ev(R()),getBackendData:()=>eP(R()),getPublishedData:()=>eM(R()),getActiveRole:()=>e$(R()),getActiveSessionData:()=>ek(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 m({selectors:ez}),eF=new i({selectors:ez}),eW=new y({selectors:ez}),e_=new w({selectors:ez}),eq=new f({selectors:ez}),eO=new d({selectors:ez}),eU=new p({selectors:ez}),eG=new g({selectors:ez}),eH=new u({selectors:ez}),eJ=new r({selectors:ez,domainServicesSelectors:z,environmentSelectors:L}),eK=new a({selectors:ez,domainServicesSelectors:z}),eQ=new c({selectors:ez}),eX=new s({selectors:ez}),eY=new o({selectors:ez}),eZ=new l({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 D({selectors:ez,actions:E,getExtensionSystems:V});return ez};
@@ -86,6 +86,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
86
86
  selectElementSlots: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, {
87
87
  entityElements: Record<string, (props: import("./index.js").CustomPhoenixEntityElementProps) => JSX.Element>;
88
88
  layoutElements: Record<string, (props: import("react").PropsWithChildren) => JSX.Element>;
89
+ assistantFormElements: Record<string, import("react").ComponentType<never>>;
89
90
  hashes: Record<string, string>;
90
91
  }>;
91
92
  selectDataConfig: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").DataSpec | null>;
@@ -129,6 +130,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
129
130
  getElementSlots: () => {
130
131
  entityElements: Record<string, (props: import("./index.js").CustomPhoenixEntityElementProps) => JSX.Element>;
131
132
  layoutElements: Record<string, (props: import("react").PropsWithChildren) => JSX.Element>;
133
+ assistantFormElements: Record<string, import("react").ComponentType<never>>;
132
134
  hashes: Record<string, string>;
133
135
  };
134
136
  getDataConfig: () => import("../index.js").DataSpec | null;
@@ -342,6 +344,8 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
342
344
  webComponent: {
343
345
  selectReadonly: import("@salsita-ai/common/utils").Selector<import("./index.js").WebComponentSelectorState, boolean>;
344
346
  getReadonly: () => boolean;
347
+ selectLocale: import("@salsita-ai/common/utils").Selector<import("./index.js").WebComponentSelectorState, string>;
348
+ getLocale: () => string;
345
349
  getWebcomponentGeneration: () => number;
346
350
  };
347
351
  domainContext: {
@@ -415,6 +419,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
415
419
  getMigrate: () => import("../index.js").MigrateFunction<import("../index.js").DomainEntity<string>>;
416
420
  getActiveMode: () => import("../index.js").DomainMode;
417
421
  getIsInitialized: () => boolean;
422
+ getIsViewMode: () => boolean;
418
423
  getComponentReaderIndexes: () => import("./index.js").ComponentReaderIndexes;
419
424
  getStoreRuntimeDependencies: () => {
420
425
  componentReaderIndexes: import("./index.js").ComponentReaderIndexes;
@@ -524,6 +529,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
524
529
  getMigrate: () => import("../index.js").MigrateFunction<import("../index.js").DomainEntity<string>>;
525
530
  getActiveMode: () => import("../index.js").DomainMode;
526
531
  getIsInitialized: () => boolean;
532
+ getIsViewMode: () => boolean;
527
533
  getComponentReaderIndexes: () => import("./index.js").ComponentReaderIndexes;
528
534
  getStoreRuntimeDependencies: () => {
529
535
  componentReaderIndexes: import("./index.js").ComponentReaderIndexes;
@@ -628,6 +634,13 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
628
634
  };
629
635
  };
630
636
  };
637
+ /**
638
+ * Writers only the runtime that owns the host-property mirror may call, kept off the public
639
+ * `actions`: the host sets `locale` on the element, and the mirror copies it here.
640
+ */
641
+ hostMirrorActions: {
642
+ setLocale: (locale: string) => void;
643
+ };
631
644
  };
632
645
  export type DomainRuntimeSlices = ReturnType<typeof createDomainRuntimeSlices>;
633
646
  export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>, 'getSubject'>) => {
@@ -684,6 +697,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
684
697
  selectElementSlots: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, {
685
698
  entityElements: Record<string, (props: import("./index.js").CustomPhoenixEntityElementProps) => JSX.Element>;
686
699
  layoutElements: Record<string, (props: import("react").PropsWithChildren) => JSX.Element>;
700
+ assistantFormElements: Record<string, import("react").ComponentType<never>>;
687
701
  hashes: Record<string, string>;
688
702
  }>;
689
703
  selectDataConfig: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").DataSpec | null>;
@@ -727,6 +741,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
727
741
  getElementSlots: () => {
728
742
  entityElements: Record<string, (props: import("./index.js").CustomPhoenixEntityElementProps) => JSX.Element>;
729
743
  layoutElements: Record<string, (props: import("react").PropsWithChildren) => JSX.Element>;
744
+ assistantFormElements: Record<string, import("react").ComponentType<never>>;
730
745
  hashes: Record<string, string>;
731
746
  };
732
747
  getDataConfig: () => import("../index.js").DataSpec | null;
@@ -940,6 +955,8 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
940
955
  webComponent: {
941
956
  selectReadonly: import("@salsita-ai/common/utils").Selector<import("./index.js").WebComponentSelectorState, boolean>;
942
957
  getReadonly: () => boolean;
958
+ selectLocale: import("@salsita-ai/common/utils").Selector<import("./index.js").WebComponentSelectorState, string>;
959
+ getLocale: () => string;
943
960
  getWebcomponentGeneration: () => number;
944
961
  };
945
962
  domainContext: {
@@ -1013,6 +1030,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
1013
1030
  getMigrate: () => import("../index.js").MigrateFunction<import("../index.js").DomainEntity<string>>;
1014
1031
  getActiveMode: () => import("../index.js").DomainMode;
1015
1032
  getIsInitialized: () => boolean;
1033
+ getIsViewMode: () => boolean;
1016
1034
  getComponentReaderIndexes: () => import("./index.js").ComponentReaderIndexes;
1017
1035
  getStoreRuntimeDependencies: () => {
1018
1036
  componentReaderIndexes: import("./index.js").ComponentReaderIndexes;
@@ -1122,6 +1140,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
1122
1140
  getMigrate: () => import("../index.js").MigrateFunction<import("../index.js").DomainEntity<string>>;
1123
1141
  getActiveMode: () => import("../index.js").DomainMode;
1124
1142
  getIsInitialized: () => boolean;
1143
+ getIsViewMode: () => boolean;
1125
1144
  getComponentReaderIndexes: () => import("./index.js").ComponentReaderIndexes;
1126
1145
  getStoreRuntimeDependencies: () => {
1127
1146
  componentReaderIndexes: import("./index.js").ComponentReaderIndexes;
@@ -1226,6 +1245,13 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
1226
1245
  };
1227
1246
  };
1228
1247
  };
1248
+ /**
1249
+ * Writers only the runtime that owns the host-property mirror may call, kept off the public
1250
+ * `actions`: the host sets `locale` on the element, and the mirror copies it here.
1251
+ */
1252
+ hostMirrorActions: {
1253
+ setLocale: (locale: string) => void;
1254
+ };
1229
1255
  getState: () => DomainRuntimeState;
1230
1256
  subscribe: (callback: () => void) => () => void;
1231
1257
  };
@@ -1 +1 @@
1
- import{BehaviorSubject as e}from"rxjs";import{createAccessInfoActions as t,createAccessInfoSelectors as n,initializeAccessInfo as a}from"./access/index.js";import{createDomainContextActions as o,createDomainContextSelectors as i,initializeDomainContext as s}from"./domain-context/index.js";import{createDomainDataActions as r,createDomainDataSelectors as m,initializeDomainData as l}from"./domain-data/index.js";import{createDomainServicesSelectors as d}from"./domain-services/index.js";import{createEnvironmentActions as c,createEnvironmentSelectors as u,initializeEnvironment as v}from"./environment/index.js";import{createLoadedDataActions as x,createLoadedDataSelectors as p,initializeLoadedData as S}from"./loaded-data/index.js";import{createOverridesActions as f,createOverridesSelectors as g,initializeOverrides as C}from"./overrides/index.js";import{createSessionContextActions as D,createSessionContextSelectors as b,initializeSessionContext as j}from"./session-context/index.js";import{createSpecActions as w,createSpecSelectors as y,initializeSpec as E}from"./spec/index.js";import{createWebComponentActions as z,createWebComponentSelectors as R,initializeWebComponent as T}from"./web-component/index.js";export function createDomainRuntimeSlices(e){let{config:h,getSubject:A,services:I,getExtensionSystems:L}=e,O=w({setSpec:e=>{let t=A(),n=e(t.value.spec);t.next({...t.value,spec:n})}}),W=y({getState:()=>A().value}),k=d({services:I,specSelectors:W}),q=f({setOverrides:e=>{let t=A(),n=e(t.value.overrides);t.next({...t.value,overrides:n})}}),B=g({getState:()=>A().value}),F=u({getState:()=>A().value,overridesSelectors:B}),G=c({setEnvironment:e=>{let t=A(),n=e(t.value.environment);t.next({...t.value,environment:n})}}),H=x({setLoadedData:e=>{let t=A(),n=e(t.value.loadedData);t.next({...t.value,loadedData:n})}}),J=p({getState:()=>A().value}),K=r({setDomainDataState:e=>{let t=A(),n=e(t.value.domainData);t.next({...t.value,domainData:n})}}),M=m({getState:()=>A().value,overridesSelectors:B}),N=D({setSessionContextState:e=>{let t=A(),n=e(t.value.sessionContext);t.next({...t.value,sessionContext:n})}}),P=b({getState:()=>A().value,overridesSelectors:B}),Q=t({setAccessInfoState:e=>{let t=A(),n=e(t.value.access);t.next({...t.value,access:n})}}),U=n({getState:()=>A().value,overridesSelectors:B}),V=z({setWebComponentState:e=>{let t=A(),n=e(t.value.webComponent);t.next({...t.value,webComponent:n})}}),X=R({getState:()=>A().value}),Y=o({setDomainContextState:e=>{let t=A(),n=e(t.value.domainContext);t.next({...t.value,domainContext:n})}}),Z={configurator:i({applicationType:"configurator",getState:()=>A().value,actions:Y.configurator,getExtensionSystems:()=>L?.("configurator")??[],specSelectors:W,accessSelectors:U,webComponentSelectors:X,domainDataSelectors:M,sessionContextSelectors:P,domainServicesSelectors:k,environmentSelectors:F}),admin:i({applicationType:"admin",getState:()=>A().value,actions:Y.admin,getExtensionSystems:()=>L?.("admin")??[],specSelectors:W,accessSelectors:U,webComponentSelectors:X,domainDataSelectors:M,sessionContextSelectors:P,domainServicesSelectors:k,environmentSelectors:F})};return{initialize:()=>({spec:E(h),overrides:C(),environment:v(h),loadedData:S(),domainData:l(),sessionContext:j(),access:a(),webComponent:T(),domainContext:s()}),selectors:{domainServices:k,spec:W,overrides:B,environment:F,loadedData:J,domainData:M,sessionContext:P,access:U,webComponent:X,domainContext:Z},actions:{spec:O,overrides:q,environment:G,loadedData:H,domainData:K,sessionContext:N,access:Q,webComponent:V,domainContext:Y}}}export const createDomainRuntime=t=>{let{config:n,services:a,getExtensionSystems:o}=t,i=null,s=createDomainRuntimeSlices({config:n,getSubject:()=>{if(!i)throw Error("Subject not yet initialized!");return i},services:a,getExtensionSystems:o});return i=new e(s.initialize()),{...s,getState:()=>i.value,subscribe:e=>{let t=i.subscribe(()=>e());return()=>t.unsubscribe()}}};
1
+ import{BehaviorSubject as e}from"rxjs";import{createAccessInfoActions as t,createAccessInfoSelectors as n,initializeAccessInfo as a}from"./access/index.js";import{createDomainContextActions as o,createDomainContextSelectors as i,initializeDomainContext as s}from"./domain-context/index.js";import{createDomainDataActions as r,createDomainDataSelectors as m,initializeDomainData as l}from"./domain-data/index.js";import{createDomainServicesSelectors as d}from"./domain-services/index.js";import{createEnvironmentActions as c,createEnvironmentSelectors as u,initializeEnvironment as v}from"./environment/index.js";import{createLoadedDataActions as x,createLoadedDataSelectors as p,initializeLoadedData as S}from"./loaded-data/index.js";import{createOverridesActions as f,createOverridesSelectors as g,initializeOverrides as C}from"./overrides/index.js";import{createSessionContextActions as D,createSessionContextSelectors as b,initializeSessionContext as j}from"./session-context/index.js";import{createSpecActions as w,createSpecSelectors as y,initializeSpec as E}from"./spec/index.js";import{createWebComponentActions as z,createWebComponentSelectors as R,initializeWebComponent as h}from"./web-component/index.js";export function createDomainRuntimeSlices(e){let{config:A,getSubject:T,services:I,getExtensionSystems:L}=e,M=w({setSpec:e=>{let t=T(),n=e(t.value.spec);t.next({...t.value,spec:n})}}),O=y({getState:()=>T().value}),W=d({services:I,specSelectors:O}),k=f({setOverrides:e=>{let t=T(),n=e(t.value.overrides);t.next({...t.value,overrides:n})}}),q=g({getState:()=>T().value}),B=u({getState:()=>T().value,overridesSelectors:q}),F=c({setEnvironment:e=>{let t=T(),n=e(t.value.environment);t.next({...t.value,environment:n})}}),G=x({setLoadedData:e=>{let t=T(),n=e(t.value.loadedData);t.next({...t.value,loadedData:n})}}),H=p({getState:()=>T().value}),J=r({setDomainDataState:e=>{let t=T(),n=e(t.value.domainData);t.next({...t.value,domainData:n})}}),K=m({getState:()=>T().value,overridesSelectors:q}),N=D({setSessionContextState:e=>{let t=T(),n=e(t.value.sessionContext);t.next({...t.value,sessionContext:n})}}),P=b({getState:()=>T().value,overridesSelectors:q}),Q=t({setAccessInfoState:e=>{let t=T(),n=e(t.value.access);t.next({...t.value,access:n})}}),U=n({getState:()=>T().value,overridesSelectors:q}),{setLocale:V,...X}=z({setWebComponentState:e=>{let t=T(),n=e(t.value.webComponent);t.next({...t.value,webComponent:n})}}),Y=R({getState:()=>T().value}),Z=o({setDomainContextState:e=>{let t=T(),n=e(t.value.domainContext);t.next({...t.value,domainContext:n})}}),$={configurator:i({applicationType:"configurator",getState:()=>T().value,actions:Z.configurator,getExtensionSystems:()=>L?.("configurator")??[],specSelectors:O,accessSelectors:U,webComponentSelectors:Y,domainDataSelectors:K,sessionContextSelectors:P,domainServicesSelectors:W,environmentSelectors:B}),admin:i({applicationType:"admin",getState:()=>T().value,actions:Z.admin,getExtensionSystems:()=>L?.("admin")??[],specSelectors:O,accessSelectors:U,webComponentSelectors:Y,domainDataSelectors:K,sessionContextSelectors:P,domainServicesSelectors:W,environmentSelectors:B})};return{initialize:()=>({spec:E(A),overrides:C(),environment:v(A),loadedData:S(),domainData:l(),sessionContext:j(),access:a(),webComponent:h(),domainContext:s()}),selectors:{domainServices:W,spec:O,overrides:q,environment:B,loadedData:H,domainData:K,sessionContext:P,access:U,webComponent:Y,domainContext:$},actions:{spec:M,overrides:k,environment:F,loadedData:G,domainData:J,sessionContext:N,access:Q,webComponent:X,domainContext:Z},hostMirrorActions:{setLocale:V}}}export const createDomainRuntime=t=>{let{config:n,services:a,getExtensionSystems:o}=t,i=null,s=createDomainRuntimeSlices({config:n,getSubject:()=>{if(!i)throw Error("Subject not yet initialized!");return i},services:a,getExtensionSystems:o});return i=new e(s.initialize()),{...s,getState:()=>i.value,subscribe:e=>{let t=i.subscribe(()=>e());return()=>t.unsubscribe()}}};
@@ -18,7 +18,7 @@ export interface ApplicationEnvironmentConfig {
18
18
  /**
19
19
  * Whether the maintenance "god mode" is enabled — it unlocks destructive admin tooling
20
20
  * (eg. the maintenance menu). Seeded from session storage during mount and toggled at
21
- * runtime via the `window.__salsita.setGodMode` global (see `registerGodModeGlobal`).
21
+ * runtime via the `window.__salsita.setGodMode` global, per runtime (see `SetGodMode`).
22
22
  */
23
23
  readonly godMode: boolean;
24
24
  /**
@@ -10,6 +10,8 @@ export interface ImplementationErrorCollector {
10
10
  */
11
11
  readonly attempt: <T>(check: () => T, fallback: T) => T;
12
12
  readonly add: (error: ImplementationError) => void;
13
+ /** The errors recorded so far, in the order they were recorded. A host that reports them itself, such as the editor, reads them here instead of throwing them. */
14
+ readonly recorded: () => readonly ImplementationError[];
13
15
  /**
14
16
  * Throws the recorded errors as one {@link ImplementationErrors}, in the order they were
15
17
  * recorded. Does nothing when there are none.
@@ -1 +1 @@
1
- import{isImplementationError as r}from"./implementation-error.js";import{ImplementationErrors as t,isImplementationErrors as e}from"./implementation-errors.js";export const createImplementationErrorCollector=()=>{let o=[],n=r=>{o.push(r)};return{add:n,attempt:(t,o)=>{try{return t()}catch(t){if(e(t))return t.errors.forEach(n),o;if(r(t))return n(t),o;throw t}},throwIfAny:()=>{if(o.length>0)throw new t(o)}}};
1
+ import{isImplementationError as r}from"./implementation-error.js";import{ImplementationErrors as t,isImplementationErrors as e}from"./implementation-errors.js";export const createImplementationErrorCollector=()=>{let o=[],n=r=>{o.push(r)};return{add:n,attempt:(t,o)=>{try{return t()}catch(t){if(e(t))return t.errors.forEach(n),o;if(r(t))return n(t),o;throw t}},recorded:()=>[...o],throwIfAny:()=>{if(o.length>0)throw new t(o)}}};
@@ -1,7 +1,7 @@
1
1
  export * from './domain-runtime.js';
2
2
  export * from './domain-context/index.js';
3
3
  export * from './domain-services/index.js';
4
- export { type ImplementationErrorCode, type ImplementationErrorProps, type StartupStage, ImplementationError, ImplementationErrors, isImplementationError, isImplementationErrors, toImplementationErrors, } from './errors/index.js';
4
+ export { type ImplementationErrorCode, type ImplementationErrorCollector, type ImplementationErrorProps, type StartupStage, ImplementationError, ImplementationErrors, createImplementationErrorCollector, isImplementationError, isImplementationErrors, toImplementationErrors, } from './errors/index.js';
5
5
  export * from './spec/index.js';
6
6
  export * from './environment/index.js';
7
7
  export * from './access/index.js';
@@ -1 +1 @@
1
- export*from"./domain-runtime.js";export*from"./domain-context/index.js";export*from"./domain-services/index.js";export{ImplementationError,ImplementationErrors,isImplementationError,isImplementationErrors,toImplementationErrors}from"./errors/index.js";export*from"./spec/index.js";export*from"./environment/index.js";export*from"./access/index.js";export*from"./overrides/index.js";export*from"./loaded-data/index.js";export*from"./domain-data/index.js";export*from"./session-context/index.js";export*from"./web-component/index.js";
1
+ export*from"./domain-runtime.js";export*from"./domain-context/index.js";export*from"./domain-services/index.js";export{ImplementationError,ImplementationErrors,createImplementationErrorCollector,isImplementationError,isImplementationErrors,toImplementationErrors}from"./errors/index.js";export*from"./spec/index.js";export*from"./environment/index.js";export*from"./access/index.js";export*from"./overrides/index.js";export*from"./loaded-data/index.js";export*from"./domain-data/index.js";export*from"./session-context/index.js";export*from"./web-component/index.js";
@@ -4,6 +4,6 @@ export * from './actions.js';
4
4
  export * from './create-violation-expressions.js';
5
5
  export * from './initialize.js';
6
6
  export * from './memoize-expression.js';
7
- export { type PhoenixEntityElementProps, type PhoenixEntityElementRegistration, type PhoenixLayoutElementRegistration, type PhoenixIconRegistration, type ElementRegistration, type CustomPhoenixEntityElementProps, type PhoenixLayoutElementDefinition, type PhoenixEntityElementDefinition, type CreateCustomPhoenixLayoutElement, type CreateCustomPhoenixEntityElement, createPhoenixLayoutElement, createPhoenixEntityElement, createCustomPhoenixLayoutElement, createCustomPhoenixEntityElement, resolveElementModule, resolveElementModules, type PhoenixHandlerDefinition, type SystemPhoenixHandlerDefinition, type PhoenixHandlerRegistration, type SystemPhoenixHandlerRegistration, type SystemPhoenixAsyncHandlerDefinition, type SystemPhoenixAsyncHandlerRegistration, type HandlerRegistration, type CreatePhoenixHandler, createPhoenixHandler, createSystemPhoenixHandler, createSystemPhoenixAsyncHandler, resolveHandlerModule, resolveHandlerModules, type ProjectModule, resolveActionModules, resolveComponentOpticModules, type ExpressionModule, resolveExpressionModules, resolveImportedTransformers, resolveTransformerModule, resolveTransformerModules, resolveInvariantModules, } from './module-checks/index.js';
7
+ export { type PhoenixEntityElementProps, type PhoenixEntityElementRegistration, type PhoenixLayoutElementRegistration, type PhoenixIconRegistration, type AssistantFormElementRegistration, type ElementRegistration, type CustomPhoenixEntityElementProps, type PhoenixLayoutElementDefinition, type PhoenixEntityElementDefinition, type CreateCustomPhoenixLayoutElement, type CreateCustomPhoenixEntityElement, createPhoenixLayoutElement, createPhoenixEntityElement, createCustomPhoenixLayoutElement, createCustomPhoenixEntityElement, createAssistantFormElement, findAssistantFormElementErrors, resolveElementModule, resolveElementModules, type PhoenixHandlerDefinition, type SystemPhoenixHandlerDefinition, type PhoenixHandlerRegistration, type SystemPhoenixHandlerRegistration, type SystemPhoenixAsyncHandlerDefinition, type SystemPhoenixAsyncHandlerRegistration, type HandlerRegistration, type CreatePhoenixHandler, createPhoenixHandler, createSystemPhoenixHandler, createSystemPhoenixAsyncHandler, resolveHandlerModule, resolveHandlerModules, type ProjectModule, resolveActionModules, resolveComponentOpticModules, type ExpressionModule, resolveExpressionModules, type ValuedExpressions, mergeExpressionModules, resolveImportedTransformers, resolveTransformerModule, resolveTransformerModules, resolveInvariantModules, } from './module-checks/index.js';
8
8
  export * from './prepare-action-implementations.js';
9
9
  export * from './prepare-domain-expressions.js';
@@ -1 +1 @@
1
- export*from"./selectors.js";export*from"./actions.js";export*from"./create-violation-expressions.js";export*from"./initialize.js";export*from"./memoize-expression.js";export{createPhoenixLayoutElement,createPhoenixEntityElement,createCustomPhoenixLayoutElement,createCustomPhoenixEntityElement,resolveElementModule,resolveElementModules,createPhoenixHandler,createSystemPhoenixHandler,createSystemPhoenixAsyncHandler,resolveHandlerModule,resolveHandlerModules,resolveActionModules,resolveComponentOpticModules,resolveExpressionModules,resolveImportedTransformers,resolveTransformerModule,resolveTransformerModules,resolveInvariantModules}from"./module-checks/index.js";export*from"./prepare-action-implementations.js";export*from"./prepare-domain-expressions.js";
1
+ export*from"./selectors.js";export*from"./actions.js";export*from"./create-violation-expressions.js";export*from"./initialize.js";export*from"./memoize-expression.js";export{createPhoenixLayoutElement,createPhoenixEntityElement,createCustomPhoenixLayoutElement,createCustomPhoenixEntityElement,createAssistantFormElement,findAssistantFormElementErrors,resolveElementModule,resolveElementModules,createPhoenixHandler,createSystemPhoenixHandler,createSystemPhoenixAsyncHandler,resolveHandlerModule,resolveHandlerModules,resolveActionModules,resolveComponentOpticModules,resolveExpressionModules,mergeExpressionModules,resolveImportedTransformers,resolveTransformerModule,resolveTransformerModules,resolveInvariantModules}from"./module-checks/index.js";export*from"./prepare-action-implementations.js";export*from"./prepare-domain-expressions.js";
@@ -1 +1 @@
1
- import{SessionRole as e}from"@salsita-ai/contracts/api";import{createImplementationErrorCollector as t}from"../errors/index.js";import{resolveComponentOpticModules as a,resolveElementModule as n,resolveHandlerModule as o,resolveImportedTransformers as i,resolveTransformerModule as s}from"./module-checks/index.js";let r=(e,t,a)=>e.flatMap(e=>a.attempt(()=>t(e),[]));export const initializeSpec=m=>{let c=m.adminDomain.presets[0];if(!c)throw Error("Cannot register application spec because admin preset is required.");let d=t(),l=r(m.handlers,o,d),p=r(m.elements,n,d),y=r(m.transformers?.importedTransformers??[],e=>[s(e)],d),u=r(m.domain.componentOptics,e=>a([e]),d),f=r(m.adminDomain.componentOptics,e=>a([e]),d);d.throwIfAny();let x=(e=>{let t={};for(let a of e)t[a.name]=(void 0)??a.name;return t})(l),g=(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})(p),v=m.transformers?.specTransformers??[];return{version:m.version,dataConfig:m.dataSpec??null,chunks:m.chunks,publishedDataHash:m.publishedDataHash,initialPublishedData:m.initialPublishedData,canCreate:m.features?.acl?.canCreate??Object.values(e),enableAdminRelease:m.features?.enableAdminRelease??!1,textLanguages:m.domain.textLanguages??m.adminDomain.textLanguages??["en"],baseResourcesUrl:m.resources?.baseResourcesUrl??m.defaultEnvs?.resourcesUrl??"",configurator:{factory:m.domain.domainFactory,presets:m.domain.presets,aliasMap:m.domain.domainFactory.context.aliasMap,entityReflections:m.domain.domainFactory.context.entityReflections,$entityReflections:m.domain.domainFactory.context.$entityReflections,expressions:m.domain.domainFactory.context.expressions,actions:m.domain.domainFactory.context.actions,actionImplementations:m.domain.domainFactory.context.actionImplementations,allowedRootEntityTypes:m.domain.domainFactory.context.allowedRootEntityTypes,migrate:m.domain.domainFactory.context.migrate,componentOptics:u,createTransformers:e=>i(y,v,e),navigationStates:m.navigation?.navigationStates??[],viewStates:m.navigation?.viewStates??[],toolStates:m.navigation?.toolStates??[],exportStates:m.navigation?.exportStates??[],handlers:l,handlerHashes:x,elements:p,defaultElements:m.defaultElements??[],elementHashes:g,appLoader:m.ui?.appLoader??"universal",preview:m.ui?.preview??"auto",alwaysExpand:m.ui?.alwaysExpand??!1,theme:m.ui?.theme??{},assistant:m.assistant??null,deploymentQueryDisabled:m.resources?.deploymentQueryDisabled??!1,prefetchTextureUrls:m.resources?.prefetchTextureUrls??[],modelVersion:m.domain.domainFactory.modelVersion},admin:{factory:m.adminDomain.domainFactory,modelVersion:m.adminDomain.domainFactory.modelVersion,aliasMap:m.adminDomain.domainFactory.context.aliasMap,entityReflections:m.adminDomain.domainFactory.context.entityReflections,$entityReflections:m.adminDomain.domainFactory.context.$entityReflections,expressions:m.adminDomain.domainFactory.context.expressions,actions:m.adminDomain.domainFactory.context.actions,actionImplementations:m.adminDomain.domainFactory.context.actionImplementations,allowedRootEntityTypes:m.adminDomain.domainFactory.context.allowedRootEntityTypes,migrate:m.adminDomain.domainFactory.context.migrate,preset:c,componentOptics:f,navigationStates:m.adminNavigation?.navigationStates??[],viewStates:m.adminNavigation?.viewStates??[],handlers:l,handlerHashes:x,elements:p,elementHashes:g}}};
1
+ import{SessionRole as e}from"@salsita-ai/contracts/api";import{createImplementationErrorCollector as t}from"../errors/index.js";import{resolveComponentOpticModules as a,resolveElementModule as n,resolveHandlerModule as o,resolveImportedTransformers as i,resolveTransformerModule as s}from"./module-checks/index.js";let r=(e,t,a)=>e.flatMap(e=>a.attempt(()=>t(e),[]));export const initializeSpec=m=>{let c=m.adminDomain.presets[0];if(!c)throw Error("Cannot register application spec because admin preset is required.");let d=t(),l=r(m.handlers,o,d),p=r(m.elements,n,d),y=r(m.transformers?.importedTransformers??[],e=>[s(e)],d),u=r(m.domain.componentOptics,e=>a([e]),d),f=r(m.adminDomain.componentOptics,e=>a([e]),d);d.throwIfAny();let x=(e=>{let t={};for(let a of e)t[a.name]=(void 0)??a.name;return t})(l),g=(e=>{let t={},a=0;for(let n of e)if("assistantFormElement"!==n.type)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})(p),v=m.transformers?.specTransformers??[];return{version:m.version,dataConfig:m.dataSpec??null,chunks:m.chunks,publishedDataHash:m.publishedDataHash,initialPublishedData:m.initialPublishedData,canCreate:m.features?.acl?.canCreate??Object.values(e),enableAdminRelease:m.features?.enableAdminRelease??!1,textLanguages:m.domain.textLanguages??m.adminDomain.textLanguages??["en"],baseResourcesUrl:m.resources?.baseResourcesUrl??m.defaultEnvs?.resourcesUrl??"",configurator:{factory:m.domain.domainFactory,presets:m.domain.presets,aliasMap:m.domain.domainFactory.context.aliasMap,entityReflections:m.domain.domainFactory.context.entityReflections,$entityReflections:m.domain.domainFactory.context.$entityReflections,expressions:m.domain.domainFactory.context.expressions,actions:m.domain.domainFactory.context.actions,actionImplementations:m.domain.domainFactory.context.actionImplementations,allowedRootEntityTypes:m.domain.domainFactory.context.allowedRootEntityTypes,migrate:m.domain.domainFactory.context.migrate,componentOptics:u,createTransformers:e=>i(y,v,e),navigationStates:m.navigation?.navigationStates??[],viewStates:m.navigation?.viewStates??[],toolStates:m.navigation?.toolStates??[],exportStates:m.navigation?.exportStates??[],handlers:l,handlerHashes:x,elements:p,defaultElements:m.defaultElements??[],elementHashes:g,appLoader:m.ui?.appLoader??"universal",preview:m.ui?.preview??"auto",alwaysExpand:m.ui?.alwaysExpand??!1,theme:m.ui?.theme??{},assistant:m.assistant??null,deploymentQueryDisabled:m.resources?.deploymentQueryDisabled??!1,prefetchTextureUrls:m.resources?.prefetchTextureUrls??[],modelVersion:m.domain.domainFactory.modelVersion},admin:{factory:m.adminDomain.domainFactory,modelVersion:m.adminDomain.domainFactory.modelVersion,aliasMap:m.adminDomain.domainFactory.context.aliasMap,entityReflections:m.adminDomain.domainFactory.context.entityReflections,$entityReflections:m.adminDomain.domainFactory.context.$entityReflections,expressions:m.adminDomain.domainFactory.context.expressions,actions:m.adminDomain.domainFactory.context.actions,actionImplementations:m.adminDomain.domainFactory.context.actionImplementations,allowedRootEntityTypes:m.adminDomain.domainFactory.context.allowedRootEntityTypes,migrate:m.adminDomain.domainFactory.context.migrate,preset:c,componentOptics:f,navigationStates:m.adminNavigation?.navigationStates??[],viewStates:m.adminNavigation?.viewStates??[],handlers:l,handlerHashes:x,elements:p,elementHashes:g}}};
@@ -21,20 +21,23 @@ export type PhoenixIconRegistration = {
21
21
  type: 'icon';
22
22
  elements: ReadonlyArray<(props: SvgIconProps) => JSX.Element>;
23
23
  };
24
- export type ElementRegistration = PhoenixEntityElementRegistration | PhoenixLayoutElementRegistration | PhoenixIconRegistration;
24
+ /**
25
+ * The component of one of the project's own assistant form elements, registered under the name its
26
+ * YAML declares it by in `assistant.formElements`. The component's props depend on the element's
27
+ * role and are typed by `phx.frontend.createAssistantFormElement` from the YAML; the registration
28
+ * itself is untyped, since the panel validates an element's attributes against the very declaration
29
+ * its props are typed from.
30
+ */
31
+ export type AssistantFormElementRegistration = {
32
+ type: 'assistantFormElement';
33
+ name: string;
34
+ element: (props: never) => ReactNode;
35
+ };
36
+ export type ElementRegistration = PhoenixEntityElementRegistration | PhoenixLayoutElementRegistration | PhoenixIconRegistration | AssistantFormElementRegistration;
25
37
  export interface CustomPhoenixEntityElementProps {
26
38
  entityId: DomainEntityId<string>;
27
39
  children?: ReactNode;
28
40
  }
29
- export interface SystemElementRegistry {
30
- layoutElements: Record<string, (props: PropsWithChildren) => JSX.Element>;
31
- entityElements: Record<string, (props: CustomPhoenixEntityElementProps) => JSX.Element>;
32
- }
33
- /**
34
- * Internal registry for system-level elements registered at import time
35
- * via createPhoenixLayoutElement / createPhoenixEntityElement.
36
- */
37
- export declare const systemElementRegistry: SystemElementRegistry;
38
41
  type SchemaOfPhoenixLayoutElement<SCHEMA extends {
39
42
  kind: string;
40
43
  props?: Record<string, unknown>;
@@ -61,7 +64,12 @@ export interface PhoenixLayoutElementDefinition<SCHEMA extends {
61
64
  }>;
62
65
  }
63
66
  /**
64
- * For internal use in PHX only.
67
+ * Returns the component of a built-in layout element definition; it registers nothing. A layout
68
+ * element reaches the runtime only through a registration in `elements` or `defaultElements`.
69
+ *
70
+ * @deprecated Register a layout element with `createCustomPhoenixLayoutElement(name, component)`;
71
+ * the built-in ones are in `defaultConfiguratorElements` and `defaultAdminElements`. This API will
72
+ * be removed in a future version.
65
73
  */
66
74
  export declare const createPhoenixLayoutElement: <SCHEMA extends {
67
75
  kind: string;
@@ -71,6 +79,8 @@ export declare const createPhoenixLayoutElement: <SCHEMA extends {
71
79
  }>;
72
80
  export declare const createCustomPhoenixLayoutElement: (name: string, element: (props: PropsWithChildren) => JSX.Element) => PhoenixLayoutElementRegistration;
73
81
  export type CreateCustomPhoenixLayoutElement = (name: string, element: (props: PropsWithChildren) => JSX.Element) => PhoenixLayoutElementRegistration;
82
+ /** Registers a component as the assistant form element of the name. */
83
+ export declare const createAssistantFormElement: (name: string, element: (props: never) => ReactNode) => AssistantFormElementRegistration;
74
84
  type SchemaOfPhoenixElement<SCHEMA extends {
75
85
  kind: string;
76
86
  props?: Record<string, unknown>;
@@ -95,7 +105,12 @@ export interface PhoenixEntityElementDefinition<SCHEMA extends {
95
105
  component: React.FunctionComponent<SCHEMA['props'] & CustomPhoenixEntityElementProps>;
96
106
  }
97
107
  /**
98
- * For internal use in PHX only.
108
+ * Returns the component of a built-in entity element definition; it registers nothing. An entity
109
+ * element reaches the runtime only through a registration in `elements` or `defaultElements`.
110
+ *
111
+ * @deprecated Register an entity element with `createCustomPhoenixEntityElement(name, component)`;
112
+ * the built-in ones are in `defaultConfiguratorElements` and `defaultAdminElements`. This API will
113
+ * be removed in a future version.
99
114
  */
100
115
  export declare const createPhoenixEntityElement: <SCHEMA extends {
101
116
  kind: string;
@@ -1 +1 @@
1
- import{SHARED_FOLDER_HINT as e,isRecord as t,resolveListModule as n}from"./project-modules.js";export const systemElementRegistry={layoutElements:{},entityElements:{}};export const createPhoenixLayoutElement=e=>(systemElementRegistry.layoutElements[e.schema.properties.kind.enum[0]]=e.component,e.component);export const createCustomPhoenixLayoutElement=(e,t)=>({type:"layout",name:e,element:t});export const createPhoenixEntityElement=e=>(systemElementRegistry.entityElements[e.schema.properties.kind.enum[0]]=e.component,e.component);export const createCustomPhoenixEntityElement=(e,t)=>({type:"entity",name:e,element:t});let o={expected:"an element registration, or an array of them",fix:`Create it with phx.frontend.createCustomPhoenixLayoutElement(...) or phx.frontend.createCustomPhoenixEntityElement(...), ${e}.`},r=e=>!!t(e)&&("icon"===e.type?Array.isArray(e.elements):("entity"===e.type||"layout"===e.type)&&"string"==typeof e.name&&"function"==typeof e.element);export const resolveElementModule=e=>n(e,o,r);export const resolveElementModules=e=>e.flatMap(resolveElementModule);
1
+ import{SHARED_FOLDER_HINT as e,isRecord as t,resolveListModule as o}from"./project-modules.js";export const createPhoenixLayoutElement=e=>e.component;export const createCustomPhoenixLayoutElement=(e,t)=>({type:"layout",name:e,element:t});export const createAssistantFormElement=(e,t)=>({type:"assistantFormElement",name:e,element:t});export const createPhoenixEntityElement=e=>e.component;export const createCustomPhoenixEntityElement=(e,t)=>({type:"entity",name:e,element:t});let n={expected:"an element registration, or an array of them",fix:`Create it with phx.frontend.createCustomPhoenixLayoutElement(...), phx.frontend.createCustomPhoenixEntityElement(...) or phx.frontend.createAssistantFormElement(...), ${e}.`},r=e=>!!t(e)&&("icon"===e.type?Array.isArray(e.elements):("entity"===e.type||"layout"===e.type||"assistantFormElement"===e.type)&&"string"==typeof e.name&&"function"==typeof e.element);export const resolveElementModule=e=>o(e,n,r);export const resolveElementModules=e=>e.flatMap(resolveElementModule);
@@ -0,0 +1,12 @@
1
+ import { ImplementationError } from '../../errors/index.js';
2
+ import type { ElementRegistration } from './element-registration.js';
3
+ /**
4
+ * The mistakes in pairing the project's assistant form elements with their components: an element
5
+ * the YAML declares under `assistant.formElements` that no file in `src/elements/` registers, or
6
+ * that two register, and a registration of a name the YAML does not declare. Spec parsing cannot
7
+ * see which name a file registers, so the application checks this when it starts and on every hot
8
+ * reload, on the registrations of all element files together.
9
+ */
10
+ export declare const findAssistantFormElementErrors: (formElements: ReadonlyArray<{
11
+ readonly name: string;
12
+ }>, elements: readonly ElementRegistration[]) => readonly ImplementationError[];
@@ -0,0 +1 @@
1
+ import{ImplementationError as e}from"../../errors/index.js";export const findAssistantFormElementErrors=(t,n)=>{let s=n.flatMap(e=>"assistantFormElement"===e.type?[e.name]:[]),r=new Set(t.map(({name:e})=>e));return[...t.flatMap(({name:t})=>{let n=s.filter(e=>e===t).length;return 0===n?[new e({code:"MISSING_IMPLEMENTATION",origin:null,problem:`The assistant form element "${t}" declared under assistant.formElements has no component`,fix:`Add a file to src/elements/ that default-exports phx.frontend.createAssistantFormElement('${t}', Component), or remove the element from the YAML.`})]:n>1?[new e({code:"DUPLICATE_DEFINITION",origin:null,problem:`The assistant form element "${t}" is registered by ${n} files in src/elements/`,fix:`Each element has one component. Keep one phx.frontend.createAssistantFormElement('${t}', …) and remove the others.`})]:[]}),...[...new Set(s)].filter(e=>!r.has(e)).map(t=>new e({code:"MISSING_IMPLEMENTATION",origin:null,problem:`A file in src/elements/ registers the assistant form element "${t}", which assistant.formElements does not declare`,fix:`Declare "${t}" under assistant.formElements with its description, role and attributes, so the assistant knows the element, or remove the registration.`}))]};
@@ -1,8 +1,10 @@
1
- export { type PhoenixEntityElementProps, type PhoenixEntityElementRegistration, type PhoenixLayoutElementRegistration, type PhoenixIconRegistration, type ElementRegistration, type CustomPhoenixEntityElementProps, type PhoenixLayoutElementDefinition, type PhoenixEntityElementDefinition, type CreateCustomPhoenixLayoutElement, type CreateCustomPhoenixEntityElement, createPhoenixLayoutElement, createPhoenixEntityElement, createCustomPhoenixLayoutElement, createCustomPhoenixEntityElement, resolveElementModule, resolveElementModules, systemElementRegistry, } from './element-registration.js';
1
+ export { type PhoenixEntityElementProps, type PhoenixEntityElementRegistration, type PhoenixLayoutElementRegistration, type PhoenixIconRegistration, type AssistantFormElementRegistration, type ElementRegistration, type CustomPhoenixEntityElementProps, type PhoenixLayoutElementDefinition, type PhoenixEntityElementDefinition, type CreateCustomPhoenixLayoutElement, type CreateCustomPhoenixEntityElement, createPhoenixLayoutElement, createPhoenixEntityElement, createCustomPhoenixLayoutElement, createCustomPhoenixEntityElement, createAssistantFormElement, resolveElementModule, resolveElementModules, } from './element-registration.js';
2
2
  export { type PhoenixHandlerDefinition, type SystemPhoenixHandlerDefinition, type PhoenixHandlerRegistration, type SystemPhoenixHandlerRegistration, type SystemPhoenixAsyncHandlerDefinition, type SystemPhoenixAsyncHandlerRegistration, type HandlerRegistration, type CreatePhoenixHandler, createPhoenixHandler, createSystemPhoenixHandler, createSystemPhoenixAsyncHandler, resolveHandlerModule, resolveHandlerModules, } from './handler-registration.js';
3
+ export { findAssistantFormElementErrors } from './find-assistant-form-element-errors.js';
3
4
  export { type ProjectModule } from './project-modules.js';
4
5
  export { resolveActionModules } from './resolve-action-modules.js';
5
6
  export { resolveComponentOpticModules } from './resolve-component-optic-modules.js';
7
+ export { type ValuedExpressions, mergeExpressionModules } from './merge-expression-modules.js';
6
8
  export { type ExpressionModule, resolveExpressionModules } from './resolve-expression-modules.js';
7
9
  export { resolveImportedTransformers, resolveTransformerModule, resolveTransformerModules, } from './resolve-imported-transformers.js';
8
10
  export { type AnyInvariant, resolveInvariantModules } from './resolve-invariant-modules.js';
@@ -1 +1 @@
1
- export{createPhoenixLayoutElement,createPhoenixEntityElement,createCustomPhoenixLayoutElement,createCustomPhoenixEntityElement,resolveElementModule,resolveElementModules,systemElementRegistry}from"./element-registration.js";export{createPhoenixHandler,createSystemPhoenixHandler,createSystemPhoenixAsyncHandler,resolveHandlerModule,resolveHandlerModules}from"./handler-registration.js";export{resolveActionModules}from"./resolve-action-modules.js";export{resolveComponentOpticModules}from"./resolve-component-optic-modules.js";export{resolveExpressionModules}from"./resolve-expression-modules.js";export{resolveImportedTransformers,resolveTransformerModule,resolveTransformerModules}from"./resolve-imported-transformers.js";export{resolveInvariantModules}from"./resolve-invariant-modules.js";
1
+ export{createPhoenixLayoutElement,createPhoenixEntityElement,createCustomPhoenixLayoutElement,createCustomPhoenixEntityElement,createAssistantFormElement,resolveElementModule,resolveElementModules}from"./element-registration.js";export{createPhoenixHandler,createSystemPhoenixHandler,createSystemPhoenixAsyncHandler,resolveHandlerModule,resolveHandlerModules}from"./handler-registration.js";export{findAssistantFormElementErrors}from"./find-assistant-form-element-errors.js";export{resolveActionModules}from"./resolve-action-modules.js";export{resolveComponentOpticModules}from"./resolve-component-optic-modules.js";export{mergeExpressionModules}from"./merge-expression-modules.js";export{resolveExpressionModules}from"./resolve-expression-modules.js";export{resolveImportedTransformers,resolveTransformerModule,resolveTransformerModules}from"./resolve-imported-transformers.js";export{resolveInvariantModules}from"./resolve-invariant-modules.js";
@@ -0,0 +1,23 @@
1
+ import type { AnonymousExpression, AnyExpressions } from '../../../core/index.js';
2
+ import { type ImplementationErrorCollector } from '../../errors/index.js';
3
+ import { type ProjectModule } from './project-modules.js';
4
+ type AnyAnonymousExpression = AnonymousExpression<any, any, any, any, any, any, unknown>;
5
+ type AliasMap = Readonly<Record<string, readonly string[]>>;
6
+ /** The expression names that already have a value, by entity type, so no project file may define them. */
7
+ export type ValuedExpressions = ReadonlyMap<string, ReadonlySet<string>>;
8
+ /** Whether a file's default export has the shape of the expressions folder contract. */
9
+ export declare const isExpressionExport: (value: unknown) => value is Record<string, Record<string, AnyAnonymousExpression>>;
10
+ /**
11
+ * Merges the `src/expressions/` files (or `src/admin/expressions/`) into the expressions of each
12
+ * entity type. It checks each file against the folder contract, rejects an expression that two
13
+ * files, or two keys of one file, define for one entity type after the aliases of `aliasMap` are
14
+ * expanded, and rejects an expression listed in `valued`, which the application gives a value
15
+ * already. Each accepted expression gets its `origin`: its name and the entity type or alias the
16
+ * file keys it by.
17
+ *
18
+ * Each file is checked on its own: a wrong file is recorded in `errors` with all its conflicts and
19
+ * left out, and the files after it still merge. Without `errors`, everything recorded is thrown at
20
+ * the end as one `ImplementationErrors`.
21
+ */
22
+ export declare const mergeExpressionModules: (modules: readonly ProjectModule[], aliasMap: AliasMap, errors?: ImplementationErrorCollector, valued?: ValuedExpressions) => AnyExpressions;
23
+ export {};
@@ -0,0 +1 @@
1
+ import{ImplementationError as e,ImplementationErrors as o,createImplementationErrorCollector as t}from"../../errors/index.js";import{SHARED_FOLDER_HINT as i,createContractError as n,isRecord as r}from"./project-modules.js";let s={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/), ${i}.`},a=e=>r(e)&&"function"==typeof e.evaluate,p=e=>r(e)&&Object.values(e).every(a);export const isExpressionExport=e=>r(e)&&Object.values(e).every(p);let l=(o,t,i)=>new e({code:"DUPLICATE_DEFINITION",origin:o,problem:`Duplicate expression ${t}`,fix:i}),d=(e,t,i,r)=>{if(!isExpressionExport(e.exports))throw n(e,s,e.exports);let a=[],p=new Map,d=[];for(let[o,n]of Object.entries(e.exports))for(let s of t[o]??[o])for(let[t,f]of Object.entries(n)){let n=`${s}.${t}`,h=p.get(n),m=i.get(n);r.get(s)?.has(t)?d.push(l(e.origin,n,"The application already gives it a value (an $eval, $msg or read in the spec, a relation, the $violations of its invariants, or a built-in expression of the SDK), so this implementation would be ignored. Remove it from the file, or declare the expression in the spec with a type and no value.")):void 0!==h?d.push(l(e.origin,n,`The file defines it on both ${h} and ${o}, so its value would depend on the order the definitions are merged in. Define it once, on the alias or on the entity type.`)):void 0!==m&&d.push(l(e.origin,n,`It is also defined in ${m}, so its value would depend on file order. Keep one definition and remove the other.`)),p.set(n,o),a.push({key:n,entityType:s,typeOrAlias:o,name:t,expression:f})}if(d.length>0)throw new o(d);return a};export const mergeExpressionModules=(e,o,i,n=new Map)=>{let r=i??t(),s=new Map,a={};for(let t of e)for(let{key:e,entityType:i,typeOrAlias:p,name:l,expression:f}of r.attempt(()=>d(t,o,s,n),[]))s.set(e,t.origin),a[i]={...a[i],[l]:{...f,origin:{name:l,typeOrAlias:p}}};return void 0===i&&r.throwIfAny(),a};
@@ -1,5 +1,5 @@
1
1
  import type { AnonymousExpression } from '../../../core/index.js';
2
- import { type ProjectModule } from './project-modules.js';
2
+ import type { ProjectModule } from './project-modules.js';
3
3
  /** The expressions of one validated expression file, keyed by entity type or alias, then by expression name. */
4
4
  export interface ExpressionModule {
5
5
  readonly origin: string;
@@ -7,9 +7,8 @@ export interface ExpressionModule {
7
7
  }
8
8
  type AnyAnonymousExpression = AnonymousExpression<any, any, any, any, any, any, unknown>;
9
9
  /**
10
- * Validates the `src/expressions/` files and rejects an expression that two files define for the
11
- * same entity type. Merging stays with the caller, because the domain builder and the editor expand
12
- * aliases at different points; within one file the builder's own duplicate check applies.
10
+ * Validates the `src/expressions/` files with the checks of {@link mergeExpressionModules}, throws
11
+ * everything they find as one `ImplementationErrors`, and returns each file on its own, unmerged.
13
12
  */
14
13
  export declare const resolveExpressionModules: (modules: readonly ProjectModule[], aliasMap: Readonly<Record<string, readonly string[]>>) => readonly ExpressionModule[];
15
14
  export {};
@@ -1 +1 @@
1
- import{SHARED_FOLDER_HINT as e,createContractError as o,isRecord as t}from"./project-modules.js";let i={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/), ${e}.`},r=e=>t(e)&&"function"==typeof e.evaluate,n=e=>t(e)&&Object.values(e).every(r);export const resolveExpressionModules=(e,r)=>{let s=new Map;return e.map(e=>{let p;if(!(t(p=e.exports)&&Object.values(p).every(n)))throw o(e,i,e.exports);for(let[o,t]of Object.entries(e.exports))for(let i of r[o]??[o])for(let o of Object.keys(t)){let t=`${i}.${o}`,r=s.get(t);if(void 0!==r&&r!==e.origin)throw Error(`Duplicate expression ${t}: it is defined in both ${r} and ${e.origin}, which would make its value depend on file order. Keep one definition and remove the other.`);s.set(t,e.origin)}return{origin:e.origin,expressions:e.exports}})};
1
+ import{isExpressionExport as e,mergeExpressionModules as o}from"./merge-expression-modules.js";export const resolveExpressionModules=(s,r)=>(o(s,r),s.flatMap(o=>e(o.exports)?[{origin:o.origin,expressions:o.exports}]:[]));
@@ -1,4 +1,4 @@
1
- import type { PropsWithChildren } from 'react';
1
+ import type { ComponentType, PropsWithChildren } from 'react';
2
2
  import { type CustomPhoenixEntityElementProps, type PhoenixHandlerDefinition, type SystemPhoenixAsyncHandlerDefinition, type SystemPhoenixHandlerDefinition } from './module-checks/index.js';
3
3
  import type { ApplicationSpec } from './types.js';
4
4
  /**
@@ -46,6 +46,7 @@ export declare const createSpecSelectors: (context: Context) => {
46
46
  selectElementSlots: import("@salsita-ai/common/utils").Selector<SpecSelectorState, {
47
47
  entityElements: Record<string, (props: CustomPhoenixEntityElementProps) => JSX.Element>;
48
48
  layoutElements: Record<string, (props: PropsWithChildren) => JSX.Element>;
49
+ assistantFormElements: Record<string, ComponentType<never>>;
49
50
  hashes: Record<string, string>;
50
51
  }>;
51
52
  selectDataConfig: import("@salsita-ai/common/utils").Selector<SpecSelectorState, import("../../index.js").DataSpec | null>;
@@ -89,6 +90,7 @@ export declare const createSpecSelectors: (context: Context) => {
89
90
  getElementSlots: () => {
90
91
  entityElements: Record<string, (props: CustomPhoenixEntityElementProps) => JSX.Element>;
91
92
  layoutElements: Record<string, (props: PropsWithChildren) => JSX.Element>;
93
+ assistantFormElements: Record<string, ComponentType<never>>;
92
94
  hashes: Record<string, string>;
93
95
  };
94
96
  getDataConfig: () => import("../../index.js").DataSpec | null;
@@ -1 +1 @@
1
- import{createSelector as e}from"@salsita-ai/common/utils";import{buildAssistantManifest as t}from"../../application/assistant/index.js";import{systemElementRegistry as n}from"./module-checks/index.js";export const createSpecSelectors=a=>{let{getState:s}=a,r=e.withTypes(),l=r([r.leaf(e=>e.spec)],e=>e),o=r([l],e=>e.version),i=r([l],e=>e.baseResourcesUrl),m=r([l],e=>e.configurator),g=r([l],e=>e.dataConfig),p=r([l],e=>e.chunks),d=r([l],e=>e.publishedDataHash),c=r([l],e=>e.initialPublishedData),u=r([l],e=>e.canCreate),h=r([l],e=>e.enableAdminRelease),y=r([l],e=>e.textLanguages),f=r([m],e=>e.modelVersion),C=r([l],e=>e.admin),E=r([C],e=>e.preset),x=r([C],e=>e.modelVersion),A=r([m],e=>e.theme),b=r([m],e=>e.assistant),H=r([b],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),k=r([m],e=>e.handlerHashes),v=r([m],e=>e.handlers),j=r([v,k],(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],e=>e.defaultElements),B=r([Q,M,F],(e,t,a)=>({...(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,...t]),hashes:a}));return{selectSpec:l,selectVersion:o,selectBaseResourcesUrl:i,selectConfiguratorSpec:m,selectConfiguratorModelVersion:f,selectAdminSpec:C,selectAdminPreset:E,selectAdminModelVersion:x,selectThemeOptions:A,selectAssistant:H,selectConfiguratorFactory:D,selectAdminFactory:P,selectConfiguratorComponentOptics:S,selectAdminComponentOptics:w,selectAppLoader:O,selectPreview:T,selectAlwaysExpand:V,selectPresetSeed:L,selectDeploymentQueryDisabled:R,selectPrefetchTextureUrls:U,selectTextLanguages:y,selectHandlerHashes:k,selectHandlers:v,selectHandlerSlots:j,selectElementHashes:F,selectElements:M,selectElementSlots:B,selectDataConfig:g,selectChunks:p,selectPublishedDataHash:d,selectInitialPublishedData:c,selectCanCreate:u,selectEnableAdminRelease:h,getVersion:()=>o(s()),getBaseResourcesUrl:()=>i(s()),getConfiguratorSpec:()=>m(s()),getConfiguratorModelVersion:()=>f(s()),getAdminSpec:()=>C(s()),getAdminPreset:()=>E(s()),getAdminModelVersion:()=>x(s()),getThemeOptions:()=>A(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:()=>y(s()),getHandlerHashes:()=>k(s()),getHandlers:()=>v(s()),getHandlerSlots:()=>j(s()),getElementHashes:()=>F(s()),getElements:()=>M(s()),getElementSlots:()=>B(s()),getDataConfig:()=>g(s()),getChunks:()=>p(s()),getPublishedDataHash:()=>d(s()),getInitialPublishedData:()=>c(s()),getCanCreate:()=>u(s()),getEnableAdminRelease:()=>h(s())}};
1
+ import{createSelector as e}from"@salsita-ai/common/utils";import{buildAssistantManifest as t}from"../../application/assistant/index.js";export const createSpecSelectors=a=>{let{getState:n}=a,s=e.withTypes(),r=s([s.leaf(e=>e.spec)],e=>e),l=s([r],e=>e.version),o=s([r],e=>e.baseResourcesUrl),i=s([r],e=>e.configurator),m=s([r],e=>e.dataConfig),g=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),h=s([r],e=>e.textLanguages),y=s([i],e=>e.modelVersion),f=s([r],e=>e.admin),C=s([f],e=>e.preset),E=s([f],e=>e.modelVersion),A=s([i],e=>e.theme),b=s([i],e=>e.assistant),x=s([b],e=>e?t(e):null),H=s([i],e=>e.factory),D=s([f],e=>e.factory),P=s([i],e=>e.componentOptics),S=s([f],e=>e.componentOptics),w=s([i],e=>e.appLoader),O=s([i],e=>e.preview),T=s([i],e=>e.alwaysExpand),V=s([i],e=>e.presets),F=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={},a={},n={};for(let s of e)"phoenix"===s.type&&(t[s.name]=s.handler),"system"===s.type&&(a[s.name]=s.handler),"system-async"===s.type&&(n[s.name]=s.handler);return{handlers:t,systemHandlers:a,systemAsyncHandlers:n}})(e),hashes:t})),k=s([i],e=>e.elementHashes),M=s([i],e=>e.elements),Q=s([i],e=>e.defaultElements),j=s([Q,M,k],(e,t,a)=>({...(e=>{let t={},a={},n={};for(let s of e)"layout"===s.type&&(t[s.name]=s.element),"entity"===s.type&&(a[s.name]=s.element),"assistantFormElement"===s.type&&(n[s.name]=s.element);return{entityElements:a,layoutElements:t,assistantFormElements:n}})([...e,...t]),hashes:a}));return{selectSpec:r,selectVersion:l,selectBaseResourcesUrl:o,selectConfiguratorSpec:i,selectConfiguratorModelVersion:y,selectAdminSpec:f,selectAdminPreset:C,selectAdminModelVersion:E,selectThemeOptions:A,selectAssistant:x,selectConfiguratorFactory:H,selectAdminFactory:D,selectConfiguratorComponentOptics:P,selectAdminComponentOptics:S,selectAppLoader:w,selectPreview:O,selectAlwaysExpand:T,selectPresetSeed:V,selectDeploymentQueryDisabled:F,selectPrefetchTextureUrls:L,selectTextLanguages:h,selectHandlerHashes:R,selectHandlers:U,selectHandlerSlots:v,selectElementHashes:k,selectElements:M,selectElementSlots:j,selectDataConfig:m,selectChunks:g,selectPublishedDataHash:p,selectInitialPublishedData:d,selectCanCreate:c,selectEnableAdminRelease:u,getVersion:()=>l(n()),getBaseResourcesUrl:()=>o(n()),getConfiguratorSpec:()=>i(n()),getConfiguratorModelVersion:()=>y(n()),getAdminSpec:()=>f(n()),getAdminPreset:()=>C(n()),getAdminModelVersion:()=>E(n()),getThemeOptions:()=>A(n()),getAssistant:()=>x(n()),getConfiguratorFactory:()=>H(n()),getAdminFactory:()=>D(n()),getConfiguratorComponentOptics:()=>P(n()),getAdminComponentOptics:()=>S(n()),getAppLoader:()=>w(n()),getPreview:()=>O(n()),getAlwaysExpand:()=>T(n()),getPresetSeed:()=>V(n()),getDeploymentQueryDisabled:()=>F(n()),getPrefetchTextureUrls:()=>L(n()),getTextLanguages:()=>h(n()),getHandlerHashes:()=>R(n()),getHandlers:()=>U(n()),getHandlerSlots:()=>v(n()),getElementHashes:()=>k(n()),getElements:()=>M(n()),getElementSlots:()=>j(n()),getDataConfig:()=>m(n()),getChunks:()=>g(n()),getPublishedDataHash:()=>p(n()),getInitialPublishedData:()=>d(n()),getCanCreate:()=>c(n()),getEnableAdminRelease:()=>u(n())}};
@@ -4,7 +4,10 @@ interface Context {
4
4
  }
5
5
  export declare const createWebComponentActions: (context: Context) => {
6
6
  setReadonly: (readonlyValue: boolean) => void;
7
+ setLocale: (locale: string) => void;
7
8
  startNewGeneration: () => void;
8
9
  };
9
10
  export type WebComponentActions = ReturnType<typeof createWebComponentActions>;
11
+ /** The writers the host-property mirror needs: the public `setReadonly` and the internal `setLocale`. */
12
+ export type WebComponentHostActions = Pick<WebComponentActions, 'setReadonly' | 'setLocale'>;
10
13
  export {};
@@ -1 +1 @@
1
- export const createWebComponentActions=e=>({setReadonly:t=>{e.setWebComponentState(e=>({...e,readonly:t}))},startNewGeneration:()=>{e.setWebComponentState(e=>({...e,webcomponentGeneration:e.webcomponentGeneration+1}))}});
1
+ export const createWebComponentActions=e=>({setReadonly:t=>{e.setWebComponentState(e=>({...e,readonly:t}))},setLocale:t=>{e.setWebComponentState(e=>({...e,locale:t}))},startNewGeneration:()=>{e.setWebComponentState(e=>({...e,webcomponentGeneration:e.webcomponentGeneration+1}))}});