@salsita-ai/sdk 0.50.0-develop.3cc61485a6 → 0.50.0-develop.4e6ae2e987

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 (1270) hide show
  1. package/README.md +19 -14
  2. package/dist/admin/default-admin-elements.d.ts +9 -0
  3. package/dist/admin/default-admin-elements.js +1 -0
  4. package/dist/admin/default-elements/built-in-entity-element.d.ts +10 -0
  5. package/dist/admin/default-elements/built-in-entity-element.js +1 -0
  6. package/dist/admin/default-elements/built-in-layout-element.d.ts +10 -0
  7. package/dist/admin/default-elements/built-in-layout-element.js +1 -0
  8. package/dist/admin/default-elements/index.d.ts +2 -0
  9. package/dist/admin/default-elements/index.js +1 -0
  10. package/dist/admin/index.d.ts +1 -0
  11. package/dist/admin/index.js +1 -1
  12. package/dist/application-spec/caching/content-diff.js +1 -1
  13. package/dist/application-spec/core/application-file.d.ts +0 -2
  14. package/dist/application-spec/core/application-file.js +1 -1
  15. package/dist/application-spec/core/components/component-filter.d.ts +53 -0
  16. package/dist/application-spec/core/components/component-filter.js +1 -0
  17. package/dist/application-spec/core/components/index.d.ts +2 -0
  18. package/dist/application-spec/core/components/index.js +1 -0
  19. package/dist/application-spec/core/components/sdk-code-ref.d.ts +9 -0
  20. package/dist/application-spec/core/components/sdk-code-ref.js +1 -0
  21. package/dist/application-spec/core/enhanced-json-value.d.ts +0 -68
  22. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  23. package/dist/application-spec/core/expressions/index.d.ts +2 -0
  24. package/dist/application-spec/core/expressions/index.js +1 -0
  25. package/dist/application-spec/core/expressions/relation-expression-params.d.ts +11 -0
  26. package/dist/application-spec/core/expressions/sdk-expression-implementation.d.ts +24 -0
  27. package/dist/application-spec/core/expressions/sdk-expression-implementation.js +1 -0
  28. package/dist/application-spec/core/index.d.ts +2 -0
  29. package/dist/application-spec/core/index.js +1 -1
  30. package/dist/application-spec/core/json-value.d.ts +1 -1
  31. package/dist/application-spec/{core → enhanced-json}/eval-to-constant.d.ts +1 -1
  32. package/dist/application-spec/enhanced-json/index.d.ts +4 -0
  33. package/dist/application-spec/enhanced-json/index.js +1 -0
  34. package/dist/application-spec/enhanced-json/is-enhanced-json-array.d.ts +2 -0
  35. package/dist/application-spec/enhanced-json/is-enhanced-json-array.js +1 -0
  36. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.d.ts +18 -0
  37. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.js +1 -0
  38. package/dist/application-spec/enhanced-json/schema-from-value.d.ts +24 -0
  39. package/dist/application-spec/enhanced-json/schema-from-value.js +1 -0
  40. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.d.ts +14 -0
  41. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.js +1 -0
  42. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.d.ts +12 -0
  43. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.js +1 -0
  44. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.d.ts +13 -0
  45. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.js +1 -0
  46. package/dist/application-spec/errors/diagnostic-codes.d.ts +23 -0
  47. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  48. package/dist/application-spec/errors/diagnostic-messages.d.ts +27 -1
  49. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  50. package/dist/application-spec/generate-application/code/common/code-imports.js +1 -1
  51. package/dist/application-spec/generate-application/code/common/env-reader.js +2 -2
  52. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  53. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  54. package/dist/application-spec/generate-application/code/common/single-quoted-string.d.ts +6 -0
  55. package/dist/application-spec/generate-application/code/common/single-quoted-string.js +1 -0
  56. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  57. package/dist/application-spec/generate-application/code/generate-application-code.d.ts +3 -2
  58. package/dist/application-spec/generate-application/code/generate-application-code.js +1 -1
  59. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +22 -14
  60. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  61. package/dist/application-spec/generate-application/code/standalone-app-files.d.ts +2 -2
  62. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  63. package/dist/application-spec/generate-application/code/story-files.js +1 -1
  64. package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -0
  65. package/dist/application-spec/generate-application/code/templates/application-types.js +6 -6
  66. package/dist/application-spec/generate-application/code/templates/common/doc-comment.d.ts +2 -0
  67. package/dist/application-spec/generate-application/code/templates/common/doc-comment.js +1 -0
  68. package/dist/application-spec/generate-application/code/templates/common/format-property-key.d.ts +7 -0
  69. package/dist/application-spec/generate-application/code/templates/common/format-property-key.js +1 -0
  70. package/dist/application-spec/generate-application/code/templates/common/schema-to-type-string.js +3 -3
  71. package/dist/application-spec/generate-application/code/templates/configurator-config.js +6 -4
  72. package/dist/application-spec/generate-application/code/templates/configurator-globals.d.ts +2 -1
  73. package/dist/application-spec/generate-application/code/templates/configurator-globals.js +19 -6
  74. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +35 -0
  75. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +5 -0
  76. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.d.ts +1 -0
  77. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.js +1 -0
  78. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.d.ts +1 -1
  79. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +7 -7
  80. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  81. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  82. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +69 -73
  83. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +8 -0
  84. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  85. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  86. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-presets.js +1 -1
  87. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  88. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  89. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +21 -21
  90. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.d.ts +1 -1
  91. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.js +2 -2
  92. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +3 -2
  93. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  94. package/dist/application-spec/generate-application/code/templates/domain-spec.js +12 -12
  95. package/dist/application-spec/generate-application/code/templates/domain.js +3 -3
  96. package/dist/application-spec/generate-application/code/templates/eslint-config.d.ts +5 -0
  97. package/dist/application-spec/generate-application/code/templates/eslint-config.js +4 -5
  98. package/dist/application-spec/generate-application/code/templates/frontend-config.js +3 -5
  99. package/dist/application-spec/generate-application/code/templates/gitignore.js +0 -3
  100. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.js +7 -7
  101. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.d.ts +12 -0
  102. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.js +7 -0
  103. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.d.ts +43 -0
  104. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +33 -0
  105. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +2 -0
  106. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  107. package/dist/application-spec/generate-application/code/templates/globals.js +24 -43
  108. package/dist/application-spec/generate-application/code/templates/index.d.ts +3 -10
  109. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  110. package/dist/application-spec/generate-application/code/templates/lingui-rc.d.ts +5 -0
  111. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +4 -4
  112. package/dist/application-spec/generate-application/code/templates/prettier-config.d.ts +5 -0
  113. package/dist/application-spec/generate-application/code/templates/prettier-config.js +4 -5
  114. package/dist/application-spec/generate-application/code/templates/root-tsconfig.d.ts +6 -0
  115. package/dist/application-spec/generate-application/code/templates/root-tsconfig.js +2 -0
  116. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  117. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +66 -42
  118. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +5 -5
  119. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +9 -3
  120. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  121. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +2 -2
  122. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +36 -18
  123. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +6 -8
  124. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
  125. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
  126. package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
  127. package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
  128. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
  129. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
  130. package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
  131. package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
  132. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
  133. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
  134. package/dist/application-spec/generate-application/code/templates/story/phx-module.d.ts +8 -2
  135. package/dist/application-spec/generate-application/code/templates/story/phx-module.js +15 -3
  136. package/dist/application-spec/generate-application/code/templates/story/wrapper.d.ts +3 -0
  137. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -1
  138. package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
  139. package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
  140. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +6 -1
  141. package/dist/application-spec/generate-application/code/templates/webhook-index.js +10 -1
  142. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -3
  143. package/dist/application-spec/generate-application/index.d.ts +2 -0
  144. package/dist/application-spec/generate-application/index.js +1 -1
  145. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +6 -4
  146. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +1 -1
  147. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +8 -3
  148. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  149. package/dist/application-spec/generate-application/runtime/admin-runtime/states-runtime.d.ts +2 -2
  150. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +19 -7
  151. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  152. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +6 -4
  153. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +1 -1
  154. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +7 -4
  155. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  156. package/dist/application-spec/generate-application/runtime/configurator-runtime/states-runtime.d.ts +2 -2
  157. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +43 -0
  158. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.js +1 -0
  159. package/dist/application-spec/generate-application/runtime/factory-data/index.d.ts +3 -0
  160. package/dist/application-spec/generate-application/runtime/factory-data/index.js +1 -0
  161. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +13 -0
  162. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -0
  163. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +16 -0
  164. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -0
  165. package/dist/application-spec/generate-application/runtime/migrations/index.d.ts +1 -0
  166. package/dist/application-spec/generate-application/runtime/migrations/index.js +1 -0
  167. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +53 -0
  168. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +1 -0
  169. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +2 -2
  170. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +3 -2
  171. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  172. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +2 -1
  173. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +1 -1
  174. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +5 -1
  175. package/dist/application-spec/generate-application/runtime/sections/component-optic.js +1 -1
  176. package/dist/application-spec/generate-application/runtime/sections/data-runtime.d.ts +4 -4
  177. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +7 -4
  178. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  179. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +9 -5
  180. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  181. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +3 -1
  182. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.js +1 -1
  183. package/dist/application-spec/generate-application/runtime/sections/theme-runtime.d.ts +2 -2
  184. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +4 -6
  185. package/dist/application-spec/generate-application/runtime/spec-code/index.d.ts +2 -0
  186. package/dist/application-spec/generate-application/runtime/spec-code/index.js +1 -0
  187. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +18 -0
  188. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.js +1 -0
  189. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.d.ts +17 -0
  190. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.js +1 -0
  191. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.d.ts +9 -0
  192. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.js +1 -0
  193. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.d.ts +8 -0
  194. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.js +1 -0
  195. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +27 -0
  196. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.js +1 -0
  197. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +5 -0
  198. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -0
  199. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +68 -0
  200. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -0
  201. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +40 -0
  202. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.js +1 -0
  203. package/dist/application-spec/index.d.ts +1 -0
  204. package/dist/application-spec/index.js +1 -1
  205. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +34 -0
  206. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  207. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.d.ts +16 -0
  208. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.js +9 -0
  209. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts +9 -0
  210. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
  211. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  212. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  213. package/dist/application-spec/parse-application-files/raw-spec/parse-yaml-spec-file.js +1 -1
  214. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +47 -4
  215. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  216. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  217. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  218. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  219. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  220. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  221. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.d.ts +3 -0
  222. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js +1 -0
  223. package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +5 -0
  224. package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -0
  225. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.d.ts +6 -0
  226. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.js +1 -0
  227. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.d.ts +8 -0
  228. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.js +1 -0
  229. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts +10 -0
  230. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.js +1 -0
  231. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.d.ts +98 -0
  232. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.js +1 -0
  233. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts +13 -0
  234. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js +1 -0
  235. package/dist/application-spec/parse-application-files/spec/components/bindings/index.d.ts +2 -0
  236. package/dist/application-spec/parse-application-files/spec/components/bindings/index.js +1 -1
  237. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.d.ts +24 -0
  238. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js +1 -0
  239. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  240. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  241. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  242. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  243. package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts +8 -0
  244. package/dist/application-spec/parse-application-files/spec/components/component-state-type.js +1 -0
  245. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts +13 -0
  246. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js +1 -0
  247. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  248. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  249. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.d.ts +14 -0
  250. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.js +1 -0
  251. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +6 -0
  252. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  253. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +7 -4
  254. package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
  255. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +24 -0
  256. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -0
  257. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.d.ts +13 -0
  258. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.js +1 -0
  259. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
  260. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
  261. package/dist/application-spec/parse-application-files/spec/expressions/expression.d.ts +1 -28
  262. package/dist/application-spec/parse-application-files/spec/expressions/expression.js +1 -1
  263. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -3
  264. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  265. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  266. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  267. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  268. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +3 -1
  269. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  270. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +2 -2
  271. package/dist/application-spec/parse-application-files/spec/invariants/invariants.js +1 -1
  272. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  273. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  274. package/dist/application-spec/parse-application-files/spec/model/index.d.ts +1 -0
  275. package/dist/application-spec/parse-application-files/spec/model/index.js +1 -1
  276. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.d.ts +10 -0
  277. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.js +1 -0
  278. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  279. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  280. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  281. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  282. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  283. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  284. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.d.ts +9 -0
  285. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.js +1 -0
  286. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +4 -1
  287. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  288. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  289. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  290. package/dist/client/phoenix-api.d.ts +463 -0
  291. package/dist/configurator/ConfiguratorApp.js +1 -1
  292. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.d.ts +2 -0
  293. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.js +5 -0
  294. package/dist/configurator/app-loader-content/app-loader-content-name.d.ts +5 -0
  295. package/dist/configurator/app-loader-content/app-loader-content-name.js +1 -0
  296. package/dist/configurator/app-loader-content/index.d.ts +2 -0
  297. package/dist/configurator/app-loader-content/index.js +1 -0
  298. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  299. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  300. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  301. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +41 -3
  302. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  303. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +39 -7
  304. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  305. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.d.ts +1 -1
  306. package/dist/configurator/application-runtime/extensions/systems/canvas-system.d.ts +8 -0
  307. package/dist/configurator/application-runtime/extensions/systems/canvas-system.js +1 -1
  308. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  309. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.d.ts +8 -0
  310. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.js +1 -0
  311. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.d.ts +23 -1
  312. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.js +1 -1
  313. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.d.ts +12 -0
  314. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.js +1 -0
  315. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +14 -1
  316. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  317. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +64 -7
  318. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  319. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  320. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  321. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.d.ts +14 -5
  322. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.js +1 -1
  323. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  324. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  325. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  326. package/dist/configurator/common/configurator-interface.d.ts +146 -4
  327. package/dist/configurator/common/configurator-interface.js +1 -1
  328. package/dist/configurator/common/index.d.ts +3 -1
  329. package/dist/configurator/common/index.js +1 -1
  330. package/dist/configurator/common/use-reset-camera.d.ts +6 -0
  331. package/dist/configurator/common/use-reset-camera.js +1 -0
  332. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +12 -0
  333. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -0
  334. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.d.ts +9 -0
  335. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.js +1 -0
  336. package/dist/configurator/configuration-not-found-page/index.d.ts +2 -0
  337. package/dist/configurator/configuration-not-found-page/index.js +1 -0
  338. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +12 -0
  339. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -0
  340. package/dist/configurator/configurator-context/PresetSelectionProvider.js +1 -1
  341. package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
  342. package/dist/configurator/configurator-context/ViewportStateSync.d.ts +2 -2
  343. package/dist/configurator/configurator-context/ViewportStateSync.js +1 -1
  344. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +11 -1
  345. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +1 -1
  346. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.d.ts +6 -0
  347. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.js +1 -0
  348. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.d.ts +12 -0
  349. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.js +1 -0
  350. package/dist/configurator/configurator-error-page/create-configurator-error-page.d.ts +9 -0
  351. package/dist/configurator/configurator-error-page/create-configurator-error-page.js +1 -0
  352. package/dist/configurator/configurator-error-page/index.d.ts +3 -0
  353. package/dist/configurator/configurator-error-page/index.js +1 -0
  354. package/dist/configurator/index.d.ts +3 -0
  355. package/dist/configurator/index.js +1 -1
  356. package/dist/configurator/pages/ConfiguratorErrorPage.d.ts +0 -1
  357. package/dist/configurator/pages/ConfiguratorErrorPage.js +1 -1
  358. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  359. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +7 -0
  360. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  361. package/dist/configurator/pages/DefaultNotAuthenticatedPage.d.ts +8 -0
  362. package/dist/configurator/pages/DefaultNotAuthenticatedPage.js +1 -0
  363. package/dist/configurator/pages/DefaultPresetUi.d.ts +7 -0
  364. package/dist/configurator/pages/DefaultPresetUi.js +1 -0
  365. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  366. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  367. package/dist/configurator/pages/PresetCreationErrorPage.d.ts +1 -1
  368. package/dist/configurator/pages/PresetCreationErrorPage.js +1 -1
  369. package/dist/configurator/pages/RootPage.js +1 -1
  370. package/dist/configurator/pages/configurator-layout-name.d.ts +2 -0
  371. package/dist/configurator/pages/configurator-layout-name.js +1 -0
  372. package/dist/configurator/pages/default-configurator-elements.d.ts +13 -0
  373. package/dist/configurator/pages/default-configurator-elements.js +1 -0
  374. package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +10 -0
  375. package/dist/configurator/pages/default-elements/built-in-entity-element.js +1 -0
  376. package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +10 -0
  377. package/dist/configurator/pages/default-elements/built-in-layout-element.js +1 -0
  378. package/dist/configurator/pages/default-elements/domain-control-elements.d.ts +6 -0
  379. package/dist/configurator/pages/default-elements/domain-control-elements.js +1 -0
  380. package/dist/configurator/pages/default-elements/index.d.ts +5 -0
  381. package/dist/configurator/pages/default-elements/index.js +1 -0
  382. package/dist/configurator/pages/default-elements/recipe-panel-elements.d.ts +3 -0
  383. package/dist/configurator/pages/default-elements/recipe-panel-elements.js +1 -0
  384. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.d.ts +3 -0
  385. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.js +1 -0
  386. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.d.ts +3 -0
  387. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.js +1 -0
  388. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.d.ts +3 -0
  389. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.js +1 -0
  390. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.d.ts +3 -0
  391. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.js +1 -0
  392. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.d.ts +3 -0
  393. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.js +1 -0
  394. package/dist/configurator/pages/default-elements/scene-controls/index.d.ts +6 -0
  395. package/dist/configurator/pages/default-elements/scene-controls/index.js +1 -0
  396. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.d.ts +6 -0
  397. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.js +1 -0
  398. package/dist/configurator/pages/default-elements/sidebar-footer-elements.d.ts +7 -0
  399. package/dist/configurator/pages/default-elements/sidebar-footer-elements.js +1 -0
  400. package/dist/configurator/pages/default-elements/toolbar-elements.d.ts +7 -0
  401. package/dist/configurator/pages/default-elements/toolbar-elements.js +1 -0
  402. package/dist/configurator/pages/error-boundaries/GeneralErrorBoundary.js +1 -1
  403. package/dist/configurator/pages/index.d.ts +1 -0
  404. package/dist/configurator/pages/index.js +1 -1
  405. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.d.ts +4 -0
  406. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.js +1 -0
  407. package/dist/configurator/preset-screen-elements/PresetPageActionElement.d.ts +4 -0
  408. package/dist/configurator/preset-screen-elements/PresetPageActionElement.js +1 -0
  409. package/dist/configurator/preset-screen-elements/index.d.ts +2 -0
  410. package/dist/configurator/preset-screen-elements/index.js +1 -0
  411. package/dist/configurator/scene/index.d.ts +1 -0
  412. package/dist/configurator/scene/index.js +1 -1
  413. package/dist/configurator/scene/scene-controls/DeleteEntityFab.js +1 -1
  414. package/dist/configurator/scene/scene-controls/SelectionHotspot.js +1 -1
  415. package/dist/configurator/scene/scene-controls/ToolFab.d.ts +4 -0
  416. package/dist/configurator/scene/scene-controls/ToolFab.js +1 -1
  417. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  418. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  419. package/dist/configurator/scene/scene-controls/use-scene-control-tooltip.d.ts +2 -1
  420. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  421. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  422. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  423. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  424. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  425. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  426. package/dist/configurator/scene/scene-entity/scene-controls/SceneEntityHtmlHotspots.js +1 -1
  427. package/dist/configurator/toolbar-actions/index.d.ts +3 -0
  428. package/dist/configurator/toolbar-actions/index.js +1 -0
  429. package/dist/configurator/toolbar-actions/use-assistant-panel.d.ts +18 -0
  430. package/dist/configurator/toolbar-actions/use-assistant-panel.js +1 -0
  431. package/dist/configurator/toolbar-actions/use-measurements.d.ts +35 -0
  432. package/dist/configurator/toolbar-actions/use-measurements.js +1 -0
  433. package/dist/configurator/toolbar-actions/use-toolbar-actions.d.ts +100 -0
  434. package/dist/configurator/toolbar-actions/use-toolbar-actions.js +1 -0
  435. package/dist/configurator/toolbar-actions/use-toolbar-help.d.ts +7 -0
  436. package/dist/configurator/toolbar-actions/use-toolbar-help.js +1 -0
  437. package/dist/configurator/ui/assistant/AssistantChips.d.ts +10 -3
  438. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  439. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -2
  440. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  441. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  442. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  443. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +8 -0
  444. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -0
  445. package/dist/configurator/ui/assistant/alert/index.d.ts +2 -0
  446. package/dist/configurator/ui/assistant/alert/index.js +1 -0
  447. package/dist/configurator/ui/assistant/alert/remark-alerts.d.ts +10 -0
  448. package/dist/configurator/ui/assistant/alert/remark-alerts.js +1 -0
  449. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  450. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  451. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  452. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  453. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  454. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  455. package/dist/configurator/ui/assistant/entity-link/index.d.ts +2 -0
  456. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  457. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +19 -0
  458. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -0
  459. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +11 -0
  460. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -0
  461. package/dist/configurator/ui/assistant/form/describe-build-errors.d.ts +6 -0
  462. package/dist/configurator/ui/assistant/form/describe-build-errors.js +1 -0
  463. package/dist/configurator/ui/assistant/form/form-model.d.ts +37 -0
  464. package/dist/configurator/ui/assistant/form/form-model.js +1 -0
  465. package/dist/configurator/ui/assistant/form/form-state.d.ts +4 -0
  466. package/dist/configurator/ui/assistant/form/form-state.js +1 -0
  467. package/dist/configurator/ui/assistant/form/index.d.ts +4 -0
  468. package/dist/configurator/ui/assistant/form/index.js +1 -0
  469. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +10 -0
  470. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -0
  471. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +13 -0
  472. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -0
  473. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +3 -0
  474. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.js +1 -0
  475. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.d.ts +31 -0
  476. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.js +1 -0
  477. package/dist/configurator/ui/assistant/form/registry/form-element-definition.d.ts +16 -0
  478. package/dist/configurator/ui/assistant/form/registry/form-element-definition.js +1 -0
  479. package/dist/configurator/ui/assistant/form/registry/form-registry.d.ts +31 -0
  480. package/dist/configurator/ui/assistant/form/registry/form-registry.js +1 -0
  481. package/dist/configurator/ui/assistant/form/registry/index.d.ts +6 -0
  482. package/dist/configurator/ui/assistant/form/registry/index.js +1 -0
  483. package/dist/configurator/ui/assistant/form/registry/use-form-registry.d.ts +8 -0
  484. package/dist/configurator/ui/assistant/form/registry/use-form-registry.js +1 -0
  485. package/dist/configurator/ui/assistant/form-elements/FormCard.d.ts +9 -0
  486. package/dist/configurator/ui/assistant/form-elements/FormCard.js +1 -0
  487. package/dist/configurator/ui/assistant/form-elements/FormConfirm.d.ts +9 -0
  488. package/dist/configurator/ui/assistant/form-elements/FormConfirm.js +1 -0
  489. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +6 -0
  490. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -0
  491. package/dist/configurator/ui/assistant/form-elements/FormNumber.d.ts +9 -0
  492. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -0
  493. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +6 -0
  494. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -0
  495. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +6 -0
  496. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -0
  497. package/dist/configurator/ui/assistant/form-elements/FormSwatch.d.ts +10 -0
  498. package/dist/configurator/ui/assistant/form-elements/FormSwatch.js +1 -0
  499. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +6 -0
  500. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -0
  501. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.d.ts +10 -0
  502. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.js +1 -0
  503. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +38 -0
  504. package/dist/configurator/ui/assistant/form-elements/form-element-props.js +1 -0
  505. package/dist/configurator/ui/assistant/form-elements/index.d.ts +9 -0
  506. package/dist/configurator/ui/assistant/form-elements/index.js +1 -0
  507. package/dist/configurator/ui/assistant/index.d.ts +3 -0
  508. package/dist/configurator/ui/assistant/index.js +1 -1
  509. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +16 -0
  510. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -0
  511. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.d.ts +34 -0
  512. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.js +1 -0
  513. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.d.ts +25 -0
  514. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.js +1 -0
  515. package/dist/configurator/ui/assistant/reference-link/index.d.ts +3 -0
  516. package/dist/configurator/ui/assistant/reference-link/index.js +1 -0
  517. package/dist/configurator/ui/assistant/reference-link/reference-styles.d.ts +12 -0
  518. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -0
  519. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.d.ts +8 -0
  520. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.js +1 -0
  521. package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +9 -0
  522. package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -0
  523. package/dist/configurator/ui/assistant/resource-image/index.d.ts +3 -0
  524. package/dist/configurator/ui/assistant/resource-image/index.js +1 -0
  525. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +2 -0
  526. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -0
  527. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.d.ts +5 -0
  528. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.js +1 -0
  529. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +9 -0
  530. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -0
  531. package/dist/configurator/ui/assistant/screenshots/index.d.ts +2 -0
  532. package/dist/configurator/ui/assistant/screenshots/index.js +1 -0
  533. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +14 -0
  534. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -0
  535. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +4 -2
  536. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  537. package/dist/configurator/ui/assistant/thread-items.d.ts +8 -1
  538. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  539. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  540. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -1
  541. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  542. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  543. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  544. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  545. package/dist/configurator/ui/configurator-layout/slots/canvas/LayoutCanvas.js +1 -1
  546. package/dist/configurator/ui/configurator-layout/slots/canvas/SharedCanvas.js +1 -1
  547. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.d.ts +101 -0
  548. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  549. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  550. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  551. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.d.ts +1 -1
  552. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.js +1 -1
  553. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  554. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  555. package/dist/configurator/ui/configurator-layout/slots/services/Services.js +1 -1
  556. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  557. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  558. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.d.ts +1 -1
  559. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.js +1 -1
  560. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  561. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  562. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +0 -74
  563. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  564. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  565. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.d.ts +5 -0
  566. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.js +1 -0
  567. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  568. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +4 -4
  569. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  570. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  571. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  572. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  573. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  574. package/dist/configurator/ui/index.d.ts +1 -0
  575. package/dist/configurator/ui/index.js +1 -1
  576. package/dist/configurator/ui/legacy/layout/common/CommonFinalizeButton.js +1 -1
  577. package/dist/configurator/ui/legacy/layout/common/CommonSummaryButton.js +1 -1
  578. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  579. package/dist/configurator/ui/legacy/layout/common/ReactiveInterfaceLayout.js +1 -1
  580. package/dist/configurator/ui/legacy/layout/common/ResponsiveFinalizeButton.js +1 -1
  581. package/dist/configurator/ui/legacy/layout/common/SummaryReadLayout.js +1 -1
  582. package/dist/configurator/ui/legacy/layout/simple/SimpleOwnerLayout.js +1 -1
  583. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  584. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  585. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  586. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  587. package/dist/configurator/ui/legacy/layout/steps/StepsSidebarFooter.js +1 -1
  588. package/dist/configurator/ui/legacy/layout/tabs/TabsOwnerLayout.js +1 -1
  589. package/dist/configurator/ui/legacy/toolbar/common/DimensionUnitSelector.js +1 -1
  590. package/dist/configurator/ui/legacy/toolbar/common/MeasurementsIndicatorsSwitch.js +1 -1
  591. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/FullscreenToolbarAction.js +1 -1
  592. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/HelpToolbarAction.js +1 -1
  593. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/MeasurementsToolbarAction.js +1 -1
  594. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/UndoRedoToolbarGroup.js +1 -1
  595. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.js +2 -6
  596. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -1
  597. package/dist/configurator/ui/phoenix-layout-elements/EnterFullscreenToolbarButton.js +1 -1
  598. package/dist/configurator/ui/phoenix-layout-elements/ExitFullscreenToolbarButton.js +1 -1
  599. package/dist/configurator/ui/phoenix-layout-elements/HelpToolbarButton.js +1 -1
  600. package/dist/configurator/ui/phoenix-layout-elements/LanguageMenuAction.js +1 -1
  601. package/dist/configurator/ui/phoenix-layout-elements/LanguageToolbarButton.js +1 -1
  602. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.d.ts +1 -0
  603. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.js +1 -1
  604. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.d.ts +1 -0
  605. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.js +1 -1
  606. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsMenuAction.js +1 -1
  607. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsToolbarButton.js +1 -1
  608. package/dist/configurator/ui/phoenix-layout-elements/RedoToolbarButton.js +1 -1
  609. package/dist/configurator/ui/phoenix-layout-elements/ShareToolbarButton.js +1 -1
  610. package/dist/configurator/ui/phoenix-layout-elements/UndoToolbarButton.js +1 -1
  611. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  612. package/dist/configurator/ui/phoenix-layout-elements/header/common/horizontal-tabs/DesktopHorizontalTabs.js +1 -1
  613. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.d.ts +1 -1
  614. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.js +1 -1
  615. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -8
  616. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  617. package/dist/configurator/ui/phoenix-layout-elements/measurements/DimensionUnitSelector.js +1 -1
  618. package/dist/configurator/ui/phoenix-layout-elements/measurements/MeasurementsIndicatorsSwitch.js +1 -1
  619. package/dist/configurator/ui/phoenix-layout-elements/share/ShareModal.js +1 -1
  620. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.d.ts +7 -8
  621. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.js +1 -1
  622. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/BasicFinalizeButton.js +1 -1
  623. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/CustomFinalizeButton.js +1 -1
  624. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/EnterSummaryButton.js +1 -1
  625. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/FinalizeActions.js +1 -1
  626. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/NextStepButton.js +1 -1
  627. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  628. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  629. package/dist/configurator/ui/preset-layout/PresetUi.d.ts +4 -0
  630. package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
  631. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.d.ts +10 -0
  632. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -0
  633. package/dist/configurator/ui/save-message-snackbars/index.d.ts +1 -0
  634. package/dist/configurator/ui/save-message-snackbars/index.js +1 -0
  635. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +16 -19
  636. package/dist/docs/complex-use-cases/focus-mode.mdx +2 -0
  637. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  638. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  639. package/dist/docs/controls/select-child-entity/cardselect.mdx +1 -0
  640. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  641. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  642. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  643. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  644. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  645. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  646. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  647. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  648. package/dist/docs/fabs/basic.mdx +6 -2
  649. package/dist/docs/index.json +103 -1
  650. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  651. package/dist/docs/layouts/custom-layout.mdx +2437 -0
  652. package/dist/docs/layouts/gallery/ardent-compressor.mdx +3516 -0
  653. package/dist/docs/layouts/gallery/fenwick-window.mdx +2803 -0
  654. package/dist/docs/layouts/gallery/ferrule-bar-station.mdx +6567 -0
  655. package/dist/docs/layouts/gallery/kestrel-kettle.mdx +1858 -0
  656. package/dist/docs/layouts/gallery/sunfold-solar.mdx +2683 -0
  657. package/dist/docs/layouts/header/fixed.mdx +2 -2
  658. package/dist/docs/layouts/header/floating.mdx +2 -2
  659. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  660. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  661. package/dist/docs/other-features/client-side-rendering/declarative.mdx +2 -2
  662. package/dist/docs/other-features/error-5xx.mdx +1 -1
  663. package/dist/docs/other-features/navigation-hotspot.mdx +2 -0
  664. package/dist/docs/other-features/not-found-404.mdx +1 -1
  665. package/dist/docs/other-features/side-effects.mdx +8 -11
  666. package/dist/docs/other-features/transformers.mdx +4 -0
  667. package/dist/docs/other-features/violation-messages.mdx +52 -56
  668. package/dist/docs/phoenix/application-states.mdx +9 -7
  669. package/dist/docs/phoenix/clerk-sign-in.mdx +1 -1
  670. package/dist/docs/phoenix/components.mdx +6 -0
  671. package/dist/docs/phoenix/configurator-interface.mdx +401 -81
  672. package/dist/docs/phoenix/deployments.mdx +2 -6
  673. package/dist/docs/phoenix/domain-model.mdx +6 -0
  674. package/dist/docs/phoenix/finalization.mdx +1 -1
  675. package/dist/docs/phoenix/getting-started.mdx +7 -4
  676. package/dist/docs/phoenix/layout-slots.mdx +116 -0
  677. package/dist/docs/phoenix/localization.mdx +10 -6
  678. package/dist/docs/phoenix/migration-guide.mdx +24 -11
  679. package/dist/docs/phoenix/phoenix-cli.mdx +88 -44
  680. package/dist/docs/phoenix/project-structure.mdx +80 -36
  681. package/dist/docs/phoenix/quickstart.mdx +9 -9
  682. package/dist/docs/phoenix/sdk-builder-workflow.mdx +9 -9
  683. package/dist/docs/phoenix/sessions-and-access.mdx +2 -0
  684. package/dist/docs/phoenix/testing.mdx +148 -0
  685. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  686. package/dist/docs/phoenix/webhooks.mdx +23 -6
  687. package/dist/docs/selection-and-highlight/hotspots.mdx +2 -0
  688. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  689. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -11
  690. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  691. package/dist/domain/admin-domain/index.js +1 -1
  692. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  693. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  694. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  695. package/dist/domain/application/application-config.d.ts +8 -5
  696. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  697. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  698. package/dist/domain/application/assistant/assistant-manifest.d.ts +25 -2
  699. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +46 -3
  700. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -1
  701. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  702. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  703. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  704. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  705. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  706. package/dist/domain/application/assistant/form/assistant-form-element-name.d.ts +11 -0
  707. package/dist/domain/application/assistant/form/assistant-form-element-name.js +8 -0
  708. package/dist/domain/application/assistant/form/assistant-form-elements.d.ts +174 -0
  709. package/dist/domain/application/assistant/form/assistant-form-elements.js +1 -0
  710. package/dist/domain/application/assistant/form/assistant-resource-path.d.ts +10 -0
  711. package/dist/domain/application/assistant/form/assistant-resource-path.js +1 -0
  712. package/dist/domain/application/assistant/form/index.d.ts +4 -0
  713. package/dist/domain/application/assistant/form/index.js +1 -0
  714. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  715. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  716. package/dist/domain/application/assistant/index.d.ts +8 -2
  717. package/dist/domain/application/assistant/index.js +1 -1
  718. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  719. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  720. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  721. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  722. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +50 -0
  723. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  724. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  725. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  726. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  727. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  728. package/dist/domain/application/assistant-recipe-groups.d.ts +4 -2
  729. package/dist/domain/application/configurator-builder.d.ts +5 -2
  730. package/dist/domain/application/configurator-builder.js +1 -1
  731. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  732. package/dist/domain/application/index.d.ts +0 -4
  733. package/dist/domain/application/index.js +1 -1
  734. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  735. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  736. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  737. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  738. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  739. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +1 -1
  740. package/dist/domain/application/published-data/map-published-data.d.ts +7 -3
  741. package/dist/domain/available-system-components.d.ts +1 -1
  742. package/dist/domain/available-system-components.js +1 -1
  743. package/dist/domain/core/component/domain-component-optic.d.ts +11 -19
  744. package/dist/domain/core/component/domain-component-optic.js +2 -2
  745. package/dist/domain/core/component/legacy-filter.d.ts +2 -17
  746. package/dist/domain/core/component/system-component-filter.d.ts +36 -18
  747. package/dist/domain/core/expression/constant-expressions.d.ts +16 -8
  748. package/dist/domain/core/expression/constant-expressions.js +1 -1
  749. package/dist/domain/core/expression/custom-expression.d.ts +17 -4
  750. package/dist/domain/core/expression/custom-expression.js +1 -1
  751. package/dist/domain/core/expression/expression.d.ts +1 -2
  752. package/dist/domain/core/invariant/custom-invariants.d.ts +6 -14
  753. package/dist/domain/core/invariant/invariants.d.ts +1 -4
  754. package/dist/domain/core/invariant/violation.d.ts +50 -2
  755. package/dist/domain/core/invariant/violation.js +1 -1
  756. package/dist/domain/core/model/model.d.ts +1 -1
  757. package/dist/domain/core/recipe/recipes.d.ts +18 -50
  758. package/dist/domain/core/recipe/recipes.js +1 -1
  759. package/dist/domain/core/relation/all-of-type-relation.d.ts +8 -21
  760. package/dist/domain/core/relation/all-of-type-relation.js +1 -1
  761. package/dist/domain/core/relation/direct-relation.d.ts +13 -24
  762. package/dist/domain/core/relation/index.d.ts +0 -1
  763. package/dist/domain/core/relation/indirect-relation.d.ts +12 -67
  764. package/dist/domain/core/relation/indirect-relation.js +1 -1
  765. package/dist/domain/core/relation/relation-factory.d.ts +19 -15
  766. package/dist/domain/core/relation/relation-factory.js +1 -1
  767. package/dist/domain/core/schema/extended-schema-validator.js +1 -1
  768. package/dist/domain/core/state/migrations.d.ts +14 -45
  769. package/dist/domain/core/state/migrations.js +1 -1
  770. package/dist/domain/core/state/state.d.ts +1 -1
  771. package/dist/domain/domain-builder.d.ts +1 -1
  772. package/dist/domain/domain-builder.js +1 -1
  773. package/dist/domain/domain-context/action-system/action-system.d.ts +1 -1
  774. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  775. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  776. package/dist/domain/domain-context/action-system/index.js +1 -0
  777. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  778. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  779. package/dist/domain/domain-context/create-transformer.d.ts +1 -1
  780. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +2 -2
  781. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  782. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  783. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  784. package/dist/domain/domain-context/domain-context-systems.d.ts +7 -7
  785. package/dist/domain/domain-context/index.d.ts +8 -17
  786. package/dist/domain/domain-context/index.js +1 -1
  787. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  788. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  789. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +2 -3
  790. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  791. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +1 -1
  792. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  793. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  794. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +1 -1
  795. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  796. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +2 -2
  797. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +2 -2
  798. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +2 -2
  799. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  800. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  801. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +2 -2
  802. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  803. package/dist/domain/domain-context/store-system/index.js +1 -0
  804. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  805. package/dist/domain/domain-context/store-system/store-system.d.ts +6 -3
  806. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  807. package/dist/domain/domain-context/store-system/system-state.d.ts +1 -1
  808. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  809. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +5 -7
  810. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  811. package/dist/domain/domain-context/transformers/chain-builder.d.ts +1 -1
  812. package/dist/domain/domain-context/transformers/context.d.ts +1 -1
  813. package/dist/domain/domain-context/transformers/context.js +1 -1
  814. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  815. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  816. package/dist/domain/domain-context/transformers/index.js +1 -1
  817. package/dist/domain/domain-context/transformers/when-builder.d.ts +2 -3
  818. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  819. package/dist/domain/domain-context/undo-system.d.ts +29 -2
  820. package/dist/domain/domain-context/undo-system.js +1 -1
  821. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  822. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  823. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  824. package/dist/domain/domain-runtime/access/types.js +1 -1
  825. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  826. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +18 -22
  827. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  828. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  829. package/dist/domain/domain-runtime/domain-runtime.d.ts +84 -60
  830. package/dist/domain/domain-runtime/environment/types.d.ts +1 -1
  831. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +19 -0
  832. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  833. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  834. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  835. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  836. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  837. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  838. package/dist/domain/domain-runtime/errors/index.js +1 -0
  839. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  840. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  841. package/dist/domain/domain-runtime/index.d.ts +1 -0
  842. package/dist/domain/domain-runtime/index.js +1 -1
  843. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  844. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  845. package/dist/domain/domain-runtime/spec/index.d.ts +2 -5
  846. package/dist/domain/domain-runtime/spec/index.js +1 -1
  847. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  848. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  849. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +29 -14
  850. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  851. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.d.ts +12 -0
  852. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +1 -0
  853. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +1 -1
  854. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  855. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +9 -0
  856. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  857. package/dist/domain/{project-modules → domain-runtime/spec/module-checks}/project-modules.d.ts +8 -1
  858. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  859. package/dist/domain/domain-runtime/spec/{resolve-action-modules.d.ts → module-checks/resolve-action-modules.d.ts} +2 -2
  860. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  861. package/dist/domain/domain-runtime/spec/{resolve-component-optic-modules.d.ts → module-checks/resolve-component-optic-modules.d.ts} +2 -2
  862. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  863. package/dist/domain/domain-runtime/spec/{resolve-expression-modules.d.ts → module-checks/resolve-expression-modules.d.ts} +2 -2
  864. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  865. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  866. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  867. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  868. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  869. package/dist/domain/domain-runtime/spec/selectors.d.ts +8 -7
  870. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  871. package/dist/domain/domain-runtime/spec/types.d.ts +5 -2
  872. package/dist/domain/extensions/attribute-switch.d.ts +1 -1
  873. package/dist/domain/extensions/attribute-switch.js +1 -1
  874. package/dist/domain/extensions/canvas-config.d.ts +1 -1
  875. package/dist/domain/extensions/common/angle-indicator-schema.d.ts +2 -2
  876. package/dist/domain/extensions/common/dimension-indicator-schema.d.ts +2 -2
  877. package/dist/domain/extensions/editable-angle-indicator.d.ts +1 -1
  878. package/dist/domain/extensions/editable-distance-dimension-indicator.d.ts +1 -1
  879. package/dist/domain/extensions/editable-offset-indicator.d.ts +1 -1
  880. package/dist/domain/extensions/editable-offset-indicator.js +1 -1
  881. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +24 -0
  882. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -0
  883. package/dist/domain/extensions/export-images/client-side-image.d.ts +14 -0
  884. package/dist/domain/extensions/export-images/client-side-image.js +1 -0
  885. package/dist/domain/extensions/export-images/index.d.ts +3 -0
  886. package/dist/domain/extensions/export-images/index.js +1 -0
  887. package/dist/domain/extensions/{save-template-thumbnail.d.ts → export-images/save-template-thumbnail.d.ts} +4 -4
  888. package/dist/domain/extensions/export-images/save-template-thumbnail.js +1 -0
  889. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -1
  890. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -1
  891. package/dist/domain/extensions/horizontal-tabs.d.ts +2 -2
  892. package/dist/domain/extensions/index.d.ts +1 -2
  893. package/dist/domain/extensions/index.js +1 -1
  894. package/dist/domain/extensions/list-selector-dimension-indicator.d.ts +1 -1
  895. package/dist/domain/extensions/navigation-steps.d.ts +2 -2
  896. package/dist/domain/extensions/offset-indicator.js +1 -1
  897. package/dist/domain/extensions/rotation-handle.d.ts +2 -2
  898. package/dist/domain/extensions/scene-entity-animation.js +1 -1
  899. package/dist/domain/index.d.ts +0 -1
  900. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  901. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  902. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +32 -19
  903. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  904. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  905. package/dist/domain/mocks/create-mock-domain.js +1 -1
  906. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  907. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  908. package/dist/domain/mocks/create-test-application-config.js +1 -0
  909. package/dist/domain/mocks/index.d.ts +1 -0
  910. package/dist/domain/mocks/index.js +1 -1
  911. package/dist/domain/projections/blender-projections/blender-projections.d.ts +1 -2
  912. package/dist/domain/projections/blender-projections/camera.d.ts +2 -2
  913. package/dist/domain/projections/collision-projections.d.ts +1 -1
  914. package/dist/domain/projections/composition-projections.d.ts +1 -1
  915. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  916. package/dist/domain/projections/position-projections.d.ts +1 -1
  917. package/dist/domain/projections/projected-entities-projections.d.ts +1 -1
  918. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  919. package/dist/domain/projections/validation-projections.d.ts +2 -2
  920. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  921. package/dist/domain/system-components/application-config.d.ts +2 -2
  922. package/dist/domain/system-components/child-entity-selection.js +1 -1
  923. package/dist/domain/system-components/collision-box-geometry.d.ts +4 -2
  924. package/dist/domain/system-components/collision-geometry.d.ts +4 -2
  925. package/dist/domain/system-components/collision-point-geometry.d.ts +4 -2
  926. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  927. package/dist/domain/system-components/common/recipes.d.ts +21 -3
  928. package/dist/domain/system-components/common/recipes.js +1 -1
  929. package/dist/domain/system-components/common/scene-entity-control-schema.d.ts +3 -0
  930. package/dist/domain/system-components/common/scene-entity-control-schema.js +1 -1
  931. package/dist/domain/system-components/constraint.d.ts +10 -23
  932. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  933. package/dist/domain/system-components/drag-handle.js +1 -1
  934. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  935. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  936. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  937. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  938. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -1
  939. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  940. package/dist/domain/system-components/material-swatch.js +1 -1
  941. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  942. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  943. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  944. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  945. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  946. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  947. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  948. package/dist/domain/utils/eval-cache.d.ts +1 -1
  949. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  950. package/dist/editor/Editor.d.ts +7 -0
  951. package/dist/editor/Editor.js +1 -1
  952. package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
  953. package/dist/editor/domain-editors/apply-spec-update.d.ts +8 -1
  954. package/dist/editor/domain-editors/apply-spec-update.js +1 -1
  955. package/dist/editor/domain-editors/use-implementation-files.d.ts +1 -2
  956. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  957. package/dist/editor/mocks/CreateMockYaml.js +2 -2
  958. package/dist/editor/mocks/EditorMockContext.d.ts +2 -0
  959. package/dist/editor/mocks/EditorMockContext.js +1 -1
  960. package/dist/editor/screenshot/ScreenshotHandler.js +1 -1
  961. package/dist/globals/index.d.ts +2 -0
  962. package/dist/i18n/locales/cs/messages.js +1 -1
  963. package/dist/i18n/locales/da/messages.js +1 -1
  964. package/dist/i18n/locales/de/messages.js +1 -1
  965. package/dist/i18n/locales/de-AT/messages.js +1 -1
  966. package/dist/i18n/locales/en/messages.js +1 -1
  967. package/dist/i18n/locales/en-AU/messages.js +1 -1
  968. package/dist/i18n/locales/en-GB/messages.js +1 -1
  969. package/dist/i18n/locales/es/messages.js +1 -1
  970. package/dist/i18n/locales/fr/messages.js +1 -1
  971. package/dist/i18n/locales/hu/messages.js +1 -1
  972. package/dist/i18n/locales/it/messages.js +1 -1
  973. package/dist/i18n/locales/nl/messages.js +1 -1
  974. package/dist/i18n/locales/pl/messages.js +1 -1
  975. package/dist/i18n/locales/pt/messages.js +1 -1
  976. package/dist/i18n/locales/ro/messages.js +1 -1
  977. package/dist/i18n/locales/sk/messages.js +1 -1
  978. package/dist/i18n/locales/tr/messages.js +1 -1
  979. package/dist/legacy/domain-cli/gen/configurator-builder.js +13 -12
  980. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  981. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  982. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  983. package/dist/legacy/domain-cli/gen/invariants.js +3 -4
  984. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  985. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  986. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  987. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +176 -148
  988. package/dist/legacy/domain-spec/spec/domain-spec.js +1 -1
  989. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  990. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  991. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  992. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +7 -0
  993. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  994. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +15 -14
  995. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +14 -12
  996. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +14 -13
  997. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +13 -11
  998. package/dist/phoenix/application-spec/application-spec-builder.d.ts +0 -2
  999. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  1000. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +0 -2
  1001. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  1002. package/dist/phoenix/application-spec/generate-application-spec-story.js +2 -2
  1003. package/dist/phoenix/application-spec/generate-project-files.d.ts +0 -2
  1004. package/dist/phoenix/application-spec/project-files.js +1 -1
  1005. package/dist/phoenix/bin.d.ts +2 -0
  1006. package/dist/phoenix/bin.js +2 -0
  1007. package/dist/phoenix/check-configs/built-in-eslint-config.d.ts +9 -0
  1008. package/dist/phoenix/check-configs/built-in-eslint-config.js +1 -0
  1009. package/dist/phoenix/check-configs/eslint-config.d.ts +10 -0
  1010. package/dist/phoenix/check-configs/eslint-config.js +1 -0
  1011. package/dist/phoenix/check-configs/index.d.ts +8 -0
  1012. package/dist/phoenix/check-configs/index.js +1 -0
  1013. package/dist/phoenix/check-configs/typescript-project.d.ts +5 -0
  1014. package/dist/phoenix/check-configs/typescript-project.js +1 -0
  1015. package/dist/phoenix/cli.d.ts +0 -1
  1016. package/dist/phoenix/cli.js +1 -2
  1017. package/dist/phoenix/commands/build.js +1 -1
  1018. package/dist/phoenix/commands/check.js +1 -1
  1019. package/dist/phoenix/commands/clean.js +1 -1
  1020. package/dist/phoenix/commands/deploy.js +2 -2
  1021. package/dist/phoenix/commands/deps/deps.d.ts +73 -0
  1022. package/dist/phoenix/commands/deps/deps.js +3 -0
  1023. package/dist/phoenix/commands/deps/index.d.ts +1 -0
  1024. package/dist/phoenix/commands/deps/index.js +1 -0
  1025. package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
  1026. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
  1027. package/dist/phoenix/commands/dev.js +5 -5
  1028. package/dist/phoenix/commands/fix.js +1 -1
  1029. package/dist/phoenix/commands/index.d.ts +1 -0
  1030. package/dist/phoenix/commands/index.js +1 -1
  1031. package/dist/phoenix/commands/init.d.ts +17 -5
  1032. package/dist/phoenix/commands/init.js +1 -1
  1033. package/dist/phoenix/commands/link.js +1 -1
  1034. package/dist/phoenix/commands/prettier.js +1 -1
  1035. package/dist/phoenix/commands/sync.js +1 -1
  1036. package/dist/phoenix/commands/unlink.js +1 -1
  1037. package/dist/phoenix/services/application-spec-project-watcher.d.ts +2 -2
  1038. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  1039. package/dist/phoenix/services/lingui.d.ts +8 -0
  1040. package/dist/phoenix/services/lingui.js +1 -1
  1041. package/dist/phoenix/services/source-archive.d.ts +1 -0
  1042. package/dist/phoenix/services/source-archive.js +1 -1
  1043. package/dist/phoenix/services/swc.js +1 -1
  1044. package/dist/phoenix/services/vite-config.js +1 -1
  1045. package/dist/phoenix/utils/git/index.d.ts +1 -0
  1046. package/dist/phoenix/utils/git/index.js +1 -0
  1047. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  1048. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  1049. package/dist/phoenix/utils/index.d.ts +5 -2
  1050. package/dist/phoenix/utils/index.js +1 -1
  1051. package/dist/phoenix/utils/node-version/index.d.ts +1 -0
  1052. package/dist/phoenix/utils/node-version/index.js +1 -0
  1053. package/dist/phoenix/utils/node-version/supported-node-version.d.ts +12 -0
  1054. package/dist/phoenix/utils/node-version/supported-node-version.js +4 -0
  1055. package/dist/phoenix/utils/package-info.d.ts +0 -9
  1056. package/dist/phoenix/utils/package-info.js +1 -1
  1057. package/dist/phoenix/utils/package-manager/index.d.ts +2 -0
  1058. package/dist/phoenix/utils/package-manager/index.js +1 -0
  1059. package/dist/phoenix/utils/package-manager/package-manager-commands.d.ts +19 -0
  1060. package/dist/phoenix/utils/package-manager/package-manager-commands.js +1 -0
  1061. package/dist/phoenix/utils/package-manager/pnpm-project.d.ts +9 -0
  1062. package/dist/phoenix/utils/package-manager/pnpm-project.js +1 -0
  1063. package/dist/phoenix/utils/run-command.d.ts +11 -0
  1064. package/dist/phoenix/utils/run-command.js +1 -1
  1065. package/dist/phoenix/utils/sdk-tool/index.d.ts +1 -0
  1066. package/dist/phoenix/utils/sdk-tool/index.js +1 -0
  1067. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.d.ts +15 -0
  1068. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.js +1 -0
  1069. package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.d.ts +6 -0
  1070. package/dist/react-sdk/application-runtime/common-services/analytics/frontend-analytics.js +1 -0
  1071. package/dist/react-sdk/application-runtime/common-services/analytics/index.d.ts +1 -0
  1072. package/dist/react-sdk/application-runtime/common-services/analytics/index.js +1 -1
  1073. package/dist/react-sdk/application-runtime/hooks/index.d.ts +1 -0
  1074. package/dist/react-sdk/application-runtime/hooks/index.js +1 -1
  1075. package/dist/react-sdk/application-runtime/hooks/responsive/index.d.ts +3 -0
  1076. package/dist/react-sdk/application-runtime/hooks/responsive/index.js +1 -0
  1077. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.d.ts +9 -0
  1078. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.js +1 -0
  1079. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.d.ts +26 -0
  1080. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.js +1 -0
  1081. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.d.ts +10 -0
  1082. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.js +1 -0
  1083. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.d.ts +24 -0
  1084. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.js +1 -0
  1085. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +7 -0
  1086. package/dist/react-sdk/application-runtime/hooks/use-access-service.js +1 -1
  1087. package/dist/react-sdk/application-runtime/hooks/use-phoenix-element-slots.d.ts +2 -1
  1088. package/dist/react-sdk/application-runtime/index.d.ts +1 -0
  1089. package/dist/react-sdk/application-runtime/integration/initialize.d.ts +7 -6
  1090. package/dist/react-sdk/application-runtime/integration/initialize.js +1 -1
  1091. package/dist/react-sdk/application-runtime/integration/selectors.d.ts +11 -2
  1092. package/dist/react-sdk/application-runtime/integration/selectors.js +1 -1
  1093. package/dist/react-sdk/application-runtime/integration/types.d.ts +5 -2
  1094. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  1095. package/dist/react-sdk/application-runtime/responsive/actions.d.ts +47 -0
  1096. package/dist/react-sdk/application-runtime/responsive/actions.js +1 -0
  1097. package/dist/react-sdk/application-runtime/responsive/index.d.ts +4 -0
  1098. package/dist/react-sdk/application-runtime/responsive/index.js +1 -0
  1099. package/dist/react-sdk/application-runtime/responsive/initialize.d.ts +3 -0
  1100. package/dist/react-sdk/application-runtime/responsive/initialize.js +1 -0
  1101. package/dist/react-sdk/application-runtime/responsive/selectors.d.ts +20 -0
  1102. package/dist/react-sdk/application-runtime/responsive/selectors.js +1 -0
  1103. package/dist/react-sdk/application-runtime/responsive/types.d.ts +104 -0
  1104. package/dist/react-sdk/application-runtime/responsive/types.js +1 -0
  1105. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  1106. package/dist/react-sdk/application-runtime/routing/routing-service.d.ts +34 -2
  1107. package/dist/react-sdk/application-runtime/routing/routing-service.js +1 -1
  1108. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +148 -38
  1109. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  1110. package/dist/react-sdk/domain-application-context/DomainLifecycleBoundary.js +1 -1
  1111. package/dist/react-sdk/domain-context/common-hooks/index.d.ts +9 -0
  1112. package/dist/react-sdk/domain-context/common-hooks/index.js +1 -0
  1113. package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.d.ts +23 -0
  1114. package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.js +1 -0
  1115. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +41 -0
  1116. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  1117. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +10 -9
  1118. package/dist/react-sdk/domain-context/component-hooks/index.d.ts +1 -0
  1119. package/dist/react-sdk/domain-context/component-hooks/index.js +1 -0
  1120. package/dist/react-sdk/domain-context/component-hooks/use-component.js +1 -1
  1121. package/dist/react-sdk/domain-context/entity-hooks/use-domain-entity-state.js +1 -1
  1122. package/dist/react-sdk/domain-context/entity-hooks/use-entity-price.js +1 -1
  1123. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-id.js +1 -1
  1124. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-state.js +1 -1
  1125. package/dist/react-sdk/domain-context/index.d.ts +9 -1
  1126. package/dist/react-sdk/domain-context/index.js +1 -1
  1127. package/dist/react-sdk/domain-context/system-hooks/composition-hooks.js +1 -1
  1128. package/dist/react-sdk/domain-context/system-hooks/dimension-hooks.js +1 -1
  1129. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.d.ts +8 -0
  1130. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.js +1 -0
  1131. package/dist/react-sdk/domain-context/system-hooks/hover-hooks.js +1 -1
  1132. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.d.ts +24 -0
  1133. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.js +1 -0
  1134. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +11 -0
  1135. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  1136. package/dist/react-sdk/domain-context/system-hooks/selection-hooks.js +1 -1
  1137. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.d.ts +32 -0
  1138. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.js +1 -0
  1139. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.d.ts +57 -0
  1140. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.js +1 -0
  1141. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.d.ts +61 -0
  1142. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.js +1 -0
  1143. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.d.ts +20 -0
  1144. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -0
  1145. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  1146. package/dist/react-sdk/elements/configurator-error-page-props.d.ts +20 -0
  1147. package/dist/react-sdk/elements/configurator-error-page-props.js +1 -0
  1148. package/dist/react-sdk/elements/index.d.ts +1 -0
  1149. package/dist/react-sdk/handlers/FinalizeActionRunner.d.ts +13 -0
  1150. package/dist/react-sdk/handlers/FinalizeActionRunner.js +1 -0
  1151. package/dist/react-sdk/handlers/FinalizeActionsHost.d.ts +10 -0
  1152. package/dist/react-sdk/handlers/FinalizeActionsHost.js +1 -0
  1153. package/dist/react-sdk/handlers/FinalizeActionsProvider.d.ts +11 -0
  1154. package/dist/react-sdk/handlers/FinalizeActionsProvider.js +1 -0
  1155. package/dist/react-sdk/handlers/finalize-actions-context.d.ts +6 -0
  1156. package/dist/react-sdk/handlers/finalize-actions-context.js +1 -0
  1157. package/dist/react-sdk/handlers/finalize-actions-store.d.ts +23 -0
  1158. package/dist/react-sdk/handlers/finalize-actions-store.js +1 -0
  1159. package/dist/react-sdk/handlers/index.d.ts +6 -0
  1160. package/dist/react-sdk/handlers/index.js +1 -1
  1161. package/dist/react-sdk/handlers/use-finalize-action.d.ts +32 -0
  1162. package/dist/react-sdk/handlers/use-finalize-action.js +1 -0
  1163. package/dist/react-sdk/handlers/use-finalize-actions.d.ts +53 -0
  1164. package/dist/react-sdk/handlers/use-finalize-actions.js +1 -0
  1165. package/dist/react-sdk/index.d.ts +1 -0
  1166. package/dist/react-sdk/index.js +1 -1
  1167. package/dist/react-sdk/loading-state/loading-state-manager.d.ts +5 -0
  1168. package/dist/react-sdk/loading-state/loading-state-manager.js +1 -1
  1169. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.d.ts +36 -0
  1170. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.js +1 -0
  1171. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.d.ts +44 -0
  1172. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.js +1 -0
  1173. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.d.ts +38 -0
  1174. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.js +1 -0
  1175. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.d.ts +30 -0
  1176. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.js +1 -0
  1177. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.d.ts +30 -0
  1178. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.js +1 -0
  1179. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.d.ts +9 -0
  1180. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.js +1 -0
  1181. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.d.ts +9 -0
  1182. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.js +1 -0
  1183. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.d.ts +10 -0
  1184. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.js +1 -0
  1185. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.d.ts +9 -0
  1186. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.js +1 -0
  1187. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.d.ts +9 -0
  1188. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.js +1 -0
  1189. package/dist/react-sdk/scene-control-elements/index.d.ts +11 -0
  1190. package/dist/react-sdk/scene-control-elements/index.js +1 -0
  1191. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.d.ts +5 -0
  1192. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.js +1 -0
  1193. package/dist/react-sdk/session/NotAuthenticatedPage.d.ts +4 -0
  1194. package/dist/react-sdk/session/NotAuthenticatedPage.js +1 -1
  1195. package/dist/react-sdk/web-component/create-web-component.js +1 -1
  1196. package/dist/react-sdk/web-component/god-mode/god-mode-registry.d.ts +30 -0
  1197. package/dist/react-sdk/web-component/god-mode/god-mode-registry.js +1 -0
  1198. package/dist/react-sdk/web-component/god-mode/index.d.ts +1 -0
  1199. package/dist/react-sdk/web-component/god-mode/index.js +1 -0
  1200. package/dist/ui-sdk/icons/__generated/Lightbulb.d.ts +3 -0
  1201. package/dist/ui-sdk/icons/__generated/Lightbulb.js +1 -0
  1202. package/dist/ui-sdk/icons/__generated/XCircle.d.ts +3 -0
  1203. package/dist/ui-sdk/icons/__generated/XCircle.js +1 -0
  1204. package/dist/ui-sdk/icons/__generated/index.d.ts +4 -0
  1205. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  1206. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  1207. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +9 -0
  1208. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.js +1 -1
  1209. package/dist/ui-sdk/responsive-application/index.d.ts +1 -0
  1210. package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +59 -0
  1211. package/dist/ui-sdk/responsive-application/responsive-state-store.js +1 -0
  1212. package/dist/ui-sdk/responsive-application/use-store-responsive-info.d.ts +7 -0
  1213. package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -0
  1214. package/dist/ui-sdk/theme/types.d.ts +5 -1
  1215. package/dist/webhook/builders/webhook-builder.js +1 -1
  1216. package/package.json +58 -36
  1217. package/schema/domain-spec.json +1341 -217
  1218. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  1219. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  1220. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  1221. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -94
  1222. package/dist/application-spec/generate-application/code/templates/nvmrc.d.ts +0 -1
  1223. package/dist/application-spec/generate-application/code/templates/nvmrc.js +0 -2
  1224. package/dist/application-spec/generate-application/code/templates/package-json.d.ts +0 -10
  1225. package/dist/application-spec/generate-application/code/templates/package-json.js +0 -1
  1226. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  1227. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  1228. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  1229. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  1230. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  1231. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  1232. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  1233. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  1234. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  1235. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  1236. package/dist/application-spec/generate-application/code/templates/webhook-implementation.d.ts +0 -1
  1237. package/dist/application-spec/generate-application/code/templates/webhook-implementation.js +0 -7
  1238. package/dist/configurator/common/frontend-analytics.js +0 -1
  1239. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.d.ts +0 -4
  1240. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.js +0 -1
  1241. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.d.ts +0 -4
  1242. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.js +0 -1
  1243. package/dist/domain/application/element-registration.js +0 -1
  1244. package/dist/domain/application/handler-registration.js +0 -1
  1245. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -23
  1246. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  1247. package/dist/domain/application/resource-builder.d.ts +0 -13
  1248. package/dist/domain/application/resource-builder.js +0 -1
  1249. package/dist/domain/core/relation/relation-implementation.d.ts +0 -7
  1250. package/dist/domain/domain-runtime/spec/invariant-builder.d.ts +0 -61
  1251. package/dist/domain/domain-runtime/spec/invariant-builder.js +0 -1
  1252. package/dist/domain/domain-runtime/spec/resolve-action-modules.js +0 -1
  1253. package/dist/domain/domain-runtime/spec/resolve-component-optic-modules.js +0 -1
  1254. package/dist/domain/domain-runtime/spec/resolve-expression-modules.js +0 -1
  1255. package/dist/domain/domain-runtime/spec/resolve-invariant-modules.d.ts +0 -6
  1256. package/dist/domain/domain-runtime/spec/resolve-invariant-modules.js +0 -1
  1257. package/dist/domain/extensions/client-side-image.d.ts +0 -14
  1258. package/dist/domain/extensions/client-side-image.js +0 -1
  1259. package/dist/domain/extensions/save-template-thumbnail.js +0 -1
  1260. package/dist/domain/project-modules/index.d.ts +0 -1
  1261. package/dist/domain/project-modules/index.js +0 -1
  1262. package/dist/domain/project-modules/project-modules.js +0 -1
  1263. package/dist/phoenix/commands/generate-project-files.d.ts +0 -6
  1264. package/dist/phoenix/commands/generate-project-files.js +0 -1
  1265. package/dist/react-sdk/application-runtime/runtime/god-mode.d.ts +0 -19
  1266. package/dist/react-sdk/application-runtime/runtime/god-mode.js +0 -1
  1267. /package/dist/{domain/core/relation/relation-implementation.js → application-spec/core/expressions/relation-expression-params.js} +0 -0
  1268. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  1269. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  1270. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
@@ -1 +1 @@
1
- import{GraphQLError as e,buildSchema as t,defaultFieldResolver as i,getNamedType as o,graphql as n,validateSchema as a}from"graphql";import{assertExistence as r,createSelector as s,isMessageDescriptor as l,isMultilingualString as c}from"@salsita-ai/common/utils";import{DomainEntityIdSchema as d,findAssistantMutation as h}from"#package/domain";import{createEntityMeta as u}from"./entity-meta.js";import{readSideEffects as m}from"./side-effects.js";let f={errors:[new e("The configurator does not provide this request. This is a fault in the configurator, not in your request. Tell the user this is not available.")]},p={errors:[new e("The configuration is not loaded yet, so there is no state to query. Run the query again once the configurator has finished loading.")]},y=new RegExp(d.pattern),g=e=>"object"==typeof e&&null!==e&&"type"in e&&"string"==typeof e.type&&"id"in e&&"string"==typeof e.id,v=(e,t)=>"object"==typeof e&&null!==e?Reflect.get(e,t):void 0,S=e=>e instanceof Error?e.message:String(e),_=e=>/[.!?]$/.test(e)?e:`${e}.`,x=e=>"object"==typeof e&&null!==e&&Object.getPrototypeOf(e)===Object.prototype,w=(e,t)=>{let i=x(e)?e._raw:void 0;if(g(i))return i;if(!Array.isArray(e)&&!x(e))return e;if(t.has(e))throw Error("The value contains itself.");let o=new Set([...t,e]);return Array.isArray(e)?e.map(e=>w(e,o)):Object.fromEntries(Object.entries(e).map(([e,t])=>[e,w(t,o)]))};export const localize=(e,t)=>Array.isArray(e)?e.map(e=>localize(e,t)):"string"==typeof e||l(e)||c(e)?t(e):e;let E=t=>new e(`The configurator cannot handle this request: ${_(t)} This is a fault in the configurator, not in your request. Tell the user this is not available.`),$=e=>(e.errors?.length??0)>0,b=t=>({errors:[new e(`Not run: operation ${t+1} failed, so the operations after it were skipped and no change of the list takes effect. Fix the failing operation and send the whole list again.`)]});export class GraphQLSystem{_context;_selectSchema=s([s.leaf(e=>e)],e=>{try{let i=t(e),o=a(i);return o.length>0?E(o.map(e=>e.message).join(" ")):i}catch(e){return E(S(e))}});_selectFieldResolver=s([s.leaf(e=>e)],t=>(n,a,r,s)=>{if(s.parentType===s.schema.getQueryType())return i(n,a,r,s);if(s.parentType===s.schema.getMutationType())return this._resolveMutation(s.fieldName,String(s.path.key),a,r);if(!g(n))return i(n,a,r,s);if("meta"===s.fieldName){let e;return u({entity:n,state:("object"==typeof(e=v(n,"_state"))&&null!==e&&"entities"in e&&"rootEntityId"in e?e:void 0)??r.state},{manifest:r.manifest,recipes:this._recipeContext(),prepareStateEmission:(e,t,i)=>this._context.domainContextSelectors.getStoreSystem().prepareStateEmission(e,t,i),find$Entity:(e,t)=>this._find$Entity(e,t),validateEntity:e=>this._context.domainContextSelectors.getDomain().validateEntity(e)})}let{source:l,localized:c}=t[s.parentType.name]?.[s.fieldName]??{source:s.fieldName},d=((t,i)=>{try{return v(t,i)}catch(o){throw new e(`Expression "${i}" failed on ${g(t)?t.id:"an entity"}: ${_(S(o))} This is a fault in the configurator, not in your request. Tell the user this is not available.`,{originalError:o instanceof Error?o:void 0})}})(n,l);return c?localize(d,this._context.domainServicesSelectors.getResolveLocalizable()):l.startsWith("$")&&"JSON"===o(s.returnType).name?((t,i,o)=>{try{return w(o,new Set)}catch(o){throw new e(`Expression "${i}" returned a value that is not plain serializable data on ${g(t)?t.id:"an entity"}: ${_(S(o))} This is a fault in the configurator, not in your request. Tell the user this is not available.`,{originalError:o instanceof Error?o:void 0})}})(n,l,d):d});constructor(e){this._context=e}_get$Entity=(e,t)=>this._context.domainContextSelectors.getDomain().get$Entity(e,t);_find$Entity=(e,t)=>this._context.domainContextSelectors.getDomain().getEntity(e,t)?this._get$Entity(e,t):null;_recipeContext=()=>({componentReader:this._context.domainContextSelectors.getComponentReader(),recipeCooker:this._context.domainContextSelectors.getRecipeCookerSystem(),resolveLocalizable:this._context.domainServicesSelectors.getResolveLocalizable()});_rootValue={root:(e,{state:t})=>this._get$Entity(t.rootEntityId,t),entities:({ids:t},{state:i})=>{if(null==t)return i.entities.map(e=>this._get$Entity(e.id,i));var o=i.rootEntityId;let n=t.filter(e=>!y.test(e));if(n.length>0)throw new e(`${n.map(e=>`"${e}"`).join(", ")} ${1===n.length?"is not an entity id":"are not entity ids"}. Entity ids have the form "<Type>-<number>", e.g. "${o}". Use ids as returned by the "id" field.`);return t.map(e=>y.test(e)?this._find$Entity(e,i):null)},selectedEntity:(e,{state:t})=>this._find$Entity(this._context.domainContextSelectors.getNavigationSystem().getActiveSelectionState(t),t),navigation:(e,{state:t})=>{let i=this._context.domainContextSelectors.getNavigationSystem();return{navigationState:i.getActiveNavigationState(t),viewState:i.getActiveViewState(t),toolState:i.getActiveToolState(t)}}};_resolveType=e=>g(e)?e.type:void 0;initialize=()=>{};_resolveMutation=(t,i,o,n)=>{if(void 0!==n.failedMutationField)throw new e(`Not run: the earlier field "${n.failedMutationField}" of this operation failed, so "${i}" was skipped and no change of the operation takes effect. Fix the failing field and send the operation again.`);try{return this._runMutation(t,o,n)}catch(e){throw n.failedMutationField=i,e}};_runMutation=(t,i,o)=>{let n=h(t,o.manifest);if(!n)throw new e(`The schema declares the mutation "${t}", but the configurator has no implementation for it. This is a fault in the configurator, not in your request. Tell the user this is not available.`);let a=o.state,r=n.implementation(i,a,{manifest:o.manifest,action:this._context.domainContextSelectors.getActionSystem().createContext(a),resolveLocalizable:this._context.domainServicesSelectors.getResolveLocalizable()});if(r.updates.length>0){let i=this._context.domainContextSelectors.getStoreSystem().prepareStateEmission(r.updates,a,"committed");if(!i.validity.valid)throw new e(`The changes of "${t}" were not applied, because the resulting configuration is invalid: ${(e=>{if("uncaught"===e.severity)return`validating it threw: ${_(S(e.error))}`;let t=[...new Set(e.entityViolations.filter(({violation:t})=>t.severity===e.severity).map(({entityId:e})=>e))];return`it has ${e.severity} violations on ${t.join(", ")}.`})(i.validity)} Change the request so the configuration stays valid.`);o.emissions.push(i),o.state=i.state}return r.readResult({previousState:a,state:o.state})};_setup=()=>{let t=this._context.specSelectors.getAssistant();if(!t)return{ready:!1,result:f};let i=this._selectSchema(t.sdl);return i instanceof e?{ready:!1,result:{errors:[i]}}:{ready:!0,assistant:t,schema:i,fieldResolver:this._selectFieldResolver(t.fields)}};prepare=async(e,t)=>{let i,o=this._setup();if(!o.ready)return t.map(()=>({result:o.result,emissions:[]}));let a={manifest:o.assistant,state:e,emissions:[],failedMutationField:void 0},r=[];for(let[e,s]of t.entries())if(void 0===i){let t=a.emissions.length;a.failedMutationField=void 0;let l=await n({schema:o.schema,source:s.document,rootValue:this._rootValue,contextValue:a,variableValues:s.variables,operationName:s.operationName,fieldResolver:o.fieldResolver,typeResolver:this._resolveType});r.push({result:l,emissions:a.emissions.slice(t)}),$(l)&&(i=e)}else r.push({result:b(i),emissions:[]});return r};readSideEffects=e=>{let t=this._context.domainServicesSelectors.getResolveLocalizable();return e.flatMap(({emissions:e})=>e.flatMap(e=>m(e.updates,t)))};_prepareAndCommit=async e=>{let t,i,o,n=this._context.domainContextSelectors.getStoreSystem(),a=await this.prepare(n.stateSlices.committed.value.state,e),s=a.map(({result:e})=>e),l=this.readSideEffects(a),c=a.flatMap(e=>e.emissions);return s.some($)||0===c.length?{results:s,sideEffects:l,outcome:"none"}:{results:s,sideEffects:l,outcome:n.commitPrepared((t=r(c[0]),i=r(c[c.length-1]),o=c.some(e=>void 0!==e.transformationLog),{kind:"committed",previousState:t.previousState,state:i.state,updates:c.flatMap(e=>e.updates),validity:i.validity,transformationLog:o?c.flatMap(e=>e.transformationLog??[]):void 0}))}};execute=async e=>{if(!this._context.domainContextSelectors.getStoreSystem().isInitialized)return{results:e.map(()=>p),committed:!1,sideEffects:[]};let t=await this._prepareAndCommit(e),{results:i,sideEffects:o,outcome:n}="conflict"===t.outcome?await this._prepareAndCommit(e):t;return"committed"===n?{results:i,committed:!0,sideEffects:o}:"held"===n?{results:i,committed:!1,message:"The changes wait for the user's approval and are not applied yet. Do not send them again; the next `[changes]` block lists them once approved.",sideEffects:o}:"conflict"===n?{results:i,committed:!1,message:"The changes were not committed, because the configuration changed while they were being applied. The results describe a state that was discarded. Query the current configuration and send the operations again if they still make sense.",sideEffects:o}:{results:i,committed:!1,sideEffects:o}}}
1
+ import{GraphQLError as e,NoSchemaIntrospectionCustomRule as t,defaultFieldResolver as i,execute as n,getNamedType as r,parse as o,specifiedRules as s,validate as a,validateSchema as l}from"graphql";import{assertExistence as c,createSelector as h,isMessageDescriptor as d,isMultilingualString as u}from"@salsita-ai/common/utils";import{DomainEntityIdSchema as f,agentScreenshotComponent as m,createAssistantExecutionSchema as p,findAssistantMutation as g}from"#package/domain";import{ExportBusyError as y}from"../export-system/export-busy-error.js";import{closeUnclosedBraces as v}from"./close-unclosed-braces.js";import{createEntityMeta as S}from"./entity-meta.js";import{injectAssistantLenses as w}from"./inject-assistant-lenses.js";import{readSideEffects as _}from"./side-effects.js";let x={errors:[new e("The configurator does not provide this request. This is a fault in the configurator, not in your request. Tell the user this is not available.")]},$={errors:[new e("The configuration is not loaded yet, so there is no state to query. Run the query again once the configurator has finished loading.")]},b="Not taken: another configuration was loaded while this request ran. Query the current configuration before asking for screenshots again.",E="Not taken: the screenshots of this tool call have used up its image size budget. Ask for this screenshot in another call, and for fewer in one call.",T=async e=>{let t=new Uint8Array(await e.arrayBuffer()),i="";for(let e=0;e<t.length;e+=32768)i+=String.fromCharCode(...t.subarray(e,e+32768));return btoa(i)},C=new RegExp(f.pattern),M=[...s,t],k=e=>"object"==typeof e&&null!==e&&"type"in e&&"string"==typeof e.type&&"id"in e&&"string"==typeof e.id,j=(e,t)=>"object"==typeof e&&null!==e?Reflect.get(e,t):void 0,R=e=>e instanceof Error?e.message:String(e),A=e=>/[.!?]$/.test(e)?e:`${e}.`,N=e=>"object"==typeof e&&null!==e&&Object.getPrototypeOf(e)===Object.prototype,z=(e,t)=>{let i=N(e)?e._raw:void 0;if(k(i))return i;if(!Array.isArray(e)&&!N(e))return e;if(t.has(e))throw Error("The value contains itself.");let n=new Set([...t,e]);return Array.isArray(e)?e.map(e=>z(e,n)):Object.fromEntries(Object.entries(e).map(([e,t])=>[e,z(t,n)]))};export const localize=(e,t)=>Array.isArray(e)?e.map(e=>localize(e,t)):"string"==typeof e||d(e)||u(e)?t(e):e;let q=t=>new e(`The configurator cannot handle this request: ${A(t)} This is a fault in the configurator, not in your request. Tell the user this is not available.`),L="SCREENSHOT_NOT_TAKEN",F=(t,i)=>new e(t,{originalError:i,extensions:{code:L}}),O=e=>(e.errors??[]).some(e=>e.extensions.code!==L),V=t=>({errors:[new e(`Not run: operation ${t+1} failed, so the operations after it were skipped and no change of the list takes effect. Fix the failing operation and send the whole list again.`)]});export class GraphQLSystem{_context;_selectSchema=h([h.leaf(e=>e)],e=>{try{let t=p(e),i=l(t);return i.length>0?q(i.map(e=>e.message).join(" ")):t}catch(e){return q(R(e))}});_selectLenses=h([h.leaf(e=>e)],e=>o(e));_selectFieldResolver=h([h.leaf(e=>e)],t=>(n,o,s,a)=>{if(a.parentType===a.schema.getQueryType())return i(n,o,s,a);if(a.parentType===a.schema.getMutationType())return this._resolveMutation(a.fieldName,String(a.path.key),o,s);if(!k(n))return i(n,o,s,a);if("meta"===a.fieldName){let e;return S({entity:n,state:("object"==typeof(e=j(n,"_state"))&&null!==e&&"entities"in e&&"rootEntityId"in e?e:void 0)??s.state},{manifest:s.manifest,recipes:this._recipeContext(),prepareStateEmission:(e,t,i)=>this._context.domainContextSelectors.getStoreSystem().prepareStateEmission(e,t,i),find$Entity:(e,t)=>this._find$Entity(e,t),validateEntity:e=>this._context.domainContextSelectors.getDomain().validateEntity(e),takeScreenshot:(e,t)=>this._takeScreenshot(e,t,s)})}let{source:l,localized:c}=t[a.parentType.name]?.[a.fieldName]??{source:a.fieldName},h=((t,i)=>{try{return j(t,i)}catch(n){throw new e(`Expression "${i}" failed on ${k(t)?t.id:"an entity"}: ${A(R(n))} This is a fault in the configurator, not in your request. Tell the user this is not available.`,{originalError:n instanceof Error?n:void 0})}})(n,l);return c?localize(h,this._context.domainServicesSelectors.getResolveLocalizable()):l.startsWith("$")&&"JSON"===r(a.returnType).name?((t,i,n)=>{try{return z(n,new Set)}catch(n){throw new e(`Expression "${i}" returned a value that is not plain serializable data on ${k(t)?t.id:"an entity"}: ${A(R(n))} This is a fault in the configurator, not in your request. Tell the user this is not available.`,{originalError:n instanceof Error?n:void 0})}})(n,l,h):h});constructor(e){this._context=e}_get$Entity=(e,t)=>this._context.domainContextSelectors.getDomain().get$Entity(e,t);_find$Entity=(e,t)=>this._context.domainContextSelectors.getDomain().getEntity(e,t)?this._get$Entity(e,t):null;_recipeContext=()=>({componentReader:this._context.domainContextSelectors.getComponentReader(),recipeCooker:this._context.domainContextSelectors.getRecipeCookerSystem(),resolveLocalizable:this._context.domainServicesSelectors.getResolveLocalizable()});_rootValue={root:(e,{state:t})=>this._get$Entity(t.rootEntityId,t),entities:({ids:t},{state:i})=>{if(null==t)return i.entities.map(e=>this._get$Entity(e.id,i));var n=i.rootEntityId;let r=t.filter(e=>!C.test(e));if(r.length>0)throw new e(`${r.map(e=>`"${e}"`).join(", ")} ${1===r.length?"is not an entity id":"are not entity ids"}. Entity ids have the form "<Type>-<number>", e.g. "${n}". Use ids as returned by the "id" field.`);return t.map(e=>C.test(e)?this._find$Entity(e,i):null)},selectedEntity:(e,{state:t})=>this._find$Entity(this._context.domainContextSelectors.getNavigationSystem().getActiveSelectionState(t),t),navigation:(e,{state:t})=>{let i=this._context.domainContextSelectors.getNavigationSystem();return{navigationState:i.getActiveNavigationState(t),viewState:i.getActiveViewState(t),toolState:i.getActiveToolState(t)}}};_resolveType=e=>k(e)?e.type:void 0;_generation={active:!0};_renderScreenshot=async(e,t,i)=>{let n=this._context.domainContextSelectors.getComponentReader().readOneComponent({entityId:e,componentType:m,instanceName:t},i);if(!n)return null;let r=await this._context.renderScreenshot(n,i);return null===r?null:{data:await T(r),mimeType:"JPEG"===n.state.fileFormat?"image/jpeg":"image/png"}};initialize=()=>{this._generation.active=!1,this._generation={active:!0}};_resolveMutation=(t,i,n,r)=>{if(void 0!==r.failedMutationField)throw new e(`Not run: the earlier field "${r.failedMutationField}" of this operation failed, so "${i}" was skipped and no change of the operation takes effect. Fix the failing field and send the operation again.`);try{return this._runMutation(t,n,r)}catch(e){throw r.failedMutationField=i,e}};_runMutation=(t,i,n)=>{let r=g(t,n.manifest);if(!r)throw new e(`The schema declares the mutation "${t}", but the configurator has no implementation for it. This is a fault in the configurator, not in your request. Tell the user this is not available.`);let o=n.state,s=r.implementation(i,o,{manifest:n.manifest,action:this._context.domainContextSelectors.getActionSystem().createContext(o),resolveLocalizable:this._context.domainServicesSelectors.getResolveLocalizable()});if(s.updates.length>0){let i=this._context.domainContextSelectors.getStoreSystem().prepareStateEmission(s.updates,o,"committed");if(!i.validity.valid)throw new e(`The changes of "${t}" were not applied, because the resulting configuration is invalid: ${(e=>{if("uncaught"===e.severity)return`validating it threw: ${A(R(e.error))}`;let t=[...new Set(e.entityViolations.filter(({violation:t})=>t.severity===e.severity).map(({entityId:e})=>e))];return`it has ${e.severity} violations on ${t.join(", ")}.`})(i.validity)} Change the request so the configuration stays valid.`);n.emissions.push(i),n.state=i.state}return s.readResult({previousState:o,state:n.state})};_takeScreenshot=({entity:t,state:i},n,r)=>{let o=r.manifest.screenshots?.[t.type]?.find(e=>e.view===n);if(!o)return Promise.reject(new e(`The schema declares the screenshot view "${n}" on ${t.type}, but the configurator has no view of that name. This is a fault in the configurator, not in your request. Tell the user this is not available.`));let s=r.lastScreenshot.then(async()=>{if(!r.generation.active)throw F(b);if(r.screenshotBudget<=0)throw F(E);let e=await this._renderScreenshot(t.id,o.instanceName,i).catch(e=>{throw F(e instanceof y?"User made concurrent actions that prevented the screenshot from being taken, try again":`The screenshot of ${t.id} from "${n}" could not be taken: ${A(R(e))} Try again; if it fails again, tell the user the screenshot is not available.`,e instanceof Error?e:void 0)});if(!r.generation.active)throw F(b);if(null===e)return null;if(e.data.length>r.screenshotBudget)throw r.screenshotBudget=0,F(E);r.screenshotBudget-=e.data.length;let s=`${t.id}/${n}`,a=[...r.screenshots.values()].filter(e=>e.entityId===t.id&&e.view===n).length,l=0===a?s:`${s}#${a+1}`;return r.screenshots.set(l,{entityId:t.id,view:n,...e}),{image:l}});return r.lastScreenshot=s.catch(()=>void 0),s};_setup=()=>{let{manifest:t,error:i}=this._context.getAssistantSetup();if(i)return{ready:!1,result:{errors:[new e(i.message,{originalError:i})]}};if(!t)return{ready:!1,result:x};let n=this._selectSchema(t.sdl);return n instanceof e?{ready:!1,result:{errors:[n]}}:{ready:!0,assistant:t,schema:n,lenses:t.lenses?.definitions?this._selectLenses(t.lenses.definitions):void 0,fieldResolver:this._selectFieldResolver(t.fields)}};_run=(t,i,r,s)=>{let l;try{l=o(t)}catch(t){return{errors:[t instanceof e?t:new e(R(t))]}}let c=a(r.schema,l,M);return c.length>0?{errors:c}:n({schema:r.schema,document:l,rootValue:this._rootValue,contextValue:s,variableValues:i.variables,operationName:i.operationName,fieldResolver:r.fieldResolver,typeResolver:this._resolveType})};prepare=async(t,i,n=this._generation)=>{let r,o=this._setup();if(!o.ready)return i.map(()=>({result:o.result,emissions:[],screenshots:new Map}));let s={manifest:o.assistant,state:t,emissions:[],failedMutationField:void 0,screenshots:new Map,screenshotBudget:14e5,lastScreenshot:Promise.resolve(),generation:n},a=[];for(let[t,n]of i.entries())if(void 0===r){let i=s.emissions.length,l=s.screenshots.size;s.failedMutationField=void 0;let c=v(n.document),h=o.lenses?w(c,o.lenses):c,d=h instanceof e?{errors:[h]}:await this._run(h,n,o,s);await s.lastScreenshot,a.push({result:d,emissions:s.emissions.slice(i),screenshots:new Map([...s.screenshots].slice(l))}),O(d)&&(r=t)}else a.push({result:V(r),emissions:[],screenshots:new Map});return a};readSideEffects=e=>{let t=this._context.domainServicesSelectors.getResolveLocalizable();return e.flatMap(({emissions:e})=>e.flatMap(e=>_(e.updates,t)))};readScreenshots=e=>new Map(e.flatMap(({screenshots:e})=>[...e]));_prepareAndCommit=async(e,t)=>{let i,n,r,o=this._context.domainContextSelectors.getStoreSystem(),s=await this.prepare(o.stateSlices.committed.value.state,e,t),a=s.map(({result:e})=>e),l=this.readSideEffects(s),h=this.readScreenshots(s),d=s.flatMap(e=>e.emissions);if(!t.active)return{results:a,sideEffects:l,screenshots:h,outcome:"conflict"};if(a.some(O)||0===d.length)return{results:a,sideEffects:l,screenshots:h,outcome:"none"};let u=(i=c(d[0]),n=c(d[d.length-1]),r=d.some(e=>void 0!==e.transformationLog),{kind:"committed",previousState:i.previousState,state:n.state,updates:d.flatMap(e=>e.updates),validity:n.validity,transformationLog:r?d.flatMap(e=>e.transformationLog??[]):void 0});return{results:a,sideEffects:l,screenshots:h,outcome:o.commitPrepared(u),preparedState:u.state}};execute=async e=>{let t=this._generation;if(!this._context.domainContextSelectors.getStoreSystem().isInitialized)return{results:e.map(()=>$),committed:!1,sideEffects:[],screenshots:new Map};let i=await this._prepareAndCommit(e,t),{results:n,sideEffects:r,screenshots:o,outcome:s,preparedState:a}="conflict"===i.outcome&&t.active?await this._prepareAndCommit(e,t):i;return"committed"===s?{results:n,committed:!0,sideEffects:r,screenshots:o,preparedState:a}:"held"===s?{results:n,committed:!1,message:"The changes wait for the user's approval and are not applied yet. Do not send them again; the next `[changes]` block lists them once approved.",sideEffects:r,screenshots:o,preparedState:a}:"conflict"===s?{results:n,committed:!1,message:"The changes were not committed, because the configuration changed while they were being applied. The results describe a state that was discarded. Query the current configuration and send the operations again if they still make sense.",sideEffects:r,screenshots:o}:{results:n,committed:!1,sideEffects:r,screenshots:o}}}
@@ -0,0 +1,11 @@
1
+ import { type DocumentNode, GraphQLError } from 'graphql';
2
+ /**
3
+ * Makes the lenses an operation document spreads available to it: appends the definition of every
4
+ * lens the document spreads, with the copies that definition spreads in turn, taken from the
5
+ * manifest's lens `definitions`. Appending keeps the positions GraphQL reports for the caller's own
6
+ * text. A document that defines a fragment under the name of a lens, or of a copy of one, is
7
+ * rejected, since the caller would silently read its own selection instead of the lens. A document
8
+ * that does not parse is returned as it is, so GraphQL reports the syntax error; a spread that names
9
+ * no lens is left for GraphQL to report as an unknown fragment.
10
+ */
11
+ export declare const injectAssistantLenses: (document: string, definitions: DocumentNode) => string | GraphQLError;
@@ -0,0 +1 @@
1
+ import{GraphQLError as e,Kind as n,parse as t,print as a,visit as i}from"graphql";let r=e=>{let n=[];return i(e,{FragmentSpread:e=>{n.push(e.name.value)}}),n};export const injectAssistantLenses=(i,o)=>{let l,s=new Map;for(let e of o.definitions)e.kind===n.FRAGMENT_DEFINITION&&s.set(e.name.value,e);try{l=t(i)}catch{return i}for(let t of l.definitions)if(t.kind===n.FRAGMENT_DEFINITION&&s.has(t.name.value)){let n=t.name.value.split("__")[0];return new e(`A built-in fragment named "${n}" already exists, so "${t.name.value}" cannot be defined. Remove the definition and spread "...${n}", or give your fragment another name.`)}let m=new Map,u=[...r(l)];for(;u.length>0;){let e=u.pop(),n=void 0===e?void 0:s.get(e);n&&!m.has(n.name.value)&&(m.set(n.name.value,n),u.push(...r(n)))}return 0===m.size?i:[i,...[...m.values()].map(a)].join("\n\n")};
@@ -1,8 +1,9 @@
1
1
  import type { EffectComposer } from 'postprocessing';
2
2
  import { Color, OrthographicCamera, PerspectiveCamera } from 'three';
3
3
  import type { AuthorizedPhoenixApiClient } from '#package/client';
4
- import type { ClientSideImageComponent, ComponentSnapshot, DomainContextSelectors, DomainEntity, DomainServicesSelectors, DomainState, SaveTemplateThumbnailComponent } from '#package/domain';
4
+ import type { AgentScreenshotComponent, ClientSideImageComponent, ComponentSnapshot, DomainContextSelectors, DomainEntity, DomainServicesSelectors, DomainState, SaveTemplateThumbnailComponent } from '#package/domain';
5
5
  import type { ConfiguratorExtensionSelectors } from '../../selectors.js';
6
+ import type { ExportRunOptions } from '../export-system/export-system.js';
6
7
  import type { ImageRenderConfig, ImageRenderer, RenderConfig } from './image-renderer.js';
7
8
  /**
8
9
  * Constructor context of an `ImageRenderingSystem`. Same-layer configurator peers are reached
@@ -20,6 +21,8 @@ export interface ClientSideImageRenderingOptions {
20
21
  /** Opens rendered images in new browser tabs instead of uploading them. */
21
22
  readonly debug?: boolean;
22
23
  }
24
+ /** A component that declares an image the export renders: its state says how, its entity what. */
25
+ type ImageComponentSnapshot = ComponentSnapshot<ClientSideImageComponent> | ComponentSnapshot<SaveTemplateThumbnailComponent> | ComponentSnapshot<AgentScreenshotComponent>;
23
26
  /** ImageRenderingSystem with its entity types erased — how the runtime selectors expose the instance. */
24
27
  export type AnyImageRenderingSystem = ImageRenderingSystem<any>;
25
28
  export declare class ImageRenderingSystem<ENTITIES extends DomainEntity<string>> {
@@ -94,7 +97,7 @@ export declare class ImageRenderingSystem<ENTITIES extends DomainEntity<string>>
94
97
  generateAndUploadDeclaredClientSideImages(state: DomainState<ENTITIES>, finalizationUuid: string, options?: ClientSideImageRenderingOptions): Promise<readonly {
95
98
  name: string;
96
99
  blob: Blob;
97
- imageComponent: ComponentSnapshot<ClientSideImageComponent> | ComponentSnapshot<SaveTemplateThumbnailComponent>;
100
+ imageComponent: ImageComponentSnapshot;
98
101
  }[]>;
99
102
  /**
100
103
  * Generates client side images from declarative clientSideImage components without uploading them.
@@ -102,12 +105,18 @@ export declare class ImageRenderingSystem<ENTITIES extends DomainEntity<string>>
102
105
  generateDeclaredClientSideImages(state: DomainState<ENTITIES>, options?: ClientSideImageRenderingOptions): Promise<readonly {
103
106
  name: string;
104
107
  blob: Blob;
105
- imageComponent: ComponentSnapshot<ClientSideImageComponent> | ComponentSnapshot<SaveTemplateThumbnailComponent>;
108
+ imageComponent: ImageComponentSnapshot;
106
109
  }[]>;
107
- generateImagesFromComponents(imageComponents: ReadonlyArray<ComponentSnapshot<ClientSideImageComponent> | ComponentSnapshot<SaveTemplateThumbnailComponent>>, sourceState: DomainState<ENTITIES>, options?: ClientSideImageRenderingOptions): Promise<ReadonlyArray<{
110
+ /**
111
+ * Renders the image components from the given state in one export run. With `awaitSettledState`,
112
+ * the run waits until the user is not in the middle of a change, as the assistant's screenshots do.
113
+ */
114
+ generateImagesFromComponents(imageComponents: ReadonlyArray<ImageComponentSnapshot>, sourceState: DomainState<ENTITIES>, options?: ClientSideImageRenderingOptions, runOptions?: ExportRunOptions): Promise<ReadonlyArray<{
108
115
  name: string;
109
116
  blob: Blob;
110
- imageComponent: ComponentSnapshot<ClientSideImageComponent> | ComponentSnapshot<SaveTemplateThumbnailComponent>;
117
+ imageComponent: ImageComponentSnapshot;
111
118
  }>>;
119
+ private _generateImagesFromComponents;
112
120
  initialize: () => void;
113
121
  }
122
+ export {};
@@ -1 +1 @@
1
- import{Color as e,HalfFloatType as t,NoToneMapping as r,OrthographicCamera as a,PerspectiveCamera as n,WebGLRenderTarget as o}from"three";import{preloadFont as i}from"troika-three-text";import{match as s}from"ts-pattern";import{clientSideImageComponent as l,dimensionIndicatorComponent as c,domainEntityTypeFromId as m,editableDistanceDimensionIndicatorComponent as g,isDomainEntityId as d,isVirtualEntityId as h,sketchingEditComponent as u}from"#package/domain";import{createCameraControls as f}from"../camera-control-system/create-camera-controls.js";import{createCanvasFreezeFrame as p}from"./canvas-freeze-frame.js";import{ExportCapturePass as w,readTargetToBlob as C,resolveExportBackground as _}from"./export-image-capture.js";export class ImageRenderingSystem{_context;_renderer=null;_effectComposer=null;_generation=null;_debugObjectUrls=new Set;_canvasFreeze=null;constructor(e){this._context=e}_captureGenerationAssertion=()=>{let e=this._generation,t=()=>{if(!e?.active)throw Error("Image rendering generation ended while images were being rendered! The configurator context was reinitialized before the renderer finished, so the results belong to a configuration that is no longer active. Await the render before leaving the configuration, or discard the rejection.")};return t(),t};_captureGenerationGuard=()=>{let e=this._captureGenerationAssertion();return{assertActive:e,waitFor:async t=>{let r=await t;return e(),r},runEffect:t=>(e(),t())}};register(e){return this._renderer=e,()=>{this._renderer===e&&(this._renderer=null)}}registerEffectComposer(e){return this._effectComposer=e,()=>{this._effectComposer===e&&(this._effectComposer=null)}}_openDebugImage=e=>{let t=URL.createObjectURL(e);this._debugObjectUrls.add(t),window.open(t,"_blank")};_getRenderer=async()=>{let e=this._generation,t=Date.now(),r=()=>{if(!e?.active)throw Error("Image rendering generation ended while waiting for the renderer! The configurator context was reinitialized before the renderer arrived, so the render would target a scene that is gone. Await the render before leaving the configuration, or discard the rejection.")};r();let a=this._renderer;for(;null===a;){if(await new Promise(e=>setTimeout(e,50)),r(),Date.now()-t>1e4)throw Error("Renderer could not be retrieved! Reached timeout.");a=this._renderer}return a};generateImageUsingOriginalCanvas=async(e,t,r=!1)=>{let a=this._captureGenerationGuard(),n=await a.waitFor(this._getRenderer());if(r){let{blob:e}=await a.waitFor(a.runEffect(()=>n.renderUsingOriginalCanvas(t)));a.runEffect(()=>this._openDebugImage(e));return}let o=await Promise.all([t].map(async e=>{let{blob:t}=await a.waitFor(a.runEffect(()=>n.renderUsingOriginalCanvas(e)));return{blob:t,name:e.name}})),i=await a.waitFor(a.runEffect(()=>this._context.getAuthorizedClient().generateUploadLinks(this._context.getConfigurationId(),e,[t.name])));await Promise.all(i.map(async e=>{let t=o.find(t=>t.name===e.name);if(null==t)throw Error("Blob not found!");await Promise.all(i.map(async e=>{await a.waitFor(a.runEffect(()=>fetch(e.url,{method:"PUT",body:t.blob,headers:{"Content-Type":"image/png","Content-Length":t.blob.size.toString()}})))}))}))};async generateImagesUsingOriginalCanvas(e,t,r=!1){let a=this._captureGenerationGuard(),n=await a.waitFor(this._getRenderer()),o=Array.isArray(t)?t:[t],i=await o.reduce(async(e,t)=>[...await e,await a.waitFor(a.runEffect(()=>n.renderUsingOriginalCanvas(t)))],Promise.resolve([]));if(r){for(let e of i)a.runEffect(()=>this._openDebugImage(e.blob)),await a.waitFor(new Promise(e=>setTimeout(e,100)));return}let s=o.map(e=>e.name),l=await a.waitFor(a.runEffect(()=>this._context.getAuthorizedClient().generateUploadLinks(this._context.getConfigurationId(),e,s)));await Promise.all(l.map(async e=>{let t=i.find(t=>t.name===e.name);if(null==t)throw Error("Blob not found!");await Promise.all(l.map(async e=>{await a.waitFor(a.runEffect(()=>fetch(e.url,{method:"PUT",body:t.blob,headers:{"Content-Type":"image/png","Content-Length":t.blob.size.toString()}})))}))}))}async generateImages(e,t,r=!1){let a=this._captureGenerationGuard(),n=await a.waitFor(this._getRenderer()),o=t.map(e=>e.name);if(r)return void await Promise.all(t.map(async e=>{let t=await a.waitFor(a.runEffect(()=>n.renderImage(e)));a.runEffect(()=>this._openDebugImage(t))}));let i=await Promise.all(t.map(async e=>({blob:await a.waitFor(a.runEffect(()=>n.renderImage(e))),name:e.name}))),s=await a.waitFor(a.runEffect(()=>this._context.getAuthorizedClient().generateUploadLinks(this._context.getConfigurationId(),e,o)));await Promise.all(s.map(async e=>{let t=i.find(t=>t.name===e.name);if(null==t)throw Error("Blob not found!");await Promise.all(s.map(async e=>{await a.waitFor(a.runEffect(()=>fetch(e.url,{method:"PUT",body:t.blob,headers:{"Content-Type":"image/png","Content-Length":t.blob.size.toString()}})))}))}))}async getGeneratedImages(e,t=!1){let r=this._captureGenerationAssertion(),a=await this._getRenderer();return(r(),t)?(await Promise.all(e.map(async e=>{let t=await a.renderImage(e);r(),this._openDebugImage(t)})),[]):Promise.all(e.map(async e=>{let t=await a.renderImage(e);return r(),{blob:t,name:e.name}}))}_renderCurrentView=e=>{let{gl:t,scene:r,camera:a}=e.get();null!==this._effectComposer?this._effectComposer.render():t.render(r,a)};_freezeCanvas=e=>{this._canvasFreeze?.handle===e?this._canvasFreeze.holders+=1:(this._canvasFreeze?.remove(),this._canvasFreeze={handle:e,remove:p(e.get().gl.domElement,()=>this._renderCurrentView(e)),resumeFrameloop:this._context.configuratorExtensionSelectors.getExportSystem().pauseFrameloop(e),holders:1});let t=this._canvasFreeze,r=!1;return async()=>{if(!r&&(r=!0,t.holders-=1,!(t.holders>0)))try{let r=this._context.configuratorExtensionSelectors.getCanvasSystem();r.r3fHandle$.value===e&&await r.waitForFlush(),r.r3fHandle$.value===e&&0===t.holders&&this._renderCurrentView(e)}catch{}finally{0===t.holders&&(t.remove(),t.resumeFrameloop(),this._canvasFreeze===t&&(this._canvasFreeze=null))}}};async renderImage(a){let n=this._context.configuratorExtensionSelectors.getCanvasSystem().r3fHandle$.value;if(null===n)throw Error("R3F state not ready");let{gl:i,scene:s,camera:l,size:c,advance:m}=n.get(),g=i.getRenderTarget(),d=i.getClearColor(new e),h=i.getClearAlpha(),u=i.autoClearColor,f=e=>new w(a.width,a.height,e,i.outputColorSpace),p={composer:null,pass:null},y=null,b=null,x=e=>{let t=p.pass??f(r);return p.pass=t,p.composer===e&&e.passes.at(-1)===t||(p.composer?.removePass(t),e.addPass(t),p.composer=e),t},v=async()=>{if(await this._context.configuratorExtensionSelectors.getCanvasSystem().waitForFlush(),this._context.configuratorExtensionSelectors.getCanvasSystem().r3fHandle$.value!==n)throw Error("Canvas was remounted while an image was being rendered! The export borrowed a canvas that is gone, so it cannot capture the image. Retry the export once the configurator has settled.")},E=this._freezeCanvas(n);try{n.set({size:{height:a.height,width:a.width,top:0,left:0,updateStyle:!1}}),n.set({camera:a.camera}),await v(),null!==this._effectComposer&&x(this._effectComposer),m(void 0),await v();let r="JPEG"===a.fileFormat?"image/jpeg":"image/png",l=_({sceneBackground:s.background,backgroundColor:a.backgroundColor,fileFormat:a.fileFormat,outputColorSpace:i.outputColorSpace});if(null!==this._effectComposer){i.setRenderTarget(null),"JPEG"===a.fileFormat?i.setClearColor(a.backgroundColor??0xffffff):a.backgroundColor?i.setClearColor(a.backgroundColor):i.setClearAlpha(0),i.autoClearColor=!0;let e=x(this._effectComposer);return this._effectComposer.render(),await C(i,e.renderTarget,l,r)}y=f(i.toneMapping),b=new o(a.width,a.height,{samples:4,type:t,stencilBuffer:i.getContextAttributes().stencil??!1});let c=s.background;c instanceof e&&(s.background=null);try{i.setClearColor(0,0),i.setRenderTarget(b),i.clear(),i.render(s,a.camera)}finally{s.background=c}return y.render(i,b),await C(i,y.renderTarget,l,r)}finally{null!==p.pass&&(p.composer?.removePass(p.pass),p.pass.dispose()),y?.dispose(),b?.dispose(),this._context.configuratorExtensionSelectors.getCanvasSystem().r3fHandle$.value===n&&(i.setClearColor(d,h),i.autoClearColor=u,i.setRenderTarget(g),n.set({camera:l,size:{...c,updateStyle:!1}})),await E()}}async generateAndUploadDeclaredClientSideImages(e,t,r={}){let a=this._captureGenerationGuard(),n=await a.waitFor(this.generateDeclaredClientSideImages(e,r));if(r.debug)return n;let o=new Map((await a.waitFor(a.runEffect(()=>this._context.getAuthorizedClient().generateUploadLinks(this._context.getConfigurationId(),t,n.map(e=>e.name))))).map(e=>[e.name,e.url]));return await Promise.all(n.map(async e=>{let t=o.get(e.name);if(!t)throw Error(`Presigned link for image ${e.name} not found!`);await a.waitFor(a.runEffect(()=>fetch(t,{method:"PUT",body:e.blob})))})),n}generateDeclaredClientSideImages(e,t={}){let r=this._context.domainContextSelectors.getComponentReader().readManyComponents({componentTypes:[l]},e);return this.generateImagesFromComponents(r,e,t)}async generateImagesFromComponents(t,r,o={}){let l=this._captureGenerationGuard(),p=this._context.configuratorExtensionSelectors.getCanvasSystem().r3fHandle$.value;if(null===p)throw Error("R3F state not ready");let w=!1,C=this._context.domainContextSelectors.getExportStates(),_=t.map(t=>{if(!C.includes(t.state.exportState)){let e=d(t.componentInstance.entityId)?m(t.componentInstance.entityId):"unknown entity",r=t.componentInstance.componentType.name,a=t.componentInstance.instanceName;throw Error(`Export state ${t.state.exportState} declared in component ${r}/${a} on ${e} is not a valid export state. Expected one of: ${C.join(", ")}`)}let p=t.componentInstance.entityId;if(h(p))throw Error("Virtual entities cannot be used for export");return this._context.configuratorExtensionSelectors.getExportSystem().createExportJob(r,{exportState:t.state.exportState,exportedEntityId:p,toolState:t.state.toolState,viewState:t.state.viewState,navigationState:t.state.navigationState,selectedEntityId:r.rootEntityId},async r=>{let m=this._context.domainContextSelectors.getComponentReader().readManyComponents({componentTypes:[c,g,u]},r.state);!w&&m.length>0&&(await new Promise(e=>{i({font:void 0,characters:void 0},e)}),w=!0,await this._context.configuratorExtensionSelectors.getCanvasSystem().waitForFlush());let d=this._context.configuratorExtensionSelectors.getCameraSystem().getActiveCameraConfig(r.state);if(null==d)throw Error(`No camera config is attached for export state ${t.state.exportState} and exported entity ${p}. Whenever using a client-side image component, you need to attach a camera configuration to the export state defined on that componentin the domain spec. This camera will be used to render the image.`);let h=s(d.typeSpecificConfig.cameraType).with("perspective",()=>new n(45,t.state.width/t.state.height,1,1e4)).with("orthographic",()=>new a(0,0,1e4,0,1,1e4)).exhaustive(),C=f(h);await this._context.configuratorExtensionSelectors.getCameraSystem().applyConfig(d,C,!1,{width:t.state.width,height:t.state.height,padding:{top:0,right:0,bottom:0,left:0}}),C.update(1e6),await new Promise(e=>setTimeout(e,100));let _=await l.waitFor(l.runEffect(()=>this.renderImage({width:t.state.width,height:t.state.height,fileFormat:t.state.fileFormat,backgroundColor:t.state.backgroundColor?new e(t.state.backgroundColor):void 0,camera:h})));return o.debug&&l.runEffect(()=>this._openDebugImage(_)),{blob:_,imageComponent:t,name:`${t.componentInstance.componentType.name}-${t.componentInstance.entityId}-${t.componentInstance.instanceName}`}})});if(0===_.length)return this._context.configuratorExtensionSelectors.getExportSystem().runExportJobs(_);let y=this._freezeCanvas(p);try{return await this._context.configuratorExtensionSelectors.getExportSystem().runExportJobs(_)}finally{await y()}}initialize=()=>{for(let e of(null!==this._generation&&(this._generation.active=!1),this._debugObjectUrls))URL.revokeObjectURL(e);this._debugObjectUrls.clear(),this._generation={active:!0}}}
1
+ import{Color as e,HalfFloatType as t,NoToneMapping as a,OrthographicCamera as r,PerspectiveCamera as n,WebGLRenderTarget as o}from"three";import{preloadFont as i}from"troika-three-text";import{match as s}from"ts-pattern";import{clientSideImageComponent as l,dimensionIndicatorComponent as c,domainEntityTypeFromId as m,editableDistanceDimensionIndicatorComponent as g,isDomainEntityId as d,isVirtualEntityId as h,sketchingEditComponent as u}from"#package/domain";import{createCameraControls as f}from"../camera-control-system/create-camera-controls.js";import{createCanvasFreezeFrame as p}from"./canvas-freeze-frame.js";import{ExportCapturePass as w,readTargetToBlob as C,resolveExportBackground as _}from"./export-image-capture.js";export class ImageRenderingSystem{_context;_renderer=null;_effectComposer=null;_generation=null;_debugObjectUrls=new Set;_canvasFreeze=null;constructor(e){this._context=e}_captureGenerationAssertion=()=>{let e=this._generation,t=()=>{if(!e?.active)throw Error("Image rendering generation ended while images were being rendered! The configurator context was reinitialized before the renderer finished, so the results belong to a configuration that is no longer active. Await the render before leaving the configuration, or discard the rejection.")};return t(),t};_captureGenerationGuard=()=>{let e=this._captureGenerationAssertion();return{assertActive:e,waitFor:async t=>{let a=await t;return e(),a},runEffect:t=>(e(),t())}};register(e){return this._renderer=e,()=>{this._renderer===e&&(this._renderer=null)}}registerEffectComposer(e){return this._effectComposer=e,()=>{this._effectComposer===e&&(this._effectComposer=null)}}_openDebugImage=e=>{let t=URL.createObjectURL(e);this._debugObjectUrls.add(t),window.open(t,"_blank")};_getRenderer=async()=>{let e=this._generation,t=Date.now(),a=()=>{if(!e?.active)throw Error("Image rendering generation ended while waiting for the renderer! The configurator context was reinitialized before the renderer arrived, so the render would target a scene that is gone. Await the render before leaving the configuration, or discard the rejection.")};a();let r=this._renderer;for(;null===r;){if(await new Promise(e=>setTimeout(e,50)),a(),Date.now()-t>1e4)throw Error("Renderer could not be retrieved! Reached timeout.");r=this._renderer}return r};generateImageUsingOriginalCanvas=async(e,t,a=!1)=>{let r=this._captureGenerationGuard(),n=await r.waitFor(this._getRenderer());if(a){let{blob:e}=await r.waitFor(r.runEffect(()=>n.renderUsingOriginalCanvas(t)));r.runEffect(()=>this._openDebugImage(e));return}let o=await Promise.all([t].map(async e=>{let{blob:t}=await r.waitFor(r.runEffect(()=>n.renderUsingOriginalCanvas(e)));return{blob:t,name:e.name}})),i=await r.waitFor(r.runEffect(()=>this._context.getAuthorizedClient().generateUploadLinks(this._context.getConfigurationId(),e,[t.name])));await Promise.all(i.map(async e=>{let t=o.find(t=>t.name===e.name);if(null==t)throw Error("Blob not found!");await Promise.all(i.map(async e=>{await r.waitFor(r.runEffect(()=>fetch(e.url,{method:"PUT",body:t.blob,headers:{"Content-Type":"image/png","Content-Length":t.blob.size.toString()}})))}))}))};async generateImagesUsingOriginalCanvas(e,t,a=!1){let r=this._captureGenerationGuard(),n=await r.waitFor(this._getRenderer()),o=Array.isArray(t)?t:[t],i=await o.reduce(async(e,t)=>[...await e,await r.waitFor(r.runEffect(()=>n.renderUsingOriginalCanvas(t)))],Promise.resolve([]));if(a){for(let e of i)r.runEffect(()=>this._openDebugImage(e.blob)),await r.waitFor(new Promise(e=>setTimeout(e,100)));return}let s=o.map(e=>e.name),l=await r.waitFor(r.runEffect(()=>this._context.getAuthorizedClient().generateUploadLinks(this._context.getConfigurationId(),e,s)));await Promise.all(l.map(async e=>{let t=i.find(t=>t.name===e.name);if(null==t)throw Error("Blob not found!");await Promise.all(l.map(async e=>{await r.waitFor(r.runEffect(()=>fetch(e.url,{method:"PUT",body:t.blob,headers:{"Content-Type":"image/png","Content-Length":t.blob.size.toString()}})))}))}))}async generateImages(e,t,a=!1){let r=this._captureGenerationGuard(),n=await r.waitFor(this._getRenderer()),o=t.map(e=>e.name);if(a)return void await Promise.all(t.map(async e=>{let t=await r.waitFor(r.runEffect(()=>n.renderImage(e)));r.runEffect(()=>this._openDebugImage(t))}));let i=await Promise.all(t.map(async e=>({blob:await r.waitFor(r.runEffect(()=>n.renderImage(e))),name:e.name}))),s=await r.waitFor(r.runEffect(()=>this._context.getAuthorizedClient().generateUploadLinks(this._context.getConfigurationId(),e,o)));await Promise.all(s.map(async e=>{let t=i.find(t=>t.name===e.name);if(null==t)throw Error("Blob not found!");await Promise.all(s.map(async e=>{await r.waitFor(r.runEffect(()=>fetch(e.url,{method:"PUT",body:t.blob,headers:{"Content-Type":"image/png","Content-Length":t.blob.size.toString()}})))}))}))}async getGeneratedImages(e,t=!1){let a=this._captureGenerationAssertion(),r=await this._getRenderer();return(a(),t)?(await Promise.all(e.map(async e=>{let t=await r.renderImage(e);a(),this._openDebugImage(t)})),[]):Promise.all(e.map(async e=>{let t=await r.renderImage(e);return a(),{blob:t,name:e.name}}))}_renderCurrentView=e=>{let{gl:t,scene:a,camera:r}=e.get();null!==this._effectComposer?this._effectComposer.render():t.render(a,r)};_freezeCanvas=e=>{this._canvasFreeze?.handle===e?this._canvasFreeze.holders+=1:(this._canvasFreeze?.remove(),this._canvasFreeze={handle:e,remove:p(e.get().gl.domElement,()=>this._renderCurrentView(e)),resumeFrameloop:this._context.configuratorExtensionSelectors.getExportSystem().pauseFrameloop(e),holders:1});let t=this._canvasFreeze,a=!1;return async()=>{if(!a&&(a=!0,t.holders-=1,!(t.holders>0)))try{let a=this._context.configuratorExtensionSelectors.getCanvasSystem();a.r3fHandle$.value===e&&await a.waitForFlush(),a.r3fHandle$.value===e&&0===t.holders&&this._renderCurrentView(e)}catch{}finally{0===t.holders&&(t.remove(),t.resumeFrameloop(),this._canvasFreeze===t&&(this._canvasFreeze=null))}}};async renderImage(r){let n=this._context.configuratorExtensionSelectors.getCanvasSystem(),i=n.r3fHandle$.value??await n.waitForCanvas(),{gl:s,scene:l,camera:c,size:m,advance:g}=i.get(),d=s.getRenderTarget(),h=s.getClearColor(new e),u=s.getClearAlpha(),f=s.autoClearColor,p=e=>new w(r.width,r.height,e,s.outputColorSpace),y={composer:null,pass:null},b=null,x=null,v=e=>{let t=y.pass??p(a);return y.pass=t,y.composer===e&&e.passes.at(-1)===t||(y.composer?.removePass(t),e.addPass(t),y.composer=e),t},E=async()=>{if(await this._context.configuratorExtensionSelectors.getCanvasSystem().waitForFlush(),this._context.configuratorExtensionSelectors.getCanvasSystem().r3fHandle$.value!==i)throw Error("Canvas was remounted while an image was being rendered! The export borrowed a canvas that is gone, so it cannot capture the image. Retry the export once the configurator has settled.")},S=this._freezeCanvas(i);try{i.set({size:{height:r.height,width:r.width,top:0,left:0,updateStyle:!1}}),i.set({camera:r.camera}),await E(),null!==this._effectComposer&&v(this._effectComposer),g(void 0),await E();let a="JPEG"===r.fileFormat?"image/jpeg":"image/png",n=_({sceneBackground:l.background,backgroundColor:r.backgroundColor,fileFormat:r.fileFormat,outputColorSpace:s.outputColorSpace});if(null!==this._effectComposer){s.setRenderTarget(null),"JPEG"===r.fileFormat?s.setClearColor(r.backgroundColor??0xffffff):r.backgroundColor?s.setClearColor(r.backgroundColor):s.setClearAlpha(0),s.autoClearColor=!0;let e=v(this._effectComposer);return this._effectComposer.render(),await C(s,e.renderTarget,n,a)}b=p(s.toneMapping),x=new o(r.width,r.height,{samples:4,type:t,stencilBuffer:s.getContextAttributes().stencil??!1});let c=l.background;c instanceof e&&(l.background=null);try{s.setClearColor(0,0),s.setRenderTarget(x),s.clear(),s.render(l,r.camera)}finally{l.background=c}return b.render(s,x),await C(s,b.renderTarget,n,a)}finally{null!==y.pass&&(y.composer?.removePass(y.pass),y.pass.dispose()),b?.dispose(),x?.dispose(),this._context.configuratorExtensionSelectors.getCanvasSystem().r3fHandle$.value===i&&(s.setClearColor(h,u),s.autoClearColor=f,s.setRenderTarget(d),i.set({camera:c,size:{...m,updateStyle:!1}})),await S()}}async generateAndUploadDeclaredClientSideImages(e,t,a={}){let r=this._captureGenerationGuard(),n=await r.waitFor(this.generateDeclaredClientSideImages(e,a));if(a.debug)return n;let o=new Map((await r.waitFor(r.runEffect(()=>this._context.getAuthorizedClient().generateUploadLinks(this._context.getConfigurationId(),t,n.map(e=>e.name))))).map(e=>[e.name,e.url]));return await Promise.all(n.map(async e=>{let t=o.get(e.name);if(!t)throw Error(`Presigned link for image ${e.name} not found!`);await r.waitFor(r.runEffect(()=>fetch(t,{method:"PUT",body:e.blob})))})),n}generateDeclaredClientSideImages(e,t={}){let a=this._context.domainContextSelectors.getComponentReader().readManyComponents({componentTypes:[l]},e);return this.generateImagesFromComponents(a,e,t)}generateImagesFromComponents(e,t,a={},r={}){return this._generateImagesFromComponents(e,t,a,r)}async _generateImagesFromComponents(t,a,o,l){let p=this._captureGenerationGuard(),w=!1,C=this._context.domainContextSelectors.getExportStates(),_=t.map(t=>{if(!C.includes(t.state.exportState)){let e=d(t.componentInstance.entityId)?m(t.componentInstance.entityId):"unknown entity",a=t.componentInstance.componentType.name,r=t.componentInstance.instanceName;throw Error(`Export state ${t.state.exportState} declared in component ${a}/${r} on ${e} is not a valid export state. Expected one of: ${C.join(", ")}`)}let l=t.componentInstance.entityId;if(h(l))throw Error("Virtual entities cannot be used for export");return this._context.configuratorExtensionSelectors.getExportSystem().createExportJob(a,{exportState:t.state.exportState,exportedEntityId:l,toolState:t.state.toolState,viewState:t.state.viewState,navigationState:t.state.navigationState,selectedEntityId:a.rootEntityId},async a=>{let m=this._context.domainContextSelectors.getComponentReader().readManyComponents({componentTypes:[c,g,u]},a.state);!w&&m.length>0&&(await new Promise(e=>{i({font:void 0,characters:void 0},e)}),w=!0,await this._context.configuratorExtensionSelectors.getCanvasSystem().waitForFlush());let d=this._context.configuratorExtensionSelectors.getCameraSystem().getActiveCameraConfig(a.state);if(null==d)throw Error(`No camera config is attached for export state ${t.state.exportState} and exported entity ${l}. Whenever using a client-side image component, you need to attach a camera configuration to the export state defined on that componentin the domain spec. This camera will be used to render the image.`);let h=s(d.typeSpecificConfig.cameraType).with("perspective",()=>new n(45,t.state.width/t.state.height,1,1e4)).with("orthographic",()=>new r(0,0,1e4,0,1,1e4)).exhaustive(),C=f(h);await this._context.configuratorExtensionSelectors.getCameraSystem().applyConfig(d,C,!1,{width:t.state.width,height:t.state.height,padding:{top:0,right:0,bottom:0,left:0}}),C.update(1e6),await new Promise(e=>setTimeout(e,100));let _=await p.waitFor(p.runEffect(()=>this.renderImage({width:t.state.width,height:t.state.height,fileFormat:t.state.fileFormat,backgroundColor:t.state.backgroundColor?new e(t.state.backgroundColor):void 0,camera:h})));return o.debug&&p.runEffect(()=>this._openDebugImage(_)),{blob:_,imageComponent:t,name:`${t.componentInstance.componentType.name}-${t.componentInstance.entityId}-${t.componentInstance.instanceName}`}})});if(0===_.length)return this._context.configuratorExtensionSelectors.getExportSystem().runExportJobs(_,l);let y=this._context.configuratorExtensionSelectors.getCanvasSystem(),b=y.r3fHandle$.value??await p.waitFor(y.waitForCanvas().catch(e=>{throw p.assertActive(),e})),x=this._freezeCanvas(b);try{return await this._context.configuratorExtensionSelectors.getExportSystem().runExportJobs(_,l)}finally{await x()}}initialize=()=>{for(let e of(null!==this._generation&&(this._generation.active=!1),this._debugObjectUrls))URL.revokeObjectURL(e);this._debugObjectUrls.clear(),this._generation={active:!0}}}
@@ -6,7 +6,7 @@ export { createCameraControls } from './camera-control-system/create-camera-cont
6
6
  export { type AnyCanvasSystem, CanvasSystem, type EntityObjectFilter, type FlushToken } from './canvas-system.js';
7
7
  export { type AnyDragAndDropSystem, DragAndDropSystem, type DragAndDropSystemContext, type DraggableState, type DraggingState, type RotationDraggingState, } from './drag-and-drop-system/drag-and-drop-system.js';
8
8
  export { type AnyExportSystem, ExportSystem, type ExportSystemContext } from './export-system/export-system.js';
9
- export { type GraphQLExecution, type GraphQLOperation, GraphQLSystem, type GraphQLSystemContext, type PreparedOperation, } from './graphql-system/graphql-system.js';
9
+ export { type GraphQLExecution, type GraphQLScreenshot, type GraphQLOperation, GraphQLSystem, type GraphQLSystemContext, type PreparedOperation, } from './graphql-system/graphql-system.js';
10
10
  export type * from './image-rendering-system/image-renderer.js';
11
11
  export { type AnyImageRenderingSystem, ImageRenderingSystem, type ImageRenderingSystemContext, } from './image-rendering-system/image-rendering-system.js';
12
12
  export { type AnyLayoutSystem, LayoutSystem, type LayoutSystemContext } from './layout-system/layout-system.js';
@@ -36,7 +36,7 @@ export declare class LayoutSystem<ENTITIES extends DomainEntity<string>> {
36
36
  splitSidebar: boolean;
37
37
  showSelectionBackButton: boolean;
38
38
  shareDisabled: boolean;
39
- availableLocales: string[];
39
+ availableLocales: readonly string[];
40
40
  indicatorSwitch: boolean;
41
41
  };
42
42
  getSidebarSummaryPage: (state: DomainState<ENTITIES>) => {
@@ -71,5 +71,5 @@ export declare class LayoutSystem<ENTITIES extends DomainEntity<string>> {
71
71
  hasSplitSidebar: boolean;
72
72
  };
73
73
  getToolbarState: (state: DomainState<ENTITIES>) => ToolbarComponentState;
74
- getNavigationSteps: (state: DomainState<ENTITIES>) => import("#package/domain").NavigationStep[];
74
+ getNavigationSteps: (state: DomainState<ENTITIES>) => readonly import("#package/domain").NavigationStep[];
75
75
  }
@@ -1 +1 @@
1
- import{P as t,match as e}from"ts-pattern";import{SystemState as o,applicationConfigComponent as n,customSummaryPageComponent as a,entityHeaderComponent as i,navigationStepsComponent as r,propertyPageComponent as s,sidebarTabsComponent as l,simpleSummaryComponent as d,toolbarComponent as c}from"#package/domain";import{layoutStateComponent as g}from"./layout-state.js";import{toolbarHelpElementName as u}from"./toolbar-help-element.js";export class LayoutSystem{_context;_toolbarCache=new WeakMap;state;constructor(t){this._context=t,this.state=new o({...this._context,selectors:this._context.domainContextSelectors,componentType:g,getInitialState:()=>({propertyPageStates:{}})})}get _toolbarHelpExists(){return void 0!==this._context.specSelectors.getElementSlots().layoutElements[u]}get _hasAssistant(){return void 0!==this._context.specSelectors.getAssistant()}initialize=()=>{this.state.initialize()};getCleanUpPropertyPageStateUpdates=(t,e)=>this.state.getUpdates(e=>{if(!e.propertyPageStates[t])return null;let o={...e.propertyPageStates};return delete o[t],{...e,propertyPageStates:o}},e);getLayoutConfig=t=>{let e=this._context.domainContextSelectors.getComponentReader().readFirstRootComponent({componentTypes:[n]},t),o=e?.state.shareDisabled??!1,a=o||(e?.state.shareOwnerLinkDisabled??!1),i=o||(e?.state.shareReadRevisionLinkDisabled??!1);return{layout:e?.state.layout??"universal",ignoreSelectionInSidebar:e?.state.ignoreSelectionInSidebar??!1,miniSidebar:e?.state.miniSidebar??!1,splitSidebar:e?.state.splitSidebar??!1,showSelectionBackButton:e?.state.showSelectionBackButton??!0,shareDisabled:a&&i,availableLocales:e?.state.availableLocales??["en"],indicatorSwitch:e?.state.indicatorSwitch??!0}};getSidebarSummaryPage=t=>{let e=this._context.domainContextSelectors.getNavigationSystem().getActiveNavigationState(t),o=this._context.domainContextSelectors.getComponentReader().readFirstRootComponent({componentTypes:[a,d]},t),n=e===o?.state.summaryNavigationState,i=o?.state.summaryNavigationState;return{page:o,isSummaryActive:n,summaryNavigationState:i}};getEnterSidebarSummaryUpdates=t=>{let{summaryNavigationState:e}=this.getSidebarSummaryPage(t);return e?[this._context.domainContextSelectors.getNavigationSystem().getPushNavigationUpdate(e,t)]:[]};getLeaveSidebarSummaryUpdates=t=>{let e=this._context.domainContextSelectors.getNavigationSystem().getPopNavigationUpdate(t);if(e)return[e];let o=this._context.domainContextSelectors.getNavigationStates().at(0);return o?(this._context.domainServicesSelectors.getLogger().error("There is no navigation state to pop, falling back to the initial navigation state. Check whether the history stack is not broken by some custom navigation logic."),[this._context.domainContextSelectors.getNavigationSystem().getNavigationUpdate(o)]):(this._context.domainServicesSelectors.getLogger().error("There is no navigation state to pop and no initial navigation state to fallback to, this should not happen"),[])};getPushSidebarStackPageUpdates=(t,e,o,n)=>this.state.getUpdates(n=>{let a=n.propertyPageStates[t]??{customState:{},stackPages:[]};return{...n,propertyPageStates:{...n.propertyPageStates,[t]:{...a,stackPages:[...a.stackPages,{props:o,component:e}]}}}},n);getPopSidebarStackPageUpdates=(t,e)=>this.state.getUpdates(e=>{let o=e.propertyPageStates[t]??{customState:{},stackPages:[]};return{...e,propertyPageStates:{...e.propertyPageStates,[t]:{...o,stackPages:o.stackPages.slice(0,-1)}}}},e);getSidebarBackUpdates=t=>{let e=this._context.domainContextSelectors.getNavigationSystem().getHasStackToPop(t),o=this._context.domainContextSelectors.getNavigationSystem().getIsRootSelected(t),{renderedStackedPage:n,summaryPage:a,activePropertyPageId:i}=this.getSidebarContent(t);if(a)return this.getLeaveSidebarSummaryUpdates(t);if(n&&i)return this.getPopSidebarStackPageUpdates(i,t);if(e){let e=this._context.domainContextSelectors.getNavigationSystem().getPopNavigationUpdate(t);return e?[e]:[]}return o?[]:[this._context.domainContextSelectors.getNavigationSystem().getDeselectUpdate()]};getSidebarContent=t=>{let e=this._context.domainContextSelectors.getNavigationSystem().getActiveSelectionState(t),o=this.state.get(t),n=this.getLayoutConfig(t),a=this._context.domainContextSelectors.getComponentReader().readManyComponents({componentTypes:[l],entityIds:[e]},t).some(t=>t.state.tabs.length>0),r=n.miniSidebar&&!a;r&&a&&this._context.domainServicesSelectors.getLogger().warn("Mini sidebar is not active because the layout contains tabs. Only layouts without tabs can have mini sidebar.");let d=this._context.domainContextSelectors.getComponentReader().readManyComponents({componentTypes:[s]},t),{isSummaryActive:c,page:g}=this.getSidebarSummaryPage(t),u=this._context.domainContextSelectors.getComponentReader().readManyComponents({componentTypes:[i]},t),p=this._context.domainContextSelectors.getCompositionProjections().getTree(t).map.get(e);if(!p)throw Error(`Selected entity ${e} not found in composition tree`);let m=this._context.domainContextSelectors.getCompositionProjections().getTree(t).map.get(t.rootEntityId);if(!m)throw Error(`Root entity ${t.rootEntityId} not found in composition tree`);let h=(n.ignoreSelectionInSidebar?[m]:[p,...p.ancestors()]).map(t=>{let e=n.ignoreSelectionInSidebar?d:d.filter(e=>e.componentInstance.entityId===t.id),o=u.filter(e=>e.componentInstance.entityId===t.id);return{id:t.id,propertyPages:e,header:o[0]??null}}),S=h[0]?.id,b=(S?o.propertyPageStates[S]?.stackPages??[]:[]).at(-1)??null,k=this._context.domainContextSelectors.getNavigationSystem().getHasStackToPop(t),x=this._context.domainContextSelectors.getNavigationSystem().getIsRootSelected(t),y=c&&k||k||!!b||!x&&n.showSelectionBackButton&&!n.ignoreSelectionInSidebar;return c?{summaryPage:g,propertyPages:[],isBackAvailable:y,hasMiniSidebar:r,hasSplitSidebar:n.splitSidebar}:{summaryPage:null,propertyPages:h,renderedStackedPage:b,activePropertyPageId:S,isBackAvailable:y,hasMiniSidebar:r,hasSplitSidebar:n.splitSidebar}};getToolbarState=o=>{let n=this._toolbarHelpExists,a=this._hasAssistant,i=this._toolbarCache.get(o);if(i&&i.toolbarHelpExists===n&&i.hasAssistant===a)return i.result;let r=this._context.domainContextSelectors.getExpressionContext(),s=this._context.domainContextSelectors.getNavigationSystem().getActiveFullscreenState(o),l="read"===r.mode,d=this._context.domainContextSelectors.getComponentReader().readFirstRootComponent({componentTypes:[c]},o),g=this._context.domainContextSelectors.getDimensionSystem().getDimensionConfig(o),u=this.getLayoutConfig(o),p="read"===this._context.domainContextSelectors.getExpressionContext().mode,m=u.availableLocales.length>1,h=!p&&!u.shareDisabled,S=u.indicatorSwitch,b=g.availableDimensions.length>1||S,k=a?[{kind:"toolbarButtonGroup",children:[{kind:"assistantToolbarButton"}]}]:[],x=e(d).returnType().with(t.nonNullable,t=>t.state).with(t.nullish,()=>e([s,l]).returnType().with([!1,!1],()=>({desktop:[{kind:"toolbarButtonGroup",children:[{kind:"enterFullscreenToolbarButton"}]},{kind:"toolbarButtonGroup",children:[{kind:"resetCameraToolbarButton"}]},...m?[{kind:"toolbarButtonGroup",children:[{kind:"languageToolbarButton"}]}]:[],...h||b?[{kind:"toolbarButtonGroup",children:[...h?[{kind:"shareToolbarButton"}]:[],...b?[{kind:"measurementsToolbarButton"}]:[],...n?[{kind:"helpToolbarButton"}]:[]]}]:[],{kind:"toolbarButtonGroup",children:[{kind:"undoToolbarButton"},{kind:"redoToolbarButton"}]},...k],mobile:[{kind:"toolbarButtonGroup",children:[{kind:"undoToolbarButton"},{kind:"redoToolbarButton"}]},{kind:"toolbarButtonGroup",children:[{kind:"resetCameraToolbarButton"}]},{kind:"toolbarButtonGroup",children:[{kind:"enterFullscreenToolbarButton"}]},...k],mobileMenu:[...h?[{kind:"shareMenuAction"}]:[],...b?[{kind:"measurementsMenuAction"}]:[],...m?[{kind:"languageMenuAction"}]:[],...n?[{kind:"helpMenuAction"}]:[]]})).with([!0,!1],()=>({desktop:[{kind:"toolbarButtonGroup",children:[{kind:"exitFullscreenToolbarButton"}]}],mobile:[{kind:"toolbarButtonGroup",children:[{kind:"exitFullscreenToolbarButton"}]}],mobileMenu:[]})).with([!1,!0],()=>({desktop:[{kind:"toolbarButtonGroup",children:[{kind:"enterFullscreenToolbarButton"}]},{kind:"toolbarButtonGroup",children:[{kind:"resetCameraToolbarButton"}]},...m?[{kind:"toolbarButtonGroup",children:[{kind:"languageToolbarButton"}]}]:[],...b?[{kind:"toolbarButtonGroup",children:[...b?[{kind:"measurementsToolbarButton"}]:[]]}]:[],...n?[{kind:"helpToolbarButton"}]:[],...k],mobile:[{kind:"toolbarButtonGroup",children:[{kind:"resetCameraToolbarButton"}]},{kind:"toolbarButtonGroup",children:[{kind:"enterFullscreenToolbarButton"}]},...k],mobileMenu:[...b?[{kind:"measurementsMenuAction"}]:[],...m?[{kind:"languageMenuAction"}]:[],...n?[{kind:"helpMenuAction"}]:[]]})).with([!0,!0],()=>({desktop:[{kind:"toolbarButtonGroup",children:[{kind:"exitFullscreenToolbarButton"}]}],mobile:[{kind:"toolbarButtonGroup",children:[{kind:"exitFullscreenToolbarButton"}]}],mobileMenu:[]})).exhaustive()).exhaustive();return this._toolbarCache.set(o,{toolbarHelpExists:n,hasAssistant:a,result:x}),x};getNavigationSteps=t=>{let e=this._context.domainContextSelectors.getComponentReader().readFirstRootComponent({componentTypes:[r]},t);return e?.state.steps??[]}}
1
+ import{P as t,match as e}from"ts-pattern";import{SystemState as o,applicationConfigComponent as n,customSummaryPageComponent as a,entityHeaderComponent as i,navigationStepsComponent as r,propertyPageComponent as s,sidebarTabsComponent as l,simpleSummaryComponent as d,toolbarComponent as c}from"#package/domain";import{layoutStateComponent as g}from"./layout-state.js";import{toolbarHelpElementName as u}from"./toolbar-help-element.js";export class LayoutSystem{_context;_toolbarCache=new WeakMap;state;constructor(t){this._context=t,this.state=new o({...this._context,selectors:this._context.domainContextSelectors,componentType:g,getInitialState:()=>({propertyPageStates:{}})})}get _toolbarHelpExists(){return void 0!==this._context.specSelectors.getElementSlots().layoutElements[u]}get _hasAssistant(){return null!=this._context.specSelectors.getAssistant()}initialize=()=>{this.state.initialize()};getCleanUpPropertyPageStateUpdates=(t,e)=>this.state.getUpdates(e=>{if(!e.propertyPageStates[t])return null;let o={...e.propertyPageStates};return delete o[t],{...e,propertyPageStates:o}},e);getLayoutConfig=t=>{let e=this._context.domainContextSelectors.getComponentReader().readFirstRootComponent({componentTypes:[n]},t),o=e?.state.shareDisabled??!1,a=o||(e?.state.shareOwnerLinkDisabled??!1),i=o||(e?.state.shareReadRevisionLinkDisabled??!1);return{layout:e?.state.layout??"universal",ignoreSelectionInSidebar:e?.state.ignoreSelectionInSidebar??!1,miniSidebar:e?.state.miniSidebar??!1,splitSidebar:e?.state.splitSidebar??!1,showSelectionBackButton:e?.state.showSelectionBackButton??!0,shareDisabled:a&&i,availableLocales:e?.state.availableLocales??["en"],indicatorSwitch:e?.state.indicatorSwitch??!0}};getSidebarSummaryPage=t=>{let e=this._context.domainContextSelectors.getNavigationSystem().getActiveNavigationState(t),o=this._context.domainContextSelectors.getComponentReader().readFirstRootComponent({componentTypes:[a,d]},t),n=e===o?.state.summaryNavigationState,i=o?.state.summaryNavigationState;return{page:o,isSummaryActive:n,summaryNavigationState:i}};getEnterSidebarSummaryUpdates=t=>{let{summaryNavigationState:e}=this.getSidebarSummaryPage(t);return e?[this._context.domainContextSelectors.getNavigationSystem().getPushNavigationUpdate(e,t)]:[]};getLeaveSidebarSummaryUpdates=t=>{let e=this._context.domainContextSelectors.getNavigationSystem().getPopNavigationUpdate(t);if(e)return[e];let o=this._context.domainContextSelectors.getNavigationStates().at(0);return o?(this._context.domainServicesSelectors.getLogger().error("There is no navigation state to pop, falling back to the initial navigation state. Check whether the history stack is not broken by some custom navigation logic."),[this._context.domainContextSelectors.getNavigationSystem().getNavigationUpdate(o)]):(this._context.domainServicesSelectors.getLogger().error("There is no navigation state to pop and no initial navigation state to fallback to, this should not happen"),[])};getPushSidebarStackPageUpdates=(t,e,o,n)=>this.state.getUpdates(n=>{let a=n.propertyPageStates[t]??{customState:{},stackPages:[]};return{...n,propertyPageStates:{...n.propertyPageStates,[t]:{...a,stackPages:[...a.stackPages,{props:o,component:e}]}}}},n);getPopSidebarStackPageUpdates=(t,e)=>this.state.getUpdates(e=>{let o=e.propertyPageStates[t]??{customState:{},stackPages:[]};return{...e,propertyPageStates:{...e.propertyPageStates,[t]:{...o,stackPages:o.stackPages.slice(0,-1)}}}},e);getSidebarBackUpdates=t=>{let e=this._context.domainContextSelectors.getNavigationSystem().getHasStackToPop(t),o=this._context.domainContextSelectors.getNavigationSystem().getIsRootSelected(t),{renderedStackedPage:n,summaryPage:a,activePropertyPageId:i}=this.getSidebarContent(t);if(a)return this.getLeaveSidebarSummaryUpdates(t);if(n&&i)return this.getPopSidebarStackPageUpdates(i,t);if(e){let e=this._context.domainContextSelectors.getNavigationSystem().getPopNavigationUpdate(t);return e?[e]:[]}return o?[]:[this._context.domainContextSelectors.getNavigationSystem().getDeselectUpdate()]};getSidebarContent=t=>{let e=this._context.domainContextSelectors.getNavigationSystem().getActiveSelectionState(t),o=this.state.get(t),n=this.getLayoutConfig(t),a=this._context.domainContextSelectors.getComponentReader().readManyComponents({componentTypes:[l],entityIds:[e]},t).some(t=>t.state.tabs.length>0),r=n.miniSidebar&&!a;r&&a&&this._context.domainServicesSelectors.getLogger().warn("Mini sidebar is not active because the layout contains tabs. Only layouts without tabs can have mini sidebar.");let d=this._context.domainContextSelectors.getComponentReader().readManyComponents({componentTypes:[s]},t),{isSummaryActive:c,page:g}=this.getSidebarSummaryPage(t),u=this._context.domainContextSelectors.getComponentReader().readManyComponents({componentTypes:[i]},t),p=this._context.domainContextSelectors.getCompositionProjections().getTree(t).map.get(e);if(!p)throw Error(`Selected entity ${e} not found in composition tree`);let m=this._context.domainContextSelectors.getCompositionProjections().getTree(t).map.get(t.rootEntityId);if(!m)throw Error(`Root entity ${t.rootEntityId} not found in composition tree`);let h=(n.ignoreSelectionInSidebar?[m]:[p,...p.ancestors()]).map(t=>{let e=n.ignoreSelectionInSidebar?d:d.filter(e=>e.componentInstance.entityId===t.id),o=u.filter(e=>e.componentInstance.entityId===t.id);return{id:t.id,propertyPages:e,header:o[0]??null}}),S=h[0]?.id,b=(S?o.propertyPageStates[S]?.stackPages??[]:[]).at(-1)??null,k=this._context.domainContextSelectors.getNavigationSystem().getHasStackToPop(t),x=this._context.domainContextSelectors.getNavigationSystem().getIsRootSelected(t),y=c&&k||k||!!b||!x&&n.showSelectionBackButton&&!n.ignoreSelectionInSidebar;return c?{summaryPage:g,propertyPages:[],isBackAvailable:y,hasMiniSidebar:r,hasSplitSidebar:n.splitSidebar}:{summaryPage:null,propertyPages:h,renderedStackedPage:b,activePropertyPageId:S,isBackAvailable:y,hasMiniSidebar:r,hasSplitSidebar:n.splitSidebar}};getToolbarState=o=>{let n=this._toolbarHelpExists,a=this._hasAssistant,i=this._toolbarCache.get(o);if(i&&i.toolbarHelpExists===n&&i.hasAssistant===a)return i.result;let r=this._context.domainContextSelectors.getExpressionContext(),s=this._context.domainContextSelectors.getNavigationSystem().getActiveFullscreenState(o),l="read"===r.mode,d=this._context.domainContextSelectors.getComponentReader().readFirstRootComponent({componentTypes:[c]},o),g=this._context.domainContextSelectors.getDimensionSystem().getDimensionConfig(o),u=this.getLayoutConfig(o),p="read"===this._context.domainContextSelectors.getExpressionContext().mode,m=u.availableLocales.length>1,h=!p&&!u.shareDisabled,S=u.indicatorSwitch,b=g.availableDimensions.length>1||S,k=a?[{kind:"toolbarButtonGroup",children:[{kind:"assistantToolbarButton"}]}]:[],x=e(d).returnType().with(t.nonNullable,t=>t.state).with(t.nullish,()=>e([s,l]).returnType().with([!1,!1],()=>({desktop:[{kind:"toolbarButtonGroup",children:[{kind:"enterFullscreenToolbarButton"}]},{kind:"toolbarButtonGroup",children:[{kind:"resetCameraToolbarButton"}]},...m?[{kind:"toolbarButtonGroup",children:[{kind:"languageToolbarButton"}]}]:[],...h||b?[{kind:"toolbarButtonGroup",children:[...h?[{kind:"shareToolbarButton"}]:[],...b?[{kind:"measurementsToolbarButton"}]:[],...n?[{kind:"helpToolbarButton"}]:[]]}]:[],{kind:"toolbarButtonGroup",children:[{kind:"undoToolbarButton"},{kind:"redoToolbarButton"}]},...k],mobile:[{kind:"toolbarButtonGroup",children:[{kind:"undoToolbarButton"},{kind:"redoToolbarButton"}]},{kind:"toolbarButtonGroup",children:[{kind:"resetCameraToolbarButton"}]},{kind:"toolbarButtonGroup",children:[{kind:"enterFullscreenToolbarButton"}]},...k],mobileMenu:[...h?[{kind:"shareMenuAction"}]:[],...b?[{kind:"measurementsMenuAction"}]:[],...m?[{kind:"languageMenuAction"}]:[],...n?[{kind:"helpMenuAction"}]:[]]})).with([!0,!1],()=>({desktop:[{kind:"toolbarButtonGroup",children:[{kind:"exitFullscreenToolbarButton"}]}],mobile:[{kind:"toolbarButtonGroup",children:[{kind:"exitFullscreenToolbarButton"}]}],mobileMenu:[]})).with([!1,!0],()=>({desktop:[{kind:"toolbarButtonGroup",children:[{kind:"enterFullscreenToolbarButton"}]},{kind:"toolbarButtonGroup",children:[{kind:"resetCameraToolbarButton"}]},...m?[{kind:"toolbarButtonGroup",children:[{kind:"languageToolbarButton"}]}]:[],...b?[{kind:"toolbarButtonGroup",children:[...b?[{kind:"measurementsToolbarButton"}]:[]]}]:[],...n?[{kind:"helpToolbarButton"}]:[],...k],mobile:[{kind:"toolbarButtonGroup",children:[{kind:"resetCameraToolbarButton"}]},{kind:"toolbarButtonGroup",children:[{kind:"enterFullscreenToolbarButton"}]},...k],mobileMenu:[...b?[{kind:"measurementsMenuAction"}]:[],...m?[{kind:"languageMenuAction"}]:[],...n?[{kind:"helpMenuAction"}]:[]]})).with([!0,!0],()=>({desktop:[{kind:"toolbarButtonGroup",children:[{kind:"exitFullscreenToolbarButton"}]}],mobile:[{kind:"toolbarButtonGroup",children:[{kind:"exitFullscreenToolbarButton"}]}],mobileMenu:[]})).exhaustive()).exhaustive();return this._toolbarCache.set(o,{toolbarHelpExists:n,hasAssistant:a,result:x}),x};getNavigationSteps=t=>{let e=this._context.domainContextSelectors.getComponentReader().readFirstRootComponent({componentTypes:[r]},t);return e?.state.steps??[]}}
@@ -1,13 +1,17 @@
1
1
  import { type $DomainEntity, type ConfiguratorBuilder, type CreateCustomPhoenixEntityElement, type CreateCustomPhoenixLayoutElement, type CreateGetThemeHandler, type CreateGetWebComponentOptionsHandler, type CreatePhoenixHandler, type DomainEntity, type IsCreateRecipeUpdate, type IsReplaceRecipeUpdate, type TransformerBuilder, type TransformerFactory, type UpdateFactory, getIdSequence } from '#package/domain';
2
- import { type CreateCollectFrontendDataHandler, type CreateFilterPublishedChunksHandler, type CreateNotAuthenticatedPage, type IsAngleDimensionUpdate, type IsAttributeSelectionUpdate, type IsAttributeSwitchUpdate, type IsDeleteEntityUpdate, type IsDistanceDimensionUpdate, type IsGenericDimensionUpdate, type IsSwatchSelectionUpdate, type IsTextValueUpdate, type UseAccessService, type UseActiveNavigationState, type UseActiveToolState, type UseActiveViewState, type UseAnalyticsService, type UseAngleDimension, type UseAttributeSelection, type UseAttributeSwitch, type UseAuthenticatedClient, type UseAuthorizedClient, type UseBackendData, type UseChildEntitySelection, type UseComponent, type UseComponents, type UseComposition, type UseConfigurationId, type UseControlViolations, type UseCookRecipes, type UseCookReplaceRecipes, type UseCookedRecipes, type UseCookedReplaceRecipes, type UseCreateAuthorizedClient, type UseDeleteEntity, type UseDeletedEntity, type UseDeselect, type UseDistanceDimension, type UseDistanceDimensionSelection, type UseDomainApplicationContext, type UseDomainApplicationProps, type UseDomainContext, type UseDomainEntityState, type UseEntityPrice, type UseEntitySelector, type UseFinalizeViolations, type UseFirstComponent, type UseFirstRootComponent, type UseFrontendData, type UseGenericDimension, type UseGroupedRecipeOptions, type UseHoveredDomainEntityId, type UseHoveredEntity, type UseHoveredEntityId, type UseIntegrationService, type UseIntegrationState, type UseIsFullscreenActive, type UseLoadedData, type UseLoadingState, type UseMapViolationHints, type UseNavigate, type UsePopNavigate, type UsePresetEmbeddedState, type UsePublishedData, type UsePushNavigate, type UseRecipeEmbeddedState, type UseReplaceEntityRecipeOptions, type UseRootComponents, type UseRootEntityId, type UseRootEntityPrice, type UseRootEntitySelector, type UseRootEntityState, type UseSelectEntity, type UseSelectParent, type UseSelectedDomainEntityId, type UseSelectedEntity, type UseSelectedEntityId, type UseSession, type UseSessionRole, type UseSessionService, type UseSlice, type UseState, type UseStateValidity, type UseSwatchSelection, type UseSynchronizedSelector, type UseSynchronizedSelector$, type UseTextValue, type UseUpdateControl, type UseUpdatedControl, useLoadingStateValue } from '#package/react-sdk';
2
+ import { type CreateAddEntityFab, type CreateCollectFrontendDataHandler, type CreateDeleteEntityFab, type CreateFilterPublishedChunksHandler, type CreateNavigationHotspot, type CreateNotAuthenticatedPage, type CreateSelectionHotspot, type CreateToolMenuFab, type IsAngleDimensionUpdate, type IsAttributeSelectionUpdate, type IsAttributeSwitchUpdate, type IsDeleteEntityUpdate, type IsDistanceDimensionUpdate, type IsGenericDimensionUpdate, type IsSwatchSelectionUpdate, type IsTextValueUpdate, type UseAccessService, type UseActiveNavigationState, type UseActiveToolState, type UseActiveViewState, type UseActiveViewports, type UseAnalyticsService, type UseAngleDimension, type UseAttributeSelection, type UseAttributeSwitch, type UseAuthenticatedClient, type UseAuthorizedClient, type UseBackendData, type UseChildEntitySelection, type UseComponent, type UseComponents, type UseComposition, type UseConfigurationId, type UseConfigurationSaveState, type UseConfiguratorMessages, type UseControlViolations, type UseCookRecipes, type UseCookReplaceRecipes, type UseCookedRecipes, type UseCookedReplaceRecipes, type UseCreateAuthorizedClient, type UseDeleteEntity, type UseDeletedEntity, type UseDeselect, type UseDistanceDimension, type UseDistanceDimensionSelection, type UseDomainApplicationContext, type UseDomainApplicationProps, type UseDomainContext, type UseDomainEntityState, type UseEntityPrice, type UseEntitySelector, type UseFinalizeAction, type UseFinalizeActions, type UseFinalizeViolations, type UseFirstComponent, type UseFirstRootComponent, type UseFrontendData, type UseGenericDimension, type UseGroupedRecipeOptions, type UseHoveredDomainEntityId, type UseHoveredEntity, type UseHoveredEntityId, type UseIntegrationService, type UseIntegrationState, type UseIsFullscreenActive, type UseLoadedData, type UseLoadingState, type UseLocaleSwitch, type UseMapViolationHints, type UseNavigate, type UsePopNavigate, type UsePresetEmbeddedState, type UsePublishedData, type UsePushNavigate, type UseRecipeEmbeddedState, type UseReplaceEntityRecipeOptions, type UseRootComponents, type UseRootEntityId, type UseRootEntityPrice, type UseRootEntitySelector, type UseRootEntityState, type UseSelectEntity, type UseSelectParent, type UseSelectedDomainEntityId, type UseSelectedEntity, type UseSelectedEntityId, type UseSession, type UseSessionRole, type UseSessionService, type UseSetFullscreen, type UseSetViewState, type UseShareLinks, type UseSlice, type UseState, type UseStateValidity, type UseStepNavigation, type UseSwatchSelection, type UseSynchronizedSelector, type UseSynchronizedSelector$, type UseTabNavigation, type UseTextValue, type UseUndoRedo, type UseUpdateControl, type UseUpdatedControl, useGenerateShareLink, useLoadingStateValue, useLocalizable, useResolveLocalizable } from '#package/react-sdk';
3
3
  import { type CreatePhoenixIconSet } from '#package/ui-sdk';
4
4
  import { type UseConfiguratorExtensions } from '../application-runtime/index.js';
5
- import { type CreateOnApplicationStartProvider, type CreateOnBackendDataReadyProvider, type CreateOnConfiguratorReadyProvider, type CreateOnFrontendDataReadyProvider, type CreateOnGoToIndexHandler, type CreateOnPresetLoadedHandler, type CreateOnPublishedDataReadyProvider, type CreateOnRoutingReadyProvider, type CreateOnSessionReadyProvider, type UseConfiguratorRouting, type UsePresetSelection, usePropertyPageStack, usePropertyPageState } from '../configurator-context/index.js';
5
+ import { type CreateConfigurationNotFoundPage } from '../configuration-not-found-page/index.js';
6
+ import { type CreateOnApplicationStartProvider, type CreateOnBackendDataReadyProvider, type CreateOnConfiguratorReadyProvider, type CreateOnFrontendDataReadyProvider, type CreateOnGoToIndexHandler, type CreateOnPresetLoadedHandler, type CreateOnPublishedDataReadyProvider, type CreateOnRoutingReadyProvider, type CreateOnSessionReadyProvider, type UseConfiguratorRouting, type UsePresetSelection, usePreview, usePropertyPageStack, usePropertyPageState } from '../configurator-context/index.js';
7
+ import { type CreateConfiguratorErrorPage } from '../configurator-error-page/index.js';
8
+ import { useCloseAction } from '../integration/index.js';
6
9
  import { type CreateGetTextureProcessingMapHandler } from '../scene/index.js';
7
10
  import type { UseUpdateEntityObjectSelection } from '../scene/scene-entity/drag-and-drop/use-updated-selection.js';
8
- import { type CreateAppLoader, type CreateCanvasLoader, type CreateLayoutAdminUi, type CreateLayoutCustomOwnerUi, type CreateLayoutCustomReadUi, type CreateLayoutDialog, type CreateLayoutFooter, type CreateLayoutToolbarDesktop, type CreateLayoutToolbarDesktopFullScreen, type CreateLayoutToolbarReadDesktop, type CreateLayoutToolbarReadDesktopFullScreen, type CreateLayoutUserUi, type CreateToolbarHelp } from '../ui/index.js';
9
- import { useGenerateShareLink } from '../ui/phoenix-layout-elements/share/use-share.js';
11
+ import { type UseAssistantPanel, type UseMeasurements, type UseToolbarActions } from '../toolbar-actions/index.js';
12
+ import { type CreateAppLoader, type CreateCanvasLoader, type CreateLayoutAdminUi, type CreateLayoutCustomOwnerUi, type CreateLayoutCustomReadUi, type CreateLayoutDialog, type CreateLayoutFooter, type CreateLayoutToolbarDesktop, type CreateLayoutToolbarDesktopFullScreen, type CreateLayoutToolbarReadDesktop, type CreateLayoutToolbarReadDesktopFullScreen, type CreateLayoutUserUi, type CreateToolbarHelp, LayoutSlots, useSceneSafeArea } from '../ui/index.js';
10
13
  import { type CreatePresetDeviceNotSupported, type CreatePresetPageAction, type CreatePresetUi } from '../ui/preset-layout/PresetUi.js';
14
+ import { type UseResetCamera } from './use-reset-camera.js';
11
15
  export interface ConfiguratorInterface<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, FINALIZE_DATA extends Record<string, unknown>, FINALIZE_RESULT extends Record<string, unknown>> {
12
16
  /**
13
17
  * Factory for creating update functions for entities.
@@ -179,6 +183,42 @@ export interface ConfiguratorInterface<ENTITIES extends DomainEntity<string>, AL
179
183
  * Creates a custom page shown when session authentication fails.
180
184
  */
181
185
  createNotAuthenticatedPage: CreateNotAuthenticatedPage;
186
+ /**
187
+ * Creates the page shown when a configuration cannot be loaded or opened, replacing the built-in
188
+ * `ConfigurationNotFoundPage`.
189
+ */
190
+ createConfigurationNotFoundPage: CreateConfigurationNotFoundPage;
191
+ /**
192
+ * Creates the page the configurator shows in production when it cannot go on, replacing the built-in
193
+ * `ConfiguratorErrorPage`.
194
+ */
195
+ createConfiguratorErrorPage: CreateConfiguratorErrorPage;
196
+ /**
197
+ * Creates the in-scene FAB that adds child entities (`sceneEntityAddFab`), replacing the built-in
198
+ * `AddEntityFab` element. It receives the component's settings and reads the recipes it offers
199
+ * with `useGroupedRecipeOptions(entityId, instanceNames, fixableViolations)`.
200
+ */
201
+ createAddEntityFab: CreateAddEntityFab;
202
+ /**
203
+ * Creates the in-scene FAB that deletes an entity (`sceneEntityDeleteFab`), replacing the built-in
204
+ * `DeleteEntityFab` element. It receives `onDelete`, `disabled` and `disabledHint`.
205
+ */
206
+ createDeleteEntityFab: CreateDeleteEntityFab;
207
+ /**
208
+ * Creates the in-scene hotspot that selects an entity (`sceneEntitySelectHotspot`), replacing the
209
+ * built-in `SelectionHotspot` element. It receives `onSelect`.
210
+ */
211
+ createSelectionHotspot: CreateSelectionHotspot;
212
+ /**
213
+ * Creates the in-scene hotspot that goes to a navigation state (`sceneEntityNavigationHotspot`),
214
+ * replacing the built-in `NavigationHotspot` element. It receives `onNavigate`.
215
+ */
216
+ createNavigationHotspot: CreateNavigationHotspot;
217
+ /**
218
+ * Creates the in-scene FAB that switches tools (`toolMenuFab`), replacing the built-in `ToolMenuFab`
219
+ * element. It receives the tool `options` and `onSelectTool`.
220
+ */
221
+ createToolMenuFab: CreateToolMenuFab;
182
222
  /**
183
223
  * Factory for creating transformers for entities.
184
224
  * @deprecated Use {@link #transformerBuilder} instead.
@@ -341,6 +381,27 @@ export interface ConfiguratorInterface<ENTITIES extends DomainEntity<string>, AL
341
381
  * Returns finalize properties based on the validity of the provided emission used for dry running finalize button
342
382
  */
343
383
  useFinalizeViolations: UseFinalizeViolations<ENTITIES, $MAP>;
384
+ /**
385
+ * Calls the given function once for every violation, side-effect hint and validation error: the violations of a
386
+ * rejected change, the hints of a committed change and an error thrown while a change was validated, with the
387
+ * text resolved
388
+ */
389
+ useConfiguratorMessages: UseConfiguratorMessages<ENTITIES, $MAP>;
390
+ /**
391
+ * The save status of the configuration: `{ revisionId, isSaving, failure }`, where `failure` is the latest save's
392
+ * `{ error, timestamp }` until a later save succeeds
393
+ */
394
+ useConfigurationSaveState: UseConfigurationSaveState;
395
+ /**
396
+ * Runs the project handler a `finalizeAction` component names, with its pending state, its error and the
397
+ * finalize violations; call it once per component, wrapped in `PhoenixHandlerBoundary`
398
+ */
399
+ useFinalizeAction: UseFinalizeAction;
400
+ /**
401
+ * The spec's finalize actions, each with its resolved texts and its own `run`, `isPending` and `error`, the
402
+ * primary one picked as the built-in footer picks it; call it anywhere and render the actions in a loop
403
+ */
404
+ useFinalizeActions: UseFinalizeActions;
344
405
  /**
345
406
  * Returns component based on a filter specified
346
407
  */
@@ -458,6 +519,10 @@ export interface ConfiguratorInterface<ENTITIES extends DomainEntity<string>, AL
458
519
  * Get the currently active view state
459
520
  */
460
521
  useActiveViewState: UseActiveViewState<VIEW_STATES>;
522
+ /**
523
+ * Make the given view state the active one
524
+ */
525
+ useSetViewState: UseSetViewState<VIEW_STATES>;
461
526
  /**
462
527
  * Get the currently active tool state
463
528
  */
@@ -466,6 +531,83 @@ export interface ConfiguratorInterface<ENTITIES extends DomainEntity<string>, AL
466
531
  * Get the currently active fullscreen state
467
532
  */
468
533
  useIsFullscreenActive: UseIsFullscreenActive;
534
+ /**
535
+ * Turn the fullscreen state on or off. The state is a flag the layout reads with `useIsFullscreenActive`
536
+ */
537
+ useSetFullscreen: UseSetFullscreen;
538
+ /**
539
+ * Move the camera back to the framing of the active camera configuration, as the toolbar's reset button does
540
+ */
541
+ useResetCamera: UseResetCamera;
542
+ /**
543
+ * Undo and redo changes of the configuration, with whether each is possible, as the toolbar's undo and redo
544
+ * buttons do
545
+ */
546
+ useUndoRedo: UseUndoRedo;
547
+ /**
548
+ * The spec's tabs (`sidebarTabs` or `horizontalTabs`) with the active one, and switching between them, as the
549
+ * built-in tabs do
550
+ */
551
+ useTabNavigation: UseTabNavigation<NAVIGATION_STATES>;
552
+ /**
553
+ * The spec's steps (`navigationSteps`) with the active one, and moving between them, as the built-in step buttons
554
+ * and the header's stepper do
555
+ */
556
+ useStepNavigation: UseStepNavigation<NAVIGATION_STATES>;
557
+ /**
558
+ * Tell the camera which part of the canvas a project layout leaves free for the scene. Attach `containerRef` to the
559
+ * element that covers the whole canvas and `safeAreaRef` to the region the scene should stay visible in
560
+ */
561
+ useSceneSafeArea: typeof useSceneSafeArea;
562
+ /**
563
+ * Get the responsive breakpoints the configurator's container satisfies, or `null` before it is measured
564
+ */
565
+ useActiveViewports: UseActiveViewports;
566
+ /**
567
+ * Get the preview state: whether the layout shows a preview start screen, and functions that enter and leave it
568
+ */
569
+ usePreview: typeof usePreview;
570
+ /**
571
+ * Get the host's close action, or `null` when the integration mode offers none
572
+ */
573
+ useCloseAction: typeof useCloseAction;
574
+ /**
575
+ * Whether a viewer of a configuration shared for viewing may clone it to edit: the application config sets
576
+ * `shareCloneToEdit` and the session's role may create configurations
577
+ */
578
+ useIsCloningAllowed: typeof LayoutSlots.useIsCloningAllowed;
579
+ /**
580
+ * Returns a function that turns a localizable text of the spec into a string in the current language
581
+ */
582
+ useResolveLocalizable: typeof useResolveLocalizable;
583
+ /**
584
+ * Turn one localizable text of the spec into a string in the current language
585
+ */
586
+ useLocalizable: typeof useLocalizable;
587
+ /**
588
+ * The spec's toolbar for a placement as runnable entries, grouped as the spec groups them, for a layout's own
589
+ * toolbar
590
+ */
591
+ useToolbarActions: UseToolbarActions;
592
+ /**
593
+ * The unit of dimensions and the dimension indicators, with functions that change them, as the toolbar's
594
+ * measurements button does
595
+ */
596
+ useMeasurements: UseMeasurements;
597
+ /**
598
+ * The languages the configurator offers and the active one, with a function that switches it, as the toolbar's
599
+ * language button does
600
+ */
601
+ useLocaleSwitch: UseLocaleSwitch;
602
+ /**
603
+ * Links that share the configuration for editing and for viewing, as the toolbar's share dialog generates them
604
+ */
605
+ useShareLinks: UseShareLinks;
606
+ /**
607
+ * Whether the assistant panel is open, with a function that opens or closes it, as the toolbar's assistant button
608
+ * does
609
+ */
610
+ useAssistantPanel: UseAssistantPanel;
469
611
  /**
470
612
  * Returns composition tree of the domain
471
613
  */
@@ -1 +1 @@
1
- import{createCustomPhoenixEntityElement as e,createCustomPhoenixLayoutElement as t,createGetThemeHandler as r,createGetWebComponentOptionsHandler as o,createPhoenixHandler as i,createTransformer as s,createTransformerBuilder as a,createUpdateFactory as n,getIdSequence as m,isCreateEntityUpdate as p,isReplaceEntityUpdate as u}from"#package/domain";import{createCollectFrontendDataHandler as d,createFilterPublishedChunksHandler as c,createNotAuthenticatedPage as f,isAngleDimensionUpdate as g,isAttributeSelectionUpdate as j,isAttributeSwitchUpdate as l,isDeleteEntityUpdate as x,isDistanceDimensionUpdate as y,isGenericDimensionUpdate as k,isSwatchSelectionUpdate as h,isTextValueUpdate as S,useAccessService as E,useActiveNavigationState as I,useActiveToolState as q,useActiveViewState as A,useAnalyticsService as B,useAngleDimension as C,useAttributeSelection as P,useAttributeSwitch as R,useAuthenticatedClient as U,useAuthorizedClient as b,useBackendData as v,useChildEntitySelection as w,useCommittedSlice as z,useCommittedState as D,useComponent as F,useComponents as G,useComposition as H,useConfigurationId as J,useControlViolations as K,useCookRecipes as L,useCookReplaceRecipes as M,useCookedRecipes as N,useCookedReplaceRecipes as O,useCreateAuthorizedClient as Q,useDeleteEntity as T,useDeletedEntity as V,useDeselect as W,useDistanceDimension as X,useDistanceDimensionSelection as Y,useDomain as Z,useDomainApplication as $,useDomainApplicationProps as _,useDomainEntityRenderedState as ee,useDomainEntityState as et,useEntityPrice as er,useEntitySelector as eo,useFinalizeViolations as ei,useFirstComponent as es,useFirstRenderedComponent as ea,useFirstRootComponent as en,useFirstRootRenderedComponent as em,useFrontendData as ep,useGenericDimension as eu,useGroupedRecipeOptions as ed,useHoveredDomainEntityId as ec,useHoveredEntity as ef,useHoveredEntityId as eg,useIntegrationService as ej,useIntegrationState as el,useIsFullscreenActive as ex,useLoadedData as ey,useLoadingState as ek,useLoadingStateValue as eh,useMapViolationHints as eS,useNavigate as eE,usePopNavigate as eI,usePresetEmbeddedState as eq,usePublishedData as eA,usePushNavigate as eB,useRecipeEmbeddedState as eC,useRenderedComponent as eP,useRenderedComponents as eR,useRenderedEntitySelector as eU,useRenderedRootEntitySelector as eb,useRenderedSelector as ev,useRenderedSelector$ as ew,useRenderedSlice as ez,useRenderedState as eD,useReplaceEntityRecipeOptions as eF,useRootComponents as eG,useRootEntityId as eH,useRootEntityPrice as eJ,useRootEntityRenderedId as eK,useRootEntityRenderedState as eL,useRootEntitySelector as eM,useRootEntityState as eN,useRootRenderedComponents as eO,useSelectEntity as eQ,useSelectParent as eT,useSelectedDomainEntityId as eV,useSelectedEntity as eW,useSelectedEntityId as eX,useSession as eY,useSessionRole as eZ,useSessionService as e$,useStateValidity as e_,useStoreSelector as e0,useStoreSelector$ as e1,useSwatchSelection as e2,useTextValue as e3,useUpdateControl as e4,useUpdatedControl as e5}from"#package/react-sdk";import{createPhoenixIconSet as e6}from"#package/ui-sdk";import{useConfigurator as e7}from"../application-runtime/index.js";import{createOnApplicationStartProvider as e8,createOnBackendDataReadyProvider as e9,createOnConfiguratorReadyProvider as te,createOnFrontendDataReadyProvider as tt,createOnGoToIndexHandler as tr,createOnPresetLoadedHandler as to,createOnPublishedDataReadyProvider as ti,createOnRoutingReadyProvider as ts,createOnSessionReadyProvider as ta,useConfiguratorRouting as tn,usePresetSelection as tm,usePropertyPageStack as tp,usePropertyPageState as tu}from"../configurator-context/index.js";import{createGetTextureProcessingMapHandler as td}from"../scene/index.js";import{useUpdateEntityObjectSelection as tc}from"../scene/scene-entity/drag-and-drop/use-updated-selection.js";import{createAppLoader as tf,createCanvasLoader as tg,createLayoutAdminUi as tj,createLayoutCustomOwnerUi as tl,createLayoutCustomReadUi as tx,createLayoutDialog as ty,createLayoutFooter as tk,createLayoutToolbarDesktop as th,createLayoutToolbarDesktopFullScreen as tS,createLayoutToolbarReadDesktop as tE,createLayoutToolbarReadDesktopFullScreen as tI,createLayoutUserUi as tq,createToolbarHelp as tA}from"../ui/index.js";import{useGenerateShareLink as tB}from"../ui/phoenix-layout-elements/share/use-share.js";import{createPresetDeviceNotSupported as tC,createPresetPageAction as tP,createPresetUi as tR}from"../ui/preset-layout/PresetUi.js";export const createConfiguratorInterface=tU=>({updates:n(),getIdSequence:m,createGetWebComponentOptionsHandler:o,createGetThemeHandler:r,createPhoenixHandler:i,createCustomPhoenixEntityElement:e,createCustomPhoenixLayoutElement:t,createPhoenixIconSet:e6,createGetTextureProcessingMapHandler:td,createCollectFrontendDataHandler:d,createFilterPublishedChunksHandler:c,createOnGoToIndexHandler:tr,createOnApplicationStartProvider:e8,createOnSessionReadyProvider:ta,createOnPublishedDataReadyProvider:ti,createOnFrontendDataReadyProvider:tt,createOnBackendDataReadyProvider:e9,createOnRoutingReadyProvider:ts,createOnConfiguratorReadyProvider:te,createOnPresetLoadedHandler:to,createPresetUi:tR,createPresetPageAction:tP,createPresetDeviceNotSupported:tC,createLayoutFooter:tk,createAppLoader:tf,createCanvasLoader:tg,createLayoutDialog:ty,createLayoutToolbarDesktop:th,createLayoutToolbarDesktopFullScreen:tS,createLayoutToolbarReadDesktop:tE,createLayoutToolbarReadDesktopFullScreen:tI,createLayoutCustomOwnerUi:tl,createLayoutCustomReadUi:tx,createLayoutAdminUi:tj,createLayoutUserUi:tq,createToolbarHelp:tA,createNotAuthenticatedPage:f,createTransformer:s,transformerBuilder:a(),useAnalytics:B,useAuthenticatedClient:U,useAuthorizedClient:b,useCreateAuthorizedClient:Q,useAccessService:E,useConfigurationId:J,useSession:eY,useSessionRole:eZ,useSessionService:e$,useDomain:Z,useDomainApplication:$,useConfigurator:e7,useConfiguratorRouting:tn,usePresetSelection:tm,usePublishedData:eA,useFrontendData:ep,useBackendData:v,useDomainApplicationProps:_,useLoadedData:ey,useIntegrationService:ej,useIntegrationState:el,usePresetEmbeddedState:eq,useRecipeEmbeddedState:eC,useCommittedSlice:z,useRenderedSlice:ez,useCommittedState:D,useRenderedState:eD,useStoreSelector:e0,useRenderedSelector:ev,useStoreSelector$:e1,useRenderedSelector$:ew,useEntitySelector:eo,useRenderedEntitySelector:eU,useRootEntitySelector:eM,useRenderedRootEntitySelector:eb,useStateValidity:e_,useMapViolationHints:eS,useNavigate:eE,usePopNavigate:eI,usePushNavigate:eB,useControlViolations:K,useFinalizeViolations:ei,useComponent:F,useRenderedComponent:eP,useComponents:G,useRenderedComponents:eR,useFirstComponent:es,useFirstRenderedComponent:ea,useRootComponents:eG,useRootRenderedComponents:eO,useFirstRootComponent:en,useFirstRootRenderedComponent:em,useEntityState:et,useEntityRenderedState:ee,useRootEntityState:eN,useRootEntityRenderedState:eL,useRootEntityId:eH,useRootEntityRenderedId:eK,useEntityPrice:er,useRootEntityPrice:eJ,useSelectedEntity:eW,useSelectedEntityId:eX,useSelectedDomainEntityId:eV,useSelectEntity:eQ,useDeselect:W,useSelectParent:eT,useHoveredEntity:ef,useHoveredEntityId:eg,useHoveredDomainEntityId:ec,useActiveNavigationState:I,useActiveViewState:A,useActiveToolState:q,useIsFullscreenActive:ex,useComposition:H,useUpdateControl:e4,useUpdatedControl:e5,useCookRecipes:L,useCookedRecipes:N,useCookReplaceRecipes:M,useCookedReplaceRecipes:O,useDeleteEntity:T,useDeletedEntity:V,useSwatchSelection:e2,useTextValue:e3,useAttributeSelection:P,useAttributeSwitch:R,useDistanceDimension:X,useDistanceDimensionSelection:Y,useGenericDimension:eu,useAngleDimension:C,useChildEntitySelection:w,useGroupedRecipeOptions:ed,useReplaceEntityRecipeOptions:eF,useUpdateEntityObjectSelection:tc,useGenerateShareLink:tB,useLoadingState:ek,useLoadingStateValue:eh,usePropertyPageStack:tp,usePropertyPageState:tu,isCreateEntityUpdate:p,isReplaceEntityUpdate:u,isDeleteEntityUpdate:x,isAngleDimensionUpdate:g,isDistanceDimensionUpdate:y,isGenericDimensionUpdate:k,isAttributeSelectionUpdate:j,isAttributeSwitchUpdate:l,isTextValueUpdate:S,isSwatchSelectionUpdate:h});
1
+ import{createCustomPhoenixEntityElement as e,createCustomPhoenixLayoutElement as o,createGetThemeHandler as r,createGetWebComponentOptionsHandler as t,createPhoenixHandler as i,createTransformer as n,createTransformerBuilder as s,createUpdateFactory as a,getIdSequence as m,isCreateEntityUpdate as p,isReplaceEntityUpdate as d}from"#package/domain";import{createAddEntityFab as f,createCollectFrontendDataHandler as u,createDeleteEntityFab as c,createFilterPublishedChunksHandler as g,createNavigationHotspot as l,createNotAuthenticatedPage as j,createSelectionHotspot as x,createToolMenuFab as k,isAngleDimensionUpdate as y,isAttributeSelectionUpdate as I,isAttributeSwitchUpdate as A,isDeleteEntityUpdate as C,isDistanceDimensionUpdate as S,isGenericDimensionUpdate as w,isSwatchSelectionUpdate as E,isTextValueUpdate as b,useAccessService as q,useActiveNavigationState as B,useActiveToolState as P,useActiveViewState as R,useActiveViewports as U,useAnalyticsService as h,useAngleDimension as v,useAttributeSelection as z,useAttributeSwitch as D,useAuthenticatedClient as F,useAuthorizedClient as G,useBackendData as H,useChildEntitySelection as J,useCommittedSlice as K,useCommittedState as L,useComponent as M,useComponents as N,useComposition as O,useConfigurationId as Q,useConfigurationSaveState as T,useConfiguratorMessages as V,useControlViolations as W,useCookRecipes as X,useCookReplaceRecipes as Y,useCookedRecipes as Z,useCookedReplaceRecipes as $,useCreateAuthorizedClient as _,useDeleteEntity as ee,useDeletedEntity as eo,useDeselect as er,useDistanceDimension as et,useDistanceDimensionSelection as ei,useDomain as en,useDomainApplication as es,useDomainApplicationProps as ea,useDomainEntityRenderedState as em,useDomainEntityState as ep,useEntityPrice as ed,useEntitySelector as ef,useFinalizeAction as eu,useFinalizeActions as ec,useFinalizeViolations as eg,useFirstComponent as el,useFirstRenderedComponent as ej,useFirstRootComponent as ex,useFirstRootRenderedComponent as ek,useFrontendData as ey,useGenerateShareLink as eI,useGenericDimension as eA,useGroupedRecipeOptions as eC,useHoveredDomainEntityId as eS,useHoveredEntity as ew,useHoveredEntityId as eE,useIntegrationService as eb,useIntegrationState as eq,useIsFullscreenActive as eB,useLoadedData as eP,useLoadingState as eR,useLoadingStateValue as eU,useLocaleSwitch as eh,useLocalizable as ev,useMapViolationHints as ez,useNavigate as eD,usePopNavigate as eF,usePresetEmbeddedState as eG,usePublishedData as eH,usePushNavigate as eJ,useRecipeEmbeddedState as eK,useRenderedComponent as eL,useRenderedComponents as eM,useRenderedEntitySelector as eN,useRenderedRootEntitySelector as eO,useRenderedSelector as eQ,useRenderedSelector$ as eT,useRenderedSlice as eV,useRenderedState as eW,useReplaceEntityRecipeOptions as eX,useResolveLocalizable as eY,useRootComponents as eZ,useRootEntityId as e$,useRootEntityPrice as e_,useRootEntityRenderedId as e0,useRootEntityRenderedState as e1,useRootEntitySelector as e2,useRootEntityState as e3,useRootRenderedComponents as e4,useSelectEntity as e5,useSelectParent as e6,useSelectedDomainEntityId as e7,useSelectedEntity as e8,useSelectedEntityId as e9,useSession as oe,useSessionRole as oo,useSessionService as or,useSetFullscreen as ot,useSetViewState as oi,useShareLinks as on,useStateValidity as os,useStepNavigation as oa,useStoreSelector as om,useStoreSelector$ as op,useSwatchSelection as od,useTabNavigation as of,useTextValue as ou,useUndoRedo as oc,useUpdateControl as og,useUpdatedControl as ol}from"#package/react-sdk";import{createPhoenixIconSet as oj}from"#package/ui-sdk";import{useConfigurator as ox}from"../application-runtime/index.js";import{createConfigurationNotFoundPage as ok}from"../configuration-not-found-page/index.js";import{createOnApplicationStartProvider as oy,createOnBackendDataReadyProvider as oI,createOnConfiguratorReadyProvider as oA,createOnFrontendDataReadyProvider as oC,createOnGoToIndexHandler as oS,createOnPresetLoadedHandler as ow,createOnPublishedDataReadyProvider as oE,createOnRoutingReadyProvider as ob,createOnSessionReadyProvider as oq,useConfiguratorRouting as oB,usePresetSelection as oP,usePreview as oR,usePropertyPageStack as oU,usePropertyPageState as oh}from"../configurator-context/index.js";import{createConfiguratorErrorPage as ov}from"../configurator-error-page/index.js";import{useCloseAction as oz}from"../integration/index.js";import{createGetTextureProcessingMapHandler as oD}from"../scene/index.js";import{useUpdateEntityObjectSelection as oF}from"../scene/scene-entity/drag-and-drop/use-updated-selection.js";import{useAssistantPanel as oG,useMeasurements as oH,useToolbarActions as oJ}from"../toolbar-actions/index.js";import{LayoutSlots as oK,createAppLoader as oL,createCanvasLoader as oM,createLayoutAdminUi as oN,createLayoutCustomOwnerUi as oO,createLayoutCustomReadUi as oQ,createLayoutDialog as oT,createLayoutFooter as oV,createLayoutToolbarDesktop as oW,createLayoutToolbarDesktopFullScreen as oX,createLayoutToolbarReadDesktop as oY,createLayoutToolbarReadDesktopFullScreen as oZ,createLayoutUserUi as o$,createToolbarHelp as o_,useSceneSafeArea as o0}from"../ui/index.js";import{createPresetDeviceNotSupported as o1,createPresetPageAction as o2,createPresetUi as o3}from"../ui/preset-layout/PresetUi.js";import{useResetCamera as o4}from"./use-reset-camera.js";export const createConfiguratorInterface=o5=>({updates:a(),getIdSequence:m,createGetWebComponentOptionsHandler:t,createGetThemeHandler:r,createPhoenixHandler:i,createCustomPhoenixEntityElement:e,createCustomPhoenixLayoutElement:o,createPhoenixIconSet:oj,createGetTextureProcessingMapHandler:oD,createCollectFrontendDataHandler:u,createFilterPublishedChunksHandler:g,createOnGoToIndexHandler:oS,createOnApplicationStartProvider:oy,createOnSessionReadyProvider:oq,createOnPublishedDataReadyProvider:oE,createOnFrontendDataReadyProvider:oC,createOnBackendDataReadyProvider:oI,createOnRoutingReadyProvider:ob,createOnConfiguratorReadyProvider:oA,createOnPresetLoadedHandler:ow,createPresetUi:o3,createPresetPageAction:o2,createPresetDeviceNotSupported:o1,createLayoutFooter:oV,createAppLoader:oL,createCanvasLoader:oM,createLayoutDialog:oT,createLayoutToolbarDesktop:oW,createLayoutToolbarDesktopFullScreen:oX,createLayoutToolbarReadDesktop:oY,createLayoutToolbarReadDesktopFullScreen:oZ,createLayoutCustomOwnerUi:oO,createLayoutCustomReadUi:oQ,createLayoutAdminUi:oN,createLayoutUserUi:o$,createToolbarHelp:o_,createNotAuthenticatedPage:j,createConfigurationNotFoundPage:ok,createConfiguratorErrorPage:ov,createAddEntityFab:f,createDeleteEntityFab:c,createSelectionHotspot:x,createNavigationHotspot:l,createToolMenuFab:k,createTransformer:n,transformerBuilder:s(),useAnalytics:h,useAuthenticatedClient:F,useAuthorizedClient:G,useCreateAuthorizedClient:_,useAccessService:q,useConfigurationId:Q,useSession:oe,useSessionRole:oo,useSessionService:or,useDomain:en,useDomainApplication:es,useConfigurator:ox,useConfiguratorRouting:oB,usePresetSelection:oP,usePublishedData:eH,useFrontendData:ey,useBackendData:H,useDomainApplicationProps:ea,useLoadedData:eP,useIntegrationService:eb,useIntegrationState:eq,usePresetEmbeddedState:eG,useRecipeEmbeddedState:eK,useCommittedSlice:K,useRenderedSlice:eV,useCommittedState:L,useRenderedState:eW,useStoreSelector:om,useRenderedSelector:eQ,useStoreSelector$:op,useRenderedSelector$:eT,useEntitySelector:ef,useRenderedEntitySelector:eN,useRootEntitySelector:e2,useRenderedRootEntitySelector:eO,useStateValidity:os,useMapViolationHints:ez,useNavigate:eD,usePopNavigate:eF,usePushNavigate:eJ,useControlViolations:W,useFinalizeViolations:eg,useConfiguratorMessages:V,useConfigurationSaveState:T,useFinalizeAction:eu,useFinalizeActions:ec,useComponent:M,useRenderedComponent:eL,useComponents:N,useRenderedComponents:eM,useFirstComponent:el,useFirstRenderedComponent:ej,useRootComponents:eZ,useRootRenderedComponents:e4,useFirstRootComponent:ex,useFirstRootRenderedComponent:ek,useEntityState:ep,useEntityRenderedState:em,useRootEntityState:e3,useRootEntityRenderedState:e1,useRootEntityId:e$,useRootEntityRenderedId:e0,useEntityPrice:ed,useRootEntityPrice:e_,useSelectedEntity:e8,useSelectedEntityId:e9,useSelectedDomainEntityId:e7,useSelectEntity:e5,useDeselect:er,useSelectParent:e6,useHoveredEntity:ew,useHoveredEntityId:eE,useHoveredDomainEntityId:eS,useActiveNavigationState:B,useActiveViewState:R,useSetViewState:oi,useActiveToolState:P,useIsFullscreenActive:eB,useSetFullscreen:ot,useResetCamera:o4,useUndoRedo:oc,useTabNavigation:of,useStepNavigation:oa,useSceneSafeArea:o0,useActiveViewports:U,usePreview:oR,useCloseAction:oz,useIsCloningAllowed:oK.useIsCloningAllowed,useResolveLocalizable:eY,useLocalizable:ev,useToolbarActions:oJ,useMeasurements:oH,useLocaleSwitch:eh,useShareLinks:on,useAssistantPanel:oG,useComposition:O,useUpdateControl:og,useUpdatedControl:ol,useCookRecipes:X,useCookedRecipes:Z,useCookReplaceRecipes:Y,useCookedReplaceRecipes:$,useDeleteEntity:ee,useDeletedEntity:eo,useSwatchSelection:od,useTextValue:ou,useAttributeSelection:z,useAttributeSwitch:D,useDistanceDimension:et,useDistanceDimensionSelection:ei,useGenericDimension:eA,useAngleDimension:v,useChildEntitySelection:J,useGroupedRecipeOptions:eC,useReplaceEntityRecipeOptions:eX,useUpdateEntityObjectSelection:oF,useGenerateShareLink:eI,useLoadingState:eR,useLoadingStateValue:eU,usePropertyPageStack:oU,usePropertyPageState:oh,isCreateEntityUpdate:p,isReplaceEntityUpdate:d,isDeleteEntityUpdate:C,isAngleDimensionUpdate:y,isDistanceDimensionUpdate:S,isGenericDimensionUpdate:w,isAttributeSelectionUpdate:I,isAttributeSwitchUpdate:A,isTextValueUpdate:b,isSwatchSelectionUpdate:E});
@@ -1,2 +1,4 @@
1
+ export { FrontendAnalyticsFactory } from '#package/react-sdk';
1
2
  export { type ConfiguratorInterface, createConfiguratorInterface } from './configurator-interface.js';
2
- export { FrontendAnalyticsFactory } from './frontend-analytics.js';
3
+ export { type UseFinalizeAction, type UseFinalizeActionResult, useFinalizeAction } from '#package/react-sdk';
4
+ export { type UseResetCamera, useResetCamera } from './use-reset-camera.js';
@@ -1 +1 @@
1
- export{createConfiguratorInterface}from"./configurator-interface.js";export{FrontendAnalyticsFactory}from"./frontend-analytics.js";
1
+ export{FrontendAnalyticsFactory,useFinalizeAction}from"#package/react-sdk";export{createConfiguratorInterface}from"./configurator-interface.js";export{useResetCamera}from"./use-reset-camera.js";
@@ -0,0 +1,6 @@
1
+ export type UseResetCamera = () => () => void;
2
+ /**
3
+ * Hook to move the camera back to the framing of the active camera configuration, undoing what the user orbited,
4
+ * panned or zoomed. It does what the built-in toolbar's reset button does
5
+ */
6
+ export declare const useResetCamera: UseResetCamera;
@@ -0,0 +1 @@
1
+ import{useCallback as e}from"react";import{useConfigurator as r}from"../application-runtime/index.js";export const useResetCamera=()=>{let{cameraControlSystem:t}=r();return e(()=>{t.resetCamera()},[t])};
@@ -0,0 +1,12 @@
1
+ import { type ConfigurationNotFoundPageProps } from '#package/react-sdk';
2
+ /**
3
+ * The name a project registers a layout element under to replace the page shown when a configuration
4
+ * cannot be loaded or opened. Its default, the built-in `ConfigurationNotFoundPage`, is registered in
5
+ * `defaultConfiguratorElements`.
6
+ */
7
+ export declare const ConfigurationNotFoundPageName = "ConfigurationNotFoundPage";
8
+ /**
9
+ * Renders the `ConfigurationNotFoundPage` element. `onBack` is passed only where leaving the page leads
10
+ * somewhere, which is the start of the configurator.
11
+ */
12
+ export declare const ConfigurationNotFoundPageElement: (props: ConfigurationNotFoundPageProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ import{jsx as o}from"react/jsx-runtime";import{PhoenixLayoutElement as t}from"#package/react-sdk";export const ConfigurationNotFoundPageName="ConfigurationNotFoundPage";export const ConfigurationNotFoundPageElement=n=>o(t,{name:"ConfigurationNotFoundPage",elementProps:{...n}});
@@ -0,0 +1,9 @@
1
+ import { type PhoenixLayoutElementRegistration } from '#package/domain';
2
+ import type { ConfigurationNotFoundPageProps } from '#package/react-sdk';
3
+ /**
4
+ * Registers a project's "configuration not accessible" page as the `ConfigurationNotFoundPage`
5
+ * element, with its props typed. Registering a layout element under that name with
6
+ * `createCustomPhoenixLayoutElement` works too, but its component is typed as taking only `children`.
7
+ */
8
+ export declare const createConfigurationNotFoundPage: (Element: (props: ConfigurationNotFoundPageProps) => JSX.Element) => PhoenixLayoutElementRegistration;
9
+ export type CreateConfigurationNotFoundPage = (Element: (props: ConfigurationNotFoundPageProps) => JSX.Element) => PhoenixLayoutElementRegistration;
@@ -0,0 +1 @@
1
+ import{createCustomPhoenixLayoutElement as o}from"#package/domain";import{ConfigurationNotFoundPageName as t}from"./ConfigurationNotFoundPageElement.js";export const createConfigurationNotFoundPage=n=>o(t,n);
@@ -0,0 +1,2 @@
1
+ export { ConfigurationNotFoundPageElement, ConfigurationNotFoundPageName } from './ConfigurationNotFoundPageElement.js';
2
+ export { createConfigurationNotFoundPage, type CreateConfigurationNotFoundPage, } from './create-configuration-not-found-page.js';
@@ -0,0 +1 @@
1
+ export{ConfigurationNotFoundPageElement,ConfigurationNotFoundPageName}from"./ConfigurationNotFoundPageElement.js";export{createConfigurationNotFoundPage}from"./create-configuration-not-found-page.js";
@@ -0,0 +1,12 @@
1
+ import { type ReactNode } from 'react';
2
+ interface ConfiguratorResponsiveProviderProps {
3
+ readonly children: ReactNode;
4
+ readonly containerZIndex: number;
5
+ }
6
+ /**
7
+ * Renders the configurator's root container, which measures itself into the application runtime's
8
+ * responsive state. The lifecycle reads that state from the runtime, the UI through
9
+ * `useResponsive()`. The state belongs to this mount: it is reset when the container unmounts.
10
+ */
11
+ export declare const ConfiguratorResponsiveProvider: (props: ConfiguratorResponsiveProviderProps) => import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1 @@
1
+ import{jsx as r}from"react/jsx-runtime";import{useLayoutEffect as e}from"react";import{useResponsiveActions as o,useResponsiveStore as t}from"#package/react-sdk";import{ResponsiveApplicationProvider as i}from"#package/ui-sdk";export const ConfiguratorResponsiveProvider=a=>{let{children:m,containerZIndex:n}=a,s=t(),{reset:c}=o();return e(()=>()=>{c()},[c]),r(i,{containerZIndex:n,store:s,children:m})};