@salsita-ai/sdk 0.50.0-develop.f42416a4e6 → 0.50.0-develop.f81ab6ac76

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 (1713) 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 +2 -0
  54. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  55. package/dist/application-spec/generate-application/code/common/project-module-list.d.ts +8 -0
  56. package/dist/application-spec/generate-application/code/common/project-module-list.js +3 -0
  57. package/dist/application-spec/generate-application/code/common/single-quoted-string.d.ts +6 -0
  58. package/dist/application-spec/generate-application/code/common/single-quoted-string.js +1 -0
  59. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  60. package/dist/application-spec/generate-application/code/generate-application-code.d.ts +3 -2
  61. package/dist/application-spec/generate-application/code/generate-application-code.js +1 -1
  62. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +22 -14
  63. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  64. package/dist/application-spec/generate-application/code/standalone-app-files.d.ts +2 -2
  65. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  66. package/dist/application-spec/generate-application/code/story-files.js +1 -1
  67. package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -0
  68. package/dist/application-spec/generate-application/code/templates/admin-domain-code.d.ts +1 -2
  69. package/dist/application-spec/generate-application/code/templates/admin-domain-code.js +6 -14
  70. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.d.ts +1 -2
  71. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.js +4 -4
  72. package/dist/application-spec/generate-application/code/templates/common/format-property-key.d.ts +7 -0
  73. package/dist/application-spec/generate-application/code/templates/common/format-property-key.js +1 -0
  74. package/dist/application-spec/generate-application/code/templates/common/schema-to-type-string.js +3 -3
  75. package/dist/application-spec/generate-application/code/templates/configurator-config.js +6 -4
  76. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.d.ts +1 -2
  77. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.js +7 -16
  78. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.d.ts +1 -2
  79. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.js +7 -9
  80. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +35 -0
  81. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +5 -0
  82. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.d.ts +1 -0
  83. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.js +1 -0
  84. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.d.ts +2 -2
  85. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.js +1 -1
  86. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.d.ts +1 -1
  87. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +7 -7
  88. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  89. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  90. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +72 -76
  91. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +9 -1
  92. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  93. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  94. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-presets.js +1 -1
  95. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  96. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  97. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +21 -21
  98. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.d.ts +1 -1
  99. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.js +2 -2
  100. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +3 -2
  101. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  102. package/dist/application-spec/generate-application/code/templates/domain-spec.js +12 -12
  103. package/dist/application-spec/generate-application/code/templates/domain.js +5 -5
  104. package/dist/application-spec/generate-application/code/templates/eslint-config.d.ts +5 -0
  105. package/dist/application-spec/generate-application/code/templates/eslint-config.js +4 -5
  106. package/dist/application-spec/generate-application/code/templates/frontend-config.js +3 -5
  107. package/dist/application-spec/generate-application/code/templates/gitignore.js +0 -3
  108. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.d.ts +43 -0
  109. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +31 -0
  110. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
  111. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  112. package/dist/application-spec/generate-application/code/templates/globals.js +24 -43
  113. package/dist/application-spec/generate-application/code/templates/index.d.ts +4 -10
  114. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  115. package/dist/application-spec/generate-application/code/templates/lingui-rc.d.ts +5 -0
  116. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +4 -4
  117. package/dist/application-spec/generate-application/code/templates/prettier-config.d.ts +5 -0
  118. package/dist/application-spec/generate-application/code/templates/prettier-config.js +4 -5
  119. package/dist/application-spec/generate-application/code/templates/root-tsconfig.d.ts +6 -0
  120. package/dist/application-spec/generate-application/code/templates/root-tsconfig.js +2 -0
  121. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  122. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +93 -41
  123. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +5 -5
  124. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +10 -4
  125. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  126. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.d.ts +1 -0
  127. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +6 -0
  128. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +60 -16
  129. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +19 -7
  130. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
  131. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
  132. package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
  133. package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
  134. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
  135. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
  136. package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
  137. package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
  138. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
  139. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
  140. package/dist/application-spec/generate-application/code/templates/story/phx-module.d.ts +8 -2
  141. package/dist/application-spec/generate-application/code/templates/story/phx-module.js +15 -3
  142. package/dist/application-spec/generate-application/code/templates/story/wrapper.d.ts +3 -0
  143. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -1
  144. package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
  145. package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
  146. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +9 -4
  147. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +6 -1
  148. package/dist/application-spec/generate-application/code/templates/webhook-index.js +10 -1
  149. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -3
  150. package/dist/application-spec/generate-application/index.d.ts +2 -0
  151. package/dist/application-spec/generate-application/index.js +1 -1
  152. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +6 -4
  153. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +1 -1
  154. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +8 -3
  155. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  156. package/dist/application-spec/generate-application/runtime/admin-runtime/states-runtime.d.ts +2 -2
  157. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +19 -7
  158. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  159. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +6 -4
  160. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +1 -1
  161. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +7 -4
  162. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  163. package/dist/application-spec/generate-application/runtime/configurator-runtime/states-runtime.d.ts +2 -2
  164. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +43 -0
  165. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.js +1 -0
  166. package/dist/application-spec/generate-application/runtime/factory-data/index.d.ts +3 -0
  167. package/dist/application-spec/generate-application/runtime/factory-data/index.js +1 -0
  168. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +13 -0
  169. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -0
  170. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +16 -0
  171. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -0
  172. package/dist/application-spec/generate-application/runtime/migrations/index.d.ts +1 -0
  173. package/dist/application-spec/generate-application/runtime/migrations/index.js +1 -0
  174. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +53 -0
  175. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +1 -0
  176. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +5 -4
  177. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.js +1 -1
  178. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +3 -2
  179. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  180. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +2 -1
  181. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +1 -1
  182. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +5 -1
  183. package/dist/application-spec/generate-application/runtime/sections/component-optic.js +1 -1
  184. package/dist/application-spec/generate-application/runtime/sections/data-runtime.d.ts +4 -4
  185. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +7 -4
  186. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  187. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +9 -5
  188. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  189. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +3 -1
  190. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.js +1 -1
  191. package/dist/application-spec/generate-application/runtime/sections/theme-runtime.d.ts +2 -2
  192. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +4 -6
  193. package/dist/application-spec/generate-application/runtime/spec-code/index.d.ts +2 -0
  194. package/dist/application-spec/generate-application/runtime/spec-code/index.js +1 -0
  195. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +18 -0
  196. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.js +1 -0
  197. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.d.ts +17 -0
  198. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.d.ts +9 -0
  199. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.js +1 -0
  200. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.d.ts +8 -0
  201. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.js +1 -0
  202. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +27 -0
  203. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.js +1 -0
  204. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +5 -0
  205. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -0
  206. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +68 -0
  207. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -0
  208. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +40 -0
  209. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.js +1 -0
  210. package/dist/application-spec/index.d.ts +1 -0
  211. package/dist/application-spec/index.js +1 -1
  212. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +34 -0
  213. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  214. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.d.ts +16 -0
  215. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.js +9 -0
  216. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts +9 -0
  217. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
  218. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  219. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  220. package/dist/application-spec/parse-application-files/raw-spec/parse-yaml-spec-file.js +1 -1
  221. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +16 -3
  222. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  223. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  224. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  225. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  226. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  227. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  228. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.d.ts +3 -0
  229. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js +1 -0
  230. package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +5 -0
  231. package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -0
  232. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.d.ts +6 -0
  233. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.js +1 -0
  234. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.d.ts +8 -0
  235. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.js +1 -0
  236. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts +10 -0
  237. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.js +1 -0
  238. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.d.ts +98 -0
  239. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.js +1 -0
  240. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts +13 -0
  241. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js +1 -0
  242. package/dist/application-spec/parse-application-files/spec/components/bindings/index.d.ts +2 -0
  243. package/dist/application-spec/parse-application-files/spec/components/bindings/index.js +1 -1
  244. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.d.ts +24 -0
  245. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js +1 -0
  246. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  247. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  248. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  249. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  250. package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts +8 -0
  251. package/dist/application-spec/parse-application-files/spec/components/component-state-type.js +1 -0
  252. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts +13 -0
  253. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js +1 -0
  254. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  255. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  256. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.d.ts +14 -0
  257. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.js +1 -0
  258. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +6 -0
  259. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  260. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +7 -4
  261. package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
  262. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +24 -0
  263. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -0
  264. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.d.ts +13 -0
  265. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
  266. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
  267. package/dist/application-spec/parse-application-files/spec/expressions/expression.d.ts +1 -28
  268. package/dist/application-spec/parse-application-files/spec/expressions/expression.js +1 -1
  269. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -3
  270. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  271. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  272. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  273. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  274. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +3 -1
  275. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  276. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +2 -2
  277. package/dist/application-spec/parse-application-files/spec/invariants/invariants.js +1 -1
  278. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  279. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  280. package/dist/application-spec/parse-application-files/spec/model/index.d.ts +1 -0
  281. package/dist/application-spec/parse-application-files/spec/model/index.js +1 -1
  282. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.d.ts +10 -0
  283. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.js +1 -0
  284. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  285. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  286. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  287. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  288. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  289. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  290. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.d.ts +3 -8
  291. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.js +1 -1
  292. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +9 -43
  293. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  294. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-server-settings.d.ts +2 -2
  295. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.d.ts +5 -21
  296. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  297. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  298. package/dist/client/authorized-client.d.ts +3 -1
  299. package/dist/client/authorized-client.js +1 -1
  300. package/dist/client/contract.d.ts +34 -0
  301. package/dist/client/contract.js +1 -1
  302. package/dist/client/index.d.ts +2 -2
  303. package/dist/client/index.js +1 -1
  304. package/dist/client/local-authorized-client.d.ts +3 -1
  305. package/dist/client/local-authorized-client.js +1 -1
  306. package/dist/client/memory-authorized-client.d.ts +3 -1
  307. package/dist/client/memory-authorized-client.js +1 -1
  308. package/dist/client/phoenix-api.d.ts +761 -57
  309. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  310. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  311. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  312. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +282 -13
  313. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  314. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.d.ts +85 -0
  315. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.js +1 -0
  316. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +14 -3
  317. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  318. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  319. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.d.ts +12 -0
  320. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.js +1 -0
  321. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +4 -0
  322. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  323. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +36 -5
  324. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  325. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  326. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  327. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.d.ts +9 -0
  328. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.js +1 -0
  329. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  330. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  331. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  332. package/dist/configurator/common/configurator-interface.d.ts +35 -1
  333. package/dist/configurator/common/configurator-interface.js +1 -1
  334. package/dist/configurator/common/index.d.ts +3 -1
  335. package/dist/configurator/common/index.js +1 -1
  336. package/dist/configurator/common/use-reset-camera.d.ts +6 -0
  337. package/dist/configurator/common/use-reset-camera.js +1 -0
  338. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +12 -0
  339. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -0
  340. package/dist/configurator/configuration-not-found-page/index.d.ts +1 -0
  341. package/dist/configurator/configuration-not-found-page/index.js +1 -0
  342. package/dist/configurator/configurator-context/PresetSelectionProvider.js +1 -1
  343. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +1 -1
  344. package/dist/configurator/index.d.ts +0 -1
  345. package/dist/configurator/index.js +1 -1
  346. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  347. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +7 -0
  348. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  349. package/dist/configurator/pages/DefaultNotAuthenticatedPage.d.ts +8 -0
  350. package/dist/configurator/pages/DefaultNotAuthenticatedPage.js +1 -0
  351. package/dist/configurator/pages/DefaultPresetUi.d.ts +7 -0
  352. package/dist/configurator/pages/DefaultPresetUi.js +1 -0
  353. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  354. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  355. package/dist/configurator/pages/RootPage.js +1 -1
  356. package/dist/configurator/pages/configurator-layout-name.d.ts +2 -0
  357. package/dist/configurator/pages/configurator-layout-name.js +1 -0
  358. package/dist/configurator/pages/default-configurator-elements.d.ts +11 -0
  359. package/dist/configurator/pages/default-configurator-elements.js +1 -0
  360. package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +10 -0
  361. package/dist/configurator/pages/default-elements/built-in-entity-element.js +1 -0
  362. package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +10 -0
  363. package/dist/configurator/pages/default-elements/built-in-layout-element.js +1 -0
  364. package/dist/configurator/pages/default-elements/domain-control-elements.d.ts +6 -0
  365. package/dist/configurator/pages/default-elements/domain-control-elements.js +1 -0
  366. package/dist/configurator/pages/default-elements/index.d.ts +4 -0
  367. package/dist/configurator/pages/default-elements/index.js +1 -0
  368. package/dist/configurator/pages/default-elements/recipe-panel-elements.d.ts +3 -0
  369. package/dist/configurator/pages/default-elements/recipe-panel-elements.js +1 -0
  370. package/dist/configurator/pages/default-elements/sidebar-footer-elements.d.ts +7 -0
  371. package/dist/configurator/pages/default-elements/sidebar-footer-elements.js +1 -0
  372. package/dist/configurator/pages/default-elements/toolbar-elements.d.ts +7 -0
  373. package/dist/configurator/pages/default-elements/toolbar-elements.js +1 -0
  374. package/dist/configurator/pages/index.d.ts +1 -0
  375. package/dist/configurator/pages/index.js +1 -1
  376. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.d.ts +4 -0
  377. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.js +1 -0
  378. package/dist/configurator/preset-screen-elements/PresetPageActionElement.d.ts +4 -0
  379. package/dist/configurator/preset-screen-elements/PresetPageActionElement.js +1 -0
  380. package/dist/configurator/preset-screen-elements/index.d.ts +2 -0
  381. package/dist/configurator/preset-screen-elements/index.js +1 -0
  382. package/dist/configurator/scene/scene-analytics/scene-analytics.d.ts +2 -2
  383. package/dist/configurator/scene/scene-controls/DeleteEntityFab.js +1 -1
  384. package/dist/configurator/scene/scene-controls/SelectionHotspot.js +1 -1
  385. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  386. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  387. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  388. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  389. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  390. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  391. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  392. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  393. package/dist/configurator/ui/assistant/AssistantChips.d.ts +8 -2
  394. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  395. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +3 -7
  396. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -1
  397. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -2
  398. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  399. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  400. package/dist/configurator/ui/assistant/AssistantThread.d.ts +7 -8
  401. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  402. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  403. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  404. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  405. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  406. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  407. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  408. package/dist/configurator/ui/assistant/entity-link/index.d.ts +2 -0
  409. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  410. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +19 -0
  411. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -0
  412. package/dist/configurator/ui/assistant/form/built-in-form-registry.d.ts +10 -0
  413. package/dist/configurator/ui/assistant/form/built-in-form-registry.js +1 -0
  414. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +11 -0
  415. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -0
  416. package/dist/configurator/ui/assistant/form/describe-build-errors.d.ts +6 -0
  417. package/dist/configurator/ui/assistant/form/describe-build-errors.js +1 -0
  418. package/dist/configurator/ui/assistant/form/form-element-definition.d.ts +14 -0
  419. package/dist/configurator/ui/assistant/form/form-model.d.ts +38 -0
  420. package/dist/configurator/ui/assistant/form/form-registry.d.ts +31 -0
  421. package/dist/configurator/ui/assistant/form/form-registry.js +8 -0
  422. package/dist/configurator/ui/assistant/form/form-state.d.ts +4 -0
  423. package/dist/configurator/ui/assistant/form/index.d.ts +2 -0
  424. package/dist/configurator/ui/assistant/form/index.js +1 -0
  425. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +9 -0
  426. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -0
  427. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +13 -0
  428. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -0
  429. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +3 -0
  430. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -0
  431. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +3 -0
  432. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -0
  433. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +3 -0
  434. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -0
  435. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +3 -0
  436. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -0
  437. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +34 -0
  438. package/dist/configurator/ui/assistant/form-elements/index.d.ts +5 -0
  439. package/dist/configurator/ui/assistant/form-elements/index.js +1 -0
  440. package/dist/configurator/ui/assistant/index.d.ts +1 -1
  441. package/dist/configurator/ui/assistant/index.js +1 -1
  442. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +16 -0
  443. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -0
  444. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.d.ts +34 -0
  445. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.js +1 -0
  446. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.d.ts +25 -0
  447. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.js +1 -0
  448. package/dist/configurator/ui/assistant/reference-link/index.d.ts +3 -0
  449. package/dist/configurator/ui/assistant/reference-link/index.js +1 -0
  450. package/dist/configurator/ui/assistant/reference-link/reference-styles.d.ts +12 -0
  451. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -0
  452. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.d.ts +8 -0
  453. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.js +1 -0
  454. package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +9 -0
  455. package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -0
  456. package/dist/configurator/ui/assistant/resource-image/index.d.ts +3 -0
  457. package/dist/configurator/ui/assistant/resource-image/index.js +1 -0
  458. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +11 -0
  459. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -0
  460. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.d.ts +5 -0
  461. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.js +1 -0
  462. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +2 -0
  463. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  464. package/dist/configurator/ui/assistant/thread-items.d.ts +22 -4
  465. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  466. package/dist/configurator/ui/assistant/tool-chip.d.ts +8 -1
  467. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  468. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -1
  469. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.d.ts +5 -0
  470. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.js +1 -0
  471. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  472. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  473. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  474. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  475. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.d.ts +101 -0
  476. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  477. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  478. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  479. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.d.ts +1 -1
  480. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.js +1 -1
  481. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  482. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  483. package/dist/configurator/ui/configurator-layout/slots/services/Services.js +1 -1
  484. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  485. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  486. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.d.ts +1 -1
  487. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.js +1 -1
  488. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  489. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  490. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +0 -74
  491. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  492. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  493. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  494. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +2 -2
  495. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  496. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  497. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  498. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  499. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  500. package/dist/configurator/ui/legacy/layout/common/CommonFinalizeButton.js +1 -1
  501. package/dist/configurator/ui/legacy/layout/common/CommonSummaryButton.js +1 -1
  502. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  503. package/dist/configurator/ui/legacy/layout/common/ResponsiveFinalizeButton.js +1 -1
  504. package/dist/configurator/ui/legacy/layout/common/SummaryReadLayout.js +1 -1
  505. package/dist/configurator/ui/legacy/layout/simple/SimpleOwnerLayout.js +1 -1
  506. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  507. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  508. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  509. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  510. package/dist/configurator/ui/legacy/layout/steps/StepsSidebarFooter.js +1 -1
  511. package/dist/configurator/ui/legacy/layout/tabs/TabsOwnerLayout.js +1 -1
  512. package/dist/configurator/ui/legacy/mobile-controls/MobileControls.d.ts +1 -1
  513. package/dist/configurator/ui/legacy/toolbar/common/DimensionUnitSelector.js +1 -1
  514. package/dist/configurator/ui/legacy/toolbar/common/MeasurementsIndicatorsSwitch.js +1 -1
  515. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/FullscreenToolbarAction.js +1 -1
  516. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/HelpToolbarAction.js +1 -1
  517. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/MeasurementsToolbarAction.js +1 -1
  518. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/UndoRedoToolbarGroup.js +1 -1
  519. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.d.ts +2 -2
  520. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -1
  521. package/dist/configurator/ui/phoenix-layout-elements/EnterFullscreenToolbarButton.js +1 -1
  522. package/dist/configurator/ui/phoenix-layout-elements/ExitFullscreenToolbarButton.js +1 -1
  523. package/dist/configurator/ui/phoenix-layout-elements/HelpToolbarButton.js +1 -1
  524. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.d.ts +1 -0
  525. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.js +1 -1
  526. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.d.ts +1 -0
  527. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.js +1 -1
  528. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsToolbarButton.js +1 -1
  529. package/dist/configurator/ui/phoenix-layout-elements/RedoToolbarButton.js +1 -1
  530. package/dist/configurator/ui/phoenix-layout-elements/UndoToolbarButton.js +1 -1
  531. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  532. package/dist/configurator/ui/phoenix-layout-elements/header/common/horizontal-tabs/DesktopHorizontalTabs.js +1 -1
  533. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -2
  534. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  535. package/dist/configurator/ui/phoenix-layout-elements/measurements/DimensionUnitSelector.js +1 -1
  536. package/dist/configurator/ui/phoenix-layout-elements/measurements/MeasurementsIndicatorsSwitch.js +1 -1
  537. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/BasicFinalizeButton.js +1 -1
  538. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/CustomFinalizeButton.js +1 -1
  539. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/EnterSummaryButton.js +1 -1
  540. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/NextStepButton.js +1 -1
  541. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  542. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  543. package/dist/configurator/ui/preset-layout/PresetUi.d.ts +4 -0
  544. package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
  545. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.d.ts +10 -0
  546. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -0
  547. package/dist/configurator/ui/save-message-snackbars/index.d.ts +1 -0
  548. package/dist/configurator/ui/save-message-snackbars/index.js +1 -0
  549. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +100 -117
  550. package/dist/docs/complex-use-cases/navigation-reset-selection.mdx +18 -12
  551. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  552. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  553. package/dist/docs/controls/select-child-entity/cardselect.mdx +1 -0
  554. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  555. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  556. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  557. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  558. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  559. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  560. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  561. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  562. package/dist/docs/fabs/basic.mdx +2 -2
  563. package/dist/docs/index.json +42 -1
  564. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  565. package/dist/docs/layouts/custom-layout.mdx +2435 -0
  566. package/dist/docs/layouts/custom-price.mdx +14 -16
  567. package/dist/docs/layouts/header/fixed.mdx +2 -2
  568. package/dist/docs/layouts/header/floating.mdx +2 -2
  569. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  570. package/dist/docs/layouts/sidebar/tabs.mdx +24 -21
  571. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  572. package/dist/docs/layouts/toolbar.mdx +3 -1
  573. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  574. package/dist/docs/other-features/domain-actions.mdx +1 -1
  575. package/dist/docs/other-features/not-found-404.mdx +1 -1
  576. package/dist/docs/other-features/side-effects.mdx +76 -45
  577. package/dist/docs/other-features/transformers.mdx +5 -1
  578. package/dist/docs/other-features/violation-messages.mdx +52 -56
  579. package/dist/docs/phoenix/admin.mdx +9 -24
  580. package/dist/docs/phoenix/application-states.mdx +9 -7
  581. package/dist/docs/phoenix/clerk-sign-in.mdx +1 -1
  582. package/dist/docs/phoenix/components.mdx +6 -0
  583. package/dist/docs/phoenix/configurator-interface.mdx +267 -81
  584. package/dist/docs/phoenix/deployments.mdx +3 -7
  585. package/dist/docs/phoenix/domain-model.mdx +6 -0
  586. package/dist/docs/phoenix/expression-context.mdx +11 -3
  587. package/dist/docs/phoenix/finalization.mdx +1 -1
  588. package/dist/docs/phoenix/getting-started.mdx +7 -4
  589. package/dist/docs/phoenix/layout-slots.mdx +116 -0
  590. package/dist/docs/phoenix/localization.mdx +13 -28
  591. package/dist/docs/phoenix/migration-guide.mdx +24 -11
  592. package/dist/docs/phoenix/phoenix-cli.mdx +192 -66
  593. package/dist/docs/phoenix/project-structure.mdx +86 -35
  594. package/dist/docs/phoenix/quickstart.mdx +9 -9
  595. package/dist/docs/phoenix/sdk-builder-workflow.mdx +18 -17
  596. package/dist/docs/phoenix/testing.mdx +148 -0
  597. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  598. package/dist/docs/phoenix/webhooks.mdx +23 -6
  599. package/dist/docs/recipes-and-delete/recipe-hierarchy-selection.mdx +15 -13
  600. package/dist/docs/relations/hierarchy.mdx +13 -2
  601. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  602. package/dist/domain/admin-domain/__generated/enhanced-model.d.ts +1 -2
  603. package/dist/domain/admin-domain/__generated/model/versions/v1.d.ts +1 -1
  604. package/dist/domain/admin-domain/__generated/model/versions/v2.d.ts +1 -1
  605. package/dist/domain/admin-domain/__generated/model/versions/v3.d.ts +1 -1
  606. package/dist/domain/admin-domain/__generated/model/versions/v4.d.ts +1 -1
  607. package/dist/domain/admin-domain/__generated/model/versions/v5.d.ts +1 -1
  608. package/dist/domain/admin-domain/__generated/model/versions/v6.d.ts +2 -2
  609. package/dist/domain/admin-domain/__generated/model/versions/v6.js +1 -1
  610. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -14
  611. package/dist/domain/admin-domain/implementation/common-admin-migrations.d.ts +1 -1
  612. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  613. package/dist/domain/admin-domain/index.d.ts +9 -5
  614. package/dist/domain/admin-domain/index.js +1 -1
  615. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  616. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  617. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  618. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  619. package/dist/domain/application/application-config.d.ts +30 -97
  620. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  621. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  622. package/dist/domain/application/assistant/assistant-form-elements.d.ts +28 -0
  623. package/dist/domain/application/assistant/assistant-form-elements.js +1 -0
  624. package/dist/domain/application/assistant/assistant-manifest.d.ts +71 -0
  625. package/dist/domain/application/assistant/assistant-manifest.js +1 -0
  626. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +131 -0
  627. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -0
  628. package/dist/domain/application/assistant/assistant-value-type.d.ts +9 -0
  629. package/dist/domain/application/assistant/assistant-value-type.js +1 -0
  630. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  631. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  632. package/dist/domain/application/assistant/build-assistant-manifest.d.ts +4 -0
  633. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -0
  634. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  635. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  636. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  637. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -0
  638. package/dist/domain/application/assistant/index.d.ts +11 -0
  639. package/dist/domain/application/assistant/index.js +1 -0
  640. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  641. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  642. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  643. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  644. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +48 -0
  645. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  646. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  647. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  648. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  649. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  650. package/dist/domain/application/assistant-field-options.d.ts +2 -3
  651. package/dist/domain/application/assistant-mutations.d.ts +3 -5
  652. package/dist/domain/application/assistant-mutations.js +1 -1
  653. package/dist/domain/application/assistant-recipe-groups.d.ts +6 -8
  654. package/dist/domain/application/configurator-builder.d.ts +36 -18
  655. package/dist/domain/application/configurator-builder.js +1 -1
  656. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  657. package/dist/domain/application/index.d.ts +3 -6
  658. package/dist/domain/application/index.js +1 -1
  659. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  660. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  661. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  662. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  663. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  664. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  665. package/dist/domain/application/published-data/create-finalize-admin-domain.d.ts +1 -2
  666. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  667. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  668. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +3 -3
  669. package/dist/domain/application/published-data/map-published-data.d.ts +7 -4
  670. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  671. package/dist/domain/available-system-components.js +1 -1
  672. package/dist/domain/core/action/action-factory.d.ts +11 -0
  673. package/dist/domain/core/action/action.d.ts +71 -0
  674. package/dist/domain/core/action/action.js +1 -0
  675. package/dist/domain/core/action/index.d.ts +2 -0
  676. package/dist/domain/core/action/index.js +1 -0
  677. package/dist/domain/core/component/component-reader-types.d.ts +43 -0
  678. package/dist/domain/core/component/component-reader-types.js +1 -0
  679. package/dist/domain/core/component/debug-state-component.d.ts +14 -0
  680. package/dist/domain/core/component/debug-state-component.js +1 -0
  681. package/dist/domain/core/component/domain-component-optic.d.ts +65 -0
  682. package/dist/domain/core/component/domain-component-optic.js +16 -0
  683. package/dist/domain/core/component/drag-state-component.d.ts +16 -0
  684. package/dist/domain/core/component/drag-state-component.js +1 -0
  685. package/dist/domain/core/component/export-state-component.d.ts +15 -0
  686. package/dist/domain/core/component/export-state-component.js +1 -0
  687. package/dist/domain/core/component/fullscreen-state-component.d.ts +14 -0
  688. package/dist/domain/core/component/fullscreen-state-component.js +1 -0
  689. package/dist/domain/core/component/group-components-by-entity-id-and-name.d.ts +8 -0
  690. package/dist/domain/core/component/group-components-by-entity-id-and-name.js +1 -0
  691. package/dist/domain/core/component/hover-state-component.d.ts +14 -0
  692. package/dist/domain/core/component/hover-state-component.js +1 -0
  693. package/dist/domain/core/component/index.d.ts +18 -0
  694. package/dist/domain/core/component/index.js +1 -0
  695. package/dist/domain/core/component/legacy-filter.d.ts +498 -0
  696. package/dist/domain/core/component/navigation-state-component.d.ts +15 -0
  697. package/dist/domain/core/component/navigation-state-component.js +1 -0
  698. package/dist/domain/core/component/selection-state-component.d.ts +14 -0
  699. package/dist/domain/core/component/selection-state-component.js +1 -0
  700. package/dist/domain/core/component/system-component-builder.d.ts +11 -0
  701. package/dist/domain/core/component/system-component-builder.js +1 -0
  702. package/dist/domain/core/component/system-component-filter.d.ts +811 -0
  703. package/dist/domain/core/component/system-virtual-entity.js +1 -0
  704. package/dist/domain/core/component/tool-state-component.d.ts +14 -0
  705. package/dist/domain/core/component/tool-state-component.js +1 -0
  706. package/dist/domain/core/component/updates.d.ts +123 -0
  707. package/dist/domain/core/component/view-state-component.d.ts +14 -0
  708. package/dist/domain/core/component/view-state-component.js +1 -0
  709. package/dist/domain/core/component/viewport-state-component.d.ts +29 -0
  710. package/dist/domain/core/component/viewport-state-component.js +1 -0
  711. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  712. package/dist/domain/core/data-schema/data-cell-value.js +1 -0
  713. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  714. package/dist/domain/core/data-schema/data-schema-array-field.js +1 -0
  715. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  716. package/dist/domain/core/data-schema/data-schema-field-object.js +1 -0
  717. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  718. package/dist/domain/core/data-schema/data-schema-field.js +1 -0
  719. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  720. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  721. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  722. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  723. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  724. package/dist/domain/core/data-schema/data-schema.js +1 -0
  725. package/dist/domain/core/data-schema/index.d.ts +7 -0
  726. package/dist/domain/core/data-schema/index.js +1 -0
  727. package/dist/domain/core/decoder/create-decoder.d.ts +6 -0
  728. package/dist/domain/core/decoder/create-decoder.js +1 -0
  729. package/dist/domain/core/decoder/decoder.d.ts +6 -0
  730. package/dist/domain/core/decoder/decoder.js +1 -0
  731. package/dist/domain/core/decoder/index.d.ts +2 -0
  732. package/dist/domain/core/decoder/index.js +1 -0
  733. package/dist/domain/core/domain-factory.d.ts +4 -5
  734. package/dist/domain/core/domain-factory.js +1 -1
  735. package/dist/domain/core/domain.d.ts +4 -5
  736. package/dist/domain/core/domain.js +1 -1
  737. package/dist/domain/core/emission/index.d.ts +8 -0
  738. package/dist/domain/core/emission/index.js +1 -0
  739. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  740. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  741. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  742. package/dist/domain/core/emission/state-emission.js +1 -0
  743. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  744. package/dist/domain/core/emission/state-update-emission.js +1 -0
  745. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  746. package/dist/domain/core/emission/state-validation-result.js +1 -0
  747. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  748. package/dist/domain/core/emission/transformation-log.js +1 -0
  749. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  750. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  751. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  752. package/dist/domain/core/emission/transformer-log.js +1 -0
  753. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  754. package/dist/domain/core/emission/transformer-phase.js +1 -0
  755. package/dist/domain/core/expression/aliased-expressions.d.ts +10 -0
  756. package/dist/domain/core/expression/aliased-expressions.js +1 -0
  757. package/dist/domain/core/expression/constant-expressions.d.ts +16 -0
  758. package/dist/domain/core/expression/constant-expressions.js +1 -0
  759. package/dist/domain/core/expression/custom-expression.d.ts +25 -0
  760. package/dist/domain/core/expression/custom-expression.js +1 -0
  761. package/dist/domain/core/expression/expression.d.ts +46 -0
  762. package/dist/domain/core/expression/expression.js +1 -0
  763. package/dist/domain/core/expression/index.d.ts +4 -0
  764. package/dist/domain/core/expression/index.js +1 -0
  765. package/dist/domain/core/index.d.ts +13 -17
  766. package/dist/domain/core/index.js +1 -1
  767. package/dist/domain/core/invariant/builtin-invariant.d.ts +5 -0
  768. package/dist/domain/core/invariant/custom-invariants.d.ts +13 -0
  769. package/dist/domain/core/invariant/custom-invariants.js +1 -0
  770. package/dist/domain/core/invariant/index.d.ts +5 -0
  771. package/dist/domain/core/invariant/index.js +1 -0
  772. package/dist/domain/core/invariant/invariants.d.ts +10 -0
  773. package/dist/domain/core/invariant/invariants.js +1 -0
  774. package/dist/domain/core/invariant/violation-component.js +1 -0
  775. package/dist/domain/core/invariant/violation.d.ts +133 -0
  776. package/dist/domain/core/invariant/violation.js +1 -0
  777. package/dist/domain/core/model/component.d.ts +46 -0
  778. package/dist/domain/core/model/index.d.ts +6 -0
  779. package/dist/domain/core/model/index.js +1 -0
  780. package/dist/domain/core/model/model.d.ts +127 -0
  781. package/dist/domain/core/model/reflection.d.ts +114 -0
  782. package/dist/domain/core/model/reflection.js +1 -0
  783. package/dist/domain/core/recipe/index.d.ts +1 -0
  784. package/dist/domain/core/recipe/index.js +1 -0
  785. package/dist/domain/core/recipe/recipes.d.ts +23 -0
  786. package/dist/domain/core/recipe/recipes.js +1 -0
  787. package/dist/domain/core/relation/all-of-type-relation.d.ts +19 -0
  788. package/dist/domain/core/relation/all-of-type-relation.js +1 -0
  789. package/dist/domain/core/relation/component-factories.d.ts +14 -0
  790. package/dist/domain/core/relation/component-factories.js +1 -0
  791. package/dist/domain/core/relation/composed-of.d.ts +12 -0
  792. package/dist/domain/core/relation/composed-of.js +1 -0
  793. package/dist/domain/core/relation/direct-relation.d.ts +17 -0
  794. package/dist/domain/core/relation/index.d.ts +8 -0
  795. package/dist/domain/core/relation/index.js +1 -0
  796. package/dist/domain/core/relation/indirect-relation.d.ts +25 -0
  797. package/dist/domain/core/relation/indirect-relation.js +1 -0
  798. package/dist/domain/core/relation/reference-component.d.ts +17 -0
  799. package/dist/domain/core/relation/reference-component.js +1 -0
  800. package/dist/domain/core/relation/reference-field.d.ts +7 -0
  801. package/dist/domain/core/relation/reference-field.js +1 -0
  802. package/dist/domain/core/relation/relation-factory.d.ts +22 -0
  803. package/dist/domain/core/relation/relation-factory.js +1 -0
  804. package/dist/domain/core/schema/enhanced-json-schema.js +1 -0
  805. package/dist/domain/core/schema/extended-schema-validator.js +1 -0
  806. package/dist/domain/core/schema/index.d.ts +3 -0
  807. package/dist/domain/core/schema/index.js +1 -0
  808. package/dist/domain/core/schema/schema-validator.js +1 -0
  809. package/dist/domain/core/state/id-sequence.d.ts +15 -0
  810. package/dist/domain/core/state/id-sequence.js +1 -0
  811. package/dist/domain/core/state/index.d.ts +3 -0
  812. package/dist/domain/core/state/index.js +1 -0
  813. package/dist/domain/core/state/migrations.d.ts +67 -0
  814. package/dist/domain/core/state/migrations.js +1 -0
  815. package/dist/domain/core/state/state.d.ts +9 -0
  816. package/dist/domain/domain-builder.d.ts +11 -11
  817. package/dist/domain/domain-builder.js +1 -1
  818. package/dist/domain/domain-context/action-system/action-system.d.ts +2 -4
  819. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  820. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  821. package/dist/domain/domain-context/action-system/index.js +1 -0
  822. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  823. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  824. package/dist/domain/domain-context/create-transformer.d.ts +2 -2
  825. package/dist/domain/domain-context/dimension-system/dimension-state.js +1 -1
  826. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +3 -4
  827. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  828. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  829. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  830. package/dist/domain/domain-context/domain-context-systems.d.ts +8 -10
  831. package/dist/domain/domain-context/index.d.ts +8 -18
  832. package/dist/domain/domain-context/index.js +1 -1
  833. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  834. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  835. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +5 -8
  836. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  837. package/dist/domain/domain-context/navigation-system/navigation-updates.d.ts +1 -12
  838. package/dist/domain/domain-context/navigation-system/navigation-updates.js +1 -1
  839. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +2 -2
  840. package/dist/domain/domain-context/navigation-system/selection-transformers.js +1 -1
  841. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  842. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  843. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +2 -4
  844. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  845. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +3 -3
  846. package/dist/domain/domain-context/relation-transformers/cascade-deletes.js +1 -1
  847. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +3 -3
  848. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.js +1 -1
  849. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +3 -3
  850. package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
  851. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  852. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  853. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +3 -3
  854. package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
  855. package/dist/domain/domain-context/store-system/apply-updates.d.ts +1 -3
  856. package/dist/domain/domain-context/store-system/apply-updates.js +1 -1
  857. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  858. package/dist/domain/domain-context/store-system/index.js +1 -0
  859. package/dist/domain/domain-context/store-system/next-domain-entity-id.d.ts +1 -13
  860. package/dist/domain/domain-context/store-system/next-domain-entity-id.js +1 -1
  861. package/dist/domain/domain-context/store-system/reconcile-projected-entities.d.ts +1 -2
  862. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  863. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -39
  864. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  865. package/dist/domain/domain-context/store-system/system-state.d.ts +2 -4
  866. package/dist/domain/domain-context/store-system/system-state.js +1 -1
  867. package/dist/domain/domain-context/transformers/actions-builder.d.ts +1 -2
  868. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  869. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +6 -10
  870. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  871. package/dist/domain/domain-context/transformers/chain-builder.d.ts +3 -3
  872. package/dist/domain/domain-context/transformers/context.d.ts +2 -7
  873. package/dist/domain/domain-context/transformers/context.js +1 -1
  874. package/dist/domain/domain-context/transformers/entity-builder.d.ts +1 -5
  875. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  876. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  877. package/dist/domain/domain-context/transformers/index.js +1 -1
  878. package/dist/domain/domain-context/transformers/then-builder.d.ts +1 -2
  879. package/dist/domain/domain-context/transformers/then-builder.js +1 -1
  880. package/dist/domain/domain-context/transformers/when-builder.d.ts +3 -9
  881. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  882. package/dist/domain/domain-context/undo-system.d.ts +29 -3
  883. package/dist/domain/domain-context/undo-system.js +1 -1
  884. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  885. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  886. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  887. package/dist/domain/domain-runtime/access/types.js +1 -1
  888. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  889. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  890. package/dist/domain/domain-runtime/domain-context/component-reader.d.ts +1 -4
  891. package/dist/domain/domain-runtime/domain-context/component-reader.js +1 -1
  892. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  893. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  894. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  895. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  896. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  897. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  898. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +19 -25
  899. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  900. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  901. package/dist/domain/domain-runtime/domain-runtime.d.ts +88 -72
  902. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +19 -0
  903. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  904. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  905. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  906. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  907. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  908. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  909. package/dist/domain/domain-runtime/errors/index.js +1 -0
  910. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  911. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  912. package/dist/domain/domain-runtime/index.d.ts +1 -0
  913. package/dist/domain/domain-runtime/index.js +1 -1
  914. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  915. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  916. package/dist/domain/domain-runtime/spec/index.d.ts +5 -0
  917. package/dist/domain/domain-runtime/spec/index.js +1 -1
  918. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  919. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  920. package/dist/domain/domain-runtime/spec/memoize-expression.d.ts +16 -0
  921. package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +111 -0
  922. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  923. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.d.ts +34 -0
  924. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  925. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  926. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  927. package/dist/domain/domain-runtime/spec/module-checks/project-modules.d.ts +32 -0
  928. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  929. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  930. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  931. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  932. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  933. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  934. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  935. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  936. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  937. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  938. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  939. package/dist/domain/domain-runtime/spec/prepare-action-implementations.d.ts +15 -0
  940. package/dist/domain/domain-runtime/spec/prepare-action-implementations.js +5 -0
  941. package/dist/domain/domain-runtime/spec/prepare-domain-expressions.d.ts +16 -0
  942. package/dist/domain/domain-runtime/spec/selectors.d.ts +7 -8
  943. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  944. package/dist/domain/domain-runtime/spec/types.d.ts +8 -6
  945. package/dist/domain/extensions/angle-indicator.d.ts +21 -0
  946. package/dist/domain/extensions/angle-indicator.js +1 -0
  947. package/dist/domain/extensions/attribute-switch.d.ts +8 -0
  948. package/dist/domain/extensions/attribute-switch.js +1 -0
  949. package/dist/domain/extensions/autorotate-camera-component.d.ts +19 -0
  950. package/dist/domain/extensions/autorotate-camera-component.js +1 -0
  951. package/dist/domain/extensions/basic-sidebar-footer.d.ts +8 -0
  952. package/dist/domain/extensions/basic-sidebar-footer.js +1 -0
  953. package/dist/domain/extensions/camera-based-hidden-entity-object.js +1 -0
  954. package/dist/domain/extensions/camera-based-hidden-entity.js +1 -0
  955. package/dist/domain/extensions/canvas-config.d.ts +87 -0
  956. package/dist/domain/extensions/canvas-config.js +1 -0
  957. package/dist/domain/extensions/canvas-custom-environment.js +1 -0
  958. package/dist/domain/extensions/canvas-padding.d.ts +25 -0
  959. package/dist/domain/extensions/canvas-padding.js +1 -0
  960. package/dist/domain/extensions/canvas-preset-environment.d.ts +37 -0
  961. package/dist/domain/extensions/canvas-preset-environment.js +1 -0
  962. package/dist/domain/extensions/child-entity-recipe-hierarchy.d.ts +21 -0
  963. package/dist/domain/extensions/child-entity-recipe-hierarchy.js +1 -0
  964. package/dist/domain/extensions/client-side-image.d.ts +14 -0
  965. package/dist/domain/extensions/client-side-image.js +1 -0
  966. package/dist/domain/extensions/color-value.js +1 -0
  967. package/dist/domain/extensions/common/angle-indicator-schema.d.ts +292 -0
  968. package/dist/domain/extensions/common/angle-indicator-schema.js +1 -0
  969. package/dist/domain/extensions/common/dimension-indicator-schema.d.ts +607 -0
  970. package/dist/domain/extensions/common/dimension-indicator-schema.js +1 -0
  971. package/dist/domain/extensions/common/index.d.ts +4 -0
  972. package/dist/domain/extensions/common/index.js +1 -0
  973. package/dist/domain/extensions/custom-header.d.ts +11 -0
  974. package/dist/domain/extensions/custom-header.js +1 -0
  975. package/dist/domain/extensions/custom-price-footer.js +1 -0
  976. package/dist/domain/extensions/custom-sidebar-footer.d.ts +11 -0
  977. package/dist/domain/extensions/custom-sidebar-footer.js +1 -0
  978. package/dist/domain/extensions/dimension-indicator.d.ts +31 -0
  979. package/dist/domain/extensions/dimension-indicator.js +1 -0
  980. package/dist/domain/extensions/editable-angle-indicator.d.ts +39 -0
  981. package/dist/domain/extensions/editable-angle-indicator.js +1 -0
  982. package/dist/domain/extensions/editable-distance-dimension-indicator.d.ts +43 -0
  983. package/dist/domain/extensions/editable-distance-dimension-indicator.js +1 -0
  984. package/dist/domain/extensions/editable-offset-indicator.d.ts +42 -0
  985. package/dist/domain/extensions/editable-offset-indicator.js +1 -0
  986. package/dist/domain/extensions/editable-size-indicator.d.ts +39 -0
  987. package/dist/domain/extensions/editable-size-indicator.js +1 -0
  988. package/dist/domain/extensions/entity-header.d.ts +22 -0
  989. package/dist/domain/extensions/entity-header.js +1 -0
  990. package/dist/domain/extensions/exit-tool-mode-fab.d.ts +25 -0
  991. package/dist/domain/extensions/exit-tool-mode-fab.js +1 -0
  992. package/dist/domain/extensions/finalize-action.d.ts +20 -0
  993. package/dist/domain/extensions/finalize-action.js +1 -0
  994. package/dist/domain/extensions/finalize-component.js +1 -0
  995. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -0
  996. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -0
  997. package/dist/domain/extensions/fixed-header.d.ts +10 -0
  998. package/dist/domain/extensions/fixed-header.js +1 -0
  999. package/dist/domain/extensions/floating-header.d.ts +10 -0
  1000. package/dist/domain/extensions/floating-header.js +1 -0
  1001. package/dist/domain/extensions/hidden-header.d.ts +8 -0
  1002. package/dist/domain/extensions/hidden-header.js +1 -0
  1003. package/dist/domain/extensions/hidden-sidebar-footer.d.ts +21 -0
  1004. package/dist/domain/extensions/hidden-sidebar-footer.js +1 -0
  1005. package/dist/domain/extensions/horizontal-tabs.d.ts +28 -0
  1006. package/dist/domain/extensions/horizontal-tabs.js +1 -0
  1007. package/dist/domain/extensions/index.d.ts +69 -0
  1008. package/dist/domain/extensions/index.js +1 -0
  1009. package/dist/domain/extensions/list-selector-dimension-indicator.d.ts +31 -0
  1010. package/dist/domain/extensions/list-selector-dimension-indicator.js +1 -0
  1011. package/dist/domain/extensions/multilingual-text-value.js +1 -0
  1012. package/dist/domain/extensions/navigation-steps.d.ts +19 -0
  1013. package/dist/domain/extensions/navigation-steps.js +1 -0
  1014. package/dist/domain/extensions/offset-anchors.d.ts +20 -0
  1015. package/dist/domain/extensions/offset-anchors.js +1 -0
  1016. package/dist/domain/extensions/offset-indicator.d.ts +83 -0
  1017. package/dist/domain/extensions/offset-indicator.js +1 -0
  1018. package/dist/domain/extensions/offset.d.ts +31 -0
  1019. package/dist/domain/extensions/offset.js +1 -0
  1020. package/dist/domain/extensions/other-action.d.ts +14 -0
  1021. package/dist/domain/extensions/other-action.js +1 -0
  1022. package/dist/domain/extensions/property-page.d.ts +16 -0
  1023. package/dist/domain/extensions/property-page.js +1 -0
  1024. package/dist/domain/extensions/read-sidebar-footer.d.ts +8 -0
  1025. package/dist/domain/extensions/read-sidebar-footer.js +1 -0
  1026. package/dist/domain/extensions/replace-entity-recipe-hierarchy.d.ts +21 -0
  1027. package/dist/domain/extensions/replace-entity-recipe-hierarchy.js +1 -0
  1028. package/dist/domain/extensions/rotatable.js +1 -0
  1029. package/dist/domain/extensions/rotation-handle.d.ts +53 -0
  1030. package/dist/domain/extensions/rotation-handle.js +1 -0
  1031. package/dist/domain/extensions/save-template-thumbnail.d.ts +14 -0
  1032. package/dist/domain/extensions/save-template-thumbnail.js +1 -0
  1033. package/dist/domain/extensions/scene-entity-add-fab.d.ts +32 -0
  1034. package/dist/domain/extensions/scene-entity-add-fab.js +1 -0
  1035. package/dist/domain/extensions/scene-entity-animation.js +1 -0
  1036. package/dist/domain/extensions/scene-entity-control.js +1 -0
  1037. package/dist/domain/extensions/scene-entity-delete-fab.d.ts +19 -0
  1038. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -0
  1039. package/dist/domain/extensions/scene-entity-floor-object.js +1 -0
  1040. package/dist/domain/extensions/scene-entity-html-hotspot.d.ts +27 -0
  1041. package/dist/domain/extensions/scene-entity-html-hotspot.js +1 -0
  1042. package/dist/domain/extensions/scene-entity-navigation-hotspot.d.ts +20 -0
  1043. package/dist/domain/extensions/scene-entity-navigation-hotspot.js +1 -0
  1044. package/dist/domain/extensions/scene-entity-object-html-hotspot.d.ts +31 -0
  1045. package/dist/domain/extensions/scene-entity-object-html-hotspot.js +1 -0
  1046. package/dist/domain/extensions/scene-entity-select-hotspot.d.ts +5 -0
  1047. package/dist/domain/extensions/scene-entity-select-hotspot.js +1 -0
  1048. package/dist/domain/extensions/scene-entity-wall-object.js +1 -0
  1049. package/dist/domain/extensions/selectable-component.js +1 -0
  1050. package/dist/domain/extensions/sidebar-tabs.d.ts +29 -0
  1051. package/dist/domain/extensions/sidebar-tabs.js +1 -0
  1052. package/dist/domain/extensions/simple-summary.js +1 -0
  1053. package/dist/domain/extensions/size.d.ts +21 -0
  1054. package/dist/domain/extensions/size.js +1 -0
  1055. package/dist/domain/extensions/sketching-draw.d.ts +17 -0
  1056. package/dist/domain/extensions/sketching-draw.js +1 -0
  1057. package/dist/domain/extensions/sketching-edit.d.ts +28 -0
  1058. package/dist/domain/extensions/sketching-edit.js +1 -0
  1059. package/dist/domain/extensions/summary-component.js +1 -0
  1060. package/dist/domain/extensions/text-value.js +1 -0
  1061. package/dist/domain/extensions/tool-controls.js +1 -0
  1062. package/dist/domain/extensions/tool-menu-fab.d.ts +40 -0
  1063. package/dist/domain/extensions/tool-menu-fab.js +1 -0
  1064. package/dist/domain/extensions/toolbar.d.ts +13 -0
  1065. package/dist/domain/extensions/toolbar.js +1 -0
  1066. package/dist/domain/extensions/universal-sidebar-footer.d.ts +12 -0
  1067. package/dist/domain/extensions/universal-sidebar-footer.js +1 -0
  1068. package/dist/domain/extensions/view-controls.js +1 -0
  1069. package/dist/domain/index.d.ts +2 -32
  1070. package/dist/domain/index.js +1 -1
  1071. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  1072. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  1073. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +30 -21
  1074. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  1075. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  1076. package/dist/domain/mocks/create-mock-domain.js +1 -1
  1077. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  1078. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  1079. package/dist/domain/mocks/create-test-application-config.js +1 -0
  1080. package/dist/domain/mocks/index.d.ts +1 -0
  1081. package/dist/domain/mocks/index.js +1 -1
  1082. package/dist/domain/projections/blender-projections/blender-projections.d.ts +2 -3
  1083. package/dist/domain/projections/blender-projections/blender-projections.js +1 -1
  1084. package/dist/domain/projections/blender-projections/camera.d.ts +2 -2
  1085. package/dist/domain/projections/collision-projections.d.ts +1 -1
  1086. package/dist/domain/projections/composition-projections.d.ts +1 -1
  1087. package/dist/domain/projections/composition-projections.js +1 -1
  1088. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  1089. package/dist/domain/projections/index.d.ts +1 -1
  1090. package/dist/domain/projections/position-projections.d.ts +1 -1
  1091. package/dist/domain/projections/projected-entities-projections.d.ts +2 -3
  1092. package/dist/domain/projections/snap-matching.d.ts +1 -2
  1093. package/dist/domain/projections/snap-utils.d.ts +1 -2
  1094. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  1095. package/dist/domain/projections/validation-projections.d.ts +3 -20
  1096. package/dist/domain/projections/validation-projections.js +1 -1
  1097. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  1098. package/dist/domain/system-components/admin-sidebar.d.ts +1 -1
  1099. package/dist/domain/system-components/admin-sidebar.js +1 -1
  1100. package/dist/domain/system-components/angle-dimension.js +1 -1
  1101. package/dist/domain/system-components/application-config.d.ts +3 -3
  1102. package/dist/domain/system-components/application-config.js +1 -1
  1103. package/dist/domain/system-components/attribute-selection.js +1 -1
  1104. package/dist/domain/system-components/bounding-box-component.d.ts +1 -1
  1105. package/dist/domain/system-components/bounding-box-component.js +1 -1
  1106. package/dist/domain/system-components/bounding-sphere-component.d.ts +1 -1
  1107. package/dist/domain/system-components/bounding-sphere-component.js +1 -1
  1108. package/dist/domain/system-components/child-entity-recipes.d.ts +1 -1
  1109. package/dist/domain/system-components/child-entity-recipes.js +1 -1
  1110. package/dist/domain/system-components/child-entity-selection.d.ts +1 -2
  1111. package/dist/domain/system-components/child-entity-selection.js +1 -1
  1112. package/dist/domain/system-components/collision-box-geometry.d.ts +5 -3
  1113. package/dist/domain/system-components/collision-box-geometry.js +1 -1
  1114. package/dist/domain/system-components/collision-geometries.d.ts +1 -1
  1115. package/dist/domain/system-components/collision-geometry.d.ts +5 -3
  1116. package/dist/domain/system-components/collision-geometry.js +1 -1
  1117. package/dist/domain/system-components/collision-point-geometry.d.ts +5 -3
  1118. package/dist/domain/system-components/collision-point-geometry.js +1 -1
  1119. package/dist/domain/system-components/common/index.d.ts +0 -4
  1120. package/dist/domain/system-components/common/index.js +1 -1
  1121. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  1122. package/dist/domain/system-components/common/recipes.d.ts +21 -4
  1123. package/dist/domain/system-components/common/recipes.js +1 -1
  1124. package/dist/domain/system-components/common/scene-entity-control-schema.d.ts +3 -0
  1125. package/dist/domain/system-components/common/scene-entity-control-schema.js +1 -1
  1126. package/dist/domain/system-components/constraint.d.ts +11 -24
  1127. package/dist/domain/system-components/constraint.js +1 -1
  1128. package/dist/domain/system-components/create-blueprint.d.ts +1 -1
  1129. package/dist/domain/system-components/custom-scene-entity.d.ts +1 -1
  1130. package/dist/domain/system-components/custom-scene-entity.js +1 -1
  1131. package/dist/domain/system-components/detail.js +1 -1
  1132. package/dist/domain/system-components/distance-dimension-select.d.ts +1 -1
  1133. package/dist/domain/system-components/distance-dimension-select.js +1 -1
  1134. package/dist/domain/system-components/distance-dimension.d.ts +1 -1
  1135. package/dist/domain/system-components/distance-dimension.js +1 -1
  1136. package/dist/domain/system-components/drag-handle.d.ts +2 -2
  1137. package/dist/domain/system-components/drag-handle.js +1 -1
  1138. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  1139. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  1140. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  1141. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  1142. package/dist/domain/system-components/generic-dimension.d.ts +1 -1
  1143. package/dist/domain/system-components/generic-dimension.js +1 -1
  1144. package/dist/domain/system-components/hidden-entity.js +1 -1
  1145. package/dist/domain/system-components/hotspot-drag-handle.d.ts +2 -3
  1146. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  1147. package/dist/domain/system-components/index.d.ts +0 -68
  1148. package/dist/domain/system-components/index.js +1 -1
  1149. package/dist/domain/system-components/material-override-property-transition.js +1 -1
  1150. package/dist/domain/system-components/material-override-transformer.js +1 -1
  1151. package/dist/domain/system-components/material-swatch.js +1 -1
  1152. package/dist/domain/system-components/navigation-page.js +1 -1
  1153. package/dist/domain/system-components/navigation-panel-list.js +1 -1
  1154. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  1155. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  1156. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  1157. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  1158. package/dist/domain/system-components/pivot-point.d.ts +1 -1
  1159. package/dist/domain/system-components/pivot-point.js +1 -1
  1160. package/dist/domain/system-components/price.js +1 -1
  1161. package/dist/domain/system-components/projected-entities.d.ts +1 -1
  1162. package/dist/domain/system-components/projected-entities.js +1 -1
  1163. package/dist/domain/system-components/replace-entity-recipes.d.ts +1 -1
  1164. package/dist/domain/system-components/replace-entity-recipes.js +1 -1
  1165. package/dist/domain/system-components/scene-entity-ambient-light.js +1 -1
  1166. package/dist/domain/system-components/scene-entity-box-object.js +1 -1
  1167. package/dist/domain/system-components/scene-entity-directional-light.js +1 -1
  1168. package/dist/domain/system-components/scene-entity-local-material-override.js +1 -1
  1169. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  1170. package/dist/domain/system-components/scene-entity-material-override.js +1 -1
  1171. package/dist/domain/system-components/scene-entity-object-clip.js +1 -1
  1172. package/dist/domain/system-components/scene-entity-object-decal.js +1 -1
  1173. package/dist/domain/system-components/scene-entity-object-group.js +1 -1
  1174. package/dist/domain/system-components/scene-entity-object-local-material-override.js +1 -1
  1175. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  1176. package/dist/domain/system-components/scene-entity-object-material-override.js +1 -1
  1177. package/dist/domain/system-components/scene-entity-object-properties.js +1 -1
  1178. package/dist/domain/system-components/scene-entity-object-remote-material-override.js +1 -1
  1179. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  1180. package/dist/domain/system-components/scene-entity-object-text-decal.js +1 -1
  1181. package/dist/domain/system-components/scene-entity-object-transformer.js +1 -1
  1182. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  1183. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.js +1 -1
  1184. package/dist/domain/system-components/scene-entity-object.js +1 -1
  1185. package/dist/domain/system-components/scene-entity-point-light.js +1 -1
  1186. package/dist/domain/system-components/scene-entity-properties.js +1 -1
  1187. package/dist/domain/system-components/scene-entity-rect-area-light.js +1 -1
  1188. package/dist/domain/system-components/scene-entity-remote-material-override.js +1 -1
  1189. package/dist/domain/system-components/scene-entity-remote-object.js +1 -1
  1190. package/dist/domain/system-components/scene-entity-spot-light.js +1 -1
  1191. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  1192. package/dist/domain/system-components/scene-entity-transimissive-material-override.js +1 -1
  1193. package/dist/domain/system-components/sketching-line.d.ts +1 -1
  1194. package/dist/domain/system-components/sketching-line.js +1 -1
  1195. package/dist/domain/system-components/sketching-rectangle.d.ts +1 -1
  1196. package/dist/domain/system-components/sketching-rectangle.js +1 -1
  1197. package/dist/domain/system-components/sketching.d.ts +1 -1
  1198. package/dist/domain/system-components/sketching.js +1 -1
  1199. package/dist/domain/system-components/snap-axis.d.ts +1 -1
  1200. package/dist/domain/system-components/snap-axis.js +1 -1
  1201. package/dist/domain/system-components/snap-edge.d.ts +1 -1
  1202. package/dist/domain/system-components/snap-edge.js +1 -1
  1203. package/dist/domain/system-components/snap-plane.d.ts +1 -1
  1204. package/dist/domain/system-components/snap-plane.js +1 -1
  1205. package/dist/domain/system-components/snap-point.d.ts +1 -1
  1206. package/dist/domain/system-components/snap-point.js +1 -1
  1207. package/dist/domain/system-components/static-orthographic-camera-component.d.ts +1 -1
  1208. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  1209. package/dist/domain/system-components/static-perspective-camera-component.d.ts +1 -1
  1210. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  1211. package/dist/domain/utils/eval-cache.d.ts +2 -3
  1212. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  1213. package/dist/domain/utils/memo-eval.d.ts +2 -4
  1214. package/dist/editor/Editor.d.ts +7 -0
  1215. package/dist/editor/Editor.js +1 -1
  1216. package/dist/editor/domain-editors/use-implementation-files.d.ts +8 -8
  1217. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  1218. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  1219. package/dist/editor/mocks/CreateMockYaml.js +2 -2
  1220. package/dist/editor/mocks/EditorMockContext.d.ts +2 -0
  1221. package/dist/editor/mocks/EditorMockContext.js +1 -1
  1222. package/dist/editor/variants/VariantAnswerFooter.d.ts +17 -0
  1223. package/dist/editor/variants/VariantAnswerFooter.js +1 -0
  1224. package/dist/editor/variants/VariantPreviewHandler.d.ts +6 -0
  1225. package/dist/editor/variants/VariantPreviewHandler.js +1 -0
  1226. package/dist/editor/variants/variant-preview-styles.d.ts +49 -0
  1227. package/dist/editor/variants/variant-preview-styles.js +1 -0
  1228. package/dist/globals/index.d.ts +2 -0
  1229. package/dist/i18n/locales/cs/messages.js +1 -1
  1230. package/dist/i18n/locales/da/messages.js +1 -1
  1231. package/dist/i18n/locales/de/messages.js +1 -1
  1232. package/dist/i18n/locales/de-AT/messages.js +1 -1
  1233. package/dist/i18n/locales/en/messages.js +1 -1
  1234. package/dist/i18n/locales/en-AU/messages.js +1 -1
  1235. package/dist/i18n/locales/en-GB/messages.js +1 -1
  1236. package/dist/i18n/locales/es/messages.js +1 -1
  1237. package/dist/i18n/locales/fr/messages.js +1 -1
  1238. package/dist/i18n/locales/hu/messages.js +1 -1
  1239. package/dist/i18n/locales/it/messages.js +1 -1
  1240. package/dist/i18n/locales/nl/messages.js +1 -1
  1241. package/dist/i18n/locales/pl/messages.js +1 -1
  1242. package/dist/i18n/locales/pt/messages.js +1 -1
  1243. package/dist/i18n/locales/ro/messages.js +1 -1
  1244. package/dist/i18n/locales/sk/messages.js +1 -1
  1245. package/dist/i18n/locales/tr/messages.js +1 -1
  1246. package/dist/legacy/domain-cli/gen/configurator-builder.js +30 -16
  1247. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  1248. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  1249. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  1250. package/dist/legacy/domain-cli/gen/invariants.js +7 -6
  1251. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  1252. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  1253. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  1254. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +160 -148
  1255. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  1256. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  1257. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  1258. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +7 -0
  1259. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  1260. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.d.ts +1 -1
  1261. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
  1262. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +18 -18
  1263. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +16 -15
  1264. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +24 -24
  1265. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +16 -15
  1266. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.d.ts +7 -2
  1267. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.js +8 -12
  1268. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.d.ts +1 -1
  1269. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.js +1 -1
  1270. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/webhook-builders.js +7 -7
  1271. package/dist/phoenix/application-spec/application-spec-builder.d.ts +0 -2
  1272. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  1273. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +0 -2
  1274. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  1275. package/dist/phoenix/application-spec/generate-application-spec-story.js +2 -2
  1276. package/dist/phoenix/application-spec/generate-project-files.d.ts +0 -2
  1277. package/dist/phoenix/application-spec/project-files.js +1 -1
  1278. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +4 -3
  1279. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  1280. package/dist/phoenix/bin.d.ts +2 -0
  1281. package/dist/phoenix/bin.js +2 -0
  1282. package/dist/phoenix/check-configs/built-in-eslint-config.d.ts +9 -0
  1283. package/dist/phoenix/check-configs/built-in-eslint-config.js +1 -0
  1284. package/dist/phoenix/check-configs/eslint-config.d.ts +10 -0
  1285. package/dist/phoenix/check-configs/eslint-config.js +1 -0
  1286. package/dist/phoenix/check-configs/index.d.ts +8 -0
  1287. package/dist/phoenix/check-configs/index.js +1 -0
  1288. package/dist/phoenix/check-configs/typescript-project.d.ts +5 -0
  1289. package/dist/phoenix/check-configs/typescript-project.js +1 -0
  1290. package/dist/phoenix/cli.d.ts +0 -1
  1291. package/dist/phoenix/cli.js +1 -2
  1292. package/dist/phoenix/commands/build.js +1 -1
  1293. package/dist/phoenix/commands/check.js +1 -1
  1294. package/dist/phoenix/commands/clean.js +1 -1
  1295. package/dist/phoenix/commands/deploy.js +2 -2
  1296. package/dist/phoenix/commands/deps/deps.d.ts +73 -0
  1297. package/dist/phoenix/commands/deps/deps.js +3 -0
  1298. package/dist/phoenix/commands/deps/index.d.ts +1 -0
  1299. package/dist/phoenix/commands/deps/index.js +1 -0
  1300. package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
  1301. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
  1302. package/dist/phoenix/commands/dev.js +5 -5
  1303. package/dist/phoenix/commands/fix.js +1 -1
  1304. package/dist/phoenix/commands/index.d.ts +2 -0
  1305. package/dist/phoenix/commands/index.js +1 -1
  1306. package/dist/phoenix/commands/init.d.ts +17 -5
  1307. package/dist/phoenix/commands/init.js +1 -1
  1308. package/dist/phoenix/commands/link.js +1 -1
  1309. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  1310. package/dist/phoenix/commands/prepare-local-environment-command.js +1 -1
  1311. package/dist/phoenix/commands/prettier.js +1 -1
  1312. package/dist/phoenix/commands/story-dev.js +2 -2
  1313. package/dist/phoenix/commands/sync.js +1 -1
  1314. package/dist/phoenix/commands/unlink.js +1 -1
  1315. package/dist/phoenix/commands/variants.d.ts +35 -0
  1316. package/dist/phoenix/commands/variants.js +1 -0
  1317. package/dist/phoenix/editor-server/commands-router.d.ts +68 -1
  1318. package/dist/phoenix/editor-server/commands-router.js +1 -1
  1319. package/dist/phoenix/editor-server/editor-router.d.ts +65 -0
  1320. package/dist/phoenix/editor-server/editor-server.d.ts +3 -3
  1321. package/dist/phoenix/editor-server/editor-server.js +1 -1
  1322. package/dist/phoenix/editor-server/protocol.d.ts +1 -0
  1323. package/dist/phoenix/editor-server/spec-router.js +1 -1
  1324. package/dist/phoenix/editor-server/trpc.d.ts +3 -0
  1325. package/dist/phoenix/scripts/build-admin.js +1 -1
  1326. package/dist/phoenix/services/application-spec-project-watcher.d.ts +15 -4
  1327. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  1328. package/dist/phoenix/services/index.d.ts +4 -0
  1329. package/dist/phoenix/services/index.js +1 -1
  1330. package/dist/phoenix/services/lingui.d.ts +8 -0
  1331. package/dist/phoenix/services/lingui.js +1 -1
  1332. package/dist/phoenix/services/phoenix-application.d.ts +21 -0
  1333. package/dist/phoenix/services/phoenix-application.js +1 -0
  1334. package/dist/phoenix/services/phoenix-store.d.ts +48 -0
  1335. package/dist/phoenix/services/phoenix-store.js +1 -0
  1336. package/dist/phoenix/services/phx-variant-previews-plugin.d.ts +9 -0
  1337. package/dist/phoenix/services/phx-variant-previews-plugin.js +1 -0
  1338. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  1339. package/dist/phoenix/services/source-archive.d.ts +1 -0
  1340. package/dist/phoenix/services/source-archive.js +1 -1
  1341. package/dist/phoenix/services/swc.js +1 -1
  1342. package/dist/phoenix/services/variant-file-session.d.ts +36 -0
  1343. package/dist/phoenix/services/variant-file-session.js +1 -0
  1344. package/dist/phoenix/services/variant-preview-service.d.ts +80 -0
  1345. package/dist/phoenix/services/variant-preview-service.js +1 -0
  1346. package/dist/phoenix/services/vite-config.js +1 -1
  1347. package/dist/phoenix/utils/git/index.d.ts +1 -0
  1348. package/dist/phoenix/utils/git/index.js +1 -0
  1349. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  1350. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  1351. package/dist/phoenix/utils/index.d.ts +5 -2
  1352. package/dist/phoenix/utils/index.js +1 -1
  1353. package/dist/phoenix/utils/node-version/index.d.ts +1 -0
  1354. package/dist/phoenix/utils/node-version/index.js +1 -0
  1355. package/dist/phoenix/utils/node-version/supported-node-version.d.ts +12 -0
  1356. package/dist/phoenix/utils/node-version/supported-node-version.js +4 -0
  1357. package/dist/phoenix/utils/package-info.d.ts +0 -9
  1358. package/dist/phoenix/utils/package-info.js +1 -1
  1359. package/dist/phoenix/utils/package-manager/index.d.ts +2 -0
  1360. package/dist/phoenix/utils/package-manager/index.js +1 -0
  1361. package/dist/phoenix/utils/package-manager/package-manager-commands.d.ts +19 -0
  1362. package/dist/phoenix/utils/package-manager/package-manager-commands.js +1 -0
  1363. package/dist/phoenix/utils/package-manager/pnpm-project.d.ts +9 -0
  1364. package/dist/phoenix/utils/package-manager/pnpm-project.js +1 -0
  1365. package/dist/phoenix/utils/run-command.d.ts +11 -0
  1366. package/dist/phoenix/utils/run-command.js +1 -1
  1367. package/dist/phoenix/utils/sdk-tool/index.d.ts +1 -0
  1368. package/dist/phoenix/utils/sdk-tool/index.js +1 -0
  1369. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.d.ts +15 -0
  1370. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.js +1 -0
  1371. package/dist/react-sdk/application-runtime/common-services/analytics/analytics-service.d.ts +2 -2
  1372. package/dist/react-sdk/application-runtime/common-services/analytics/domain-controls-analytics.d.ts +21 -21
  1373. package/dist/react-sdk/application-runtime/common-services/analytics/frontend-analytics.d.ts +48 -0
  1374. package/dist/react-sdk/application-runtime/common-services/analytics/frontend-analytics.js +1 -0
  1375. package/dist/react-sdk/application-runtime/common-services/analytics/index.d.ts +1 -0
  1376. package/dist/react-sdk/application-runtime/common-services/analytics/index.js +1 -1
  1377. package/dist/react-sdk/application-runtime/hooks/data/use-published-data.d.ts +1 -1
  1378. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +2 -0
  1379. package/dist/react-sdk/application-runtime/hooks/use-domain-application-props.d.ts +5 -2
  1380. package/dist/react-sdk/application-runtime/hooks/use-spec.d.ts +1 -1
  1381. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.d.ts +1 -1
  1382. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  1383. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  1384. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +57 -40
  1385. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  1386. package/dist/react-sdk/domain-application-context/DomainLifecycleBoundary.js +1 -1
  1387. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +41 -0
  1388. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  1389. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +9 -9
  1390. package/dist/react-sdk/domain-context/index.d.ts +4 -1
  1391. package/dist/react-sdk/domain-context/index.js +1 -1
  1392. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +11 -0
  1393. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  1394. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.d.ts +61 -0
  1395. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.js +1 -0
  1396. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.d.ts +20 -0
  1397. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -0
  1398. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  1399. package/dist/react-sdk/handlers/index.d.ts +1 -0
  1400. package/dist/react-sdk/handlers/index.js +1 -1
  1401. package/dist/react-sdk/handlers/use-finalize-action.d.ts +31 -0
  1402. package/dist/react-sdk/handlers/use-finalize-action.js +1 -0
  1403. package/dist/react-sdk/session/NotAuthenticatedPage.d.ts +4 -0
  1404. package/dist/react-sdk/session/NotAuthenticatedPage.js +1 -1
  1405. package/dist/ui-sdk/common/use-viewport-size.d.ts +4 -1
  1406. package/dist/ui-sdk/common/use-viewport-size.js +1 -1
  1407. package/dist/ui-sdk/components/mobile-controls/index.d.ts +1 -1
  1408. package/dist/ui-sdk/theme/types.d.ts +1 -1
  1409. package/dist/webhook/builders/common.d.ts +8 -0
  1410. package/dist/webhook/builders/webhook-builder.d.ts +1 -1
  1411. package/dist/webhook/builders/webhook-builder.js +1 -1
  1412. package/package.json +49 -37
  1413. package/schema/domain-spec.json +1201 -217
  1414. package/dist/application-spec/core/eval-to-constant.d.ts +0 -14
  1415. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  1416. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  1417. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  1418. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -90
  1419. package/dist/application-spec/generate-application/code/templates/nvmrc.d.ts +0 -1
  1420. package/dist/application-spec/generate-application/code/templates/nvmrc.js +0 -2
  1421. package/dist/application-spec/generate-application/code/templates/package-json.d.ts +0 -10
  1422. package/dist/application-spec/generate-application/code/templates/package-json.js +0 -1
  1423. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  1424. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  1425. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  1426. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  1427. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  1428. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  1429. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  1430. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  1431. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  1432. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  1433. package/dist/application-spec/generate-application/code/templates/webhook-implementation.d.ts +0 -1
  1434. package/dist/application-spec/generate-application/code/templates/webhook-implementation.js +0 -7
  1435. package/dist/configurator/assistant/index.d.ts +0 -1
  1436. package/dist/configurator/assistant/index.js +0 -1
  1437. package/dist/configurator/assistant/use-assistant-chat.d.ts +0 -30
  1438. package/dist/configurator/assistant/use-assistant-chat.js +0 -1
  1439. package/dist/configurator/common/frontend-analytics.d.ts +0 -46
  1440. package/dist/configurator/common/frontend-analytics.js +0 -1
  1441. package/dist/configurator/ui/assistant/AssistantPanelProvider.d.ts +0 -42
  1442. package/dist/configurator/ui/assistant/AssistantPanelProvider.js +0 -1
  1443. package/dist/domain/actions/action-factory.d.ts +0 -10
  1444. package/dist/domain/actions/prepare-action-implementations.d.ts +0 -15
  1445. package/dist/domain/actions/prepare-action-implementations.js +0 -5
  1446. package/dist/domain/application/element-registration.d.ts +0 -105
  1447. package/dist/domain/application/element-registration.js +0 -1
  1448. package/dist/domain/application/handler-registration.d.ts +0 -29
  1449. package/dist/domain/application/handler-registration.js +0 -1
  1450. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -13
  1451. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  1452. package/dist/domain/application/resource-builder.d.ts +0 -13
  1453. package/dist/domain/application/resource-builder.js +0 -1
  1454. package/dist/domain/components/component-reader-types.d.ts +0 -44
  1455. package/dist/domain/components/debug-state-component.d.ts +0 -14
  1456. package/dist/domain/components/debug-state-component.js +0 -1
  1457. package/dist/domain/components/domain-component-optic.d.ts +0 -76
  1458. package/dist/domain/components/domain-component-optic.js +0 -16
  1459. package/dist/domain/components/drag-state-component.d.ts +0 -16
  1460. package/dist/domain/components/drag-state-component.js +0 -1
  1461. package/dist/domain/components/export-state-component.d.ts +0 -15
  1462. package/dist/domain/components/export-state-component.js +0 -1
  1463. package/dist/domain/components/fullscreen-state-component.d.ts +0 -14
  1464. package/dist/domain/components/fullscreen-state-component.js +0 -1
  1465. package/dist/domain/components/group-components-by-entity-id-and-name.d.ts +0 -9
  1466. package/dist/domain/components/group-components-by-entity-id-and-name.js +0 -1
  1467. package/dist/domain/components/hover-state-component.d.ts +0 -14
  1468. package/dist/domain/components/hover-state-component.js +0 -1
  1469. package/dist/domain/components/index.d.ts +0 -2
  1470. package/dist/domain/components/index.js +0 -1
  1471. package/dist/domain/components/legacy-filter.d.ts +0 -513
  1472. package/dist/domain/components/navigation-state-component.d.ts +0 -15
  1473. package/dist/domain/components/navigation-state-component.js +0 -1
  1474. package/dist/domain/components/selection-state-component.d.ts +0 -14
  1475. package/dist/domain/components/selection-state-component.js +0 -1
  1476. package/dist/domain/components/system-component-builder.d.ts +0 -12
  1477. package/dist/domain/components/system-component-builder.js +0 -1
  1478. package/dist/domain/components/system-component-filter.d.ts +0 -793
  1479. package/dist/domain/components/system-virtual-entity.js +0 -1
  1480. package/dist/domain/components/tool-state-component.d.ts +0 -14
  1481. package/dist/domain/components/tool-state-component.js +0 -1
  1482. package/dist/domain/components/updates.d.ts +0 -108
  1483. package/dist/domain/components/view-state-component.d.ts +0 -14
  1484. package/dist/domain/components/view-state-component.js +0 -1
  1485. package/dist/domain/components/viewport-state-component.d.ts +0 -29
  1486. package/dist/domain/components/viewport-state-component.js +0 -1
  1487. package/dist/domain/core/action.d.ts +0 -67
  1488. package/dist/domain/core/component.d.ts +0 -46
  1489. package/dist/domain/core/expression.d.ts +0 -50
  1490. package/dist/domain/core/json-schema.js +0 -1
  1491. package/dist/domain/core/migrations.d.ts +0 -99
  1492. package/dist/domain/core/migrations.js +0 -1
  1493. package/dist/domain/core/model.d.ts +0 -127
  1494. package/dist/domain/core/reflection.d.ts +0 -114
  1495. package/dist/domain/core/reflection.js +0 -1
  1496. package/dist/domain/core/state.d.ts +0 -10
  1497. package/dist/domain/domain-context/recipe-system/recipes.d.ts +0 -57
  1498. package/dist/domain/domain-context/recipe-system/recipes.js +0 -1
  1499. package/dist/domain/expressions/constant-expressions.d.ts +0 -9
  1500. package/dist/domain/expressions/constant-expressions.js +0 -1
  1501. package/dist/domain/expressions/custom-expression.d.ts +0 -13
  1502. package/dist/domain/expressions/custom-expression.js +0 -1
  1503. package/dist/domain/expressions/index.d.ts +0 -1
  1504. package/dist/domain/expressions/index.js +0 -1
  1505. package/dist/domain/expressions/memoize-expression.d.ts +0 -17
  1506. package/dist/domain/expressions/prepare-domain-expressions.d.ts +0 -16
  1507. package/dist/domain/invariants/builtin-invariant.d.ts +0 -5
  1508. package/dist/domain/invariants/custom-invariants.d.ts +0 -22
  1509. package/dist/domain/invariants/custom-invariants.js +0 -1
  1510. package/dist/domain/invariants/invariants.d.ts +0 -68
  1511. package/dist/domain/invariants/invariants.js +0 -1
  1512. package/dist/domain/invariants/violation-component.js +0 -1
  1513. package/dist/domain/invariants/violation.d.ts +0 -85
  1514. package/dist/domain/invariants/violation.js +0 -1
  1515. package/dist/domain/relations/all-of-type-relation.d.ts +0 -33
  1516. package/dist/domain/relations/all-of-type-relation.js +0 -1
  1517. package/dist/domain/relations/component-factories.d.ts +0 -15
  1518. package/dist/domain/relations/component-factories.js +0 -1
  1519. package/dist/domain/relations/composed-of.d.ts +0 -12
  1520. package/dist/domain/relations/composed-of.js +0 -1
  1521. package/dist/domain/relations/direct-relation.d.ts +0 -29
  1522. package/dist/domain/relations/indirect-relation.d.ts +0 -81
  1523. package/dist/domain/relations/indirect-relation.js +0 -1
  1524. package/dist/domain/relations/reference-component.d.ts +0 -18
  1525. package/dist/domain/relations/reference-component.js +0 -1
  1526. package/dist/domain/relations/reference-field.d.ts +0 -7
  1527. package/dist/domain/relations/relation-factory.d.ts +0 -19
  1528. package/dist/domain/relations/relation-factory.js +0 -1
  1529. package/dist/domain/relations/relation-implementation.d.ts +0 -8
  1530. package/dist/domain/system-components/angle-indicator.d.ts +0 -21
  1531. package/dist/domain/system-components/angle-indicator.js +0 -1
  1532. package/dist/domain/system-components/attribute-switch.d.ts +0 -8
  1533. package/dist/domain/system-components/attribute-switch.js +0 -1
  1534. package/dist/domain/system-components/autorotate-camera-component.d.ts +0 -19
  1535. package/dist/domain/system-components/autorotate-camera-component.js +0 -1
  1536. package/dist/domain/system-components/basic-sidebar-footer.d.ts +0 -8
  1537. package/dist/domain/system-components/basic-sidebar-footer.js +0 -1
  1538. package/dist/domain/system-components/camera-based-hidden-entity-object.js +0 -1
  1539. package/dist/domain/system-components/camera-based-hidden-entity.js +0 -1
  1540. package/dist/domain/system-components/canvas-config.d.ts +0 -87
  1541. package/dist/domain/system-components/canvas-config.js +0 -1
  1542. package/dist/domain/system-components/canvas-custom-environment.js +0 -1
  1543. package/dist/domain/system-components/canvas-padding.d.ts +0 -25
  1544. package/dist/domain/system-components/canvas-padding.js +0 -1
  1545. package/dist/domain/system-components/canvas-preset-environment.d.ts +0 -37
  1546. package/dist/domain/system-components/canvas-preset-environment.js +0 -1
  1547. package/dist/domain/system-components/child-entity-recipe-hierarchy.d.ts +0 -21
  1548. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +0 -1
  1549. package/dist/domain/system-components/client-side-image.d.ts +0 -14
  1550. package/dist/domain/system-components/client-side-image.js +0 -1
  1551. package/dist/domain/system-components/color-value.js +0 -1
  1552. package/dist/domain/system-components/common/angle-indicator-schema.d.ts +0 -292
  1553. package/dist/domain/system-components/common/angle-indicator-schema.js +0 -1
  1554. package/dist/domain/system-components/common/dimension-indicator-schema.d.ts +0 -607
  1555. package/dist/domain/system-components/common/dimension-indicator-schema.js +0 -1
  1556. package/dist/domain/system-components/custom-header.d.ts +0 -11
  1557. package/dist/domain/system-components/custom-header.js +0 -1
  1558. package/dist/domain/system-components/custom-price-footer.js +0 -1
  1559. package/dist/domain/system-components/custom-sidebar-footer.d.ts +0 -11
  1560. package/dist/domain/system-components/custom-sidebar-footer.js +0 -1
  1561. package/dist/domain/system-components/dimension-indicator.d.ts +0 -31
  1562. package/dist/domain/system-components/dimension-indicator.js +0 -1
  1563. package/dist/domain/system-components/editable-angle-indicator.d.ts +0 -38
  1564. package/dist/domain/system-components/editable-angle-indicator.js +0 -1
  1565. package/dist/domain/system-components/editable-distance-dimension-indicator.d.ts +0 -42
  1566. package/dist/domain/system-components/editable-distance-dimension-indicator.js +0 -1
  1567. package/dist/domain/system-components/editable-offset-indicator.d.ts +0 -41
  1568. package/dist/domain/system-components/editable-offset-indicator.js +0 -1
  1569. package/dist/domain/system-components/editable-size-indicator.d.ts +0 -38
  1570. package/dist/domain/system-components/editable-size-indicator.js +0 -1
  1571. package/dist/domain/system-components/entity-header.d.ts +0 -22
  1572. package/dist/domain/system-components/entity-header.js +0 -1
  1573. package/dist/domain/system-components/exit-tool-mode-fab.d.ts +0 -25
  1574. package/dist/domain/system-components/exit-tool-mode-fab.js +0 -1
  1575. package/dist/domain/system-components/finalize-action.d.ts +0 -20
  1576. package/dist/domain/system-components/finalize-action.js +0 -1
  1577. package/dist/domain/system-components/finalize-component.js +0 -1
  1578. package/dist/domain/system-components/fit-selection-orthographic-camera-component.js +0 -1
  1579. package/dist/domain/system-components/fit-selection-perspective-camera-component.js +0 -1
  1580. package/dist/domain/system-components/fixed-header.d.ts +0 -10
  1581. package/dist/domain/system-components/fixed-header.js +0 -1
  1582. package/dist/domain/system-components/floating-header.d.ts +0 -10
  1583. package/dist/domain/system-components/floating-header.js +0 -1
  1584. package/dist/domain/system-components/hidden-header.d.ts +0 -8
  1585. package/dist/domain/system-components/hidden-header.js +0 -1
  1586. package/dist/domain/system-components/hidden-sidebar-footer.d.ts +0 -21
  1587. package/dist/domain/system-components/hidden-sidebar-footer.js +0 -1
  1588. package/dist/domain/system-components/horizontal-tabs.d.ts +0 -28
  1589. package/dist/domain/system-components/horizontal-tabs.js +0 -1
  1590. package/dist/domain/system-components/list-selector-dimension-indicator.d.ts +0 -30
  1591. package/dist/domain/system-components/list-selector-dimension-indicator.js +0 -1
  1592. package/dist/domain/system-components/multilingual-text-value.js +0 -1
  1593. package/dist/domain/system-components/navigation-steps.d.ts +0 -19
  1594. package/dist/domain/system-components/navigation-steps.js +0 -1
  1595. package/dist/domain/system-components/offset-anchors.d.ts +0 -20
  1596. package/dist/domain/system-components/offset-anchors.js +0 -1
  1597. package/dist/domain/system-components/offset-indicator.d.ts +0 -84
  1598. package/dist/domain/system-components/offset-indicator.js +0 -1
  1599. package/dist/domain/system-components/offset.d.ts +0 -31
  1600. package/dist/domain/system-components/offset.js +0 -1
  1601. package/dist/domain/system-components/other-action.d.ts +0 -14
  1602. package/dist/domain/system-components/other-action.js +0 -1
  1603. package/dist/domain/system-components/property-page.d.ts +0 -16
  1604. package/dist/domain/system-components/property-page.js +0 -1
  1605. package/dist/domain/system-components/read-sidebar-footer.d.ts +0 -8
  1606. package/dist/domain/system-components/read-sidebar-footer.js +0 -1
  1607. package/dist/domain/system-components/replace-entity-recipe-hierarchy.d.ts +0 -21
  1608. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +0 -1
  1609. package/dist/domain/system-components/rotatable.js +0 -1
  1610. package/dist/domain/system-components/rotation-handle.d.ts +0 -53
  1611. package/dist/domain/system-components/rotation-handle.js +0 -1
  1612. package/dist/domain/system-components/save-template-thumbnail.d.ts +0 -14
  1613. package/dist/domain/system-components/save-template-thumbnail.js +0 -1
  1614. package/dist/domain/system-components/scene-entity-add-fab.d.ts +0 -32
  1615. package/dist/domain/system-components/scene-entity-add-fab.js +0 -1
  1616. package/dist/domain/system-components/scene-entity-animation.js +0 -1
  1617. package/dist/domain/system-components/scene-entity-control.js +0 -1
  1618. package/dist/domain/system-components/scene-entity-delete-fab.d.ts +0 -19
  1619. package/dist/domain/system-components/scene-entity-delete-fab.js +0 -1
  1620. package/dist/domain/system-components/scene-entity-floor-object.js +0 -1
  1621. package/dist/domain/system-components/scene-entity-html-hotspot.d.ts +0 -27
  1622. package/dist/domain/system-components/scene-entity-html-hotspot.js +0 -1
  1623. package/dist/domain/system-components/scene-entity-navigation-hotspot.d.ts +0 -20
  1624. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +0 -1
  1625. package/dist/domain/system-components/scene-entity-object-html-hotspot.d.ts +0 -31
  1626. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +0 -1
  1627. package/dist/domain/system-components/scene-entity-select-hotspot.d.ts +0 -5
  1628. package/dist/domain/system-components/scene-entity-select-hotspot.js +0 -1
  1629. package/dist/domain/system-components/scene-entity-wall-object.js +0 -1
  1630. package/dist/domain/system-components/selectable-component.js +0 -1
  1631. package/dist/domain/system-components/sidebar-tabs.d.ts +0 -29
  1632. package/dist/domain/system-components/sidebar-tabs.js +0 -1
  1633. package/dist/domain/system-components/simple-summary.js +0 -1
  1634. package/dist/domain/system-components/size.d.ts +0 -21
  1635. package/dist/domain/system-components/size.js +0 -1
  1636. package/dist/domain/system-components/sketching-draw.d.ts +0 -17
  1637. package/dist/domain/system-components/sketching-draw.js +0 -1
  1638. package/dist/domain/system-components/sketching-edit.d.ts +0 -28
  1639. package/dist/domain/system-components/sketching-edit.js +0 -1
  1640. package/dist/domain/system-components/summary-component.js +0 -1
  1641. package/dist/domain/system-components/text-value.js +0 -1
  1642. package/dist/domain/system-components/tool-controls.js +0 -1
  1643. package/dist/domain/system-components/tool-menu-fab.d.ts +0 -40
  1644. package/dist/domain/system-components/tool-menu-fab.js +0 -1
  1645. package/dist/domain/system-components/toolbar.d.ts +0 -13
  1646. package/dist/domain/system-components/toolbar.js +0 -1
  1647. package/dist/domain/system-components/universal-sidebar-footer.d.ts +0 -12
  1648. package/dist/domain/system-components/universal-sidebar-footer.js +0 -1
  1649. package/dist/domain/system-components/view-controls.js +0 -1
  1650. package/dist/phoenix/application-spec/generate-assistant-prompt.d.ts +0 -12
  1651. package/dist/phoenix/application-spec/generate-assistant-prompt.js +0 -1
  1652. package/dist/phoenix/commands/generate-project-files.d.ts +0 -6
  1653. package/dist/phoenix/commands/generate-project-files.js +0 -1
  1654. /package/dist/{domain/components/component-reader-types.js → application-spec/core/expressions/relation-expression-params.js} +0 -0
  1655. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  1656. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  1657. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
  1658. /package/dist/{domain/core/action.js → application-spec/generate-application/runtime/spec-code/spec-code-module.js} +0 -0
  1659. /package/dist/{domain/core/enhanced-json-schema.js → application-spec/parse-application-files/spec/expressions/expression-read.js} +0 -0
  1660. /package/dist/{domain/core/schema-validator.js → configurator/ui/assistant/form/form-element-definition.js} +0 -0
  1661. /package/dist/{domain/relations/reference-field.js → configurator/ui/assistant/form/form-model.js} +0 -0
  1662. /package/dist/{domain/relations/relation-implementation.js → configurator/ui/assistant/form/form-state.js} +0 -0
  1663. /package/dist/{domain/core/expression.js → configurator/ui/assistant/form-elements/form-element-props.js} +0 -0
  1664. /package/dist/domain/{actions → core/action}/action-factory.js +0 -0
  1665. /package/dist/domain/{components → core/component}/legacy-filter.js +0 -0
  1666. /package/dist/domain/{components → core/component}/system-component-filter.js +0 -0
  1667. /package/dist/domain/{components → core/component}/system-virtual-entity.d.ts +0 -0
  1668. /package/dist/domain/{components → core/component}/updates.js +0 -0
  1669. /package/dist/domain/{invariants → core/invariant}/builtin-invariant.js +0 -0
  1670. /package/dist/domain/{invariants → core/invariant}/violation-component.d.ts +0 -0
  1671. /package/dist/domain/core/{alias.d.ts → model/alias.d.ts} +0 -0
  1672. /package/dist/domain/core/{alias.js → model/alias.js} +0 -0
  1673. /package/dist/domain/core/{common-definitions.d.ts → model/common-definitions.d.ts} +0 -0
  1674. /package/dist/domain/core/{common-definitions.js → model/common-definitions.js} +0 -0
  1675. /package/dist/domain/core/{component.js → model/component.js} +0 -0
  1676. /package/dist/domain/core/{model.js → model/model.js} +0 -0
  1677. /package/dist/domain/core/{preset.d.ts → model/preset.d.ts} +0 -0
  1678. /package/dist/domain/core/{preset.js → model/preset.js} +0 -0
  1679. /package/dist/domain/{relations → core/relation}/direct-relation.js +0 -0
  1680. /package/dist/domain/core/{schema-validator-ajv.d.ts → schema/create-ajv-schema-validator.d.ts} +0 -0
  1681. /package/dist/domain/core/{schema-validator-ajv.js → schema/create-ajv-schema-validator.js} +0 -0
  1682. /package/dist/domain/core/{schema-validator-csp.d.ts → schema/create-csp-schema-validator.d.ts} +0 -0
  1683. /package/dist/domain/core/{schema-validator-csp.js → schema/create-csp-schema-validator.js} +0 -0
  1684. /package/dist/domain/core/{enhanced-json-schema.d.ts → schema/enhanced-json-schema.d.ts} +0 -0
  1685. /package/dist/domain/core/{json-schema.d.ts → schema/extended-schema-validator.d.ts} +0 -0
  1686. /package/dist/domain/core/{schema-validator.d.ts → schema/schema-validator.d.ts} +0 -0
  1687. /package/dist/domain/core/{state.js → state/state.js} +0 -0
  1688. /package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.js +0 -0
  1689. /package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.js +0 -0
  1690. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.d.ts +0 -0
  1691. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.d.ts +0 -0
  1692. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.d.ts +0 -0
  1693. /package/dist/domain/{system-components → extensions}/color-value.d.ts +0 -0
  1694. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.d.ts +0 -0
  1695. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.js +0 -0
  1696. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.d.ts +0 -0
  1697. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.js +0 -0
  1698. /package/dist/domain/{system-components → extensions}/custom-price-footer.d.ts +0 -0
  1699. /package/dist/domain/{system-components → extensions}/finalize-component.d.ts +0 -0
  1700. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.d.ts +0 -0
  1701. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.d.ts +0 -0
  1702. /package/dist/domain/{system-components → extensions}/multilingual-text-value.d.ts +0 -0
  1703. /package/dist/domain/{system-components → extensions}/rotatable.d.ts +0 -0
  1704. /package/dist/domain/{system-components → extensions}/scene-entity-animation.d.ts +0 -0
  1705. /package/dist/domain/{system-components → extensions}/scene-entity-control.d.ts +0 -0
  1706. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.d.ts +0 -0
  1707. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.d.ts +0 -0
  1708. /package/dist/domain/{system-components → extensions}/selectable-component.d.ts +0 -0
  1709. /package/dist/domain/{system-components → extensions}/simple-summary.d.ts +0 -0
  1710. /package/dist/domain/{system-components → extensions}/summary-component.d.ts +0 -0
  1711. /package/dist/domain/{system-components → extensions}/text-value.d.ts +0 -0
  1712. /package/dist/domain/{system-components → extensions}/tool-controls.d.ts +0 -0
  1713. /package/dist/domain/{system-components → extensions}/view-controls.d.ts +0 -0
@@ -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,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};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 {
@@ -1 +1 @@
1
- import{Euler as t,Quaternion as e,Vector3 as a}from"three";import{isDomainEntityId as n}from"../../core/index.js";import{defaultDistanceToUnit as o,distanceUnitToDefault as r}from"../../dimensions/dimensions.js";import{extractYRotationFromMatrix as i,findBestAxisSnap as l,findBestEdgeSnap as p,findBestPlaneSnap as s,findBestPointSnap as d,snapScore as g}from"../../projections/snap-matching.js";import{computeWorldMatrix as c,computeWorldSnapEdges as u,computeWorldSnapPoints as y}from"../../projections/snap-utils.js";import{DraggableUpdateTag as m,TransientDraggableUpdateTag as h,dragHandleComponent as f,hotspotDragHandleComponent as S,pivotPointComponent as x,sceneEntityPropertiesComponent as w,snapAxisComponent as Y,snapEdgeComponent as M,snapPlaneComponent as b,snapPointComponent as v}from"../../system-components/index.js";export const AutoSnapUpdateTag="AutoSnap.applied";let T=[m,h],R=t=>"modifyComponent"===t.kind&&(t.componentInstance.componentType===f||t.componentInstance.componentType===S)&&T.includes(t.updateTag);export const isAutoSnapUpdate=t=>"modifyComponent"===t.kind&&t.updateTag===AutoSnapUpdateTag;export const createAutoSnapTransformer=(m,h,f,S,T)=>(P,$,z,A)=>{let E=P.filter(R);if(0===E.length)return A?.("no-event","No drag component modifications found, skipping auto-snap"),P;if(E.length>1)throw Error(`Auto-snap transformer received ${E.length} drag updates in a single batch. Only one drag update per batch is supported. Entity IDs: ${E.map(t=>String(t.componentInstance.entityId)).join(", ")}`);let C=f.getDataDistanceUnit($),X=T.getNewState(P,$),Z=!1,j=[];for(let f of P){if(!R(f)){j.push(f);continue}let T=f.componentInstance.entityId;if(!n(T)){j.push(f);continue}let P=function(n,o,m,h,f,S,T,R,P){let $,z=[n],A=S.readManyComponents({componentTypes:[v],entityIds:z},h),E=S.readManyComponents({componentTypes:[M],entityIds:z},h),C=S.readManyComponents({componentTypes:[b],entityIds:z},h),X=S.readManyComponents({componentTypes:[Y],entityIds:z},h);if(!(A.length>0||E.length>0||C.length>0||X.length>0))return null;if(A.every(t=>!1===t.state.autoSnap)&&E.every(t=>!1===t.state.autoSnap)&&C.every(t=>!1===t.state.autoSnap)&&X.every(t=>!1===t.state.autoSnap))return P?.("no-match",`All snap components on entity ${String(n)} have autoSnap disabled`),null;let Z=S.readFirstComponent({componentTypes:[w],entityIds:z},h),j=o.writableState,F=j.draggableX??0,W=j.draggableY??0,I=j.draggableZ??0,U=new a(r(Z?.state.offsetX??F,f),r(Z?.state.offsetY??W,f),r(Z?.state.offsetZ??I,f)),D=new t(Z?.state.rotationX??0,Z?.state.rotationY??0,Z?.state.rotationZ??0,"XYZ"),N=new a(Z?.state.scaleX??1,Z?.state.scaleY??1,Z?.state.scaleZ??1),O=c(U,D,N),k=R.getEntityParentWorldMatrix(n,h,null),q=k.clone().multiply(O),Q=new a;q.decompose(Q,new e,new a);let B=i(q),G=i(k),H=new e;k.decompose(new a,H,new a);let J=H.clone().invert(),K=new t(D.x,B,D.z,"XYZ"),L=[],V=A.filter(t=>!1!==t.state.autoSnap),_={entityWorldOrigin:Q,currentRotationY:B};if(V.length>0){let t=d($=V.flatMap(t=>y(n,t,t.state,q,f,(t=>{if(void 0===t)return;let e=S.readFirstComponent({componentTypes:[x],instanceNames:[t],entityIds:z},h);if(e)return new a(r(e.state.x,f),r(e.state.y,f),r(e.state.z,f))})(t.state.targetPivotPoint))),T.getWorldSnapPoints(m,z),_);t&&L.push({delta:t.delta,snapMatch:{...t,type:"point"},distance:t.distance,priority:t.targetPoint.priority,targetRotationY:t.targetRotationY,group:t.targetPoint.group})}let tt=E.filter(t=>!1!==t.state.autoSnap);if(tt.length>0){let t,e=p(tt.flatMap(t=>u(n,t,t.state,q,f)),T.getWorldSnapEdges(m,z));e&&L.push({delta:(t=e.sourceEdge.worldStart.clone().add(e.sourceEdge.worldEnd).multiplyScalar(.5),e.alignedWorldMidpoint.clone().sub(t)),snapMatch:{...e,type:"edge"},distance:e.distance,priority:e.targetEdge.priority,targetRotationY:void 0,group:e.targetEdge.group})}if($&&$.length>0){let t=T.getWorldSnapPlanes(m,z);if(t.length>0){let e=s($,t,_);e&&L.push({delta:e.delta,snapMatch:{...e,type:"plane"},distance:e.distance,priority:e.targetPlane.priority,targetRotationY:e.targetRotationY,group:e.targetPlane.group})}let e=T.getWorldSnapAxes(m,z);if(e.length>0){let t=l($,e);t&&L.push({delta:t.delta,snapMatch:{...t,type:"axis"},distance:t.distance,priority:t.targetAxis.priority,targetRotationY:t.targetRotationY,group:t.targetAxis.group})}}L.sort((t,e)=>g(e.priority,e.distance)-g(t.priority,t.distance));let te=L[0];if(!te)return null;if(void 0!==te.targetRotationY){var ta;let t=("edge"===(ta=te.snapMatch).type?ta.sourceEdge.worldStart.clone().add(ta.sourceEdge.worldEnd).multiplyScalar(.5):ta.sourcePoint.worldPosition).clone().sub(Q),e=te.targetRotationY-B,a=Math.cos(e),n=Math.sin(e),o=a*t.x+n*t.z,r=-n*t.x+a*t.z;te.delta.x+=t.x-o,te.delta.z+=t.z-r}let tn=composeOrthogonalSnap({primary:te,activePointSnapshots:V,targetPoints:T.getWorldSnapPoints(m,z),entityId:n,proposedWorldPosition:Q,proposedWorldEuler:K,scale:N,dataDistanceUnit:f});tn&&(P?.("apply",`Composing secondary snap with primary (${te.snapMatch.type}, group=${te.group??"any"}), orthogonal delta: (${tn.x.toFixed(1)}, ${tn.y.toFixed(1)}, ${tn.z.toFixed(1)})`),te.delta.add(tn));let to=te.delta.clone().applyQuaternion(J),tr=void 0!==te.targetRotationY?te.targetRotationY-G:void 0;return{delta:to,snapMatch:te.snapMatch,targetRotationY:tr}}(T,f,$,X,C,m,h,S,A);if(!P){j.push(f);continue}Z=!0;let{delta:z,snapMatch:E,targetRotationY:F}=P,W=new a(o(z.x,C),o(z.y,C),o(z.z,C)),I=f.writableState,U=void 0!==I.draggableX,D=void 0!==I.draggableY,N=void 0!==I.draggableZ,O=I.draggableX??0,k=I.draggableY??0,q=I.draggableZ??0;A?.("apply",`Auto-snap (${E.type}) on entity ${String(T)}, delta: (${z.x.toFixed(1)}, ${z.y.toFixed(1)}, ${z.z.toFixed(1)}), targetRotationY: ${F}`);let Q=Math.round((O+W.x)*1e3)/1e3,B=Math.round((k+W.y)*1e3)/1e3,G=Math.round((q+W.z)*1e3)/1e3;j.push({...f,writableState:{...f.writableState,...U&&{draggableX:Q},...D&&{draggableY:B},...N&&{draggableZ:G},...void 0!==F&&{draggableRotationY:F}},updateTag:AutoSnapUpdateTag,metadata:{...f.metadata,snapType:E.type,snapMatch:E,originalUpdateTag:f.updateTag}})}return Z?j:P};export function composeOrthogonalSnap(e){let{primary:a,activePointSnapshots:n,targetPoints:o,entityId:r,proposedWorldPosition:i,proposedWorldEuler:l,scale:p,dataDistanceUnit:s}=e,g=getConstrainedDirection(a);if(!g||0===n.length)return null;let u=a.targetRotationY??l.y,m=new t(l.x,u,l.z,"XYZ"),h=c(i.clone().add(a.delta),m,p),f=d(n.flatMap(t=>y(r,t,t.state,h,s)),o);return f?composeSecondarySnap(a,f,g):null}export function composeSecondarySnap(t,e,a){let n=e.delta;if(1e-10>=n.lengthSq())return null;let o=n.dot(a),r=n.clone().sub(a.clone().multiplyScalar(o));if(1e-6>=r.lengthSq())return null;let i=e.targetPoint.group;return void 0!==i&&i===t.group?null:r}export function getConstrainedDirection(t){return"plane"===t.snapMatch.type?t.snapMatch.targetPlane.worldNormal.clone().normalize():"axis"===t.snapMatch.type?null:t.delta.lengthSq()>1e-10?t.delta.clone().normalize():null}
1
+ import{Euler as t,Quaternion as e,Vector3 as a}from"three";import{isDomainEntityId as n}from"../../core/index.js";import{defaultDistanceToUnit as o,distanceUnitToDefault as r}from"../../dimensions/index.js";import{computeWorldMatrix as i,computeWorldSnapEdges as l,computeWorldSnapPoints as p,extractYRotationFromMatrix as d,findBestAxisSnap as s,findBestEdgeSnap as g,findBestPlaneSnap as c,findBestPointSnap as u,snapScore as y}from"../../projections/index.js";import{DraggableUpdateTag as m,TransientDraggableUpdateTag as h,dragHandleComponent as f,hotspotDragHandleComponent as S,pivotPointComponent as x,sceneEntityPropertiesComponent as w,snapAxisComponent as Y,snapEdgeComponent as M,snapPlaneComponent as b,snapPointComponent as v}from"../../system-components/index.js";export const AutoSnapUpdateTag="AutoSnap.applied";let T=[m,h],R=t=>"modifyComponent"===t.kind&&(t.componentInstance.componentType===f||t.componentInstance.componentType===S)&&T.includes(t.updateTag);export const isAutoSnapUpdate=t=>"modifyComponent"===t.kind&&t.updateTag===AutoSnapUpdateTag;export const createAutoSnapTransformer=(m,h,f,S,T)=>(P,$,z,A)=>{let E=P.filter(R);if(0===E.length)return A?.("no-event","No drag component modifications found, skipping auto-snap"),P;if(E.length>1)throw Error(`Auto-snap transformer received ${E.length} drag updates in a single batch. Only one drag update per batch is supported. Entity IDs: ${E.map(t=>String(t.componentInstance.entityId)).join(", ")}`);let C=f.getDataDistanceUnit($),X=T.getNewState(P,$),Z=!1,F=[];for(let f of P){if(!R(f)){F.push(f);continue}let T=f.componentInstance.entityId;if(!n(T)){F.push(f);continue}let P=function(n,o,m,h,f,S,T,R,P){let $,z=[n],A=S.readManyComponents({componentTypes:[v],entityIds:z},h),E=S.readManyComponents({componentTypes:[M],entityIds:z},h),C=S.readManyComponents({componentTypes:[b],entityIds:z},h),X=S.readManyComponents({componentTypes:[Y],entityIds:z},h);if(!(A.length>0||E.length>0||C.length>0||X.length>0))return null;if(A.every(t=>!1===t.state.autoSnap)&&E.every(t=>!1===t.state.autoSnap)&&C.every(t=>!1===t.state.autoSnap)&&X.every(t=>!1===t.state.autoSnap))return P?.("no-match",`All snap components on entity ${String(n)} have autoSnap disabled`),null;let Z=S.readFirstComponent({componentTypes:[w],entityIds:z},h),F=o.writableState,W=F.draggableX??0,I=F.draggableY??0,j=F.draggableZ??0,U=new a(r(Z?.state.offsetX??W,f),r(Z?.state.offsetY??I,f),r(Z?.state.offsetZ??j,f)),D=new t(Z?.state.rotationX??0,Z?.state.rotationY??0,Z?.state.rotationZ??0,"XYZ"),N=new a(Z?.state.scaleX??1,Z?.state.scaleY??1,Z?.state.scaleZ??1),O=i(U,D,N),k=R.getEntityParentWorldMatrix(n,h,null),q=k.clone().multiply(O),Q=new a;q.decompose(Q,new e,new a);let B=d(q),G=d(k),H=new e;k.decompose(new a,H,new a);let J=H.clone().invert(),K=new t(D.x,B,D.z,"XYZ"),L=[],V=A.filter(t=>!1!==t.state.autoSnap),_={entityWorldOrigin:Q,currentRotationY:B};if(V.length>0){let t=u($=V.flatMap(t=>p(n,t,t.state,q,f,(t=>{if(void 0===t)return;let e=S.readFirstComponent({componentTypes:[x],instanceNames:[t],entityIds:z},h);if(e)return new a(r(e.state.x,f),r(e.state.y,f),r(e.state.z,f))})(t.state.targetPivotPoint))),T.getWorldSnapPoints(m,z),_);t&&L.push({delta:t.delta,snapMatch:{...t,type:"point"},distance:t.distance,priority:t.targetPoint.priority,targetRotationY:t.targetRotationY,group:t.targetPoint.group})}let tt=E.filter(t=>!1!==t.state.autoSnap);if(tt.length>0){let t,e=g(tt.flatMap(t=>l(n,t,t.state,q,f)),T.getWorldSnapEdges(m,z));e&&L.push({delta:(t=e.sourceEdge.worldStart.clone().add(e.sourceEdge.worldEnd).multiplyScalar(.5),e.alignedWorldMidpoint.clone().sub(t)),snapMatch:{...e,type:"edge"},distance:e.distance,priority:e.targetEdge.priority,targetRotationY:void 0,group:e.targetEdge.group})}if($&&$.length>0){let t=T.getWorldSnapPlanes(m,z);if(t.length>0){let e=c($,t,_);e&&L.push({delta:e.delta,snapMatch:{...e,type:"plane"},distance:e.distance,priority:e.targetPlane.priority,targetRotationY:e.targetRotationY,group:e.targetPlane.group})}let e=T.getWorldSnapAxes(m,z);if(e.length>0){let t=s($,e);t&&L.push({delta:t.delta,snapMatch:{...t,type:"axis"},distance:t.distance,priority:t.targetAxis.priority,targetRotationY:t.targetRotationY,group:t.targetAxis.group})}}L.sort((t,e)=>y(e.priority,e.distance)-y(t.priority,t.distance));let te=L[0];if(!te)return null;if(void 0!==te.targetRotationY){var ta;let t=("edge"===(ta=te.snapMatch).type?ta.sourceEdge.worldStart.clone().add(ta.sourceEdge.worldEnd).multiplyScalar(.5):ta.sourcePoint.worldPosition).clone().sub(Q),e=te.targetRotationY-B,a=Math.cos(e),n=Math.sin(e),o=a*t.x+n*t.z,r=-n*t.x+a*t.z;te.delta.x+=t.x-o,te.delta.z+=t.z-r}let tn=composeOrthogonalSnap({primary:te,activePointSnapshots:V,targetPoints:T.getWorldSnapPoints(m,z),entityId:n,proposedWorldPosition:Q,proposedWorldEuler:K,scale:N,dataDistanceUnit:f});tn&&(P?.("apply",`Composing secondary snap with primary (${te.snapMatch.type}, group=${te.group??"any"}), orthogonal delta: (${tn.x.toFixed(1)}, ${tn.y.toFixed(1)}, ${tn.z.toFixed(1)})`),te.delta.add(tn));let to=te.delta.clone().applyQuaternion(J),tr=void 0!==te.targetRotationY?te.targetRotationY-G:void 0;return{delta:to,snapMatch:te.snapMatch,targetRotationY:tr}}(T,f,$,X,C,m,h,S,A);if(!P){F.push(f);continue}Z=!0;let{delta:z,snapMatch:E,targetRotationY:W}=P,I=new a(o(z.x,C),o(z.y,C),o(z.z,C)),j=f.writableState,U=void 0!==j.draggableX,D=void 0!==j.draggableY,N=void 0!==j.draggableZ,O=j.draggableX??0,k=j.draggableY??0,q=j.draggableZ??0;A?.("apply",`Auto-snap (${E.type}) on entity ${String(T)}, delta: (${z.x.toFixed(1)}, ${z.y.toFixed(1)}, ${z.z.toFixed(1)}), targetRotationY: ${W}`);let Q=Math.round((O+I.x)*1e3)/1e3,B=Math.round((k+I.y)*1e3)/1e3,G=Math.round((q+I.z)*1e3)/1e3;F.push({...f,writableState:{...f.writableState,...U&&{draggableX:Q},...D&&{draggableY:B},...N&&{draggableZ:G},...void 0!==W&&{draggableRotationY:W}},updateTag:AutoSnapUpdateTag,metadata:{...f.metadata,snapType:E.type,snapMatch:E,originalUpdateTag:f.updateTag}})}return Z?F:P};export function composeOrthogonalSnap(e){let{primary:a,activePointSnapshots:n,targetPoints:o,entityId:r,proposedWorldPosition:l,proposedWorldEuler:d,scale:s,dataDistanceUnit:g}=e,c=getConstrainedDirection(a);if(!c||0===n.length)return null;let y=a.targetRotationY??d.y,m=new t(d.x,y,d.z,"XYZ"),h=i(l.clone().add(a.delta),m,s),f=u(n.flatMap(t=>p(r,t,t.state,h,g)),o);return f?composeSecondarySnap(a,f,c):null}export function composeSecondarySnap(t,e,a){let n=e.delta;if(1e-10>=n.lengthSq())return null;let o=n.dot(a),r=n.clone().sub(a.clone().multiplyScalar(o));if(1e-6>=r.lengthSq())return null;let i=e.targetPoint.group;return void 0!==i&&i===t.group?null:r}export function getConstrainedDirection(t){return"plane"===t.snapMatch.type?t.snapMatch.targetPlane.worldNormal.clone().normalize():"axis"===t.snapMatch.type?null:t.delta.lengthSq()>1e-10?t.delta.clone().normalize():null}
@@ -1,10 +1,10 @@
1
- import type { $DomainEntity, DomainEntity } from '../../core/model.js';
1
+ import type { $DomainEntity, DomainEntity } from '../../core/index.js';
2
2
  import type { DomainContextSystems } from '../domain-context-systems.js';
3
- import type { TransformerRegistration, UpdateTransformer } from '../store-system/store-system.js';
3
+ import type { TransformerRegistration, UpdateTransformer } from '../store-system/index.js';
4
4
  export type RegisterFunction<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> = (domainContext: DomainContextSystems<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES>, priority?: number) => TransformerRegistration<ENTITIES>;
5
5
  export type RegistrableTransformer<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> = {
6
6
  /**
7
- * Creates a registration object consumed in `createTransformers` callback of the app config.
7
+ * Creates a registration object consumed by the runtime spec's `createTransformers` factory.
8
8
  */
9
9
  register: RegisterFunction<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES>;
10
10
  };
@@ -1,11 +1,6 @@
1
- import type { DomainEntityModification, DomainEntityStateDelta, StateUpdate } from '../../components/updates.js';
2
- import type { $DomainEntity, DomainEntity, DomainEntityId } from '../../core/model.js';
3
- import type { DomainState } from '../../core/state.js';
4
- import type { ViolationTypesOf$Entity } from '../../invariants/violation.js';
5
- import type { StateValidationResult } from '../../projections/validation-projections.js';
1
+ import type { $DomainEntity, DomainEntity, DomainEntityId, DomainEntityModification, DomainEntityStateDelta, DomainState, IdSequence, StateUpdate, StateValidationResult, ViolationTypesOf$Entity } from '../../core/index.js';
6
2
  import type { DomainContextSystems } from '../domain-context-systems.js';
7
- import type { IdSequence } from '../store-system/next-domain-entity-id.js';
8
- import type { StateEmissionKind, TransformerLogFunction } from '../store-system/store-system.js';
3
+ import type { StateEmissionKind, TransformerLogFunction } from '../store-system/index.js';
9
4
  export type BaseTransformerBuilderContext<ENTITIES extends DomainEntity<string>, $MAP extends Record<string, $DomainEntity<ENTITIES>>, ALLOWED_ROOT_ENTITIES extends ENTITIES, NAVIGATION_STATES extends string, VIEW_STATES extends string, TOOL_STATES extends string, EXPORT_STATES extends string> = {
10
5
  /**
11
6
  * The domain context instance. Provides low-level access to the domain, navigation system,
@@ -1 +1 @@
1
- import{memoOnce as t}from"@salsita-ai/common/utils";import{getIdSequence as e}from"../store-system/next-domain-entity-id.js";export const isContextWithUpdate=t=>"update"in t&&"object"==typeof t.update&&null!==t.update;export const isContextWithEntityId=t=>"entityId"in t;export const createBaseContext=(i,a,o,n,s)=>{let g=t(()=>i.storeSystem.prepareStateEmissionWithoutTransformation(n,a,o));return{domainContext:i,stateEmissionKind:o,updates:n,getOldState:()=>a,getNewState:()=>g().state,getOld$Root:()=>i.domain.getRoot$Entity(a),getNew$Root:()=>i.domain.getRoot$Entity(g().state),getNewValidity:()=>g().validity,getOldNavigationState:()=>i.navigationSystem.getActiveNavigationState(a),getNewNavigationState:()=>i.navigationSystem.getActiveNavigationState(g().state),getOldViewState:()=>i.navigationSystem.getActiveViewState(a),getNewViewState:()=>i.navigationSystem.getActiveViewState(g().state),getIdSequence:()=>e(a.entities,n),log:s}};
1
+ import{memoOnce as t}from"@salsita-ai/common/utils";import{getIdSequence as e}from"../store-system/index.js";export const isContextWithUpdate=t=>"update"in t&&"object"==typeof t.update&&null!==t.update;export const isContextWithEntityId=t=>"entityId"in t;export const createBaseContext=(i,a,o,n,s)=>{let g=t(()=>i.storeSystem.prepareStateEmissionWithoutTransformation(n,a,o));return{domainContext:i,stateEmissionKind:o,updates:n,getOldState:()=>a,getNewState:()=>g().state,getOld$Root:()=>i.domain.getRoot$Entity(a),getNew$Root:()=>i.domain.getRoot$Entity(g().state),getNewValidity:()=>g().validity,getOldNavigationState:()=>i.navigationSystem.getActiveNavigationState(a),getNewNavigationState:()=>i.navigationSystem.getActiveNavigationState(g().state),getOldViewState:()=>i.navigationSystem.getActiveViewState(a),getNewViewState:()=>i.navigationSystem.getActiveViewState(g().state),getIdSequence:()=>e(a.entities,n),log:s}};
@@ -1,8 +1,4 @@
1
- import type { exportStateComponent } from '../../components/export-state-component.js';
2
- import type { selectionStateComponent } from '../../components/selection-state-component.js';
3
- import type { DomainEntityCreation, DomainEntityModification, DomainEntityReplacement, EntityDeletion, EphemeralRecordModification } from '../../components/updates.js';
4
- import { type $DomainEntity, type DomainEntity, type DomainEntityId, type EntityByType } from '../../core/model.js';
5
- import type { ViolationTypesOf$Entity } from '../../invariants/violation.js';
1
+ import { type $DomainEntity, type DomainEntity, type DomainEntityCreation, type DomainEntityId, type DomainEntityModification, type DomainEntityReplacement, type EntityByType, type EntityDeletion, type EphemeralRecordModification, type ViolationTypesOf$Entity, type exportStateComponent, type selectionStateComponent } from '../../core/index.js';
6
2
  import type { AllActions } from './actions-builder.js';
7
3
  import type { BaseTransformerBuilderContext, ContextFactoryFilter, DomainEntityModificationUpdateAtField } from './context.js';
8
4
  import type { ThenAndEntityAwareCausesBuilder, ThenBuilder } from './then-builder.js';
@@ -1 +1 @@
1
- import{domainEntityTypeFromId as t,isDomainEntityId as e}from"../../core/model.js";import{isDeselectUpdate as n,isExportUpdate as i,isSelectUpdate as r}from"../navigation-system/navigation-updates.js";import{updateActions as o}from"./actions-builder.js";import{createBaseContext as a}from"./context.js";import{thenAndEntityAwareCausesBuilder as l,thenBuilder as s}from"./then-builder.js";export const entityBuilder=(d,f)=>{let p=(n,i,r,o)=>{let a=r.filter(t=>"replaceDomainEntity"===t.kind);if(0===a.length)return o?.("no-event","No replacement updates found, skipping transformer",{updates:r}),[];let l=a.filter(r=>e(r.entityId)&&(void 0===n||n.includes(t(r.entityId)))&&(void 0===i||i.includes(r.replacementEntity.type)));return 0===l.length?(o?.("no-match",`No replacement from ${n?.join(", ")??"any"} to ${i?.join(", ")??"any"} found, skipping transformer`,{updates:r}),[]):l};return{modified:e=>l(d,o(!0),f()((n,i,r,o,l)=>{let s=n.filter(t=>"modifyDomainEntity"===t.kind);if(0===s.length)return l?.("no-event","No modification updates found, skipping transformer",{updates:n}),[];let f=s.filter(e=>d.includes(t(e.entityId)));if(0===f.length)return l?.("no-match",`No modification updates for entity ${d.join(", ")}, skipping transformer`,{updates:n}),[];let p=f;if(e?.atFields!==void 0){if(0===(p=f.filter(t=>e.atFields.every(e=>Object.hasOwn(t.stateDelta,e)))).length)return l?.("no-match",`Entity ${d.join(", ")} modified, but not at field ${e.atFields.join(", ")}, skipping transformer`,{updates:n}),[];l?.("match",`Entity ${d.join(", ")} modified at field ${e.atFields.join(", ")}, processing transformer`,{updates:n})}else l?.("match",`Entity ${d.join(", ")} modified, processing transformer`,{updates:n});let c=a(o,i,r,n,l);return p.map(t=>{let e=t.entityId;return{...c,getOld$Entity:()=>o.domain.get$Entity(e,i),getNew$Entity:()=>o.domain.get$Entity(e,c.getNewState()),entityId:e,update:t}})})),created:()=>l(d,o(!0),f()((t,e,n,i,r)=>{let o=t.filter(t=>"createDomainEntity"===t.kind);if(0===o.length)return r?.("no-event","No entity creation updates found, skipping transformer",{updates:t}),[];let l=o.filter(t=>d.includes(t.entity.type));if(0===l.length)return r?.("no-match",`No creation updates for entity ${d.join(", ")}, skipping transformer`,{updates:t}),[];r?.("match",`Entity ${d.join(", ")} created, processing transformer`,{updates:t});let s=a(i,e,n,t,r);return l.map(t=>{let e=t.entityId;return{...s,getNew$Entity:()=>i.domain.get$Entity(e,s.getNewState()),entityId:e,update:t}})})),deleted:()=>l(d,o(!0),f()((n,i,r,o,l)=>{let s=n.filter(t=>"deleteEntity"===t.kind);if(0===s.length)return l?.("no-event","No entity deletion updates found, skipping transformer",{updates:n}),[];let f=s.filter(n=>e(n.entityId)&&d.includes(t(n.entityId)));if(0===f.length)return l?.("no-match",`No deletion updates for entity ${d.join(", ")}, skipping transformer`,{updates:n}),[];l?.("match",`Entity ${d.join(", ")} deleted, processing transformer`,{updates:n});let p=a(o,i,r,n,l);return f.map(t=>{let e=t.entityId;return{...p,getOld$Entity:()=>o.domain.get$Entity(e,i),entityId:e,update:t}})})),replaces:t=>l(d,o(!0),f()((e,n,i,r,o)=>{let l=p(t,d,e,o);if(0===l.length)return[];o?.("match",`Entity ${d.join(", ")} replaces ${t.join(", ")??"any"}, processing transformer`,{updates:e});let s=a(r,n,i,e,o);return l.map(t=>{let e=t.entityId,i=t.replacementEntity.id;return{...s,getReplacing$Entity:()=>r.domain.get$Entity(i,s.getNewState()),getReplaced$Entity:()=>r.domain.get$Entity(e,n),entityId:i,update:t}})})),replacedWith:t=>l(d,o(!0),f()((e,n,i,r,o)=>{let l=p(d,t,e,o);if(0===l.length)return[];o?.("match",`Entity ${d.join(", ")} replaced with ${t.join(", ")??"any"}, processing transformer`,{updates:e});let s=a(r,n,i,e,o);return l.map(t=>{let e=t.entityId,i=t.replacementEntity.id;return{...s,getReplacing$Entity:()=>r.domain.get$Entity(i,s.getNewState()),getReplaced$Entity:()=>r.domain.get$Entity(e,n),entityId:e,update:t}})})),selected:n=>l(d,o(!0),f()((i,o,l,s,f)=>{let p=i.filter(r);if(0===p.length)return f?.("no-event","No selection updates found, skipping transformer",{updates:i}),[];let c=p.filter(n=>e(n.writableState.selectedEntityId)&&d.includes(t(n.writableState.selectedEntityId)));if(0===c.length)return f?.("no-match",`No selection updates for entity ${d.join(", ")}, skipping transformer`,{updates:i}),[];let m=s.navigationSystem.getActiveSelectionState(o),y=t(m);if(n?.insteadOf!==void 0&&!n?.insteadOf?.includes(y))return f?.("no-match",`Entity ${d.join(", ")} selected, but not instead of ${d.join(", ")}, skipping transformer`,{updates:i}),[];let g=n?.occurrence??"initial",u="any"===g?c:c.filter(t=>"repeated"===g==(t.writableState.selectedEntityId===m));if(0===u.length)return"initial"===g?f?.("no-match",`Targeting initial selection, but the entity ${d.join(", ")} was res-selected, skipping transformer`,{updates:i}):f?.("no-match",`Targeting repeated selection, but the entity ${d.join(", ")} was selected initially, skipping transformer`,{updates:i}),[];f?.("match",`Entity ${d.join(", ")} selected, processing transformer`,{updates:i});let $=a(s,o,l,i,f);return u.map(t=>{let e=t.writableState.selectedEntityId;return{...$,getSelected$Entity:()=>s.domain.get$Entity(e,$.getNewState()),getDeselected$Entity:()=>s.domain.get$Entity(m,o),entityId:e,update:t}})})),deselected:e=>{if((e?.occurrence==="repeated"||e?.occurrence==="any")&&e?.inFavorOf!==void 0)throw Error("inFavorOf is not supported when occurrence is repeated or any");return l(d,o(!0),f()((i,o,l,s,f)=>{let p=i.filter(t=>r(t)||n(t));if(0===p.length)return f?.("no-event","No selection/deselection updates found, skipping transformer",{updates:i}),[];let c=s.navigationSystem.getActiveSelectionState(o),m=t(c);if(!d.includes(m))return f?.("no-match",`Deselected entity is of type ${m} and not ${d.join(", ")}, skipping transformer`,{updates:i}),[];let y=p.filter(t=>t.writableState.selectedEntityId!==c),g=e?.occurrence??"initial";if(0===y.length&&"initial"===g)return f?.("no-match","Entity has not truly been deselected, skipping transformer",{updates:i}),[];if(y.length>0&&"repeated"===g)return f?.("no-match","Entity has been deselected initially, but target occurrence is repeated, skipping transformer",{updates:i}),[];let u=y.length>0?y:p,$=e?.inFavorOf?u.filter(n=>e.inFavorOf?.includes(t(n.writableState.selectedEntityId))):u;if(0===$.length)return f?.("no-match",`Entity ${c} deselected but not in favor of ${e?.inFavorOf?.join(",")}, skipping transformer`,{updates:i}),[];f?.("match",`Entity ${d.join(", ")} deselected in favor of ${e?.inFavorOf?.join(",")??"any"}, processing transformer`,{updates:i});let h=a(s,o,l,i,f);return $.map(t=>{let e=t.writableState.selectedEntityId;return{...h,getSelected$Entity:()=>s.domain.get$Entity(e,h.getNewState()),getDeselected$Entity:()=>s.domain.get$Entity(c,o),entityId:c,update:t}})}))},violated:n=>s(o(!0),f()((i,r,o,l,s)=>{let{validity:f,state:p}=l.storeSystem.prepareStateEmissionWithoutTransformation(i,r,o);if(f.valid||"uncaught"===f.severity)return s?.("no-event","State is valid, skipping transformer",{validity:f}),[];let c=Array.from(new Set(f.entityViolations.filter(t=>n.includes(t.violation.type)).map(t=>t.entityId)));if(!c)return s?.("no-event",`No violations of type ${n.join(", ")} found, skipping transformer`,{validity:f}),[];let m=c.filter(n=>e(n)&&d.includes(t(n)));if(0===m.length)return s?.("no-match",`No violations of type ${n.join(", ")} found for entity ${d.join(", ")}, skipping transformer`,{validity:f}),[];s?.("no-match",`Violations of type ${n.join(", ")} found for entity ${d.join(", ")}, processing transformer`,{validity:f});let y=a(l,r,o,i,s);return m.map(t=>({...y,getViolated$Entity:()=>l.domain.get$Entity(t,p)}))})),exported:n=>l(d,o(!0),f()((r,o,l,s,f)=>{let p=r.filter(i);if(0===p.length)return f?.("no-event","No export updates found, skipping transformer",{updates:r}),[];let c=p.filter(t=>n.includes(t.writableState.activeState));if(0===c.length)return f?.("no-match",`No export updates matching states ${n.join(", ")}, skipping transformer`,{updates:r}),[];let m=c.filter(n=>e(n.writableState.exportedEntityId)&&d.includes(t(n.writableState.exportedEntityId)));if(0===m.length)return f?.("no-match",`No export updates for entity ${d.join(", ")} with states ${n.join(", ")}, skipping transformer`,{updates:r}),[];f?.("match",`Entity ${d.join(", ")} exported with state ${n.join(", ")}, processing transformer`,{updates:r});let y=a(s,o,l,r,f);return m.map(t=>{let e=t.writableState.exportedEntityId;return{...y,getExported$Entity:()=>s.domain.get$Entity(e,y.getNewState()),entityId:e,update:t,getExportState:()=>t.writableState.activeState}})}))}};
1
+ import{domainEntityTypeFromId as t,isDomainEntityId as e}from"../../core/index.js";import{isDeselectUpdate as n,isExportUpdate as i,isSelectUpdate as r}from"../navigation-system/index.js";import{updateActions as o}from"./actions-builder.js";import{createBaseContext as a}from"./context.js";import{thenAndEntityAwareCausesBuilder as l,thenBuilder as s}from"./then-builder.js";export const entityBuilder=(d,f)=>{let p=(n,i,r,o)=>{let a=r.filter(t=>"replaceDomainEntity"===t.kind);if(0===a.length)return o?.("no-event","No replacement updates found, skipping transformer",{updates:r}),[];let l=a.filter(r=>e(r.entityId)&&(void 0===n||n.includes(t(r.entityId)))&&(void 0===i||i.includes(r.replacementEntity.type)));return 0===l.length?(o?.("no-match",`No replacement from ${n?.join(", ")??"any"} to ${i?.join(", ")??"any"} found, skipping transformer`,{updates:r}),[]):l};return{modified:e=>l(d,o(!0),f()((n,i,r,o,l)=>{let s=n.filter(t=>"modifyDomainEntity"===t.kind);if(0===s.length)return l?.("no-event","No modification updates found, skipping transformer",{updates:n}),[];let f=s.filter(e=>d.includes(t(e.entityId)));if(0===f.length)return l?.("no-match",`No modification updates for entity ${d.join(", ")}, skipping transformer`,{updates:n}),[];let p=f;if(e?.atFields!==void 0){if(0===(p=f.filter(t=>e.atFields.every(e=>Object.hasOwn(t.stateDelta,e)))).length)return l?.("no-match",`Entity ${d.join(", ")} modified, but not at field ${e.atFields.join(", ")}, skipping transformer`,{updates:n}),[];l?.("match",`Entity ${d.join(", ")} modified at field ${e.atFields.join(", ")}, processing transformer`,{updates:n})}else l?.("match",`Entity ${d.join(", ")} modified, processing transformer`,{updates:n});let c=a(o,i,r,n,l);return p.map(t=>{let e=t.entityId;return{...c,getOld$Entity:()=>o.domain.get$Entity(e,i),getNew$Entity:()=>o.domain.get$Entity(e,c.getNewState()),entityId:e,update:t}})})),created:()=>l(d,o(!0),f()((t,e,n,i,r)=>{let o=t.filter(t=>"createDomainEntity"===t.kind);if(0===o.length)return r?.("no-event","No entity creation updates found, skipping transformer",{updates:t}),[];let l=o.filter(t=>d.includes(t.entity.type));if(0===l.length)return r?.("no-match",`No creation updates for entity ${d.join(", ")}, skipping transformer`,{updates:t}),[];r?.("match",`Entity ${d.join(", ")} created, processing transformer`,{updates:t});let s=a(i,e,n,t,r);return l.map(t=>{let e=t.entityId;return{...s,getNew$Entity:()=>i.domain.get$Entity(e,s.getNewState()),entityId:e,update:t}})})),deleted:()=>l(d,o(!0),f()((n,i,r,o,l)=>{let s=n.filter(t=>"deleteEntity"===t.kind);if(0===s.length)return l?.("no-event","No entity deletion updates found, skipping transformer",{updates:n}),[];let f=s.filter(n=>e(n.entityId)&&d.includes(t(n.entityId)));if(0===f.length)return l?.("no-match",`No deletion updates for entity ${d.join(", ")}, skipping transformer`,{updates:n}),[];l?.("match",`Entity ${d.join(", ")} deleted, processing transformer`,{updates:n});let p=a(o,i,r,n,l);return f.map(t=>{let e=t.entityId;return{...p,getOld$Entity:()=>o.domain.get$Entity(e,i),entityId:e,update:t}})})),replaces:t=>l(d,o(!0),f()((e,n,i,r,o)=>{let l=p(t,d,e,o);if(0===l.length)return[];o?.("match",`Entity ${d.join(", ")} replaces ${t.join(", ")??"any"}, processing transformer`,{updates:e});let s=a(r,n,i,e,o);return l.map(t=>{let e=t.entityId,i=t.replacementEntity.id;return{...s,getReplacing$Entity:()=>r.domain.get$Entity(i,s.getNewState()),getReplaced$Entity:()=>r.domain.get$Entity(e,n),entityId:i,update:t}})})),replacedWith:t=>l(d,o(!0),f()((e,n,i,r,o)=>{let l=p(d,t,e,o);if(0===l.length)return[];o?.("match",`Entity ${d.join(", ")} replaced with ${t.join(", ")??"any"}, processing transformer`,{updates:e});let s=a(r,n,i,e,o);return l.map(t=>{let e=t.entityId,i=t.replacementEntity.id;return{...s,getReplacing$Entity:()=>r.domain.get$Entity(i,s.getNewState()),getReplaced$Entity:()=>r.domain.get$Entity(e,n),entityId:e,update:t}})})),selected:n=>l(d,o(!0),f()((i,o,l,s,f)=>{let p=i.filter(r);if(0===p.length)return f?.("no-event","No selection updates found, skipping transformer",{updates:i}),[];let c=p.filter(n=>e(n.writableState.selectedEntityId)&&d.includes(t(n.writableState.selectedEntityId)));if(0===c.length)return f?.("no-match",`No selection updates for entity ${d.join(", ")}, skipping transformer`,{updates:i}),[];let m=s.navigationSystem.getActiveSelectionState(o),y=t(m);if(n?.insteadOf!==void 0&&!n?.insteadOf?.includes(y))return f?.("no-match",`Entity ${d.join(", ")} selected, but not instead of ${d.join(", ")}, skipping transformer`,{updates:i}),[];let g=n?.occurrence??"initial",u="any"===g?c:c.filter(t=>"repeated"===g==(t.writableState.selectedEntityId===m));if(0===u.length)return"initial"===g?f?.("no-match",`Targeting initial selection, but the entity ${d.join(", ")} was res-selected, skipping transformer`,{updates:i}):f?.("no-match",`Targeting repeated selection, but the entity ${d.join(", ")} was selected initially, skipping transformer`,{updates:i}),[];f?.("match",`Entity ${d.join(", ")} selected, processing transformer`,{updates:i});let $=a(s,o,l,i,f);return u.map(t=>{let e=t.writableState.selectedEntityId;return{...$,getSelected$Entity:()=>s.domain.get$Entity(e,$.getNewState()),getDeselected$Entity:()=>s.domain.get$Entity(m,o),entityId:e,update:t}})})),deselected:e=>{if((e?.occurrence==="repeated"||e?.occurrence==="any")&&e?.inFavorOf!==void 0)throw Error("inFavorOf is not supported when occurrence is repeated or any");return l(d,o(!0),f()((i,o,l,s,f)=>{let p=i.filter(t=>r(t)||n(t));if(0===p.length)return f?.("no-event","No selection/deselection updates found, skipping transformer",{updates:i}),[];let c=s.navigationSystem.getActiveSelectionState(o),m=t(c);if(!d.includes(m))return f?.("no-match",`Deselected entity is of type ${m} and not ${d.join(", ")}, skipping transformer`,{updates:i}),[];let y=p.filter(t=>t.writableState.selectedEntityId!==c),g=e?.occurrence??"initial";if(0===y.length&&"initial"===g)return f?.("no-match","Entity has not truly been deselected, skipping transformer",{updates:i}),[];if(y.length>0&&"repeated"===g)return f?.("no-match","Entity has been deselected initially, but target occurrence is repeated, skipping transformer",{updates:i}),[];let u=y.length>0?y:p,$=e?.inFavorOf?u.filter(n=>e.inFavorOf?.includes(t(n.writableState.selectedEntityId))):u;if(0===$.length)return f?.("no-match",`Entity ${c} deselected but not in favor of ${e?.inFavorOf?.join(",")}, skipping transformer`,{updates:i}),[];f?.("match",`Entity ${d.join(", ")} deselected in favor of ${e?.inFavorOf?.join(",")??"any"}, processing transformer`,{updates:i});let h=a(s,o,l,i,f);return $.map(t=>{let e=t.writableState.selectedEntityId;return{...h,getSelected$Entity:()=>s.domain.get$Entity(e,h.getNewState()),getDeselected$Entity:()=>s.domain.get$Entity(c,o),entityId:c,update:t}})}))},violated:n=>s(o(!0),f()((i,r,o,l,s)=>{let{validity:f,state:p}=l.storeSystem.prepareStateEmissionWithoutTransformation(i,r,o);if(f.valid||"uncaught"===f.severity)return s?.("no-event","State is valid, skipping transformer",{validity:f}),[];let c=Array.from(new Set(f.entityViolations.filter(t=>n.includes(t.violation.type)).map(t=>t.entityId)));if(!c)return s?.("no-event",`No violations of type ${n.join(", ")} found, skipping transformer`,{validity:f}),[];let m=c.filter(n=>e(n)&&d.includes(t(n)));if(0===m.length)return s?.("no-match",`No violations of type ${n.join(", ")} found for entity ${d.join(", ")}, skipping transformer`,{validity:f}),[];s?.("no-match",`Violations of type ${n.join(", ")} found for entity ${d.join(", ")}, processing transformer`,{validity:f});let y=a(l,r,o,i,s);return m.map(t=>({...y,getViolated$Entity:()=>l.domain.get$Entity(t,p)}))})),exported:n=>l(d,o(!0),f()((r,o,l,s,f)=>{let p=r.filter(i);if(0===p.length)return f?.("no-event","No export updates found, skipping transformer",{updates:r}),[];let c=p.filter(t=>n.includes(t.writableState.activeState));if(0===c.length)return f?.("no-match",`No export updates matching states ${n.join(", ")}, skipping transformer`,{updates:r}),[];let m=c.filter(n=>e(n.writableState.exportedEntityId)&&d.includes(t(n.writableState.exportedEntityId)));if(0===m.length)return f?.("no-match",`No export updates for entity ${d.join(", ")} with states ${n.join(", ")}, skipping transformer`,{updates:r}),[];f?.("match",`Entity ${d.join(", ")} exported with state ${n.join(", ")}, processing transformer`,{updates:r});let y=a(s,o,l,r,f);return m.map(t=>{let e=t.writableState.exportedEntityId;return{...y,getExported$Entity:()=>s.domain.get$Entity(e,y.getNewState()),entityId:e,update:t,getExportState:()=>t.writableState.activeState}})}))}};
@@ -1,4 +1,4 @@
1
1
  export { createTransformerBuilder } from './when-builder.js';
2
2
  export type { TransformerBuilder } from './when-builder.js';
3
3
  export type { RegistrableTransformer } from './chain-builder.js';
4
- export { AutoSnapUpdateTag, isAutoSnapUpdate, type AutoSnapType, type AutoSnapMetadata, } from './auto-snap-transformer.js';
4
+ export { AutoSnapUpdateTag, isAutoSnapUpdate, type AutoSnapType, type AutoSnapMetadata, createAutoSnapTransformer, } from './auto-snap-transformer.js';
@@ -1 +1 @@
1
- export{createTransformerBuilder}from"./when-builder.js";export{AutoSnapUpdateTag,isAutoSnapUpdate}from"./auto-snap-transformer.js";
1
+ export{createTransformerBuilder}from"./when-builder.js";export{AutoSnapUpdateTag,isAutoSnapUpdate,createAutoSnapTransformer}from"./auto-snap-transformer.js";
@@ -1,5 +1,4 @@
1
- import { type $DomainEntity, type DomainEntity, type DomainEntityId } from '../../core/model.js';
2
- import type { ViolationTypesOf$Entity } from '../../invariants/violation.js';
1
+ import { type $DomainEntity, type DomainEntity, type DomainEntityId, type ViolationTypesOf$Entity } from '../../core/index.js';
3
2
  import type { Actions, ActionsBuilder, AllActions } from './actions-builder.js';
4
3
  import type { BaseTransformerBuilderContext, ContextFactory, ContextWithEntityId, ContextWithUpdate, ContextWithUpdateAndEntityId } from './context.js';
5
4
  export type ThenBuilder<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, ACTIONS extends AllActions, CTX> = {
@@ -1 +1 @@
1
- import{isNonNullish as t}from"@salsita-ai/common/utils";import{domainEntityTypeFromId as e,isDomainEntityId as i}from"../../core/model.js";import{updateActions as n}from"./actions-builder.js";export const thenBuilder=(t,e)=>({then:t(e),and:i=>({then:t((t,n,r,o,a)=>{let s=e(t,n,r,o,a);if(!s.length)return[];let l=s.filter(i);return l.length||a?.("no-match","Custom `and` predicate did not match any update, skipping transformer"),l})})});export const tagBuilder=(t,e)=>({...thenBuilder(t,e),withTag:i=>thenBuilder(t,(t,n,r,o,a)=>{let s=e(t,n,r,o,a);if(!s.length)return[];let l=s.filter(t=>i.includes(t.update.updateTag));return l.length||a?.("no-match",`No matching update with tag ${i.join(", ")} found, skipping transformer`,{updates:t}),l})});export const causesBuilder=r=>({entity:o=>({withId:e=>({violation:i=>thenBuilder(n(!0),(n,o,a,s,l)=>{let u=r(n,o,a,s,l);if(!u.length)return[];let{validity:d,state:p}=s.storeSystem.prepareStateEmissionWithoutTransformation(n,o,a);if(d.valid||"uncaught"===d.severity)return l?.("no-event","No violations found, skipping transformer"),[];let f=d.entityViolations.filter(t=>i.includes(t.violation.type)).map(t=>t.entityId);if(0===f.length)return l?.("no-match",`No violations of type ${i.join(", ")} found, skipping transformer`),[];let m=u.map(t=>{let i=e(t);return i?{context:t,candidateEntityIds:Array.isArray(i)?i:[i]}:null}).filter(t);if(0===m.length)return l?.("no-resolve","No entities returned by the selector, skipping transformer"),[];let h=m.map(t=>({...t,violatedEntityIds:t.candidateEntityIds.filter(t=>f.includes(t))})).filter(t=>t.violatedEntityIds.length>0);return 0===h.length?(l?.("no-match",`No violations of type ${i.join(", ")} found for entities returned by the selector, skipping transformer`,{violatedEntityIds:f}),[]):h.map(t=>({...t.context,getViolated$Entities:()=>t.violatedEntityIds.map(t=>s.domain.get$Entity(t,p))}))})}),violation:a=>thenBuilder(n(!0),(n,s,l,u,d)=>{let{validity:p,state:f}=u.storeSystem.prepareStateEmissionWithoutTransformation(n,s,l);if(p.valid||"uncaught"===p.severity)return[];let m=p.entityViolations.map(t=>a.includes(t.violation.type)&&i(t.entityId)&&o.includes(e(t.entityId))?t.entityId:null).filter(t),h=r(n,s,l,u,d);return 0===m.length?[]:h.map(t=>({...t,getViolated$Entities:()=>m.map(t=>u.domain.get$Entity(t,f))}))})})});export const entityAwareCausesBuilder=(t,e)=>({...causesBuilder(e),self:{violation:i=>thenBuilder(n(!0),(n,r,o,a,s)=>{let{validity:l}=a.storeSystem.prepareStateEmissionWithoutTransformation(n,r,o);if(l.valid)return s?.("no-event","No violations found, skipping transformer",{validity:l}),[];if("uncaught"===l.severity)return s?.("no-event","Uncaught exception encountered while calculating new state, skipping transformer",{updates:n}),[];let u=new Set(l.entityViolations.filter(t=>i.includes(t.violation.type)).map(t=>t.entityId));if(0===u.size)return s?.("no-match",`No violations of type ${i.join(", ")} found for the ${t.join(", ")} entities, skipping transformer`,{entityIds:Array.from(u)}),[];let d=e(n,r,o,a,s),p=d.filter(t=>u.has(t.entityId));return 0===p.length&&s?.("no-match",`No violations of type ${i.join(", ")} found for entity ${d.map(t=>t.entityId).join(", ")}, skipping transformer`,{updates:n}),p})}});export const thenAndEntityAwareCausesBuilder=(t,e,i)=>({...tagBuilder(e,i),causes:entityAwareCausesBuilder(t,i)});export const thenAndCausesBuilder=(t,e)=>({...tagBuilder(t,e),causes:causesBuilder(e)});
1
+ import{isNonNullish as t}from"@salsita-ai/common/utils";import{domainEntityTypeFromId as e,isDomainEntityId as i}from"../../core/index.js";import{updateActions as n}from"./actions-builder.js";export const thenBuilder=(t,e)=>({then:t(e),and:i=>({then:t((t,n,r,o,a)=>{let s=e(t,n,r,o,a);if(!s.length)return[];let l=s.filter(i);return l.length||a?.("no-match","Custom `and` predicate did not match any update, skipping transformer"),l})})});export const tagBuilder=(t,e)=>({...thenBuilder(t,e),withTag:i=>thenBuilder(t,(t,n,r,o,a)=>{let s=e(t,n,r,o,a);if(!s.length)return[];let l=s.filter(t=>i.includes(t.update.updateTag));return l.length||a?.("no-match",`No matching update with tag ${i.join(", ")} found, skipping transformer`,{updates:t}),l})});export const causesBuilder=r=>({entity:o=>({withId:e=>({violation:i=>thenBuilder(n(!0),(n,o,a,s,l)=>{let u=r(n,o,a,s,l);if(!u.length)return[];let{validity:d,state:p}=s.storeSystem.prepareStateEmissionWithoutTransformation(n,o,a);if(d.valid||"uncaught"===d.severity)return l?.("no-event","No violations found, skipping transformer"),[];let f=d.entityViolations.filter(t=>i.includes(t.violation.type)).map(t=>t.entityId);if(0===f.length)return l?.("no-match",`No violations of type ${i.join(", ")} found, skipping transformer`),[];let m=u.map(t=>{let i=e(t);return i?{context:t,candidateEntityIds:Array.isArray(i)?i:[i]}:null}).filter(t);if(0===m.length)return l?.("no-resolve","No entities returned by the selector, skipping transformer"),[];let h=m.map(t=>({...t,violatedEntityIds:t.candidateEntityIds.filter(t=>f.includes(t))})).filter(t=>t.violatedEntityIds.length>0);return 0===h.length?(l?.("no-match",`No violations of type ${i.join(", ")} found for entities returned by the selector, skipping transformer`,{violatedEntityIds:f}),[]):h.map(t=>({...t.context,getViolated$Entities:()=>t.violatedEntityIds.map(t=>s.domain.get$Entity(t,p))}))})}),violation:a=>thenBuilder(n(!0),(n,s,l,u,d)=>{let{validity:p,state:f}=u.storeSystem.prepareStateEmissionWithoutTransformation(n,s,l);if(p.valid||"uncaught"===p.severity)return[];let m=p.entityViolations.map(t=>a.includes(t.violation.type)&&i(t.entityId)&&o.includes(e(t.entityId))?t.entityId:null).filter(t),h=r(n,s,l,u,d);return 0===m.length?[]:h.map(t=>({...t,getViolated$Entities:()=>m.map(t=>u.domain.get$Entity(t,f))}))})})});export const entityAwareCausesBuilder=(t,e)=>({...causesBuilder(e),self:{violation:i=>thenBuilder(n(!0),(n,r,o,a,s)=>{let{validity:l}=a.storeSystem.prepareStateEmissionWithoutTransformation(n,r,o);if(l.valid)return s?.("no-event","No violations found, skipping transformer",{validity:l}),[];if("uncaught"===l.severity)return s?.("no-event","Uncaught exception encountered while calculating new state, skipping transformer",{updates:n}),[];let u=new Set(l.entityViolations.filter(t=>i.includes(t.violation.type)).map(t=>t.entityId));if(0===u.size)return s?.("no-match",`No violations of type ${i.join(", ")} found for the ${t.join(", ")} entities, skipping transformer`,{entityIds:Array.from(u)}),[];let d=e(n,r,o,a,s),p=d.filter(t=>u.has(t.entityId));return 0===p.length&&s?.("no-match",`No violations of type ${i.join(", ")} found for entity ${d.map(t=>t.entityId).join(", ")}, skipping transformer`,{updates:n}),p})}});export const thenAndEntityAwareCausesBuilder=(t,e,i)=>({...tagBuilder(e,i),causes:entityAwareCausesBuilder(t,i)});export const thenAndCausesBuilder=(t,e)=>({...tagBuilder(t,e),causes:causesBuilder(e)});
@@ -1,12 +1,6 @@
1
- import type { navigationStateComponent } from '../../components/navigation-state-component.js';
2
- import type { toolStateComponent } from '../../components/tool-state-component.js';
3
- import type { ComponentModification, EphemeralRecordModification, StateUpdate } from '../../components/updates.js';
4
- import type { viewStateComponent } from '../../components/view-state-component.js';
5
- import type { SystemComponentTypeConstraint } from '../../core/component.js';
6
- import { type $DomainEntity, type DomainEntity, type DomainEntityId } from '../../core/model.js';
7
- import type { DragHandleComponent } from '../../system-components/drag-handle.js';
8
- import type { HotspotDragHandleComponent } from '../../system-components/hotspot-drag-handle.js';
9
- import type { StateEmissionKind } from '../store-system/store-system.js';
1
+ import { type $DomainEntity, type ComponentModification, type DomainEntity, type DomainEntityId, type EphemeralRecordModification, type StateUpdate, type SystemComponentTypeConstraint, type navigationStateComponent, type toolStateComponent, type viewStateComponent } from '../../core/index.js';
2
+ import type { DragHandleComponent, HotspotDragHandleComponent } from '../../system-components/index.js';
3
+ import type { StateEmissionKind } from '../store-system/index.js';
10
4
  import type { AllActions } from './actions-builder.js';
11
5
  import { type AutoSnapMetadata, type AutoSnapType } from './auto-snap-transformer.js';
12
6
  import type { BaseTransformerBuilderContext, ContextFactoryFilter, ContextWithUpdate } from './context.js';
@@ -1 +1 @@
1
- import{domainEntityTypeFromId as t,isDomainEntityId as e}from"../../core/model.js";import{isNavigationUpdate as n,isToolUpdate as o,isViewUpdate as i}from"../navigation-system/navigation-updates.js";import{updateActions as r}from"./actions-builder.js";import{isAutoSnapUpdate as a}from"./auto-snap-transformer.js";import{createBaseContext as s}from"./context.js";import{entityBuilder as m}from"./entity-builder.js";import{tagBuilder as l,thenAndCausesBuilder as f,thenBuilder as d}from"./then-builder.js";let p=n=>({...l(r(!1),n),onEntity:o=>l(r(!1),(i,r,a,s,m)=>{let l=n(i,r,a,s,m);if(!l.length)return[];let f=l.filter(n=>e(n.update.entityId)&&o.includes(t(n.update.entityId)));return f.length||m?.("no-match",`No matching update for entity ${o.join(", ")} found, skipping transformer`,{updates:i}),f.map(t=>{let e=t.update.entityId;return{...t,getOld$Entity:()=>s.domain.get$Entity(e,r),getNew$Entity:()=>s.domain.get$Entity(e,t.getNewState()),entityId:e}})})}),g=(t,e,n)=>p(t()((t,o,i,r,a)=>{let m=t.filter(t=>"modifyComponent"===t.kind);if(0===m.length)return a?.("no-event","No component modification updates found, skipping transformer",{updates:t}),[];let l=m.filter(t=>e.includes(t.componentInstance.componentType));return 0===l.length?(a?.("no-match",`No modification updates for component ${e.join(", ")}, skipping transformer`,{updates:t}),[]):(void 0===n?l:l.filter(t=>n.includes(t.componentInstance.instanceName))).map(e=>({...s(r,o,i,t,a),update:e}))}));export const whenBuilder=t=>({component:e=>({modified:g(t,e),instance:n=>({modified:g(t,e,n)})}),update:e=>({fired:p(t()((t,n,o,i,r)=>{let a=t.filter(t=>e.includes(t.kind));return 0===a.length?(r?.("no-event",`No updates of kind ${e.join(", ")} found, skipping transformer`,{updates:t}),[]):a.map(e=>({...s(i,n,o,t,r),update:e}))}))}),entity:e=>m(e,t),snapped:()=>f(r(!0),t()((t,e,n,o,i)=>{let r=t.filter(a);if(0===r.length)return i?.("no-event","No auto-snap updates found, skipping transformer",{updates:t}),[];i?.("match",`Found ${r.length} auto-snap update(s), processing transformer`);let m=s(o,e,n,t,i);return r.map(t=>({...m,update:t,entityId:t.componentInstance.entityId,snapMatch:t.metadata.snapMatch,snapType:t.metadata.snapType}))})),navigated:e=>f(r(!0),t()((t,o,i,r,a)=>{let m=t.filter(n);if(0===m.length)return a?.("no-event","No navigation updates found, skipping transformer",{updates:t}),[];let l=m.filter(t=>{let n=t.writableState.activeState,i=r.navigationSystem.getActiveNavigationState(o);return(e?.to===void 0||e.to.includes(n))&&(e?.from===void 0||e.from.includes(i))});if(0===l.length)return a?.("no-match",`No navigation updates matching filter from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, skipping transformer`,{updates:t}),[];a?.("match",`Navigation state changed from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, processing transformer`,{updates:t});let f=s(r,o,i,t,a);return l.map(t=>{let e=t.writableState.activeState,n=r.navigationSystem.getActiveNavigationState(o);return{...f,update:t,getFrom:()=>n,getTo:()=>e}})})),viewChanged:e=>f(r(!0),t()((t,n,o,r,a)=>{let m=t.filter(i);if(0===m.length)return a?.("no-event","No view updates found, skipping transformer",{updates:t}),[];let l=m.filter(t=>{let o=t.writableState.activeState,i=r.navigationSystem.getActiveViewState(n);return(e?.to===void 0||e.to.includes(o))&&(e?.from===void 0||e.from.includes(i))});if(0===l.length)return a?.("no-match",`No view updates matching filter from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, skipping transformer`,{updates:t}),[];a?.("match",`View state changed from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, processing transformer`,{updates:t});let f=s(r,n,o,t,a);return l.map(t=>{let e=t.writableState.activeState,o=r.navigationSystem.getActiveViewState(n);return{...f,update:t,getFrom:()=>o,getTo:()=>e}})})),toolChanged:e=>f(r(!0),t()((t,n,i,r,a)=>{let m=t.filter(o);if(0===m.length)return a?.("no-event","No tool updates found, skipping transformer",{updates:t}),[];let l=m.filter(t=>{let o=t.writableState.activeState,i=r.navigationSystem.getActiveToolState(n);return(e?.to===void 0||e.to.includes(o))&&(e?.from===void 0||e.from.includes(i))});if(0===l.length)return a?.("no-match",`No tool updates matching filter from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, skipping transformer`,{updates:t}),[];a?.("match",`Tool state changed from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, processing transformer`,{updates:t});let f=s(r,n,i,t,a);return l.map(t=>{let e=t.writableState.activeState,o=r.navigationSystem.getActiveToolState(n);return{...f,update:t,getFrom:()=>o,getTo:()=>e}})}))});export const createTransformerBuilder=()=>({when:whenBuilder(()=>t=>t),onEmissionsOfKind:t=>({when:whenBuilder(()=>e=>(n,o,i,r,a)=>t.includes(i)?e(n,o,i,r,a):(a?.("no-event",`Emission kind ${i} is not supposed to trigger this transformer, only ${t.join(", ")} is, skipping transformer`,{updates:n}),[]))}),always:d(r(!1),(t,e,n,o,i)=>[s(o,e,n,t,i)])});
1
+ import{domainEntityTypeFromId as t,isDomainEntityId as e}from"../../core/index.js";import{isNavigationUpdate as n,isToolUpdate as o,isViewUpdate as i}from"../navigation-system/index.js";import{updateActions as r}from"./actions-builder.js";import{isAutoSnapUpdate as a}from"./auto-snap-transformer.js";import{createBaseContext as s}from"./context.js";import{entityBuilder as m}from"./entity-builder.js";import{tagBuilder as f,thenAndCausesBuilder as l,thenBuilder as d}from"./then-builder.js";let p=n=>({...f(r(!1),n),onEntity:o=>f(r(!1),(i,r,a,s,m)=>{let f=n(i,r,a,s,m);if(!f.length)return[];let l=f.filter(n=>e(n.update.entityId)&&o.includes(t(n.update.entityId)));return l.length||m?.("no-match",`No matching update for entity ${o.join(", ")} found, skipping transformer`,{updates:i}),l.map(t=>{let e=t.update.entityId;return{...t,getOld$Entity:()=>s.domain.get$Entity(e,r),getNew$Entity:()=>s.domain.get$Entity(e,t.getNewState()),entityId:e}})})}),g=(t,e,n)=>p(t()((t,o,i,r,a)=>{let m=t.filter(t=>"modifyComponent"===t.kind);if(0===m.length)return a?.("no-event","No component modification updates found, skipping transformer",{updates:t}),[];let f=m.filter(t=>e.includes(t.componentInstance.componentType));return 0===f.length?(a?.("no-match",`No modification updates for component ${e.join(", ")}, skipping transformer`,{updates:t}),[]):(void 0===n?f:f.filter(t=>n.includes(t.componentInstance.instanceName))).map(e=>({...s(r,o,i,t,a),update:e}))}));export const whenBuilder=t=>({component:e=>({modified:g(t,e),instance:n=>({modified:g(t,e,n)})}),update:e=>({fired:p(t()((t,n,o,i,r)=>{let a=t.filter(t=>e.includes(t.kind));return 0===a.length?(r?.("no-event",`No updates of kind ${e.join(", ")} found, skipping transformer`,{updates:t}),[]):a.map(e=>({...s(i,n,o,t,r),update:e}))}))}),entity:e=>m(e,t),snapped:()=>l(r(!0),t()((t,e,n,o,i)=>{let r=t.filter(a);if(0===r.length)return i?.("no-event","No auto-snap updates found, skipping transformer",{updates:t}),[];i?.("match",`Found ${r.length} auto-snap update(s), processing transformer`);let m=s(o,e,n,t,i);return r.map(t=>({...m,update:t,entityId:t.componentInstance.entityId,snapMatch:t.metadata.snapMatch,snapType:t.metadata.snapType}))})),navigated:e=>l(r(!0),t()((t,o,i,r,a)=>{let m=t.filter(n);if(0===m.length)return a?.("no-event","No navigation updates found, skipping transformer",{updates:t}),[];let f=m.filter(t=>{let n=t.writableState.activeState,i=r.navigationSystem.getActiveNavigationState(o);return(e?.to===void 0||e.to.includes(n))&&(e?.from===void 0||e.from.includes(i))});if(0===f.length)return a?.("no-match",`No navigation updates matching filter from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, skipping transformer`,{updates:t}),[];a?.("match",`Navigation state changed from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, processing transformer`,{updates:t});let l=s(r,o,i,t,a);return f.map(t=>{let e=t.writableState.activeState,n=r.navigationSystem.getActiveNavigationState(o);return{...l,update:t,getFrom:()=>n,getTo:()=>e}})})),viewChanged:e=>l(r(!0),t()((t,n,o,r,a)=>{let m=t.filter(i);if(0===m.length)return a?.("no-event","No view updates found, skipping transformer",{updates:t}),[];let f=m.filter(t=>{let o=t.writableState.activeState,i=r.navigationSystem.getActiveViewState(n);return(e?.to===void 0||e.to.includes(o))&&(e?.from===void 0||e.from.includes(i))});if(0===f.length)return a?.("no-match",`No view updates matching filter from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, skipping transformer`,{updates:t}),[];a?.("match",`View state changed from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, processing transformer`,{updates:t});let l=s(r,n,o,t,a);return f.map(t=>{let e=t.writableState.activeState,o=r.navigationSystem.getActiveViewState(n);return{...l,update:t,getFrom:()=>o,getTo:()=>e}})})),toolChanged:e=>l(r(!0),t()((t,n,i,r,a)=>{let m=t.filter(o);if(0===m.length)return a?.("no-event","No tool updates found, skipping transformer",{updates:t}),[];let f=m.filter(t=>{let o=t.writableState.activeState,i=r.navigationSystem.getActiveToolState(n);return(e?.to===void 0||e.to.includes(o))&&(e?.from===void 0||e.from.includes(i))});if(0===f.length)return a?.("no-match",`No tool updates matching filter from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, skipping transformer`,{updates:t}),[];a?.("match",`Tool state changed from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, processing transformer`,{updates:t});let l=s(r,n,i,t,a);return f.map(t=>{let e=t.writableState.activeState,o=r.navigationSystem.getActiveToolState(n);return{...l,update:t,getFrom:()=>o,getTo:()=>e}})}))});export const createTransformerBuilder=()=>({when:whenBuilder(()=>t=>t),onEmissionsOfKind:t=>({when:whenBuilder(()=>e=>(n,o,i,r,a)=>t.includes(i)?e(n,o,i,r,a):(a?.("no-event",`Emission kind ${i} is not supposed to trigger this transformer, only ${t.join(", ")} is, skipping transformer`,{updates:n}),[]))}),always:d(r(!1),(t,e,n,o,i)=>[s(o,e,n,t,i)])});
@@ -1,11 +1,31 @@
1
1
  import type { ObservableWithLastValue } from '@salsita-ai/common/utils';
2
- import type { $DomainEntity, DomainEntity } from '../core/model.js';
3
- import type { DomainContextSelectors } from '../domain-runtime/domain-context/index.js';
4
- import type { ResetStateEmission, StateEmission } from './store-system/store-system.js';
2
+ import type { $DomainEntity, DomainEntity, DomainState, ResetStateEmission, StateEmission } from '../core/index.js';
3
+ import type { DomainContextSelectors } from '../domain-runtime/index.js';
5
4
  export interface UndoCapabilities {
6
5
  readonly canUndo: boolean;
7
6
  readonly canRedo: boolean;
8
7
  }
8
+ /**
9
+ * One step of the undo history: a state that undo and redo return to.
10
+ *
11
+ * A step is made by an undoable change. The non-undoable commits made on top of it afterwards, such
12
+ * as a selection or a navigation, do not make steps of their own; returning to the step keeps them,
13
+ * so undoing a later change does not also take back what the user selected since. A step therefore
14
+ * holds two states: the one that identifies it and the one it returns to.
15
+ */
16
+ export interface UndoStep<ENTITIES extends DomainEntity<string>> {
17
+ /**
18
+ * The state the undoable change committed. It identifies the step and never changes, so a caller
19
+ * that knows which state its own change committed can tell whether that change is the step the
20
+ * configuration is at.
21
+ */
22
+ readonly committedState: DomainState<ENTITIES>;
23
+ /**
24
+ * What undo or redo resets the store to: `committedState` plus the non-undoable commits made on
25
+ * top of it before the next undoable change.
26
+ */
27
+ readonly restoreState: DomainState<ENTITIES>;
28
+ }
9
29
  export interface CanBeUndoneContext<ENTITIES extends DomainEntity<string>, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>> {
10
30
  oldEmission: StateEmission<ENTITIES, $MAP>;
11
31
  newEmission: StateEmission<ENTITIES, $MAP>;
@@ -40,6 +60,12 @@ export declare class UndoSystem<ENTITIES extends DomainEntity<string>, $MAP exte
40
60
  private _activeIsUndoable;
41
61
  private readonly _canSubject;
42
62
  readonly can$: ObservableWithLastValue<UndoCapabilities>;
63
+ private readonly _tipSubject;
64
+ /**
65
+ * The step the configuration is at: the top of the stack, or the step an undo or redo returned to.
66
+ * Nothing while the stack is empty, before the first undoable change and after a reset.
67
+ */
68
+ readonly tip$: ObservableWithLastValue<UndoStep<ENTITIES> | undefined>;
43
69
  constructor(_context: UndoSystemContext);
44
70
  initialize: () => void;
45
71
  /**
@@ -1 +1 @@
1
- import{BehaviorSubject as t,pairwise as e}from"rxjs";let s=t=>t.oldEmission.state.entities!==t.newEmission.state.entities;export const UNDO_REDO_RESET_TAG={};export const isUndoRedoReset=t=>"reset"===t.kind&&t.tag===UNDO_REDO_RESET_TAG;export class UndoSystem{_context;_stack=[];_currentIndex=-1;_activeIsUndoable;_canSubject=new t({canUndo:!1,canRedo:!1});can$=this._canSubject;constructor(t){this._context=t,this._context.selectors.getStoreSystem().stateSlices.committed.pipe(e()).subscribe(([t,e])=>{if("reset"===e.kind&&e.tag!==UNDO_REDO_RESET_TAG)return void this.resetStack();let n=this._activeIsUndoable?.handler??s;("reset"!==e.kind||e.tag!==UNDO_REDO_RESET_TAG)&&n({oldEmission:t,newEmission:e})&&(this._stack=[...this._stack.slice(0,this._currentIndex),t.state,e.state],this._currentIndex=this._stack.length-1,this._refresh())})}initialize=()=>{this.resetStack()};registerIsUndoable(t){let e={handler:t};return this._activeIsUndoable=e,()=>{this._activeIsUndoable===e&&(this._activeIsUndoable=void 0)}}resetStack(){this._stack=[],this._currentIndex=-1,this._refresh()}_refresh(){this._canSubject.next({canUndo:this.canUndo(),canRedo:this.canRedo()})}canUndo(){return this._currentIndex>0}canRedo(){return this._currentIndex<this._stack.length-1}undo(){let t=this._stack[this._currentIndex-1];void 0!==t&&(this._currentIndex--,this._context.selectors.getStoreSystem().reset(t,UNDO_REDO_RESET_TAG),this._refresh())}redo(){let t=this._stack[this._currentIndex+1];void 0!==t&&(this._currentIndex++,this._context.selectors.getStoreSystem().reset(t,UNDO_REDO_RESET_TAG),this._refresh())}}
1
+ import{BehaviorSubject as t,pairwise as e}from"rxjs";let s=t=>t.oldEmission.state.entities!==t.newEmission.state.entities;export const UNDO_REDO_RESET_TAG={};export const isUndoRedoReset=t=>"reset"===t.kind&&t.tag===UNDO_REDO_RESET_TAG;export class UndoSystem{_context;_stack=[];_currentIndex=-1;_activeIsUndoable;_canSubject=new t({canUndo:!1,canRedo:!1});can$=this._canSubject;_tipSubject=new t(void 0);tip$=this._tipSubject;constructor(t){this._context=t,this._context.selectors.getStoreSystem().stateSlices.committed.pipe(e()).subscribe(([t,e])=>{if("reset"===e.kind&&e.tag!==UNDO_REDO_RESET_TAG)return void this.resetStack();let i=this._activeIsUndoable?.handler??s;if("reset"===e.kind&&e.tag===UNDO_REDO_RESET_TAG||!i({oldEmission:t,newEmission:e}))return;let r=this._stack[this._currentIndex],n={committedState:r?.committedState??t.state,restoreState:t.state},c={committedState:e.state,restoreState:e.state};this._stack=[...this._stack.slice(0,this._currentIndex),n,c],this._currentIndex=this._stack.length-1,this._refresh()})}initialize=()=>{this.resetStack()};registerIsUndoable(t){let e={handler:t};return this._activeIsUndoable=e,()=>{this._activeIsUndoable===e&&(this._activeIsUndoable=void 0)}}resetStack(){this._stack=[],this._currentIndex=-1,this._refresh()}_refresh(){this._canSubject.next({canUndo:this.canUndo(),canRedo:this.canRedo()}),this._tipSubject.next(this._stack[this._currentIndex])}canUndo(){return this._currentIndex>0}canRedo(){return this._currentIndex<this._stack.length-1}undo(){let t=this._stack[this._currentIndex-1];void 0!==t&&(this._currentIndex--,this._context.selectors.getStoreSystem().reset(t.restoreState,UNDO_REDO_RESET_TAG),this._refresh())}redo(){let t=this._stack[this._currentIndex+1];void 0!==t&&(this._currentIndex++,this._context.selectors.getStoreSystem().reset(t.restoreState,UNDO_REDO_RESET_TAG),this._refresh())}}
@@ -1,3 +1,4 @@
1
+ import { AccessLevel } from '@salsita-ai/contracts/api';
1
2
  import type { OverridesSelectorState, OverridesSelectors } from '../overrides/index.js';
2
3
  import type { AccessService, ApplicationAccessInfo } from './types.js';
3
4
  /**
@@ -17,24 +18,28 @@ export declare const requireAccessService: (applicationName: 'configurator' | 'a
17
18
  export declare const createAccessInfoSelectors: (context: Context) => {
18
19
  selectConfiguratorRawAccessInfo: import("@salsita-ai/common/utils").Selector<AccessSelectorState, {
19
20
  raw: string;
21
+ access: AccessLevel;
20
22
  viewMode: boolean;
21
23
  revisionId: string | undefined;
22
24
  configurationId: string;
23
25
  } | null>;
24
26
  selectAdminRawAccessInfo: import("@salsita-ai/common/utils").Selector<AccessSelectorState, {
25
27
  raw: string;
28
+ access: AccessLevel;
26
29
  viewMode: boolean;
27
30
  revisionId: string | undefined;
28
31
  configurationId: string;
29
32
  } | null>;
30
33
  selectConfiguratorAccessInfo: import("@salsita-ai/common/utils").Selector<AccessSelectorState, {
31
34
  raw: string;
35
+ access: AccessLevel;
32
36
  viewMode: boolean;
33
37
  revisionId: string | undefined;
34
38
  configurationId: string;
35
39
  }>;
36
40
  selectAdminAccessInfo: import("@salsita-ai/common/utils").Selector<AccessSelectorState, {
37
41
  raw: string;
42
+ access: AccessLevel;
38
43
  viewMode: boolean;
39
44
  revisionId: string | undefined;
40
45
  configurationId: string;
@@ -47,24 +52,28 @@ export declare const createAccessInfoSelectors: (context: Context) => {
47
52
  selectAdminConfigurationId: import("@salsita-ai/common/utils").Selector<AccessSelectorState, string>;
48
53
  getConfiguratorRawAccessInfo: () => {
49
54
  raw: string;
55
+ access: AccessLevel;
50
56
  viewMode: boolean;
51
57
  revisionId: string | undefined;
52
58
  configurationId: string;
53
59
  } | null;
54
60
  getAdminRawAccessInfo: () => {
55
61
  raw: string;
62
+ access: AccessLevel;
56
63
  viewMode: boolean;
57
64
  revisionId: string | undefined;
58
65
  configurationId: string;
59
66
  } | null;
60
67
  getConfiguratorAccessInfo: () => {
61
68
  raw: string;
69
+ access: AccessLevel;
62
70
  viewMode: boolean;
63
71
  revisionId: string | undefined;
64
72
  configurationId: string;
65
73
  };
66
74
  getAdminAccessInfo: () => {
67
75
  raw: string;
76
+ access: AccessLevel;
68
77
  viewMode: boolean;
69
78
  revisionId: string | undefined;
70
79
  configurationId: string;
@@ -1 +1 @@
1
- import{createSelector as e}from"@salsita-ai/common/utils";let c=e=>Error(`Cannot read ${e} access info because valid access is not loaded. Access info is written by the ${e} lifecycle after token validation. Move this read into the loaded ${e} lifecycle.`),i=e=>({accessInfo:e,configurationId:e.configurationId});export const requireAccessService=(e,i)=>{if(null===i)throw c(e);return i};export const createAccessInfoSelectors=n=>{let{getState:o,overridesSelectors:r}=n,s=e.withTypes(),t=s([s.leaf(e=>e.access.configuratorAccessInfo)],e=>e),a=s([s.leaf(e=>e.access.adminAccessInfo)],e=>e),l=s([t],e=>{if(null===e)throw c("configurator");return e}),f=s([a],e=>{if(null===e)throw c("admin");return e}),u=s([t,r.selectAccessService,r.selectAccessLevel],(e,c,n)=>{var o;let r,s,t=c??(null===e?null:i(e));return null===t||null===n?t:(o={configurationId:t.configurationId,...void 0===t.accessInfo.revisionId?{}:{revisionId:t.accessInfo.revisionId},access:n},r=e=>btoa(JSON.stringify(e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),s=`${r({alg:"none",typ:"JWT"})}.${r(o)}.`,{configurationId:t.configurationId,accessInfo:{raw:s,viewMode:"read-revision"===n,revisionId:t.accessInfo.revisionId,configurationId:t.configurationId}})}),d=s([a,r.selectAccessService],(e,c)=>null!==c?c:null===e?null:i(e)),g=s([u],e=>requireAccessService("configurator",e)),I=s([d],e=>requireAccessService("admin",e)),A=s([g],e=>e.configurationId),v=s([I],e=>e.configurationId);return{selectConfiguratorRawAccessInfo:t,selectAdminRawAccessInfo:a,selectConfiguratorAccessInfo:l,selectAdminAccessInfo:f,selectConfiguratorRawAccessService:u,selectAdminRawAccessService:d,selectConfiguratorAccessService:g,selectAdminAccessService:I,selectConfiguratorConfigurationId:A,selectAdminConfigurationId:v,getConfiguratorRawAccessInfo:()=>t(o()),getAdminRawAccessInfo:()=>a(o()),getConfiguratorAccessInfo:()=>l(o()),getAdminAccessInfo:()=>f(o()),getConfiguratorRawAccessService:()=>u(o()),getAdminRawAccessService:()=>d(o()),getConfiguratorAccessService:()=>g(o()),getAdminAccessService:()=>I(o()),getConfiguratorConfigurationId:()=>A(o()),getAdminConfigurationId:()=>v(o())}};
1
+ import{createSelector as e}from"@salsita-ai/common/utils";import{AccessLevel as c}from"@salsita-ai/contracts/api";let i=e=>Error(`Cannot read ${e} access info because valid access is not loaded. Access info is written by the ${e} lifecycle after token validation. Move this read into the loaded ${e} lifecycle.`),n=e=>({accessInfo:e,configurationId:e.configurationId});export const requireAccessService=(e,c)=>{if(null===c)throw i(e);return c};export const createAccessInfoSelectors=o=>{let{getState:r,overridesSelectors:s}=o,t=e.withTypes(),a=t([t.leaf(e=>e.access.configuratorAccessInfo)],e=>e),l=t([t.leaf(e=>e.access.adminAccessInfo)],e=>e),f=t([a],e=>{if(null===e)throw i("configurator");return e}),u=t([l],e=>{if(null===e)throw i("admin");return e}),d=t([a,s.selectAccessService,s.selectAccessLevel],(e,i,o)=>{var r;let s,t,a=i??(null===e?null:n(e));return null===a||null===o?a:(r={configurationId:a.configurationId,...void 0===a.accessInfo.revisionId?{}:{revisionId:a.accessInfo.revisionId},access:o},s=e=>btoa(JSON.stringify(e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),t=`${s({alg:"none",typ:"JWT"})}.${s(r)}.`,{configurationId:a.configurationId,accessInfo:{raw:t,access:"owner"===o?c.Owner:"read-revision"===o?c.ReadRevision:c.Read,viewMode:"read-revision"===o,revisionId:a.accessInfo.revisionId,configurationId:a.configurationId}})}),g=t([l,s.selectAccessService],(e,c)=>null!==c?c:null===e?null:n(e)),I=t([d],e=>requireAccessService("configurator",e)),v=t([g],e=>requireAccessService("admin",e)),A=t([I],e=>e.configurationId),m=t([v],e=>e.configurationId);return{selectConfiguratorRawAccessInfo:a,selectAdminRawAccessInfo:l,selectConfiguratorAccessInfo:f,selectAdminAccessInfo:u,selectConfiguratorRawAccessService:d,selectAdminRawAccessService:g,selectConfiguratorAccessService:I,selectAdminAccessService:v,selectConfiguratorConfigurationId:A,selectAdminConfigurationId:m,getConfiguratorRawAccessInfo:()=>a(r()),getAdminRawAccessInfo:()=>l(r()),getConfiguratorAccessInfo:()=>f(r()),getAdminAccessInfo:()=>u(r()),getConfiguratorRawAccessService:()=>d(r()),getAdminRawAccessService:()=>g(r()),getConfiguratorAccessService:()=>I(r()),getAdminAccessService:()=>v(r()),getConfiguratorConfigurationId:()=>A(r()),getAdminConfigurationId:()=>m(r())}};
@@ -1,5 +1,7 @@
1
+ import { AccessLevel } from '@salsita-ai/contracts/api';
1
2
  export declare const decodeAccessInfo: (accessToken: string, configurationId: string) => {
2
3
  raw: string;
4
+ access: AccessLevel;
3
5
  viewMode: boolean;
4
6
  revisionId: string | undefined;
5
7
  configurationId: string;
@@ -1 +1 @@
1
- import{jwtDecode as o}from"jwt-decode";import{AccessLevel as e}from"@salsita-ai/contracts/api";export const decodeAccessInfo=(i,r)=>{try{let n=o(i),t=n.exp;if(void 0!==t&&t<Date.now()/1e3||n.configurationId!==r)return null;return{raw:i,viewMode:n.access===e.ReadRevision,revisionId:n.revisionId,configurationId:n.configurationId}}catch(o){return null}};
1
+ import{jwtDecode as e}from"jwt-decode";import{AccessLevel as o}from"@salsita-ai/contracts/api";export const decodeAccessInfo=(i,r)=>{try{let c=e(i),n=c.exp;if(void 0!==n&&n<Date.now()/1e3||c.configurationId!==r)return null;return{raw:i,access:c.access,viewMode:c.access===o.ReadRevision,revisionId:c.revisionId,configurationId:c.configurationId}}catch(e){return null}};
@@ -0,0 +1,11 @@
1
+ import type { $DomainEntity, DomainEntity, OpenActionContext } from '../../core/index.js';
2
+ import type { DomainContextSystems } from '../../domain-context/index.js';
3
+ import type { RuntimeExpressionContext } from './runtime-expression-context.js';
4
+ /**
5
+ * The context the domain runtime runs an action implementation with: core's part, with the
6
+ * expression context the runtime evaluates expressions in and the domain systems of the application.
7
+ * `ActionSystem.createContext` builds it.
8
+ */
9
+ export interface ActionContext<ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, NAVIGATION_STATES extends string, VIEW_STATES extends string, TOOL_STATES extends string, EXPORT_STATES extends string> extends OpenActionContext<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, RuntimeExpressionContext<ENTITIES>, DomainContextSystems<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES>> {
10
+ }
11
+ export type AnyActionContext = ActionContext<any, any, any, any, any, any, any, any, any, any>;
@@ -1,7 +1,4 @@
1
- import type { FilteredOutComponentSnapshot, ManyComponentFilter, OneComponentFilter } from '../../components/component-reader-types.js';
2
- import { type ComponentSnapshot, type SystemComponentTypeConstraint } from '../../core/component.js';
3
- import type { DomainEntity, EntityId } from '../../core/model.js';
4
- import type { DomainState } from '../../core/state.js';
1
+ import { type ComponentSnapshot, type DomainEntity, type DomainState, type EntityId, type FilteredOutComponentSnapshot, type ManyComponentFilter, type OneComponentFilter, type SystemComponentTypeConstraint } from '../../core/index.js';
5
2
  import type { DomainContextSelectors } from './selectors.js';
6
3
  export interface ComponentReaderContext {
7
4
  readonly selectors: DomainContextSelectors;