@salsita-ai/sdk 0.50.0-develop.bc08a38ffe → 0.50.0-develop.bcb0516d62

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 (823) hide show
  1. package/README.md +19 -14
  2. package/dist/admin/default-admin-elements.d.ts +9 -0
  3. package/dist/admin/default-admin-elements.js +1 -0
  4. package/dist/admin/default-elements/built-in-entity-element.d.ts +10 -0
  5. package/dist/admin/default-elements/built-in-entity-element.js +1 -0
  6. package/dist/admin/default-elements/built-in-layout-element.d.ts +10 -0
  7. package/dist/admin/default-elements/built-in-layout-element.js +1 -0
  8. package/dist/admin/default-elements/index.d.ts +2 -0
  9. package/dist/admin/default-elements/index.js +1 -0
  10. package/dist/admin/index.d.ts +1 -0
  11. package/dist/admin/index.js +1 -1
  12. package/dist/application-spec/caching/content-diff.js +1 -1
  13. package/dist/application-spec/core/application-file.d.ts +0 -2
  14. package/dist/application-spec/core/application-file.js +1 -1
  15. package/dist/application-spec/errors/diagnostic-codes.d.ts +9 -0
  16. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  17. package/dist/application-spec/errors/diagnostic-messages.d.ts +9 -0
  18. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  19. package/dist/application-spec/generate-application/code/common/code-imports.js +1 -1
  20. package/dist/application-spec/generate-application/code/common/env-reader.js +2 -2
  21. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  22. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  23. package/dist/application-spec/generate-application/code/common/single-quoted-string.d.ts +6 -0
  24. package/dist/application-spec/generate-application/code/common/single-quoted-string.js +1 -0
  25. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  26. package/dist/application-spec/generate-application/code/generate-application-code.d.ts +3 -2
  27. package/dist/application-spec/generate-application/code/generate-application-code.js +1 -1
  28. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +15 -14
  29. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  30. package/dist/application-spec/generate-application/code/standalone-app-files.d.ts +2 -2
  31. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  32. package/dist/application-spec/generate-application/code/story-files.js +1 -1
  33. package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -0
  34. package/dist/application-spec/generate-application/code/templates/application-types.js +6 -6
  35. package/dist/application-spec/generate-application/code/templates/common/doc-comment.d.ts +2 -0
  36. package/dist/application-spec/generate-application/code/templates/common/doc-comment.js +1 -0
  37. package/dist/application-spec/generate-application/code/templates/common/format-property-key.d.ts +7 -0
  38. package/dist/application-spec/generate-application/code/templates/common/format-property-key.js +1 -0
  39. package/dist/application-spec/generate-application/code/templates/common/schema-to-type-string.js +3 -3
  40. package/dist/application-spec/generate-application/code/templates/configurator-config.js +6 -4
  41. package/dist/application-spec/generate-application/code/templates/configurator-globals.d.ts +2 -1
  42. package/dist/application-spec/generate-application/code/templates/configurator-globals.js +19 -6
  43. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +35 -0
  44. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +5 -0
  45. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.d.ts +1 -0
  46. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.js +1 -0
  47. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.d.ts +1 -1
  48. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +6 -6
  49. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +59 -63
  50. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +8 -0
  51. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  52. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-presets.js +1 -1
  53. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +13 -13
  54. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.d.ts +1 -1
  55. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.js +2 -2
  56. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +2 -1
  57. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  58. package/dist/application-spec/generate-application/code/templates/eslint-config.d.ts +5 -0
  59. package/dist/application-spec/generate-application/code/templates/eslint-config.js +4 -5
  60. package/dist/application-spec/generate-application/code/templates/frontend-config.js +3 -5
  61. package/dist/application-spec/generate-application/code/templates/gitignore.js +0 -3
  62. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.js +7 -7
  63. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.d.ts +12 -0
  64. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.js +7 -0
  65. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.d.ts +43 -0
  66. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +33 -0
  67. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +2 -0
  68. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  69. package/dist/application-spec/generate-application/code/templates/globals.js +24 -44
  70. package/dist/application-spec/generate-application/code/templates/index.d.ts +3 -3
  71. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  72. package/dist/application-spec/generate-application/code/templates/lingui-rc.d.ts +5 -0
  73. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +4 -4
  74. package/dist/application-spec/generate-application/code/templates/prettier-config.d.ts +5 -0
  75. package/dist/application-spec/generate-application/code/templates/prettier-config.js +4 -5
  76. package/dist/application-spec/generate-application/code/templates/root-tsconfig.d.ts +6 -0
  77. package/dist/application-spec/generate-application/code/templates/root-tsconfig.js +2 -0
  78. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  79. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +1 -1
  80. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +5 -5
  81. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +3 -3
  82. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  83. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +2 -2
  84. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +25 -7
  85. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -2
  86. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
  87. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
  88. package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
  89. package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
  90. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
  91. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
  92. package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
  93. package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
  94. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
  95. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
  96. package/dist/application-spec/generate-application/code/templates/story/phx-module.d.ts +8 -2
  97. package/dist/application-spec/generate-application/code/templates/story/phx-module.js +15 -3
  98. package/dist/application-spec/generate-application/code/templates/story/wrapper.d.ts +3 -0
  99. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -1
  100. package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
  101. package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
  102. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +6 -1
  103. package/dist/application-spec/generate-application/code/templates/webhook-index.js +10 -1
  104. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -3
  105. package/dist/application-spec/generate-application/index.d.ts +2 -0
  106. package/dist/application-spec/generate-application/index.js +1 -1
  107. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +6 -4
  108. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +1 -1
  109. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +8 -3
  110. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  111. package/dist/application-spec/generate-application/runtime/admin-runtime/states-runtime.d.ts +2 -2
  112. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +19 -5
  113. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  114. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +6 -4
  115. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +1 -1
  116. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +7 -2
  117. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  118. package/dist/application-spec/generate-application/runtime/configurator-runtime/states-runtime.d.ts +2 -2
  119. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +43 -0
  120. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.js +1 -0
  121. package/dist/application-spec/generate-application/runtime/factory-data/index.d.ts +3 -0
  122. package/dist/application-spec/generate-application/runtime/factory-data/index.js +1 -0
  123. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +13 -0
  124. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -0
  125. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +16 -0
  126. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -0
  127. package/dist/application-spec/generate-application/runtime/migrations/index.d.ts +1 -0
  128. package/dist/application-spec/generate-application/runtime/migrations/index.js +1 -0
  129. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +53 -0
  130. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +1 -0
  131. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +2 -2
  132. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +2 -1
  133. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  134. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +2 -1
  135. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +1 -1
  136. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +3 -0
  137. package/dist/application-spec/generate-application/runtime/sections/component-optic.js +1 -1
  138. package/dist/application-spec/generate-application/runtime/sections/data-runtime.d.ts +4 -4
  139. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +7 -4
  140. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  141. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +9 -5
  142. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  143. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +3 -1
  144. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.js +1 -1
  145. package/dist/application-spec/generate-application/runtime/sections/theme-runtime.d.ts +2 -2
  146. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +3 -3
  147. package/dist/application-spec/generate-application/runtime/spec-code/index.d.ts +2 -0
  148. package/dist/application-spec/generate-application/runtime/spec-code/index.js +1 -0
  149. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +18 -0
  150. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.js +1 -0
  151. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.d.ts +17 -0
  152. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.js +1 -0
  153. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.d.ts +9 -0
  154. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.js +1 -0
  155. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.d.ts +8 -0
  156. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.js +1 -0
  157. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +27 -0
  158. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.js +1 -0
  159. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +5 -0
  160. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -0
  161. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +68 -0
  162. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -0
  163. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +40 -0
  164. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.js +1 -0
  165. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +34 -0
  166. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  167. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.d.ts +16 -0
  168. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.js +9 -0
  169. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts +9 -0
  170. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
  171. package/dist/application-spec/parse-application-files/raw-spec/parse-yaml-spec-file.js +1 -1
  172. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +19 -2
  173. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  174. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  175. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  176. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  177. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  178. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.d.ts +3 -0
  179. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js +1 -0
  180. package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +5 -0
  181. package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -0
  182. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.d.ts +6 -0
  183. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.js +1 -0
  184. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.d.ts +8 -0
  185. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.js +1 -0
  186. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts +10 -0
  187. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.js +1 -0
  188. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.d.ts +98 -0
  189. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.js +1 -0
  190. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts +13 -0
  191. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js +1 -0
  192. package/dist/application-spec/parse-application-files/spec/components/bindings/index.d.ts +2 -0
  193. package/dist/application-spec/parse-application-files/spec/components/bindings/index.js +1 -1
  194. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.d.ts +24 -0
  195. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js +1 -0
  196. package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts +8 -0
  197. package/dist/application-spec/parse-application-files/spec/components/component-state-type.js +1 -0
  198. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts +13 -0
  199. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js +1 -0
  200. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.d.ts +14 -0
  201. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.js +1 -0
  202. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +6 -0
  203. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  204. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +7 -4
  205. package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
  206. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +24 -0
  207. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -0
  208. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.d.ts +13 -0
  209. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.js +1 -0
  210. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
  211. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
  212. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +6 -2
  213. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  214. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +3 -1
  215. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  216. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +2 -2
  217. package/dist/application-spec/parse-application-files/spec/invariants/invariants.js +1 -1
  218. package/dist/application-spec/parse-application-files/spec/model/index.d.ts +1 -0
  219. package/dist/application-spec/parse-application-files/spec/model/index.js +1 -1
  220. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.d.ts +10 -0
  221. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.js +1 -0
  222. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.d.ts +9 -0
  223. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.js +1 -0
  224. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  225. package/dist/client/phoenix-api.d.ts +367 -0
  226. package/dist/configurator/ConfiguratorApp.js +1 -1
  227. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.d.ts +2 -0
  228. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.js +5 -0
  229. package/dist/configurator/app-loader-content/app-loader-content-name.d.ts +5 -0
  230. package/dist/configurator/app-loader-content/app-loader-content-name.js +1 -0
  231. package/dist/configurator/app-loader-content/index.d.ts +2 -0
  232. package/dist/configurator/app-loader-content/index.js +1 -0
  233. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +36 -1
  234. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  235. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +7 -1
  236. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  237. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.d.ts +1 -1
  238. package/dist/configurator/application-runtime/extensions/systems/canvas-system.d.ts +8 -0
  239. package/dist/configurator/application-runtime/extensions/systems/canvas-system.js +1 -1
  240. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.js +1 -1
  241. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.d.ts +12 -0
  242. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.js +1 -0
  243. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +7 -1
  244. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  245. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.js +1 -1
  246. package/dist/configurator/common/configurator-interface.d.ts +131 -4
  247. package/dist/configurator/common/configurator-interface.js +1 -1
  248. package/dist/configurator/common/index.d.ts +3 -1
  249. package/dist/configurator/common/index.js +1 -1
  250. package/dist/configurator/common/use-reset-camera.d.ts +6 -0
  251. package/dist/configurator/common/use-reset-camera.js +1 -0
  252. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +12 -0
  253. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -0
  254. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.d.ts +9 -0
  255. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.js +1 -0
  256. package/dist/configurator/configuration-not-found-page/index.d.ts +2 -0
  257. package/dist/configurator/configuration-not-found-page/index.js +1 -0
  258. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +12 -0
  259. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -0
  260. package/dist/configurator/configurator-context/PresetSelectionProvider.js +1 -1
  261. package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
  262. package/dist/configurator/configurator-context/ViewportStateSync.d.ts +2 -2
  263. package/dist/configurator/configurator-context/ViewportStateSync.js +1 -1
  264. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +10 -0
  265. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +1 -1
  266. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.d.ts +6 -0
  267. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.js +1 -0
  268. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.d.ts +12 -0
  269. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.js +1 -0
  270. package/dist/configurator/configurator-error-page/create-configurator-error-page.d.ts +9 -0
  271. package/dist/configurator/configurator-error-page/create-configurator-error-page.js +1 -0
  272. package/dist/configurator/configurator-error-page/index.d.ts +3 -0
  273. package/dist/configurator/configurator-error-page/index.js +1 -0
  274. package/dist/configurator/index.d.ts +3 -0
  275. package/dist/configurator/index.js +1 -1
  276. package/dist/configurator/pages/ConfiguratorErrorPage.d.ts +0 -1
  277. package/dist/configurator/pages/ConfiguratorErrorPage.js +1 -1
  278. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  279. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +3 -2
  280. package/dist/configurator/pages/DefaultNotAuthenticatedPage.d.ts +8 -0
  281. package/dist/configurator/pages/DefaultNotAuthenticatedPage.js +1 -0
  282. package/dist/configurator/pages/DefaultPresetUi.d.ts +7 -0
  283. package/dist/configurator/pages/DefaultPresetUi.js +1 -0
  284. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  285. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  286. package/dist/configurator/pages/PresetCreationErrorPage.d.ts +1 -1
  287. package/dist/configurator/pages/PresetCreationErrorPage.js +1 -1
  288. package/dist/configurator/pages/RootPage.js +1 -1
  289. package/dist/configurator/pages/configurator-layout-name.d.ts +2 -0
  290. package/dist/configurator/pages/configurator-layout-name.js +1 -0
  291. package/dist/configurator/pages/default-configurator-elements.d.ts +13 -0
  292. package/dist/configurator/pages/default-configurator-elements.js +1 -0
  293. package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +10 -0
  294. package/dist/configurator/pages/default-elements/built-in-entity-element.js +1 -0
  295. package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +10 -0
  296. package/dist/configurator/pages/default-elements/built-in-layout-element.js +1 -0
  297. package/dist/configurator/pages/default-elements/domain-control-elements.d.ts +6 -0
  298. package/dist/configurator/pages/default-elements/domain-control-elements.js +1 -0
  299. package/dist/configurator/pages/default-elements/index.d.ts +5 -0
  300. package/dist/configurator/pages/default-elements/index.js +1 -0
  301. package/dist/configurator/pages/default-elements/recipe-panel-elements.d.ts +3 -0
  302. package/dist/configurator/pages/default-elements/recipe-panel-elements.js +1 -0
  303. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.d.ts +3 -0
  304. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.js +1 -0
  305. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.d.ts +3 -0
  306. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.js +1 -0
  307. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.d.ts +3 -0
  308. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.js +1 -0
  309. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.d.ts +3 -0
  310. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.js +1 -0
  311. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.d.ts +3 -0
  312. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.js +1 -0
  313. package/dist/configurator/pages/default-elements/scene-controls/index.d.ts +6 -0
  314. package/dist/configurator/pages/default-elements/scene-controls/index.js +1 -0
  315. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.d.ts +6 -0
  316. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.js +1 -0
  317. package/dist/configurator/pages/default-elements/sidebar-footer-elements.d.ts +7 -0
  318. package/dist/configurator/pages/default-elements/sidebar-footer-elements.js +1 -0
  319. package/dist/configurator/pages/default-elements/toolbar-elements.d.ts +7 -0
  320. package/dist/configurator/pages/default-elements/toolbar-elements.js +1 -0
  321. package/dist/configurator/pages/error-boundaries/GeneralErrorBoundary.js +1 -1
  322. package/dist/configurator/pages/index.d.ts +1 -0
  323. package/dist/configurator/pages/index.js +1 -1
  324. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.d.ts +4 -0
  325. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.js +1 -0
  326. package/dist/configurator/preset-screen-elements/PresetPageActionElement.d.ts +4 -0
  327. package/dist/configurator/preset-screen-elements/PresetPageActionElement.js +1 -0
  328. package/dist/configurator/preset-screen-elements/index.d.ts +2 -0
  329. package/dist/configurator/preset-screen-elements/index.js +1 -0
  330. package/dist/configurator/scene/index.d.ts +1 -0
  331. package/dist/configurator/scene/index.js +1 -1
  332. package/dist/configurator/scene/scene-controls/DeleteEntityFab.js +1 -1
  333. package/dist/configurator/scene/scene-controls/SelectionHotspot.js +1 -1
  334. package/dist/configurator/scene/scene-controls/ToolFab.d.ts +4 -0
  335. package/dist/configurator/scene/scene-controls/ToolFab.js +1 -1
  336. package/dist/configurator/scene/scene-controls/use-scene-control-tooltip.d.ts +2 -1
  337. package/dist/configurator/scene/scene-entity/scene-controls/SceneEntityHtmlHotspots.js +1 -1
  338. package/dist/configurator/toolbar-actions/index.d.ts +3 -0
  339. package/dist/configurator/toolbar-actions/index.js +1 -0
  340. package/dist/configurator/toolbar-actions/use-assistant-panel.d.ts +18 -0
  341. package/dist/configurator/toolbar-actions/use-assistant-panel.js +1 -0
  342. package/dist/configurator/toolbar-actions/use-measurements.d.ts +35 -0
  343. package/dist/configurator/toolbar-actions/use-measurements.js +1 -0
  344. package/dist/configurator/toolbar-actions/use-toolbar-actions.d.ts +100 -0
  345. package/dist/configurator/toolbar-actions/use-toolbar-actions.js +1 -0
  346. package/dist/configurator/toolbar-actions/use-toolbar-help.d.ts +7 -0
  347. package/dist/configurator/toolbar-actions/use-toolbar-help.js +1 -0
  348. package/dist/configurator/ui/assistant/AssistantChips.d.ts +8 -2
  349. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  350. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -2
  351. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  352. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  353. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  354. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +8 -0
  355. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -0
  356. package/dist/configurator/ui/assistant/alert/index.d.ts +2 -0
  357. package/dist/configurator/ui/assistant/alert/index.js +1 -0
  358. package/dist/configurator/ui/assistant/alert/remark-alerts.d.ts +10 -0
  359. package/dist/configurator/ui/assistant/alert/remark-alerts.js +1 -0
  360. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +1 -1
  361. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -1
  362. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +1 -1
  363. package/dist/configurator/ui/assistant/entity-link/index.d.ts +0 -1
  364. package/dist/configurator/ui/assistant/entity-link/index.js +1 -1
  365. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +19 -0
  366. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -0
  367. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +11 -0
  368. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -0
  369. package/dist/configurator/ui/assistant/form/describe-build-errors.d.ts +6 -0
  370. package/dist/configurator/ui/assistant/form/describe-build-errors.js +1 -0
  371. package/dist/configurator/ui/assistant/form/form-model.d.ts +37 -0
  372. package/dist/configurator/ui/assistant/form/form-model.js +1 -0
  373. package/dist/configurator/ui/assistant/form/form-state.d.ts +4 -0
  374. package/dist/configurator/ui/assistant/form/form-state.js +1 -0
  375. package/dist/configurator/ui/assistant/form/index.d.ts +4 -0
  376. package/dist/configurator/ui/assistant/form/index.js +1 -0
  377. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +10 -0
  378. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -0
  379. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +13 -0
  380. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -0
  381. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +3 -0
  382. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.js +1 -0
  383. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.d.ts +31 -0
  384. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.js +1 -0
  385. package/dist/configurator/ui/assistant/form/registry/form-element-definition.d.ts +16 -0
  386. package/dist/configurator/ui/assistant/form/registry/form-element-definition.js +1 -0
  387. package/dist/configurator/ui/assistant/form/registry/form-registry.d.ts +31 -0
  388. package/dist/configurator/ui/assistant/form/registry/form-registry.js +1 -0
  389. package/dist/configurator/ui/assistant/form/registry/index.d.ts +6 -0
  390. package/dist/configurator/ui/assistant/form/registry/index.js +1 -0
  391. package/dist/configurator/ui/assistant/form/registry/use-form-registry.d.ts +8 -0
  392. package/dist/configurator/ui/assistant/form/registry/use-form-registry.js +1 -0
  393. package/dist/configurator/ui/assistant/form-elements/FormCard.d.ts +9 -0
  394. package/dist/configurator/ui/assistant/form-elements/FormCard.js +1 -0
  395. package/dist/configurator/ui/assistant/form-elements/FormConfirm.d.ts +9 -0
  396. package/dist/configurator/ui/assistant/form-elements/FormConfirm.js +1 -0
  397. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +6 -0
  398. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -0
  399. package/dist/configurator/ui/assistant/form-elements/FormNumber.d.ts +9 -0
  400. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -0
  401. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +6 -0
  402. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -0
  403. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +6 -0
  404. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -0
  405. package/dist/configurator/ui/assistant/form-elements/FormSwatch.d.ts +10 -0
  406. package/dist/configurator/ui/assistant/form-elements/FormSwatch.js +1 -0
  407. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +6 -0
  408. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -0
  409. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.d.ts +10 -0
  410. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.js +1 -0
  411. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +38 -0
  412. package/dist/configurator/ui/assistant/form-elements/form-element-props.js +1 -0
  413. package/dist/configurator/ui/assistant/form-elements/index.d.ts +9 -0
  414. package/dist/configurator/ui/assistant/form-elements/index.js +1 -0
  415. package/dist/configurator/ui/assistant/index.d.ts +3 -0
  416. package/dist/configurator/ui/assistant/index.js +1 -1
  417. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +16 -0
  418. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -0
  419. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.d.ts +34 -0
  420. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.js +1 -0
  421. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.d.ts +25 -0
  422. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.js +1 -0
  423. package/dist/configurator/ui/assistant/reference-link/index.d.ts +3 -0
  424. package/dist/configurator/ui/assistant/reference-link/index.js +1 -0
  425. package/dist/configurator/ui/assistant/reference-link/reference-styles.d.ts +12 -0
  426. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -0
  427. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.d.ts +8 -0
  428. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.js +1 -0
  429. package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +9 -0
  430. package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -0
  431. package/dist/configurator/ui/assistant/resource-image/index.d.ts +3 -0
  432. package/dist/configurator/ui/assistant/resource-image/index.js +1 -0
  433. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +2 -0
  434. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -0
  435. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.d.ts +5 -0
  436. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.js +1 -0
  437. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +4 -2
  438. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  439. package/dist/configurator/ui/assistant/thread-items.d.ts +8 -1
  440. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  441. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -1
  442. package/dist/configurator/ui/configurator-layout/slots/canvas/LayoutCanvas.js +1 -1
  443. package/dist/configurator/ui/configurator-layout/slots/canvas/SharedCanvas.js +1 -1
  444. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.d.ts +1 -1
  445. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.js +1 -1
  446. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  447. package/dist/configurator/ui/configurator-layout/slots/services/Services.js +1 -1
  448. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.d.ts +1 -1
  449. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.js +1 -1
  450. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +1 -1
  451. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -1
  452. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +1 -1
  453. package/dist/configurator/ui/index.d.ts +1 -0
  454. package/dist/configurator/ui/index.js +1 -1
  455. package/dist/configurator/ui/legacy/layout/common/CommonFinalizeButton.js +1 -1
  456. package/dist/configurator/ui/legacy/layout/common/CommonSummaryButton.js +1 -1
  457. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  458. package/dist/configurator/ui/legacy/layout/common/ReactiveInterfaceLayout.js +1 -1
  459. package/dist/configurator/ui/legacy/layout/common/ResponsiveFinalizeButton.js +1 -1
  460. package/dist/configurator/ui/legacy/layout/common/SummaryReadLayout.js +1 -1
  461. package/dist/configurator/ui/legacy/layout/simple/SimpleOwnerLayout.js +1 -1
  462. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  463. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  464. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  465. package/dist/configurator/ui/legacy/layout/steps/StepsSidebarFooter.js +1 -1
  466. package/dist/configurator/ui/legacy/layout/tabs/TabsOwnerLayout.js +1 -1
  467. package/dist/configurator/ui/legacy/toolbar/common/DimensionUnitSelector.js +1 -1
  468. package/dist/configurator/ui/legacy/toolbar/common/MeasurementsIndicatorsSwitch.js +1 -1
  469. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/FullscreenToolbarAction.js +1 -1
  470. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/HelpToolbarAction.js +1 -1
  471. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/MeasurementsToolbarAction.js +1 -1
  472. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/UndoRedoToolbarGroup.js +1 -1
  473. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.js +2 -6
  474. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -1
  475. package/dist/configurator/ui/phoenix-layout-elements/EnterFullscreenToolbarButton.js +1 -1
  476. package/dist/configurator/ui/phoenix-layout-elements/ExitFullscreenToolbarButton.js +1 -1
  477. package/dist/configurator/ui/phoenix-layout-elements/HelpToolbarButton.js +1 -1
  478. package/dist/configurator/ui/phoenix-layout-elements/LanguageMenuAction.js +1 -1
  479. package/dist/configurator/ui/phoenix-layout-elements/LanguageToolbarButton.js +1 -1
  480. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.d.ts +1 -0
  481. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.js +1 -1
  482. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.d.ts +1 -0
  483. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.js +1 -1
  484. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsMenuAction.js +1 -1
  485. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsToolbarButton.js +1 -1
  486. package/dist/configurator/ui/phoenix-layout-elements/RedoToolbarButton.js +1 -1
  487. package/dist/configurator/ui/phoenix-layout-elements/ShareToolbarButton.js +1 -1
  488. package/dist/configurator/ui/phoenix-layout-elements/UndoToolbarButton.js +1 -1
  489. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  490. package/dist/configurator/ui/phoenix-layout-elements/header/common/horizontal-tabs/DesktopHorizontalTabs.js +1 -1
  491. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.d.ts +1 -1
  492. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.js +1 -1
  493. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -8
  494. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  495. package/dist/configurator/ui/phoenix-layout-elements/measurements/DimensionUnitSelector.js +1 -1
  496. package/dist/configurator/ui/phoenix-layout-elements/measurements/MeasurementsIndicatorsSwitch.js +1 -1
  497. package/dist/configurator/ui/phoenix-layout-elements/share/ShareModal.js +1 -1
  498. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.d.ts +7 -8
  499. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.js +1 -1
  500. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/BasicFinalizeButton.js +1 -1
  501. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/CustomFinalizeButton.js +1 -1
  502. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/EnterSummaryButton.js +1 -1
  503. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/FinalizeActions.js +1 -1
  504. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/NextStepButton.js +1 -1
  505. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  506. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  507. package/dist/configurator/ui/preset-layout/PresetUi.d.ts +4 -0
  508. package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
  509. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.d.ts +10 -0
  510. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -0
  511. package/dist/configurator/ui/save-message-snackbars/index.d.ts +1 -0
  512. package/dist/configurator/ui/save-message-snackbars/index.js +1 -0
  513. package/dist/docs/complex-use-cases/focus-mode.mdx +2 -0
  514. package/dist/docs/controls/select-child-entity/cardselect.mdx +1 -0
  515. package/dist/docs/fabs/basic.mdx +6 -2
  516. package/dist/docs/index.json +18 -1
  517. package/dist/docs/layouts/custom-layout.mdx +1474 -201
  518. package/dist/docs/layouts/gallery/kestrel-kettle.mdx +1858 -0
  519. package/dist/docs/other-features/error-5xx.mdx +1 -1
  520. package/dist/docs/other-features/navigation-hotspot.mdx +2 -0
  521. package/dist/docs/other-features/not-found-404.mdx +1 -1
  522. package/dist/docs/phoenix/clerk-sign-in.mdx +1 -1
  523. package/dist/docs/phoenix/components.mdx +6 -0
  524. package/dist/docs/phoenix/configurator-interface.mdx +243 -28
  525. package/dist/docs/phoenix/deployments.mdx +2 -6
  526. package/dist/docs/phoenix/domain-model.mdx +2 -0
  527. package/dist/docs/phoenix/finalization.mdx +1 -1
  528. package/dist/docs/phoenix/getting-started.mdx +6 -3
  529. package/dist/docs/phoenix/layout-slots.mdx +25 -23
  530. package/dist/docs/phoenix/localization.mdx +10 -6
  531. package/dist/docs/phoenix/migration-guide.mdx +24 -11
  532. package/dist/docs/phoenix/phoenix-cli.mdx +67 -20
  533. package/dist/docs/phoenix/project-structure.mdx +70 -33
  534. package/dist/docs/phoenix/quickstart.mdx +7 -7
  535. package/dist/docs/phoenix/sdk-builder-workflow.mdx +8 -8
  536. package/dist/docs/phoenix/testing.mdx +8 -0
  537. package/dist/docs/phoenix/webhooks.mdx +21 -4
  538. package/dist/docs/selection-and-highlight/hotspots.mdx +2 -0
  539. package/dist/domain/application/application-config.d.ts +3 -1
  540. package/dist/domain/application/assistant/assistant-manifest.d.ts +3 -0
  541. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +3 -0
  542. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  543. package/dist/domain/application/assistant/form/assistant-form-element-name.d.ts +11 -0
  544. package/dist/domain/application/assistant/form/assistant-form-element-name.js +8 -0
  545. package/dist/domain/application/assistant/form/assistant-form-elements.d.ts +174 -0
  546. package/dist/domain/application/assistant/form/assistant-form-elements.js +1 -0
  547. package/dist/domain/application/assistant/form/assistant-resource-path.d.ts +10 -0
  548. package/dist/domain/application/assistant/form/assistant-resource-path.js +1 -0
  549. package/dist/domain/application/assistant/form/index.d.ts +4 -0
  550. package/dist/domain/application/assistant/form/index.js +1 -0
  551. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  552. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  553. package/dist/domain/application/assistant/index.d.ts +1 -0
  554. package/dist/domain/application/assistant/index.js +1 -1
  555. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -1
  556. package/dist/domain/application/configurator-builder.d.ts +4 -1
  557. package/dist/domain/application/configurator-builder.js +1 -1
  558. package/dist/domain/core/schema/extended-schema-validator.js +1 -1
  559. package/dist/domain/domain-context/index.d.ts +1 -1
  560. package/dist/domain/domain-context/undo-system.d.ts +28 -1
  561. package/dist/domain/domain-context/undo-system.js +1 -1
  562. package/dist/domain/domain-runtime/domain-runtime.d.ts +4 -0
  563. package/dist/domain/domain-runtime/environment/types.d.ts +1 -1
  564. package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
  565. package/dist/domain/domain-runtime/spec/index.js +1 -1
  566. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  567. package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +27 -12
  568. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -1
  569. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.d.ts +12 -0
  570. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +1 -0
  571. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +2 -1
  572. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -1
  573. package/dist/domain/domain-runtime/spec/selectors.d.ts +3 -1
  574. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  575. package/dist/domain/domain-runtime/spec/types.d.ts +2 -0
  576. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +2 -0
  577. package/dist/domain/system-components/child-entity-selection.js +1 -1
  578. package/dist/domain/system-components/common/scene-entity-control-schema.d.ts +3 -0
  579. package/dist/domain/system-components/common/scene-entity-control-schema.js +1 -1
  580. package/dist/editor/Editor.d.ts +7 -0
  581. package/dist/editor/Editor.js +1 -1
  582. package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
  583. package/dist/editor/domain-editors/apply-spec-update.d.ts +8 -1
  584. package/dist/editor/domain-editors/apply-spec-update.js +1 -1
  585. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  586. package/dist/editor/mocks/CreateMockYaml.js +2 -2
  587. package/dist/editor/mocks/EditorMockContext.d.ts +2 -0
  588. package/dist/editor/mocks/EditorMockContext.js +1 -1
  589. package/dist/editor/screenshot/ScreenshotHandler.js +1 -1
  590. package/dist/globals/index.d.ts +2 -0
  591. package/dist/i18n/locales/cs/messages.js +1 -1
  592. package/dist/i18n/locales/da/messages.js +1 -1
  593. package/dist/i18n/locales/de/messages.js +1 -1
  594. package/dist/i18n/locales/de-AT/messages.js +1 -1
  595. package/dist/i18n/locales/en/messages.js +1 -1
  596. package/dist/i18n/locales/en-AU/messages.js +1 -1
  597. package/dist/i18n/locales/en-GB/messages.js +1 -1
  598. package/dist/i18n/locales/es/messages.js +1 -1
  599. package/dist/i18n/locales/fr/messages.js +1 -1
  600. package/dist/i18n/locales/hu/messages.js +1 -1
  601. package/dist/i18n/locales/it/messages.js +1 -1
  602. package/dist/i18n/locales/nl/messages.js +1 -1
  603. package/dist/i18n/locales/pl/messages.js +1 -1
  604. package/dist/i18n/locales/pt/messages.js +1 -1
  605. package/dist/i18n/locales/ro/messages.js +1 -1
  606. package/dist/i18n/locales/sk/messages.js +1 -1
  607. package/dist/i18n/locales/tr/messages.js +1 -1
  608. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  609. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  610. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +79 -80
  611. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  612. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  613. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  614. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +7 -2
  615. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +15 -14
  616. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +14 -12
  617. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +14 -13
  618. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +13 -11
  619. package/dist/phoenix/application-spec/application-spec-builder.d.ts +0 -2
  620. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  621. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +0 -2
  622. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  623. package/dist/phoenix/application-spec/generate-application-spec-story.js +2 -2
  624. package/dist/phoenix/application-spec/generate-project-files.d.ts +0 -2
  625. package/dist/phoenix/application-spec/project-files.js +1 -1
  626. package/dist/phoenix/bin.d.ts +2 -0
  627. package/dist/phoenix/bin.js +2 -0
  628. package/dist/phoenix/check-configs/built-in-eslint-config.d.ts +9 -0
  629. package/dist/phoenix/check-configs/built-in-eslint-config.js +1 -0
  630. package/dist/phoenix/check-configs/eslint-config.d.ts +10 -0
  631. package/dist/phoenix/check-configs/eslint-config.js +1 -0
  632. package/dist/phoenix/check-configs/index.d.ts +8 -0
  633. package/dist/phoenix/check-configs/index.js +1 -0
  634. package/dist/phoenix/check-configs/typescript-project.d.ts +5 -0
  635. package/dist/phoenix/check-configs/typescript-project.js +1 -0
  636. package/dist/phoenix/cli.d.ts +0 -1
  637. package/dist/phoenix/cli.js +1 -2
  638. package/dist/phoenix/commands/build.js +1 -1
  639. package/dist/phoenix/commands/check.js +1 -1
  640. package/dist/phoenix/commands/clean.js +1 -1
  641. package/dist/phoenix/commands/deploy.js +2 -2
  642. package/dist/phoenix/commands/deps/deps.d.ts +73 -0
  643. package/dist/phoenix/commands/deps/deps.js +3 -0
  644. package/dist/phoenix/commands/deps/index.d.ts +1 -0
  645. package/dist/phoenix/commands/deps/index.js +1 -0
  646. package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
  647. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
  648. package/dist/phoenix/commands/dev.js +5 -5
  649. package/dist/phoenix/commands/fix.js +1 -1
  650. package/dist/phoenix/commands/index.d.ts +1 -0
  651. package/dist/phoenix/commands/index.js +1 -1
  652. package/dist/phoenix/commands/init.d.ts +17 -5
  653. package/dist/phoenix/commands/init.js +1 -1
  654. package/dist/phoenix/commands/link.js +1 -1
  655. package/dist/phoenix/commands/prettier.js +1 -1
  656. package/dist/phoenix/commands/sync.js +1 -1
  657. package/dist/phoenix/commands/unlink.js +1 -1
  658. package/dist/phoenix/services/application-spec-project-watcher.d.ts +2 -2
  659. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  660. package/dist/phoenix/services/lingui.d.ts +8 -0
  661. package/dist/phoenix/services/lingui.js +1 -1
  662. package/dist/phoenix/services/swc.js +1 -1
  663. package/dist/phoenix/services/vite-config.js +1 -1
  664. package/dist/phoenix/utils/index.d.ts +4 -2
  665. package/dist/phoenix/utils/index.js +1 -1
  666. package/dist/phoenix/utils/node-version/index.d.ts +1 -0
  667. package/dist/phoenix/utils/node-version/index.js +1 -0
  668. package/dist/phoenix/utils/node-version/supported-node-version.d.ts +12 -0
  669. package/dist/phoenix/utils/node-version/supported-node-version.js +4 -0
  670. package/dist/phoenix/utils/package-info.d.ts +0 -9
  671. package/dist/phoenix/utils/package-info.js +1 -1
  672. package/dist/phoenix/utils/package-manager/index.d.ts +2 -0
  673. package/dist/phoenix/utils/package-manager/index.js +1 -0
  674. package/dist/phoenix/utils/package-manager/package-manager-commands.d.ts +19 -0
  675. package/dist/phoenix/utils/package-manager/package-manager-commands.js +1 -0
  676. package/dist/phoenix/utils/package-manager/pnpm-project.d.ts +9 -0
  677. package/dist/phoenix/utils/package-manager/pnpm-project.js +1 -0
  678. package/dist/phoenix/utils/run-command.d.ts +11 -0
  679. package/dist/phoenix/utils/run-command.js +1 -1
  680. package/dist/phoenix/utils/sdk-tool/index.d.ts +1 -0
  681. package/dist/phoenix/utils/sdk-tool/index.js +1 -0
  682. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.d.ts +15 -0
  683. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.js +1 -0
  684. package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.d.ts +4 -0
  685. package/dist/react-sdk/application-runtime/common-services/analytics/index.d.ts +1 -0
  686. package/dist/react-sdk/application-runtime/common-services/analytics/index.js +1 -1
  687. package/dist/react-sdk/application-runtime/hooks/use-phoenix-element-slots.d.ts +2 -1
  688. package/dist/react-sdk/application-runtime/routing/routing-service.d.ts +34 -2
  689. package/dist/react-sdk/application-runtime/routing/routing-service.js +1 -1
  690. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +4 -0
  691. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  692. package/dist/react-sdk/domain-application-context/DomainLifecycleBoundary.js +1 -1
  693. package/dist/react-sdk/domain-context/common-hooks/index.d.ts +8 -0
  694. package/dist/react-sdk/domain-context/common-hooks/index.js +1 -0
  695. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +15 -4
  696. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -1
  697. package/dist/react-sdk/domain-context/component-hooks/index.d.ts +1 -0
  698. package/dist/react-sdk/domain-context/component-hooks/index.js +1 -0
  699. package/dist/react-sdk/domain-context/component-hooks/use-component.js +1 -1
  700. package/dist/react-sdk/domain-context/entity-hooks/use-domain-entity-state.js +1 -1
  701. package/dist/react-sdk/domain-context/entity-hooks/use-entity-price.js +1 -1
  702. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-id.js +1 -1
  703. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-state.js +1 -1
  704. package/dist/react-sdk/domain-context/index.d.ts +7 -1
  705. package/dist/react-sdk/domain-context/index.js +1 -1
  706. package/dist/react-sdk/domain-context/system-hooks/composition-hooks.js +1 -1
  707. package/dist/react-sdk/domain-context/system-hooks/dimension-hooks.js +1 -1
  708. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.d.ts +8 -0
  709. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.js +1 -0
  710. package/dist/react-sdk/domain-context/system-hooks/hover-hooks.js +1 -1
  711. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.d.ts +24 -0
  712. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.js +1 -0
  713. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +5 -0
  714. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  715. package/dist/react-sdk/domain-context/system-hooks/selection-hooks.js +1 -1
  716. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.d.ts +32 -0
  717. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.js +1 -0
  718. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.d.ts +57 -0
  719. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.js +1 -0
  720. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.d.ts +61 -0
  721. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.js +1 -0
  722. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.d.ts +20 -0
  723. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -0
  724. package/dist/react-sdk/elements/configurator-error-page-props.d.ts +20 -0
  725. package/dist/react-sdk/elements/configurator-error-page-props.js +1 -0
  726. package/dist/react-sdk/elements/index.d.ts +1 -0
  727. package/dist/react-sdk/handlers/FinalizeActionRunner.d.ts +13 -0
  728. package/dist/react-sdk/handlers/FinalizeActionRunner.js +1 -0
  729. package/dist/react-sdk/handlers/FinalizeActionsHost.d.ts +10 -0
  730. package/dist/react-sdk/handlers/FinalizeActionsHost.js +1 -0
  731. package/dist/react-sdk/handlers/FinalizeActionsProvider.d.ts +11 -0
  732. package/dist/react-sdk/handlers/FinalizeActionsProvider.js +1 -0
  733. package/dist/react-sdk/handlers/finalize-actions-context.d.ts +6 -0
  734. package/dist/react-sdk/handlers/finalize-actions-context.js +1 -0
  735. package/dist/react-sdk/handlers/finalize-actions-store.d.ts +23 -0
  736. package/dist/react-sdk/handlers/finalize-actions-store.js +1 -0
  737. package/dist/react-sdk/handlers/index.d.ts +6 -0
  738. package/dist/react-sdk/handlers/index.js +1 -1
  739. package/dist/react-sdk/handlers/use-finalize-action.d.ts +32 -0
  740. package/dist/react-sdk/handlers/use-finalize-action.js +1 -0
  741. package/dist/react-sdk/handlers/use-finalize-actions.d.ts +53 -0
  742. package/dist/react-sdk/handlers/use-finalize-actions.js +1 -0
  743. package/dist/react-sdk/index.d.ts +2 -0
  744. package/dist/react-sdk/index.js +1 -1
  745. package/dist/react-sdk/loading-state/loading-state-manager.d.ts +5 -0
  746. package/dist/react-sdk/loading-state/loading-state-manager.js +1 -1
  747. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.d.ts +25 -0
  748. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.js +1 -0
  749. package/dist/react-sdk/responsive-state/canvas-padding.d.ts +14 -0
  750. package/dist/react-sdk/responsive-state/canvas-padding.js +1 -0
  751. package/dist/react-sdk/responsive-state/index.d.ts +5 -0
  752. package/dist/react-sdk/responsive-state/index.js +1 -0
  753. package/dist/react-sdk/responsive-state/responsive-state-manager.d.ts +111 -0
  754. package/dist/react-sdk/responsive-state/responsive-state-manager.js +1 -0
  755. package/dist/react-sdk/responsive-state/use-responsive-state-manager.d.ts +10 -0
  756. package/dist/react-sdk/responsive-state/use-responsive-state-manager.js +1 -0
  757. package/dist/react-sdk/responsive-state/use-responsive-state.d.ts +11 -0
  758. package/dist/react-sdk/responsive-state/use-responsive-state.js +1 -0
  759. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.d.ts +36 -0
  760. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.js +1 -0
  761. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.d.ts +44 -0
  762. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.js +1 -0
  763. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.d.ts +38 -0
  764. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.js +1 -0
  765. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.d.ts +30 -0
  766. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.js +1 -0
  767. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.d.ts +30 -0
  768. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.js +1 -0
  769. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.d.ts +9 -0
  770. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.js +1 -0
  771. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.d.ts +9 -0
  772. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.js +1 -0
  773. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.d.ts +10 -0
  774. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.js +1 -0
  775. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.d.ts +9 -0
  776. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.js +1 -0
  777. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.d.ts +9 -0
  778. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.js +1 -0
  779. package/dist/react-sdk/scene-control-elements/index.d.ts +11 -0
  780. package/dist/react-sdk/scene-control-elements/index.js +1 -0
  781. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.d.ts +5 -0
  782. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.js +1 -0
  783. package/dist/react-sdk/session/NotAuthenticatedPage.d.ts +4 -0
  784. package/dist/react-sdk/session/NotAuthenticatedPage.js +1 -1
  785. package/dist/react-sdk/web-component/create-web-component.js +1 -1
  786. package/dist/react-sdk/web-component/god-mode/god-mode-registry.d.ts +30 -0
  787. package/dist/react-sdk/web-component/god-mode/god-mode-registry.js +1 -0
  788. package/dist/react-sdk/web-component/god-mode/index.d.ts +1 -0
  789. package/dist/react-sdk/web-component/god-mode/index.js +1 -0
  790. package/dist/ui-sdk/icons/__generated/Lightbulb.d.ts +3 -0
  791. package/dist/ui-sdk/icons/__generated/Lightbulb.js +1 -0
  792. package/dist/ui-sdk/icons/__generated/XCircle.d.ts +3 -0
  793. package/dist/ui-sdk/icons/__generated/XCircle.js +1 -0
  794. package/dist/ui-sdk/icons/__generated/index.d.ts +4 -0
  795. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  796. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  797. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +9 -0
  798. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.js +1 -1
  799. package/dist/ui-sdk/responsive-application/index.d.ts +1 -0
  800. package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +57 -0
  801. package/dist/ui-sdk/responsive-application/responsive-state-store.js +1 -0
  802. package/dist/ui-sdk/responsive-application/use-store-responsive-info.d.ts +7 -0
  803. package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -0
  804. package/dist/ui-sdk/theme/types.d.ts +1 -1
  805. package/package.json +48 -36
  806. package/schema/domain-spec.json +86 -8
  807. package/dist/application-spec/generate-application/code/templates/nvmrc.d.ts +0 -1
  808. package/dist/application-spec/generate-application/code/templates/nvmrc.js +0 -2
  809. package/dist/application-spec/generate-application/code/templates/package-json.d.ts +0 -10
  810. package/dist/application-spec/generate-application/code/templates/package-json.js +0 -1
  811. package/dist/application-spec/generate-application/code/templates/webhook-implementation.d.ts +0 -1
  812. package/dist/application-spec/generate-application/code/templates/webhook-implementation.js +0 -7
  813. package/dist/configurator/ui/assistant/entity-link/entity-link-target.d.ts +0 -5
  814. package/dist/configurator/ui/assistant/entity-link/entity-link-target.js +0 -1
  815. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.d.ts +0 -4
  816. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.js +0 -1
  817. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.d.ts +0 -4
  818. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.js +0 -1
  819. package/dist/phoenix/commands/generate-project-files.d.ts +0 -6
  820. package/dist/phoenix/commands/generate-project-files.js +0 -1
  821. package/dist/react-sdk/application-runtime/runtime/god-mode.d.ts +0 -19
  822. package/dist/react-sdk/application-runtime/runtime/god-mode.js +0 -1
  823. /package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.js +0 -0
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{createCustomPhoenixLayoutElement as o}from"#package/domain";import{PhoenixLayoutElement as e}from"#package/react-sdk";let a="LayoutCustomReadUi";export const createLayoutCustomReadUi=t=>o(a,t);export const LayoutCustomReadUi=()=>t(e,{name:a,elementProps:{},defaultSlot:()=>null});
1
+ import{jsx as a,jsxs as e,Fragment as t}from"react/jsx-runtime";import{createCustomPhoenixLayoutElement as o}from"#package/domain";import{PhoenixLayoutElement as s}from"#package/react-sdk";import{SaveMessageSnackbars as r}from"../save-message-snackbars/index.js";let m="LayoutCustomReadUi";export const createLayoutCustomReadUi=a=>o(m,a);export const LayoutCustomReadUi=()=>e(t,{children:[a(r,{}),a(s,{name:m,elementProps:{},defaultSlot:()=>null})]});
@@ -1 +1 @@
1
- import{jsx as e,jsxs as m}from"react/jsx-runtime";import{Trans as s}from"@lingui/react";import{Button as r,DialogActions as n,DialogContent as t,DialogTitle as i,Stack as o}from"@mui/material";import{memo as a}from"react";import{createPhoenixLayoutElement as u,measurementsMenuActionSchema as c}from"#package/domain";import{useDimensionState as l}from"#package/react-sdk";import{DimensionUnitSelector as p}from"./measurements/DimensionUnitSelector.js";import{MeasurementsIcon as d}from"./measurements/MeasurementsIcon.js";import{MeasurementsIndicatorsSwitch as f}from"./measurements/MeasurementsIndicatorsSwitch.js";import{useMeasurementsVisibility as g}from"./measurements/use-measurements-visibility.js";import{useMenuRouting as h}from"./menu-actions/MenuRoutingContext.js";import{RoutingMenuAction as j}from"./menu-actions/RoutingMenuAction.js";export const MeasurementsMenuAction=u({schema:c,component:a(a=>{let{showIndicatorSwitch:u,icons:c}=a,{unit:k}=l(),{indicatorSwitchShown:x,measurementsShown:M}=g(u),{close:b}=h();return M?m(j,{label:e(s,{id:"sdk.layout.menu.measurements.label",message:"Change measure"}),icon:e(d,{unit:k,icons:c}),children:[e(i,{children:e(s,{id:"sdk.layout.menu.measurements.label",message:"Change measure"})}),e(t,{children:m(o,{spacing:2,direction:"column",children:[x&&e(f,{}),e(p,{})]})}),e(n,{children:e(r,{variant:"text",color:"inherit",onClick:b,children:e(s,{id:"sdk.layout.menu.measurements.close.label",message:"Close"})})})]}):null})});
1
+ import{jsx as e,jsxs as n}from"react/jsx-runtime";import{Trans as m}from"@lingui/react";import{Button as r,DialogActions as s,DialogContent as t,DialogTitle as o,Stack as i}from"@mui/material";import{memo as a}from"react";import{createPhoenixLayoutElement as u,measurementsMenuActionSchema as c}from"#package/domain";import{useMeasurements as l}from"../../toolbar-actions/index.js";import{DimensionUnitSelector as d}from"./measurements/DimensionUnitSelector.js";import{MeasurementsIcon as p}from"./measurements/MeasurementsIcon.js";import{MeasurementsIndicatorsSwitch as f}from"./measurements/MeasurementsIndicatorsSwitch.js";import{useMenuRouting as h}from"./menu-actions/MenuRoutingContext.js";import{RoutingMenuAction as g}from"./menu-actions/RoutingMenuAction.js";export const MeasurementsMenuAction=u({schema:c,component:a(a=>{let{showIndicatorSwitch:u,icons:c}=a,{unit:j,hasIndicatorSwitch:x,available:M}=l({showIndicatorSwitch:u}),{close:b}=h();return M?n(g,{label:e(m,{id:"sdk.layout.menu.measurements.label",message:"Change measure"}),icon:e(p,{unit:j,icons:c}),children:[e(o,{children:e(m,{id:"sdk.layout.menu.measurements.label",message:"Change measure"})}),e(t,{children:n(i,{spacing:2,direction:"column",children:[x&&e(f,{}),e(d,{})]})}),e(s,{children:e(r,{variant:"text",color:"inherit",onClick:b,children:e(m,{id:"sdk.layout.menu.measurements.close.label",message:"Close"})})})]}):null})});
@@ -1 +1 @@
1
- import{jsx as e,jsxs as r,Fragment as s}from"react/jsx-runtime";import{Box as m,Stack as o}from"@mui/material";import{memo as n,useCallback as a}from"react";import{createPhoenixLayoutElement as t,measurementsToolbarButtonSchema as i}from"#package/domain";import{useAnalyticsService as u,useDimensionState as p,useLocalizable as l}from"#package/react-sdk";import{DesktopToolbar as c}from"#package/ui-sdk";import{FrontendAnalyticsFactory as d}from"../../common/index.js";import{DimensionUnitSelector as h}from"./measurements/DimensionUnitSelector.js";import{MeasurementsIcon as g}from"./measurements/MeasurementsIcon.js";import{MeasurementsIndicatorsSwitch as f}from"./measurements/MeasurementsIndicatorsSwitch.js";import{useMeasurementsVisibility as j}from"./measurements/use-measurements-visibility.js";let k="measurements",x={id:"sdk.measurements",message:"Change measure"},M={id:"sdk.toolbar.measurements.change.aria",message:"open measure menu"};export const MeasurementsToolbarButton=t({schema:i,component:n(n=>{let{showIndicatorSwitch:t,icons:i}=n,{ref:b,handleClose:C,handleToggle:T,openedKey:v}=c.useToolbarPopper(),B=u(),{unit:I}=p(),{indicatorSwitchShown:P,measurementsShown:S}=j(t),w=a(()=>{B.push(d.MeasurementsMenuToggled()),T(k)},[B,T]),y=a(e=>{B.push(d.MeasurementsMenuClosed()),C(e)},[B,C]),z=l(x),D=l(M);return S?r(s,{children:[e(c.Button,{ref:b,title:z,size:"small","aria-expanded":v===k?"true":void 0,"aria-label":D,"aria-haspopup":"menu",onClick:w,children:e(g,{unit:I,icons:i})}),e(c.Popper,{placement:"top-start",anchorEl:b.current,isOpen:v===k,onClose:y,children:e(m,{component:"div",sx:{p:2},children:r(o,{spacing:2,direction:"column",children:[P&&e(f,{}),e(h,{})]})})})]}):null})});
1
+ import{jsx as e,jsxs as r,Fragment as s}from"react/jsx-runtime";import{Box as o,Stack as a}from"@mui/material";import{memo as n,useCallback as t}from"react";import{createPhoenixLayoutElement as m,measurementsToolbarButtonSchema as i}from"#package/domain";import{FrontendAnalyticsFactory as u,useAnalyticsService as p,useLocalizable as l}from"#package/react-sdk";import{DesktopToolbar as c}from"#package/ui-sdk";import{useMeasurements as d}from"../../toolbar-actions/index.js";import{DimensionUnitSelector as h}from"./measurements/DimensionUnitSelector.js";import{MeasurementsIcon as g}from"./measurements/MeasurementsIcon.js";import{MeasurementsIndicatorsSwitch as f}from"./measurements/MeasurementsIndicatorsSwitch.js";let k="measurements",j={id:"sdk.measurements",message:"Change measure"},x={id:"sdk.toolbar.measurements.change.aria",message:"open measure menu"};export const MeasurementsToolbarButton=m({schema:i,component:n(n=>{let{showIndicatorSwitch:m,icons:i}=n,{ref:M,handleClose:b,handleToggle:C,openedKey:T}=c.useToolbarPopper(),v=p(),{unit:B,hasIndicatorSwitch:I,available:P}=d({showIndicatorSwitch:m}),S=t(()=>{v.push(u.MeasurementsMenuToggled()),C(k)},[v,C]),w=t(e=>{v.push(u.MeasurementsMenuClosed()),b(e)},[v,b]),z=l(j),D=l(x);return P?r(s,{children:[e(c.Button,{ref:M,title:z,size:"small","aria-expanded":T===k?"true":void 0,"aria-label":D,"aria-haspopup":"menu",onClick:S,children:e(g,{unit:B,icons:i})}),e(c.Popper,{placement:"top-start",anchorEl:M.current,isOpen:T===k,onClose:w,children:e(o,{component:"div",sx:{p:2},children:r(a,{spacing:2,direction:"column",children:[I&&e(f,{}),e(h,{})]})})})]}):null})});
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import{memo as e,useCallback as r}from"react";import{createPhoenixLayoutElement as t,redoToolbarButtonSchema as m}from"#package/domain";import{useAnalyticsService as a,useDomain as i,useEagerObservableValue as d,useLocalizable as n}from"#package/react-sdk";import{DesktopToolbar as c,PhxIcon as s}from"#package/ui-sdk";import{FrontendAnalyticsFactory as l}from"../../common/index.js";let p={id:"sdk.toolbar.undoRedo.redo.label",message:"Redo"};export const RedoToolbarButton=t({schema:m,component:e(e=>{let{icon:t,showTitle:m=!1}=e,k=a(),{undoSystem:u}=i(),{canRedo:f}=d(u.can$),b=r(()=>{k.push(l.RedoButtonClicked()),u.redo()},[k,u]),g=n(p);return o(c.Button,{title:g,onClick:b,disabled:!f,showTitle:m,children:o(s,{name:t??"ArrowClockwise"})})})});
1
+ import{jsx as o}from"react/jsx-runtime";import{memo as e}from"react";import{createPhoenixLayoutElement as r,redoToolbarButtonSchema as t}from"#package/domain";import{useLocalizable as a,useUndoRedo as m}from"#package/react-sdk";import{DesktopToolbar as i,PhxIcon as d}from"#package/ui-sdk";let s={id:"sdk.toolbar.undoRedo.redo.label",message:"Redo"};export const RedoToolbarButton=r({schema:t,component:e(e=>{let{icon:r,showTitle:t=!1}=e,{canRedo:c,redo:l}=m(),n=a(s);return o(i.Button,{title:n,onClick:l,disabled:!c,showTitle:t,children:o(d,{name:r??"ArrowClockwise"})})})});
@@ -1 +1 @@
1
- import{jsx as r,jsxs as e,Fragment as o}from"react/jsx-runtime";import{memo as a,useCallback as t,useState as s}from"react";import{createPhoenixLayoutElement as m,shareToolbarButtonSchema as i}from"#package/domain";import{useResolveLocalizable as l}from"#package/react-sdk";import{DesktopToolbar as n,PhxIcon as p}from"#package/ui-sdk";import{ShareModal as c}from"./share/ShareModal.js";import{useShareSettings as h}from"./share/use-share.js";let d={id:"sdk.toolbar.share.open.label",message:"Share"};export const ShareToolbarButton=m({schema:i,component:a(a=>{let{icon:m}=a,[i,f]=s(!1),{disabled:k}=h(),u=t(()=>{f(!0)},[]),g=t(()=>{f(!1)},[]),j=l();return k?null:e(o,{children:[r(n.Button,{title:j(d),size:"small",onClick:u,children:r(p,{name:m??"Export"})}),i&&r(c,{onClose:g})]})})});
1
+ import{jsx as e,jsxs as r,Fragment as o}from"react/jsx-runtime";import{memo as a,useCallback as t,useState as m}from"react";import{createPhoenixLayoutElement as s,shareToolbarButtonSchema as l}from"#package/domain";import{useResolveLocalizable as n,useShareLinks as i}from"#package/react-sdk";import{DesktopToolbar as p,PhxIcon as c}from"#package/ui-sdk";import{ShareModal as d}from"./share/ShareModal.js";let h={id:"sdk.toolbar.share.open.label",message:"Share"};export const ShareToolbarButton=s({schema:l,component:a(a=>{let{icon:s}=a,[l,k]=m(!1),{available:f}=i({enabled:!1}),u=t(()=>{k(!0)},[]),g=t(()=>{k(!1)},[]),x=n();return f?r(o,{children:[e(p.Button,{title:x(h),size:"small",onClick:u,children:e(c,{name:s??"Export"})}),l&&e(d,{onClose:g})]}):null})});
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import{memo as t,useCallback as e}from"react";import{createPhoenixLayoutElement as r,undoToolbarButtonSchema as n}from"#package/domain";import{useAnalyticsService as m,useDomain as a,useEagerObservableValue as i,useLocalizable as d}from"#package/react-sdk";import{DesktopToolbar as c,PhxIcon as s}from"#package/ui-sdk";import{FrontendAnalyticsFactory as l}from"../../common/index.js";let p={id:"sdk.toolbar.undoRedo.undo.label",message:"Undo"};export const UndoToolbarButton=r({schema:n,component:t(t=>{let{icon:r,showTitle:n=!1}=t,u=m(),{undoSystem:k}=a(),{canUndo:f}=i(k.can$),b=e(()=>{u.push(l.UndoButtonClicked()),k.undo()},[u,k]),g=d(p);return o(c.Button,{title:g,onClick:b,disabled:!f,showTitle:n,children:o(s,{name:r??"ArrowCounterClockwise"})})})});
1
+ import{jsx as o}from"react/jsx-runtime";import{memo as e}from"react";import{createPhoenixLayoutElement as t,undoToolbarButtonSchema as r}from"#package/domain";import{useLocalizable as a,useUndoRedo as m}from"#package/react-sdk";import{DesktopToolbar as n,PhxIcon as i}from"#package/ui-sdk";let d={id:"sdk.toolbar.undoRedo.undo.label",message:"Undo"};export const UndoToolbarButton=t({schema:r,component:e(e=>{let{icon:t,showTitle:r=!1}=e,{canUndo:s,undo:c}=m(),l=a(d);return o(n.Button,{title:l,onClick:c,disabled:!s,showTitle:r,children:o(i,{name:t??"ArrowCounterClockwise"})})})});
@@ -1 +1 @@
1
- import{useMemo as e}from"react";import{useAccessService as o,useAnalyticsService as t,useDomainApplication as i,useIntegrationState as r}from"#package/react-sdk";import{FrontendAnalyticsFactory as a}from"../../../../../common/index.js";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 m=t(),{configurationPersistSystem:l}=i(),p=d(),{presetCategories:u}=n(),{isPreview:w,isPreviewEnabled:f,leave:x}=s(),{accessInfo:g}=o(),k=u.flatMap(e=>e.presets).length>1,v=r(),C=c();return e(()=>v.embeddedView?null:k?async()=>{m.push(a.GoToProductsClicked()),g.viewMode||await l.save(),p.goToIndex()}:null!==C?async()=>{m.push(a.CloseConfiguratorClicked()),g.viewMode||await l.save(),await C()}:f&&!w?()=>{m.push(a.ExpandedViewClosed()),x()}:null,[m,l,k,v.embeddedView,w,f,x,p,C,g.viewMode])};
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 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{Tab as a,Tabs as o}from"@mui/material";import{memo as e,useCallback as n}from"react";import{horizontalTabsComponent as i}from"#package/domain";import{getI18nKey as r,useActiveNavigationState as s,useAnalyticsService as l,useComponents as m,useDomain as c,useResolveLocalizable as p}from"#package/react-sdk";import{PhxIcon as b}from"#package/ui-sdk";import{FrontendAnalyticsFactory as d}from"../../../../../common/index.js";let u=e(e=>{let{component:i}=e,m=s(),u=l(),{navigationSystem:f,storeSystem:g}=c(),h=p(),v=i.state.tabs.findIndex(t=>t.navigationStates.includes(m));return t(o,{variant:"scrollable",value:-1!==v&&v,onChange:n((t,a)=>{let o=i.state.tabs[a];if(!o)return;let e=o.navigationStates[0];e&&(u.push(d.TopNavigationStepClicked(e)),g.stageAndCommit([f.getNavigationUpdate(e)]))},[i.state.tabs,u,g,f]),children:i.state.tabs.map(o=>t(a,{label:h(o.label),icon:o.icon?t(b,{name:o.icon}):void 0,iconPosition:"start"},r(o.label)))})});export const DesktopHorizontalTabs=e(()=>{let a=m({componentTypes:[i]});if(0===a.length)return null;if(a.length>1)throw Error("Multiple horizontal tabs components are active, only one horizontal tabs component can be active at a time, check your domain configuration to ensure only one horizontalTabs component is defined");return t(u,{component:a.at(0)})});
1
+ import{jsx as o}from"react/jsx-runtime";import{Tab as a,Tabs as n}from"@mui/material";import{memo as e,useCallback as t}from"react";import{horizontalTabsComponent as r}from"#package/domain";import{useComponents as i,useTabNavigation as l}from"#package/react-sdk";import{PhxIcon as c}from"#package/ui-sdk";export const DesktopHorizontalTabs=e(()=>{let e=i({componentTypes:[r]}),{source:m,tabs:s,activeTab:p,select:u}=l({source:"horizontalTabs"}),b=t((o,a)=>{u(a)},[u]);if(null===m)return null;if(e.length>1)throw Error("Multiple horizontal tabs components are active, only one horizontal tabs component can be active at a time, check your domain configuration to ensure only one horizontalTabs component is defined");return o(n,{variant:"scrollable",value:!!p&&p.index,onChange:b,children:s.map(n=>o(a,{label:n.label,icon:n.icon?o(c,{name:n.icon}):void 0,iconPosition:"start"},n.index))})});
@@ -38,7 +38,7 @@ export interface ThemeableDesktopNavigationStepsProps extends OwnerState {
38
38
  * - Renders horizontal step navigation for desktop layouts.
39
39
  * - Hides when no navigation steps are available.
40
40
  * - Integrates with MUI theming for customizable width behavior.
41
- * - Retrieves steps from the navigation steps domain component.
41
+ * - Retrieves the steps and moves between them with `useStepNavigation`.
42
42
  */
43
43
  export declare const DesktopNavigationSteps: () => import("react/jsx-runtime").JSX.Element | null;
44
44
  export {};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{stepClasses as o,stepperClasses as e,styled as i,useThemeProps as r}from"@mui/material";import{useMemo as a}from"react";import{navigationStepsComponent as n}from"#package/domain";import{useFirstRootComponent as l}from"#package/react-sdk";import{StepsNavigation as m}from"./StepsNavigation.js";let p="PhxDesktopStepsNavigation",s=i("div",{name:p,slot:"root",shouldForwardProp:t=>"ownerState"!==t})(({ownerState:t,theme:{spacing:i}})=>({flexGrow:1,marginBlock:i(1),marginInline:"auto",maxInlineSize:t.fullWidth?void 0:856,[`.${e.horizontal}`]:{overflow:"hidden"},[`.${o.horizontal}`]:{"&:first-child":{paddingInlineStart:0},"&:last-child":{paddingInlineEnd:0}}}));export const DesktopNavigationSteps=()=>{let{fullWidth:o=!1}=r({props:{fullWidth:void 0},name:p}),e=l(n),i=a(()=>e?.state.steps??[],[e]);return 0===i.length?null:t(s,{ownerState:{fullWidth:o},children:t(m,{steps:i})})};
1
+ import{jsx as t}from"react/jsx-runtime";import{stepClasses as o,stepperClasses as e,styled as i,useThemeProps as r}from"@mui/material";import{useStepNavigation as n}from"#package/react-sdk";import{StepsNavigation as a}from"./StepsNavigation.js";let l="PhxDesktopStepsNavigation",d=i("div",{name:l,slot:"root",shouldForwardProp:t=>"ownerState"!==t})(({ownerState:t,theme:{spacing:i}})=>({flexGrow:1,marginBlock:i(1),marginInline:"auto",maxInlineSize:t.fullWidth?void 0:856,[`.${e.horizontal}`]:{overflow:"hidden"},[`.${o.horizontal}`]:{"&:first-child":{paddingInlineStart:0},"&:last-child":{paddingInlineEnd:0}}}));export const DesktopNavigationSteps=()=>{let{fullWidth:o=!1}=r({props:{fullWidth:void 0},name:l}),{steps:e,activeIndex:i,goTo:s}=n();return 0===e.length?null:t(d,{ownerState:{fullWidth:o},children:t(a,{steps:e,activeIndex:i,goTo:s})})};
@@ -1,9 +1,3 @@
1
- import type { Localizable } from '@salsita-ai/common/utils';
2
- export interface TopNavigationStep {
3
- readonly navigationStates: readonly string[];
4
- label: Localizable;
5
- }
6
- export interface StepsNavigationComponentProps {
7
- steps: readonly TopNavigationStep[];
8
- }
1
+ import { type UseStepNavigationResult } from '#package/react-sdk';
2
+ export type StepsNavigationComponentProps = Pick<UseStepNavigationResult, 'steps' | 'activeIndex' | 'goTo'>;
9
3
  export declare const StepsNavigation: import("react").MemoExoticComponent<(props: StepsNavigationComponentProps) => import("react/jsx-runtime").JSX.Element>;
@@ -1 +1 @@
1
- import{jsx as t,jsxs as e}from"react/jsx-runtime";import{Trans as o}from"@lingui/react";import{memo as i,useCallback as a}from"react";import{useActiveNavigationState as n,useAnalyticsService as r,useDomain as s,usePresetEmbeddedState as p,useResolveLocalizable as c}from"#package/react-sdk";import{TopNavigation as m,useResponsive as l}from"#package/ui-sdk";import{FrontendAnalyticsFactory as d}from"../../../../../common/index.js";import{useConfiguratorRouting as g,usePresetSelection as u}from"../../../../../configurator-context/index.js";export const StepsNavigation=i(i=>{let{steps:f}=i,k=r(),{navigationSystem:x,storeSystem:v}=s(),h=n(),C=g(),S=c(),{presetCategories:j}=u(),T=p(),N=j.flatMap(t=>t.presets).length>1,b=!T&&N,I=f.findIndex(t=>t.navigationStates.includes(h))+ +!!b,{isTablet:P}=l(),y=a(()=>{k.push(d.GoToProductsClicked()),C.goToIndex()},[k,C]);return e(m.Root,{activeStep:I,nonLinear:!0,compact:P,fullWidth:!0,children:[b&&t(m.Step,{isCompleted:!0,onClick:y,compact:P,children:t(o,{id:"sdk.layout.navigation.steps.first.label",message:"Products"})}),f.map((e,o)=>{let i=b?o<I-1:o<I,a=S(e.label);return t(m.Step,{isCompleted:i,isDisabled:!i,compact:P,onClick:()=>{let t=e.navigationStates[0];t&&(k.push(d.TopNavigationStepClicked(t)),v.stageAndCommit([x.getNavigationUpdate(t)]))},children:a},a)})]})});
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 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{useCallback as e,useMemo as i}from"react";import{match as m}from"ts-pattern";import{DimensionUnit as r}from"#package/domain";import{useAnalyticsService as a,useDimensionConfig as o,useDimensionState as n,useDimensions as l,useLocalizable as s}from"#package/react-sdk";import{ToggleSelector as c}from"#package/ui-sdk";import{FrontendAnalyticsFactory as u}from"../../../common/index.js";let h=o=>{let{value:n}=o,s=a(),{setGlobalUnit:h}=l(),p=e(()=>{s.push(u.GlobalDimensionsButtonClicked(n)),h(n)},[s,n,h]),f=i(()=>m(n).with(r.mm,()=>"mm").with(r.cm,()=>"cm").with(r.m,()=>"m").with(r.inch,()=>"in").with(r.feet,()=>"ft").exhaustive(),[n]),d=i(()=>m(n).with(r.mm,()=>"millimeter").with(r.cm,()=>"centimeter").with(r.m,()=>"meter").with(r.inch,()=>"inches").with(r.feet,()=>"feet").exhaustive(),[n]);return t(c.Item,{value:n,"aria-label":d,onClick:p,children:f})},p={id:"sdk.toolbar.measurements.units.aria",message:"Measurement unit setup"};export const DimensionUnitSelector=()=>{let{availableDimensions:e}=o(),{unit:i}=n(),m=s(p);return e.length<=1?null:t(c.Root,{"aria-label":m,value:i,exclusive:!0,columnCount:"auto-fit",sx:{maxWidth:500},children:e.map(e=>t(h,{value:e},e))})};
1
+ import{jsx as t}from"react/jsx-runtime";import{useMemo as e}from"react";import{match as i}from"ts-pattern";import{DimensionUnit as m}from"#package/domain";import{useLocalizable as r}from"#package/react-sdk";import{ToggleSelector as a}from"#package/ui-sdk";import{useMeasurements as o}from"../../../toolbar-actions/index.js";let n=r=>{let{value:o,onSelect:n}=r,l=e(()=>i(o).with(m.mm,()=>"mm").with(m.cm,()=>"cm").with(m.m,()=>"m").with(m.inch,()=>"in").with(m.feet,()=>"ft").exhaustive(),[o]),s=e(()=>i(o).with(m.mm,()=>"millimeter").with(m.cm,()=>"centimeter").with(m.m,()=>"meter").with(m.inch,()=>"inches").with(m.feet,()=>"feet").exhaustive(),[o]);return t(a.Item,{value:o,"aria-label":s,onClick:()=>n(o),children:l})},l={id:"sdk.toolbar.measurements.units.aria",message:"Measurement unit setup"};export const DimensionUnitSelector=()=>{let{units:e,unit:i,setUnit:m}=o(),s=r(l);return e.length<=1?null:t(a.Root,{"aria-label":s,value:i,exclusive:!0,columnCount:"auto-fit",sx:{maxWidth:500},children:e.map(e=>t(n,{value:e,onSelect:m},e))})};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{Trans as o}from"@lingui/react";import{Switch as t}from"@mui/material";import{useObservableEagerState as i}from"observable-hooks";import{useCallback as r}from"react";import{useAnalyticsService as a,useLocalizable as m}from"#package/react-sdk";import{MobileToolbar as n}from"#package/ui-sdk";import{useConfigurator as s}from"../../../application-runtime/index.js";import{FrontendAnalyticsFactory as c}from"../../../common/frontend-analytics.js";let p={id:"sdk.toolbar.measurements.input.aria",message:"Switch measurements"};export const MeasurementsIndicatorsSwitch=()=>{let d=a(),{canvasSystem:l}=s(),u=i(l.dimensionIndicatorShown$),f=r(()=>{d.push(c.DimensionIndicatorsToggled()),l.toggleDimensionIndicator()},[d,l]),g=m(p);return e(n.SectionItem,{title:e(o,{id:"sdk.toolbar.measurements.indicators.label",message:"Dimension indicators"}),content:e(t,{inputProps:{"aria-label":g},checked:u,onChange:f})})};
1
+ import{jsx as e}from"react/jsx-runtime";import{Trans as t}from"@lingui/react";import{Switch as r}from"@mui/material";import{useLocalizable as a}from"#package/react-sdk";import{MobileToolbar as i}from"#package/ui-sdk";import{useMeasurements as o}from"../../../toolbar-actions/index.js";let s={id:"sdk.toolbar.measurements.input.aria",message:"Switch measurements"};export const MeasurementsIndicatorsSwitch=()=>{let{indicatorsShown:m,toggleIndicators:n}=o(),c=a(s);return e(i.SectionItem,{title:e(t,{id:"sdk.toolbar.measurements.indicators.label",message:"Dimension indicators"}),content:e(r,{inputProps:{"aria-label":c},checked:m,onChange:n})})};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as i}from"react/jsx-runtime";import{Trans as a}from"@lingui/react";import{Button as r,DialogActions as l,DialogContent as o,DialogTitle as s,FormControlLabel as n,LinearProgress as t,Stack as d,Switch as c,TextField as m}from"@mui/material";import{memo as h,useCallback as p,useState as k}from"react";import{applicationConfigComponent as g}from"#package/domain";import{useFirstRootComponent as b,useResolveLocalizable as u}from"#package/react-sdk";import{Dialog as x,PhxIcon as C}from"#package/ui-sdk";import{useShareData as f,useShareSettings as v}from"./use-share.js";let y=i=>{let{isLinkCopied:l,onCopy:o,disabled:s}=i;return l?e(r,{variant:"muted",color:"success",startIcon:e(C,{name:"Check"}),disabled:s,onClick:o,children:e(a,{id:"sdk.toolbar.share.linkCopied.label",message:"Copied"})}):e(r,{variant:"contained",disabled:s,onClick:o,children:e(a,{id:"sdk.toolbar.share.copyLink.label",message:"Copy link"})})},w={id:"sdk.toolbar.share.loading.label",message:"loading link..."},j=({link:a,onFocus:r})=>i(d,{sx:{display:"grid","& > *":{gridArea:"1 / 1"}},children:[e(m,{value:a??"",placeholder:u()(w),hiddenLabel:!0,InputProps:{readOnly:!0},onFocus:r}),e(t,{sx:{alignSelf:"end",visibility:null==a?"visible":"hidden"}})]});export const ShareModal=h(t=>{let{onClose:m}=t,h=b(g),u=h?.state.shareExpiration,{ownerLinkDisabled:C,readRevisionLinkDisabled:w}=v(),[T,L]=k(w),[S,A]=k(!1),{revisionData:E,ownerData:F}=f({expiration:u,ownerLinkDisabled:C,readRevisionLinkDisabled:w}),I=T?F?.link:E?.link,O=!C&&!w,M=p(async()=>{I&&(await navigator.clipboard.writeText(I),A(!0))},[I]),P=p(e=>{e.currentTarget.select()},[]),R=p(e=>{L(e.currentTarget.checked),A(!1)},[]);return i(x.Root,{sx:{maxWidth:"unset",width:"min(100%, 520px)"},isOpen:!0,onClose:m,children:[e(s,{children:e(a,{id:"sdk.toolbar.share.label",message:"Share configuration"})}),e(o,{children:i(d,{sx:{gap:2},children:[e(j,{link:I,onFocus:P}),O&&e(n,{control:e(c,{value:T,disabled:!I,onChange:R}),label:e(a,{id:"sdk.toolbar.share.allowEdit.label",message:"Allow the recipient to edit configuration"})})]})}),i(l,{children:[e(r,{variant:"text",color:"inherit",onClick:m,children:e(a,{id:"sdk.toolbar.share.close.label",message:"Close"})}),e(y,{isLinkCopied:S,disabled:!I,onCopy:M})]})]})});
1
+ import{jsx as e,jsxs as i}from"react/jsx-runtime";import{Trans as a}from"@lingui/react";import{Button as l,DialogActions as r,DialogContent as o,DialogTitle as n,FormControlLabel as s,LinearProgress as t,Stack as d,Switch as c,TextField as h}from"@mui/material";import{memo as m,useCallback as p,useState as b}from"react";import{useResolveLocalizable as g,useShareLinks as k}from"#package/react-sdk";import{Dialog as u,PhxIcon as x}from"#package/ui-sdk";let C=i=>{let{isLinkCopied:r,onCopy:o,disabled:n}=i;return r?e(l,{variant:"muted",color:"success",startIcon:e(x,{name:"Check"}),disabled:n,onClick:o,children:e(a,{id:"sdk.toolbar.share.linkCopied.label",message:"Copied"})}):e(l,{variant:"contained",disabled:n,onClick:o,children:e(a,{id:"sdk.toolbar.share.copyLink.label",message:"Copy link"})})},v={id:"sdk.toolbar.share.loading.label",message:"loading link..."},f=({link:a,onFocus:l})=>i(d,{sx:{display:"grid","& > *":{gridArea:"1 / 1"}},children:[e(h,{value:a??"",placeholder:g()(v),hiddenLabel:!0,InputProps:{readOnly:!0},onFocus:l}),e(t,{sx:{alignSelf:"end",visibility:null==a?"visible":"hidden"}})]});export const ShareModal=m(t=>{let{onClose:h}=t,{ownerLinkAvailable:m,readLinkAvailable:g,ownerLink:x,readLink:v}=k(),[y,w]=b(!g),[T,j]=b(null),L=(y?x:v)??void 0,S=void 0!==L&&L===T,A=p(async()=>{L&&(await navigator.clipboard.writeText(L),j(L))},[L]),F=p(e=>{e.currentTarget.select()},[]),I=p(e=>{w(e.currentTarget.checked)},[]);return i(u.Root,{sx:{maxWidth:"unset",width:"min(100%, 520px)"},isOpen:!0,onClose:h,children:[e(n,{children:e(a,{id:"sdk.toolbar.share.label",message:"Share configuration"})}),e(o,{children:i(d,{sx:{gap:2},children:[e(f,{link:L,onFocus:F}),m&&g&&e(s,{control:e(c,{value:y,disabled:!L,onChange:I}),label:e(a,{id:"sdk.toolbar.share.allowEdit.label",message:"Allow the recipient to edit configuration"})})]})}),i(r,{children:[e(l,{variant:"text",color:"inherit",onClick:h,children:e(a,{id:"sdk.toolbar.share.close.label",message:"Close"})}),e(C,{isLinkCopied:S,disabled:!L,onCopy:A})]})]})});
@@ -1,11 +1,3 @@
1
- import type { AccessLevel } from '@salsita-ai/contracts/api';
2
- export interface GenerateShareLinkOptions {
3
- access: AccessLevel;
4
- expiration?: number;
5
- }
6
- export declare const useGenerateShareLink: () => (options: GenerateShareLinkOptions) => Promise<{
7
- readonly link: string;
8
- }>;
9
1
  interface UseShareDataParams {
10
2
  /**
11
3
  * Expiration time in hours. When undefined, links do not expire.
@@ -14,6 +6,9 @@ interface UseShareDataParams {
14
6
  ownerLinkDisabled: boolean;
15
7
  readRevisionLinkDisabled: boolean;
16
8
  }
9
+ /**
10
+ * @deprecated Use useShareLinks() instead. This API will be removed in a future version.
11
+ */
17
12
  export declare const useShareData: (params: UseShareDataParams) => {
18
13
  isLoadingOwnerData: boolean;
19
14
  isLoadingRevisionData: boolean;
@@ -24,6 +19,10 @@ export declare const useShareData: (params: UseShareDataParams) => {
24
19
  readonly link: string;
25
20
  }> | undefined;
26
21
  };
22
+ /**
23
+ * @deprecated Use useShareLinks() instead, whose `available`, `ownerLinkAvailable` and `readLinkAvailable` say which
24
+ * links can be shared. This API will be removed in a future version.
25
+ */
27
26
  export declare const useShareSettings: () => {
28
27
  disabled: boolean;
29
28
  ownerLinkDisabled: boolean;
@@ -1 +1 @@
1
- import{useQuery as e}from"@tanstack/react-query";import{useCallback as t}from"react";import{match as r}from"ts-pattern";import{applicationConfigComponent as a}from"#package/domain";import{useAuthorizedClient as s,useConfigurationId as i,useDomain as n,useDomainApplication as o,useFirstRootComponent as d}from"#package/react-sdk";export const useGenerateShareLink=()=>{let e=d(a),n=e?.state.shareStrategy??"deployment-registered",{configurationPersistSystem:c}=o(),l=i(),h=s();return t(async e=>{let t=r(n).with("deployment-registered",()=>void 0).with("current-frontend",()=>{let e=new URL(window.location.href);return e.searchParams.delete("cid"),e.searchParams.delete("ca"),e.toString()}).exhaustive(),a=await c.save();return h.generateShareLink(l,"rr"===e.access?a:void 0,e.expiration,e.access,t)},[n,c,h,l])};export const useShareData=t=>{let{expiration:r,ownerLinkDisabled:a,readRevisionLinkDisabled:s}=t,o=useGenerateShareLink(),{storeSystem:d}=n(),c=i(),l=d.stateSlices.committed.value.state,{data:h,isLoading:m}=e({queryKey:["share-owner-link",c],staleTime:1/0,queryFn:()=>o({access:"o",expiration:r}),enabled:!a}),{data:u,isLoading:p,isFetchedAfterMount:y}=e({queryKey:["share-revision-link",c,l.entities,l.rootEntityId],queryFn:()=>o({access:"rr",expiration:r}),enabled:!s});return{isLoadingOwnerData:m,isLoadingRevisionData:p,ownerData:h,revisionData:y?u:void 0}};export const useShareSettings=()=>{let e=d(a),t=e?.state.shareDisabled??!1,r=t||(e?.state.shareOwnerLinkDisabled??!1),s=t||(e?.state.shareReadRevisionLinkDisabled??!1);return{disabled:r&&s,ownerLinkDisabled:r,readRevisionLinkDisabled:s}};
1
+ import{useQuery as e}from"@tanstack/react-query";import{applicationConfigComponent as a}from"#package/domain";import{useConfigurationId as t,useDomain as r,useFirstRootComponent as s,useGenerateShareLink as i}from"#package/react-sdk";export const useShareData=a=>{let{expiration:s,ownerLinkDisabled:n,readRevisionLinkDisabled:o}=a,d=i(),{storeSystem:c}=r(),l=t(),u=c.stateSlices.committed.value.state,{data:m,isLoading:h}=e({queryKey:["share-owner-link",l],staleTime:1/0,queryFn:()=>d({access:"o",expiration:s}),enabled:!n}),{data:k,isLoading:y,isFetchedAfterMount:p}=e({queryKey:["share-revision-link",l,u.entities,u.rootEntityId],queryFn:()=>d({access:"rr",expiration:s}),enabled:!o});return{isLoadingOwnerData:h,isLoadingRevisionData:y,ownerData:m,revisionData:p?k:void 0}};export const useShareSettings=()=>{let e=s(a),t=e?.state.shareDisabled??!1,r=t||(e?.state.shareOwnerLinkDisabled??!1),i=t||(e?.state.shareReadRevisionLinkDisabled??!1);return{disabled:r&&i,ownerLinkDisabled:r,readRevisionLinkDisabled:i}};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import i from"lodash/noop.js";import{useCallback as e}from"react";import{finalizeButtonComponent as o,finalizePageComponent as a}from"#package/domain";import{useAnalyticsService as n,useDomain as s,useFinalizeViolations as m,useFirstRootComponent as r}from"#package/react-sdk";import{FrontendAnalyticsFactory as l}from"../../../../common/index.js";import{CustomFinalizeButton as c}from"../common/CustomFinalizeButton.js";let d=()=>t(c,{hints:"Finalize feature is not configured.",disabled:!0,onClick:i}),p=i=>{let{finalizeNavigationStates:o}=i,{navigationSystem:a,storeSystem:r}=s(),d=n(),p=e(async()=>{let t=o[0];t&&(d.push(l.FinalizeButtonClicked()),r.stageAndCommit([a.getPushNavigationUpdate(t,r.stateSlices.committed.value.state)]))},[o,a,d,r]),{disabled:u,hints:f}=m();return t(c,{hints:f,disabled:u,onClick:p})};export const BasicFinalizeButton=()=>{let i=r(o),e=r(a);return i?i?.state.button:e?t(p,{finalizeNavigationStates:e.state.finalizeNavigationStates}):t(d,{})};
1
+ import{jsx as t}from"react/jsx-runtime";import i from"lodash/noop.js";import{useCallback as e}from"react";import{finalizeButtonComponent as a,finalizePageComponent as o}from"#package/domain";import{FrontendAnalyticsFactory as n,useAnalyticsService as s,useDomain as r,useFinalizeViolations as m,useFirstRootComponent as l}from"#package/react-sdk";import{CustomFinalizeButton as c}from"../common/CustomFinalizeButton.js";let u=()=>t(c,{hints:"Finalize feature is not configured.",disabled:!0,onClick:i}),d=i=>{let{finalizeNavigationStates:a}=i,{navigationSystem:o,storeSystem:l}=r(),u=s(),d=e(async()=>{let t=a[0];t&&(u.push(n.FinalizeButtonClicked()),l.stageAndCommit([o.getPushNavigationUpdate(t,l.stateSlices.committed.value.state)]))},[a,o,u,l]),{disabled:p,hints:f}=m();return t(c,{hints:f,disabled:p,onClick:d})};export const BasicFinalizeButton=()=>{let i=l(a),e=l(o);return i?i?.state.button:e?t(d,{finalizeNavigationStates:e.state.finalizeNavigationStates}):t(u,{})};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{Trans as o}from"@lingui/react";import{useCallback as i}from"react";import{useAnalyticsService as e,useResolveLocalizable as r}from"#package/react-sdk";import{PhxIcon as a,ResponsiveSidebarFooterButton as s}from"#package/ui-sdk";import{FrontendAnalyticsFactory as n}from"../../../../common/index.js";export const CustomFinalizeButton=m=>{let{busy:l,disabled:p,hints:c,icon:u,onClick:d,title:f}=m,k=r(),g=e();return t(s,{tooltip:c,busy:l,disabled:p,onClick:i(t=>{t.preventDefault(),t.stopPropagation(),g.push(n.FinalizeButtonClicked()),d?.()},[g,d]),slotProps:{button:{startIcon:u?t(a,{name:u}):void 0}},children:f?k(f):t(o,{id:"sdk.layout.sidebar.finalizePage.label",message:"Finalize"})})};
1
+ import{jsx as t}from"react/jsx-runtime";import{Trans as o}from"@lingui/react";import{useCallback as a}from"react";import{FrontendAnalyticsFactory as e,useAnalyticsService as i,useResolveLocalizable as r}from"#package/react-sdk";import{PhxIcon as s,ResponsiveSidebarFooterButton as n}from"#package/ui-sdk";export const CustomFinalizeButton=l=>{let{busy:m,disabled:p,hints:u,icon:c,onClick:d,title:f}=l,k=r(),g=i();return t(n,{tooltip:u,busy:m,disabled:p,onClick:a(t=>{t.preventDefault(),t.stopPropagation(),g.push(e.FinalizeButtonClicked()),d?.()},[g,d]),slotProps:{button:{startIcon:c?t(s,{name:c}):void 0}},children:f?k(f):t(o,{id:"sdk.layout.sidebar.finalizePage.label",message:"Finalize"})})};
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import{Trans as m}from"@lingui/react";import{memo as o,useCallback as t}from"react";import{createPhoenixLayoutElement as a,enterSummaryButtonSchema as e}from"#package/domain";import{useAnalyticsService as i}from"#package/react-sdk";import{ResponsiveSidebarFooterButton as n}from"#package/ui-sdk";import{FrontendAnalyticsFactory as c}from"../../../../common/index.js";import{useEnterSidebarSummary as s}from"../../../../configurator-context/index.js";export const EnterSummaryButton=a({schema:e,component:o(()=>{let o=i(),a=s();return r(n,{onClick:t(()=>{o.push(c.SummaryButtonClicked()),a()},[o,a]),children:r(m,{id:"sdk.layout.summary.button.label",message:"Summary"})})})});
1
+ import{jsx as r}from"react/jsx-runtime";import{Trans as t}from"@lingui/react";import{memo as m,useCallback as o}from"react";import{createPhoenixLayoutElement as a,enterSummaryButtonSchema as e}from"#package/domain";import{FrontendAnalyticsFactory as i,useAnalyticsService as n}from"#package/react-sdk";import{ResponsiveSidebarFooterButton as c}from"#package/ui-sdk";import{useEnterSidebarSummary as s}from"../../../../configurator-context/index.js";export const EnterSummaryButton=a({schema:e,component:m(()=>{let m=n(),a=s();return r(c,{onClick:o(()=>{m.push(i.SummaryButtonClicked()),a()},[m,a]),children:r(t,{id:"sdk.layout.summary.button.label",message:"Summary"})})})});
@@ -1 +1 @@
1
- import{jsx as e,jsxs as r,Fragment as t}from"react/jsx-runtime";import{Trans as a}from"@lingui/react";import{Button as i,ButtonGroup as n,CircularProgress as o,ListItemIcon as l,ListItemText as s,Menu as m,MenuItem as d,buttonClasses as c,styled as p,svgIconClasses as h}from"@mui/material";import{useMutation as g}from"@tanstack/react-query";import{useSnackbar as f}from"notistack";import{useCallback as u,useState as z}from"react";import{finalizeActionComponent as k,getComponentSnapshotKey as y}from"#package/domain";import{LocalizableMessage as b,PhoenixHandlerBoundary as C,useComponents as v,useFinalizeViolations as x,useLocalizable as w,useLogger as F,usePhoenixHandler as S,useResolveLocalizable as j}from"#package/react-sdk";import{PhxIcon as O,TooltipWithArrow as T,useResponsive as E}from"#package/ui-sdk";import{CustomFinalizeButton as P}from"./CustomFinalizeButton.js";let $=p(n)({display:"grid",gridTemplateColumns:"minmax(0, 1fr) min-content "}),A=p(i)(({theme:{spacing:e}})=>({[`&.${c.containedSizeSmall}`]:{minInlineSize:0,[`.${h.root}`]:{fontSize:18}},[`&.${c.containedSizeLarge}`]:{paddingInline:e(1)}})),D=r=>e(C,{name:r.handler,children:e(I,{...r})}),I=r=>{let{handler:t,icon:i,title:n,tooltip:o}=r,{handler:l}=S(t),s=F(),{enqueueSnackbar:m}=f(),{mutate:d,isPending:c}=g({mutationFn:l,onError:r=>{s.error("Failed to finalize",{error:r.message}),m({message:e(a,{id:"sdk.messages.finalize.error",message:"Oops, something went wrong"}),variant:"error"})}}),{disabled:p,hints:h}=x(),u=j();return e(P,{hints:h??u(o),icon:i,busy:c,disabled:p,onClick:d,title:n})},L=r=>e(C,{name:r.handler,children:e(M,{...r})}),M=t=>{let{handler:i,icon:n,label:m,title:c,onClose:p}=t,{handler:h}=S(i),{enqueueSnackbar:z}=f(),k=F(),{mutateAsync:y,isPending:C}=g({mutationFn:h,onError:r=>{k.error("Failed to finalize",{error:r.message}),z({message:e(a,{id:"sdk.messages.finalize.error",message:"Oops, something went wrong"}),variant:"error"})}}),{disabled:v,hints:w}=x();return e(T,{title:w,placement:"top",children:e("span",{children:r(d,{disabled:v,onClick:u(async e=>{e.preventDefault(),e.stopPropagation(),await y(),p()},[y,p]),children:[e(l,{children:C?e(o,{size:20}):e(O,{name:n})}),e(s,{primary:e(b,{children:m}),secondary:e(b,{children:c})})]})})})};export const FinalizeActions=()=>{let a=w({id:"sdk.layout.finalize.moreActions",message:"More finalization options"}),i=v({componentTypes:[k]}),[n,o]=z(null),l=!!n,{isDesktop:s}=E(),d={color:"primary",variant:"contained",size:s?"large":"small"},c=u(e=>{o(e.currentTarget)},[]),p=u(()=>{o(null)},[]),h=i.find(e=>"primary"===e.state.variant)??i[0],g=i.filter(e=>e!==h);return h?1===i.length?e(D,{handler:h.state.handler,icon:h.state.icon,title:h.state.label,tooltip:h.state.title},y(h)):r(t,{children:[r($,{...d,children:[e(D,{handler:h.state.handler,icon:h.state.icon,title:h.state.label,tooltip:h.state.title},y(h)),e(A,{...d,"aria-label":a,"aria-haspopup":"menu","aria-expanded":l,onClick:c,children:e(O,{name:"CaretDown"})})]}),e(m,{anchorEl:n,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"bottom",horizontal:"right"},MenuListProps:{dense:!0},slotProps:{paper:{sx:{mt:-2}}},open:l,onClose:p,children:g.map(r=>e(L,{handler:r.state.handler,icon:r.state.icon,label:r.state.label,title:r.state.title,onClose:p},y(r)))})]}):null};
1
+ import{jsx as e,jsxs as n,Fragment as r}from"react/jsx-runtime";import{Trans as t}from"@lingui/react";import{Button as i,ButtonGroup as a,CircularProgress as o,ListItemIcon as l,ListItemText as s,Menu as c,MenuItem as m,buttonClasses as p,styled as d,svgIconClasses as g}from"@mui/material";import{useSnackbar as u}from"notistack";import{useCallback as h,useContext as f,useRef as y,useState as k}from"react";import{FinalizeActionsContext as z,useFinalizeActions as b,useLocalizable as x}from"#package/react-sdk";import{PhxIcon as C,ResponsiveSidebarFooterButton as P,TooltipWithArrow as v,useResponsive as S}from"#package/ui-sdk";let w=d(a)({display:"grid",gridTemplateColumns:"minmax(0, 1fr) min-content "}),j=d(i)(({theme:{spacing:e}})=>({[`&.${p.containedSizeSmall}`]:{minInlineSize:0,[`.${g.root}`]:{fontSize:18}},[`&.${p.containedSizeLarge}`]:{paddingInline:e(1)}})),D=n=>{let{enqueueSnackbar:r}=u(),i=f(z),{key:a,disabled:o,isPending:l,run:s}=n,c=y(!1);return h(async()=>{if(o||l||c.current)return!1;c.current=!0;try{await s()}finally{c.current=!1}let n=i?.getSnapshot().get(a);return n?.status!=="ready"||!n.action.error||(r({message:e(t,{id:"sdk.messages.finalize.error",message:"Oops, something went wrong"}),variant:"error"}),!1)},[o,r,l,a,s,i])},I=({action:n,hints:r})=>{let t=D(n),i=h(e=>{e.preventDefault(),e.stopPropagation(),t()},[t]);return e(P,{tooltip:r??n.title,busy:n.isPending,disabled:n.disabled,onClick:i,slotProps:{button:{startIcon:e(C,{name:n.icon})}},children:n.label})},O=({action:r,hints:t,onClose:i})=>{let a=D(r),c=h(async e=>{e.preventDefault(),e.stopPropagation(),await a()&&i()},[a,i]);return e(v,{title:t,placement:"top",children:e("span",{children:n(m,{disabled:r.disabled,onClick:c,children:[e(l,{children:r.isPending?e(o,{size:20}):e(C,{name:r.icon})}),e(s,{primary:r.label,secondary:r.title})]})})})};export const FinalizeActions=()=>{let t=x({id:"sdk.layout.finalize.moreActions",message:"More finalization options"}),{actions:i,primary:a,secondary:o,hints:l}=b(),[s,m]=k(null),p=!!s,{isDesktop:d}=S(),g={color:"primary",variant:"contained",size:d?"large":"small"},u=h(e=>{m(e.currentTarget)},[]),f=h(()=>{m(null)},[]);return a?1===i.length?e(I,{action:a,hints:l},a.key):n(r,{children:[n(w,{...g,children:[e(I,{action:a,hints:l},a.key),e(j,{...g,"aria-label":t,"aria-haspopup":"menu","aria-expanded":p,onClick:u,children:e(C,{name:"CaretDown"})})]}),e(c,{anchorEl:s,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"bottom",horizontal:"right"},MenuListProps:{dense:!0},slotProps:{paper:{sx:{mt:-2}}},open:p,onClose:f,children:o.map(n=>e(O,{action:n,hints:l,onClose:f},n.key))})]}):null};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{Trans as e}from"@lingui/react";import{Button as a}from"@mui/material";import{memo as i,useCallback as o}from"react";import{createPhoenixLayoutElement as r,nextStepButtonSchema as n}from"#package/domain";import{useAnalyticsService as m,useDomain as s}from"#package/react-sdk";import{useResponsive as l}from"#package/ui-sdk";import{useConfigurator as c}from"../../../../application-runtime/index.js";import{FrontendAnalyticsFactory as p}from"../../../../common/index.js";export const NextStepButton=r({schema:n,component:i(()=>{let i=m(),{layoutSystem:r}=c(),{navigationSystem:n,storeSystem:d}=s(),{isDesktop:g}=l(),u=o(()=>{let t=n.getActiveNavigationState(d.stateSlices.committed.value.state),e=r.getNavigationSteps(d.stateSlices.committed.value.state);i.push(p.NextStepButtonClicked());let a=e.findIndex(e=>e.navigationStates.includes(t)),o=e[a+1];if(!o)return;let m=o.navigationStates[0];m&&d.stageAndCommit([n.getNavigationUpdate(m)])},[i,n,d,r]);return g?t(a,{variant:"contained",color:"primary",size:"large",onClick:u,children:t(e,{id:"sdk.layout.sidebar.nextStep.label",message:"Next step"})}):t(a,{variant:"contained",color:"primary",size:"small",onClick:u,children:t(e,{id:"sdk.layout.sidebar.nextStepShort.label",message:"Next"})})})});
1
+ import{jsx as e}from"react/jsx-runtime";import{Trans as t}from"@lingui/react";import{Button as r}from"@mui/material";import{memo as a,useCallback as o}from"react";import{createPhoenixLayoutElement as i,nextStepButtonSchema as m}from"#package/domain";import{FrontendAnalyticsFactory as n,useAnalyticsService as s,useStepNavigation as p}from"#package/react-sdk";import{useResponsive as c}from"#package/ui-sdk";export const NextStepButton=i({schema:m,component:a(()=>{let a=s(),{canGoNext:i,next:m}=p(),{isDesktop:l}=c(),d=o(()=>{i?m():a.push(n.NextStepButtonClicked())},[a,i,m]);return l?e(r,{variant:"contained",color:"primary",size:"large",onClick:d,children:e(t,{id:"sdk.layout.sidebar.nextStep.label",message:"Next step"})}):e(r,{variant:"contained",color:"primary",size:"small",onClick:d,children:e(t,{id:"sdk.layout.sidebar.nextStepShort.label",message:"Next"})})})});
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{IconButton as e,Tooltip as i}from"@mui/material";import{memo as a,useCallback as o}from"react";import{createPhoenixLayoutElement as r,previousStepButtonSchema as m}from"#package/domain";import{useAnalyticsService as n,useDomain as s,useLocalizable as l}from"#package/react-sdk";import{PhxIcon as c,useResponsive as p}from"#package/ui-sdk";import{useConfigurator as d}from"../../../../application-runtime/index.js";import{FrontendAnalyticsFactory as u}from"../../../../common/index.js";import{useBackToPresetEnabled as g,useConfiguratorRouting as f,useSteps as v}from"../../../../configurator-context/index.js";let S={id:"sdk.layout.sidebar.previousStep.label",message:"Previous step"};export const PreviousStepButton=r({schema:m,component:a(a=>{let{icon:r}=a,m=l(S),x=n(),k=g(),{layoutSystem:h}=d(),j=f(),{navigationSystem:C,storeSystem:b}=s(),{isDesktop:N}=p(),{previousStepDisabled:P}=v();return t(i,{title:m,placement:"top",children:t("span",{style:{alignSelf:"center"},children:t(e,{variant:"muted",color:"default",size:N?"medium":"small",disabled:P,onClick:o(()=>{let t=C.getActiveNavigationState(b.stateSlices.committed.value.state),e=h.getNavigationSteps(b.stateSlices.committed.value.state);x.push(u.PreviousStepButtonClicked());let i=e.findIndex(e=>e.navigationStates.includes(t)),a=e[i-1];if(!a){k&&j.goToIndex();return}let o=a.navigationStates[0];o&&b.stageAndCommit([C.getNavigationUpdate(o)])},[x,C,k,j,b,h]),children:t(c,{name:r??"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,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 +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{ConfigurationNotFoundPage as l,useResolveLocalizable as o,useResourceUrl as n}from"#package/react-sdk";import{Preset as a}from"#package/ui-sdk";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:l,img:m,imgAlt:c,detailTitle:g,detailDescription:p}=t,{selectPreset:u,creatingPresetId:B}=d(),b=o(),{getResourceUrl:C}=n(),T=r(()=>{u(i)},[u,i]),y=(m&&C(m))??"",A=B===i;return e(a.Card,{title:b(s),description:b(l),imgSrc:y,imgAlt:b(c),selectButtonTitle:b(f),loading:A,disabled:null!==B&&!A,onSelect:T,additionalInfoButton:void 0!==g&&void 0!==p&&e(a.DetailDialog,{img:y,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:l,img:d,imgAlt:m,onSelect:c}=t,g=o(),{getResourceUrl:p}=n(),u=r(()=>{c(i)},[c,i]);return e(a.Card,{title:g(s),description:g(l),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))})},y={id:"sdk.presets.category.heading.title",message:"Select starting preset"},A={id:"sdk.presets.preview.title",message:"Customize product"},j={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=o(),v=r(()=>{B(null)},[]),{presetCategories:D}=d();return b?e(p,{title:C(A),startButtonLabel:C(j)}):0===D.length?e(l,{}):t(i,{children:[e(a.ScreenLayout,{heading:C(y),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{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,{})]})};
@@ -5,4 +5,8 @@ export type CreatePresetPageAction = (Element: () => JSX.Element) => PhoenixLayo
5
5
  export declare const createPresetPageAction: (Element: () => JSX.Element) => PhoenixLayoutElementRegistration;
6
6
  export declare const createPresetDeviceNotSupported: (Element: () => JSX.Element) => PhoenixLayoutElementRegistration;
7
7
  export type CreatePresetDeviceNotSupported = (Element: () => JSX.Element) => PhoenixLayoutElementRegistration;
8
+ /**
9
+ * Renders the `PresetUi` element. Its default, the built-in preset screen, comes from
10
+ * `defaultConfiguratorElements`; a project element registered under the name replaces it.
11
+ */
8
12
  export declare const PresetUi: () => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{createCustomPhoenixLayoutElement as t}from"#package/domain";import{PhoenixLayoutElement as r}from"#package/react-sdk";import{CategoryPresetUi as o}from"./CategoryPresetUi.js";let a="PresetUi";export const createPresetUi=e=>t(a,e);let s="PresetPageAction";export const createPresetPageAction=e=>t(s,e);let l="PresetDeviceNotSupported";export const createPresetDeviceNotSupported=e=>t(l,e);let n=()=>e(r,{name:s,elementProps:{},defaultSlot:()=>null}),p=()=>e(r,{name:l,elementProps:{},defaultSlot:()=>null}),c=()=>e(o,{action:e(n,{}),overlay:e(p,{})});export const PresetUi=()=>e(r,{name:a,elementProps:{},defaultSlot:c});
1
+ import{jsx as e}from"react/jsx-runtime";import{createCustomPhoenixLayoutElement as t}from"#package/domain";import{PhoenixLayoutElement as r}from"#package/react-sdk";import{PresetDeviceNotSupportedName as o,PresetPageActionName as s}from"../../preset-screen-elements/index.js";let c="PresetUi";export const createPresetUi=e=>t(c,e);export const createPresetPageAction=e=>t(s,e);export const createPresetDeviceNotSupported=e=>t(o,e);export const PresetUi=()=>e(r,{name:c,elementProps:{}});
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Shows the save messages of `useConfiguratorMessages` as snackbars: a `saveError` as an error snackbar that stays
3
+ * until it is dismissed or a later save succeeds, and a `saveRecovery` as an informational one. Mounted wherever a
4
+ * layout mounts its message services: `LayoutSlots.Services`, the legacy layouts' overlays and the `custom` owner UI.
5
+ * In read mode, from the access or the web component's `readonly`, nothing is saved: an error snackbar left from
6
+ * owner mode is closed and no message is shown. The read UIs that replace an owner UI in read mode
7
+ * (`SummaryReadLayout`, the `custom` read UI) mount it too, since the owner UI's instance unmounts before it can close
8
+ * the snackbar.
9
+ */
10
+ export declare const SaveMessageSnackbars: () => null;
@@ -0,0 +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.getInitializationState).isViewMode,{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};
@@ -0,0 +1 @@
1
+ export { SaveMessageSnackbars } from './SaveMessageSnackbars.js';
@@ -0,0 +1 @@
1
+ export{SaveMessageSnackbars}from"./SaveMessageSnackbars.js";
@@ -69,6 +69,8 @@ components:
69
69
 
70
70
  The toolMenuFab is scene HTML rendered at the entity's position in the 3D scene. It supports positioning properties (`offsetX`, `offsetY`, `offsetZ`) and appearance properties like opacity and visibility.
71
71
 
72
+ The FAB and its menu are the entity element `ToolMenuFab`. A project replaces them by registering its own with `phx.frontend.createToolMenuFab`, which receives the `options` and `onSelectTool(toolState)`. See [Configurator Interface → In-Scene Controls](?path=/docs/phoenix-configurator-interface--docs#in-scene-controls).
73
+
72
74
  ### Step 3: Add exitToolModeFab component
73
75
 
74
76
  The `exitToolModeFab` component renders a button in the call to action layout slot, providing a clear way to exit the current tool mode. This appears in the UI chrome, not in the scene:
@@ -189,6 +189,7 @@ interface ChildEntityCardSelectorSchema {
189
189
  interface ChildEntitySelectionComponentState {
190
190
  value: { $read: string } // Read-only - system manages DomainEntityId updates
191
191
  options: { $read: string } // Expression returning ChildEntitySelectionOption[]
192
+ keepChildren?: boolean // Keep the children of the replaced entity; by default they are deleted
192
193
  }
193
194
 
194
195
  // Each selectable option configuration
@@ -62,8 +62,8 @@ Lastly as both `sceneEntityDeleteFab` and `sceneEntityAddFab` are controls that
62
62
 
63
63
  All on-scene controls allow definition of `azimuthAngleLimits`, `polarAngleLimits` and `distanceLimits` properties to limit the visibility of the control based on the camera position. These properties optionally take an object with the following properties:
64
64
 
65
- - `min`, `max` - the range of the angle or distance where the control is visible
66
- - `minOpacity` - the opacity of the control when the camera is out of the range (default is `0.15`)
65
+ - `min`, `max` (both required) - the range of the angle or distance where the control is visible
66
+ - `minOpacity` - the opacity of the control when the camera is out of the range (default is `0`)
67
67
  - `smoothZone` - zone that eats from both sides of the range, where the opacity is interpolated from `minOpacity` to `1.0` (default is `(max - min) / 8`)
68
68
 
69
69
  All three limits can be used separately or combined. The angle limits are in radians and the distance limits respect the `unit` defined on the component.
@@ -131,6 +131,10 @@ components:
131
131
  - non-existent
132
132
  ```
133
133
 
134
+ ### Your own FABs
135
+
136
+ The FABs are the entity elements `DeleteEntityFab` and `AddEntityFab`. A project replaces their look by registering its own with `phx.frontend.createDeleteEntityFab` or `phx.frontend.createAddEntityFab`; the spec's settings and positions above still apply. The delete FAB's replacement gets `onDelete`, `disabled` and `disabledHint`; the add FAB's reads its recipes with `phx.frontend.useGroupedRecipeOptions`. See [Configurator Interface → In-Scene Controls](?path=/docs/phoenix-configurator-interface--docs#in-scene-controls).
137
+
134
138
  ## Example
135
139
 
136
140
  Here you can see the live example!
@@ -1,5 +1,5 @@
1
1
  {
2
- "generatedAt": "2026-10-14T17:12:33.798Z",
2
+ "generatedAt": "2026-10-16T16:04:41.979Z",
3
3
  "categories": [
4
4
  {
5
5
  "name": "Phoenix",
@@ -881,6 +881,23 @@
881
881
  ],
882
882
  "subcategories": []
883
883
  },
884
+ {
885
+ "name": "Gallery",
886
+ "docs": [
887
+ {
888
+ "title": "Kestrel Kettle",
889
+ "description": "Sell a small product from one calm page that looks like the shop's own. A specialty-coffee shop, Aldermoor Coffee, sells its Kestrel pour-over kettle in three finishes, two handle woods and with or...",
890
+ "path": "docs/layouts/gallery/kestrel-kettle.mdx",
891
+ "category": [
892
+ "Layouts",
893
+ "Gallery",
894
+ "Kestrel Kettle"
895
+ ],
896
+ "source": "storybook-example"
897
+ }
898
+ ],
899
+ "subcategories": []
900
+ },
884
901
  {
885
902
  "name": "Header",
886
903
  "docs": [