@salsita-ai/sdk 0.50.0-develop.f03b563886 → 0.50.0-develop.f41849ae55

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 (1066) 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 +14 -0
  47. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  48. package/dist/application-spec/errors/diagnostic-messages.d.ts +17 -0
  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/common/format-property-key.d.ts +7 -0
  66. package/dist/application-spec/generate-application/code/templates/common/format-property-key.js +1 -0
  67. package/dist/application-spec/generate-application/code/templates/common/schema-to-type-string.js +3 -3
  68. package/dist/application-spec/generate-application/code/templates/configurator-config.js +6 -4
  69. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +35 -0
  70. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +5 -0
  71. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.d.ts +1 -0
  72. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.js +1 -0
  73. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.d.ts +1 -1
  74. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +7 -7
  75. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  76. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  77. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +69 -73
  78. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +8 -0
  79. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  80. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  81. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-presets.js +1 -1
  82. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  83. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  84. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +21 -21
  85. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.d.ts +1 -1
  86. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.js +2 -2
  87. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +3 -2
  88. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  89. package/dist/application-spec/generate-application/code/templates/domain-spec.js +12 -12
  90. package/dist/application-spec/generate-application/code/templates/domain.js +3 -3
  91. package/dist/application-spec/generate-application/code/templates/eslint-config.d.ts +5 -0
  92. package/dist/application-spec/generate-application/code/templates/eslint-config.js +4 -5
  93. package/dist/application-spec/generate-application/code/templates/frontend-config.js +3 -5
  94. package/dist/application-spec/generate-application/code/templates/gitignore.js +0 -3
  95. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.d.ts +43 -0
  96. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +31 -0
  97. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
  98. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  99. package/dist/application-spec/generate-application/code/templates/globals.js +24 -43
  100. package/dist/application-spec/generate-application/code/templates/index.d.ts +3 -10
  101. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  102. package/dist/application-spec/generate-application/code/templates/lingui-rc.d.ts +5 -0
  103. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +4 -4
  104. package/dist/application-spec/generate-application/code/templates/prettier-config.d.ts +5 -0
  105. package/dist/application-spec/generate-application/code/templates/prettier-config.js +4 -5
  106. package/dist/application-spec/generate-application/code/templates/root-tsconfig.d.ts +6 -0
  107. package/dist/application-spec/generate-application/code/templates/root-tsconfig.js +2 -0
  108. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  109. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +1 -1
  110. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +5 -5
  111. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +9 -3
  112. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  113. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +2 -2
  114. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +31 -14
  115. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -4
  116. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
  117. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
  118. package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
  119. package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
  120. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
  121. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
  122. package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
  123. package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
  124. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
  125. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
  126. package/dist/application-spec/generate-application/code/templates/story/phx-module.d.ts +8 -2
  127. package/dist/application-spec/generate-application/code/templates/story/phx-module.js +15 -3
  128. package/dist/application-spec/generate-application/code/templates/story/wrapper.d.ts +3 -0
  129. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -1
  130. package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
  131. package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
  132. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +6 -1
  133. package/dist/application-spec/generate-application/code/templates/webhook-index.js +10 -1
  134. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -3
  135. package/dist/application-spec/generate-application/index.d.ts +2 -0
  136. package/dist/application-spec/generate-application/index.js +1 -1
  137. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +6 -4
  138. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +1 -1
  139. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +8 -3
  140. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  141. package/dist/application-spec/generate-application/runtime/admin-runtime/states-runtime.d.ts +2 -2
  142. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +19 -7
  143. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  144. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +6 -4
  145. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +1 -1
  146. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +7 -4
  147. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  148. package/dist/application-spec/generate-application/runtime/configurator-runtime/states-runtime.d.ts +2 -2
  149. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +43 -0
  150. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.js +1 -0
  151. package/dist/application-spec/generate-application/runtime/factory-data/index.d.ts +3 -0
  152. package/dist/application-spec/generate-application/runtime/factory-data/index.js +1 -0
  153. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +13 -0
  154. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -0
  155. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +16 -0
  156. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -0
  157. package/dist/application-spec/generate-application/runtime/migrations/index.d.ts +1 -0
  158. package/dist/application-spec/generate-application/runtime/migrations/index.js +1 -0
  159. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +53 -0
  160. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +1 -0
  161. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +2 -2
  162. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +3 -2
  163. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  164. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +2 -1
  165. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +1 -1
  166. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +5 -1
  167. package/dist/application-spec/generate-application/runtime/sections/component-optic.js +1 -1
  168. package/dist/application-spec/generate-application/runtime/sections/data-runtime.d.ts +4 -4
  169. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +7 -4
  170. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  171. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +9 -5
  172. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  173. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +3 -1
  174. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.js +1 -1
  175. package/dist/application-spec/generate-application/runtime/sections/theme-runtime.d.ts +2 -2
  176. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +4 -6
  177. package/dist/application-spec/generate-application/runtime/spec-code/index.d.ts +2 -0
  178. package/dist/application-spec/generate-application/runtime/spec-code/index.js +1 -0
  179. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +18 -0
  180. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.js +1 -0
  181. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.d.ts +17 -0
  182. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.js +1 -0
  183. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.d.ts +9 -0
  184. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.js +1 -0
  185. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.d.ts +8 -0
  186. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.js +1 -0
  187. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +27 -0
  188. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.js +1 -0
  189. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +5 -0
  190. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -0
  191. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +68 -0
  192. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -0
  193. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +40 -0
  194. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.js +1 -0
  195. package/dist/application-spec/index.d.ts +1 -0
  196. package/dist/application-spec/index.js +1 -1
  197. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +34 -0
  198. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  199. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.d.ts +16 -0
  200. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.js +9 -0
  201. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts +9 -0
  202. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
  203. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  204. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  205. package/dist/application-spec/parse-application-files/raw-spec/parse-yaml-spec-file.js +1 -1
  206. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +16 -3
  207. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  208. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  209. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  210. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  211. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  212. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  213. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.d.ts +3 -0
  214. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js +1 -0
  215. package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +5 -0
  216. package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -0
  217. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.d.ts +6 -0
  218. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.js +1 -0
  219. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.d.ts +8 -0
  220. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.js +1 -0
  221. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts +10 -0
  222. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.js +1 -0
  223. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.d.ts +98 -0
  224. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.js +1 -0
  225. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts +13 -0
  226. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js +1 -0
  227. package/dist/application-spec/parse-application-files/spec/components/bindings/index.d.ts +2 -0
  228. package/dist/application-spec/parse-application-files/spec/components/bindings/index.js +1 -1
  229. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.d.ts +24 -0
  230. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js +1 -0
  231. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  232. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  233. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  234. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  235. package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts +8 -0
  236. package/dist/application-spec/parse-application-files/spec/components/component-state-type.js +1 -0
  237. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts +13 -0
  238. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js +1 -0
  239. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  240. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  241. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.d.ts +14 -0
  242. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.js +1 -0
  243. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +6 -0
  244. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  245. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +7 -4
  246. package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
  247. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +24 -0
  248. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -0
  249. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.d.ts +13 -0
  250. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.js +1 -0
  251. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
  252. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
  253. package/dist/application-spec/parse-application-files/spec/expressions/expression.d.ts +1 -28
  254. package/dist/application-spec/parse-application-files/spec/expressions/expression.js +1 -1
  255. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -3
  256. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  257. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  258. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  259. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  260. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +3 -1
  261. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  262. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +2 -2
  263. package/dist/application-spec/parse-application-files/spec/invariants/invariants.js +1 -1
  264. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  265. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  266. package/dist/application-spec/parse-application-files/spec/model/index.d.ts +1 -0
  267. package/dist/application-spec/parse-application-files/spec/model/index.js +1 -1
  268. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.d.ts +10 -0
  269. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.js +1 -0
  270. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  271. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  272. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  273. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  274. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  275. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  276. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  277. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  278. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  279. package/dist/client/phoenix-api.d.ts +463 -0
  280. package/dist/configurator/ConfiguratorApp.js +1 -1
  281. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.d.ts +2 -0
  282. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.js +5 -0
  283. package/dist/configurator/app-loader-content/app-loader-content-name.d.ts +5 -0
  284. package/dist/configurator/app-loader-content/app-loader-content-name.js +1 -0
  285. package/dist/configurator/app-loader-content/index.d.ts +2 -0
  286. package/dist/configurator/app-loader-content/index.js +1 -0
  287. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  288. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  289. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  290. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +38 -1
  291. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  292. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +7 -1
  293. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  294. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.d.ts +1 -1
  295. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  296. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.d.ts +12 -0
  297. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.js +1 -0
  298. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +20 -4
  299. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  300. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  301. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  302. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  303. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  304. package/dist/configurator/common/configurator-interface.d.ts +90 -3
  305. package/dist/configurator/common/configurator-interface.js +1 -1
  306. package/dist/configurator/common/index.d.ts +3 -1
  307. package/dist/configurator/common/index.js +1 -1
  308. package/dist/configurator/common/use-reset-camera.d.ts +6 -0
  309. package/dist/configurator/common/use-reset-camera.js +1 -0
  310. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +12 -0
  311. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -0
  312. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.d.ts +9 -0
  313. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.js +1 -0
  314. package/dist/configurator/configuration-not-found-page/index.d.ts +2 -0
  315. package/dist/configurator/configuration-not-found-page/index.js +1 -0
  316. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +12 -0
  317. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -0
  318. package/dist/configurator/configurator-context/PresetSelectionProvider.js +1 -1
  319. package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
  320. package/dist/configurator/configurator-context/ViewportStateSync.d.ts +2 -2
  321. package/dist/configurator/configurator-context/ViewportStateSync.js +1 -1
  322. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +7 -1
  323. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.d.ts +6 -0
  324. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.js +1 -0
  325. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.d.ts +12 -0
  326. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.js +1 -0
  327. package/dist/configurator/configurator-error-page/create-configurator-error-page.d.ts +9 -0
  328. package/dist/configurator/configurator-error-page/create-configurator-error-page.js +1 -0
  329. package/dist/configurator/configurator-error-page/index.d.ts +3 -0
  330. package/dist/configurator/configurator-error-page/index.js +1 -0
  331. package/dist/configurator/index.d.ts +2 -0
  332. package/dist/configurator/index.js +1 -1
  333. package/dist/configurator/pages/ConfiguratorErrorPage.d.ts +0 -1
  334. package/dist/configurator/pages/ConfiguratorErrorPage.js +1 -1
  335. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  336. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +7 -0
  337. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  338. package/dist/configurator/pages/DefaultNotAuthenticatedPage.d.ts +8 -0
  339. package/dist/configurator/pages/DefaultNotAuthenticatedPage.js +1 -0
  340. package/dist/configurator/pages/DefaultPresetUi.d.ts +7 -0
  341. package/dist/configurator/pages/DefaultPresetUi.js +1 -0
  342. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  343. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  344. package/dist/configurator/pages/PresetCreationErrorPage.d.ts +1 -1
  345. package/dist/configurator/pages/PresetCreationErrorPage.js +1 -1
  346. package/dist/configurator/pages/RootPage.js +1 -1
  347. package/dist/configurator/pages/configurator-layout-name.d.ts +2 -0
  348. package/dist/configurator/pages/configurator-layout-name.js +1 -0
  349. package/dist/configurator/pages/default-configurator-elements.d.ts +12 -0
  350. package/dist/configurator/pages/default-configurator-elements.js +1 -0
  351. package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +10 -0
  352. package/dist/configurator/pages/default-elements/built-in-entity-element.js +1 -0
  353. package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +10 -0
  354. package/dist/configurator/pages/default-elements/built-in-layout-element.js +1 -0
  355. package/dist/configurator/pages/default-elements/domain-control-elements.d.ts +6 -0
  356. package/dist/configurator/pages/default-elements/domain-control-elements.js +1 -0
  357. package/dist/configurator/pages/default-elements/index.d.ts +4 -0
  358. package/dist/configurator/pages/default-elements/index.js +1 -0
  359. package/dist/configurator/pages/default-elements/recipe-panel-elements.d.ts +3 -0
  360. package/dist/configurator/pages/default-elements/recipe-panel-elements.js +1 -0
  361. package/dist/configurator/pages/default-elements/sidebar-footer-elements.d.ts +7 -0
  362. package/dist/configurator/pages/default-elements/sidebar-footer-elements.js +1 -0
  363. package/dist/configurator/pages/default-elements/toolbar-elements.d.ts +7 -0
  364. package/dist/configurator/pages/default-elements/toolbar-elements.js +1 -0
  365. package/dist/configurator/pages/error-boundaries/GeneralErrorBoundary.js +1 -1
  366. package/dist/configurator/pages/index.d.ts +1 -0
  367. package/dist/configurator/pages/index.js +1 -1
  368. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.d.ts +4 -0
  369. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.js +1 -0
  370. package/dist/configurator/preset-screen-elements/PresetPageActionElement.d.ts +4 -0
  371. package/dist/configurator/preset-screen-elements/PresetPageActionElement.js +1 -0
  372. package/dist/configurator/preset-screen-elements/index.d.ts +2 -0
  373. package/dist/configurator/preset-screen-elements/index.js +1 -0
  374. package/dist/configurator/scene/scene-controls/DeleteEntityFab.js +1 -1
  375. package/dist/configurator/scene/scene-controls/SelectionHotspot.js +1 -1
  376. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  377. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  378. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  379. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  380. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  381. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  382. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  383. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  384. package/dist/configurator/ui/assistant/AssistantChips.d.ts +8 -2
  385. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  386. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -2
  387. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  388. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  389. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  390. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  391. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  392. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  393. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  394. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  395. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  396. package/dist/configurator/ui/assistant/entity-link/index.d.ts +2 -0
  397. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  398. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +19 -0
  399. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -0
  400. package/dist/configurator/ui/assistant/form/built-in-form-registry.d.ts +10 -0
  401. package/dist/configurator/ui/assistant/form/built-in-form-registry.js +1 -0
  402. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +11 -0
  403. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -0
  404. package/dist/configurator/ui/assistant/form/describe-build-errors.d.ts +6 -0
  405. package/dist/configurator/ui/assistant/form/describe-build-errors.js +1 -0
  406. package/dist/configurator/ui/assistant/form/form-element-definition.d.ts +14 -0
  407. package/dist/configurator/ui/assistant/form/form-element-definition.js +1 -0
  408. package/dist/configurator/ui/assistant/form/form-model.d.ts +38 -0
  409. package/dist/configurator/ui/assistant/form/form-model.js +1 -0
  410. package/dist/configurator/ui/assistant/form/form-registry.d.ts +31 -0
  411. package/dist/configurator/ui/assistant/form/form-registry.js +8 -0
  412. package/dist/configurator/ui/assistant/form/form-state.d.ts +4 -0
  413. package/dist/configurator/ui/assistant/form/form-state.js +1 -0
  414. package/dist/configurator/ui/assistant/form/index.d.ts +2 -0
  415. package/dist/configurator/ui/assistant/form/index.js +1 -0
  416. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +9 -0
  417. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -0
  418. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +13 -0
  419. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -0
  420. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +3 -0
  421. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -0
  422. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +3 -0
  423. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -0
  424. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +3 -0
  425. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -0
  426. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +3 -0
  427. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -0
  428. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +34 -0
  429. package/dist/configurator/ui/assistant/form-elements/form-element-props.js +1 -0
  430. package/dist/configurator/ui/assistant/form-elements/index.d.ts +5 -0
  431. package/dist/configurator/ui/assistant/form-elements/index.js +1 -0
  432. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +16 -0
  433. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -0
  434. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.d.ts +34 -0
  435. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.js +1 -0
  436. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.d.ts +25 -0
  437. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.js +1 -0
  438. package/dist/configurator/ui/assistant/reference-link/index.d.ts +3 -0
  439. package/dist/configurator/ui/assistant/reference-link/index.js +1 -0
  440. package/dist/configurator/ui/assistant/reference-link/reference-styles.d.ts +12 -0
  441. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -0
  442. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.d.ts +8 -0
  443. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.js +1 -0
  444. package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +9 -0
  445. package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -0
  446. package/dist/configurator/ui/assistant/resource-image/index.d.ts +3 -0
  447. package/dist/configurator/ui/assistant/resource-image/index.js +1 -0
  448. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +11 -0
  449. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -0
  450. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.d.ts +5 -0
  451. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.js +1 -0
  452. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +2 -0
  453. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  454. package/dist/configurator/ui/assistant/thread-items.d.ts +8 -1
  455. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  456. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -1
  457. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  458. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  459. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  460. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  461. package/dist/configurator/ui/configurator-layout/slots/canvas/LayoutCanvas.js +1 -1
  462. package/dist/configurator/ui/configurator-layout/slots/canvas/SharedCanvas.js +1 -1
  463. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.d.ts +101 -0
  464. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  465. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  466. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  467. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.d.ts +1 -1
  468. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.js +1 -1
  469. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  470. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  471. package/dist/configurator/ui/configurator-layout/slots/services/Services.js +1 -1
  472. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  473. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  474. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.d.ts +1 -1
  475. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.js +1 -1
  476. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  477. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  478. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +0 -74
  479. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  480. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  481. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +4 -4
  482. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  483. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  484. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  485. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  486. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  487. package/dist/configurator/ui/legacy/layout/common/CommonFinalizeButton.js +1 -1
  488. package/dist/configurator/ui/legacy/layout/common/CommonSummaryButton.js +1 -1
  489. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  490. package/dist/configurator/ui/legacy/layout/common/ReactiveInterfaceLayout.js +1 -1
  491. package/dist/configurator/ui/legacy/layout/common/ResponsiveFinalizeButton.js +1 -1
  492. package/dist/configurator/ui/legacy/layout/common/SummaryReadLayout.js +1 -1
  493. package/dist/configurator/ui/legacy/layout/simple/SimpleOwnerLayout.js +1 -1
  494. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  495. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  496. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  497. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  498. package/dist/configurator/ui/legacy/layout/steps/StepsSidebarFooter.js +1 -1
  499. package/dist/configurator/ui/legacy/layout/tabs/TabsOwnerLayout.js +1 -1
  500. package/dist/configurator/ui/legacy/toolbar/common/DimensionUnitSelector.js +1 -1
  501. package/dist/configurator/ui/legacy/toolbar/common/MeasurementsIndicatorsSwitch.js +1 -1
  502. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/FullscreenToolbarAction.js +1 -1
  503. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/HelpToolbarAction.js +1 -1
  504. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/MeasurementsToolbarAction.js +1 -1
  505. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/UndoRedoToolbarGroup.js +1 -1
  506. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.js +2 -6
  507. package/dist/configurator/ui/phoenix-layout-elements/EnterFullscreenToolbarButton.js +1 -1
  508. package/dist/configurator/ui/phoenix-layout-elements/ExitFullscreenToolbarButton.js +1 -1
  509. package/dist/configurator/ui/phoenix-layout-elements/HelpToolbarButton.js +1 -1
  510. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.d.ts +1 -0
  511. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.js +1 -1
  512. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.d.ts +1 -0
  513. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.js +1 -1
  514. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsToolbarButton.js +1 -1
  515. package/dist/configurator/ui/phoenix-layout-elements/RedoToolbarButton.js +1 -1
  516. package/dist/configurator/ui/phoenix-layout-elements/UndoToolbarButton.js +1 -1
  517. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  518. package/dist/configurator/ui/phoenix-layout-elements/header/common/horizontal-tabs/DesktopHorizontalTabs.js +1 -1
  519. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.d.ts +1 -1
  520. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.js +1 -1
  521. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -8
  522. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  523. package/dist/configurator/ui/phoenix-layout-elements/measurements/DimensionUnitSelector.js +1 -1
  524. package/dist/configurator/ui/phoenix-layout-elements/measurements/MeasurementsIndicatorsSwitch.js +1 -1
  525. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/BasicFinalizeButton.js +1 -1
  526. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/CustomFinalizeButton.js +1 -1
  527. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/EnterSummaryButton.js +1 -1
  528. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/FinalizeActions.js +1 -1
  529. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/NextStepButton.js +1 -1
  530. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  531. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  532. package/dist/configurator/ui/preset-layout/PresetUi.d.ts +4 -0
  533. package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
  534. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.d.ts +10 -0
  535. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -0
  536. package/dist/configurator/ui/save-message-snackbars/index.d.ts +1 -0
  537. package/dist/configurator/ui/save-message-snackbars/index.js +1 -0
  538. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +16 -19
  539. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  540. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  541. package/dist/docs/controls/select-child-entity/cardselect.mdx +1 -0
  542. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  543. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  544. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  545. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  546. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  547. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  548. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  549. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  550. package/dist/docs/fabs/basic.mdx +2 -2
  551. package/dist/docs/index.json +42 -1
  552. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  553. package/dist/docs/layouts/custom-layout.mdx +2435 -0
  554. package/dist/docs/layouts/header/fixed.mdx +2 -2
  555. package/dist/docs/layouts/header/floating.mdx +2 -2
  556. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  557. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  558. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  559. package/dist/docs/other-features/error-5xx.mdx +1 -1
  560. package/dist/docs/other-features/not-found-404.mdx +1 -1
  561. package/dist/docs/other-features/side-effects.mdx +8 -11
  562. package/dist/docs/other-features/transformers.mdx +4 -0
  563. package/dist/docs/other-features/violation-messages.mdx +52 -56
  564. package/dist/docs/phoenix/application-states.mdx +9 -7
  565. package/dist/docs/phoenix/clerk-sign-in.mdx +1 -1
  566. package/dist/docs/phoenix/components.mdx +6 -0
  567. package/dist/docs/phoenix/configurator-interface.mdx +333 -81
  568. package/dist/docs/phoenix/deployments.mdx +2 -6
  569. package/dist/docs/phoenix/domain-model.mdx +6 -0
  570. package/dist/docs/phoenix/finalization.mdx +1 -1
  571. package/dist/docs/phoenix/getting-started.mdx +7 -4
  572. package/dist/docs/phoenix/layout-slots.mdx +116 -0
  573. package/dist/docs/phoenix/localization.mdx +10 -6
  574. package/dist/docs/phoenix/migration-guide.mdx +24 -11
  575. package/dist/docs/phoenix/phoenix-cli.mdx +88 -44
  576. package/dist/docs/phoenix/project-structure.mdx +80 -36
  577. package/dist/docs/phoenix/quickstart.mdx +9 -9
  578. package/dist/docs/phoenix/sdk-builder-workflow.mdx +8 -8
  579. package/dist/docs/phoenix/testing.mdx +148 -0
  580. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  581. package/dist/docs/phoenix/webhooks.mdx +23 -6
  582. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -11
  583. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  584. package/dist/domain/admin-domain/index.js +1 -1
  585. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  586. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  587. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  588. package/dist/domain/application/application-config.d.ts +8 -5
  589. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  590. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  591. package/dist/domain/application/assistant/assistant-form-elements.d.ts +28 -0
  592. package/dist/domain/application/assistant/assistant-form-elements.js +1 -0
  593. package/dist/domain/application/assistant/assistant-manifest.d.ts +9 -1
  594. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +38 -2
  595. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -1
  596. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  597. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  598. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  599. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  600. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  601. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  602. package/dist/domain/application/assistant/index.d.ts +8 -1
  603. package/dist/domain/application/assistant/index.js +1 -1
  604. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  605. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  606. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  607. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  608. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +48 -0
  609. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  610. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  611. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  612. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  613. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  614. package/dist/domain/application/assistant-recipe-groups.d.ts +4 -2
  615. package/dist/domain/application/configurator-builder.d.ts +5 -2
  616. package/dist/domain/application/configurator-builder.js +1 -1
  617. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  618. package/dist/domain/application/index.d.ts +0 -4
  619. package/dist/domain/application/index.js +1 -1
  620. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  621. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  622. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  623. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  624. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  625. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +1 -1
  626. package/dist/domain/application/published-data/map-published-data.d.ts +7 -3
  627. package/dist/domain/core/component/domain-component-optic.d.ts +11 -19
  628. package/dist/domain/core/component/domain-component-optic.js +2 -2
  629. package/dist/domain/core/component/legacy-filter.d.ts +2 -17
  630. package/dist/domain/core/component/system-component-filter.d.ts +36 -18
  631. package/dist/domain/core/expression/constant-expressions.d.ts +16 -8
  632. package/dist/domain/core/expression/constant-expressions.js +1 -1
  633. package/dist/domain/core/expression/custom-expression.d.ts +17 -4
  634. package/dist/domain/core/expression/custom-expression.js +1 -1
  635. package/dist/domain/core/expression/expression.d.ts +1 -2
  636. package/dist/domain/core/invariant/custom-invariants.d.ts +6 -14
  637. package/dist/domain/core/invariant/invariants.d.ts +1 -4
  638. package/dist/domain/core/invariant/violation.d.ts +50 -2
  639. package/dist/domain/core/invariant/violation.js +1 -1
  640. package/dist/domain/core/model/model.d.ts +1 -1
  641. package/dist/domain/core/recipe/recipes.d.ts +18 -50
  642. package/dist/domain/core/recipe/recipes.js +1 -1
  643. package/dist/domain/core/relation/all-of-type-relation.d.ts +8 -21
  644. package/dist/domain/core/relation/all-of-type-relation.js +1 -1
  645. package/dist/domain/core/relation/direct-relation.d.ts +13 -24
  646. package/dist/domain/core/relation/index.d.ts +0 -1
  647. package/dist/domain/core/relation/indirect-relation.d.ts +12 -67
  648. package/dist/domain/core/relation/indirect-relation.js +1 -1
  649. package/dist/domain/core/relation/relation-factory.d.ts +19 -15
  650. package/dist/domain/core/relation/relation-factory.js +1 -1
  651. package/dist/domain/core/schema/extended-schema-validator.js +1 -1
  652. package/dist/domain/core/state/migrations.d.ts +14 -45
  653. package/dist/domain/core/state/migrations.js +1 -1
  654. package/dist/domain/core/state/state.d.ts +1 -1
  655. package/dist/domain/domain-builder.d.ts +1 -1
  656. package/dist/domain/domain-builder.js +1 -1
  657. package/dist/domain/domain-context/action-system/action-system.d.ts +1 -1
  658. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  659. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  660. package/dist/domain/domain-context/action-system/index.js +1 -0
  661. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  662. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  663. package/dist/domain/domain-context/create-transformer.d.ts +1 -1
  664. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +2 -2
  665. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  666. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  667. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  668. package/dist/domain/domain-context/domain-context-systems.d.ts +7 -7
  669. package/dist/domain/domain-context/index.d.ts +8 -17
  670. package/dist/domain/domain-context/index.js +1 -1
  671. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  672. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  673. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +2 -3
  674. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  675. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +1 -1
  676. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  677. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  678. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +1 -1
  679. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  680. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +2 -2
  681. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +2 -2
  682. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +2 -2
  683. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  684. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  685. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +2 -2
  686. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  687. package/dist/domain/domain-context/store-system/index.js +1 -0
  688. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  689. package/dist/domain/domain-context/store-system/store-system.d.ts +1 -3
  690. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  691. package/dist/domain/domain-context/store-system/system-state.d.ts +1 -1
  692. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  693. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +5 -7
  694. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  695. package/dist/domain/domain-context/transformers/chain-builder.d.ts +1 -1
  696. package/dist/domain/domain-context/transformers/context.d.ts +1 -1
  697. package/dist/domain/domain-context/transformers/context.js +1 -1
  698. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  699. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  700. package/dist/domain/domain-context/transformers/index.js +1 -1
  701. package/dist/domain/domain-context/transformers/when-builder.d.ts +2 -3
  702. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  703. package/dist/domain/domain-context/undo-system.d.ts +29 -2
  704. package/dist/domain/domain-context/undo-system.js +1 -1
  705. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  706. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  707. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  708. package/dist/domain/domain-runtime/access/types.js +1 -1
  709. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  710. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +17 -22
  711. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  712. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  713. package/dist/domain/domain-runtime/domain-runtime.d.ts +76 -60
  714. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +19 -0
  715. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  716. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  717. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  718. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  719. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  720. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  721. package/dist/domain/domain-runtime/errors/index.js +1 -0
  722. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  723. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  724. package/dist/domain/domain-runtime/index.d.ts +1 -0
  725. package/dist/domain/domain-runtime/index.js +1 -1
  726. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  727. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  728. package/dist/domain/domain-runtime/spec/index.d.ts +2 -5
  729. package/dist/domain/domain-runtime/spec/index.js +1 -1
  730. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  731. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  732. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +14 -13
  733. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  734. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +1 -1
  735. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  736. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  737. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  738. package/dist/domain/{project-modules → domain-runtime/spec/module-checks}/project-modules.d.ts +8 -1
  739. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  740. package/dist/domain/domain-runtime/spec/{resolve-action-modules.d.ts → module-checks/resolve-action-modules.d.ts} +2 -2
  741. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  742. package/dist/domain/domain-runtime/spec/{resolve-component-optic-modules.d.ts → module-checks/resolve-component-optic-modules.d.ts} +2 -2
  743. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  744. package/dist/domain/domain-runtime/spec/{resolve-expression-modules.d.ts → module-checks/resolve-expression-modules.d.ts} +2 -2
  745. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  746. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  747. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  748. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  749. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  750. package/dist/domain/domain-runtime/spec/selectors.d.ts +5 -6
  751. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  752. package/dist/domain/domain-runtime/spec/types.d.ts +5 -2
  753. package/dist/domain/extensions/attribute-switch.d.ts +1 -1
  754. package/dist/domain/extensions/attribute-switch.js +1 -1
  755. package/dist/domain/extensions/canvas-config.d.ts +1 -1
  756. package/dist/domain/extensions/client-side-image.d.ts +2 -2
  757. package/dist/domain/extensions/client-side-image.js +1 -1
  758. package/dist/domain/extensions/common/angle-indicator-schema.d.ts +2 -2
  759. package/dist/domain/extensions/common/dimension-indicator-schema.d.ts +2 -2
  760. package/dist/domain/extensions/editable-angle-indicator.d.ts +1 -1
  761. package/dist/domain/extensions/editable-distance-dimension-indicator.d.ts +1 -1
  762. package/dist/domain/extensions/editable-offset-indicator.d.ts +1 -1
  763. package/dist/domain/extensions/editable-offset-indicator.js +1 -1
  764. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -1
  765. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -1
  766. package/dist/domain/extensions/horizontal-tabs.d.ts +2 -2
  767. package/dist/domain/extensions/list-selector-dimension-indicator.d.ts +1 -1
  768. package/dist/domain/extensions/navigation-steps.d.ts +2 -2
  769. package/dist/domain/extensions/offset-indicator.js +1 -1
  770. package/dist/domain/extensions/rotation-handle.d.ts +2 -2
  771. package/dist/domain/extensions/save-template-thumbnail.d.ts +2 -2
  772. package/dist/domain/extensions/save-template-thumbnail.js +1 -1
  773. package/dist/domain/extensions/scene-entity-animation.js +1 -1
  774. package/dist/domain/index.d.ts +0 -1
  775. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  776. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  777. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +28 -19
  778. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  779. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  780. package/dist/domain/mocks/create-mock-domain.js +1 -1
  781. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  782. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  783. package/dist/domain/mocks/create-test-application-config.js +1 -0
  784. package/dist/domain/mocks/index.d.ts +1 -0
  785. package/dist/domain/mocks/index.js +1 -1
  786. package/dist/domain/projections/blender-projections/blender-projections.d.ts +1 -2
  787. package/dist/domain/projections/blender-projections/camera.d.ts +2 -2
  788. package/dist/domain/projections/collision-projections.d.ts +1 -1
  789. package/dist/domain/projections/composition-projections.d.ts +1 -1
  790. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  791. package/dist/domain/projections/position-projections.d.ts +1 -1
  792. package/dist/domain/projections/projected-entities-projections.d.ts +1 -1
  793. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  794. package/dist/domain/projections/validation-projections.d.ts +2 -2
  795. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  796. package/dist/domain/system-components/application-config.d.ts +2 -2
  797. package/dist/domain/system-components/child-entity-selection.js +1 -1
  798. package/dist/domain/system-components/collision-box-geometry.d.ts +4 -2
  799. package/dist/domain/system-components/collision-geometry.d.ts +4 -2
  800. package/dist/domain/system-components/collision-point-geometry.d.ts +4 -2
  801. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  802. package/dist/domain/system-components/common/recipes.d.ts +21 -3
  803. package/dist/domain/system-components/common/recipes.js +1 -1
  804. package/dist/domain/system-components/common/scene-entity-control-schema.d.ts +3 -0
  805. package/dist/domain/system-components/common/scene-entity-control-schema.js +1 -1
  806. package/dist/domain/system-components/constraint.d.ts +10 -23
  807. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  808. package/dist/domain/system-components/drag-handle.js +1 -1
  809. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  810. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  811. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  812. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  813. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -1
  814. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  815. package/dist/domain/system-components/material-swatch.js +1 -1
  816. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  817. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  818. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  819. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  820. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  821. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  822. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  823. package/dist/domain/utils/eval-cache.d.ts +1 -1
  824. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  825. package/dist/editor/Editor.d.ts +7 -0
  826. package/dist/editor/Editor.js +1 -1
  827. package/dist/editor/domain-editors/use-implementation-files.d.ts +1 -2
  828. package/dist/editor/mocks/CreateMockYaml.js +2 -2
  829. package/dist/editor/mocks/EditorMockContext.d.ts +2 -0
  830. package/dist/editor/mocks/EditorMockContext.js +1 -1
  831. package/dist/globals/index.d.ts +2 -0
  832. package/dist/i18n/locales/cs/messages.js +1 -1
  833. package/dist/i18n/locales/da/messages.js +1 -1
  834. package/dist/i18n/locales/de/messages.js +1 -1
  835. package/dist/i18n/locales/de-AT/messages.js +1 -1
  836. package/dist/i18n/locales/en/messages.js +1 -1
  837. package/dist/i18n/locales/en-AU/messages.js +1 -1
  838. package/dist/i18n/locales/en-GB/messages.js +1 -1
  839. package/dist/i18n/locales/es/messages.js +1 -1
  840. package/dist/i18n/locales/fr/messages.js +1 -1
  841. package/dist/i18n/locales/hu/messages.js +1 -1
  842. package/dist/i18n/locales/it/messages.js +1 -1
  843. package/dist/i18n/locales/nl/messages.js +1 -1
  844. package/dist/i18n/locales/pl/messages.js +1 -1
  845. package/dist/i18n/locales/pt/messages.js +1 -1
  846. package/dist/i18n/locales/ro/messages.js +1 -1
  847. package/dist/i18n/locales/sk/messages.js +1 -1
  848. package/dist/i18n/locales/tr/messages.js +1 -1
  849. package/dist/legacy/domain-cli/gen/configurator-builder.js +13 -12
  850. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  851. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  852. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  853. package/dist/legacy/domain-cli/gen/invariants.js +3 -4
  854. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  855. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  856. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  857. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +160 -148
  858. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  859. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  860. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  861. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +7 -0
  862. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  863. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +15 -14
  864. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +14 -12
  865. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +14 -13
  866. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +13 -11
  867. package/dist/phoenix/application-spec/application-spec-builder.d.ts +0 -2
  868. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  869. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +0 -2
  870. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  871. package/dist/phoenix/application-spec/generate-application-spec-story.js +2 -2
  872. package/dist/phoenix/application-spec/generate-project-files.d.ts +0 -2
  873. package/dist/phoenix/application-spec/project-files.js +1 -1
  874. package/dist/phoenix/bin.d.ts +2 -0
  875. package/dist/phoenix/bin.js +2 -0
  876. package/dist/phoenix/check-configs/built-in-eslint-config.d.ts +9 -0
  877. package/dist/phoenix/check-configs/built-in-eslint-config.js +1 -0
  878. package/dist/phoenix/check-configs/eslint-config.d.ts +10 -0
  879. package/dist/phoenix/check-configs/eslint-config.js +1 -0
  880. package/dist/phoenix/check-configs/index.d.ts +8 -0
  881. package/dist/phoenix/check-configs/index.js +1 -0
  882. package/dist/phoenix/check-configs/typescript-project.d.ts +5 -0
  883. package/dist/phoenix/check-configs/typescript-project.js +1 -0
  884. package/dist/phoenix/cli.d.ts +0 -1
  885. package/dist/phoenix/cli.js +1 -2
  886. package/dist/phoenix/commands/build.js +1 -1
  887. package/dist/phoenix/commands/check.js +1 -1
  888. package/dist/phoenix/commands/clean.js +1 -1
  889. package/dist/phoenix/commands/deploy.js +2 -2
  890. package/dist/phoenix/commands/deps/deps.d.ts +73 -0
  891. package/dist/phoenix/commands/deps/deps.js +3 -0
  892. package/dist/phoenix/commands/deps/index.d.ts +1 -0
  893. package/dist/phoenix/commands/deps/index.js +1 -0
  894. package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
  895. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
  896. package/dist/phoenix/commands/dev.js +5 -5
  897. package/dist/phoenix/commands/fix.js +1 -1
  898. package/dist/phoenix/commands/index.d.ts +1 -0
  899. package/dist/phoenix/commands/index.js +1 -1
  900. package/dist/phoenix/commands/init.d.ts +17 -5
  901. package/dist/phoenix/commands/init.js +1 -1
  902. package/dist/phoenix/commands/link.js +1 -1
  903. package/dist/phoenix/commands/prettier.js +1 -1
  904. package/dist/phoenix/commands/sync.js +1 -1
  905. package/dist/phoenix/commands/unlink.js +1 -1
  906. package/dist/phoenix/services/application-spec-project-watcher.d.ts +2 -2
  907. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  908. package/dist/phoenix/services/lingui.d.ts +8 -0
  909. package/dist/phoenix/services/lingui.js +1 -1
  910. package/dist/phoenix/services/source-archive.d.ts +1 -0
  911. package/dist/phoenix/services/source-archive.js +1 -1
  912. package/dist/phoenix/services/swc.js +1 -1
  913. package/dist/phoenix/services/vite-config.js +1 -1
  914. package/dist/phoenix/utils/git/index.d.ts +1 -0
  915. package/dist/phoenix/utils/git/index.js +1 -0
  916. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  917. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  918. package/dist/phoenix/utils/index.d.ts +5 -2
  919. package/dist/phoenix/utils/index.js +1 -1
  920. package/dist/phoenix/utils/node-version/index.d.ts +1 -0
  921. package/dist/phoenix/utils/node-version/index.js +1 -0
  922. package/dist/phoenix/utils/node-version/supported-node-version.d.ts +12 -0
  923. package/dist/phoenix/utils/node-version/supported-node-version.js +4 -0
  924. package/dist/phoenix/utils/package-info.d.ts +0 -9
  925. package/dist/phoenix/utils/package-info.js +1 -1
  926. package/dist/phoenix/utils/package-manager/index.d.ts +2 -0
  927. package/dist/phoenix/utils/package-manager/index.js +1 -0
  928. package/dist/phoenix/utils/package-manager/package-manager-commands.d.ts +19 -0
  929. package/dist/phoenix/utils/package-manager/package-manager-commands.js +1 -0
  930. package/dist/phoenix/utils/package-manager/pnpm-project.d.ts +9 -0
  931. package/dist/phoenix/utils/package-manager/pnpm-project.js +1 -0
  932. package/dist/phoenix/utils/run-command.d.ts +11 -0
  933. package/dist/phoenix/utils/run-command.js +1 -1
  934. package/dist/phoenix/utils/sdk-tool/index.d.ts +1 -0
  935. package/dist/phoenix/utils/sdk-tool/index.js +1 -0
  936. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.d.ts +15 -0
  937. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.js +1 -0
  938. package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.d.ts +6 -0
  939. package/dist/react-sdk/application-runtime/common-services/analytics/frontend-analytics.js +1 -0
  940. package/dist/react-sdk/application-runtime/common-services/analytics/index.d.ts +1 -0
  941. package/dist/react-sdk/application-runtime/common-services/analytics/index.js +1 -1
  942. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +2 -0
  943. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  944. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  945. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +53 -36
  946. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  947. package/dist/react-sdk/domain-application-context/DomainLifecycleBoundary.js +1 -1
  948. package/dist/react-sdk/domain-context/common-hooks/index.d.ts +8 -0
  949. package/dist/react-sdk/domain-context/common-hooks/index.js +1 -0
  950. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +41 -0
  951. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  952. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +9 -9
  953. package/dist/react-sdk/domain-context/component-hooks/index.d.ts +1 -0
  954. package/dist/react-sdk/domain-context/component-hooks/index.js +1 -0
  955. package/dist/react-sdk/domain-context/component-hooks/use-component.js +1 -1
  956. package/dist/react-sdk/domain-context/entity-hooks/use-domain-entity-state.js +1 -1
  957. package/dist/react-sdk/domain-context/entity-hooks/use-entity-price.js +1 -1
  958. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-id.js +1 -1
  959. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-state.js +1 -1
  960. package/dist/react-sdk/domain-context/index.d.ts +5 -1
  961. package/dist/react-sdk/domain-context/index.js +1 -1
  962. package/dist/react-sdk/domain-context/system-hooks/composition-hooks.js +1 -1
  963. package/dist/react-sdk/domain-context/system-hooks/dimension-hooks.js +1 -1
  964. package/dist/react-sdk/domain-context/system-hooks/hover-hooks.js +1 -1
  965. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +11 -0
  966. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  967. package/dist/react-sdk/domain-context/system-hooks/selection-hooks.js +1 -1
  968. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.d.ts +57 -0
  969. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.js +1 -0
  970. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.d.ts +61 -0
  971. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.js +1 -0
  972. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.d.ts +20 -0
  973. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -0
  974. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  975. package/dist/react-sdk/elements/configurator-error-page-props.d.ts +20 -0
  976. package/dist/react-sdk/elements/configurator-error-page-props.js +1 -0
  977. package/dist/react-sdk/elements/index.d.ts +1 -0
  978. package/dist/react-sdk/handlers/FinalizeActionRunner.d.ts +13 -0
  979. package/dist/react-sdk/handlers/FinalizeActionRunner.js +1 -0
  980. package/dist/react-sdk/handlers/FinalizeActionsHost.d.ts +10 -0
  981. package/dist/react-sdk/handlers/FinalizeActionsHost.js +1 -0
  982. package/dist/react-sdk/handlers/FinalizeActionsProvider.d.ts +11 -0
  983. package/dist/react-sdk/handlers/FinalizeActionsProvider.js +1 -0
  984. package/dist/react-sdk/handlers/finalize-actions-context.d.ts +6 -0
  985. package/dist/react-sdk/handlers/finalize-actions-context.js +1 -0
  986. package/dist/react-sdk/handlers/finalize-actions-store.d.ts +23 -0
  987. package/dist/react-sdk/handlers/finalize-actions-store.js +1 -0
  988. package/dist/react-sdk/handlers/index.d.ts +6 -0
  989. package/dist/react-sdk/handlers/index.js +1 -1
  990. package/dist/react-sdk/handlers/use-finalize-action.d.ts +32 -0
  991. package/dist/react-sdk/handlers/use-finalize-action.js +1 -0
  992. package/dist/react-sdk/handlers/use-finalize-actions.d.ts +53 -0
  993. package/dist/react-sdk/handlers/use-finalize-actions.js +1 -0
  994. package/dist/react-sdk/index.d.ts +1 -0
  995. package/dist/react-sdk/index.js +1 -1
  996. package/dist/react-sdk/loading-state/loading-state-manager.d.ts +5 -0
  997. package/dist/react-sdk/loading-state/loading-state-manager.js +1 -1
  998. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.d.ts +25 -0
  999. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.js +1 -0
  1000. package/dist/react-sdk/responsive-state/canvas-padding.d.ts +14 -0
  1001. package/dist/react-sdk/responsive-state/canvas-padding.js +1 -0
  1002. package/dist/react-sdk/responsive-state/index.d.ts +5 -0
  1003. package/dist/react-sdk/responsive-state/index.js +1 -0
  1004. package/dist/react-sdk/responsive-state/responsive-state-manager.d.ts +111 -0
  1005. package/dist/react-sdk/responsive-state/responsive-state-manager.js +1 -0
  1006. package/dist/react-sdk/responsive-state/use-responsive-state-manager.d.ts +10 -0
  1007. package/dist/react-sdk/responsive-state/use-responsive-state-manager.js +1 -0
  1008. package/dist/react-sdk/responsive-state/use-responsive-state.d.ts +11 -0
  1009. package/dist/react-sdk/responsive-state/use-responsive-state.js +1 -0
  1010. package/dist/react-sdk/session/NotAuthenticatedPage.d.ts +4 -0
  1011. package/dist/react-sdk/session/NotAuthenticatedPage.js +1 -1
  1012. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +9 -0
  1013. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.js +1 -1
  1014. package/dist/ui-sdk/responsive-application/index.d.ts +1 -0
  1015. package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +57 -0
  1016. package/dist/ui-sdk/responsive-application/responsive-state-store.js +1 -0
  1017. package/dist/ui-sdk/responsive-application/use-store-responsive-info.d.ts +7 -0
  1018. package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -0
  1019. package/dist/ui-sdk/theme/types.d.ts +1 -1
  1020. package/dist/webhook/builders/webhook-builder.js +1 -1
  1021. package/package.json +48 -36
  1022. package/schema/domain-spec.json +1201 -217
  1023. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  1024. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  1025. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  1026. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -94
  1027. package/dist/application-spec/generate-application/code/templates/nvmrc.d.ts +0 -1
  1028. package/dist/application-spec/generate-application/code/templates/nvmrc.js +0 -2
  1029. package/dist/application-spec/generate-application/code/templates/package-json.d.ts +0 -10
  1030. package/dist/application-spec/generate-application/code/templates/package-json.js +0 -1
  1031. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  1032. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  1033. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  1034. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  1035. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  1036. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  1037. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  1038. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  1039. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  1040. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  1041. package/dist/application-spec/generate-application/code/templates/webhook-implementation.d.ts +0 -1
  1042. package/dist/application-spec/generate-application/code/templates/webhook-implementation.js +0 -7
  1043. package/dist/configurator/common/frontend-analytics.js +0 -1
  1044. package/dist/domain/application/element-registration.js +0 -1
  1045. package/dist/domain/application/handler-registration.js +0 -1
  1046. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -23
  1047. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  1048. package/dist/domain/application/resource-builder.d.ts +0 -13
  1049. package/dist/domain/application/resource-builder.js +0 -1
  1050. package/dist/domain/core/relation/relation-implementation.d.ts +0 -7
  1051. package/dist/domain/domain-runtime/spec/invariant-builder.d.ts +0 -61
  1052. package/dist/domain/domain-runtime/spec/invariant-builder.js +0 -1
  1053. package/dist/domain/domain-runtime/spec/resolve-action-modules.js +0 -1
  1054. package/dist/domain/domain-runtime/spec/resolve-component-optic-modules.js +0 -1
  1055. package/dist/domain/domain-runtime/spec/resolve-expression-modules.js +0 -1
  1056. package/dist/domain/domain-runtime/spec/resolve-invariant-modules.d.ts +0 -6
  1057. package/dist/domain/domain-runtime/spec/resolve-invariant-modules.js +0 -1
  1058. package/dist/domain/project-modules/index.d.ts +0 -1
  1059. package/dist/domain/project-modules/index.js +0 -1
  1060. package/dist/domain/project-modules/project-modules.js +0 -1
  1061. package/dist/phoenix/commands/generate-project-files.d.ts +0 -6
  1062. package/dist/phoenix/commands/generate-project-files.js +0 -1
  1063. /package/dist/{domain/core/relation/relation-implementation.js → application-spec/core/expressions/relation-expression-params.js} +0 -0
  1064. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  1065. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  1066. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
@@ -1,5 +1,5 @@
1
1
  import { type Localizable } from '@salsita-ai/common/utils';
2
- import type { DomainEntity, EntityRecipe } from '../../core/index.js';
2
+ import { type DomainEntity, type EntityRecipe } from '../../core/index.js';
3
3
  export interface RecipeListItem {
4
4
  /**
5
5
  * Stable identifier of the recipe within its list, independent of the language and of the title.
@@ -29,8 +29,17 @@ export declare const recipeSchema: {
29
29
  readonly type: {
30
30
  readonly type: 'string';
31
31
  };
32
+ readonly id: {
33
+ readonly type: 'string';
34
+ readonly pattern: '^[A-Z]\\w*-\\d+$';
35
+ readonly import: [{
36
+ readonly module: '@salsita-ai/sdk/domain';
37
+ readonly member: 'DomainEntityId';
38
+ }];
39
+ readonly tsType: 'DomainEntityId';
40
+ };
32
41
  };
33
- readonly required: ["type"];
42
+ readonly required: ["type", "id"];
34
43
  readonly additionalProperties: true;
35
44
  };
36
45
  export declare const recipeListItemSchema: {
@@ -89,8 +98,17 @@ export declare const recipeListItemSchema: {
89
98
  readonly type: {
90
99
  readonly type: 'string';
91
100
  };
101
+ readonly id: {
102
+ readonly type: 'string';
103
+ readonly pattern: '^[A-Z]\\w*-\\d+$';
104
+ readonly import: [{
105
+ readonly module: '@salsita-ai/sdk/domain';
106
+ readonly member: 'DomainEntityId';
107
+ }];
108
+ readonly tsType: 'DomainEntityId';
109
+ };
92
110
  };
93
- readonly required: ["type"];
111
+ readonly required: ["type", "id"];
94
112
  readonly additionalProperties: true;
95
113
  };
96
114
  };
@@ -1 +1 @@
1
- import{EnhancedLocalizableSchema as e}from"@salsita-ai/common/utils";export const recipeSchema={type:"object",properties:{type:{type:"string"}},required:["type"],additionalProperties:!0};export const recipeListItemSchema={type:"object",properties:{key:{type:"string"},title:e,description:e,thumbnailUrl:e,recipes:{type:"array",items:recipeSchema}},required:["title","recipes"],additionalProperties:!1};export const GroupedRecipesSchema={type:"object",tsType:"GroupedRecipes",import:[{module:"@salsita-ai/sdk/domain",member:"GroupedRecipes"}],properties:{instanceNames:{type:"array",items:{type:"string"}}},required:["instanceNames"]};export const GroupedRecipeGroupSchema={type:"object",tsType:"GroupedRecipeGroup",import:[{module:"@salsita-ai/sdk/domain",member:"GroupedRecipeGroup"}],properties:{label:e,description:e,thumbnailUrl:e,children:{$ref:"#/definitions/GroupedRecipeItems"}},required:["label","children"],additionalProperties:!1};export const GroupedRecipeItemsSchema={tsType:"GroupedRecipeItems",import:[{module:"@salsita-ai/sdk/domain",member:"GroupedRecipeItems"}],anyOf:[{type:"array",items:GroupedRecipeGroupSchema},GroupedRecipesSchema]};
1
+ import{EnhancedLocalizableSchema as e}from"@salsita-ai/common/utils";import{DomainEntityIdSchema as i}from"../../core/index.js";export const recipeSchema={type:"object",properties:{type:{type:"string"},id:i},required:["type","id"],additionalProperties:!0};export const recipeListItemSchema={type:"object",properties:{key:{type:"string"},title:e,description:e,thumbnailUrl:e,recipes:{type:"array",items:recipeSchema}},required:["title","recipes"],additionalProperties:!1};export const GroupedRecipesSchema={type:"object",tsType:"GroupedRecipes",import:[{module:"@salsita-ai/sdk/domain",member:"GroupedRecipes"}],properties:{instanceNames:{type:"array",items:{type:"string"}}},required:["instanceNames"]};export const GroupedRecipeGroupSchema={type:"object",tsType:"GroupedRecipeGroup",import:[{module:"@salsita-ai/sdk/domain",member:"GroupedRecipeGroup"}],properties:{label:e,description:e,thumbnailUrl:e,children:{$ref:"#/definitions/GroupedRecipeItems"}},required:["label","children"],additionalProperties:!1};export const GroupedRecipeItemsSchema={tsType:"GroupedRecipeItems",import:[{module:"@salsita-ai/sdk/domain",member:"GroupedRecipeItems"}],anyOf:[{type:"array",items:GroupedRecipeGroupSchema},GroupedRecipesSchema]};
@@ -115,6 +115,7 @@ declare const SceneHtmlOpacityPropertiesTmp: {
115
115
  readonly type: 'number';
116
116
  };
117
117
  };
118
+ readonly required: readonly ['min', 'max'];
118
119
  readonly additionalProperties: false;
119
120
  };
120
121
  readonly polarAngleLimits: {
@@ -138,6 +139,7 @@ declare const SceneHtmlOpacityPropertiesTmp: {
138
139
  readonly type: 'number';
139
140
  };
140
141
  };
142
+ readonly required: readonly ['min', 'max'];
141
143
  readonly additionalProperties: false;
142
144
  };
143
145
  readonly distanceLimits: {
@@ -161,6 +163,7 @@ declare const SceneHtmlOpacityPropertiesTmp: {
161
163
  readonly type: 'number';
162
164
  };
163
165
  };
166
+ readonly required: readonly ['min', 'max'];
164
167
  readonly additionalProperties: false;
165
168
  };
166
169
  readonly minInteractiveOpacity: {
@@ -1 +1 @@
1
- import{EnhancedLocalizableSchema as e}from"@salsita-ai/common/utils";let t={type:"object",tsType:"SceneEntityHtmlOpacityLimits",import:[{module:"@salsita-ai/sdk/domain",member:"SceneEntityHtmlOpacityLimits"}],properties:{min:{type:"number"},max:{type:"number"},smoothZone:{type:"number"},minOpacity:{type:"number"}},additionalProperties:!1};export const SceneHtmlOpacityProperties={azimuthAngleLimits:t,polarAngleLimits:t,distanceLimits:t,minInteractiveOpacity:{type:"number"}};export const SceneHtmlPositionProperties={offsetX:{type:"number"},offsetY:{type:"number"},offsetZ:{type:"number"},screenOffsetHorizontal:{type:"number"},screenOffsetVertical:{type:"number"}};export const SceneHtmlVisibilityProperties={hideWhileDragging:{type:"boolean"},occlude:{type:"boolean"},showWhen:{type:"array",items:{type:"string",enum:["selected","unselected"]}}};export const SceneHtmlTooltipProperties={title:e,tooltipVisibility:{type:["string"],enum:["on-hover","forced","forced-when-still","hidden"]}};
1
+ import{EnhancedLocalizableSchema as e}from"@salsita-ai/common/utils";let t={type:"object",tsType:"SceneEntityHtmlOpacityLimits",import:[{module:"@salsita-ai/sdk/domain",member:"SceneEntityHtmlOpacityLimits"}],properties:{min:{type:"number"},max:{type:"number"},smoothZone:{type:"number"},minOpacity:{type:"number"}},required:["min","max"],additionalProperties:!1};export const SceneHtmlOpacityProperties={azimuthAngleLimits:t,polarAngleLimits:t,distanceLimits:t,minInteractiveOpacity:{type:"number"}};export const SceneHtmlPositionProperties={offsetX:{type:"number"},offsetY:{type:"number"},offsetZ:{type:"number"},screenOffsetHorizontal:{type:"number"},screenOffsetVertical:{type:"number"}};export const SceneHtmlVisibilityProperties={hideWhileDragging:{type:"boolean"},occlude:{type:"boolean"},showWhen:{type:"array",items:{type:"string",enum:["selected","unselected"]}}};export const SceneHtmlTooltipProperties={title:e,tooltipVisibility:{type:["string"],enum:["on-hover","forced","forced-when-still","hidden"]}};
@@ -13,25 +13,23 @@ export type SpatialPredicateName = 'disjoint' | 'touches' | 'within';
13
13
  * Authored in YAML via an expression that resolves to the container's
14
14
  * `DomainEntityId`, e.g. `container: { $read: $sceneId }`. If the
15
15
  * expression resolves to `null` / `undefined` / missing the rule is treated
16
- * as not-applicable (no clamp, no violation). `undefined` is included so
17
- * codegen-emitted reads (e.g. `SpatialConstraint['container']`, which
18
- * resolves to `SpatialConstraintContainer | undefined` because `container`
19
- * is absent on the `disjoint` / `touches` variants) round-trip back into a
20
- * `within` rule's `container` field without a cast.
16
+ * as not-applicable (no clamp, no violation).
21
17
  */
22
18
  export type SpatialConstraintContainer = string | null | undefined;
23
19
  /**
24
- * A single spatial constraint rule. Discriminated on `predicate`.
20
+ * A single spatial constraint rule. `predicate` decides which of the other fields it reads.
25
21
  *
26
- * `disjoint` / `touches` carry a required `group` string. Matching is
22
+ * `disjoint` / `touches` read `group`. Matching is
27
23
  * symmetric: a rule on entity A with `group: G` applies against every
28
24
  * *other* entity whose own constraint component declares the same predicate
29
25
  * with `group: G` — "both sides must opt in to the group". An entity can
30
26
  * join multiple groups by stacking rules. Declaring `disjoint group=G`
31
27
  * simultaneously means "I'm in G" and "I must not overlap anything else in
32
- * G". There is no wildcard: a rule with no matching peers no-ops.
28
+ * G". There is no wildcard: a rule with no matching peers no-ops. A rule
29
+ * without `group` matches the rules of the same predicate that have no
30
+ * `group` either.
33
31
  *
34
- * `within` carries an identity-based `container` and has no group — it
32
+ * `within` reads an identity-based `container` and ignores `group` — it
35
33
  * binds to one specific other entity, not a class.
36
34
  *
37
35
  * Optional `target` names a specific collision-geometry instance on
@@ -70,20 +68,9 @@ export type SpatialConstraintContainer = string | null | undefined;
70
68
  * perimeter.
71
69
  */
72
70
  export type SpatialConstraint = {
73
- readonly predicate: 'disjoint';
74
- readonly group: string;
75
- readonly target?: string;
76
- readonly container?: undefined;
77
- readonly enforce?: boolean;
78
- } | {
79
- readonly predicate: 'touches';
80
- readonly group: string;
81
- readonly target?: string;
82
- readonly container?: undefined;
83
- readonly enforce?: boolean;
84
- } | {
85
- readonly predicate: 'within';
86
- readonly container: SpatialConstraintContainer;
71
+ readonly predicate: SpatialPredicateName;
72
+ readonly group?: string;
73
+ readonly container?: SpatialConstraintContainer;
87
74
  readonly target?: string;
88
75
  readonly enforce?: boolean;
89
76
  };
@@ -6,7 +6,7 @@ export type DragHandleComponentState = {
6
6
  * It is defined in hessian normal form: `normal.x * x + normal.y * y + normal.z * z + constant = 0`
7
7
  * see https://threejs.org/docs/#api/en/math/Plane
8
8
  */
9
- readonly surfaces: DraggableSurface[];
9
+ readonly surfaces: readonly DraggableSurface[];
10
10
  /**
11
11
  * The x property to be updated when the drag handle is dragged.
12
12
  */
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e,isInstanceOfComponentType as a,isSnapshotOfComponentType as t}from"../core/index.js";import{DraggableSurfaceSchema as r}from"./common/index.js";export const dragHandleComponent=e.component("dragHandle").withState({tsType:"DragHandleComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"DragHandleComponentState"}],type:"object",properties:{surfaces:{type:"array",items:r},target:{type:"string"},draggableX:{type:"number"},draggableY:{type:"number"},draggableZ:{type:"number"},draggableRotationY:{type:"number"}},required:["surfaces"],additionalProperties:!1}).withWritableKeys(["draggableX","draggableY","draggableZ","draggableRotationY"]).build();export const DraggableUpdateTag="Draggable.update";export const TransientDraggableUpdateTag="Draggable.update.transient";export const isDragHandleSnapshot=t(dragHandleComponent);export const isDragHandleInstance=a(dragHandleComponent);
1
+ import{SystemComponentBuilder as e,isInstanceOfComponentType as a,isSnapshotOfComponentType as t}from"../core/index.js";import{DraggableSurfaceSchema as r}from"./common/index.js";export const dragHandleComponent=e.component("dragHandle").withState({tsType:"DragHandleComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"DragHandleComponentState"}],type:"object",properties:{surfaces:{type:"array",items:r},draggableX:{type:"number"},draggableY:{type:"number"},draggableZ:{type:"number"},draggableRotationY:{type:"number"}},required:["surfaces"],additionalProperties:!1}).withWritableKeys(["draggableX","draggableY","draggableZ","draggableRotationY"]).build();export const DraggableUpdateTag="Draggable.update";export const TransientDraggableUpdateTag="Draggable.update.transient";export const isDragHandleSnapshot=t(dragHandleComponent);export const isDragHandleInstance=a(dragHandleComponent);
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e,isInstanceOfComponentType as t,isSnapshotOfComponentType as o}from"../core/index.js";export const FitEntityOrthographicCameraComponentName="fitEntityOrthographicCamera";export const fitEntityOrthographicCameraComponent=e.component("fitEntityOrthographicCamera").withState({type:"object",tsType:"FitEntityOrthographicCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"FitEntityOrthographicCameraComponentState"}],properties:{priority:{type:"number"},fitMeshChanges:{type:"boolean"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},zoomLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fitToBox:{type:"boolean"},left:{type:"number"},bottom:{type:"number"},frustumSize:{type:"number"},near:{type:"number"},far:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},minZoom:{type:"number"},maxZoom:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number"},middle:{type:"number"},right:{type:"number"},wheel:{type:"number"}},required:["left","middle","right"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number"},two:{type:"number"},three:{type:"number"}},required:["one","two"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isFitEntityOrthographicCameraComponentSnapshot=o(fitEntityOrthographicCameraComponent);export const isFitEntityOrthographicCameraComponentInstance=t(fitEntityOrthographicCameraComponent);
1
+ import{SystemComponentBuilder as e,isInstanceOfComponentType as t,isSnapshotOfComponentType as o}from"../core/index.js";export const FitEntityOrthographicCameraComponentName="fitEntityOrthographicCamera";export const fitEntityOrthographicCameraComponent=e.component("fitEntityOrthographicCamera").withState({type:"object",tsType:"FitEntityOrthographicCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"FitEntityOrthographicCameraComponentState"}],properties:{priority:{type:"number"},fitMeshChanges:{type:"boolean"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},zoomLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fitToBox:{type:"boolean"},left:{type:"number"},bottom:{type:"number"},frustumSize:{type:"number"},near:{type:"number"},far:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},minZoom:{type:"number"},maxZoom:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number",enum:[0,1,2,4,8,16]},middle:{type:"number",enum:[0,1,2,4,8,16]},right:{type:"number",enum:[0,1,2,4,8,16]},wheel:{type:"number",enum:[0,1,2,4,8,16]}},required:["left","middle","right","wheel"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number",enum:[0,8,16,32,64,128]},two:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]},three:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]}},required:["one","two","three"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isFitEntityOrthographicCameraComponentSnapshot=o(fitEntityOrthographicCameraComponent);export const isFitEntityOrthographicCameraComponentInstance=t(fitEntityOrthographicCameraComponent);
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e,isInstanceOfComponentType as t,isSnapshotOfComponentType as n}from"../core/index.js";export const FitEntityPerspectiveCameraComponentName="fitEntityPerspectiveCamera";export const fitEntityPerspectiveCameraComponent=e.component("fitEntityPerspectiveCamera").withState({type:"object",tsType:"FitEntityPerspectiveCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"FitEntityPerspectiveCameraComponentState"}],properties:{priority:{type:"number"},fitMeshChanges:{type:"boolean"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},distanceLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fitToBox:{type:"boolean"},fov:{type:"number"},far:{type:"number"},near:{type:"number"},focus:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number"},middle:{type:"number"},right:{type:"number"},wheel:{type:"number"}},required:["left","middle","right"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number"},two:{type:"number"},three:{type:"number"}},required:["one","two"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isFitEntityPerspectiveCameraComponentSnapshot=n(fitEntityPerspectiveCameraComponent);export const isFitEntityPerspectiveCameraComponentInstance=t(fitEntityPerspectiveCameraComponent);
1
+ import{SystemComponentBuilder as e,isInstanceOfComponentType as t,isSnapshotOfComponentType as n}from"../core/index.js";export const FitEntityPerspectiveCameraComponentName="fitEntityPerspectiveCamera";export const fitEntityPerspectiveCameraComponent=e.component("fitEntityPerspectiveCamera").withState({type:"object",tsType:"FitEntityPerspectiveCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"FitEntityPerspectiveCameraComponentState"}],properties:{priority:{type:"number"},fitMeshChanges:{type:"boolean"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},distanceLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fitToBox:{type:"boolean"},fov:{type:"number"},far:{type:"number"},near:{type:"number"},focus:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number",enum:[0,1,2,4,8,16]},middle:{type:"number",enum:[0,1,2,4,8,16]},right:{type:"number",enum:[0,1,2,4,8,16]},wheel:{type:"number",enum:[0,1,2,4,8,16]}},required:["left","middle","right","wheel"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number",enum:[0,8,16,32,64,128]},two:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]},three:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]}},required:["one","two","three"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isFitEntityPerspectiveCameraComponentSnapshot=n(fitEntityPerspectiveCameraComponent);export const isFitEntityPerspectiveCameraComponentInstance=t(fitEntityPerspectiveCameraComponent);
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e,isSnapshotOfComponentType as t}from"../core/index.js";export const FitRootOrthographicCameraComponentName="fitRootOrthographicCamera";export const fitRootOrthographicCameraComponent=e.component("fitRootOrthographicCamera").withState({type:"object",tsType:"FitRootOrthographicCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"FitRootOrthographicCameraComponentState"}],properties:{priority:{type:"number"},fitMeshChanges:{type:"boolean"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},zoomLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fitToBox:{type:"boolean"},left:{type:"number"},bottom:{type:"number"},frustumSize:{type:"number"},near:{type:"number"},far:{type:"number"},focus:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},minZoom:{type:"number"},maxZoom:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number"},middle:{type:"number"},right:{type:"number"},wheel:{type:"number"}},required:["left","middle","right"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number"},two:{type:"number"},three:{type:"number"}},required:["one","two"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isFitRootOrthographicCameraComponent=t(fitRootOrthographicCameraComponent);
1
+ import{SystemComponentBuilder as e,isSnapshotOfComponentType as t}from"../core/index.js";export const FitRootOrthographicCameraComponentName="fitRootOrthographicCamera";export const fitRootOrthographicCameraComponent=e.component("fitRootOrthographicCamera").withState({type:"object",tsType:"FitRootOrthographicCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"FitRootOrthographicCameraComponentState"}],properties:{priority:{type:"number"},fitMeshChanges:{type:"boolean"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},zoomLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fitToBox:{type:"boolean"},left:{type:"number"},bottom:{type:"number"},frustumSize:{type:"number"},near:{type:"number"},far:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},minZoom:{type:"number"},maxZoom:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number",enum:[0,1,2,4,8,16]},middle:{type:"number",enum:[0,1,2,4,8,16]},right:{type:"number",enum:[0,1,2,4,8,16]},wheel:{type:"number",enum:[0,1,2,4,8,16]}},required:["left","middle","right","wheel"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number",enum:[0,8,16,32,64,128]},two:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]},three:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]}},required:["one","two","three"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isFitRootOrthographicCameraComponent=t(fitRootOrthographicCameraComponent);
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e,isSnapshotOfComponentType as t}from"../core/index.js";export const FitRootPerspectiveCameraComponentName="fitRootPerspectiveCamera";export const fitRootPerspectiveCameraComponent=e.component("fitRootPerspectiveCamera").withState({type:"object",tsType:"FitRootPerspectiveCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"FitRootPerspectiveCameraComponentState"}],properties:{priority:{type:"number"},fitMeshChanges:{type:"boolean"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},distanceLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fitToBox:{type:"boolean"},fov:{type:"number"},far:{type:"number"},near:{type:"number"},focus:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number"},middle:{type:"number"},right:{type:"number"},wheel:{type:"number"}},required:["left","middle","right"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number"},two:{type:"number"},three:{type:"number"}},required:["one","two"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isFitRootPerspectiveCameraComponent=t(fitRootPerspectiveCameraComponent);
1
+ import{SystemComponentBuilder as e,isSnapshotOfComponentType as t}from"../core/index.js";export const FitRootPerspectiveCameraComponentName="fitRootPerspectiveCamera";export const fitRootPerspectiveCameraComponent=e.component("fitRootPerspectiveCamera").withState({type:"object",tsType:"FitRootPerspectiveCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"FitRootPerspectiveCameraComponentState"}],properties:{priority:{type:"number"},fitMeshChanges:{type:"boolean"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},distanceLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fitToBox:{type:"boolean"},fov:{type:"number"},far:{type:"number"},near:{type:"number"},focus:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number",enum:[0,1,2,4,8,16]},middle:{type:"number",enum:[0,1,2,4,8,16]},right:{type:"number",enum:[0,1,2,4,8,16]},wheel:{type:"number",enum:[0,1,2,4,8,16]}},required:["left","middle","right","wheel"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number",enum:[0,8,16,32,64,128]},two:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]},three:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]}},required:["one","two","three"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isFitRootPerspectiveCameraComponent=t(fitRootPerspectiveCameraComponent);
@@ -12,7 +12,7 @@ export type HotspotDragHandleComponentState = SceneEntityHtmlPositionState & Sce
12
12
  * It is defined in hessian normal form: `normal.x * x + normal.y * y + normal.z * z + constant = 0`
13
13
  * see https://threejs.org/docs/#api/en/math/Plane
14
14
  */
15
- readonly surfaces: DraggableSurface[];
15
+ readonly surfaces: readonly DraggableSurface[];
16
16
  /**
17
17
  * Size of the hotspot drag handle ring in pixels. It should match the size of the drag hotspot used. Default is 40px.
18
18
  */
@@ -1 +1 @@
1
- import{SystemComponentBuilder as t,isComponentModificationOfType as e,isInstanceOfComponentType as o,isSnapshotOfComponentType as a}from"../core/index.js";import{DraggableSurfaceSchema as n,SceneHtmlOpacityProperties as r,SceneHtmlPositionProperties as p,SceneHtmlVisibilityProperties as s}from"./common/index.js";export const HotspotDragHandleVariant={Point:"point",Fab:"fab"};export const hotspotDragHandleComponent=t.component("hotspotDragHandle").withState({tsType:"HotspotDragHandleComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"HotspotDragHandleComponentState"}],type:"object",properties:{...p,...r,...s,surfaces:{type:"array",items:n},target:{type:"string"},handleSize:{type:"number"},variant:{type:"string",enum:Object.values(HotspotDragHandleVariant)},icon:{type:"string"},draggableX:{type:"number"},draggableY:{type:"number"},draggableZ:{type:"number"}},required:["surfaces"],additionalProperties:!1}).withWritableKeys(["draggableX","draggableY","draggableZ"]).build();export const isHotspotDragHandleSnapshot=a(hotspotDragHandleComponent);export const isHotspotDragHandleInstance=o(hotspotDragHandleComponent);export const isHotspotDragHandleModification=e(hotspotDragHandleComponent);
1
+ import{SystemComponentBuilder as t,isComponentModificationOfType as e,isInstanceOfComponentType as o,isSnapshotOfComponentType as a}from"../core/index.js";import{DraggableSurfaceSchema as n,SceneHtmlOpacityProperties as r,SceneHtmlPositionProperties as p,SceneHtmlVisibilityProperties as s}from"./common/index.js";export const HotspotDragHandleVariant={Point:"point",Fab:"fab"};export const hotspotDragHandleComponent=t.component("hotspotDragHandle").withState({tsType:"HotspotDragHandleComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"HotspotDragHandleComponentState"}],type:"object",properties:{...p,...r,...s,surfaces:{type:"array",items:n},handleSize:{type:"number"},variant:{type:"string",enum:Object.values(HotspotDragHandleVariant)},icon:{type:"string"},draggableX:{type:"number"},draggableY:{type:"number"},draggableZ:{type:"number"}},required:["surfaces"],additionalProperties:!1}).withWritableKeys(["draggableX","draggableY","draggableZ"]).build();export const isHotspotDragHandleSnapshot=a(hotspotDragHandleComponent);export const isHotspotDragHandleInstance=o(hotspotDragHandleComponent);export const isHotspotDragHandleModification=e(hotspotDragHandleComponent);
@@ -1 +1 @@
1
- import{EnhancedLocalizableSchema as t}from"@salsita-ai/common/utils";import{SystemComponentBuilder as e,isSnapshotOfComponentType as a}from"../core/index.js";export const materialSwatchComponent=e.component("materialSwatch").withState({type:"object",tsType:"MaterialSwatchComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"MaterialSwatchComponentState"}],properties:{swatches:{type:"object",additionalProperties:{type:"object",properties:{color:{type:"string",pattern:"^#[0-9a-fA-F]{6}$"},swatchName:t,thumbnailUrl:t},required:["swatchName","color"],additionalProperties:!1}},selectedSwatchKey:{type:["string","null"]}},required:["swatches","selectedSwatchKey"],additionalProperties:!1}).withWritableKeys(["selectedSwatchKey"]).build();export const isMaterialSwatchSnapshot=a(materialSwatchComponent);
1
+ import{EnhancedLocalizableSchema as t}from"@salsita-ai/common/utils";import{SystemComponentBuilder as e,isSnapshotOfComponentType as a}from"../core/index.js";export const materialSwatchComponent=e.component("materialSwatch").withState({type:"object",tsType:"MaterialSwatchComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"MaterialSwatchComponentState"}],properties:{swatches:{type:"object",additionalProperties:{type:"object",properties:{color:{type:"string",pattern:"^#[0-9a-fA-F]{6}$",tsType:"Color",import:[{module:"@salsita-ai/sdk/common/utils",member:"Color"}]},swatchName:t,thumbnailUrl:t},required:["swatchName","color"],additionalProperties:!1}},selectedSwatchKey:{type:["string","null"]}},required:["swatches","selectedSwatchKey"],additionalProperties:!1}).withWritableKeys(["selectedSwatchKey"]).build();export const isMaterialSwatchSnapshot=a(materialSwatchComponent);
@@ -1,7 +1,7 @@
1
1
  import { type Material } from 'three';
2
2
  export type SceneEntityMaterialOverrideComponentState = {
3
3
  material: Material;
4
- materialsToOverride: string[];
4
+ materialsToOverride: readonly string[];
5
5
  };
6
6
  export declare const sceneEntityMaterialOverrideComponent: import("../index.js").SystemComponentType<"sceneEntityMaterialOverride", SceneEntityMaterialOverrideComponentState, never>;
7
7
  export type SceneEntityMaterialOverrideComponent = typeof sceneEntityMaterialOverrideComponent;
@@ -1,7 +1,7 @@
1
1
  import { type Material } from 'three';
2
2
  export type SceneEntityObjectMaterialOverrideComponentState = {
3
3
  material: Material;
4
- materialsToOverride: string[];
4
+ materialsToOverride: readonly string[];
5
5
  };
6
6
  export declare const sceneEntityObjectMaterialOverrideComponent: import("../index.js").SystemComponentType<"sceneEntityObjectMaterialOverride", SceneEntityObjectMaterialOverrideComponentState, never>;
7
7
  export type SceneEntityObjectMaterialOverrideComponent = typeof sceneEntityObjectMaterialOverrideComponent;
@@ -12,7 +12,7 @@ export type SceneEntityObjectTextDecalComponentState = {
12
12
  readonly positionX?: number | undefined;
13
13
  readonly positionY?: number | undefined;
14
14
  readonly positionZ?: number | undefined;
15
- readonly preloadFonts?: string[] | undefined;
15
+ readonly preloadFonts?: readonly string[] | undefined;
16
16
  readonly rotationX?: number | undefined;
17
17
  readonly rotationY?: number | undefined;
18
18
  readonly rotationZ?: number | undefined;
@@ -1,5 +1,5 @@
1
1
  export type SceneEntityObjectTransmissiveMaterialOverrideComponentState = {
2
- materialsToOverride: string[];
2
+ materialsToOverride: readonly string[];
3
3
  transmission?: number;
4
4
  thickness?: number;
5
5
  roughness?: number;
@@ -1,5 +1,5 @@
1
1
  export type SceneEntityTransmissiveMaterialOverrideComponentState = {
2
- materialsToOverride: string[];
2
+ materialsToOverride: readonly string[];
3
3
  transmission?: number;
4
4
  thickness?: number;
5
5
  roughness?: number;
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e}from"../core/index.js";export const StaticOrthographicCameraComponentName="staticOrthographicCamera";export const staticOrthographicCameraComponent=e.component(StaticOrthographicCameraComponentName).withState({type:"object",tsType:"StaticOrthographicCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"StaticOrthographicCameraComponentState"}],properties:{priority:{type:"number"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},zoomLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},left:{type:"number"},bottom:{type:"number"},frustumSize:{type:"number"},far:{type:"number"},near:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},minZoom:{type:"number"},maxZoom:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number"},middle:{type:"number"},right:{type:"number"},wheel:{type:"number"}},required:["left","middle","right"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number"},two:{type:"number"},three:{type:"number"}},required:["one","two"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},lookAtX:{type:"number"},lookAtY:{type:"number"},lookAtZ:{type:"number"}},required:[],additionalProperties:!1}).build();export const isStaticOrthographicCameraComponent=e=>e.componentInstance.componentType.name===StaticOrthographicCameraComponentName;
1
+ import{SystemComponentBuilder as e}from"../core/index.js";export const StaticOrthographicCameraComponentName="staticOrthographicCamera";export const staticOrthographicCameraComponent=e.component(StaticOrthographicCameraComponentName).withState({type:"object",tsType:"StaticOrthographicCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"StaticOrthographicCameraComponentState"}],properties:{priority:{type:"number"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},zoomLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},left:{type:"number"},bottom:{type:"number"},frustumSize:{type:"number"},far:{type:"number"},near:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},minZoom:{type:"number"},maxZoom:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number",enum:[0,1,2,4,8,16]},middle:{type:"number",enum:[0,1,2,4,8,16]},right:{type:"number",enum:[0,1,2,4,8,16]},wheel:{type:"number",enum:[0,1,2,4,8,16]}},required:["left","middle","right","wheel"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number",enum:[0,8,16,32,64,128]},two:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]},three:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]}},required:["one","two","three"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},lookAtX:{type:"number"},lookAtY:{type:"number"},lookAtZ:{type:"number"}},required:[],additionalProperties:!1}).build();export const isStaticOrthographicCameraComponent=e=>e.componentInstance.componentType.name===StaticOrthographicCameraComponentName;
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e}from"../core/index.js";export const StaticPerspectiveCameraComponentName="staticPerspectiveCamera";export const staticPerspectiveCameraComponent=e.component(StaticPerspectiveCameraComponentName).withState({type:"object",tsType:"StaticPerspectiveCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"StaticPerspectiveCameraComponentState"}],properties:{priority:{type:"number"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},distanceLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fov:{type:"number"},far:{type:"number"},near:{type:"number"},focus:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number"},middle:{type:"number"},right:{type:"number"},wheel:{type:"number"}},required:["left","middle","right"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number"},two:{type:"number"},three:{type:"number"}},required:["one","two"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},lookAtX:{type:"number"},lookAtY:{type:"number"},lookAtZ:{type:"number"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isStaticPerspectiveCameraComponent=e=>e.componentInstance.componentType.name===StaticPerspectiveCameraComponentName;
1
+ import{SystemComponentBuilder as e}from"../core/index.js";export const StaticPerspectiveCameraComponentName="staticPerspectiveCamera";export const staticPerspectiveCameraComponent=e.component(StaticPerspectiveCameraComponentName).withState({type:"object",tsType:"StaticPerspectiveCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"StaticPerspectiveCameraComponentState"}],properties:{priority:{type:"number"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},distanceLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fov:{type:"number"},far:{type:"number"},near:{type:"number"},focus:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number",enum:[0,1,2,4,8,16]},middle:{type:"number",enum:[0,1,2,4,8,16]},right:{type:"number",enum:[0,1,2,4,8,16]},wheel:{type:"number",enum:[0,1,2,4,8,16]}},required:["left","middle","right","wheel"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number",enum:[0,8,16,32,64,128]},two:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]},three:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]}},required:["one","two","three"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},lookAtX:{type:"number"},lookAtY:{type:"number"},lookAtZ:{type:"number"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isStaticPerspectiveCameraComponent=e=>e.componentInstance.componentType.name===StaticPerspectiveCameraComponentName;
@@ -3,7 +3,7 @@ import type { DomainEntity, DomainState } from '../core/index.js';
3
3
  * Clone the evaluation cache from one state to another.
4
4
  * You should not need to use this function manually as it is used internally by the framework.
5
5
  */
6
- export declare const cloneEvalCache: <ENTITIES extends DomainEntity<string>>(originalState: DomainState<ENTITIES>, newState: DomainState<ENTITIES>) => void;
6
+ export declare const cloneEvalCache: (originalState: DomainState<DomainEntity<string>>, newState: DomainState<DomainEntity<string>>) => void;
7
7
  /**
8
8
  * A unique token that can be used to retrieve an evaluation cache from a state.
9
9
  * The token carries type information about the cache's key and value types.
@@ -1 +1 @@
1
- export declare const mapNestedObject: <TI, TO, KI extends string, KO extends string = KI>() => <REC extends Partial<Record<KI, Record<string, TI>>>>(record: REC, map: (entry: [key1: KI, key2: string, value: TI]) => Array<[key1: KO, key2: string, value: TO]>, onDuplicate?: (previousValue: TO, newValue: TO, key1: KO, key2: string) => void) => Record<KO, Record<string, TO>>;
1
+ export declare const mapNestedObject: <TI, TO, KI extends string, KO extends string = KI>() => (record: Partial<Record<KI, Record<string, TI>>>, map: (entry: [key1: KI, key2: string, value: TI]) => Array<[key1: KO, key2: string, value: TO]>, onDuplicate?: (previousValue: TO, newValue: TO, key1: KO, key2: string) => void) => Record<KO, Record<string, TO>>;
@@ -32,6 +32,13 @@ export interface EditorProps {
32
32
  readonly mockTemplates?: MockTemplateDefinition[];
33
33
  /** If true, automatically apply the first template when templates are initialized */
34
34
  readonly autoApplyTemplate?: boolean;
35
+ /**
36
+ * Key of the mock template to apply on mount, in place of the template stored for this page.
37
+ * Applying it does not store it, so it never changes what an editor without this prop opens.
38
+ * An unknown key logs a warning and falls back to the stored template, or to the first template
39
+ * when `autoApplyTemplate` is set.
40
+ */
41
+ readonly initialTemplateKey?: string;
35
42
  /** Key used to scope localStorage template persistence (e.g. environment slug) */
36
43
  readonly environmentKey?: string;
37
44
  /** Web component tag name for creating and discovering reflection systems. */
@@ -1 +1 @@
1
- import{jsx as e,jsxs as i,Fragment as t}from"react/jsx-runtime";import{Box as o,Chip as n,CssBaseline as r,IconButton as s,ThemeProvider as a,Tooltip as l,Typography as d,createTheme as c,useMediaQuery as m,useTheme as p}from"@mui/material";import{ModalProvider as f}from"mui-modal-provider";import{memo as h,useCallback as u,useEffect as g,useState as w}from"react";import{match as k}from"ts-pattern";import{useLocalStorage as y}from"usehooks-ts";import{PhxIcon as x,SnackbarProvider as b,createThemeWithPhoenixIcons as v}from"#package/ui-sdk";import{EditorMode as S}from"./EditorMode.js";import{EditorRuntimeProvider as P}from"./EditorRuntimeProvider.js";import{EditorAdminContextProvider as j}from"./admin/EditorAdminContext.js";import{EditorAdminMainContent as V}from"./admin/EditorAdminMainContent.js";import{EditorAdminSidebar as E}from"./admin/EditorAdminSidebar.js";import{useEditorAdminState as D}from"./admin/use-editor-admin-state.js";import{Analytics as T}from"./analytics/Analytics.js";import{AnalyticsProvider as A}from"./analytics/AnalyticsContext.js";import{Logotype as C}from"./common/Logotype.js";import{PanelIconButton as L}from"./common/PanelIconButton.js";import{BrowserConsoleReporter as M}from"./console-reporter/BrowserConsoleReporter.js";import{DataHandler as W}from"./data/DataHandler.js";import{DebugFlags as R}from"./debug-flags/DebugFlags.js";import{DiagnosticsPanel as I}from"./diagnostics/DiagnosticsPanel.js";import{DomainEditors as F}from"./domain-editors/DomainEditors.js";import{DomainSpecProvider as G,useDomainSpecContext as z}from"./domain-editors/DomainSpecContext.js";import{DomainReflection as B}from"./domain-reflection/DomainReflection.js";import{GraphQLPanel as Q}from"./graphql/GraphQLPanel.js";import{LogsPanel as H}from"./logs/LogsPanel.js";import{EditorMockProvider as U}from"./mocks/EditorMockContext.js";import{Mocks as q}from"./mocks/Mocks.js";import{ProfilerPanel as O}from"./profiler/ProfilerPanel.js";import{RemoteFilesList as K}from"./remote-files/RemoteFilesList.js";import{SceneHandler as N}from"./scene/SceneHandler.js";import{ScreenshotHandler as X}from"./screenshot/ScreenshotHandler.js";import{EditorConnectionProvider as Y}from"./services/EditorConnectionContext.js";import{EditorActionButtons as $}from"./sidebar/EditorActionButtons.js";import{StateInspector as J}from"./state-inspector/index.js";import{StateHandler as Z}from"./state/StateHandler.js";import{SpaTemplate as _}from"./templates/SpaTemplate.js";import{Templates as ee}from"./templates/Templates.js";import{TemplatesList as ei}from"./templates/TemplatesList.js";import{TunnelProvider as et,useTunnel as eo}from"./tunnel/TunnelContext.js";import{TunnelPanel as en}from"./tunnel/TunnelPanel.js";import{hasTunnelProblem as er}from"./tunnel/tunnel-view-model.js";import{HTML_VARIANT_FRAME_ATTRIBUTE as es,VariantPreviewHandler as ea,useConfiguratorContainerRef as el}from"./variants/VariantPreviewHandler.js";import{VideoStudio as ed}from"./video-studio/VideoStudio.js";import{WebSocketStatus as ec}from"./websocket-status/WebSocketStatus.js";let em=h(()=>e("div",{ref:el(),style:{width:"100%",height:"100%"}})),ep=v(c());export const EditorPanelView={Files:"Files",Reflections:"Reflections",Domain:"Domain",Templates:"Templates",Mocks:"Mocks",Inspector:"Inspector",Debug:"Debug",Profiler:"Profiler",GraphQL:"GraphQL",VideoStudio:"VideoStudio",Analytics:"Analytics",Diagnostics:"Diagnostics",Logs:"Logs",Tunnel:"Tunnel",WebSocketStatus:"WebSocketStatus",Admin:"Admin"};let ef=[{key:EditorPanelView.Templates,icon:"GridFour",title:"Templates"},{key:EditorPanelView.Reflections,icon:"House",title:"Reflections"},{key:EditorPanelView.Files,icon:"List",title:"Files"},{key:EditorPanelView.Domain,icon:"Gear",title:"Domain"},{key:EditorPanelView.Mocks,icon:"TagBold",title:"Mocks"},{key:EditorPanelView.Inspector,icon:"CurrencyDollar",title:"Inspector"},{key:EditorPanelView.Debug,icon:"EyeBold",title:"Debug"},{key:EditorPanelView.Profiler,icon:"Alarm",title:"Profiler"},{key:EditorPanelView.GraphQL,icon:"MagnifyingGlassBold",title:"GraphQL"},{key:EditorPanelView.VideoStudio,icon:"CameraRotate",title:"Video Studio"},{key:EditorPanelView.Analytics,icon:"Flame",title:"Analytics"},{key:EditorPanelView.Diagnostics,icon:"WarningCircle",title:"Diagnostics"},{key:EditorPanelView.Logs,icon:"BracketsCurly",title:"Logs"},{key:EditorPanelView.Tunnel,icon:"ArrowsHorizontal",title:"Webhook Tunnel"}],eh=h(r=>{let{panelView:a,setPanelView:c,width:m,setWidth:p,selectedTemplate:f,setSelectedTemplate:h,isResizing:y,setIsResizing:b,onExit:v,enableAdmin:S}=r,P=D(S),{unreadDiagnosticCount:j,markDiagnosticsRead:A}=z(),{state:M}=eo(),W=a?Math.max(m,240):38,[G,U]=w(0),N=u(()=>U(e=>e+1),[]);return g(()=>{a===EditorPanelView.Diagnostics&&A()},[A,a]),i(o,{component:"div",sx:{display:"grid",gridTemplateColumns:`${W}px min-content auto`,gridTemplateRows:"minmax(0, 1fr)",width:"100vw",height:"100vh",backgroundColor:"#ffffff",overflow:"hidden"},onMouseMove:e=>{y&&p(e.clientX)},onMouseUp:()=>{b(!1)},children:[i(o,{component:"div",sx:{display:"grid",gridTemplateColumns:"36px auto",backgroundColor:"#f8f9fa",borderRight:"1px solid #dee2e6",boxShadow:"2px 0 8px rgba(0, 0, 0, 0.06)",overflow:"hidden",height:"100%"},children:[i("div",{style:{backgroundColor:"#f8f9fa",height:"100%",display:"flex",flexDirection:"column",alignItems:"center",padding:"4px 0"},children:[e("div",{style:{marginBottom:"8px"},children:e(C,{variant:"icon-only"})}),i("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:"2px"},children:[S&&i(t,{children:[e(L,{icon:"SlidersHorizontal",title:"Admin",active:a===EditorPanelView.Admin,onClick:()=>{a===EditorPanelView.Admin?c(null):c(EditorPanelView.Admin)}}),e("div",{style:{borderBottom:"1px solid #dee2e6",margin:"2px 0"}})]}),ef.map(i=>e(L,{icon:i.icon,title:i.title,active:a===i.key,badgeCount:i.key===EditorPanelView.Tunnel?+!!er(M):i.key===EditorPanelView.Diagnostics?j:0,onClick:()=>{a===i.key?c(null):c(i.key)}},i.key))]}),e($,{reload:N}),e("div",{style:{padding:"0 2px",paddingBottom:"4px"},children:e(L,{icon:"CloudArrowUp",title:"WebSocket Status",active:a===EditorPanelView.WebSocketStatus,onClick:()=>{a===EditorPanelView.WebSocketStatus?c(null):c(EditorPanelView.WebSocketStatus)}})}),v&&e("div",{style:{padding:"0 2px",paddingBottom:"8px"},children:e(L,{icon:"SignOut",title:"Exit Editor",variant:"danger",onClick:v})})]}),a&&i(o,{component:"div",sx:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",backgroundColor:"#ffffff"},children:[e(o,{component:"div",sx:{p:1.5,borderBottom:"1px solid #e9ecef",backgroundColor:"#ffffff"},children:i(o,{component:"div",sx:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[i(o,{component:"div",sx:{display:"flex",flexDirection:"row",alignItems:"center"},children:[e(d,{variant:"h6",sx:{fontSize:16,fontWeight:600,color:"#212529"},children:k(a).with("Files",()=>"Files").with("Reflections",()=>"Reflections").with("Domain",()=>"Domain").with("Templates",()=>"Templates").with("Mocks",()=>"Mocks").with("Inspector",()=>"State Inspector").with("Debug",()=>"Debug").with("Profiler",()=>"Profiler").with("GraphQL",()=>"GraphQL").with("VideoStudio",()=>"Video Studio").with("Analytics",()=>"Analytics").with("Diagnostics",()=>"Diagnostics").with("Logs",()=>"Dev Server Logs").with("Tunnel",()=>"Webhook Tunnel").with("WebSocketStatus",()=>"WebSocket Status").with("Admin",()=>"Admin").otherwise(e=>e)}),e(l,{title:k(a).with("Files",()=>"Browse and inspect loaded GLTF files and their contents").with("Reflections",()=>"Inspect internal Phoenix systems state and configuration").with("Domain",()=>"Edit YAML domain specifications and component configurations").with("Templates",()=>"Select different layout templates for the configurator interface").with("Mocks",()=>"Create and manage mock data for testing session and access configurations").with("Inspector",()=>"Walk the entity tree: fields, expressions, and children").with("Debug",()=>"Toggle scene debug visuals like offset anchors, snapping, and collision meshes").with("Profiler",()=>"Make domain expressions show up as named frames in browser CPU profiles").with("GraphQL",()=>"Run GraphQL queries against the schema generated from the assistant manifest").with("VideoStudio",()=>"Create video sequences by capturing keyframes and exporting as video").with("Analytics",()=>"View parse pipeline metrics, domain stats, and diagnostics").with("Diagnostics",()=>"View latest editor warnings and errors").with("Logs",()=>"View dev server logs: spec builds, webhooks, vite, and browser console").with("Tunnel",()=>"View webhook tunnel status and the requests routed through it").with("WebSocketStatus",()=>"View WebSocket connection status and editor mode information").with("Admin",()=>"Manage admin panel, publish data, and configure settings").otherwise(()=>"Panel information"),placement:"left",arrow:!0,children:e(s,{size:"small",sx:{ml:1,color:"#6c757d",fontSize:14,p:.25,"&:hover":{backgroundColor:"#f8f9fa",color:"#495057"}},children:e(x,{name:"Info",style:{fontSize:14}})})})]}),e(o,{component:"div",sx:{display:"flex",alignItems:"center",gap:1},children:"Templates"===a&&e(n,{label:f.charAt(0).toUpperCase()+f.slice(1),variant:"outlined",size:"small",sx:{backgroundColor:"#f8f9fa",borderColor:"#dee2e6",color:"#495057",fontWeight:500,fontSize:"0.75rem"}})})]})}),i(o,{component:"div",sx:{flex:1,backgroundColor:"#ffffff",overflow:"auto"},children:["Files"===a&&e(K,{}),"Reflections"===a&&e(B,{}),"Domain"===a&&e(F,{}),"Templates"===a&&e(ei,{selectedTemplate:f,onTemplateSelect:h}),"Mocks"===a&&e(q,{}),"Inspector"===a&&e(J,{}),"Debug"===a&&e(R,{}),"Profiler"===a&&e(O,{}),"GraphQL"===a&&e(Q,{}),"VideoStudio"===a&&e(ed,{}),"Analytics"===a&&e(T,{}),"Diagnostics"===a&&e(I,{}),"Logs"===a&&e(H,{}),"Tunnel"===a&&e(en,{}),"WebSocketStatus"===a&&e(ec,{}),S&&"Admin"===a&&e(E,{...P})]})]})]}),e("div",{style:{width:"2px",backgroundColor:"#dee2e6",cursor:"ew-resize",boxShadow:"1px 0 3px rgba(0, 0, 0, 0.05)"},onMouseDown:()=>{b(!0)}}),i("div",{style:{position:"relative",overflow:"hidden"},children:[e("div",{style:{position:"absolute",inset:0,zIndex:+("Admin"!==a)},children:e(ee,{selectedTemplate:f,children:e(em,{},G)})}),S&&e("div",{style:{position:"absolute",inset:0,zIndex:+("Admin"===a)},children:e(V,{})})]})]})}),eu=h(()=>e(_,{children:e(em,{})})),eg=h(o=>{let{wsUrl:n="ws://localhost:3020",localMode:r=!1,domainSpec:s,initialRawProjectFiles:a,onExit:l,mockTemplates:d,autoApplyTemplate:c,environmentKey:h,tagName:u,enableAdmin:k=!0}=o,x=m(p().breakpoints.up("md")),[v,V]=y("editor-width",350),[E,D]=y("editor-view",null),[T,C]=y("editor-template","spa"),[L,R]=w(!1);return g(()=>{null===E||Object.values(EditorPanelView).some(e=>e===E)&&(k||E!==EditorPanelView.Admin)||D(null)},[k,E,D]),e(f,{children:e(b,{maxSnack:5,children:e(j,{children:e(P,{tagName:u,children:e(Y,{initialWsUrl:n,localMode:r,children:e(et,{children:e(S,{children:e(A,{children:e(G,{domainSpec:s,initialRawProjectFiles:a,children:i(U,{mockTemplates:d,autoApplyTemplate:c,environmentKey:h,children:[!r&&i(t,{children:[e(X,{}),e(Z,{}),e(W,{}),e(N,{}),e(M,{})]}),e(ea,{children:x?e(eh,{panelView:E,setPanelView:D,width:v,setWidth:V,selectedTemplate:T,setSelectedTemplate:C,isResizing:L,setIsResizing:R,onExit:l,enableAdmin:k}):e(eu,{})})]})})})})})})})})})})});export const Editor=h(t=>{try{if(window.frameElement?.hasAttribute(es))return e("div",{role:"alert","data-testid":"variant-page-unavailable",style:{padding:24,fontFamily:"sans-serif"},children:"This preview page is unavailable. Ask the agent to recreate it or close the comparison."})}catch{}return i(a,{theme:ep,children:[e(r,{}),e(eg,{...t})]})});
1
+ import{jsx as e,jsxs as i,Fragment as t}from"react/jsx-runtime";import{Box as o,Chip as n,CssBaseline as r,IconButton as s,ThemeProvider as a,Tooltip as l,Typography as d,createTheme as m,useMediaQuery as c,useTheme as p}from"@mui/material";import{ModalProvider as f}from"mui-modal-provider";import{memo as h,useCallback as u,useEffect as g,useState as w}from"react";import{match as k}from"ts-pattern";import{useLocalStorage as y}from"usehooks-ts";import{PhxIcon as x,SnackbarProvider as b,createThemeWithPhoenixIcons as v}from"#package/ui-sdk";import{EditorMode as S}from"./EditorMode.js";import{EditorRuntimeProvider as P}from"./EditorRuntimeProvider.js";import{EditorAdminContextProvider as j}from"./admin/EditorAdminContext.js";import{EditorAdminMainContent as V}from"./admin/EditorAdminMainContent.js";import{EditorAdminSidebar as E}from"./admin/EditorAdminSidebar.js";import{useEditorAdminState as D}from"./admin/use-editor-admin-state.js";import{Analytics as T}from"./analytics/Analytics.js";import{AnalyticsProvider as A}from"./analytics/AnalyticsContext.js";import{Logotype as C}from"./common/Logotype.js";import{PanelIconButton as L}from"./common/PanelIconButton.js";import{BrowserConsoleReporter as M}from"./console-reporter/BrowserConsoleReporter.js";import{DataHandler as W}from"./data/DataHandler.js";import{DebugFlags as R}from"./debug-flags/DebugFlags.js";import{DiagnosticsPanel as I}from"./diagnostics/DiagnosticsPanel.js";import{DomainEditors as F}from"./domain-editors/DomainEditors.js";import{DomainSpecProvider as G,useDomainSpecContext as z}from"./domain-editors/DomainSpecContext.js";import{DomainReflection as B}from"./domain-reflection/DomainReflection.js";import{GraphQLPanel as Q}from"./graphql/GraphQLPanel.js";import{LogsPanel as H}from"./logs/LogsPanel.js";import{EditorMockProvider as U}from"./mocks/EditorMockContext.js";import{Mocks as q}from"./mocks/Mocks.js";import{ProfilerPanel as K}from"./profiler/ProfilerPanel.js";import{RemoteFilesList as O}from"./remote-files/RemoteFilesList.js";import{SceneHandler as N}from"./scene/SceneHandler.js";import{ScreenshotHandler as X}from"./screenshot/ScreenshotHandler.js";import{EditorConnectionProvider as Y}from"./services/EditorConnectionContext.js";import{EditorActionButtons as $}from"./sidebar/EditorActionButtons.js";import{StateInspector as J}from"./state-inspector/index.js";import{StateHandler as Z}from"./state/StateHandler.js";import{SpaTemplate as _}from"./templates/SpaTemplate.js";import{Templates as ee}from"./templates/Templates.js";import{TemplatesList as ei}from"./templates/TemplatesList.js";import{TunnelProvider as et,useTunnel as eo}from"./tunnel/TunnelContext.js";import{TunnelPanel as en}from"./tunnel/TunnelPanel.js";import{hasTunnelProblem as er}from"./tunnel/tunnel-view-model.js";import{HTML_VARIANT_FRAME_ATTRIBUTE as es,VariantPreviewHandler as ea,useConfiguratorContainerRef as el}from"./variants/VariantPreviewHandler.js";import{VideoStudio as ed}from"./video-studio/VideoStudio.js";import{WebSocketStatus as em}from"./websocket-status/WebSocketStatus.js";let ec=h(()=>e("div",{ref:el(),style:{width:"100%",height:"100%"}})),ep=v(m());export const EditorPanelView={Files:"Files",Reflections:"Reflections",Domain:"Domain",Templates:"Templates",Mocks:"Mocks",Inspector:"Inspector",Debug:"Debug",Profiler:"Profiler",GraphQL:"GraphQL",VideoStudio:"VideoStudio",Analytics:"Analytics",Diagnostics:"Diagnostics",Logs:"Logs",Tunnel:"Tunnel",WebSocketStatus:"WebSocketStatus",Admin:"Admin"};let ef=[{key:EditorPanelView.Templates,icon:"GridFour",title:"Templates"},{key:EditorPanelView.Reflections,icon:"House",title:"Reflections"},{key:EditorPanelView.Files,icon:"List",title:"Files"},{key:EditorPanelView.Domain,icon:"Gear",title:"Domain"},{key:EditorPanelView.Mocks,icon:"TagBold",title:"Mocks"},{key:EditorPanelView.Inspector,icon:"CurrencyDollar",title:"Inspector"},{key:EditorPanelView.Debug,icon:"EyeBold",title:"Debug"},{key:EditorPanelView.Profiler,icon:"Alarm",title:"Profiler"},{key:EditorPanelView.GraphQL,icon:"MagnifyingGlassBold",title:"GraphQL"},{key:EditorPanelView.VideoStudio,icon:"CameraRotate",title:"Video Studio"},{key:EditorPanelView.Analytics,icon:"Flame",title:"Analytics"},{key:EditorPanelView.Diagnostics,icon:"WarningCircle",title:"Diagnostics"},{key:EditorPanelView.Logs,icon:"BracketsCurly",title:"Logs"},{key:EditorPanelView.Tunnel,icon:"ArrowsHorizontal",title:"Webhook Tunnel"}],eh=h(r=>{let{panelView:a,setPanelView:m,width:c,setWidth:p,selectedTemplate:f,setSelectedTemplate:h,isResizing:y,setIsResizing:b,onExit:v,enableAdmin:S}=r,P=D(S),{unreadDiagnosticCount:j,markDiagnosticsRead:A}=z(),{state:M}=eo(),W=a?Math.max(c,240):38,[G,U]=w(0),N=u(()=>U(e=>e+1),[]);return g(()=>{a===EditorPanelView.Diagnostics&&A()},[A,a]),i(o,{component:"div",sx:{display:"grid",gridTemplateColumns:`${W}px min-content auto`,gridTemplateRows:"minmax(0, 1fr)",width:"100vw",height:"100vh",backgroundColor:"#ffffff",overflow:"hidden"},onMouseMove:e=>{y&&p(e.clientX)},onMouseUp:()=>{b(!1)},children:[i(o,{component:"div",sx:{display:"grid",gridTemplateColumns:"36px auto",backgroundColor:"#f8f9fa",borderRight:"1px solid #dee2e6",boxShadow:"2px 0 8px rgba(0, 0, 0, 0.06)",overflow:"hidden",height:"100%"},children:[i("div",{style:{backgroundColor:"#f8f9fa",height:"100%",display:"flex",flexDirection:"column",alignItems:"center",padding:"4px 0"},children:[e("div",{style:{marginBottom:"8px"},children:e(C,{variant:"icon-only"})}),i("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:"2px"},children:[S&&i(t,{children:[e(L,{icon:"SlidersHorizontal",title:"Admin",active:a===EditorPanelView.Admin,onClick:()=>{a===EditorPanelView.Admin?m(null):m(EditorPanelView.Admin)}}),e("div",{style:{borderBottom:"1px solid #dee2e6",margin:"2px 0"}})]}),ef.map(i=>e(L,{icon:i.icon,title:i.title,active:a===i.key,badgeCount:i.key===EditorPanelView.Tunnel?+!!er(M):i.key===EditorPanelView.Diagnostics?j:0,onClick:()=>{a===i.key?m(null):m(i.key)}},i.key))]}),e($,{reload:N}),e("div",{style:{padding:"0 2px",paddingBottom:"4px"},children:e(L,{icon:"CloudArrowUp",title:"WebSocket Status",active:a===EditorPanelView.WebSocketStatus,onClick:()=>{a===EditorPanelView.WebSocketStatus?m(null):m(EditorPanelView.WebSocketStatus)}})}),v&&e("div",{style:{padding:"0 2px",paddingBottom:"8px"},children:e(L,{icon:"SignOut",title:"Exit Editor",variant:"danger",onClick:v})})]}),a&&i(o,{component:"div",sx:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",backgroundColor:"#ffffff"},children:[e(o,{component:"div",sx:{p:1.5,borderBottom:"1px solid #e9ecef",backgroundColor:"#ffffff"},children:i(o,{component:"div",sx:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[i(o,{component:"div",sx:{display:"flex",flexDirection:"row",alignItems:"center"},children:[e(d,{variant:"h6",sx:{fontSize:16,fontWeight:600,color:"#212529"},children:k(a).with("Files",()=>"Files").with("Reflections",()=>"Reflections").with("Domain",()=>"Domain").with("Templates",()=>"Templates").with("Mocks",()=>"Mocks").with("Inspector",()=>"State Inspector").with("Debug",()=>"Debug").with("Profiler",()=>"Profiler").with("GraphQL",()=>"GraphQL").with("VideoStudio",()=>"Video Studio").with("Analytics",()=>"Analytics").with("Diagnostics",()=>"Diagnostics").with("Logs",()=>"Dev Server Logs").with("Tunnel",()=>"Webhook Tunnel").with("WebSocketStatus",()=>"WebSocket Status").with("Admin",()=>"Admin").otherwise(e=>e)}),e(l,{title:k(a).with("Files",()=>"Browse and inspect loaded GLTF files and their contents").with("Reflections",()=>"Inspect internal Phoenix systems state and configuration").with("Domain",()=>"Edit YAML domain specifications and component configurations").with("Templates",()=>"Select different layout templates for the configurator interface").with("Mocks",()=>"Create and manage mock data for testing session and access configurations").with("Inspector",()=>"Walk the entity tree: fields, expressions, and children").with("Debug",()=>"Toggle scene debug visuals like offset anchors, snapping, and collision meshes").with("Profiler",()=>"Make domain expressions show up as named frames in browser CPU profiles").with("GraphQL",()=>"Run GraphQL queries against the schema generated from the assistant manifest").with("VideoStudio",()=>"Create video sequences by capturing keyframes and exporting as video").with("Analytics",()=>"View parse pipeline metrics, domain stats, and diagnostics").with("Diagnostics",()=>"View latest editor warnings and errors").with("Logs",()=>"View dev server logs: spec builds, webhooks, vite, and browser console").with("Tunnel",()=>"View webhook tunnel status and the requests routed through it").with("WebSocketStatus",()=>"View WebSocket connection status and editor mode information").with("Admin",()=>"Manage admin panel, publish data, and configure settings").otherwise(()=>"Panel information"),placement:"left",arrow:!0,children:e(s,{size:"small",sx:{ml:1,color:"#6c757d",fontSize:14,p:.25,"&:hover":{backgroundColor:"#f8f9fa",color:"#495057"}},children:e(x,{name:"Info",style:{fontSize:14}})})})]}),e(o,{component:"div",sx:{display:"flex",alignItems:"center",gap:1},children:"Templates"===a&&e(n,{label:f.charAt(0).toUpperCase()+f.slice(1),variant:"outlined",size:"small",sx:{backgroundColor:"#f8f9fa",borderColor:"#dee2e6",color:"#495057",fontWeight:500,fontSize:"0.75rem"}})})]})}),i(o,{component:"div",sx:{flex:1,backgroundColor:"#ffffff",overflow:"auto"},children:["Files"===a&&e(O,{}),"Reflections"===a&&e(B,{}),"Domain"===a&&e(F,{}),"Templates"===a&&e(ei,{selectedTemplate:f,onTemplateSelect:h}),"Mocks"===a&&e(q,{}),"Inspector"===a&&e(J,{}),"Debug"===a&&e(R,{}),"Profiler"===a&&e(K,{}),"GraphQL"===a&&e(Q,{}),"VideoStudio"===a&&e(ed,{}),"Analytics"===a&&e(T,{}),"Diagnostics"===a&&e(I,{}),"Logs"===a&&e(H,{}),"Tunnel"===a&&e(en,{}),"WebSocketStatus"===a&&e(em,{}),S&&"Admin"===a&&e(E,{...P})]})]})]}),e("div",{style:{width:"2px",backgroundColor:"#dee2e6",cursor:"ew-resize",boxShadow:"1px 0 3px rgba(0, 0, 0, 0.05)"},onMouseDown:()=>{b(!0)}}),i("div",{style:{position:"relative",overflow:"hidden"},children:[e("div",{style:{position:"absolute",inset:0,zIndex:+("Admin"!==a)},children:e(ee,{selectedTemplate:f,children:e(ec,{},G)})}),S&&e("div",{style:{position:"absolute",inset:0,zIndex:+("Admin"===a)},children:e(V,{})})]})]})}),eu=h(()=>e(_,{children:e(ec,{})})),eg=h(o=>{let{wsUrl:n="ws://localhost:3020",localMode:r=!1,domainSpec:s,initialRawProjectFiles:a,onExit:l,mockTemplates:d,autoApplyTemplate:m,initialTemplateKey:h,environmentKey:u,tagName:k,enableAdmin:x=!0}=o,v=c(p().breakpoints.up("md")),[V,E]=y("editor-width",350),[D,T]=y("editor-view",null),[C,L]=y("editor-template","spa"),[R,I]=w(!1);return g(()=>{null===D||Object.values(EditorPanelView).some(e=>e===D)&&(x||D!==EditorPanelView.Admin)||T(null)},[x,D,T]),e(f,{children:e(b,{maxSnack:5,children:e(j,{children:e(P,{tagName:k,children:e(Y,{initialWsUrl:n,localMode:r,children:e(et,{children:e(S,{children:e(A,{children:e(G,{domainSpec:s,initialRawProjectFiles:a,children:i(U,{mockTemplates:d,autoApplyTemplate:m,initialTemplateKey:h,environmentKey:u,children:[!r&&i(t,{children:[e(X,{}),e(Z,{}),e(W,{}),e(N,{}),e(M,{})]}),e(ea,{children:v?e(eh,{panelView:D,setPanelView:T,width:V,setWidth:E,selectedTemplate:C,setSelectedTemplate:L,isResizing:R,setIsResizing:I,onExit:l,enableAdmin:x}):e(eu,{})})]})})})})})})})})})})});export const Editor=h(t=>{try{if(window.frameElement?.hasAttribute(es))return e("div",{role:"alert","data-testid":"variant-page-unavailable",style:{padding:24,fontFamily:"sans-serif"},children:"This preview page is unavailable. Ask the agent to recreate it or close the comparison."})}catch{}return i(a,{theme:ep,children:[e(r,{}),e(eg,{...t})]})});
@@ -1,6 +1,5 @@
1
1
  import type { Application, ExpressionImplementations, InvariantImplementations } from '#package/application-spec';
2
2
  import { type AnyActionImplementations, type DomainComponentOptic, type DomainEntity, type ElementRegistration, type HandlerRegistration, type ImportedTransformer, type ProjectModule, type SystemComponentTypeConstraint } from '#package/domain';
3
- type AnyImportedTransformer = ImportedTransformer<any, any, any, any, any, any, any>;
4
3
  type RuntimeData = Record<string, unknown>;
5
4
  type RuntimeEntity = DomainEntity<string>;
6
5
  export type ReloadedComponentOptic = DomainComponentOptic<RuntimeEntity, RuntimeEntity, RuntimeData, RuntimeData, RuntimeData, RuntimeEntity, SystemComponentTypeConstraint>;
@@ -32,7 +31,7 @@ export interface ImplementationFiles {
32
31
  readonly actionImplementations: AnyActionImplementations | null;
33
32
  readonly adminImplementations?: ExpressionImplementations;
34
33
  readonly invariantImplementations: InvariantImplementations;
35
- readonly importedTransformers: readonly AnyImportedTransformer[];
34
+ readonly importedTransformers: readonly ImportedTransformer[];
36
35
  readonly customComponentOptics: readonly ReloadedComponentOptic[] | null;
37
36
  readonly handlers: HandlerRegistryUpdate | null;
38
37
  readonly elements: ElementRegistryUpdate | null;
@@ -1,7 +1,7 @@
1
- import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import{Box as a,Checkbox as n,Dialog as i,DialogActions as r,DialogContent as l,DialogTitle as s,Divider as c,FormControlLabel as d,Stack as p,TextField as f,Tooltip as u,Typography as m}from"@mui/material";import{jwtDecode as h}from"jwt-decode";import{useSnackbar as g}from"notistack";import{useEffect as b,useState as v}from"react";import{stringify as x}from"yaml";import{validateMockTemplateContent as k}from"#package/application-spec";import{useAccessServiceOverride as y,useBackendDataOverride as C,useConfiguratorModelVersion as D,useConfiguratorRawAccessInfo as w,useConfiguratorRawBackendData as S,useConfiguratorRawFrontendData as j,useConfiguratorRawPublishedData as M,useFrontendDataOverride as W,usePublishedDataOverride as z,useSessionContextOverride as E,useSessionService as I}from"#package/react-sdk";import{CollapsibleSection as A}from"../common/CollapsibleSection.js";import{EditorButton as F}from"../common/EditorButton.js";import{useOptionalDomain as P}from"../hooks/use-optional-runtime.js";import{useEditorConnection as T}from"../services/EditorConnectionContext.js";import{trpc as $}from"../services/trpc.js";import{useEditorMockContext as B}from"./EditorMockContext.js";import{ValidationErrorModal as O}from"./ValidationErrorModal.js";let R=({title:o,value:n,setValue:i,placeholder:r})=>t(a,{component:"div",sx:{display:"flex",alignItems:"center",gap:1},children:[e(m,{variant:"subtitle2",sx:{fontSize:"11px",fontWeight:600,color:"#495057",minWidth:"80px"},children:o}),e(f,{value:n,onChange:e=>{i(e.target.value)},fullWidth:!0,size:"small",placeholder:r,InputProps:{sx:{fontSize:"12px",fontFamily:"monospace",backgroundColor:"#fff",height:"32px","& input":{padding:"6px 12px"}}},sx:{"& .MuiOutlinedInput-root":{"&:hover fieldset":{borderColor:"#90caf9"},"&.Mui-focused fieldset":{borderColor:"#1976d2"}}}})]}),V={fontFamily:"monospace",fontSize:"12px",whiteSpace:"pre-wrap",wordBreak:"break-word",margin:0,padding:1,backgroundColor:"#f8f9fa",border:"1px solid #e9ecef",borderRadius:"4px"},N={fontSize:"10px",py:.25,px:1,fontWeight:600,minWidth:"auto"},U=({onClick:t})=>e(F,{variant:"secondary",sx:N,onClick:e=>{e.stopPropagation(),t()},children:"Copy"}),q=({label:t,checked:o,onChange:a})=>e(d,{control:e(n,{size:"small",checked:o,onChange:e=>{a(e.target.checked)},sx:{p:.5}}),label:t,sx:{ml:-.5,mr:0,"& .MuiFormControlLabel-label":{fontSize:"12px",color:"#212529"}}}),H=({title:t,original:o,edited:n,onChange:i,onCopy:r})=>{let[l,s]=v(!1),c=n??o;return e(A,{title:t,subtitle:void 0!==n?"edited":void 0,defaultExpanded:!0,actions:[e(F,{variant:"secondary",sx:N,onClick:e=>{e.stopPropagation(),s(!l)},children:l?"Done":"Edit"},"edit"),e(F,{variant:"secondary",sx:N,disabled:void 0===n,onClick:e=>{e.stopPropagation(),i(void 0)},children:"Reset"},"reset"),e(U,{onClick:()=>r(c)},"copy")],children:l?e(f,{value:c,onChange:e=>{i(e.target.value)},fullWidth:!0,multiline:!0,minRows:4,InputProps:{sx:{fontSize:"12px",fontFamily:"monospace",backgroundColor:"#fff",padding:1}},inputProps:{spellCheck:!1},sx:{"& .MuiOutlinedInput-root":{"&:hover fieldset":{borderColor:"#90caf9"},"&.Mui-focused fieldset":{borderColor:"#1976d2"}}}}):e(a,{component:"pre",sx:V,children:c})})},K=({yaml:o,open:n,onClose:d})=>{let{enqueueSnackbar:f}=g(),{effectiveMockTemplates:u}=B(),{localMode:h,connectionStatus:x}=T(),y=$.saveMock.useMutation(),[C,D]=v(""),[w,S]=v(""),[j,M]=v(""),[W,z]=v(!0),[E,I]=v(!0),[A,P]=v(!0),[V,N]=v(""!==o.frontendData),[U,K]=v(""!==o.backendData),[L,Y]=v({}),[G,J]=v(null);b(()=>{Y({})},[o]);let Q=e=>t=>{Y(o=>{let a={...o};return void 0===t?delete a[e]:a[e]=t,a})},X={sessionAccess:L.sessionAccess??o.session+"\n"+o.access,configuration:L.configuration??o.configuration,publishedData:L.publishedData??o.publishedData,frontendData:L.frontendData??o.frontendData,backendData:L.backendData??o.backendData},Z=async e=>{try{await navigator.clipboard.writeText(e),f("Copied to clipboard!",{variant:"success"})}catch(e){f("Failed to copy to clipboard",{variant:"error"})}},_=()=>{let e,t=(e=`key: '${C}'
1
+ import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import{Box as a,Checkbox as n,Dialog as i,DialogActions as r,DialogContent as l,DialogTitle as s,Divider as c,FormControlLabel as d,Stack as p,TextField as f,Tooltip as u,Typography as m}from"@mui/material";import{useSnackbar as h}from"notistack";import{useEffect as g,useMemo as b,useState as v}from"react";import{stringify as x}from"yaml";import{validateMockTemplateContent as k}from"#package/application-spec";import{useAccessServiceOverride as C,useBackendDataOverride as y,useConfiguratorModelVersion as D,useConfiguratorRawAccessInfo as w,useConfiguratorRawBackendData as S,useConfiguratorRawFrontendData as j,useConfiguratorRawPublishedData as M,useFrontendDataOverride as W,usePublishedDataOverride as z,useRawSession as E,useSessionContextOverride as I}from"#package/react-sdk";import{CollapsibleSection as A}from"../common/CollapsibleSection.js";import{EditorButton as F}from"../common/EditorButton.js";import{useOptionalDomain as P}from"../hooks/use-optional-runtime.js";import{useEditorConnection as $}from"../services/EditorConnectionContext.js";import{trpc as B}from"../services/trpc.js";import{useEditorMockContext as O}from"./EditorMockContext.js";import{ValidationErrorModal as T}from"./ValidationErrorModal.js";let R=({title:o,value:n,setValue:i,placeholder:r})=>t(a,{component:"div",sx:{display:"flex",alignItems:"center",gap:1},children:[e(m,{variant:"subtitle2",sx:{fontSize:"11px",fontWeight:600,color:"#495057",minWidth:"80px"},children:o}),e(f,{value:n,onChange:e=>{i(e.target.value)},fullWidth:!0,size:"small",placeholder:r,InputProps:{sx:{fontSize:"12px",fontFamily:"monospace",backgroundColor:"#fff",height:"32px","& input":{padding:"6px 12px"}}},sx:{"& .MuiOutlinedInput-root":{"&:hover fieldset":{borderColor:"#90caf9"},"&.Mui-focused fieldset":{borderColor:"#1976d2"}}}})]}),V={fontFamily:"monospace",fontSize:"12px",whiteSpace:"pre-wrap",wordBreak:"break-word",margin:0,padding:1,backgroundColor:"#f8f9fa",border:"1px solid #e9ecef",borderRadius:"4px"},N={fontSize:"10px",py:.25,px:1,fontWeight:600,minWidth:"auto"},U=({onClick:t})=>e(F,{variant:"secondary",sx:N,onClick:e=>{e.stopPropagation(),t()},children:"Copy"}),H=({label:t,checked:o,onChange:a})=>e(d,{control:e(n,{size:"small",checked:o,onChange:e=>{a(e.target.checked)},sx:{p:.5}}),label:t,sx:{ml:-.5,mr:0,"& .MuiFormControlLabel-label":{fontSize:"12px",color:"#212529"}}}),K=({title:t,original:o,edited:n,onChange:i,onCopy:r})=>{let[l,s]=v(!1),c=n??o;return e(A,{title:t,subtitle:void 0!==n?"edited":void 0,defaultExpanded:!0,actions:[e(F,{variant:"secondary",sx:N,onClick:e=>{e.stopPropagation(),s(!l)},children:l?"Done":"Edit"},"edit"),e(F,{variant:"secondary",sx:N,disabled:void 0===n,onClick:e=>{e.stopPropagation(),i(void 0)},children:"Reset"},"reset"),e(U,{onClick:()=>r(c)},"copy")],children:l?e(f,{value:c,onChange:e=>{i(e.target.value)},fullWidth:!0,multiline:!0,minRows:4,InputProps:{sx:{fontSize:"12px",fontFamily:"monospace",backgroundColor:"#fff",padding:1}},inputProps:{spellCheck:!1},sx:{"& .MuiOutlinedInput-root":{"&:hover fieldset":{borderColor:"#90caf9"},"&.Mui-focused fieldset":{borderColor:"#1976d2"}}}}):e(a,{component:"pre",sx:V,children:c})})},L=({yaml:o,open:n,onClose:d})=>{let{enqueueSnackbar:f}=h(),{effectiveMockTemplates:u}=O(),{localMode:b,connectionStatus:x}=$(),C=B.saveMock.useMutation(),[y,D]=v(""),[w,S]=v(""),[j,M]=v(""),[W,z]=v(!0),[E,I]=v(!0),[A,P]=v(!0),[V,N]=v(""!==o.frontendData),[U,L]=v(""!==o.backendData),[Y,q]=v({}),[G,J]=v(null);g(()=>{q({})},[o]);let Q=e=>t=>{q(o=>{let a={...o};return void 0===t?delete a[e]:a[e]=t,a})},X={sessionAccess:Y.sessionAccess??o.session+"\n"+o.access,configuration:Y.configuration??o.configuration,publishedData:Y.publishedData??o.publishedData,frontendData:Y.frontendData??o.frontendData,backendData:Y.backendData??o.backendData},Z=async e=>{try{await navigator.clipboard.writeText(e),f("Copied to clipboard!",{variant:"success"})}catch(e){f("Failed to copy to clipboard",{variant:"error"})}},_=()=>{let e,t=(e=`key: '${y}'
2
2
  title: '${w}'
3
3
  description: '${j}'
4
4
  order: ${o.order.toString()}
5
5
  `,W&&(e+="\n"+X.sessionAccess+"\n"),E&&(e+="\n"+X.configuration),A&&(e+="\n"+X.publishedData),V&&(e+="\n"+X.frontendData),U&&(e+="\n"+X.backendData),e),a=k(t);return a.valid?t:(J(`The assembled mock template is not valid:
6
6
 
7
- ${a.errors.join("\n")}`),null)},ee=async()=>{let e=_();null!==e&&await Z(e)},et=async()=>{if(""===C)return void f("Enter a key for the mock file",{variant:"error"});let e=C+".yaml";if(u.find(e=>e.key===C))return void f(`A mock template '${e}' already exists`,{variant:"error"});if(h)return void f("Cannot save files in local mode",{variant:"error"});if("connected"!==x)return void f("Not connected to server. Cannot save file.",{variant:"error"});let t=_();if(null!==t)try{await y.mutateAsync({fileName:e,content:t}),f(`Mock file ${e} saved successfully!`,{variant:"success"})}catch(e){f(e instanceof Error?e.message:"Failed to save mock file",{variant:"error"})}};return t(i,{open:n,onClose:d,maxWidth:"md",fullWidth:!0,children:[e(s,{sx:{fontSize:"14px",fontWeight:600,py:1.5,px:2,borderBottom:"1px solid #e9ecef"},children:"Created Mock Data"}),e(l,{sx:{p:2},children:t(a,{component:"div",sx:{display:"flex",flexDirection:"column",gap:2,pt:1},children:[t(a,{component:"div",sx:{display:"flex",flexDirection:"column",gap:1},children:[e(R,{title:"Key",value:C,setValue:D,placeholder:"e.g. 'regularUser', also in the filename"}),e(R,{title:"Title",value:w,setValue:S,placeholder:"e.g. 'Regular User'"}),e(R,{title:"Description",value:j,setValue:M,placeholder:"Human readable description of the mock data"}),t(a,{component:"div",sx:{display:"flex",alignItems:"center",gap:1,flexWrap:"wrap"},children:[e(m,{variant:"subtitle2",sx:{fontSize:"11px",fontWeight:600,color:"#495057",minWidth:"80px"},children:"Include"}),e(q,{label:"Session & Access",checked:W,onChange:z}),e(q,{label:"Configuration",checked:E,onChange:I}),e(q,{label:"Published data",checked:A,onChange:P}),e(q,{label:"Frontend data",checked:V,onChange:N}),e(q,{label:"Backend data",checked:U,onChange:K})]})]}),e(c,{}),t(p,{direction:"column",spacing:1,children:[e(H,{title:"Session & Access",original:o.session+"\n"+o.access,edited:L.sessionAccess,onChange:Q("sessionAccess"),onCopy:e=>void Z(e)}),e(H,{title:"Configuration (entities)",original:o.configuration,edited:L.configuration,onChange:Q("configuration"),onCopy:e=>void Z(e)}),e(H,{title:"Published Data",original:o.publishedData,edited:L.publishedData,onChange:Q("publishedData"),onCopy:e=>void Z(e)}),""!==o.frontendData&&e(H,{title:"Frontend Data",original:o.frontendData,edited:L.frontendData,onChange:Q("frontendData"),onCopy:e=>void Z(e)}),""!==o.backendData&&e(H,{title:"Backend Data",original:o.backendData,edited:L.backendData,onChange:Q("backendData"),onCopy:e=>void Z(e)})]})]})}),t(r,{sx:{p:2,borderTop:"1px solid #e9ecef"},children:[e(F,{onClick:et,children:"Save to file"}),e(F,{onClick:ee,children:"Copy to clipboard"}),e(F,{onClick:d,children:"Close"})]}),e(O,{open:null!==G,error:G,onClose:()=>{J(null)}})]})};export const CreateMockYaml=()=>{let n=P(),i=D(),{effectiveMockTemplates:r}=B(),l=I(),s=w(),c=z(),d=W(),p=C(),f=M(),g=j(),k=S(),A=c??f,T=d??g,$=p??k,[O,R]=v([]),V=n?i:-1,[U,q]=v(""),[H,L]=v(),[Y,G]=v(),[J,Q]=v();b(()=>{(async()=>{var e;let t;G(((e=h(await l.requestSessionToken())).data&&"object"==typeof e.data&&("object"==typeof e.data.tags&&0===Object.keys(e.data.tags).length&&delete e.data.tags,t=e.data),{role:e.role,data:t}))})()},[l]);let X=E();b(()=>{Q(X??void 0)},[X]);let[Z,_]=v(),[ee,et]=v();b(()=>{_(s?.viewMode?"read-revision":"owner")},[s]);let eo=y();b(()=>{eo?et(eo.accessInfo.viewMode?"read-revision":"owner"):et(void 0)},[eo,eo?.accessInfo.viewMode]),b(()=>{if(!n)return void R([]);let e=n.storeSystem.stateSlices.committed.value.state;R([...e.entities]),q(e.rootEntityType);let t=n.storeSystem.stateSlices.committed.subscribe(e=>{R([...e.state.entities]),q(e.state.rootEntityType)});return()=>{t.unsubscribe()}},[n]);let[ea,en]=v(!1);return t(o,{children:[e(a,{component:"div",sx:{borderBottom:"1px solid #e9ecef",backgroundColor:"#f8f9fa",px:1.5,py:1,display:"flex",flexDirection:"column",gap:1.5,mb:0},children:t(a,{component:"div",sx:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"space-between"},children:[e(m,{variant:"subtitle2",sx:{fontWeight:600,color:"#495057",fontSize:"12px"},children:"Create mock yaml from current state"}),e(u,{title:-1===V?"No configuration is loaded yet — load a configuration to capture its state":"Capture the current session, access, configuration and data as a mock template",placement:"left",arrow:!0,enterDelay:300,children:e("span",{children:e(F,{variant:"secondary",onClick:e=>{let t,o,a,n,i,l;e.stopPropagation(),t=x({session:{role:(J??Y)?.role??"anonymous",data:(J??Y)?.data??{}}}),o=x({access:{access:ee??Z??"owner"}}),a=x({configuration:{entities:O,modelVersion:V,rootEntityType:U}}),n=A&&Object.keys(A).length>=1?x({publishedData:{data:A}}):"",i=T&&Object.keys(T).length>=1?x({frontendData:{data:T}}):"",l=$&&Object.keys($).length>=1?x({backendData:{data:$}}):"",L({order:(r.length??0)+1,configuration:a,session:t,access:o,publishedData:n,frontendData:i,backendData:l}),en(!0)},sx:N,disabled:-1===V,children:"Create Mock"})})})]})}),H&&e(K,{yaml:H,open:ea,onClose:()=>{en(!1)}})]})};
7
+ ${a.errors.join("\n")}`),null)},ee=async()=>{let e=_();null!==e&&await Z(e)},et=async()=>{if(""===y)return void f("Enter a key for the mock file",{variant:"error"});let e=y+".yaml";if(u.find(e=>e.key===y))return void f(`A mock template '${e}' already exists`,{variant:"error"});if(b)return void f("Cannot save files in local mode",{variant:"error"});if("connected"!==x)return void f("Not connected to server. Cannot save file.",{variant:"error"});let t=_();if(null!==t)try{await C.mutateAsync({fileName:e,content:t}),f(`Mock file ${e} saved successfully!`,{variant:"success"})}catch(e){f(e instanceof Error?e.message:"Failed to save mock file",{variant:"error"})}};return t(i,{open:n,onClose:d,maxWidth:"md",fullWidth:!0,children:[e(s,{sx:{fontSize:"14px",fontWeight:600,py:1.5,px:2,borderBottom:"1px solid #e9ecef"},children:"Created Mock Data"}),e(l,{sx:{p:2},children:t(a,{component:"div",sx:{display:"flex",flexDirection:"column",gap:2,pt:1},children:[t(a,{component:"div",sx:{display:"flex",flexDirection:"column",gap:1},children:[e(R,{title:"Key",value:y,setValue:D,placeholder:"e.g. 'regularUser', also in the filename"}),e(R,{title:"Title",value:w,setValue:S,placeholder:"e.g. 'Regular User'"}),e(R,{title:"Description",value:j,setValue:M,placeholder:"Human readable description of the mock data"}),t(a,{component:"div",sx:{display:"flex",alignItems:"center",gap:1,flexWrap:"wrap"},children:[e(m,{variant:"subtitle2",sx:{fontSize:"11px",fontWeight:600,color:"#495057",minWidth:"80px"},children:"Include"}),e(H,{label:"Session & Access",checked:W,onChange:z}),e(H,{label:"Configuration",checked:E,onChange:I}),e(H,{label:"Published data",checked:A,onChange:P}),e(H,{label:"Frontend data",checked:V,onChange:N}),e(H,{label:"Backend data",checked:U,onChange:L})]})]}),e(c,{}),t(p,{direction:"column",spacing:1,children:[e(K,{title:"Session & Access",original:o.session+"\n"+o.access,edited:Y.sessionAccess,onChange:Q("sessionAccess"),onCopy:e=>void Z(e)}),e(K,{title:"Configuration (entities)",original:o.configuration,edited:Y.configuration,onChange:Q("configuration"),onCopy:e=>void Z(e)}),e(K,{title:"Published Data",original:o.publishedData,edited:Y.publishedData,onChange:Q("publishedData"),onCopy:e=>void Z(e)}),""!==o.frontendData&&e(K,{title:"Frontend Data",original:o.frontendData,edited:Y.frontendData,onChange:Q("frontendData"),onCopy:e=>void Z(e)}),""!==o.backendData&&e(K,{title:"Backend Data",original:o.backendData,edited:Y.backendData,onChange:Q("backendData"),onCopy:e=>void Z(e)})]})]})}),t(r,{sx:{p:2,borderTop:"1px solid #e9ecef"},children:[e(F,{onClick:et,children:"Save to file"}),e(F,{onClick:ee,children:"Copy to clipboard"}),e(F,{onClick:d,children:"Close"})]}),e(T,{open:null!==G,error:G,onClose:()=>{J(null)}})]})};export const CreateMockYaml=()=>{let n=P(),i=D(),{effectiveMockTemplates:r}=O(),{sessionPayload:l}=E(),s=w(),c=z(),d=W(),p=y(),f=M(),h=j(),k=S(),A=c??f,$=d??h,B=p??k,[T,R]=v([]),V=n?i:-1,[U,H]=v(""),[K,Y]=v(),q=b(()=>null===l?void 0:(e=>{let{tags:t,...o}=e.data,a="object"==typeof t&&null!==t&&0===Object.keys(t).length;return{role:e.role,data:a?o:e.data}})(l),[l]),[G,J]=v(),Q=I();g(()=>{J(Q??void 0)},[Q]);let[X,Z]=v(),[_,ee]=v();g(()=>{Z(s?.viewMode?"read-revision":"owner")},[s]);let et=C();g(()=>{et?ee(et.accessInfo.viewMode?"read-revision":"owner"):ee(void 0)},[et,et?.accessInfo.viewMode]),g(()=>{if(!n)return void R([]);let e=n.storeSystem.stateSlices.committed.value.state;R([...e.entities]),H(e.rootEntityType);let t=n.storeSystem.stateSlices.committed.subscribe(e=>{R([...e.state.entities]),H(e.state.rootEntityType)});return()=>{t.unsubscribe()}},[n]);let[eo,ea]=v(!1);return t(o,{children:[e(a,{component:"div",sx:{borderBottom:"1px solid #e9ecef",backgroundColor:"#f8f9fa",px:1.5,py:1,display:"flex",flexDirection:"column",gap:1.5,mb:0},children:t(a,{component:"div",sx:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"space-between"},children:[e(m,{variant:"subtitle2",sx:{fontWeight:600,color:"#495057",fontSize:"12px"},children:"Create mock yaml from current state"}),e(u,{title:-1===V?"No configuration is loaded yet — load a configuration to capture its state":"Capture the current session, access, configuration and data as a mock template",placement:"left",arrow:!0,enterDelay:300,children:e("span",{children:e(F,{variant:"secondary",onClick:e=>{let t,o,a,n,i,l;e.stopPropagation(),t=x({session:{role:(G??q)?.role??"anonymous",data:(G??q)?.data??{}}}),o=x({access:{access:_??X??"owner"}}),a=x({configuration:{entities:T,modelVersion:V,rootEntityType:U}}),n=A&&Object.keys(A).length>=1?x({publishedData:{data:A}}):"",i=$&&Object.keys($).length>=1?x({frontendData:{data:$}}):"",l=B&&Object.keys(B).length>=1?x({backendData:{data:B}}):"",Y({order:(r.length??0)+1,configuration:a,session:t,access:o,publishedData:n,frontendData:i,backendData:l}),ea(!0)},sx:N,disabled:-1===V,children:"Create Mock"})})})]})}),K&&e(L,{yaml:K,open:eo,onClose:()=>{ea(!1)}})]})};
@@ -18,6 +18,8 @@ export interface EditorMockProviderProps {
18
18
  readonly children: React.ReactNode;
19
19
  readonly mockTemplates?: MockTemplateDefinition[];
20
20
  readonly autoApplyTemplate?: boolean;
21
+ /** Applied on mount in place of the stored template, without being stored. */
22
+ readonly initialTemplateKey?: string;
21
23
  readonly environmentKey?: string;
22
24
  }
23
25
  export declare const EditorMockProvider: (props: EditorMockProviderProps) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{createContext as t,useCallback as r,useContext as o,useEffect as n,useMemo as a,useRef as s,useState as c}from"react";import{createUnsignedJWT as i,memoryStorage as l}from"#package/client";import{createInitialDomainState as d}from"#package/domain";import{useApplicationRuntime as u,useIntegrationService as m,useModal as p,useMountGuard as f}from"#package/react-sdk";import{useEditorConnection as w}from"../services/EditorConnectionContext.js";import{trpc as g}from"../services/trpc.js";import{ConfirmMemoryModeModal as y}from"./ConfirmMemoryModeModal.js";import{ValidationErrorModal as b}from"./ValidationErrorModal.js";let h=e=>{let t=e??("u">typeof window?window.location.pathname:"default");return`phx-editor-template:${t}`},k=e=>`template-configuration-${e}`,v=t(null);export const EditorMockProvider=t=>{let{children:o,mockTemplates:E,autoApplyTemplate:I,environmentKey:C}=t,V=s(!1),P=s(0),S=s(null),[M,x]=c(null),[D,A]=c([]),[R,T]=c(null),[j,$]=c({session:null,access:null,embeddedView:null}),B=f(),F=u(),L=F.actions.overrides,O=m(),{showModal:_}=p(),{localMode:q}=w(),z=a(()=>[...E&&E.length>0?E:D].sort((e,t)=>(e.order??1/0)-(t.order??1/0)),[E,D]),G=r(()=>F.selectors.spec.getConfiguratorFactory(),[F]),H=r(e=>(G().parseSessionData(e.data),{role:e.role,data:e.data}),[G]),J=r(e=>G().parsePublishedData(e.data),[G]),K=r(e=>G().parseFrontendData(e.data),[G]),N=r(e=>{let t=G();if(!t.hasBackendData)throw Error("Backend data mock could not be applied, because backend data is not supported by the current domain configuration. Please use a domain that supports backend data.");return t.parseBackendData(e.data)},[G]),Q=r(e=>{if("recipe"===e.type){if(!e.collection)throw Error("Embedded view mock could not be applied, because a collection is required for recipe type embedded views. Please specify a collection for this mock.");return{type:"recipe",recipeId:`Recipe_${Math.floor(1e6*Math.random())}`,collection:e.collection,...e.rootRecipeId?{rootRecipeId:e.rootRecipeId}:{}}}return{type:"preset",presetId:`Preset_${Math.floor(1e6*Math.random())}`}},[]),U=r((e,t)=>{if(l.has(e))return null;let r=F.selectors.loadedData.getConfiguratorRawLoadedData();if(null===r)return null;let o=F.selectors.domainContext.configurator,n=o.getInitializationState().isCurrent?o.getStoreSystem().stateSlices.committed.value.state.entities:r.initialEntities;return{configurationId:e,revisionId:t??r.initialRevisionId,modelVersion:r.modelVersion,rootEntityType:r.rootEntityType,data:n}},[F]),W=r((e,t)=>{let r=U(e,t);null!==r&&l.set(e,[r])},[U]),X=r(async()=>!!("server"!==F.selectors.environment.getBasePersistenceConfig().type||F.selectors.overrides.getActive())||new Promise(e=>{_(y,{onConfirm:()=>e(!0),onCancel:()=>e(!1)})}),[F,_]),Y=s(null),Z=r((e,t)=>{let r=e instanceof Error?e.message:t;Y.current?.destroy(),Y.current=_(b,{error:r})},[_]),ee=r(async e=>{try{if(!await X())return;let t=H(e),r=F.selectors.access.getConfiguratorRawAccessService();null!==r&&W(r.configurationId,r.accessInfo.revisionId),L.setSessionContext(t),$(t=>({...t,session:e}))}catch(e){Z(e,"Session mock could not be applied, because an unknown error has occurred. Please check the mock data and try again.")}},[X,H,F,W,L,Z]),et=r(async e=>{try{if(!await X())return;let t=F.selectors.access.getConfiguratorRawAccessInfo();null!==t&&W(t.configurationId,t.revisionId),L.setAccessLevel(e.access),$(t=>({...t,access:e}))}catch(e){Z(e,"Access mock could not be applied, because an unknown error has occurred. Please check the mock data and try again.")}},[X,F,W,L,Z]),er=r(async e=>{try{if(!await X())return;let t=Q(e),r=F.selectors.access.getConfiguratorRawAccessInfo();null!==r&&W(r.configurationId,r.revisionId),O.enterEmbeddedView(t),L.setEmbeddedViewActive(!0),$(t=>({...t,embeddedView:e}))}catch(e){Z(e,"Embedded view mock could not be applied, because an unknown error has occurred. Please check the mock data and try again.")}},[X,Q,F,W,O,L,Z]),eo=r(async()=>{try{let e=R?H(R.session):null;L.setSessionContext(e),$(e=>({...e,session:null}))}catch(e){Z(e,"Session mock could not be reset, because an unknown error has occurred. Please check the active template and try again.")}},[L,R,H,Z]),en=r(async()=>{L.setAccessLevel(R?.access.access??null),$(e=>({...e,access:null}))},[L,R]),ea=r(async()=>{try{let e=R?.embeddedView?Q(R.embeddedView):null;null!==e?O.enterEmbeddedView(e):O.exitEmbeddedView(),L.setEmbeddedViewActive(null!==e),$(e=>({...e,embeddedView:null}))}catch(e){Z(e,"Embedded view mock could not be reset, because an unknown error has occurred. Please check the active template and try again.")}},[O,L,R,Q,Z]),es=r(e=>{null!==e&&l.delete(k(e))},[]),ec=r(async()=>{P.current+=1,es(S.current),S.current=null,x(null),T(null),$({session:null,access:null,embeddedView:null}),O.exitEmbeddedView(),L.clearMockOverrides();try{localStorage.removeItem(h(C))}catch{console.warn("[Editor] Failed to clear template key from localStorage")}},[O,L,C,es]),ei=r(async(e,t)=>{let r=t?.generation??++P.current;try{let t=e.embeddedView?Q(e.embeddedView):null,n=H(e.session),a=e.publishedData?J(e.publishedData):null,s=e.frontendData?K(e.frontendData):null,c=e.backendData?N(e.backendData):null,u=null,m=null,p=F.selectors.access.getConfiguratorRawAccessInfo(),f=null===p?null:U(p.configurationId,p.revisionId);if(e.configuration){let t=k(e.key),r="latest",o=e.configuration,n=G(),a=n.validateAndMigrateState(o.entities,o.modelVersion);d(a,o.rootEntityType),u={configurationId:t,revisionId:r,modelVersion:n.modelVersion,rootEntityType:o.rootEntityType,data:a};let s=Math.floor(Date.now()/1e3),c=i({configurationId:t,revisionId:r,access:e.access.access,iat:s,exp:s+3600});m={configurationId:t,accessInfo:{raw:c,viewMode:"read-revision"===e.access.access,revisionId:r,configurationId:t}}}else null!==p&&(u=U(p.configurationId,p.revisionId));if(r!==P.current)return;null!==f&&l.set(f.configurationId,[f]),null!==u&&l.set(u.configurationId,[u]),null!==t?O.enterEmbeddedView(t):O.exitEmbeddedView(),L.updateOverrides({accessService:m,accessLevel:null===m?e.access.access:null,sessionContext:n,publishedData:a,frontendData:s,backendData:c,webComponentProperties:e.webComponentProperties??null,embeddedViewActive:null!==t,persistenceConfig:F.selectors.overrides.getPersistenceConfig()}),S.current!==e.key&&es(S.current),S.current=e.key,x(e.key),T(e),$({session:null,access:null,embeddedView:null});var o=e.key;try{localStorage.setItem(h(C),o)}catch{console.warn("[Editor] Failed to store template key to localStorage")}}catch(o){let r="Template could not be applied, because an unknown error has occurred. Please check the template configuration and try again.";if(t?.errorPresentation==="console")return void console.warn(`[Editor] Template "${e.title}" could not be applied:`,o instanceof Error?o.message:r);Z(o,r)}},[H,G,J,K,N,Q,O,L,Z,C,F,es,U]),el=r(async e=>{let t=++P.current;await X()&&t===P.current&&await ei(e,{generation:t})},[X,ei]);g.onMockTemplateChange.useSubscription(void 0,{enabled:!q,onData:e=>{B()&&A(e.templates)}}),n(()=>{if(z&&z.length>0&&!V.current){V.current=!0;let e=(e=>{try{return localStorage.getItem(h(e))}catch{return null}})(C);if(e){let t=z.find(t=>t.key===e);if(t)return void ei(t,{errorPresentation:"console"});console.warn(`[Editor] Stored template "${e}" not found in available templates`)}if(I){let e=z[0];e&&ei(e,{errorPresentation:"console"})}}},[I,z,ei,C]);let ed=a(()=>({activeTemplateKey:M,activeCustomizations:j,effectiveMockTemplates:z,applySessionMock:ee,applyAccessMock:et,resetSessionOverride:eo,resetAccessOverride:en,applyEmbeddedViewMock:er,resetEmbeddedViewOverride:ea,applyTemplate:el,resetAllMocks:ec}),[M,j,z,ee,et,eo,en,er,ea,el,ec]);return e(v.Provider,{value:ed,children:o})};export const useEditorMockContext=()=>{let e=o(v);if(null===e)throw Error("useEditorMockContext must be used within EditorMockProvider");return e};
1
+ import{jsx as e}from"react/jsx-runtime";import{createContext as t,useCallback as r,useContext as o,useEffect as n,useMemo as a,useRef as s,useState as i}from"react";import{AccessLevel as c}from"@salsita-ai/contracts/api";import{createUnsignedJWT as l,memoryStorage as d}from"#package/client";import{createInitialDomainState as u}from"#package/domain";import{useApplicationRuntime as m,useIntegrationService as p,useModal as f,useMountGuard as w}from"#package/react-sdk";import{useEditorConnection as y}from"../services/EditorConnectionContext.js";import{trpc as g}from"../services/trpc.js";import{ConfirmMemoryModeModal as b}from"./ConfirmMemoryModeModal.js";import{ValidationErrorModal as h}from"./ValidationErrorModal.js";let k=e=>{let t=e??("u">typeof window?window.location.pathname:"default");return`phx-editor-template:${t}`},v=e=>`template-configuration-${e}`,E=t(null);export const EditorMockProvider=t=>{let{children:o,mockTemplates:I,autoApplyTemplate:C,initialTemplateKey:V,environmentKey:P}=t,S=s(!1),M=s(0),x=s(null),[D,R]=i(null),[A,T]=i([]),[$,j]=i(null),[B,F]=i({session:null,access:null,embeddedView:null}),L=w(),O=m(),_=O.actions.overrides,q=p(),{showModal:z}=f(),{localMode:G}=y(),H=a(()=>[...I&&I.length>0?I:A].sort((e,t)=>(e.order??1/0)-(t.order??1/0)),[I,A]),J=r(()=>O.selectors.spec.getConfiguratorFactory(),[O]),K=r(e=>(J().parseSessionData(e.data),{role:e.role,data:e.data}),[J]),N=r(e=>J().parsePublishedData(e.data),[J]),Q=r(e=>J().parseFrontendData(e.data),[J]),U=r(e=>{let t=J();if(!t.hasBackendData)throw Error("Backend data mock could not be applied, because backend data is not supported by the current domain configuration. Please use a domain that supports backend data.");return t.parseBackendData(e.data)},[J]),W=r(e=>{if("recipe"===e.type){if(!e.collection)throw Error("Embedded view mock could not be applied, because a collection is required for recipe type embedded views. Please specify a collection for this mock.");return{type:"recipe",recipeId:`Recipe_${Math.floor(1e6*Math.random())}`,collection:e.collection,...e.rootRecipeId?{rootRecipeId:e.rootRecipeId}:{}}}return{type:"preset",presetId:`Preset_${Math.floor(1e6*Math.random())}`}},[]),X=r((e,t)=>{if(d.has(e))return null;let r=O.selectors.loadedData.getConfiguratorRawLoadedData();if(null===r)return null;let o=O.selectors.domainContext.configurator,n=o.getInitializationState().isCurrent?o.getStoreSystem().stateSlices.committed.value.state.entities:r.initialEntities;return{configurationId:e,revisionId:t??r.initialRevisionId,modelVersion:r.modelVersion,rootEntityType:r.rootEntityType,data:n}},[O]),Y=r((e,t)=>{let r=X(e,t);null!==r&&d.set(e,[r])},[X]),Z=r(async()=>!!("server"!==O.selectors.environment.getBasePersistenceConfig().type||O.selectors.overrides.getActive())||new Promise(e=>{z(b,{onConfirm:()=>e(!0),onCancel:()=>e(!1)})}),[O,z]),ee=s(null),et=r((e,t)=>{let r=e instanceof Error?e.message:t;ee.current?.destroy(),ee.current=z(h,{error:r})},[z]),er=r(async e=>{try{if(!await Z())return;let t=K(e),r=O.selectors.access.getConfiguratorRawAccessService();null!==r&&Y(r.configurationId,r.accessInfo.revisionId),_.setSessionContext(t),F(t=>({...t,session:e}))}catch(e){et(e,"Session mock could not be applied, because an unknown error has occurred. Please check the mock data and try again.")}},[Z,K,O,Y,_,et]),eo=r(async e=>{try{if(!await Z())return;let t=O.selectors.access.getConfiguratorRawAccessInfo();null!==t&&Y(t.configurationId,t.revisionId),_.setAccessLevel(e.access),F(t=>({...t,access:e}))}catch(e){et(e,"Access mock could not be applied, because an unknown error has occurred. Please check the mock data and try again.")}},[Z,O,Y,_,et]),en=r(async e=>{try{if(!await Z())return;let t=W(e),r=O.selectors.access.getConfiguratorRawAccessInfo();null!==r&&Y(r.configurationId,r.revisionId),q.enterEmbeddedView(t),_.setEmbeddedViewActive(!0),F(t=>({...t,embeddedView:e}))}catch(e){et(e,"Embedded view mock could not be applied, because an unknown error has occurred. Please check the mock data and try again.")}},[Z,W,O,Y,q,_,et]),ea=r(async()=>{try{let e=$?K($.session):null;_.setSessionContext(e),F(e=>({...e,session:null}))}catch(e){et(e,"Session mock could not be reset, because an unknown error has occurred. Please check the active template and try again.")}},[_,$,K,et]),es=r(async()=>{_.setAccessLevel($?.access.access??null),F(e=>({...e,access:null}))},[_,$]),ei=r(async()=>{try{let e=$?.embeddedView?W($.embeddedView):null;null!==e?q.enterEmbeddedView(e):q.exitEmbeddedView(),_.setEmbeddedViewActive(null!==e),F(e=>({...e,embeddedView:null}))}catch(e){et(e,"Embedded view mock could not be reset, because an unknown error has occurred. Please check the active template and try again.")}},[q,_,$,W,et]),ec=r(e=>{null!==e&&d.delete(v(e))},[]),el=r(async()=>{M.current+=1,ec(x.current),x.current=null,R(null),j(null),F({session:null,access:null,embeddedView:null}),q.exitEmbeddedView(),_.clearMockOverrides();try{localStorage.removeItem(k(P))}catch{console.warn("[Editor] Failed to clear template key from localStorage")}},[q,_,P,ec]),ed=r(async(e,t)=>{let r=t.generation??++M.current;try{let o=e.embeddedView?W(e.embeddedView):null,n=K(e.session),a=e.publishedData?N(e.publishedData):null,s=e.frontendData?Q(e.frontendData):null,i=e.backendData?U(e.backendData):null,m=null,p=null,f=O.selectors.access.getConfiguratorRawAccessInfo(),w=null===f?null:X(f.configurationId,f.revisionId);if(e.configuration){let t=v(e.key),r="latest",o=e.configuration,n=J(),a=n.validateAndMigrateState(o.entities,o.modelVersion);u(a,o.rootEntityType),m={configurationId:t,revisionId:r,modelVersion:n.modelVersion,rootEntityType:o.rootEntityType,data:a};let s=Math.floor(Date.now()/1e3),i=l({configurationId:t,revisionId:r,access:e.access.access,iat:s,exp:s+3600});p={configurationId:t,accessInfo:{raw:i,access:"owner"===e.access.access?c.Owner:"read-revision"===e.access.access?c.ReadRevision:c.Read,viewMode:"read-revision"===e.access.access,revisionId:r,configurationId:t}}}else null!==f&&(m=X(f.configurationId,f.revisionId));if(r!==M.current)return;null!==w&&d.set(w.configurationId,[w]),null!==m&&d.set(m.configurationId,[m]),null!==o?q.enterEmbeddedView(o):q.exitEmbeddedView(),_.updateOverrides({accessService:p,accessLevel:null===p?e.access.access:null,sessionContext:n,publishedData:a,frontendData:s,backendData:i,webComponentProperties:e.webComponentProperties??null,embeddedViewActive:null!==o,persistenceConfig:O.selectors.overrides.getPersistenceConfig()}),x.current!==e.key&&ec(x.current),x.current=e.key,R(e.key),j(e),F({session:null,access:null,embeddedView:null}),t.persist&&((e,t)=>{try{localStorage.setItem(k(t),e)}catch{console.warn("[Editor] Failed to store template key to localStorage")}})(e.key,P)}catch(o){let r="Template could not be applied, because an unknown error has occurred. Please check the template configuration and try again.";if("console"===t.errorPresentation)return void console.warn(`[Editor] Template "${e.title}" could not be applied:`,o instanceof Error?o.message:r);et(o,r)}},[K,J,N,Q,U,W,q,_,et,P,O,ec,X]),eu=r(async e=>{let t=++M.current;await Z()&&t===M.current&&await ed(e,{generation:t,persist:!0})},[Z,ed]);g.onMockTemplateChange.useSubscription(void 0,{enabled:!G,onData:e=>{L()&&T(e.templates)}}),n(()=>{if(H&&H.length>0&&!S.current){if(S.current=!0,V){let e=H.find(e=>e.key===V);if(e)return void ed(e,{errorPresentation:"console",persist:!1});console.warn(`[Editor] Initial template "${V}" not found in available templates`)}let e=(e=>{try{return localStorage.getItem(k(e))}catch{return null}})(P);if(e){let t=H.find(t=>t.key===e);if(t)return void ed(t,{errorPresentation:"console",persist:!0});console.warn(`[Editor] Stored template "${e}" not found in available templates`)}if(C){let e=H[0];e&&ed(e,{errorPresentation:"console",persist:!0})}}},[C,V,H,ed,P]);let em=a(()=>({activeTemplateKey:D,activeCustomizations:B,effectiveMockTemplates:H,applySessionMock:er,applyAccessMock:eo,resetSessionOverride:ea,resetAccessOverride:es,applyEmbeddedViewMock:en,resetEmbeddedViewOverride:ei,applyTemplate:eu,resetAllMocks:el}),[D,B,H,er,eo,ea,es,en,ei,eu,el]);return e(E.Provider,{value:em,children:o})};export const useEditorMockContext=()=>{let e=o(E);if(null===e)throw Error("useEditorMockContext must be used within EditorMockProvider");return e};