@salsita-ai/sdk 0.50.0-develop.d81d7591c5 → 0.50.0-develop.d87b28256e

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 (1655) hide show
  1. package/README.md +20 -15
  2. package/dist/admin/create-admin-pages-from-spec.d.ts +1 -1
  3. package/dist/admin/default-admin-elements.d.ts +9 -0
  4. package/dist/admin/default-admin-elements.js +1 -0
  5. package/dist/admin/default-elements/built-in-entity-element.d.ts +10 -0
  6. package/dist/admin/default-elements/built-in-entity-element.js +1 -0
  7. package/dist/admin/default-elements/built-in-layout-element.d.ts +10 -0
  8. package/dist/admin/default-elements/built-in-layout-element.js +1 -0
  9. package/dist/admin/default-elements/index.d.ts +2 -0
  10. package/dist/admin/default-elements/index.js +1 -0
  11. package/dist/admin/index.d.ts +1 -0
  12. package/dist/admin/index.js +1 -1
  13. package/dist/application-spec/caching/content-diff.js +1 -1
  14. package/dist/application-spec/core/application-file.d.ts +0 -2
  15. package/dist/application-spec/core/application-file.js +1 -1
  16. package/dist/application-spec/core/components/component-filter.d.ts +53 -0
  17. package/dist/application-spec/core/components/component-filter.js +1 -0
  18. package/dist/application-spec/core/components/index.d.ts +2 -0
  19. package/dist/application-spec/core/components/index.js +1 -0
  20. package/dist/application-spec/core/components/sdk-code-ref.d.ts +9 -0
  21. package/dist/application-spec/core/components/sdk-code-ref.js +1 -0
  22. package/dist/application-spec/core/enhanced-json-value.d.ts +0 -68
  23. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  24. package/dist/application-spec/core/expressions/index.d.ts +2 -0
  25. package/dist/application-spec/core/expressions/index.js +1 -0
  26. package/dist/application-spec/core/expressions/relation-expression-params.d.ts +11 -0
  27. package/dist/application-spec/core/expressions/sdk-expression-implementation.d.ts +24 -0
  28. package/dist/application-spec/core/expressions/sdk-expression-implementation.js +1 -0
  29. package/dist/application-spec/core/index.d.ts +2 -0
  30. package/dist/application-spec/core/index.js +1 -1
  31. package/dist/application-spec/core/json-value.d.ts +1 -1
  32. package/dist/application-spec/enhanced-json/eval-to-constant.d.ts +14 -0
  33. package/dist/application-spec/enhanced-json/index.d.ts +4 -0
  34. package/dist/application-spec/enhanced-json/index.js +1 -0
  35. package/dist/application-spec/enhanced-json/is-enhanced-json-array.d.ts +2 -0
  36. package/dist/application-spec/enhanced-json/is-enhanced-json-array.js +1 -0
  37. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.d.ts +18 -0
  38. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.js +1 -0
  39. package/dist/application-spec/enhanced-json/schema-from-value.d.ts +24 -0
  40. package/dist/application-spec/enhanced-json/schema-from-value.js +1 -0
  41. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.d.ts +14 -0
  42. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.js +1 -0
  43. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.d.ts +12 -0
  44. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.js +1 -0
  45. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.d.ts +13 -0
  46. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.js +1 -0
  47. package/dist/application-spec/errors/diagnostic-codes.d.ts +14 -0
  48. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  49. package/dist/application-spec/errors/diagnostic-messages.d.ts +17 -0
  50. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  51. package/dist/application-spec/generate-application/code/common/code-imports.js +1 -1
  52. package/dist/application-spec/generate-application/code/common/env-reader.js +2 -2
  53. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  54. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  55. package/dist/application-spec/generate-application/code/common/single-quoted-string.d.ts +6 -0
  56. package/dist/application-spec/generate-application/code/common/single-quoted-string.js +1 -0
  57. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  58. package/dist/application-spec/generate-application/code/generate-application-code.d.ts +3 -2
  59. package/dist/application-spec/generate-application/code/generate-application-code.js +1 -1
  60. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +22 -14
  61. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  62. package/dist/application-spec/generate-application/code/standalone-app-files.d.ts +2 -2
  63. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  64. package/dist/application-spec/generate-application/code/story-files.js +1 -1
  65. package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -0
  66. package/dist/application-spec/generate-application/code/templates/common/format-property-key.d.ts +7 -0
  67. package/dist/application-spec/generate-application/code/templates/common/format-property-key.js +1 -0
  68. package/dist/application-spec/generate-application/code/templates/common/schema-to-type-string.js +3 -3
  69. package/dist/application-spec/generate-application/code/templates/configurator-config.js +6 -4
  70. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +35 -0
  71. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +5 -0
  72. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.d.ts +1 -0
  73. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.js +1 -0
  74. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.d.ts +1 -1
  75. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +7 -7
  76. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  77. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  78. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +72 -76
  79. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +9 -1
  80. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  81. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  82. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-presets.js +1 -1
  83. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  84. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  85. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +21 -21
  86. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.d.ts +1 -1
  87. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.js +2 -2
  88. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +3 -2
  89. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  90. package/dist/application-spec/generate-application/code/templates/domain-spec.js +12 -12
  91. package/dist/application-spec/generate-application/code/templates/domain.js +3 -3
  92. package/dist/application-spec/generate-application/code/templates/eslint-config.d.ts +5 -0
  93. package/dist/application-spec/generate-application/code/templates/eslint-config.js +4 -5
  94. package/dist/application-spec/generate-application/code/templates/frontend-config.js +3 -5
  95. package/dist/application-spec/generate-application/code/templates/gitignore.js +0 -3
  96. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.d.ts +43 -0
  97. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +31 -0
  98. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
  99. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  100. package/dist/application-spec/generate-application/code/templates/globals.js +24 -43
  101. package/dist/application-spec/generate-application/code/templates/index.d.ts +3 -10
  102. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  103. package/dist/application-spec/generate-application/code/templates/lingui-rc.d.ts +5 -0
  104. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +4 -4
  105. package/dist/application-spec/generate-application/code/templates/prettier-config.d.ts +5 -0
  106. package/dist/application-spec/generate-application/code/templates/prettier-config.js +4 -5
  107. package/dist/application-spec/generate-application/code/templates/root-tsconfig.d.ts +6 -0
  108. package/dist/application-spec/generate-application/code/templates/root-tsconfig.js +2 -0
  109. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  110. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +66 -42
  111. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +5 -5
  112. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +9 -3
  113. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  114. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +2 -2
  115. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +35 -18
  116. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +6 -8
  117. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
  118. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
  119. package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
  120. package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
  121. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
  122. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
  123. package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
  124. package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
  125. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
  126. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
  127. package/dist/application-spec/generate-application/code/templates/story/phx-module.d.ts +8 -2
  128. package/dist/application-spec/generate-application/code/templates/story/phx-module.js +15 -3
  129. package/dist/application-spec/generate-application/code/templates/story/wrapper.d.ts +3 -0
  130. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -1
  131. package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
  132. package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
  133. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +4 -3
  134. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +6 -1
  135. package/dist/application-spec/generate-application/code/templates/webhook-index.js +10 -1
  136. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -3
  137. package/dist/application-spec/generate-application/index.d.ts +2 -0
  138. package/dist/application-spec/generate-application/index.js +1 -1
  139. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +6 -4
  140. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +1 -1
  141. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +8 -3
  142. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  143. package/dist/application-spec/generate-application/runtime/admin-runtime/states-runtime.d.ts +2 -2
  144. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +19 -7
  145. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  146. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +6 -4
  147. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +1 -1
  148. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +7 -4
  149. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  150. package/dist/application-spec/generate-application/runtime/configurator-runtime/states-runtime.d.ts +2 -2
  151. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +43 -0
  152. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.js +1 -0
  153. package/dist/application-spec/generate-application/runtime/factory-data/index.d.ts +3 -0
  154. package/dist/application-spec/generate-application/runtime/factory-data/index.js +1 -0
  155. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +13 -0
  156. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -0
  157. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +16 -0
  158. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -0
  159. package/dist/application-spec/generate-application/runtime/migrations/index.d.ts +1 -0
  160. package/dist/application-spec/generate-application/runtime/migrations/index.js +1 -0
  161. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +53 -0
  162. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +1 -0
  163. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +2 -2
  164. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +3 -2
  165. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  166. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +2 -1
  167. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +1 -1
  168. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +5 -1
  169. package/dist/application-spec/generate-application/runtime/sections/component-optic.js +1 -1
  170. package/dist/application-spec/generate-application/runtime/sections/data-runtime.d.ts +4 -4
  171. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +7 -4
  172. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  173. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +9 -5
  174. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  175. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +3 -1
  176. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.js +1 -1
  177. package/dist/application-spec/generate-application/runtime/sections/theme-runtime.d.ts +2 -2
  178. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +4 -6
  179. package/dist/application-spec/generate-application/runtime/spec-code/index.d.ts +2 -0
  180. package/dist/application-spec/generate-application/runtime/spec-code/index.js +1 -0
  181. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +18 -0
  182. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.js +1 -0
  183. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.d.ts +17 -0
  184. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.d.ts +9 -0
  185. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.js +1 -0
  186. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.d.ts +8 -0
  187. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.js +1 -0
  188. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +27 -0
  189. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.js +1 -0
  190. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +5 -0
  191. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -0
  192. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +68 -0
  193. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -0
  194. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +40 -0
  195. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.js +1 -0
  196. package/dist/application-spec/index.d.ts +1 -0
  197. package/dist/application-spec/index.js +1 -1
  198. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +34 -0
  199. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  200. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.d.ts +16 -0
  201. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.js +9 -0
  202. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts +9 -0
  203. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
  204. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  205. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  206. package/dist/application-spec/parse-application-files/raw-spec/parse-yaml-spec-file.js +1 -1
  207. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +16 -3
  208. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  209. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  210. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  211. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  212. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  213. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  214. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.d.ts +3 -0
  215. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js +1 -0
  216. package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +5 -0
  217. package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -0
  218. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.d.ts +6 -0
  219. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.js +1 -0
  220. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.d.ts +8 -0
  221. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.js +1 -0
  222. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts +10 -0
  223. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.js +1 -0
  224. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.d.ts +98 -0
  225. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.js +1 -0
  226. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts +13 -0
  227. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js +1 -0
  228. package/dist/application-spec/parse-application-files/spec/components/bindings/index.d.ts +2 -0
  229. package/dist/application-spec/parse-application-files/spec/components/bindings/index.js +1 -1
  230. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.d.ts +24 -0
  231. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js +1 -0
  232. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  233. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  234. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  235. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  236. package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts +8 -0
  237. package/dist/application-spec/parse-application-files/spec/components/component-state-type.js +1 -0
  238. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts +13 -0
  239. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js +1 -0
  240. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  241. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  242. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.d.ts +14 -0
  243. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.js +1 -0
  244. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +6 -0
  245. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  246. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +7 -4
  247. package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
  248. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +24 -0
  249. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -0
  250. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.d.ts +13 -0
  251. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
  252. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
  253. package/dist/application-spec/parse-application-files/spec/expressions/expression.d.ts +1 -28
  254. package/dist/application-spec/parse-application-files/spec/expressions/expression.js +1 -1
  255. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -3
  256. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  257. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  258. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  259. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  260. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +3 -1
  261. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  262. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +2 -2
  263. package/dist/application-spec/parse-application-files/spec/invariants/invariants.js +1 -1
  264. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  265. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  266. package/dist/application-spec/parse-application-files/spec/model/index.d.ts +1 -0
  267. package/dist/application-spec/parse-application-files/spec/model/index.js +1 -1
  268. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.d.ts +10 -0
  269. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.js +1 -0
  270. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  271. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  272. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  273. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  274. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  275. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  276. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  277. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  278. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  279. package/dist/client/authorized-client.d.ts +3 -1
  280. package/dist/client/authorized-client.js +1 -1
  281. package/dist/client/contract.d.ts +34 -0
  282. package/dist/client/contract.js +1 -1
  283. package/dist/client/index.d.ts +2 -2
  284. package/dist/client/index.js +1 -1
  285. package/dist/client/local-authorized-client.d.ts +3 -1
  286. package/dist/client/local-authorized-client.js +1 -1
  287. package/dist/client/memory-authorized-client.d.ts +3 -1
  288. package/dist/client/memory-authorized-client.js +1 -1
  289. package/dist/client/phoenix-api.d.ts +797 -121
  290. package/dist/configurator/ConfiguratorApp.js +1 -1
  291. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  292. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  293. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  294. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +127 -3
  295. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  296. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +7 -1
  297. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  298. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.d.ts +1 -1
  299. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  300. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.d.ts +12 -0
  301. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.js +1 -0
  302. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  303. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +20 -4
  304. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  305. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  306. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  307. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  308. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  309. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  310. package/dist/configurator/common/configurator-interface.d.ts +57 -1
  311. package/dist/configurator/common/configurator-interface.js +1 -1
  312. package/dist/configurator/common/index.d.ts +3 -1
  313. package/dist/configurator/common/index.js +1 -1
  314. package/dist/configurator/common/use-reset-camera.d.ts +6 -0
  315. package/dist/configurator/common/use-reset-camera.js +1 -0
  316. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +12 -0
  317. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -0
  318. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.d.ts +9 -0
  319. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.js +1 -0
  320. package/dist/configurator/configuration-not-found-page/index.d.ts +2 -0
  321. package/dist/configurator/configuration-not-found-page/index.js +1 -0
  322. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +12 -0
  323. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -0
  324. package/dist/configurator/configurator-context/PresetSelectionProvider.js +1 -1
  325. package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
  326. package/dist/configurator/configurator-context/ViewportStateSync.d.ts +2 -2
  327. package/dist/configurator/configurator-context/ViewportStateSync.js +1 -1
  328. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +7 -1
  329. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.d.ts +6 -0
  330. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.js +1 -0
  331. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.d.ts +12 -0
  332. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.js +1 -0
  333. package/dist/configurator/configurator-error-page/create-configurator-error-page.d.ts +9 -0
  334. package/dist/configurator/configurator-error-page/create-configurator-error-page.js +1 -0
  335. package/dist/configurator/configurator-error-page/index.d.ts +3 -0
  336. package/dist/configurator/configurator-error-page/index.js +1 -0
  337. package/dist/configurator/index.d.ts +2 -0
  338. package/dist/configurator/index.js +1 -1
  339. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  340. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +7 -0
  341. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  342. package/dist/configurator/pages/DefaultNotAuthenticatedPage.d.ts +8 -0
  343. package/dist/configurator/pages/DefaultNotAuthenticatedPage.js +1 -0
  344. package/dist/configurator/pages/DefaultPresetUi.d.ts +7 -0
  345. package/dist/configurator/pages/DefaultPresetUi.js +1 -0
  346. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  347. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  348. package/dist/configurator/pages/PresetCreationErrorPage.d.ts +1 -1
  349. package/dist/configurator/pages/PresetCreationErrorPage.js +1 -1
  350. package/dist/configurator/pages/RootPage.js +1 -1
  351. package/dist/configurator/pages/configurator-layout-name.d.ts +2 -0
  352. package/dist/configurator/pages/configurator-layout-name.js +1 -0
  353. package/dist/configurator/pages/default-configurator-elements.d.ts +12 -0
  354. package/dist/configurator/pages/default-configurator-elements.js +1 -0
  355. package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +10 -0
  356. package/dist/configurator/pages/default-elements/built-in-entity-element.js +1 -0
  357. package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +10 -0
  358. package/dist/configurator/pages/default-elements/built-in-layout-element.js +1 -0
  359. package/dist/configurator/pages/default-elements/domain-control-elements.d.ts +6 -0
  360. package/dist/configurator/pages/default-elements/domain-control-elements.js +1 -0
  361. package/dist/configurator/pages/default-elements/index.d.ts +4 -0
  362. package/dist/configurator/pages/default-elements/index.js +1 -0
  363. package/dist/configurator/pages/default-elements/recipe-panel-elements.d.ts +3 -0
  364. package/dist/configurator/pages/default-elements/recipe-panel-elements.js +1 -0
  365. package/dist/configurator/pages/default-elements/sidebar-footer-elements.d.ts +7 -0
  366. package/dist/configurator/pages/default-elements/sidebar-footer-elements.js +1 -0
  367. package/dist/configurator/pages/default-elements/toolbar-elements.d.ts +7 -0
  368. package/dist/configurator/pages/default-elements/toolbar-elements.js +1 -0
  369. package/dist/configurator/pages/error-boundaries/GeneralErrorBoundary.js +1 -1
  370. package/dist/configurator/pages/index.d.ts +1 -0
  371. package/dist/configurator/pages/index.js +1 -1
  372. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.d.ts +4 -0
  373. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.js +1 -0
  374. package/dist/configurator/preset-screen-elements/PresetPageActionElement.d.ts +4 -0
  375. package/dist/configurator/preset-screen-elements/PresetPageActionElement.js +1 -0
  376. package/dist/configurator/preset-screen-elements/index.d.ts +2 -0
  377. package/dist/configurator/preset-screen-elements/index.js +1 -0
  378. package/dist/configurator/scene/scene-controls/DeleteEntityFab.js +1 -1
  379. package/dist/configurator/scene/scene-controls/SelectionHotspot.js +1 -1
  380. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  381. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  382. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  383. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  384. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  385. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  386. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  387. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  388. package/dist/configurator/ui/assistant/AssistantChips.d.ts +8 -2
  389. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  390. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +2 -1
  391. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -1
  392. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -2
  393. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  394. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  395. package/dist/configurator/ui/assistant/AssistantThread.d.ts +6 -2
  396. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  397. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  398. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  399. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  400. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  401. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  402. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  403. package/dist/configurator/ui/assistant/entity-link/index.d.ts +2 -0
  404. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  405. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +19 -0
  406. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -0
  407. package/dist/configurator/ui/assistant/form/built-in-form-registry.d.ts +10 -0
  408. package/dist/configurator/ui/assistant/form/built-in-form-registry.js +1 -0
  409. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +11 -0
  410. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -0
  411. package/dist/configurator/ui/assistant/form/describe-build-errors.d.ts +6 -0
  412. package/dist/configurator/ui/assistant/form/describe-build-errors.js +1 -0
  413. package/dist/configurator/ui/assistant/form/form-element-definition.d.ts +14 -0
  414. package/dist/configurator/ui/assistant/form/form-model.d.ts +38 -0
  415. package/dist/configurator/ui/assistant/form/form-model.js +1 -0
  416. package/dist/configurator/ui/assistant/form/form-registry.d.ts +31 -0
  417. package/dist/configurator/ui/assistant/form/form-registry.js +8 -0
  418. package/dist/configurator/ui/assistant/form/form-state.d.ts +4 -0
  419. package/dist/configurator/ui/assistant/form/form-state.js +1 -0
  420. package/dist/configurator/ui/assistant/form/index.d.ts +2 -0
  421. package/dist/configurator/ui/assistant/form/index.js +1 -0
  422. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +9 -0
  423. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -0
  424. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +13 -0
  425. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -0
  426. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +3 -0
  427. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -0
  428. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +3 -0
  429. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -0
  430. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +3 -0
  431. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -0
  432. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +3 -0
  433. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -0
  434. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +34 -0
  435. package/dist/configurator/ui/assistant/form-elements/index.d.ts +5 -0
  436. package/dist/configurator/ui/assistant/form-elements/index.js +1 -0
  437. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +16 -0
  438. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -0
  439. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.d.ts +34 -0
  440. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.js +1 -0
  441. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.d.ts +25 -0
  442. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.js +1 -0
  443. package/dist/configurator/ui/assistant/reference-link/index.d.ts +3 -0
  444. package/dist/configurator/ui/assistant/reference-link/index.js +1 -0
  445. package/dist/configurator/ui/assistant/reference-link/reference-styles.d.ts +12 -0
  446. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -0
  447. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.d.ts +8 -0
  448. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.js +1 -0
  449. package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +9 -0
  450. package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -0
  451. package/dist/configurator/ui/assistant/resource-image/index.d.ts +3 -0
  452. package/dist/configurator/ui/assistant/resource-image/index.js +1 -0
  453. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +11 -0
  454. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -0
  455. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.d.ts +5 -0
  456. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.js +1 -0
  457. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +2 -0
  458. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  459. package/dist/configurator/ui/assistant/thread-items.d.ts +21 -3
  460. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  461. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -1
  462. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  463. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  464. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  465. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  466. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.d.ts +101 -0
  467. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  468. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  469. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  470. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.d.ts +1 -1
  471. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.js +1 -1
  472. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  473. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  474. package/dist/configurator/ui/configurator-layout/slots/services/Services.js +1 -1
  475. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  476. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  477. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.d.ts +1 -1
  478. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.js +1 -1
  479. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  480. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  481. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +0 -74
  482. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  483. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  484. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +4 -4
  485. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  486. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  487. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  488. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  489. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  490. package/dist/configurator/ui/legacy/layout/common/CommonFinalizeButton.js +1 -1
  491. package/dist/configurator/ui/legacy/layout/common/CommonSummaryButton.js +1 -1
  492. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  493. package/dist/configurator/ui/legacy/layout/common/ResponsiveFinalizeButton.js +1 -1
  494. package/dist/configurator/ui/legacy/layout/common/SummaryReadLayout.js +1 -1
  495. package/dist/configurator/ui/legacy/layout/simple/SimpleOwnerLayout.js +1 -1
  496. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  497. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  498. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  499. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  500. package/dist/configurator/ui/legacy/layout/steps/StepsSidebarFooter.js +1 -1
  501. package/dist/configurator/ui/legacy/layout/tabs/TabsOwnerLayout.js +1 -1
  502. package/dist/configurator/ui/legacy/toolbar/common/DimensionUnitSelector.js +1 -1
  503. package/dist/configurator/ui/legacy/toolbar/common/MeasurementsIndicatorsSwitch.js +1 -1
  504. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/FullscreenToolbarAction.js +1 -1
  505. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/HelpToolbarAction.js +1 -1
  506. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/MeasurementsToolbarAction.js +1 -1
  507. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/UndoRedoToolbarGroup.js +1 -1
  508. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.js +3 -3
  509. package/dist/configurator/ui/phoenix-layout-elements/EnterFullscreenToolbarButton.js +1 -1
  510. package/dist/configurator/ui/phoenix-layout-elements/ExitFullscreenToolbarButton.js +1 -1
  511. package/dist/configurator/ui/phoenix-layout-elements/HelpToolbarButton.js +1 -1
  512. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.d.ts +1 -0
  513. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.js +1 -1
  514. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.d.ts +1 -0
  515. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.js +1 -1
  516. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsToolbarButton.js +1 -1
  517. package/dist/configurator/ui/phoenix-layout-elements/RedoToolbarButton.js +1 -1
  518. package/dist/configurator/ui/phoenix-layout-elements/UndoToolbarButton.js +1 -1
  519. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  520. package/dist/configurator/ui/phoenix-layout-elements/header/common/horizontal-tabs/DesktopHorizontalTabs.js +1 -1
  521. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.d.ts +1 -1
  522. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.js +1 -1
  523. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -8
  524. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  525. package/dist/configurator/ui/phoenix-layout-elements/measurements/DimensionUnitSelector.js +1 -1
  526. package/dist/configurator/ui/phoenix-layout-elements/measurements/MeasurementsIndicatorsSwitch.js +1 -1
  527. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/BasicFinalizeButton.js +1 -1
  528. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/CustomFinalizeButton.js +1 -1
  529. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/EnterSummaryButton.js +1 -1
  530. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/FinalizeActions.js +1 -1
  531. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/NextStepButton.js +1 -1
  532. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  533. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  534. package/dist/configurator/ui/preset-layout/PresetUi.d.ts +4 -0
  535. package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
  536. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.d.ts +10 -0
  537. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -0
  538. package/dist/configurator/ui/save-message-snackbars/index.d.ts +1 -0
  539. package/dist/configurator/ui/save-message-snackbars/index.js +1 -0
  540. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +16 -19
  541. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  542. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  543. package/dist/docs/controls/select-child-entity/cardselect.mdx +1 -0
  544. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  545. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  546. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  547. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  548. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  549. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  550. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  551. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  552. package/dist/docs/fabs/basic.mdx +2 -2
  553. package/dist/docs/index.json +42 -1
  554. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  555. package/dist/docs/layouts/custom-layout.mdx +2435 -0
  556. package/dist/docs/layouts/header/fixed.mdx +2 -2
  557. package/dist/docs/layouts/header/floating.mdx +2 -2
  558. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  559. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  560. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  561. package/dist/docs/other-features/error-5xx.mdx +1 -1
  562. package/dist/docs/other-features/not-found-404.mdx +1 -1
  563. package/dist/docs/other-features/side-effects.mdx +8 -11
  564. package/dist/docs/other-features/transformers.mdx +4 -0
  565. package/dist/docs/other-features/violation-messages.mdx +52 -56
  566. package/dist/docs/phoenix/application-states.mdx +9 -7
  567. package/dist/docs/phoenix/clerk-sign-in.mdx +1 -1
  568. package/dist/docs/phoenix/components.mdx +6 -0
  569. package/dist/docs/phoenix/configurator-interface.mdx +318 -81
  570. package/dist/docs/phoenix/deployments.mdx +3 -7
  571. package/dist/docs/phoenix/domain-model.mdx +6 -0
  572. package/dist/docs/phoenix/expression-context.mdx +11 -3
  573. package/dist/docs/phoenix/finalization.mdx +1 -1
  574. package/dist/docs/phoenix/getting-started.mdx +7 -4
  575. package/dist/docs/phoenix/layout-slots.mdx +116 -0
  576. package/dist/docs/phoenix/localization.mdx +10 -6
  577. package/dist/docs/phoenix/migration-guide.mdx +24 -11
  578. package/dist/docs/phoenix/phoenix-cli.mdx +112 -65
  579. package/dist/docs/phoenix/project-structure.mdx +80 -36
  580. package/dist/docs/phoenix/quickstart.mdx +9 -9
  581. package/dist/docs/phoenix/sdk-builder-workflow.mdx +14 -14
  582. package/dist/docs/phoenix/testing.mdx +148 -0
  583. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  584. package/dist/docs/phoenix/webhooks.mdx +23 -6
  585. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  586. package/dist/domain/admin-domain/__generated/enhanced-model.d.ts +1 -2
  587. package/dist/domain/admin-domain/__generated/model/versions/v1.d.ts +1 -1
  588. package/dist/domain/admin-domain/__generated/model/versions/v2.d.ts +1 -1
  589. package/dist/domain/admin-domain/__generated/model/versions/v3.d.ts +1 -1
  590. package/dist/domain/admin-domain/__generated/model/versions/v4.d.ts +1 -1
  591. package/dist/domain/admin-domain/__generated/model/versions/v5.d.ts +1 -1
  592. package/dist/domain/admin-domain/__generated/model/versions/v6.d.ts +2 -2
  593. package/dist/domain/admin-domain/__generated/model/versions/v6.js +1 -1
  594. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -14
  595. package/dist/domain/admin-domain/implementation/common-admin-migrations.d.ts +1 -1
  596. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  597. package/dist/domain/admin-domain/index.d.ts +9 -5
  598. package/dist/domain/admin-domain/index.js +1 -1
  599. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  600. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  601. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  602. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  603. package/dist/domain/application/application-config.d.ts +9 -26
  604. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  605. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  606. package/dist/domain/application/assistant/assistant-form-elements.d.ts +28 -0
  607. package/dist/domain/application/assistant/assistant-form-elements.js +1 -0
  608. package/dist/domain/application/assistant/assistant-manifest.d.ts +11 -1
  609. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +38 -2
  610. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -1
  611. package/dist/domain/application/assistant/assistant-value-type.js +1 -1
  612. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  613. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  614. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  615. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  616. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  617. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +1 -11
  618. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  619. package/dist/domain/application/assistant/index.d.ts +8 -1
  620. package/dist/domain/application/assistant/index.js +1 -1
  621. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  622. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  623. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  624. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  625. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +48 -0
  626. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  627. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  628. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  629. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  630. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  631. package/dist/domain/application/assistant-field-options.d.ts +1 -2
  632. package/dist/domain/application/assistant-mutations.d.ts +2 -4
  633. package/dist/domain/application/assistant-mutations.js +1 -1
  634. package/dist/domain/application/assistant-recipe-groups.d.ts +5 -7
  635. package/dist/domain/application/configurator-builder.d.ts +6 -3
  636. package/dist/domain/application/configurator-builder.js +1 -1
  637. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  638. package/dist/domain/application/index.d.ts +2 -6
  639. package/dist/domain/application/index.js +1 -1
  640. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  641. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  642. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  643. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  644. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  645. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  646. package/dist/domain/application/published-data/create-finalize-admin-domain.d.ts +1 -2
  647. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  648. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  649. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +3 -3
  650. package/dist/domain/application/published-data/map-published-data.d.ts +7 -4
  651. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  652. package/dist/domain/available-system-components.js +1 -1
  653. package/dist/domain/core/action/action-factory.d.ts +11 -0
  654. package/dist/domain/core/action/action.d.ts +71 -0
  655. package/dist/domain/core/action/action.js +1 -0
  656. package/dist/domain/core/action/index.d.ts +2 -0
  657. package/dist/domain/core/action/index.js +1 -0
  658. package/dist/domain/core/component/component-reader-types.d.ts +43 -0
  659. package/dist/domain/core/component/component-reader-types.js +1 -0
  660. package/dist/domain/core/component/debug-state-component.d.ts +14 -0
  661. package/dist/domain/core/component/debug-state-component.js +1 -0
  662. package/dist/domain/core/component/domain-component-optic.d.ts +65 -0
  663. package/dist/domain/core/component/domain-component-optic.js +16 -0
  664. package/dist/domain/core/component/drag-state-component.d.ts +16 -0
  665. package/dist/domain/core/component/drag-state-component.js +1 -0
  666. package/dist/domain/core/component/export-state-component.d.ts +15 -0
  667. package/dist/domain/core/component/export-state-component.js +1 -0
  668. package/dist/domain/core/component/fullscreen-state-component.d.ts +14 -0
  669. package/dist/domain/core/component/fullscreen-state-component.js +1 -0
  670. package/dist/domain/core/component/group-components-by-entity-id-and-name.d.ts +8 -0
  671. package/dist/domain/core/component/group-components-by-entity-id-and-name.js +1 -0
  672. package/dist/domain/core/component/hover-state-component.d.ts +14 -0
  673. package/dist/domain/core/component/hover-state-component.js +1 -0
  674. package/dist/domain/core/component/index.d.ts +18 -0
  675. package/dist/domain/core/component/index.js +1 -0
  676. package/dist/domain/core/component/legacy-filter.d.ts +498 -0
  677. package/dist/domain/core/component/navigation-state-component.d.ts +15 -0
  678. package/dist/domain/core/component/navigation-state-component.js +1 -0
  679. package/dist/domain/core/component/selection-state-component.d.ts +14 -0
  680. package/dist/domain/core/component/selection-state-component.js +1 -0
  681. package/dist/domain/core/component/system-component-builder.d.ts +11 -0
  682. package/dist/domain/core/component/system-component-builder.js +1 -0
  683. package/dist/domain/core/component/system-component-filter.d.ts +811 -0
  684. package/dist/domain/core/component/system-virtual-entity.js +1 -0
  685. package/dist/domain/core/component/tool-state-component.d.ts +14 -0
  686. package/dist/domain/core/component/tool-state-component.js +1 -0
  687. package/dist/domain/core/component/updates.d.ts +123 -0
  688. package/dist/domain/core/component/view-state-component.d.ts +14 -0
  689. package/dist/domain/core/component/view-state-component.js +1 -0
  690. package/dist/domain/core/component/viewport-state-component.d.ts +29 -0
  691. package/dist/domain/core/component/viewport-state-component.js +1 -0
  692. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  693. package/dist/domain/core/data-schema/data-cell-value.js +1 -0
  694. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  695. package/dist/domain/core/data-schema/data-schema-array-field.js +1 -0
  696. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  697. package/dist/domain/core/data-schema/data-schema-field-object.js +1 -0
  698. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  699. package/dist/domain/core/data-schema/data-schema-field.js +1 -0
  700. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  701. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  702. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  703. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  704. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  705. package/dist/domain/core/data-schema/data-schema.js +1 -0
  706. package/dist/domain/core/data-schema/index.d.ts +7 -0
  707. package/dist/domain/core/data-schema/index.js +1 -0
  708. package/dist/domain/core/domain-factory.d.ts +4 -5
  709. package/dist/domain/core/domain.d.ts +4 -5
  710. package/dist/domain/core/domain.js +1 -1
  711. package/dist/domain/core/emission/index.d.ts +8 -0
  712. package/dist/domain/core/emission/index.js +1 -0
  713. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  714. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  715. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  716. package/dist/domain/core/emission/state-emission.js +1 -0
  717. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  718. package/dist/domain/core/emission/state-update-emission.js +1 -0
  719. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  720. package/dist/domain/core/emission/state-validation-result.js +1 -0
  721. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  722. package/dist/domain/core/emission/transformation-log.js +1 -0
  723. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  724. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  725. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  726. package/dist/domain/core/emission/transformer-log.js +1 -0
  727. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  728. package/dist/domain/core/emission/transformer-phase.js +1 -0
  729. package/dist/domain/core/expression/aliased-expressions.d.ts +10 -0
  730. package/dist/domain/core/expression/aliased-expressions.js +1 -0
  731. package/dist/domain/core/expression/constant-expressions.d.ts +16 -0
  732. package/dist/domain/core/expression/constant-expressions.js +1 -0
  733. package/dist/domain/core/expression/custom-expression.d.ts +25 -0
  734. package/dist/domain/core/expression/custom-expression.js +1 -0
  735. package/dist/domain/core/expression/expression.d.ts +46 -0
  736. package/dist/domain/core/expression/expression.js +1 -0
  737. package/dist/domain/core/expression/index.d.ts +4 -0
  738. package/dist/domain/core/expression/index.js +1 -0
  739. package/dist/domain/core/index.d.ts +13 -15
  740. package/dist/domain/core/index.js +1 -1
  741. package/dist/domain/core/invariant/builtin-invariant.d.ts +5 -0
  742. package/dist/domain/core/invariant/custom-invariants.d.ts +13 -0
  743. package/dist/domain/core/invariant/custom-invariants.js +1 -0
  744. package/dist/domain/core/invariant/index.d.ts +5 -0
  745. package/dist/domain/core/invariant/index.js +1 -0
  746. package/dist/domain/core/invariant/invariants.d.ts +10 -0
  747. package/dist/domain/core/invariant/invariants.js +1 -0
  748. package/dist/domain/core/invariant/violation-component.js +1 -0
  749. package/dist/domain/core/invariant/violation.d.ts +133 -0
  750. package/dist/domain/core/invariant/violation.js +1 -0
  751. package/dist/domain/core/model/component.d.ts +46 -0
  752. package/dist/domain/core/model/index.d.ts +6 -0
  753. package/dist/domain/core/model/index.js +1 -0
  754. package/dist/domain/core/model/model.d.ts +127 -0
  755. package/dist/domain/core/model/reflection.d.ts +114 -0
  756. package/dist/domain/core/model/reflection.js +1 -0
  757. package/dist/domain/core/recipe/index.d.ts +1 -0
  758. package/dist/domain/core/recipe/index.js +1 -0
  759. package/dist/domain/core/recipe/recipes.d.ts +23 -0
  760. package/dist/domain/core/recipe/recipes.js +1 -0
  761. package/dist/domain/core/relation/all-of-type-relation.d.ts +19 -0
  762. package/dist/domain/core/relation/all-of-type-relation.js +1 -0
  763. package/dist/domain/core/relation/component-factories.d.ts +14 -0
  764. package/dist/domain/core/relation/component-factories.js +1 -0
  765. package/dist/domain/core/relation/composed-of.d.ts +12 -0
  766. package/dist/domain/core/relation/composed-of.js +1 -0
  767. package/dist/domain/core/relation/direct-relation.d.ts +17 -0
  768. package/dist/domain/core/relation/index.d.ts +8 -0
  769. package/dist/domain/core/relation/index.js +1 -0
  770. package/dist/domain/core/relation/indirect-relation.d.ts +25 -0
  771. package/dist/domain/core/relation/indirect-relation.js +1 -0
  772. package/dist/domain/core/relation/reference-component.d.ts +17 -0
  773. package/dist/domain/core/relation/reference-component.js +1 -0
  774. package/dist/domain/core/relation/reference-field.d.ts +7 -0
  775. package/dist/domain/core/relation/reference-field.js +1 -0
  776. package/dist/domain/core/relation/relation-factory.d.ts +22 -0
  777. package/dist/domain/core/relation/relation-factory.js +1 -0
  778. package/dist/domain/core/schema/extended-schema-validator.js +1 -1
  779. package/dist/domain/core/state/id-sequence.d.ts +15 -0
  780. package/dist/domain/core/state/id-sequence.js +1 -0
  781. package/dist/domain/core/state/index.d.ts +3 -0
  782. package/dist/domain/core/state/index.js +1 -0
  783. package/dist/domain/core/state/migrations.d.ts +67 -0
  784. package/dist/domain/core/state/migrations.js +1 -0
  785. package/dist/domain/core/state/state.d.ts +9 -0
  786. package/dist/domain/domain-builder.d.ts +2 -11
  787. package/dist/domain/domain-builder.js +1 -1
  788. package/dist/domain/domain-context/action-system/action-system.d.ts +2 -4
  789. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  790. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  791. package/dist/domain/domain-context/action-system/index.js +1 -0
  792. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  793. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  794. package/dist/domain/domain-context/create-transformer.d.ts +2 -2
  795. package/dist/domain/domain-context/dimension-system/dimension-state.js +1 -1
  796. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +3 -4
  797. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  798. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  799. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  800. package/dist/domain/domain-context/domain-context-systems.d.ts +8 -10
  801. package/dist/domain/domain-context/index.d.ts +8 -18
  802. package/dist/domain/domain-context/index.js +1 -1
  803. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  804. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  805. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +5 -8
  806. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  807. package/dist/domain/domain-context/navigation-system/navigation-updates.d.ts +1 -12
  808. package/dist/domain/domain-context/navigation-system/navigation-updates.js +1 -1
  809. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +2 -2
  810. package/dist/domain/domain-context/navigation-system/selection-transformers.js +1 -1
  811. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  812. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  813. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +2 -4
  814. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  815. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +3 -3
  816. package/dist/domain/domain-context/relation-transformers/cascade-deletes.js +1 -1
  817. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +3 -3
  818. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.js +1 -1
  819. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +3 -3
  820. package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
  821. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  822. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  823. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +3 -3
  824. package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
  825. package/dist/domain/domain-context/store-system/apply-updates.d.ts +1 -3
  826. package/dist/domain/domain-context/store-system/apply-updates.js +1 -1
  827. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  828. package/dist/domain/domain-context/store-system/index.js +1 -0
  829. package/dist/domain/domain-context/store-system/next-domain-entity-id.d.ts +1 -13
  830. package/dist/domain/domain-context/store-system/next-domain-entity-id.js +1 -1
  831. package/dist/domain/domain-context/store-system/reconcile-projected-entities.d.ts +1 -2
  832. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  833. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -39
  834. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  835. package/dist/domain/domain-context/store-system/system-state.d.ts +2 -4
  836. package/dist/domain/domain-context/store-system/system-state.js +1 -1
  837. package/dist/domain/domain-context/transformers/actions-builder.d.ts +1 -2
  838. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  839. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +6 -10
  840. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  841. package/dist/domain/domain-context/transformers/chain-builder.d.ts +2 -2
  842. package/dist/domain/domain-context/transformers/context.d.ts +2 -7
  843. package/dist/domain/domain-context/transformers/context.js +1 -1
  844. package/dist/domain/domain-context/transformers/entity-builder.d.ts +1 -5
  845. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  846. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  847. package/dist/domain/domain-context/transformers/index.js +1 -1
  848. package/dist/domain/domain-context/transformers/then-builder.d.ts +1 -2
  849. package/dist/domain/domain-context/transformers/then-builder.js +1 -1
  850. package/dist/domain/domain-context/transformers/when-builder.d.ts +3 -9
  851. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  852. package/dist/domain/domain-context/undo-system.d.ts +29 -3
  853. package/dist/domain/domain-context/undo-system.js +1 -1
  854. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  855. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  856. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  857. package/dist/domain/domain-runtime/access/types.js +1 -1
  858. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  859. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  860. package/dist/domain/domain-runtime/domain-context/component-reader.d.ts +1 -4
  861. package/dist/domain/domain-runtime/domain-context/component-reader.js +1 -1
  862. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  863. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  864. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  865. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  866. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  867. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  868. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +19 -25
  869. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  870. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  871. package/dist/domain/domain-runtime/domain-runtime.d.ts +84 -68
  872. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +19 -0
  873. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  874. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  875. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  876. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  877. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  878. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  879. package/dist/domain/domain-runtime/errors/index.js +1 -0
  880. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  881. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  882. package/dist/domain/domain-runtime/index.d.ts +1 -0
  883. package/dist/domain/domain-runtime/index.js +1 -1
  884. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  885. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  886. package/dist/domain/domain-runtime/spec/index.d.ts +5 -0
  887. package/dist/domain/domain-runtime/spec/index.js +1 -1
  888. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  889. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  890. package/dist/domain/domain-runtime/spec/memoize-expression.d.ts +16 -0
  891. package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +111 -0
  892. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  893. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.d.ts +34 -0
  894. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  895. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  896. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  897. package/dist/domain/domain-runtime/spec/module-checks/project-modules.d.ts +32 -0
  898. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  899. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  900. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  901. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  902. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  903. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  904. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  905. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  906. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  907. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  908. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  909. package/dist/domain/domain-runtime/spec/prepare-action-implementations.d.ts +15 -0
  910. package/dist/domain/domain-runtime/spec/prepare-action-implementations.js +5 -0
  911. package/dist/domain/domain-runtime/spec/prepare-domain-expressions.d.ts +16 -0
  912. package/dist/domain/domain-runtime/spec/selectors.d.ts +5 -6
  913. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  914. package/dist/domain/domain-runtime/spec/types.d.ts +6 -4
  915. package/dist/domain/extensions/angle-indicator.d.ts +21 -0
  916. package/dist/domain/extensions/angle-indicator.js +1 -0
  917. package/dist/domain/extensions/attribute-switch.d.ts +8 -0
  918. package/dist/domain/extensions/attribute-switch.js +1 -0
  919. package/dist/domain/extensions/autorotate-camera-component.d.ts +19 -0
  920. package/dist/domain/extensions/autorotate-camera-component.js +1 -0
  921. package/dist/domain/extensions/basic-sidebar-footer.d.ts +8 -0
  922. package/dist/domain/extensions/basic-sidebar-footer.js +1 -0
  923. package/dist/domain/extensions/camera-based-hidden-entity-object.js +1 -0
  924. package/dist/domain/extensions/camera-based-hidden-entity.js +1 -0
  925. package/dist/domain/extensions/canvas-config.d.ts +87 -0
  926. package/dist/domain/extensions/canvas-config.js +1 -0
  927. package/dist/domain/extensions/canvas-custom-environment.js +1 -0
  928. package/dist/domain/extensions/canvas-padding.d.ts +25 -0
  929. package/dist/domain/extensions/canvas-padding.js +1 -0
  930. package/dist/domain/extensions/canvas-preset-environment.d.ts +37 -0
  931. package/dist/domain/extensions/canvas-preset-environment.js +1 -0
  932. package/dist/domain/extensions/child-entity-recipe-hierarchy.d.ts +21 -0
  933. package/dist/domain/extensions/child-entity-recipe-hierarchy.js +1 -0
  934. package/dist/domain/extensions/client-side-image.d.ts +14 -0
  935. package/dist/domain/extensions/client-side-image.js +1 -0
  936. package/dist/domain/extensions/color-value.js +1 -0
  937. package/dist/domain/extensions/common/angle-indicator-schema.d.ts +292 -0
  938. package/dist/domain/extensions/common/angle-indicator-schema.js +1 -0
  939. package/dist/domain/extensions/common/dimension-indicator-schema.d.ts +607 -0
  940. package/dist/domain/extensions/common/index.d.ts +4 -0
  941. package/dist/domain/extensions/common/index.js +1 -0
  942. package/dist/domain/extensions/custom-header.d.ts +11 -0
  943. package/dist/domain/extensions/custom-header.js +1 -0
  944. package/dist/domain/extensions/custom-price-footer.js +1 -0
  945. package/dist/domain/extensions/custom-sidebar-footer.d.ts +11 -0
  946. package/dist/domain/extensions/custom-sidebar-footer.js +1 -0
  947. package/dist/domain/extensions/dimension-indicator.d.ts +31 -0
  948. package/dist/domain/extensions/dimension-indicator.js +1 -0
  949. package/dist/domain/extensions/editable-angle-indicator.d.ts +39 -0
  950. package/dist/domain/extensions/editable-angle-indicator.js +1 -0
  951. package/dist/domain/extensions/editable-distance-dimension-indicator.d.ts +43 -0
  952. package/dist/domain/extensions/editable-distance-dimension-indicator.js +1 -0
  953. package/dist/domain/extensions/editable-offset-indicator.d.ts +42 -0
  954. package/dist/domain/extensions/editable-offset-indicator.js +1 -0
  955. package/dist/domain/extensions/editable-size-indicator.d.ts +39 -0
  956. package/dist/domain/extensions/editable-size-indicator.js +1 -0
  957. package/dist/domain/extensions/entity-header.d.ts +22 -0
  958. package/dist/domain/extensions/entity-header.js +1 -0
  959. package/dist/domain/extensions/exit-tool-mode-fab.d.ts +25 -0
  960. package/dist/domain/extensions/exit-tool-mode-fab.js +1 -0
  961. package/dist/domain/extensions/finalize-action.d.ts +20 -0
  962. package/dist/domain/extensions/finalize-action.js +1 -0
  963. package/dist/domain/extensions/finalize-component.js +1 -0
  964. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -0
  965. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -0
  966. package/dist/domain/extensions/fixed-header.d.ts +10 -0
  967. package/dist/domain/extensions/fixed-header.js +1 -0
  968. package/dist/domain/extensions/floating-header.d.ts +10 -0
  969. package/dist/domain/extensions/floating-header.js +1 -0
  970. package/dist/domain/extensions/hidden-header.d.ts +8 -0
  971. package/dist/domain/extensions/hidden-header.js +1 -0
  972. package/dist/domain/extensions/hidden-sidebar-footer.d.ts +21 -0
  973. package/dist/domain/extensions/hidden-sidebar-footer.js +1 -0
  974. package/dist/domain/extensions/horizontal-tabs.d.ts +28 -0
  975. package/dist/domain/extensions/horizontal-tabs.js +1 -0
  976. package/dist/domain/extensions/index.d.ts +69 -0
  977. package/dist/domain/extensions/index.js +1 -0
  978. package/dist/domain/extensions/list-selector-dimension-indicator.d.ts +31 -0
  979. package/dist/domain/extensions/list-selector-dimension-indicator.js +1 -0
  980. package/dist/domain/extensions/multilingual-text-value.js +1 -0
  981. package/dist/domain/extensions/navigation-steps.d.ts +19 -0
  982. package/dist/domain/extensions/navigation-steps.js +1 -0
  983. package/dist/domain/extensions/offset-anchors.d.ts +20 -0
  984. package/dist/domain/extensions/offset-anchors.js +1 -0
  985. package/dist/domain/extensions/offset-indicator.d.ts +83 -0
  986. package/dist/domain/extensions/offset-indicator.js +1 -0
  987. package/dist/domain/extensions/offset.d.ts +31 -0
  988. package/dist/domain/extensions/offset.js +1 -0
  989. package/dist/domain/extensions/other-action.d.ts +14 -0
  990. package/dist/domain/extensions/other-action.js +1 -0
  991. package/dist/domain/extensions/property-page.d.ts +16 -0
  992. package/dist/domain/extensions/property-page.js +1 -0
  993. package/dist/domain/extensions/read-sidebar-footer.d.ts +8 -0
  994. package/dist/domain/extensions/read-sidebar-footer.js +1 -0
  995. package/dist/domain/extensions/replace-entity-recipe-hierarchy.d.ts +21 -0
  996. package/dist/domain/extensions/replace-entity-recipe-hierarchy.js +1 -0
  997. package/dist/domain/extensions/rotatable.js +1 -0
  998. package/dist/domain/extensions/rotation-handle.d.ts +53 -0
  999. package/dist/domain/extensions/rotation-handle.js +1 -0
  1000. package/dist/domain/extensions/save-template-thumbnail.d.ts +14 -0
  1001. package/dist/domain/extensions/save-template-thumbnail.js +1 -0
  1002. package/dist/domain/extensions/scene-entity-add-fab.d.ts +32 -0
  1003. package/dist/domain/extensions/scene-entity-add-fab.js +1 -0
  1004. package/dist/domain/extensions/scene-entity-animation.js +1 -0
  1005. package/dist/domain/extensions/scene-entity-control.js +1 -0
  1006. package/dist/domain/extensions/scene-entity-delete-fab.d.ts +19 -0
  1007. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -0
  1008. package/dist/domain/extensions/scene-entity-floor-object.js +1 -0
  1009. package/dist/domain/extensions/scene-entity-html-hotspot.d.ts +27 -0
  1010. package/dist/domain/extensions/scene-entity-html-hotspot.js +1 -0
  1011. package/dist/domain/extensions/scene-entity-navigation-hotspot.d.ts +20 -0
  1012. package/dist/domain/extensions/scene-entity-navigation-hotspot.js +1 -0
  1013. package/dist/domain/extensions/scene-entity-object-html-hotspot.d.ts +31 -0
  1014. package/dist/domain/extensions/scene-entity-object-html-hotspot.js +1 -0
  1015. package/dist/domain/extensions/scene-entity-select-hotspot.d.ts +5 -0
  1016. package/dist/domain/extensions/scene-entity-select-hotspot.js +1 -0
  1017. package/dist/domain/extensions/scene-entity-wall-object.js +1 -0
  1018. package/dist/domain/extensions/selectable-component.js +1 -0
  1019. package/dist/domain/extensions/sidebar-tabs.d.ts +29 -0
  1020. package/dist/domain/extensions/sidebar-tabs.js +1 -0
  1021. package/dist/domain/extensions/simple-summary.js +1 -0
  1022. package/dist/domain/extensions/size.d.ts +21 -0
  1023. package/dist/domain/extensions/size.js +1 -0
  1024. package/dist/domain/extensions/sketching-draw.d.ts +17 -0
  1025. package/dist/domain/extensions/sketching-draw.js +1 -0
  1026. package/dist/domain/extensions/sketching-edit.d.ts +28 -0
  1027. package/dist/domain/extensions/sketching-edit.js +1 -0
  1028. package/dist/domain/extensions/summary-component.js +1 -0
  1029. package/dist/domain/extensions/text-value.js +1 -0
  1030. package/dist/domain/extensions/tool-controls.js +1 -0
  1031. package/dist/domain/extensions/tool-menu-fab.d.ts +40 -0
  1032. package/dist/domain/extensions/tool-menu-fab.js +1 -0
  1033. package/dist/domain/extensions/toolbar.d.ts +13 -0
  1034. package/dist/domain/extensions/toolbar.js +1 -0
  1035. package/dist/domain/extensions/universal-sidebar-footer.d.ts +12 -0
  1036. package/dist/domain/extensions/universal-sidebar-footer.js +1 -0
  1037. package/dist/domain/extensions/view-controls.js +1 -0
  1038. package/dist/domain/index.d.ts +2 -33
  1039. package/dist/domain/index.js +1 -1
  1040. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  1041. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  1042. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +28 -19
  1043. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  1044. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  1045. package/dist/domain/mocks/create-mock-domain.js +1 -1
  1046. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  1047. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  1048. package/dist/domain/mocks/create-test-application-config.js +1 -0
  1049. package/dist/domain/mocks/index.d.ts +1 -0
  1050. package/dist/domain/mocks/index.js +1 -1
  1051. package/dist/domain/projections/blender-projections/blender-projections.d.ts +2 -3
  1052. package/dist/domain/projections/blender-projections/blender-projections.js +1 -1
  1053. package/dist/domain/projections/blender-projections/camera.d.ts +2 -2
  1054. package/dist/domain/projections/collision-projections.d.ts +1 -1
  1055. package/dist/domain/projections/composition-projections.d.ts +1 -1
  1056. package/dist/domain/projections/composition-projections.js +1 -1
  1057. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  1058. package/dist/domain/projections/index.d.ts +1 -1
  1059. package/dist/domain/projections/position-projections.d.ts +1 -1
  1060. package/dist/domain/projections/projected-entities-projections.d.ts +2 -3
  1061. package/dist/domain/projections/snap-matching.d.ts +1 -2
  1062. package/dist/domain/projections/snap-utils.d.ts +1 -2
  1063. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  1064. package/dist/domain/projections/validation-projections.d.ts +3 -20
  1065. package/dist/domain/projections/validation-projections.js +1 -1
  1066. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  1067. package/dist/domain/system-components/admin-sidebar.d.ts +1 -1
  1068. package/dist/domain/system-components/admin-sidebar.js +1 -1
  1069. package/dist/domain/system-components/angle-dimension.js +1 -1
  1070. package/dist/domain/system-components/application-config.d.ts +3 -3
  1071. package/dist/domain/system-components/application-config.js +1 -1
  1072. package/dist/domain/system-components/attribute-selection.js +1 -1
  1073. package/dist/domain/system-components/bounding-box-component.d.ts +1 -1
  1074. package/dist/domain/system-components/bounding-box-component.js +1 -1
  1075. package/dist/domain/system-components/bounding-sphere-component.d.ts +1 -1
  1076. package/dist/domain/system-components/bounding-sphere-component.js +1 -1
  1077. package/dist/domain/system-components/child-entity-recipes.d.ts +1 -1
  1078. package/dist/domain/system-components/child-entity-recipes.js +1 -1
  1079. package/dist/domain/system-components/child-entity-selection.d.ts +1 -2
  1080. package/dist/domain/system-components/child-entity-selection.js +1 -1
  1081. package/dist/domain/system-components/collision-box-geometry.d.ts +5 -3
  1082. package/dist/domain/system-components/collision-box-geometry.js +1 -1
  1083. package/dist/domain/system-components/collision-geometries.d.ts +1 -1
  1084. package/dist/domain/system-components/collision-geometry.d.ts +5 -3
  1085. package/dist/domain/system-components/collision-geometry.js +1 -1
  1086. package/dist/domain/system-components/collision-point-geometry.d.ts +5 -3
  1087. package/dist/domain/system-components/collision-point-geometry.js +1 -1
  1088. package/dist/domain/system-components/common/index.d.ts +0 -4
  1089. package/dist/domain/system-components/common/index.js +1 -1
  1090. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  1091. package/dist/domain/system-components/common/recipes.d.ts +21 -4
  1092. package/dist/domain/system-components/common/recipes.js +1 -1
  1093. package/dist/domain/system-components/common/scene-entity-control-schema.d.ts +3 -0
  1094. package/dist/domain/system-components/common/scene-entity-control-schema.js +1 -1
  1095. package/dist/domain/system-components/constraint.d.ts +11 -24
  1096. package/dist/domain/system-components/constraint.js +1 -1
  1097. package/dist/domain/system-components/create-blueprint.d.ts +1 -1
  1098. package/dist/domain/system-components/custom-scene-entity.d.ts +1 -1
  1099. package/dist/domain/system-components/custom-scene-entity.js +1 -1
  1100. package/dist/domain/system-components/detail.js +1 -1
  1101. package/dist/domain/system-components/distance-dimension-select.d.ts +1 -1
  1102. package/dist/domain/system-components/distance-dimension-select.js +1 -1
  1103. package/dist/domain/system-components/distance-dimension.d.ts +1 -1
  1104. package/dist/domain/system-components/distance-dimension.js +1 -1
  1105. package/dist/domain/system-components/drag-handle.d.ts +2 -2
  1106. package/dist/domain/system-components/drag-handle.js +1 -1
  1107. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  1108. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  1109. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  1110. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  1111. package/dist/domain/system-components/generic-dimension.d.ts +1 -1
  1112. package/dist/domain/system-components/generic-dimension.js +1 -1
  1113. package/dist/domain/system-components/hidden-entity.js +1 -1
  1114. package/dist/domain/system-components/hotspot-drag-handle.d.ts +2 -3
  1115. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  1116. package/dist/domain/system-components/index.d.ts +0 -68
  1117. package/dist/domain/system-components/index.js +1 -1
  1118. package/dist/domain/system-components/material-override-property-transition.js +1 -1
  1119. package/dist/domain/system-components/material-override-transformer.js +1 -1
  1120. package/dist/domain/system-components/material-swatch.js +1 -1
  1121. package/dist/domain/system-components/navigation-page.js +1 -1
  1122. package/dist/domain/system-components/navigation-panel-list.js +1 -1
  1123. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  1124. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  1125. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  1126. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  1127. package/dist/domain/system-components/pivot-point.d.ts +1 -1
  1128. package/dist/domain/system-components/pivot-point.js +1 -1
  1129. package/dist/domain/system-components/price.js +1 -1
  1130. package/dist/domain/system-components/projected-entities.d.ts +1 -1
  1131. package/dist/domain/system-components/projected-entities.js +1 -1
  1132. package/dist/domain/system-components/replace-entity-recipes.d.ts +1 -1
  1133. package/dist/domain/system-components/replace-entity-recipes.js +1 -1
  1134. package/dist/domain/system-components/scene-entity-ambient-light.js +1 -1
  1135. package/dist/domain/system-components/scene-entity-box-object.js +1 -1
  1136. package/dist/domain/system-components/scene-entity-directional-light.js +1 -1
  1137. package/dist/domain/system-components/scene-entity-local-material-override.js +1 -1
  1138. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  1139. package/dist/domain/system-components/scene-entity-material-override.js +1 -1
  1140. package/dist/domain/system-components/scene-entity-object-clip.js +1 -1
  1141. package/dist/domain/system-components/scene-entity-object-decal.js +1 -1
  1142. package/dist/domain/system-components/scene-entity-object-group.js +1 -1
  1143. package/dist/domain/system-components/scene-entity-object-local-material-override.js +1 -1
  1144. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  1145. package/dist/domain/system-components/scene-entity-object-material-override.js +1 -1
  1146. package/dist/domain/system-components/scene-entity-object-properties.js +1 -1
  1147. package/dist/domain/system-components/scene-entity-object-remote-material-override.js +1 -1
  1148. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  1149. package/dist/domain/system-components/scene-entity-object-text-decal.js +1 -1
  1150. package/dist/domain/system-components/scene-entity-object-transformer.js +1 -1
  1151. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  1152. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.js +1 -1
  1153. package/dist/domain/system-components/scene-entity-object.js +1 -1
  1154. package/dist/domain/system-components/scene-entity-point-light.js +1 -1
  1155. package/dist/domain/system-components/scene-entity-properties.js +1 -1
  1156. package/dist/domain/system-components/scene-entity-rect-area-light.js +1 -1
  1157. package/dist/domain/system-components/scene-entity-remote-material-override.js +1 -1
  1158. package/dist/domain/system-components/scene-entity-remote-object.js +1 -1
  1159. package/dist/domain/system-components/scene-entity-spot-light.js +1 -1
  1160. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  1161. package/dist/domain/system-components/scene-entity-transimissive-material-override.js +1 -1
  1162. package/dist/domain/system-components/sketching-line.d.ts +1 -1
  1163. package/dist/domain/system-components/sketching-line.js +1 -1
  1164. package/dist/domain/system-components/sketching-rectangle.d.ts +1 -1
  1165. package/dist/domain/system-components/sketching-rectangle.js +1 -1
  1166. package/dist/domain/system-components/sketching.d.ts +1 -1
  1167. package/dist/domain/system-components/sketching.js +1 -1
  1168. package/dist/domain/system-components/snap-axis.d.ts +1 -1
  1169. package/dist/domain/system-components/snap-axis.js +1 -1
  1170. package/dist/domain/system-components/snap-edge.d.ts +1 -1
  1171. package/dist/domain/system-components/snap-edge.js +1 -1
  1172. package/dist/domain/system-components/snap-plane.d.ts +1 -1
  1173. package/dist/domain/system-components/snap-plane.js +1 -1
  1174. package/dist/domain/system-components/snap-point.d.ts +1 -1
  1175. package/dist/domain/system-components/snap-point.js +1 -1
  1176. package/dist/domain/system-components/static-orthographic-camera-component.d.ts +1 -1
  1177. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  1178. package/dist/domain/system-components/static-perspective-camera-component.d.ts +1 -1
  1179. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  1180. package/dist/domain/utils/eval-cache.d.ts +2 -3
  1181. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  1182. package/dist/domain/utils/memo-eval.d.ts +2 -4
  1183. package/dist/editor/Editor.d.ts +7 -0
  1184. package/dist/editor/Editor.js +1 -1
  1185. package/dist/editor/domain-editors/use-implementation-files.d.ts +1 -2
  1186. package/dist/editor/mocks/CreateMockYaml.js +2 -2
  1187. package/dist/editor/mocks/EditorMockContext.d.ts +2 -0
  1188. package/dist/editor/mocks/EditorMockContext.js +1 -1
  1189. package/dist/globals/index.d.ts +2 -0
  1190. package/dist/i18n/locales/cs/messages.js +1 -1
  1191. package/dist/i18n/locales/da/messages.js +1 -1
  1192. package/dist/i18n/locales/de/messages.js +1 -1
  1193. package/dist/i18n/locales/de-AT/messages.js +1 -1
  1194. package/dist/i18n/locales/en/messages.js +1 -1
  1195. package/dist/i18n/locales/en-AU/messages.js +1 -1
  1196. package/dist/i18n/locales/en-GB/messages.js +1 -1
  1197. package/dist/i18n/locales/es/messages.js +1 -1
  1198. package/dist/i18n/locales/fr/messages.js +1 -1
  1199. package/dist/i18n/locales/hu/messages.js +1 -1
  1200. package/dist/i18n/locales/it/messages.js +1 -1
  1201. package/dist/i18n/locales/nl/messages.js +1 -1
  1202. package/dist/i18n/locales/pl/messages.js +1 -1
  1203. package/dist/i18n/locales/pt/messages.js +1 -1
  1204. package/dist/i18n/locales/ro/messages.js +1 -1
  1205. package/dist/i18n/locales/sk/messages.js +1 -1
  1206. package/dist/i18n/locales/tr/messages.js +1 -1
  1207. package/dist/legacy/domain-cli/gen/configurator-builder.js +13 -12
  1208. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  1209. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  1210. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  1211. package/dist/legacy/domain-cli/gen/invariants.js +7 -6
  1212. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  1213. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  1214. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  1215. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +160 -148
  1216. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  1217. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  1218. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  1219. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +7 -0
  1220. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  1221. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.d.ts +1 -1
  1222. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
  1223. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +15 -14
  1224. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +14 -12
  1225. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +14 -13
  1226. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +13 -11
  1227. package/dist/phoenix/application-spec/application-spec-builder.d.ts +0 -2
  1228. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  1229. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +0 -2
  1230. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  1231. package/dist/phoenix/application-spec/generate-application-spec-story.js +2 -2
  1232. package/dist/phoenix/application-spec/generate-project-files.d.ts +0 -2
  1233. package/dist/phoenix/application-spec/project-files.js +1 -1
  1234. package/dist/phoenix/bin.d.ts +2 -0
  1235. package/dist/phoenix/bin.js +2 -0
  1236. package/dist/phoenix/check-configs/built-in-eslint-config.d.ts +9 -0
  1237. package/dist/phoenix/check-configs/built-in-eslint-config.js +1 -0
  1238. package/dist/phoenix/check-configs/eslint-config.d.ts +10 -0
  1239. package/dist/phoenix/check-configs/eslint-config.js +1 -0
  1240. package/dist/phoenix/check-configs/index.d.ts +8 -0
  1241. package/dist/phoenix/check-configs/index.js +1 -0
  1242. package/dist/phoenix/check-configs/typescript-project.d.ts +5 -0
  1243. package/dist/phoenix/check-configs/typescript-project.js +1 -0
  1244. package/dist/phoenix/cli.d.ts +0 -1
  1245. package/dist/phoenix/cli.js +1 -2
  1246. package/dist/phoenix/commands/build.js +1 -1
  1247. package/dist/phoenix/commands/check.js +1 -1
  1248. package/dist/phoenix/commands/clean.js +1 -1
  1249. package/dist/phoenix/commands/deploy.js +2 -2
  1250. package/dist/phoenix/commands/deps/deps.d.ts +73 -0
  1251. package/dist/phoenix/commands/deps/deps.js +3 -0
  1252. package/dist/phoenix/commands/deps/index.d.ts +1 -0
  1253. package/dist/phoenix/commands/deps/index.js +1 -0
  1254. package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
  1255. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
  1256. package/dist/phoenix/commands/dev.js +5 -5
  1257. package/dist/phoenix/commands/fix.js +1 -1
  1258. package/dist/phoenix/commands/index.d.ts +1 -0
  1259. package/dist/phoenix/commands/index.js +1 -1
  1260. package/dist/phoenix/commands/init.d.ts +17 -5
  1261. package/dist/phoenix/commands/init.js +1 -1
  1262. package/dist/phoenix/commands/link.js +1 -1
  1263. package/dist/phoenix/commands/prettier.js +1 -1
  1264. package/dist/phoenix/commands/sync.js +1 -1
  1265. package/dist/phoenix/commands/unlink.js +1 -1
  1266. package/dist/phoenix/scripts/build-admin.js +1 -1
  1267. package/dist/phoenix/services/application-spec-project-watcher.d.ts +2 -2
  1268. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  1269. package/dist/phoenix/services/lingui.d.ts +8 -0
  1270. package/dist/phoenix/services/lingui.js +1 -1
  1271. package/dist/phoenix/services/source-archive.d.ts +1 -0
  1272. package/dist/phoenix/services/source-archive.js +1 -1
  1273. package/dist/phoenix/services/swc.js +1 -1
  1274. package/dist/phoenix/services/vite-config.js +1 -1
  1275. package/dist/phoenix/utils/git/index.d.ts +1 -0
  1276. package/dist/phoenix/utils/git/index.js +1 -0
  1277. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  1278. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  1279. package/dist/phoenix/utils/index.d.ts +5 -2
  1280. package/dist/phoenix/utils/index.js +1 -1
  1281. package/dist/phoenix/utils/node-version/index.d.ts +1 -0
  1282. package/dist/phoenix/utils/node-version/index.js +1 -0
  1283. package/dist/phoenix/utils/node-version/supported-node-version.d.ts +12 -0
  1284. package/dist/phoenix/utils/node-version/supported-node-version.js +4 -0
  1285. package/dist/phoenix/utils/package-info.d.ts +0 -9
  1286. package/dist/phoenix/utils/package-info.js +1 -1
  1287. package/dist/phoenix/utils/package-manager/index.d.ts +2 -0
  1288. package/dist/phoenix/utils/package-manager/index.js +1 -0
  1289. package/dist/phoenix/utils/package-manager/package-manager-commands.d.ts +19 -0
  1290. package/dist/phoenix/utils/package-manager/package-manager-commands.js +1 -0
  1291. package/dist/phoenix/utils/package-manager/pnpm-project.d.ts +9 -0
  1292. package/dist/phoenix/utils/package-manager/pnpm-project.js +1 -0
  1293. package/dist/phoenix/utils/run-command.d.ts +11 -0
  1294. package/dist/phoenix/utils/run-command.js +1 -1
  1295. package/dist/phoenix/utils/sdk-tool/index.d.ts +1 -0
  1296. package/dist/phoenix/utils/sdk-tool/index.js +1 -0
  1297. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.d.ts +15 -0
  1298. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.js +1 -0
  1299. package/dist/react-sdk/application-runtime/common-services/analytics/frontend-analytics.d.ts +48 -0
  1300. package/dist/react-sdk/application-runtime/common-services/analytics/frontend-analytics.js +1 -0
  1301. package/dist/react-sdk/application-runtime/common-services/analytics/index.d.ts +1 -0
  1302. package/dist/react-sdk/application-runtime/common-services/analytics/index.js +1 -1
  1303. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +2 -0
  1304. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  1305. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  1306. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +53 -36
  1307. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  1308. package/dist/react-sdk/domain-application-context/DomainLifecycleBoundary.js +1 -1
  1309. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +41 -0
  1310. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  1311. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +9 -9
  1312. package/dist/react-sdk/domain-context/index.d.ts +5 -1
  1313. package/dist/react-sdk/domain-context/index.js +1 -1
  1314. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +11 -0
  1315. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  1316. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.d.ts +57 -0
  1317. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.js +1 -0
  1318. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.d.ts +61 -0
  1319. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.js +1 -0
  1320. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.d.ts +20 -0
  1321. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -0
  1322. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  1323. package/dist/react-sdk/elements/configurator-error-page-props.d.ts +20 -0
  1324. package/dist/react-sdk/elements/configurator-error-page-props.js +1 -0
  1325. package/dist/react-sdk/elements/index.d.ts +1 -0
  1326. package/dist/react-sdk/handlers/FinalizeActionRunner.d.ts +13 -0
  1327. package/dist/react-sdk/handlers/FinalizeActionRunner.js +1 -0
  1328. package/dist/react-sdk/handlers/FinalizeActionsHost.d.ts +10 -0
  1329. package/dist/react-sdk/handlers/FinalizeActionsHost.js +1 -0
  1330. package/dist/react-sdk/handlers/FinalizeActionsProvider.d.ts +11 -0
  1331. package/dist/react-sdk/handlers/FinalizeActionsProvider.js +1 -0
  1332. package/dist/react-sdk/handlers/finalize-actions-context.d.ts +6 -0
  1333. package/dist/react-sdk/handlers/finalize-actions-context.js +1 -0
  1334. package/dist/react-sdk/handlers/finalize-actions-store.d.ts +23 -0
  1335. package/dist/react-sdk/handlers/finalize-actions-store.js +1 -0
  1336. package/dist/react-sdk/handlers/index.d.ts +6 -0
  1337. package/dist/react-sdk/handlers/index.js +1 -1
  1338. package/dist/react-sdk/handlers/use-finalize-action.d.ts +32 -0
  1339. package/dist/react-sdk/handlers/use-finalize-action.js +1 -0
  1340. package/dist/react-sdk/handlers/use-finalize-actions.d.ts +53 -0
  1341. package/dist/react-sdk/handlers/use-finalize-actions.js +1 -0
  1342. package/dist/react-sdk/index.d.ts +1 -0
  1343. package/dist/react-sdk/index.js +1 -1
  1344. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.d.ts +25 -0
  1345. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.js +1 -0
  1346. package/dist/react-sdk/responsive-state/canvas-padding.d.ts +14 -0
  1347. package/dist/react-sdk/responsive-state/canvas-padding.js +1 -0
  1348. package/dist/react-sdk/responsive-state/index.d.ts +5 -0
  1349. package/dist/react-sdk/responsive-state/index.js +1 -0
  1350. package/dist/react-sdk/responsive-state/responsive-state-manager.d.ts +111 -0
  1351. package/dist/react-sdk/responsive-state/responsive-state-manager.js +1 -0
  1352. package/dist/react-sdk/responsive-state/use-responsive-state-manager.d.ts +10 -0
  1353. package/dist/react-sdk/responsive-state/use-responsive-state-manager.js +1 -0
  1354. package/dist/react-sdk/responsive-state/use-responsive-state.d.ts +11 -0
  1355. package/dist/react-sdk/responsive-state/use-responsive-state.js +1 -0
  1356. package/dist/react-sdk/session/NotAuthenticatedPage.d.ts +4 -0
  1357. package/dist/react-sdk/session/NotAuthenticatedPage.js +1 -1
  1358. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +9 -0
  1359. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.js +1 -1
  1360. package/dist/ui-sdk/responsive-application/index.d.ts +1 -0
  1361. package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +57 -0
  1362. package/dist/ui-sdk/responsive-application/responsive-state-store.js +1 -0
  1363. package/dist/ui-sdk/responsive-application/use-store-responsive-info.d.ts +7 -0
  1364. package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -0
  1365. package/dist/ui-sdk/theme/types.d.ts +1 -1
  1366. package/dist/webhook/builders/common.d.ts +5 -0
  1367. package/dist/webhook/builders/webhook-builder.js +1 -1
  1368. package/package.json +48 -36
  1369. package/schema/domain-spec.json +1201 -217
  1370. package/dist/application-spec/core/eval-to-constant.d.ts +0 -14
  1371. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  1372. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  1373. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  1374. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -90
  1375. package/dist/application-spec/generate-application/code/templates/nvmrc.d.ts +0 -1
  1376. package/dist/application-spec/generate-application/code/templates/nvmrc.js +0 -2
  1377. package/dist/application-spec/generate-application/code/templates/package-json.d.ts +0 -10
  1378. package/dist/application-spec/generate-application/code/templates/package-json.js +0 -1
  1379. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  1380. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  1381. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  1382. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  1383. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  1384. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  1385. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  1386. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  1387. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  1388. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  1389. package/dist/application-spec/generate-application/code/templates/webhook-implementation.d.ts +0 -1
  1390. package/dist/application-spec/generate-application/code/templates/webhook-implementation.js +0 -7
  1391. package/dist/configurator/common/frontend-analytics.d.ts +0 -46
  1392. package/dist/configurator/common/frontend-analytics.js +0 -1
  1393. package/dist/domain/actions/action-factory.d.ts +0 -11
  1394. package/dist/domain/actions/prepare-action-implementations.d.ts +0 -15
  1395. package/dist/domain/actions/prepare-action-implementations.js +0 -5
  1396. package/dist/domain/application/element-registration.d.ts +0 -110
  1397. package/dist/domain/application/element-registration.js +0 -1
  1398. package/dist/domain/application/handler-registration.d.ts +0 -34
  1399. package/dist/domain/application/handler-registration.js +0 -1
  1400. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -23
  1401. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  1402. package/dist/domain/application/resource-builder.d.ts +0 -13
  1403. package/dist/domain/application/resource-builder.js +0 -1
  1404. package/dist/domain/components/component-reader-types.d.ts +0 -44
  1405. package/dist/domain/components/debug-state-component.d.ts +0 -14
  1406. package/dist/domain/components/debug-state-component.js +0 -1
  1407. package/dist/domain/components/domain-component-optic.d.ts +0 -79
  1408. package/dist/domain/components/domain-component-optic.js +0 -16
  1409. package/dist/domain/components/drag-state-component.d.ts +0 -16
  1410. package/dist/domain/components/drag-state-component.js +0 -1
  1411. package/dist/domain/components/export-state-component.d.ts +0 -15
  1412. package/dist/domain/components/export-state-component.js +0 -1
  1413. package/dist/domain/components/fullscreen-state-component.d.ts +0 -14
  1414. package/dist/domain/components/fullscreen-state-component.js +0 -1
  1415. package/dist/domain/components/group-components-by-entity-id-and-name.d.ts +0 -9
  1416. package/dist/domain/components/group-components-by-entity-id-and-name.js +0 -1
  1417. package/dist/domain/components/hover-state-component.d.ts +0 -14
  1418. package/dist/domain/components/hover-state-component.js +0 -1
  1419. package/dist/domain/components/index.d.ts +0 -2
  1420. package/dist/domain/components/index.js +0 -1
  1421. package/dist/domain/components/legacy-filter.d.ts +0 -513
  1422. package/dist/domain/components/navigation-state-component.d.ts +0 -15
  1423. package/dist/domain/components/navigation-state-component.js +0 -1
  1424. package/dist/domain/components/selection-state-component.d.ts +0 -14
  1425. package/dist/domain/components/selection-state-component.js +0 -1
  1426. package/dist/domain/components/system-component-builder.d.ts +0 -12
  1427. package/dist/domain/components/system-component-builder.js +0 -1
  1428. package/dist/domain/components/system-component-filter.d.ts +0 -793
  1429. package/dist/domain/components/system-virtual-entity.js +0 -1
  1430. package/dist/domain/components/tool-state-component.d.ts +0 -14
  1431. package/dist/domain/components/tool-state-component.js +0 -1
  1432. package/dist/domain/components/updates.d.ts +0 -124
  1433. package/dist/domain/components/view-state-component.d.ts +0 -14
  1434. package/dist/domain/components/view-state-component.js +0 -1
  1435. package/dist/domain/components/viewport-state-component.d.ts +0 -29
  1436. package/dist/domain/components/viewport-state-component.js +0 -1
  1437. package/dist/domain/core/action.d.ts +0 -67
  1438. package/dist/domain/core/component.d.ts +0 -46
  1439. package/dist/domain/core/expression.d.ts +0 -50
  1440. package/dist/domain/core/migrations.d.ts +0 -99
  1441. package/dist/domain/core/migrations.js +0 -1
  1442. package/dist/domain/core/model.d.ts +0 -127
  1443. package/dist/domain/core/reflection.d.ts +0 -114
  1444. package/dist/domain/core/reflection.js +0 -1
  1445. package/dist/domain/core/state.d.ts +0 -10
  1446. package/dist/domain/domain-context/recipe-system/recipes.d.ts +0 -57
  1447. package/dist/domain/domain-context/recipe-system/recipes.js +0 -1
  1448. package/dist/domain/expressions/constant-expressions.d.ts +0 -9
  1449. package/dist/domain/expressions/constant-expressions.js +0 -1
  1450. package/dist/domain/expressions/custom-expression.d.ts +0 -13
  1451. package/dist/domain/expressions/custom-expression.js +0 -1
  1452. package/dist/domain/expressions/index.d.ts +0 -1
  1453. package/dist/domain/expressions/index.js +0 -1
  1454. package/dist/domain/expressions/memoize-expression.d.ts +0 -17
  1455. package/dist/domain/expressions/prepare-domain-expressions.d.ts +0 -16
  1456. package/dist/domain/invariants/builtin-invariant.d.ts +0 -5
  1457. package/dist/domain/invariants/custom-invariants.d.ts +0 -22
  1458. package/dist/domain/invariants/custom-invariants.js +0 -1
  1459. package/dist/domain/invariants/invariants.d.ts +0 -77
  1460. package/dist/domain/invariants/invariants.js +0 -1
  1461. package/dist/domain/invariants/violation-component.js +0 -1
  1462. package/dist/domain/invariants/violation.d.ts +0 -85
  1463. package/dist/domain/invariants/violation.js +0 -1
  1464. package/dist/domain/project-modules/index.d.ts +0 -1
  1465. package/dist/domain/project-modules/index.js +0 -1
  1466. package/dist/domain/project-modules/project-modules.d.ts +0 -41
  1467. package/dist/domain/project-modules/project-modules.js +0 -1
  1468. package/dist/domain/relations/all-of-type-relation.d.ts +0 -33
  1469. package/dist/domain/relations/all-of-type-relation.js +0 -1
  1470. package/dist/domain/relations/component-factories.d.ts +0 -15
  1471. package/dist/domain/relations/component-factories.js +0 -1
  1472. package/dist/domain/relations/composed-of.d.ts +0 -12
  1473. package/dist/domain/relations/composed-of.js +0 -1
  1474. package/dist/domain/relations/direct-relation.d.ts +0 -29
  1475. package/dist/domain/relations/indirect-relation.d.ts +0 -81
  1476. package/dist/domain/relations/indirect-relation.js +0 -1
  1477. package/dist/domain/relations/reference-component.d.ts +0 -18
  1478. package/dist/domain/relations/reference-component.js +0 -1
  1479. package/dist/domain/relations/reference-field.d.ts +0 -7
  1480. package/dist/domain/relations/relation-factory.d.ts +0 -19
  1481. package/dist/domain/relations/relation-factory.js +0 -1
  1482. package/dist/domain/relations/relation-implementation.d.ts +0 -8
  1483. package/dist/domain/system-components/angle-indicator.d.ts +0 -21
  1484. package/dist/domain/system-components/angle-indicator.js +0 -1
  1485. package/dist/domain/system-components/attribute-switch.d.ts +0 -8
  1486. package/dist/domain/system-components/attribute-switch.js +0 -1
  1487. package/dist/domain/system-components/autorotate-camera-component.d.ts +0 -19
  1488. package/dist/domain/system-components/autorotate-camera-component.js +0 -1
  1489. package/dist/domain/system-components/basic-sidebar-footer.d.ts +0 -8
  1490. package/dist/domain/system-components/basic-sidebar-footer.js +0 -1
  1491. package/dist/domain/system-components/camera-based-hidden-entity-object.js +0 -1
  1492. package/dist/domain/system-components/camera-based-hidden-entity.js +0 -1
  1493. package/dist/domain/system-components/canvas-config.d.ts +0 -87
  1494. package/dist/domain/system-components/canvas-config.js +0 -1
  1495. package/dist/domain/system-components/canvas-custom-environment.js +0 -1
  1496. package/dist/domain/system-components/canvas-padding.d.ts +0 -25
  1497. package/dist/domain/system-components/canvas-padding.js +0 -1
  1498. package/dist/domain/system-components/canvas-preset-environment.d.ts +0 -37
  1499. package/dist/domain/system-components/canvas-preset-environment.js +0 -1
  1500. package/dist/domain/system-components/child-entity-recipe-hierarchy.d.ts +0 -21
  1501. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +0 -1
  1502. package/dist/domain/system-components/client-side-image.d.ts +0 -14
  1503. package/dist/domain/system-components/client-side-image.js +0 -1
  1504. package/dist/domain/system-components/color-value.js +0 -1
  1505. package/dist/domain/system-components/common/angle-indicator-schema.d.ts +0 -292
  1506. package/dist/domain/system-components/common/angle-indicator-schema.js +0 -1
  1507. package/dist/domain/system-components/common/dimension-indicator-schema.d.ts +0 -607
  1508. package/dist/domain/system-components/custom-header.d.ts +0 -11
  1509. package/dist/domain/system-components/custom-header.js +0 -1
  1510. package/dist/domain/system-components/custom-price-footer.js +0 -1
  1511. package/dist/domain/system-components/custom-sidebar-footer.d.ts +0 -11
  1512. package/dist/domain/system-components/custom-sidebar-footer.js +0 -1
  1513. package/dist/domain/system-components/dimension-indicator.d.ts +0 -31
  1514. package/dist/domain/system-components/dimension-indicator.js +0 -1
  1515. package/dist/domain/system-components/editable-angle-indicator.d.ts +0 -38
  1516. package/dist/domain/system-components/editable-angle-indicator.js +0 -1
  1517. package/dist/domain/system-components/editable-distance-dimension-indicator.d.ts +0 -42
  1518. package/dist/domain/system-components/editable-distance-dimension-indicator.js +0 -1
  1519. package/dist/domain/system-components/editable-offset-indicator.d.ts +0 -41
  1520. package/dist/domain/system-components/editable-offset-indicator.js +0 -1
  1521. package/dist/domain/system-components/editable-size-indicator.d.ts +0 -38
  1522. package/dist/domain/system-components/editable-size-indicator.js +0 -1
  1523. package/dist/domain/system-components/entity-header.d.ts +0 -22
  1524. package/dist/domain/system-components/entity-header.js +0 -1
  1525. package/dist/domain/system-components/exit-tool-mode-fab.d.ts +0 -25
  1526. package/dist/domain/system-components/exit-tool-mode-fab.js +0 -1
  1527. package/dist/domain/system-components/finalize-action.d.ts +0 -20
  1528. package/dist/domain/system-components/finalize-action.js +0 -1
  1529. package/dist/domain/system-components/finalize-component.js +0 -1
  1530. package/dist/domain/system-components/fit-selection-orthographic-camera-component.js +0 -1
  1531. package/dist/domain/system-components/fit-selection-perspective-camera-component.js +0 -1
  1532. package/dist/domain/system-components/fixed-header.d.ts +0 -10
  1533. package/dist/domain/system-components/fixed-header.js +0 -1
  1534. package/dist/domain/system-components/floating-header.d.ts +0 -10
  1535. package/dist/domain/system-components/floating-header.js +0 -1
  1536. package/dist/domain/system-components/hidden-header.d.ts +0 -8
  1537. package/dist/domain/system-components/hidden-header.js +0 -1
  1538. package/dist/domain/system-components/hidden-sidebar-footer.d.ts +0 -21
  1539. package/dist/domain/system-components/hidden-sidebar-footer.js +0 -1
  1540. package/dist/domain/system-components/horizontal-tabs.d.ts +0 -28
  1541. package/dist/domain/system-components/horizontal-tabs.js +0 -1
  1542. package/dist/domain/system-components/list-selector-dimension-indicator.d.ts +0 -30
  1543. package/dist/domain/system-components/list-selector-dimension-indicator.js +0 -1
  1544. package/dist/domain/system-components/multilingual-text-value.js +0 -1
  1545. package/dist/domain/system-components/navigation-steps.d.ts +0 -19
  1546. package/dist/domain/system-components/navigation-steps.js +0 -1
  1547. package/dist/domain/system-components/offset-anchors.d.ts +0 -20
  1548. package/dist/domain/system-components/offset-anchors.js +0 -1
  1549. package/dist/domain/system-components/offset-indicator.d.ts +0 -84
  1550. package/dist/domain/system-components/offset-indicator.js +0 -1
  1551. package/dist/domain/system-components/offset.d.ts +0 -31
  1552. package/dist/domain/system-components/offset.js +0 -1
  1553. package/dist/domain/system-components/other-action.d.ts +0 -14
  1554. package/dist/domain/system-components/other-action.js +0 -1
  1555. package/dist/domain/system-components/property-page.d.ts +0 -16
  1556. package/dist/domain/system-components/property-page.js +0 -1
  1557. package/dist/domain/system-components/read-sidebar-footer.d.ts +0 -8
  1558. package/dist/domain/system-components/read-sidebar-footer.js +0 -1
  1559. package/dist/domain/system-components/replace-entity-recipe-hierarchy.d.ts +0 -21
  1560. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +0 -1
  1561. package/dist/domain/system-components/rotatable.js +0 -1
  1562. package/dist/domain/system-components/rotation-handle.d.ts +0 -53
  1563. package/dist/domain/system-components/rotation-handle.js +0 -1
  1564. package/dist/domain/system-components/save-template-thumbnail.d.ts +0 -14
  1565. package/dist/domain/system-components/save-template-thumbnail.js +0 -1
  1566. package/dist/domain/system-components/scene-entity-add-fab.d.ts +0 -32
  1567. package/dist/domain/system-components/scene-entity-add-fab.js +0 -1
  1568. package/dist/domain/system-components/scene-entity-animation.js +0 -1
  1569. package/dist/domain/system-components/scene-entity-control.js +0 -1
  1570. package/dist/domain/system-components/scene-entity-delete-fab.d.ts +0 -19
  1571. package/dist/domain/system-components/scene-entity-delete-fab.js +0 -1
  1572. package/dist/domain/system-components/scene-entity-floor-object.js +0 -1
  1573. package/dist/domain/system-components/scene-entity-html-hotspot.d.ts +0 -27
  1574. package/dist/domain/system-components/scene-entity-html-hotspot.js +0 -1
  1575. package/dist/domain/system-components/scene-entity-navigation-hotspot.d.ts +0 -20
  1576. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +0 -1
  1577. package/dist/domain/system-components/scene-entity-object-html-hotspot.d.ts +0 -31
  1578. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +0 -1
  1579. package/dist/domain/system-components/scene-entity-select-hotspot.d.ts +0 -5
  1580. package/dist/domain/system-components/scene-entity-select-hotspot.js +0 -1
  1581. package/dist/domain/system-components/scene-entity-wall-object.js +0 -1
  1582. package/dist/domain/system-components/selectable-component.js +0 -1
  1583. package/dist/domain/system-components/sidebar-tabs.d.ts +0 -29
  1584. package/dist/domain/system-components/sidebar-tabs.js +0 -1
  1585. package/dist/domain/system-components/simple-summary.js +0 -1
  1586. package/dist/domain/system-components/size.d.ts +0 -21
  1587. package/dist/domain/system-components/size.js +0 -1
  1588. package/dist/domain/system-components/sketching-draw.d.ts +0 -17
  1589. package/dist/domain/system-components/sketching-draw.js +0 -1
  1590. package/dist/domain/system-components/sketching-edit.d.ts +0 -28
  1591. package/dist/domain/system-components/sketching-edit.js +0 -1
  1592. package/dist/domain/system-components/summary-component.js +0 -1
  1593. package/dist/domain/system-components/text-value.js +0 -1
  1594. package/dist/domain/system-components/tool-controls.js +0 -1
  1595. package/dist/domain/system-components/tool-menu-fab.d.ts +0 -40
  1596. package/dist/domain/system-components/tool-menu-fab.js +0 -1
  1597. package/dist/domain/system-components/toolbar.d.ts +0 -13
  1598. package/dist/domain/system-components/toolbar.js +0 -1
  1599. package/dist/domain/system-components/universal-sidebar-footer.d.ts +0 -12
  1600. package/dist/domain/system-components/universal-sidebar-footer.js +0 -1
  1601. package/dist/domain/system-components/view-controls.js +0 -1
  1602. package/dist/phoenix/commands/generate-project-files.d.ts +0 -6
  1603. package/dist/phoenix/commands/generate-project-files.js +0 -1
  1604. /package/dist/{domain/components/component-reader-types.js → application-spec/core/expressions/relation-expression-params.js} +0 -0
  1605. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  1606. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  1607. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
  1608. /package/dist/{domain/core/action.js → application-spec/generate-application/runtime/spec-code/spec-code-module.js} +0 -0
  1609. /package/dist/{domain/core/expression.js → application-spec/parse-application-files/spec/expressions/expression-read.js} +0 -0
  1610. /package/dist/{domain/relations/relation-implementation.js → configurator/ui/assistant/form/form-element-definition.js} +0 -0
  1611. /package/dist/{domain/relations/reference-field.js → configurator/ui/assistant/form-elements/form-element-props.js} +0 -0
  1612. /package/dist/domain/{actions → core/action}/action-factory.js +0 -0
  1613. /package/dist/domain/{components → core/component}/legacy-filter.js +0 -0
  1614. /package/dist/domain/{components → core/component}/system-component-filter.js +0 -0
  1615. /package/dist/domain/{components → core/component}/system-virtual-entity.d.ts +0 -0
  1616. /package/dist/domain/{components → core/component}/updates.js +0 -0
  1617. /package/dist/domain/{invariants → core/invariant}/builtin-invariant.js +0 -0
  1618. /package/dist/domain/{invariants → core/invariant}/violation-component.d.ts +0 -0
  1619. /package/dist/domain/core/{alias.d.ts → model/alias.d.ts} +0 -0
  1620. /package/dist/domain/core/{alias.js → model/alias.js} +0 -0
  1621. /package/dist/domain/core/{common-definitions.d.ts → model/common-definitions.d.ts} +0 -0
  1622. /package/dist/domain/core/{common-definitions.js → model/common-definitions.js} +0 -0
  1623. /package/dist/domain/core/{component.js → model/component.js} +0 -0
  1624. /package/dist/domain/core/{model.js → model/model.js} +0 -0
  1625. /package/dist/domain/core/{preset.d.ts → model/preset.d.ts} +0 -0
  1626. /package/dist/domain/core/{preset.js → model/preset.js} +0 -0
  1627. /package/dist/domain/{relations → core/relation}/direct-relation.js +0 -0
  1628. /package/dist/domain/core/{state.js → state/state.js} +0 -0
  1629. /package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.js +0 -0
  1630. /package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.js +0 -0
  1631. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.d.ts +0 -0
  1632. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.d.ts +0 -0
  1633. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.d.ts +0 -0
  1634. /package/dist/domain/{system-components → extensions}/color-value.d.ts +0 -0
  1635. /package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.js +0 -0
  1636. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.d.ts +0 -0
  1637. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.js +0 -0
  1638. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.d.ts +0 -0
  1639. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.js +0 -0
  1640. /package/dist/domain/{system-components → extensions}/custom-price-footer.d.ts +0 -0
  1641. /package/dist/domain/{system-components → extensions}/finalize-component.d.ts +0 -0
  1642. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.d.ts +0 -0
  1643. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.d.ts +0 -0
  1644. /package/dist/domain/{system-components → extensions}/multilingual-text-value.d.ts +0 -0
  1645. /package/dist/domain/{system-components → extensions}/rotatable.d.ts +0 -0
  1646. /package/dist/domain/{system-components → extensions}/scene-entity-animation.d.ts +0 -0
  1647. /package/dist/domain/{system-components → extensions}/scene-entity-control.d.ts +0 -0
  1648. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.d.ts +0 -0
  1649. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.d.ts +0 -0
  1650. /package/dist/domain/{system-components → extensions}/selectable-component.d.ts +0 -0
  1651. /package/dist/domain/{system-components → extensions}/simple-summary.d.ts +0 -0
  1652. /package/dist/domain/{system-components → extensions}/summary-component.d.ts +0 -0
  1653. /package/dist/domain/{system-components → extensions}/text-value.d.ts +0 -0
  1654. /package/dist/domain/{system-components → extensions}/tool-controls.d.ts +0 -0
  1655. /package/dist/domain/{system-components → extensions}/view-controls.d.ts +0 -0
@@ -1 +1 @@
1
- import{Subject as t,debounceTime as e,distinctUntilChanged as n,map as o}from"rxjs";import{match as i}from"ts-pattern";import{isNonNullish as a}from"@salsita-ai/common/utils";import{debugStateComponent as r}from"../../components/debug-state-component.js";import{dragStateComponent as c}from"../../components/drag-state-component.js";import{exportStateComponent as s}from"../../components/export-state-component.js";import{fullscreenStateComponent as p}from"../../components/fullscreen-state-component.js";import{hoverStateComponent as l}from"../../components/hover-state-component.js";import{navigationStateComponent as d}from"../../components/navigation-state-component.js";import{selectionStateComponent as m}from"../../components/selection-state-component.js";import{getComponentSystemFilterState as g}from"../../components/system-component-filter.js";import{systemVirtualEntityId as S}from"../../components/system-virtual-entity.js";import{toolStateComponent as y}from"../../components/tool-state-component.js";import{systemUpdateFactory as u}from"../../components/updates.js";import{viewStateComponent as h}from"../../components/view-state-component.js";import{viewportStateComponent as I}from"../../components/viewport-state-component.js";import{AnalyticsEventFactory as v}from"../analytics-system/analytics-contracts.js";import{NavigationUpdateTag as T}from"./navigation-updates.js";export const createAutoSelectionTransformer=t=>(e,n)=>{let o=t.getActiveSelectionState(n),i=e.find(t=>"createDomainEntity"===t.kind);if(null!=i)return[...e,t.getSelectUpdate(i.entityId)];let a=e.find(t=>"replaceDomainEntity"===t.kind&&o===t.entityId);return null!=a?[...e,t.getSelectUpdate(a.replacementEntity.id)]:null!=e.find(t=>"deleteEntity"===t.kind&&o===t.entityId)?[...e,t.getDeselectUpdate()]:e};export class NavigationSystem{_context;_generation=null;_hoverSubject=new t;get _initialNavigationState(){return this._context.selectors.getNavigationStates()[0]}get _initialViewState(){return this._context.selectors.getViewStates()[0]}get _initialToolState(){return this._context.selectors.getToolStates()[0]}get _initialExportState(){return this._context.selectors.getExportStates()[0]}constructor(t){this._context=t,this._context.selectors.getStoreSystem().stateSlices.committed.pipe(o(t=>this.getActiveNavigationState(t.state)),n()).subscribe(t=>{this._context.domainServicesSelectors.getAnalyticsService().push(v.NavigationEvent({navigationState:t})),this._context.domainServicesSelectors.getLogger().appendToGlobalContext({navigationState:t})}),this._context.selectors.getStoreSystem().registerTransformer(100,createAutoSelectionTransformer(this),"AutoSelectionTransformer"),this._hoverSubject.pipe(e(20)).subscribe(({hoveredEntityId:t,generation:e})=>{if(e?.active===!0){if(t){if(this.getActiveHoverState(this._context.selectors.getStoreSystem().stateSlices.rendered.value.state)!==t){let e=this._context.selectors.getStoreSystem().prepareStateEmission([this.getHoverInUpdate(t)],this._context.selectors.getStoreSystem().stateSlices.rendered.value.state,"staged");this._context.selectors.getStoreSystem().emit(e)}}else if(this.getActiveHoverState(this._context.selectors.getStoreSystem().stateSlices.rendered.value.state)){let t=this._context.selectors.getStoreSystem().prepareStateEmission([this.getHoverOutUpdate()],this._context.selectors.getStoreSystem().stateSlices.rendered.value.state,"staged");this._context.selectors.getStoreSystem().emit(t)}}})}initialize=()=>{null!==this._generation&&(this._generation.active=!1),this._generation={active:!0},this._context.selectors.getStoreSystem().stageAndCommit(this.getInitialUpdates())};getInitialUpdates=()=>[this._initialNavigationState?u.EphemeralRecordCreation({componentInstance:{entityId:S,componentType:d},updateTag:T.Initial,initialState:{activeState:this._initialNavigationState,historyStack:[]}}):null,u.EphemeralRecordCreation({componentInstance:{entityId:S,componentType:m},updateTag:T.Initial,initialState:{selectedEntityId:this._context.selectors.getStoreSystem().stateSlices.committed.value.state.rootEntityId}}),u.EphemeralRecordCreation({componentInstance:{entityId:S,componentType:l},updateTag:T.Initial,initialState:{hoveredEntityId:null}}),u.EphemeralRecordCreation({componentInstance:{entityId:S,componentType:r},updateTag:T.Initial,initialState:{enabled:!1}}),this._initialViewState?u.EphemeralRecordCreation({componentInstance:{entityId:S,componentType:h},updateTag:T.Initial,initialState:{activeState:this._initialViewState}}):null,this._initialToolState?u.EphemeralRecordCreation({componentInstance:{entityId:S,componentType:y},updateTag:T.Initial,initialState:{activeState:this._initialToolState}}):null,this._initialExportState?u.EphemeralRecordCreation({componentInstance:{entityId:S,componentType:s},updateTag:T.Initial,initialState:{activeState:this._initialExportState,exportedEntityId:this._context.selectors.getStoreSystem().stateSlices.committed.value.state.rootEntityId}}):null,u.EphemeralRecordCreation({componentInstance:{entityId:S,componentType:p},updateTag:T.Initial,initialState:{enabled:!1}}),u.EphemeralRecordCreation({componentInstance:{entityId:S,componentType:c},updateTag:T.Initial,initialState:{draggedEntityId:null}}),u.EphemeralRecordCreation({componentInstance:{entityId:S,componentType:I},updateTag:T.Initial,initialState:{active:null}})].filter(a);getActiveNavigationState(t){return g(t).navigationState??this._initialNavigationState}getActiveSelectionState(t){return g(t).selectedEntityId??t.rootEntityId}getActiveHoverState(t){return g(t).hoveredEntityId??null}getActiveViewState(t){return g(t).viewState??this._initialViewState}getActiveToolState(t){return g(t).toolState??""}getActiveExportState(t){let e=g(t);return{activeState:e.exportState??this._initialExportState??"",exportedEntityId:e.exportedEntityId??t.rootEntityId}}getActiveFullscreenState(t){let e=this._context.selectors.getComponentReader().readOneComponent({entityId:S,componentType:p},t);return e?.state.enabled??!1}getActiveDragState(t){return g(t).draggedEntityId??null}getActiveViewportState(t){return g(t).viewports??null}getNavigationUpdate=t=>u.EphemeralRecordModification({componentInstance:{entityId:S,componentType:d},updateTag:T.ReplaceNavigation,writableState:{activeState:t,historyStack:[]}});getPushNavigationUpdate=(t,e,n={})=>{let o=this.getActiveNavigationState(e),a=[...this.getHistoryStack(e),o],r=i(n.canStackOnto).with(void 0,()=>a).otherwise(t=>{let e;for(let n=a.length-1;n>=0;n--)if(t.includes(a[n])){e=n;break}return void 0===e?[]:a.slice(0,e+1)});return u.EphemeralRecordModification({componentInstance:{entityId:S,componentType:d},updateTag:T.PushNavigation,writableState:{activeState:t,historyStack:r}})};getIsRootSelected=t=>this.getActiveSelectionState(t)===t.rootEntityId;getHistoryStack=t=>{let e=this._context.selectors.getComponentReader().readOneComponent({entityId:S,componentType:d},t);return e?.state.historyStack??[]};getHasStackToPop=t=>this.getHistoryStack(t).length>0;getPopNavigationUpdate=t=>{let e=this.getHistoryStack(t),n=e.at(-1);if(!n)return null;let o=e.slice(0,-1);return u.EphemeralRecordModification({componentInstance:{entityId:S,componentType:d},updateTag:T.PopNavigation,writableState:{activeState:n,historyStack:o}})};getViewUpdate=t=>u.EphemeralRecordModification({componentInstance:{entityId:S,componentType:h},updateTag:T.ActiveateView,writableState:{activeState:t}});getToolUpdate=t=>u.EphemeralRecordModification({componentInstance:{entityId:S,componentType:y},updateTag:T.ActivateTool,writableState:{activeState:t}});getExportUpdate=(t,e)=>u.EphemeralRecordModification({componentInstance:{entityId:S,componentType:s},updateTag:T.SetExportState,writableState:{activeState:t,exportedEntityId:e}});getSelectUpdate=t=>u.EphemeralRecordModification({componentInstance:{entityId:S,componentType:m},updateTag:T.SelectEntity,writableState:{selectedEntityId:t}});getDeselectUpdate=()=>u.EphemeralRecordModification({componentInstance:{entityId:S,componentType:m},updateTag:T.Deselect,writableState:{selectedEntityId:this._context.selectors.getStoreSystem().stateSlices.committed.value.state.rootEntityId}});getHoverInUpdate=t=>u.EphemeralRecordModification({componentInstance:{entityId:S,componentType:l},updateTag:T.HoverIn,writableState:{hoveredEntityId:t}});getHoverOutUpdate=()=>u.EphemeralRecordModification({componentInstance:{entityId:S,componentType:l},updateTag:T.HoverOut,writableState:{hoveredEntityId:null}});getFullscreenUpdate=t=>u.EphemeralRecordModification({componentInstance:{entityId:S,componentType:p},updateTag:T.ToggleFullscreen,writableState:{enabled:t}});getDragStartUpdate=t=>u.EphemeralRecordModification({componentInstance:{entityId:S,componentType:c},updateTag:T.DragStart,writableState:{draggedEntityId:t}});getDragEndUpdate=()=>u.EphemeralRecordModification({componentInstance:{entityId:S,componentType:c},updateTag:T.DragEnd,writableState:{draggedEntityId:null}});getViewportUpdate=t=>u.EphemeralRecordModification({componentInstance:{entityId:S,componentType:I},updateTag:T.SetViewport,writableState:{active:t}});getToggleFullscreenUpdate=(t=this._context.selectors.getStoreSystem().stateSlices.committed.value.state)=>{let e=this.getActiveFullscreenState(t);return this.getFullscreenUpdate(!e)};debouncedToggleHover=t=>{this._hoverSubject.next({hoveredEntityId:t,generation:this._generation})};resetApplicationStates(){}}
1
+ import{Subject as t,debounceTime as e,distinctUntilChanged as i,map as n}from"rxjs";import{match as a}from"ts-pattern";import{isNonNullish as o}from"@salsita-ai/common/utils";import{debugStateComponent as r,dragStateComponent as c,exportStateComponent as s,fullscreenStateComponent as l,getComponentSystemFilterState as p,hoverStateComponent as d,navigationStateComponent as S,selectionStateComponent as g,systemUpdateFactory as m,systemVirtualEntityId as y,toolStateComponent as h,viewStateComponent as u,viewportStateComponent as I}from"../../core/index.js";import{AnalyticsEventFactory as v}from"../analytics-system/index.js";import{NavigationUpdateTag as T}from"./navigation-updates.js";export const createAutoSelectionTransformer=t=>(e,i)=>{let n=t.getActiveSelectionState(i),a=e.find(t=>"createDomainEntity"===t.kind);if(null!=a)return[...e,t.getSelectUpdate(a.entityId)];let o=e.find(t=>"replaceDomainEntity"===t.kind&&n===t.entityId);return null!=o?[...e,t.getSelectUpdate(o.replacementEntity.id)]:null!=e.find(t=>"deleteEntity"===t.kind&&n===t.entityId)?[...e,t.getDeselectUpdate()]:e};export class NavigationSystem{_context;_generation=null;_hoverSubject=new t;get _initialNavigationState(){return this._context.selectors.getNavigationStates()[0]}get _initialViewState(){return this._context.selectors.getViewStates()[0]}get _initialToolState(){return this._context.selectors.getToolStates()[0]}get _initialExportState(){return this._context.selectors.getExportStates()[0]}constructor(t){this._context=t,this._context.selectors.getStoreSystem().stateSlices.committed.pipe(n(t=>this.getActiveNavigationState(t.state)),i()).subscribe(t=>{this._context.domainServicesSelectors.getAnalyticsService().push(v.NavigationEvent({navigationState:t})),this._context.domainServicesSelectors.getLogger().appendToGlobalContext({navigationState:t})}),this._context.selectors.getStoreSystem().registerTransformer(100,createAutoSelectionTransformer(this),"AutoSelectionTransformer"),this._hoverSubject.pipe(e(20)).subscribe(({hoveredEntityId:t,generation:e})=>{if(e?.active===!0){if(t){if(this.getActiveHoverState(this._context.selectors.getStoreSystem().stateSlices.rendered.value.state)!==t){let e=this._context.selectors.getStoreSystem().prepareStateEmission([this.getHoverInUpdate(t)],this._context.selectors.getStoreSystem().stateSlices.rendered.value.state,"staged");this._context.selectors.getStoreSystem().emit(e)}}else if(this.getActiveHoverState(this._context.selectors.getStoreSystem().stateSlices.rendered.value.state)){let t=this._context.selectors.getStoreSystem().prepareStateEmission([this.getHoverOutUpdate()],this._context.selectors.getStoreSystem().stateSlices.rendered.value.state,"staged");this._context.selectors.getStoreSystem().emit(t)}}})}initialize=()=>{null!==this._generation&&(this._generation.active=!1),this._generation={active:!0},this._context.selectors.getStoreSystem().stageAndCommit(this.getInitialUpdates())};getInitialUpdates=()=>[this._initialNavigationState?m.EphemeralRecordCreation({componentInstance:{entityId:y,componentType:S},updateTag:T.Initial,initialState:{activeState:this._initialNavigationState,historyStack:[]}}):null,m.EphemeralRecordCreation({componentInstance:{entityId:y,componentType:g},updateTag:T.Initial,initialState:{selectedEntityId:this._context.selectors.getStoreSystem().stateSlices.committed.value.state.rootEntityId}}),m.EphemeralRecordCreation({componentInstance:{entityId:y,componentType:d},updateTag:T.Initial,initialState:{hoveredEntityId:null}}),m.EphemeralRecordCreation({componentInstance:{entityId:y,componentType:r},updateTag:T.Initial,initialState:{enabled:!1}}),this._initialViewState?m.EphemeralRecordCreation({componentInstance:{entityId:y,componentType:u},updateTag:T.Initial,initialState:{activeState:this._initialViewState}}):null,this._initialToolState?m.EphemeralRecordCreation({componentInstance:{entityId:y,componentType:h},updateTag:T.Initial,initialState:{activeState:this._initialToolState}}):null,this._initialExportState?m.EphemeralRecordCreation({componentInstance:{entityId:y,componentType:s},updateTag:T.Initial,initialState:{activeState:this._initialExportState,exportedEntityId:this._context.selectors.getStoreSystem().stateSlices.committed.value.state.rootEntityId}}):null,m.EphemeralRecordCreation({componentInstance:{entityId:y,componentType:l},updateTag:T.Initial,initialState:{enabled:!1}}),m.EphemeralRecordCreation({componentInstance:{entityId:y,componentType:c},updateTag:T.Initial,initialState:{draggedEntityId:null}}),m.EphemeralRecordCreation({componentInstance:{entityId:y,componentType:I},updateTag:T.Initial,initialState:{active:null}})].filter(o);getActiveNavigationState(t){return p(t).navigationState??this._initialNavigationState}getActiveSelectionState(t){return p(t).selectedEntityId??t.rootEntityId}getActiveHoverState(t){return p(t).hoveredEntityId??null}getActiveViewState(t){return p(t).viewState??this._initialViewState}getActiveToolState(t){return p(t).toolState??""}getActiveExportState(t){let e=p(t);return{activeState:e.exportState??this._initialExportState??"",exportedEntityId:e.exportedEntityId??t.rootEntityId}}getActiveFullscreenState(t){let e=this._context.selectors.getComponentReader().readOneComponent({entityId:y,componentType:l},t);return e?.state.enabled??!1}getActiveDragState(t){return p(t).draggedEntityId??null}getActiveViewportState(t){return p(t).viewports??null}getNavigationUpdate=t=>m.EphemeralRecordModification({componentInstance:{entityId:y,componentType:S},updateTag:T.ReplaceNavigation,writableState:{activeState:t,historyStack:[]}});getPushNavigationUpdate=(t,e,i={})=>{let n=this.getActiveNavigationState(e),o=[...this.getHistoryStack(e),n],r=a(i.canStackOnto).with(void 0,()=>o).otherwise(t=>{let e;for(let i=o.length-1;i>=0;i--)if(t.includes(o[i])){e=i;break}return void 0===e?[]:o.slice(0,e+1)});return m.EphemeralRecordModification({componentInstance:{entityId:y,componentType:S},updateTag:T.PushNavigation,writableState:{activeState:t,historyStack:r}})};getIsRootSelected=t=>this.getActiveSelectionState(t)===t.rootEntityId;getHistoryStack=t=>{let e=this._context.selectors.getComponentReader().readOneComponent({entityId:y,componentType:S},t);return e?.state.historyStack??[]};getHasStackToPop=t=>this.getHistoryStack(t).length>0;getPopNavigationUpdate=t=>{let e=this.getHistoryStack(t),i=e.at(-1);if(!i)return null;let n=e.slice(0,-1);return m.EphemeralRecordModification({componentInstance:{entityId:y,componentType:S},updateTag:T.PopNavigation,writableState:{activeState:i,historyStack:n}})};getViewUpdate=t=>m.EphemeralRecordModification({componentInstance:{entityId:y,componentType:u},updateTag:T.ActiveateView,writableState:{activeState:t}});getToolUpdate=t=>m.EphemeralRecordModification({componentInstance:{entityId:y,componentType:h},updateTag:T.ActivateTool,writableState:{activeState:t}});getExportUpdate=(t,e)=>m.EphemeralRecordModification({componentInstance:{entityId:y,componentType:s},updateTag:T.SetExportState,writableState:{activeState:t,exportedEntityId:e}});getSelectUpdate=t=>m.EphemeralRecordModification({componentInstance:{entityId:y,componentType:g},updateTag:T.SelectEntity,writableState:{selectedEntityId:t}});getDeselectUpdate=()=>m.EphemeralRecordModification({componentInstance:{entityId:y,componentType:g},updateTag:T.Deselect,writableState:{selectedEntityId:this._context.selectors.getStoreSystem().stateSlices.committed.value.state.rootEntityId}});getHoverInUpdate=t=>m.EphemeralRecordModification({componentInstance:{entityId:y,componentType:d},updateTag:T.HoverIn,writableState:{hoveredEntityId:t}});getHoverOutUpdate=()=>m.EphemeralRecordModification({componentInstance:{entityId:y,componentType:d},updateTag:T.HoverOut,writableState:{hoveredEntityId:null}});getFullscreenUpdate=t=>m.EphemeralRecordModification({componentInstance:{entityId:y,componentType:l},updateTag:T.ToggleFullscreen,writableState:{enabled:t}});getDragStartUpdate=t=>m.EphemeralRecordModification({componentInstance:{entityId:y,componentType:c},updateTag:T.DragStart,writableState:{draggedEntityId:t}});getDragEndUpdate=()=>m.EphemeralRecordModification({componentInstance:{entityId:y,componentType:c},updateTag:T.DragEnd,writableState:{draggedEntityId:null}});getViewportUpdate=t=>m.EphemeralRecordModification({componentInstance:{entityId:y,componentType:I},updateTag:T.SetViewport,writableState:{active:t}});getToggleFullscreenUpdate=(t=this._context.selectors.getStoreSystem().stateSlices.committed.value.state)=>{let e=this.getActiveFullscreenState(t);return this.getFullscreenUpdate(!e)};debouncedToggleHover=t=>{this._hoverSubject.next({hoveredEntityId:t,generation:this._generation})};resetApplicationStates(){}}
@@ -1,16 +1,5 @@
1
1
  import type { ValueOf } from '@salsita-ai/common/utils';
2
- import { debugStateComponent } from '../../components/debug-state-component.js';
3
- import { dragStateComponent } from '../../components/drag-state-component.js';
4
- import { exportStateComponent } from '../../components/export-state-component.js';
5
- import { fullscreenStateComponent } from '../../components/fullscreen-state-component.js';
6
- import { hoverStateComponent } from '../../components/hover-state-component.js';
7
- import { navigationStateComponent } from '../../components/navigation-state-component.js';
8
- import { selectionStateComponent } from '../../components/selection-state-component.js';
9
- import { toolStateComponent } from '../../components/tool-state-component.js';
10
- import type { EphemeralRecordCreation, EphemeralRecordModification, StateUpdate } from '../../components/updates.js';
11
- import { viewStateComponent } from '../../components/view-state-component.js';
12
- import { viewportStateComponent } from '../../components/viewport-state-component.js';
13
- import type { DomainEntity } from '../../core/model.js';
2
+ import { type DomainEntity, type EphemeralRecordCreation, type EphemeralRecordModification, type StateUpdate, debugStateComponent, dragStateComponent, exportStateComponent, fullscreenStateComponent, hoverStateComponent, navigationStateComponent, selectionStateComponent, toolStateComponent, viewStateComponent, viewportStateComponent } from '../../core/index.js';
14
3
  /**
15
4
  * All updates performed by the navigation system.
16
5
  */
@@ -1 +1 @@
1
- import{debugStateComponent as e}from"../../components/debug-state-component.js";import{dragStateComponent as t}from"../../components/drag-state-component.js";import{exportStateComponent as a}from"../../components/export-state-component.js";import{fullscreenStateComponent as o}from"../../components/fullscreen-state-component.js";import{hoverStateComponent as n}from"../../components/hover-state-component.js";import{navigationStateComponent as i}from"../../components/navigation-state-component.js";import{selectionStateComponent as p}from"../../components/selection-state-component.js";import{toolStateComponent as c}from"../../components/tool-state-component.js";import{viewStateComponent as r}from"../../components/view-state-component.js";import{viewportStateComponent as d}from"../../components/viewport-state-component.js";export const NavigationUpdateTag={Initial:"navigation.initial",ReplaceNavigation:"navigation.replaceNavigation",PushNavigation:"navigation.pushNavigation",PopNavigation:"navigation.popNavigation",ActiveateView:"navigation.activateView",ActivateTool:"navigation.activateTool",SetExportState:"navigation.setExportState",SelectEntity:"navigation.selectEntity",Deselect:"navigation.deselect",ToggleFullscreen:"navigation.toggleFullscreen",SetViewport:"navigation.setViewport",HoverIn:"navigation.hoverIn",HoverOut:"navigation.hoverOut",DragStart:"navigation.dragStart",DragEnd:"navigation.dragEnd"};export const isInitialNavigationUpdate=e=>e.updateTag===NavigationUpdateTag.Initial&&"createEphemeralRecord"===e.kind&&e.componentInstance.componentType===i;export const isNavigationUpdate=e=>(e.updateTag===NavigationUpdateTag.ReplaceNavigation||e.updateTag===NavigationUpdateTag.PushNavigation||e.updateTag===NavigationUpdateTag.PopNavigation)&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===i;export const isInitialViewUpdate=e=>e.updateTag===NavigationUpdateTag.Initial&&"createEphemeralRecord"===e.kind&&e.componentInstance.componentType===r;export const isInitialToolUpdate=e=>e.updateTag===NavigationUpdateTag.Initial&&"createEphemeralRecord"===e.kind&&e.componentInstance.componentType===c;export const isViewUpdate=e=>e.updateTag===NavigationUpdateTag.ActiveateView&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===r;export const isToolUpdate=e=>e.updateTag===NavigationUpdateTag.ActivateTool&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===c;export const isExportUpdate=e=>e.updateTag===NavigationUpdateTag.SetExportState&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===a;export const isInitialSelectionUpdate=e=>e.updateTag===NavigationUpdateTag.Initial&&"createEphemeralRecord"===e.kind&&e.componentInstance.componentType===p;export const isSelectUpdate=e=>e.updateTag===NavigationUpdateTag.SelectEntity&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===p;export const isDeselectUpdate=e=>e.updateTag===NavigationUpdateTag.Deselect&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===p;export const isHoverInUpdate=e=>e.updateTag===NavigationUpdateTag.HoverIn&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===n;export const isHoverOutUpdate=e=>e.updateTag===NavigationUpdateTag.HoverOut&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===n;export const isInitialFullscreenUpdate=e=>e.updateTag===NavigationUpdateTag.Initial&&"createEphemeralRecord"===e.kind&&e.componentInstance.componentType===o;export const isToggleFullscreenUpdate=e=>e.updateTag===NavigationUpdateTag.ToggleFullscreen&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===o;export const isInitialDebugUpdate=t=>t.updateTag===NavigationUpdateTag.Initial&&"createEphemeralRecord"===t.kind&&t.componentInstance.componentType===e;export const isInitialViewportUpdate=e=>e.updateTag===NavigationUpdateTag.Initial&&"createEphemeralRecord"===e.kind&&e.componentInstance.componentType===d;export const isSetViewportUpdate=e=>e.updateTag===NavigationUpdateTag.SetViewport&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===d;export const isInitialDragUpdate=e=>e.updateTag===NavigationUpdateTag.Initial&&"createEphemeralRecord"===e.kind&&e.componentInstance.componentType===t;export const isDragStartUpdate=e=>e.updateTag===NavigationUpdateTag.DragStart&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===t;export const isDragEndUpdate=e=>e.updateTag===NavigationUpdateTag.DragEnd&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===t;
1
+ import{debugStateComponent as e,dragStateComponent as t,exportStateComponent as a,fullscreenStateComponent as n,hoverStateComponent as o,navigationStateComponent as i,selectionStateComponent as p,toolStateComponent as c,viewStateComponent as d,viewportStateComponent as g}from"../../core/index.js";export const NavigationUpdateTag={Initial:"navigation.initial",ReplaceNavigation:"navigation.replaceNavigation",PushNavigation:"navigation.pushNavigation",PopNavigation:"navigation.popNavigation",ActiveateView:"navigation.activateView",ActivateTool:"navigation.activateTool",SetExportState:"navigation.setExportState",SelectEntity:"navigation.selectEntity",Deselect:"navigation.deselect",ToggleFullscreen:"navigation.toggleFullscreen",SetViewport:"navigation.setViewport",HoverIn:"navigation.hoverIn",HoverOut:"navigation.hoverOut",DragStart:"navigation.dragStart",DragEnd:"navigation.dragEnd"};export const isInitialNavigationUpdate=e=>e.updateTag===NavigationUpdateTag.Initial&&"createEphemeralRecord"===e.kind&&e.componentInstance.componentType===i;export const isNavigationUpdate=e=>(e.updateTag===NavigationUpdateTag.ReplaceNavigation||e.updateTag===NavigationUpdateTag.PushNavigation||e.updateTag===NavigationUpdateTag.PopNavigation)&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===i;export const isInitialViewUpdate=e=>e.updateTag===NavigationUpdateTag.Initial&&"createEphemeralRecord"===e.kind&&e.componentInstance.componentType===d;export const isInitialToolUpdate=e=>e.updateTag===NavigationUpdateTag.Initial&&"createEphemeralRecord"===e.kind&&e.componentInstance.componentType===c;export const isViewUpdate=e=>e.updateTag===NavigationUpdateTag.ActiveateView&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===d;export const isToolUpdate=e=>e.updateTag===NavigationUpdateTag.ActivateTool&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===c;export const isExportUpdate=e=>e.updateTag===NavigationUpdateTag.SetExportState&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===a;export const isInitialSelectionUpdate=e=>e.updateTag===NavigationUpdateTag.Initial&&"createEphemeralRecord"===e.kind&&e.componentInstance.componentType===p;export const isSelectUpdate=e=>e.updateTag===NavigationUpdateTag.SelectEntity&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===p;export const isDeselectUpdate=e=>e.updateTag===NavigationUpdateTag.Deselect&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===p;export const isHoverInUpdate=e=>e.updateTag===NavigationUpdateTag.HoverIn&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===o;export const isHoverOutUpdate=e=>e.updateTag===NavigationUpdateTag.HoverOut&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===o;export const isInitialFullscreenUpdate=e=>e.updateTag===NavigationUpdateTag.Initial&&"createEphemeralRecord"===e.kind&&e.componentInstance.componentType===n;export const isToggleFullscreenUpdate=e=>e.updateTag===NavigationUpdateTag.ToggleFullscreen&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===n;export const isInitialDebugUpdate=t=>t.updateTag===NavigationUpdateTag.Initial&&"createEphemeralRecord"===t.kind&&t.componentInstance.componentType===e;export const isInitialViewportUpdate=e=>e.updateTag===NavigationUpdateTag.Initial&&"createEphemeralRecord"===e.kind&&e.componentInstance.componentType===g;export const isSetViewportUpdate=e=>e.updateTag===NavigationUpdateTag.SetViewport&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===g;export const isInitialDragUpdate=e=>e.updateTag===NavigationUpdateTag.Initial&&"createEphemeralRecord"===e.kind&&e.componentInstance.componentType===t;export const isDragStartUpdate=e=>e.updateTag===NavigationUpdateTag.DragStart&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===t;export const isDragEndUpdate=e=>e.updateTag===NavigationUpdateTag.DragEnd&&"modifyEphemeralRecord"===e.kind&&e.componentInstance.componentType===t;
@@ -1,6 +1,6 @@
1
- import { type $DomainEntity, type DomainEntity } from '../../core/model.js';
1
+ import { type $DomainEntity, type DomainEntity } from '../../core/index.js';
2
2
  import type { DomainContextSystems } from '../domain-context-systems.js';
3
- import type { UpdateTransformer } from '../store-system/store-system.js';
3
+ import type { UpdateTransformer } from '../store-system/index.js';
4
4
  /**
5
5
  * Resets selection (Deselect update) when the navigation state is one of the provided states.
6
6
  */
@@ -1 +1 @@
1
- import{domainEntityTypeFromId as t,isDomainEntityId as e}from"../../core/model.js";import{isDeselectUpdate as a,isNavigationUpdate as n,isSelectUpdate as i}from"./navigation-updates.js";export const createResetSelectionOnNavigationTransformer=(t,e)=>a=>a.flatMap(a=>n(a)&&t.includes(a.writableState.activeState)?[a,e.navigationSystem.getDeselectUpdate()]:[a]);export const createNavigationOnSelectionTransformer=(e,a,n)=>o=>o.flatMap(o=>i(o)&&t(o.writableState.selectedEntityId)===e?[o,n.navigationSystem.getNavigationUpdate(a)]:[o]);export const createNavigationOnSelectionChangeTransformer=(e,a,n,o)=>(r,s)=>r.flatMap(r=>{if(!i(r))return[r];let c=t(o.navigationSystem.getActiveSelectionState(s)),l=t(r.writableState.selectedEntityId);return c===e&&l===a?[r,o.navigationSystem.getNavigationUpdate(n)]:[r]});export const createNavigationOnDeselectTransformer=(t,e)=>n=>n.flatMap(n=>a(n)?[n,e.navigationSystem.getNavigationUpdate(t)]:[n]);export const createSelectParentOnDeselectionTransformer=t=>(n,i)=>{let o=t.navigationSystem.getActiveSelectionState(i);return n.flatMap(n=>{if(a(n)&&e(o)){let e=t.compositionProjections.getTree(i).map.get(o);if(!e)throw Error(`Can not fallback to parent selected entity, entity with id ${o} not found in the composition tree. The state is invalid!`);return e.parent?[n,t.navigationSystem.getSelectUpdate(e.parent.id)]:[n]}return[n]})};
1
+ import{domainEntityTypeFromId as t,isDomainEntityId as e}from"../../core/index.js";import{isDeselectUpdate as a,isNavigationUpdate as n,isSelectUpdate as i}from"./navigation-updates.js";export const createResetSelectionOnNavigationTransformer=(t,e)=>a=>a.flatMap(a=>n(a)&&t.includes(a.writableState.activeState)?[a,e.navigationSystem.getDeselectUpdate()]:[a]);export const createNavigationOnSelectionTransformer=(e,a,n)=>o=>o.flatMap(o=>i(o)&&t(o.writableState.selectedEntityId)===e?[o,n.navigationSystem.getNavigationUpdate(a)]:[o]);export const createNavigationOnSelectionChangeTransformer=(e,a,n,o)=>(r,s)=>r.flatMap(r=>{if(!i(r))return[r];let c=t(o.navigationSystem.getActiveSelectionState(s)),l=t(r.writableState.selectedEntityId);return c===e&&l===a?[r,o.navigationSystem.getNavigationUpdate(n)]:[r]});export const createNavigationOnDeselectTransformer=(t,e)=>n=>n.flatMap(n=>a(n)?[n,e.navigationSystem.getNavigationUpdate(t)]:[n]);export const createSelectParentOnDeselectionTransformer=t=>(n,i)=>{let o=t.navigationSystem.getActiveSelectionState(i);return n.flatMap(n=>{if(a(n)&&e(o)){let e=t.compositionProjections.getTree(i).map.get(o);if(!e)throw Error(`Can not fallback to parent selected entity, entity with id ${o} not found in the composition tree. The state is invalid!`);return e.parent?[n,t.navigationSystem.getSelectUpdate(e.parent.id)]:[n]}return[n]})};
@@ -0,0 +1 @@
1
+ export { type AnyRecipeCookerSystem, CreateRecipeUpdateTag, type IsCreateRecipeUpdate, type IsReplaceRecipeUpdate, RecipeCookerSystem, type RecipeCookerSystemContext, ReplaceRecipeUpdateTag, isCreateEntityUpdate, isReplaceEntityUpdate, } from './recipe-cooker-system.js';
@@ -0,0 +1 @@
1
+ export{CreateRecipeUpdateTag,RecipeCookerSystem,ReplaceRecipeUpdateTag,isCreateEntityUpdate,isReplaceEntityUpdate}from"./recipe-cooker-system.js";
@@ -1,7 +1,5 @@
1
- import { type DomainEntityCreation, type DomainEntityReplacement, type StateUpdate } from '../../components/updates.js';
2
- import { type DomainEntity, type DomainEntityId, type DomainState } from '../../core/index.js';
3
- import type { DomainContextSelectors } from '../../domain-runtime/domain-context/index.js';
4
- import type { EntityRecipe } from './recipes.js';
1
+ import { type DomainEntity, type DomainEntityCreation, type DomainEntityId, type DomainEntityReplacement, type DomainState, type EntityRecipe, type StateUpdate } from '../../core/index.js';
2
+ import type { DomainContextSelectors } from '../../domain-runtime/index.js';
5
3
  export declare const CreateRecipeUpdateTag = "createRecipe";
6
4
  export type IsCreateRecipeUpdate<ENTITIES extends DomainEntity<string>> = <TYPE extends ENTITIES['type']>(update: StateUpdate<ENTITIES, ENTITIES>, types: readonly TYPE[]) => update is DomainEntityCreation<Extract<ENTITIES, {
7
5
  type: TYPE;
@@ -1 +1 @@
1
- import{systemUpdateFactory as e}from"../../components/updates.js";import{domainEntityTypeFromId as t,isDomainEntityId as n}from"../../core/index.js";import{composedOfComponent as i}from"../../relations/composed-of.js";import{referenceComponent as o}from"../../relations/reference-component.js";import{getIdSequence as a}from"../store-system/next-domain-entity-id.js";export const CreateRecipeUpdateTag="createRecipe";export const isCreateEntityUpdate=(e,n)=>"createDomainEntity"===e.kind&&e.updateTag===CreateRecipeUpdateTag&&n.includes(t(e.entityId));export const ReplaceRecipeUpdateTag="replaceRecipe";export const isReplaceEntityUpdate=(e,i)=>"replaceDomainEntity"===e.kind&&e.updateTag===ReplaceRecipeUpdateTag&&n(e.entityId)&&i.includes(t(e.entityId));export class RecipeCookerSystem{_context;constructor(e){this._context=e}_getFragmentComponents=(e,t)=>this._context.selectors.getComponentReader().readManyComponents({componentTypes:[t]},{rootEntityId:"Root-1",rootEntityType:"Root",entities:e,ephemeralRecords:[]});cookRecipes=(e,n)=>{let p=new Map,r=a(n.entities,[]);for(let t of e){let e=r.nextId(t.type);p.set(t.id,e)}let c=this._getFragmentComponents(e,o),s=e.map(e=>{let n={...e,id:p.get(e.id)};return c.filter(t=>t.componentInstance.entityId===e.id).reduce((n,i)=>{let o=this._context.selectors.getComponentReaderIndexes().opticMap.get(t(e.id))?.get(i.componentInstance.componentType)?.get(i.componentInstance.instanceName);if(o?.kind!=="simple")throw Error("References can only be simple optics!");return{...n,...o?.write({referencedEntityIds:i.state.referencedEntityIds.map(t=>t===e.id?t:p.get(t)??t)})}},n)}),d=this._getFragmentComponents(s,i);return s.map(e=>{let t=d.find(t=>t.state.childEntityIds.includes(e.id));return{entity:e,parentId:t?.componentInstance.entityId}})};prepareCreateUpdates=(t,n,i,o)=>this.cookRecipes(t,n).map(t=>t.parentId?e.DomainEntityCreation({entity:t.entity,collection:void 0,updateTag:CreateRecipeUpdateTag,parentId:t.parentId}):e.DomainEntityCreation({entity:t.entity,collection:o,updateTag:CreateRecipeUpdateTag,parentId:i}));prepareReplaceUpdates=(t,n,i,o)=>{let a=this.cookRecipes(t,n),p=a.filter(e=>!e.parentId);if(!p[0]||p.length>1)throw Error("Can not prepare ReplaceEntityRecipes, root entity not found in the cooked recipes. Please, make sure that defined recipes have always a single root entity.");return a.map(t=>t.parentId?e.DomainEntityCreation({entity:t.entity,collection:void 0,updateTag:ReplaceRecipeUpdateTag,parentId:t.parentId}):e.DomainEntityReplacement({entityId:i,replacementEntity:t.entity,updateTag:ReplaceRecipeUpdateTag,keepChildren:o??!1}))}}
1
+ import{composedOfComponent as e,domainEntityTypeFromId as t,isDomainEntityId as n,referenceComponent as i,systemUpdateFactory as a}from"../../core/index.js";import{getIdSequence as o}from"../store-system/index.js";export const CreateRecipeUpdateTag="createRecipe";export const isCreateEntityUpdate=(e,n)=>"createDomainEntity"===e.kind&&e.updateTag===CreateRecipeUpdateTag&&n.includes(t(e.entityId));export const ReplaceRecipeUpdateTag="replaceRecipe";export const isReplaceEntityUpdate=(e,i)=>"replaceDomainEntity"===e.kind&&e.updateTag===ReplaceRecipeUpdateTag&&n(e.entityId)&&i.includes(t(e.entityId));export class RecipeCookerSystem{_context;constructor(e){this._context=e}_getFragmentComponents=(e,t)=>this._context.selectors.getComponentReader().readManyComponents({componentTypes:[t]},{rootEntityId:"Root-1",rootEntityType:"Root",entities:e,ephemeralRecords:[]});cookRecipes=(n,a)=>{let p=new Map,r=o(a.entities,[]);for(let e of n){let t=r.nextId(e.type);p.set(e.id,t)}let c=this._getFragmentComponents(n,i),d=n.map(e=>{let n={...e,id:p.get(e.id)};return c.filter(t=>t.componentInstance.entityId===e.id).reduce((n,i)=>{let a=this._context.selectors.getComponentReaderIndexes().opticMap.get(t(e.id))?.get(i.componentInstance.componentType)?.get(i.componentInstance.instanceName);if(a?.kind!=="simple")throw Error("References can only be simple optics!");return{...n,...a?.write({referencedEntityIds:i.state.referencedEntityIds.map(t=>t===e.id?t:p.get(t)??t)})}},n)}),s=this._getFragmentComponents(d,e);return d.map(e=>{let t=s.find(t=>t.state.childEntityIds.includes(e.id));return{entity:e,parentId:t?.componentInstance.entityId}})};prepareCreateUpdates=(e,t,n,i)=>this.cookRecipes(e,t).map(e=>e.parentId?a.DomainEntityCreation({entity:e.entity,collection:void 0,updateTag:CreateRecipeUpdateTag,parentId:e.parentId}):a.DomainEntityCreation({entity:e.entity,collection:i,updateTag:CreateRecipeUpdateTag,parentId:n}));prepareReplaceUpdates=(e,t,n,i)=>{let o=this.cookRecipes(e,t),p=o.filter(e=>!e.parentId);if(!p[0]||p.length>1)throw Error("Can not prepare ReplaceEntityRecipes, root entity not found in the cooked recipes. Please, make sure that defined recipes have always a single root entity.");return o.map(e=>e.parentId?a.DomainEntityCreation({entity:e.entity,collection:void 0,updateTag:ReplaceRecipeUpdateTag,parentId:e.parentId}):a.DomainEntityReplacement({entityId:n,replacementEntity:e.entity,updateTag:ReplaceRecipeUpdateTag,keepChildren:i??!1}))}}
@@ -1,6 +1,6 @@
1
- import { type DomainEntity } from '../../core/model.js';
2
- import type { CompositionProjections } from '../../projections/composition-projections.js';
3
- import type { IncrementalUpdateTransformer } from '../store-system/store-system.js';
1
+ import { type DomainEntity } from '../../core/index.js';
2
+ import type { CompositionProjections } from '../../projections/index.js';
3
+ import type { IncrementalUpdateTransformer } from '../store-system/index.js';
4
4
  /**
5
5
  * This transformer reacts on entity deletion and removes any descendant entities of the deleted one.
6
6
  */
@@ -1 +1 @@
1
- import{systemUpdateFactory as e}from"../../components/updates.js";import{isVirtualEntityId as t}from"../../core/model.js";let n=e=>"deleteEntity"===e.kind||"replaceDomainEntity"===e.kind&&!e.keepChildren;export const createCascadeDeletesTransformer=i=>(o,r,d,l,a=[])=>{let s=o.filter(n);if(0===s.length)return o;let{map:f}=i.getTree(r),p=[],c=new Set([...s,...a.filter(n)].map(e=>e.entityId));for(let n of s){if(t(n.entityId))continue;let i=f.get(n.entityId);if(i)for(let t of i.descendants())c.has(t.id)||(p.push(e.EntityDeletion({entityId:t.id,updateTag:"composition.cascadeDelete"})),c.add(t.id))}return p.length>0?[...o,...p]:o};
1
+ import{isVirtualEntityId as e,systemUpdateFactory as t}from"../../core/index.js";let i=e=>"deleteEntity"===e.kind||"replaceDomainEntity"===e.kind&&!e.keepChildren;export const createCascadeDeletesTransformer=n=>(d,r,l,o,a=[])=>{let f=d.filter(i);if(0===f.length)return d;let{map:s}=n.getTree(r),c=[],p=new Set([...f,...a.filter(i)].map(e=>e.entityId));for(let i of f){if(e(i.entityId))continue;let n=s.get(i.entityId);if(n)for(let e of n.descendants())p.has(e.id)||(c.push(t.EntityDeletion({entityId:e.id,updateTag:"composition.cascadeDelete"})),p.add(e.id))}return c.length>0?[...d,...c]:d};
@@ -1,6 +1,6 @@
1
- import type { DomainEntity } from '../../core/model.js';
2
- import type { ComponentReader } from '../../domain-runtime/domain-context/index.js';
3
- import type { IncrementalUpdateTransformer } from '../store-system/store-system.js';
1
+ import { type DomainEntity } from '../../core/index.js';
2
+ import type { ComponentReader } from '../../domain-runtime/index.js';
3
+ import type { IncrementalUpdateTransformer } from '../store-system/index.js';
4
4
  /**
5
5
  * This transformer reacts on entity deletion and removes references to the deleted entities from any reference field,
6
6
  * through the appropriate system component.
@@ -1 +1 @@
1
- import{isNonNullish as e}from"@salsita-ai/common/utils";import{systemUpdateFactory as t}from"../../components/updates.js";import{referenceComponent as n}from"../../relations/reference-component.js";export const createCascadeRefPruningTransformer=r=>(i,o,a,s,c=[])=>{let m=new Set([...i,...c].filter(e=>"deleteEntity"===e.kind).map(e=>e.entityId));if(0===m.size)return i;let d=new Set([...i,...c].filter(e=>"deleteEntity"===e.kind||"replaceDomainEntity"===e.kind).map(e=>e.entityId)),p=r.readManyComponents({componentTypes:[n]},o).map(e=>{if(d.has(e.componentInstance.entityId))return;let n=e.state.referencedEntityIds.filter(e=>!m.has(e));if(n.length<e.state.referencedEntityIds.length)return t.ComponentModification({componentInstance:e.componentInstance,updateTag:"refs.cascadePruning",writableState:{referencedEntityIds:n}})}).filter(e);return p.length>0?[...i,...p]:i};
1
+ import{isNonNullish as e}from"@salsita-ai/common/utils";import{referenceComponent as t,systemUpdateFactory as n}from"../../core/index.js";export const createCascadeRefPruningTransformer=r=>(i,a,o,s,d=[])=>{let c=new Set([...i,...d].filter(e=>"deleteEntity"===e.kind).map(e=>e.entityId));if(0===c.size)return i;let m=new Set([...i,...d].filter(e=>"deleteEntity"===e.kind||"replaceDomainEntity"===e.kind).map(e=>e.entityId)),f=r.readManyComponents({componentTypes:[t]},a).map(e=>{if(m.has(e.componentInstance.entityId))return;let t=e.state.referencedEntityIds.filter(e=>!c.has(e));if(t.length<e.state.referencedEntityIds.length)return n.ComponentModification({componentInstance:e.componentInstance,updateTag:"refs.cascadePruning",writableState:{referencedEntityIds:t}})}).filter(e);return f.length>0?[...i,...f]:i};
@@ -1,6 +1,6 @@
1
- import type { DomainEntity } from '../../core/model.js';
2
- import type { ComponentReader } from '../../domain-runtime/domain-context/index.js';
3
- import type { IncrementalUpdateTransformer } from '../store-system/store-system.js';
1
+ import { type DomainEntity } from '../../core/index.js';
2
+ import type { ComponentReader } from '../../domain-runtime/index.js';
3
+ import type { IncrementalUpdateTransformer } from '../store-system/index.js';
4
4
  /**
5
5
  * This transformer reacts on entity creation and adds the entity to all references specified.
6
6
  */
@@ -1,2 +1,2 @@
1
- import{systemUpdateFactory as e}from"../../components/updates.js";import{referenceComponent as t}from"../../relations/reference-component.js";export const createCreateEntityRefsTransformer=n=>(o,r)=>{let i=o.filter(e=>"createDomainEntity"===e.kind);if(0===i.length)return o;let a=i.flatMap(o=>{if(void 0===o.collection)return[];let i=n.readManyComponents({componentTypes:[t],entityIds:[o.parentId],instanceNames:[o.collection]},r);if(0===i.length)throw Error(`Newly created entity ${o.entityId} should be added to collection ${o.collection} on parent entity ${o.parentId}, but no such collection can be found.
2
- Check whether the collection name is correctly specified in the createDomainEntity update.`);return i.map(t=>e.ComponentModification({componentInstance:t.componentInstance,updateTag:"refs.update",writableState:{referencedEntityIds:t.state.referencedEntityIds.concat(o.entityId)}}))}).reduce((t,n)=>{let o=t[n.entityId.toString()];if(o){let r=e.ComponentModification({componentInstance:o.componentInstance,updateTag:o.updateTag,writableState:{referencedEntityIds:Array.from(new Set([...o.writableState.referencedEntityIds,...n.writableState.referencedEntityIds]))}});t[n.entityId.toString()]=r}else t[n.entityId.toString()]=n;return t},{});return o.concat(Object.values(a))};
1
+ import{referenceComponent as e,systemUpdateFactory as t}from"../../core/index.js";export const createCreateEntityRefsTransformer=n=>(r,o)=>{let i=r.filter(e=>"createDomainEntity"===e.kind);if(0===i.length)return r;let a=i.flatMap(r=>{if(void 0===r.collection)return[];let i=n.readManyComponents({componentTypes:[e],entityIds:[r.parentId],instanceNames:[r.collection]},o);if(0===i.length)throw Error(`Newly created entity ${r.entityId} should be added to collection ${r.collection} on parent entity ${r.parentId}, but no such collection can be found.
2
+ Check whether the collection name is correctly specified in the createDomainEntity update.`);return i.map(e=>t.ComponentModification({componentInstance:e.componentInstance,updateTag:"refs.update",writableState:{referencedEntityIds:e.state.referencedEntityIds.concat(r.entityId)}}))}).reduce((e,n)=>{let r=e[n.entityId.toString()];if(r){let o=t.ComponentModification({componentInstance:r.componentInstance,updateTag:r.updateTag,writableState:{referencedEntityIds:Array.from(new Set([...r.writableState.referencedEntityIds,...n.writableState.referencedEntityIds]))}});e[n.entityId.toString()]=o}else e[n.entityId.toString()]=n;return e},{});return r.concat(Object.values(a))};
@@ -0,0 +1,4 @@
1
+ export { createCascadeDeletesTransformer } from './cascade-deletes.js';
2
+ export { createCascadeRefPruningTransformer } from './cascade-ref-pruning.js';
3
+ export { createCreateEntityRefsTransformer } from './create-entity-refs.js';
4
+ export { createRefReplaceTransformer } from './replace-refs.js';
@@ -0,0 +1 @@
1
+ export{createCascadeDeletesTransformer}from"./cascade-deletes.js";export{createCascadeRefPruningTransformer}from"./cascade-ref-pruning.js";export{createCreateEntityRefsTransformer}from"./create-entity-refs.js";export{createRefReplaceTransformer}from"./replace-refs.js";
@@ -1,6 +1,6 @@
1
- import type { DomainEntity } from '../../core/model.js';
2
- import type { ComponentReader } from '../../domain-runtime/domain-context/index.js';
3
- import type { IncrementalUpdateTransformer } from '../store-system/store-system.js';
1
+ import { type DomainEntity } from '../../core/index.js';
2
+ import type { ComponentReader } from '../../domain-runtime/index.js';
3
+ import type { IncrementalUpdateTransformer } from '../store-system/index.js';
4
4
  /**
5
5
  * This transformer reacts on entity replacement and updates references to the replaced entities in any other entity.
6
6
  */
@@ -1 +1 @@
1
- import{isNonNullish as e}from"@salsita-ai/common/utils";import{systemUpdateFactory as t}from"../../components/updates.js";import{referenceComponent as n}from"../../relations/reference-component.js";export const createRefReplaceTransformer=o=>(i,r,a,p,c=[])=>{let m=new Map(i.filter(e=>"replaceDomainEntity"===e.kind).map(e=>[e.entityId,e.replacementEntity.id]));if(0===m.size)return i;let s=new Set([...i,...c].filter(e=>"deleteEntity"===e.kind||"replaceDomainEntity"===e.kind).map(e=>e.entityId)),d=o.readManyComponents({componentTypes:[n]},r).map(e=>{if(s.has(e.componentInstance.entityId)&&!m.has(e.componentInstance.entityId))return;let n=!1,o=e.state.referencedEntityIds.map(e=>{let t=m.get(e);return void 0!==t?(n=!0,t):e});if(n)return t.ComponentModification({componentInstance:{...e.componentInstance,entityId:m.get(e.componentInstance.entityId)??e.componentInstance.entityId},updateTag:"refs.replace",writableState:{referencedEntityIds:o}})}).filter(e);return d.length>0?[...i,...d]:i};
1
+ import{isNonNullish as e}from"@salsita-ai/common/utils";import{referenceComponent as t,systemUpdateFactory as n}from"../../core/index.js";export const createRefReplaceTransformer=i=>(r,a,o,c,p=[])=>{let m=new Map(r.filter(e=>"replaceDomainEntity"===e.kind).map(e=>[e.entityId,e.replacementEntity.id]));if(0===m.size)return r;let d=new Set([...r,...p].filter(e=>"deleteEntity"===e.kind||"replaceDomainEntity"===e.kind).map(e=>e.entityId)),s=i.readManyComponents({componentTypes:[t]},a).map(e=>{if(d.has(e.componentInstance.entityId)&&!m.has(e.componentInstance.entityId))return;let t=!1,i=e.state.referencedEntityIds.map(e=>{let n=m.get(e);return void 0!==n?(t=!0,n):e});if(t)return n.ComponentModification({componentInstance:{...e.componentInstance,entityId:m.get(e.componentInstance.entityId)??e.componentInstance.entityId},updateTag:"refs.replace",writableState:{referencedEntityIds:i}})}).filter(e);return s.length>0?[...r,...s]:r};
@@ -1,4 +1,2 @@
1
- import type { DataUpdate } from '../../components/updates.js';
2
- import type { DomainEntity } from '../../core/model.js';
3
- import type { DomainState } from '../../core/state.js';
1
+ import { type DataUpdate, type DomainEntity, type DomainState } from '../../core/index.js';
4
2
  export declare const applyUpdates: <ENTITIES extends DomainEntity<string>>(updates: ReadonlyArray<DataUpdate<ENTITIES, ENTITIES>>, state: DomainState<ENTITIES>) => DomainState<ENTITIES>;
@@ -1 +1 @@
1
- import{match as e}from"ts-pattern";import{isEqualComponentInstance as t}from"../../core/component.js";import{isVirtualEntityId as n}from"../../core/model.js";export const applyUpdates=(o,i)=>o.reduce((o,r)=>e(r).with({kind:"createDomainEntity"},e=>({...o,entities:[...o.entities,e.entity]})).with({kind:"deleteEntity"},e=>{let t=o.entities;if(!n(e.entityId)&&(t=o.entities.filter(t=>t.id!==e.entityId)).length===o.entities.length)throw Error(`No-op: Cannot remove domain entity #${String(e.entityId)}, because it does not exist`);let i=o.ephemeralRecords.filter(t=>t.componentInstance.entityId!==e.entityId);if(n(e.entityId)&&i.length===o.ephemeralRecords.length)throw Error(`No-op: Cannot remove virtual entity #${e.entityId}, because it does not exist`);return{...o,entities:t,ephemeralRecords:i}}).with({kind:"modifyDomainEntity"},e=>{let t=!1,n=o.entities.map(n=>n.id===e.entityId?(t=!0,{...n,...e.stateDelta}):n);if(!t)throw Error(`No-op: Cannot modify domain entity #${String(e.entityId)}, because it does not exist`);return{...o,entities:n}}).with({kind:"replaceDomainEntity"},e=>{let t=!1,n=o.entities.map(n=>n.id===e.entityId?(t=!0,e.replacementEntity):n);if(!t)throw Error(`No-op: Cannot replace entity #${String(e.entityId)} as it was not found in the domain state`);let r=o.ephemeralRecords.filter(t=>t.componentInstance.entityId!==e.entityId),a=e.entityId===i.rootEntityId?{rootEntityId:e.replacementEntity.id,rootEntityType:e.replacementEntity.type}:void 0;return{...o,...a,ephemeralRecords:r,entities:n}}).with({kind:"modifyEphemeralRecord"},e=>{let n=!1,i=o.ephemeralRecords.map(o=>t(o.componentInstance,e.componentInstance)?(n=!0,{...o,state:{...o.state,...e.writableState}}):o);if(!n)throw Error(`No-op: Cannot modify ephemeral record #${e.entityId} for component ${e.componentInstance.componentType.name}#${e.componentInstance.instanceName}, because it does not exist`);return{...o,ephemeralRecords:i}}).with({kind:"createEphemeralRecord"},e=>{if(o.ephemeralRecords.find(n=>t(n.componentInstance,e.componentInstance)))throw Error(`No-op: Cannot create ephemeral record #${e.entityId} for component ${e.componentInstance.componentType.name}#${e.componentInstance.instanceName}, because it already exists`);let n=[...o.ephemeralRecords,{entityId:e.entityId,updateTag:e.updateTag,state:e.initialState,componentInstance:e.componentInstance}];return{...o,ephemeralRecords:n}}).with({kind:"deleteEphemeralRecord"},e=>{let n=o.ephemeralRecords.filter(n=>!t(n.componentInstance,e.componentInstance));if(n.length===o.ephemeralRecords.length)throw Error(`No-op: Cannot delete ephemeral record #${e.entityId} for component ${e.componentInstance.componentType.name}#${e.componentInstance.instanceName}, because it does not exist`);return{...o,ephemeralRecords:n}}).exhaustive(),i);
1
+ import{match as e}from"ts-pattern";import{isEqualComponentInstance as t,isVirtualEntityId as n}from"../../core/index.js";export const applyUpdates=(o,i)=>o.reduce((o,r)=>e(r).with({kind:"createDomainEntity"},e=>({...o,entities:[...o.entities,e.entity]})).with({kind:"deleteEntity"},e=>{let t=o.entities;if(!n(e.entityId)&&(t=o.entities.filter(t=>t.id!==e.entityId)).length===o.entities.length)throw Error(`No-op: Cannot remove domain entity #${String(e.entityId)}, because it does not exist`);let i=o.ephemeralRecords.filter(t=>t.componentInstance.entityId!==e.entityId);if(n(e.entityId)&&i.length===o.ephemeralRecords.length)throw Error(`No-op: Cannot remove virtual entity #${e.entityId}, because it does not exist`);return{...o,entities:t,ephemeralRecords:i}}).with({kind:"modifyDomainEntity"},e=>{let t=!1,n=o.entities.map(n=>n.id===e.entityId?(t=!0,{...n,...e.stateDelta}):n);if(!t)throw Error(`No-op: Cannot modify domain entity #${String(e.entityId)}, because it does not exist`);return{...o,entities:n}}).with({kind:"replaceDomainEntity"},e=>{let t=!1,n=o.entities.map(n=>n.id===e.entityId?(t=!0,e.replacementEntity):n);if(!t)throw Error(`No-op: Cannot replace entity #${String(e.entityId)} as it was not found in the domain state`);let r=o.ephemeralRecords.filter(t=>t.componentInstance.entityId!==e.entityId),a=e.entityId===i.rootEntityId?{rootEntityId:e.replacementEntity.id,rootEntityType:e.replacementEntity.type}:void 0;return{...o,...a,ephemeralRecords:r,entities:n}}).with({kind:"modifyEphemeralRecord"},e=>{let n=!1,i=o.ephemeralRecords.map(o=>t(o.componentInstance,e.componentInstance)?(n=!0,{...o,state:{...o.state,...e.writableState}}):o);if(!n)throw Error(`No-op: Cannot modify ephemeral record #${e.entityId} for component ${e.componentInstance.componentType.name}#${e.componentInstance.instanceName}, because it does not exist`);return{...o,ephemeralRecords:i}}).with({kind:"createEphemeralRecord"},e=>{if(o.ephemeralRecords.find(n=>t(n.componentInstance,e.componentInstance)))throw Error(`No-op: Cannot create ephemeral record #${e.entityId} for component ${e.componentInstance.componentType.name}#${e.componentInstance.instanceName}, because it already exists`);let n=[...o.ephemeralRecords,{entityId:e.entityId,updateTag:e.updateTag,state:e.initialState,componentInstance:e.componentInstance}];return{...o,ephemeralRecords:n}}).with({kind:"deleteEphemeralRecord"},e=>{let n=o.ephemeralRecords.filter(n=>!t(n.componentInstance,e.componentInstance));if(n.length===o.ephemeralRecords.length)throw Error(`No-op: Cannot delete ephemeral record #${e.entityId} for component ${e.componentInstance.componentType.name}#${e.componentInstance.instanceName}, because it does not exist`);return{...o,ephemeralRecords:n}}).exhaustive(),i);
@@ -0,0 +1,4 @@
1
+ export { applyUpdates } from './apply-updates.js';
2
+ export { getIdSequence, nextDomainEntityId } from './next-domain-entity-id.js';
3
+ export { type AnyCreateTransformersFactory, type AnyStoreSystem, type CommitPreparedOutcome, type IncrementalUpdateTransformer, type StateEmissionKind, type StateSliceName, StoreSystem, type TransformerLogFunction, type TransformerRegistration, type Transformers, type Unregister, type UpdateTransformer, } from './store-system.js';
4
+ export { SystemState, type SystemStateContext, SystemStateInitialUpdateTag, SystemStateUpdateTag, } from './system-state.js';
@@ -0,0 +1 @@
1
+ export{applyUpdates}from"./apply-updates.js";export{getIdSequence,nextDomainEntityId}from"./next-domain-entity-id.js";export{StoreSystem}from"./store-system.js";export{SystemState,SystemStateInitialUpdateTag,SystemStateUpdateTag}from"./system-state.js";
@@ -1,6 +1,4 @@
1
- import type { StateUpdate } from '../../components/updates.js';
2
- import { type DomainEntity, type DomainEntityId } from '../../core/model.js';
3
- import type { DomainState } from '../../core/state.js';
1
+ import { type DomainEntity, type DomainEntityId, type DomainState, type IdSequence, type StateUpdate } from '../../core/index.js';
4
2
  /**
5
3
  * Returns the next available entity id for the given entity type.
6
4
  *
@@ -15,16 +13,6 @@ import type { DomainState } from '../../core/state.js';
15
13
  * @deprecated Use `getIdSequence` instead
16
14
  */
17
15
  export declare const nextDomainEntityId: <ENTITIES extends DomainEntity<string>, TYPE extends ENTITIES['type']>(domainState: DomainState<ENTITIES>, type: TYPE, pendingUpdates: ReadonlyArray<StateUpdate<ENTITIES, ENTITIES>>) => DomainEntityId<TYPE>;
18
- export type IdSequence<ENTITIES extends DomainEntity<string>> = {
19
- /**
20
- * Returns the next available entity ID for the given type.
21
- * This automatically increments the sequence number for the given type, so that the next call will return a new ID.
22
- *
23
- * @param type the entity type
24
- * @returns a new domain entity ID for the given type
25
- */
26
- nextId: <TYPE extends ENTITIES['type']>(type: TYPE) => DomainEntityId<TYPE>;
27
- };
28
16
  /**
29
17
  * Returns an object that manages ID sequences for each entity type.
30
18
  *
@@ -1 +1 @@
1
- import{_unsafeBuildDomainEntityId as e,parseDomainEntityId as t}from"../../core/model.js";export const nextDomainEntityId=(n,i,r)=>{let o=0;for(let e of n.entities){let n=t(e.id);n.type===i&&n.sequenceNumber>o&&(o=n.sequenceNumber)}for(let e of r){let n;if("createDomainEntity"===e.kind&&e.entity.type===i?n=e.entity.id:"replaceDomainEntity"===e.kind&&e.replacementEntity.type===i&&(n=e.replacementEntity.id),void 0!==n){let e=t(n);e.sequenceNumber>o&&(o=e.sequenceNumber)}}return e(i,o+1)};export function getIdSequence(n,i){let r=new Map;return n.forEach(e=>{let n=t(e.id),i=r.get(n.type)??0;r.set(e.type,Math.max(i,n.sequenceNumber))}),i.forEach(e=>{let n;if("createDomainEntity"===e.kind?n=e.entity.id:"replaceDomainEntity"===e.kind&&(n=e.replacementEntity.id),void 0!==n){let e=t(n),i=r.get(e.type)??0;r.set(e.type,Math.max(i,e.sequenceNumber))}}),{nextId:t=>{let n=(r.get(t)??0)+1;return r.set(t,n),e(t,n)}}}
1
+ import{_unsafeBuildDomainEntityId as e,parseDomainEntityId as t}from"../../core/index.js";export const nextDomainEntityId=(n,i,r)=>{let o=0;for(let e of n.entities){let n=t(e.id);n.type===i&&n.sequenceNumber>o&&(o=n.sequenceNumber)}for(let e of r){let n;if("createDomainEntity"===e.kind&&e.entity.type===i?n=e.entity.id:"replaceDomainEntity"===e.kind&&e.replacementEntity.type===i&&(n=e.replacementEntity.id),void 0!==n){let e=t(n);e.sequenceNumber>o&&(o=e.sequenceNumber)}}return e(i,o+1)};export function getIdSequence(n,i){let r=new Map;return n.forEach(e=>{let n=t(e.id),i=r.get(n.type)??0;r.set(e.type,Math.max(i,n.sequenceNumber))}),i.forEach(e=>{let n;if("createDomainEntity"===e.kind?n=e.entity.id:"replaceDomainEntity"===e.kind&&(n=e.replacementEntity.id),void 0!==n){let e=t(n),i=r.get(e.type)??0;r.set(e.type,Math.max(i,e.sequenceNumber))}}),{nextId:t=>{let n=(r.get(t)??0)+1;return r.set(t,n),e(t,n)}}}
@@ -1,5 +1,4 @@
1
- import { type DomainEntityCreation, type EntityDeletion, type StateUpdate } from '../../components/updates.js';
2
- import type { DomainEntity } from '../../core/model.js';
1
+ import { type DomainEntity, type DomainEntityCreation, type EntityDeletion, type StateUpdate } from '../../core/index.js';
3
2
  import { type ProjectedEntitiesComponentSnapshot } from '../../system-components/index.js';
4
3
  export interface ReconciliationUpdate<ENTITY extends DomainEntity<string>, PARENT extends DomainEntity<string>> {
5
4
  readonly dataUpdate: DomainEntityCreation<ENTITY, PARENT> | EntityDeletion<ENTITY>;
@@ -1 +1 @@
1
- import{systemUpdateFactory as e}from"../../components/updates.js";import{getIdSequence as t}from"../store-system/next-domain-entity-id.js";let n=e=>"string"==typeof e.parentId&&"string"==typeof e.instanceName&&"string"==typeof e.key,o=(e,t,n,o)=>`${e}|${t}|${n}|${o}`;export const reconcileProjectedEntities=(a,p,i)=>{let s=new Map;for(let e of p){let t=String(e.componentInstance.entityId),n=e.componentInstance.instanceName;for(let a of e.state.blueprints){let e=o(t,n,a.key,a.type);s.set(e,{type:a.type,defaults:a.defaults,parentId:t,instanceName:n,key:a.key})}}let d=new Map;for(let e of a)if(n(e)){let t=o(e.parentId,e.instanceName,e.key,e.type);d.set(t,e)}let r=[],l=t(a,i);for(let[t,n]of s)if(!d.has(t)){let o=l.nextId(n.type),a={...n.defaults,id:o,type:n.type,parentId:n.parentId,instanceName:n.instanceName,key:n.key};r.push({dataUpdate:e.DomainEntityCreation({entity:a,parentId:n.parentId,updateTag:"projectedEntities.reconcile"}),compoundKey:t})}for(let[t,n]of d)s.has(t)||r.push({dataUpdate:e.EntityDeletion({entityId:n.id,updateTag:"projectedEntities.reconcile"}),compoundKey:t});return r};export const mergeReconciliationsUpdates=(e,t)=>{let n=new Map;for(let t of e)n.set(t.compoundKey,t);for(let e of t){let t=n.get(e.compoundKey);t&&t.dataUpdate.kind!==e.dataUpdate.kind?n.delete(e.compoundKey):n.set(e.compoundKey,e)}return[...n.values()]};
1
+ import{systemUpdateFactory as e}from"../../core/index.js";import{getIdSequence as t}from"./next-domain-entity-id.js";let n=e=>"string"==typeof e.parentId&&"string"==typeof e.instanceName&&"string"==typeof e.key,o=(e,t,n,o)=>`${e}|${t}|${n}|${o}`;export const reconcileProjectedEntities=(a,p,i)=>{let d=new Map;for(let e of p){let t=String(e.componentInstance.entityId),n=e.componentInstance.instanceName;for(let a of e.state.blueprints){let e=o(t,n,a.key,a.type);d.set(e,{type:a.type,defaults:a.defaults,parentId:t,instanceName:n,key:a.key})}}let r=new Map;for(let e of a)if(n(e)){let t=o(e.parentId,e.instanceName,e.key,e.type);r.set(t,e)}let s=[],l=t(a,i);for(let[t,n]of d)if(!r.has(t)){let o=l.nextId(n.type),a={...n.defaults,id:o,type:n.type,parentId:n.parentId,instanceName:n.instanceName,key:n.key};s.push({dataUpdate:e.DomainEntityCreation({entity:a,parentId:n.parentId,updateTag:"projectedEntities.reconcile"}),compoundKey:t})}for(let[t,n]of r)d.has(t)||s.push({dataUpdate:e.EntityDeletion({entityId:n.id,updateTag:"projectedEntities.reconcile"}),compoundKey:t});return s};export const mergeReconciliationsUpdates=(e,t)=>{let n=new Map;for(let t of e)n.set(t.compoundKey,t);for(let e of t){let t=n.get(e.compoundKey);t&&t.dataUpdate.kind!==e.dataUpdate.kind?n.delete(e.compoundKey):n.set(e.compoundKey,e)}return[...n.values()]};
@@ -1,13 +1,6 @@
1
1
  import { type ObservableWithLastValue } from '@salsita-ai/common/utils';
2
- import { type ComponentModification, type DataUpdate, type DomainEntityModification, type EphemeralRecordModification, type StateUpdate } from '../../components/updates.js';
3
- import { type SystemComponentTypeConstraint } from '../../core/component.js';
4
- import { type $DomainEntity, type DomainEntity } from '../../core/model.js';
5
- import type { DomainState } from '../../core/state.js';
6
- import type { DomainContextSelectors } from '../../domain-runtime/domain-context/index.js';
7
- import type { DomainServicesSelectors } from '../../domain-runtime/domain-services/index.js';
8
- import type { EnvironmentSelectors } from '../../domain-runtime/environment/index.js';
9
- import type { ViolationTypesOf$Entity } from '../../invariants/violation.js';
10
- import type { StateValidationResult } from '../../projections/validation-projections.js';
2
+ import { type $DomainEntity, type ComponentModification, type DataUpdate, type DomainEntity, type DomainEntityModification, type DomainState, type EphemeralRecordModification, type StateEmission, type StateUpdate, type StateUpdateEmission, type SystemComponentTypeConstraint, type TransformerPhase } from '../../core/index.js';
3
+ import type { DomainContextSelectors, DomainServicesSelectors, EnvironmentSelectors } from '../../domain-runtime/index.js';
11
4
  import type { DomainContextSystems } from '../domain-context-systems.js';
12
5
  export type Unregister = () => void;
13
6
  export type StateSliceName =
@@ -25,36 +18,6 @@ export type StateSliceName =
25
18
  * Emits for every valid committed state.
26
19
  */
27
20
  | 'committed';
28
- export interface ResetStateEmission<ENTITIES extends DomainEntity<string>, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>> {
29
- readonly kind: 'reset';
30
- readonly state: DomainState<ENTITIES>;
31
- readonly validity: StateValidationResult<ENTITIES, ViolationTypesOf$Entity<$MAP[ENTITIES['type']]>>;
32
- readonly tag: unknown;
33
- readonly transformationLog: TransformationLog | undefined;
34
- }
35
- export interface StateUpdateEmission<ENTITIES extends DomainEntity<string>, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>> {
36
- readonly kind: 'staged' | 'committed';
37
- readonly previousState: DomainState<ENTITIES>;
38
- readonly state: DomainState<ENTITIES>;
39
- readonly updates: ReadonlyArray<DataUpdate<ENTITIES, ENTITIES>>;
40
- readonly validity: StateValidationResult<ENTITIES, ViolationTypesOf$Entity<$MAP[ENTITIES['type']]>>;
41
- readonly transformationLog: TransformationLog | undefined;
42
- }
43
- export type StateEmission<ENTITIES extends DomainEntity<string>, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>> = ResetStateEmission<ENTITIES, $MAP> | StateUpdateEmission<ENTITIES, $MAP>;
44
- export type TransformerPhase = 'no-event' | 'no-match' | 'no-resolve' | 'match' | 'no-apply' | 'apply';
45
- export interface TransformerLogEntry {
46
- phase: TransformerPhase;
47
- message: string;
48
- data: unknown | undefined;
49
- }
50
- export interface TransformerLog {
51
- name: string;
52
- entries: readonly TransformerLogEntry[];
53
- status: TransformerPhase;
54
- updatesIn: ReadonlyArray<StateUpdate<DomainEntity<string>, DomainEntity<string>>>;
55
- updatesOut: ReadonlyArray<StateUpdate<DomainEntity<string>, DomainEntity<string>>>;
56
- }
57
- export type TransformationLog = readonly TransformerLog[];
58
21
  export type TransformerLogFunction = (phase: TransformerPhase, message: string, data?: unknown) => void;
59
22
  export type UpdateTransformer<ENTITIES extends DomainEntity<string> = DomainEntity<string>> = (updates: ReadonlyArray<StateUpdate<ENTITIES, ENTITIES>>, previousState: DomainState<ENTITIES>, kind: StateEmissionKind, log: TransformerLogFunction | undefined) => ReadonlyArray<StateUpdate<ENTITIES, ENTITIES>>;
60
23
  export type IncrementalUpdateTransformer<ENTITIES extends DomainEntity<string> = DomainEntity<string>> = (unprocessedUpdates: ReadonlyArray<StateUpdate<ENTITIES, ENTITIES>>, previousState: DomainState<ENTITIES>, kind: StateEmissionKind, log: TransformerLogFunction | undefined, processedUpdates?: ReadonlyArray<StateUpdate<ENTITIES, ENTITIES>>) => ReadonlyArray<StateUpdate<ENTITIES, ENTITIES>>;
@@ -1,2 +1,2 @@
1
- import{CompositeKeyMap as e,assertExistence as t,isEqualArray as i}from"@salsita-ai/common/utils";import{dragStateComponent as o}from"../../components/drag-state-component.js";import{hoverStateComponent as r}from"../../components/hover-state-component.js";import{selectionStateComponent as s}from"../../components/selection-state-component.js";import{getComponentSystemFilterState as n}from"../../components/system-component-filter.js";import{systemVirtualEntityId as a}from"../../components/system-virtual-entity.js";import{systemUpdateFactory as d}from"../../components/updates.js";import{isSystemViewportStateComponentSnapshot as m}from"../../components/viewport-state-component.js";import{isEqualComponentInstance as l}from"../../core/component.js";import{domainEntityTypeFromId as c,isVirtualEntityId as p}from"../../core/model.js";import{projectedEntitiesComponent as h}from"../../system-components/index.js";import{cloneEvalCache as f,createEvalCacheToken as v,getEvalCache as g,setEvalCache as u}from"../../utils/eval-cache.js";import{createCascadeDeletesTransformer as y}from"../relation-transformers/cascade-deletes.js";import{createCascadeRefPruningTransformer as S}from"../relation-transformers/cascade-ref-pruning.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=v({clone:e=>e}),w=class InvalidInitialStateError extends Error{emission;childError;constructor(e,t,i){let o="";"uncaught"===e.validity.severity&&(o=`: ${e.validity.error.message}`),("fatal"===e.validity.severity||"fixable"===e.validity.severity)&&(o=`: ${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: ${o}`),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,o=e.map(e=>"modifyComponent"===e.kind?(i=!0,this.componentModificationToDataUpdate(e,t)):e);return i?o: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 o=n(t).selectedEntityId;return o&&i.has(o)?[...e,d.EphemeralRecordModification({componentInstance:{entityId:a,componentType:s},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},o=i;if(!o.validity.valid&&"fatal"===o.validity.severity||"fixable"===o.validity.severity){this._context.domainServicesSelectors.getLogger().debug("Trying to fix initial emission:",o);let e=o.state,{transformedUpdates:t,transformationLog:i}=this.applyTransformers([],e,"committed"),r=I(this.transformToDataUpdates(t,e),e);f(e,r),o={kind:"reset",state:r,validity:this._validateState(r),tag:"fixed",transformationLog:i}}if(!o.validity.valid){if(this._context.domainServicesSelectors.getLogger().error("Invalid initial emission:",{initialEmission:i,fixedEmission:o}),"uncaught"===o.validity.severity)throw new w(o,this._context.domainServicesSelectors.getResolveLocalizable(),o.validity.error??void 0);throw new w(o,this._context.domainServicesSelectors.getResolveLocalizable())}this.committed.next(o),this.rendered.next(o),this.potentiallyInvalid.next(o)};registerTransformer(e,i,o){let r={};return((e,i,o)=>{let r=0;for(;r<e.length&&0>=o(t(e[r]),i);)r++;e.splice(r,0,i)})(this.transformPipe,{registrationToken:r,transformer:i,priority:e,name:o},(e,t)=>e.priority===t.priority?0:e.priority<t.priority?-1:1),()=>{let e=this.transformPipe.findIndex(e=>e.registrationToken===r);-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(!p(i)){let t=this._context.selectors.getComponentReaderIndexes().opticMap.get(c(i))?.get(e.componentInstance.componentType)?.get(e.componentInstance.instanceName);if(t?.kind==="simple"){let o=t.write(e.writableState);return{kind:"modifyDomainEntity",entityId:i,updateTag:e.updateTag,stateDelta:o,hint:e.hint,agentHint:e.agentHint,origin:e}}}let o=t.ephemeralRecords.find(t=>l(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 f(this.rendered.isInitialized?this.rendered.value.state:t,i),i};applyTransformers(e,t,i){let o=this._context.environmentSelectors.getEnvironmentIsDev()?[]:void 0;return{transformedUpdates:this.transformPipe.reduce((e,{transformer:r,name:s})=>{let n,a=o?[]:void 0,d=a?(e,t,i)=>{n=e,a.push({phase:e,message:t,data:i})}:void 0,m=b(()=>r(e,t,i,d),r=>{this._context.domainServicesSelectors.getLogger().error("Error while applying transformer!",{name:s,updates:e,previousState:t,kind:i,transformationLog:o},r instanceof Error?r:Error(String(r)))});return a&&o&&o.push({name:s,status:n??(m===e?"no-event":"apply"),entries:a,updatesIn:e,updatesOut:m}),m},e),transformationLog:o}}_updateProjectedEntities(e,t,o){if(!e.validity.valid)return e;let r=this._context.selectors.getComponentReader().readManyComponents({componentTypes:[h]},e.state),s=g(e.previousState,k);if(s&&i(s,r))return e;let n=0,a=e,d=[];for(;a.validity.valid;){n++;let i=T(a.state.entities,r,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
- 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,o,void 0,t),l=this._refPruningTransformer(m,e.previousState,o,void 0,t),c=this._deselectOnDeleteTransformer(l,e.previousState,o,void 0,t);if(!(a=this.prepareStateEmissionWithoutTransformation([...t,...c],e.previousState,o)).validity.valid)return this._context.domainServicesSelectors.getLogger().error("Reconciliation of projected entities led to an invalid state! Reconciliation skipped.",{emission:a}),e;r=this._context.selectors.getComponentReader().readManyComponents({componentTypes:[h]},a.state)}return u(a.state,k,r),a}prepareStateEmission(e,t,i){let{transformedUpdates:o,transformationLog:r}=this.applyTransformers(e,t,i),s=this.prepareStateEmissionWithoutTransformation(o,t,i);return{...this._updateProjectedEntities(s,o,i),transformationLog:r}}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 o=this.getEmissionCacheKey(i,t,e),r=this.emissionCache.get(o);if(r)return r;let s=b(()=>this.transformToDataUpdates(e,t),o=>{this._context.domainServicesSelectors.getLogger().error("Error while transforming updates to data updates!",{updates:e,previousState:t,kind:i},o instanceof Error?o:Error(String(o)))}),n=b(()=>I(s,t),o=>{this._context.domainServicesSelectors.getLogger().error("Error while applying updates!",{updates:e,previousState:t,kind:i,dataUpdates:s},o instanceof Error?o:Error(String(o)))});f(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(o,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()?o():this._context.domainServicesSelectors.getLogger().warn("A held commit was dropped, because the committed state changed since it was prepared.",e)},o=()=>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 o()?"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)===r||t===o})?{...e,ephemeralRecords:e.ephemeralRecords.map(e=>e.componentInstance.componentType===r?{...e,state:{hoveredEntityId:null}}:e.componentInstance.componentType===o?{...e,state:{draggedEntityId:null}}:e)}:e}_preserveViewportState(e,t){let i=t.ephemeralRecords.find(m),o=e.ephemeralRecords.filter(e=>!m(e));return{...e,ephemeralRecords:i?[...o,i]:o}}reset(e,t){let i=this.committed.value.state,o=this._preserveViewportState(e,i),r=this._resetInteractionState(o),s=this._validateState(r);if(!s.valid)throw Error("Cannot reset to an invalid state");this.stagedUpdates=void 0,this.emit({kind:"reset",state:r,validity:s,tag:t,transformationLog:void 0})}stageAndCommit(e){if(0!==e.length){this.stagedUpdates=e;try{this.commit()}finally{this.stagedUpdates=void 0}}}}
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.
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}}}}
@@ -1,7 +1,5 @@
1
- import type { StateOfComponent, SystemComponentTypeConstraint, WritableStateOfComponent } from '../../core/component.js';
2
- import type { DomainEntity } from '../../core/model.js';
3
- import type { DomainState } from '../../core/state.js';
4
- import type { DomainContextSelectors } from '../../domain-runtime/domain-context/index.js';
1
+ import { type DomainEntity, type DomainState, type StateOfComponent, type SystemComponentTypeConstraint, type WritableStateOfComponent } from '../../core/index.js';
2
+ import type { DomainContextSelectors } from '../../domain-runtime/index.js';
5
3
  export declare const SystemStateInitialUpdateTag = "system.state.initial";
6
4
  export declare const SystemStateUpdateTag = "system.state";
7
5
  type CombinedComponentState<COMPONENT_TYPE extends SystemComponentTypeConstraint> = WritableStateOfComponent<COMPONENT_TYPE> & StateOfComponent<COMPONENT_TYPE>;
@@ -1 +1 @@
1
- import{systemVirtualEntityId as t}from"../../components/system-virtual-entity.js";import{systemUpdateFactory as e}from"../../components/updates.js";export const SystemStateInitialUpdateTag="system.state.initial";export const SystemStateUpdateTag="system.state";export class SystemState{_context;constructor(t){this._context=t}initialize=()=>{let t=this._context.selectors.getStoreSystem(),e=t.stateSlices.committed.value.state;t.stageAndCommit(this.getInitialUpdates(e))};getInitialUpdates=n=>{let o=this._context.getInitialState(n);return[e.EphemeralRecordCreation({componentInstance:{entityId:t,componentType:this._context.componentType,instanceName:"singleton"},updateTag:"system.state.initial",initialState:o})]};get=e=>{let n=this._context.selectors.getComponentReader().readOneComponent({entityId:t,componentType:this._context.componentType,instanceName:"singleton"},e);return n?n.state:this._context.getInitialState(e)};getUpdates=(n,o)=>{let s=this.get(o),i="function"==typeof n?n(s):n;return i?[e.ComponentModification({componentInstance:{entityId:t,componentType:this._context.componentType,instanceName:"singleton"},updateTag:"system.state",writableState:i})]:[]}}
1
+ import{systemUpdateFactory as t,systemVirtualEntityId as e}from"../../core/index.js";export const SystemStateInitialUpdateTag="system.state.initial";export const SystemStateUpdateTag="system.state";export class SystemState{_context;constructor(t){this._context=t}initialize=()=>{let t=this._context.selectors.getStoreSystem(),e=t.stateSlices.committed.value.state;t.stageAndCommit(this.getInitialUpdates(e))};getInitialUpdates=n=>{let o=this._context.getInitialState(n);return[t.EphemeralRecordCreation({componentInstance:{entityId:e,componentType:this._context.componentType,instanceName:"singleton"},updateTag:"system.state.initial",initialState:o})]};get=t=>{let n=this._context.selectors.getComponentReader().readOneComponent({entityId:e,componentType:this._context.componentType,instanceName:"singleton"},t);return n?n.state:this._context.getInitialState(t)};getUpdates=(n,o)=>{let s=this.get(o),i="function"==typeof n?n(s):n;return i?[t.ComponentModification({componentInstance:{entityId:e,componentType:this._context.componentType,instanceName:"singleton"},updateTag:"system.state",writableState:i})]:[]}}
@@ -1,5 +1,4 @@
1
- import type { StateUpdate } from '../../components/updates.js';
2
- import { type $DomainEntity, type DomainEntity } from '../../core/model.js';
1
+ import { type $DomainEntity, type DomainEntity, type StateUpdate } from '../../core/index.js';
3
2
  import type { ChainBuilder } from './chain-builder.js';
4
3
  import type { BaseTransformerBuilderContext, ContextFactory, ContextWithEntityId } from './context.js';
5
4
  export type SelectAction<ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>, NAVIGATION_STATES extends string, VIEW_STATES extends string, TOOL_STATES extends string, EXPORT_STATES extends string, CTX> = CTX extends ContextWithEntityId<ENTITIES, $MAP, ALLOWED_ROOT_ENTITIES, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES> ? {
@@ -1 +1 @@
1
- import{match as e}from"ts-pattern";import{isEqualArray as t,isNonNullish as r}from"@salsita-ai/common/utils";import{domainEntityTypeFromId as i}from"../../core/model.js";import{isDeselectUpdate as n,isNavigationUpdate as o,isSelectUpdate as a,isViewUpdate as l}from"../navigation-system/navigation-updates.js";import{createCascadeDeletesTransformer as s}from"../relation-transformers/cascade-deletes.js";import{createCascadeRefPruningTransformer as p}from"../relation-transformers/cascade-ref-pruning.js";import{createCreateEntityRefsTransformer as d}from"../relation-transformers/create-entity-refs.js";import{createRefReplaceTransformer as f}from"../relation-transformers/replace-refs.js";import{getIdSequence as g}from"../store-system/next-domain-entity-id.js";import{chainBuilder as u}from"./chain-builder.js";import{isContextWithEntityId as c,isContextWithUpdate as h}from"./context.js";let m=(e,t)=>{let i=[d(e.componentReader),f(e.componentReader),s(e.compositionProjections),p(e.componentReader),t?e.storeSystem.transformToDataUpdates:void 0].filter(r);return(e,t,r,n,o)=>i.reduce((e,i)=>i(e,t,r,n,o),e)};export const updateActions=s=>p=>{let d,f=t=>r=>u(i=>{let n=m(i,s);return(o,a,l,s)=>{let d=p(o,a,l,i,s);return d.length?d.reduce((i,o)=>{let p=r({...o,getIdSequence:()=>g(a.entities,i)});return e(t).with("applySideEffect",()=>0===p.length?(s?.("no-apply","No side effects applied"),i):(s?.("apply","Applying side effects",{added:p}),[...i,...n(p,a,l,s,i)])).with("overrideMatchingUpdate",()=>{let e=h(o)?o.update:null;if(1===p.length&&p[0]===e)return s?.("no-apply","Update replaced with itself, no-op"),i;s?.("apply","Overriding matched updates",{removed:[e],added:p});let t=i.filter(t=>t!==e);return[...t,...n(p,a,l,s,t)]}).exhaustive()},o):o}});return{applySideEffect:f("applySideEffect"),overrideMatchingUpdate:f("overrideMatchingUpdate"),overrideAllUpdates:e=>u(r=>{let i=m(r,s);return(n,o,a,l)=>{let s=p(n,o,a,r,l);if(!s.length)return n;s.length>1&&l?.("apply",'Multiple contexts matched for "overrideAllUpdates", picking the first one only');let d=e(s[0]);if(t(d,n))return l?.("no-apply",'Updates returned from "overrideAllUpdates" are the same as the original updates, skipping transformer'),n;let{processedUpdates:f,trulyNewUpdates:g}=d.reduce((e,t)=>(n.includes(t)?e.processedUpdates.push(t):e.trulyNewUpdates.push(t),e),{processedUpdates:[],trulyNewUpdates:[]});return l?.("apply","Overriding all updates",{removed:n,added:d,keptUnchanged:f,trulyNew:g}),[...f,...i(g,o,a,l,f)]}}),...(d=(e,t,r,i)=>{if(0===r.length)return t;r.length>1&&i?.("apply","Multiple entities supposed to be selected, picking the first one",{entityIds:r});let o=t.filter(e=>!(a(e)||n(e))),l=r[0],s=e.navigationSystem.getSelectUpdate(l);return o.length<t.length?i?.("apply",`Overriding previous selection updates with selection of entity ${l}`,{removed:t.filter(e=>a(e)||n(e)),added:s}):i?.("apply",`Selecting entity ${l}`,{added:s}),[...o,s]},{select:{entity:e=>u(t=>(i,n,o,a)=>{t.storeSystem.prepareStateEmissionWithoutTransformation(i,n,o);let l=p(i,n,o,t,a);if(0===l.length)return i;let s=l.map(e).filter(r);return 0===s.length?(a?.("no-resolve","Custom selector did not return any entity id, skipping selection"),i):d(t,i,s,a)}),self:()=>u(e=>(t,r,i,n)=>{let o=p(t,r,i,e,n);return 0===o.length?t:d(e,t,o.map(e=>{if(!c(e))throw Error("Context does not have entity id");return e.entityId}),n)}),ancestorOfType:e=>u(t=>(n,o,a,l)=>{let s=p(n,o,a,t,l);if(0===s.length)return n;let f=s.map(e=>{if(!c(e))throw Error("Context does not have entity id");return e.entityId}),g=s.map(r=>{if(!c(r))throw Error("Context does not have entity id");let n=t.compositionProjections.getTree(o).map.get(r.entityId);if(!n)throw Error(`Entity with id ${r.entityId} not found in the composition tree. The state is invalid!`);for(let t of n.ancestors())if(e.includes(i(t.id)))return t.id}),u=g.filter(r);return(u.length<f.length&&l?.("no-apply",0===u.length?"No entities have ancestor of the specified type, skipping selection":"Some entities do not have ancestor of the specified type",{entityIds:f.filter((e,t)=>void 0===g[t])}),0===u.length)?n:d(t,n,u,l)})},deselect:()=>u(e=>(t,r,i,o)=>0===p(t,r,i,e,o).length?t:[...t.filter(e=>!(a(e)||n(e))),e.navigationSystem.getDeselectUpdate()]),navigateTo:e=>u(t=>(i,n,a,l)=>{let s=p(i,n,a,t,l);if(0===s.length)return i;let d=s.map(t=>"function"==typeof e?e(t):e).filter(r);if(0===d.length)return l?.("no-resolve","Custom selector did not return any navigation state, skipping navigation"),i;d.length>1&&l?.("apply","Multiple navigation states selected, picking the first one",{navigationStates:d});let f=d[0],g=t.navigationSystem.getNavigationUpdate(f),u=i.filter(e=>!o(e));return u.length<i.length?l?.("apply",`Overriding previous navigation updates with ${f}`,{removed:i.filter(e=>o(e)),added:g}):l?.("apply",`Navigating to ${f}`,{added:g}),[...u,g]}),changeView:e=>u(t=>(i,o,s,d)=>{let f=p(i,o,s,t,d);if(0===f.length)return i;let g=f.map(t=>"function"==typeof e?e(t):e).filter(r);if(0===g.length)return d?.("no-resolve","Custom selector did not return any view state, skipping view change"),i;g.length>1&&d?.("apply","Multiple view states selected, picking the first one",{viewStates:g});let u=g[0],c=t.navigationSystem.getViewUpdate(u),h=i.filter(e=>!l(e));return h.length<i.length?d?.("apply",`Overriding previous view state updates with ${u}`,{removed:i.filter(e=>a(e)||n(e)),added:c}):d?.("apply",`Changing view to ${u}`,{added:c}),[...h,c]})})}};
1
+ import{match as e}from"ts-pattern";import{isEqualArray as t,isNonNullish as i}from"@salsita-ai/common/utils";import{domainEntityTypeFromId as n}from"../../core/index.js";import{isDeselectUpdate as r,isNavigationUpdate as o,isSelectUpdate as l,isViewUpdate as a}from"../navigation-system/index.js";import{createCascadeDeletesTransformer as p,createCascadeRefPruningTransformer as d,createCreateEntityRefsTransformer as s,createRefReplaceTransformer as g}from"../relation-transformers/index.js";import{getIdSequence as f}from"../store-system/index.js";import{chainBuilder as u}from"./chain-builder.js";import{isContextWithEntityId as h,isContextWithUpdate as c}from"./context.js";let m=(e,t)=>{let n=[s(e.componentReader),g(e.componentReader),p(e.compositionProjections),d(e.componentReader),t?e.storeSystem.transformToDataUpdates:void 0].filter(i);return(e,t,i,r,o)=>n.reduce((e,n)=>n(e,t,i,r,o),e)};export const updateActions=p=>d=>{let s,g=t=>i=>u(n=>{let r=m(n,p);return(o,l,a,p)=>{let s=d(o,l,a,n,p);return s.length?s.reduce((n,o)=>{let d=i({...o,getIdSequence:()=>f(l.entities,n)});return e(t).with("applySideEffect",()=>0===d.length?(p?.("no-apply","No side effects applied"),n):(p?.("apply","Applying side effects",{added:d}),[...n,...r(d,l,a,p,n)])).with("overrideMatchingUpdate",()=>{let e=c(o)?o.update:null;if(1===d.length&&d[0]===e)return p?.("no-apply","Update replaced with itself, no-op"),n;p?.("apply","Overriding matched updates",{removed:[e],added:d});let t=n.filter(t=>t!==e);return[...t,...r(d,l,a,p,t)]}).exhaustive()},o):o}});return{applySideEffect:g("applySideEffect"),overrideMatchingUpdate:g("overrideMatchingUpdate"),overrideAllUpdates:e=>u(i=>{let n=m(i,p);return(r,o,l,a)=>{let p=d(r,o,l,i,a);if(!p.length)return r;p.length>1&&a?.("apply",'Multiple contexts matched for "overrideAllUpdates", picking the first one only');let s=e(p[0]);if(t(s,r))return a?.("no-apply",'Updates returned from "overrideAllUpdates" are the same as the original updates, skipping transformer'),r;let{processedUpdates:g,trulyNewUpdates:f}=s.reduce((e,t)=>(r.includes(t)?e.processedUpdates.push(t):e.trulyNewUpdates.push(t),e),{processedUpdates:[],trulyNewUpdates:[]});return a?.("apply","Overriding all updates",{removed:r,added:s,keptUnchanged:g,trulyNew:f}),[...g,...n(f,o,l,a,g)]}}),...(s=(e,t,i,n)=>{if(0===i.length)return t;i.length>1&&n?.("apply","Multiple entities supposed to be selected, picking the first one",{entityIds:i});let o=t.filter(e=>!(l(e)||r(e))),a=i[0],p=e.navigationSystem.getSelectUpdate(a);return o.length<t.length?n?.("apply",`Overriding previous selection updates with selection of entity ${a}`,{removed:t.filter(e=>l(e)||r(e)),added:p}):n?.("apply",`Selecting entity ${a}`,{added:p}),[...o,p]},{select:{entity:e=>u(t=>(n,r,o,l)=>{t.storeSystem.prepareStateEmissionWithoutTransformation(n,r,o);let a=d(n,r,o,t,l);if(0===a.length)return n;let p=a.map(e).filter(i);return 0===p.length?(l?.("no-resolve","Custom selector did not return any entity id, skipping selection"),n):s(t,n,p,l)}),self:()=>u(e=>(t,i,n,r)=>{let o=d(t,i,n,e,r);return 0===o.length?t:s(e,t,o.map(e=>{if(!h(e))throw Error("Context does not have entity id");return e.entityId}),r)}),ancestorOfType:e=>u(t=>(r,o,l,a)=>{let p=d(r,o,l,t,a);if(0===p.length)return r;let g=p.map(e=>{if(!h(e))throw Error("Context does not have entity id");return e.entityId}),f=p.map(i=>{if(!h(i))throw Error("Context does not have entity id");let r=t.compositionProjections.getTree(o).map.get(i.entityId);if(!r)throw Error(`Entity with id ${i.entityId} not found in the composition tree. The state is invalid!`);for(let t of r.ancestors())if(e.includes(n(t.id)))return t.id}),u=f.filter(i);return(u.length<g.length&&a?.("no-apply",0===u.length?"No entities have ancestor of the specified type, skipping selection":"Some entities do not have ancestor of the specified type",{entityIds:g.filter((e,t)=>void 0===f[t])}),0===u.length)?r:s(t,r,u,a)})},deselect:()=>u(e=>(t,i,n,o)=>0===d(t,i,n,e,o).length?t:[...t.filter(e=>!(l(e)||r(e))),e.navigationSystem.getDeselectUpdate()]),navigateTo:e=>u(t=>(n,r,l,a)=>{let p=d(n,r,l,t,a);if(0===p.length)return n;let s=p.map(t=>"function"==typeof e?e(t):e).filter(i);if(0===s.length)return a?.("no-resolve","Custom selector did not return any navigation state, skipping navigation"),n;s.length>1&&a?.("apply","Multiple navigation states selected, picking the first one",{navigationStates:s});let g=s[0],f=t.navigationSystem.getNavigationUpdate(g),u=n.filter(e=>!o(e));return u.length<n.length?a?.("apply",`Overriding previous navigation updates with ${g}`,{removed:n.filter(e=>o(e)),added:f}):a?.("apply",`Navigating to ${g}`,{added:f}),[...u,f]}),changeView:e=>u(t=>(n,o,p,s)=>{let g=d(n,o,p,t,s);if(0===g.length)return n;let f=g.map(t=>"function"==typeof e?e(t):e).filter(i);if(0===f.length)return s?.("no-resolve","Custom selector did not return any view state, skipping view change"),n;f.length>1&&s?.("apply","Multiple view states selected, picking the first one",{viewStates:f});let u=f[0],h=t.navigationSystem.getViewUpdate(u),c=n.filter(e=>!a(e));return c.length<n.length?s?.("apply",`Overriding previous view state updates with ${u}`,{removed:n.filter(e=>l(e)||r(e)),added:h}):s?.("apply",`Changing view to ${u}`,{added:h}),[...c,h]})})}};
@@ -1,15 +1,11 @@
1
1
  import { Euler, Vector3 } from 'three';
2
- import type { ComponentModification, StateUpdate } from '../../components/updates.js';
3
- import type { ComponentSnapshot } from '../../core/component.js';
4
- import { type $DomainEntity, type DomainEntity, type DomainEntityId } from '../../core/index.js';
5
- import { type DimensionUnit } from '../../dimensions/dimensions.js';
6
- import type { ComponentReader } from '../../domain-runtime/domain-context/index.js';
7
- import type { PositionProjections } from '../../projections/position-projections.js';
8
- import type { AnySnapMatch, WorldSnapPoint } from '../../projections/snap-matching.js';
9
- import type { SnappingProjections } from '../../projections/snapping-projections.js';
2
+ import { type $DomainEntity, type ComponentModification, type ComponentSnapshot, type DomainEntity, type DomainEntityId, type StateUpdate } from '../../core/index.js';
3
+ import { type DimensionUnit } from '../../dimensions/index.js';
4
+ import type { ComponentReader } from '../../domain-runtime/index.js';
5
+ import type { AnySnapMatch, PositionProjections, SnappingProjections, WorldSnapPoint } from '../../projections/index.js';
10
6
  import { dragHandleComponent, hotspotDragHandleComponent, snapPointComponent } from '../../system-components/index.js';
11
- import type { DimensionSystem } from '../dimension-system/dimension-system.js';
12
- import type { StoreSystem, TransformerLogFunction, UpdateTransformer } from '../store-system/store-system.js';
7
+ import type { DimensionSystem } from '../dimension-system/index.js';
8
+ import type { StoreSystem, TransformerLogFunction, UpdateTransformer } from '../store-system/index.js';
13
9
  export declare const AutoSnapUpdateTag: 'AutoSnap.applied';
14
10
  export type AutoSnapType = 'point' | 'edge' | 'plane' | 'axis';
15
11
  export interface AutoSnapMetadata {