@salsita-ai/sdk 0.50.0-develop.bc4bdb2ffc → 0.50.0-develop.bd84173265

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 (834) hide show
  1. package/README.md +14 -13
  2. package/dist/application-spec/caching/content-diff.js +1 -1
  3. package/dist/application-spec/core/application-file.d.ts +0 -2
  4. package/dist/application-spec/core/application-file.js +1 -1
  5. package/dist/application-spec/core/components/component-filter.d.ts +53 -0
  6. package/dist/application-spec/core/components/component-filter.js +1 -0
  7. package/dist/application-spec/core/components/index.d.ts +2 -0
  8. package/dist/application-spec/core/components/index.js +1 -0
  9. package/dist/application-spec/core/components/sdk-code-ref.d.ts +9 -0
  10. package/dist/application-spec/core/components/sdk-code-ref.js +1 -0
  11. package/dist/application-spec/core/enhanced-json-value.d.ts +0 -68
  12. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  13. package/dist/application-spec/core/expressions/index.d.ts +2 -0
  14. package/dist/application-spec/core/expressions/index.js +1 -0
  15. package/dist/application-spec/core/expressions/relation-expression-params.d.ts +11 -0
  16. package/dist/application-spec/core/expressions/sdk-expression-implementation.d.ts +24 -0
  17. package/dist/application-spec/core/expressions/sdk-expression-implementation.js +1 -0
  18. package/dist/application-spec/core/index.d.ts +2 -0
  19. package/dist/application-spec/core/index.js +1 -1
  20. package/dist/application-spec/core/json-value.d.ts +1 -1
  21. package/dist/application-spec/{core → enhanced-json}/eval-to-constant.d.ts +1 -1
  22. package/dist/application-spec/enhanced-json/index.d.ts +4 -0
  23. package/dist/application-spec/enhanced-json/index.js +1 -0
  24. package/dist/application-spec/enhanced-json/is-enhanced-json-array.d.ts +2 -0
  25. package/dist/application-spec/enhanced-json/is-enhanced-json-array.js +1 -0
  26. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.d.ts +18 -0
  27. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.js +1 -0
  28. package/dist/application-spec/enhanced-json/schema-from-value.d.ts +24 -0
  29. package/dist/application-spec/enhanced-json/schema-from-value.js +1 -0
  30. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.d.ts +14 -0
  31. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.js +1 -0
  32. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.d.ts +12 -0
  33. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.js +1 -0
  34. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.d.ts +13 -0
  35. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.js +1 -0
  36. package/dist/application-spec/errors/diagnostic-codes.d.ts +13 -0
  37. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  38. package/dist/application-spec/errors/diagnostic-messages.d.ts +16 -0
  39. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  40. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  41. package/dist/application-spec/generate-application/code/generate-application-code.d.ts +3 -2
  42. package/dist/application-spec/generate-application/code/generate-application-code.js +1 -1
  43. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +19 -9
  44. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  45. package/dist/application-spec/generate-application/code/standalone-app-files.d.ts +2 -2
  46. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  47. package/dist/application-spec/generate-application/code/templates/configurator-config.js +6 -4
  48. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +4 -4
  49. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  50. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  51. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +53 -53
  52. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  53. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  54. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  55. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +11 -11
  56. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +1 -1
  57. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  58. package/dist/application-spec/generate-application/code/templates/domain-spec.js +12 -12
  59. package/dist/application-spec/generate-application/code/templates/domain.js +3 -3
  60. package/dist/application-spec/generate-application/code/templates/eslint-config.d.ts +5 -0
  61. package/dist/application-spec/generate-application/code/templates/eslint-config.js +4 -5
  62. package/dist/application-spec/generate-application/code/templates/frontend-config.js +3 -5
  63. package/dist/application-spec/generate-application/code/templates/gitignore.js +0 -3
  64. package/dist/application-spec/generate-application/code/templates/globals.js +3 -3
  65. package/dist/application-spec/generate-application/code/templates/index.d.ts +1 -8
  66. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  67. package/dist/application-spec/generate-application/code/templates/lingui-rc.d.ts +5 -0
  68. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +4 -4
  69. package/dist/application-spec/generate-application/code/templates/package-json.js +1 -1
  70. package/dist/application-spec/generate-application/code/templates/prettier-config.d.ts +5 -0
  71. package/dist/application-spec/generate-application/code/templates/prettier-config.js +4 -5
  72. package/dist/application-spec/generate-application/code/templates/root-tsconfig.d.ts +6 -0
  73. package/dist/application-spec/generate-application/code/templates/root-tsconfig.js +2 -0
  74. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  75. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +66 -42
  76. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +9 -3
  77. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  78. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +24 -18
  79. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +6 -8
  80. package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
  81. package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
  82. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +6 -1
  83. package/dist/application-spec/generate-application/code/templates/webhook-index.js +10 -1
  84. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -3
  85. package/dist/application-spec/generate-application/index.d.ts +2 -0
  86. package/dist/application-spec/generate-application/index.js +1 -1
  87. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +4 -3
  88. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +7 -3
  89. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  90. package/dist/application-spec/generate-application/runtime/admin-runtime/states-runtime.d.ts +2 -2
  91. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +13 -7
  92. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  93. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +4 -3
  94. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +6 -4
  95. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  96. package/dist/application-spec/generate-application/runtime/configurator-runtime/states-runtime.d.ts +2 -2
  97. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +43 -0
  98. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.js +1 -0
  99. package/dist/application-spec/generate-application/runtime/factory-data/index.d.ts +3 -0
  100. package/dist/application-spec/generate-application/runtime/factory-data/index.js +1 -0
  101. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +13 -0
  102. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -0
  103. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +16 -0
  104. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -0
  105. package/dist/application-spec/generate-application/runtime/migrations/index.d.ts +1 -0
  106. package/dist/application-spec/generate-application/runtime/migrations/index.js +1 -0
  107. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +53 -0
  108. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +1 -0
  109. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +2 -2
  110. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +1 -1
  111. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  112. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +2 -1
  113. package/dist/application-spec/generate-application/runtime/sections/data-runtime.d.ts +4 -4
  114. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +3 -2
  115. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  116. package/dist/application-spec/generate-application/runtime/sections/theme-runtime.d.ts +2 -2
  117. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +4 -6
  118. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.d.ts +9 -0
  119. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.js +1 -0
  120. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.d.ts +8 -0
  121. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.js +1 -0
  122. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +27 -0
  123. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.js +1 -0
  124. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +4 -0
  125. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -0
  126. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +68 -0
  127. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -0
  128. package/dist/application-spec/index.d.ts +1 -0
  129. package/dist/application-spec/index.js +1 -1
  130. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +34 -0
  131. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  132. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.d.ts +16 -0
  133. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.js +9 -0
  134. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts +9 -0
  135. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
  136. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  137. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  138. package/dist/application-spec/parse-application-files/raw-spec/parse-yaml-spec-file.js +1 -1
  139. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +16 -3
  140. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  141. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  142. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  143. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  144. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  145. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  146. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.d.ts +3 -0
  147. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js +1 -0
  148. package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +5 -0
  149. package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -0
  150. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.d.ts +6 -0
  151. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.js +1 -0
  152. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.d.ts +8 -0
  153. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.js +1 -0
  154. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts +10 -0
  155. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.js +1 -0
  156. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.d.ts +98 -0
  157. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.js +1 -0
  158. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts +13 -0
  159. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js +1 -0
  160. package/dist/application-spec/parse-application-files/spec/components/bindings/index.d.ts +2 -0
  161. package/dist/application-spec/parse-application-files/spec/components/bindings/index.js +1 -1
  162. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.d.ts +24 -0
  163. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js +1 -0
  164. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  165. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  166. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  167. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  168. package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts +8 -0
  169. package/dist/application-spec/parse-application-files/spec/components/component-state-type.js +1 -0
  170. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts +13 -0
  171. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js +1 -0
  172. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  173. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  174. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.d.ts +14 -0
  175. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.js +1 -0
  176. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +6 -0
  177. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  178. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +7 -4
  179. package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
  180. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +19 -0
  181. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -0
  182. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.d.ts +13 -0
  183. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.js +1 -0
  184. package/dist/application-spec/parse-application-files/spec/expressions/expression.d.ts +1 -28
  185. package/dist/application-spec/parse-application-files/spec/expressions/expression.js +1 -1
  186. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -3
  187. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  188. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  189. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  190. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  191. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  192. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +2 -2
  193. package/dist/application-spec/parse-application-files/spec/invariants/invariants.js +1 -1
  194. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  195. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  196. package/dist/application-spec/parse-application-files/spec/model/index.d.ts +1 -0
  197. package/dist/application-spec/parse-application-files/spec/model/index.js +1 -1
  198. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.d.ts +10 -0
  199. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.js +1 -0
  200. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  201. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  202. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  203. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  204. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  205. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  206. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  207. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  208. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  209. package/dist/client/phoenix-api.d.ts +468 -3
  210. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  211. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  212. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  213. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +72 -2
  214. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  215. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +7 -1
  216. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  217. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  218. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +20 -4
  219. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  220. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  221. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  222. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  223. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  224. package/dist/configurator/common/configurator-interface.d.ts +26 -1
  225. package/dist/configurator/common/configurator-interface.js +1 -1
  226. package/dist/configurator/common/frontend-analytics.d.ts +2 -0
  227. package/dist/configurator/common/frontend-analytics.js +1 -1
  228. package/dist/configurator/common/index.d.ts +2 -0
  229. package/dist/configurator/common/index.js +1 -1
  230. package/dist/configurator/common/use-finalize-action.d.ts +31 -0
  231. package/dist/configurator/common/use-finalize-action.js +1 -0
  232. package/dist/configurator/common/use-reset-camera.d.ts +6 -0
  233. package/dist/configurator/common/use-reset-camera.js +1 -0
  234. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +1 -1
  235. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +7 -0
  236. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  237. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  238. package/dist/configurator/pages/configurator-layout-name.d.ts +2 -0
  239. package/dist/configurator/pages/configurator-layout-name.js +1 -0
  240. package/dist/configurator/pages/default-configurator-elements.d.ts +8 -0
  241. package/dist/configurator/pages/default-configurator-elements.js +1 -0
  242. package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +10 -0
  243. package/dist/configurator/pages/default-elements/built-in-entity-element.js +1 -0
  244. package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +10 -0
  245. package/dist/configurator/pages/default-elements/built-in-layout-element.js +1 -0
  246. package/dist/configurator/pages/default-elements/domain-control-elements.d.ts +6 -0
  247. package/dist/configurator/pages/default-elements/domain-control-elements.js +1 -0
  248. package/dist/configurator/pages/default-elements/index.d.ts +4 -0
  249. package/dist/configurator/pages/default-elements/index.js +1 -0
  250. package/dist/configurator/pages/default-elements/recipe-panel-elements.d.ts +3 -0
  251. package/dist/configurator/pages/default-elements/recipe-panel-elements.js +1 -0
  252. package/dist/configurator/pages/default-elements/sidebar-footer-elements.d.ts +7 -0
  253. package/dist/configurator/pages/default-elements/sidebar-footer-elements.js +1 -0
  254. package/dist/configurator/pages/default-elements/toolbar-elements.d.ts +7 -0
  255. package/dist/configurator/pages/default-elements/toolbar-elements.js +1 -0
  256. package/dist/configurator/pages/index.d.ts +1 -0
  257. package/dist/configurator/pages/index.js +1 -1
  258. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  259. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  260. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  261. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  262. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  263. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  264. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  265. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  266. package/dist/configurator/ui/assistant/AssistantChips.d.ts +8 -2
  267. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  268. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -2
  269. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  270. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  271. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  272. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  273. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  274. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  275. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  276. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  277. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  278. package/dist/configurator/ui/assistant/entity-link/index.d.ts +2 -0
  279. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  280. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +19 -0
  281. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -0
  282. package/dist/configurator/ui/assistant/form/built-in-form-registry.d.ts +10 -0
  283. package/dist/configurator/ui/assistant/form/built-in-form-registry.js +1 -0
  284. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +11 -0
  285. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -0
  286. package/dist/configurator/ui/assistant/form/describe-build-errors.d.ts +6 -0
  287. package/dist/configurator/ui/assistant/form/describe-build-errors.js +1 -0
  288. package/dist/configurator/ui/assistant/form/form-element-definition.d.ts +14 -0
  289. package/dist/configurator/ui/assistant/form/form-element-definition.js +1 -0
  290. package/dist/configurator/ui/assistant/form/form-model.d.ts +38 -0
  291. package/dist/configurator/ui/assistant/form/form-model.js +1 -0
  292. package/dist/configurator/ui/assistant/form/form-registry.d.ts +31 -0
  293. package/dist/configurator/ui/assistant/form/form-registry.js +8 -0
  294. package/dist/configurator/ui/assistant/form/form-state.d.ts +4 -0
  295. package/dist/configurator/ui/assistant/form/form-state.js +1 -0
  296. package/dist/configurator/ui/assistant/form/index.d.ts +2 -0
  297. package/dist/configurator/ui/assistant/form/index.js +1 -0
  298. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +9 -0
  299. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -0
  300. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +13 -0
  301. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -0
  302. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +3 -0
  303. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -0
  304. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +3 -0
  305. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -0
  306. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +3 -0
  307. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -0
  308. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +3 -0
  309. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -0
  310. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +34 -0
  311. package/dist/configurator/ui/assistant/form-elements/form-element-props.js +1 -0
  312. package/dist/configurator/ui/assistant/form-elements/index.d.ts +5 -0
  313. package/dist/configurator/ui/assistant/form-elements/index.js +1 -0
  314. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +16 -0
  315. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -0
  316. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.d.ts +34 -0
  317. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.js +1 -0
  318. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.d.ts +25 -0
  319. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.js +1 -0
  320. package/dist/configurator/ui/assistant/reference-link/index.d.ts +3 -0
  321. package/dist/configurator/ui/assistant/reference-link/index.js +1 -0
  322. package/dist/configurator/ui/assistant/reference-link/reference-styles.d.ts +12 -0
  323. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -0
  324. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.d.ts +8 -0
  325. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.js +1 -0
  326. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +2 -0
  327. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  328. package/dist/configurator/ui/assistant/thread-items.d.ts +8 -1
  329. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  330. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  331. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  332. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  333. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  334. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.d.ts +101 -0
  335. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  336. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  337. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  338. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  339. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  340. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  341. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  342. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  343. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  344. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +0 -74
  345. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  346. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  347. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +4 -4
  348. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  349. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  350. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  351. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  352. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  353. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  354. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -2
  355. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +16 -19
  356. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  357. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  358. package/dist/docs/controls/select-child-entity/cardselect.mdx +1 -0
  359. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  360. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  361. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  362. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  363. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  364. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  365. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  366. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  367. package/dist/docs/fabs/basic.mdx +2 -2
  368. package/dist/docs/index.json +42 -1
  369. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  370. package/dist/docs/layouts/custom-layout.mdx +2434 -0
  371. package/dist/docs/layouts/header/fixed.mdx +2 -2
  372. package/dist/docs/layouts/header/floating.mdx +2 -2
  373. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  374. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  375. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  376. package/dist/docs/other-features/side-effects.mdx +8 -11
  377. package/dist/docs/other-features/transformers.mdx +4 -0
  378. package/dist/docs/other-features/violation-messages.mdx +52 -56
  379. package/dist/docs/phoenix/application-states.mdx +9 -7
  380. package/dist/docs/phoenix/components.mdx +6 -0
  381. package/dist/docs/phoenix/configurator-interface.mdx +237 -80
  382. package/dist/docs/phoenix/deployments.mdx +2 -6
  383. package/dist/docs/phoenix/domain-model.mdx +6 -0
  384. package/dist/docs/phoenix/finalization.mdx +1 -1
  385. package/dist/docs/phoenix/getting-started.mdx +3 -2
  386. package/dist/docs/phoenix/layout-slots.mdx +116 -0
  387. package/dist/docs/phoenix/localization.mdx +8 -6
  388. package/dist/docs/phoenix/migration-guide.mdx +21 -8
  389. package/dist/docs/phoenix/phoenix-cli.mdx +70 -37
  390. package/dist/docs/phoenix/project-structure.mdx +46 -20
  391. package/dist/docs/phoenix/quickstart.mdx +2 -2
  392. package/dist/docs/phoenix/sdk-builder-workflow.mdx +3 -3
  393. package/dist/docs/phoenix/testing.mdx +140 -0
  394. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  395. package/dist/docs/phoenix/webhooks.mdx +23 -6
  396. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  397. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -11
  398. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  399. package/dist/domain/admin-domain/index.d.ts +5 -0
  400. package/dist/domain/admin-domain/index.js +1 -1
  401. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  402. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  403. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  404. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  405. package/dist/domain/application/application-config.d.ts +9 -26
  406. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  407. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  408. package/dist/domain/application/assistant/assistant-form-elements.d.ts +28 -0
  409. package/dist/domain/application/assistant/assistant-form-elements.js +1 -0
  410. package/dist/domain/application/assistant/assistant-manifest.d.ts +9 -1
  411. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +38 -2
  412. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -1
  413. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  414. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  415. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  416. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  417. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  418. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  419. package/dist/domain/application/assistant/index.d.ts +8 -1
  420. package/dist/domain/application/assistant/index.js +1 -1
  421. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  422. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  423. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  424. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  425. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +48 -0
  426. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  427. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  428. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  429. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  430. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  431. package/dist/domain/application/assistant-mutations.d.ts +2 -1
  432. package/dist/domain/application/assistant-recipe-groups.d.ts +4 -2
  433. package/dist/domain/application/configurator-builder.d.ts +5 -2
  434. package/dist/domain/application/configurator-builder.js +1 -1
  435. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  436. package/dist/domain/application/index.d.ts +1 -5
  437. package/dist/domain/application/index.js +1 -1
  438. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  439. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  440. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  441. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  442. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  443. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  444. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  445. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  446. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +3 -3
  447. package/dist/domain/application/published-data/map-published-data.d.ts +7 -3
  448. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  449. package/dist/domain/core/action/action-factory.d.ts +2 -2
  450. package/dist/domain/core/action/action.d.ts +17 -13
  451. package/dist/domain/core/component/domain-component-optic.d.ts +11 -22
  452. package/dist/domain/core/component/domain-component-optic.js +2 -2
  453. package/dist/domain/core/component/legacy-filter.d.ts +2 -17
  454. package/dist/domain/core/component/system-component-filter.d.ts +36 -18
  455. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  456. package/dist/domain/core/data-schema/data-cell-value.js +1 -0
  457. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  458. package/dist/domain/core/data-schema/data-schema-array-field.js +1 -0
  459. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  460. package/dist/domain/core/data-schema/data-schema-field-object.js +1 -0
  461. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  462. package/dist/domain/core/data-schema/data-schema-field.js +1 -0
  463. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  464. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  465. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  466. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  467. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  468. package/dist/domain/core/data-schema/data-schema.js +1 -0
  469. package/dist/domain/core/data-schema/index.d.ts +7 -0
  470. package/dist/domain/core/data-schema/index.js +1 -0
  471. package/dist/domain/core/emission/index.d.ts +8 -0
  472. package/dist/domain/core/emission/index.js +1 -0
  473. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  474. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  475. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  476. package/dist/domain/core/emission/state-emission.js +1 -0
  477. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  478. package/dist/domain/core/emission/state-update-emission.js +1 -0
  479. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  480. package/dist/domain/core/emission/state-validation-result.js +1 -0
  481. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  482. package/dist/domain/core/emission/transformation-log.js +1 -0
  483. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  484. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  485. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  486. package/dist/domain/core/emission/transformer-log.js +1 -0
  487. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  488. package/dist/domain/core/emission/transformer-phase.js +1 -0
  489. package/dist/domain/core/expression/constant-expressions.d.ts +16 -8
  490. package/dist/domain/core/expression/constant-expressions.js +1 -1
  491. package/dist/domain/core/expression/custom-expression.d.ts +17 -4
  492. package/dist/domain/core/expression/custom-expression.js +1 -1
  493. package/dist/domain/core/expression/expression.d.ts +1 -2
  494. package/dist/domain/core/index.d.ts +2 -0
  495. package/dist/domain/core/invariant/custom-invariants.d.ts +6 -14
  496. package/dist/domain/core/invariant/index.d.ts +1 -1
  497. package/dist/domain/core/invariant/index.js +1 -1
  498. package/dist/domain/core/invariant/invariants.d.ts +2 -68
  499. package/dist/domain/core/invariant/invariants.js +1 -1
  500. package/dist/domain/core/invariant/violation.d.ts +51 -3
  501. package/dist/domain/core/invariant/violation.js +1 -1
  502. package/dist/domain/core/model/model.d.ts +1 -1
  503. package/dist/domain/core/recipe/recipes.d.ts +18 -50
  504. package/dist/domain/core/recipe/recipes.js +1 -1
  505. package/dist/domain/core/relation/all-of-type-relation.d.ts +8 -21
  506. package/dist/domain/core/relation/all-of-type-relation.js +1 -1
  507. package/dist/domain/core/relation/direct-relation.d.ts +13 -24
  508. package/dist/domain/core/relation/index.d.ts +0 -1
  509. package/dist/domain/core/relation/indirect-relation.d.ts +12 -67
  510. package/dist/domain/core/relation/indirect-relation.js +1 -1
  511. package/dist/domain/core/relation/relation-factory.d.ts +19 -15
  512. package/dist/domain/core/relation/relation-factory.js +1 -1
  513. package/dist/domain/core/schema/extended-schema-validator.js +1 -1
  514. package/dist/domain/core/state/migrations.d.ts +14 -45
  515. package/dist/domain/core/state/migrations.js +1 -1
  516. package/dist/domain/core/state/state.d.ts +1 -1
  517. package/dist/domain/domain-builder.d.ts +1 -1
  518. package/dist/domain/domain-builder.js +1 -1
  519. package/dist/domain/domain-context/action-system/action-system.d.ts +3 -3
  520. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  521. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  522. package/dist/domain/domain-context/action-system/index.js +1 -0
  523. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  524. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  525. package/dist/domain/domain-context/create-transformer.d.ts +1 -1
  526. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +2 -2
  527. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  528. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  529. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  530. package/dist/domain/domain-context/domain-context-systems.d.ts +7 -7
  531. package/dist/domain/domain-context/index.d.ts +8 -17
  532. package/dist/domain/domain-context/index.js +1 -1
  533. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  534. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  535. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +2 -3
  536. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  537. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +1 -1
  538. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  539. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  540. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +1 -1
  541. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  542. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +2 -2
  543. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +2 -2
  544. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +2 -2
  545. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  546. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  547. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +2 -2
  548. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  549. package/dist/domain/domain-context/store-system/index.js +1 -0
  550. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  551. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -35
  552. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  553. package/dist/domain/domain-context/store-system/system-state.d.ts +1 -1
  554. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  555. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +5 -7
  556. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  557. package/dist/domain/domain-context/transformers/chain-builder.d.ts +1 -1
  558. package/dist/domain/domain-context/transformers/context.d.ts +2 -3
  559. package/dist/domain/domain-context/transformers/context.js +1 -1
  560. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  561. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  562. package/dist/domain/domain-context/transformers/index.js +1 -1
  563. package/dist/domain/domain-context/transformers/when-builder.d.ts +2 -3
  564. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  565. package/dist/domain/domain-context/undo-system.d.ts +29 -3
  566. package/dist/domain/domain-context/undo-system.js +1 -1
  567. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  568. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  569. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  570. package/dist/domain/domain-runtime/access/types.js +1 -1
  571. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  572. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  573. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  574. package/dist/domain/domain-runtime/domain-context/index.d.ts +1 -0
  575. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +17 -22
  576. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  577. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  578. package/dist/domain/domain-runtime/domain-runtime.d.ts +76 -60
  579. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +19 -0
  580. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  581. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  582. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  583. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  584. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  585. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  586. package/dist/domain/domain-runtime/errors/index.js +1 -0
  587. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  588. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  589. package/dist/domain/domain-runtime/index.d.ts +1 -0
  590. package/dist/domain/domain-runtime/index.js +1 -1
  591. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  592. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  593. package/dist/domain/domain-runtime/spec/index.d.ts +2 -0
  594. package/dist/domain/domain-runtime/spec/index.js +1 -1
  595. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  596. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  597. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +2 -2
  598. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  599. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +1 -1
  600. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  601. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  602. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  603. package/dist/domain/{project-modules → domain-runtime/spec/module-checks}/project-modules.d.ts +8 -17
  604. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  605. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  606. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  607. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  608. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  609. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  610. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  611. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  612. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  613. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  614. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  615. package/dist/domain/domain-runtime/spec/selectors.d.ts +5 -6
  616. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  617. package/dist/domain/domain-runtime/spec/types.d.ts +5 -2
  618. package/dist/domain/extensions/attribute-switch.d.ts +1 -1
  619. package/dist/domain/extensions/attribute-switch.js +1 -1
  620. package/dist/domain/extensions/canvas-config.d.ts +1 -1
  621. package/dist/domain/extensions/client-side-image.d.ts +2 -2
  622. package/dist/domain/extensions/client-side-image.js +1 -1
  623. package/dist/domain/extensions/common/angle-indicator-schema.d.ts +2 -2
  624. package/dist/domain/extensions/common/dimension-indicator-schema.d.ts +2 -2
  625. package/dist/domain/extensions/editable-angle-indicator.d.ts +1 -1
  626. package/dist/domain/extensions/editable-distance-dimension-indicator.d.ts +1 -1
  627. package/dist/domain/extensions/editable-offset-indicator.d.ts +1 -1
  628. package/dist/domain/extensions/editable-offset-indicator.js +1 -1
  629. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -1
  630. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -1
  631. package/dist/domain/extensions/horizontal-tabs.d.ts +2 -2
  632. package/dist/domain/extensions/list-selector-dimension-indicator.d.ts +1 -1
  633. package/dist/domain/extensions/navigation-steps.d.ts +2 -2
  634. package/dist/domain/extensions/offset-indicator.js +1 -1
  635. package/dist/domain/extensions/rotation-handle.d.ts +2 -2
  636. package/dist/domain/extensions/save-template-thumbnail.d.ts +2 -2
  637. package/dist/domain/extensions/save-template-thumbnail.js +1 -1
  638. package/dist/domain/extensions/scene-entity-animation.js +1 -1
  639. package/dist/domain/index.d.ts +0 -1
  640. package/dist/domain/index.js +1 -1
  641. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  642. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  643. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +28 -19
  644. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  645. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  646. package/dist/domain/mocks/create-mock-domain.js +1 -1
  647. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  648. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  649. package/dist/domain/mocks/create-test-application-config.js +1 -0
  650. package/dist/domain/mocks/index.d.ts +1 -0
  651. package/dist/domain/mocks/index.js +1 -1
  652. package/dist/domain/projections/blender-projections/blender-projections.d.ts +1 -2
  653. package/dist/domain/projections/blender-projections/camera.d.ts +2 -2
  654. package/dist/domain/projections/collision-projections.d.ts +1 -1
  655. package/dist/domain/projections/composition-projections.d.ts +1 -1
  656. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  657. package/dist/domain/projections/index.d.ts +1 -1
  658. package/dist/domain/projections/position-projections.d.ts +1 -1
  659. package/dist/domain/projections/projected-entities-projections.d.ts +1 -1
  660. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  661. package/dist/domain/projections/validation-projections.d.ts +3 -19
  662. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  663. package/dist/domain/system-components/application-config.d.ts +2 -2
  664. package/dist/domain/system-components/child-entity-selection.js +1 -1
  665. package/dist/domain/system-components/collision-box-geometry.d.ts +4 -2
  666. package/dist/domain/system-components/collision-geometry.d.ts +4 -2
  667. package/dist/domain/system-components/collision-point-geometry.d.ts +4 -2
  668. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  669. package/dist/domain/system-components/common/recipes.d.ts +21 -3
  670. package/dist/domain/system-components/common/recipes.js +1 -1
  671. package/dist/domain/system-components/common/scene-entity-control-schema.d.ts +3 -0
  672. package/dist/domain/system-components/common/scene-entity-control-schema.js +1 -1
  673. package/dist/domain/system-components/constraint.d.ts +10 -23
  674. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  675. package/dist/domain/system-components/drag-handle.js +1 -1
  676. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  677. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  678. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  679. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  680. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -1
  681. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  682. package/dist/domain/system-components/material-swatch.js +1 -1
  683. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  684. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  685. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  686. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  687. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  688. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  689. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  690. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  691. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  692. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  693. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  694. package/dist/domain/utils/eval-cache.d.ts +1 -1
  695. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  696. package/dist/editor/domain-editors/use-implementation-files.d.ts +1 -2
  697. package/dist/editor/mocks/EditorMockContext.js +1 -1
  698. package/dist/globals/index.d.ts +2 -0
  699. package/dist/i18n/locales/cs/messages.js +1 -1
  700. package/dist/i18n/locales/da/messages.js +1 -1
  701. package/dist/i18n/locales/de/messages.js +1 -1
  702. package/dist/i18n/locales/de-AT/messages.js +1 -1
  703. package/dist/i18n/locales/en/messages.js +1 -1
  704. package/dist/i18n/locales/en-AU/messages.js +1 -1
  705. package/dist/i18n/locales/en-GB/messages.js +1 -1
  706. package/dist/i18n/locales/es/messages.js +1 -1
  707. package/dist/i18n/locales/fr/messages.js +1 -1
  708. package/dist/i18n/locales/hu/messages.js +1 -1
  709. package/dist/i18n/locales/it/messages.js +1 -1
  710. package/dist/i18n/locales/nl/messages.js +1 -1
  711. package/dist/i18n/locales/pl/messages.js +1 -1
  712. package/dist/i18n/locales/pt/messages.js +1 -1
  713. package/dist/i18n/locales/ro/messages.js +1 -1
  714. package/dist/i18n/locales/sk/messages.js +1 -1
  715. package/dist/i18n/locales/tr/messages.js +1 -1
  716. package/dist/legacy/domain-cli/gen/configurator-builder.js +13 -12
  717. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  718. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  719. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  720. package/dist/legacy/domain-cli/gen/invariants.js +3 -4
  721. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  722. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  723. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  724. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +160 -148
  725. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  726. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  727. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  728. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +7 -0
  729. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  730. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +18 -16
  731. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +14 -12
  732. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +13 -11
  733. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +13 -11
  734. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  735. package/dist/phoenix/application-spec/generate-application-spec-story.js +2 -2
  736. package/dist/phoenix/application-spec/project-files.js +1 -1
  737. package/dist/phoenix/bin.d.ts +2 -0
  738. package/dist/phoenix/bin.js +2 -0
  739. package/dist/phoenix/check-configs/built-in-eslint-config.d.ts +9 -0
  740. package/dist/phoenix/check-configs/built-in-eslint-config.js +1 -0
  741. package/dist/phoenix/check-configs/eslint-config.d.ts +10 -0
  742. package/dist/phoenix/check-configs/eslint-config.js +1 -0
  743. package/dist/phoenix/check-configs/index.d.ts +8 -0
  744. package/dist/phoenix/check-configs/index.js +1 -0
  745. package/dist/phoenix/check-configs/typescript-project.d.ts +5 -0
  746. package/dist/phoenix/check-configs/typescript-project.js +1 -0
  747. package/dist/phoenix/cli.d.ts +0 -1
  748. package/dist/phoenix/cli.js +1 -2
  749. package/dist/phoenix/commands/check.js +1 -1
  750. package/dist/phoenix/commands/deploy.js +1 -1
  751. package/dist/phoenix/commands/deps/deps.d.ts +52 -0
  752. package/dist/phoenix/commands/deps/deps.js +3 -0
  753. package/dist/phoenix/commands/deps/index.d.ts +1 -0
  754. package/dist/phoenix/commands/deps/index.js +1 -0
  755. package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
  756. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
  757. package/dist/phoenix/commands/dev.js +5 -5
  758. package/dist/phoenix/commands/fix.js +1 -1
  759. package/dist/phoenix/commands/index.d.ts +1 -0
  760. package/dist/phoenix/commands/index.js +1 -1
  761. package/dist/phoenix/commands/init.d.ts +4 -4
  762. package/dist/phoenix/commands/init.js +1 -1
  763. package/dist/phoenix/commands/prettier.js +1 -1
  764. package/dist/phoenix/services/application-spec-project-watcher.d.ts +2 -0
  765. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  766. package/dist/phoenix/services/lingui.d.ts +8 -0
  767. package/dist/phoenix/services/lingui.js +1 -1
  768. package/dist/phoenix/services/source-archive.d.ts +1 -0
  769. package/dist/phoenix/services/source-archive.js +1 -1
  770. package/dist/phoenix/services/swc.js +1 -1
  771. package/dist/phoenix/services/vite-config.js +1 -1
  772. package/dist/phoenix/utils/git/index.d.ts +1 -0
  773. package/dist/phoenix/utils/git/index.js +1 -0
  774. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  775. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  776. package/dist/phoenix/utils/index.d.ts +3 -1
  777. package/dist/phoenix/utils/index.js +1 -1
  778. package/dist/phoenix/utils/node-version/index.d.ts +1 -0
  779. package/dist/phoenix/utils/node-version/index.js +1 -0
  780. package/dist/phoenix/utils/node-version/supported-node-version.d.ts +12 -0
  781. package/dist/phoenix/utils/node-version/supported-node-version.js +4 -0
  782. package/dist/phoenix/utils/run-command.d.ts +11 -0
  783. package/dist/phoenix/utils/run-command.js +1 -1
  784. package/dist/phoenix/utils/sdk-tool/index.d.ts +1 -0
  785. package/dist/phoenix/utils/sdk-tool/index.js +1 -0
  786. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.d.ts +15 -0
  787. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.js +1 -0
  788. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +2 -0
  789. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  790. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  791. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +53 -36
  792. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  793. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +30 -0
  794. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  795. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +9 -9
  796. package/dist/react-sdk/domain-context/index.d.ts +2 -1
  797. package/dist/react-sdk/domain-context/index.js +1 -1
  798. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +11 -0
  799. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  800. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  801. package/dist/ui-sdk/theme/types.d.ts +1 -1
  802. package/dist/webhook/builders/webhook-builder.js +1 -1
  803. package/package.json +46 -35
  804. package/schema/domain-spec.json +1201 -217
  805. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  806. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  807. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  808. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -94
  809. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  810. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  811. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  812. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  813. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  814. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  815. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  816. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  817. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  818. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  819. package/dist/application-spec/generate-application/code/templates/webhook-implementation.d.ts +0 -1
  820. package/dist/application-spec/generate-application/code/templates/webhook-implementation.js +0 -7
  821. package/dist/domain/application/element-registration.js +0 -1
  822. package/dist/domain/application/handler-registration.js +0 -1
  823. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -23
  824. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  825. package/dist/domain/application/resource-builder.d.ts +0 -13
  826. package/dist/domain/application/resource-builder.js +0 -1
  827. package/dist/domain/core/relation/relation-implementation.d.ts +0 -7
  828. package/dist/domain/project-modules/index.d.ts +0 -1
  829. package/dist/domain/project-modules/index.js +0 -1
  830. package/dist/domain/project-modules/project-modules.js +0 -1
  831. /package/dist/{domain/core/relation/relation-implementation.js → application-spec/core/expressions/relation-expression-params.js} +0 -0
  832. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  833. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  834. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
@@ -0,0 +1,116 @@
1
+ # Layout Slots
2
+
3
+ A project layout registered as `ConfiguratorLayout` builds its UI from its own components and from the pieces of the built-in layout it wants to keep. Those pieces are the members of `LayoutSlots`, from `@salsita-ai/sdk/configurator`. This page lists every member: what it shows, what in the spec or the configurator's state feeds it, what it renders when the spec configures nothing for it, and what it does in read mode. [Configurator Interface → Loaded Configuration UI](?path=/docs/phoenix-configurator-interface--docs#loaded-configuration-ui) says what a project layout has to mount, and its [Hooks for a Project Layout](?path=/docs/phoenix-configurator-interface--docs#hooks-for-a-project-layout) list the hooks for a layout that draws its own UI.
4
+
5
+ - [How the slots behave](#how-the-slots-behave)
6
+ - [Canvas and services](#canvas-and-services)
7
+ - [Desktop sidebar](#desktop-sidebar)
8
+ - [Header, toolbar and controls](#header-toolbar-and-controls)
9
+ - [Banners and branding](#banners-and-branding)
10
+ - [Page footer](#page-footer)
11
+ - [Phone layout](#phone-layout)
12
+ - [Others](#others)
13
+
14
+ ## How the slots behave
15
+
16
+ ```tsx
17
+ import { LayoutSlots } from '@salsita-ai/sdk/configurator'
18
+
19
+ // Part of a ConfiguratorLayout: the built-in toolbar, placed by the layout in the bottom right corner
20
+ export const Toolbar = () => (
21
+ <div style={{ position: 'absolute', insetBlockEnd: 24, insetInlineEnd: 24 }}>
22
+ <LayoutSlots.DesktopToolbar />
23
+ </div>
24
+ )
25
+ ```
26
+
27
+ - A slot takes no props unless its row names them, and reads what it shows from the spec and the configurator's state. It renders inside the configurator only, under a `ConfiguratorLayout`.
28
+ - A slot brings its own look but not its place: it adds no padding or scrolling around itself, so the layout puts it in a container. Two members differ: `SharedCanvas` fills its nearest positioned ancestor, and `DesktopSidebar` brings the sidebar's spacing and scrolling with it.
29
+ - Read mode means `useAccessService().accessInfo.viewMode` is `true`: a configuration shared for viewing is open, or the host sets the `readonly` property. "No change" in the read-mode column means the slot renders the same for a viewer, so the layout decides whether a viewer sees it.
30
+ - `Desktop*` and `Mobile*` members are twins that differ in size and arrangement; [Phone layout](#phone-layout) lists the phone ones. The container's width, not the window's, decides which one fits: `useActiveViewports()` from `@salsita-ai/sdk/react` returns the breakpoints the container satisfies. The built-in layout uses the `Desktop*` members while `desktop` is active, for a container wider than 768 pixels, and the `Mobile*` members otherwise, while `mobile` is active; `phone` means narrower than 480 pixels and `tablet` between 480 and 1024.
31
+
32
+ ## Canvas and services
33
+
34
+ | Member | Shows | Fed by | With nothing configured | Read mode |
35
+ | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- | ----------------------- | --------- |
36
+ | `SharedCanvas` | The 3D scene, in a container that is `position: absolute; inset: 0` with the scene's background colour. The scene is hidden for a moment while the preview expands or collapses. | The scene of the spec, through `Canvas` | Always renders | No change |
37
+ | `Canvas` | The WebGL canvas alone, or `GPUIssuePage` when the browser has no WebGL or no GPU acceleration. It reports the scene-assets loading phase the app loader waits for. | The scene, the canvas settings and the `CanvasLoader` element | Always renders | No change |
38
+ | `Services` | Nothing visible: it mounts `InvariantViolations` and `SideEffects`, which show the messages of `useConfiguratorMessages()` as snackbars | The configurator's state | Always mounted | No change |
39
+ | `InvariantViolations` | When a change is rejected, a snackbar for each violation of the rejected state, including notices and warnings already present, as `<entity id>: <message>` (a `notice` as info, a `warning` as warning, `fixable` and `fatal` as error), and "Oops, something went wrong" for an error thrown while the state was validated | The spec's invariants | Nothing | No change |
40
+ | `SideEffects` | An info snackbar for each committed update that carries a hint | The hints of committed updates | Nothing | No change |
41
+ | `DesktopSnackbarsRoot` | The element the snackbars are rendered into: a stack anchored to its bottom edge, at most 320 pixels wide | Every snackbar the configurator raises | An empty element | No change |
42
+
43
+ - Mount `SharedCanvas`, not `Canvas`: `Canvas` suspends while it probes the GPU on its first mount, and `SharedCanvas` holds the boundary that catches it. Without either, the app loader stays on screen unless the project sets `appLoader: legacy`.
44
+ - `SharedCanvas` fills its nearest positioned ancestor and paints an opaque background, so the layout positions its own UI after it in the markup.
45
+ - Snackbars are raised by `Services`, and also by the built-in finalize and footer actions when their handler fails and when saving the configuration fails. A layout that shows violations, side-effect hints and validation errors its own way calls `phx.frontend.useConfiguratorMessages(onMessage)` instead of mounting `Services`, see [Configurator Interface → Hooks for a Project Layout](?path=/docs/phoenix-configurator-interface--docs#hooks-for-a-project-layout); the other snackbars still need a root. They render into the snackbar root the layout mounts; with no root mounted they render into the page's `document.body`, outside the configurator. The desktop root is a zero-height element the snackbars stack upwards from, so the layout places it where their bottom edge belongs. The phone root leaves them fixed to the viewport, see `MobileSnackbarsRoot`. A finalize action the layout runs with `phx.frontend.useFinalizeAction` raises no snackbar; its error is the hook's `error`.
46
+
47
+ ## Desktop sidebar
48
+
49
+ | Member | Shows | Fed by | With nothing configured | Read mode |
50
+ | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
51
+ | `DesktopSidebar` | The whole built-in desktop sidebar: tabs, back button, property pages and sidebar footer with their spacing, scrolling and empty states, and the assistant panel. Props: `width`, and `side` (`'start'` or `'end'`, typed `DesktopSidebarSide`; `DesktopSidebarProps` types both) | The members below | As its parts | As its parts. In fullscreen it stays in place, transparent and inert |
52
+ | `DesktopSidebarTabs` | Tabs that switch the navigation state | The `sidebarTabs` components of the selected entity; the `horizontalTabs` component is not shown here | Nothing; also nothing while the summary is shown | No change |
53
+ | `useSidebarTabs()` | A hook, `{ tabs, activeTab, onChange }`: each tab is `{ label, icon, value, isActive }`, `activeTab` is the active tab's value or `'none'`, and `onChange(value)` switches to that tab's first navigation state | As `DesktopSidebarTabs` | `tabs` is empty | No change |
54
+ | `DesktopSidebarBackButton` | A "Back" button. Props: the MUI `Button` props and `icon`, also settable in the theme as `PhxDesktopSidebarBackButton`; the application config's `sidebarBackIcon` takes precedence over both | The sidebar's way back: a navigation state to pop, a stacked property page, or a selected entity other than the root, unless the application config sets `showSelectionBackButton` to `false` or sets `ignoreSelectionInSidebar` | Nothing while there is no way back | No change |
55
+ | `DesktopSidebarContent` | The property pages of the selected entity with its entity header, a stacked page opened from them, or the summary page while the summary is shown. With the application config's `ignoreSelectionInSidebar` set, every `propertyPage` of every entity shows under the root, whatever is selected | `propertyPage`, `entityHeader`, `simpleSummary` and `customSummaryPage` components, and `ignoreSelectionInSidebar` | Nothing | **No change: the controls stay editable.** Limit them with `$filter.modes`, or render something else in read mode |
56
+ | `useSidebarContent(options?)` | A hook, `{ content, goBack, hasMiniSidebar, hasSplitSidebar }`: `content` is what `DesktopSidebarContent` shows, `goBack` is the back action or `null`. `options` sets the `HeaderContainer` and `BodyContainer` components the content is wrapped in | As `DesktopSidebarContent` | `content` is empty | No change |
57
+ | `EntityHeader` | An entity's title, subtitle, description and thumbnail, with its primary and secondary buttons, such as delete or replace. Props, typed `EntityHeaderProps`: `entityId` and `headerComponent` | The texts and thumbnail from the entity's `detail` component (the title falls back to the entity type); the buttons from the `entityHeader` component passed in | — | No change |
58
+ | `DesktopSidebarFooter` | The price and the actions | `basicSidebarFooter`, `universalSidebarFooter`, `readSidebarFooter`, `hiddenSidebarFooter` or `customSidebarFooter`. The basic footer offers a `finalizeButton`, else a button for a `finalizePage`, else a disabled button; the universal footer offers the `finalizeAction` and `otherAction` components | The basic footer: the price and a finalize button. With a `navigationSteps` component of two or more steps, previous and next step buttons and the finalize button only on the last step; with a summary and no steps, a **Summary** button until the summary is shown; in a preset embed, **Save Template** instead of finalize | With nothing configured, the read footer: price only. The basic footer hides its buttons. **The universal footer still shows its finalize and other actions to a viewer**; limit them with `$filter.modes` |
59
+
60
+ A sidebar footer with `universalSidebarFooter` does not check read mode, although the component's own description says its buttons are hidden then. A viewer of a shared configuration sees its actions. The `custom` footer renders its children unchanged as well.
61
+
62
+ ## Header, toolbar and controls
63
+
64
+ | Member | Shows | Fed by | With nothing configured | Read mode |
65
+ | --------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
66
+ | `DesktopHeader` | The floating, fixed or custom header | The first `floatingHeader`, `fixedHeader`, `hiddenHeader` or `customHeader` component | The floating header. Nothing with `hiddenHeader` or in fullscreen | The floating header shows the back button instead of the step navigation; the fixed header hides its horizontal tabs |
67
+ | `DesktopToolbar` | The toolbar's button groups | The `toolbar` component's `desktop` list, or else a default set | Default buttons: fullscreen and camera reset; language with more than one locale; share unless sharing is disabled; measurements with more than one dimension or with `indicatorSwitch` on (the default), and help in that group when the project registers a `ToolbarHelp` element; undo and redo; the assistant when the spec has an `assistant` section. In fullscreen, only the exit button | The default set drops share and undo/redo; a configured `toolbar` is shown unchanged |
68
+ | `DesktopViewControls` | A toggle between view states | The root entity's `viewControls` component and the active view state | Nothing without the component or without an active view state | No change |
69
+ | `DesktopToolControls` | A vertical group of tool buttons that switch the tool state | The root entity's `toolControls` component | Nothing without the component | No change |
70
+ | `ToolControls` | The same component as `DesktopToolControls` and `MobileToolControls` | As `DesktopToolControls` | Nothing without the component | No change |
71
+ | `DesktopCallToAction` | **The button that leaves a tool mode, not the finalize button.** Clicking it switches to the component's `exitTo` tool state | An `exitToolModeFab` component, usually filtered to the tool states it belongs to | Nothing. It throws when more than one is active | Nothing |
72
+
73
+ Instead of `DesktopViewControls` or `MobileViewControls`, a layout can build its own view buttons with `phx.frontend.useActiveViewState()` and `phx.frontend.useSetViewState()`, which need no `viewControls` component, see [Hooks for a Project Layout](?path=/docs/phoenix-configurator-interface--docs#hooks-for-a-project-layout).
74
+
75
+ ## Banners and branding
76
+
77
+ | Member | Shows | Fed by | With nothing configured | Read mode |
78
+ | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
79
+ | `DesktopReadonlyBanner` | "You're viewing a read-only configuration" with an **Edit configuration** button that opens `CloneToEditDialog`. Props: the MUI `Alert` props and `icon`, also settable in the theme as `PhxDesktopReadonlyBanner` | `useIsCloningAllowed()`; its icon from the application config's `readonlyBannerIcon` | Nothing unless cloning is allowed | **It does not check read mode.** The layout renders it only in read mode, as the built-in layout does while not in fullscreen |
80
+ | `MobileReadonlyBanner` | An **Edit** button that opens `CloneToEditDialog`. Props: the MUI `Button` props and `icon`, also settable in the theme as `PhxMobileReadonlyBanner` | As `DesktopReadonlyBanner` | Nothing unless cloning is allowed | As `DesktopReadonlyBanner` |
81
+ | `CloneToEditDialog` | The "Edit configuration" dialog that creates an editable copy of the configuration and opens it. Props, typed `CloneToEditDialogProps`: `open` and `onClose` | The open configuration | — | — |
82
+ | `useIsCloningAllowed()` | A hook, `boolean`: `true` when the application config sets `shareCloneToEdit` and the session's role may create configurations | The application config and the session | `false` | Does not check read mode |
83
+ | `DesktopPoweredBy` / `MobilePoweredBy` | The "Powered by Salsita" mark, a link | Its props `visible`, `variant` (`'black'` or `'white'`), `href`, `title`, `slots` and `slotProps`. All but `href` and `title` are also settable in the theme as `PhxDesktopBrandingPoweredBy` / `PhxMobileBrandingPoweredBy` | The mark | No change |
84
+
85
+ ## Page footer
86
+
87
+ | Member | Shows | Fed by | With nothing configured | Read mode |
88
+ | -------------------------------- | ------------------------------------------------------- | --------------------------------------------------------------------------------------- | ----------------------- | --------- |
89
+ | `DesktopFooter` / `MobileFooter` | A footer below the whole layout, not the sidebar footer | The project's `LayoutFooter` element, registered with `phx.frontend.createLayoutFooter` | Nothing | No change |
90
+
91
+ ## Phone layout
92
+
93
+ The phone twins read the same spec as their desktop members.
94
+
95
+ | Member | Shows | Differences from the desktop member |
96
+ | ------------------------- | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
97
+ | `MobileHeader` | The header | The floating and fixed headers show a back button and the branding; the back button is hidden with steps and in read mode |
98
+ | `MobileToolbar` | The toolbar | Reads the `toolbar` component's `mobile` list, rendered in reverse order. The default set has undo and redo, camera reset, fullscreen and the assistant, and drops undo and redo in read mode |
99
+ | `MobileHamburgerMenu` | A menu button that opens the remaining actions in a dialog | Reads the `toolbar` component's `mobileMenu` list, or else share, measurements, language and help under the same conditions as the desktop toolbar; share is dropped in read mode. Nothing when the list is empty. Props: `icon` and `closeIcon`, also settable in the theme as `PhxMobileHamburgerMenu`; the application config's `hamburgerIcon` and `toolbarCloseIcon` take precedence |
100
+ | `MobileTabs` | Scrollable tabs that switch the navigation state | Reads the selected entity's `sidebarTabs` or the `horizontalTabs` component, and throws when both are active or when more than one of either is active. Nothing without tabs or while the summary is shown. Unlike the desktop fixed header, it keeps horizontal tabs in read mode |
101
+ | `MobileViewControls` | A toolbar button with the active view's icon that opens the list of views | Nothing without the component, an active view state or that view's icon |
102
+ | `MobileToolControls` | The tool buttons | Same component as `DesktopToolControls` |
103
+ | `MobileCallToAction` | The button that leaves a tool mode | Same as `DesktopCallToAction` |
104
+ | `MobileSidebarBackButton` | A "Back" button | Same as `DesktopSidebarBackButton`, smaller, with `sidebarBackIcon` taking precedence the same way; its theme name is `PhxMobileSidebarBackButton` |
105
+ | `MobileSidebarContent` | The property pages | Same content as `DesktopSidebarContent` |
106
+ | `MobileSidebarFooter` | The price and the actions | Same as `DesktopSidebarFooter`; the universal footer adds the step label and progress |
107
+ | `MobileSnackbarsRoot` | The element the snackbars are rendered into | It does not position the snackbars: they keep notistack's `position: fixed` and sit at the viewport's edge wherever the root is. The built-in phone layout positions them with its own styles; a project layout styles `notistackSnackbarClasses.container` from `@salsita-ai/sdk/ui` |
108
+
109
+ ## Others
110
+
111
+ | Member | Shows |
112
+ | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
113
+ | `GPUIssuePage` | `WebGLNotSupported` or `GPUAccelerationDisabled`, chosen by its `issue` prop. `Canvas` renders it; a layout does not need it |
114
+ | `GPUIssue` | The two values of that prop, `'no-gpu'` and `'no-acceleration'`, as a constant and a type |
115
+ | `WebGLNotSupported` | A full-page message that WebGL is not supported, with a **Go To Homepage** button that returns to the configurator's start page |
116
+ | `GPUAccelerationDisabled` | A full-page message that GPU acceleration is disabled, with the same button |
@@ -408,7 +408,7 @@ function EntityList({ entities }) {
408
408
  When you need to do more complex text formatting with placeholders or embedded elements, you can reach for Lingui's `Trans` macro directly:
409
409
 
410
410
  ```tsx
411
- import { Trans, msg } from '@lingui/macro'
411
+ import { Trans } from '@lingui/react/macro'
412
412
 
413
413
  function WelcomeMessage({ userName, itemCount }) {
414
414
  return (
@@ -423,14 +423,14 @@ function WelcomeMessage({ userName, itemCount }) {
423
423
 
424
424
  ## Server-Side Translations for Webhooks
425
425
 
426
- The localization system isn't just for the frontend — it works in server-side webhook handlers too. PDF and email tasks render React templates with the same `@lingui/macro` toolchain (`<Trans>`, `msg`) you already use in UI components. The task context exposes `ctx.resolveLocalizable` already bound to the request locale and domain fallback chain, and the React builders use it for localizable subjects, attachment filenames, bodies, headers, footers, and watermark text.
426
+ The localization system isn't just for the frontend — it works in server-side webhook handlers too. PDF and email tasks render React templates with the same Lingui macros (`<Trans>` from `@lingui/react/macro`, `msg` from `@lingui/core/macro`) you already use in UI components. The task context exposes `ctx.resolveLocalizable` already bound to the request locale and domain fallback chain, and the React builders use it for localizable subjects, attachment filenames, bodies, headers, footers, and watermark text.
427
427
 
428
428
  ### In the handler
429
429
 
430
430
  Use the `msg` template tag for one-off strings you pass into builder methods:
431
431
 
432
432
  ```tsx
433
- import { msg } from '@lingui/macro'
433
+ import { msg } from '@lingui/core/macro'
434
434
 
435
435
  export const emailTask = phx.webhooks.taskFactory.createSendEmailTask((resources, data, ctx) => {
436
436
  return ctx.emailTaskBuilder
@@ -450,7 +450,7 @@ export const emailTask = phx.webhooks.taskFactory.createSendEmailTask((resources
450
450
  Use `<Trans>` for inline strings — exactly as in the frontend — and `<HtmlHelpers.Localized>` to render localizable values pulled from the domain (e.g. `$root.$summary[].title`, which are typed as `MessageDescriptor` or `MultilingualString`):
451
451
 
452
452
  ```tsx
453
- import { Trans } from '@lingui/macro'
453
+ import { Trans } from '@lingui/react/macro'
454
454
 
455
455
  import { HtmlHelpers } from '@salsita-ai/sdk/webhook'
456
456
 
@@ -547,6 +547,8 @@ When you're ready to ship:
547
547
  phx build
548
548
  ```
549
549
 
550
+ With the application-spec pipeline, `phx dev` and `phx build` compile the Lingui macros in your frontend code with the SDK's own Lingui macro plugin and the configuration in `.phoenix/.linguirc`, so the project installs no Babel macro packages for them (see [Current and legacy project tooling](?path=/docs/phoenix-phoenix-cli--docs#current-and-legacy-project-tooling)).
551
+
550
552
  ### Translation Files
551
553
 
552
554
  The `.po` files in `src/locales/` are standard GNU gettext format that most translation tools support:
@@ -565,7 +567,7 @@ During development, missing translations fall back to the message ID. In product
565
567
 
566
568
  ### Locale Fallback Configuration
567
569
 
568
- Phoenix automatically configures comprehensive locale fallbacks in the generated `.linguirc` file. When a translation is missing for a specific regional locale, it gracefully falls back to the base language before falling back to the default language (English).
570
+ Phoenix automatically configures comprehensive locale fallbacks in the Lingui configuration it generates. When a translation is missing for a specific regional locale, it gracefully falls back to the base language before falling back to the default language (English).
569
571
 
570
572
  **Fallback Rules:**
571
573
 
@@ -595,7 +597,7 @@ User locale: de-AT (Austrian German)
595
597
  └─ Translation in en? → Use it (default fallback)
596
598
  ```
597
599
 
598
- The fallback configuration is generated by `phx sync` and stored in `.linguirc`. You don't need to configure this manually - it's handled automatically based on your `availableLocales` in `spec/application.yaml`.
600
+ The fallback configuration is generated by `phx sync` and stored in `.phoenix/.linguirc` (in the project root on the legacy pipeline; see [Current and legacy project tooling](?path=/docs/phoenix-phoenix-cli--docs#current-and-legacy-project-tooling)). You don't need to configure this manually - it's handled automatically based on your `availableLocales` in `spec/application.yaml`.
599
601
 
600
602
  ## What We Learned
601
603
 
@@ -251,8 +251,21 @@ rm src/frontend/frontend.tsx
251
251
  # Remove empty domain/frontend folders after moving all files
252
252
  rmdir src/domain/implementation src/domain/data src/domain
253
253
  rmdir src/frontend/systems/transformers src/frontend/systems src/frontend/ui src/frontend/admin-pages src/frontend
254
+
255
+ # Remove the root TypeScript settings (sync writes the file again)
256
+ rm tsconfig.json
257
+ ```
258
+
259
+ With the application-spec pipeline (`phoenix.applicationFlow` in `package.json`; see [Current and legacy project tooling](?path=/docs/phoenix-phoenix-cli--docs#current-and-legacy-project-tooling)), the project's TypeScript settings are generated into `.phoenix/tsconfig.json`. Sync writes the root `tsconfig.json` only into a project that has none, as a single line that extends them:
260
+
261
+ ```json
262
+ { "extends": "./.phoenix/tsconfig.json" }
254
263
  ```
255
264
 
265
+ A root `tsconfig.json` from the old multi-folder template, or one written by hand, stays as it is and does not pick up the generated settings or the global `phx` types in `.phoenix/globals.d.ts`, so `pnpm ts:check` fails. Delete it, or replace its content with the line above, before the first sync.
266
+
267
+ With the application-spec pipeline (see [Current and legacy project tooling](?path=/docs/phoenix-phoenix-cli--docs#current-and-legacy-project-tooling)), `eslint.config.js` and `prettier.config.js` are the project's. Sync replaces a file earlier SDK versions generated, the one under the "Auto-generated file. Do not modify this file manually." header that re-exports `eslintrc` or `prettierrc`, with a file that re-exports the same configuration from `@salsita-ai/sdk/common/eslint` or `@salsita-ai/sdk/common/prettier`, and writes that file into a project that has none. A file of your own stays as it is, and editors, `phoenix check` and `phoenix fix` use it; make sure it imports only packages the project still depends on, or delete it before the first sync. Without the file, `phoenix check` and `phoenix fix` use the SDK's configuration. The legacy pipeline rewrites both files on every sync.
268
+
256
269
  ### 10. Create Mocks (Optional)
257
270
 
258
271
  If you have mock files, move them to `mocks/`:
@@ -390,7 +403,7 @@ pnpm install
390
403
 
391
404
  1. Run type check: `pnpm ts:check`
392
405
  2. Update any broken type imports
393
- 3. Ensure `tsconfig.json` paths are correct (auto-generated by Phoenix)
406
+ 3. With the application-spec pipeline (`phoenix.applicationFlow`; see [Current and legacy project tooling](?path=/docs/phoenix-phoenix-cli--docs#current-and-legacy-project-tooling)), check that the root `tsconfig.json` is the one-line file that extends `.phoenix/tsconfig.json` (see [step 9](#9-remove-auto-generated-files))
394
407
 
395
408
  ## Checklist
396
409
 
@@ -433,13 +446,13 @@ Use this checklist to verify migration completeness:
433
446
 
434
447
  The following files are no longer needed - they are auto-generated by the CLI:
435
448
 
436
- | File | Replacement |
437
- | --------------------------- | -------------------------------------------- |
438
- | `src/domain/domain.ts` | Auto-generated in `.phoenix/domain.ts` |
439
- | `src/frontend/frontend.tsx` | Auto-generated in `.phoenix/configurator.ts` |
440
- | `tsconfig.json` | Auto-generated by CLI |
441
- | `eslint.config.js` | Auto-generated by CLI |
442
- | `prettier.config.js` | Auto-generated by CLI |
449
+ | File | Replacement |
450
+ | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
451
+ | `src/domain/domain.ts` | Auto-generated in `.phoenix/domain.ts` |
452
+ | `src/frontend/frontend.tsx` | Auto-generated in `.phoenix/configurator.ts` |
453
+ | `tsconfig.json` | Delete before the first sync; with the application-spec pipeline, sync writes a one-line file that extends `.phoenix/tsconfig.json` |
454
+ | `eslint.config.js` | With the application-spec pipeline, sync replaces the file earlier SDK versions generated with one that re-exports the SDK's ESLint configuration, or writes one when there is none; a file of your own stays (see [step 9](#9-remove-auto-generated-files)) |
455
+ | `prettier.config.js` | With the application-spec pipeline, sync replaces the file earlier SDK versions generated with one that re-exports the SDK's Prettier configuration, or writes one when there is none; a file of your own stays (see [step 9](#9-remove-auto-generated-files)) |
443
456
 
444
457
  ## Builder Options Moved to YAML
445
458
 
@@ -14,6 +14,8 @@ The Phoenix CLI (`phoenix` command) is the unified tool for all configurator dev
14
14
 
15
15
  ## Starting a New Project
16
16
 
17
+ The SDK and its CLI run on Node.js 22.13 or newer, the range declared in `engines.node` of `@salsita-ai/sdk`. On an older Node.js, `phoenix` stops before it runs a command, names the running version and the required range, and exits with a non-zero code. The legacy binaries run no such check; package managers warn about the range when the SDK is installed.
18
+
17
19
  `phoenix init [folder]` starts a configurator project in `[folder]` (default: the working directory):
18
20
 
19
21
  ```bash
@@ -29,10 +31,11 @@ pnpm phoenix dev
29
31
 
30
32
  1. Refuses to run when a `spec/` folder already exists, so it never touches an existing project.
31
33
  2. Writes a `package.json` that depends on the CLI's SDK version when the folder has none. An existing `package.json` is kept, as long as it depends on the SDK.
32
- 3. Writes a starter spec (`spec/application.yaml`, `spec/configurator.yaml`) with one resizable, recolorable box, and switches `package.json` to the application-spec pipeline.
33
- 4. Writes `pnpm-workspace.yaml` with the pnpm settings the first install needs: the build scripts of the SDK's dependencies are allowed or denied, and `@salsita-ai/*` packages are exempt from pnpm's minimum release age. A project inside a pnpm monorepo gets no file; the workspace root holds these settings.
34
+ 3. Adds the `dev`, `build`, `deploy`, `check` and `fix` scripts to `package.json` (see [Project Scripts](#project-scripts)). A script the project already has under one of those names keeps its command.
35
+ 4. Writes a starter spec (`spec/application.yaml`, `spec/configurator.yaml`) with one resizable, recolorable box, and switches `package.json` to the application-spec pipeline.
36
+ 5. Writes `pnpm-workspace.yaml` with the pnpm settings the first install needs: the build scripts of the SDK's dependencies are allowed or denied, and `@salsita-ai/*` packages are exempt from pnpm's minimum release age. A project inside a pnpm monorepo gets no file; the workspace root holds these settings.
34
37
 
35
- It asks nothing, writes no `.env` and contacts no server. `phoenix sync` then generates every other project file, including `AGENTS.md` and the agent skills described in [Project Structure](?path=/docs/phoenix-project-structure--docs).
38
+ It asks nothing, writes no `.env` and contacts no server. `phoenix sync` then generates every other project file, including the agent skills described in [Project Structure](?path=/docs/phoenix-project-structure--docs). The `.gitignore` is among them only when the folder is inside a git repository, so run `git init` before the first sync, or sync again after it.
36
39
 
37
40
  ### Which project `phoenix dev` develops in
38
41
 
@@ -114,8 +117,6 @@ For quick local development without a server, use:
114
117
 
115
118
  ```bash
116
119
  phoenix dev --persistence local-storage
117
- # or use the shortcut script:
118
- pnpm dev:local
119
120
  ```
120
121
 
121
122
  **Important:** The server must be running before `deployment:prepare-local` when using `server` persistence mode.
@@ -136,53 +137,56 @@ The same streams are available in the editor's **Logs** sidebar panel with per-s
136
137
 
137
138
  ### `phoenix check`
138
139
 
139
- Runs all code quality checks in sequence:
140
+ Runs all code quality checks in sequence, with the TypeScript compiler, ESLint and Prettier the SDK installs as its own dependencies, so the versions in the project's `package.json` do not decide them:
140
141
 
141
- 1. **TypeScript** — Type checking with `tsc`
142
- 2. **ESLint** — Linting rules
143
- 3. **Prettier** — Code formatting
142
+ 1. **TypeScript** — Type checking with the SDK's `tsc` (TypeScript 7), with the project's root `tsconfig.json`, or with `.phoenix/tsconfig.json` when the project has none (see [Project Structure](?path=/docs/phoenix-project-structure--docs#root-level-files))
143
+ 2. **ESLint** — Linting rules, over `src/`; a project with no files there passes. ESLint uses the project's `eslint.config.js`, or the SDK's configuration when the project has none; its type-aware rules then read the same TypeScript configuration as the type check
144
+ 3. **Prettier** — Code formatting, with the project's Prettier configuration, or the SDK's when the project has none
144
145
 
145
146
  ### `phoenix fix`
146
147
 
147
- Auto-fixes ESLint and Prettier issues. Equivalent to running `eslint --fix` and `prettier --write` together.
148
+ Auto-fixes ESLint and Prettier issues, with the same tools and configurations as `phoenix check`. Equivalent to running the SDK's `eslint --fix` and `prettier --write` together.
148
149
 
149
150
  ## Environment Variables
150
151
 
151
- When you run `deployment:prepare-local` or `deployment:prepare`, the CLI communicates with the Phoenix server, which generates environment variables and writes them to `.env.generated`.
152
+ When you run `deployment:prepare-local` or `deployment:prepare`, the CLI communicates with the Phoenix server, which generates environment variables and writes them to `.env.generated`. `phoenix dev` does the same for its development deployment when it starts.
153
+
154
+ ### The generated env file
155
+
156
+ A project has one generated env file. Phoenix keeps it in `.phoenix/`, as `.phoenix/.env.generated`, unless the project has a `.env.generated` in its root, which then is the one that counts.
157
+
158
+ - `phoenix dev` reads and writes `.phoenix/.env.generated` in a project without a root `.env.generated`, and creates no file in the project root. In a project that has a root `.env.generated`, it reads and writes that file and `.phoenix/.env.generated` is not used.
159
+ - The deployment and environment commands (`deployment:prepare`, `deployment:prepare-dev`, `deployment:prepare-local`, `deployment:build-envs` and the others with an `--outFile` option) write `.env.generated` in the project root unless `--outFile` or `OUT_FILE` names another file. Deploy pipelines read it there. Once one of them has written it, `phoenix dev` and `phoenix build` use it.
160
+ - Everything that reads environment variables follows the same rule: the root `.env.generated` when it exists, otherwise `.phoenix/.env.generated`. The two files are never merged.
161
+ - `phoenix clean` removes `.phoenix/` and with it `.phoenix/.env.generated`; the next `phoenix dev` prepares the development deployment again. A root `.env.generated` stays.
162
+
163
+ This holds for a project on the application-spec pipeline. In a project on the legacy pipeline (see [Current and legacy project tooling](#current-and-legacy-project-tooling)), `phoenix dev` always reads and writes `.env.generated` in the project root.
152
164
 
153
165
  ### Data Flow
154
166
 
155
167
  ```
156
- spec/application.yaml → Server prepares environment → CLI writes .env.generated → Frontend/Webhooks read it
168
+ spec/application.yaml → Server prepares environment → CLI writes the generated env file → Frontend/Webhooks read it
157
169
  ```
158
170
 
159
171
  ### Project Scripts
160
172
 
161
- When you run `phoenix sync` or `phoenix clean`, the CLI auto-generates standardized scripts in your `package.json`. These scripts are enforced — they cannot be overridden by custom scripts with the same name.
162
-
163
- | Script | Command | Purpose |
164
- | -------------------------- | ------------------------------------------------------- | --------------------------------------------- |
165
- | `dev` | `phoenix dev` | Dev server with hot reload |
166
- | `dev:local` | `phoenix dev --persistence local-storage` | Dev without server dependency |
167
- | `build` | `phoenix build` | Production build |
168
- | `clean` | `phoenix clean` | Clean all artifacts and rebuild |
169
- | `sync` | `phoenix sync` | Sync generated code and dependencies |
170
- | `check` | `phoenix check` | Run all checks (TypeScript, ESLint, Prettier) |
171
- | `ts:check` | `phoenix check` | Alias for `check` |
172
- | `fix` | `phoenix fix` | Auto-fix lint and formatting issues |
173
- | `lint:fix` | `eslint src --fix` | ESLint fix only |
174
- | `prettify:fix` | `prettier --write .` | Prettier fix only |
175
- | `verify:fix` | `phoenix build && phoenix fix && phoenix check --types` | Build, fix, then type-check |
176
- | `test` | `vitest --passWithNoTests run` | Run tests |
177
- | `test:watch` | `vitest` | Tests in watch mode |
178
- | `prepare:ci` | `phoenix prepare:ci` | CI environment setup |
179
- | `deployment:prepare-local` | `phoenix deployment:prepare-local` | Prepare local environment |
180
-
181
- Custom scripts you add to `package.json` are preserved during sync. Deprecated scripts (like `environment:create`, `deployment:register`) are automatically removed.
173
+ `phoenix init` writes five scripts into `package.json`, each a shortcut for the CLI command of the same name:
174
+
175
+ | Script | Command | Purpose |
176
+ | -------- | ---------------- | --------------------------------------------- |
177
+ | `dev` | `phoenix dev` | Dev server with hot reload |
178
+ | `build` | `phoenix build` | Production build |
179
+ | `deploy` | `phoenix deploy` | Build and publish the project |
180
+ | `check` | `phoenix check` | Run all checks (TypeScript, ESLint, Prettier) |
181
+ | `fix` | `phoenix fix` | Auto-fix lint and formatting issues |
182
+
183
+ The scripts are yours: change, rename or delete them, and add your own. `phoenix sync` and `phoenix clean` leave the `scripts` section of `package.json` as it is, so they add no script, restore none you removed and remove none. Every CLI command also runs without a script, as `pnpm phoenix <command>`.
184
+
185
+ A project may have other scripts than these five, such as `sync`, `test` or `verify:fix`; they are its own and stay as they are. All of this holds for a project on the application-spec pipeline, which `phoenix init` selects. In a project on the legacy pipeline (see [Current and legacy project tooling](#current-and-legacy-project-tooling)), `phoenix sync` and `phoenix clean` write their own set of scripts into `package.json` on every run, over scripts of the same name.
182
186
 
183
187
  ### Server-Generated Variables
184
188
 
185
- These are automatically computed by the server and written to `.env.generated`:
189
+ These are automatically computed by the server and written to the generated env file:
186
190
 
187
191
  | Variable | Purpose |
188
192
  | -------------------------------- | ------------------------------------------------------- |
@@ -231,7 +235,7 @@ A build pipeline that receives the source archive of a [`phoenix deploy`](#phoen
231
235
  - it refuses an archive over 200 MB, one that extracts to more than 1 GB, or one with more than 100,000 files;
232
236
  - it refuses links, special files, absolute paths, paths that leave the folder, names with control characters, and entries that repeat or collide with an earlier one;
233
237
  - it refuses an archive it cannot read to the end, such as a truncated upload;
234
- - it extracts only project files, the same set `phoenix deploy` packs, and reports the entries it left out.
238
+ - it extracts only project files and reports the entries it left out, including the optional `conversation.log` that deploy keeps in the private archive for review.
235
239
 
236
240
  `<folder>` must be new or empty. When the command refuses an archive, it removes the folder, so a partly extracted project is never built.
237
241
 
@@ -270,7 +274,7 @@ A development environment keeps the AI assistant's conversation when the assista
270
274
  Environment variables are resolved in this order (highest to lowest priority):
271
275
 
272
276
  1. Process environment variables (shell)
273
- 2. `.env.generated` (created by deployment commands)
277
+ 2. [The generated env file](#the-generated-env-file): `.env.generated` in the project root when the project has one, otherwise `.phoenix/.env.generated`
274
278
  3. `.env` (manual overrides)
275
279
 
276
280
  ### Generated Config Files
@@ -301,13 +305,18 @@ Starts the full development environment: Vite dev server, development webhook tu
301
305
  | `--region` | `PHOENIX_REGION` | `eu` | Region of the signed-in workspace, used when no server URL is set |
302
306
  | `--skipUpload` / `--su` | `SKIP_UPLOAD` | `false` | Skip the S3 asset upload when the development deployment is prepared at startup |
303
307
 
308
+ With the application-spec pipeline, `phoenix dev` creates an empty `src/` folder when the project has none, so that it rebuilds when the first source file, such as `src/webhooks/index.ts`, is added.
309
+
310
+ With the application-spec pipeline, the SDK's own Lingui CLI runs with the configuration in `.phoenix/.linguirc`, both for `--withLingui` and when `phoenix sync` and `phoenix build` extract and compile the catalogs; see [Root Level Files](?path=/docs/phoenix-project-structure--docs#root-level-files). The dev server and `phoenix build` compile the Lingui macros (`msg`, `t`, `Trans` and the others, imported from `@lingui/core/macro`, `@lingui/react/macro` or `@lingui/macro`) with the SDK's own Lingui macro plugin and the same configuration, so the project needs neither `babel-plugin-macros` nor `@lingui/macro` for them. Babel macros of other packages are not compiled.
311
+
304
312
  In `server` persistence mode the project comes from `--projectSlug`, `PROJECT_SLUG` or `project` in the spec, and the credential from `DEVELOPMENT_KEY` or the `phoenix login` sign-in; see [Starting a New Project](#starting-a-new-project). When signed in, the environment is always your own development environment and `--environmentSlug` is ignored.
305
313
 
306
314
  The dev server watches for changes in:
307
315
 
308
316
  - `spec/**/*.yaml` — Domain specification files
309
317
  - `src/**/*.{ts,tsx,yaml,yml,json,html,css}` — Source files
310
- - `.env`, `.env.generated` — Environment files (triggers full Vite restart)
318
+ - `.env` — Environment file; a change restarts the Vite dev server
319
+ - `.env.generated`, `.phoenix/.env.generated` — Generated env files; a change rebuilds the project files. Only a file that exists when `phoenix dev` starts is watched: a root `.env.generated` that a deployment command creates while dev runs is not watched; restart `phoenix dev` to use it.
311
320
 
312
321
  When linked SDK packages are detected (`phoenix link`), changes to SDK dist files are also watched.
313
322
 
@@ -399,10 +408,30 @@ Removes all build artifacts (`.phoenix/`, `node_modules/`), reinstalls dependenc
399
408
 
400
409
  Syncs project dependencies and regenerates all project files without building Vite bundles or webhooks. Faster than `clean` — use this for routine updates after changing spec files or upgrading dependencies. Before installing, it adds the pnpm settings `phoenix init` writes to a standalone project's `pnpm-workspace.yaml` when they are missing; values you set there are kept.
401
410
 
411
+ With the application-spec pipeline (see [Current and legacy project tooling](#current-and-legacy-project-tooling)), `.gitignore` is written only when the project is inside a git repository: the project folder or one of its parent folders holds a `.git` entry. Outside a repository, sync neither creates the file nor changes one that is already there, and the same holds for `dev`, `build` and `clean`. Run `git init` before the first sync, or sync again after it, to get the file. The legacy pipeline writes `.gitignore` in every project.
412
+
402
413
  | Flag | Env Variable | Default | Description |
403
414
  | ---------------- | --------------- | ------- | ------------------------------ |
404
415
  | `--force` / `-f` | `FORCE_REBUILD` | `false` | Force full rebuild, skip cache |
405
416
 
417
+ ### `phoenix deps`
418
+
419
+ Brings `package.json` in line with the SDK's peer dependencies: the packages the SDK's code imports and the project installs next to it, so the project and the SDK share one copy. The `peerDependencies` of the installed `@salsita-ai/sdk` decide which packages and which versions. `@clerk/clerk-react` is needed only when the spec sets `useClerk`.
420
+
421
+ ```bash
422
+ pnpm phoenix deps
423
+ pnpm install
424
+ ```
425
+
426
+ - A missing peer is added at the lowest version of the SDK's range, as an exact version, in alphabetical order: type packages (`@types/*`) to `devDependencies`, the others to `dependencies`.
427
+ - A peer declared with a version range whose lowest version falls outside the SDK's range is set to the lowest version of the SDK's range, in the field that declares it. The output says when that is a downgrade.
428
+ - A peer declared with a specifier that is not a version range, such as `workspace:`, `npm:`, `catalog:`, `file:`, `link:` or a git URL, stays as it is.
429
+ - `@salsita-ai/common`, `@salsita-ai/contracts`, `@salsita-ai/platform-project-sdk`, `@salsita-ai/platform-common` and `@salsita-ai/platform-contracts` are removed, because `@salsita-ai/sdk` replaces them. No other entry is removed.
430
+
431
+ Every other part of `package.json` keeps its order and formatting. `phoenix deps` installs nothing: it lists each change and names `pnpm install` as the next step, or says that nothing needed to change. Running it again changes nothing. It reads the spec to learn whether the project uses Clerk, so it stops with the spec's errors when the spec does not parse.
432
+
433
+ This holds for a project on the application-spec pipeline. In a project on the legacy pipeline (see [Current and legacy project tooling](#current-and-legacy-project-tooling)), `phoenix deps` changes nothing and says that `phoenix sync` manages the dependencies.
434
+
406
435
  ### Current and legacy project tooling
407
436
 
408
437
  Use the `phoenix` binary for projects that still use domain-spec generation. The CLI selects a
@@ -712,6 +741,10 @@ Revokes the token on the server and removes it from the credentials file. `--reg
712
741
 
713
742
  Validates the spec, adds the pnpm settings `phoenix init` writes to `pnpm-workspace.yaml` when they are missing, packs and uploads the project, starts its build on the server and follows it until the configurator is live. Before the upload the server compares the domain model with the deployed one: a model that changed under an already deployed model version is refused with the reason, and needs a new model version and a [migration](?path=/docs/phoenix-migrations--docs). Once the build starts it prints `Follow the build in Studio: <url>`, the build's page in the Studio you signed in through; a sign-in stored by an older CLI has no Studio URL, so sign in again to get the link. After `Your configurator is live at <url>` it prints one line for coding agents, which tells them to offer the run evaluation of the `phoenix-feedback` skill once you have nothing more to build; you can ignore it when you run the command yourself. `--region` or `--serverUrl` selects the server, as for `login`; `--no-wait` returns as soon as the build starts.
714
743
 
744
+ To keep the conversation that led to a build, place a reviewed UTF-8 transcript in `conversation.log` at the project root before deploying. Deploy automatically includes it in the private source archive. Download the build's sources from Studio to read it; access is the same as for the rest of that build's sources. The build extractor skips the log, so it is not an application build input or a public asset. Missing logs produce a warning and deployment continues. Directories, links and special files at that path are rejected.
745
+
746
+ The Phoenix agent skill explains how to prepare the transcript: prefer a native session export; otherwise mark a reconstruction as incomplete. Preserve available user/assistant messages and tool calls, cap individual tool results at 16 KiB with explicit truncation markers, and reference images rather than embedding them. Include the agent, export time, source and known omissions. Review and redact credentials or unrelated sensitive content before approving upload. The CLI uploads the file as supplied; it does not collect agent history, redact content, check freshness or verify completeness. Remove the file from the project root to deploy without it. The log counts toward the source archive's existing size limits; there is no separate conversation upload or viewer.
747
+
715
748
  ### `phoenix feedback [message]`
716
749
 
717
750
  Sends feedback about the SDK, the CLI, the documentation or Studio to the Phoenix team. It needs `phoenix login`: the server records the workspace, user and API token of the sign-in, so the message itself needs no introduction.