@salsita-ai/sdk 0.50.0-develop.70dc8d05b6 → 0.50.0-develop.780177b115

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 (1009) 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/relation-expression-params.js +1 -0
  27. package/dist/application-spec/core/expressions/sdk-expression-implementation.d.ts +24 -0
  28. package/dist/application-spec/core/expressions/sdk-expression-implementation.js +1 -0
  29. package/dist/application-spec/core/index.d.ts +2 -0
  30. package/dist/application-spec/core/index.js +1 -1
  31. package/dist/application-spec/core/json-value.d.ts +1 -1
  32. package/dist/application-spec/{core → enhanced-json}/eval-to-constant.d.ts +1 -1
  33. package/dist/application-spec/enhanced-json/index.d.ts +4 -0
  34. package/dist/application-spec/enhanced-json/index.js +1 -0
  35. package/dist/application-spec/enhanced-json/is-enhanced-json-array.d.ts +2 -0
  36. package/dist/application-spec/enhanced-json/is-enhanced-json-array.js +1 -0
  37. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.d.ts +18 -0
  38. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.js +1 -0
  39. package/dist/application-spec/enhanced-json/schema-from-value.d.ts +24 -0
  40. package/dist/application-spec/enhanced-json/schema-from-value.js +1 -0
  41. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.d.ts +14 -0
  42. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.js +1 -0
  43. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.d.ts +12 -0
  44. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.js +1 -0
  45. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.d.ts +13 -0
  46. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.js +1 -0
  47. package/dist/application-spec/errors/diagnostic-codes.d.ts +14 -0
  48. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  49. package/dist/application-spec/errors/diagnostic-messages.d.ts +15 -1
  50. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  51. package/dist/application-spec/generate-application/code/common/code-imports.js +1 -1
  52. package/dist/application-spec/generate-application/code/common/env-reader.js +2 -2
  53. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  54. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  55. package/dist/application-spec/generate-application/code/common/single-quoted-string.d.ts +6 -0
  56. package/dist/application-spec/generate-application/code/common/single-quoted-string.js +1 -0
  57. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  58. package/dist/application-spec/generate-application/code/generate-application-code.d.ts +3 -2
  59. package/dist/application-spec/generate-application/code/generate-application-code.js +1 -1
  60. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +15 -14
  61. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  62. package/dist/application-spec/generate-application/code/standalone-app-files.d.ts +2 -2
  63. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  64. package/dist/application-spec/generate-application/code/story-files.js +1 -1
  65. package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -0
  66. package/dist/application-spec/generate-application/code/templates/application-types.js +6 -6
  67. package/dist/application-spec/generate-application/code/templates/common/doc-comment.d.ts +2 -0
  68. package/dist/application-spec/generate-application/code/templates/common/doc-comment.js +1 -0
  69. package/dist/application-spec/generate-application/code/templates/common/format-property-key.d.ts +7 -0
  70. package/dist/application-spec/generate-application/code/templates/common/format-property-key.js +1 -0
  71. package/dist/application-spec/generate-application/code/templates/common/schema-to-type-string.js +3 -3
  72. package/dist/application-spec/generate-application/code/templates/configurator-config.js +6 -4
  73. package/dist/application-spec/generate-application/code/templates/configurator-globals.d.ts +2 -1
  74. package/dist/application-spec/generate-application/code/templates/configurator-globals.js +19 -6
  75. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +35 -0
  76. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +5 -0
  77. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.d.ts +1 -0
  78. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.js +1 -0
  79. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.d.ts +1 -1
  80. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +7 -7
  81. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  82. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +59 -63
  83. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +8 -0
  84. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  85. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-presets.js +1 -1
  86. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +13 -13
  87. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.d.ts +1 -1
  88. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.js +2 -2
  89. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +2 -1
  90. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  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-action-types.js +7 -7
  96. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.d.ts +12 -0
  97. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.js +7 -0
  98. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.d.ts +43 -0
  99. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +33 -0
  100. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +2 -0
  101. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  102. package/dist/application-spec/generate-application/code/templates/globals.js +24 -44
  103. package/dist/application-spec/generate-application/code/templates/index.d.ts +3 -3
  104. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  105. package/dist/application-spec/generate-application/code/templates/lingui-rc.d.ts +5 -0
  106. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +4 -4
  107. package/dist/application-spec/generate-application/code/templates/prettier-config.d.ts +5 -0
  108. package/dist/application-spec/generate-application/code/templates/prettier-config.js +4 -5
  109. package/dist/application-spec/generate-application/code/templates/root-tsconfig.d.ts +6 -0
  110. package/dist/application-spec/generate-application/code/templates/root-tsconfig.js +2 -0
  111. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  112. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +1 -1
  113. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +5 -5
  114. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +3 -3
  115. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  116. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +2 -2
  117. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +26 -7
  118. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -2
  119. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
  120. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
  121. package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
  122. package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
  123. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
  124. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
  125. package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
  126. package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
  127. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
  128. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
  129. package/dist/application-spec/generate-application/code/templates/story/phx-module.d.ts +8 -2
  130. package/dist/application-spec/generate-application/code/templates/story/phx-module.js +15 -3
  131. package/dist/application-spec/generate-application/code/templates/story/wrapper.d.ts +3 -0
  132. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -1
  133. package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
  134. package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
  135. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +6 -1
  136. package/dist/application-spec/generate-application/code/templates/webhook-index.js +10 -1
  137. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -3
  138. package/dist/application-spec/generate-application/index.d.ts +2 -0
  139. package/dist/application-spec/generate-application/index.js +1 -1
  140. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +6 -4
  141. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +1 -1
  142. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +8 -3
  143. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  144. package/dist/application-spec/generate-application/runtime/admin-runtime/states-runtime.d.ts +2 -2
  145. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +19 -5
  146. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  147. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +6 -4
  148. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +1 -1
  149. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +7 -2
  150. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  151. package/dist/application-spec/generate-application/runtime/configurator-runtime/states-runtime.d.ts +2 -2
  152. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +43 -0
  153. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.js +1 -0
  154. package/dist/application-spec/generate-application/runtime/factory-data/index.d.ts +3 -0
  155. package/dist/application-spec/generate-application/runtime/factory-data/index.js +1 -0
  156. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +13 -0
  157. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -0
  158. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +16 -0
  159. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -0
  160. package/dist/application-spec/generate-application/runtime/migrations/index.d.ts +1 -0
  161. package/dist/application-spec/generate-application/runtime/migrations/index.js +1 -0
  162. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +53 -0
  163. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +1 -0
  164. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +2 -2
  165. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +3 -2
  166. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  167. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +2 -1
  168. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +1 -1
  169. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +3 -0
  170. package/dist/application-spec/generate-application/runtime/sections/component-optic.js +1 -1
  171. package/dist/application-spec/generate-application/runtime/sections/data-runtime.d.ts +4 -4
  172. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +7 -4
  173. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  174. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +9 -5
  175. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  176. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +3 -1
  177. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.js +1 -1
  178. package/dist/application-spec/generate-application/runtime/sections/theme-runtime.d.ts +2 -2
  179. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +3 -3
  180. package/dist/application-spec/generate-application/runtime/spec-code/index.d.ts +2 -0
  181. package/dist/application-spec/generate-application/runtime/spec-code/index.js +1 -0
  182. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +18 -0
  183. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.js +1 -0
  184. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.d.ts +17 -0
  185. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.js +1 -0
  186. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.d.ts +9 -0
  187. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.js +1 -0
  188. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.d.ts +8 -0
  189. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.js +1 -0
  190. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +27 -0
  191. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.js +1 -0
  192. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +5 -0
  193. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -0
  194. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +68 -0
  195. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -0
  196. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +40 -0
  197. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.js +1 -0
  198. package/dist/application-spec/index.d.ts +1 -0
  199. package/dist/application-spec/index.js +1 -1
  200. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +34 -0
  201. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  202. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.d.ts +16 -0
  203. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.js +9 -0
  204. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts +9 -0
  205. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
  206. package/dist/application-spec/parse-application-files/raw-spec/parse-yaml-spec-file.js +1 -1
  207. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +33 -3
  208. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  209. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  210. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  211. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  212. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  213. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  214. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.d.ts +3 -0
  215. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js +1 -0
  216. package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +5 -0
  217. package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -0
  218. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.d.ts +6 -0
  219. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.js +1 -0
  220. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.d.ts +8 -0
  221. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.js +1 -0
  222. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts +10 -0
  223. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.js +1 -0
  224. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.d.ts +98 -0
  225. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.js +1 -0
  226. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts +13 -0
  227. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js +1 -0
  228. package/dist/application-spec/parse-application-files/spec/components/bindings/index.d.ts +2 -0
  229. package/dist/application-spec/parse-application-files/spec/components/bindings/index.js +1 -1
  230. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.d.ts +24 -0
  231. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js +1 -0
  232. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  233. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  234. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  235. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  236. package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts +8 -0
  237. package/dist/application-spec/parse-application-files/spec/components/component-state-type.js +1 -0
  238. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts +13 -0
  239. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js +1 -0
  240. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  241. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  242. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.d.ts +14 -0
  243. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.js +1 -0
  244. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +6 -0
  245. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  246. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +7 -4
  247. package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
  248. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +24 -0
  249. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -0
  250. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.d.ts +13 -0
  251. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.js +1 -0
  252. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
  253. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
  254. package/dist/application-spec/parse-application-files/spec/expressions/expression.d.ts +1 -28
  255. package/dist/application-spec/parse-application-files/spec/expressions/expression.js +1 -1
  256. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -3
  257. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  258. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  259. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  260. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  261. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +3 -1
  262. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  263. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +2 -2
  264. package/dist/application-spec/parse-application-files/spec/invariants/invariants.js +1 -1
  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/sections/assistant/assistant-form-elements.d.ts +9 -0
  271. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.js +1 -0
  272. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +4 -1
  273. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  274. package/dist/client/phoenix-api.d.ts +463 -0
  275. package/dist/configurator/ConfiguratorApp.js +1 -1
  276. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.d.ts +2 -0
  277. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.js +5 -0
  278. package/dist/configurator/app-loader-content/app-loader-content-name.d.ts +5 -0
  279. package/dist/configurator/app-loader-content/app-loader-content-name.js +1 -0
  280. package/dist/configurator/app-loader-content/index.d.ts +2 -0
  281. package/dist/configurator/app-loader-content/index.js +1 -0
  282. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  283. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +36 -1
  284. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  285. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +19 -3
  286. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  287. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.d.ts +1 -1
  288. package/dist/configurator/application-runtime/extensions/systems/canvas-system.d.ts +8 -0
  289. package/dist/configurator/application-runtime/extensions/systems/canvas-system.js +1 -1
  290. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  291. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.d.ts +8 -0
  292. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.js +1 -0
  293. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.d.ts +23 -1
  294. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.js +1 -1
  295. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.d.ts +12 -0
  296. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.js +1 -0
  297. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +14 -1
  298. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  299. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +52 -5
  300. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  301. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.d.ts +14 -5
  302. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.js +1 -1
  303. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  304. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  305. package/dist/configurator/common/configurator-interface.d.ts +137 -4
  306. package/dist/configurator/common/configurator-interface.js +1 -1
  307. package/dist/configurator/common/index.d.ts +3 -1
  308. package/dist/configurator/common/index.js +1 -1
  309. package/dist/configurator/common/use-reset-camera.d.ts +6 -0
  310. package/dist/configurator/common/use-reset-camera.js +1 -0
  311. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +12 -0
  312. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -0
  313. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.d.ts +9 -0
  314. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.js +1 -0
  315. package/dist/configurator/configuration-not-found-page/index.d.ts +2 -0
  316. package/dist/configurator/configuration-not-found-page/index.js +1 -0
  317. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +12 -0
  318. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -0
  319. package/dist/configurator/configurator-context/PresetSelectionProvider.js +1 -1
  320. package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
  321. package/dist/configurator/configurator-context/ViewportStateSync.d.ts +2 -2
  322. package/dist/configurator/configurator-context/ViewportStateSync.js +1 -1
  323. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +11 -1
  324. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +1 -1
  325. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.d.ts +6 -0
  326. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.js +1 -0
  327. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.d.ts +12 -0
  328. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.js +1 -0
  329. package/dist/configurator/configurator-error-page/create-configurator-error-page.d.ts +9 -0
  330. package/dist/configurator/configurator-error-page/create-configurator-error-page.js +1 -0
  331. package/dist/configurator/configurator-error-page/index.d.ts +3 -0
  332. package/dist/configurator/configurator-error-page/index.js +1 -0
  333. package/dist/configurator/index.d.ts +3 -0
  334. package/dist/configurator/index.js +1 -1
  335. package/dist/configurator/pages/ConfiguratorErrorPage.d.ts +0 -1
  336. package/dist/configurator/pages/ConfiguratorErrorPage.js +1 -1
  337. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  338. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +3 -2
  339. package/dist/configurator/pages/DefaultNotAuthenticatedPage.d.ts +8 -0
  340. package/dist/configurator/pages/DefaultNotAuthenticatedPage.js +1 -0
  341. package/dist/configurator/pages/DefaultPresetUi.d.ts +7 -0
  342. package/dist/configurator/pages/DefaultPresetUi.js +1 -0
  343. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  344. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  345. package/dist/configurator/pages/PresetCreationErrorPage.d.ts +1 -1
  346. package/dist/configurator/pages/PresetCreationErrorPage.js +1 -1
  347. package/dist/configurator/pages/RootPage.js +1 -1
  348. package/dist/configurator/pages/configurator-layout-name.d.ts +2 -0
  349. package/dist/configurator/pages/configurator-layout-name.js +1 -0
  350. package/dist/configurator/pages/default-configurator-elements.d.ts +13 -0
  351. package/dist/configurator/pages/default-configurator-elements.js +1 -0
  352. package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +10 -0
  353. package/dist/configurator/pages/default-elements/built-in-entity-element.js +1 -0
  354. package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +10 -0
  355. package/dist/configurator/pages/default-elements/built-in-layout-element.js +1 -0
  356. package/dist/configurator/pages/default-elements/domain-control-elements.d.ts +6 -0
  357. package/dist/configurator/pages/default-elements/domain-control-elements.js +1 -0
  358. package/dist/configurator/pages/default-elements/index.d.ts +5 -0
  359. package/dist/configurator/pages/default-elements/index.js +1 -0
  360. package/dist/configurator/pages/default-elements/recipe-panel-elements.d.ts +3 -0
  361. package/dist/configurator/pages/default-elements/recipe-panel-elements.js +1 -0
  362. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.d.ts +3 -0
  363. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.js +1 -0
  364. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.d.ts +3 -0
  365. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.js +1 -0
  366. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.d.ts +3 -0
  367. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.js +1 -0
  368. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.d.ts +3 -0
  369. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.js +1 -0
  370. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.d.ts +3 -0
  371. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.js +1 -0
  372. package/dist/configurator/pages/default-elements/scene-controls/index.d.ts +6 -0
  373. package/dist/configurator/pages/default-elements/scene-controls/index.js +1 -0
  374. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.d.ts +6 -0
  375. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.js +1 -0
  376. package/dist/configurator/pages/default-elements/sidebar-footer-elements.d.ts +7 -0
  377. package/dist/configurator/pages/default-elements/sidebar-footer-elements.js +1 -0
  378. package/dist/configurator/pages/default-elements/toolbar-elements.d.ts +7 -0
  379. package/dist/configurator/pages/default-elements/toolbar-elements.js +1 -0
  380. package/dist/configurator/pages/error-boundaries/GeneralErrorBoundary.js +1 -1
  381. package/dist/configurator/pages/index.d.ts +1 -0
  382. package/dist/configurator/pages/index.js +1 -1
  383. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.d.ts +4 -0
  384. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.js +1 -0
  385. package/dist/configurator/preset-screen-elements/PresetPageActionElement.d.ts +4 -0
  386. package/dist/configurator/preset-screen-elements/PresetPageActionElement.js +1 -0
  387. package/dist/configurator/preset-screen-elements/index.d.ts +2 -0
  388. package/dist/configurator/preset-screen-elements/index.js +1 -0
  389. package/dist/configurator/scene/index.d.ts +1 -0
  390. package/dist/configurator/scene/index.js +1 -1
  391. package/dist/configurator/scene/scene-controls/DeleteEntityFab.js +1 -1
  392. package/dist/configurator/scene/scene-controls/SelectionHotspot.js +1 -1
  393. package/dist/configurator/scene/scene-controls/ToolFab.d.ts +4 -0
  394. package/dist/configurator/scene/scene-controls/ToolFab.js +1 -1
  395. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  396. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  397. package/dist/configurator/scene/scene-controls/use-scene-control-tooltip.d.ts +2 -1
  398. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  399. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  400. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  401. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  402. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  403. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  404. package/dist/configurator/scene/scene-entity/scene-controls/SceneEntityHtmlHotspots.js +1 -1
  405. package/dist/configurator/toolbar-actions/index.d.ts +3 -0
  406. package/dist/configurator/toolbar-actions/index.js +1 -0
  407. package/dist/configurator/toolbar-actions/use-assistant-panel.d.ts +18 -0
  408. package/dist/configurator/toolbar-actions/use-assistant-panel.js +1 -0
  409. package/dist/configurator/toolbar-actions/use-measurements.d.ts +35 -0
  410. package/dist/configurator/toolbar-actions/use-measurements.js +1 -0
  411. package/dist/configurator/toolbar-actions/use-toolbar-actions.d.ts +100 -0
  412. package/dist/configurator/toolbar-actions/use-toolbar-actions.js +1 -0
  413. package/dist/configurator/toolbar-actions/use-toolbar-help.d.ts +7 -0
  414. package/dist/configurator/toolbar-actions/use-toolbar-help.js +1 -0
  415. package/dist/configurator/ui/assistant/AssistantChips.d.ts +10 -3
  416. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  417. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -2
  418. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  419. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  420. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  421. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +8 -0
  422. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -0
  423. package/dist/configurator/ui/assistant/alert/index.d.ts +2 -0
  424. package/dist/configurator/ui/assistant/alert/index.js +1 -0
  425. package/dist/configurator/ui/assistant/alert/remark-alerts.d.ts +10 -0
  426. package/dist/configurator/ui/assistant/alert/remark-alerts.js +1 -0
  427. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  428. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  429. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  430. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  431. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  432. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  433. package/dist/configurator/ui/assistant/entity-link/index.d.ts +2 -0
  434. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  435. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +19 -0
  436. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -0
  437. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +11 -0
  438. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -0
  439. package/dist/configurator/ui/assistant/form/describe-build-errors.d.ts +6 -0
  440. package/dist/configurator/ui/assistant/form/describe-build-errors.js +1 -0
  441. package/dist/configurator/ui/assistant/form/form-model.d.ts +37 -0
  442. package/dist/configurator/ui/assistant/form/form-model.js +1 -0
  443. package/dist/configurator/ui/assistant/form/form-state.d.ts +4 -0
  444. package/dist/configurator/ui/assistant/form/form-state.js +1 -0
  445. package/dist/configurator/ui/assistant/form/index.d.ts +4 -0
  446. package/dist/configurator/ui/assistant/form/index.js +1 -0
  447. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +10 -0
  448. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -0
  449. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +13 -0
  450. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -0
  451. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +3 -0
  452. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.js +1 -0
  453. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.d.ts +31 -0
  454. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.js +1 -0
  455. package/dist/configurator/ui/assistant/form/registry/form-element-definition.d.ts +16 -0
  456. package/dist/configurator/ui/assistant/form/registry/form-element-definition.js +1 -0
  457. package/dist/configurator/ui/assistant/form/registry/form-registry.d.ts +31 -0
  458. package/dist/configurator/ui/assistant/form/registry/form-registry.js +1 -0
  459. package/dist/configurator/ui/assistant/form/registry/index.d.ts +6 -0
  460. package/dist/configurator/ui/assistant/form/registry/index.js +1 -0
  461. package/dist/configurator/ui/assistant/form/registry/use-form-registry.d.ts +8 -0
  462. package/dist/configurator/ui/assistant/form/registry/use-form-registry.js +1 -0
  463. package/dist/configurator/ui/assistant/form-elements/FormCard.d.ts +9 -0
  464. package/dist/configurator/ui/assistant/form-elements/FormCard.js +1 -0
  465. package/dist/configurator/ui/assistant/form-elements/FormConfirm.d.ts +9 -0
  466. package/dist/configurator/ui/assistant/form-elements/FormConfirm.js +1 -0
  467. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +6 -0
  468. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -0
  469. package/dist/configurator/ui/assistant/form-elements/FormNumber.d.ts +9 -0
  470. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -0
  471. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +6 -0
  472. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -0
  473. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +6 -0
  474. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -0
  475. package/dist/configurator/ui/assistant/form-elements/FormSwatch.d.ts +10 -0
  476. package/dist/configurator/ui/assistant/form-elements/FormSwatch.js +1 -0
  477. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +6 -0
  478. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -0
  479. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.d.ts +10 -0
  480. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.js +1 -0
  481. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +38 -0
  482. package/dist/configurator/ui/assistant/form-elements/form-element-props.js +1 -0
  483. package/dist/configurator/ui/assistant/form-elements/index.d.ts +9 -0
  484. package/dist/configurator/ui/assistant/form-elements/index.js +1 -0
  485. package/dist/configurator/ui/assistant/index.d.ts +3 -0
  486. package/dist/configurator/ui/assistant/index.js +1 -1
  487. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +16 -0
  488. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -0
  489. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.d.ts +34 -0
  490. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.js +1 -0
  491. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.d.ts +25 -0
  492. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.js +1 -0
  493. package/dist/configurator/ui/assistant/reference-link/index.d.ts +3 -0
  494. package/dist/configurator/ui/assistant/reference-link/index.js +1 -0
  495. package/dist/configurator/ui/assistant/reference-link/reference-styles.d.ts +12 -0
  496. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -0
  497. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.d.ts +8 -0
  498. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.js +1 -0
  499. package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +9 -0
  500. package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -0
  501. package/dist/configurator/ui/assistant/resource-image/index.d.ts +3 -0
  502. package/dist/configurator/ui/assistant/resource-image/index.js +1 -0
  503. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +2 -0
  504. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -0
  505. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.d.ts +5 -0
  506. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.js +1 -0
  507. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +9 -0
  508. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -0
  509. package/dist/configurator/ui/assistant/screenshots/index.d.ts +2 -0
  510. package/dist/configurator/ui/assistant/screenshots/index.js +1 -0
  511. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +14 -0
  512. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -0
  513. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +4 -2
  514. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  515. package/dist/configurator/ui/assistant/thread-items.d.ts +8 -1
  516. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  517. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  518. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -1
  519. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  520. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  521. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  522. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  523. package/dist/configurator/ui/configurator-layout/slots/canvas/LayoutCanvas.js +1 -1
  524. package/dist/configurator/ui/configurator-layout/slots/canvas/SharedCanvas.js +1 -1
  525. package/dist/configurator/ui/configurator-layout/{universal → slots/desktop-sidebar}/DesktopSidebar.d.ts +23 -14
  526. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  527. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  528. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  529. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.d.ts +1 -1
  530. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.js +1 -1
  531. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  532. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  533. package/dist/configurator/ui/configurator-layout/slots/services/Services.js +1 -1
  534. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  535. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  536. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.d.ts +1 -1
  537. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.js +1 -1
  538. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  539. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  540. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +1 -1
  541. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +2 -2
  542. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.d.ts +5 -0
  543. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.js +1 -0
  544. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  545. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +1 -1
  546. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -1
  547. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +1 -1
  548. package/dist/configurator/ui/index.d.ts +1 -0
  549. package/dist/configurator/ui/index.js +1 -1
  550. package/dist/configurator/ui/legacy/layout/common/CommonFinalizeButton.js +1 -1
  551. package/dist/configurator/ui/legacy/layout/common/CommonSummaryButton.js +1 -1
  552. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  553. package/dist/configurator/ui/legacy/layout/common/ReactiveInterfaceLayout.js +1 -1
  554. package/dist/configurator/ui/legacy/layout/common/ResponsiveFinalizeButton.js +1 -1
  555. package/dist/configurator/ui/legacy/layout/common/SummaryReadLayout.js +1 -1
  556. package/dist/configurator/ui/legacy/layout/simple/SimpleOwnerLayout.js +1 -1
  557. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  558. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  559. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  560. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  561. package/dist/configurator/ui/legacy/layout/steps/StepsSidebarFooter.js +1 -1
  562. package/dist/configurator/ui/legacy/layout/tabs/TabsOwnerLayout.js +1 -1
  563. package/dist/configurator/ui/legacy/toolbar/common/DimensionUnitSelector.js +1 -1
  564. package/dist/configurator/ui/legacy/toolbar/common/MeasurementsIndicatorsSwitch.js +1 -1
  565. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/FullscreenToolbarAction.js +1 -1
  566. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/HelpToolbarAction.js +1 -1
  567. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/MeasurementsToolbarAction.js +1 -1
  568. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/UndoRedoToolbarGroup.js +1 -1
  569. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.js +2 -6
  570. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -1
  571. package/dist/configurator/ui/phoenix-layout-elements/EnterFullscreenToolbarButton.js +1 -1
  572. package/dist/configurator/ui/phoenix-layout-elements/ExitFullscreenToolbarButton.js +1 -1
  573. package/dist/configurator/ui/phoenix-layout-elements/HelpToolbarButton.js +1 -1
  574. package/dist/configurator/ui/phoenix-layout-elements/LanguageMenuAction.js +1 -1
  575. package/dist/configurator/ui/phoenix-layout-elements/LanguageToolbarButton.js +1 -1
  576. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.d.ts +1 -0
  577. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.js +1 -1
  578. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.d.ts +1 -0
  579. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.js +1 -1
  580. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsMenuAction.js +1 -1
  581. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsToolbarButton.js +1 -1
  582. package/dist/configurator/ui/phoenix-layout-elements/RedoToolbarButton.js +1 -1
  583. package/dist/configurator/ui/phoenix-layout-elements/ShareToolbarButton.js +1 -1
  584. package/dist/configurator/ui/phoenix-layout-elements/UndoToolbarButton.js +1 -1
  585. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  586. package/dist/configurator/ui/phoenix-layout-elements/header/common/horizontal-tabs/DesktopHorizontalTabs.js +1 -1
  587. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.d.ts +1 -1
  588. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.js +1 -1
  589. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -8
  590. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  591. package/dist/configurator/ui/phoenix-layout-elements/measurements/DimensionUnitSelector.js +1 -1
  592. package/dist/configurator/ui/phoenix-layout-elements/measurements/MeasurementsIndicatorsSwitch.js +1 -1
  593. package/dist/configurator/ui/phoenix-layout-elements/share/ShareModal.js +1 -1
  594. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.d.ts +7 -8
  595. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.js +1 -1
  596. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/BasicFinalizeButton.js +1 -1
  597. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/CustomFinalizeButton.js +1 -1
  598. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/EnterSummaryButton.js +1 -1
  599. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/FinalizeActions.js +1 -1
  600. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/NextStepButton.js +1 -1
  601. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  602. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  603. package/dist/configurator/ui/preset-layout/PresetUi.d.ts +4 -0
  604. package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
  605. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.d.ts +10 -0
  606. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -0
  607. package/dist/configurator/ui/save-message-snackbars/index.d.ts +1 -0
  608. package/dist/configurator/ui/save-message-snackbars/index.js +1 -0
  609. package/dist/docs/complex-use-cases/focus-mode.mdx +2 -0
  610. package/dist/docs/controls/select-child-entity/cardselect.mdx +1 -0
  611. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  612. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  613. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  614. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  615. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  616. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  617. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  618. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  619. package/dist/docs/fabs/basic.mdx +6 -2
  620. package/dist/docs/index.json +49 -1
  621. package/dist/docs/layouts/custom-layout.mdx +1640 -184
  622. package/dist/docs/layouts/gallery/kestrel-kettle.mdx +1858 -0
  623. package/dist/docs/layouts/header/fixed.mdx +2 -2
  624. package/dist/docs/layouts/header/floating.mdx +2 -2
  625. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  626. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  627. package/dist/docs/other-features/client-side-rendering/declarative.mdx +2 -2
  628. package/dist/docs/other-features/error-5xx.mdx +1 -1
  629. package/dist/docs/other-features/navigation-hotspot.mdx +2 -0
  630. package/dist/docs/other-features/not-found-404.mdx +1 -1
  631. package/dist/docs/other-features/transformers.mdx +4 -0
  632. package/dist/docs/phoenix/application-states.mdx +9 -7
  633. package/dist/docs/phoenix/clerk-sign-in.mdx +1 -1
  634. package/dist/docs/phoenix/components.mdx +6 -0
  635. package/dist/docs/phoenix/configurator-interface.mdx +302 -23
  636. package/dist/docs/phoenix/deployments.mdx +2 -6
  637. package/dist/docs/phoenix/domain-model.mdx +2 -0
  638. package/dist/docs/phoenix/finalization.mdx +1 -1
  639. package/dist/docs/phoenix/getting-started.mdx +6 -3
  640. package/dist/docs/phoenix/layout-slots.mdx +116 -0
  641. package/dist/docs/phoenix/localization.mdx +10 -6
  642. package/dist/docs/phoenix/migration-guide.mdx +24 -11
  643. package/dist/docs/phoenix/phoenix-cli.mdx +72 -21
  644. package/dist/docs/phoenix/project-structure.mdx +72 -34
  645. package/dist/docs/phoenix/quickstart.mdx +7 -7
  646. package/dist/docs/phoenix/sdk-builder-workflow.mdx +8 -8
  647. package/dist/docs/phoenix/testing.mdx +148 -0
  648. package/dist/docs/phoenix/webhooks.mdx +21 -4
  649. package/dist/docs/selection-and-highlight/hotspots.mdx +2 -0
  650. package/dist/domain/application/application-config.d.ts +3 -1
  651. package/dist/domain/application/assistant/assistant-manifest.d.ts +16 -1
  652. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +8 -1
  653. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  654. package/dist/domain/application/assistant/form/assistant-form-element-name.d.ts +11 -0
  655. package/dist/domain/application/assistant/form/assistant-form-element-name.js +8 -0
  656. package/dist/domain/application/assistant/form/assistant-form-elements.d.ts +174 -0
  657. package/dist/domain/application/assistant/form/assistant-form-elements.js +1 -0
  658. package/dist/domain/application/assistant/form/assistant-resource-path.d.ts +10 -0
  659. package/dist/domain/application/assistant/form/assistant-resource-path.js +1 -0
  660. package/dist/domain/application/assistant/form/index.d.ts +4 -0
  661. package/dist/domain/application/assistant/form/index.js +1 -0
  662. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  663. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  664. package/dist/domain/application/assistant/index.d.ts +2 -1
  665. package/dist/domain/application/assistant/index.js +1 -1
  666. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
  667. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +2 -0
  668. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
  669. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -1
  670. package/dist/domain/application/configurator-builder.d.ts +4 -1
  671. package/dist/domain/application/configurator-builder.js +1 -1
  672. package/dist/domain/available-system-components.d.ts +1 -1
  673. package/dist/domain/available-system-components.js +1 -1
  674. package/dist/domain/core/invariant/violation.d.ts +50 -2
  675. package/dist/domain/core/invariant/violation.js +1 -1
  676. package/dist/domain/core/model/model.d.ts +1 -1
  677. package/dist/domain/core/schema/extended-schema-validator.js +1 -1
  678. package/dist/domain/domain-context/index.d.ts +1 -1
  679. package/dist/domain/domain-context/store-system/store-system.d.ts +5 -0
  680. package/dist/domain/domain-context/store-system/store-system.js +1 -1
  681. package/dist/domain/domain-context/undo-system.d.ts +28 -1
  682. package/dist/domain/domain-context/undo-system.js +1 -1
  683. package/dist/domain/domain-runtime/domain-runtime.d.ts +4 -0
  684. package/dist/domain/domain-runtime/environment/types.d.ts +1 -1
  685. package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
  686. package/dist/domain/domain-runtime/spec/index.js +1 -1
  687. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  688. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  689. package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +27 -12
  690. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -1
  691. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.d.ts +12 -0
  692. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +1 -0
  693. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +2 -1
  694. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -1
  695. package/dist/domain/domain-runtime/spec/selectors.d.ts +3 -1
  696. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  697. package/dist/domain/domain-runtime/spec/types.d.ts +2 -0
  698. package/dist/domain/extensions/attribute-switch.d.ts +1 -1
  699. package/dist/domain/extensions/attribute-switch.js +1 -1
  700. package/dist/domain/extensions/canvas-config.d.ts +1 -1
  701. package/dist/domain/extensions/common/angle-indicator-schema.d.ts +2 -2
  702. package/dist/domain/extensions/common/dimension-indicator-schema.d.ts +2 -2
  703. package/dist/domain/extensions/editable-angle-indicator.d.ts +1 -1
  704. package/dist/domain/extensions/editable-distance-dimension-indicator.d.ts +1 -1
  705. package/dist/domain/extensions/editable-offset-indicator.d.ts +1 -1
  706. package/dist/domain/extensions/editable-offset-indicator.js +1 -1
  707. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +24 -0
  708. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -0
  709. package/dist/domain/extensions/export-images/client-side-image.d.ts +14 -0
  710. package/dist/domain/extensions/export-images/client-side-image.js +1 -0
  711. package/dist/domain/extensions/export-images/index.d.ts +3 -0
  712. package/dist/domain/extensions/export-images/index.js +1 -0
  713. package/dist/domain/extensions/{save-template-thumbnail.d.ts → export-images/save-template-thumbnail.d.ts} +4 -4
  714. package/dist/domain/extensions/export-images/save-template-thumbnail.js +1 -0
  715. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -1
  716. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -1
  717. package/dist/domain/extensions/horizontal-tabs.d.ts +2 -2
  718. package/dist/domain/extensions/index.d.ts +1 -2
  719. package/dist/domain/extensions/index.js +1 -1
  720. package/dist/domain/extensions/list-selector-dimension-indicator.d.ts +1 -1
  721. package/dist/domain/extensions/navigation-steps.d.ts +2 -2
  722. package/dist/domain/extensions/offset-indicator.js +1 -1
  723. package/dist/domain/extensions/rotation-handle.d.ts +2 -2
  724. package/dist/domain/extensions/scene-entity-animation.js +1 -1
  725. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +2 -0
  726. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  727. package/dist/domain/mocks/create-test-application-config.js +1 -0
  728. package/dist/domain/mocks/index.d.ts +1 -0
  729. package/dist/domain/mocks/index.js +1 -1
  730. package/dist/domain/system-components/application-config.d.ts +2 -2
  731. package/dist/domain/system-components/child-entity-selection.js +1 -1
  732. package/dist/domain/system-components/collision-box-geometry.d.ts +4 -2
  733. package/dist/domain/system-components/collision-geometry.d.ts +4 -2
  734. package/dist/domain/system-components/collision-point-geometry.d.ts +4 -2
  735. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  736. package/dist/domain/system-components/common/recipes.d.ts +21 -3
  737. package/dist/domain/system-components/common/recipes.js +1 -1
  738. package/dist/domain/system-components/common/scene-entity-control-schema.d.ts +3 -0
  739. package/dist/domain/system-components/common/scene-entity-control-schema.js +1 -1
  740. package/dist/domain/system-components/constraint.d.ts +10 -23
  741. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  742. package/dist/domain/system-components/drag-handle.js +1 -1
  743. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  744. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  745. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  746. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  747. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -1
  748. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  749. package/dist/domain/system-components/material-swatch.js +1 -1
  750. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  751. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  752. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  753. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  754. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  755. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  756. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  757. package/dist/editor/Editor.d.ts +7 -0
  758. package/dist/editor/Editor.js +1 -1
  759. package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
  760. package/dist/editor/domain-editors/apply-spec-update.d.ts +8 -1
  761. package/dist/editor/domain-editors/apply-spec-update.js +1 -1
  762. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  763. package/dist/editor/mocks/CreateMockYaml.js +2 -2
  764. package/dist/editor/mocks/EditorMockContext.d.ts +2 -0
  765. package/dist/editor/mocks/EditorMockContext.js +1 -1
  766. package/dist/editor/screenshot/ScreenshotHandler.js +1 -1
  767. package/dist/globals/index.d.ts +2 -0
  768. package/dist/i18n/locales/cs/messages.js +1 -1
  769. package/dist/i18n/locales/da/messages.js +1 -1
  770. package/dist/i18n/locales/de/messages.js +1 -1
  771. package/dist/i18n/locales/de-AT/messages.js +1 -1
  772. package/dist/i18n/locales/en/messages.js +1 -1
  773. package/dist/i18n/locales/en-AU/messages.js +1 -1
  774. package/dist/i18n/locales/en-GB/messages.js +1 -1
  775. package/dist/i18n/locales/es/messages.js +1 -1
  776. package/dist/i18n/locales/fr/messages.js +1 -1
  777. package/dist/i18n/locales/hu/messages.js +1 -1
  778. package/dist/i18n/locales/it/messages.js +1 -1
  779. package/dist/i18n/locales/nl/messages.js +1 -1
  780. package/dist/i18n/locales/pl/messages.js +1 -1
  781. package/dist/i18n/locales/pt/messages.js +1 -1
  782. package/dist/i18n/locales/ro/messages.js +1 -1
  783. package/dist/i18n/locales/sk/messages.js +1 -1
  784. package/dist/i18n/locales/tr/messages.js +1 -1
  785. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  786. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  787. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +176 -148
  788. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  789. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  790. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  791. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +7 -1
  792. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +15 -14
  793. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +14 -12
  794. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +14 -13
  795. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +13 -11
  796. package/dist/phoenix/application-spec/application-spec-builder.d.ts +0 -2
  797. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  798. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +0 -2
  799. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  800. package/dist/phoenix/application-spec/generate-application-spec-story.js +2 -2
  801. package/dist/phoenix/application-spec/generate-project-files.d.ts +0 -2
  802. package/dist/phoenix/application-spec/project-files.js +1 -1
  803. package/dist/phoenix/bin.d.ts +2 -0
  804. package/dist/phoenix/bin.js +2 -0
  805. package/dist/phoenix/check-configs/built-in-eslint-config.d.ts +9 -0
  806. package/dist/phoenix/check-configs/built-in-eslint-config.js +1 -0
  807. package/dist/phoenix/check-configs/eslint-config.d.ts +10 -0
  808. package/dist/phoenix/check-configs/eslint-config.js +1 -0
  809. package/dist/phoenix/check-configs/index.d.ts +8 -0
  810. package/dist/phoenix/check-configs/index.js +1 -0
  811. package/dist/phoenix/check-configs/typescript-project.d.ts +5 -0
  812. package/dist/phoenix/check-configs/typescript-project.js +1 -0
  813. package/dist/phoenix/cli.d.ts +0 -1
  814. package/dist/phoenix/cli.js +1 -2
  815. package/dist/phoenix/commands/build.js +1 -1
  816. package/dist/phoenix/commands/check.js +1 -1
  817. package/dist/phoenix/commands/clean.js +1 -1
  818. package/dist/phoenix/commands/deploy.js +2 -2
  819. package/dist/phoenix/commands/deps/deps.d.ts +73 -0
  820. package/dist/phoenix/commands/deps/deps.js +3 -0
  821. package/dist/phoenix/commands/deps/index.d.ts +1 -0
  822. package/dist/phoenix/commands/deps/index.js +1 -0
  823. package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
  824. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
  825. package/dist/phoenix/commands/dev.js +5 -5
  826. package/dist/phoenix/commands/fix.js +1 -1
  827. package/dist/phoenix/commands/index.d.ts +1 -0
  828. package/dist/phoenix/commands/index.js +1 -1
  829. package/dist/phoenix/commands/init.d.ts +17 -5
  830. package/dist/phoenix/commands/init.js +1 -1
  831. package/dist/phoenix/commands/link.js +1 -1
  832. package/dist/phoenix/commands/prettier.js +1 -1
  833. package/dist/phoenix/commands/sync.js +1 -1
  834. package/dist/phoenix/commands/unlink.js +1 -1
  835. package/dist/phoenix/services/application-spec-project-watcher.d.ts +2 -2
  836. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  837. package/dist/phoenix/services/lingui.d.ts +8 -0
  838. package/dist/phoenix/services/lingui.js +1 -1
  839. package/dist/phoenix/services/source-archive.d.ts +1 -0
  840. package/dist/phoenix/services/source-archive.js +1 -1
  841. package/dist/phoenix/services/swc.js +1 -1
  842. package/dist/phoenix/services/vite-config.js +1 -1
  843. package/dist/phoenix/utils/index.d.ts +4 -2
  844. package/dist/phoenix/utils/index.js +1 -1
  845. package/dist/phoenix/utils/node-version/index.d.ts +1 -0
  846. package/dist/phoenix/utils/node-version/index.js +1 -0
  847. package/dist/phoenix/utils/node-version/supported-node-version.d.ts +12 -0
  848. package/dist/phoenix/utils/node-version/supported-node-version.js +4 -0
  849. package/dist/phoenix/utils/package-info.d.ts +0 -9
  850. package/dist/phoenix/utils/package-info.js +1 -1
  851. package/dist/phoenix/utils/package-manager/index.d.ts +2 -0
  852. package/dist/phoenix/utils/package-manager/index.js +1 -0
  853. package/dist/phoenix/utils/package-manager/package-manager-commands.d.ts +19 -0
  854. package/dist/phoenix/utils/package-manager/package-manager-commands.js +1 -0
  855. package/dist/phoenix/utils/package-manager/pnpm-project.d.ts +9 -0
  856. package/dist/phoenix/utils/package-manager/pnpm-project.js +1 -0
  857. package/dist/phoenix/utils/run-command.d.ts +11 -0
  858. package/dist/phoenix/utils/run-command.js +1 -1
  859. package/dist/phoenix/utils/sdk-tool/index.d.ts +1 -0
  860. package/dist/phoenix/utils/sdk-tool/index.js +1 -0
  861. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.d.ts +15 -0
  862. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.js +1 -0
  863. package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.d.ts +6 -0
  864. package/dist/react-sdk/application-runtime/common-services/analytics/frontend-analytics.js +1 -0
  865. package/dist/react-sdk/application-runtime/common-services/analytics/index.d.ts +1 -0
  866. package/dist/react-sdk/application-runtime/common-services/analytics/index.js +1 -1
  867. package/dist/react-sdk/application-runtime/hooks/use-phoenix-element-slots.d.ts +2 -1
  868. package/dist/react-sdk/application-runtime/routing/routing-service.d.ts +34 -2
  869. package/dist/react-sdk/application-runtime/routing/routing-service.js +1 -1
  870. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +4 -0
  871. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  872. package/dist/react-sdk/domain-application-context/DomainLifecycleBoundary.js +1 -1
  873. package/dist/react-sdk/domain-context/common-hooks/index.d.ts +8 -0
  874. package/dist/react-sdk/domain-context/common-hooks/index.js +1 -0
  875. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +41 -0
  876. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  877. package/dist/react-sdk/domain-context/component-hooks/index.d.ts +1 -0
  878. package/dist/react-sdk/domain-context/component-hooks/index.js +1 -0
  879. package/dist/react-sdk/domain-context/component-hooks/use-component.js +1 -1
  880. package/dist/react-sdk/domain-context/entity-hooks/use-domain-entity-state.js +1 -1
  881. package/dist/react-sdk/domain-context/entity-hooks/use-entity-price.js +1 -1
  882. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-id.js +1 -1
  883. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-state.js +1 -1
  884. package/dist/react-sdk/domain-context/index.d.ts +8 -1
  885. package/dist/react-sdk/domain-context/index.js +1 -1
  886. package/dist/react-sdk/domain-context/system-hooks/composition-hooks.js +1 -1
  887. package/dist/react-sdk/domain-context/system-hooks/dimension-hooks.js +1 -1
  888. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.d.ts +8 -0
  889. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.js +1 -0
  890. package/dist/react-sdk/domain-context/system-hooks/hover-hooks.js +1 -1
  891. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.d.ts +24 -0
  892. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.js +1 -0
  893. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +5 -0
  894. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  895. package/dist/react-sdk/domain-context/system-hooks/selection-hooks.js +1 -1
  896. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.d.ts +32 -0
  897. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.js +1 -0
  898. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.d.ts +57 -0
  899. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.js +1 -0
  900. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.d.ts +61 -0
  901. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.js +1 -0
  902. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.d.ts +20 -0
  903. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -0
  904. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  905. package/dist/react-sdk/elements/configurator-error-page-props.d.ts +20 -0
  906. package/dist/react-sdk/elements/configurator-error-page-props.js +1 -0
  907. package/dist/react-sdk/elements/index.d.ts +1 -0
  908. package/dist/react-sdk/handlers/FinalizeActionRunner.d.ts +13 -0
  909. package/dist/react-sdk/handlers/FinalizeActionRunner.js +1 -0
  910. package/dist/react-sdk/handlers/FinalizeActionsHost.d.ts +10 -0
  911. package/dist/react-sdk/handlers/FinalizeActionsHost.js +1 -0
  912. package/dist/react-sdk/handlers/FinalizeActionsProvider.d.ts +11 -0
  913. package/dist/react-sdk/handlers/FinalizeActionsProvider.js +1 -0
  914. package/dist/react-sdk/handlers/finalize-actions-context.d.ts +6 -0
  915. package/dist/react-sdk/handlers/finalize-actions-context.js +1 -0
  916. package/dist/react-sdk/handlers/finalize-actions-store.d.ts +23 -0
  917. package/dist/react-sdk/handlers/finalize-actions-store.js +1 -0
  918. package/dist/react-sdk/handlers/index.d.ts +6 -0
  919. package/dist/react-sdk/handlers/index.js +1 -1
  920. package/dist/react-sdk/handlers/use-finalize-action.d.ts +32 -0
  921. package/dist/react-sdk/handlers/use-finalize-action.js +1 -0
  922. package/dist/react-sdk/handlers/use-finalize-actions.d.ts +53 -0
  923. package/dist/react-sdk/handlers/use-finalize-actions.js +1 -0
  924. package/dist/react-sdk/index.d.ts +2 -0
  925. package/dist/react-sdk/index.js +1 -1
  926. package/dist/react-sdk/loading-state/loading-state-manager.d.ts +5 -0
  927. package/dist/react-sdk/loading-state/loading-state-manager.js +1 -1
  928. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.d.ts +25 -0
  929. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.js +1 -0
  930. package/dist/react-sdk/responsive-state/canvas-padding.d.ts +14 -0
  931. package/dist/react-sdk/responsive-state/canvas-padding.js +1 -0
  932. package/dist/react-sdk/responsive-state/index.d.ts +5 -0
  933. package/dist/react-sdk/responsive-state/index.js +1 -0
  934. package/dist/react-sdk/responsive-state/responsive-state-manager.d.ts +111 -0
  935. package/dist/react-sdk/responsive-state/responsive-state-manager.js +1 -0
  936. package/dist/react-sdk/responsive-state/use-responsive-state-manager.d.ts +10 -0
  937. package/dist/react-sdk/responsive-state/use-responsive-state-manager.js +1 -0
  938. package/dist/react-sdk/responsive-state/use-responsive-state.d.ts +11 -0
  939. package/dist/react-sdk/responsive-state/use-responsive-state.js +1 -0
  940. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.d.ts +36 -0
  941. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.js +1 -0
  942. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.d.ts +44 -0
  943. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.js +1 -0
  944. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.d.ts +38 -0
  945. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.js +1 -0
  946. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.d.ts +30 -0
  947. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.js +1 -0
  948. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.d.ts +30 -0
  949. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.js +1 -0
  950. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.d.ts +9 -0
  951. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.js +1 -0
  952. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.d.ts +9 -0
  953. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.js +1 -0
  954. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.d.ts +10 -0
  955. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.js +1 -0
  956. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.d.ts +9 -0
  957. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.js +1 -0
  958. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.d.ts +9 -0
  959. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.js +1 -0
  960. package/dist/react-sdk/scene-control-elements/index.d.ts +11 -0
  961. package/dist/react-sdk/scene-control-elements/index.js +1 -0
  962. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.d.ts +5 -0
  963. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.js +1 -0
  964. package/dist/react-sdk/session/NotAuthenticatedPage.d.ts +4 -0
  965. package/dist/react-sdk/session/NotAuthenticatedPage.js +1 -1
  966. package/dist/react-sdk/web-component/create-web-component.js +1 -1
  967. package/dist/react-sdk/web-component/god-mode/god-mode-registry.d.ts +30 -0
  968. package/dist/react-sdk/web-component/god-mode/god-mode-registry.js +1 -0
  969. package/dist/react-sdk/web-component/god-mode/index.d.ts +1 -0
  970. package/dist/react-sdk/web-component/god-mode/index.js +1 -0
  971. package/dist/ui-sdk/icons/__generated/Lightbulb.d.ts +3 -0
  972. package/dist/ui-sdk/icons/__generated/Lightbulb.js +1 -0
  973. package/dist/ui-sdk/icons/__generated/XCircle.d.ts +3 -0
  974. package/dist/ui-sdk/icons/__generated/XCircle.js +1 -0
  975. package/dist/ui-sdk/icons/__generated/index.d.ts +4 -0
  976. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  977. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  978. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +9 -0
  979. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.js +1 -1
  980. package/dist/ui-sdk/responsive-application/index.d.ts +1 -0
  981. package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +57 -0
  982. package/dist/ui-sdk/responsive-application/responsive-state-store.js +1 -0
  983. package/dist/ui-sdk/responsive-application/use-store-responsive-info.d.ts +7 -0
  984. package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -0
  985. package/dist/ui-sdk/theme/types.d.ts +5 -1
  986. package/package.json +48 -36
  987. package/schema/domain-spec.json +1341 -217
  988. package/dist/application-spec/generate-application/code/templates/nvmrc.d.ts +0 -1
  989. package/dist/application-spec/generate-application/code/templates/nvmrc.js +0 -2
  990. package/dist/application-spec/generate-application/code/templates/package-json.d.ts +0 -10
  991. package/dist/application-spec/generate-application/code/templates/package-json.js +0 -1
  992. package/dist/application-spec/generate-application/code/templates/webhook-implementation.d.ts +0 -1
  993. package/dist/application-spec/generate-application/code/templates/webhook-implementation.js +0 -7
  994. package/dist/configurator/common/frontend-analytics.js +0 -1
  995. package/dist/configurator/ui/configurator-layout/universal/DesktopSidebar.js +0 -16
  996. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.d.ts +0 -4
  997. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.js +0 -1
  998. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.d.ts +0 -4
  999. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.js +0 -1
  1000. package/dist/domain/extensions/client-side-image.d.ts +0 -14
  1001. package/dist/domain/extensions/client-side-image.js +0 -1
  1002. package/dist/domain/extensions/save-template-thumbnail.js +0 -1
  1003. package/dist/phoenix/commands/generate-project-files.d.ts +0 -6
  1004. package/dist/phoenix/commands/generate-project-files.js +0 -1
  1005. package/dist/react-sdk/application-runtime/runtime/god-mode.d.ts +0 -19
  1006. package/dist/react-sdk/application-runtime/runtime/god-mode.js +0 -1
  1007. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  1008. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  1009. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
@@ -44,7 +44,7 @@ project-root/
44
44
  | `invariants/` | Domain constraints |
45
45
  | `transformers/` | Data transformation logic |
46
46
  | `handlers/` | Event & lifecycle handlers |
47
- | `webhooks/` | Webhook implementations |
47
+ | `webhooks/` | Webhook implementations, entered through `index.ts` |
48
48
  | `migrations/` | Data schema migrations (v\*.ts) - auto-created based on model versions |
49
49
  | `locales/` | Locale catalogs (`.po` sources; compiled `.ts`, do not edit) |
50
50
  | `_*` | Shared code folders at any depth (not auto-imported) |
@@ -53,7 +53,11 @@ Every file in `components/`, `elements/`, `expressions/`, `actions/`, `invariant
53
53
  (and their `admin/` counterparts) is imported by its location, so its default export must be what that folder's `phx`
54
54
  factory returns, or an array of those. A file that exports anything else, such as a plain React component in
55
55
  `elements/`, stops the application at start with an `Invalid default export in <file>` error that names the expected
56
- shape. Keep plain components and helpers in a `_*` folder.
56
+ shape. When several files in `handlers/`, `elements/`, `transformers/`, `components/`, `admin/elements/` and
57
+ `admin/components/` are wrong, the error lists all of them, one numbered line per file. Keep plain components and helpers in a `_*` folder.
58
+
59
+ With the application-spec pipeline, sync does not write `src/webhooks/index.ts`, and a project without it gets a
60
+ built-in webhook; see [Webhook Entry Point](?path=/docs/phoenix-webhooks--docs#webhook-entry-point).
57
61
 
58
62
  ### Admin Folders (src/admin/)
59
63
 
@@ -132,18 +136,37 @@ export default [CabinetModule, DrawerModule, ShelfModule]
132
136
 
133
137
  Phoenix auto-flattens both patterns during build. Use array exports when logically grouping related items in one file.
134
138
 
135
- ## Dependencies Merging
139
+ ## Dependencies
140
+
141
+ In a project on the application-spec pipeline, `package.json` is the project's own: `phoenix sync`, `phoenix dev` and `phoenix build` never write it. The SDK lists the packages its code imports from the project's install as peer dependencies (React, three.js, MUI, Lingui and others), and the project declares them next to `@salsita-ai/sdk`. [`phoenix deps`](?path=/docs/phoenix-phoenix-cli--docs#phoenix-deps) adds the missing ones and moves out-of-range ones into the SDK's range; run it, then install, after every SDK update. With pnpm, and the same through any other package manager (`npm install`, `npx phoenix deps` with npm):
142
+
143
+ ```bash
144
+ pnpm add @salsita-ai/sdk@<version>
145
+ pnpm phoenix deps
146
+ pnpm install
147
+ pnpm phoenix sync
148
+ ```
149
+
150
+ `phoenix sync`, `phoenix dev` and `phoenix build`, also on the platform when a deploy builds, check `package.json` before they generate any file. When a peer is missing, or declared at a version whose lowest match falls outside the SDK's range, they stop and list each such peer with the range the SDK needs and what `package.json` declares. A peer counts in `dependencies`, `devDependencies` or `optionalDependencies`, and a specifier that is not a version range, such as `workspace:` or `link:`, counts as declared. Add your own dependencies to `package.json` as usual; Phoenix leaves them, the Node.js and package-manager versions and the rest of the file as you wrote them.
136
151
 
137
- When running `phx sync` or `phx build`, Phoenix manages `package.json` dependencies:
152
+ In a project on the legacy pipeline (see [Current and legacy project tooling](?path=/docs/phoenix-phoenix-cli--docs#current-and-legacy-project-tooling)), `phoenix sync` and `phoenix build` merge the SDK's required dependencies into `package.json` instead, at exact versions over the ones you set, and keep every other dependency.
138
153
 
139
- | Behavior | Description |
140
- | --------------------- | -------------------------------------------------------------- |
141
- | Phoenix deps override | Required Phoenix dependencies override user-specified versions |
142
- | Versions pinned | All Phoenix deps use exact versions (no ^ or ~) |
143
- | User deps preserved | Non-conflicting user dependencies are kept |
144
- | Manual deps safe | Dependencies not in Phoenix's required list remain untouched |
154
+ ### Package manager
145
155
 
146
- To add custom dependencies, add them normally to `package.json`. Phoenix preserves them unless they conflict with required framework dependencies.
156
+ A project installs with any package manager: pnpm, npm, Yarn or Bun. Phoenix writes no package-manager settings and no `packageManager` field; the lockfile, `pnpm-workspace.yaml`, `.npmrc` and `.yarnrc.yml` are the project's own. Run `phoenix` through the package manager the project uses, such as `pnpm phoenix sync` or `npx phoenix sync`.
157
+
158
+ A project that installs with pnpm 11 needs a `pnpm-workspace.yaml` in its root before the first install. pnpm 11 stops an install until every dependency build script is allowed or denied, and the SDK's dependencies have three. Its default minimum release age also refuses a package published only recently, so the exclusion lets the project install an SDK build on the day it is released; it is optional:
159
+
160
+ ```yaml
161
+ allowBuilds:
162
+ '@swc/core': true
163
+ esbuild: true
164
+ es5-ext: false
165
+ minimumReleaseAgeExclude:
166
+ - '@salsita-ai/*'
167
+ ```
168
+
169
+ The file is yours to extend, for example to allow the build script of a dependency you add. In a pnpm monorepo, these settings go into the workspace root's `pnpm-workspace.yaml`. [`phoenix deploy`](?path=/docs/phoenix-phoenix-cli--docs#phoenix-deploy) packs `pnpm-lock.yaml` and `pnpm-workspace.yaml` when the project has them, and the platform build, which installs with pnpm, follows them.
147
170
 
148
171
  ## Global Interfaces
149
172
 
@@ -176,45 +199,56 @@ type CustomMaterial = Phx['AdminModel']['CustomMaterial']
176
199
 
177
200
  ### Root Level Files
178
201
 
179
- | File | Auto-Generated? | Notes |
180
- | ------------------------------------------------------ | --------------- | -------------------------------------- |
181
- | `package.json` | Partially | Dependencies merged, scripts untouched |
182
- | `tsconfig.json` | Yes | Managed by Phoenix |
183
- | `eslint.config.js` | Yes | Managed by Phoenix |
184
- | `prettier.config.js` | Yes | Managed by Phoenix |
185
- | `.prettierignore` | No | Optional and your own; see below |
186
- | `.linguirc` | Yes | Managed by Phoenix |
187
- | `.nvmrc` | Yes | Managed by Phoenix |
188
- | `.gitignore` | Partially | Only in a git repository; see Markers |
189
- | `.env` | No | Git-ignored, local config |
190
- | `.env.example` | No | Template for env vars |
191
- | `.env.generated` | Yes | Auto-generated IDs, git-ignored |
192
- | `README.md` | No | Project documentation |
193
- | `AGENTS.md` | No | Your own coding-agent instructions |
194
- | `.claude/skills/phoenix*/`, `.agents/skills/phoenix*/` | Yes | Phoenix agent skills |
202
+ | File | Auto-Generated? | Notes |
203
+ | ------------------------------------------------------ | --------------- | ------------------------------------- |
204
+ | `package.json` | No | Yours; see Dependencies |
205
+ | `tsconfig.json` | Once | Yours; see below |
206
+ | `eslint.config.js` | Once | Yours; see below |
207
+ | `prettier.config.js` | Once | Yours; see below |
208
+ | `.prettierignore` | No | Optional and your own; see below |
209
+ | `pnpm-workspace.yaml` | No | Only with pnpm; see Package manager |
210
+ | `.gitignore` | Partially | Only in a git repository; see Markers |
211
+ | `.env` | No | Git-ignored, local config |
212
+ | `.env.example` | No | Template for env vars |
213
+ | `.env.generated` | Yes | Optional, git-ignored; see below |
214
+ | `README.md` | No | Project documentation |
215
+ | `AGENTS.md` | No | Your own coding-agent instructions |
216
+ | `.claude/skills/phoenix*/`, `.agents/skills/phoenix*/` | Yes | Phoenix agent skills |
195
217
 
196
218
  Sync does not write `README.md`, `AGENTS.md`, `.env.example`, `.env.ci` or the `README.md` files in `assets/public/` and `assets/private/`. Earlier SDK versions wrote them once; a project that has them keeps them, and they are yours to edit.
197
219
 
198
- With the application-spec pipeline (see [Current and legacy project tooling](?path=/docs/phoenix-phoenix-cli--docs#current-and-legacy-project-tooling)), Phoenix does not write a `.prettierignore`, and a fresh clone or CI checkout of a project has none. `phoenix check` and `phoenix fix` do not read one: they skip `.phoenix/`, `dist/`, the compiled catalogs in `src/locales/`, `pnpm-lock.yaml` and `.linguirc` on their own. A project that runs Prettier directly, as `prettier --check .` or from an editor, can add its own `.prettierignore`. To commit it, add a `!.prettierignore` line after the Phoenix block of `.gitignore`, because that block lists the file. The legacy pipeline writes `.prettierignore` on every sync.
220
+ Phoenix keeps the generated env file, with the IDs and values of the prepared deployment, in `.phoenix/` unless the project has a `.env.generated` in its root, which then is the one that counts. `phoenix dev` creates no `.env.generated` in the project root; the deployment and environment commands write it there. See [The generated env file](?path=/docs/phoenix-phoenix-cli--docs#the-generated-env-file).
221
+
222
+ With the application-spec pipeline (see [Current and legacy project tooling](?path=/docs/phoenix-phoenix-cli--docs#current-and-legacy-project-tooling)), Phoenix does not write a `.prettierignore`, and a fresh clone or CI checkout of a project has none. `phoenix check` and `phoenix fix` do not read one: they skip `.phoenix/`, `dist/`, the compiled catalogs in `src/locales/` and `.linguirc` on their own, and the package manager's files in the project root, which belong to whichever package manager the project uses: `pnpm-lock.yaml`, `pnpm-workspace.yaml`, `package-lock.json`, `npm-shrinkwrap.json`, `yarn.lock`, `.yarnrc.yml`, `bun.lock` and `bun.lockb`. A project that runs Prettier directly, as `prettier --check .` or from an editor, can add its own `.prettierignore`. To commit it, add a `!.prettierignore` line after the Phoenix block of `.gitignore`, because that block lists the file. The legacy pipeline writes `.prettierignore` on every sync.
223
+
224
+ With the application-spec pipeline, the project's TypeScript settings are in `.phoenix/tsconfig.json`, which sync rewrites with the rest of `.phoenix/`. The root `tsconfig.json` is the one editors and tools find: sync writes it only when the project has none, as a single line that extends the generated settings, and it is yours to commit and to add to:
225
+
226
+ ```json
227
+ { "extends": "./.phoenix/tsconfig.json" }
228
+ ```
229
+
230
+ The only root `tsconfig.json` sync replaces is the full file earlier SDK versions generated there, recognised by its settings; any other stays as it is. `phoenix dev`, `phoenix build` and the webhook bundle do not resolve `paths` aliases, so an alias added to the root file passes `phoenix check` and fails the build. `phoenix check` type-checks with the root `tsconfig.json`, or with `.phoenix/tsconfig.json` when the project has none. The legacy pipeline writes the full `tsconfig.json` on every sync.
231
+
232
+ With the application-spec pipeline, sync writes `eslint.config.js` and `prettier.config.js` only when the project has none, each re-exporting the SDK's shared configuration so editors find it. They are yours to commit and to change. The only ones sync replaces are the files earlier SDK versions generated there; any other stays as it is. `phoenix check` and `phoenix fix` lint and format with the project's files, and with the SDK's configurations when a file is missing (see [`phoenix check`](?path=/docs/phoenix-phoenix-cli--docs#phoenix-check)). Sync formats the files it generates in the project root, such as the agent skills, with the same Prettier configuration, so `phoenix check` accepts them; while the project's configuration cannot be loaded, as before the first install, they get the SDK's settings. The legacy pipeline writes both files on every sync.
233
+
234
+ With the application-spec pipeline, the Lingui configuration is `.phoenix/.linguirc`, which sync rewrites with the rest of `.phoenix/` from `availableLocales` in `spec/application.yaml`. Phoenix passes that file to Lingui every time it extracts or compiles the catalogs and to its Vite builds, so a `.linguirc` in the project root is not read and can be deleted. To run Lingui yourself, name the file: `npx lingui extract --config .phoenix/.linguirc`, from the project root. The legacy pipeline writes `.linguirc` in the project root on every sync.
199
235
 
200
236
  ### DO NOT EDIT (Fully Auto-Generated)
201
237
 
202
- - **Everything in `.phoenix/`** - Completely regenerated on each build. The one exception is `.phoenix/variants/`, where a coding agent writes the option files for `phoenix variants`; a rebuild keeps it
203
- - `tsconfig.json`, `eslint.config.js`, `prettier.config.js`
204
- - `.linguirc`, `.nvmrc`
238
+ - **Everything in `.phoenix/`** - Completely regenerated on each build. The exceptions are `.phoenix/variants/`, where a coding agent writes the option files for `phoenix variants`, and `.phoenix/.env.generated`, the generated env file of `phoenix dev`; a rebuild keeps both
205
239
  - `src/locales/**/*.ts` - Compiled from `.po` catalogs
206
240
  - `.env.generated`
207
241
  - `phoenix` and `phoenix-*` skill folders under `.claude/skills/` and `.agents/skills/` — rewritten on every sync with anything else inside them removed, and other `phoenix`-prefixed skill folders are removed; to customise a skill, copy it to a folder whose name does not start with `phoenix`
208
242
 
209
243
  ### Agent Guidance
210
244
 
211
- Coding agents (Claude Code, Codex, Cursor) read the Phoenix agent skills. An `AGENTS.md` is yours to add for your own instructions; sync does not write one. The `phoenix`, `phoenix-cli`, `phoenix-feedback` and `phoenix-review` skills carry the SDK conventions, CLI tooling and review checklist, and the `phoenix-create-configurator` skill walks the agent from your product documents and assets to a reviewed configurator in five stages. The `phoenix-variants` skill has the agent show you several options over the dev preview when a decision is a matter of taste, and build the one you pick. Phoenix keeps them in step with the installed SDK, including the reference files inside a skill folder. During the internal beta, a project created from a canary build of the SDK gets one more section in the `phoenix` skill: once per conversation the agent checks for a newer canary and, after telling you, updates the project's SDK and runs `phoenix sync`. Other skill folders are never touched.
245
+ Coding agents (Claude Code, Codex, Cursor) read the Phoenix agent skills. An `AGENTS.md` is yours to add for your own instructions; sync does not write one. The `phoenix`, `phoenix-cli`, `phoenix-feedback` and `phoenix-review` skills carry the SDK conventions, CLI tooling and review checklist, and the `phoenix-create-configurator` skill walks the agent from your product documents and assets to a reviewed configurator in five stages. The `phoenix-variants` skill has the agent show you several options over the dev preview when a decision is a matter of taste, and build the one you pick. Phoenix keeps them in step with the installed SDK, including the reference files inside a skill folder. During the internal beta, a project created from a canary build of the SDK gets one more section in the `phoenix` skill: once per conversation the agent checks for a newer canary and, after telling you, updates the project's SDK, runs `phoenix deps`, installs, then runs `phoenix sync`. Other skill folders are never touched.
212
246
 
213
247
  Projects created by earlier SDK versions had this guidance in `CLAUDE.md`, `.cursor/rules/phoenix.mdc` and `commands/review.md`. Sync removes the SDK block from the first two, keeps your own text around it, deletes a file that held nothing else, and deletes the review commands; use the `phoenix-review` skill instead of `/review`.
214
248
 
215
249
  ### Markers for Partial Auto-Generation
216
250
 
217
- `.gitignore` holds the Phoenix entries between two marker lines. Sync rewrites that block and keeps everything outside it:
251
+ `.gitignore` holds the Phoenix entries between two marker lines. Sync rewrites that block and keeps everything outside it. With the application-spec pipeline the block does not list the files sync writes once, `tsconfig.json`, `eslint.config.js` and `prettier.config.js`, so a project commits them:
218
252
 
219
253
  ```gitignore
220
254
  # ===== BEGIN PHOENIX AUTO-GENERATED =====
@@ -238,6 +272,8 @@ With the application-spec pipeline (see [Current and legacy project tooling](?pa
238
272
  - `templates/`
239
273
  - `package.json` (scripts section, custom dependencies)
240
274
  - `.env`, `.env.example`, `.env.ci`
275
+ - `tsconfig.json` (application-spec pipeline; keep it extending `.phoenix/tsconfig.json`)
276
+ - `eslint.config.js`, `prettier.config.js` (application-spec pipeline; sync writes them once, and they are the project's afterwards)
241
277
  - `README.md`, `AGENTS.md`
242
278
 
243
279
  ## File Naming Conventions
@@ -345,6 +381,8 @@ project-root/
345
381
  │ ├── admin-interface.ts # Admin interface types
346
382
  │ ├── i18n.ts # i18n initialization
347
383
  │ ├── globals.d.ts # Global type definitions
384
+ │ ├── tsconfig.json # TypeScript settings, extended by the root tsconfig.json
385
+ │ ├── .linguirc # Lingui configuration
348
386
  │ ├── index.html # Configurator HTML entry
349
387
  │ └── admin.html # Admin HTML entry
350
388
  │
@@ -508,7 +546,7 @@ Assets are split between two locations with different deployment strategies:
508
546
 
509
547
  Localization files enable multi-language support in your configurator.
510
548
 
511
- Translatable messages are authored in TypeScript and TSX source files using `@lingui/macro`.
549
+ Translatable messages are authored in TypeScript and TSX source files using Lingui's macros: `msg` from `@lingui/core/macro` and `<Trans>` from `@lingui/react/macro`.
512
550
 
513
551
  Locale catalogs live in `src/locales/<lang>/`. Phoenix creates and updates the `messages.po` source catalogs; edit their `msgstr` values to provide translations. The `messages.ts` files are compiled from those catalogs and must not be edited directly.
514
552
 
@@ -15,7 +15,7 @@ Build a working office desk configurator from an empty folder. You will describe
15
15
 
16
16
  ## Before you start
17
17
 
18
- Use Node.js 24 and pnpm 11. The tutorial uses the office desk model served by this documentation site at `/models/office-desk.gltf`; download it first. Real client projects normally start from `phoenix init`. This tutorial creates the four essential files by hand so you can see what Phoenix owns.
18
+ Use Node.js 24 and any package manager; the commands below use pnpm, and with pnpm 11 the project also needs the `pnpm-workspace.yaml` in [Package manager](?path=/docs/phoenix-project-structure--docs#package-manager). The tutorial uses the office desk model served by this documentation site at `/models/office-desk.gltf`; download it first. Real client projects normally start from `phoenix init`. This tutorial creates the four essential files by hand so you can see what Phoenix owns.
19
19
 
20
20
  ## Step 0 — Create the project
21
21
 
@@ -40,17 +40,13 @@ Now add these four files.
40
40
  "dependencies": {
41
41
  "@salsita-ai/sdk": "0.48.0"
42
42
  },
43
- "devDependencies": {
44
- "@lingui/cli": "5.9.5",
45
- "@lingui/swc-plugin": "5.11.0"
46
- },
47
43
  "phoenix": {
48
44
  "applicationFlow": true
49
45
  }
50
46
  }
51
47
  ```
52
48
 
53
- Use the SDK version supplied by your team if it differs from the repository's current `0.48.0` version. `phoenix.applicationFlow` selects the application-spec project structure. The first sync uses Lingui while generating the rest of the dependencies, so its CLI and SWC plugin must also be present in the initial install.
49
+ Use the SDK version supplied by your team if it differs from the repository's current `0.48.0` version. `phoenix.applicationFlow` selects the application-spec project structure. The SDK runs its own Lingui, so the SDK is the only dependency you write by hand; `phoenix deps` adds the packages it needs next to it in the install step below. A project started with `phoenix init` gets a `package.json` that already declares them.
54
50
 
55
51
  ### `.env`
56
52
 
@@ -97,13 +93,17 @@ components:
97
93
  layout: universal
98
94
  ```
99
95
 
100
- Install the SDK, then ask Phoenix to generate the rest of the project:
96
+ Install the SDK, let it declare the packages it needs, such as React, three.js and MUI, install them, then ask Phoenix to generate the rest of the project:
101
97
 
102
98
  ```sh
103
99
  pnpm install
100
+ pnpm phoenix deps
101
+ pnpm install
104
102
  pnpm phoenix sync
105
103
  ```
106
104
 
105
+ `phoenix sync` stops while `package.json` lacks one of those packages; after every SDK update, run `phoenix deps` and install again (see [`phoenix deps`](?path=/docs/phoenix-phoenix-cli--docs#phoenix-deps)). With npm, the same steps are `npm install`, `npx phoenix deps`, `npm install` and `npx phoenix sync`.
106
+
107
107
  `phoenix sync` keeps `spec/` and `src/` as your authored inputs and generates the application shell, types, and `.phoenix/` implementation. Start development without a server:
108
108
 
109
109
  ```sh
@@ -8,9 +8,9 @@ Your workspace's Studio shows the setup, the link to your configurator and the s
8
8
 
9
9
  ## Before you start
10
10
 
11
- - **Package access:** `@salsita-ai/sdk` is public on npm; `npx` and `pnpm install` download it without a registry token.
11
+ - **Package access:** `@salsita-ai/sdk` is public on npm; any package manager downloads it without a registry token.
12
12
  - **Workspace details:** you need your workspace slug and its Phoenix region (`eu` or `us`), which you also received with your workspace.
13
- - **Tools:** Node.js and pnpm.
13
+ - **Tools:** Node.js and a package manager. The commands below use pnpm; with npm, run `npm install` and `npx phoenix …` instead, with Yarn `yarn phoenix …`, with Bun `bunx phoenix …`.
14
14
  - **SDK build:** during the internal beta, use the `canary` build of the SDK, as the commands below do. It is published from every change to the platform, so it is newer than the last release.
15
15
 
16
16
  ## 1. Create a project
@@ -22,11 +22,11 @@ pnpm install
22
22
  pnpm phoenix sync
23
23
  ```
24
24
 
25
- `phoenix init [folder]` writes the starter project: `package.json`, `pnpm-workspace.yaml` and the starter spec, `spec/application.yaml` and `spec/configurator.yaml`, which describe one box you can resize and recolour. The starter depends on the same SDK version as the CLI that created it, and its `package.json` has the `dev`, `build`, `deploy`, `check` and `fix` scripts, which are yours to change. `phoenix sync` then adds the rest of the project: webhooks and lint config. It writes a `.gitignore` only when the folder is inside a git repository; run `git init` before the first sync, or sync again after it, to get the file.
25
+ `phoenix init [folder]` writes the starter project: `package.json` and the starter spec, `spec/application.yaml` and `spec/configurator.yaml`, which describe one box you can resize and recolour. The starter depends on the same SDK version as the CLI that created it and on the packages the SDK requires next to it (React, three.js, MUI, Lingui and the others, with their type packages), with ESLint and Prettier at the versions the SDK uses itself. Its `package.json` has the `dev`, `build`, `deploy`, `check` and `fix` scripts, which are yours to change. `phoenix sync` then adds the rest of the project: the TypeScript, lint and formatting config and the agent skills. It writes no webhook code: a project without `src/webhooks/index.ts` gets a built-in webhook (see [Webhook Entry Point](?path=/docs/phoenix-webhooks--docs#webhook-entry-point)). It writes a `.gitignore` only when the folder is inside a git repository; run `git init` before the first sync, or sync again after it, to get the file.
26
26
 
27
- `init` only writes these files: it asks nothing and contacts no server. It refuses a folder that already has a `spec/` folder. A `package.json` already in the folder is kept, as long as it depends on the SDK.
27
+ `init` only writes these files: it asks nothing and contacts no server. It refuses a folder that already has a `spec/` folder. A `package.json` already in the folder is kept, as long as it depends on the SDK, and gains only the entries it lacks (see [Starting a New Project](?path=/docs/phoenix-phoenix-cli--docs#starting-a-new-project)).
28
28
 
29
- `pnpm-workspace.yaml` holds the pnpm settings the install needs: it allows the build scripts of the SDK's dependencies and exempts `@salsita-ai/*` packages from pnpm's minimum release age, so a build of the SDK published today installs. The file is yours to edit, for example to allow the build script of a dependency you add. `phoenix sync` adds these entries when they are missing and keeps the values you set. A project inside a pnpm monorepo gets no file of its own; the workspace root holds the settings.
29
+ Phoenix writes no package-manager settings. With pnpm 11, add a `pnpm-workspace.yaml` that allows the build scripts of the SDK's dependencies before the first install; [Package manager](?path=/docs/phoenix-project-structure--docs#package-manager) has the file.
30
30
 
31
31
  The starter `spec/application.yaml` begins with `project: default`, which means the default project of the workspace you sign in to. Leave it as it is; a workspace has one project.
32
32
 
@@ -76,12 +76,12 @@ pnpm phoenix deploy
76
76
  `phoenix deploy` goes through these steps:
77
77
 
78
78
  1. It validates the application spec.
79
- 2. It packs the project files: the `.yaml` files in `spec`, everything in `src`, `mocks`, `assets`, `public` and `templates`, and `package.json`, `pnpm-lock.yaml`, `pnpm-workspace.yaml`, `.gitignore`, `CLAUDE.md` and `.cursor/rules/phoenix.mdc`. Every `node_modules`, `.phoenix` and `__generated` folder, every `.DS_Store` and `._*` file and every `.env` and `.env.*` file are left out, at any depth.
79
+ 2. It packs the project files: the `.yaml` files in `spec`, everything in `src`, `mocks`, `assets`, `public` and `templates`, and `package.json`, `tsconfig.json`, `pnpm-lock.yaml`, `pnpm-workspace.yaml`, `.gitignore`, `CLAUDE.md` and `.cursor/rules/phoenix.mdc`. Every `node_modules`, `.phoenix` and `__generated` folder, every `.DS_Store` and `._*` file and every `.env` and `.env.*` file are left out, at any depth.
80
80
  3. It asks the server for a build. The server compares your domain model with the deployed one and refuses, before anything is uploaded, a model that changed under an already deployed model version; see [Migrations](?path=/docs/phoenix-migrations--docs).
81
81
  4. It uploads the archive, which may be up to 200 MB.
82
82
  5. It starts the build, prints a link to the build's page in Studio and follows the build until your configurator is live, then prints its URL.
83
83
 
84
- On the server, the install follows your `pnpm-lock.yaml` and `pnpm-workspace.yaml`, so it allows the same build scripts and package versions as `pnpm install` on your computer. The build runs without platform secrets. It sees only your own environment variables and the public platform values, the [build environment](?path=/docs/phoenix-phoenix-cli--docs) that `phoenix deployment:build-envs` writes. The trusted deploy step then publishes the frontend, webhooks and assets.
84
+ On the server, the install runs pnpm. It follows your `pnpm-lock.yaml` and `pnpm-workspace.yaml` when the project has them, so a pnpm project gets the same build scripts and package versions as on your computer; without them, pnpm resolves `package.json` with the settings the SDK needs. The build runs without platform secrets. It sees only your own environment variables and the public platform values, the [build environment](?path=/docs/phoenix-phoenix-cli--docs) that `phoenix deployment:build-envs` writes. The trusted deploy step then publishes the frontend, webhooks and assets.
85
85
 
86
86
  If the build fails, is cancelled or takes too long, `phoenix deploy` prints the end of the build log and exits with an error. `--no-wait` returns as soon as the build starts.
87
87
 
@@ -95,7 +95,7 @@ Tell us what is broken, confusing or missing, from wherever you are:
95
95
 
96
96
  - In Studio, **Send beta feedback** in the sidebar opens a short form.
97
97
  - In the terminal, `pnpm phoenix feedback "<message>" --type bug|idea|other` sends it with your sign-in, and `--file <path>` sends a text file instead of the argument. See the [CLI reference](?path=/docs/phoenix-phoenix-cli--docs).
98
- - On a build's page in Studio, **Download sources** downloads the archive `phoenix deploy` uploaded for that build, so a report only needs to name the build.
98
+ - On a build's page in Studio, **Download** → **Sources** downloads the archive `phoenix deploy` uploaded for that build, so a report only needs to name the build.
99
99
 
100
100
  Coding agents working in your project use the same command, guided by the generated `phoenix-feedback` skill. They never send on their own: an agent shows you a draft, right away when the problem is crucial and otherwise at the end of the task, and sends it only after you approve it. A report names the build with its Studio page link and the live configurator, says what the agent was doing, what happened and what it expected, quotes the exact error and ends with a condensed conversation log. Agents are told never to include secrets, credentials or personal data; parts of your project and your own words go in only through a draft you approved. When you are done with the configurator, the agent also asks you, once per conversation, to evaluate the run: minutes spent, then scores from 0 to 10 for the agent's guidance, functionality, UX, 3D quality, UI visuals and the overall result, and your comments. It asks one question at a time, never picks a score for you, tells you the answers go to the Phoenix team, shows the message and sends it only after you approve it.
101
101
 
@@ -0,0 +1,148 @@
1
+ # Testing
2
+
3
+ - [Your application in a test](#your-application-in-a-test)
4
+ - [Run the domain on a preset](#run-the-domain-on-a-preset)
5
+ - [Test a transformer](#test-a-transformer)
6
+ - [Mock a domain context](#mock-a-domain-context)
7
+ - [Options](#options)
8
+
9
+ A project's tests check its own logic, such as an expression on a preset, a transformer that completes an
10
+ edit, a Blender projection or a migration, against the application the project ships. They run with
11
+ Vitest in Node, without a browser or a server.
12
+
13
+ ## Your application in a test
14
+
15
+ `createTestApplicationConfig` from `@salsita-ai/sdk/domain` is the way a test builds the project's
16
+ application. It takes the generated application the test imports and returns its application config,
17
+ typed with the project's entities, states and data, with no type argument at the call:
18
+
19
+ ```ts
20
+ import { createTestApplicationConfig } from '@salsita-ai/sdk/domain'
21
+
22
+ import { configuratorBuilder } from '../../.phoenix/domain.js'
23
+
24
+ const config = createTestApplicationConfig(configuratorBuilder)
25
+
26
+ config.domain.presets // the presets of spec/presets
27
+ config.initialPublishedData // the published data the application starts with
28
+ ```
29
+
30
+ `configuratorBuilder` from `.phoenix/domain.js` is the domain of the configurator: the model, expressions,
31
+ invariants, actions, migrations, presets and the components declared in YAML. `configuratorConfig` from
32
+ `.phoenix/configurator-config.js` is the whole configurator as the browser runs it, with every component,
33
+ handler, element and transformer; it reads the frontend environment when it is imported, so a test that
34
+ uses it stubs `phx.frontendEnv` first.
35
+
36
+ A test that mounts the configurator's UI builds from `configuratorConfig`: it carries the SDK's default
37
+ elements, the built-in layout, preset screen, not-found, not-authenticated and error pages, app loader content,
38
+ controls, toolbar buttons and sidebar-footer pieces, which `configuratorBuilder` does not, so a test that mounts the UI from `createTestApplicationConfig(configuratorBuilder)`
39
+ shows a "not found" box in place of every built-in element. Code that assembles a config without the
40
+ generated files calls `.withDefaultElements(defaultConfiguratorElements)` on its configurator builder, with
41
+ the list from `@salsita-ai/sdk/configurator`, or `defaultAdminElements` from `@salsita-ai/sdk/admin` for
42
+ the admin.
43
+
44
+ A test passes the generated export to the helper and does not call the export's methods: they are how the
45
+ SDK assembles an application, not an interface for tests, while the helper's call does not depend on that
46
+ assembly.
47
+
48
+ ## Run the domain on a preset
49
+
50
+ The config goes into `createDomainRuntime`, which runs the same systems as the configurator:
51
+
52
+ ```ts
53
+ import { vi } from 'vitest'
54
+
55
+ import { NoopAnalyticsSystem, createDomainRuntime, createTestApplicationConfig } from '@salsita-ai/sdk/domain'
56
+
57
+ import { configuratorBuilder, createI18n } from '../../.phoenix/domain.js'
58
+
59
+ const logger = {
60
+ info: vi.fn(),
61
+ error: vi.fn(),
62
+ warn: vi.fn(),
63
+ debug: vi.fn(),
64
+ verbose: vi.fn(),
65
+ appendToGlobalContext: vi.fn(),
66
+ }
67
+ const config = createTestApplicationConfig(configuratorBuilder)
68
+ const runtime = createDomainRuntime({
69
+ config,
70
+ services: { analyticsService: new NoopAnalyticsSystem(), i18n: createI18n(), logger },
71
+ })
72
+
73
+ runtime.actions.domainContext.configurator.setExecutionMode('finalize')
74
+ runtime.actions.domainData.setDomainData({
75
+ publishedData: config.initialPublishedData,
76
+ backendData: undefined,
77
+ frontendData: {},
78
+ })
79
+ runtime.actions.sessionContext.setSessionContext({ role: 'anonymous', data: {} })
80
+
81
+ const preset = config.domain.presets[0]!
82
+ runtime.actions.loadedData.completeConfiguratorLoad({
83
+ initialRevisionId: 'test',
84
+ initialEntities: preset.initialDomainEntities,
85
+ modelVersion: config.domain.domainFactory.modelVersion,
86
+ rootEntityType: preset.rootEntityType,
87
+ schemaIdentity: runtime.selectors.spec.getConfiguratorFactory(),
88
+ })
89
+ runtime.selectors.domainContext.configurator.getDomainContext().initialize()
90
+ ```
91
+
92
+ ## Test a transformer
93
+
94
+ The domain of `configuratorBuilder` has no code-attached components and no transformers. A test adds the
95
+ ones it needs, the way the configurator and the webhooks add them:
96
+
97
+ ```ts
98
+ // Files that read `phx.domain` at module scope are imported after `.phoenix/domain.js`.
99
+ const { customComponentOptics } = await import('../../.phoenix/configurator-domain-code.js')
100
+ const { default: addCookingTop } = await import('../transformers/add-cooking-top.js')
101
+
102
+ const config = createTestApplicationConfig(configuratorBuilder, {
103
+ componentModules: customComponentOptics,
104
+ transformers: {
105
+ importedTransformers: [{ origin: 'src/transformers/add-cooking-top.ts', exports: addCookingTop }],
106
+ specTransformers: [{ name: 'addCookingTop', priority: 30 }],
107
+ },
108
+ })
109
+ ```
110
+
111
+ `specTransformers` are the entries of the `transformers` section of `spec/application.yaml` that the test
112
+ runs, with the priorities the spec gives them.
113
+
114
+ ## Mock a domain context
115
+
116
+ `createMockState`, `createMockDomain` and `createMockDomainContext` take the same config and check the
117
+ mock data against the project's types:
118
+
119
+ ```ts
120
+ import { createMockDomainContext, createTestApplicationConfig } from '@salsita-ai/sdk/domain'
121
+
122
+ const config = createTestApplicationConfig(configuratorBuilder)
123
+ const preset = config.domain.presets[0]!
124
+ const { domainContext, destroy } = createMockDomainContext(config, {
125
+ entities: preset.initialDomainEntities,
126
+ rootEntityType: preset.rootEntityType,
127
+ publishedData: config.initialPublishedData,
128
+ frontendData: {},
129
+ sessionData: {},
130
+ backendData: undefined,
131
+ mode: 'owner',
132
+ role: 'anonymous',
133
+ transformers: [],
134
+ })
135
+ ```
136
+
137
+ ## Options
138
+
139
+ | Option | What it does |
140
+ | ------------------ | ------------------------------------------------------------------------------------------------------------------ |
141
+ | `componentModules` | Component files added after the components the application already has, each `{ origin, exports }` |
142
+ | `transformers` | Replaces the application's transformers: files (`importedTransformers`) and spec entries (`specTransformers`) |
143
+ | `tag` | The tag of the custom element the application mounts as; without it the application's own (`salsita-configurator`) |
144
+
145
+ ## See Also
146
+
147
+ - [Best Practices](?path=/docs/phoenix-best-practices--docs) - Where custom code lives
148
+ - [Transformers](?path=/docs/other-features-transformers--docs) - Writing transformers
@@ -34,6 +34,23 @@ Phoenix provides domain-aware builders through the global `phx.webhooks` namespa
34
34
 
35
35
  ### Webhook Entry Point
36
36
 
37
+ Your webhook is the default export of `src/webhooks/index.ts`. With the application-spec pipeline (see [Current and legacy project tooling](?path=/docs/phoenix-phoenix-cli--docs#current-and-legacy-project-tooling)), the file is yours to create; sync does not write it. A project without it gets a built-in webhook, so it builds and deploys with no webhook code. The built-in webhook has one handler, an anonymous auth handler, which the platform calls only when `spec/application.yaml` sets `useAuthHook`. The legacy pipeline writes the file with that webhook on the first sync.
38
+
39
+ Create `src/webhooks/index.ts` when the project needs its own handlers: finalization, backend data, or an auth handler that does more than start an anonymous session. A project that sets `useAuthHook` or `useClerk` needs its own auth handler, because the built-in one answers only anonymous requests. The smallest file is the built-in webhook itself:
40
+
41
+ ```ts
42
+ // src/webhooks/index.ts
43
+ const authHandler = phx.webhooks.authHandlerBuilder
44
+ .withAnonymousHandler(async () => ({ success: true, data: {}, role: 'anonymous' }))
45
+ .build()
46
+
47
+ export default phx.webhooks.webhookBuilder.withAuthHook(authHandler).build()
48
+ ```
49
+
50
+ The next `phoenix sync` or `phoenix build`, or the rebuild of a running `phoenix dev`, uses the file; deleting it brings the built-in webhook back. A webhook needs at least one handler, and a project with any other file in `src/webhooks/` must have `index.ts`.
51
+
52
+ A webhook with more handlers:
53
+
37
54
  ```ts
38
55
  // src/webhooks/index.ts
39
56
  import { authHandler } from './handlers/auth-handler.js'
@@ -391,7 +408,7 @@ ctx.emailTaskBuilder.withSubject(msg`Your configuration`)
391
408
  In React templates, use `<Trans>` for inline strings and `<HtmlHelpers.Localized>` to render message descriptors:
392
409
 
393
410
  ```tsx
394
- import { Trans } from '@lingui/macro'
411
+ import { Trans } from '@lingui/react/macro'
395
412
 
396
413
  import { HtmlHelpers } from '@salsita-ai/sdk/webhook'
397
414
 
@@ -456,7 +473,7 @@ The template file:
456
473
 
457
474
  ```tsx
458
475
  // src/webhooks/handlers/configurator-finalize-handler/tasks/pdf-template.tsx
459
- import { Trans } from '@lingui/macro'
476
+ import { Trans } from '@lingui/react/macro'
460
477
 
461
478
  import { HtmlHelpers, PdfHelpers, ResourceHelpers } from '@salsita-ai/sdk/webhook'
462
479
 
@@ -578,7 +595,7 @@ except for resource reference interpolation.
578
595
 
579
596
  ```tsx
580
597
  // src/webhooks/handlers/configurator-finalize-handler/tasks/email-task.tsx
581
- import { msg } from '@lingui/macro'
598
+ import { msg } from '@lingui/core/macro'
582
599
 
583
600
  import { EmailTemplate } from './email-template.js'
584
601
 
@@ -603,7 +620,7 @@ export const simpleEmailTask = phx.webhooks.taskFactory.createSendEmailTask((res
603
620
 
604
621
  ```tsx
605
622
  // src/webhooks/handlers/configurator-finalize-handler/tasks/email-template.tsx
606
- import { Trans } from '@lingui/macro'
623
+ import { Trans } from '@lingui/react/macro'
607
624
 
608
625
  import { EmailHelpers, ResourceHelpers } from '@salsita-ai/sdk/webhook'
609
626
 
@@ -56,6 +56,8 @@ sceneEntitySelectHotspot:
56
56
 
57
57
  The `title` supplies the tooltip text. Tooltips appear on hover by default; `tooltipVisibility` can instead keep them visible continuously, while the camera is still, or hide them. The `showWhen` property controls visibility based on selection state. The default `['unselected']` hides hotspots once entities are selected, keeping the view clean. Setting it to `['selected', 'unselected']` keeps hotspots always visible.
58
58
 
59
+ The hotspot is the entity element `SelectionHotspot`. A project replaces its look by registering its own with `phx.frontend.createSelectionHotspot`, which receives `onSelect`, the selection with its analytics event; the settings above still apply. See [Configurator Interface → In-Scene Controls](?path=/docs/phoenix-configurator-interface--docs#in-scene-controls).
60
+
59
61
  ## System Component Interfaces
60
62
 
61
63
  ```typescript
@@ -8,7 +8,7 @@ import type { CellValue } from '@salsita-ai/contracts/webhook';
8
8
  import type { AdminIntegrationService } from '#package/react-sdk';
9
9
  import type { $DomainEntity, DataCellValue, DataSchema, DomainEntity, DomainFactory, ProductPreset } from '../core/index.js';
10
10
  import type { AnalyticsSystem, RegistrableTransformer, TransformerFactory } from '../domain-context/index.js';
11
- import type { ProjectModule } from '../domain-runtime/index.js';
11
+ import type { ElementRegistration, ProjectModule } from '../domain-runtime/index.js';
12
12
  import type { AssistantResolvedManifest } from './assistant/index.js';
13
13
  import type { WebComponentEventDescriptor } from './web-component-event.js';
14
14
  import type { WebComponentPropertyDescriptor } from './web-component-property.js';
@@ -292,6 +292,8 @@ export interface ApplicationConfig<ENTITIES extends DomainEntity<string>, ALLOWE
292
292
  /** The `src/handlers/` and `src/elements/` files as project modules; the runtime spec validates and flattens both. */
293
293
  readonly handlers: readonly ProjectModule[];
294
294
  readonly elements: readonly ProjectModule[];
295
+ /** The SDK's default element registrations; a project element with the same name replaces one. */
296
+ readonly defaultElements?: readonly ElementRegistration[];
295
297
  readonly mount: MountConfig<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES, CHAT_CONTEXT, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ADMIN_ENTITIES, ADMIN_ALLOWED_ROOT_ENTITIES, ADMIN_$MAP, ADMIN_NAVIGATION_STATES, ADMIN_VIEW_STATES>;
296
298
  }
297
299
  export {};
@@ -1,3 +1,4 @@
1
+ import type { AssistantFormElementDescriptor } from './form/index.js';
1
2
  /**
2
3
  * Where one exposed assistant GraphQL field reads its value on the `$` entity: a stored field name,
3
4
  * or an expression name including its `$`. `localized` marks a localizable value that resolves to a
@@ -35,6 +36,16 @@ export interface AssistantFieldOptions {
35
36
  readonly validate: boolean;
36
37
  readonly dryRuns: boolean;
37
38
  }
39
+ /**
40
+ * One view the assistant manifest lets the agent take a screenshot of an entity from: `view` is the
41
+ * value of the `<Type>ScreenshotView` enum the agent asks for it by, `instanceName` the
42
+ * `agentScreenshot` component instance that renders it, and `description` what the view shows.
43
+ */
44
+ export interface AssistantScreenshotView {
45
+ readonly view: string;
46
+ readonly instanceName: string;
47
+ readonly description: string;
48
+ }
38
49
  /**
39
50
  * Experimental assistant manifest generated from the application spec `assistant` section. `sdl` is
40
51
  * the GraphQL schema text rebuilt from the resolved manifest; `fields` maps each GraphQL object type's exposed
@@ -46,7 +57,8 @@ export interface AssistantFieldOptions {
46
57
  * the recipe groups `meta { childRecipes }` and `addChild` expose, in manifest order, and absent
47
58
  * means none; `replaceRecipes` lists the same for `meta { replaceRecipes }` and `replaceEntity`;
48
59
  * `fieldOptions` lists, per entity type, the options edges `meta` exposes for its
49
- * writable fields, and absent means none; `actions` maps each custom `Mutation` field to the
60
+ * writable fields, and absent means none; `screenshots` lists, per entity type, the views
61
+ * `meta { screenshot }` renders, and absent means none; `actions` maps each custom `Mutation` field to the
50
62
  * declared action it runs, and absent means none; `lenses` holds the generated lens fragments, and
51
63
  * absent means none: `declarations` is the text the prompt shows, each lens once with its relations
52
64
  * spreading the lens itself, and `definitions` the valid GraphQL injected into an operation that
@@ -63,9 +75,12 @@ export interface AssistantManifest {
63
75
  readonly childRecipes?: Readonly<Record<string, readonly AssistantRecipeGroup[]>>;
64
76
  readonly replaceRecipes?: Readonly<Record<string, readonly AssistantRecipeGroup[]>>;
65
77
  readonly fieldOptions?: Readonly<Record<string, readonly AssistantFieldOptions[]>>;
78
+ readonly screenshots?: Readonly<Record<string, readonly AssistantScreenshotView[]>>;
66
79
  readonly actions?: Readonly<Record<string, string>>;
67
80
  readonly lenses?: {
68
81
  readonly declarations: string;
69
82
  readonly definitions: string;
70
83
  };
84
+ /** The project's own form elements, in YAML order; absent means none. */
85
+ readonly formElements?: readonly AssistantFormElementDescriptor[];
71
86
  }
@@ -1,4 +1,5 @@
1
- import type { AssistantFieldOptions, AssistantRecipeGroup } from './assistant-manifest.js';
1
+ import type { AssistantFieldOptions, AssistantRecipeGroup, AssistantScreenshotView } from './assistant-manifest.js';
2
+ import type { AssistantFormElementDescriptor } from './form/index.js';
2
3
  /** JSON description of a scalar or recursively nested list, including nullability at each level. */
3
4
  export type AssistantValueType = {
4
5
  readonly kind: 'scalar';
@@ -50,12 +51,16 @@ export interface AssistantResolvedManifest {
50
51
  readonly childRecipes: Readonly<Record<string, AssistantResolvedRecipes>>;
51
52
  readonly replaceRecipes: Readonly<Record<string, AssistantResolvedRecipes>>;
52
53
  readonly optionsEdges: Readonly<Record<string, readonly AssistantResolvedOptionsEdge[]>>;
54
+ /** The screenshot views of each entity type with at least one, aliases expanded, in manifest order. */
55
+ readonly screenshots: Readonly<Record<string, readonly AssistantScreenshotView[]>>;
53
56
  readonly actionFields: readonly AssistantResolvedAction[];
54
57
  /** The declared lenses by name: when to use each, and how many levels its tagged relations nest. */
55
58
  readonly lenses: Readonly<Record<string, {
56
59
  readonly description: string;
57
60
  readonly maxDepth: number;
58
61
  }>>;
62
+ /** The project's own form elements, in YAML order, which the prompt lists after the built-ins and the panel renders with their registered components. */
63
+ readonly formElements: readonly AssistantFormElementDescriptor[];
59
64
  }
60
65
  /** Optional mutation input for one stored field, using its exposed name. */
61
66
  export interface AssistantWritableField {
@@ -113,6 +118,8 @@ export interface AssistantDeclarations {
113
118
  readonly writable: Readonly<Record<string, Readonly<Record<string, AssistantDeclaredWrite>>>>;
114
119
  readonly childRecipes: Readonly<Record<string, AssistantResolvedRecipes>>;
115
120
  readonly replaceRecipes: Readonly<Record<string, AssistantResolvedRecipes>>;
121
+ /** The screenshot views under the entity type or alias key that declares them. */
122
+ readonly screenshots: Readonly<Record<string, readonly AssistantScreenshotView[]>>;
116
123
  }
117
124
  /** An original field declaration, including metadata needed to reapply inheritance and enum descriptions. */
118
125
  export interface AssistantDeclaredField extends AssistantResolvedField {