@salsita-ai/sdk 0.50.0-develop.a4dde5f252 → 0.50.0-develop.a9ee99dc86

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 (1061) hide show
  1. package/README.md +19 -14
  2. package/dist/admin/default-admin-elements.d.ts +9 -0
  3. package/dist/admin/default-admin-elements.js +1 -0
  4. package/dist/admin/default-elements/built-in-entity-element.d.ts +10 -0
  5. package/dist/admin/default-elements/built-in-entity-element.js +1 -0
  6. package/dist/admin/default-elements/built-in-layout-element.d.ts +10 -0
  7. package/dist/admin/default-elements/built-in-layout-element.js +1 -0
  8. package/dist/admin/default-elements/index.d.ts +2 -0
  9. package/dist/admin/default-elements/index.js +1 -0
  10. package/dist/admin/index.d.ts +1 -0
  11. package/dist/admin/index.js +1 -1
  12. package/dist/application-spec/caching/content-diff.js +1 -1
  13. package/dist/application-spec/core/application-file.d.ts +0 -2
  14. package/dist/application-spec/core/application-file.js +1 -1
  15. package/dist/application-spec/core/components/component-filter.d.ts +53 -0
  16. package/dist/application-spec/core/components/component-filter.js +1 -0
  17. package/dist/application-spec/core/components/index.d.ts +2 -0
  18. package/dist/application-spec/core/components/index.js +1 -0
  19. package/dist/application-spec/core/components/sdk-code-ref.d.ts +9 -0
  20. package/dist/application-spec/core/components/sdk-code-ref.js +1 -0
  21. package/dist/application-spec/core/enhanced-json-value.d.ts +0 -68
  22. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  23. package/dist/application-spec/core/expressions/index.d.ts +2 -0
  24. package/dist/application-spec/core/expressions/index.js +1 -0
  25. package/dist/application-spec/core/expressions/relation-expression-params.d.ts +11 -0
  26. package/dist/application-spec/core/expressions/sdk-expression-implementation.d.ts +24 -0
  27. package/dist/application-spec/core/expressions/sdk-expression-implementation.js +1 -0
  28. package/dist/application-spec/core/index.d.ts +2 -0
  29. package/dist/application-spec/core/index.js +1 -1
  30. package/dist/application-spec/core/json-value.d.ts +1 -1
  31. package/dist/application-spec/{core → enhanced-json}/eval-to-constant.d.ts +1 -1
  32. package/dist/application-spec/enhanced-json/index.d.ts +4 -0
  33. package/dist/application-spec/enhanced-json/index.js +1 -0
  34. package/dist/application-spec/enhanced-json/is-enhanced-json-array.d.ts +2 -0
  35. package/dist/application-spec/enhanced-json/is-enhanced-json-array.js +1 -0
  36. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.d.ts +18 -0
  37. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.js +1 -0
  38. package/dist/application-spec/enhanced-json/schema-from-value.d.ts +24 -0
  39. package/dist/application-spec/enhanced-json/schema-from-value.js +1 -0
  40. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.d.ts +14 -0
  41. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.js +1 -0
  42. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.d.ts +12 -0
  43. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.js +1 -0
  44. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.d.ts +13 -0
  45. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.js +1 -0
  46. package/dist/application-spec/errors/diagnostic-codes.d.ts +14 -0
  47. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  48. package/dist/application-spec/errors/diagnostic-messages.d.ts +17 -0
  49. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  50. package/dist/application-spec/generate-application/code/common/code-imports.js +1 -1
  51. package/dist/application-spec/generate-application/code/common/env-reader.js +2 -2
  52. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  53. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  54. package/dist/application-spec/generate-application/code/common/single-quoted-string.d.ts +6 -0
  55. package/dist/application-spec/generate-application/code/common/single-quoted-string.js +1 -0
  56. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  57. package/dist/application-spec/generate-application/code/generate-application-code.d.ts +3 -2
  58. package/dist/application-spec/generate-application/code/generate-application-code.js +1 -1
  59. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +22 -14
  60. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  61. package/dist/application-spec/generate-application/code/standalone-app-files.d.ts +2 -2
  62. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  63. package/dist/application-spec/generate-application/code/story-files.js +1 -1
  64. package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -0
  65. package/dist/application-spec/generate-application/code/templates/common/format-property-key.d.ts +7 -0
  66. package/dist/application-spec/generate-application/code/templates/common/format-property-key.js +1 -0
  67. package/dist/application-spec/generate-application/code/templates/common/schema-to-type-string.js +3 -3
  68. package/dist/application-spec/generate-application/code/templates/configurator-config.js +6 -4
  69. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +35 -0
  70. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +5 -0
  71. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.d.ts +1 -0
  72. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.js +1 -0
  73. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.d.ts +1 -1
  74. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +7 -7
  75. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  76. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  77. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +69 -73
  78. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +8 -0
  79. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  80. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  81. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-presets.js +1 -1
  82. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  83. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  84. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +21 -21
  85. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.d.ts +1 -1
  86. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.js +2 -2
  87. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +3 -2
  88. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  89. package/dist/application-spec/generate-application/code/templates/domain-spec.js +12 -12
  90. package/dist/application-spec/generate-application/code/templates/domain.js +3 -3
  91. package/dist/application-spec/generate-application/code/templates/eslint-config.d.ts +5 -0
  92. package/dist/application-spec/generate-application/code/templates/eslint-config.js +4 -5
  93. package/dist/application-spec/generate-application/code/templates/frontend-config.js +3 -5
  94. package/dist/application-spec/generate-application/code/templates/gitignore.js +0 -3
  95. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.d.ts +43 -0
  96. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +31 -0
  97. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
  98. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  99. package/dist/application-spec/generate-application/code/templates/globals.js +24 -43
  100. package/dist/application-spec/generate-application/code/templates/index.d.ts +3 -4
  101. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  102. package/dist/application-spec/generate-application/code/templates/lingui-rc.d.ts +5 -0
  103. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +4 -4
  104. package/dist/application-spec/generate-application/code/templates/prettier-config.d.ts +5 -0
  105. package/dist/application-spec/generate-application/code/templates/prettier-config.js +4 -5
  106. package/dist/application-spec/generate-application/code/templates/root-tsconfig.d.ts +6 -0
  107. package/dist/application-spec/generate-application/code/templates/root-tsconfig.js +2 -0
  108. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  109. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +1 -1
  110. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +5 -5
  111. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +9 -3
  112. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  113. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +2 -2
  114. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +26 -7
  115. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -2
  116. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
  117. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
  118. package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
  119. package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
  120. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
  121. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
  122. package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
  123. package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
  124. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
  125. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
  126. package/dist/application-spec/generate-application/code/templates/story/phx-module.d.ts +8 -2
  127. package/dist/application-spec/generate-application/code/templates/story/phx-module.js +15 -3
  128. package/dist/application-spec/generate-application/code/templates/story/wrapper.d.ts +3 -0
  129. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -1
  130. package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
  131. package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
  132. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +6 -1
  133. package/dist/application-spec/generate-application/code/templates/webhook-index.js +10 -1
  134. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -3
  135. package/dist/application-spec/generate-application/index.d.ts +2 -0
  136. package/dist/application-spec/generate-application/index.js +1 -1
  137. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +6 -4
  138. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +1 -1
  139. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +8 -3
  140. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  141. package/dist/application-spec/generate-application/runtime/admin-runtime/states-runtime.d.ts +2 -2
  142. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +19 -7
  143. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  144. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +6 -4
  145. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +1 -1
  146. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +7 -4
  147. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  148. package/dist/application-spec/generate-application/runtime/configurator-runtime/states-runtime.d.ts +2 -2
  149. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +43 -0
  150. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.js +1 -0
  151. package/dist/application-spec/generate-application/runtime/factory-data/index.d.ts +3 -0
  152. package/dist/application-spec/generate-application/runtime/factory-data/index.js +1 -0
  153. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +13 -0
  154. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -0
  155. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +16 -0
  156. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -0
  157. package/dist/application-spec/generate-application/runtime/migrations/index.d.ts +1 -0
  158. package/dist/application-spec/generate-application/runtime/migrations/index.js +1 -0
  159. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +53 -0
  160. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +1 -0
  161. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +2 -2
  162. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +3 -2
  163. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  164. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +2 -1
  165. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +1 -1
  166. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +5 -1
  167. package/dist/application-spec/generate-application/runtime/sections/component-optic.js +1 -1
  168. package/dist/application-spec/generate-application/runtime/sections/data-runtime.d.ts +4 -4
  169. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +7 -4
  170. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  171. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +9 -5
  172. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  173. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +3 -1
  174. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.js +1 -1
  175. package/dist/application-spec/generate-application/runtime/sections/theme-runtime.d.ts +2 -2
  176. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +4 -6
  177. package/dist/application-spec/generate-application/runtime/spec-code/index.d.ts +2 -0
  178. package/dist/application-spec/generate-application/runtime/spec-code/index.js +1 -0
  179. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +18 -0
  180. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.js +1 -0
  181. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.d.ts +17 -0
  182. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.js +1 -0
  183. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.d.ts +9 -0
  184. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.js +1 -0
  185. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.d.ts +8 -0
  186. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.js +1 -0
  187. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +27 -0
  188. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.js +1 -0
  189. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +5 -0
  190. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -0
  191. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +68 -0
  192. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -0
  193. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +40 -0
  194. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.js +1 -0
  195. package/dist/application-spec/index.d.ts +1 -0
  196. package/dist/application-spec/index.js +1 -1
  197. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +34 -0
  198. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  199. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.d.ts +16 -0
  200. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.js +9 -0
  201. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts +9 -0
  202. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
  203. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  204. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  205. package/dist/application-spec/parse-application-files/raw-spec/parse-yaml-spec-file.js +1 -1
  206. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +16 -3
  207. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  208. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  209. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  210. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  211. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  212. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  213. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.d.ts +3 -0
  214. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js +1 -0
  215. package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +5 -0
  216. package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -0
  217. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.d.ts +6 -0
  218. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.js +1 -0
  219. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.d.ts +8 -0
  220. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.js +1 -0
  221. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts +10 -0
  222. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.js +1 -0
  223. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.d.ts +98 -0
  224. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.js +1 -0
  225. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts +13 -0
  226. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js +1 -0
  227. package/dist/application-spec/parse-application-files/spec/components/bindings/index.d.ts +2 -0
  228. package/dist/application-spec/parse-application-files/spec/components/bindings/index.js +1 -1
  229. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.d.ts +24 -0
  230. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js +1 -0
  231. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  232. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  233. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  234. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  235. package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts +8 -0
  236. package/dist/application-spec/parse-application-files/spec/components/component-state-type.js +1 -0
  237. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts +13 -0
  238. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js +1 -0
  239. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  240. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  241. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.d.ts +14 -0
  242. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.js +1 -0
  243. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +6 -0
  244. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  245. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +7 -4
  246. package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
  247. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +24 -0
  248. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -0
  249. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.d.ts +13 -0
  250. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.js +1 -0
  251. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
  252. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
  253. package/dist/application-spec/parse-application-files/spec/expressions/expression.d.ts +1 -28
  254. package/dist/application-spec/parse-application-files/spec/expressions/expression.js +1 -1
  255. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -3
  256. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  257. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  258. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  259. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  260. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +3 -1
  261. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  262. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +2 -2
  263. package/dist/application-spec/parse-application-files/spec/invariants/invariants.js +1 -1
  264. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  265. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  266. package/dist/application-spec/parse-application-files/spec/model/index.d.ts +1 -0
  267. package/dist/application-spec/parse-application-files/spec/model/index.js +1 -1
  268. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.d.ts +10 -0
  269. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.js +1 -0
  270. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  271. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  272. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  273. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  274. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  275. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  276. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  277. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  278. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  279. package/dist/client/phoenix-api.d.ts +463 -0
  280. package/dist/configurator/ConfiguratorApp.js +1 -1
  281. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.d.ts +2 -0
  282. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.js +5 -0
  283. package/dist/configurator/app-loader-content/app-loader-content-name.d.ts +5 -0
  284. package/dist/configurator/app-loader-content/app-loader-content-name.js +1 -0
  285. package/dist/configurator/app-loader-content/index.d.ts +2 -0
  286. package/dist/configurator/app-loader-content/index.js +1 -0
  287. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  288. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  289. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  290. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +38 -1
  291. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  292. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +7 -1
  293. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  294. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.d.ts +1 -1
  295. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  296. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.d.ts +12 -0
  297. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.js +1 -0
  298. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +20 -4
  299. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  300. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  301. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  302. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  303. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  304. package/dist/configurator/common/configurator-interface.d.ts +136 -4
  305. package/dist/configurator/common/configurator-interface.js +1 -1
  306. package/dist/configurator/common/index.d.ts +3 -1
  307. package/dist/configurator/common/index.js +1 -1
  308. package/dist/configurator/common/use-reset-camera.d.ts +6 -0
  309. package/dist/configurator/common/use-reset-camera.js +1 -0
  310. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +12 -0
  311. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -0
  312. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.d.ts +9 -0
  313. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.js +1 -0
  314. package/dist/configurator/configuration-not-found-page/index.d.ts +2 -0
  315. package/dist/configurator/configuration-not-found-page/index.js +1 -0
  316. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +12 -0
  317. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -0
  318. package/dist/configurator/configurator-context/PresetSelectionProvider.js +1 -1
  319. package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
  320. package/dist/configurator/configurator-context/ViewportStateSync.d.ts +2 -2
  321. package/dist/configurator/configurator-context/ViewportStateSync.js +1 -1
  322. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +7 -1
  323. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.d.ts +6 -0
  324. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.js +1 -0
  325. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.d.ts +12 -0
  326. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.js +1 -0
  327. package/dist/configurator/configurator-error-page/create-configurator-error-page.d.ts +9 -0
  328. package/dist/configurator/configurator-error-page/create-configurator-error-page.js +1 -0
  329. package/dist/configurator/configurator-error-page/index.d.ts +3 -0
  330. package/dist/configurator/configurator-error-page/index.js +1 -0
  331. package/dist/configurator/index.d.ts +3 -0
  332. package/dist/configurator/index.js +1 -1
  333. package/dist/configurator/pages/ConfiguratorErrorPage.d.ts +0 -1
  334. package/dist/configurator/pages/ConfiguratorErrorPage.js +1 -1
  335. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  336. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +3 -2
  337. package/dist/configurator/pages/DefaultNotAuthenticatedPage.d.ts +8 -0
  338. package/dist/configurator/pages/DefaultNotAuthenticatedPage.js +1 -0
  339. package/dist/configurator/pages/DefaultPresetUi.d.ts +7 -0
  340. package/dist/configurator/pages/DefaultPresetUi.js +1 -0
  341. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  342. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  343. package/dist/configurator/pages/PresetCreationErrorPage.d.ts +1 -1
  344. package/dist/configurator/pages/PresetCreationErrorPage.js +1 -1
  345. package/dist/configurator/pages/RootPage.js +1 -1
  346. package/dist/configurator/pages/configurator-layout-name.d.ts +2 -0
  347. package/dist/configurator/pages/configurator-layout-name.js +1 -0
  348. package/dist/configurator/pages/default-configurator-elements.d.ts +13 -0
  349. package/dist/configurator/pages/default-configurator-elements.js +1 -0
  350. package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +10 -0
  351. package/dist/configurator/pages/default-elements/built-in-entity-element.js +1 -0
  352. package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +10 -0
  353. package/dist/configurator/pages/default-elements/built-in-layout-element.js +1 -0
  354. package/dist/configurator/pages/default-elements/domain-control-elements.d.ts +6 -0
  355. package/dist/configurator/pages/default-elements/domain-control-elements.js +1 -0
  356. package/dist/configurator/pages/default-elements/index.d.ts +5 -0
  357. package/dist/configurator/pages/default-elements/index.js +1 -0
  358. package/dist/configurator/pages/default-elements/recipe-panel-elements.d.ts +3 -0
  359. package/dist/configurator/pages/default-elements/recipe-panel-elements.js +1 -0
  360. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.d.ts +3 -0
  361. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.js +1 -0
  362. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.d.ts +3 -0
  363. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.js +1 -0
  364. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.d.ts +3 -0
  365. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.js +1 -0
  366. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.d.ts +3 -0
  367. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.js +1 -0
  368. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.d.ts +3 -0
  369. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.js +1 -0
  370. package/dist/configurator/pages/default-elements/scene-controls/index.d.ts +6 -0
  371. package/dist/configurator/pages/default-elements/scene-controls/index.js +1 -0
  372. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.d.ts +6 -0
  373. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.js +1 -0
  374. package/dist/configurator/pages/default-elements/sidebar-footer-elements.d.ts +7 -0
  375. package/dist/configurator/pages/default-elements/sidebar-footer-elements.js +1 -0
  376. package/dist/configurator/pages/default-elements/toolbar-elements.d.ts +7 -0
  377. package/dist/configurator/pages/default-elements/toolbar-elements.js +1 -0
  378. package/dist/configurator/pages/error-boundaries/GeneralErrorBoundary.js +1 -1
  379. package/dist/configurator/pages/index.d.ts +1 -0
  380. package/dist/configurator/pages/index.js +1 -1
  381. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.d.ts +4 -0
  382. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.js +1 -0
  383. package/dist/configurator/preset-screen-elements/PresetPageActionElement.d.ts +4 -0
  384. package/dist/configurator/preset-screen-elements/PresetPageActionElement.js +1 -0
  385. package/dist/configurator/preset-screen-elements/index.d.ts +2 -0
  386. package/dist/configurator/preset-screen-elements/index.js +1 -0
  387. package/dist/configurator/scene/index.d.ts +1 -0
  388. package/dist/configurator/scene/index.js +1 -1
  389. package/dist/configurator/scene/scene-controls/DeleteEntityFab.js +1 -1
  390. package/dist/configurator/scene/scene-controls/SelectionHotspot.js +1 -1
  391. package/dist/configurator/scene/scene-controls/ToolFab.d.ts +4 -0
  392. package/dist/configurator/scene/scene-controls/ToolFab.js +1 -1
  393. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  394. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  395. package/dist/configurator/scene/scene-controls/use-scene-control-tooltip.d.ts +2 -1
  396. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  397. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  398. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  399. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  400. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  401. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  402. package/dist/configurator/scene/scene-entity/scene-controls/SceneEntityHtmlHotspots.js +1 -1
  403. package/dist/configurator/toolbar-actions/index.d.ts +2 -0
  404. package/dist/configurator/toolbar-actions/index.js +1 -0
  405. package/dist/configurator/toolbar-actions/use-assistant-panel.d.ts +18 -0
  406. package/dist/configurator/toolbar-actions/use-assistant-panel.js +1 -0
  407. package/dist/configurator/toolbar-actions/use-measurements.d.ts +35 -0
  408. package/dist/configurator/toolbar-actions/use-measurements.js +1 -0
  409. package/dist/configurator/ui/assistant/AssistantChips.d.ts +8 -2
  410. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  411. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -2
  412. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  413. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  414. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  415. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +8 -0
  416. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -0
  417. package/dist/configurator/ui/assistant/alert/index.d.ts +2 -0
  418. package/dist/configurator/ui/assistant/alert/index.js +1 -0
  419. package/dist/configurator/ui/assistant/alert/remark-alerts.d.ts +10 -0
  420. package/dist/configurator/ui/assistant/alert/remark-alerts.js +1 -0
  421. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  422. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  423. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  424. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  425. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  426. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  427. package/dist/configurator/ui/assistant/entity-link/index.d.ts +2 -0
  428. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  429. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +19 -0
  430. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -0
  431. package/dist/configurator/ui/assistant/form/built-in-form-registry.d.ts +10 -0
  432. package/dist/configurator/ui/assistant/form/built-in-form-registry.js +1 -0
  433. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +12 -0
  434. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -0
  435. package/dist/configurator/ui/assistant/form/describe-build-errors.d.ts +6 -0
  436. package/dist/configurator/ui/assistant/form/describe-build-errors.js +1 -0
  437. package/dist/configurator/ui/assistant/form/form-element-definition.d.ts +14 -0
  438. package/dist/configurator/ui/assistant/form/form-element-definition.js +1 -0
  439. package/dist/configurator/ui/assistant/form/form-model.d.ts +39 -0
  440. package/dist/configurator/ui/assistant/form/form-model.js +1 -0
  441. package/dist/configurator/ui/assistant/form/form-registry.d.ts +31 -0
  442. package/dist/configurator/ui/assistant/form/form-registry.js +8 -0
  443. package/dist/configurator/ui/assistant/form/form-state.d.ts +4 -0
  444. package/dist/configurator/ui/assistant/form/form-state.js +1 -0
  445. package/dist/configurator/ui/assistant/form/index.d.ts +2 -0
  446. package/dist/configurator/ui/assistant/form/index.js +1 -0
  447. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +10 -0
  448. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -0
  449. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +13 -0
  450. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -0
  451. package/dist/configurator/ui/assistant/form-elements/FormCard.d.ts +9 -0
  452. package/dist/configurator/ui/assistant/form-elements/FormCard.js +1 -0
  453. package/dist/configurator/ui/assistant/form-elements/FormConfirm.d.ts +9 -0
  454. package/dist/configurator/ui/assistant/form-elements/FormConfirm.js +1 -0
  455. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +6 -0
  456. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -0
  457. package/dist/configurator/ui/assistant/form-elements/FormNumber.d.ts +9 -0
  458. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -0
  459. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +6 -0
  460. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -0
  461. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +6 -0
  462. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -0
  463. package/dist/configurator/ui/assistant/form-elements/FormSwatch.d.ts +10 -0
  464. package/dist/configurator/ui/assistant/form-elements/FormSwatch.js +1 -0
  465. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +6 -0
  466. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -0
  467. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.d.ts +10 -0
  468. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.js +1 -0
  469. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +38 -0
  470. package/dist/configurator/ui/assistant/form-elements/form-element-props.js +1 -0
  471. package/dist/configurator/ui/assistant/form-elements/index.d.ts +9 -0
  472. package/dist/configurator/ui/assistant/form-elements/index.js +1 -0
  473. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +16 -0
  474. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -0
  475. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.d.ts +34 -0
  476. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.js +1 -0
  477. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.d.ts +25 -0
  478. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.js +1 -0
  479. package/dist/configurator/ui/assistant/reference-link/index.d.ts +3 -0
  480. package/dist/configurator/ui/assistant/reference-link/index.js +1 -0
  481. package/dist/configurator/ui/assistant/reference-link/reference-styles.d.ts +12 -0
  482. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -0
  483. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.d.ts +8 -0
  484. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.js +1 -0
  485. package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +9 -0
  486. package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -0
  487. package/dist/configurator/ui/assistant/resource-image/index.d.ts +3 -0
  488. package/dist/configurator/ui/assistant/resource-image/index.js +1 -0
  489. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +2 -0
  490. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -0
  491. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.d.ts +5 -0
  492. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.js +1 -0
  493. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +4 -2
  494. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  495. package/dist/configurator/ui/assistant/thread-items.d.ts +8 -1
  496. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  497. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -1
  498. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  499. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  500. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  501. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  502. package/dist/configurator/ui/configurator-layout/slots/canvas/LayoutCanvas.js +1 -1
  503. package/dist/configurator/ui/configurator-layout/slots/canvas/SharedCanvas.js +1 -1
  504. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.d.ts +101 -0
  505. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  506. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  507. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  508. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.d.ts +1 -1
  509. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.js +1 -1
  510. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  511. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  512. package/dist/configurator/ui/configurator-layout/slots/services/Services.js +1 -1
  513. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  514. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  515. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.d.ts +1 -1
  516. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.js +1 -1
  517. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  518. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  519. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +0 -74
  520. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  521. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  522. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +4 -4
  523. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  524. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  525. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  526. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  527. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  528. package/dist/configurator/ui/legacy/layout/common/CommonFinalizeButton.js +1 -1
  529. package/dist/configurator/ui/legacy/layout/common/CommonSummaryButton.js +1 -1
  530. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  531. package/dist/configurator/ui/legacy/layout/common/ReactiveInterfaceLayout.js +1 -1
  532. package/dist/configurator/ui/legacy/layout/common/ResponsiveFinalizeButton.js +1 -1
  533. package/dist/configurator/ui/legacy/layout/common/SummaryReadLayout.js +1 -1
  534. package/dist/configurator/ui/legacy/layout/simple/SimpleOwnerLayout.js +1 -1
  535. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  536. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  537. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  538. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  539. package/dist/configurator/ui/legacy/layout/steps/StepsSidebarFooter.js +1 -1
  540. package/dist/configurator/ui/legacy/layout/tabs/TabsOwnerLayout.js +1 -1
  541. package/dist/configurator/ui/legacy/toolbar/common/DimensionUnitSelector.js +1 -1
  542. package/dist/configurator/ui/legacy/toolbar/common/MeasurementsIndicatorsSwitch.js +1 -1
  543. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/FullscreenToolbarAction.js +1 -1
  544. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/HelpToolbarAction.js +1 -1
  545. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/MeasurementsToolbarAction.js +1 -1
  546. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/UndoRedoToolbarGroup.js +1 -1
  547. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.js +2 -6
  548. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -1
  549. package/dist/configurator/ui/phoenix-layout-elements/EnterFullscreenToolbarButton.js +1 -1
  550. package/dist/configurator/ui/phoenix-layout-elements/ExitFullscreenToolbarButton.js +1 -1
  551. package/dist/configurator/ui/phoenix-layout-elements/HelpToolbarButton.js +1 -1
  552. package/dist/configurator/ui/phoenix-layout-elements/LanguageMenuAction.js +1 -1
  553. package/dist/configurator/ui/phoenix-layout-elements/LanguageToolbarButton.js +1 -1
  554. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.d.ts +1 -0
  555. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.js +1 -1
  556. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.d.ts +1 -0
  557. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.js +1 -1
  558. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsMenuAction.js +1 -1
  559. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsToolbarButton.js +1 -1
  560. package/dist/configurator/ui/phoenix-layout-elements/RedoToolbarButton.js +1 -1
  561. package/dist/configurator/ui/phoenix-layout-elements/ShareToolbarButton.js +1 -1
  562. package/dist/configurator/ui/phoenix-layout-elements/UndoToolbarButton.js +1 -1
  563. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  564. package/dist/configurator/ui/phoenix-layout-elements/header/common/horizontal-tabs/DesktopHorizontalTabs.js +1 -1
  565. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.d.ts +1 -1
  566. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.js +1 -1
  567. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -8
  568. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  569. package/dist/configurator/ui/phoenix-layout-elements/measurements/DimensionUnitSelector.js +1 -1
  570. package/dist/configurator/ui/phoenix-layout-elements/measurements/MeasurementsIndicatorsSwitch.js +1 -1
  571. package/dist/configurator/ui/phoenix-layout-elements/share/ShareModal.js +1 -1
  572. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.d.ts +7 -8
  573. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.js +1 -1
  574. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/BasicFinalizeButton.js +1 -1
  575. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/CustomFinalizeButton.js +1 -1
  576. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/EnterSummaryButton.js +1 -1
  577. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/FinalizeActions.js +1 -1
  578. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/NextStepButton.js +1 -1
  579. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  580. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  581. package/dist/configurator/ui/preset-layout/PresetUi.d.ts +4 -0
  582. package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
  583. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.d.ts +10 -0
  584. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -0
  585. package/dist/configurator/ui/save-message-snackbars/index.d.ts +1 -0
  586. package/dist/configurator/ui/save-message-snackbars/index.js +1 -0
  587. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +16 -19
  588. package/dist/docs/complex-use-cases/focus-mode.mdx +2 -0
  589. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  590. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  591. package/dist/docs/controls/select-child-entity/cardselect.mdx +1 -0
  592. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  593. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  594. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  595. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  596. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  597. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  598. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  599. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  600. package/dist/docs/fabs/basic.mdx +6 -2
  601. package/dist/docs/index.json +42 -1
  602. package/dist/docs/layouts/custom-layout.mdx +2437 -0
  603. package/dist/docs/layouts/header/fixed.mdx +2 -2
  604. package/dist/docs/layouts/header/floating.mdx +2 -2
  605. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  606. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  607. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  608. package/dist/docs/other-features/error-5xx.mdx +1 -1
  609. package/dist/docs/other-features/navigation-hotspot.mdx +2 -0
  610. package/dist/docs/other-features/not-found-404.mdx +1 -1
  611. package/dist/docs/other-features/side-effects.mdx +8 -11
  612. package/dist/docs/other-features/transformers.mdx +4 -0
  613. package/dist/docs/other-features/violation-messages.mdx +52 -56
  614. package/dist/docs/phoenix/application-states.mdx +9 -7
  615. package/dist/docs/phoenix/clerk-sign-in.mdx +1 -1
  616. package/dist/docs/phoenix/components.mdx +6 -0
  617. package/dist/docs/phoenix/configurator-interface.mdx +374 -83
  618. package/dist/docs/phoenix/deployments.mdx +2 -6
  619. package/dist/docs/phoenix/domain-model.mdx +6 -0
  620. package/dist/docs/phoenix/finalization.mdx +1 -1
  621. package/dist/docs/phoenix/getting-started.mdx +6 -3
  622. package/dist/docs/phoenix/layout-slots.mdx +116 -0
  623. package/dist/docs/phoenix/localization.mdx +10 -6
  624. package/dist/docs/phoenix/migration-guide.mdx +24 -11
  625. package/dist/docs/phoenix/phoenix-cli.mdx +74 -21
  626. package/dist/docs/phoenix/project-structure.mdx +78 -36
  627. package/dist/docs/phoenix/quickstart.mdx +7 -7
  628. package/dist/docs/phoenix/sdk-builder-workflow.mdx +8 -8
  629. package/dist/docs/phoenix/testing.mdx +148 -0
  630. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  631. package/dist/docs/phoenix/webhooks.mdx +22 -5
  632. package/dist/docs/selection-and-highlight/hotspots.mdx +2 -0
  633. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -11
  634. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  635. package/dist/domain/admin-domain/index.js +1 -1
  636. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +1 -1
  637. package/dist/domain/application/application-config.d.ts +7 -3
  638. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  639. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  640. package/dist/domain/application/assistant/assistant-manifest.d.ts +9 -1
  641. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +38 -2
  642. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -1
  643. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  644. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  645. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  646. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  647. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  648. package/dist/domain/application/assistant/form/assistant-form-elements.d.ts +163 -0
  649. package/dist/domain/application/assistant/form/assistant-form-elements.js +1 -0
  650. package/dist/domain/application/assistant/form/assistant-resource-path.d.ts +10 -0
  651. package/dist/domain/application/assistant/form/assistant-resource-path.js +1 -0
  652. package/dist/domain/application/assistant/form/get-assistant-form-value-attribute.d.ts +6 -0
  653. package/dist/domain/application/assistant/form/get-assistant-form-value-attribute.js +1 -0
  654. package/dist/domain/application/assistant/form/index.d.ts +4 -0
  655. package/dist/domain/application/assistant/form/index.js +1 -0
  656. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  657. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  658. package/dist/domain/application/assistant/index.d.ts +7 -1
  659. package/dist/domain/application/assistant/index.js +1 -1
  660. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  661. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  662. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  663. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  664. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +48 -0
  665. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  666. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  667. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  668. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  669. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  670. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -1
  671. package/dist/domain/application/configurator-builder.d.ts +5 -2
  672. package/dist/domain/application/configurator-builder.js +1 -1
  673. package/dist/domain/application/create-initial-published-data.d.ts +5 -5
  674. package/dist/domain/application/index.d.ts +0 -1
  675. package/dist/domain/application/index.js +1 -1
  676. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +1 -1
  677. package/dist/domain/application/published-data/map-published-data.d.ts +7 -3
  678. package/dist/domain/core/component/domain-component-optic.d.ts +1 -2
  679. package/dist/domain/core/component/domain-component-optic.js +2 -2
  680. package/dist/domain/core/component/system-component-filter.d.ts +15 -2
  681. package/dist/domain/core/expression/constant-expressions.d.ts +16 -8
  682. package/dist/domain/core/expression/custom-expression.d.ts +16 -3
  683. package/dist/domain/core/invariant/custom-invariants.d.ts +6 -14
  684. package/dist/domain/core/invariant/invariants.d.ts +1 -4
  685. package/dist/domain/core/invariant/violation.d.ts +50 -2
  686. package/dist/domain/core/invariant/violation.js +1 -1
  687. package/dist/domain/core/model/model.d.ts +1 -1
  688. package/dist/domain/core/recipe/recipes.d.ts +18 -50
  689. package/dist/domain/core/recipe/recipes.js +1 -1
  690. package/dist/domain/core/relation/all-of-type-relation.d.ts +8 -21
  691. package/dist/domain/core/relation/all-of-type-relation.js +1 -1
  692. package/dist/domain/core/relation/direct-relation.d.ts +13 -24
  693. package/dist/domain/core/relation/index.d.ts +0 -1
  694. package/dist/domain/core/relation/indirect-relation.d.ts +12 -67
  695. package/dist/domain/core/relation/indirect-relation.js +1 -1
  696. package/dist/domain/core/relation/relation-factory.d.ts +19 -15
  697. package/dist/domain/core/relation/relation-factory.js +1 -1
  698. package/dist/domain/core/schema/extended-schema-validator.js +1 -1
  699. package/dist/domain/core/state/state.d.ts +1 -1
  700. package/dist/domain/domain-context/index.d.ts +1 -1
  701. package/dist/domain/domain-context/undo-system.d.ts +28 -1
  702. package/dist/domain/domain-context/undo-system.js +1 -1
  703. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  704. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  705. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  706. package/dist/domain/domain-runtime/access/types.js +1 -1
  707. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +14 -13
  708. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  709. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  710. package/dist/domain/domain-runtime/domain-runtime.d.ts +32 -16
  711. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +19 -0
  712. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  713. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  714. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  715. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  716. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  717. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  718. package/dist/domain/domain-runtime/errors/index.js +1 -0
  719. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  720. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  721. package/dist/domain/domain-runtime/index.d.ts +1 -0
  722. package/dist/domain/domain-runtime/index.js +1 -1
  723. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  724. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  725. package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
  726. package/dist/domain/domain-runtime/spec/index.js +1 -1
  727. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  728. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  729. package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +12 -11
  730. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -1
  731. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +2 -2
  732. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -1
  733. package/dist/domain/domain-runtime/spec/module-checks/project-modules.d.ts +8 -1
  734. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -1
  735. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -1
  736. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -1
  737. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +7 -7
  738. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -1
  739. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +2 -2
  740. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -1
  741. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  742. package/dist/domain/domain-runtime/spec/types.d.ts +2 -0
  743. package/dist/domain/extensions/attribute-switch.d.ts +1 -1
  744. package/dist/domain/extensions/attribute-switch.js +1 -1
  745. package/dist/domain/extensions/canvas-config.d.ts +1 -1
  746. package/dist/domain/extensions/client-side-image.d.ts +2 -2
  747. package/dist/domain/extensions/client-side-image.js +1 -1
  748. package/dist/domain/extensions/common/angle-indicator-schema.d.ts +2 -2
  749. package/dist/domain/extensions/common/dimension-indicator-schema.d.ts +2 -2
  750. package/dist/domain/extensions/editable-angle-indicator.d.ts +1 -1
  751. package/dist/domain/extensions/editable-distance-dimension-indicator.d.ts +1 -1
  752. package/dist/domain/extensions/editable-offset-indicator.d.ts +1 -1
  753. package/dist/domain/extensions/editable-offset-indicator.js +1 -1
  754. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -1
  755. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -1
  756. package/dist/domain/extensions/horizontal-tabs.d.ts +2 -2
  757. package/dist/domain/extensions/list-selector-dimension-indicator.d.ts +1 -1
  758. package/dist/domain/extensions/navigation-steps.d.ts +2 -2
  759. package/dist/domain/extensions/offset-indicator.js +1 -1
  760. package/dist/domain/extensions/rotation-handle.d.ts +2 -2
  761. package/dist/domain/extensions/save-template-thumbnail.d.ts +2 -2
  762. package/dist/domain/extensions/save-template-thumbnail.js +1 -1
  763. package/dist/domain/extensions/scene-entity-animation.js +1 -1
  764. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  765. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +18 -9
  766. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  767. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  768. package/dist/domain/mocks/create-mock-domain.js +1 -1
  769. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  770. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  771. package/dist/domain/mocks/create-test-application-config.js +1 -0
  772. package/dist/domain/mocks/index.d.ts +1 -0
  773. package/dist/domain/mocks/index.js +1 -1
  774. package/dist/domain/projections/blender-projections/camera.d.ts +1 -1
  775. package/dist/domain/system-components/application-config.d.ts +2 -2
  776. package/dist/domain/system-components/child-entity-selection.js +1 -1
  777. package/dist/domain/system-components/collision-box-geometry.d.ts +4 -2
  778. package/dist/domain/system-components/collision-geometry.d.ts +4 -2
  779. package/dist/domain/system-components/collision-point-geometry.d.ts +4 -2
  780. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  781. package/dist/domain/system-components/common/recipes.d.ts +21 -3
  782. package/dist/domain/system-components/common/recipes.js +1 -1
  783. package/dist/domain/system-components/common/scene-entity-control-schema.d.ts +3 -0
  784. package/dist/domain/system-components/common/scene-entity-control-schema.js +1 -1
  785. package/dist/domain/system-components/constraint.d.ts +10 -23
  786. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  787. package/dist/domain/system-components/drag-handle.js +1 -1
  788. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  789. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  790. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  791. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  792. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -1
  793. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  794. package/dist/domain/system-components/material-swatch.js +1 -1
  795. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  796. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  797. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  798. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  799. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  800. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  801. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  802. package/dist/domain/utils/eval-cache.d.ts +1 -1
  803. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  804. package/dist/editor/Editor.d.ts +7 -0
  805. package/dist/editor/Editor.js +1 -1
  806. package/dist/editor/domain-editors/use-implementation-files.d.ts +1 -2
  807. package/dist/editor/mocks/CreateMockYaml.js +2 -2
  808. package/dist/editor/mocks/EditorMockContext.d.ts +2 -0
  809. package/dist/editor/mocks/EditorMockContext.js +1 -1
  810. package/dist/globals/index.d.ts +2 -0
  811. package/dist/i18n/locales/cs/messages.js +1 -1
  812. package/dist/i18n/locales/da/messages.js +1 -1
  813. package/dist/i18n/locales/de/messages.js +1 -1
  814. package/dist/i18n/locales/de-AT/messages.js +1 -1
  815. package/dist/i18n/locales/en/messages.js +1 -1
  816. package/dist/i18n/locales/en-AU/messages.js +1 -1
  817. package/dist/i18n/locales/en-GB/messages.js +1 -1
  818. package/dist/i18n/locales/es/messages.js +1 -1
  819. package/dist/i18n/locales/fr/messages.js +1 -1
  820. package/dist/i18n/locales/hu/messages.js +1 -1
  821. package/dist/i18n/locales/it/messages.js +1 -1
  822. package/dist/i18n/locales/nl/messages.js +1 -1
  823. package/dist/i18n/locales/pl/messages.js +1 -1
  824. package/dist/i18n/locales/pt/messages.js +1 -1
  825. package/dist/i18n/locales/ro/messages.js +1 -1
  826. package/dist/i18n/locales/sk/messages.js +1 -1
  827. package/dist/i18n/locales/tr/messages.js +1 -1
  828. package/dist/legacy/domain-cli/gen/configurator-builder.js +13 -12
  829. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -1
  830. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  831. package/dist/legacy/domain-cli/gen/invariants.js +3 -4
  832. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  833. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  834. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  835. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +160 -148
  836. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  837. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  838. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  839. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +7 -1
  840. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +15 -13
  841. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +15 -14
  842. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +14 -12
  843. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +14 -13
  844. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +13 -11
  845. package/dist/phoenix/application-spec/application-spec-builder.d.ts +0 -2
  846. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  847. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +0 -2
  848. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  849. package/dist/phoenix/application-spec/generate-application-spec-story.js +2 -2
  850. package/dist/phoenix/application-spec/generate-project-files.d.ts +0 -2
  851. package/dist/phoenix/application-spec/project-files.js +1 -1
  852. package/dist/phoenix/bin.d.ts +2 -0
  853. package/dist/phoenix/bin.js +2 -0
  854. package/dist/phoenix/check-configs/built-in-eslint-config.d.ts +9 -0
  855. package/dist/phoenix/check-configs/built-in-eslint-config.js +1 -0
  856. package/dist/phoenix/check-configs/eslint-config.d.ts +10 -0
  857. package/dist/phoenix/check-configs/eslint-config.js +1 -0
  858. package/dist/phoenix/check-configs/index.d.ts +8 -0
  859. package/dist/phoenix/check-configs/index.js +1 -0
  860. package/dist/phoenix/check-configs/typescript-project.d.ts +5 -0
  861. package/dist/phoenix/check-configs/typescript-project.js +1 -0
  862. package/dist/phoenix/cli.d.ts +0 -1
  863. package/dist/phoenix/cli.js +1 -2
  864. package/dist/phoenix/commands/build.js +1 -1
  865. package/dist/phoenix/commands/check.js +1 -1
  866. package/dist/phoenix/commands/clean.js +1 -1
  867. package/dist/phoenix/commands/deploy.js +2 -2
  868. package/dist/phoenix/commands/deps/deps.d.ts +73 -0
  869. package/dist/phoenix/commands/deps/deps.js +3 -0
  870. package/dist/phoenix/commands/deps/index.d.ts +1 -0
  871. package/dist/phoenix/commands/deps/index.js +1 -0
  872. package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
  873. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
  874. package/dist/phoenix/commands/dev.js +5 -5
  875. package/dist/phoenix/commands/fix.js +1 -1
  876. package/dist/phoenix/commands/index.d.ts +1 -0
  877. package/dist/phoenix/commands/index.js +1 -1
  878. package/dist/phoenix/commands/init.d.ts +17 -5
  879. package/dist/phoenix/commands/init.js +1 -1
  880. package/dist/phoenix/commands/link.js +1 -1
  881. package/dist/phoenix/commands/prettier.js +1 -1
  882. package/dist/phoenix/commands/sync.js +1 -1
  883. package/dist/phoenix/commands/unlink.js +1 -1
  884. package/dist/phoenix/services/application-spec-project-watcher.d.ts +2 -2
  885. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  886. package/dist/phoenix/services/lingui.d.ts +8 -0
  887. package/dist/phoenix/services/lingui.js +1 -1
  888. package/dist/phoenix/services/source-archive.d.ts +1 -0
  889. package/dist/phoenix/services/source-archive.js +1 -1
  890. package/dist/phoenix/services/swc.js +1 -1
  891. package/dist/phoenix/services/vite-config.js +1 -1
  892. package/dist/phoenix/utils/git/index.d.ts +1 -0
  893. package/dist/phoenix/utils/git/index.js +1 -0
  894. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  895. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  896. package/dist/phoenix/utils/index.d.ts +5 -2
  897. package/dist/phoenix/utils/index.js +1 -1
  898. package/dist/phoenix/utils/node-version/index.d.ts +1 -0
  899. package/dist/phoenix/utils/node-version/index.js +1 -0
  900. package/dist/phoenix/utils/node-version/supported-node-version.d.ts +12 -0
  901. package/dist/phoenix/utils/node-version/supported-node-version.js +4 -0
  902. package/dist/phoenix/utils/package-info.d.ts +0 -9
  903. package/dist/phoenix/utils/package-info.js +1 -1
  904. package/dist/phoenix/utils/package-manager/index.d.ts +2 -0
  905. package/dist/phoenix/utils/package-manager/index.js +1 -0
  906. package/dist/phoenix/utils/package-manager/package-manager-commands.d.ts +19 -0
  907. package/dist/phoenix/utils/package-manager/package-manager-commands.js +1 -0
  908. package/dist/phoenix/utils/package-manager/pnpm-project.d.ts +9 -0
  909. package/dist/phoenix/utils/package-manager/pnpm-project.js +1 -0
  910. package/dist/phoenix/utils/run-command.d.ts +11 -0
  911. package/dist/phoenix/utils/run-command.js +1 -1
  912. package/dist/phoenix/utils/sdk-tool/index.d.ts +1 -0
  913. package/dist/phoenix/utils/sdk-tool/index.js +1 -0
  914. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.d.ts +15 -0
  915. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.js +1 -0
  916. package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.d.ts +6 -0
  917. package/dist/react-sdk/application-runtime/common-services/analytics/frontend-analytics.js +1 -0
  918. package/dist/react-sdk/application-runtime/common-services/analytics/index.d.ts +1 -0
  919. package/dist/react-sdk/application-runtime/common-services/analytics/index.js +1 -1
  920. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +2 -0
  921. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  922. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  923. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +33 -16
  924. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  925. package/dist/react-sdk/domain-application-context/DomainLifecycleBoundary.js +1 -1
  926. package/dist/react-sdk/domain-context/common-hooks/index.d.ts +8 -0
  927. package/dist/react-sdk/domain-context/common-hooks/index.js +1 -0
  928. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +41 -0
  929. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  930. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +4 -4
  931. package/dist/react-sdk/domain-context/component-hooks/index.d.ts +1 -0
  932. package/dist/react-sdk/domain-context/component-hooks/index.js +1 -0
  933. package/dist/react-sdk/domain-context/component-hooks/use-component.js +1 -1
  934. package/dist/react-sdk/domain-context/entity-hooks/use-domain-entity-state.js +1 -1
  935. package/dist/react-sdk/domain-context/entity-hooks/use-entity-price.js +1 -1
  936. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-id.js +1 -1
  937. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-state.js +1 -1
  938. package/dist/react-sdk/domain-context/index.d.ts +8 -1
  939. package/dist/react-sdk/domain-context/index.js +1 -1
  940. package/dist/react-sdk/domain-context/system-hooks/composition-hooks.js +1 -1
  941. package/dist/react-sdk/domain-context/system-hooks/dimension-hooks.js +1 -1
  942. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.d.ts +8 -0
  943. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.js +1 -0
  944. package/dist/react-sdk/domain-context/system-hooks/hover-hooks.js +1 -1
  945. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.d.ts +24 -0
  946. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.js +1 -0
  947. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +11 -0
  948. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  949. package/dist/react-sdk/domain-context/system-hooks/selection-hooks.js +1 -1
  950. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.d.ts +32 -0
  951. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.js +1 -0
  952. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.d.ts +57 -0
  953. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.js +1 -0
  954. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.d.ts +61 -0
  955. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.js +1 -0
  956. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.d.ts +20 -0
  957. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -0
  958. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  959. package/dist/react-sdk/elements/configurator-error-page-props.d.ts +20 -0
  960. package/dist/react-sdk/elements/configurator-error-page-props.js +1 -0
  961. package/dist/react-sdk/elements/index.d.ts +1 -0
  962. package/dist/react-sdk/handlers/FinalizeActionRunner.d.ts +13 -0
  963. package/dist/react-sdk/handlers/FinalizeActionRunner.js +1 -0
  964. package/dist/react-sdk/handlers/FinalizeActionsHost.d.ts +10 -0
  965. package/dist/react-sdk/handlers/FinalizeActionsHost.js +1 -0
  966. package/dist/react-sdk/handlers/FinalizeActionsProvider.d.ts +11 -0
  967. package/dist/react-sdk/handlers/FinalizeActionsProvider.js +1 -0
  968. package/dist/react-sdk/handlers/finalize-actions-context.d.ts +6 -0
  969. package/dist/react-sdk/handlers/finalize-actions-context.js +1 -0
  970. package/dist/react-sdk/handlers/finalize-actions-store.d.ts +23 -0
  971. package/dist/react-sdk/handlers/finalize-actions-store.js +1 -0
  972. package/dist/react-sdk/handlers/index.d.ts +6 -0
  973. package/dist/react-sdk/handlers/index.js +1 -1
  974. package/dist/react-sdk/handlers/use-finalize-action.d.ts +32 -0
  975. package/dist/react-sdk/handlers/use-finalize-action.js +1 -0
  976. package/dist/react-sdk/handlers/use-finalize-actions.d.ts +53 -0
  977. package/dist/react-sdk/handlers/use-finalize-actions.js +1 -0
  978. package/dist/react-sdk/index.d.ts +2 -0
  979. package/dist/react-sdk/index.js +1 -1
  980. package/dist/react-sdk/loading-state/loading-state-manager.d.ts +5 -0
  981. package/dist/react-sdk/loading-state/loading-state-manager.js +1 -1
  982. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.d.ts +25 -0
  983. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.js +1 -0
  984. package/dist/react-sdk/responsive-state/canvas-padding.d.ts +14 -0
  985. package/dist/react-sdk/responsive-state/canvas-padding.js +1 -0
  986. package/dist/react-sdk/responsive-state/index.d.ts +5 -0
  987. package/dist/react-sdk/responsive-state/index.js +1 -0
  988. package/dist/react-sdk/responsive-state/responsive-state-manager.d.ts +111 -0
  989. package/dist/react-sdk/responsive-state/responsive-state-manager.js +1 -0
  990. package/dist/react-sdk/responsive-state/use-responsive-state-manager.d.ts +10 -0
  991. package/dist/react-sdk/responsive-state/use-responsive-state-manager.js +1 -0
  992. package/dist/react-sdk/responsive-state/use-responsive-state.d.ts +11 -0
  993. package/dist/react-sdk/responsive-state/use-responsive-state.js +1 -0
  994. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.d.ts +36 -0
  995. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.js +1 -0
  996. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.d.ts +44 -0
  997. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.js +1 -0
  998. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.d.ts +38 -0
  999. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.js +1 -0
  1000. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.d.ts +30 -0
  1001. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.js +1 -0
  1002. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.d.ts +30 -0
  1003. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.js +1 -0
  1004. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.d.ts +9 -0
  1005. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.js +1 -0
  1006. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.d.ts +9 -0
  1007. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.js +1 -0
  1008. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.d.ts +10 -0
  1009. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.js +1 -0
  1010. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.d.ts +9 -0
  1011. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.js +1 -0
  1012. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.d.ts +9 -0
  1013. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.js +1 -0
  1014. package/dist/react-sdk/scene-control-elements/index.d.ts +11 -0
  1015. package/dist/react-sdk/scene-control-elements/index.js +1 -0
  1016. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.d.ts +5 -0
  1017. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.js +1 -0
  1018. package/dist/react-sdk/session/NotAuthenticatedPage.d.ts +4 -0
  1019. package/dist/react-sdk/session/NotAuthenticatedPage.js +1 -1
  1020. package/dist/ui-sdk/icons/__generated/Lightbulb.d.ts +3 -0
  1021. package/dist/ui-sdk/icons/__generated/Lightbulb.js +1 -0
  1022. package/dist/ui-sdk/icons/__generated/XCircle.d.ts +3 -0
  1023. package/dist/ui-sdk/icons/__generated/XCircle.js +1 -0
  1024. package/dist/ui-sdk/icons/__generated/index.d.ts +4 -0
  1025. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  1026. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  1027. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +9 -0
  1028. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.js +1 -1
  1029. package/dist/ui-sdk/responsive-application/index.d.ts +1 -0
  1030. package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +57 -0
  1031. package/dist/ui-sdk/responsive-application/responsive-state-store.js +1 -0
  1032. package/dist/ui-sdk/responsive-application/use-store-responsive-info.d.ts +7 -0
  1033. package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -0
  1034. package/dist/ui-sdk/theme/types.d.ts +1 -1
  1035. package/dist/webhook/builders/webhook-builder.js +1 -1
  1036. package/package.json +48 -36
  1037. package/schema/domain-spec.json +1201 -217
  1038. package/dist/application-spec/generate-application/code/templates/nvmrc.d.ts +0 -1
  1039. package/dist/application-spec/generate-application/code/templates/nvmrc.js +0 -2
  1040. package/dist/application-spec/generate-application/code/templates/package-json.d.ts +0 -10
  1041. package/dist/application-spec/generate-application/code/templates/package-json.js +0 -1
  1042. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  1043. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  1044. package/dist/application-spec/generate-application/code/templates/webhook-implementation.d.ts +0 -1
  1045. package/dist/application-spec/generate-application/code/templates/webhook-implementation.js +0 -7
  1046. package/dist/configurator/common/frontend-analytics.js +0 -1
  1047. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.d.ts +0 -4
  1048. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.js +0 -1
  1049. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.d.ts +0 -4
  1050. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.js +0 -1
  1051. package/dist/domain/application/resource-builder.d.ts +0 -13
  1052. package/dist/domain/application/resource-builder.js +0 -1
  1053. package/dist/domain/core/relation/relation-implementation.d.ts +0 -7
  1054. package/dist/domain/domain-runtime/spec/invariant-builder.d.ts +0 -26
  1055. package/dist/domain/domain-runtime/spec/invariant-builder.js +0 -1
  1056. package/dist/phoenix/commands/generate-project-files.d.ts +0 -6
  1057. package/dist/phoenix/commands/generate-project-files.js +0 -1
  1058. /package/dist/{domain/core/relation/relation-implementation.js → application-spec/core/expressions/relation-expression-params.js} +0 -0
  1059. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  1060. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  1061. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
@@ -1,17 +1,10 @@
1
- import{jsx as a,jsxs as t,Fragment as o}from"react/jsx-runtime";import{keyframes as e,paperClasses as r,snackbarClasses as d,styled as i,useTheme as n,useThemeProps as s}from"@mui/material";import{AnimatePresence as l,motion as p}from"motion/react";import{useCallback as b,useRef as u}from"react";import{useAccessService as c,useIsFullscreenActive as m}from"#package/react-sdk";import{attrf as h,commonStyles as y,numToPx as g,useInvalidateScrollTimeline as f,useIsEmpty as x,useResponsive as k}from"#package/ui-sdk";import{usePreview as v}from"../../../configurator-context/index.js";import{ASSISTANT_PANEL_SLOT as S,AssistantPanel as E,useIsAssistantPanelOpen as w}from"../../assistant/index.js";import{LayoutSlots as R}from"../slots/index.js";import{DesktopPreview as $}from"./DesktopPreview.js";import{useSceneSafeArea as B}from"./use-scene-safe-area.js";let C="PhxDesktopSidebar",D="minimalist",T="split",I="visible",A="hidden",P="assistant",F={Root:i("div",{name:C,slot:"root",shouldForwardProp:a=>"ownerState"!==a})(({ownerState:a})=>[`
2
- --phx-sidebar-background: ${a.background};
3
- --phx-sidebar-border: ${a.border};
4
- --phx-sidebar-filter: ${a.filter};
5
- --phx-sidebar-padding: ${a.padding};
6
- --phx-sidebar-radius: ${a.borderRadius}px;
7
- --phx-sidebar-scrollable-indicator-background: ${a.scrollableIndicatorBackground};
8
- `,{borderRadius:"var(--phx-sidebar-radius)",display:"grid",filter:"var(--phx-sidebar-filter)",gridTemplateRows:"min-content minmax(0, 1fr) min-content",inlineSize:a.width,position:"relative","& > *":{pointerEvents:"auto"},"@container style(--inspect: on)":{"--phx-sidebar-background":"hsl(from gold h s l / 50%)"},[`&[data-sidebar*="${I}"]`]:{opacity:1},[`&[data-sidebar*="${A}"]`]:{opacity:0},[`&[data-sidebar*="${P}"] > :not([data-sidebar="${S}"])`]:{visibility:"hidden"}}]),Tabs:i("div",{name:C,slot:"tabs",shouldForwardProp:a=>"ownerState"!==a})(({theme:{spacing:a}})=>({insetBlockStart:0,insetInlineEnd:"100%",maxInlineSize:150,paddingInlineEnd:a(2),position:"absolute","&:is(:empty)":{padding:0},[`.${r.root}`]:{boxShadow:"none"}})),Header:i("header",{name:C,slot:"header",shouldForwardProp:a=>"ownerState"!==a})({background:"var(--phx-sidebar-background)",border:"var(--phx-sidebar-border)",borderBlockEnd:0,borderStartStartRadius:"inherit",borderStartEndRadius:"inherit",paddingBlock:"calc(0.6 * var(--phx-sidebar-padding))",paddingInline:"var(--phx-sidebar-padding)","&:is(:empty)":{border:0,paddingBlock:0}}),Body:i("div",{name:C,slot:"body",shouldForwardProp:a=>"ownerState"!==a})(({ownerState:a})=>({background:"var(--phx-sidebar-background)",border:"var(--phx-sidebar-border)",borderBlockStart:0,borderBlockEnd:0,display:"grid",position:"relative",'[data-layout*="slot[sidebar]"]:where(:has([data-sidebar="slot[header]"])) &':{...a.isHeaderEmpty&&{borderBlockStart:"var(--phx-sidebar-border)",borderStartStartRadius:"inherit",borderStartEndRadius:"inherit",paddingBlockStart:"var(--phx-sidebar-padding)"}},'&:has([data-sidebar*="slot[content]"]:empty)':{...a.isContentEmpty&&{paddingBlock:0}},[`[data-sidebar*="${D}"] &`]:{...a.isContentEmpty&&{border:0}},[`[data-sidebar*="${T}"] &`]:{borderBlockEnd:"var(--phx-sidebar-border)",borderEndStartRadius:"inherit",borderEndEndRadius:"inherit",paddingBlockEnd:"var(--phx-sidebar-padding)"}})),Content:i("div",{name:C,slot:"content",shouldForwardProp:a=>"ownerState"!==a})(({ownerState:a,theme:{spacing:t}})=>({...y.layout.normalizeScrollableContainer,alignContent:"start",borderRadius:"inherit",display:"grid",gap:t(3),padding:"var(--phx-sidebar-padding)","@supports (animation-timeline: scroll())":{"&[data-scrollable]":{scrollTimeline:"--phx-sidebar-timeline y","&::after, &::before":{animation:`${y.keyframes.fadeIn} both`,animationTimeline:"--phx-sidebar-timeline",background:"var(--phx-sidebar-scrollable-indicator-background)",backgroundRepeat:"no-repeat",content:'""',display:"block",insetInline:0,opacity:0,pointerEvents:"none",position:"absolute",zIndex:1},"&::after":{animationDirection:"reverse",animationRange:`calc(100% - ${t(4)}) 100%`,borderEndStartRadius:"inherit",borderEndEndRadius:"inherit",insetBlockStart:"50%",insetBlockEnd:0,scale:"1 -1"},"&::before":{animationRange:`0 ${t(4)}`,borderStartStartRadius:"inherit",borderStartEndRadius:"inherit",insetBlockStart:0,insetBlockEnd:"50%"}}},"&:is(:empty)":{paddingBlock:0},'[data-layout*="slot[sidebar]"] &':{...a.isHeaderEmpty&&{paddingBlockStart:0,"&::before":{borderStartStartRadius:0,borderStartEndRadius:0,insetBlockStart:"var(--phx-sidebar-padding)"}}},[`[data-sidebar*="${T}"] &`]:{paddingBlockEnd:0,"&::after":{borderEndStartRadius:0,borderEndEndRadius:0,insetBlockEnd:"var(--phx-sidebar-padding)"}}})),Footer:i("footer",{name:C,slot:"footer",shouldForwardProp:a=>"ownerState"!==a})(({ownerState:a,theme:{palette:t,spacing:o}})=>({background:"var(--phx-sidebar-background)",border:"var(--phx-sidebar-border)",borderBlockStart:`1px solid ${t.divider}`,borderEndStartRadius:"inherit",borderEndEndRadius:"inherit",padding:"var(--phx-sidebar-padding)","&:is(:empty)":{border:0,paddingBlock:0},[`[data-sidebar*="${D}"] &`]:{...a.isContentEmpty&&{borderBlockStart:"var(--phx-sidebar-border)",borderStartStartRadius:"inherit",borderStartEndRadius:"inherit"}},[`[data-sidebar*="${T}"] &`]:{borderBlockStart:"var(--phx-sidebar-border)",borderStartStartRadius:"inherit",borderStartEndRadius:"inherit",marginBlockStart:o(2)}}))};export const PhxDesktopLayoutName="PhxDesktopLayout";let j="PhxDesktopLayout",z=i(p.div,{name:j,slot:"root",shouldForwardProp:a=>"ownerState"!==a})(({ownerState:a,theme:{spacing:t}})=>{let o=e({"0%":{marginInlineEnd:0},"100%":{marginInlineEnd:t(-2)}});return[`
1
+ import{jsx as t,jsxs as a,Fragment as o}from"react/jsx-runtime";import{keyframes as e,snackbarClasses as i,styled as r,useThemeProps as d}from"@mui/material";import{AnimatePresence as l,motion as s}from"motion/react";import{useCallback as n}from"react";import{useAccessService as u,useIsFullscreenActive as m}from"#package/react-sdk";import{attrf as p,commonStyles as y,numToPx as c,useResponsive as b}from"#package/ui-sdk";import{usePreview as h}from"../../../configurator-context/index.js";import{useIsAssistantPanelOpen as f}from"../../assistant/index.js";import{SidebarKeys as g}from"../sidebar-keys/index.js";import{LayoutSlots as x}from"../slots/index.js";import{DesktopPreview as v}from"./DesktopPreview.js";import{useLayoutSceneSafeArea as k}from"./use-layout-scene-safe-area.js";export const PhxDesktopLayoutName="PhxDesktopLayout";let w="PhxDesktopLayout",C=r(s.div,{name:w,slot:"root",shouldForwardProp:t=>"ownerState"!==t})(({ownerState:t,theme:{spacing:a}})=>{let o=e({"0%":{marginInlineEnd:0},"100%":{marginInlineEnd:a(-2)}});return[`
9
2
  --inspect: off; // 🕹️ inspection mode toggle
10
3
 
11
- --phx-layout-sidebar-track-size: ${g(a.sidebarWidth)};
4
+ --phx-layout-sidebar-track-size: ${c(t.sidebarWidth)};
12
5
 
13
- --phx-layout-gap: ${t(2)};
14
- --phx-layout-gutter: ${t(3)};
6
+ --phx-layout-gap: ${a(2)};
7
+ --phx-layout-gutter: ${a(3)};
15
8
  `,{display:"grid",gridTemplateColumns:`
16
9
  [full-start]
17
10
  var(--phx-layout-gutter)
@@ -38,12 +31,4 @@ import{jsx as a,jsxs as t,Fragment as o}from"react/jsx-runtime";import{keyframes
38
31
  [bottom-start]
39
32
  min-content
40
33
  [bottom-end full-end]
41
- `,inset:0,isolation:"isolate",pointerEvents:"none",position:"absolute","@container style(--inspect: on)":{'& > *, & > * > *, [data-layout*="slot[body.footer]"] > *':{outline:"2px solid hsl(from tomato h s l / 50%)"}},'[data-layout*="interactive"]':{"& > *":{pointerEvents:"auto"}},'[data-layout*="slot[header]"]':{gridArea:"top-start / main-start / top-end / sidebar-end"},'[data-layout*="slot[body]"]':{containerType:"size",display:"grid",gridArea:"main",gridRowStart:"top-end",gridTemplateRows:"min-content 1fr min-content"},'[data-layout*="slot[body.top]"]':{gridArea:"1 / 1 / 2 / -1","& > *":{...y.transition.fadeIn}},'[data-layout*="slot[body.safeSceneArea]"]':{gridArea:"1 / 1 / 3 / -1","@container style(--inspect: on)":{background:"hsl(from lime h s l / 50%)"}},'[data-layout*="slot[body.bottom]"]':{alignItems:"end",display:"grid",gap:t(2),gridArea:"3 / 1 / 4 / -1",gridTemplateColumns:"minmax(0, auto) minmax(60px, 1fr)",justifyContent:"start",position:"relative",'&:has([data-layout="slot[body.viewControls]"]:empty)':{gap:0,gridTemplateColumns:"repeat(2, auto)"}},'[data-layout="slot[body.toolbar]"]':{animation:`${o} auto linear both`,animationTimeline:"scroll(self inline)",display:"flex",margin:t(-2),overflowX:"scroll",overscrollBehavior:"contain",padding:t(2),scrollbarWidth:"none","&::after":{content:'""'}},'[data-layout="slot[body.toolControls]"]':{insetBlockEnd:`calc(100% + ${t(6)})`,position:"absolute","& > *":{...y.transition.fadeIn,transitionDuration:"300ms"}},'[data-layout="slot[body.viewControls]"]':{},'[data-layout="slot[body.logo]"], [data-layout="slot[body.sideEffects]"]':{insetBlockEnd:`calc(100% + ${t(2)})`,position:"absolute"},'[data-layout="slot[body.sideEffects]"]':{insetInline:0,[`.${d.root}`]:{inset:"unset",insetBlockEnd:0,position:"absolute"}},'[data-layout*="slot[sidebar]"]':{display:"grid",gridArea:"top-start / sidebar-start / main-end / sidebar-end",gridTemplateRows:"minmax(0, auto)"},'[data-layout*="slot[footer]"]':{display:"grid",gap:"var(--phx-layout-gap)",gridArea:"bottom-start / full-start / bottom-end / full-end"},'&:has([data-header*="fixed"])':{'[data-layout*="slot[header]"]':{gridArea:"full-start / full-start / top-end / full-end"},'[data-layout*="slot[body]"]':{gridRowStart:"main-start"},'[data-layout*="slot[sidebar]"]':{gridRow:"main-start / main-end"}},'&:has([data-header*="floating"])':{'[data-layout*="slot[header]"]':{gridColumnEnd:"main-end"}},[`&:has([data-sidebar*="${D}"])`]:{'[data-layout*="slot[sidebar]"]':{alignContent:"end",gridRow:"main-start / main-end"}},[`&:has([data-header*="floating"]):has([data-sidebar*="${D}"])`]:{'[data-layout*="slot[header]"]':{gridColumnEnd:"sidebar-end"},'[data-layout*="slot[sidebar]"]':{gridRowStart:"top-end"}},[`&:has([data-sidebar*="${P}"])`]:{'[data-layout*="slot[sidebar]"]':{alignContent:"stretch"}},[`&:has([data-sidebar*="${A}"])`]:{"--phx-layout-gap":0,"--phx-layout-sidebar-track-size":0,'[data-layout*="slot[sidebar]"]':{overflow:"hidden"}}}]}),H=i("div")({gridArea:"1 / 1 / -1 / -1"});export const DesktopLayout=()=>{let e=u(null),r=u(null),{palette:d,shape:i,spacing:p}=n(),{sidebarWidth:y="clamp(360px, 30cqi, 400px)"}=s({props:{},name:j}),{background:g=d.background.paper,border:S=0,borderRadius:L=i.sidebarBorderRadius??i.borderRadius,filter:W=`
42
- drop-shadow(0 1px 1.5px hsl(from ${d.common.black} h s l / 12%))
43
- drop-shadow(0 1px 0.5px hsl(from ${d.common.black} h s l / 14%))
44
- drop-shadow(0 2px 0.5px hsl(from ${d.common.black} h s l / 20%))
45
- `,padding:q=p(2.5),scrollableIndicatorBackground:M=`linear-gradient(
46
- 180deg,
47
- hsl(from black h s l / 12%),
48
- hsl(from black h s l / 0%) 8px
49
- )`}=s({props:{},name:C}),{hasMiniSidebar:N,hasSplitSidebar:V}=R.useSidebarContent(),X=w(),{accessInfo:G}=c(),J=m(),{isPreview:K,isHidden:O}=v(),Q=!O&&!K,U=!J,{setCanvasPadding:Y,setAnimating:Z}=k(),{containerRef:_,safeAreaRef:aa,update:at}=B(Y,N&&!X,Q),ao=b(()=>{Z(!0)},[Z]),ae=b(()=>{Z(!1),at()},[Z,at]),ar=Q&&U,ad=x(e,{disabled:!ar}),ai=x(r,{disabled:!ar});f(r,{disabled:!ar});let an={background:g,border:S,borderRadius:L,filter:W,isHeaderEmpty:ad,isContentEmpty:ai,padding:q,scrollableIndicatorBackground:M,width:y};return a(o,{children:t(l,{mode:"wait",children:[!O&&K&&a($,{},"preview-layout"),Q&&t(z,{layoutId:"ui-layout",layout:!0,ownerState:{sidebarWidth:y},"data-layout":h({state:{initial:!J,fullscreen:J}}),onLayoutAnimationStart:ao,onLayoutAnimationComplete:ae,children:[a(H,{ref:_}),a("header",{"data-layout":"slot[header]",children:a(R.DesktopHeader,{})}),t("main",{"data-layout":"slot[body]",children:[a("div",{"data-layout":"slot[body.top] interactive",children:a(R.DesktopCallToAction,{})}),a("div",{ref:aa,"data-layout":"slot[body.safeSceneArea]"}),t("div",{"data-layout":"slot[body.bottom] interactive",children:[a("div",{"data-layout":"slot[body.toolbar]",children:a(R.DesktopToolbar,{})}),a("div",{"data-layout":"slot[body.toolControls]",children:!J&&a(R.DesktopToolControls,{})}),a("div",{"data-layout":"slot[body.viewControls]",children:a(R.DesktopViewControls,{})}),a("div",{"data-layout":"slot[body.logo]",children:a(R.DesktopPoweredBy,{})}),a("div",{"data-layout":"slot[body.sideEffects]",children:a(R.DesktopSnackbarsRoot,{})})]})]}),a("aside",{"data-layout":"slot[sidebar]",children:t(F.Root,{ownerState:an,"data-sidebar":h({variant:{[`${D}`]:N,[`${T}`]:V},state:{[`${I}`]:U,[`${A}`]:!U,[`${P}`]:X}}),inert:U?void 0:"",children:[a(F.Tabs,{ownerState:an,"data-sidebar":"slot[tabs]",children:a(R.DesktopSidebarTabs,{})}),a(F.Header,{ref:e,ownerState:an,"data-sidebar":"slot[header]",children:a(R.DesktopSidebarBackButton,{})}),a(F.Body,{ownerState:an,"data-sidebar":"slot[body]",children:a(F.Content,{ref:r,ownerState:an,"data-sidebar":"slot[content]",children:a(R.DesktopSidebarContent,{})})}),a(F.Footer,{ownerState:an,"data-sidebar":"slot[footer]",children:a(R.DesktopSidebarFooter,{})}),a(E,{})]})}),t("footer",{"data-layout":"slot[footer] interactive",children:[G.viewMode&&!J&&a(R.DesktopReadonlyBanner,{}),a(R.DesktopFooter,{})]})]},"interface-layout")]})})};
34
+ `,inset:0,isolation:"isolate",pointerEvents:"none",position:"absolute","@container style(--inspect: on)":{'& > *, & > * > *, [data-layout*="slot[body.footer]"] > *':{outline:"2px solid hsl(from tomato h s l / 50%)"}},'[data-layout*="interactive"]':{"& > *":{pointerEvents:"auto"}},'[data-layout*="slot[header]"]':{gridArea:"top-start / main-start / top-end / sidebar-end"},'[data-layout*="slot[body]"]':{containerType:"size",display:"grid",gridArea:"main",gridRowStart:"top-end",gridTemplateRows:"min-content 1fr min-content"},'[data-layout*="slot[body.top]"]':{gridArea:"1 / 1 / 2 / -1","& > *":{...y.transition.fadeIn}},'[data-layout*="slot[body.safeSceneArea]"]':{gridArea:"1 / 1 / 3 / -1","@container style(--inspect: on)":{background:"hsl(from lime h s l / 50%)"}},'[data-layout*="slot[body.bottom]"]':{alignItems:"end",display:"grid",gap:a(2),gridArea:"3 / 1 / 4 / -1",gridTemplateColumns:"minmax(0, auto) minmax(60px, 1fr)",justifyContent:"start",position:"relative",'&:has([data-layout="slot[body.viewControls]"]:empty)':{gap:0,gridTemplateColumns:"repeat(2, auto)"}},'[data-layout="slot[body.toolbar]"]':{animation:`${o} auto linear both`,animationTimeline:"scroll(self inline)",display:"flex",margin:a(-2),overflowX:"scroll",overscrollBehavior:"contain",padding:a(2),scrollbarWidth:"none","&::after":{content:'""'}},'[data-layout="slot[body.toolControls]"]':{insetBlockEnd:`calc(100% + ${a(6)})`,position:"absolute","& > *":{...y.transition.fadeIn,transitionDuration:"300ms"}},'[data-layout="slot[body.viewControls]"]':{},'[data-layout="slot[body.logo]"], [data-layout="slot[body.sideEffects]"]':{insetBlockEnd:`calc(100% + ${a(2)})`,position:"absolute"},'[data-layout="slot[body.sideEffects]"]':{insetInline:0,[`.${i.root}`]:{inset:"unset",insetBlockEnd:0,position:"absolute"}},'[data-layout*="slot[sidebar]"]':{display:"grid",gridArea:"top-start / sidebar-start / main-end / sidebar-end",gridTemplateRows:"minmax(0, auto)"},'[data-layout*="slot[footer]"]':{display:"grid",gap:"var(--phx-layout-gap)",gridArea:"bottom-start / full-start / bottom-end / full-end"},'&:has([data-header*="fixed"])':{'[data-layout*="slot[header]"]':{gridArea:"full-start / full-start / top-end / full-end"},'[data-layout*="slot[body]"]':{gridRowStart:"main-start"},'[data-layout*="slot[sidebar]"]':{gridRow:"main-start / main-end"}},'&:has([data-header*="floating"])':{'[data-layout*="slot[header]"]':{gridColumnEnd:"main-end"}},[`&:has([data-sidebar*="${g.Minimalist}"])`]:{'[data-layout*="slot[sidebar]"]':{alignContent:"end",gridRow:"main-start / main-end"}},[`&:has([data-header*="floating"]):has([data-sidebar*="${g.Minimalist}"])`]:{'[data-layout*="slot[header]"]':{gridColumnEnd:"sidebar-end"},'[data-layout*="slot[sidebar]"]':{gridRowStart:"top-end"}},[`&:has([data-sidebar*="${g.Assistant}"])`]:{'[data-layout*="slot[sidebar]"]':{alignContent:"stretch"}},[`&:has([data-sidebar*="${g.Hidden}"])`]:{"--phx-layout-gap":0,"--phx-layout-sidebar-track-size":0,'[data-layout*="slot[sidebar]"]':{overflow:"hidden"}}}]}),D=r("div")({gridArea:"1 / 1 / -1 / -1"});export const DesktopLayout=()=>{let{sidebarWidth:e="clamp(360px, 30cqi, 400px)"}=d({props:{},name:w}),{hasMiniSidebar:i}=x.useSidebarContent(),r=f(),{accessInfo:s}=u(),y=m(),{isPreview:c,isHidden:g}=h(),A=!g&&!c,{setAnimating:E}=b(),{containerRef:S,safeAreaRef:T,update:$}=k({enabled:A,hasMiniSidebar:i&&!r}),j=n(()=>{E(!0)},[E]),R=n(()=>{E(!1),$()},[E,$]);return t(o,{children:a(l,{mode:"wait",children:[!g&&c&&t(v,{},"preview-layout"),A&&a(C,{layoutId:"ui-layout",layout:!0,ownerState:{sidebarWidth:e},"data-layout":p({state:{initial:!y,fullscreen:y}}),onLayoutAnimationStart:j,onLayoutAnimationComplete:R,children:[t(D,{ref:S}),t("header",{"data-layout":"slot[header]",children:t(x.DesktopHeader,{})}),a("main",{"data-layout":"slot[body]",children:[t("div",{"data-layout":"slot[body.top] interactive",children:t(x.DesktopCallToAction,{})}),t("div",{ref:T,"data-layout":"slot[body.safeSceneArea]"}),a("div",{"data-layout":"slot[body.bottom] interactive",children:[t("div",{"data-layout":"slot[body.toolbar]",children:t(x.DesktopToolbar,{})}),t("div",{"data-layout":"slot[body.toolControls]",children:!y&&t(x.DesktopToolControls,{})}),t("div",{"data-layout":"slot[body.viewControls]",children:t(x.DesktopViewControls,{})}),t("div",{"data-layout":"slot[body.logo]",children:t(x.DesktopPoweredBy,{})}),t("div",{"data-layout":"slot[body.sideEffects]",children:t(x.DesktopSnackbarsRoot,{})})]})]}),t("aside",{"data-layout":"slot[sidebar]",children:t(x.DesktopSidebar,{width:e})}),a("footer",{"data-layout":"slot[footer] interactive",children:[s.viewMode&&!y&&t(x.DesktopReadonlyBanner,{}),t(x.DesktopFooter,{})]})]},"interface-layout")]})})};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{useCallback as e,useMemo as o}from"react";import{useResolveLocalizable as a}from"#package/react-sdk";import{Preview as i,useResponsive as r}from"#package/ui-sdk";import{usePresetSelection as n,usePreview as s}from"../../../configurator-context/index.js";import{useSceneSafeArea as p}from"./use-scene-safe-area.js";let m={id:"sdk.preview.customize.title",message:"Customize product"},u={id:"sdk.preview.start.button.label",message:"Start configuring"},c={layoutId:"ui-layout",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{layout:{type:"spring",bounce:.2,duration:.6},opacity:{duration:.2,ease:"linear"}}};export const DesktopPreview=l=>{let{slotProps:d={},slots:f}=l,{enter:y}=s(),{hasMultiplePresets:g}=n(),{setCanvasPadding:k,setAnimating:x}=r(),{containerRef:b,safeAreaRef:j,update:w}=p(k,!1),S=a(),v=e(()=>{x(!0)},[x]),A=e(()=>{x(!1),w()},[x,w]),L=o(()=>({...d,root:{...c,onLayoutAnimationStart:v,onLayoutAnimationComplete:A,...d.root}}),[A,v,d]);return t(i,{title:S(m),buttonLabel:S(u),containerRef:b,safeAreaRef:j,withScene:!g,slots:f,slotProps:L,onStart:y})};
1
+ import{jsx as t}from"react/jsx-runtime";import{useCallback as e,useMemo as o}from"react";import{useResolveLocalizable as a}from"#package/react-sdk";import{Preview as i,useResponsive as r}from"#package/ui-sdk";import{usePresetSelection as n,usePreview as s}from"../../../configurator-context/index.js";import{useLayoutSceneSafeArea as p}from"./use-layout-scene-safe-area.js";let u={id:"sdk.preview.customize.title",message:"Customize product"},m={id:"sdk.preview.start.button.label",message:"Start configuring"},c={layoutId:"ui-layout",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{layout:{type:"spring",bounce:.2,duration:.6},opacity:{duration:.2,ease:"linear"}}};export const DesktopPreview=l=>{let{slotProps:d={},slots:f}=l,{enter:y}=s(),{hasMultiplePresets:g}=n(),{setAnimating:b}=r(),{containerRef:k,safeAreaRef:x,update:S}=p({enabled:!0,hasMiniSidebar:!1}),j=a(),w=e(()=>{b(!0)},[b]),v=e(()=>{b(!1),S()},[b,S]),A=o(()=>({...d,root:{...c,onLayoutAnimationStart:w,onLayoutAnimationComplete:v,...d.root}}),[v,w,d]);return t(i,{title:j(u),buttonLabel:j(m),containerRef:k,safeAreaRef:x,withScene:!g,slots:f,slotProps:A,onStart:y})};
@@ -1,11 +1,11 @@
1
- import{jsx as t,jsxs as a,Fragment as e}from"react/jsx-runtime";import{snackbarClasses as o,styled as i,useTheme as r,useThemeProps as n}from"@mui/material";import d from"lodash/noop.js";import{AnimatePresence as s}from"motion/react";import{useRef as l}from"react";import{useAccessService as m,useEagerObservableSelector as c,useIsFullscreenActive as p}from"#package/react-sdk";import{attrf as u,commonStyles as b,numToPx as h,useIsEmpty as g,useResponsive as f,useViewportSize as y}from"#package/ui-sdk";import{useConfigurator as x}from"../../../application-runtime/index.js";import{usePreview as v}from"../../../configurator-context/index.js";import{ASSISTANT_PANEL_SLOT as w,AssistantPanel as S,useIsAssistantPanelOpen as $}from"../../assistant/index.js";import{LayoutSlots as k}from"../slots/index.js";import{MobileHeader as C}from"../slots/slots.js";import{MobilePreview as F}from"./MobilePreview.js";import{useSceneSafeArea as M}from"./use-scene-safe-area.js";let T="visible",I="hidden",R=i("div",{name:"PhxMobileHeader",slot:"root"})(({theme:{spacing:t}})=>({...b.transition.fadeInFrom,alignItems:"center",display:"flex",gap:t(1),justifyContent:"space-between",position:"relative","@container style(--inspect: on)":{background:"hsl(from tomato h s l / 50%)"},'[data-header*="slot"]':{display:"flex",gap:t(2),"& > *":{pointerEvents:"auto"}},'[data-header="slot[center]"]':{display:"grid",inset:0,placeItems:"center",position:"absolute"},[`&[data-header*="${T}"]`]:{opacity:1,transitionDuration:"200ms, 300ms",transitionTimingFunction:"linear, ease-out",translate:"0 0"},[`&[data-header*="${I}"]`]:{opacity:0,transitionDuration:"100ms, 100ms",transitionTimingFunction:"linear, ease-in",translate:"0 -60%"}})),B="visible",E="hidden",P=i("div",{name:"PhxMobileControls",slot:"root"})(({theme:{spacing:t}})=>({alignItems:"end",display:"flex",position:"relative","@container style(--inspect: on)":{background:"hsl(from tomato h s l / 50%)"},'[data-controls*="slot"]':{"& > *":{pointerEvents:"auto"}},'[data-controls="slot[toolControls]"]':{...b.transition.fadeInFrom,"&:not(:empty)":{marginInlineEnd:t(2)},"& > *":{...b.transition.fadeIn,transitionDelay:"300ms",transitionDuration:"300ms"}},'[data-controls="slot[viewControls]"]':{...b.transition.fadeInFrom,marginInlineStart:"auto"},'[data-controls="slot[toolbar]"]':{"&:not(:empty)":{marginInlineStart:t(2)}},[`&[data-controls*="${B}"]`]:{'[data-controls="slot[toolControls]"], [data-controls="slot[viewControls]"]':{opacity:1,transitionDuration:"200ms, 300ms",transitionTimingFunction:"linear, ease-out",translate:"0 0"}},[`&[data-controls*="${E}"]`]:{'[data-controls="slot[toolControls]"], [data-controls="slot[viewControls]"]':{opacity:0,transitionDuration:"100ms, 100ms",transitionTimingFunction:"linear, ease-in",translate:"0 60%"}}})),D="PhxMobileSidebar",j="visible",A="hidden",z="assistant",H={Root:i("div",{name:D,slot:"root",shouldForwardProp:t=>"ownerState"!==t})(({ownerState:t})=>[`
1
+ import{jsx as t,jsxs as a,Fragment as e}from"react/jsx-runtime";import{snackbarClasses as o,styled as i,useTheme as r,useThemeProps as n}from"@mui/material";import{AnimatePresence as d}from"motion/react";import{useRef as s}from"react";import{useAccessService as l,useEagerObservableSelector as m,useIsFullscreenActive as c}from"#package/react-sdk";import{attrf as p,commonStyles as u,numToPx as b,useIsEmpty as h,useViewportSize as g}from"#package/ui-sdk";import{useConfigurator as f}from"../../../application-runtime/index.js";import{usePreview as y}from"../../../configurator-context/index.js";import{ASSISTANT_PANEL_SLOT as x,AssistantPanel as v,useIsAssistantPanelOpen as w}from"../../assistant/index.js";import{LayoutSlots as S}from"../slots/index.js";import{MobileHeader as $}from"../slots/slots.js";import{MobilePreview as k}from"./MobilePreview.js";import{useLayoutSceneSafeArea as C}from"./use-layout-scene-safe-area.js";let F="visible",M="hidden",T=i("div",{name:"PhxMobileHeader",slot:"root"})(({theme:{spacing:t}})=>({...u.transition.fadeInFrom,alignItems:"center",display:"flex",gap:t(1),justifyContent:"space-between",position:"relative","@container style(--inspect: on)":{background:"hsl(from tomato h s l / 50%)"},'[data-header*="slot"]':{display:"flex",gap:t(2),"& > *":{pointerEvents:"auto"}},'[data-header="slot[center]"]':{display:"grid",inset:0,placeItems:"center",position:"absolute"},[`&[data-header*="${F}"]`]:{opacity:1,transitionDuration:"200ms, 300ms",transitionTimingFunction:"linear, ease-out",translate:"0 0"},[`&[data-header*="${M}"]`]:{opacity:0,transitionDuration:"100ms, 100ms",transitionTimingFunction:"linear, ease-in",translate:"0 -60%"}})),I="visible",R="hidden",B=i("div",{name:"PhxMobileControls",slot:"root"})(({theme:{spacing:t}})=>({alignItems:"end",display:"flex",position:"relative","@container style(--inspect: on)":{background:"hsl(from tomato h s l / 50%)"},'[data-controls*="slot"]':{"& > *":{pointerEvents:"auto"}},'[data-controls="slot[toolControls]"]':{...u.transition.fadeInFrom,"&:not(:empty)":{marginInlineEnd:t(2)},"& > *":{...u.transition.fadeIn,transitionDelay:"300ms",transitionDuration:"300ms"}},'[data-controls="slot[viewControls]"]':{...u.transition.fadeInFrom,marginInlineStart:"auto"},'[data-controls="slot[toolbar]"]':{"&:not(:empty)":{marginInlineStart:t(2)}},[`&[data-controls*="${I}"]`]:{'[data-controls="slot[toolControls]"], [data-controls="slot[viewControls]"]':{opacity:1,transitionDuration:"200ms, 300ms",transitionTimingFunction:"linear, ease-out",translate:"0 0"}},[`&[data-controls*="${R}"]`]:{'[data-controls="slot[toolControls]"], [data-controls="slot[viewControls]"]':{opacity:0,transitionDuration:"100ms, 100ms",transitionTimingFunction:"linear, ease-in",translate:"0 60%"}}})),E="PhxMobileSidebar",P="visible",D="hidden",j="assistant",A={Root:i("div",{name:E,slot:"root",shouldForwardProp:t=>"ownerState"!==t})(({ownerState:t})=>[`
2
2
  --phx-sidebar-background: ${t.background};
3
3
  --phx-sidebar-padding: ${t.padding};
4
4
  --phx-sidebar-radius: ${t.borderRadius}px;
5
- `,{...b.transition.fadeInFrom,background:"var(--phx-sidebar-background)",borderStartStartRadius:"var(--phx-sidebar-radius)",borderStartEndRadius:"var(--phx-sidebar-radius)",display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gridTemplateRows:"min-content minmax(0, 1fr) min-content",position:"relative","& > *":{pointerEvents:"auto"},"@container style(--inspect: on)":{background:"hsl(from gold h s l / 50%)"},'&:has([data-sidebar*="slot[content]"])':{...t.isContentEmpty&&{"--phx-sidebar-radius":0,'[data-sidebar*="slot[header]"]':{paddingBlock:0,"& > *":{display:"none"}}}},[`&[data-sidebar*="${j}"]`]:{opacity:1,transitionDuration:"200ms, 300ms",transitionTimingFunction:"linear, ease-out",translate:"0 0"},[`&[data-sidebar*="${A}"]`]:{opacity:0,transitionDuration:"100ms, 100ms",transitionTimingFunction:"linear, ease-in",translate:"0 60%"},[`&[data-sidebar*="${z}"] > :not([data-sidebar="${w}"])`]:{visibility:"hidden"}}]),Header:i("header",{name:D,slot:"header",shouldForwardProp:t=>"ownerState"!==t})(({theme:{spacing:t}})=>({alignItems:"center",borderStartStartRadius:"inherit",borderStartEndRadius:"inherit",display:"grid",gap:t(1),gridTemplateColumns:"repeat(2, minmax(0, 1fr))",paddingBlock:"calc(var(--phx-sidebar-padding) * 0.5)",paddingInline:"var(--phx-sidebar-padding)","& > *":{...b.transition.fadeIn,transitionDelay:"100ms",transitionDuration:"300ms"},'[data-sidebar="slot[header.start]"]':{},'[data-sidebar="slot[header.end]"]':{justifySelf:"end"}})),Body:i("div",{name:D,slot:"body",shouldForwardProp:t=>"ownerState"!==t})({display:"grid",gridTemplateRows:"minmax(0, 1fr)"}),Content:i("div",{name:D,slot:"content",shouldForwardProp:t=>"ownerState"!==t})(({theme:{spacing:t}})=>({...b.layout.normalizeScrollableContainer,display:"grid",gap:t(2),gridAutoRows:"min-content",paddingBlock:"calc(var(--phx-sidebar-padding) * 0.5)",paddingInline:"var(--phx-sidebar-padding)","&:empty":{paddingBlock:0}})),Tabs:i("div",{name:D,slot:"tabs",shouldForwardProp:t=>"ownerState"!==t})(({theme:{palette:t}})=>({borderBlockStart:`1px solid ${t.divider}`,paddingBlock:"calc(var(--phx-sidebar-padding) * 0.5)",paddingInline:"calc(var(--phx-sidebar-padding) * 0.75)","&:is(:empty)":{border:0,padding:0}})),Footer:i("footer",{name:D,slot:"footer",shouldForwardProp:t=>"ownerState"!==t})(({theme:{palette:t}})=>({borderBlockStart:`1px solid ${t.divider}`,paddingBlock:"calc(var(--phx-sidebar-padding) * 0.5)",paddingInline:"var(--phx-sidebar-padding)","&:is(:empty)":{borderColor:"transparent",paddingBlock:0}}))};export const PhxMobileLayoutName="PhxMobileLayout";let L="initial",q="fullscreen",N="min(480px, 50cqb)",V=["auto","min-content","max-content","fit-content"],G=i("div",{name:"PhxMobileLayout",slot:"root",shouldForwardProp:t=>"ownerState"!==t})(({ownerState:t,theme:{spacing:a}})=>[`
5
+ `,{...u.transition.fadeInFrom,background:"var(--phx-sidebar-background)",borderStartStartRadius:"var(--phx-sidebar-radius)",borderStartEndRadius:"var(--phx-sidebar-radius)",display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gridTemplateRows:"min-content minmax(0, 1fr) min-content",position:"relative","& > *":{pointerEvents:"auto"},"@container style(--inspect: on)":{background:"hsl(from gold h s l / 50%)"},'&:has([data-sidebar*="slot[content]"])':{...t.isContentEmpty&&{"--phx-sidebar-radius":0,'[data-sidebar*="slot[header]"]':{paddingBlock:0,"& > *":{display:"none"}}}},[`&[data-sidebar*="${P}"]`]:{opacity:1,transitionDuration:"200ms, 300ms",transitionTimingFunction:"linear, ease-out",translate:"0 0"},[`&[data-sidebar*="${D}"]`]:{opacity:0,transitionDuration:"100ms, 100ms",transitionTimingFunction:"linear, ease-in",translate:"0 60%"},[`&[data-sidebar*="${j}"] > :not([data-sidebar="${x}"])`]:{visibility:"hidden"}}]),Header:i("header",{name:E,slot:"header",shouldForwardProp:t=>"ownerState"!==t})(({theme:{spacing:t}})=>({alignItems:"center",borderStartStartRadius:"inherit",borderStartEndRadius:"inherit",display:"grid",gap:t(1),gridTemplateColumns:"repeat(2, minmax(0, 1fr))",paddingBlock:"calc(var(--phx-sidebar-padding) * 0.5)",paddingInline:"var(--phx-sidebar-padding)","& > *":{...u.transition.fadeIn,transitionDelay:"100ms",transitionDuration:"300ms"},'[data-sidebar="slot[header.start]"]':{},'[data-sidebar="slot[header.end]"]':{justifySelf:"end"}})),Body:i("div",{name:E,slot:"body",shouldForwardProp:t=>"ownerState"!==t})({display:"grid",gridTemplateRows:"minmax(0, 1fr)"}),Content:i("div",{name:E,slot:"content",shouldForwardProp:t=>"ownerState"!==t})(({theme:{spacing:t}})=>({...u.layout.normalizeScrollableContainer,display:"grid",gap:t(2),gridAutoRows:"min-content",paddingBlock:"calc(var(--phx-sidebar-padding) * 0.5)",paddingInline:"var(--phx-sidebar-padding)","&:empty":{paddingBlock:0}})),Tabs:i("div",{name:E,slot:"tabs",shouldForwardProp:t=>"ownerState"!==t})(({theme:{palette:t}})=>({borderBlockStart:`1px solid ${t.divider}`,paddingBlock:"calc(var(--phx-sidebar-padding) * 0.5)",paddingInline:"calc(var(--phx-sidebar-padding) * 0.75)","&:is(:empty)":{border:0,padding:0}})),Footer:i("footer",{name:E,slot:"footer",shouldForwardProp:t=>"ownerState"!==t})(({theme:{palette:t}})=>({borderBlockStart:`1px solid ${t.divider}`,paddingBlock:"calc(var(--phx-sidebar-padding) * 0.5)",paddingInline:"var(--phx-sidebar-padding)","&:is(:empty)":{borderColor:"transparent",paddingBlock:0}}))};export const PhxMobileLayoutName="PhxMobileLayout";let z="initial",H="fullscreen",L="min(480px, 50cqb)",q=["auto","min-content","max-content","fit-content"],N=i("div",{name:"PhxMobileLayout",slot:"root",shouldForwardProp:t=>"ownerState"!==t})(({ownerState:t,theme:{spacing:a}})=>[`
6
6
  --inspect: off; // 🕹️ inspection mode toggle
7
7
 
8
- --phx-layout-sidebar-track-size: ${h(t.sidebarHeight)};
8
+ --phx-layout-sidebar-track-size: ${b(t.sidebarHeight)};
9
9
  --phx-layout-gutter: ${a(2)};
10
10
  `,{display:"grid",gridTemplateColumns:`
11
11
  [full-start]
@@ -39,4 +39,4 @@ import{jsx as t,jsxs as a,Fragment as e}from"react/jsx-runtime";import{snackbarC
39
39
  [footer-end]
40
40
  var(--phx-layout-gutter)
41
41
  [full-end]
42
- `},'[data-layout*="slot[body.header]"]':{gridArea:"header-start / main-start / header-end / main-end"},'[data-layout*="slot[body.footer]"]':{gridArea:"footer-start / main-start / footer-end / main-end",position:"relative"},'[data-layout*="slot[body.safeSceneArea]"]':{gridArea:"full","@container style(--inspect: on)":{background:"hsl(from lime h s l / 50%)"}},'[data-layout="slot[body.sideEffects]"]':{insetBlockEnd:`calc(100% + ${a(2)})`,position:"absolute"},'[data-layout*="slot[sidebar]"]':{display:"grid",gridArea:"sidebar-start / full-start / sidebar-end / full-end",gridTemplateColumns:"minmax(0, 1fr)",gridTemplateRows:"minmax(0, auto)"},'[data-layout*="slot[footer]"]':{gridArea:"footer-start / full-start / footer-end / full-end",zIndex:1},'&:has([data-sidebar*="slot[content]"])':{...t.isContentEmpty&&{"--phx-layout-sidebar-track-size":"min-content"}},[`&[data-layout*="${L}"]`]:{transitionDelay:"200ms",transitionDuration:"300ms"},[`&[data-layout*="${q}"]`]:{transitionDelay:"0ms",transitionDuration:"300ms"},[`&:has([data-sidebar*="${A}"])[class]`]:{"--phx-layout-sidebar-track-size":0}},null!=t.assistantFocusHeight&&{'[data-layout*="slot[sidebar]"]':{alignSelf:"start",blockSize:`min(100%, ${t.assistantFocusHeight}px)`,gridRow:"full-start / full-end",zIndex:2}}]),J=i("div")({gridArea:"1 / 1 / -1 / -1"}),K=t=>({inert:t?"":void 0});export const MobileLayout=()=>{let o=l(null),{palette:i,shape:b,spacing:h}=r(),{sidebarHeight:w=N}=n({props:{},name:"PhxMobileLayout"}),{background:O=i.background.paper,borderRadius:Q=b.sidebarBorderRadius??b.borderRadius,padding:U=h(2)}=n({props:{},name:D}),{accessInfo:W}=m(),X=p(),{isPreview:Y,isHidden:Z}=v(),_=!Z&&!Y,tt=!X&&_,ta=!X&&_,te=!X,{setCanvasPadding:to}=f(),{containerRef:ti,safeAreaRef:tr}=M(_?to:d,!1),tn=g(o,{disabled:!te}),{assistantSystem:td}=x(),ts=$(),tl=c(td.panel$,t=>t.isInputFocused,[]),tm=ts&&te&&tl,tc=y(tm),tp=tn&&!ts,tu={isContentEmpty:tp,sidebarHeight:ts?V.includes(w)?N:w:w,assistantFocusHeight:tm?tc?.[1]:void 0},tb={background:O,borderRadius:Q,padding:U,isContentEmpty:tp};return a(e,{children:[t(s,{initial:!1,children:!Z&&Y&&t(F,{})}),a(G,{ownerState:tu,"data-layout":u({state:{[`${L}`]:!X,[`${q}`]:X}}),...K(!_),children:[t(J,{ref:ti}),t("div",{"data-layout":"slot[sideEffects]",children:t(k.MobileSnackbarsRoot,{})}),a("main",{"data-layout":"slot[body]",children:[t("header",{"data-layout":"slot[body.header]",children:a(R,{"data-header":u({state:{[`${T}`]:tt,[`${I}`]:!tt}}),...K(!tt),children:[t("div",{"data-header":"slot[start]",children:t(C,{})}),t("div",{"data-header":"slot[center]",children:t(k.MobileCallToAction,{})}),a("div",{"data-header":"slot[end]",children:[W.viewMode&&!X&&t(k.MobileReadonlyBanner,{}),t(k.MobileHamburgerMenu,{})]})]})}),t("div",{ref:tr,"data-layout":"slot[body.safeSceneArea]"}),t("div",{"data-layout":"slot[body.footer] interactive",children:a(P,{"data-controls":u({state:{[`${B}`]:ta,[`${E}`]:!ta}}),children:[t("div",{"data-controls":"slot[toolControls]",...K(!ta),children:t(k.MobileToolControls,{})}),t("div",{"data-controls":"slot[viewControls]",...K(!ta),children:t(k.MobileViewControls,{})}),t("div",{"data-controls":"slot[toolbar]",children:_&&t(k.MobileToolbar,{})})]})})]}),t("aside",{"data-layout":"slot[sidebar]",children:a(H.Root,{ownerState:tb,"data-sidebar":u({state:{[`${j}`]:te,[`${A}`]:!te,[`${z}`]:ts}}),...K(!te),children:[a(H.Header,{ownerState:tb,"data-sidebar":"slot[header]",children:[t("div",{"data-sidebar":"slot[header.start]",children:t(k.MobileSidebarBackButton,{})}),t("div",{"data-sidebar":"slot[header.end]",children:t(k.MobilePoweredBy,{})})]}),t(H.Body,{ownerState:tb,"data-sidebar":"slot[body]",children:t(H.Content,{ref:o,ownerState:tb,"data-sidebar":"slot[content]",children:t(k.MobileSidebarContent,{})})}),t(H.Tabs,{ownerState:tb,"data-sidebar":"slot[tabs]",children:t(k.MobileTabs,{})}),t(H.Footer,{ownerState:tb,"data-sidebar":"slot[footer]",children:t(k.MobileSidebarFooter,{})}),t(S,{})]})}),t("footer",{"data-layout":"slot[footer] interactive",children:t(k.MobileFooter,{})})]})]})};
42
+ `},'[data-layout*="slot[body.header]"]':{gridArea:"header-start / main-start / header-end / main-end"},'[data-layout*="slot[body.footer]"]':{gridArea:"footer-start / main-start / footer-end / main-end",position:"relative"},'[data-layout*="slot[body.safeSceneArea]"]':{gridArea:"full","@container style(--inspect: on)":{background:"hsl(from lime h s l / 50%)"}},'[data-layout="slot[body.sideEffects]"]':{insetBlockEnd:`calc(100% + ${a(2)})`,position:"absolute"},'[data-layout*="slot[sidebar]"]':{display:"grid",gridArea:"sidebar-start / full-start / sidebar-end / full-end",gridTemplateColumns:"minmax(0, 1fr)",gridTemplateRows:"minmax(0, auto)"},'[data-layout*="slot[footer]"]':{gridArea:"footer-start / full-start / footer-end / full-end",zIndex:1},'&:has([data-sidebar*="slot[content]"])':{...t.isContentEmpty&&{"--phx-layout-sidebar-track-size":"min-content"}},[`&[data-layout*="${z}"]`]:{transitionDelay:"200ms",transitionDuration:"300ms"},[`&[data-layout*="${H}"]`]:{transitionDelay:"0ms",transitionDuration:"300ms"},[`&:has([data-sidebar*="${D}"])[class]`]:{"--phx-layout-sidebar-track-size":0}},null!=t.assistantFocusHeight&&{'[data-layout*="slot[sidebar]"]':{alignSelf:"start",blockSize:`min(100%, ${t.assistantFocusHeight}px)`,gridRow:"full-start / full-end",zIndex:2}}]),V=i("div")({gridArea:"1 / 1 / -1 / -1"}),G=t=>({inert:t?"":void 0});export const MobileLayout=()=>{let o=s(null),{palette:i,shape:u,spacing:b}=r(),{sidebarHeight:x=L}=n({props:{},name:"PhxMobileLayout"}),{background:J=i.background.paper,borderRadius:K=u.sidebarBorderRadius??u.borderRadius,padding:O=b(2)}=n({props:{},name:E}),{accessInfo:Q}=l(),U=c(),{isPreview:W,isHidden:X}=y(),Y=!X&&!W,Z=!U&&Y,_=!U&&Y,tt=!U,{containerRef:ta,safeAreaRef:te}=C({enabled:Y,hasMiniSidebar:!1}),to=h(o,{disabled:!tt}),{assistantSystem:ti}=f(),tr=w(),tn=m(ti.panel$,t=>t.isInputFocused,[]),td=tr&&tt&&tn,ts=g(td),tl=to&&!tr,tm={isContentEmpty:tl,sidebarHeight:tr?q.includes(x)?L:x:x,assistantFocusHeight:td?ts?.[1]:void 0},tc={background:J,borderRadius:K,padding:O,isContentEmpty:tl};return a(e,{children:[t(d,{initial:!1,children:!X&&W&&t(k,{})}),a(N,{ownerState:tm,"data-layout":p({state:{[`${z}`]:!U,[`${H}`]:U}}),...G(!Y),children:[t(V,{ref:ta}),t("div",{"data-layout":"slot[sideEffects]",children:t(S.MobileSnackbarsRoot,{})}),a("main",{"data-layout":"slot[body]",children:[t("header",{"data-layout":"slot[body.header]",children:a(T,{"data-header":p({state:{[`${F}`]:Z,[`${M}`]:!Z}}),...G(!Z),children:[t("div",{"data-header":"slot[start]",children:t($,{})}),t("div",{"data-header":"slot[center]",children:t(S.MobileCallToAction,{})}),a("div",{"data-header":"slot[end]",children:[Q.viewMode&&!U&&t(S.MobileReadonlyBanner,{}),t(S.MobileHamburgerMenu,{})]})]})}),t("div",{ref:te,"data-layout":"slot[body.safeSceneArea]"}),t("div",{"data-layout":"slot[body.footer] interactive",children:a(B,{"data-controls":p({state:{[`${I}`]:_,[`${R}`]:!_}}),children:[t("div",{"data-controls":"slot[toolControls]",...G(!_),children:t(S.MobileToolControls,{})}),t("div",{"data-controls":"slot[viewControls]",...G(!_),children:t(S.MobileViewControls,{})}),t("div",{"data-controls":"slot[toolbar]",children:Y&&t(S.MobileToolbar,{})})]})})]}),t("aside",{"data-layout":"slot[sidebar]",children:a(A.Root,{ownerState:tc,"data-sidebar":p({state:{[`${P}`]:tt,[`${D}`]:!tt,[`${j}`]:tr}}),...G(!tt),children:[a(A.Header,{ownerState:tc,"data-sidebar":"slot[header]",children:[t("div",{"data-sidebar":"slot[header.start]",children:t(S.MobileSidebarBackButton,{})}),t("div",{"data-sidebar":"slot[header.end]",children:t(S.MobilePoweredBy,{})})]}),t(A.Body,{ownerState:tc,"data-sidebar":"slot[body]",children:t(A.Content,{ref:o,ownerState:tc,"data-sidebar":"slot[content]",children:t(S.MobileSidebarContent,{})})}),t(A.Tabs,{ownerState:tc,"data-sidebar":"slot[tabs]",children:t(S.MobileTabs,{})}),t(A.Footer,{ownerState:tc,"data-sidebar":"slot[footer]",children:t(S.MobileSidebarFooter,{})}),t(v,{})]})}),t("footer",{"data-layout":"slot[footer] interactive",children:t(S.MobileFooter,{})})]})]})};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import e from"lodash/noop.js";import{useCallback as o,useMemo as i}from"react";import{useResolveLocalizable as r}from"#package/react-sdk";import{Preview as a,useResponsive as s}from"#package/ui-sdk";import{usePresetSelection as n,usePreview as m}from"../../../configurator-context/index.js";import{useSceneSafeArea as p}from"./use-scene-safe-area.js";let c={id:"sdk.preview.customize.title",message:"Customize product"},l={id:"sdk.preview.start.button.label",message:"Start configuring"},u={initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{opacity:{duration:.1,ease:"linear"}}};export const MobilePreview=f=>{let{slotProps:d={},slots:g}=f,{enter:k,isPreview:x}=m(),{hasMultiplePresets:b}=n(),{setCanvasPadding:j}=s(),{containerRef:y,safeAreaRef:w,update:v}=p(x?j:e,!1),S=r(),h=o(()=>{v()},[v]),z=i(()=>({...d,root:{...u,onLayoutAnimationComplete:h,...d.root}}),[h,d]);return t(a,{title:S(c),buttonLabel:S(l),containerRef:y,safeAreaRef:w,withScene:!b,slots:g,slotProps:z,onStart:k})};
1
+ import{jsx as t}from"react/jsx-runtime";import{useCallback as e,useMemo as o}from"react";import{useResolveLocalizable as i}from"#package/react-sdk";import{Preview as a}from"#package/ui-sdk";import{usePresetSelection as r,usePreview as s}from"../../../configurator-context/index.js";import{useLayoutSceneSafeArea as n}from"./use-layout-scene-safe-area.js";let m={id:"sdk.preview.customize.title",message:"Customize product"},p={id:"sdk.preview.start.button.label",message:"Start configuring"},c={initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{opacity:{duration:.1,ease:"linear"}}};export const MobilePreview=l=>{let{slotProps:u={},slots:d}=l,{enter:f,isPreview:b}=s(),{hasMultiplePresets:g}=r(),{containerRef:k,safeAreaRef:x,update:y}=n({enabled:b,hasMiniSidebar:!1}),j=i(),w=e(()=>{y()},[y]),S=o(()=>({...u,root:{...c,onLayoutAnimationComplete:w,...u.root}}),[w,u]);return t(a,{title:j(m),buttonLabel:j(p),containerRef:k,safeAreaRef:x,withScene:!g,slots:d,slotProps:S,onStart:f})};
@@ -0,0 +1,47 @@
1
+ /** What a built-in layout tells the safe-area measurement about itself. */
2
+ export interface LayoutSceneSafeAreaOptions {
3
+ /** Whether the layout owns the canvas padding now. See `useLayoutSceneSafeArea`. */
4
+ readonly enabled: boolean;
5
+ /** Whether the sidebar is collapsed to its mini form, which the scene clears only in part. */
6
+ readonly hasMiniSidebar: boolean;
7
+ }
8
+ /**
9
+ * Measures the gap between a full-area container and an inner "safe area" element,
10
+ * and writes the resulting gaps to the responsive state as canvas padding — letting the
11
+ * 3D scene render only in the region not covered by overlay UI (preview body, sidebar, etc.).
12
+ *
13
+ * The implementation behind `useSceneSafeArea`, with the two things only the built-in
14
+ * layouts need: `enabled` and `hasMiniSidebar`.
15
+ *
16
+ * Returns:
17
+ * - `containerRef` — attach to the full-area measurement element.
18
+ * - `safeAreaRef` — attach to the region the scene should remain visible in.
19
+ * - `update` — trigger a manual re-measure on demand.
20
+ *
21
+ * `containerRef` / `safeAreaRef` are *callback* refs: the `ResizeObserver` (re)connects
22
+ * whenever a node attaches or detaches. This matters because the owning layout can mount
23
+ * late — `AnimatePresence mode="wait"` only mounts the interface after the preview has
24
+ * finished exiting, well after a one-shot mount effect would have run and bailed on null
25
+ * refs (leaving the scene stuck at the preview's padding).
26
+ *
27
+ * `enabled` is for a layout that stays mounted while another one owns the padding (e.g. the
28
+ * mobile interface while previewing, or a preview that lingers through its exit fade). While
29
+ * it is `false` the observer is disconnected, and a measurement started by the `update` of that
30
+ * render or by a pending retry writes nothing. An `update` that was created while the hook was
31
+ * enabled, such as a handler an animation already holds, still measures and writes. Turning
32
+ * `enabled` back on reconnects the observer, which measures again.
33
+ *
34
+ * `getBoundingClientRect()` returns *visually transformed* rects, so `measure` skips
35
+ * transformed frames automatically (retrying until the transform clears) to avoid feeding
36
+ * the scene a scaled gap mid layout animation.
37
+ *
38
+ * `update` exists for the complementary case: when only an ancestor's `transform` changes
39
+ * (e.g. motion FLIP settling), `ResizeObserver` doesn't fire, so nothing re-triggers
40
+ * `measure`. Call `update()` once the transform settles (e.g. from
41
+ * `onLayoutAnimationComplete`) to re-measure against the actual layout box.
42
+ */
43
+ export declare const useLayoutSceneSafeArea: (options: LayoutSceneSafeAreaOptions) => {
44
+ containerRef: (node: HTMLDivElement | null) => void;
45
+ safeAreaRef: (node: HTMLDivElement | null) => void;
46
+ update: () => void;
47
+ };
@@ -0,0 +1 @@
1
+ import{useCallback as t,useEffect as e,useRef as r}from"react";import{canvasPaddingComponent as n}from"#package/domain";import{useFirstComponent as o,useResponsiveStateManager as a}from"#package/react-sdk";export const useLayoutSceneSafeArea=c=>{let{enabled:u,hasMiniSidebar:i}=c,{setCanvasPadding:l}=a(),m=r(null),s=r(null),f=r(null),h=r(null),g=r(0),p=r(()=>{}),b=o({componentTypes:[n]}),d=t(()=>{let t=s.current,e=f.current;if(!u||!t||!e)return;let r=t.getBoundingClientRect(),n=e.getBoundingClientRect();if(Math.abs(r.width-t.offsetWidth)>1||Math.abs(r.height-t.offsetHeight)>1){if(g.current+=1,g.current>60){g.current=0;return}m.current&&cancelAnimationFrame(m.current),m.current=requestAnimationFrame(()=>p.current());return}g.current=0;let o={bottom:Math.max(0,r.bottom-n.bottom),left:Math.max(0,n.left-r.left),right:Math.max(0,r.right-n.right),top:Math.max(0,n.top-r.top)},a=i?.3:1,c=b?.state.bottom??1,h=b?.state.left??1,d=b?.state.right??a,A=b?.state.top??1;l({bottom:o.bottom*c,left:o.left*h,right:o.right*d,top:o.top*A})},[u,i,b?.state.bottom,b?.state.left,b?.state.right,b?.state.top,l]);p.current=d;let A=t(()=>{m.current&&cancelAnimationFrame(m.current),m.current=requestAnimationFrame(d)},[d]),M=t(()=>{h.current?.disconnect(),h.current=null},[]),x=t(()=>{let t=s.current,e=f.current;if(!u||!t||!e)return void M();M();let r=new ResizeObserver(A);r.observe(t),r.observe(e),h.current=r},[M,u,A]),F=t(t=>{s.current=t,x()},[x]),v=t(t=>{f.current=t,x()},[x]);return e(()=>(x(),()=>{M(),m.current&&cancelAnimationFrame(m.current)}),[x,M]),{containerRef:F,safeAreaRef:v,update:A}};
@@ -1,33 +1,18 @@
1
- import type { CanvasPadding } from '#package/ui-sdk';
2
1
  /**
3
- * Measures the gap between a full-area container and an inner "safe area" element,
4
- * and forwards the resulting gaps as canvas padding — letting the 3D scene render
5
- * only in the region not covered by overlay UI (preview body, sidebar, etc.).
2
+ * Tells the camera which part of the canvas a layout leaves free for the scene.
6
3
  *
7
- * Returns:
8
- * - `containerRef` — attach to the full-area measurement element.
9
- * - `safeAreaRef` — attach to the region the scene should remain visible in.
10
- * - `update` — trigger a manual re-measure on demand.
11
- *
12
- * `containerRef` / `safeAreaRef` are *callback* refs: the `ResizeObserver` (re)connects
13
- * whenever a node attaches or detaches. This matters because the owning layout can mount
14
- * late — `AnimatePresence mode="wait"` only mounts the interface after the preview has
15
- * finished exiting, well after a one-shot mount effect would have run and bailed on null
16
- * refs (leaving the scene stuck at the preview's padding).
17
- *
18
- * `enabled` gates the whole thing: when `false` the observer is disconnected so an inactive
19
- * layout (e.g. the interface while previewing) neither measures nor writes padding.
4
+ * A layout attaches `containerRef` to the element that covers the whole canvas and `safeAreaRef`
5
+ * to the region the scene should stay visible in. The hook measures the gap between the two,
6
+ * again whenever either element resizes, and writes it to the responsive state as the canvas
7
+ * padding the camera frames the scene with.
20
8
  *
21
- * `getBoundingClientRect()` returns *visually transformed* rects, so `measure` skips
22
- * transformed frames automatically (retrying until the transform clears) to avoid feeding
23
- * the scene a scaled gap mid layout animation.
24
- *
25
- * `update` exists for the complementary case: when only an ancestor's `transform` changes
26
- * (e.g. motion FLIP settling), `ResizeObserver` doesn't fire, so nothing re-triggers
27
- * `measure`. Call `update()` once the transform settles (e.g. from
28
- * `onLayoutAnimationComplete`) to re-measure against the actual layout box.
9
+ * Returns:
10
+ * - `containerRef` — attach to the element that covers the whole canvas.
11
+ * - `safeAreaRef` — attach to the region the scene should stay visible in.
12
+ * - `update` — measures again on demand, for a change no resize reports, such as a `transform`
13
+ * on an ancestor settling at the end of an animation.
29
14
  */
30
- export declare const useSceneSafeArea: (setCanvasPadding: (padding: CanvasPadding) => void, hasMiniSidebar: boolean, enabled?: boolean) => {
15
+ export declare const useSceneSafeArea: () => {
31
16
  containerRef: (node: HTMLDivElement | null) => void;
32
17
  safeAreaRef: (node: HTMLDivElement | null) => void;
33
18
  update: () => void;
@@ -1 +1 @@
1
- import{useCallback as t,useEffect as e,useRef as r}from"react";import{canvasPaddingComponent as n}from"#package/domain";import{useFirstComponent as o}from"#package/react-sdk";export const useSceneSafeArea=(a,c,u=!0)=>{let i=r(null),l=r(null),m=r(null),s=r(null),f=r(0),h=r(()=>{}),g=o({componentTypes:[n]}),p=t(()=>{let t=l.current,e=m.current;if(!t||!e)return;let r=t.getBoundingClientRect(),n=e.getBoundingClientRect();if(Math.abs(r.width-t.offsetWidth)>1||Math.abs(r.height-t.offsetHeight)>1){if(f.current+=1,f.current>60){f.current=0;return}i.current&&cancelAnimationFrame(i.current),i.current=requestAnimationFrame(()=>h.current());return}f.current=0;let o={bottom:Math.max(0,r.bottom-n.bottom),left:Math.max(0,n.left-r.left),right:Math.max(0,r.right-n.right),top:Math.max(0,n.top-r.top)},u=c?.3:1,s=g?.state.bottom??1,p=g?.state.left??1,b=g?.state.right??u,d=g?.state.top??1;a({bottom:o.bottom*s,left:o.left*p,right:o.right*b,top:o.top*d})},[c,g?.state.bottom,g?.state.left,g?.state.right,g?.state.top,a]);h.current=p;let b=t(()=>{i.current&&cancelAnimationFrame(i.current),i.current=requestAnimationFrame(p)},[p]),d=t(()=>{s.current?.disconnect(),s.current=null},[]),A=t(()=>{let t=l.current,e=m.current;if(!u||!t||!e)return void d();d();let r=new ResizeObserver(b);r.observe(t),r.observe(e),s.current=r},[d,u,b]),M=t(t=>{l.current=t,A()},[A]),x=t(t=>{m.current=t,A()},[A]);return e(()=>(A(),()=>{d(),i.current&&cancelAnimationFrame(i.current)}),[A,d]),{containerRef:M,safeAreaRef:x,update:b}};
1
+ import{useLayoutSceneSafeArea as e}from"./use-layout-scene-safe-area.js";export const useSceneSafeArea=()=>e({enabled:!0,hasMiniSidebar:!1});
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{Trans as e}from"@lingui/react";import{useCallback as i}from"react";import{finalizeButtonComponent as a,finalizePageComponent as o}from"#package/domain";import{useAnalyticsService as n,useDomain as r,useFinalizeViolations as s,useFirstRootComponent as l,useLocalizable as m}from"#package/react-sdk";import{TooltipWithArrow as d,useResponsive as c}from"#package/ui-sdk";import{FrontendAnalyticsFactory as p}from"../../../../common/index.js";import{ResponsiveFinalizeButton as u}from"./ResponsiveFinalizeButton.js";import{MobileThemeableFinalizeButton as f,ThemeableFinalizeButton as g}from"./ThemeableFinalizeButton.js";let h={id:"sdk.finalize.notConfigured.tooltip",message:"Finalize feature is not configured."},k=()=>{let{isMobile:i}=c(),a=m(h);return i?t(d,{title:a,children:t("span",{children:t(f,{disabled:!0})})}):t(d,{title:a,children:t("span",{children:t(g,{disabled:!0,children:t(e,{id:"sdk.layout.sidebar.finalize.label",message:"Add to cart"})})})})},z=e=>{let{finalizeNavigationStates:a}=e,{navigationSystem:o,storeSystem:l}=r(),m=n(),d=i(async()=>{let t=a[0];t&&(m.push(p.FinalizeButtonClicked()),l.stageAndCommit([o.getPushNavigationUpdate(t,l.stateSlices.committed.value.state)]))},[a,o,m,l]),{disabled:c,hints:f}=s();return t(u,{onClick:d,disabled:c,hints:f})};export const CommonFinalizeButton=()=>{let e=l(a),i=l(o);return e?e?.state.button:i?t(z,{finalizeNavigationStates:i.state.finalizeNavigationStates}):t(k,{})};
1
+ import{jsx as t}from"react/jsx-runtime";import{Trans as e}from"@lingui/react";import{useCallback as i}from"react";import{finalizeButtonComponent as a,finalizePageComponent as n}from"#package/domain";import{FrontendAnalyticsFactory as o,useAnalyticsService as r,useDomain as s,useFinalizeViolations as l,useFirstRootComponent as d,useLocalizable as m}from"#package/react-sdk";import{TooltipWithArrow as c,useResponsive as p}from"#package/ui-sdk";import{ResponsiveFinalizeButton as u}from"./ResponsiveFinalizeButton.js";import{MobileThemeableFinalizeButton as f,ThemeableFinalizeButton as g}from"./ThemeableFinalizeButton.js";let h={id:"sdk.finalize.notConfigured.tooltip",message:"Finalize feature is not configured."},k=()=>{let{isMobile:i}=p(),a=m(h);return i?t(c,{title:a,children:t("span",{children:t(f,{disabled:!0})})}):t(c,{title:a,children:t("span",{children:t(g,{disabled:!0,children:t(e,{id:"sdk.layout.sidebar.finalize.label",message:"Add to cart"})})})})},z=e=>{let{finalizeNavigationStates:a}=e,{navigationSystem:n,storeSystem:d}=s(),m=r(),c=i(async()=>{let t=a[0];t&&(m.push(o.FinalizeButtonClicked()),d.stageAndCommit([n.getPushNavigationUpdate(t,d.stateSlices.committed.value.state)]))},[a,n,m,d]),{disabled:p,hints:f}=l();return t(u,{onClick:c,disabled:p,hints:f})};export const CommonFinalizeButton=()=>{let e=d(a),i=d(n);return e?e?.state.button:i?t(z,{finalizeNavigationStates:i.state.finalizeNavigationStates}):t(k,{})};
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import{Trans as t}from"@lingui/react";import{Button as m,Fab as o,styled as a}from"@mui/material";import{useCallback as e}from"react";import{useAnalyticsService as i}from"#package/react-sdk";import{PhxIcon as n,useResponsive as l}from"#package/ui-sdk";import{FrontendAnalyticsFactory as c}from"../../../../common/index.js";let p=a(o)(({theme:r})=>({backgroundColor:r.palette.primary.main,color:r.palette.getContrastText(r.palette.primary.main)}));export const CommonSummaryButton=o=>{let{onEnterSummary:a}=o,{isMobile:s}=l(),u=i(),d=e(()=>{u.push(c.SummaryButtonClicked()),a()},[u,a]);return s?r(p,{onClick:d,children:r(n,{name:"List"})}):r(m,{color:"primary",variant:"contained",size:"large",fullWidth:!0,endIcon:r(n,{name:"ArrowRight"}),onClick:d,children:r(t,{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{Button as a,Fab as m,styled as o}from"@mui/material";import{useCallback as e}from"react";import{FrontendAnalyticsFactory as i,useAnalyticsService as n}from"#package/react-sdk";import{PhxIcon as l,useResponsive as c}from"#package/ui-sdk";let p=o(m)(({theme:r})=>({backgroundColor:r.palette.primary.main,color:r.palette.getContrastText(r.palette.primary.main)}));export const CommonSummaryButton=m=>{let{onEnterSummary:o}=m,{isMobile:s}=c(),u=n(),d=e(()=>{u.push(i.SummaryButtonClicked()),o()},[u,o]);return s?r(p,{onClick:d,children:r(l,{name:"List"})}):r(a,{color:"primary",variant:"contained",size:"large",fullWidth:!0,endIcon:r(l,{name:"ArrowRight"}),onClick:d,children:r(t,{id:"sdk.layout.summary.button.label",message:"Summary"})})};
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import{Trans as r}from"@lingui/react";import{Button as t}from"@mui/material";import{memo as e,useCallback as i}from"react";import{useAnalyticsService as m,useIntegrationState as a}from"#package/react-sdk";import{PhxIcon as n}from"#package/ui-sdk";import{FrontendAnalyticsFactory as s}from"../../../../common/index.js";import{useConfiguratorRouting as c,usePresetSelection as p,usePreview as l}from"../../../../configurator-context/index.js";import{CloseConfiguratorButton as d}from"./CloseConfiguratorButton.js";export const CommonTopNavigation=e(()=>{let e=m(),f=c(),{presetCategories:u}=p(),{isPreview:g,isPreviewEnabled:k}=l(),x=u.flatMap(o=>o.presets).length>1,j=a(),C=i(()=>{e.push(s.GoToProductsClicked()),f.goToIndex()},[e,f]);if(!j.embeddedView)return x||!k||g?x?o(t,{size:"small",startIcon:o(n,{name:"ArrowLeft"}),onClick:C,children:o(r,{id:"sdk.layout.navigation.common.product.label",message:"Website"})}):null:o(d,{})});
1
+ import{jsx as o}from"react/jsx-runtime";import{Trans as r}from"@lingui/react";import{Button as t}from"@mui/material";import{memo as e,useCallback as i}from"react";import{FrontendAnalyticsFactory as a,useAnalyticsService as m,useIntegrationState as n}from"#package/react-sdk";import{PhxIcon as s}from"#package/ui-sdk";import{useConfiguratorRouting as c,usePresetSelection as l,usePreview as p}from"../../../../configurator-context/index.js";import{CloseConfiguratorButton as d}from"./CloseConfiguratorButton.js";export const CommonTopNavigation=e(()=>{let e=m(),f=c(),{presetCategories:u}=l(),{isPreview:g,isPreviewEnabled:k}=p(),x=u.flatMap(o=>o.presets).length>1,C=n(),j=i(()=>{e.push(a.GoToProductsClicked()),f.goToIndex()},[e,f]);if(!C.embeddedView)return x||!k||g?x?o(t,{size:"small",startIcon:o(s,{name:"ArrowLeft"}),onClick:j,children:o(r,{id:"sdk.layout.navigation.common.product.label",message:"Website"})}):null:o(d,{})});
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import{Box as i,styled as r}from"@mui/material";import{AnimatePresence as a}from"motion/react";import{Suspense as n,memo as l,useEffect as s,useState as m}from"react";import{useIsFullscreenActive as c,useLoadingStateManager as d,useResolveLocalizable as p}from"#package/react-sdk";import{useResponsive as u}from"#package/ui-sdk";import{usePreview as f}from"../../../../configurator-context/index.js";import{CanvasLoader as b}from"../../../phoenix-layout-elements/index.js";import{InterfaceLayout as g}from"../old/InterfaceLayout.js";import{PreviewLayout as v}from"../old/PreviewLayout.js";let x=({overlay:t})=>e("div",{style:{position:"absolute"},children:t}),h=r("div")({display:"grid",inset:0,placeItems:"center",pointerEvents:"none",position:"absolute"}),k=()=>null!==d()?null:e(h,{children:e(b,{})}),y=({canvas:t})=>{let[o,r]=m(!0),{isPreview:a}=f();return s(()=>{r(!1);let e=setTimeout(()=>{r(!0)},400);return()=>{clearTimeout(e)}},[a]),e(i,{component:"div",sx:{backgroundColor:"background.scene",inset:0,isolation:"isolate",maxBlockSize:"var(--phx-app-height)",position:"absolute"},children:e(n,{fallback:e(k,{}),children:o&&t})})},j={id:"sdk.preview.customize.title",message:"Customize product"},C={id:"sdk.preview.start.button.label",message:"Start configuring"};export const ReactiveInterfaceLayout=l(i=>{let{canvas:r,sidebar:n,topNavigation:l,branding:s,toolbar:m,fullScreenToolbar:d,viewControls:b,toolControls:h,overlay:k,mobileControls:S,mobileTopNavigation:L,mobileHeaderActionButton:w,mobileHeaderCenter:z,footer:B,sideEffects:I,LayoutContainer:P}=i,{setCanvasPadding:T}=u(),E=c(),{isPreview:F,isHidden:H}=f(),N=p();return t(o,{children:[e(y,{canvas:r}),e(x,{overlay:k}),t(a,{children:[!H&&F&&e(v,{title:N(j),startButtonLabel:N(C),updateScenePadding:T}),!H&&!F&&e(g,{sidebar:n,topNavigation:l,branding:s,toolbar:m,toolbarSecondary:d,mobileControls:S,mobileTopNavigation:L,mobileHeaderActionButton:w,mobileHeaderCenter:z,footer:B,sideEffects:I,isFullScreen:E,updateScenePadding:T,LayoutContainer:P,viewControls:b,toolControls:h})]})]})});
1
+ import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import{Box as i,styled as r}from"@mui/material";import{AnimatePresence as a}from"motion/react";import{Suspense as n,memo as s,useEffect as l,useState as m}from"react";import{BuiltInLoadingPhase as c,useExpectPhase as d,useIsFullscreenActive as p,useLoadingStateManager as u,useResolveLocalizable as f}from"#package/react-sdk";import{useResponsive as b}from"#package/ui-sdk";import{usePreview as g}from"../../../../configurator-context/index.js";import{CanvasLoader as v}from"../../../phoenix-layout-elements/index.js";import{InterfaceLayout as x}from"../old/InterfaceLayout.js";import{PreviewLayout as h}from"../old/PreviewLayout.js";let k=({overlay:t})=>e("div",{style:{position:"absolute"},children:t}),y=r("div")({display:"grid",inset:0,placeItems:"center",pointerEvents:"none",position:"absolute"}),j=()=>null!==u()?null:e(y,{children:e(v,{})}),C=({canvas:t})=>{d(c.SceneAssets);let[o,r]=m(!0),{isPreview:a}=g();return l(()=>{r(!1);let e=setTimeout(()=>{r(!0)},400);return()=>{clearTimeout(e)}},[a]),e(i,{component:"div",sx:{backgroundColor:"background.scene",inset:0,isolation:"isolate",maxBlockSize:"var(--phx-app-height)",position:"absolute"},children:e(n,{fallback:e(j,{}),children:o&&t})})},S={id:"sdk.preview.customize.title",message:"Customize product"},L={id:"sdk.preview.start.button.label",message:"Start configuring"};export const ReactiveInterfaceLayout=s(i=>{let{canvas:r,sidebar:n,topNavigation:s,branding:l,toolbar:m,fullScreenToolbar:c,viewControls:d,toolControls:u,overlay:v,mobileControls:y,mobileTopNavigation:j,mobileHeaderActionButton:w,mobileHeaderCenter:z,footer:B,sideEffects:I,LayoutContainer:P}=i,{setCanvasPadding:T}=b(),A=p(),{isPreview:E,isHidden:F}=g(),H=f();return t(o,{children:[e(C,{canvas:r}),e(k,{overlay:v}),t(a,{children:[!F&&E&&e(h,{title:H(S),startButtonLabel:H(L),updateScenePadding:T}),!F&&!E&&e(x,{sidebar:n,topNavigation:s,branding:l,toolbar:m,toolbarSecondary:c,mobileControls:y,mobileTopNavigation:j,mobileHeaderActionButton:w,mobileHeaderCenter:z,footer:B,sideEffects:I,isFullScreen:A,updateScenePadding:T,LayoutContainer:P,viewControls:d,toolControls:u})]})]})});
@@ -1 +1 @@
1
- import{jsx as i}from"react/jsx-runtime";import{Trans as e}from"@lingui/react";import{tooltipClasses as t}from"@mui/material";import{useCallback as o}from"react";import{useAnalyticsService as a,useResolveLocalizable as r}from"#package/react-sdk";import{TooltipWithArrow as l,useResponsive as m}from"#package/ui-sdk";import{FrontendAnalyticsFactory as n}from"../../../../common/index.js";import{MobileThemeableFinalizeButton as s,ThemeableFinalizeButton as p}from"./ThemeableFinalizeButton.js";export const ResponsiveFinalizeButton=c=>{let{title:d,onClick:u,disabled:f,hints:h}=c,{isMobile:k}=m(),x=r(),b=a(),g=o(()=>{b.push(n.FinalizeButtonClicked()),u()},[b,u]);return k?i(l,{title:h,placement:"top",sx:{[`& .${t.tooltip}`]:{maxWidth:130}},children:i("span",{children:i(s,{onClick:g,disabled:f})})}):i(l,{title:h,placement:"top",sx:{[`& .${t.tooltip}`]:{maxWidth:130}},children:i("span",{children:i(p,{disabled:f,onClick:g,children:d?x(d):i(e,{id:"sdk.layout.sidebar.finalizePage.label",message:"Finalize"})})})})};
1
+ import{jsx as i}from"react/jsx-runtime";import{Trans as e}from"@lingui/react";import{tooltipClasses as t}from"@mui/material";import{useCallback as a}from"react";import{FrontendAnalyticsFactory as r,useAnalyticsService as o,useResolveLocalizable as l}from"#package/react-sdk";import{TooltipWithArrow as n,useResponsive as m}from"#package/ui-sdk";import{MobileThemeableFinalizeButton as s,ThemeableFinalizeButton as p}from"./ThemeableFinalizeButton.js";export const ResponsiveFinalizeButton=c=>{let{title:d,onClick:u,disabled:h,hints:f}=c,{isMobile:k}=m(),x=l(),b=o(),g=a(()=>{b.push(r.FinalizeButtonClicked()),u()},[b,u]);return k?i(n,{title:f,placement:"top",sx:{[`& .${t.tooltip}`]:{maxWidth:130}},children:i("span",{children:i(s,{onClick:g,disabled:h})})}):i(n,{title:f,placement:"top",sx:{[`& .${t.tooltip}`]:{maxWidth:130}},children:i("span",{children:i(p,{disabled:h,onClick:g,children:d?x(d):i(e,{id:"sdk.layout.sidebar.finalizePage.label",message:"Finalize"})})})})};
@@ -1 +1 @@
1
- import{jsx as o,jsxs as t}from"react/jsx-runtime";import{Stack as r,Typography as e}from"@mui/material";import{match as a}from"ts-pattern";import{isCustomSummaryComponentSnapshot as n,isSimpleSummaryComponentSnapshot as l}from"#package/domain";import{useIsFullscreenActive as i,useRootEntityPrice as m}from"#package/react-sdk";import{Sidebar as s,MobileControls as p}from"#package/ui-sdk";import{usePreview as u,useSidebarSummary as f}from"../../../../configurator-context/index.js";import{LayoutSlots as d}from"../../../configurator-layout/index.js";import{LayoutFooter as c,LayoutToolbarReadDesktop as b,LayoutToolbarReadDesktopFullScreen as C,SimpleSummary as j}from"../../../phoenix-layout-elements/index.js";import{FullscreenDesktopToolbar as g}from"../../toolbar/desktop-toolbar/FullscreenDesktopToolbar.js";import{CloseConfiguratorButton as h}from"./CloseConfiguratorButton.js";import{CommonDesktopToolbar as k}from"./CommonDesktopToolbar.js";import{CommonMobileToolbar as x}from"./CommonMobileToolbar.js";import{ReactiveInterfaceLayout as y}from"./ReactiveInterfaceLayout.js";import{ToolControls as v}from"./ToolControls.js";import{ViewControls as w}from"./ViewControls.js";export const SummaryReadLayout=()=>{let{page:T}=f(),B=a(T).with(null,()=>null).when(n,o=>o.state.page).when(l,t=>o(j,{summary:t.state.items})).otherwise(()=>null),L=i(),M=m(),{isPreview:S,isPreviewEnabled:D}=u(),R=!L&&!S&&D;return o(y,{canvas:o(d.Canvas,{}),sidebar:B&&o(s.Layout,{content:B,chat:null,footer:null}),topNavigation:R&&o(h,{}),branding:null,toolbar:o(b,{defaultSlot:()=>o(k,{readMode:!0})}),fullScreenToolbar:o(C,{defaultSlot:()=>o(g,{})}),viewControls:o(w,{}),toolControls:o(v,{}),overlay:null,mobileControls:o(p.OrientationContainer,{portraitComponent:o(p.Layout,{chat:null,toolbar:o(x,{readMode:!0}),navigation:null,drawer:!L&&B}),landscapeComponent:null}),mobileTopNavigation:R&&o(h,{}),mobileHeaderActionButton:null,mobileHeaderCenter:!L&&o(e,{variant:"h6",sx:{paddingBlock:1},children:M}),sideEffects:null,footer:t(r,{children:[o(d.DesktopReadonlyBanner,{}),o(c,{})]})})};
1
+ import{jsx as o,jsxs as t}from"react/jsx-runtime";import{Stack as r,Typography as e}from"@mui/material";import{match as a}from"ts-pattern";import{isCustomSummaryComponentSnapshot as n,isSimpleSummaryComponentSnapshot as l}from"#package/domain";import{useIsFullscreenActive as i,useRootEntityPrice as m}from"#package/react-sdk";import{Sidebar as s,MobileControls as p}from"#package/ui-sdk";import{usePreview as u,useSidebarSummary as f}from"../../../../configurator-context/index.js";import{LayoutSlots as d}from"../../../configurator-layout/index.js";import{LayoutFooter as c,LayoutToolbarReadDesktop as b,LayoutToolbarReadDesktopFullScreen as C,SimpleSummary as j}from"../../../phoenix-layout-elements/index.js";import{SaveMessageSnackbars as g}from"../../../save-message-snackbars/index.js";import{FullscreenDesktopToolbar as k}from"../../toolbar/desktop-toolbar/FullscreenDesktopToolbar.js";import{CloseConfiguratorButton as x}from"./CloseConfiguratorButton.js";import{CommonDesktopToolbar as h}from"./CommonDesktopToolbar.js";import{CommonMobileToolbar as v}from"./CommonMobileToolbar.js";import{ReactiveInterfaceLayout as y}from"./ReactiveInterfaceLayout.js";import{ToolControls as w}from"./ToolControls.js";import{ViewControls as T}from"./ViewControls.js";export const SummaryReadLayout=()=>{let{page:B}=f(),L=a(B).with(null,()=>null).when(n,o=>o.state.page).when(l,t=>o(j,{summary:t.state.items})).otherwise(()=>null),M=i(),S=m(),{isPreview:D,isPreviewEnabled:R}=u(),H=!M&&!D&&R;return o(y,{canvas:o(d.Canvas,{}),sidebar:L&&o(s.Layout,{content:L,chat:null,footer:null}),topNavigation:H&&o(x,{}),branding:null,toolbar:o(b,{defaultSlot:()=>o(h,{readMode:!0})}),fullScreenToolbar:o(C,{defaultSlot:()=>o(k,{})}),viewControls:o(T,{}),toolControls:o(w,{}),overlay:o(g,{}),mobileControls:o(p.OrientationContainer,{portraitComponent:o(p.Layout,{chat:null,toolbar:o(v,{readMode:!0}),navigation:null,drawer:!M&&L}),landscapeComponent:null}),mobileTopNavigation:H&&o(x,{}),mobileHeaderActionButton:null,mobileHeaderCenter:!M&&o(e,{variant:"h6",sx:{paddingBlock:1},children:S}),sideEffects:null,footer:t(r,{children:[o(d.DesktopReadonlyBanner,{}),o(c,{})]})})};
@@ -1 +1 @@
1
- import{jsx as o,jsxs as m,Fragment as r}from"react/jsx-runtime";import{Typography as t}from"@mui/material";import{match as e}from"ts-pattern";import{customPriceFooterComponent as a,isCustomSummaryComponentSnapshot as i,isSimpleSummaryComponentSnapshot as n}from"#package/domain";import{useFirstRootComponent as s,useIsFullscreenActive as l,useRootEntityPrice as p}from"#package/react-sdk";import{MobileControls as c,MobileControls as f}from"#package/ui-sdk";import{useEnterSidebarSummary as u,useHasSidebarSummary as d,useLeaveSidebarSummary as b,useSidebarSummary as g}from"../../../../configurator-context/index.js";import{LayoutSlots as j}from"../../../configurator-layout/index.js";import{LayoutDialog as y,LayoutFooter as C,SimpleSummary as S}from"../../../phoenix-layout-elements/index.js";import{MobileChat as v}from"../../chat/MobileChat.js";import{FullscreenDesktopToolbar as h}from"../../toolbar/desktop-toolbar/FullscreenDesktopToolbar.js";import{CommonDesktopToolbar as k}from"../common/CommonDesktopToolbar.js";import{CommonFinalizePage as w}from"../common/CommonFinalizePage.js";import{CommonMobileToolbar as x}from"../common/CommonMobileToolbar.js";import{CommonTopNavigation as A}from"../common/CommonTopNavigation.js";import{DefaultViewOnlyMessage as T}from"../common/DefaultViewOnlyMessage.js";import{InvariantViolations as M}from"../common/InvariantViolations.js";import{ReactiveInterfaceLayout as L}from"../common/ReactiveInterfaceLayout.js";import{SideEffects as N}from"../common/SideEffects.js";import{ToolControls as P}from"../common/ToolControls.js";import{ViewControls as E}from"../common/ViewControls.js";import{SimpleMobileHeaderAction as O}from"./SimpleMobileHeaderAction.js";import{SimpleSidebar as V}from"./SimpleSidebar.js";import{SimpleSidebarContent as B}from"./SimpleSidebarContent.js";import{SimpleMobileTopNavigation as D}from"./SimpleTopNavigation.js";export const SimpleOwnerLayout=()=>{let F=s(a),H=d(),{isSummaryActive:I,page:z}=g(),R=e(z).with(null,()=>null).when(i,o=>o.state.page).when(n,m=>o(S,{summary:m.state.items})).otherwise(()=>null),q=u(),G=b(),J=p(),K=l();return o(L,{canvas:o(j.Canvas,{}),sidebar:o(V,{hasSummary:H,isSummaryActive:I,summaryPage:R,price:J,onEnterSummary:q,onLeaveSummary:G,customPriceNode:F?.state.node}),topNavigation:o(A,{}),branding:null,toolbar:o(k,{}),fullScreenToolbar:o(h,{}),viewControls:o(E,{}),toolControls:o(P,{}),overlay:m(r,{children:[o(M,{}),o(w,{}),o(y,{})]}),mobileControls:o(f.OrientationContainer,{portraitComponent:o(f.Layout,{chat:!K&&o(v,{icon:"CustomBigAiAssistant",label:{id:"sdk.chat.mobile.assistant.label",message:"AI Assistant"}}),toolbar:o(x,{}),navigation:null,drawer:!K&&o(B,{summaryPage:R,isSummaryActive:I,onLeaveSummary:G})}),landscapeComponent:o(c.ViewOnlyMode,{message:o(T,{})})}),mobileTopNavigation:!K&&o(D,{}),mobileHeaderActionButton:!K&&o(O,{isSummaryPageActive:I,onEnterSummary:q,hasSummary:H}),mobileHeaderCenter:!K&&o(t,{variant:"h6",sx:{paddingBlock:1},children:J}),sideEffects:o(N,{}),footer:o(C,{})})};
1
+ import{jsx as o,jsxs as m,Fragment as r}from"react/jsx-runtime";import{Typography as e}from"@mui/material";import{match as t}from"ts-pattern";import{customPriceFooterComponent as a,isCustomSummaryComponentSnapshot as i,isSimpleSummaryComponentSnapshot as n}from"#package/domain";import{useFirstRootComponent as s,useIsFullscreenActive as l,useRootEntityPrice as p}from"#package/react-sdk";import{MobileControls as c,MobileControls as f}from"#package/ui-sdk";import{useEnterSidebarSummary as u,useHasSidebarSummary as d,useLeaveSidebarSummary as b,useSidebarSummary as g}from"../../../../configurator-context/index.js";import{LayoutSlots as j}from"../../../configurator-layout/index.js";import{LayoutDialog as y,LayoutFooter as v,SimpleSummary as C}from"../../../phoenix-layout-elements/index.js";import{SaveMessageSnackbars as S}from"../../../save-message-snackbars/index.js";import{MobileChat as h}from"../../chat/MobileChat.js";import{FullscreenDesktopToolbar as k}from"../../toolbar/desktop-toolbar/FullscreenDesktopToolbar.js";import{CommonDesktopToolbar as x}from"../common/CommonDesktopToolbar.js";import{CommonFinalizePage as w}from"../common/CommonFinalizePage.js";import{CommonMobileToolbar as A}from"../common/CommonMobileToolbar.js";import{CommonTopNavigation as T}from"../common/CommonTopNavigation.js";import{DefaultViewOnlyMessage as M}from"../common/DefaultViewOnlyMessage.js";import{InvariantViolations as L}from"../common/InvariantViolations.js";import{ReactiveInterfaceLayout as N}from"../common/ReactiveInterfaceLayout.js";import{SideEffects as P}from"../common/SideEffects.js";import{ToolControls as E}from"../common/ToolControls.js";import{ViewControls as O}from"../common/ViewControls.js";import{SimpleMobileHeaderAction as V}from"./SimpleMobileHeaderAction.js";import{SimpleSidebar as B}from"./SimpleSidebar.js";import{SimpleSidebarContent as D}from"./SimpleSidebarContent.js";import{SimpleMobileTopNavigation as F}from"./SimpleTopNavigation.js";export const SimpleOwnerLayout=()=>{let H=s(a),I=d(),{isSummaryActive:z,page:R}=g(),q=t(R).with(null,()=>null).when(i,o=>o.state.page).when(n,m=>o(C,{summary:m.state.items})).otherwise(()=>null),G=u(),J=b(),K=p(),Q=l();return o(N,{canvas:o(j.Canvas,{}),sidebar:o(B,{hasSummary:I,isSummaryActive:z,summaryPage:q,price:K,onEnterSummary:G,onLeaveSummary:J,customPriceNode:H?.state.node}),topNavigation:o(T,{}),branding:null,toolbar:o(x,{}),fullScreenToolbar:o(k,{}),viewControls:o(O,{}),toolControls:o(E,{}),overlay:m(r,{children:[o(L,{}),o(S,{}),o(w,{}),o(y,{})]}),mobileControls:o(f.OrientationContainer,{portraitComponent:o(f.Layout,{chat:!Q&&o(h,{icon:"CustomBigAiAssistant",label:{id:"sdk.chat.mobile.assistant.label",message:"AI Assistant"}}),toolbar:o(A,{}),navigation:null,drawer:!Q&&o(D,{summaryPage:q,isSummaryActive:z,onLeaveSummary:J})}),landscapeComponent:o(c.ViewOnlyMode,{message:o(M,{})})}),mobileTopNavigation:!Q&&o(F,{}),mobileHeaderActionButton:!Q&&o(V,{isSummaryPageActive:z,onEnterSummary:G,hasSummary:I}),mobileHeaderCenter:!Q&&o(e,{variant:"h6",sx:{paddingBlock:1},children:K}),sideEffects:o(P,{}),footer:o(v,{})})};
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import{Trans as r}from"@lingui/react";import{Button as t}from"@mui/material";import{memo as i,useCallback as e}from"react";import{useAnalyticsService as m,usePresetEmbeddedState as a}from"#package/react-sdk";import{PhxIcon as n}from"#package/ui-sdk";import{FrontendAnalyticsFactory as s}from"../../../../common/index.js";import{useConfiguratorRouting as l,usePresetSelection as p,usePreview as c}from"../../../../configurator-context/index.js";import{CloseConfiguratorButton as f}from"../common/CloseConfiguratorButton.js";export const SimpleMobileTopNavigation=i(()=>{let i=m(),u=l(),{presetCategories:d}=p(),{isPreview:g,isPreviewEnabled:k}=c(),x=d.flatMap(o=>o.presets).length>1,j=e(()=>{i.push(s.GoToProductsClicked()),u.goToIndex()},[i,u]);if(!a())return x||g||!k?x?o(t,{size:"small",startIcon:o(n,{name:"ArrowLeft"}),onClick:j,children:o(r,{id:"sdk.layout.navigation.mobile.product.label",message:"Website"})}):null:o(f,{})});
1
+ import{jsx as o}from"react/jsx-runtime";import{Trans as r}from"@lingui/react";import{Button as t}from"@mui/material";import{memo as e,useCallback as i}from"react";import{FrontendAnalyticsFactory as a,useAnalyticsService as m,usePresetEmbeddedState as s}from"#package/react-sdk";import{PhxIcon as n}from"#package/ui-sdk";import{useConfiguratorRouting as l,usePresetSelection as p,usePreview as c}from"../../../../configurator-context/index.js";import{CloseConfiguratorButton as f}from"../common/CloseConfiguratorButton.js";export const SimpleMobileTopNavigation=e(()=>{let e=m(),u=l(),{presetCategories:d}=p(),{isPreview:g,isPreviewEnabled:k}=c(),x=d.flatMap(o=>o.presets).length>1,b=i(()=>{e.push(a.GoToProductsClicked()),u.goToIndex()},[e,u]);if(!s())return x||g||!k?x?o(t,{size:"small",startIcon:o(n,{name:"ArrowLeft"}),onClick:b,children:o(r,{id:"sdk.layout.navigation.mobile.product.label",message:"Website"})}):null:o(f,{})});
@@ -1,10 +1,10 @@
1
1
  import type { Localizable } from '@salsita-ai/common/utils';
2
2
  export interface TopNavigationStep {
3
- navigationStates: string[];
3
+ readonly navigationStates: readonly string[];
4
4
  label: Localizable;
5
5
  }
6
6
  export interface StepsNavigationComponentProps {
7
- steps: TopNavigationStep[];
7
+ steps: readonly TopNavigationStep[];
8
8
  }
9
9
  declare const StepsNavigationComponent: (props: StepsNavigationComponentProps) => import("react/jsx-runtime").JSX.Element;
10
10
  /**
@@ -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 a}from"@lingui/react";import{memo as i,useCallback as o}from"react";import{FrontendAnalyticsFactory as s,useActiveNavigationState as n,useAnalyticsService as r,useDomain as p,usePresetEmbeddedState as c,useResolveLocalizable as l}from"#package/react-sdk";import{TopNavigation as d,useResponsive as m}from"#package/ui-sdk";import{useConfiguratorRouting as g,usePresetSelection as u}from"../../../../configurator-context/index.js";export const StepsNavigation=i(i=>{let{steps:f}=i,k=r(),{navigationSystem:v,storeSystem:x}=p(),h=n(),C=g(),S=l(),{presetCategories:T}=u(),j=c(),N=T.flatMap(t=>t.presets).length>1,b=!j&&N,I=f.findIndex(t=>t.navigationStates.includes(h))+ +!!b,{isTablet:P}=m(),y=o(()=>{k.push(s.GoToProductsClicked()),C.goToIndex()},[k,C]);return e(d.Root,{activeStep:I,nonLinear:!0,compact:P,fullWidth:!0,children:[b&&t(d.Step,{isCompleted:!0,onClick:y,compact:P,children:t(a,{id:"sdk.layout.navigation.steps.first.label",message:"Products"})}),f.map((e,a)=>{let i=b?a<I-1:a<I,o=S(e.label);return t(d.Step,{isCompleted:i,isDisabled:!i,compact:P,onClick:()=>{let t=e.navigationStates[0];t&&(k.push(s.TopNavigationStepClicked(t)),x.stageAndCommit([v.getNavigationUpdate(t)]))},children:o},o)})]})});
@@ -1 +1 @@
1
- import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import{useCallback as a,useMemo as i}from"react";import{customPriceFooterComponent as n,navigationStepsComponent as r,sidebarTabsComponent as s}from"#package/domain";import{useActiveNavigationState as m,useComponents as l,useDomain as p,useFirstRootComponent as c,usePresetEmbeddedState as f,useResolveLocalizable as d,useRootEntityPrice as g,useSelectedDomainEntityId as u,useStoreSelector as v}from"#package/react-sdk";import{MobileControls as b}from"#package/ui-sdk";import{useConfiguratorRouting as j,usePresetSelection as S}from"../../../../configurator-context/index.js";import{LayoutSlots as x}from"../../../configurator-layout/index.js";import{LayoutDialog as C}from"../../../phoenix-layout-elements/LayoutDialog.js";import{LayoutFooter as y,LayoutToolbarDesktop as k,LayoutToolbarDesktopFullScreen as T}from"../../../phoenix-layout-elements/index.js";import{FullscreenDesktopToolbar as I}from"../../toolbar/desktop-toolbar/FullscreenDesktopToolbar.js";import{CommonDesktopToolbar as h}from"../common/CommonDesktopToolbar.js";import{CommonFinalizePage as N}from"../common/CommonFinalizePage.js";import{DefaultViewOnlyMessage as w}from"../common/DefaultViewOnlyMessage.js";import{InvariantViolations as A}from"../common/InvariantViolations.js";import{ReactiveInterfaceLayout as D}from"../common/ReactiveInterfaceLayout.js";import{SideEffects as E}from"../common/SideEffects.js";import{ToolControls as L}from"../common/ToolControls.js";import{ViewControls as M}from"../common/ViewControls.js";import{StepsNavigation as P}from"./StepsNavigation.js";import{StepsSideBar as V}from"./StepsSideBar.js";export const StepsOwnerLayout=()=>{let{storeSystem:F,navigationSystem:O}=p(),B=d(),H=m(),R=u(),U=c(r),z=c(n),$=l({componentTypes:[s],entityIds:[R]}),q=i(()=>U?.state.steps??[],[U]),G=i(()=>($??[]).flatMap(o=>o.state.tabs).map(o=>{let t=o.navigationStates[0];if(!t)throw Error(`Tab ${t} has no navigation states!`);return{label:B(o.label),icon:o.icon,value:t,isActive:o.navigationStates.includes(H)}}),[$,H,B]),J=i(()=>{let o=G.find(o=>o.isActive);return o?.value??"none"},[G]),K=v(o=>R===o.state.rootEntityId,[R]),Q=g(),W=j(),{presetCategories:X}=S(),Y=f(),Z=X.flatMap(o=>o.presets).length>1,_=!Y&&Z,oo=a(()=>{let o=q.findIndex(o=>o.navigationStates.includes(H)),t=q[o-1];if(!t){_&&W.goToIndex();return}let e=t.navigationStates[0];e&&F.stageAndCommit([O.getNavigationUpdate(e)])},[O,H,q,_,W,F]),ot=a(()=>{let o=q.findIndex(o=>o.navigationStates.includes(H)),t=q[o+1];if(!t)return;let e=t.navigationStates[0];e&&F.stageAndCommit([O.getNavigationUpdate(e)])},[O,H,q,F]),oe=i(()=>q.findIndex(o=>o.navigationStates.includes(H))===q.length-1,[q,H]);return o(D,{canvas:o(x.Canvas,{}),sidebar:o(V,{price:Q,tabs:G,activeTab:J,isRootPage:K,customPriceNode:z?.state.node,isLastStep:oe,onNextStepClick:ot,onPreviousStepClick:oo}),viewControls:o(M,{}),toolControls:o(L,{}),topNavigation:o(P,{steps:q}),branding:null,toolbar:o(k,{defaultSlot:()=>o(h,{})}),fullScreenToolbar:o(T,{defaultSlot:()=>o(I,{})}),overlay:t(e,{children:[o(A,{}),o(N,{}),o(C,{})]}),mobileControls:o(b.ViewOnlyMode,{message:o(w,{})}),mobileTopNavigation:null,mobileHeaderActionButton:null,mobileHeaderCenter:null,sideEffects:o(E,{}),footer:o(y,{})})};
1
+ import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import{useCallback as a,useMemo as i}from"react";import{customPriceFooterComponent as n,navigationStepsComponent as r,sidebarTabsComponent as s}from"#package/domain";import{useActiveNavigationState as m,useComponents as l,useDomain as p,useFirstRootComponent as c,usePresetEmbeddedState as f,useResolveLocalizable as d,useRootEntityPrice as g,useSelectedDomainEntityId as u,useStoreSelector as v}from"#package/react-sdk";import{MobileControls as b}from"#package/ui-sdk";import{useConfiguratorRouting as j,usePresetSelection as S}from"../../../../configurator-context/index.js";import{LayoutSlots as x}from"../../../configurator-layout/index.js";import{LayoutDialog as C}from"../../../phoenix-layout-elements/LayoutDialog.js";import{LayoutFooter as y,LayoutToolbarDesktop as k,LayoutToolbarDesktopFullScreen as T}from"../../../phoenix-layout-elements/index.js";import{SaveMessageSnackbars as I}from"../../../save-message-snackbars/index.js";import{FullscreenDesktopToolbar as h}from"../../toolbar/desktop-toolbar/FullscreenDesktopToolbar.js";import{CommonDesktopToolbar as N}from"../common/CommonDesktopToolbar.js";import{CommonFinalizePage as w}from"../common/CommonFinalizePage.js";import{DefaultViewOnlyMessage as A}from"../common/DefaultViewOnlyMessage.js";import{InvariantViolations as D}from"../common/InvariantViolations.js";import{ReactiveInterfaceLayout as E}from"../common/ReactiveInterfaceLayout.js";import{SideEffects as L}from"../common/SideEffects.js";import{ToolControls as M}from"../common/ToolControls.js";import{ViewControls as P}from"../common/ViewControls.js";import{StepsNavigation as V}from"./StepsNavigation.js";import{StepsSideBar as F}from"./StepsSideBar.js";export const StepsOwnerLayout=()=>{let{storeSystem:O,navigationSystem:B}=p(),H=d(),R=m(),U=u(),z=c(r),$=c(n),q=l({componentTypes:[s],entityIds:[U]}),G=i(()=>z?.state.steps??[],[z]),J=i(()=>(q??[]).flatMap(o=>o.state.tabs).map(o=>{let t=o.navigationStates[0];if(!t)throw Error(`Tab ${t} has no navigation states!`);return{label:H(o.label),icon:o.icon,value:t,isActive:o.navigationStates.includes(R)}}),[q,R,H]),K=i(()=>{let o=J.find(o=>o.isActive);return o?.value??"none"},[J]),Q=v(o=>U===o.state.rootEntityId,[U]),W=g(),X=j(),{presetCategories:Y}=S(),Z=f(),_=Y.flatMap(o=>o.presets).length>1,oo=!Z&&_,ot=a(()=>{let o=G.findIndex(o=>o.navigationStates.includes(R)),t=G[o-1];if(!t){oo&&X.goToIndex();return}let e=t.navigationStates[0];e&&O.stageAndCommit([B.getNavigationUpdate(e)])},[B,R,G,oo,X,O]),oe=a(()=>{let o=G.findIndex(o=>o.navigationStates.includes(R)),t=G[o+1];if(!t)return;let e=t.navigationStates[0];e&&O.stageAndCommit([B.getNavigationUpdate(e)])},[B,R,G,O]),oa=i(()=>G.findIndex(o=>o.navigationStates.includes(R))===G.length-1,[G,R]);return o(E,{canvas:o(x.Canvas,{}),sidebar:o(F,{price:W,tabs:J,activeTab:K,isRootPage:Q,customPriceNode:$?.state.node,isLastStep:oa,onNextStepClick:oe,onPreviousStepClick:ot}),viewControls:o(P,{}),toolControls:o(M,{}),topNavigation:o(V,{steps:G}),branding:null,toolbar:o(k,{defaultSlot:()=>o(N,{})}),fullScreenToolbar:o(T,{defaultSlot:()=>o(h,{})}),overlay:t(e,{children:[o(D,{}),o(I,{}),o(w,{}),o(C,{})]}),mobileControls:o(b.ViewOnlyMode,{message:o(A,{})}),mobileTopNavigation:null,mobileHeaderActionButton:null,mobileHeaderCenter:null,sideEffects:o(L,{}),footer:o(y,{})})};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import{Trans as r}from"@lingui/react";import{Button as i,Stack as n}from"@mui/material";import{useCallback as a}from"react";import{useAnalyticsService as l,usePresetEmbeddedState as m,useResolveLocalizable as s,useSession as c}from"#package/react-sdk";import{PhxIcon as p,SidebarPrice as d,StepsSidebarFooterLayout as u}from"#package/ui-sdk";import{FrontendAnalyticsFactory as f}from"../../../../common/index.js";import{CommonFinalizeButton as k}from"../common/CommonFinalizeButton.js";import{SaveTemplateButton as g}from"../common/SaveTemplateButton.js";import{SetAsTemplateButton as h}from"../common/SetAsTemplateButton.js";let x={id:"sdk.totalPrice",message:"Total price"},S=t=>{let{onClick:o}=t,n=l(),m=a(()=>{n.push(f.PreviousStepButtonClicked()),o()},[n,o]);return e(i,{size:"large",startIcon:e(p,{name:"ArrowLeft"}),fullWidth:!0,onClick:m,children:e(r,{id:"sdk.layout.sidebar.previousStep.label",message:"Previous step"})})},B=t=>{let{onClick:o}=t,n=l(),m=a(()=>{n.push(f.NextStepButtonClicked()),o()},[n,o]);return e(i,{variant:"contained",size:"large",endIcon:e(p,{name:"ArrowRight"}),fullWidth:!0,onClick:m,children:e(r,{id:"sdk.layout.sidebar.nextStep.label",message:"Next step"})})};export const StepsSidebarFooter=r=>{let{formattedPrice:i,customPriceNode:a,isLastStep:l,onPreviousStepClick:p,onNextStepClick:f}=r,b=m(),j=s(),C=null!=c().rawAdminSessionToken,v=C&&b,A=C&&!b;return e(u,{priceNode:t(o,{children:[a,!a&&i&&t(n,{alignItems:"center",flexWrap:"wrap",direction:"row",children:[e(d.Label,{label:j(x),sx:{marginInlineEnd:"auto"}}),e(d.Value,{value:i})]})]}),startActionButton:e(S,{onClick:p}),endActionButton:t(o,{children:[!l&&e(B,{onClick:f}),l&&!v&&e(k,{}),l&&v&&e(g,{})]}),templateButton:l&&A&&e(h,{})})};
1
+ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{Trans as o}from"@lingui/react";import{Button as i,Stack as n}from"@mui/material";import{useCallback as a}from"react";import{FrontendAnalyticsFactory as l,useAnalyticsService as s,usePresetEmbeddedState as m,useResolveLocalizable as c,useSession as p}from"#package/react-sdk";import{PhxIcon as u,SidebarPrice as d,StepsSidebarFooterLayout as k}from"#package/ui-sdk";import{CommonFinalizeButton as f}from"../common/CommonFinalizeButton.js";import{SaveTemplateButton as g}from"../common/SaveTemplateButton.js";import{SetAsTemplateButton as h}from"../common/SetAsTemplateButton.js";let x={id:"sdk.totalPrice",message:"Total price"},S=t=>{let{onClick:r}=t,n=s(),m=a(()=>{n.push(l.PreviousStepButtonClicked()),r()},[n,r]);return e(i,{size:"large",startIcon:e(u,{name:"ArrowLeft"}),fullWidth:!0,onClick:m,children:e(o,{id:"sdk.layout.sidebar.previousStep.label",message:"Previous step"})})},B=t=>{let{onClick:r}=t,n=s(),m=a(()=>{n.push(l.NextStepButtonClicked()),r()},[n,r]);return e(i,{variant:"contained",size:"large",endIcon:e(u,{name:"ArrowRight"}),fullWidth:!0,onClick:m,children:e(o,{id:"sdk.layout.sidebar.nextStep.label",message:"Next step"})})};export const StepsSidebarFooter=o=>{let{formattedPrice:i,customPriceNode:a,isLastStep:l,onPreviousStepClick:s,onNextStepClick:u}=o,b=m(),C=c(),j=null!=p().rawAdminSessionToken,v=j&&b,A=j&&!b;return e(k,{priceNode:t(r,{children:[a,!a&&i&&t(n,{alignItems:"center",flexWrap:"wrap",direction:"row",children:[e(d.Label,{label:C(x),sx:{marginInlineEnd:"auto"}}),e(d.Value,{value:i})]})]}),startActionButton:e(S,{onClick:s}),endActionButton:t(r,{children:[!l&&e(B,{onClick:u}),l&&!v&&e(f,{}),l&&v&&e(g,{})]}),templateButton:l&&A&&e(h,{})})};
@@ -1 +1 @@
1
- import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import{useMemo as r}from"react";import{match as a}from"ts-pattern";import{customPriceFooterComponent as m,isCustomSummaryComponentSnapshot as n,isSimpleSummaryComponentSnapshot as i,sidebarTabsComponent as s}from"#package/domain";import{useActiveNavigationState as l,useComponents as c,useFirstRootComponent as p,useResolveLocalizable as f,useRootEntityPrice as u,useSelectedDomainEntityId as d,useStoreSelector as b}from"#package/react-sdk";import{MobileControls as g}from"#package/ui-sdk";import{useEnterSidebarSummary as v,useHasSidebarSummary as j,useLeaveSidebarSummary as y,useSidebarSummary as T}from"../../../../configurator-context/index.js";import{LayoutSlots as h}from"../../../configurator-layout/index.js";import{LayoutDialog as w,LayoutFooter as C,SimpleSummary as x}from"../../../phoenix-layout-elements/index.js";import{FullscreenDesktopToolbar as S}from"../../toolbar/desktop-toolbar/FullscreenDesktopToolbar.js";import{CommonDesktopToolbar as k}from"../common/CommonDesktopToolbar.js";import{CommonFinalizePage as E}from"../common/CommonFinalizePage.js";import{CommonTopNavigation as A}from"../common/CommonTopNavigation.js";import{DefaultViewOnlyMessage as I}from"../common/DefaultViewOnlyMessage.js";import{InvariantViolations as N}from"../common/InvariantViolations.js";import{ReactiveInterfaceLayout as P}from"../common/ReactiveInterfaceLayout.js";import{SideEffects as V}from"../common/SideEffects.js";import{ToolControls as D}from"../common/ToolControls.js";import{ViewControls as F}from"../common/ViewControls.js";import{TabsSidebar as L}from"./TabsSidebar.js";export const TabsOwnerLayout=()=>{let M=f(),O=l(),H=d(),{isSummaryActive:R,page:z}=T(),B=a(z).with(null,()=>null).when(n,o=>o.state.page).when(i,t=>o(x,{summary:t.state.items})).otherwise(()=>null),$=j(),q=v(),G=y(),J=c({componentTypes:[s],entityIds:[H]}),K=p(m),Q=b(o=>H===o.state.rootEntityId,[H]),U=r(()=>(J??[]).flatMap(o=>o.state.tabs).map(o=>{let t=o.navigationStates[0];if(!t)throw Error(`Tab ${t} has no navigation states!`);return{label:M(o.label),icon:o.icon,value:t,isActive:o.navigationStates.includes(O)}}),[J,O,M]),W=r(()=>{let o=U.find(o=>o.isActive);return o?.value??"none"},[U]),X=u();return o(e,{children:o(P,{canvas:o(h.Canvas,{}),sidebar:o(L,{hasSummary:$,isSummaryActive:R,summaryPage:B,price:X,onEnterSummary:q,onLeaveSummary:G,tabs:U,activeTab:W,isRootPage:Q,customPriceNode:K?.state.node}),topNavigation:o(A,{}),branding:null,toolbar:o(k,{}),fullScreenToolbar:o(S,{}),viewControls:o(F,{}),toolControls:o(D,{}),overlay:t(e,{children:[o(N,{}),o(E,{}),o(w,{})]}),mobileControls:o(g.ViewOnlyMode,{message:o(I,{})}),mobileTopNavigation:null,mobileHeaderActionButton:null,mobileHeaderCenter:null,sideEffects:o(V,{}),footer:o(C,{})})})};
1
+ import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import{useMemo as r}from"react";import{match as a}from"ts-pattern";import{customPriceFooterComponent as m,isCustomSummaryComponentSnapshot as n,isSimpleSummaryComponentSnapshot as i,sidebarTabsComponent as s}from"#package/domain";import{useActiveNavigationState as l,useComponents as c,useFirstRootComponent as p,useResolveLocalizable as f,useRootEntityPrice as u,useSelectedDomainEntityId as d,useStoreSelector as b}from"#package/react-sdk";import{MobileControls as g}from"#package/ui-sdk";import{useEnterSidebarSummary as v,useHasSidebarSummary as j,useLeaveSidebarSummary as y,useSidebarSummary as T}from"../../../../configurator-context/index.js";import{LayoutSlots as h}from"../../../configurator-layout/index.js";import{LayoutDialog as w,LayoutFooter as x,SimpleSummary as C}from"../../../phoenix-layout-elements/index.js";import{SaveMessageSnackbars as k}from"../../../save-message-snackbars/index.js";import{FullscreenDesktopToolbar as S}from"../../toolbar/desktop-toolbar/FullscreenDesktopToolbar.js";import{CommonDesktopToolbar as E}from"../common/CommonDesktopToolbar.js";import{CommonFinalizePage as A}from"../common/CommonFinalizePage.js";import{CommonTopNavigation as I}from"../common/CommonTopNavigation.js";import{DefaultViewOnlyMessage as N}from"../common/DefaultViewOnlyMessage.js";import{InvariantViolations as P}from"../common/InvariantViolations.js";import{ReactiveInterfaceLayout as V}from"../common/ReactiveInterfaceLayout.js";import{SideEffects as D}from"../common/SideEffects.js";import{ToolControls as F}from"../common/ToolControls.js";import{ViewControls as L}from"../common/ViewControls.js";import{TabsSidebar as M}from"./TabsSidebar.js";export const TabsOwnerLayout=()=>{let O=f(),H=l(),R=d(),{isSummaryActive:z,page:B}=T(),$=a(B).with(null,()=>null).when(n,o=>o.state.page).when(i,t=>o(C,{summary:t.state.items})).otherwise(()=>null),q=j(),G=v(),J=y(),K=c({componentTypes:[s],entityIds:[R]}),Q=p(m),U=b(o=>R===o.state.rootEntityId,[R]),W=r(()=>(K??[]).flatMap(o=>o.state.tabs).map(o=>{let t=o.navigationStates[0];if(!t)throw Error(`Tab ${t} has no navigation states!`);return{label:O(o.label),icon:o.icon,value:t,isActive:o.navigationStates.includes(H)}}),[K,H,O]),X=r(()=>{let o=W.find(o=>o.isActive);return o?.value??"none"},[W]),Y=u();return o(e,{children:o(V,{canvas:o(h.Canvas,{}),sidebar:o(M,{hasSummary:q,isSummaryActive:z,summaryPage:$,price:Y,onEnterSummary:G,onLeaveSummary:J,tabs:W,activeTab:X,isRootPage:U,customPriceNode:Q?.state.node}),topNavigation:o(I,{}),branding:null,toolbar:o(E,{}),fullScreenToolbar:o(S,{}),viewControls:o(L,{}),toolControls:o(F,{}),overlay:t(e,{children:[o(P,{}),o(k,{}),o(A,{}),o(w,{})]}),mobileControls:o(g.ViewOnlyMode,{message:o(N,{})}),mobileTopNavigation:null,mobileHeaderActionButton:null,mobileHeaderCenter:null,sideEffects:o(D,{}),footer:o(x,{})})})};
@@ -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{useCallback as e,useMemo as i}from"react";import{match as m}from"ts-pattern";import{DimensionUnit as r}from"#package/domain";import{FrontendAnalyticsFactory as a,useAnalyticsService as n,useDimensionConfig as o,useDimensionState as l,useDimensions as s,useLocalizable as u}from"#package/react-sdk";import{ToggleSelector as c}from"#package/ui-sdk";let h=o=>{let{value:l}=o,u=n(),{setGlobalUnit:h}=s(),p=e(()=>{u.push(a.GlobalDimensionsButtonClicked(l)),h(l)},[u,l,h]),f=i(()=>m(l).with(r.mm,()=>"mm").with(r.cm,()=>"cm").with(r.m,()=>"m").with(r.inch,()=>"in").with(r.feet,()=>"ft").exhaustive(),[l]),w=i(()=>m(l).with(r.mm,()=>"millimeter").with(r.cm,()=>"centimeter").with(r.m,()=>"meter").with(r.inch,()=>"inches").with(r.feet,()=>"feet").exhaustive(),[l]);return t(c.Item,{value:l,"aria-label":w,onClick:p,children:f})},p={id:"sdk.toolbar.measurements.units.aria",message:"Measurement unit setup"};export const DimensionUnitSelector=()=>{let{availableDimensions:e}=o(),{unit:i}=l(),m=u(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 +1 @@
1
- import{jsx as i}from"react/jsx-runtime";import{useLingui as e,Trans as o}from"@lingui/react";import{Switch as r}from"@mui/material";import{useObservableEagerState as t}from"observable-hooks";import{useCallback as a}from"react";import{applicationConfigComponent as m}from"#package/domain";import{useAnalyticsService as n,useFirstRootComponent as s}from"#package/react-sdk";import{MobileToolbar as c}from"#package/ui-sdk";import{useConfigurator as l}from"../../../../application-runtime/index.js";import{FrontendAnalyticsFactory as p}from"../../../../common/index.js";let d={"aria-label":{id:"sdk.toolbar.measurements.input.aria",message:"Switch measurements"}};export const MeasurementsIndicatorsSwitch=()=>{let{_:u}=e(),g=s(m),f=g?.state.indicatorSwitch??!0,k=n(),{canvasSystem:b}=l(),h=t(b.dimensionIndicatorShown$),x=a(()=>{k.push(p.DimensionIndicatorsToggled()),b.toggleDimensionIndicator()},[k,b]);return f?i(c.SectionItem,{title:i(o,{id:"sdk.toolbar.measurements.indicators.label",message:"Dimension indicators"}),content:i(r,{inputProps:{...d,"aria-label":u(d["aria-label"])},checked:h,onChange:x})}):null};
1
+ import{jsx as e}from"react/jsx-runtime";import{useLingui as i,Trans as t}from"@lingui/react";import{Switch as a}from"@mui/material";import{useObservableEagerState as r}from"observable-hooks";import{useCallback as o}from"react";import{applicationConfigComponent as m}from"#package/domain";import{FrontendAnalyticsFactory as n,useAnalyticsService as s,useFirstRootComponent as c}from"#package/react-sdk";import{MobileToolbar as l}from"#package/ui-sdk";import{useConfigurator as p}from"../../../../application-runtime/index.js";let d={"aria-label":{id:"sdk.toolbar.measurements.input.aria",message:"Switch measurements"}};export const MeasurementsIndicatorsSwitch=()=>{let{_:u}=i(),g=c(m),f=g?.state.indicatorSwitch??!0,k=s(),{canvasSystem:b}=p(),h=r(b.dimensionIndicatorShown$),I=o(()=>{k.push(n.DimensionIndicatorsToggled()),b.toggleDimensionIndicator()},[k,b]);return f?e(l.SectionItem,{title:e(t,{id:"sdk.toolbar.measurements.indicators.label",message:"Dimension indicators"}),content:e(a,{inputProps:{...d,"aria-label":u(d["aria-label"])},checked:h,onChange:I})}):null};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{memo as l,useCallback as t}from"react";import{useAnalyticsService as o,useDomain as r,useLocalizable as s}from"#package/react-sdk";import{DesktopToolbar as n,PhxIcon as i}from"#package/ui-sdk";import{FrontendAnalyticsFactory as a}from"../../../../common/index.js";let c={id:"sdk.toolbar.fullscreen.enter.label",message:"Open fullscreen"};export const EnterFullscreenToolbarAction=l(({openFullscreenButtonTitle:l=c,showTitle:m=!1})=>{let u=o(),{navigationSystem:d,storeSystem:g}=r(),p=t(()=>{u.push(a.FullScreenModeToggled()),g.stageAndCommit([d.getToggleFullscreenUpdate()])},[d,u,g]),f=s(l);return e(n.Button,{title:f,size:"small",onClick:p,showTitle:m,children:e(i,{name:"ArrowsOut"})})});let m={id:"sdk.toolbar.fullscreen.exit.label",message:"Exit fullscreen"};export const ExitFullscreenToolbarAction=l(({exitFullscreenButtonTitle:l=m,showTitle:c=!1})=>{let u=o(),{navigationSystem:d,storeSystem:g}=r(),p=t(()=>{u.push(a.FullScreenModeToggled()),g.stageAndCommit([d.getToggleFullscreenUpdate()])},[u,d,g]),f=s(l);return e(n.Button,{title:f,size:"small",onClick:p,showTitle:c,children:e(i,{name:"ArrowsIn"})})});
1
+ import{jsx as e}from"react/jsx-runtime";import{memo as l,useCallback as t}from"react";import{FrontendAnalyticsFactory as r,useAnalyticsService as o,useDomain as s,useLocalizable as n}from"#package/react-sdk";import{DesktopToolbar as i,PhxIcon as a}from"#package/ui-sdk";let c={id:"sdk.toolbar.fullscreen.enter.label",message:"Open fullscreen"};export const EnterFullscreenToolbarAction=l(({openFullscreenButtonTitle:l=c,showTitle:m=!1})=>{let u=o(),{navigationSystem:d,storeSystem:g}=s(),p=t(()=>{u.push(r.FullScreenModeToggled()),g.stageAndCommit([d.getToggleFullscreenUpdate()])},[d,u,g]),f=n(l);return e(i.Button,{title:f,size:"small",onClick:p,showTitle:m,children:e(a,{name:"ArrowsOut"})})});let m={id:"sdk.toolbar.fullscreen.exit.label",message:"Exit fullscreen"};export const ExitFullscreenToolbarAction=l(({exitFullscreenButtonTitle:l=m,showTitle:c=!1})=>{let u=o(),{navigationSystem:d,storeSystem:g}=s(),p=t(()=>{u.push(r.FullScreenModeToggled()),g.stageAndCommit([d.getToggleFullscreenUpdate()])},[u,d,g]),f=n(l);return e(i.Button,{title:f,size:"small",onClick:p,showTitle:c,children:e(a,{name:"ArrowsIn"})})});
@@ -1 +1 @@
1
- import{jsx as o,jsxs as e,Fragment as r}from"react/jsx-runtime";import{Trans as t}from"@lingui/react";import{Button as l}from"@mui/material";import{useCallback as a,useState as i}from"react";import{useAnalyticsService as s,useResolveLocalizable as n}from"#package/react-sdk";import{DesktopToolbar as m,Dialog as p,PhxIcon as c}from"#package/ui-sdk";import{FrontendAnalyticsFactory as d}from"../../../../common/index.js";let u={id:"sdk.toolbar.help.label",message:"Help"};export const HelpToolbarAction=g=>{let{content:h}=g,[k,f]=i(!1),b=s(),C=a(()=>{b.push(d.HelpDialogOpened()),f(!0)},[b]),x=a(()=>{b.push(d.HelpDialogClosed()),f(!1)},[b]),j=n();return e(r,{children:[o(m.Button,{title:j(u),onClick:C,children:o(c,{name:"Question"})}),o(p.Root,{isOpen:k,onClose:x,children:o(p.ContentLayout,{body:h,controls:o(l,{variant:"contained",onClick:x,children:o(t,{id:"sdk.toolbar.help.close.label",message:"Close"})})})})]})};
1
+ import{jsx as e,jsxs as o,Fragment as t}from"react/jsx-runtime";import{Trans as r}from"@lingui/react";import{Button as l}from"@mui/material";import{useCallback as a,useState as i}from"react";import{FrontendAnalyticsFactory as s,useAnalyticsService as n,useResolveLocalizable as m}from"#package/react-sdk";import{DesktopToolbar as p,Dialog as c,PhxIcon as d}from"#package/ui-sdk";let u={id:"sdk.toolbar.help.label",message:"Help"};export const HelpToolbarAction=g=>{let{content:h}=g,[k,b]=i(!1),f=n(),C=a(()=>{f.push(s.HelpDialogOpened()),b(!0)},[f]),x=a(()=>{f.push(s.HelpDialogClosed()),b(!1)},[f]),H=m();return o(t,{children:[e(p.Button,{title:H(u),onClick:C,children:e(d,{name:"Question"})}),e(c.Root,{isOpen:k,onClose:x,children:e(c.ContentLayout,{body:h,controls:e(l,{variant:"contained",onClick:x,children:e(r,{id:"sdk.toolbar.help.close.label",message:"Close"})})})})]})};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{useLingui as a}from"@lingui/react";import{Box as m,Stack as n}from"@mui/material";import{memo as o,useCallback as s,useMemo as i}from"react";import{match as u}from"ts-pattern";import{DimensionUnit as c}from"#package/domain";import{useAnalyticsService as p,useDimensionState as l}from"#package/react-sdk";import{DesktopToolbar as h,PhxIcon as d}from"#package/ui-sdk";import{FrontendAnalyticsFactory as M}from"../../../../common/index.js";import{DimensionUnitSelector as g}from"../common/DimensionUnitSelector.js";import{MeasurementsIndicatorsSwitch as f}from"../common/MeasurementsIndicatorsSwitch.js";export const MeasurementIcon=t=>{let{unit:r}=t;return u(r).with(c.mm,()=>e(d,{name:"CustomMeasureMm"})).with(c.cm,()=>e(d,{name:"CustomMeasureCm"})).with(c.m,()=>e(d,{name:"CustomMeasureM"})).with(c.inch,()=>e(d,{name:"CustomMeasureIn"})).with(c.feet,()=>e(d,{name:"CustomMeasureFt"})).exhaustive()};let C="measurements";export const MeasurementsToolbarAction=o(o=>{let{anchorRef:u,onClose:c,onToggle:d,openedKey:x,i18n:k}=o,{_:j}=a(),w=i(()=>({changeMeasureButtonTitle:j({id:"sdk.measurements",message:"Change measure"}),changeMeasureButtonAriaLabel:j({id:"sdk.toolbar.measurements.change.aria",message:"open measure menu"}),...k}),[k,j]),b=p(),{unit:B}=l(),I=s(()=>{b.push(M.MeasurementsMenuToggled()),d(C)},[b,d]),T=s(e=>{b.push(M.MeasurementsMenuClosed()),c(e)},[b,c]);return t(r,{children:[e(h.Button,{title:w.changeMeasureButtonTitle,size:"small","aria-expanded":x===C?"true":void 0,"aria-label":w.changeMeasureButtonAriaLabel,"aria-haspopup":"menu",onClick:I,children:e(MeasurementIcon,{unit:B})}),e(h.Popper,{placement:"top-start",anchorEl:u.current,isOpen:x===C,onClose:T,children:e(m,{component:"div",sx:{p:2},children:t(n,{spacing:2,direction:"column",children:[e(f,{}),e(g,{})]})})})]})});
1
+ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{useLingui as a}from"@lingui/react";import{Box as n,Stack as m}from"@mui/material";import{memo as s,useCallback as o,useMemo as i}from"react";import{match as u}from"ts-pattern";import{DimensionUnit as c}from"#package/domain";import{FrontendAnalyticsFactory as p,useAnalyticsService as l,useDimensionState as h}from"#package/react-sdk";import{DesktopToolbar as d,PhxIcon as M}from"#package/ui-sdk";import{DimensionUnitSelector as g}from"../common/DimensionUnitSelector.js";import{MeasurementsIndicatorsSwitch as f}from"../common/MeasurementsIndicatorsSwitch.js";export const MeasurementIcon=t=>{let{unit:r}=t;return u(r).with(c.mm,()=>e(M,{name:"CustomMeasureMm"})).with(c.cm,()=>e(M,{name:"CustomMeasureCm"})).with(c.m,()=>e(M,{name:"CustomMeasureM"})).with(c.inch,()=>e(M,{name:"CustomMeasureIn"})).with(c.feet,()=>e(M,{name:"CustomMeasureFt"})).exhaustive()};let C="measurements";export const MeasurementsToolbarAction=s(s=>{let{anchorRef:u,onClose:c,onToggle:M,openedKey:k,i18n:x}=s,{_:w}=a(),b=i(()=>({changeMeasureButtonTitle:w({id:"sdk.measurements",message:"Change measure"}),changeMeasureButtonAriaLabel:w({id:"sdk.toolbar.measurements.change.aria",message:"open measure menu"}),...x}),[x,w]),j=l(),{unit:B}=h(),I=o(()=>{j.push(p.MeasurementsMenuToggled()),M(C)},[j,M]),T=o(e=>{j.push(p.MeasurementsMenuClosed()),c(e)},[j,c]);return t(r,{children:[e(d.Button,{title:b.changeMeasureButtonTitle,size:"small","aria-expanded":k===C?"true":void 0,"aria-label":b.changeMeasureButtonAriaLabel,"aria-haspopup":"menu",onClick:I,children:e(MeasurementIcon,{unit:B})}),e(d.Popper,{placement:"top-start",anchorEl:u.current,isOpen:k===C,onClose:T,children:e(n,{component:"div",sx:{p:2},children:t(m,{spacing:2,direction:"column",children:[e(f,{}),e(g,{})]})})})]})});
@@ -1 +1 @@
1
- import{jsx as o,jsxs as e}from"react/jsx-runtime";import{useThemeProps as r}from"@mui/material";import{useObservableEagerState as t}from"observable-hooks";import{memo as d,useCallback as i}from"react";import{useAnalyticsService as l,useDomain as s,useResolveLocalizable as a}from"#package/react-sdk";import{DesktopToolbar as n,PhxIcon as m}from"#package/ui-sdk";import{FrontendAnalyticsFactory as p}from"../../../../common/index.js";let u={id:"sdk.toolbar.undoRedo.undo.label",message:"Undo"},c={id:"sdk.toolbar.undoRedo.redo.label",message:"Redo"};export const UndoRedoToolbarGroup=d(d=>{let{showLabels:k=!1,disableTooltip:b=!1,undoButtonTitle:h=u,redoButtonTitle:f=c}=r({name:"PhxToolbarUndoRedo",props:d}),C=l(),{undoSystem:w}=s(),{canUndo:x,canRedo:R}=t(w.can$),T=a(),B=i(()=>{C.push(p.UndoButtonClicked()),w.undo()},[C,w]),g=i(()=>{C.push(p.RedoButtonClicked()),w.redo()},[C,w]);return e(n.ButtonGroup,{children:[o(n.Button,{title:T(h),onClick:B,disabled:!x,showTitle:k,disableTooltip:b,children:o(m,{name:"ArrowCounterClockwise"})}),o(n.Button,{title:T(f),onClick:g,disabled:!R,showTitle:k,disableTooltip:b,children:o(m,{name:"ArrowClockwise"})})]})});
1
+ import{jsx as o,jsxs as e}from"react/jsx-runtime";import{useThemeProps as r}from"@mui/material";import{useObservableEagerState as t}from"observable-hooks";import{memo as d,useCallback as i}from"react";import{FrontendAnalyticsFactory as l,useAnalyticsService as a,useDomain as s,useResolveLocalizable as n}from"#package/react-sdk";import{DesktopToolbar as m,PhxIcon as u}from"#package/ui-sdk";let p={id:"sdk.toolbar.undoRedo.undo.label",message:"Undo"},c={id:"sdk.toolbar.undoRedo.redo.label",message:"Redo"};export const UndoRedoToolbarGroup=d(d=>{let{showLabels:k=!1,disableTooltip:b=!1,undoButtonTitle:h=p,redoButtonTitle:C=c}=r({name:"PhxToolbarUndoRedo",props:d}),f=a(),{undoSystem:w}=s(),{canUndo:R,canRedo:T}=t(w.can$),x=n(),B=i(()=>{f.push(l.UndoButtonClicked()),w.undo()},[f,w]),g=i(()=>{f.push(l.RedoButtonClicked()),w.redo()},[f,w]);return e(m.ButtonGroup,{children:[o(m.Button,{title:x(h),onClick:B,disabled:!R,showTitle:k,disableTooltip:b,children:o(u,{name:"ArrowCounterClockwise"})}),o(m.Button,{title:x(C),onClick:g,disabled:!T,showTitle:k,disableTooltip:b,children:o(u,{name:"ArrowClockwise"})})]})});