@salsita-ai/sdk 0.50.0-develop.ed1806b910 → 0.50.0-develop.eeaf6c4605

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 (938) hide show
  1. package/README.md +8 -2
  2. package/dist/admin/AdminShell.js +1 -1
  3. package/dist/admin/legacy-admin/Application.js +1 -1
  4. package/dist/application-spec/caching/index.d.ts +6 -1
  5. package/dist/application-spec/caching/index.js +1 -1
  6. package/dist/application-spec/core/enhanced-json-value.d.ts +2 -31
  7. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  8. package/dist/application-spec/core/index.d.ts +1 -3
  9. package/dist/application-spec/core/index.js +1 -1
  10. package/dist/application-spec/core/json-schema.d.ts +2 -52
  11. package/dist/application-spec/core/markers/index.d.ts +1 -1
  12. package/dist/application-spec/core/markers/index.js +1 -1
  13. package/dist/application-spec/core/markers/msg-marker.d.ts +2 -28
  14. package/dist/application-spec/core/markers/msg-marker.js +1 -1
  15. package/dist/application-spec/core/markers/raw-eval-write-marker.d.ts +1 -1
  16. package/dist/application-spec/core/markers/raw-eval-write-marker.js +1 -1
  17. package/dist/application-spec/core/markers/raw-read-write-marker.js +1 -1
  18. package/dist/application-spec/errors/diagnostic-codes.d.ts +8 -1
  19. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  20. package/dist/application-spec/errors/diagnostic-messages.d.ts +15 -1
  21. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  22. package/dist/application-spec/generate-application/code/domain-runtime-files.d.ts +0 -19
  23. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  24. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  25. package/dist/application-spec/generate-application/code/templates/gitignore.js +2 -1
  26. package/dist/application-spec/generate-application/code/templates/index.d.ts +2 -6
  27. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  28. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +5 -4
  29. package/dist/application-spec/generate-application/code/templates/skills/core/cli.d.ts +2 -0
  30. package/dist/application-spec/generate-application/code/templates/skills/core/cli.js +1 -0
  31. package/dist/application-spec/generate-application/code/templates/skills/core/index.d.ts +3 -0
  32. package/dist/application-spec/generate-application/code/templates/skills/core/index.js +1 -0
  33. package/dist/application-spec/generate-application/code/templates/skills/core/sdk.d.ts +2 -0
  34. package/dist/application-spec/generate-application/code/templates/skills/core/sdk.js +150 -0
  35. package/dist/application-spec/generate-application/code/templates/skills/core/workflow.d.ts +2 -0
  36. package/dist/application-spec/generate-application/code/templates/skills/core/workflow.js +40 -0
  37. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout.d.ts +2 -0
  38. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout.js +1 -0
  39. package/dist/application-spec/generate-application/code/templates/skills/features/features.d.ts +3 -0
  40. package/dist/application-spec/generate-application/code/templates/skills/features/features.js +1 -0
  41. package/dist/application-spec/generate-application/code/templates/skills/features/index.d.ts +1 -0
  42. package/dist/application-spec/generate-application/code/templates/skills/features/index.js +1 -0
  43. package/dist/application-spec/generate-application/code/templates/skills/features/inspection.d.ts +2 -0
  44. package/dist/application-spec/generate-application/code/templates/skills/features/inspection.js +1 -0
  45. package/dist/application-spec/generate-application/code/templates/skills/features/variants.d.ts +2 -0
  46. package/dist/application-spec/generate-application/code/templates/skills/features/variants.js +1 -0
  47. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks.d.ts +2 -0
  48. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks.js +1 -0
  49. package/dist/application-spec/generate-application/code/templates/skills/guide.d.ts +54 -0
  50. package/dist/application-spec/generate-application/code/templates/skills/guide.js +18 -0
  51. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.d.ts +10 -0
  52. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.js +14 -0
  53. package/dist/application-spec/generate-application/code/templates/skills/processes/asset-conversion.d.ts +2 -0
  54. package/dist/application-spec/generate-application/code/templates/skills/processes/asset-conversion.js +23 -0
  55. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/evaluate.d.ts +2 -0
  56. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/evaluate.js +39 -0
  57. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/feedback.d.ts +3 -0
  58. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/feedback.js +1 -0
  59. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/index.d.ts +1 -0
  60. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/index.js +1 -0
  61. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/report.d.ts +2 -0
  62. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/report.js +7 -0
  63. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/send.d.ts +2 -0
  64. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/send.js +2 -0
  65. package/dist/application-spec/generate-application/code/templates/skills/processes/finalization.d.ts +2 -0
  66. package/dist/application-spec/generate-application/code/templates/skills/processes/finalization.js +2 -0
  67. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/build.d.ts +2 -0
  68. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/build.js +23 -0
  69. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/direction.d.ts +2 -0
  70. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/direction.js +26 -0
  71. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/first-draft.d.ts +3 -0
  72. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/first-draft.js +3 -0
  73. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/handoff.d.ts +2 -0
  74. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/handoff.js +7 -0
  75. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/index.d.ts +1 -0
  76. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/index.js +1 -0
  77. package/dist/application-spec/generate-application/code/templates/skills/processes/index.d.ts +9 -0
  78. package/dist/application-spec/generate-application/code/templates/skills/processes/index.js +1 -0
  79. package/dist/application-spec/generate-application/code/templates/skills/processes/model-migration.d.ts +2 -0
  80. package/dist/application-spec/generate-application/code/templates/skills/processes/model-migration.js +1 -0
  81. package/dist/application-spec/generate-application/code/templates/skills/{phoenix-skill.d.ts → processes/operations.d.ts} +2 -1
  82. package/dist/application-spec/generate-application/code/templates/skills/processes/operations.js +2 -0
  83. package/dist/application-spec/generate-application/code/templates/skills/processes/planning.d.ts +2 -0
  84. package/dist/application-spec/generate-application/code/templates/skills/processes/planning.js +5 -0
  85. package/dist/application-spec/generate-application/code/templates/skills/processes/review/appearance.d.ts +2 -0
  86. package/dist/application-spec/generate-application/code/templates/skills/processes/review/appearance.js +46 -0
  87. package/dist/application-spec/generate-application/code/templates/skills/processes/review/code.d.ts +2 -0
  88. package/dist/application-spec/generate-application/code/templates/skills/processes/review/code.js +2 -0
  89. package/dist/application-spec/generate-application/code/templates/skills/processes/review/hand-over.d.ts +2 -0
  90. package/dist/application-spec/generate-application/code/templates/skills/processes/review/hand-over.js +6 -0
  91. package/dist/application-spec/generate-application/code/templates/skills/processes/review/index.d.ts +1 -0
  92. package/dist/application-spec/generate-application/code/templates/skills/processes/review/index.js +1 -0
  93. package/dist/application-spec/generate-application/code/templates/skills/processes/review/review.d.ts +3 -0
  94. package/dist/application-spec/generate-application/code/templates/skills/processes/review/review.js +1 -0
  95. package/dist/application-spec/generate-application/code/templates/skills/processes/review/visual-inspection.d.ts +2 -0
  96. package/dist/application-spec/generate-application/code/templates/skills/processes/review/visual-inspection.js +13 -0
  97. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/branding.d.ts +2 -0
  98. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/branding.js +20 -0
  99. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/catalog.d.ts +2 -0
  100. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/catalog.js +1 -0
  101. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/index.d.ts +1 -0
  102. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/index.js +1 -0
  103. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/product-definition.d.ts +2 -0
  104. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/product-definition.js +22 -0
  105. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/specification.d.ts +3 -0
  106. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/specification.js +1 -0
  107. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/ux-guidelines.d.ts +2 -0
  108. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/ux-guidelines.js +25 -0
  109. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +63 -249
  110. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +3 -58
  111. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +1 -1
  112. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -1
  113. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -4
  114. package/dist/application-spec/generate-application/code/templates/tsconfig.js +2 -1
  115. package/dist/application-spec/generate-application/index.d.ts +1 -8
  116. package/dist/application-spec/generate-application/index.js +1 -1
  117. package/dist/application-spec/parse-application-files/merge/merged-assistant.d.ts +13 -4
  118. package/dist/application-spec/parse-application-files/merge/merged-assistant.js +1 -1
  119. package/dist/application-spec/parse-application-files/merge/merged-infra.d.ts +4 -11
  120. package/dist/application-spec/parse-application-files/merge/merged-transformers.d.ts +2 -4
  121. package/dist/application-spec/parse-application-files/parse-application-files.js +1 -1
  122. package/dist/application-spec/parse-application-files/raw-spec/raw-acl.d.ts +2 -2
  123. package/dist/application-spec/parse-application-files/raw-spec/raw-acl.js +1 -1
  124. package/dist/application-spec/parse-application-files/raw-spec/raw-admin-pages.d.ts +3 -24
  125. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +25 -20
  126. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  127. package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.d.ts +1 -1
  128. package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.js +1 -1
  129. package/dist/application-spec/parse-application-files/raw-spec/raw-resources.d.ts +19 -64
  130. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-pages.d.ts +3 -20
  131. package/dist/application-spec/parse-application-files/spec/application/admin-spec/states.d.ts +3 -5
  132. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/states.d.ts +3 -8
  133. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding.d.ts +3 -13
  134. package/dist/application-spec/parse-application-files/spec/components/bindings/write-binding.d.ts +4 -32
  135. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +4 -10
  136. package/dist/application-spec/parse-application-files/spec/components/components.d.ts +3 -4
  137. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -2
  138. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  139. package/dist/application-spec/parse-application-files/spec/components/sdk-component-entry.d.ts +1 -1
  140. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +2 -3
  141. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  142. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +2 -3
  143. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +2 -2
  144. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -29
  145. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  146. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.d.ts +4 -71
  147. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  148. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +2 -2
  149. package/dist/application-spec/parse-application-files/spec/invariants/invariant.d.ts +5 -21
  150. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +4 -14
  151. package/dist/application-spec/parse-application-files/spec/model/aliases.d.ts +3 -9
  152. package/dist/application-spec/parse-application-files/spec/model/common-types.d.ts +6 -14
  153. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +6 -31
  154. package/dist/application-spec/parse-application-files/spec/model/entity-types.d.ts +3 -8
  155. package/dist/application-spec/parse-application-files/spec/model/model-version-key.d.ts +3 -3
  156. package/dist/application-spec/parse-application-files/spec/model/names/action-name.d.ts +3 -7
  157. package/dist/application-spec/parse-application-files/spec/model/names/alias-name.d.ts +3 -7
  158. package/dist/application-spec/parse-application-files/spec/model/names/entity-or-alias-name.d.ts +3 -8
  159. package/dist/application-spec/parse-application-files/spec/model/names/entity-type-name.d.ts +3 -8
  160. package/dist/application-spec/parse-application-files/spec/model/names/expression-name.d.ts +3 -6
  161. package/dist/application-spec/parse-application-files/spec/model/names/instance-name.d.ts +3 -7
  162. package/dist/application-spec/parse-application-files/spec/model/names/invariant-name.d.ts +3 -3
  163. package/dist/application-spec/parse-application-files/spec/model/names/shape-property-name.d.ts +3 -11
  164. package/dist/application-spec/parse-application-files/spec/model/names/violation-type-name.d.ts +3 -3
  165. package/dist/application-spec/parse-application-files/spec/model/presets.d.ts +6 -29
  166. package/dist/application-spec/parse-application-files/spec/sections/actions.d.ts +6 -23
  167. package/dist/application-spec/parse-application-files/spec/sections/app-metadata.d.ts +3 -18
  168. package/dist/application-spec/parse-application-files/spec/sections/application-version.d.ts +3 -7
  169. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  170. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.js +1 -1
  171. package/dist/application-spec/parse-application-files/spec/sections/data-spec/chunks.d.ts +6 -23
  172. package/dist/application-spec/parse-application-files/spec/sections/data-spec/custom-data-spec.d.ts +1 -16
  173. package/dist/application-spec/parse-application-files/spec/sections/data-spec/data-entry-key.d.ts +3 -9
  174. package/dist/application-spec/parse-application-files/spec/sections/data-spec/data-spec.d.ts +1 -10
  175. package/dist/application-spec/parse-application-files/spec/sections/data-spec/swatch-data-spec.d.ts +1 -14
  176. package/dist/application-spec/parse-application-files/spec/sections/state-value.d.ts +3 -7
  177. package/dist/application-spec/parse-application-files/spec/sections/theme.d.ts +3 -10
  178. package/dist/application-spec/parse-application-files/spec/sections/transformers.d.ts +4 -11
  179. package/dist/application-spec/parse-application-files/spec/sections/ui.d.ts +3 -12
  180. package/dist/client/authorized-client.d.ts +4 -2
  181. package/dist/client/authorized-client.js +1 -1
  182. package/dist/client/contract.d.ts +34 -4
  183. package/dist/client/contract.js +1 -1
  184. package/dist/client/index.d.ts +1 -1
  185. package/dist/client/local-authorized-client.d.ts +3 -1
  186. package/dist/client/local-authorized-client.js +1 -1
  187. package/dist/client/memory-authorized-client.d.ts +4 -1
  188. package/dist/client/memory-authorized-client.js +1 -1
  189. package/dist/client/phoenix-api.d.ts +259 -1
  190. package/dist/configurator/ConfiguratorApp.js +1 -1
  191. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  192. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +92 -24
  193. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  194. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +21 -4
  195. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  196. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +70 -56
  197. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  198. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +38 -11
  199. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  200. package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.d.ts +40 -0
  201. package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.js +1 -0
  202. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  203. package/dist/configurator/application-runtime/extensions/systems/index.js +1 -1
  204. package/dist/configurator/common/configurator-interface.d.ts +2 -2
  205. package/dist/configurator/common/configurator-interface.js +1 -1
  206. package/dist/configurator/configurator-context/configurator-hooks/index.d.ts +0 -1
  207. package/dist/configurator/configurator-context/configurator-hooks/index.js +1 -1
  208. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.js +1 -1
  209. package/dist/configurator/configurator-context/index.d.ts +0 -5
  210. package/dist/configurator/configurator-context/index.js +1 -1
  211. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  212. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  213. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  214. package/dist/configurator/pages/default-configurator-elements.d.ts +6 -2
  215. package/dist/configurator/pages/default-configurator-elements.js +1 -1
  216. package/dist/configurator/pages/error-boundaries/BuiltInGeneralErrorFallback.d.ts +5 -0
  217. package/dist/configurator/pages/error-boundaries/BuiltInGeneralErrorFallback.js +1 -0
  218. package/dist/configurator/pages/error-boundaries/DevContextFallback.js +1 -1
  219. package/dist/configurator/pages/error-boundaries/DevLoadingFallback.js +1 -1
  220. package/dist/configurator/pages/error-boundaries/index.d.ts +1 -0
  221. package/dist/configurator/pages/error-boundaries/index.js +1 -1
  222. package/dist/configurator/pages/provider-slots/ContainerSlotProvider.d.ts +3 -0
  223. package/dist/configurator/pages/provider-slots/ContainerSlotProvider.js +1 -0
  224. package/dist/configurator/pages/provider-slots/LoaderSlotProvider.d.ts +3 -0
  225. package/dist/configurator/pages/provider-slots/LoaderSlotProvider.js +1 -0
  226. package/dist/configurator/pages/provider-slots/MessageHostSlotProvider.d.ts +3 -0
  227. package/dist/configurator/pages/provider-slots/MessageHostSlotProvider.js +1 -0
  228. package/dist/configurator/pages/provider-slots/SceneResourcesSlotProvider.d.ts +3 -0
  229. package/dist/configurator/pages/provider-slots/SceneResourcesSlotProvider.js +1 -0
  230. package/dist/configurator/pages/provider-slots/ThemeSlotProvider.d.ts +3 -0
  231. package/dist/configurator/pages/provider-slots/ThemeSlotProvider.js +1 -0
  232. package/dist/configurator/pages/provider-slots/configurator-provider-slot-elements.d.ts +3 -0
  233. package/dist/configurator/pages/provider-slots/configurator-provider-slot-elements.js +1 -0
  234. package/dist/configurator/pages/provider-slots/index.d.ts +6 -0
  235. package/dist/configurator/pages/provider-slots/index.js +1 -0
  236. package/dist/configurator/pages/ui-elements/BuiltInInvalidDeploymentReload.d.ts +2 -0
  237. package/dist/configurator/pages/ui-elements/BuiltInInvalidDeploymentReload.js +1 -0
  238. package/dist/configurator/pages/ui-elements/configurator-ui-elements.d.ts +3 -0
  239. package/dist/configurator/pages/ui-elements/configurator-ui-elements.js +1 -0
  240. package/dist/configurator/pages/ui-elements/index.d.ts +2 -0
  241. package/dist/configurator/pages/ui-elements/index.js +1 -0
  242. package/dist/configurator/ui/assistant/AssistantChips.d.ts +10 -0
  243. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  244. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +6 -0
  245. package/dist/configurator/ui/assistant/AssistantComposer.js +2 -1
  246. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  247. package/dist/configurator/ui/assistant/AssistantThread.d.ts +4 -3
  248. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  249. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +4 -1
  250. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -1
  251. package/dist/configurator/ui/assistant/attachments/MessageImages.d.ts +11 -0
  252. package/dist/configurator/ui/assistant/attachments/MessageImages.js +1 -0
  253. package/dist/configurator/ui/assistant/attachments/index.d.ts +2 -0
  254. package/dist/configurator/ui/assistant/attachments/index.js +1 -0
  255. package/dist/configurator/ui/assistant/attachments/prepare-image.d.ts +19 -0
  256. package/dist/configurator/ui/assistant/attachments/prepare-image.js +1 -0
  257. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -1
  258. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -1
  259. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +26 -0
  260. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -1
  261. package/dist/configurator/ui/assistant/popover/AssistantPopover.d.ts +24 -0
  262. package/dist/configurator/ui/assistant/popover/AssistantPopover.js +1 -0
  263. package/dist/configurator/ui/assistant/popover/index.d.ts +1 -0
  264. package/dist/configurator/ui/assistant/popover/index.js +1 -0
  265. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -1
  266. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -1
  267. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +1 -1
  268. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -1
  269. package/dist/configurator/ui/assistant/screenshots/index.d.ts +1 -0
  270. package/dist/configurator/ui/assistant/screenshots/index.js +1 -1
  271. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +12 -4
  272. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -1
  273. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.d.ts +8 -0
  274. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.js +1 -0
  275. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +11 -0
  276. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  277. package/dist/configurator/ui/assistant/thread-items.d.ts +2 -0
  278. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  279. package/dist/configurator/ui/assistant/tool-chip.d.ts +19 -9
  280. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  281. package/dist/configurator/ui/assistant/use-load-older-on-top.d.ts +22 -0
  282. package/dist/configurator/ui/assistant/use-load-older-on-top.js +1 -0
  283. package/dist/configurator/ui/configurator-layout/slots/canvas/GPUAccelerationDisabled.js +1 -1
  284. package/dist/configurator/ui/configurator-layout/slots/canvas/WebGLNotSupported.js +1 -1
  285. package/dist/configurator/ui/configurator-layout/slots/readonly-banner/CloneToEditDialog.js +1 -1
  286. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  287. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  288. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  289. package/dist/configurator/ui/legacy/chat/MobileChat.js +1 -1
  290. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  291. package/dist/configurator/ui/legacy/layout/simple/SimpleSidebar.js +1 -1
  292. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  293. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  294. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  295. package/dist/configurator/ui/legacy/layout/steps/StepsSideBar.js +1 -1
  296. package/dist/configurator/ui/legacy/layout/tabs/TabsSidebar.js +1 -1
  297. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  298. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  299. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/use-basic-sidebar-footer.js +1 -1
  300. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  301. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  302. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -1
  303. package/dist/docs/3d-scene/cameras/custom.mdx +4 -2
  304. package/dist/docs/drag-and-drop/room-planner.mdx +1 -1
  305. package/dist/docs/index.json +1 -1
  306. package/dist/docs/phoenix/configurator-interface.mdx +2 -2
  307. package/dist/docs/phoenix/deployments.mdx +11 -1
  308. package/dist/docs/phoenix/domain-model.mdx +4 -1
  309. package/dist/docs/phoenix/getting-started.mdx +0 -2
  310. package/dist/docs/phoenix/layout-slots.mdx +21 -0
  311. package/dist/docs/phoenix/migration-guide.mdx +10 -11
  312. package/dist/docs/phoenix/phoenix-cli.mdx +57 -15
  313. package/dist/docs/phoenix/project-structure.mdx +30 -31
  314. package/dist/docs/phoenix/sdk-builder-workflow.mdx +5 -11
  315. package/dist/docs/phoenix/testing.mdx +6 -1
  316. package/dist/docs/phoenix/webhooks.mdx +9 -1
  317. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +1 -1
  318. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  319. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  320. package/dist/domain/application/application-config.d.ts +6 -26
  321. package/dist/domain/application/assistant/assistant-fields.d.ts +1 -1
  322. package/dist/domain/application/assistant/assistant-value-type.d.ts +1 -1
  323. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +1 -2
  324. package/dist/domain/application/assistant/build-assistant-lenses.js +1 -1
  325. package/dist/domain/application/assistant/build-assistant-manifest.d.ts +1 -2
  326. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  327. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +1 -2
  328. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  329. package/dist/domain/application/assistant/index.d.ts +0 -4
  330. package/dist/domain/application/assistant/index.js +1 -1
  331. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +1 -1
  332. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +1 -1
  333. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
  334. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +3 -5
  335. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
  336. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +1 -2
  337. package/dist/domain/application/assistant-field-options.d.ts +1 -1
  338. package/dist/domain/application/assistant-mutations.d.ts +1 -1
  339. package/dist/domain/application/assistant-mutations.js +1 -1
  340. package/dist/domain/application/assistant-recipe-groups.d.ts +1 -1
  341. package/dist/domain/application/configurator-builder.d.ts +1 -2
  342. package/dist/domain/application/create-initial-published-data.d.ts +2 -1
  343. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  344. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  345. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  346. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  347. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  348. package/dist/domain/available-system-components/available-system-components.d.ts +11 -0
  349. package/dist/domain/available-system-components/available-system-components.js +1 -0
  350. package/dist/domain/available-system-components/index.d.ts +1 -0
  351. package/dist/domain/available-system-components/index.js +1 -0
  352. package/dist/domain/{domain-builder.d.ts → domain-builder/domain-builder.d.ts} +2 -2
  353. package/dist/domain/domain-builder/domain-builder.js +1 -0
  354. package/dist/domain/domain-builder/index.d.ts +1 -0
  355. package/dist/domain/domain-builder/index.js +1 -0
  356. package/dist/domain/domain-runtime/domain-runtime.d.ts +24 -24
  357. package/dist/domain/domain-runtime/index.d.ts +0 -1
  358. package/dist/domain/domain-runtime/index.js +1 -1
  359. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +1 -1
  360. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -1
  361. package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
  362. package/dist/domain/domain-runtime/spec/index.js +1 -1
  363. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  364. package/dist/domain/domain-runtime/spec/{module-checks/resolve-imported-transformers.d.ts → resolve-imported-transformers.d.ts} +3 -3
  365. package/dist/domain/domain-runtime/spec/resolve-imported-transformers.js +1 -0
  366. package/dist/domain/domain-runtime/spec/selectors.d.ts +5 -5
  367. package/dist/domain/domain-runtime/spec/types.d.ts +2 -2
  368. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +6 -0
  369. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -1
  370. package/dist/domain/extensions/export-images/index.d.ts +1 -1
  371. package/dist/domain/extensions/export-images/index.js +1 -1
  372. package/dist/domain/extensions/index.d.ts +1 -1
  373. package/dist/domain/extensions/index.js +1 -1
  374. package/dist/domain/index.d.ts +15 -2
  375. package/dist/domain/index.js +1 -1
  376. package/dist/domain/mocks/create-test-application-config.d.ts +1 -1
  377. package/dist/domain/spec/application/admin-pages-section.d.ts +29 -0
  378. package/dist/domain/spec/application/admin-pages.d.ts +26 -0
  379. package/dist/domain/spec/application/admin-states.d.ts +5 -0
  380. package/dist/domain/spec/application/configurator-states.d.ts +8 -0
  381. package/dist/domain/spec/application/index.d.ts +5 -0
  382. package/dist/domain/spec/application/index.js +1 -0
  383. package/dist/domain/spec/components/bindings/index.d.ts +2 -0
  384. package/dist/domain/spec/components/bindings/read-binding.d.ts +13 -0
  385. package/dist/domain/spec/components/bindings/read-binding.js +1 -0
  386. package/dist/domain/spec/components/bindings/write-binding.d.ts +32 -0
  387. package/dist/domain/spec/components/bindings/write-binding.js +1 -0
  388. package/dist/{application-spec/parse-application-files → domain}/spec/components/component-entry.d.ts +3 -3
  389. package/dist/domain/spec/components/component-entry.js +1 -0
  390. package/dist/{application-spec/core → domain/spec}/components/component-filter.d.ts +3 -2
  391. package/dist/domain/spec/components/component-filters.d.ts +10 -0
  392. package/dist/domain/spec/components/component-filters.js +1 -0
  393. package/dist/domain/spec/components/components.d.ts +4 -0
  394. package/dist/domain/spec/components/components.js +1 -0
  395. package/dist/domain/spec/components/index.d.ts +6 -0
  396. package/dist/domain/spec/enhanced-json/enhanced-json-value.d.ts +30 -0
  397. package/dist/domain/spec/enhanced-json/enhanced-json-value.js +1 -0
  398. package/dist/domain/spec/enhanced-json/index.d.ts +1 -0
  399. package/dist/domain/spec/enhanced-json/index.js +1 -0
  400. package/dist/{application-spec/parse-application-files → domain}/spec/expressions/expression.d.ts +9 -3
  401. package/dist/domain/spec/expressions/expression.js +1 -0
  402. package/dist/domain/spec/expressions/expressions.d.ts +27 -0
  403. package/dist/domain/spec/expressions/expressions.js +1 -0
  404. package/dist/domain/spec/expressions/index.d.ts +5 -0
  405. package/dist/domain/spec/expressions/memo-eval-plan.d.ts +70 -0
  406. package/dist/domain/spec/expressions/memo-eval-plan.js +1 -0
  407. package/dist/domain/spec/expressions/relation-expression-params.js +1 -0
  408. package/dist/domain/spec/index.d.ts +4 -0
  409. package/dist/domain/spec/index.js +1 -0
  410. package/dist/domain/spec/invariants/index.d.ts +2 -0
  411. package/dist/domain/spec/invariants/index.js +1 -0
  412. package/dist/domain/spec/invariants/invariant.d.ts +24 -0
  413. package/dist/domain/spec/invariants/invariant.js +1 -0
  414. package/dist/domain/spec/invariants/invariants.d.ts +14 -0
  415. package/dist/domain/spec/invariants/invariants.js +1 -0
  416. package/dist/domain/spec/json-schema.d.ts +52 -0
  417. package/dist/domain/spec/json-schema.js +1 -0
  418. package/dist/domain/spec/markers/index.d.ts +3 -0
  419. package/dist/domain/spec/markers/index.js +1 -0
  420. package/dist/domain/spec/markers/msg-marker.d.ts +28 -0
  421. package/dist/domain/spec/markers/msg-marker.js +1 -0
  422. package/dist/domain/spec/model/aliases.d.ts +9 -0
  423. package/dist/domain/spec/model/aliases.js +1 -0
  424. package/dist/domain/spec/model/common-types.d.ts +15 -0
  425. package/dist/domain/spec/model/common-types.js +1 -0
  426. package/dist/domain/spec/model/defaults.d.ts +33 -0
  427. package/dist/domain/spec/model/defaults.js +1 -0
  428. package/dist/domain/spec/model/entity-types.d.ts +8 -0
  429. package/dist/domain/spec/model/entity-types.js +1 -0
  430. package/dist/domain/spec/model/index.d.ts +7 -0
  431. package/dist/domain/spec/model/index.js +1 -0
  432. package/dist/domain/spec/model/model-version-key.d.ts +3 -0
  433. package/dist/domain/spec/model/model-version-key.js +1 -0
  434. package/dist/domain/spec/model/names/action-name.d.ts +7 -0
  435. package/dist/domain/spec/model/names/action-name.js +1 -0
  436. package/dist/domain/spec/model/names/alias-name.d.ts +7 -0
  437. package/dist/domain/spec/model/names/alias-name.js +1 -0
  438. package/dist/domain/spec/model/names/entity-or-alias-name.d.ts +8 -0
  439. package/dist/domain/spec/model/names/entity-or-alias-name.js +1 -0
  440. package/dist/domain/spec/model/names/entity-type-name.d.ts +8 -0
  441. package/dist/domain/spec/model/names/entity-type-name.js +1 -0
  442. package/dist/domain/spec/model/names/expression-name.d.ts +6 -0
  443. package/dist/domain/spec/model/names/expression-name.js +1 -0
  444. package/dist/domain/spec/model/names/index.d.ts +9 -0
  445. package/dist/domain/spec/model/names/index.js +1 -0
  446. package/dist/domain/spec/model/names/instance-name.d.ts +7 -0
  447. package/dist/domain/spec/model/names/instance-name.js +1 -0
  448. package/dist/domain/spec/model/names/invariant-name.d.ts +3 -0
  449. package/dist/domain/spec/model/names/invariant-name.js +1 -0
  450. package/dist/domain/spec/model/names/shape-property-name.d.ts +11 -0
  451. package/dist/domain/spec/model/names/shape-property-name.js +1 -0
  452. package/dist/domain/spec/model/names/violation-type-name.d.ts +3 -0
  453. package/dist/domain/spec/model/names/violation-type-name.js +1 -0
  454. package/dist/domain/spec/model/presets.d.ts +30 -0
  455. package/dist/domain/spec/model/presets.js +1 -0
  456. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/element-registration.d.ts +1 -1
  457. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/find-assistant-form-element-errors.d.ts +1 -1
  458. package/dist/domain/spec/modules/find-assistant-form-element-errors.js +1 -0
  459. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/index.d.ts +2 -3
  460. package/dist/domain/spec/modules/index.js +1 -0
  461. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/merge-expression-modules.d.ts +2 -2
  462. package/dist/domain/spec/modules/merge-expression-modules.js +1 -0
  463. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/project-modules.d.ts +1 -1
  464. package/dist/domain/spec/modules/project-modules.js +1 -0
  465. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-action-modules.d.ts +1 -1
  466. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-component-optic-modules.d.ts +1 -1
  467. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-expression-modules.d.ts +1 -1
  468. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-invariant-modules.d.ts +1 -1
  469. package/dist/domain/spec/phx/index.d.ts +1 -0
  470. package/dist/domain/spec/phx/index.js +1 -0
  471. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-application-types.d.ts +1 -1
  472. package/dist/domain/spec/phx/phx-application-types.js +1 -0
  473. package/dist/domain/spec/phx/phx-domain.js +1 -0
  474. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-model.d.ts +2 -2
  475. package/dist/domain/spec/phx/phx-model.js +1 -0
  476. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx.d.ts +1 -2
  477. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/admin-runtime.d.ts +7 -6
  478. package/dist/domain/spec/runtime/admin-runtime/admin-runtime.js +1 -0
  479. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/admin-spec-runtime.d.ts +2 -2
  480. package/dist/domain/spec/runtime/admin-runtime/admin-spec-runtime.js +1 -0
  481. package/dist/domain/spec/runtime/admin-runtime/index.d.ts +2 -0
  482. package/dist/domain/spec/runtime/admin-runtime/index.js +1 -0
  483. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/states-runtime.d.ts +1 -1
  484. package/dist/{application-spec/generate-application → domain/spec}/runtime/application-runtime.d.ts +8 -6
  485. package/dist/domain/spec/runtime/application-runtime.js +1 -0
  486. package/dist/{application-spec/generate-application → domain/spec}/runtime/application-spec-slice.d.ts +3 -1
  487. package/dist/domain/spec/runtime/application-spec-slice.js +1 -0
  488. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/configurator-runtime.d.ts +8 -10
  489. package/dist/domain/spec/runtime/configurator-runtime/configurator-runtime.js +1 -0
  490. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/configurator-spec-runtime.d.ts +2 -2
  491. package/dist/domain/spec/runtime/configurator-runtime/configurator-spec-runtime.js +1 -0
  492. package/dist/domain/spec/runtime/configurator-runtime/index.d.ts +2 -0
  493. package/dist/domain/spec/runtime/configurator-runtime/index.js +1 -0
  494. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/states-runtime.d.ts +1 -1
  495. package/dist/{application-spec/generate-application → domain/spec}/runtime/create-application.d.ts +3 -2
  496. package/dist/domain/spec/runtime/create-application.js +1 -0
  497. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/expression-runtime.d.ts +5 -3
  498. package/dist/domain/spec/runtime/expressions/expression-runtime.js +1 -0
  499. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/generate-memo-eval-plan-runtime.d.ts +2 -2
  500. package/dist/domain/spec/runtime/expressions/generate-memo-eval-plan-runtime.js +1 -0
  501. package/dist/domain/spec/runtime/expressions/index.d.ts +3 -0
  502. package/dist/domain/spec/runtime/expressions/index.js +1 -0
  503. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/reflection-constants-runtime.d.ts +2 -1
  504. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/factory-data-runtime.d.ts +4 -3
  505. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/recipe-defaults.d.ts +1 -1
  506. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/recipe-defaults.js +1 -1
  507. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/static-violations.d.ts +2 -2
  508. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/static-violations.js +1 -1
  509. package/dist/{application-spec/generate-application → domain/spec}/runtime/generate-runtime-instance.d.ts +1 -1
  510. package/dist/domain/spec/runtime/generate-runtime-instance.js +1 -0
  511. package/dist/domain/spec/runtime/index.d.ts +13 -0
  512. package/dist/domain/spec/runtime/index.js +1 -0
  513. package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/migration-runtime.d.ts +2 -2
  514. package/dist/domain/spec/runtime/migrations/migration-runtime.js +1 -0
  515. package/dist/{application-spec/generate-application/runtime/admin-runtime → domain/spec/runtime/model}/admin-model-runtime.d.ts +4 -3
  516. package/dist/domain/spec/runtime/model/admin-model-runtime.js +1 -0
  517. package/dist/{application-spec/generate-application/runtime/configurator-runtime → domain/spec/runtime/model}/configurator-model-runtime.d.ts +4 -3
  518. package/dist/domain/spec/runtime/model/configurator-model-runtime.js +1 -0
  519. package/dist/domain/spec/runtime/model/index.d.ts +2 -0
  520. package/dist/domain/spec/runtime/model/index.js +1 -0
  521. package/dist/domain/spec/runtime/optics/build-sdk-optic.d.ts +7 -0
  522. package/dist/domain/spec/runtime/optics/build-sdk-optic.js +1 -0
  523. package/dist/domain/spec/runtime/optics/build-user-bound-optic.d.ts +7 -0
  524. package/dist/domain/spec/runtime/optics/build-user-bound-optic.js +1 -0
  525. package/dist/domain/spec/runtime/optics/built-component-optic.d.ts +11 -0
  526. package/dist/domain/spec/runtime/optics/built-component-optic.js +1 -0
  527. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/optics}/component-optic.d.ts +4 -14
  528. package/dist/domain/spec/runtime/optics/index.d.ts +2 -0
  529. package/dist/domain/spec/runtime/optics/index.js +1 -0
  530. package/dist/{application-spec/caching → domain/spec/runtime}/runtime-reference-store.d.ts +1 -5
  531. package/dist/domain/spec/runtime/runtime-reference-store.js +1 -0
  532. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/actions-runtime.d.ts +3 -3
  533. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/assistant-runtime.d.ts +2 -2
  534. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/data-runtime.d.ts +1 -1
  535. package/dist/domain/spec/runtime/sections/index.d.ts +6 -0
  536. package/dist/domain/spec/runtime/sections/index.js +1 -0
  537. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/preset-runtime.d.ts +4 -4
  538. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/theme-runtime.d.ts +1 -1
  539. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/transformers-runtime.d.ts +2 -2
  540. package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/resolve-spec-code.d.ts +1 -1
  541. package/dist/domain/spec/runtime/spec-code/spec-code-module.js +1 -0
  542. package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-runtime.d.ts +3 -3
  543. package/dist/domain/spec/runtime/spec-runtime.js +1 -0
  544. package/dist/domain/spec/runtime-spec/index.d.ts +4 -0
  545. package/dist/domain/spec/runtime-spec/index.js +1 -0
  546. package/dist/domain/spec/runtime-spec/runtime-spec.d.ts +174 -0
  547. package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/spec-code-id.d.ts +1 -1
  548. package/dist/domain/spec/sections/actions.d.ts +23 -0
  549. package/dist/domain/spec/sections/actions.js +1 -0
  550. package/dist/domain/spec/sections/app-metadata.d.ts +18 -0
  551. package/dist/domain/spec/sections/app-metadata.js +1 -0
  552. package/dist/domain/spec/sections/application-version.d.ts +7 -0
  553. package/dist/domain/spec/sections/application-version.js +1 -0
  554. package/dist/domain/{application → spec/sections}/assistant/assistant-manifest.d.ts +13 -3
  555. package/dist/domain/{application → spec/sections}/assistant/assistant-resolved-manifest.d.ts +5 -9
  556. package/dist/domain/spec/sections/assistant/assistant-resolved-manifest.js +1 -0
  557. package/dist/domain/spec/sections/assistant/index.d.ts +4 -0
  558. package/dist/domain/spec/sections/assistant/index.js +1 -0
  559. package/dist/domain/spec/sections/data-spec/chunks.d.ts +23 -0
  560. package/dist/domain/spec/sections/data-spec/chunks.js +1 -0
  561. package/dist/domain/spec/sections/data-spec/custom-data-spec-entry.d.ts +16 -0
  562. package/dist/domain/spec/sections/data-spec/custom-data-spec-entry.js +1 -0
  563. package/dist/domain/spec/sections/data-spec/data-entry-key.d.ts +9 -0
  564. package/dist/domain/spec/sections/data-spec/data-entry-key.js +1 -0
  565. package/dist/domain/spec/sections/data-spec/index.d.ts +5 -0
  566. package/dist/domain/spec/sections/data-spec/index.js +1 -0
  567. package/dist/domain/spec/sections/data-spec/parsed-data-spec-entries.d.ts +10 -0
  568. package/dist/domain/spec/sections/data-spec/parsed-data-spec-entries.js +1 -0
  569. package/dist/domain/spec/sections/data-spec/swatch-data-spec-entry.d.ts +14 -0
  570. package/dist/domain/spec/sections/data-spec/swatch-data-spec-entry.js +1 -0
  571. package/dist/domain/spec/sections/index.d.ts +10 -0
  572. package/dist/domain/spec/sections/index.js +1 -0
  573. package/dist/domain/spec/sections/infra/acl.d.ts +12 -0
  574. package/dist/domain/spec/sections/infra/acl.js +1 -0
  575. package/dist/domain/spec/sections/infra/index.d.ts +3 -0
  576. package/dist/domain/spec/sections/infra/index.js +1 -0
  577. package/dist/domain/spec/sections/infra/resource-entry.d.ts +46 -0
  578. package/dist/domain/spec/sections/infra/resource-entry.js +1 -0
  579. package/dist/domain/spec/sections/infra/resources-config.d.ts +10 -0
  580. package/dist/domain/spec/sections/infra/resources-config.js +1 -0
  581. package/dist/domain/spec/sections/state-value.d.ts +7 -0
  582. package/dist/domain/spec/sections/state-value.js +1 -0
  583. package/dist/domain/spec/sections/theme.d.ts +10 -0
  584. package/dist/domain/spec/sections/theme.js +1 -0
  585. package/dist/domain/spec/sections/transformers.d.ts +15 -0
  586. package/dist/domain/spec/sections/transformers.js +1 -0
  587. package/dist/domain/spec/sections/ui.d.ts +12 -0
  588. package/dist/domain/spec/sections/ui.js +1 -0
  589. package/dist/domain/system-definitions.js +1 -1
  590. package/dist/domain/utils/index.d.ts +2 -0
  591. package/dist/domain/utils/index.js +1 -0
  592. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  593. package/dist/i18n/locales/cs/messages.js +1 -1
  594. package/dist/i18n/locales/da/messages.js +1 -1
  595. package/dist/i18n/locales/de/messages.js +1 -1
  596. package/dist/i18n/locales/de-AT/messages.js +1 -1
  597. package/dist/i18n/locales/en/messages.js +1 -1
  598. package/dist/i18n/locales/en-AU/messages.js +1 -1
  599. package/dist/i18n/locales/en-GB/messages.js +1 -1
  600. package/dist/i18n/locales/es/messages.js +1 -1
  601. package/dist/i18n/locales/fr/messages.js +1 -1
  602. package/dist/i18n/locales/hu/messages.js +1 -1
  603. package/dist/i18n/locales/it/messages.js +1 -1
  604. package/dist/i18n/locales/nl/messages.js +1 -1
  605. package/dist/i18n/locales/pl/messages.js +1 -1
  606. package/dist/i18n/locales/pt/messages.js +1 -1
  607. package/dist/i18n/locales/ro/messages.js +1 -1
  608. package/dist/i18n/locales/sk/messages.js +1 -1
  609. package/dist/i18n/locales/tr/messages.js +1 -1
  610. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +2 -2
  611. package/dist/legacy/phoenix-cli/services/webhook-service/transport.js +1 -1
  612. package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.d.ts +1 -0
  613. package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.js +1 -1
  614. package/dist/legacy/webhook-cli/lambda-local/index.js +1 -1
  615. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  616. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +1 -0
  617. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  618. package/dist/phoenix/application-spec/generate-project-files.d.ts +1 -0
  619. package/dist/phoenix/application-spec/index.d.ts +2 -0
  620. package/dist/phoenix/application-spec/index.js +1 -1
  621. package/dist/phoenix/application-spec/project-files.d.ts +8 -2
  622. package/dist/phoenix/application-spec/project-files.js +1 -1
  623. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +11 -0
  624. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  625. package/dist/phoenix/bin.js +1 -1
  626. package/dist/phoenix/cli.js +1 -1
  627. package/dist/phoenix/commands/activate-deployment.js +1 -1
  628. package/dist/phoenix/commands/build.js +1 -1
  629. package/dist/phoenix/commands/changelog.js +1 -1
  630. package/dist/phoenix/commands/check.js +1 -1
  631. package/dist/phoenix/commands/clean.js +1 -1
  632. package/dist/phoenix/commands/cleanup-environment.js +2 -2
  633. package/dist/phoenix/commands/create-environment.js +1 -1
  634. package/dist/phoenix/commands/data.js +1 -1
  635. package/dist/phoenix/commands/deploy.js +1 -1
  636. package/dist/phoenix/commands/deployment-build-envs-command.js +1 -1
  637. package/dist/phoenix/commands/dev.js +4 -5
  638. package/dist/phoenix/commands/docs.js +1 -1
  639. package/dist/phoenix/commands/finish-deployment-command.js +1 -1
  640. package/dist/phoenix/commands/fix.js +1 -1
  641. package/dist/phoenix/commands/index.d.ts +1 -1
  642. package/dist/phoenix/commands/index.js +1 -1
  643. package/dist/phoenix/commands/inspect-assets.js +1 -1
  644. package/dist/phoenix/commands/list-environments.js +1 -1
  645. package/dist/phoenix/commands/login.d.ts +4 -1
  646. package/dist/phoenix/commands/login.js +2 -2
  647. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  648. package/dist/phoenix/commands/register-deployment.js +1 -1
  649. package/dist/phoenix/commands/scene.js +1 -1
  650. package/dist/phoenix/commands/screenshot.js +1 -1
  651. package/dist/phoenix/commands/state.js +1 -1
  652. package/dist/phoenix/commands/story-build.js +3 -3
  653. package/dist/phoenix/commands/story-create.js +1 -1
  654. package/dist/phoenix/commands/story-dev.js +2 -2
  655. package/dist/phoenix/commands/sync.js +1 -1
  656. package/dist/phoenix/commands/variants.js +1 -1
  657. package/dist/phoenix/editor-server/commands-router.js +1 -1
  658. package/dist/phoenix/editor-server/editor-server.d.ts +2 -13
  659. package/dist/phoenix/editor-server/editor-server.js +1 -1
  660. package/dist/phoenix/editor-server/spec-router.js +1 -1
  661. package/dist/phoenix/editor-server/trpc.d.ts +2 -12
  662. package/dist/phoenix/lingui/index.d.ts +1 -0
  663. package/dist/phoenix/lingui/index.js +1 -0
  664. package/dist/phoenix/lingui/lingui.d.ts +18 -0
  665. package/dist/phoenix/lingui/lingui.js +1 -0
  666. package/dist/phoenix/services/application-spec-project-watcher.d.ts +11 -6
  667. package/dist/phoenix/services/application-spec-project-watcher.js +2 -2
  668. package/dist/phoenix/services/cli-credentials.d.ts +3 -0
  669. package/dist/phoenix/services/cli-credentials.js +1 -1
  670. package/dist/phoenix/services/cli-exit.d.ts +5 -0
  671. package/dist/phoenix/services/cli-exit.js +1 -0
  672. package/dist/phoenix/services/deployment/deployment-preparation-service.d.ts +28 -0
  673. package/dist/phoenix/services/deployment/deployment-preparation-service.js +1 -0
  674. package/dist/phoenix/{commands → services/deployment}/generated-env-markers.d.ts +1 -0
  675. package/dist/phoenix/services/deployment/generated-env-markers.js +1 -0
  676. package/dist/phoenix/services/deployment/index.d.ts +2 -0
  677. package/dist/phoenix/services/deployment/index.js +1 -0
  678. package/dist/phoenix/services/index.d.ts +5 -1
  679. package/dist/phoenix/services/index.js +1 -1
  680. package/dist/phoenix/services/lingui-watcher.js +1 -1
  681. package/dist/phoenix/services/phoenix-store.d.ts +3 -0
  682. package/dist/phoenix/services/phoenix-store.js +1 -1
  683. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  684. package/dist/phoenix/services/session/editor-server-handle.d.ts +5 -0
  685. package/dist/phoenix/services/session/editor-server-handle.js +1 -0
  686. package/dist/phoenix/services/session/index.d.ts +2 -0
  687. package/dist/phoenix/services/session/index.js +1 -0
  688. package/dist/phoenix/services/session/phoenix-application.d.ts +82 -0
  689. package/dist/phoenix/services/session/phoenix-application.js +2 -0
  690. package/dist/phoenix/services/source-archive.d.ts +2 -0
  691. package/dist/phoenix/services/source-archive.js +1 -1
  692. package/dist/phoenix/services/swc.d.ts +5 -4
  693. package/dist/phoenix/services/swc.js +2 -2
  694. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.d.ts +9 -0
  695. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.js +1 -0
  696. package/dist/phoenix/services/telemetry/index.d.ts +3 -0
  697. package/dist/phoenix/services/telemetry/index.js +1 -0
  698. package/dist/phoenix/services/telemetry/telemetry-client.d.ts +25 -0
  699. package/dist/phoenix/services/telemetry/telemetry-client.js +1 -0
  700. package/dist/phoenix/services/telemetry/telemetry-command.d.ts +2 -0
  701. package/dist/phoenix/services/telemetry/telemetry-command.js +1 -0
  702. package/dist/phoenix/services/telemetry/telemetry-event.d.ts +44 -0
  703. package/dist/phoenix/services/telemetry/telemetry-event.js +1 -0
  704. package/dist/phoenix/services/telemetry/telemetry-state.d.ts +25 -0
  705. package/dist/phoenix/services/telemetry/telemetry-state.js +2 -0
  706. package/dist/phoenix/services/vite-config.js +1 -1
  707. package/dist/phoenix/services/webhook-service/transport.js +1 -1
  708. package/dist/phoenix/services/webhook-service/tunnel.d.ts +1 -0
  709. package/dist/phoenix/services/webhook-service/tunnel.js +1 -1
  710. package/dist/react-sdk/application-runtime/domain-application-context/chat-system.d.ts +1 -1
  711. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/ConfiguratorRoutingProvider.d.ts +1 -1
  712. package/dist/react-sdk/configurator-routing/ConfiguratorRoutingProvider.js +1 -0
  713. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/OnGoToIndexHandler.d.ts +1 -2
  714. package/dist/react-sdk/configurator-routing/OnGoToIndexHandler.js +1 -0
  715. package/dist/react-sdk/configurator-routing/index.d.ts +3 -0
  716. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/index.js +1 -1
  717. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/use-power-routing-lifecycle.d.ts +2 -0
  718. package/dist/react-sdk/configurator-routing/use-power-routing-lifecycle.js +1 -0
  719. package/dist/react-sdk/configurator-ui-elements/ConfiguratorUiElementHost.d.ts +7 -0
  720. package/dist/react-sdk/configurator-ui-elements/ConfiguratorUiElementHost.js +1 -0
  721. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackElement.d.ts +14 -0
  722. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackElement.js +1 -0
  723. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackPropsProvider.d.ts +18 -0
  724. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackPropsProvider.js +1 -0
  725. package/dist/react-sdk/configurator-ui-elements/PlainErrorFallback.d.ts +5 -0
  726. package/dist/react-sdk/configurator-ui-elements/PlainErrorFallback.js +1 -0
  727. package/dist/react-sdk/configurator-ui-elements/configurator-ui-element.d.ts +17 -0
  728. package/dist/react-sdk/configurator-ui-elements/configurator-ui-element.js +1 -0
  729. package/dist/react-sdk/configurator-ui-elements/create-configurator-ui-element.d.ts +5 -0
  730. package/dist/react-sdk/configurator-ui-elements/create-configurator-ui-element.js +1 -0
  731. package/dist/react-sdk/configurator-ui-elements/index.d.ts +6 -0
  732. package/dist/react-sdk/configurator-ui-elements/index.js +1 -0
  733. package/dist/react-sdk/domain-application-context/BackendDataProvider.js +1 -1
  734. package/dist/react-sdk/domain-application-context/ConfigurationPersistSystemFailureHandler.js +1 -1
  735. package/dist/react-sdk/domain-application-context/FrontendDataProvider.js +1 -1
  736. package/dist/react-sdk/domain-application-context/OnPresetLoadedHandler.js +1 -0
  737. package/dist/react-sdk/domain-application-context/PublishedDataProvider.js +1 -1
  738. package/dist/react-sdk/domain-application-context/chat-hooks.d.ts +4 -0
  739. package/dist/react-sdk/domain-application-context/chat-hooks.js +1 -0
  740. package/dist/react-sdk/domain-application-context/index.d.ts +2 -0
  741. package/dist/react-sdk/domain-application-context/index.js +1 -1
  742. package/dist/react-sdk/elements/PhoenixEntityElement.js +1 -1
  743. package/dist/react-sdk/elements/PhoenixLayoutElement.js +1 -1
  744. package/dist/react-sdk/index.d.ts +7 -0
  745. package/dist/react-sdk/index.js +1 -1
  746. package/dist/react-sdk/integration/IntegrationSubscription.js +1 -0
  747. package/dist/react-sdk/integration/index.d.ts +1 -0
  748. package/dist/react-sdk/integration/index.js +1 -0
  749. package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.d.ts +8 -0
  750. package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.js +1 -0
  751. package/dist/react-sdk/lifecycle-providers/LifecycleProviders.js +1 -0
  752. package/dist/react-sdk/lifecycle-providers/index.d.ts +2 -0
  753. package/dist/react-sdk/lifecycle-providers/index.js +1 -0
  754. package/dist/react-sdk/notifications/index.d.ts +1 -0
  755. package/dist/react-sdk/notifications/index.js +1 -0
  756. package/dist/react-sdk/notifications/snackbar-action-button.d.ts +30 -0
  757. package/dist/react-sdk/notifications/snackbar-action-button.js +1 -0
  758. package/dist/react-sdk/preset-selection/PresetSelectionProvider.js +1 -0
  759. package/dist/react-sdk/preset-selection/index.d.ts +1 -0
  760. package/dist/react-sdk/preset-selection/index.js +1 -0
  761. package/dist/react-sdk/provider-slots/ConfiguratorProviderSlotHost.d.ts +11 -0
  762. package/dist/react-sdk/provider-slots/ConfiguratorProviderSlotHost.js +1 -0
  763. package/dist/react-sdk/provider-slots/configurator-provider-slot.d.ts +24 -0
  764. package/dist/react-sdk/provider-slots/configurator-provider-slot.js +1 -0
  765. package/dist/react-sdk/provider-slots/create-configurator-provider-slot.d.ts +5 -0
  766. package/dist/react-sdk/provider-slots/create-configurator-provider-slot.js +1 -0
  767. package/dist/react-sdk/provider-slots/index.d.ts +3 -0
  768. package/dist/react-sdk/provider-slots/index.js +1 -0
  769. package/dist/react-sdk/session/SessionServiceProvider.d.ts +5 -0
  770. package/dist/react-sdk/session/SessionServiceProvider.js +1 -1
  771. package/dist/ui-sdk/components/numerical-input/InputField.d.ts +2 -0
  772. package/dist/ui-sdk/components/numerical-input/InputField.js +1 -1
  773. package/dist/ui-sdk/components/numerical-input/NumericalInput.d.ts +2 -2
  774. package/dist/ui-sdk/components/numerical-input/Slider.d.ts +3 -1
  775. package/dist/ui-sdk/components/numerical-input/Slider.js +1 -1
  776. package/dist/ui-sdk/components/snackbar/Snackbar.d.ts +24 -3
  777. package/dist/ui-sdk/components/snackbar/Snackbar.js +1 -1
  778. package/dist/ui-sdk/icons/__generated/Paperclip.d.ts +3 -0
  779. package/dist/ui-sdk/icons/__generated/Paperclip.js +1 -0
  780. package/dist/ui-sdk/icons/__generated/index.d.ts +2 -0
  781. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  782. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  783. package/dist/ui-sdk/theme/types.d.ts +1 -1
  784. package/dist/watch/glob-matcher.d.ts +4 -4
  785. package/dist/watch/glob-matcher.js +1 -1
  786. package/dist/watch/watch.d.ts +4 -4
  787. package/dist/watch/watch.js +1 -1
  788. package/package.json +3 -3
  789. package/schema/domain-spec.json +22 -4
  790. package/dist/application-spec/caching/runtime-reference-store.js +0 -1
  791. package/dist/application-spec/core/components/index.d.ts +0 -2
  792. package/dist/application-spec/core/expressions/index.d.ts +0 -2
  793. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.d.ts +0 -1
  794. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +0 -1
  795. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.d.ts +0 -3
  796. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +0 -166
  797. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.d.ts +0 -1
  798. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +0 -54
  799. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.d.ts +0 -1
  800. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +0 -115
  801. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +0 -1
  802. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.d.ts +0 -1
  803. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +0 -6
  804. package/dist/application-spec/generate-application/implementations/phx-application-types.js +0 -1
  805. package/dist/application-spec/generate-application/implementations/phx-domain.js +0 -1
  806. package/dist/application-spec/generate-application/implementations/phx-model.js +0 -1
  807. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +0 -1
  808. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +0 -1
  809. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.js +0 -1
  810. package/dist/application-spec/generate-application/runtime/application-runtime.js +0 -1
  811. package/dist/application-spec/generate-application/runtime/application-spec-slice.js +0 -1
  812. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +0 -1
  813. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +0 -1
  814. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.js +0 -1
  815. package/dist/application-spec/generate-application/runtime/create-application.js +0 -1
  816. package/dist/application-spec/generate-application/runtime/generate-runtime-instance.js +0 -1
  817. package/dist/application-spec/generate-application/runtime/index.d.ts +0 -8
  818. package/dist/application-spec/generate-application/runtime/index.js +0 -1
  819. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +0 -1
  820. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +0 -8
  821. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +0 -1
  822. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +0 -8
  823. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +0 -1
  824. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +0 -1
  825. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +0 -1
  826. package/dist/application-spec/generate-application/runtime/sections/index.d.ts +0 -10
  827. package/dist/application-spec/generate-application/runtime/sections/index.js +0 -1
  828. package/dist/application-spec/generate-application/runtime/spec-runtime.js +0 -1
  829. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +0 -5
  830. package/dist/application-spec/generate-application/runtime-spec/index.js +0 -1
  831. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +0 -103
  832. package/dist/configurator/application-runtime/extensions/systems/assistant-system/browser-details.d.ts +0 -17
  833. package/dist/configurator/application-runtime/extensions/systems/assistant-system/browser-details.js +0 -1
  834. package/dist/configurator/configurator-context/ConfiguratorDataProvider.d.ts +0 -2
  835. package/dist/configurator/configurator-context/ConfiguratorDataProvider.js +0 -1
  836. package/dist/configurator/configurator-context/IntegrationSubscription.js +0 -1
  837. package/dist/configurator/configurator-context/LifecycleProviders.js +0 -1
  838. package/dist/configurator/configurator-context/OnPresetLoadedHandler.js +0 -1
  839. package/dist/configurator/configurator-context/PresetSelectionProvider.js +0 -1
  840. package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.d.ts +0 -1
  841. package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.js +0 -1
  842. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +0 -1
  843. package/dist/configurator/configurator-context/configurator-routing/OnGoToIndexHandler.js +0 -1
  844. package/dist/configurator/configurator-context/configurator-routing/index.d.ts +0 -2
  845. package/dist/configurator/configurator-context/configurator-routing/use-power-routing-lifecycle.js +0 -1
  846. package/dist/domain/available-system-components.d.ts +0 -11
  847. package/dist/domain/available-system-components.js +0 -1
  848. package/dist/domain/domain-builder.js +0 -1
  849. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +0 -1
  850. package/dist/domain/domain-runtime/spec/module-checks/index.js +0 -1
  851. package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.js +0 -1
  852. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +0 -1
  853. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +0 -1
  854. package/dist/phoenix/commands/generated-env-markers.js +0 -1
  855. package/dist/phoenix/services/lingui.d.ts +0 -15
  856. package/dist/phoenix/services/lingui.js +0 -1
  857. package/dist/phoenix/services/phoenix-application.d.ts +0 -21
  858. package/dist/phoenix/services/phoenix-application.js +0 -1
  859. /package/dist/configurator/{configurator-context → pages/provider-slots}/ConfiguratorResponsiveProvider.d.ts +0 -0
  860. /package/dist/configurator/{configurator-context → pages/provider-slots}/ConfiguratorResponsiveProvider.js +0 -0
  861. /package/dist/{application-spec/core/expressions/relation-expression-params.js → domain/spec/application/admin-pages-section.js} +0 -0
  862. /package/dist/{application-spec/generate-application/runtime/spec-code/spec-code-module.js → domain/spec/application/admin-pages.js} +0 -0
  863. /package/dist/{application-spec/parse-application-files/spec/components/component-entry.js → domain/spec/application/admin-states.js} +0 -0
  864. /package/dist/{application-spec/core → domain/spec/application}/application-instance.d.ts +0 -0
  865. /package/dist/{application-spec/core → domain/spec/application}/application-instance.js +0 -0
  866. /package/dist/{application-spec/parse-application-files/spec/expressions/expression.js → domain/spec/application/configurator-states.js} +0 -0
  867. /package/dist/domain/{application/assistant/assistant-manifest.js → spec/components/bindings/index.js} +0 -0
  868. /package/dist/{application-spec/core → domain/spec}/components/component-filter.js +0 -0
  869. /package/dist/{application-spec/core → domain/spec}/components/index.js +0 -0
  870. /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.d.ts +0 -0
  871. /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.js +0 -0
  872. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error-collector.d.ts +0 -0
  873. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error-collector.js +0 -0
  874. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error.d.ts +0 -0
  875. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error.js +0 -0
  876. /package/dist/domain/{domain-runtime → spec}/errors/implementation-errors.d.ts +0 -0
  877. /package/dist/domain/{domain-runtime → spec}/errors/implementation-errors.js +0 -0
  878. /package/dist/domain/{domain-runtime → spec}/errors/index.d.ts +0 -0
  879. /package/dist/domain/{domain-runtime → spec}/errors/index.js +0 -0
  880. /package/dist/domain/{domain-runtime → spec}/errors/to-implementation-errors.d.ts +0 -0
  881. /package/dist/domain/{domain-runtime → spec}/errors/to-implementation-errors.js +0 -0
  882. /package/dist/{application-spec/core → domain/spec}/expressions/index.js +0 -0
  883. /package/dist/{application-spec/core → domain/spec}/expressions/relation-expression-params.d.ts +0 -0
  884. /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.d.ts +0 -0
  885. /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.js +0 -0
  886. /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.d.ts +0 -0
  887. /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.js +0 -0
  888. /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.d.ts +0 -0
  889. /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.js +0 -0
  890. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/element-registration.js +0 -0
  891. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/handler-registration.d.ts +0 -0
  892. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/handler-registration.js +0 -0
  893. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-action-modules.js +0 -0
  894. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-component-optic-modules.js +0 -0
  895. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-expression-modules.js +0 -0
  896. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-invariant-modules.js +0 -0
  897. /package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-domain.d.ts +0 -0
  898. /package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx.js +0 -0
  899. /package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/states-runtime.js +0 -0
  900. /package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/states-runtime.js +0 -0
  901. /package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/reflection-constants-runtime.js +0 -0
  902. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/factory-data-runtime.js +0 -0
  903. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/index.d.ts +0 -0
  904. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/index.js +0 -0
  905. /package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/index.d.ts +0 -0
  906. /package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/index.js +0 -0
  907. /package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/optics}/component-optic.js +0 -0
  908. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/actions-runtime.js +0 -0
  909. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/assistant-runtime.js +0 -0
  910. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/data-runtime.js +0 -0
  911. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/preset-runtime.js +0 -0
  912. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/theme-runtime.js +0 -0
  913. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/transformers-runtime.js +0 -0
  914. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/index.d.ts +0 -0
  915. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/index.js +0 -0
  916. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/resolve-spec-code.js +0 -0
  917. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/spec-code-module.d.ts +0 -0
  918. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/decode-runtime-spec.d.ts +0 -0
  919. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/decode-runtime-spec.js +0 -0
  920. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encode-runtime-spec.d.ts +0 -0
  921. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encode-runtime-spec.js +0 -0
  922. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encoded-runtime-spec.d.ts +0 -0
  923. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encoded-runtime-spec.js +0 -0
  924. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/runtime-spec.js +0 -0
  925. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/spec-code-id.js +0 -0
  926. /package/dist/domain/{application/assistant/assistant-resolved-manifest.js → spec/sections/assistant/assistant-manifest.js} +0 -0
  927. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-element-name.d.ts +0 -0
  928. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-element-name.js +0 -0
  929. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-elements.d.ts +0 -0
  930. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-elements.js +0 -0
  931. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-resource-path.d.ts +0 -0
  932. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-resource-path.js +0 -0
  933. /package/dist/domain/{application → spec/sections}/assistant/form/index.d.ts +0 -0
  934. /package/dist/domain/{application → spec/sections}/assistant/form/index.js +0 -0
  935. /package/dist/{configurator/configurator-context → react-sdk/domain-application-context}/OnPresetLoadedHandler.d.ts +0 -0
  936. /package/dist/{configurator/configurator-context → react-sdk/integration}/IntegrationSubscription.d.ts +0 -0
  937. /package/dist/{configurator/configurator-context → react-sdk/lifecycle-providers}/LifecycleProviders.d.ts +0 -0
  938. /package/dist/{configurator/configurator-context → react-sdk/preset-selection}/PresetSelectionProvider.d.ts +0 -0
@@ -1 +1 @@
1
- import{jsx as a,jsxs as r,Fragment as o}from"react/jsx-runtime";import{useCallback as t,useState as e}from"react";import{useLocalizable as i}from"#package/react-sdk";import{ExperimentalChatUi as n,MobileChat as m}from"#package/ui-sdk";import{useChatEnabled as l}from"../../../configurator-context/index.js";import{Chat as s}from"./Chat.js";export const MobileChat=c=>{let{icon:p,label:h,heading:d}=c,[f,g]=e(!1),u=l(),x=i(h),b=t(()=>{g(!0)},[]),j=t(()=>{g(!1)},[]);return u?r(o,{children:[a(m.Button,{icon:p,ariaLabel:x,handleOpen:b}),a(m.Dialog,{isOpen:f,handleClose:j,heading:d,children:a(n.ChatRoot,{variant:"mobile",children:a(s,{variant:"mobile"})})})]}):null};
1
+ import{jsx as a,jsxs as e,Fragment as r}from"react/jsx-runtime";import{useCallback as t,useState as o}from"react";import{useChatEnabled as i,useLocalizable as n}from"#package/react-sdk";import{ExperimentalChatUi as l,MobileChat as m}from"#package/ui-sdk";import{Chat as s}from"./Chat.js";export const MobileChat=c=>{let{icon:h,label:p,heading:d}=c,[b,f]=o(!1),g=i(),u=n(p),C=t(()=>{f(!0)},[]),j=t(()=>{f(!1)},[]);return g?e(r,{children:[a(m.Button,{icon:h,ariaLabel:u,handleOpen:C}),a(m.Dialog,{isOpen:b,handleClose:j,heading:d,children:a(l.ChatRoot,{variant:"mobile",children:a(s,{variant:"mobile"})})})]}):null};
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import{Trans as r}from"@lingui/react";import{Button as t}from"@mui/material";import{memo as e,useCallback as i}from"react";import{FrontendAnalyticsFactory as a,useAnalyticsService as m,useIntegrationState as n}from"#package/react-sdk";import{PhxIcon as s}from"#package/ui-sdk";import{useConfiguratorRouting as c,usePresetSelection as l,usePreview as p}from"../../../../configurator-context/index.js";import{CloseConfiguratorButton as d}from"./CloseConfiguratorButton.js";export const CommonTopNavigation=e(()=>{let e=m(),f=c(),{presetCategories:u}=l(),{isPreview:g,isPreviewEnabled:k}=p(),x=u.flatMap(o=>o.presets).length>1,C=n(),j=i(()=>{e.push(a.GoToProductsClicked()),f.goToIndex()},[e,f]);if(!C.embeddedView)return x||!k||g?x?o(t,{size:"small",startIcon:o(s,{name:"ArrowLeft"}),onClick:j,children:o(r,{id:"sdk.layout.navigation.common.product.label",message:"Website"})}):null:o(d,{})});
1
+ import{jsx as o}from"react/jsx-runtime";import{Trans as r}from"@lingui/react";import{Button as t}from"@mui/material";import{memo as e,useCallback as i}from"react";import{FrontendAnalyticsFactory as a,useAnalyticsService as m,useConfiguratorRouting as n,useIntegrationState as s,usePresetSelection as c}from"#package/react-sdk";import{PhxIcon as l}from"#package/ui-sdk";import{usePreview as p}from"../../../../configurator-context/index.js";import{CloseConfiguratorButton as d}from"./CloseConfiguratorButton.js";export const CommonTopNavigation=e(()=>{let e=m(),f=n(),{presetCategories:u}=c(),{isPreview:g,isPreviewEnabled:k}=p(),x=u.flatMap(o=>o.presets).length>1,C=s(),j=i(()=>{e.push(a.GoToProductsClicked()),f.goToIndex()},[e,f]);if(!C.embeddedView)return x||!k||g?x?o(t,{size:"small",startIcon:o(l,{name:"ArrowLeft"}),onClick:j,children:o(r,{id:"sdk.layout.navigation.common.product.label",message:"Website"})}):null:o(d,{})});
@@ -1 +1 @@
1
- import{jsx as t,jsxs as o}from"react/jsx-runtime";import{AnimatePresence as e,motion as r}from"motion/react";import{AnimationTarget as m,Sidebar as i}from"#package/ui-sdk";import{useChatEnabled as a}from"../../../../configurator-context/index.js";import{ChatInteractionContainer as n}from"../../chat/ChatInteractionContainer.js";import{CommonFinalizeButton as c}from"../common/CommonFinalizeButton.js";import{CommonSidebarFooter as s}from"../common/CommonSidebarFooter.js";import{DesktopSummaryButton as u}from"../common/DesktopSummaryButton.js";import{SimpleSidebarContent as p}from"./SimpleSidebarContent.js";let d={transition:{type:"spring",duration:.3},variants:{initial:{opacity:0,y:16},animate:{opacity:1,y:0},exit:{opacity:0,y:16}}};export const SimpleSidebar=l=>{let{summaryPage:y,customPriceNode:f,onEnterSummary:S,onLeaveSummary:h,price:B,isSummaryActive:j,hasSummary:v}=l,x=a();return t(i.Layout,{content:t(p,{isSummaryActive:j,summaryPage:y,onLeaveSummary:h}),chat:x&&t(n,{}),footer:o(e,{initial:!1,mode:"wait",children:[!v&&t(s,{customPriceNode:f,formattedPrice:B,actionButton:t(c,{}),showTemplateButton:!0,showSaveTemplateButton:!0}),v&&!j&&t(r.div,{...d,...m,children:t(s,{customPriceNode:f,actionButton:t(u,{onEnterSummary:S}),formattedPrice:B,showSaveTemplateButton:!1})},"sidebarFooterSummary"),v&&j&&t(r.div,{...d,...m,children:t(s,{customPriceNode:f,actionButton:t(c,{}),formattedPrice:B,showTemplateButton:!0,showSaveTemplateButton:!0})},"sidebarFooterSummary")]})})};
1
+ import{jsx as t,jsxs as o}from"react/jsx-runtime";import{AnimatePresence as e,motion as r}from"motion/react";import{useChatEnabled as m}from"#package/react-sdk";import{AnimationTarget as a,Sidebar as i}from"#package/ui-sdk";import{ChatInteractionContainer as n}from"../../chat/ChatInteractionContainer.js";import{CommonFinalizeButton as c}from"../common/CommonFinalizeButton.js";import{CommonSidebarFooter as s}from"../common/CommonSidebarFooter.js";import{DesktopSummaryButton as p}from"../common/DesktopSummaryButton.js";import{SimpleSidebarContent as u}from"./SimpleSidebarContent.js";let d={transition:{type:"spring",duration:.3},variants:{initial:{opacity:0,y:16},animate:{opacity:1,y:0},exit:{opacity:0,y:16}}};export const SimpleSidebar=l=>{let{summaryPage:y,customPriceNode:S,onEnterSummary:f,onLeaveSummary:h,price:B,isSummaryActive:j,hasSummary:v}=l,P=m();return t(i.Layout,{content:t(u,{isSummaryActive:j,summaryPage:y,onLeaveSummary:h}),chat:P&&t(n,{}),footer:o(e,{initial:!1,mode:"wait",children:[!v&&t(s,{customPriceNode:S,formattedPrice:B,actionButton:t(c,{}),showTemplateButton:!0,showSaveTemplateButton:!0}),v&&!j&&t(r.div,{...d,...a,children:t(s,{customPriceNode:S,actionButton:t(p,{onEnterSummary:f}),formattedPrice:B,showSaveTemplateButton:!1})},"sidebarFooterSummary"),v&&j&&t(r.div,{...d,...a,children:t(s,{customPriceNode:S,actionButton:t(c,{}),formattedPrice:B,showTemplateButton:!0,showSaveTemplateButton:!0})},"sidebarFooterSummary")]})})};
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import{Trans as r}from"@lingui/react";import{Button as t}from"@mui/material";import{memo as e,useCallback as i}from"react";import{FrontendAnalyticsFactory as a,useAnalyticsService as m,usePresetEmbeddedState as s}from"#package/react-sdk";import{PhxIcon as n}from"#package/ui-sdk";import{useConfiguratorRouting as l,usePresetSelection as p,usePreview as c}from"../../../../configurator-context/index.js";import{CloseConfiguratorButton as f}from"../common/CloseConfiguratorButton.js";export const SimpleMobileTopNavigation=e(()=>{let e=m(),u=l(),{presetCategories:d}=p(),{isPreview:g,isPreviewEnabled:k}=c(),x=d.flatMap(o=>o.presets).length>1,b=i(()=>{e.push(a.GoToProductsClicked()),u.goToIndex()},[e,u]);if(!s())return x||g||!k?x?o(t,{size:"small",startIcon:o(n,{name:"ArrowLeft"}),onClick:b,children:o(r,{id:"sdk.layout.navigation.mobile.product.label",message:"Website"})}):null:o(f,{})});
1
+ import{jsx as o}from"react/jsx-runtime";import{Trans as r}from"@lingui/react";import{Button as t}from"@mui/material";import{memo as e,useCallback as i}from"react";import{FrontendAnalyticsFactory as a,useAnalyticsService as m,useConfiguratorRouting as s,usePresetEmbeddedState as n,usePresetSelection as l}from"#package/react-sdk";import{PhxIcon as p}from"#package/ui-sdk";import{usePreview as c}from"../../../../configurator-context/index.js";import{CloseConfiguratorButton as f}from"../common/CloseConfiguratorButton.js";export const SimpleMobileTopNavigation=e(()=>{let e=m(),u=s(),{presetCategories:d}=l(),{isPreview:g,isPreviewEnabled:k}=c(),x=d.flatMap(o=>o.presets).length>1,b=i(()=>{e.push(a.GoToProductsClicked()),u.goToIndex()},[e,u]);if(!n())return x||g||!k?x?o(t,{size:"small",startIcon:o(p,{name:"ArrowLeft"}),onClick:b,children:o(r,{id:"sdk.layout.navigation.mobile.product.label",message:"Website"})}):null:o(f,{})});
@@ -1 +1 @@
1
- import{jsx as t,jsxs as e}from"react/jsx-runtime";import{Trans as a}from"@lingui/react";import{memo as i,useCallback as o}from"react";import{FrontendAnalyticsFactory as s,useActiveNavigationState as n,useAnalyticsService as r,useDomain as p,usePresetEmbeddedState as c,useResolveLocalizable as l}from"#package/react-sdk";import{TopNavigation as d,useResponsive as m}from"#package/ui-sdk";import{useConfiguratorRouting as g,usePresetSelection as u}from"../../../../configurator-context/index.js";export const StepsNavigation=i(i=>{let{steps:f}=i,k=r(),{navigationSystem:v,storeSystem:x}=p(),h=n(),C=g(),S=l(),{presetCategories:T}=u(),j=c(),N=T.flatMap(t=>t.presets).length>1,b=!j&&N,I=f.findIndex(t=>t.navigationStates.includes(h))+ +!!b,{isTablet:P}=m(),y=o(()=>{k.push(s.GoToProductsClicked()),C.goToIndex()},[k,C]);return e(d.Root,{activeStep:I,nonLinear:!0,compact:P,fullWidth:!0,children:[b&&t(d.Step,{isCompleted:!0,onClick:y,compact:P,children:t(a,{id:"sdk.layout.navigation.steps.first.label",message:"Products"})}),f.map((e,a)=>{let i=b?a<I-1:a<I,o=S(e.label);return t(d.Step,{isCompleted:i,isDisabled:!i,compact:P,onClick:()=>{let t=e.navigationStates[0];t&&(k.push(s.TopNavigationStepClicked(t)),x.stageAndCommit([v.getNavigationUpdate(t)]))},children:o},o)})]})});
1
+ import{jsx as t,jsxs as e}from"react/jsx-runtime";import{Trans as a}from"@lingui/react";import{memo as i,useCallback as o}from"react";import{FrontendAnalyticsFactory as s,useActiveNavigationState as n,useAnalyticsService as r,useConfiguratorRouting as p,useDomain as c,usePresetEmbeddedState as l,usePresetSelection as d,useResolveLocalizable as m}from"#package/react-sdk";import{TopNavigation as g,useResponsive as u}from"#package/ui-sdk";export const StepsNavigation=i(i=>{let{steps:f}=i,k=r(),{navigationSystem:v,storeSystem:h}=c(),C=n(),S=p(),x=m(),{presetCategories:T}=d(),N=l(),b=T.flatMap(t=>t.presets).length>1,j=!N&&b,I=f.findIndex(t=>t.navigationStates.includes(C))+ +!!j,{isTablet:P}=u(),y=o(()=>{k.push(s.GoToProductsClicked()),S.goToIndex()},[k,S]);return e(g.Root,{activeStep:I,nonLinear:!0,compact:P,fullWidth:!0,children:[j&&t(g.Step,{isCompleted:!0,onClick:y,compact:P,children:t(a,{id:"sdk.layout.navigation.steps.first.label",message:"Products"})}),f.map((e,a)=>{let i=j?a<I-1:a<I,o=x(e.label);return t(g.Step,{isCompleted:i,isDisabled:!i,compact:P,onClick:()=>{let t=e.navigationStates[0];t&&(k.push(s.TopNavigationStepClicked(t)),h.stageAndCommit([v.getNavigationUpdate(t)]))},children:o},o)})]})});
@@ -1 +1 @@
1
- import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import{useCallback as a,useMemo as i}from"react";import{customPriceFooterComponent as n,navigationStepsComponent as r,sidebarTabsComponent as s}from"#package/domain";import{useActiveNavigationState as m,useComponents as l,useDomain as p,useFirstRootComponent as c,usePresetEmbeddedState as f,useResolveLocalizable as d,useRootEntityPrice as g,useSelectedDomainEntityId as u,useStoreSelector as v}from"#package/react-sdk";import{MobileControls as b}from"#package/ui-sdk";import{useConfiguratorRouting as j,usePresetSelection as S}from"../../../../configurator-context/index.js";import{LayoutSlots as x}from"../../../configurator-layout/index.js";import{LayoutDialog as C}from"../../../phoenix-layout-elements/LayoutDialog.js";import{LayoutFooter as y,LayoutToolbarDesktop as k,LayoutToolbarDesktopFullScreen as T}from"../../../phoenix-layout-elements/index.js";import{SaveMessageSnackbars as I}from"../../../save-message-snackbars/index.js";import{FullscreenDesktopToolbar as h}from"../../toolbar/desktop-toolbar/FullscreenDesktopToolbar.js";import{CommonDesktopToolbar as N}from"../common/CommonDesktopToolbar.js";import{CommonFinalizePage as w}from"../common/CommonFinalizePage.js";import{DefaultViewOnlyMessage as A}from"../common/DefaultViewOnlyMessage.js";import{InvariantViolations as D}from"../common/InvariantViolations.js";import{ReactiveInterfaceLayout as E}from"../common/ReactiveInterfaceLayout.js";import{SideEffects as L}from"../common/SideEffects.js";import{ToolControls as M}from"../common/ToolControls.js";import{ViewControls as P}from"../common/ViewControls.js";import{StepsNavigation as V}from"./StepsNavigation.js";import{StepsSideBar as F}from"./StepsSideBar.js";export const StepsOwnerLayout=()=>{let{storeSystem:O,navigationSystem:B}=p(),H=d(),R=m(),U=u(),z=c(r),$=c(n),q=l({componentTypes:[s],entityIds:[U]}),G=i(()=>z?.state.steps??[],[z]),J=i(()=>(q??[]).flatMap(o=>o.state.tabs).map(o=>{let t=o.navigationStates[0];if(!t)throw Error(`Tab ${t} has no navigation states!`);return{label:H(o.label),icon:o.icon,value:t,isActive:o.navigationStates.includes(R)}}),[q,R,H]),K=i(()=>{let o=J.find(o=>o.isActive);return o?.value??"none"},[J]),Q=v(o=>U===o.state.rootEntityId,[U]),W=g(),X=j(),{presetCategories:Y}=S(),Z=f(),_=Y.flatMap(o=>o.presets).length>1,oo=!Z&&_,ot=a(()=>{let o=G.findIndex(o=>o.navigationStates.includes(R)),t=G[o-1];if(!t){oo&&X.goToIndex();return}let e=t.navigationStates[0];e&&O.stageAndCommit([B.getNavigationUpdate(e)])},[B,R,G,oo,X,O]),oe=a(()=>{let o=G.findIndex(o=>o.navigationStates.includes(R)),t=G[o+1];if(!t)return;let e=t.navigationStates[0];e&&O.stageAndCommit([B.getNavigationUpdate(e)])},[B,R,G,O]),oa=i(()=>G.findIndex(o=>o.navigationStates.includes(R))===G.length-1,[G,R]);return o(E,{canvas:o(x.Canvas,{}),sidebar:o(F,{price:W,tabs:J,activeTab:K,isRootPage:Q,customPriceNode:$?.state.node,isLastStep:oa,onNextStepClick:oe,onPreviousStepClick:ot}),viewControls:o(P,{}),toolControls:o(M,{}),topNavigation:o(V,{steps:G}),branding:null,toolbar:o(k,{defaultSlot:()=>o(N,{})}),fullScreenToolbar:o(T,{defaultSlot:()=>o(h,{})}),overlay:t(e,{children:[o(D,{}),o(I,{}),o(w,{}),o(C,{})]}),mobileControls:o(b.ViewOnlyMode,{message:o(A,{})}),mobileTopNavigation:null,mobileHeaderActionButton:null,mobileHeaderCenter:null,sideEffects:o(L,{}),footer:o(y,{})})};
1
+ import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import{useCallback as a,useMemo as i}from"react";import{customPriceFooterComponent as n,navigationStepsComponent as r,sidebarTabsComponent as s}from"#package/domain";import{useActiveNavigationState as m,useComponents as l,useConfiguratorRouting as p,useDomain as c,useFirstRootComponent as f,usePresetEmbeddedState as d,usePresetSelection as g,useResolveLocalizable as u,useRootEntityPrice as v,useSelectedDomainEntityId as b,useStoreSelector as j}from"#package/react-sdk";import{MobileControls as S}from"#package/ui-sdk";import{LayoutSlots as x}from"../../../configurator-layout/index.js";import{LayoutDialog as C}from"../../../phoenix-layout-elements/LayoutDialog.js";import{LayoutFooter as y,LayoutToolbarDesktop as k,LayoutToolbarDesktopFullScreen as T}from"../../../phoenix-layout-elements/index.js";import{SaveMessageSnackbars as I}from"../../../save-message-snackbars/index.js";import{FullscreenDesktopToolbar as h}from"../../toolbar/desktop-toolbar/FullscreenDesktopToolbar.js";import{CommonDesktopToolbar as N}from"../common/CommonDesktopToolbar.js";import{CommonFinalizePage as w}from"../common/CommonFinalizePage.js";import{DefaultViewOnlyMessage as A}from"../common/DefaultViewOnlyMessage.js";import{InvariantViolations as D}from"../common/InvariantViolations.js";import{ReactiveInterfaceLayout as E}from"../common/ReactiveInterfaceLayout.js";import{SideEffects as L}from"../common/SideEffects.js";import{ToolControls as M}from"../common/ToolControls.js";import{ViewControls as P}from"../common/ViewControls.js";import{StepsNavigation as V}from"./StepsNavigation.js";import{StepsSideBar as F}from"./StepsSideBar.js";export const StepsOwnerLayout=()=>{let{storeSystem:O,navigationSystem:B}=c(),H=u(),R=m(),U=b(),z=f(r),$=f(n),q=l({componentTypes:[s],entityIds:[U]}),G=i(()=>z?.state.steps??[],[z]),J=i(()=>(q??[]).flatMap(o=>o.state.tabs).map(o=>{let t=o.navigationStates[0];if(!t)throw Error(`Tab ${t} has no navigation states!`);return{label:H(o.label),icon:o.icon,value:t,isActive:o.navigationStates.includes(R)}}),[q,R,H]),K=i(()=>{let o=J.find(o=>o.isActive);return o?.value??"none"},[J]),Q=j(o=>U===o.state.rootEntityId,[U]),W=v(),X=p(),{presetCategories:Y}=g(),Z=d(),_=Y.flatMap(o=>o.presets).length>1,oo=!Z&&_,ot=a(()=>{let o=G.findIndex(o=>o.navigationStates.includes(R)),t=G[o-1];if(!t){oo&&X.goToIndex();return}let e=t.navigationStates[0];e&&O.stageAndCommit([B.getNavigationUpdate(e)])},[B,R,G,oo,X,O]),oe=a(()=>{let o=G.findIndex(o=>o.navigationStates.includes(R)),t=G[o+1];if(!t)return;let e=t.navigationStates[0];e&&O.stageAndCommit([B.getNavigationUpdate(e)])},[B,R,G,O]),oa=i(()=>G.findIndex(o=>o.navigationStates.includes(R))===G.length-1,[G,R]);return o(E,{canvas:o(x.Canvas,{}),sidebar:o(F,{price:W,tabs:J,activeTab:K,isRootPage:Q,customPriceNode:$?.state.node,isLastStep:oa,onNextStepClick:oe,onPreviousStepClick:ot}),viewControls:o(P,{}),toolControls:o(M,{}),topNavigation:o(V,{steps:G}),branding:null,toolbar:o(k,{defaultSlot:()=>o(N,{})}),fullScreenToolbar:o(T,{defaultSlot:()=>o(h,{})}),overlay:t(e,{children:[o(D,{}),o(I,{}),o(w,{}),o(C,{})]}),mobileControls:o(S.ViewOnlyMode,{message:o(A,{})}),mobileTopNavigation:null,mobileHeaderActionButton:null,mobileHeaderCenter:null,sideEffects:o(L,{}),footer:o(y,{})})};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{AnimatePresence as e}from"motion/react";import{memo as o,useCallback as r}from"react";import{useDomain as a}from"#package/react-sdk";import{Sidebar as i,TabNavigation as m}from"#package/ui-sdk";import{useChatEnabled as n}from"../../../../configurator-context/index.js";import{ChatInteractionContainer as p}from"../../chat/ChatInteractionContainer.js";import{PropertyPagePanel as s}from"../../property-page/PropertyPagePanel.js";import{StepsSidebarFooter as c}from"./StepsSidebarFooter.js";export const StepsSideBar=o(o=>{let{price:d,activeTab:f,tabs:g,isRootPage:l,customPriceNode:u,isLastStep:h,onNextStepClick:P,onPreviousStepClick:S}=o,j=n(),{navigationSystem:k,storeSystem:x}=a(),C=r(t=>{x.stageAndCommit([k.getNavigationUpdate(t)])},[k,x]);return t(i.Layout,{header:null,content:t(s,{isRootPage:l}),footer:t(e,{initial:!1,mode:"wait",children:t(c,{customPriceNode:u,formattedPrice:d,isLastStep:h,onNextStepClick:P,onPreviousStepClick:S})}),chat:j&&t(p,{}),aside:g.length>1&&t(m,{onChange:C,value:f,tabs:g})})});
1
+ import{jsx as t}from"react/jsx-runtime";import{AnimatePresence as e}from"motion/react";import{memo as o,useCallback as r}from"react";import{useChatEnabled as a,useDomain as i}from"#package/react-sdk";import{Sidebar as m,TabNavigation as n}from"#package/ui-sdk";import{ChatInteractionContainer as p}from"../../chat/ChatInteractionContainer.js";import{PropertyPagePanel as s}from"../../property-page/PropertyPagePanel.js";import{StepsSidebarFooter as c}from"./StepsSidebarFooter.js";export const StepsSideBar=o(o=>{let{price:d,activeTab:f,tabs:g,isRootPage:l,customPriceNode:u,isLastStep:h,onNextStepClick:P,onPreviousStepClick:S}=o,k=a(),{navigationSystem:C,storeSystem:j}=i(),x=r(t=>{j.stageAndCommit([C.getNavigationUpdate(t)])},[C,j]);return t(m.Layout,{header:null,content:t(s,{isRootPage:l}),footer:t(e,{initial:!1,mode:"wait",children:t(c,{customPriceNode:u,formattedPrice:d,isLastStep:h,onNextStepClick:P,onPreviousStepClick:S})}),chat:k&&t(p,{}),aside:g.length>1&&t(n,{onChange:x,value:f,tabs:g})})});
@@ -1 +1 @@
1
- import{jsx as t,jsxs as o}from"react/jsx-runtime";import{AnimatePresence as e,motion as a}from"motion/react";import{memo as r,useCallback as i}from"react";import{useDomain as m}from"#package/react-sdk";import{AnimationTarget as n,Sidebar as s,TabNavigation as c}from"#package/ui-sdk";import{useChatEnabled as u}from"../../../../configurator-context/index.js";import{ChatInteractionContainer as p}from"../../chat/ChatInteractionContainer.js";import{CommonFinalizeButton as d}from"../common/CommonFinalizeButton.js";import{CommonSidebarFooter as l}from"../common/CommonSidebarFooter.js";import{DesktopSummaryButton as f}from"../common/DesktopSummaryButton.js";import{TabsSidebarContent as y}from"./TabsSidebarContent.js";let h={transition:{type:"spring",duration:.3},variants:{initial:{opacity:0,y:16},animate:{opacity:1,y:0},exit:{opacity:0,y:16}}};export const TabsSidebar=r(r=>{let{price:S,isSummaryActive:g,onEnterSummary:v,activeTab:B,tabs:j,summaryPage:b,onLeaveSummary:P,isRootPage:x,customPriceNode:C,hasSummary:T}=r,w=u(),{navigationSystem:k,storeSystem:F}=m(),N=i(t=>{F.stageAndCommit([k.getNavigationUpdate(t)])},[k,F]);return t(s.Layout,{header:null,content:t(y,{summaryPage:b,isSummaryActive:g,onLeaveSummary:P,isRootPage:x}),footer:o(e,{initial:!1,mode:"wait",children:[!T&&t(l,{customPriceNode:C,formattedPrice:S,actionButton:t(d,{}),showTemplateButton:!0,showSaveTemplateButton:!0}),T&&!g&&t(a.div,{...h,...n,children:t(l,{customPriceNode:C,actionButton:t(f,{onEnterSummary:v}),formattedPrice:S,showSaveTemplateButton:!1})},"sidebarFooterSummary"),T&&g&&t(a.div,{...h,...n,children:t(l,{customPriceNode:C,actionButton:t(d,{}),formattedPrice:S,showTemplateButton:!0,showSaveTemplateButton:!0})},"sidebarFooterSummary")]}),chat:w&&t(p,{}),aside:j.length>1&&t(c,{onChange:N,value:B,tabs:j})})});
1
+ import{jsx as t,jsxs as o}from"react/jsx-runtime";import{AnimatePresence as e,motion as a}from"motion/react";import{memo as r,useCallback as m}from"react";import{useChatEnabled as i,useDomain as n}from"#package/react-sdk";import{AnimationTarget as s,Sidebar as c,TabNavigation as u}from"#package/ui-sdk";import{ChatInteractionContainer as p}from"../../chat/ChatInteractionContainer.js";import{CommonFinalizeButton as d}from"../common/CommonFinalizeButton.js";import{CommonSidebarFooter as l}from"../common/CommonSidebarFooter.js";import{DesktopSummaryButton as y}from"../common/DesktopSummaryButton.js";import{TabsSidebarContent as f}from"./TabsSidebarContent.js";let h={transition:{type:"spring",duration:.3},variants:{initial:{opacity:0,y:16},animate:{opacity:1,y:0},exit:{opacity:0,y:16}}};export const TabsSidebar=r(r=>{let{price:S,isSummaryActive:g,onEnterSummary:v,activeTab:B,tabs:b,summaryPage:j,onLeaveSummary:P,isRootPage:C,customPriceNode:T,hasSummary:w}=r,k=i(),{navigationSystem:x,storeSystem:F}=n(),N=m(t=>{F.stageAndCommit([x.getNavigationUpdate(t)])},[x,F]);return t(c.Layout,{header:null,content:t(f,{summaryPage:j,isSummaryActive:g,onLeaveSummary:P,isRootPage:C}),footer:o(e,{initial:!1,mode:"wait",children:[!w&&t(l,{customPriceNode:T,formattedPrice:S,actionButton:t(d,{}),showTemplateButton:!0,showSaveTemplateButton:!0}),w&&!g&&t(a.div,{...h,...s,children:t(l,{customPriceNode:T,actionButton:t(y,{onEnterSummary:v}),formattedPrice:S,showSaveTemplateButton:!1})},"sidebarFooterSummary"),w&&g&&t(a.div,{...h,...s,children:t(l,{customPriceNode:T,actionButton:t(d,{}),formattedPrice:S,showTemplateButton:!0,showSaveTemplateButton:!0})},"sidebarFooterSummary")]}),chat:k&&t(p,{}),aside:b.length>1&&t(u,{onChange:N,value:B,tabs:b})})});
@@ -1 +1 @@
1
- import{useMemo as e}from"react";import{FrontendAnalyticsFactory as o,useAccessService as t,useAnalyticsService as i,useDomainApplication as a,useIntegrationState as r}from"#package/react-sdk";import{useConfiguratorRouting as d,usePresetSelection as n,usePreview as s}from"../../../../../configurator-context/index.js";import{useCloseAction as c}from"../../../../../integration/index.js";export const useGoBackAction=()=>{let l=i(),{configurationPersistSystem:p}=a(),u=d(),{presetCategories:m}=n(),{isPreview:w,isPreviewEnabled:f,leave:g}=s(),{accessInfo:x}=t(),k=m.flatMap(e=>e.presets).length>1,v=r(),C=c();return e(()=>v.embeddedView?null:k?async()=>{l.push(o.GoToProductsClicked()),x.viewMode||await p.save(),u.goToIndex()}:null!==C?async()=>{l.push(o.CloseConfiguratorClicked()),x.viewMode||await p.save(),await C()}:f&&!w?()=>{l.push(o.ExpandedViewClosed()),g()}:null,[l,p,k,v.embeddedView,w,f,g,u,C,x.viewMode])};
1
+ import{useMemo as e}from"react";import{FrontendAnalyticsFactory as o,useAccessService as t,useAnalyticsService as i,useConfiguratorRouting as a,useDomainApplication as r,useIntegrationState as d,usePresetSelection as n}from"#package/react-sdk";import{usePreview as s}from"../../../../../configurator-context/index.js";import{useCloseAction as c}from"../../../../../integration/index.js";export const useGoBackAction=()=>{let l=i(),{configurationPersistSystem:p}=r(),u=a(),{presetCategories:m}=n(),{isPreview:w,isPreviewEnabled:f,leave:g}=s(),{accessInfo:x}=t(),k=m.flatMap(e=>e.presets).length>1,v=d(),C=c();return e(()=>v.embeddedView?null:k?async()=>{l.push(o.GoToProductsClicked()),x.viewMode||await p.save(),u.goToIndex()}:null!==C?async()=>{l.push(o.CloseConfiguratorClicked()),x.viewMode||await p.save(),await C()}:f&&!w?()=>{l.push(o.ExpandedViewClosed()),g()}:null,[l,p,k,v.embeddedView,w,f,g,u,C,x.viewMode])};
@@ -1 +1 @@
1
- import{jsx as t,jsxs as e}from"react/jsx-runtime";import{Trans as o}from"@lingui/react";import{memo as a,useCallback as i}from"react";import{FrontendAnalyticsFactory as r,useAnalyticsService as s,usePresetEmbeddedState as c}from"#package/react-sdk";import{TopNavigation as p,useResponsive as l}from"#package/ui-sdk";import{useConfiguratorRouting as n,usePresetSelection as m}from"../../../../../configurator-context/index.js";export const StepsNavigation=a(a=>{let{steps:d,activeIndex:u,goTo:f}=a,g=s(),k=n(),{presetCategories:x}=m(),h=c(),C=x.flatMap(t=>t.presets).length>1,b=!h&&C,{isTablet:j}=l(),v=i(()=>{g.push(r.GoToProductsClicked()),k.goToIndex()},[g,k]);return e(p.Root,{activeStep:u+ +!!b,nonLinear:!0,compact:j,fullWidth:!0,children:[b&&t(p.Step,{isCompleted:!0,onClick:v,compact:j,children:t(o,{id:"sdk.layout.navigation.steps.first.label",message:"Products"})}),d.map(e=>{let o="complete"===e.status;return t(p.Step,{isCompleted:o,isDisabled:!o,compact:j,onClick:()=>f(e.index),children:e.label},e.label)})]})});
1
+ import{jsx as t,jsxs as e}from"react/jsx-runtime";import{Trans as a}from"@lingui/react";import{memo as o,useCallback as i}from"react";import{FrontendAnalyticsFactory as s,useAnalyticsService as r,useConfiguratorRouting as l,usePresetEmbeddedState as p,usePresetSelection as c}from"#package/react-sdk";import{TopNavigation as n,useResponsive as m}from"#package/ui-sdk";export const StepsNavigation=o(o=>{let{steps:d,activeIndex:u,goTo:g}=o,f=r(),k=l(),{presetCategories:h}=c(),x=p(),C=h.flatMap(t=>t.presets).length>1,b=!x&&C,{isTablet:v}=m(),S=i(()=>{f.push(s.GoToProductsClicked()),k.goToIndex()},[f,k]);return e(n.Root,{activeStep:u+ +!!b,nonLinear:!0,compact:v,fullWidth:!0,children:[b&&t(n.Step,{isCompleted:!0,onClick:S,compact:v,children:t(a,{id:"sdk.layout.navigation.steps.first.label",message:"Products"})}),d.map(e=>{let a="complete"===e.status;return t(n.Step,{isCompleted:a,isDisabled:!a,compact:v,onClick:()=>g(e.index),children:e.label},e.label)})]})});
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{useMemo as t}from"react";import{customPriceFooterComponent as o,navigationStepsComponent as i}from"#package/domain";import{useAccessService as a,useActiveNavigationState as r,useFirstRootComponent as s,usePresetEmbeddedState as n,useRootEntityPrice as d}from"#package/react-sdk";import{useHasSidebarSummary as m,useIsSidebarSummaryActive as p,usePresetSelection as c}from"../../../../configurator-context/index.js";import{EnterSummaryButton as l,SaveTemplateButton as f}from"../common/index.js";import{BasicFinalizeButton as u}from"./BasicFinalizeButton.js";export const PRICE_LABEL={id:"sdk.layout.sidebar.price.label",message:"Total price"};export const useBasicSidebarFooter=()=>{let g=r(),v=s(i),x=s(o),B=t(()=>v?.state.steps??[],[v]),S=d(),{presetCategories:b}=c(),h=!!n(),j=b.flatMap(e=>e.presets).length>1,k=B.length>1,M=B.find(e=>e.navigationStates.includes(g)),w=t(()=>B.findIndex(e=>e.navigationStates.includes(g)),[B,g]),P=t(()=>0===w,[w]),D=t(()=>w===B.length-1,[w,B.length]),E=h?e(f,{}):e(u,{}),F=p(),I=m(),L=k||!I||F?E:e(l,{}),{accessInfo:y}=a(),z=!y.viewMode&&k&&(!D||!L),A=!y.viewMode&&k,C=!y.viewMode&&(!k||D);return{currentStep:M,currentStepIndex:w,customPriceNode:x?.state.node??void 0,finalizeOrSummaryButton:L,formattedPrice:x?.state.node?void 0:S??void 0,hasSteps:k,nextStepButtonDisabled:D,previousStepButtonDisabled:P&&!(!h&&j),showFinalizeButton:C,showNextStepButton:z,showPreviousStepButton:A,totalSteps:B.length}};
1
+ import{jsx as e}from"react/jsx-runtime";import{useMemo as t}from"react";import{customPriceFooterComponent as o,navigationStepsComponent as i}from"#package/domain";import{useAccessService as a,useActiveNavigationState as r,useFirstRootComponent as s,usePresetEmbeddedState as n,usePresetSelection as d,useRootEntityPrice as m}from"#package/react-sdk";import{useHasSidebarSummary as p,useIsSidebarSummaryActive as c}from"../../../../configurator-context/index.js";import{EnterSummaryButton as l,SaveTemplateButton as f}from"../common/index.js";import{BasicFinalizeButton as u}from"./BasicFinalizeButton.js";export const PRICE_LABEL={id:"sdk.layout.sidebar.price.label",message:"Total price"};export const useBasicSidebarFooter=()=>{let g=r(),v=s(i),x=s(o),B=t(()=>v?.state.steps??[],[v]),S=m(),{presetCategories:b}=d(),h=!!n(),j=b.flatMap(e=>e.presets).length>1,k=B.length>1,M=B.find(e=>e.navigationStates.includes(g)),w=t(()=>B.findIndex(e=>e.navigationStates.includes(g)),[B,g]),P=t(()=>0===w,[w]),D=t(()=>w===B.length-1,[w,B.length]),E=h?e(f,{}):e(u,{}),F=c(),I=p(),L=k||!I||F?E:e(l,{}),{accessInfo:y}=a(),z=!y.viewMode&&k&&(!D||!L),A=!y.viewMode&&k,C=!y.viewMode&&(!k||D);return{currentStep:M,currentStepIndex:w,customPriceNode:x?.state.node??void 0,finalizeOrSummaryButton:L,formattedPrice:x?.state.node?void 0:S??void 0,hasSteps:k,nextStepButtonDisabled:D,previousStepButtonDisabled:P&&!(!h&&j),showFinalizeButton:C,showNextStepButton:z,showPreviousStepButton:A,totalSteps:B.length}};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{IconButton as t,Tooltip as r}from"@mui/material";import{memo as o,useCallback as i}from"react";import{createPhoenixLayoutElement as a,previousStepButtonSchema as m}from"#package/domain";import{FrontendAnalyticsFactory as s,useAnalyticsService as n,useLocalizable as l,useStepNavigation as p}from"#package/react-sdk";import{PhxIcon as c,useResponsive as d}from"#package/ui-sdk";import{useBackToPresetEnabled as u,useConfiguratorRouting as f,useSteps as k}from"../../../../configurator-context/index.js";let g={id:"sdk.layout.sidebar.previousStep.label",message:"Previous step"};export const PreviousStepButton=a({schema:m,component:o(o=>{let{icon:a}=o,m=l(g),x=n(),h=u(),v=f(),{canGoPrevious:S,previous:b}=p(),{isDesktop:j}=d(),{previousStepDisabled:C}=k();return e(r,{title:m,placement:"top",children:e("span",{style:{alignSelf:"center"},children:e(t,{variant:"muted",color:"default",size:j?"medium":"small",disabled:C,onClick:i(()=>{S?b():(x.push(s.PreviousStepButtonClicked()),h&&v.goToIndex())},[x,h,S,b,v]),children:e(c,{name:a??"CaretLeft"})})})})})});
1
+ import{jsx as e}from"react/jsx-runtime";import{IconButton as t,Tooltip as r}from"@mui/material";import{memo as o,useCallback as i}from"react";import{createPhoenixLayoutElement as a,previousStepButtonSchema as m}from"#package/domain";import{FrontendAnalyticsFactory as s,useAnalyticsService as n,useConfiguratorRouting as l,useLocalizable as p,useStepNavigation as c}from"#package/react-sdk";import{PhxIcon as d,useResponsive as u}from"#package/ui-sdk";import{useBackToPresetEnabled as f,useSteps as k}from"../../../../configurator-context/index.js";let g={id:"sdk.layout.sidebar.previousStep.label",message:"Previous step"};export const PreviousStepButton=a({schema:m,component:o(o=>{let{icon:a}=o,m=p(g),x=n(),h=f(),v=l(),{canGoPrevious:S,previous:b}=c(),{isDesktop:j}=u(),{previousStepDisabled:C}=k();return e(r,{title:m,placement:"top",children:e("span",{style:{alignSelf:"center"},children:e(t,{variant:"muted",color:"default",size:j?"medium":"small",disabled:C,onClick:i(()=>{S?b():(x.push(s.PreviousStepButtonClicked()),h&&v.goToIndex())},[x,h,S,b,v]),children:e(d,{name:a??"CaretLeft"})})})})})});
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t,Fragment as i}from"react/jsx-runtime";import{useCallback as r,useState as s}from"react";import{useResolveLocalizable as o,useResourceUrl as l}from"#package/react-sdk";import{Preset as n}from"#package/ui-sdk";import{ConfigurationNotFoundPageElement as a}from"../../configuration-not-found-page/index.js";import{usePresetSelection as d,usePreview as m}from"../../configurator-context/index.js";import{ClosePresetScreenButton as c}from"./ClosePresetScreenButton.js";import{PresetBackButton as g}from"./PresetBackButton.js";import{PresetPreviewLayout as p}from"./PresetPreviewLayout.js";import{PresetSnackbarsRoot as u}from"./PresetSnackbarsRoot.js";let f={id:"sdk.presets.select.button.label",message:"Select"},k={id:"sdk.presets.detail.close.label",message:"Close"},S={id:"sdk.presets.detail.learnMore.label",message:"Learn more"},h={id:"sdk.presets.detail.select.label",message:"Select"},B=t=>{let{id:i,name:s,description:a,img:m,imgAlt:c,detailTitle:g,detailDescription:p}=t,{selectPreset:u,creatingPresetId:B}=d(),b=o(),{getResourceUrl:C}=l(),T=r(()=>{u(i)},[u,i]),j=(m&&C(m))??"",y=B===i;return e(n.Card,{title:b(s),description:b(a),imgSrc:j,imgAlt:b(c),selectButtonTitle:b(f),loading:y,disabled:null!==B&&!y,onSelect:T,additionalInfoButton:void 0!==g&&void 0!==p&&e(n.DetailDialog,{img:j,imgAlt:b(c),detailTitle:b(g),detailDescription:b(p),closeButtonTitle:b(k),learnMoreLinkTitle:b(S),selectButtonTitle:b(h),onSelect:T})},b(s))},b=t=>{let{id:i,name:s,description:a,img:d,imgAlt:m,onSelect:c}=t,g=o(),{getResourceUrl:p}=l(),u=r(()=>{c(i)},[c,i]);return e(n.Card,{title:g(s),description:g(a),imgSrc:(d&&p(d))??"",imgAlt:g(m),selectButtonTitle:g(f),onSelect:u},g(s))},C={id:"sdk.presets.category.count.message",message:"{presetCount, plural, one {# preset} other {# presets}}"},T=t=>{let{selectedCategory:r,onCategorySelected:s}=t,{presetCategories:l}=d(),n=o();if(1===l.length)return e(i,{children:l[0].presets.map(t=>e(B,{id:t.id,name:t.name,description:t.description,img:t.img,imgAlt:t.imgAlt,detailTitle:t.detailTitle,detailDescription:t.detailDescription},t.id))});if(null!==r){let t=l.find(e=>e.id===r);if(void 0===t)throw Error(`Category with id ${r} not found!`);return e(i,{children:t.presets.map(t=>e(B,{id:t.id,name:t.name,description:t.description,img:t.img,imgAlt:t.imgAlt,detailTitle:t.detailTitle,detailDescription:t.detailDescription},t.id))})}return e(i,{children:l.map(t=>e(b,{id:t.id,name:t.name,description:t.description??n({...C,values:{presetCount:t.presets.length}}),img:t.img,imgAlt:t.imgAlt,onSelect:s},t.id))})},j={id:"sdk.presets.category.heading.title",message:"Select starting preset"},y={id:"sdk.presets.preview.title",message:"Customize product"},A={id:"sdk.presets.start.button.label",message:"Start configuring"};export const CategoryPresetUi=l=>{let{action:f,footer:k,overlay:S}=l,[h,B]=s(null),{isPreview:b}=m(),C=o(),v=r(()=>{B(null)},[]),{presetCategories:x}=d();return b?e(p,{title:C(y),startButtonLabel:C(A)}):0===x.length?e(a,{}):t(i,{children:[e(n.ScreenLayout,{heading:C(j),action:f,footer:k,overlay:S,backButton:h&&e(g,{onBack:v}),closeButton:!h&&e(c,{}),children:e(T,{selectedCategory:h,onCategorySelected:B})}),e(u,{})]})};
1
+ import{jsx as e,jsxs as t,Fragment as i}from"react/jsx-runtime";import{useCallback as r,useState as s}from"react";import{usePresetSelection as o,useResolveLocalizable as l,useResourceUrl as n}from"#package/react-sdk";import{Preset as a}from"#package/ui-sdk";import{ConfigurationNotFoundPageElement as d}from"../../configuration-not-found-page/index.js";import{usePreview as m}from"../../configurator-context/index.js";import{ClosePresetScreenButton as c}from"./ClosePresetScreenButton.js";import{PresetBackButton as g}from"./PresetBackButton.js";import{PresetPreviewLayout as p}from"./PresetPreviewLayout.js";import{PresetSnackbarsRoot as u}from"./PresetSnackbarsRoot.js";let f={id:"sdk.presets.select.button.label",message:"Select"},k={id:"sdk.presets.detail.close.label",message:"Close"},S={id:"sdk.presets.detail.learnMore.label",message:"Learn more"},h={id:"sdk.presets.detail.select.label",message:"Select"},B=t=>{let{id:i,name:s,description:d,img:m,imgAlt:c,detailTitle:g,detailDescription:p}=t,{selectPreset:u,creatingPresetId:B}=o(),b=l(),{getResourceUrl:C}=n(),T=r(()=>{u(i)},[u,i]),j=(m&&C(m))??"",y=B===i;return e(a.Card,{title:b(s),description:b(d),imgSrc:j,imgAlt:b(c),selectButtonTitle:b(f),loading:y,disabled:null!==B&&!y,onSelect:T,additionalInfoButton:void 0!==g&&void 0!==p&&e(a.DetailDialog,{img:j,imgAlt:b(c),detailTitle:b(g),detailDescription:b(p),closeButtonTitle:b(k),learnMoreLinkTitle:b(S),selectButtonTitle:b(h),onSelect:T})},b(s))},b=t=>{let{id:i,name:s,description:o,img:d,imgAlt:m,onSelect:c}=t,g=l(),{getResourceUrl:p}=n(),u=r(()=>{c(i)},[c,i]);return e(a.Card,{title:g(s),description:g(o),imgSrc:(d&&p(d))??"",imgAlt:g(m),selectButtonTitle:g(f),onSelect:u},g(s))},C={id:"sdk.presets.category.count.message",message:"{presetCount, plural, one {# preset} other {# presets}}"},T=t=>{let{selectedCategory:r,onCategorySelected:s}=t,{presetCategories:n}=o(),a=l();if(1===n.length)return e(i,{children:n[0].presets.map(t=>e(B,{id:t.id,name:t.name,description:t.description,img:t.img,imgAlt:t.imgAlt,detailTitle:t.detailTitle,detailDescription:t.detailDescription},t.id))});if(null!==r){let t=n.find(e=>e.id===r);if(void 0===t)throw Error(`Category with id ${r} not found!`);return e(i,{children:t.presets.map(t=>e(B,{id:t.id,name:t.name,description:t.description,img:t.img,imgAlt:t.imgAlt,detailTitle:t.detailTitle,detailDescription:t.detailDescription},t.id))})}return e(i,{children:n.map(t=>e(b,{id:t.id,name:t.name,description:t.description??a({...C,values:{presetCount:t.presets.length}}),img:t.img,imgAlt:t.imgAlt,onSelect:s},t.id))})},j={id:"sdk.presets.category.heading.title",message:"Select starting preset"},y={id:"sdk.presets.preview.title",message:"Customize product"},A={id:"sdk.presets.start.button.label",message:"Start configuring"};export const CategoryPresetUi=n=>{let{action:f,footer:k,overlay:S}=n,[h,B]=s(null),{isPreview:b}=m(),C=l(),v=r(()=>{B(null)},[]),{presetCategories:x}=o();return b?e(p,{title:C(y),startButtonLabel:C(A)}):0===x.length?e(d,{}):t(i,{children:[e(a.ScreenLayout,{heading:C(j),action:f,footer:k,overlay:S,backButton:h&&e(g,{onBack:v}),closeButton:!h&&e(c,{}),children:e(T,{selectedCategory:h,onCategorySelected:B})}),e(u,{})]})};
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import{Trans as e}from"@lingui/react";import{Button as s}from"@mui/material";import{useSnackbar as i}from"notistack";import{useEffect as t}from"react";import{useApplicationRuntime as o,useApplicationRuntimeSelector as a,useConfiguratorMessages as n}from"#package/react-sdk";let m="phx-configuration-persist-system-failure";export const SaveMessageSnackbars=()=>{let c=a(o().selectors.domainContext.configurator.getIsViewMode),{enqueueSnackbar:d,closeSnackbar:p}=i();return t(()=>{c&&p(m)},[c,p]),n(i=>{c||("saveError"===i.kind&&d(r(e,{id:"sdk.persist.system.error.message",message:"An error occured when trying to update a configuration"}),{variant:"error",key:m,persist:!0,preventDuplicate:!0,action:i=>r(s,{color:"inherit",size:"small",onClick:()=>{p(i)},children:r(e,{id:"sdk.persist.system.error.dismiss",message:"Dismiss"})})}),"saveRecovery"===i.kind&&(p(m),d(r(e,{id:"sdk.persist.system.error.recovered",message:"Configuration updated"}),{variant:"info"})))}),null};
1
+ import{jsx as e}from"react/jsx-runtime";import{Trans as r}from"@lingui/react";import{useSnackbar as s}from"notistack";import{useEffect as t}from"react";import{useApplicationRuntime as i,useApplicationRuntimeSelector as o,useConfiguratorMessages as a}from"#package/react-sdk";let n="phx-configuration-persist-system-failure";export const SaveMessageSnackbars=()=>{let m=o(i().selectors.domainContext.configurator.getIsViewMode),{enqueueSnackbar:c,closeSnackbar:d}=s();return t(()=>{m&&d(n)},[m,d]),a(s=>{m||("saveError"===s.kind&&c(e(r,{id:"sdk.persist.system.error.message",message:"An error occured when trying to update a configuration"}),{variant:"error",key:n,persist:!0,preventDuplicate:!0,actionButton:{label:e(r,{id:"sdk.persist.system.error.dismiss",message:"Dismiss"}),onClick:e=>{d(e)}}}),"saveRecovery"===s.kind&&(d(n),c(e(r,{id:"sdk.persist.system.error.recovered",message:"Configuration updated"}),{variant:"info"})))}),null};
@@ -49,7 +49,8 @@ Custom camera behavior is implemented via `scheduleCameraTransition` inside an `
49
49
  ```tsx
50
50
  import { useEffect } from 'react'
51
51
 
52
- import { CameraControlType, createOnConfiguratorReadyProvider, useConfigurator } from '@salsita-ai/sdk/configurator'
52
+ import { CameraControlType, useConfigurator } from '@salsita-ai/sdk/configurator'
53
+ import { createOnConfiguratorReadyProvider } from '@salsita-ai/sdk/react'
53
54
 
54
55
  export default createOnConfiguratorReadyProvider(({ children }) => {
55
56
  const { cameraControlSystem } = useConfigurator()
@@ -238,7 +239,8 @@ components:
238
239
  ```tsx
239
240
  import { useEffect } from 'react'
240
241
 
241
- import { CameraControlType, createOnConfiguratorReadyProvider, useConfigurator } from '@salsita-ai/sdk/configurator'
242
+ import { CameraControlType, useConfigurator } from '@salsita-ai/sdk/configurator'
243
+ import { createOnConfiguratorReadyProvider } from '@salsita-ai/sdk/react'
242
244
 
243
245
  export default createOnConfiguratorReadyProvider(({ children }) => {
244
246
  const { cameraControlSystem } = useConfigurator()
@@ -777,7 +777,7 @@ components:
777
777
  autoRotate: true
778
778
  # Back-to-back snap: the dragged cabinet's back snaps onto another
779
779
  # cabinet's back face (the snapPlane below). autoRotate orients it
780
- # 180° so the two cabinets face away from each other. Same Moduline
780
+ # 180° so the two cabinets face away from each other. This is the
781
781
  # shape that drives the within-MTV bug when the target is flush
782
782
  # against a wall — AutoSnap puts the dragged cabinet behind the
783
783
  # wall, Pass 1 within clamps it back into the room, and Pass 2
@@ -1,5 +1,5 @@
1
1
  {
2
- "generatedAt": "2026-10-17T17:38:44.019Z",
2
+ "generatedAt": "2026-10-21T06:49:59.185Z",
3
3
  "categories": [
4
4
  {
5
5
  "name": "Phoenix",
@@ -547,10 +547,10 @@ export default phx.frontend.createCustomPhoenixLayoutElement('ConfiguratorLayout
547
547
  - `LayoutSlots.DesktopSidebar` is the built-in desktop sidebar as one piece: the spec's tabs, back button, property pages and sidebar footer with their spacing, scrolling and empty states, and the assistant panel. Use it when the spec's property pages are what the customer should see and only their place changes, for example a sidebar on the left; build the controls yourself when they have to look like the brand's own. Without `width` it fills its container, so the layout positions and sizes that container; `miniSidebar` does not shrink it, so a layout that honours it reads `LayoutSlots.useSidebarContent().hasMiniSidebar` and lets the container take the sidebar's height. Its tabs sit outside it on the left; `side="start"` puts them on its right, for a sidebar on the left. In fullscreen it stays in place, transparent and inert, so a layout that wants the space back removes it while `phx.frontend.useIsFullscreenActive()` is set. See [Sidebar in a Custom Layout](?path=/docs/layouts-sidebar-in-a-custom-layout--docs).
548
548
  - Nothing of the built-in layouts is rendered for it. A project layout finalizes over the spec's `finalizeAction` components, see the finalize paragraph of [Hooks for a Project Layout](#hooks-for-a-project-layout). The `finalizePage` and `finalizeButton` components are legacy: they cannot be declared in YAML, only in TypeScript, and `Legacy.CommonFinalizePage`, which is deprecated, shows a `finalizePage` for projects that still have one. `LayoutDialog` renders only what the project registers with `createLayoutDialog` and is not part of the finalize flow. The preview start screen is `DesktopPreview` or `MobilePreview`, which the layout shows while `phx.frontend.usePreview().isPreview` is set. Both previews frame the scene themselves, so the layout renders the component that calls `phx.frontend.useSceneSafeArea()` only while `isPreview` is not set; it then measures when it mounts after the preview. The assistant panel is available to a project layout only inside `LayoutSlots.DesktopSidebar`.
549
549
  - The layout reads the state it has to react to from hooks, listed with what each returns in [Hooks for a Project Layout](#hooks-for-a-project-layout).
550
- - Messages for the user come one of two ways. `LayoutSlots.Services` shows violations of a rejected change, side-effect hints, errors and failed saves as the built-in snackbars, which render into `LayoutSlots.DesktopSnackbarsRoot` or `LayoutSlots.MobileSnackbarsRoot` wherever the layout mounts it. `phx.frontend.useConfiguratorMessages(onMessage)` hands the same messages to the layout's own UI instead, with their text resolved, as the toast in [Custom Layout](?path=/docs/layouts-custom-layout--docs#show-messages) does; mount one of the two, not both, or every message is shown twice. A failure to save the configuration, and the first successful save after it, are messages too, so a layout that mounts neither shows no sign of a failed save. An error of the built-in finalize and other actions stays a snackbar either way. It renders into the snackbar root, so a layout that mounts none shows it outside the configurator, in the page's `body`. A failure to start a configuration from a preset is not a message of the hook either: it happens on the preset screen, before any `ConfiguratorLayout` mounts. In production with more than one preset it is a snackbar there, also on a preset screen replaced with `createPresetUi` (see [Preset UI](#preset-ui)), which reads the error from `phx.frontend.usePresetSelection().selectionError` and mounts `PresetSnackbarsRoot` to keep the snackbar inside the configurator. With a single preset it is the [Configurator Error Page](#configurator-error-page). A finalize action the layout runs with `phx.frontend.useFinalizeActions` or `phx.frontend.useFinalizeAction` reports its error as the action's `error` instead, neither as a message nor as a snackbar.
550
+ - Messages for the user come one of two ways. `LayoutSlots.Services` shows violations of a rejected change, side-effect hints, errors and failed saves as the built-in snackbars, which render into `LayoutSlots.DesktopSnackbarsRoot` or `LayoutSlots.MobileSnackbarsRoot` wherever the layout mounts it; the theme styles them, see [Layout Slots → Styling the snackbars](?path=/docs/phoenix-layout-slots--docs#styling-the-snackbars). `phx.frontend.useConfiguratorMessages(onMessage)` hands the same messages to the layout's own UI instead, with their text resolved, as the toast in [Custom Layout](?path=/docs/layouts-custom-layout--docs#show-messages) does; mount one of the two, not both, or every message is shown twice. A failure to save the configuration, and the first successful save after it, are messages too, so a layout that mounts neither shows no sign of a failed save. An error of the built-in finalize and other actions stays a snackbar either way. It renders into the snackbar root, so a layout that mounts none shows it outside the configurator, in the page's `body`. A failure to start a configuration from a preset is not a message of the hook either: it happens on the preset screen, before any `ConfiguratorLayout` mounts. In production with more than one preset it is a snackbar there, also on a preset screen replaced with `createPresetUi` (see [Preset UI](#preset-ui)), which reads the error from `phx.frontend.usePresetSelection().selectionError` and mounts `PresetSnackbarsRoot` to keep the snackbar inside the configurator. With a single preset it is the [Configurator Error Page](#configurator-error-page). A finalize action the layout runs with `phx.frontend.useFinalizeActions` or `phx.frontend.useFinalizeAction` reports its error as the action's `error` instead, neither as a message nor as a snackbar.
551
551
  - Any project layout element named `ConfiguratorLayout` takes over the page.
552
552
 
553
- `defaultConfiguratorElements`, exported from `@salsita-ai/sdk/configurator`, holds the built-in UI as a `ConfiguratorLayout` registration that renders the layout the spec selects, the built-in not-found page as a `ConfigurationNotFoundPage` registration, the built-in not-authenticated page as a `NotAuthenticatedPage` registration, the built-in preset screen as a `PresetUi` registration, the built-in error page as a `ConfiguratorErrorPage` registration, the app loader's built-in content as an `AppLoaderContent` registration, and the built-in in-scene controls under the names of [In-Scene Controls](#in-scene-controls). Generated code registers these defaults with `withDefaultElements`, apart from the project's elements, so the built-in UI is a registration like any other; a project element registered under the same name wins over a default. The list also holds the configurator's built-in controls and layout elements under the kinds the spec names them by, such as `attributeSelect` or `undoToolbarButton`, so a project element registered under one of those names replaces the built-in one wherever the spec names that kind. A config assembled by hand, without generated code, calls `withDefaultElements(defaultConfiguratorElements)` too; the lists are the only way the built-in elements are registered, so without it the page shows a "not found" box instead of the configurator, and a project layout shows one in place of every built-in control. The admin mounts a full configurator, so its list, `defaultAdminElements` from `@salsita-ai/sdk/admin`, holds the configurator's defaults followed by the admin's built-in pages, sidebars and actions; generated admin code passes it to `withDefaultElements` in place of `defaultConfiguratorElements`, because each call replaces the defaults passed before.
553
+ `defaultConfiguratorElements`, exported from `@salsita-ai/sdk/configurator`, holds the built-in UI as a `ConfiguratorLayout` registration that renders the layout the spec selects, the built-in not-found page as a `ConfigurationNotFoundPage` registration, the built-in not-authenticated page as a `NotAuthenticatedPage` registration, the built-in preset screen as a `PresetUi` registration, the built-in error page as a `ConfiguratorErrorPage` registration, the app loader's built-in content as an `AppLoaderContent` registration, and the built-in in-scene controls under the names of [In-Scene Controls](#in-scene-controls). Generated code registers these defaults with `withDefaultElements`, apart from the project's elements, so the built-in UI is a registration like any other; a project element registered under the same name wins over a default. The list also holds the configurator's built-in controls and layout elements under the kinds the spec names them by, such as `attributeSelect` or `undoToolbarButton`, so a project element registered under one of those names replaces the built-in one wherever the spec names that kind. A config assembled by hand, without generated code, calls `withDefaultElements(defaultConfiguratorElements)` too; the lists are the only way the built-in elements are registered, so without it the page shows a "not found" box instead of the configurator, and a project layout shows one in place of every built-in control. The defaults also hold the configurator's visual providers and the error page and dialog its runtime renders, and a config without them runs the lifecycle without them, with a plain error message in place of the error page. Without them nothing provides the responsive context, so an SDK layout slot that reads it, for example `LayoutSlots.SharedCanvas`, stops the configurator with that plain error message instead of showing a "not found" box, and snackbar messages have no host. The admin mounts a full configurator, so its list, `defaultAdminElements` from `@salsita-ai/sdk/admin`, holds the configurator's defaults followed by the admin's built-in pages, sidebars and actions; generated admin code passes it to `withDefaultElements` in place of `defaultConfiguratorElements`, because each call replaces the defaults passed before.
554
554
 
555
555
  #### Hooks for a Project Layout
556
556
 
@@ -329,7 +329,17 @@ export type RuntimeConfig = ReturnType<typeof readRuntimeConfig>
329
329
  2. **`.env.generated`** file (created by deployment process)
330
330
  3. **`.env`** file (lowest priority)
331
331
 
332
- This means you can override any environment variable by setting it directly in your shell, while still having defaults in `.env` files.
332
+ Set a variable in your shell to override either file tier. In a pnpm workspace, a value in the current package wins over the workspace-root value within the same tier; a workspace generated value still wins over a package `.env` value. Each folder uses `.env.generated` when it exists, otherwise `.phoenix/.env.generated`; the two generated files are never merged.
333
+
334
+ Only values from `.env` expand references such as `${API_HOST}` against the winning values. Process and generated values stay literal, including when a `.env` value references them. For a literal dollar sign in `.env`, escape it as `\$`:
335
+
336
+ ```dotenv
337
+ API_HOST=https://api.example.com
338
+ API_URL=${API_HOST}/v1
339
+ PASSWORD=cost-\$5
340
+ ```
341
+
342
+ Here `API_URL` becomes `https://api.example.com/v1` and `PASSWORD` becomes `cost-$5`. Generated values need no interpolation escaping. Reading the configuration does not modify `process.env`.
333
343
 
334
344
  ## Step-by-Step Deployment Guide
335
345
 
@@ -842,7 +842,10 @@ Phoenix automatically:
842
842
  During `phoenix dev`, schema-compatible configurator changes can refresh the mounted application in
843
843
  place. Changes to the domain model itself are rejected from live application and require a restart;
844
844
  this preserves the last valid runtime and loaded configuration until migration and deployment can be
845
- coordinated atomically.
845
+ coordinated atomically. With server persistence, restart `phoenix dev` itself: it logs an error that
846
+ asks for the restart, and registers the changed model with its development deployment when it starts
847
+ again. Then open the preview address it prints rather than a tab whose address has `?cid=`, which
848
+ loads a configuration saved with the earlier model.
846
849
 
847
850
  ### The phx Global Namespace
848
851
 
@@ -89,8 +89,6 @@ For inspiration and real-world implementation patterns, examine deployed Salsita
89
89
 
90
90
  When you encounter challenges or need to implement specific features, use these resources in order:
91
91
 
92
- **AI-Powered Assistance**: Every Phoenix project ships Phoenix agent skills, so coding agents in your project already know the SDK conventions and CLI. Start by using AI coding assistants in the `configurator-phoenix` project. While they may not solve complex problems directly, they can point you toward relevant examples or search terms that will help you find the right solution.
93
-
94
92
  **Storybook Documentation**: Search the Phoenix Storybook for functionality similar to what you need. When you find relevant examples, examine the corresponding code in the configurator-phoenix stories to understand the implementation details.
95
93
 
96
94
  **Repository Search Strategy**:
@@ -44,6 +44,27 @@ export const Toolbar = () => (
44
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
45
  - Snackbars are raised by `Services`, for violations, side-effect hints, validation errors and a failed save, and also by the built-in finalize and footer actions when their handler fails. A layout that shows these messages its own way calls `phx.frontend.useConfiguratorMessages(onMessage)` instead of mounting `Services`, and then shows the failed save too, 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.useFinalizeActions` or `phx.frontend.useFinalizeAction` raises no snackbar; its error is the action's `error`.
46
46
 
47
+ ### Styling the snackbars
48
+
49
+ Every snackbar of the configurator and the admin, raised by `Services`, a failed save, a failed preset creation or a built-in action, renders as `PhxSnackbar` from `@salsita-ai/sdk/ui`: an MUI `Alert` with the snackbar's variant as its severity, inside notistack's `SnackbarContent`. A project restyles the configurator's snackbars in its theme, from [`createGetThemeHandler`](?path=/docs/layouts-custom-theme-handler--docs), under `components.PhxSnackbar` (the admin's snackbars follow the admin's own theme, which ignores the theme handler):
50
+
51
+ ```ts
52
+ // Part of the ThemeOptions a theme handler returns
53
+ const components: ThemeOptions['components'] = {
54
+ PhxSnackbar: {
55
+ styleOverrides: {
56
+ alert: ({ theme }) => ({ borderRadius: 0, boxShadow: theme.shadows[3] }),
57
+ actionButton: { fontWeight: 600, textTransform: 'none' },
58
+ },
59
+ },
60
+ }
61
+ ```
62
+
63
+ - `styleOverrides` styles three slots: `content`, notistack's outer element; `alert`, the `Alert` with the message; and `actionButton`, a button such as **Dismiss**.
64
+ - `defaultProps.slotProps` passes props to the slots, such as `{ alert: { variant: 'filled' } }`, and `defaultProps.slots` replaces a slot's component. The `MuiAlert` and `MuiButton` overrides of the theme reach the snackbars too.
65
+ - A snackbar's button is described as data, not as an element: the code that raises it passes `actionButton: { label, onClick }` to notistack's `enqueueSnackbar`, and `PhxSnackbar` renders it in the `actionButton` slot, an MUI `Button` with `color="inherit"` and `size="small"`, after the snackbar's notistack `action` if it has one. `onClick` receives the snackbar's key, to close it with `closeSnackbar`. A project's own snackbars take the same option, typed by `SnackbarActionButton` from `@salsita-ai/sdk/react`, so their buttons follow the theme; an element passed as `action` renders as it is.
66
+ - Where the snackbars appear is the snackbar root's job, see `DesktopSnackbarsRoot` and `MobileSnackbarsRoot`.
67
+
47
68
  ## Desktop sidebar
48
69
 
49
70
  | Member | Shows | Fed by | With nothing configured | Read mode |
@@ -352,33 +352,32 @@ grep -r "from '\.\/" src/
352
352
 
353
353
  **Error:** Changes to `.phoenix/` files are overwritten
354
354
 
355
- **Solution:** Never commit `.phoenix/` contents. Add to `.gitignore`:
355
+ **Solution:** Keep generated files out of version control. Application-spec projects can commit their project-owned `.phoenix/workspace/` records; sync writes the appropriate ignore rules. Remove any custom rule that ignores the entire `.phoenix/` directory if you want to version those records. See [Project Structure](?path=/docs/phoenix-project-structure--docs#markers-for-partial-auto-generation) for the managed block and ownership rules.
356
356
 
357
- ```
358
- .phoenix/
359
- ```
360
-
361
- If you accidentally modified generated files, delete and regenerate:
357
+ If you accidentally modified generated files, clean and regenerate them with the CLI. In application-spec projects this preserves workspace records:
362
358
 
363
359
  ```bash
364
- rm -rf .phoenix/
360
+ pnpm phoenix clean
365
361
  pnpm phoenix build
366
362
  ```
367
363
 
364
+ The legacy pipeline has no workspace-preservation contract; see [Phoenix CLI](?path=/docs/phoenix-phoenix-cli--docs#phoenix-clean).
365
+
368
366
  **Note:** Mock templates are no longer auto-applied on Editor load. Users must manually select and apply templates (changed in v0.36.0).
369
367
 
370
368
  ### .gitignore Conflicts
371
369
 
372
370
  **Error:** Custom gitignore entries disappear after Phoenix update
373
371
 
374
- **Solution:** Place custom entries between Phoenix markers:
372
+ **Solution:** Place custom entries outside the Phoenix markers. Sync replaces the generated block and preserves everything outside it:
375
373
 
376
374
  ```gitignore
377
- # phoenix-start
375
+ # ===== BEGIN PHOENIX AUTO-GENERATED =====
378
376
  # Auto-generated by Phoenix - DO NOT EDIT
379
- .phoenix/
377
+ **/.phoenix/*
378
+ !**/.phoenix/workspace/
380
379
  .env.generated
381
- # phoenix-end
380
+ # ===== END PHOENIX AUTO-GENERATED =====
382
381
 
383
382
  # Your custom entries below
384
383
  my-custom-folder/
@@ -40,7 +40,31 @@ pnpm phoenix dev
40
40
  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.
41
41
  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.
42
42
 
43
- The next steps it prints use the package manager you ran it with, or name none when it cannot tell. 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.
43
+ The next steps it prints use the package manager you ran it with, or name none when it cannot tell. It asks nothing, writes no `.env` and contacts no Phoenix server. It does send the operational telemetry described below unless telemetry is disabled. `phoenix sync` then generates every other project file, as 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.
44
+
45
+ ### CLI telemetry
46
+
47
+ Operational CLI telemetry is enabled by default. Recognized top-level `phoenix` commands send lifecycle events directly to Amplitude's US ingestion endpoint. Current commands record both started and completed events. Legacy commands retain their existing exit behavior, so completion may be absent when they exit directly, including when legacy `dev` stops.
48
+
49
+ For `phoenix dev`, `cli_dev_server_ready` records that startup finished and the server is listening; it does not prove that a browser connected or the application works. Its `duration_ms` measures startup time. With the current application-spec pipeline, the command stays open until its existing shutdown path emits completion, whose duration covers the whole run. A normal stop is not evidence of abandonment, and a missing completion (for example after a forced kill) means the outcome is unknown.
50
+
51
+ Aliases are recorded as their canonical command names. Delivery failures never change the command result, and the CLI stops waiting for each delivery after one second.
52
+
53
+ Before a successful `phoenix login`, telemetry uses only random anonymous identifiers. Failed login attempts remain anonymous. The CLI stores an installation UUID, work-session UUID and last activity time in `~/.phoenix/telemetry.json`; a work session continues while commands occur less than 30 minutes apart.
54
+
55
+ After a successful login, the login completion and later commands from that installation include the stable authenticated builder user ID and the internal workspace UUID. Amplitude uses the unchanged installation ID to associate the earlier anonymous command path with that user. A later successful login replaces the stored user and workspace association. The state file never contains a login token, email address, machine fingerprint, project path or project content. Because the installation ID belongs to the operating-system user profile, people who share that profile also share its command history and latest association.
56
+
57
+ The events contain only:
58
+
59
+ - schema version, source (`cli`) and command name;
60
+ - unique event and command-attempt IDs;
61
+ - occurrence time, phase, safe outcome/failure category and duration;
62
+ - SDK version, traffic classification (`unknown` before authentication, `general` after it) and work-session ID;
63
+ - after successful login only, the authenticated builder user ID and workspace UUID.
64
+
65
+ The CLI never sends raw arguments, local paths, environment values, credentials, source/specification content, URLs, free text or raw error messages. The shipped Amplitude ingestion API key is public and only selects the destination project; it grants no read or administrative access. Events sent by a public client can be forged and are observations, not authoritative proof of deployment or server state.
66
+
67
+ Set `PHOENIX_TELEMETRY_DISABLED=1` to opt out. The opted-out CLI neither sends telemetry nor creates or updates the state file. `PHOENIX_TELEMETRY_FILE` overrides the state path for tests and other isolated environments.
44
68
 
45
69
  ### Which project `phoenix dev` develops in
46
70
 
@@ -163,7 +187,9 @@ A project has one generated env file. Phoenix keeps it in `.phoenix/`, as `.phoe
163
187
  - `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.
164
188
  - 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.
165
189
  - 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.
166
- - `phoenix clean` removes `.phoenix/` and with it `.phoenix/.env.generated`; the next `phoenix dev` prepares the development deployment again. A root `.env.generated` stays.
190
+ - `phoenix clean` removes the generated contents of `.phoenix/`, including `.phoenix/.env.generated`; the next `phoenix dev` prepares the development deployment again. A root `.env.generated` stays.
191
+ - `phoenix dev` starts on the deployment the file names, and prepares a new one when the file was written for another project, environment or server, when the spec registers something on the server the deployment was not prepared with (the domain model, the published data schema, the auth hook, the roles that may create configurations, or the assistant), and on `--force`. A running `phoenix dev` does not prepare again after such a change: it logs an error that asks for a restart.
192
+ - Asset contents do not trigger preparation. After changing uploaded assets, restart with `phoenix dev --force` to prepare and upload them again.
167
193
 
168
194
  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.
169
195
 
@@ -240,7 +266,7 @@ A build pipeline that receives the source archive of a [`phoenix deploy`](#phoen
240
266
  - it refuses an archive over 200 MB, one that extracts to more than 1 GB, or one with more than 100,000 files;
241
267
  - 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;
242
268
  - it refuses an archive it cannot read to the end, such as a truncated upload;
243
- - 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.
269
+ - it extracts only project files and reports the entries it left out, including the optional `conversation.log`, the `.phoenix/workspace/` records and the `docs/` documents that deploy keeps in the private archive for review.
244
270
 
245
271
  `<folder>` must be new or empty. When the command refuses an archive, it removes the folder, so a partly extracted project is never built.
246
272
 
@@ -305,14 +331,16 @@ Starts the full development environment: Vite dev server, development webhook tu
305
331
  | `--environmentSlug` | `ENVIRONMENT_SLUG` | package.json name | Environment slug |
306
332
  | `--withLingui` | `WITH_LINGUI` | `false` | Enable i18n extraction/compilation and watch i18n sources during dev |
307
333
  | `--persistence` | `PERSISTENCE_MODE` | `server` | Persistence mode |
308
- | `--force` / `-f` | `FORCE_REBUILD` | `false` | Force full rebuild, skip cache |
334
+ | `--force` / `-f` | `FORCE_REBUILD` | `false` | Force full rebuild, skip cache, and prepare the development deployment again |
309
335
  | `--serverUrl` | `SERVER_URL` | the region's server | Phoenix server URL |
310
336
  | `--region` | `PHOENIX_REGION` | `eu` | Region of the signed-in workspace, used when no server URL is set |
311
337
  | `--skipUpload` / `--su` | `SKIP_UPLOAD` | `false` | Skip the S3 asset upload when the development deployment is prepared at startup |
312
338
 
313
339
  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.
314
340
 
315
- 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.
341
+ By default, with the application-spec pipeline, `phoenix dev` bootstraps missing compiled catalogs for every configured locale at startup, so a fresh project can start without a prior sync. It compiles existing `.po` translations as they are and extracts a locale only when its `.po` source is also missing. Existing compiled catalogs and `.po` sources stay unchanged. New or changed messages still need `phoenix sync` or continuous updates enabled by `--withLingui` or `WITH_LINGUI=true`.
342
+
343
+ The SDK's own Lingui CLI uses the configuration generated 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.
316
344
 
317
345
  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.
318
346
 
@@ -320,6 +348,7 @@ The dev server watches for changes in:
320
348
 
321
349
  - `spec/**/*.yaml` — Domain specification files
322
350
  - `src/**/*.{ts,tsx,yaml,yml,json,html,css}` — Source files
351
+ - `package.json` — Root dependency declarations; changes recheck the SDK's peers. A mismatch is reported without stopping dev, and correcting the manifest triggers another rebuild. Install changed dependencies with your package manager; changes to installed packages can still require restarting dev.
323
352
  - `.env` — Environment file; a change restarts the Vite dev server
324
353
  - `.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.
325
354
 
@@ -336,7 +365,11 @@ Restart the application after fixing either failure; a subscriber or generation
336
365
  observed the attempted update.
337
366
 
338
367
  Domain-model changes are not applied live yet. Phoenix rejects them with a restart-required
339
- diagnostic so the mounted application cannot observe a new model with old configuration data. Other
368
+ diagnostic so the mounted application cannot observe a new model with old configuration data. With
369
+ server persistence, `phoenix dev` logs an error that asks for its own restart, because the
370
+ development deployment keeps the schema it was prepared with until `phoenix dev` starts again and
371
+ prepares it. After the restart, open the preview address it prints: a tab whose address has `?cid=`
372
+ loads a configuration saved with the earlier model, which the new model rejects. Other
340
373
  generated bootstrap, admin, data, environment, and host-integration surfaces should also be treated
341
374
  as restart-required unless their feature documentation explicitly states live-update support.
342
375
 
@@ -403,7 +436,7 @@ Set initial values from a local production build with roughly 5–10% headroom t
403
436
 
404
437
  ### `phoenix clean`
405
438
 
406
- Removes `.phoenix/` and regenerates all project files from scratch. It installs nothing and leaves `node_modules/` as it is; to reinstall too, delete `node_modules/` and install with your package manager. In a project on the legacy pipeline (see [Current and legacy project tooling](#current-and-legacy-project-tooling)), `phoenix clean` also removes `node_modules/` and runs `pnpm install`. Use this when:
439
+ Removes generated output and regenerates the project files. In application-spec projects it preserves project-owned records under `.phoenix/workspace/`, installs nothing and leaves `node_modules/` as it is; to reinstall too, delete `node_modules/` and install with your package manager. In a project on the legacy pipeline (see [Current and legacy project tooling](#current-and-legacy-project-tooling)), `phoenix clean` removes the whole `.phoenix/` folder and `node_modules/` and runs `pnpm install`. Use this when:
407
440
 
408
441
  - Generated files are corrupted or out of sync
409
442
  - After major SDK version upgrades
@@ -534,7 +567,7 @@ phoenix screenshot -o preview.png -w 1920 --height 1080
534
567
 
535
568
  ### `phoenix variants`
536
569
 
537
- Show several options over the configurator and wait for your pick. It is built for coding agents: when a decision is a matter of taste, such as the edge of a table top, how glossy a finish is or where a control sits, the agent writes one file per option, you choose in the browser, and the command hands your answer back to the agent.
570
+ Compare options such as a table-top edge, surface gloss or control placement in the configurator. Write one file per option, choose in the browser, and the command returns the selection.
538
571
 
539
572
  ```bash
540
573
  phoenix variants .phoenix/variants/table-edge --title 'Which edge suits the table?' --description 'Only the edge of the top differs.'
@@ -609,8 +642,6 @@ Known limits:
609
642
  - Binary assets, CSS files, locale catalog changes, dependency changes and edits requiring a full application restart are unsupported.
610
643
  - Storybook `story-dev` has no variant previews. A project on the legacy pipeline has no variant previews; the command says so and exits.
611
644
 
612
- Generated projects carry the `phoenix-variants` agent skill, which tells coding agents when to offer options, how to write each kind and what to do with your answer.
613
-
614
645
  ## SDK Development
615
646
 
616
647
  ### `phoenix link`
@@ -725,7 +756,7 @@ SDK-builder workspaces sign the CLI in with a personal API token instead of proj
725
756
 
726
757
  Signs the CLI in to the SDK-builder workspace `<customer>`:
727
758
 
728
- 1. Opens Studio, where you name the token and approve the sign-in (use `--no-open` to only print the link). Only a super admin of the workspace can open its Studio, so only a super admin can sign the CLI in. The page shows the workspace, your account, the computer the CLI runs on and how long the link still works. The CLI suggests the name `phoenix CLI on <computer>`; change it so you can tell your machines and agents apart later.
759
+ 1. Opens Studio, where you name the token and approve the sign-in (use `--no-open` to only print the link). Only a super admin of the workspace can open its Studio, so only a super admin can sign the CLI in. The page shows the workspace, your account, the computer the CLI runs on and how long the link still works. The CLI suggests the name `phoenix CLI on <computer>`; change it so you can tell your sign-ins apart later.
729
760
  2. Studio sends a one-time code back to the CLI on `127.0.0.1`.
730
761
  3. The CLI exchanges the code for a token with the name you approved, and sends the browser back to Studio, which confirms the sign-in.
731
762
 
@@ -750,11 +781,22 @@ Revokes the token on the server and removes it from the credentials file. `--reg
750
781
 
751
782
  ### `phoenix deploy`
752
783
 
753
- Validates the spec, 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.
784
+ Validates the spec, 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. It prints `Your configurator is live at <url>` when deployment succeeds. `--region` or `--serverUrl` selects the server, as for `login`; `--no-wait` returns as soon as the build starts.
785
+
786
+ A follow-up evaluation hint is addressed to coding agents; you can ignore it when running the command manually.
787
+
788
+ Project-owned records under `.phoenix/workspace/` and client documents under `docs/`, such as the
789
+ rendered specification PDFs, are included in the private source archive and can be downloaded with
790
+ the build's sources; deploy reports how many `docs/` files it includes. Local sync, build and clean
791
+ keep both. The build extractor leaves them out, so
792
+ they are not application build inputs or public assets. They use the archive's existing size limits
793
+ and exclusions for dependencies, generated files, environment files and macOS metadata. The
794
+ `.phoenix`, `.phoenix/workspace` and `docs` paths must be real directories, and linked or special
795
+ files are rejected. Keep their contents suitable for everyone authorized to download the sources.
754
796
 
755
797
  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.
756
798
 
757
- 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.
799
+ Review and redact credentials or unrelated sensitive content before uploading the transcript. The CLI uploads the file as supplied; it does not collect conversation 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.
758
800
 
759
801
  ### `phoenix feedback [message]`
760
802
 
@@ -772,14 +814,14 @@ Pass the message as the argument for a short note, or `--file` for a longer repo
772
814
  | `--file` | — | — | Text file that holds the message, instead of the argument |
773
815
  | `--type` | — | `other` | What the feedback is about: `bug`, `idea` or `other` |
774
816
  | `--contact` | — | — | How to reach you, when you want a reply |
775
- | `--agent` | — | — | Name of the coding agent that writes the feedback |
817
+ | `--agent` | — | — | Name of the coding agent submitting the feedback |
776
818
  | `--projectSlug` / `-p` | `PROJECT_SLUG` | `project` of the spec, if any | Workspace project the feedback is about |
777
819
  | `--region` | — | `eu` | Phoenix region of the workspace: `eu` or `us` |
778
820
  | `--serverUrl` / `--su` | — | the region's server | Phoenix server URL, for a local or custom server |
779
821
 
780
822
  A message holds at most 100,000 characters, from the argument or from the file. Besides the message and the flags, the CLI sends only the SDK version, the operating system and the Node.js version; no file of the project is attached, and the Phoenix team reads a build's sources through the build's page in Studio. The project must belong to the signed-in workspace, otherwise the server refuses the feedback; without a project, the feedback is sent on its own.
781
823
 
782
- Generated projects carry the `phoenix-feedback` agent skill. It tells coding agents when to draft feedback, to show you the draft and send it only after you approve it, and how to write a report: the build id with its Studio page link, the live configurator link, what the agent was doing, what happened and what was expected, the exact error or output, the workaround and a condensed conversation log. When you say you are done, or a deploy went live and you confirm the run is finished, the agent asks you to evaluate the run, one question at a time: minutes spent, then a score from 0 to 10 for the agent's guidance, the configurator's functionality, its UX, the quality of the 3D, the UI visuals and the overall result, then your comments. It never picks a score for you and sends nothing when you decline. Secrets, credentials and personal data never go into a message; file paths, spec and code snippets and your own words may, once you approved the draft that contains them. The command needs a server with API 1.40.0 or newer; a message over 5000 characters needs API 1.43.0 or newer.
824
+ Review the message before sending and omit secrets, credentials and personal data. The command needs a server with API 1.40.0 or newer; a message over 5000 characters needs API 1.43.0 or newer.
783
825
 
784
826
  ## Next Steps
785
827