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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1009) hide show
  1. package/README.md +19 -14
  2. package/dist/admin/default-admin-elements.d.ts +9 -0
  3. package/dist/admin/default-admin-elements.js +1 -0
  4. package/dist/admin/default-elements/built-in-entity-element.d.ts +10 -0
  5. package/dist/admin/default-elements/built-in-entity-element.js +1 -0
  6. package/dist/admin/default-elements/built-in-layout-element.d.ts +10 -0
  7. package/dist/admin/default-elements/built-in-layout-element.js +1 -0
  8. package/dist/admin/default-elements/index.d.ts +2 -0
  9. package/dist/admin/default-elements/index.js +1 -0
  10. package/dist/admin/index.d.ts +1 -0
  11. package/dist/admin/index.js +1 -1
  12. package/dist/application-spec/caching/content-diff.js +1 -1
  13. package/dist/application-spec/core/application-file.d.ts +0 -2
  14. package/dist/application-spec/core/application-file.js +1 -1
  15. package/dist/application-spec/core/components/component-filter.d.ts +53 -0
  16. package/dist/application-spec/core/components/component-filter.js +1 -0
  17. package/dist/application-spec/core/components/index.d.ts +2 -0
  18. package/dist/application-spec/core/components/index.js +1 -0
  19. package/dist/application-spec/core/components/sdk-code-ref.d.ts +9 -0
  20. package/dist/application-spec/core/components/sdk-code-ref.js +1 -0
  21. package/dist/application-spec/core/enhanced-json-value.d.ts +0 -68
  22. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  23. package/dist/application-spec/core/expressions/index.d.ts +2 -0
  24. package/dist/application-spec/core/expressions/index.js +1 -0
  25. package/dist/application-spec/core/expressions/relation-expression-params.d.ts +11 -0
  26. package/dist/application-spec/core/expressions/relation-expression-params.js +1 -0
  27. package/dist/application-spec/core/expressions/sdk-expression-implementation.d.ts +24 -0
  28. package/dist/application-spec/core/expressions/sdk-expression-implementation.js +1 -0
  29. package/dist/application-spec/core/index.d.ts +2 -0
  30. package/dist/application-spec/core/index.js +1 -1
  31. package/dist/application-spec/core/json-value.d.ts +1 -1
  32. package/dist/application-spec/{core → enhanced-json}/eval-to-constant.d.ts +1 -1
  33. package/dist/application-spec/enhanced-json/index.d.ts +4 -0
  34. package/dist/application-spec/enhanced-json/index.js +1 -0
  35. package/dist/application-spec/enhanced-json/is-enhanced-json-array.d.ts +2 -0
  36. package/dist/application-spec/enhanced-json/is-enhanced-json-array.js +1 -0
  37. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.d.ts +18 -0
  38. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.js +1 -0
  39. package/dist/application-spec/enhanced-json/schema-from-value.d.ts +24 -0
  40. package/dist/application-spec/enhanced-json/schema-from-value.js +1 -0
  41. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.d.ts +14 -0
  42. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.js +1 -0
  43. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.d.ts +12 -0
  44. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.js +1 -0
  45. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.d.ts +13 -0
  46. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.js +1 -0
  47. package/dist/application-spec/errors/diagnostic-codes.d.ts +14 -0
  48. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  49. package/dist/application-spec/errors/diagnostic-messages.d.ts +15 -1
  50. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  51. package/dist/application-spec/generate-application/code/common/code-imports.js +1 -1
  52. package/dist/application-spec/generate-application/code/common/env-reader.js +2 -2
  53. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  54. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  55. package/dist/application-spec/generate-application/code/common/single-quoted-string.d.ts +6 -0
  56. package/dist/application-spec/generate-application/code/common/single-quoted-string.js +1 -0
  57. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  58. package/dist/application-spec/generate-application/code/generate-application-code.d.ts +3 -2
  59. package/dist/application-spec/generate-application/code/generate-application-code.js +1 -1
  60. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +15 -14
  61. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  62. package/dist/application-spec/generate-application/code/standalone-app-files.d.ts +2 -2
  63. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  64. package/dist/application-spec/generate-application/code/story-files.js +1 -1
  65. package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -0
  66. package/dist/application-spec/generate-application/code/templates/application-types.js +6 -6
  67. package/dist/application-spec/generate-application/code/templates/common/doc-comment.d.ts +2 -0
  68. package/dist/application-spec/generate-application/code/templates/common/doc-comment.js +1 -0
  69. package/dist/application-spec/generate-application/code/templates/common/format-property-key.d.ts +7 -0
  70. package/dist/application-spec/generate-application/code/templates/common/format-property-key.js +1 -0
  71. package/dist/application-spec/generate-application/code/templates/common/schema-to-type-string.js +3 -3
  72. package/dist/application-spec/generate-application/code/templates/configurator-config.js +6 -4
  73. package/dist/application-spec/generate-application/code/templates/configurator-globals.d.ts +2 -1
  74. package/dist/application-spec/generate-application/code/templates/configurator-globals.js +19 -6
  75. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +35 -0
  76. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +5 -0
  77. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.d.ts +1 -0
  78. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.js +1 -0
  79. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.d.ts +1 -1
  80. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +7 -7
  81. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  82. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +59 -63
  83. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +8 -0
  84. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  85. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-presets.js +1 -1
  86. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +13 -13
  87. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.d.ts +1 -1
  88. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.js +2 -2
  89. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +2 -1
  90. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  91. package/dist/application-spec/generate-application/code/templates/eslint-config.d.ts +5 -0
  92. package/dist/application-spec/generate-application/code/templates/eslint-config.js +4 -5
  93. package/dist/application-spec/generate-application/code/templates/frontend-config.js +3 -5
  94. package/dist/application-spec/generate-application/code/templates/gitignore.js +0 -3
  95. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.js +7 -7
  96. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.d.ts +12 -0
  97. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.js +7 -0
  98. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.d.ts +43 -0
  99. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +33 -0
  100. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +2 -0
  101. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  102. package/dist/application-spec/generate-application/code/templates/globals.js +24 -44
  103. package/dist/application-spec/generate-application/code/templates/index.d.ts +3 -3
  104. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  105. package/dist/application-spec/generate-application/code/templates/lingui-rc.d.ts +5 -0
  106. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +4 -4
  107. package/dist/application-spec/generate-application/code/templates/prettier-config.d.ts +5 -0
  108. package/dist/application-spec/generate-application/code/templates/prettier-config.js +4 -5
  109. package/dist/application-spec/generate-application/code/templates/root-tsconfig.d.ts +6 -0
  110. package/dist/application-spec/generate-application/code/templates/root-tsconfig.js +2 -0
  111. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  112. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +1 -1
  113. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +5 -5
  114. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +3 -3
  115. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  116. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +2 -2
  117. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +26 -7
  118. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -2
  119. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
  120. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
  121. package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
  122. package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
  123. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
  124. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
  125. package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
  126. package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
  127. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
  128. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
  129. package/dist/application-spec/generate-application/code/templates/story/phx-module.d.ts +8 -2
  130. package/dist/application-spec/generate-application/code/templates/story/phx-module.js +15 -3
  131. package/dist/application-spec/generate-application/code/templates/story/wrapper.d.ts +3 -0
  132. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -1
  133. package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
  134. package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
  135. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +6 -1
  136. package/dist/application-spec/generate-application/code/templates/webhook-index.js +10 -1
  137. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -3
  138. package/dist/application-spec/generate-application/index.d.ts +2 -0
  139. package/dist/application-spec/generate-application/index.js +1 -1
  140. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +6 -4
  141. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +1 -1
  142. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +8 -3
  143. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  144. package/dist/application-spec/generate-application/runtime/admin-runtime/states-runtime.d.ts +2 -2
  145. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +19 -5
  146. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  147. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +6 -4
  148. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +1 -1
  149. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +7 -2
  150. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  151. package/dist/application-spec/generate-application/runtime/configurator-runtime/states-runtime.d.ts +2 -2
  152. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +43 -0
  153. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.js +1 -0
  154. package/dist/application-spec/generate-application/runtime/factory-data/index.d.ts +3 -0
  155. package/dist/application-spec/generate-application/runtime/factory-data/index.js +1 -0
  156. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +13 -0
  157. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -0
  158. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +16 -0
  159. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -0
  160. package/dist/application-spec/generate-application/runtime/migrations/index.d.ts +1 -0
  161. package/dist/application-spec/generate-application/runtime/migrations/index.js +1 -0
  162. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +53 -0
  163. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +1 -0
  164. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +2 -2
  165. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +3 -2
  166. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  167. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +2 -1
  168. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +1 -1
  169. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +3 -0
  170. package/dist/application-spec/generate-application/runtime/sections/component-optic.js +1 -1
  171. package/dist/application-spec/generate-application/runtime/sections/data-runtime.d.ts +4 -4
  172. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +7 -4
  173. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  174. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +9 -5
  175. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  176. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +3 -1
  177. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.js +1 -1
  178. package/dist/application-spec/generate-application/runtime/sections/theme-runtime.d.ts +2 -2
  179. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +3 -3
  180. package/dist/application-spec/generate-application/runtime/spec-code/index.d.ts +2 -0
  181. package/dist/application-spec/generate-application/runtime/spec-code/index.js +1 -0
  182. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +18 -0
  183. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.js +1 -0
  184. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.d.ts +17 -0
  185. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.js +1 -0
  186. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.d.ts +9 -0
  187. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.js +1 -0
  188. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.d.ts +8 -0
  189. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.js +1 -0
  190. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +27 -0
  191. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.js +1 -0
  192. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +5 -0
  193. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -0
  194. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +68 -0
  195. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -0
  196. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +40 -0
  197. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.js +1 -0
  198. package/dist/application-spec/index.d.ts +1 -0
  199. package/dist/application-spec/index.js +1 -1
  200. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +34 -0
  201. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  202. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.d.ts +16 -0
  203. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.js +9 -0
  204. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts +9 -0
  205. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
  206. package/dist/application-spec/parse-application-files/raw-spec/parse-yaml-spec-file.js +1 -1
  207. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +33 -3
  208. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  209. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  210. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  211. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  212. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  213. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  214. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.d.ts +3 -0
  215. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js +1 -0
  216. package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +5 -0
  217. package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -0
  218. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.d.ts +6 -0
  219. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.js +1 -0
  220. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.d.ts +8 -0
  221. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.js +1 -0
  222. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts +10 -0
  223. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.js +1 -0
  224. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.d.ts +98 -0
  225. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.js +1 -0
  226. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts +13 -0
  227. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js +1 -0
  228. package/dist/application-spec/parse-application-files/spec/components/bindings/index.d.ts +2 -0
  229. package/dist/application-spec/parse-application-files/spec/components/bindings/index.js +1 -1
  230. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.d.ts +24 -0
  231. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js +1 -0
  232. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  233. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  234. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  235. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  236. package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts +8 -0
  237. package/dist/application-spec/parse-application-files/spec/components/component-state-type.js +1 -0
  238. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts +13 -0
  239. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js +1 -0
  240. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  241. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  242. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.d.ts +14 -0
  243. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.js +1 -0
  244. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +6 -0
  245. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  246. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +7 -4
  247. package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
  248. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +24 -0
  249. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -0
  250. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.d.ts +13 -0
  251. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.js +1 -0
  252. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
  253. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
  254. package/dist/application-spec/parse-application-files/spec/expressions/expression.d.ts +1 -28
  255. package/dist/application-spec/parse-application-files/spec/expressions/expression.js +1 -1
  256. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -3
  257. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  258. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  259. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  260. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  261. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +3 -1
  262. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  263. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +2 -2
  264. package/dist/application-spec/parse-application-files/spec/invariants/invariants.js +1 -1
  265. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  266. package/dist/application-spec/parse-application-files/spec/model/index.d.ts +1 -0
  267. package/dist/application-spec/parse-application-files/spec/model/index.js +1 -1
  268. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.d.ts +10 -0
  269. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.js +1 -0
  270. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.d.ts +9 -0
  271. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.js +1 -0
  272. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +4 -1
  273. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  274. package/dist/client/phoenix-api.d.ts +463 -0
  275. package/dist/configurator/ConfiguratorApp.js +1 -1
  276. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.d.ts +2 -0
  277. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.js +5 -0
  278. package/dist/configurator/app-loader-content/app-loader-content-name.d.ts +5 -0
  279. package/dist/configurator/app-loader-content/app-loader-content-name.js +1 -0
  280. package/dist/configurator/app-loader-content/index.d.ts +2 -0
  281. package/dist/configurator/app-loader-content/index.js +1 -0
  282. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  283. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +36 -1
  284. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  285. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +19 -3
  286. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  287. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.d.ts +1 -1
  288. package/dist/configurator/application-runtime/extensions/systems/canvas-system.d.ts +8 -0
  289. package/dist/configurator/application-runtime/extensions/systems/canvas-system.js +1 -1
  290. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  291. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.d.ts +8 -0
  292. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.js +1 -0
  293. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.d.ts +23 -1
  294. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.js +1 -1
  295. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.d.ts +12 -0
  296. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.js +1 -0
  297. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +14 -1
  298. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  299. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +52 -5
  300. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  301. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.d.ts +14 -5
  302. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.js +1 -1
  303. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  304. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  305. package/dist/configurator/common/configurator-interface.d.ts +137 -4
  306. package/dist/configurator/common/configurator-interface.js +1 -1
  307. package/dist/configurator/common/index.d.ts +3 -1
  308. package/dist/configurator/common/index.js +1 -1
  309. package/dist/configurator/common/use-reset-camera.d.ts +6 -0
  310. package/dist/configurator/common/use-reset-camera.js +1 -0
  311. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +12 -0
  312. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -0
  313. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.d.ts +9 -0
  314. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.js +1 -0
  315. package/dist/configurator/configuration-not-found-page/index.d.ts +2 -0
  316. package/dist/configurator/configuration-not-found-page/index.js +1 -0
  317. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +12 -0
  318. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -0
  319. package/dist/configurator/configurator-context/PresetSelectionProvider.js +1 -1
  320. package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
  321. package/dist/configurator/configurator-context/ViewportStateSync.d.ts +2 -2
  322. package/dist/configurator/configurator-context/ViewportStateSync.js +1 -1
  323. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +11 -1
  324. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +1 -1
  325. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.d.ts +6 -0
  326. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.js +1 -0
  327. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.d.ts +12 -0
  328. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.js +1 -0
  329. package/dist/configurator/configurator-error-page/create-configurator-error-page.d.ts +9 -0
  330. package/dist/configurator/configurator-error-page/create-configurator-error-page.js +1 -0
  331. package/dist/configurator/configurator-error-page/index.d.ts +3 -0
  332. package/dist/configurator/configurator-error-page/index.js +1 -0
  333. package/dist/configurator/index.d.ts +3 -0
  334. package/dist/configurator/index.js +1 -1
  335. package/dist/configurator/pages/ConfiguratorErrorPage.d.ts +0 -1
  336. package/dist/configurator/pages/ConfiguratorErrorPage.js +1 -1
  337. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  338. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +3 -2
  339. package/dist/configurator/pages/DefaultNotAuthenticatedPage.d.ts +8 -0
  340. package/dist/configurator/pages/DefaultNotAuthenticatedPage.js +1 -0
  341. package/dist/configurator/pages/DefaultPresetUi.d.ts +7 -0
  342. package/dist/configurator/pages/DefaultPresetUi.js +1 -0
  343. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  344. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  345. package/dist/configurator/pages/PresetCreationErrorPage.d.ts +1 -1
  346. package/dist/configurator/pages/PresetCreationErrorPage.js +1 -1
  347. package/dist/configurator/pages/RootPage.js +1 -1
  348. package/dist/configurator/pages/configurator-layout-name.d.ts +2 -0
  349. package/dist/configurator/pages/configurator-layout-name.js +1 -0
  350. package/dist/configurator/pages/default-configurator-elements.d.ts +13 -0
  351. package/dist/configurator/pages/default-configurator-elements.js +1 -0
  352. package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +10 -0
  353. package/dist/configurator/pages/default-elements/built-in-entity-element.js +1 -0
  354. package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +10 -0
  355. package/dist/configurator/pages/default-elements/built-in-layout-element.js +1 -0
  356. package/dist/configurator/pages/default-elements/domain-control-elements.d.ts +6 -0
  357. package/dist/configurator/pages/default-elements/domain-control-elements.js +1 -0
  358. package/dist/configurator/pages/default-elements/index.d.ts +5 -0
  359. package/dist/configurator/pages/default-elements/index.js +1 -0
  360. package/dist/configurator/pages/default-elements/recipe-panel-elements.d.ts +3 -0
  361. package/dist/configurator/pages/default-elements/recipe-panel-elements.js +1 -0
  362. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.d.ts +3 -0
  363. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.js +1 -0
  364. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.d.ts +3 -0
  365. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.js +1 -0
  366. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.d.ts +3 -0
  367. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.js +1 -0
  368. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.d.ts +3 -0
  369. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.js +1 -0
  370. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.d.ts +3 -0
  371. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.js +1 -0
  372. package/dist/configurator/pages/default-elements/scene-controls/index.d.ts +6 -0
  373. package/dist/configurator/pages/default-elements/scene-controls/index.js +1 -0
  374. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.d.ts +6 -0
  375. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.js +1 -0
  376. package/dist/configurator/pages/default-elements/sidebar-footer-elements.d.ts +7 -0
  377. package/dist/configurator/pages/default-elements/sidebar-footer-elements.js +1 -0
  378. package/dist/configurator/pages/default-elements/toolbar-elements.d.ts +7 -0
  379. package/dist/configurator/pages/default-elements/toolbar-elements.js +1 -0
  380. package/dist/configurator/pages/error-boundaries/GeneralErrorBoundary.js +1 -1
  381. package/dist/configurator/pages/index.d.ts +1 -0
  382. package/dist/configurator/pages/index.js +1 -1
  383. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.d.ts +4 -0
  384. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.js +1 -0
  385. package/dist/configurator/preset-screen-elements/PresetPageActionElement.d.ts +4 -0
  386. package/dist/configurator/preset-screen-elements/PresetPageActionElement.js +1 -0
  387. package/dist/configurator/preset-screen-elements/index.d.ts +2 -0
  388. package/dist/configurator/preset-screen-elements/index.js +1 -0
  389. package/dist/configurator/scene/index.d.ts +1 -0
  390. package/dist/configurator/scene/index.js +1 -1
  391. package/dist/configurator/scene/scene-controls/DeleteEntityFab.js +1 -1
  392. package/dist/configurator/scene/scene-controls/SelectionHotspot.js +1 -1
  393. package/dist/configurator/scene/scene-controls/ToolFab.d.ts +4 -0
  394. package/dist/configurator/scene/scene-controls/ToolFab.js +1 -1
  395. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  396. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  397. package/dist/configurator/scene/scene-controls/use-scene-control-tooltip.d.ts +2 -1
  398. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  399. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  400. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  401. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  402. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  403. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  404. package/dist/configurator/scene/scene-entity/scene-controls/SceneEntityHtmlHotspots.js +1 -1
  405. package/dist/configurator/toolbar-actions/index.d.ts +3 -0
  406. package/dist/configurator/toolbar-actions/index.js +1 -0
  407. package/dist/configurator/toolbar-actions/use-assistant-panel.d.ts +18 -0
  408. package/dist/configurator/toolbar-actions/use-assistant-panel.js +1 -0
  409. package/dist/configurator/toolbar-actions/use-measurements.d.ts +35 -0
  410. package/dist/configurator/toolbar-actions/use-measurements.js +1 -0
  411. package/dist/configurator/toolbar-actions/use-toolbar-actions.d.ts +100 -0
  412. package/dist/configurator/toolbar-actions/use-toolbar-actions.js +1 -0
  413. package/dist/configurator/toolbar-actions/use-toolbar-help.d.ts +7 -0
  414. package/dist/configurator/toolbar-actions/use-toolbar-help.js +1 -0
  415. package/dist/configurator/ui/assistant/AssistantChips.d.ts +10 -3
  416. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  417. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -2
  418. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  419. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  420. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  421. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +8 -0
  422. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -0
  423. package/dist/configurator/ui/assistant/alert/index.d.ts +2 -0
  424. package/dist/configurator/ui/assistant/alert/index.js +1 -0
  425. package/dist/configurator/ui/assistant/alert/remark-alerts.d.ts +10 -0
  426. package/dist/configurator/ui/assistant/alert/remark-alerts.js +1 -0
  427. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  428. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  429. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  430. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  431. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  432. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  433. package/dist/configurator/ui/assistant/entity-link/index.d.ts +2 -0
  434. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  435. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +19 -0
  436. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -0
  437. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +11 -0
  438. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -0
  439. package/dist/configurator/ui/assistant/form/describe-build-errors.d.ts +6 -0
  440. package/dist/configurator/ui/assistant/form/describe-build-errors.js +1 -0
  441. package/dist/configurator/ui/assistant/form/form-model.d.ts +37 -0
  442. package/dist/configurator/ui/assistant/form/form-model.js +1 -0
  443. package/dist/configurator/ui/assistant/form/form-state.d.ts +4 -0
  444. package/dist/configurator/ui/assistant/form/form-state.js +1 -0
  445. package/dist/configurator/ui/assistant/form/index.d.ts +4 -0
  446. package/dist/configurator/ui/assistant/form/index.js +1 -0
  447. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +10 -0
  448. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -0
  449. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +13 -0
  450. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -0
  451. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +3 -0
  452. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.js +1 -0
  453. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.d.ts +31 -0
  454. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.js +1 -0
  455. package/dist/configurator/ui/assistant/form/registry/form-element-definition.d.ts +16 -0
  456. package/dist/configurator/ui/assistant/form/registry/form-element-definition.js +1 -0
  457. package/dist/configurator/ui/assistant/form/registry/form-registry.d.ts +31 -0
  458. package/dist/configurator/ui/assistant/form/registry/form-registry.js +1 -0
  459. package/dist/configurator/ui/assistant/form/registry/index.d.ts +6 -0
  460. package/dist/configurator/ui/assistant/form/registry/index.js +1 -0
  461. package/dist/configurator/ui/assistant/form/registry/use-form-registry.d.ts +8 -0
  462. package/dist/configurator/ui/assistant/form/registry/use-form-registry.js +1 -0
  463. package/dist/configurator/ui/assistant/form-elements/FormCard.d.ts +9 -0
  464. package/dist/configurator/ui/assistant/form-elements/FormCard.js +1 -0
  465. package/dist/configurator/ui/assistant/form-elements/FormConfirm.d.ts +9 -0
  466. package/dist/configurator/ui/assistant/form-elements/FormConfirm.js +1 -0
  467. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +6 -0
  468. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -0
  469. package/dist/configurator/ui/assistant/form-elements/FormNumber.d.ts +9 -0
  470. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -0
  471. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +6 -0
  472. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -0
  473. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +6 -0
  474. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -0
  475. package/dist/configurator/ui/assistant/form-elements/FormSwatch.d.ts +10 -0
  476. package/dist/configurator/ui/assistant/form-elements/FormSwatch.js +1 -0
  477. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +6 -0
  478. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -0
  479. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.d.ts +10 -0
  480. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.js +1 -0
  481. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +38 -0
  482. package/dist/configurator/ui/assistant/form-elements/form-element-props.js +1 -0
  483. package/dist/configurator/ui/assistant/form-elements/index.d.ts +9 -0
  484. package/dist/configurator/ui/assistant/form-elements/index.js +1 -0
  485. package/dist/configurator/ui/assistant/index.d.ts +3 -0
  486. package/dist/configurator/ui/assistant/index.js +1 -1
  487. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +16 -0
  488. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -0
  489. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.d.ts +34 -0
  490. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.js +1 -0
  491. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.d.ts +25 -0
  492. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.js +1 -0
  493. package/dist/configurator/ui/assistant/reference-link/index.d.ts +3 -0
  494. package/dist/configurator/ui/assistant/reference-link/index.js +1 -0
  495. package/dist/configurator/ui/assistant/reference-link/reference-styles.d.ts +12 -0
  496. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -0
  497. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.d.ts +8 -0
  498. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.js +1 -0
  499. package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +9 -0
  500. package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -0
  501. package/dist/configurator/ui/assistant/resource-image/index.d.ts +3 -0
  502. package/dist/configurator/ui/assistant/resource-image/index.js +1 -0
  503. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +2 -0
  504. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -0
  505. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.d.ts +5 -0
  506. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.js +1 -0
  507. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +9 -0
  508. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -0
  509. package/dist/configurator/ui/assistant/screenshots/index.d.ts +2 -0
  510. package/dist/configurator/ui/assistant/screenshots/index.js +1 -0
  511. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +14 -0
  512. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -0
  513. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +4 -2
  514. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  515. package/dist/configurator/ui/assistant/thread-items.d.ts +8 -1
  516. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  517. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  518. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -1
  519. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  520. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  521. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  522. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  523. package/dist/configurator/ui/configurator-layout/slots/canvas/LayoutCanvas.js +1 -1
  524. package/dist/configurator/ui/configurator-layout/slots/canvas/SharedCanvas.js +1 -1
  525. package/dist/configurator/ui/configurator-layout/{universal → slots/desktop-sidebar}/DesktopSidebar.d.ts +23 -14
  526. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  527. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  528. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  529. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.d.ts +1 -1
  530. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.js +1 -1
  531. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  532. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  533. package/dist/configurator/ui/configurator-layout/slots/services/Services.js +1 -1
  534. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  535. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  536. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.d.ts +1 -1
  537. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.js +1 -1
  538. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  539. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  540. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +1 -1
  541. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +2 -2
  542. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.d.ts +5 -0
  543. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.js +1 -0
  544. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  545. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +1 -1
  546. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -1
  547. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +1 -1
  548. package/dist/configurator/ui/index.d.ts +1 -0
  549. package/dist/configurator/ui/index.js +1 -1
  550. package/dist/configurator/ui/legacy/layout/common/CommonFinalizeButton.js +1 -1
  551. package/dist/configurator/ui/legacy/layout/common/CommonSummaryButton.js +1 -1
  552. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  553. package/dist/configurator/ui/legacy/layout/common/ReactiveInterfaceLayout.js +1 -1
  554. package/dist/configurator/ui/legacy/layout/common/ResponsiveFinalizeButton.js +1 -1
  555. package/dist/configurator/ui/legacy/layout/common/SummaryReadLayout.js +1 -1
  556. package/dist/configurator/ui/legacy/layout/simple/SimpleOwnerLayout.js +1 -1
  557. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  558. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  559. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  560. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  561. package/dist/configurator/ui/legacy/layout/steps/StepsSidebarFooter.js +1 -1
  562. package/dist/configurator/ui/legacy/layout/tabs/TabsOwnerLayout.js +1 -1
  563. package/dist/configurator/ui/legacy/toolbar/common/DimensionUnitSelector.js +1 -1
  564. package/dist/configurator/ui/legacy/toolbar/common/MeasurementsIndicatorsSwitch.js +1 -1
  565. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/FullscreenToolbarAction.js +1 -1
  566. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/HelpToolbarAction.js +1 -1
  567. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/MeasurementsToolbarAction.js +1 -1
  568. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/UndoRedoToolbarGroup.js +1 -1
  569. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.js +2 -6
  570. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -1
  571. package/dist/configurator/ui/phoenix-layout-elements/EnterFullscreenToolbarButton.js +1 -1
  572. package/dist/configurator/ui/phoenix-layout-elements/ExitFullscreenToolbarButton.js +1 -1
  573. package/dist/configurator/ui/phoenix-layout-elements/HelpToolbarButton.js +1 -1
  574. package/dist/configurator/ui/phoenix-layout-elements/LanguageMenuAction.js +1 -1
  575. package/dist/configurator/ui/phoenix-layout-elements/LanguageToolbarButton.js +1 -1
  576. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.d.ts +1 -0
  577. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.js +1 -1
  578. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.d.ts +1 -0
  579. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.js +1 -1
  580. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsMenuAction.js +1 -1
  581. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsToolbarButton.js +1 -1
  582. package/dist/configurator/ui/phoenix-layout-elements/RedoToolbarButton.js +1 -1
  583. package/dist/configurator/ui/phoenix-layout-elements/ShareToolbarButton.js +1 -1
  584. package/dist/configurator/ui/phoenix-layout-elements/UndoToolbarButton.js +1 -1
  585. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  586. package/dist/configurator/ui/phoenix-layout-elements/header/common/horizontal-tabs/DesktopHorizontalTabs.js +1 -1
  587. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.d.ts +1 -1
  588. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.js +1 -1
  589. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -8
  590. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  591. package/dist/configurator/ui/phoenix-layout-elements/measurements/DimensionUnitSelector.js +1 -1
  592. package/dist/configurator/ui/phoenix-layout-elements/measurements/MeasurementsIndicatorsSwitch.js +1 -1
  593. package/dist/configurator/ui/phoenix-layout-elements/share/ShareModal.js +1 -1
  594. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.d.ts +7 -8
  595. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.js +1 -1
  596. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/BasicFinalizeButton.js +1 -1
  597. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/CustomFinalizeButton.js +1 -1
  598. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/EnterSummaryButton.js +1 -1
  599. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/FinalizeActions.js +1 -1
  600. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/NextStepButton.js +1 -1
  601. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  602. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  603. package/dist/configurator/ui/preset-layout/PresetUi.d.ts +4 -0
  604. package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
  605. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.d.ts +10 -0
  606. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -0
  607. package/dist/configurator/ui/save-message-snackbars/index.d.ts +1 -0
  608. package/dist/configurator/ui/save-message-snackbars/index.js +1 -0
  609. package/dist/docs/complex-use-cases/focus-mode.mdx +2 -0
  610. package/dist/docs/controls/select-child-entity/cardselect.mdx +1 -0
  611. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  612. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  613. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  614. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  615. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  616. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  617. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  618. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  619. package/dist/docs/fabs/basic.mdx +6 -2
  620. package/dist/docs/index.json +49 -1
  621. package/dist/docs/layouts/custom-layout.mdx +1640 -184
  622. package/dist/docs/layouts/gallery/kestrel-kettle.mdx +1858 -0
  623. package/dist/docs/layouts/header/fixed.mdx +2 -2
  624. package/dist/docs/layouts/header/floating.mdx +2 -2
  625. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  626. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  627. package/dist/docs/other-features/client-side-rendering/declarative.mdx +2 -2
  628. package/dist/docs/other-features/error-5xx.mdx +1 -1
  629. package/dist/docs/other-features/navigation-hotspot.mdx +2 -0
  630. package/dist/docs/other-features/not-found-404.mdx +1 -1
  631. package/dist/docs/other-features/transformers.mdx +4 -0
  632. package/dist/docs/phoenix/application-states.mdx +9 -7
  633. package/dist/docs/phoenix/clerk-sign-in.mdx +1 -1
  634. package/dist/docs/phoenix/components.mdx +6 -0
  635. package/dist/docs/phoenix/configurator-interface.mdx +302 -23
  636. package/dist/docs/phoenix/deployments.mdx +2 -6
  637. package/dist/docs/phoenix/domain-model.mdx +2 -0
  638. package/dist/docs/phoenix/finalization.mdx +1 -1
  639. package/dist/docs/phoenix/getting-started.mdx +6 -3
  640. package/dist/docs/phoenix/layout-slots.mdx +116 -0
  641. package/dist/docs/phoenix/localization.mdx +10 -6
  642. package/dist/docs/phoenix/migration-guide.mdx +24 -11
  643. package/dist/docs/phoenix/phoenix-cli.mdx +72 -21
  644. package/dist/docs/phoenix/project-structure.mdx +72 -34
  645. package/dist/docs/phoenix/quickstart.mdx +7 -7
  646. package/dist/docs/phoenix/sdk-builder-workflow.mdx +8 -8
  647. package/dist/docs/phoenix/testing.mdx +148 -0
  648. package/dist/docs/phoenix/webhooks.mdx +21 -4
  649. package/dist/docs/selection-and-highlight/hotspots.mdx +2 -0
  650. package/dist/domain/application/application-config.d.ts +3 -1
  651. package/dist/domain/application/assistant/assistant-manifest.d.ts +16 -1
  652. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +8 -1
  653. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  654. package/dist/domain/application/assistant/form/assistant-form-element-name.d.ts +11 -0
  655. package/dist/domain/application/assistant/form/assistant-form-element-name.js +8 -0
  656. package/dist/domain/application/assistant/form/assistant-form-elements.d.ts +174 -0
  657. package/dist/domain/application/assistant/form/assistant-form-elements.js +1 -0
  658. package/dist/domain/application/assistant/form/assistant-resource-path.d.ts +10 -0
  659. package/dist/domain/application/assistant/form/assistant-resource-path.js +1 -0
  660. package/dist/domain/application/assistant/form/index.d.ts +4 -0
  661. package/dist/domain/application/assistant/form/index.js +1 -0
  662. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  663. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  664. package/dist/domain/application/assistant/index.d.ts +2 -1
  665. package/dist/domain/application/assistant/index.js +1 -1
  666. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
  667. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +2 -0
  668. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
  669. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -1
  670. package/dist/domain/application/configurator-builder.d.ts +4 -1
  671. package/dist/domain/application/configurator-builder.js +1 -1
  672. package/dist/domain/available-system-components.d.ts +1 -1
  673. package/dist/domain/available-system-components.js +1 -1
  674. package/dist/domain/core/invariant/violation.d.ts +50 -2
  675. package/dist/domain/core/invariant/violation.js +1 -1
  676. package/dist/domain/core/model/model.d.ts +1 -1
  677. package/dist/domain/core/schema/extended-schema-validator.js +1 -1
  678. package/dist/domain/domain-context/index.d.ts +1 -1
  679. package/dist/domain/domain-context/store-system/store-system.d.ts +5 -0
  680. package/dist/domain/domain-context/store-system/store-system.js +1 -1
  681. package/dist/domain/domain-context/undo-system.d.ts +28 -1
  682. package/dist/domain/domain-context/undo-system.js +1 -1
  683. package/dist/domain/domain-runtime/domain-runtime.d.ts +4 -0
  684. package/dist/domain/domain-runtime/environment/types.d.ts +1 -1
  685. package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
  686. package/dist/domain/domain-runtime/spec/index.js +1 -1
  687. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  688. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  689. package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +27 -12
  690. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -1
  691. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.d.ts +12 -0
  692. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +1 -0
  693. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +2 -1
  694. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -1
  695. package/dist/domain/domain-runtime/spec/selectors.d.ts +3 -1
  696. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  697. package/dist/domain/domain-runtime/spec/types.d.ts +2 -0
  698. package/dist/domain/extensions/attribute-switch.d.ts +1 -1
  699. package/dist/domain/extensions/attribute-switch.js +1 -1
  700. package/dist/domain/extensions/canvas-config.d.ts +1 -1
  701. package/dist/domain/extensions/common/angle-indicator-schema.d.ts +2 -2
  702. package/dist/domain/extensions/common/dimension-indicator-schema.d.ts +2 -2
  703. package/dist/domain/extensions/editable-angle-indicator.d.ts +1 -1
  704. package/dist/domain/extensions/editable-distance-dimension-indicator.d.ts +1 -1
  705. package/dist/domain/extensions/editable-offset-indicator.d.ts +1 -1
  706. package/dist/domain/extensions/editable-offset-indicator.js +1 -1
  707. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +24 -0
  708. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -0
  709. package/dist/domain/extensions/export-images/client-side-image.d.ts +14 -0
  710. package/dist/domain/extensions/export-images/client-side-image.js +1 -0
  711. package/dist/domain/extensions/export-images/index.d.ts +3 -0
  712. package/dist/domain/extensions/export-images/index.js +1 -0
  713. package/dist/domain/extensions/{save-template-thumbnail.d.ts → export-images/save-template-thumbnail.d.ts} +4 -4
  714. package/dist/domain/extensions/export-images/save-template-thumbnail.js +1 -0
  715. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -1
  716. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -1
  717. package/dist/domain/extensions/horizontal-tabs.d.ts +2 -2
  718. package/dist/domain/extensions/index.d.ts +1 -2
  719. package/dist/domain/extensions/index.js +1 -1
  720. package/dist/domain/extensions/list-selector-dimension-indicator.d.ts +1 -1
  721. package/dist/domain/extensions/navigation-steps.d.ts +2 -2
  722. package/dist/domain/extensions/offset-indicator.js +1 -1
  723. package/dist/domain/extensions/rotation-handle.d.ts +2 -2
  724. package/dist/domain/extensions/scene-entity-animation.js +1 -1
  725. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +2 -0
  726. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  727. package/dist/domain/mocks/create-test-application-config.js +1 -0
  728. package/dist/domain/mocks/index.d.ts +1 -0
  729. package/dist/domain/mocks/index.js +1 -1
  730. package/dist/domain/system-components/application-config.d.ts +2 -2
  731. package/dist/domain/system-components/child-entity-selection.js +1 -1
  732. package/dist/domain/system-components/collision-box-geometry.d.ts +4 -2
  733. package/dist/domain/system-components/collision-geometry.d.ts +4 -2
  734. package/dist/domain/system-components/collision-point-geometry.d.ts +4 -2
  735. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  736. package/dist/domain/system-components/common/recipes.d.ts +21 -3
  737. package/dist/domain/system-components/common/recipes.js +1 -1
  738. package/dist/domain/system-components/common/scene-entity-control-schema.d.ts +3 -0
  739. package/dist/domain/system-components/common/scene-entity-control-schema.js +1 -1
  740. package/dist/domain/system-components/constraint.d.ts +10 -23
  741. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  742. package/dist/domain/system-components/drag-handle.js +1 -1
  743. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  744. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  745. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  746. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  747. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -1
  748. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  749. package/dist/domain/system-components/material-swatch.js +1 -1
  750. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  751. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  752. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  753. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  754. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  755. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  756. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  757. package/dist/editor/Editor.d.ts +7 -0
  758. package/dist/editor/Editor.js +1 -1
  759. package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
  760. package/dist/editor/domain-editors/apply-spec-update.d.ts +8 -1
  761. package/dist/editor/domain-editors/apply-spec-update.js +1 -1
  762. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  763. package/dist/editor/mocks/CreateMockYaml.js +2 -2
  764. package/dist/editor/mocks/EditorMockContext.d.ts +2 -0
  765. package/dist/editor/mocks/EditorMockContext.js +1 -1
  766. package/dist/editor/screenshot/ScreenshotHandler.js +1 -1
  767. package/dist/globals/index.d.ts +2 -0
  768. package/dist/i18n/locales/cs/messages.js +1 -1
  769. package/dist/i18n/locales/da/messages.js +1 -1
  770. package/dist/i18n/locales/de/messages.js +1 -1
  771. package/dist/i18n/locales/de-AT/messages.js +1 -1
  772. package/dist/i18n/locales/en/messages.js +1 -1
  773. package/dist/i18n/locales/en-AU/messages.js +1 -1
  774. package/dist/i18n/locales/en-GB/messages.js +1 -1
  775. package/dist/i18n/locales/es/messages.js +1 -1
  776. package/dist/i18n/locales/fr/messages.js +1 -1
  777. package/dist/i18n/locales/hu/messages.js +1 -1
  778. package/dist/i18n/locales/it/messages.js +1 -1
  779. package/dist/i18n/locales/nl/messages.js +1 -1
  780. package/dist/i18n/locales/pl/messages.js +1 -1
  781. package/dist/i18n/locales/pt/messages.js +1 -1
  782. package/dist/i18n/locales/ro/messages.js +1 -1
  783. package/dist/i18n/locales/sk/messages.js +1 -1
  784. package/dist/i18n/locales/tr/messages.js +1 -1
  785. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  786. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  787. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +176 -148
  788. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  789. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  790. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  791. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +7 -1
  792. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +15 -14
  793. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +14 -12
  794. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +14 -13
  795. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +13 -11
  796. package/dist/phoenix/application-spec/application-spec-builder.d.ts +0 -2
  797. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  798. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +0 -2
  799. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  800. package/dist/phoenix/application-spec/generate-application-spec-story.js +2 -2
  801. package/dist/phoenix/application-spec/generate-project-files.d.ts +0 -2
  802. package/dist/phoenix/application-spec/project-files.js +1 -1
  803. package/dist/phoenix/bin.d.ts +2 -0
  804. package/dist/phoenix/bin.js +2 -0
  805. package/dist/phoenix/check-configs/built-in-eslint-config.d.ts +9 -0
  806. package/dist/phoenix/check-configs/built-in-eslint-config.js +1 -0
  807. package/dist/phoenix/check-configs/eslint-config.d.ts +10 -0
  808. package/dist/phoenix/check-configs/eslint-config.js +1 -0
  809. package/dist/phoenix/check-configs/index.d.ts +8 -0
  810. package/dist/phoenix/check-configs/index.js +1 -0
  811. package/dist/phoenix/check-configs/typescript-project.d.ts +5 -0
  812. package/dist/phoenix/check-configs/typescript-project.js +1 -0
  813. package/dist/phoenix/cli.d.ts +0 -1
  814. package/dist/phoenix/cli.js +1 -2
  815. package/dist/phoenix/commands/build.js +1 -1
  816. package/dist/phoenix/commands/check.js +1 -1
  817. package/dist/phoenix/commands/clean.js +1 -1
  818. package/dist/phoenix/commands/deploy.js +2 -2
  819. package/dist/phoenix/commands/deps/deps.d.ts +73 -0
  820. package/dist/phoenix/commands/deps/deps.js +3 -0
  821. package/dist/phoenix/commands/deps/index.d.ts +1 -0
  822. package/dist/phoenix/commands/deps/index.js +1 -0
  823. package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
  824. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
  825. package/dist/phoenix/commands/dev.js +5 -5
  826. package/dist/phoenix/commands/fix.js +1 -1
  827. package/dist/phoenix/commands/index.d.ts +1 -0
  828. package/dist/phoenix/commands/index.js +1 -1
  829. package/dist/phoenix/commands/init.d.ts +17 -5
  830. package/dist/phoenix/commands/init.js +1 -1
  831. package/dist/phoenix/commands/link.js +1 -1
  832. package/dist/phoenix/commands/prettier.js +1 -1
  833. package/dist/phoenix/commands/sync.js +1 -1
  834. package/dist/phoenix/commands/unlink.js +1 -1
  835. package/dist/phoenix/services/application-spec-project-watcher.d.ts +2 -2
  836. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  837. package/dist/phoenix/services/lingui.d.ts +8 -0
  838. package/dist/phoenix/services/lingui.js +1 -1
  839. package/dist/phoenix/services/source-archive.d.ts +1 -0
  840. package/dist/phoenix/services/source-archive.js +1 -1
  841. package/dist/phoenix/services/swc.js +1 -1
  842. package/dist/phoenix/services/vite-config.js +1 -1
  843. package/dist/phoenix/utils/index.d.ts +4 -2
  844. package/dist/phoenix/utils/index.js +1 -1
  845. package/dist/phoenix/utils/node-version/index.d.ts +1 -0
  846. package/dist/phoenix/utils/node-version/index.js +1 -0
  847. package/dist/phoenix/utils/node-version/supported-node-version.d.ts +12 -0
  848. package/dist/phoenix/utils/node-version/supported-node-version.js +4 -0
  849. package/dist/phoenix/utils/package-info.d.ts +0 -9
  850. package/dist/phoenix/utils/package-info.js +1 -1
  851. package/dist/phoenix/utils/package-manager/index.d.ts +2 -0
  852. package/dist/phoenix/utils/package-manager/index.js +1 -0
  853. package/dist/phoenix/utils/package-manager/package-manager-commands.d.ts +19 -0
  854. package/dist/phoenix/utils/package-manager/package-manager-commands.js +1 -0
  855. package/dist/phoenix/utils/package-manager/pnpm-project.d.ts +9 -0
  856. package/dist/phoenix/utils/package-manager/pnpm-project.js +1 -0
  857. package/dist/phoenix/utils/run-command.d.ts +11 -0
  858. package/dist/phoenix/utils/run-command.js +1 -1
  859. package/dist/phoenix/utils/sdk-tool/index.d.ts +1 -0
  860. package/dist/phoenix/utils/sdk-tool/index.js +1 -0
  861. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.d.ts +15 -0
  862. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.js +1 -0
  863. package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.d.ts +6 -0
  864. package/dist/react-sdk/application-runtime/common-services/analytics/frontend-analytics.js +1 -0
  865. package/dist/react-sdk/application-runtime/common-services/analytics/index.d.ts +1 -0
  866. package/dist/react-sdk/application-runtime/common-services/analytics/index.js +1 -1
  867. package/dist/react-sdk/application-runtime/hooks/use-phoenix-element-slots.d.ts +2 -1
  868. package/dist/react-sdk/application-runtime/routing/routing-service.d.ts +34 -2
  869. package/dist/react-sdk/application-runtime/routing/routing-service.js +1 -1
  870. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +4 -0
  871. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  872. package/dist/react-sdk/domain-application-context/DomainLifecycleBoundary.js +1 -1
  873. package/dist/react-sdk/domain-context/common-hooks/index.d.ts +8 -0
  874. package/dist/react-sdk/domain-context/common-hooks/index.js +1 -0
  875. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +41 -0
  876. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  877. package/dist/react-sdk/domain-context/component-hooks/index.d.ts +1 -0
  878. package/dist/react-sdk/domain-context/component-hooks/index.js +1 -0
  879. package/dist/react-sdk/domain-context/component-hooks/use-component.js +1 -1
  880. package/dist/react-sdk/domain-context/entity-hooks/use-domain-entity-state.js +1 -1
  881. package/dist/react-sdk/domain-context/entity-hooks/use-entity-price.js +1 -1
  882. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-id.js +1 -1
  883. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-state.js +1 -1
  884. package/dist/react-sdk/domain-context/index.d.ts +8 -1
  885. package/dist/react-sdk/domain-context/index.js +1 -1
  886. package/dist/react-sdk/domain-context/system-hooks/composition-hooks.js +1 -1
  887. package/dist/react-sdk/domain-context/system-hooks/dimension-hooks.js +1 -1
  888. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.d.ts +8 -0
  889. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.js +1 -0
  890. package/dist/react-sdk/domain-context/system-hooks/hover-hooks.js +1 -1
  891. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.d.ts +24 -0
  892. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.js +1 -0
  893. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +5 -0
  894. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  895. package/dist/react-sdk/domain-context/system-hooks/selection-hooks.js +1 -1
  896. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.d.ts +32 -0
  897. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.js +1 -0
  898. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.d.ts +57 -0
  899. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.js +1 -0
  900. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.d.ts +61 -0
  901. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.js +1 -0
  902. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.d.ts +20 -0
  903. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -0
  904. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  905. package/dist/react-sdk/elements/configurator-error-page-props.d.ts +20 -0
  906. package/dist/react-sdk/elements/configurator-error-page-props.js +1 -0
  907. package/dist/react-sdk/elements/index.d.ts +1 -0
  908. package/dist/react-sdk/handlers/FinalizeActionRunner.d.ts +13 -0
  909. package/dist/react-sdk/handlers/FinalizeActionRunner.js +1 -0
  910. package/dist/react-sdk/handlers/FinalizeActionsHost.d.ts +10 -0
  911. package/dist/react-sdk/handlers/FinalizeActionsHost.js +1 -0
  912. package/dist/react-sdk/handlers/FinalizeActionsProvider.d.ts +11 -0
  913. package/dist/react-sdk/handlers/FinalizeActionsProvider.js +1 -0
  914. package/dist/react-sdk/handlers/finalize-actions-context.d.ts +6 -0
  915. package/dist/react-sdk/handlers/finalize-actions-context.js +1 -0
  916. package/dist/react-sdk/handlers/finalize-actions-store.d.ts +23 -0
  917. package/dist/react-sdk/handlers/finalize-actions-store.js +1 -0
  918. package/dist/react-sdk/handlers/index.d.ts +6 -0
  919. package/dist/react-sdk/handlers/index.js +1 -1
  920. package/dist/react-sdk/handlers/use-finalize-action.d.ts +32 -0
  921. package/dist/react-sdk/handlers/use-finalize-action.js +1 -0
  922. package/dist/react-sdk/handlers/use-finalize-actions.d.ts +53 -0
  923. package/dist/react-sdk/handlers/use-finalize-actions.js +1 -0
  924. package/dist/react-sdk/index.d.ts +2 -0
  925. package/dist/react-sdk/index.js +1 -1
  926. package/dist/react-sdk/loading-state/loading-state-manager.d.ts +5 -0
  927. package/dist/react-sdk/loading-state/loading-state-manager.js +1 -1
  928. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.d.ts +25 -0
  929. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.js +1 -0
  930. package/dist/react-sdk/responsive-state/canvas-padding.d.ts +14 -0
  931. package/dist/react-sdk/responsive-state/canvas-padding.js +1 -0
  932. package/dist/react-sdk/responsive-state/index.d.ts +5 -0
  933. package/dist/react-sdk/responsive-state/index.js +1 -0
  934. package/dist/react-sdk/responsive-state/responsive-state-manager.d.ts +111 -0
  935. package/dist/react-sdk/responsive-state/responsive-state-manager.js +1 -0
  936. package/dist/react-sdk/responsive-state/use-responsive-state-manager.d.ts +10 -0
  937. package/dist/react-sdk/responsive-state/use-responsive-state-manager.js +1 -0
  938. package/dist/react-sdk/responsive-state/use-responsive-state.d.ts +11 -0
  939. package/dist/react-sdk/responsive-state/use-responsive-state.js +1 -0
  940. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.d.ts +36 -0
  941. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.js +1 -0
  942. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.d.ts +44 -0
  943. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.js +1 -0
  944. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.d.ts +38 -0
  945. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.js +1 -0
  946. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.d.ts +30 -0
  947. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.js +1 -0
  948. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.d.ts +30 -0
  949. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.js +1 -0
  950. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.d.ts +9 -0
  951. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.js +1 -0
  952. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.d.ts +9 -0
  953. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.js +1 -0
  954. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.d.ts +10 -0
  955. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.js +1 -0
  956. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.d.ts +9 -0
  957. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.js +1 -0
  958. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.d.ts +9 -0
  959. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.js +1 -0
  960. package/dist/react-sdk/scene-control-elements/index.d.ts +11 -0
  961. package/dist/react-sdk/scene-control-elements/index.js +1 -0
  962. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.d.ts +5 -0
  963. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.js +1 -0
  964. package/dist/react-sdk/session/NotAuthenticatedPage.d.ts +4 -0
  965. package/dist/react-sdk/session/NotAuthenticatedPage.js +1 -1
  966. package/dist/react-sdk/web-component/create-web-component.js +1 -1
  967. package/dist/react-sdk/web-component/god-mode/god-mode-registry.d.ts +30 -0
  968. package/dist/react-sdk/web-component/god-mode/god-mode-registry.js +1 -0
  969. package/dist/react-sdk/web-component/god-mode/index.d.ts +1 -0
  970. package/dist/react-sdk/web-component/god-mode/index.js +1 -0
  971. package/dist/ui-sdk/icons/__generated/Lightbulb.d.ts +3 -0
  972. package/dist/ui-sdk/icons/__generated/Lightbulb.js +1 -0
  973. package/dist/ui-sdk/icons/__generated/XCircle.d.ts +3 -0
  974. package/dist/ui-sdk/icons/__generated/XCircle.js +1 -0
  975. package/dist/ui-sdk/icons/__generated/index.d.ts +4 -0
  976. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  977. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  978. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +9 -0
  979. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.js +1 -1
  980. package/dist/ui-sdk/responsive-application/index.d.ts +1 -0
  981. package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +57 -0
  982. package/dist/ui-sdk/responsive-application/responsive-state-store.js +1 -0
  983. package/dist/ui-sdk/responsive-application/use-store-responsive-info.d.ts +7 -0
  984. package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -0
  985. package/dist/ui-sdk/theme/types.d.ts +5 -1
  986. package/package.json +48 -36
  987. package/schema/domain-spec.json +1341 -217
  988. package/dist/application-spec/generate-application/code/templates/nvmrc.d.ts +0 -1
  989. package/dist/application-spec/generate-application/code/templates/nvmrc.js +0 -2
  990. package/dist/application-spec/generate-application/code/templates/package-json.d.ts +0 -10
  991. package/dist/application-spec/generate-application/code/templates/package-json.js +0 -1
  992. package/dist/application-spec/generate-application/code/templates/webhook-implementation.d.ts +0 -1
  993. package/dist/application-spec/generate-application/code/templates/webhook-implementation.js +0 -7
  994. package/dist/configurator/common/frontend-analytics.js +0 -1
  995. package/dist/configurator/ui/configurator-layout/universal/DesktopSidebar.js +0 -16
  996. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.d.ts +0 -4
  997. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.js +0 -1
  998. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.d.ts +0 -4
  999. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.js +0 -1
  1000. package/dist/domain/extensions/client-side-image.d.ts +0 -14
  1001. package/dist/domain/extensions/client-side-image.js +0 -1
  1002. package/dist/domain/extensions/save-template-thumbnail.js +0 -1
  1003. package/dist/phoenix/commands/generate-project-files.d.ts +0 -6
  1004. package/dist/phoenix/commands/generate-project-files.js +0 -1
  1005. package/dist/react-sdk/application-runtime/runtime/god-mode.d.ts +0 -19
  1006. package/dist/react-sdk/application-runtime/runtime/god-mode.js +0 -1
  1007. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  1008. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  1009. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
@@ -0,0 +1 @@
1
+ export{ScreenshotThumbnails}from"./ScreenshotThumbnails.js";export{readToolScreenshots}from"./tool-screenshots.js";
@@ -0,0 +1,14 @@
1
+ /** A screenshot a `query` or `apply` call took, as the panel shows it. */
2
+ export interface AssistantToolScreenshot {
3
+ /** The label the call's `image` field returned, such as `Cabinet-2/doorLayout#2`. */
4
+ readonly label: string;
5
+ readonly entityId: string;
6
+ readonly view: string;
7
+ /** The picture as a data URL. */
8
+ readonly src: string;
9
+ }
10
+ /**
11
+ * The screenshots of a tool result: the image parts that follow the result's JSON, each after the
12
+ * text part with its label. A result without them, such as plain JSON or an error, has none.
13
+ */
14
+ export declare const readToolScreenshots: (result: unknown) => readonly AssistantToolScreenshot[];
@@ -0,0 +1 @@
1
+ import{z as e}from"zod";let t=e.object({type:e.literal("text"),content:e.string()}),a=e.object({type:e.literal("image"),source:e.object({type:e.literal("data"),value:e.string(),mimeType:e.string()})}),s=/^([^/]+)\/([^#]+)(?:#\d+)?$/;export const readToolScreenshots=e=>Array.isArray(e)?e.slice(1).flatMap((e,r,c)=>{let l=a.safeParse(e),o=t.safeParse(c[r-1]),n=o.success?s.exec(o.data.content):null;if(!l.success||!o.success||!n?.[1]||!n[2])return[];let{value:i,mimeType:d}=l.data.source;return[{label:o.data.content,entityId:n[1],view:n[2],src:`data:${d};base64,${i}`}]}):[];
@@ -1,6 +1,8 @@
1
+ /** True when the text has a code fence the model has not closed yet. */
2
+ export declare const hasOpenFence: (text: string) => boolean;
1
3
  /**
2
4
  * Makes the Markdown of a reply that is still streaming renderable as it stands, so half-written
3
- * markup does not flash as raw characters: an open code fence is closed, an inline code span, a link
4
- * or a table header the model has not finished is held back, and open bold text is closed.
5
+ * markup does not flash as raw characters: an open code fence is closed, an inline code span, a link,
6
+ * an alert marker or a table header the model has not finished is held back, and open bold text is closed.
5
7
  */
6
8
  export declare const completeStreamedMarkdown: (text: string) => string;
@@ -1,2 +1,2 @@
1
- let e=(e,t)=>e.split(t).length-1,t=/^\|?\s*:?-+:?\s*(\|\s*:?-+:?\s*)*\|?\s*$/;export const completeStreamedMarkdown=l=>{if(e(l,"```")%2==1)return`${l}
2
- \`\`\``;let n=l.lastIndexOf("```"),s=-1===n?"":l.slice(0,n+3),r=l.slice(s.length),i=(e=>{let l=e.split("\n"),n=l.length;for(;n>0&&l[n-1]?.trimStart().startsWith("|");)n-=1;let s=l.slice(n),r=s[1],i=null!=r&&s.length>2&&t.test(r);return 0===s.length||i?e:l.slice(0,n).join("\n")})((e(r,"`")%2==1?r.slice(0,r.lastIndexOf("`")):r).replace(/!?\[([^\]\n]*)\]\([^)\n]*$/,"$1").replace(/!?\[[^\]\n]*$/,"")),c=e(i,"**")%2==1?`${i}**`:i;return`${s}${c}`};
1
+ let e=(e,t)=>e.split(t).length-1,t=/^\|?\s*:?-+:?\s*(\|\s*:?-+:?\s*)*\|?\s*$/,l=/(^|\n) {0,3}>[ \t]*\[![a-z]*$/i,n=/(^|\n) {0,3}>[ \t]*\[![a-z]+\][ \t]*$/i;export const hasOpenFence=t=>e(t,"```")%2==1;export const completeStreamedMarkdown=s=>{var r;let a;if(hasOpenFence(s))return`${s}
2
+ \`\`\``;let i=s.lastIndexOf("```"),c=-1===i?"":s.slice(0,i+3),{head:$,marker:h}=(r=s.slice(c.length),null==(a=n.exec(r))?{head:r.replace(l,"$1"),marker:""}:{head:r.slice(0,a.index),marker:r.slice(a.index)}),p=(e=>{let l=e.split("\n"),n=l.length;for(;n>0&&l[n-1]?.trimStart().startsWith("|");)n-=1;let s=l.slice(n),r=s[1],a=null!=r&&s.length>2&&t.test(r);return 0===s.length||a?e:l.slice(0,n).join("\n")})((e($,"`")%2==1?$.slice(0,$.lastIndexOf("`")):$).replace(/!?\[([^\]\n]*)\](?:\([^)\n]*)?$/,"$1").replace(/!?\[[^\]\n]*$/,"")),d=e(p,"**")%2==1?`${p}**`:p;return`${c}${d}${h}`};
@@ -8,6 +8,12 @@ export interface AssistantToolItem {
8
8
  readonly input: unknown;
9
9
  readonly result: unknown;
10
10
  }
11
+ /**
12
+ * What the forms in a stretch of assistant text are: shown only in the last message of the thread,
13
+ * and usable only once its reply has ended. A form in any earlier message has been answered or
14
+ * passed over, so it is not shown at all.
15
+ */
16
+ export type AssistantFormsVisibility = 'hidden' | 'disabled' | 'enabled';
11
17
  /**
12
18
  * One block of the thread, in reading order: a user bubble, a stretch of assistant Markdown, a row
13
19
  * of chips for the tool calls that follow each other without text in between, or the line that
@@ -22,6 +28,7 @@ export type AssistantThreadItem = {
22
28
  readonly id: string;
23
29
  readonly markdown: string;
24
30
  readonly isStreaming: boolean;
31
+ readonly forms: AssistantFormsVisibility;
25
32
  } | {
26
33
  readonly kind: 'tools';
27
34
  readonly id: string;
@@ -39,7 +46,7 @@ export interface AssistantThreadView {
39
46
  * Lays the messages of the chat out as the blocks the thread renders. Reasoning is left out; tool
40
47
  * results are not shown on their own but decide the state of the chip of their call.
41
48
  */
42
- export declare const buildThreadView: (messages: ReadonlyArray<UIMessage>, isReplying: boolean) => AssistantThreadView;
49
+ export declare const buildThreadView: (messages: ReadonlyArray<UIMessage>, isReplying: boolean, isResuming: boolean) => AssistantThreadView;
43
50
  /**
44
51
  * Lays the closed threads of the conversation out above the thread that continues them, oldest
45
52
  * first, each ended by a separator: the assistant read on from a summary of it, not from the
@@ -1 +1 @@
1
- import{describeToolCall as t}from"./tool-chip.js";let e=t=>{try{return JSON.parse(t)}catch{return t}},r=t=>t.map(t=>"text"===t.type?t.content:"").join("").trim();export const buildThreadView=(o,i)=>{let l=(t=>{let r=new Map;for(let o of t)for(let t of o.parts)"tool-result"===t.type&&r.set(t.toolCallId,{result:"string"==typeof t.content?e(t.content):t.content,error:"error"===t.state?t.error??"The tool call failed.":void 0});return r})(o),n=[],a=o.at(-1),s=t=>{let e=n.at(-1);e?.kind==="tools"?n[n.length-1]={...e,tools:[...e.tools,t]}:n.push({kind:"tools",id:t.id,tools:[t]})};for(let e of o){if("user"===e.role){let t=r(e.parts);t&&n.push({kind:"user",id:e.id,text:t});continue}let o=i&&e===a;e.parts.forEach((r,i)=>{let a=`${e.id}:${i}`;if("text"===r.type){if(r.content.trim()){let t=o&&i===e.parts.length-1;n.push({kind:"text",id:a,markdown:r.content,isStreaming:t})}return}if("tool-call"!==r.type)return;let d=l.get(r.id),p=r.input,u=r.output??d?.result;s({id:r.id,input:p,result:u,chip:t({name:r.name,input:p,result:u,error:d?.error,isReplyRunning:o})})})}let d=n.at(-1),p=a?.role==="assistant"&&(d?.kind==="text"&&d.isStreaming||d?.kind==="tools");return{items:n,isThinking:i&&!p}};export const buildEarlierThreadItems=t=>t.flatMap(({threadId:t,messages:e})=>[...buildThreadView(e,!1).items.map(e=>({...e,id:`${t}:${e.id}`})),{kind:"separator",id:`${t}:separator`}]);
1
+ import{match as t}from"ts-pattern";import{describeToolCall as e}from"./tool-chip.js";let r=t=>{try{return JSON.parse(t)}catch{return t}},i=t=>t.map(t=>"text"===t.type?t.content:"").join("").trim();export const buildThreadView=(o,n,s)=>{let l=(t=>{let e=new Map;for(let i of t)for(let t of i.parts)"tool-result"===t.type&&e.set(t.toolCallId,{result:"string"==typeof t.content?r(t.content):t.content,error:"error"===t.state?t.error??"The tool call failed.":void 0});return e})(o),a=[],d=o.at(-1),p=t=>{let e=a.at(-1);e?.kind==="tools"?a[a.length-1]={...e,tools:[...e.tools,t]}:a.push({kind:"tools",id:t.id,tools:[t]})};for(let r of o){if("user"===r.role){let t=i(r.parts);t&&a.push({kind:"user",id:r.id,text:t});continue}let o=n&&r===d,u=t({isLast:r===d,isBusy:o||s}).with({isLast:!1},()=>"hidden").with({isBusy:!0},()=>"disabled").otherwise(()=>"enabled");r.parts.forEach((t,i)=>{let n=`${r.id}:${i}`;if("text"===t.type){if(t.content.trim()){let e=o&&i===r.parts.length-1;a.push({kind:"text",id:n,markdown:t.content,isStreaming:e,forms:u})}return}if("tool-call"!==t.type)return;let s=l.get(t.id),d=t.input,h=t.output??s?.result;p({id:t.id,input:d,result:h,chip:e({name:t.name,input:d,result:h,error:s?.error,isReplyRunning:o})})})}let u=a.at(-1),h=d?.role==="assistant"&&(u?.kind==="text"&&u.isStreaming||u?.kind==="tools");return{items:a,isThinking:n&&!h}};export const buildEarlierThreadItems=t=>t.flatMap(({threadId:t,messages:e})=>[...buildThreadView(e,!1,!1).items.map(e=>"text"===e.kind?{...e,id:`${t}:${e.id}`,forms:"hidden"}:{...e,id:`${t}:${e.id}`}),{kind:"separator",id:`${t}:separator`}]);
@@ -1 +1 @@
1
- import{Kind as e,parse as t}from"graphql";import{z as n}from"zod";import{ASSISTANT_TOOL_ERROR_CODES as r,AssistantToolError as a,applyTool as i,queryTool as o}from"@salsita-ai/contracts/assistant";let l=n.object({operations:n.array(n.object({query:n.string(),operationName:n.string().nullish()}))}),s=n.object({results:n.array(n.object({errors:n.array(n.unknown()).optional()})),committed:n.boolean()});export const describeToolCall=n=>{let d=(({name:n,input:r})=>{let a,s=(a=l.safeParse(r)).success?a.data.operations.flatMap(({query:n,operationName:r})=>r??(n=>{try{let r=t(n).definitions.find(t=>t.kind===e.OPERATION_DEFINITION);return r?.kind===e.OPERATION_DEFINITION?r.name?.value:void 0}catch{return}})(n)??[]):[];return s.length>0?{kind:"text",text:s.join(", ")}:n===i.name?{kind:"updateDesign"}:n===o.name?{kind:"readDesign"}:{kind:"text",text:n}})(n);if(null==n.result&&null==n.error)return{label:d,state:n.isReplyRunning?"running":"done",errorCode:void 0};let u=(e=>{let t=a.safeParse(e);if(t.success)return r.find(e=>e===t.data.code)})(n.result);return{label:d,state:(({name:e,result:t,error:n},r)=>{if(null!=n||null!=r)return e===o.name?"flawed":"failed";if(e!==i.name&&e!==o.name)return"done";let a=s.safeParse(t);if(!a.success)return e===o.name?"flawed":"failed";let{results:l,committed:d}=a.data;return e===i.name?d?"done":"failed":l.some(({errors:e})=>(e?.length??0)>0)||0===l.length?"flawed":"done"})(n,u),errorCode:u}};
1
+ import{Kind as e,parse as t}from"graphql";import{z as n}from"zod";import{ASSISTANT_TOOL_ERROR_CODES as r,AssistantToolError as a,applyTool as s,queryTool as o}from"@salsita-ai/contracts/assistant";let i=n.object({operations:n.array(n.object({query:n.string(),operationName:n.string().nullish()}))}),l=n.object({results:n.array(n.object({errors:n.array(n.unknown()).optional()})),committed:n.boolean()}),u=n.tuple([n.object({type:n.literal("text"),content:n.string()})]).rest(n.unknown());export const describeToolCall=n=>{let d=(({name:n,input:r})=>{let a,l=(a=i.safeParse(r)).success?a.data.operations.flatMap(({query:n,operationName:r})=>r??(n=>{try{let r=t(n).definitions.find(t=>t.kind===e.OPERATION_DEFINITION);return r?.kind===e.OPERATION_DEFINITION?r.name?.value:void 0}catch{return}})(n)??[]):[];return l.length>0?{kind:"text",text:l.join(", ")}:n===s.name?{kind:"updateDesign"}:n===o.name?{kind:"readDesign"}:{kind:"text",text:n}})(n);if(null==n.result&&null==n.error)return{label:d,state:n.isReplyRunning?"running":"done",errorCode:void 0};let c=(e=>{let t=a.safeParse(e);if(t.success)return r.find(e=>e===t.data.code)})(n.result);return{label:d,state:(({name:e,result:t,error:n},r)=>{if(null!=n||null!=r)return e===o.name?"flawed":"failed";if(e!==s.name&&e!==o.name)return"done";let a=l.safeParse((e=>{let t=u.safeParse(e);if(!t.success)return e;try{return JSON.parse(t.data[0].content)}catch{return e}})(t));if(!a.success)return e===o.name?"flawed":"failed";let{results:i,committed:d}=a.data;return e===s.name?d?"done":"failed":i.some(({errors:e})=>(e?.length??0)>0)||0===i.length?"flawed":"done"})(n,c),errorCode:c}};
@@ -1 +1 @@
1
- import{useCallback as r,useEffect as e,useLayoutEffect as t,useRef as l,useState as c}from"react";export const useFollowStream=(o,n)=>{let s=l(null),u=l(!0),[i,g]=c(!1),h=r(()=>{let r=s.current;u.current=!0,g(!1),r&&(r.scrollTop=r.scrollHeight)},[]),H=r(()=>{let r=s.current;r&&(u.current=r.scrollHeight-r.scrollTop-r.clientHeight<=24,u.current&&g(!1))},[]);return t(()=>{h()},[n,h]),t(()=>{let r=s.current;r&&(u.current?r.scrollTop=r.scrollHeight:r.scrollHeight>r.clientHeight&&g(!0))},[o]),e(()=>{let r=s.current;if(!r)return;let e=new ResizeObserver(()=>{u.current&&(r.scrollTop=r.scrollHeight)});return e.observe(r),()=>{e.disconnect()}},[]),{scrollerRef:s,hasUnseenContent:i,handleScroll:H,scrollToEnd:h}};
1
+ import{useCallback as e,useEffect as r,useLayoutEffect as t,useRef as l,useState as c}from"react";export const useFollowStream=(o,n)=>{let s=l(null),i=l(!0),[u,g]=c(!1),h=e(()=>{let e=s.current;i.current=!0,g(!1),e&&(e.scrollTop=e.scrollHeight)},[]),H=e(()=>{let e=s.current;e&&(i.current=e.scrollHeight-e.scrollTop-e.clientHeight<=24,i.current&&g(!1))},[]);return t(()=>{h()},[n,h]),t(()=>{let e=s.current;e&&(i.current?e.scrollTop=e.scrollHeight:e.scrollHeight>e.clientHeight&&g(!0))},[o]),r(()=>{let e=s.current;if(!e)return;let r=()=>{i.current&&(e.scrollTop=e.scrollHeight)},t=new ResizeObserver(r);return t.observe(e),e.addEventListener("load",r,!0),()=>{t.disconnect(),e.removeEventListener("load",r,!0)}},[]),{scrollerRef:s,hasUnseenContent:u,handleScroll:H,scrollToEnd:h}};
@@ -0,0 +1 @@
1
+ export { SidebarKeys } from './sidebar-keys.js';
@@ -0,0 +1 @@
1
+ export{SidebarKeys}from"./sidebar-keys.js";
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Values of the desktop sidebar's `data-sidebar` attribute: its variants and states. The sidebar writes
3
+ * them; the built-in desktop layout's rules react to them.
4
+ */
5
+ export declare const SidebarKeys: {
6
+ readonly Minimalist: 'minimalist';
7
+ readonly Split: 'split';
8
+ readonly Visible: 'visible';
9
+ readonly Hidden: 'hidden';
10
+ readonly Assistant: 'assistant';
11
+ };
@@ -0,0 +1 @@
1
+ export const SidebarKeys={Minimalist:"minimalist",Split:"split",Visible:"visible",Hidden:"hidden",Assistant:"assistant"};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{Box as a}from"@mui/material";import{useDetectGPU as i}from"@react-three/drei";import{Canvas as o,useThree as n}from"@react-three/fiber";import{memo as s,useCallback as l,useEffect as p,useMemo as c,useState as f}from"react";import{BuiltInLoadingPhase as m,useLoadingPhase as d,useLoadingStateManager as h,useStoreSelector as u}from"#package/react-sdk";import{useResponsive as g}from"#package/ui-sdk";import{useConfigurator as x}from"../../../../application-runtime/index.js";import{Scene as v,SceneEnvironment as C}from"../../../../scene/index.js";import{CanvasLoader as P}from"../../../phoenix-layout-elements/index.js";import{GPUIssuePage as w}from"./GPUIssuePage.js";let j=e=>{let{onCanNotLoad:t}=e,r=n(e=>e.gl);return p(()=>{let e=r.getContext(),a=e.getExtension("WEBGL_debug_renderer_info");a?e.getParameter(a.UNMASKED_RENDERER_WEBGL).toLocaleLowerCase().includes("swiftshader")&&t?.("no-acceleration"):t?.("no-acceleration")},[r,t]),null};export const Canvas=s(()=>{let[n,s]=f(null),[D,E]=f(!0),{canvasSystem:B}=x(),L=u(e=>B.getCanvasConfig(e.state),[B]),y=i(),{canvasPadding:k}=g(),M=null!==h();d({id:m.SceneAssets,label:"Loading 3D scene…"},D);let $=l(()=>{E(!1),B.reportFirstLoadFinished()},[B]),_=l(e=>{B.onCanvasClick$.next(e)},[B]),b=l(e=>{B.onCanvasPointerMove$.next(e)},[B]),A=c(()=>{let e={};return L?.precision&&(e.precision=L.precision),L?.alpha&&(e.alpha=L.alpha),L?.premultipliedAlpha&&(e.premultipliedAlpha=L.premultipliedAlpha),L?.antialias&&(e.antialias=L.antialias),L?.stencil&&(e.stencil=L.stencil),L?.preserveDrawingBuffer&&(e.preserveDrawingBuffer=L.preserveDrawingBuffer),L?.powerPreference&&(e.powerPreference=L.powerPreference),L?.depth&&(e.depth=L.depth),L?.logarithmicDepthBuffer&&(e.logarithmicDepthBuffer=L.logarithmicDepthBuffer),L?.failIfMajorPerformanceCaveat&&(e.failIfMajorPerformanceCaveat=L.failIfMajorPerformanceCaveat),e},[L]);return(p(()=>{"WEBGL_UNSUPPORTED"===y.type&&s("no-gpu")},[y,s]),n)?e(w,{issue:n}):t(r,{children:[e(a,{component:"div",sx:{transition:"opacity 0.3s ease-in",opacity:+!D,width:"100%",height:"100%"},children:t(o,{gl:A,onClick:_,onPointerMove:b,frameloop:L?.frameloop,shadows:L?.shadows,children:[e(v,{onFirstLoad:$}),e(j,{onCanNotLoad:s}),e(C,{})]})}),!M&&e(a,{component:"div",sx:{position:"absolute",top:k.top,left:k.left,width:`calc(100% - ${k.left}px - ${k.right}px)`,height:`calc(100% - ${k.top}px - ${k.bottom}px)`,display:"flex",justifyContent:"center",alignItems:"center",transition:"opacity 0.3s ease-in",opacity:+!!D,pointerEvents:"none"},children:e(P,{})})]})});
1
+ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{Box as a}from"@mui/material";import{useDetectGPU as i}from"@react-three/drei";import{Canvas as o,useThree as n}from"@react-three/fiber";import{memo as s,useCallback as l,useEffect as p,useMemo as c,useState as f}from"react";import{BuiltInLoadingPhase as m,useExpectPhase as d,useLoadingPhase as h,useLoadingStateManager as u,useStoreSelector as g}from"#package/react-sdk";import{useResponsive as x}from"#package/ui-sdk";import{useConfigurator as v}from"../../../../application-runtime/index.js";import{Scene as C,SceneEnvironment as P}from"../../../../scene/index.js";import{CanvasLoader as w}from"../../../phoenix-layout-elements/index.js";import{GPUIssuePage as j}from"./GPUIssuePage.js";let D=e=>{let{onCanNotLoad:t}=e,r=n(e=>e.gl);return p(()=>{let e=r.getContext(),a=e.getExtension("WEBGL_debug_renderer_info");a?e.getParameter(a.UNMASKED_RENDERER_WEBGL).toLocaleLowerCase().includes("swiftshader")&&t?.("no-acceleration"):t?.("no-acceleration")},[r,t]),null};export const Canvas=s(()=>{let[n,s]=f(null),[E,B]=f(!0),{canvasSystem:L}=v(),y=g(e=>L.getCanvasConfig(e.state),[L]),k=i(),{canvasPadding:A}=x(),M=null!==u();d(m.SceneAssets),h({id:m.SceneAssets,label:"Loading 3D scene…"},E);let $=l(()=>{B(!1),L.reportFirstLoadFinished()},[L]),_=l(e=>{L.onCanvasClick$.next(e)},[L]),b=l(e=>{L.onCanvasPointerMove$.next(e)},[L]),I=c(()=>{let e={};return y?.precision&&(e.precision=y.precision),y?.alpha&&(e.alpha=y.alpha),y?.premultipliedAlpha&&(e.premultipliedAlpha=y.premultipliedAlpha),y?.antialias&&(e.antialias=y.antialias),y?.stencil&&(e.stencil=y.stencil),y?.preserveDrawingBuffer&&(e.preserveDrawingBuffer=y.preserveDrawingBuffer),y?.powerPreference&&(e.powerPreference=y.powerPreference),y?.depth&&(e.depth=y.depth),y?.logarithmicDepthBuffer&&(e.logarithmicDepthBuffer=y.logarithmicDepthBuffer),y?.failIfMajorPerformanceCaveat&&(e.failIfMajorPerformanceCaveat=y.failIfMajorPerformanceCaveat),e},[y]);return(p(()=>{"WEBGL_UNSUPPORTED"===k.type&&s("no-gpu")},[k,s]),n)?e(j,{issue:n}):t(r,{children:[e(a,{component:"div",sx:{transition:"opacity 0.3s ease-in",opacity:+!E,width:"100%",height:"100%"},children:t(o,{gl:I,onClick:_,onPointerMove:b,frameloop:y?.frameloop,shadows:y?.shadows,children:[e(C,{onFirstLoad:$}),e(D,{onCanNotLoad:s}),e(P,{})]})}),!M&&e(a,{component:"div",sx:{position:"absolute",top:A.top,left:A.left,width:`calc(100% - ${A.left}px - ${A.right}px)`,height:`calc(100% - ${A.top}px - ${A.bottom}px)`,display:"flex",justifyContent:"center",alignItems:"center",transition:"opacity 0.3s ease-in",opacity:+!!E,pointerEvents:"none"},children:e(w,{})})]})});
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{styled as e}from"@mui/material";import{Suspense as o,memo as r,useEffect as i,useRef as n,useState as a}from"react";import{useLoadingStateManager as s}from"#package/react-sdk";import{usePreview as l}from"../../../../configurator-context/index.js";import{CanvasLoader as m}from"../../../phoenix-layout-elements/index.js";import{Canvas as c}from"./LayoutCanvas.js";let p=e("div",{shouldForwardProp:t=>"masked"!==t})(({masked:t,theme:{palette:e}})=>({backgroundColor:e.background.scene,inset:0,position:"absolute",isolation:"isolate",maxBlockSize:"var(--phx-app-height)","&::after":{backgroundColor:"inherit",content:'""',display:"block",inset:"inherit",opacity:+!!t,pointerEvents:"none",position:"absolute",transitionDuration:t?"0ms":"100ms",transitionProperty:"opacity",transitionTimingFunction:"linear"}})),u=e("div")({display:"grid",inset:0,placeItems:"center",pointerEvents:"none",position:"absolute"}),d=()=>null!==s()?null:t(u,{children:t(m,{})});export const SharedCanvas=r(()=>{let{isExpanded:e}=l(),[r,s]=a(!1),m=n(e);return i(()=>{if(e===m.current)return;m.current=e,s(!0);let t=setTimeout(()=>s(!1),600);return()=>clearTimeout(t)},[e]),t(p,{masked:r,children:t(o,{fallback:t(d,{}),children:t(c,{})})})});
1
+ import{jsx as t}from"react/jsx-runtime";import{styled as e}from"@mui/material";import{Suspense as o,memo as r,useEffect as i,useRef as n,useState as a}from"react";import{BuiltInLoadingPhase as s,useExpectPhase as l,useLoadingStateManager as m}from"#package/react-sdk";import{usePreview as c}from"../../../../configurator-context/index.js";import{CanvasLoader as p}from"../../../phoenix-layout-elements/index.js";import{Canvas as u}from"./LayoutCanvas.js";let d=e("div",{shouldForwardProp:t=>"masked"!==t})(({masked:t,theme:{palette:e}})=>({backgroundColor:e.background.scene,inset:0,position:"absolute",isolation:"isolate",maxBlockSize:"var(--phx-app-height)","&::after":{backgroundColor:"inherit",content:'""',display:"block",inset:"inherit",opacity:+!!t,pointerEvents:"none",position:"absolute",transitionDuration:t?"0ms":"100ms",transitionProperty:"opacity",transitionTimingFunction:"linear"}})),h=e("div")({display:"grid",inset:0,placeItems:"center",pointerEvents:"none",position:"absolute"}),f=()=>null!==m()?null:t(h,{children:t(p,{})});export const SharedCanvas=r(()=>{l(s.SceneAssets);let{isExpanded:e}=c(),[r,m]=a(!1),p=n(e);return i(()=>{if(e===p.current)return;p.current=e,m(!0);let t=setTimeout(()=>m(!1),600);return()=>clearTimeout(t)},[e]),t(d,{masked:r,children:t(o,{fallback:t(f,{}),children:t(u,{})})})});
@@ -25,13 +25,8 @@ declare module '@mui/material/styles' {
25
25
  };
26
26
  }
27
27
  }
28
- export declare const SidebarKeys: {
29
- readonly Minimalist: 'minimalist';
30
- readonly Split: 'split';
31
- readonly Visible: 'visible';
32
- readonly Hidden: 'hidden';
33
- readonly Assistant: 'assistant';
34
- };
28
+ /** Which side of its layout the sidebar is on. */
29
+ export type DesktopSidebarSide = 'start' | 'end';
35
30
  interface SidebarOwnerState {
36
31
  readonly isHeaderEmpty?: boolean;
37
32
  readonly isContentEmpty?: boolean;
@@ -76,17 +71,31 @@ export interface ThemeableDesktopSidebarProps extends SidebarOwnerState {
76
71
  */
77
72
  readonly scrollableIndicatorBackground?: CSSProperties['background'];
78
73
  /**
79
- * Inline size (width) of the sidebar.
80
- *
81
- * @default inherited from ThemeableDesktopLayoutProps.sidebarWidth
74
+ * Inline size (width) of the sidebar. Not read from the theme: the sidebar takes its width from its
75
+ * `width` prop, which the built-in desktop layout sets from `ThemeableDesktopLayoutProps.sidebarWidth`.
82
76
  */
83
77
  readonly width?: CSSProperties['width'];
84
78
  }
85
- interface DesktopSidebarProps {
79
+ /** Props of the built-in desktop sidebar. */
80
+ export interface DesktopSidebarProps {
81
+ /**
82
+ * Inline size (width) of the sidebar. Without it the sidebar fills the width and height of its
83
+ * container, which the layout sizes and positions; with it the sidebar takes this width and the
84
+ * height of its content, unless its container stretches it.
85
+ */
86
+ readonly width?: CSSProperties['width'];
86
87
  /**
87
- * Inline size (width) of the sidebar. The layout passes the width of its sidebar column.
88
+ * Which side of the layout the sidebar is on. The sidebar tabs sit outside the sidebar on the other
89
+ * side: to its left for `end`, to its right for `start`.
90
+ *
91
+ * @default 'end'
88
92
  */
89
- readonly width: CSSProperties['width'];
93
+ readonly side?: DesktopSidebarSide;
90
94
  }
91
- export declare const DesktopSidebar: ({ width }: DesktopSidebarProps) => import("react/jsx-runtime").JSX.Element;
95
+ /**
96
+ * The built-in desktop sidebar: tabs, back button, property page, footer and the assistant panel, with
97
+ * their spacing, scrolling and empty states. In fullscreen it stays in place, transparent and inert;
98
+ * the layout decides whether it keeps its space.
99
+ */
100
+ export declare const DesktopSidebar: ({ width, side }: DesktopSidebarProps) => import("react/jsx-runtime").JSX.Element;
92
101
  export {};
@@ -0,0 +1,16 @@
1
+ import{jsx as r,jsxs as a}from"react/jsx-runtime";import{paperClasses as e,styled as d,tabsClasses as i,useTheme as t,useThemeProps as o}from"@mui/material";import{useMemo as n,useState as s}from"react";import{useIsFullscreenActive as b}from"#package/react-sdk";import{attrf as l,commonStyles as p,useInvalidateScrollTimeline as c,useIsEmpty as h}from"#package/ui-sdk";import{ASSISTANT_PANEL_SLOT as m,AssistantPanel as u,useIsAssistantPanelOpen as S}from"../../../assistant/index.js";import{SidebarKeys as g}from"../../sidebar-keys/index.js";import{DesktopSidebarBackButton as k}from"../sidebar-back-button/index.js";import{DesktopSidebarContent as x,useSidebarContent as E}from"../sidebar-contents/index.js";import{DesktopSidebarFooter as f}from"../sidebar-footer/index.js";import{DesktopSidebarTabs as v}from"../sidebar-tabs/index.js";let R="PhxDesktopSidebar",y={Root:d("div",{name:R,slot:"root",shouldForwardProp:r=>"ownerState"!==r})(({ownerState:r})=>[`
2
+ --phx-sidebar-background: ${r.background};
3
+ --phx-sidebar-border: ${r.border};
4
+ --phx-sidebar-filter: ${r.filter};
5
+ --phx-sidebar-padding: ${r.padding};
6
+ --phx-sidebar-radius: ${r.borderRadius}px;
7
+ --phx-sidebar-scrollable-indicator-background: ${r.scrollableIndicatorBackground};
8
+ `,{borderRadius:"var(--phx-sidebar-radius)",display:"grid",filter:"var(--phx-sidebar-filter)",gridTemplateRows:"min-content minmax(0, 1fr) min-content",inlineSize:r.width,...void 0===r.width&&{blockSize:"100%",inlineSize:"100%"},position:"relative","& > *":{pointerEvents:"auto"},"@container style(--inspect: on)":{"--phx-sidebar-background":"hsl(from gold h s l / 50%)"},[`&[data-sidebar*="${g.Visible}"]`]:{opacity:1},[`&[data-sidebar*="${g.Hidden}"]`]:{opacity:0},[`&[data-sidebar*="${g.Assistant}"] > :not([data-sidebar="${m}"])`]:{visibility:"hidden"}}]),Tabs:d("div",{name:R,slot:"tabs",shouldForwardProp:r=>"ownerState"!==r})(({ownerState:r,theme:{spacing:a}})=>({insetBlockStart:0,insetInlineEnd:"100%",maxInlineSize:150,paddingInlineEnd:a(2),position:"absolute",..."start"===r.side&&{insetInlineEnd:"auto",insetInlineStart:"100%",paddingInlineEnd:0,paddingInlineStart:a(2),[`.${i.indicator}`]:{left:0,right:"auto"}},"&:is(:empty)":{padding:0},[`.${e.root}`]:{boxShadow:"none"}})),Header:d("header",{name:R,slot:"header",shouldForwardProp:r=>"ownerState"!==r})({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:d("div",{name:R,slot:"body",shouldForwardProp:r=>"ownerState"!==r})(({ownerState:r})=>({background:"var(--phx-sidebar-background)",border:"var(--phx-sidebar-border)",borderBlockStart:0,borderBlockEnd:0,display:"grid",position:"relative","[data-sidebar] &":{...r.isHeaderEmpty&&{borderBlockStart:"var(--phx-sidebar-border)",borderStartStartRadius:"inherit",borderStartEndRadius:"inherit",paddingBlockStart:"var(--phx-sidebar-padding)"}},'&:has([data-sidebar*="slot[content]"]:empty)':{...r.isContentEmpty&&{paddingBlock:0}},[`[data-sidebar*="${g.Minimalist}"] &`]:{...r.isContentEmpty&&{border:0}},[`[data-sidebar*="${g.Split}"] &`]:{borderBlockEnd:"var(--phx-sidebar-border)",borderEndStartRadius:"inherit",borderEndEndRadius:"inherit",paddingBlockEnd:"var(--phx-sidebar-padding)"}})),Content:d("div",{name:R,slot:"content",shouldForwardProp:r=>"ownerState"!==r})(({ownerState:r,theme:{spacing:a}})=>({...p.layout.normalizeScrollableContainer,alignContent:"start",borderRadius:"inherit",display:"grid",gap:a(3),padding:"var(--phx-sidebar-padding)","@supports (animation-timeline: scroll())":{"&[data-scrollable]":{scrollTimeline:"--phx-sidebar-timeline y","&::after, &::before":{animation:`${p.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% - ${a(4)}) 100%`,borderEndStartRadius:"inherit",borderEndEndRadius:"inherit",insetBlockStart:"50%",insetBlockEnd:0,scale:"1 -1"},"&::before":{animationRange:`0 ${a(4)}`,borderStartStartRadius:"inherit",borderStartEndRadius:"inherit",insetBlockStart:0,insetBlockEnd:"50%"}}},"&:is(:empty)":{paddingBlock:0},"[data-sidebar] &":{...r.isHeaderEmpty&&{paddingBlockStart:0,"&::before":{borderStartStartRadius:0,borderStartEndRadius:0,insetBlockStart:"var(--phx-sidebar-padding)"}}},[`[data-sidebar*="${g.Split}"] &`]:{paddingBlockEnd:0,"&::after":{borderEndStartRadius:0,borderEndEndRadius:0,insetBlockEnd:"var(--phx-sidebar-padding)"}}})),Footer:d("footer",{name:R,slot:"footer",shouldForwardProp:r=>"ownerState"!==r})(({ownerState:r,theme:{palette:a,spacing:e}})=>({background:"var(--phx-sidebar-background)",border:"var(--phx-sidebar-border)",borderBlockStart:`1px solid ${a.divider}`,borderEndStartRadius:"inherit",borderEndEndRadius:"inherit",padding:"var(--phx-sidebar-padding)","&:is(:empty)":{border:0,paddingBlock:0},[`[data-sidebar*="${g.Minimalist}"] &`]:{...r.isContentEmpty&&{borderBlockStart:"var(--phx-sidebar-border)",borderStartStartRadius:"inherit",borderStartEndRadius:"inherit"}},[`[data-sidebar*="${g.Split}"] &`]:{borderBlockStart:"var(--phx-sidebar-border)",borderStartStartRadius:"inherit",borderStartEndRadius:"inherit",marginBlockStart:e(2)}}))};export const DesktopSidebar=({width:e,side:d="end"})=>{let[i,p]=s(null),[m,B]=s(null),$=n(()=>({current:i}),[i]),w=n(()=>({current:m}),[m]),{palette:I,shape:j,spacing:C}=t(),{background:F=I.background.paper,border:H=0,borderRadius:P=j.sidebarBorderRadius??j.borderRadius,filter:z=`
9
+ drop-shadow(0 1px 1.5px hsl(from ${I.common.black} h s l / 12%))
10
+ drop-shadow(0 1px 0.5px hsl(from ${I.common.black} h s l / 14%))
11
+ drop-shadow(0 2px 0.5px hsl(from ${I.common.black} h s l / 20%))
12
+ `,padding:T=C(2.5),scrollableIndicatorBackground:D=`linear-gradient(
13
+ 180deg,
14
+ hsl(from black h s l / 12%),
15
+ hsl(from black h s l / 0%) 8px
16
+ )`}=o({props:{},name:R}),{hasMiniSidebar:M,hasSplitSidebar:A}=E(),V=S(),q=!b(),G=h($,{disabled:!q}),J=h(w,{disabled:!q});c(w,{disabled:!q});let K={background:F,border:H,borderRadius:P,filter:z,isHeaderEmpty:G,isContentEmpty:J,padding:T,scrollableIndicatorBackground:D,width:e};return a(y.Root,{ownerState:K,"data-sidebar":l({variant:{[`${g.Minimalist}`]:M,[`${g.Split}`]:A},state:{[`${g.Visible}`]:q,[`${g.Hidden}`]:!q,[`${g.Assistant}`]:V}}),inert:q?void 0:"",children:[r(y.Tabs,{ownerState:{...K,side:d},"data-sidebar":"slot[tabs]",children:r(v,{})}),r(y.Header,{ref:p,ownerState:K,"data-sidebar":"slot[header]",children:r(k,{})}),r(y.Body,{ownerState:K,"data-sidebar":"slot[body]",children:r(y.Content,{ref:B,ownerState:K,"data-sidebar":"slot[content]",children:r(x,{})})}),r(y.Footer,{ownerState:K,"data-sidebar":"slot[footer]",children:r(f,{})}),r(u,{})]})};
@@ -0,0 +1 @@
1
+ export { DesktopSidebar, type DesktopSidebarProps, type DesktopSidebarSide } from './DesktopSidebar.js';
@@ -0,0 +1 @@
1
+ export{DesktopSidebar}from"./DesktopSidebar.js";
@@ -1,7 +1,7 @@
1
1
  export declare const useMobileTabs: () => {
2
2
  tabs: {
3
3
  label: string;
4
- icon: import("react").ReactNode;
4
+ icon: string | number | boolean | Iterable<import("react").ReactNode> | import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
5
5
  value: string;
6
6
  isActive: boolean;
7
7
  }[];
@@ -1 +1 @@
1
- import{useCallback as e,useMemo as t}from"react";import{horizontalTabsComponent as o,sidebarTabsComponent as n}from"#package/domain";import{useActiveNavigationState as a,useComponents as i,useDomain as r,useResolveLocalizable as s,useSelectedDomainEntityId as c}from"#package/react-sdk";import{useIsSidebarSummaryActive as l}from"../../../../configurator-context/index.js";export const useMobileTabs=()=>{let m=a(),b=i({componentTypes:[n],entityIds:[c()]}),d=i({componentTypes:[o]}),p=t(()=>{if(b.length>0&&d.length>0)throw Error("Both sidebar tabs and horizontal tabs are configured, only one tabs component type can be used at a time, remove either sidebarTabs or horizontalTabs from your domain configuration");if(b.length>1)throw Error("Multiple sidebar tab components are active, only one sidebar tabs component can be active at a time, check your domain configuration to ensure only one sidebarTabs component is defined");if(d.length>1)throw Error("Multiple horizontal tab components are active, only one horizontal tabs component can be active at a time, check your domain configuration to ensure only one horizontalTabs component is defined");return b.length>0?b.at(0):d.at(0)},[b,d]),h=s(),u=l(),g=t(()=>p?p.state.tabs.map(e=>{let t=e.navigationStates[0];if(!t)throw Error(`Tab ${h(e.label)} has no navigation states!`);return{label:h(e.label),icon:e.icon,value:t,isActive:e.navigationStates.includes(m)}}):[],[p,m,h]),{navigationSystem:f,storeSystem:v}=r(),y=e(e=>{v.stageAndCommit([f.getNavigationUpdate(e)])},[f,v]),T=t(()=>{let e=g.find(e=>e.isActive);return e?.value??"none"},[g]);return u?{tabs:[],activeTab:"none",onChange:()=>{}}:{tabs:g,activeTab:T,onChange:y}};
1
+ import{useCallback as t,useMemo as e}from"react";import{horizontalTabsComponent as o,sidebarTabsComponent as a}from"#package/domain";import{useComponents as n,useDomain as i,useResolveLocalizable as r,useSelectedDomainEntityId as s,useTabNavigation as c}from"#package/react-sdk";import{useIsSidebarSummaryActive as b}from"../../../../configurator-context/index.js";export const useMobileTabs=()=>{let{tabs:l,activeTab:m}=c(),{navigationSystem:p,storeSystem:d}=i(),h=n({componentTypes:[a],entityIds:[s()]}),f=n({componentTypes:[o]}),g=r(),u=b(),v=e(()=>l.map(t=>({label:t.label,icon:t.iconNode??t.icon,value:t.state,isActive:t.isActive})),[l]),y=t(t=>{d.stageAndCommit([p.getNavigationUpdate(t)])},[p,d]),T=m?.state??"none";if(h.length>0&&f.length>0)throw Error("Both sidebar tabs and horizontal tabs are configured, only one tabs component type can be used at a time, remove either sidebarTabs or horizontalTabs from your domain configuration");if(h.length>1)throw Error("Multiple sidebar tab components are active, only one sidebar tabs component can be active at a time, check your domain configuration to ensure only one sidebarTabs component is defined");if(f.length>1)throw Error("Multiple horizontal tab components are active, only one horizontal tabs component can be active at a time, check your domain configuration to ensure only one horizontalTabs component is defined");let k=[...h.flatMap(t=>t.state.tabs),...f.flatMap(t=>t.state.tabs)].find(t=>0===t.navigationStates.length);if(k)throw Error(`Tab ${g(k.label)} has no navigation states!`);return u?{tabs:[],activeTab:"none",onChange:()=>{}}:{tabs:v,activeTab:T,onChange:y}};
@@ -1,8 +1,8 @@
1
1
  /**
2
- * InvariantViolations component that monitors domain store validity and displays
3
- * violation notifications using notistack snackbars.
2
+ * InvariantViolations component that shows the violation and error messages of
3
+ * `useConfiguratorMessages` as notistack snackbars.
4
4
  *
5
- * This component subscribes to the store's validity state and shows appropriate
6
- * error messages for uncaught errors and entity validation violations.
5
+ * An uncaught error is also logged; each entity violation becomes one snackbar
6
+ * prefixed with the id of its entity.
7
7
  */
8
8
  export declare const InvariantViolations: () => null;
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import{Trans as t}from"@lingui/react";import{useSnackbar as i}from"notistack";import{useSubscription as e}from"observable-hooks";import{useMemo as a}from"react";import{map as o}from"rxjs";import{match as n}from"ts-pattern";import{useDomain as s,useLogger as m,useResolveLocalizable as l}from"#package/react-sdk";export const InvariantViolations=()=>{let{storeSystem:p}=s(),{enqueueSnackbar:g}=i(),c=l(),f=m();return e(a(()=>p.stateSlices.potentiallyInvalid.pipe(o(r=>r.validity)),[p]),i=>{if(!i.valid&&"uncaught"===i.severity){f.error("Uncaught error",i.error),g(r(t,{id:"sdk.messages.validation.uncaughtError.message",message:"Oops, something went wrong"}),{variant:"error"});return}i.valid||i.entityViolations.forEach(({violation:r,entityId:t})=>{let i=c(r.message??r.type);g(`${String(t)}: ${i}`,{variant:n(r.severity).with("notice",()=>"info").with("warning",()=>"warning").with("fixable",()=>"error").with("fatal",()=>"error").exhaustive()})})}),null};
1
+ import{jsx as r}from"react/jsx-runtime";import{Trans as i}from"@lingui/react";import{useSnackbar as t}from"notistack";import{match as e}from"ts-pattern";import{useConfiguratorMessages as a,useLogger as n}from"#package/react-sdk";export const InvariantViolations=()=>{let{enqueueSnackbar:o}=t(),s=n();return a(t=>{e(t).with({kind:"error"},({error:t})=>{s.error("Uncaught error",t),o(r(i,{id:"sdk.messages.validation.uncaughtError.message",message:"Oops, something went wrong"}),{variant:"error"})}).with({kind:"violation"},({entityId:r,violation:i,text:t})=>{o(`${String(r)}: ${t}`,{variant:e(i.severity).with("notice",()=>"info").with("warning",()=>"warning").with("fixable",()=>"error").with("fatal",()=>"error").exhaustive()})}).with({kind:"sideEffect"},()=>{}).with({kind:"saveError"},{kind:"saveRecovery"},()=>{}).exhaustive()}),null};
@@ -1 +1 @@
1
- import{jsx as r,jsxs as s,Fragment as t}from"react/jsx-runtime";import{memo as o}from"react";import{InvariantViolations as i}from"./InvariantViolations.js";import{SideEffects as e}from"./SideEffects.js";export const Services=o(()=>s(t,{children:[r(i,{}),r(e,{})]}));
1
+ import{jsx as r,jsxs as s,Fragment as e}from"react/jsx-runtime";import{memo as o}from"react";import{SaveMessageSnackbars as t}from"../../../save-message-snackbars/index.js";import{InvariantViolations as a}from"./InvariantViolations.js";import{SideEffects as i}from"./SideEffects.js";export const Services=o(()=>s(e,{children:[r(a,{}),r(i,{}),r(t,{})]}));
@@ -1,9 +1,6 @@
1
1
  /**
2
- * SideEffects component that listens to domain store updates and displays
3
- * informational snackbars for updates that contain hint messages.
4
- *
5
- * This component renders nothing but subscribes to the committed state changes
6
- * from the domain store system and shows user-friendly notifications for
7
- * operations that provide feedback hints.
2
+ * SideEffects component that shows the side-effect messages of
3
+ * `useConfiguratorMessages`, the hints of committed updates, as informational
4
+ * notistack snackbars.
8
5
  */
9
6
  export declare const SideEffects: () => null;
@@ -1 +1 @@
1
- import{useSnackbar as t}from"notistack";import{useSubscription as r}from"observable-hooks";import{useMemo as e}from"react";import{distinctUntilChanged as o,map as i,skip as a}from"rxjs/operators";import{useDomain as m,useResolveLocalizable as n}from"#package/react-sdk";let p=[];export const SideEffects=()=>{let{storeSystem:s}=m(),f=n(),{enqueueSnackbar:c}=t();return r(e(()=>s.stateSlices.committed.pipe(a(1),o(),i(t=>{if("updates"in t){let r=t.updates.filter(t=>!!t.hint);return r.length>0?r:p}return p})),[s]),t=>{t.forEach(t=>{c(f(t.hint),{variant:"info"})})}),null};
1
+ import{useSnackbar as t}from"notistack";import{useConfiguratorMessages as e}from"#package/react-sdk";export const SideEffects=()=>{let{enqueueSnackbar:r}=t();return e(t=>{"sideEffect"===t.kind&&r(t.text,{variant:"info"})}),null};
@@ -1,7 +1,7 @@
1
1
  export declare const useSidebarTabs: () => {
2
2
  tabs: {
3
3
  label: string;
4
- icon: import("react").ReactNode;
4
+ icon: string | number | boolean | Iterable<import("react").ReactNode> | import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
5
5
  value: string;
6
6
  isActive: boolean;
7
7
  }[];
@@ -1 +1 @@
1
- import{useCallback as t,useMemo as a}from"react";import{sidebarTabsComponent as e}from"#package/domain";import{useActiveNavigationState as n,useComponents as o,useDomain as i,useResolveLocalizable as r,useSelectedDomainEntityId as s}from"#package/react-sdk";import{useIsSidebarSummaryActive as c}from"../../../../configurator-context/index.js";export const useSidebarTabs=()=>{let m=n(),p=o({componentTypes:[e],entityIds:[s()]}),g=r(),l=c(),d=a(()=>(p??[]).flatMap(t=>t.state.tabs).map(t=>{let a=t.navigationStates[0];if(!a)throw Error(`Tab ${a} has no navigation states!`);return{label:g(t.label),icon:t.icon,value:a,isActive:t.navigationStates.includes(m)}}),[p,m,g]),{navigationSystem:b,storeSystem:f}=i(),v=t(t=>{f.stageAndCommit([b.getNavigationUpdate(t)])},[b,f]),u=a(()=>{let t=d.find(t=>t.isActive);return t?.value??"none"},[d]);return l?{tabs:[],activeTab:"none",onChange:()=>{}}:{tabs:d,activeTab:u,onChange:v}};
1
+ import{useCallback as t,useMemo as a}from"react";import{sidebarTabsComponent as e}from"#package/domain";import{useComponents as o,useResolveLocalizable as n,useSelectedDomainEntityId as i,useTabNavigation as s}from"#package/react-sdk";import{useIsSidebarSummaryActive as r}from"../../../../configurator-context/index.js";export const useSidebarTabs=()=>{let{tabs:c,activeTab:b,select:m}=s({source:"sidebarTabs"}),p=o({componentTypes:[e],entityIds:[i()]}),d=n(),l=r(),f=a(()=>c.map(t=>({label:t.label,icon:t.iconNode??t.icon,value:t.state,isActive:t.isActive})),[c]),g=t(t=>{m(c.findIndex(a=>a.state===t))},[m,c]),v=b?.state??"none",T=p.flatMap(t=>t.state.tabs).find(t=>0===t.navigationStates.length);if(T)throw Error(`Tab ${d(T.label)} has no navigation states!`);return l?{tabs:[],activeTab:"none",onChange:()=>{}}:{tabs:f,activeTab:v,onChange:g}};
@@ -1,5 +1,6 @@
1
1
  export * from './call-to-action/index.js';
2
2
  export * from './canvas/index.js';
3
+ export * from './desktop-sidebar/index.js';
3
4
  export * from './footer/index.js';
4
5
  export * from './hamburger-menu/index.js';
5
6
  export * from './header/index.js';
@@ -1 +1 @@
1
- export*from"./call-to-action/index.js";export*from"./canvas/index.js";export*from"./footer/index.js";export*from"./hamburger-menu/index.js";export*from"./header/index.js";export*from"./mobile-tabs/index.js";export*from"./powered-by/index.js";export*from"./readonly-banner/index.js";export*from"./services/index.js";export*from"./sidebar-back-button/index.js";export*from"./sidebar-contents/index.js";export*from"./sidebar-footer/index.js";export*from"./sidebar-tabs/index.js";export*from"./snackbar-root/index.js";export*from"./toolbar/index.js";export*from"./tool-controls/index.js";export*from"./view-controls/index.js";
1
+ export*from"./call-to-action/index.js";export*from"./canvas/index.js";export*from"./desktop-sidebar/index.js";export*from"./footer/index.js";export*from"./hamburger-menu/index.js";export*from"./header/index.js";export*from"./mobile-tabs/index.js";export*from"./powered-by/index.js";export*from"./readonly-banner/index.js";export*from"./services/index.js";export*from"./sidebar-back-button/index.js";export*from"./sidebar-contents/index.js";export*from"./sidebar-footer/index.js";export*from"./sidebar-tabs/index.js";export*from"./snackbar-root/index.js";export*from"./toolbar/index.js";export*from"./tool-controls/index.js";export*from"./view-controls/index.js";
@@ -1,7 +1,6 @@
1
1
  import type { ComponentsOverrides } from '@mui/material';
2
2
  import type { CSSProperties } from 'react';
3
3
  import type { ValueOf } from '@salsita-ai/common/utils';
4
- export type { ThemeableDesktopSidebarProps } from './DesktopSidebar.js';
5
4
  export declare const PhxDesktopLayoutName: 'PhxDesktopLayout';
6
5
  declare const MuiLayoutComponentName: "PhxDesktopLayout";
7
6
  declare const MuiLayoutSlots: {
@@ -31,3 +30,4 @@ export interface ThemeableDesktopLayoutProps {
31
30
  readonly sidebarWidth?: CSSProperties['width'];
32
31
  }
33
32
  export declare const DesktopLayout: () => import("react/jsx-runtime").JSX.Element;
33
+ export {};
@@ -1,4 +1,4 @@
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 n}from"motion/react";import{useCallback as s}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{LayoutSlots as g}from"../slots/index.js";import{DesktopPreview as x}from"./DesktopPreview.js";import{DesktopSidebar as v,SidebarKeys as k}from"./DesktopSidebar.js";import{useLayoutSceneSafeArea as w}from"./use-layout-scene-safe-area.js";export const PhxDesktopLayoutName="PhxDesktopLayout";let C="PhxDesktopLayout",D=r(n.div,{name:C,slot:"root",shouldForwardProp:t=>"ownerState"!==t})(({ownerState:t,theme:{spacing:a}})=>{let o=e({"0%":{marginInlineEnd:0},"100%":{marginInlineEnd:a(-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[`
2
2
  --inspect: off; // 🕹️ inspection mode toggle
3
3
 
4
4
  --phx-layout-sidebar-track-size: ${c(t.sidebarWidth)};
@@ -31,4 +31,4 @@ import{jsx as t,jsxs as a,Fragment as o}from"react/jsx-runtime";import{keyframes
31
31
  [bottom-start]
32
32
  min-content
33
33
  [bottom-end full-end]
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*="${k.Minimalist}"])`]:{'[data-layout*="slot[sidebar]"]':{alignContent:"end",gridRow:"main-start / main-end"}},[`&:has([data-header*="floating"]):has([data-sidebar*="${k.Minimalist}"])`]:{'[data-layout*="slot[header]"]':{gridColumnEnd:"sidebar-end"},'[data-layout*="slot[sidebar]"]':{gridRowStart:"top-end"}},[`&:has([data-sidebar*="${k.Assistant}"])`]:{'[data-layout*="slot[sidebar]"]':{alignContent:"stretch"}},[`&:has([data-sidebar*="${k.Hidden}"])`]:{"--phx-layout-gap":0,"--phx-layout-sidebar-track-size":0,'[data-layout*="slot[sidebar]"]':{overflow:"hidden"}}}]}),A=r("div")({gridArea:"1 / 1 / -1 / -1"});export const DesktopLayout=()=>{let{sidebarWidth:e="clamp(360px, 30cqi, 400px)"}=d({props:{},name:C}),{hasMiniSidebar:i}=g.useSidebarContent(),r=f(),{accessInfo:n}=u(),y=m(),{isPreview:c,isHidden:k}=h(),E=!k&&!c,{setAnimating:S}=b(),{containerRef:T,safeAreaRef:$,update:j}=w({enabled:E,hasMiniSidebar:i&&!r}),R=s(()=>{S(!0)},[S]),I=s(()=>{S(!1),j()},[S,j]);return t(o,{children:a(l,{mode:"wait",children:[!k&&c&&t(x,{},"preview-layout"),E&&a(D,{layoutId:"ui-layout",layout:!0,ownerState:{sidebarWidth:e},"data-layout":p({state:{initial:!y,fullscreen:y}}),onLayoutAnimationStart:R,onLayoutAnimationComplete:I,children:[t(A,{ref:T}),t("header",{"data-layout":"slot[header]",children:t(g.DesktopHeader,{})}),a("main",{"data-layout":"slot[body]",children:[t("div",{"data-layout":"slot[body.top] interactive",children:t(g.DesktopCallToAction,{})}),t("div",{ref:$,"data-layout":"slot[body.safeSceneArea]"}),a("div",{"data-layout":"slot[body.bottom] interactive",children:[t("div",{"data-layout":"slot[body.toolbar]",children:t(g.DesktopToolbar,{})}),t("div",{"data-layout":"slot[body.toolControls]",children:!y&&t(g.DesktopToolControls,{})}),t("div",{"data-layout":"slot[body.viewControls]",children:t(g.DesktopViewControls,{})}),t("div",{"data-layout":"slot[body.logo]",children:t(g.DesktopPoweredBy,{})}),t("div",{"data-layout":"slot[body.sideEffects]",children:t(g.DesktopSnackbarsRoot,{})})]})]}),t("aside",{"data-layout":"slot[sidebar]",children:t(v,{width:e})}),a("footer",{"data-layout":"slot[footer] interactive",children:[n.viewMode&&!y&&t(g.DesktopReadonlyBanner,{}),t(g.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")]})})};
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Covers the configurator while an export runs, which keeps it inert: a press anywhere shows for a
3
+ * moment why nothing responds, instead of a configurator that silently ignores the user.
4
+ */
5
+ export declare const ExportingOverlay: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ import{jsx as e}from"react/jsx-runtime";import{Trans as r}from"@lingui/react";import{styled as t}from"@mui/material";import{useCallback as o,useEffect as i,useState as a}from"react";let n=t("div",{name:"PhxExportingOverlay",slot:"root"})(({theme:{zIndex:e}})=>({alignItems:"center",cursor:"wait",display:"flex",inset:0,justifyContent:"center",position:"absolute",zIndex:e.modal+1})),l=t("div",{name:"PhxExportingOverlay",slot:"message"})(({theme:{palette:e,shape:r,shadows:t,spacing:o,typography:i}})=>({...i.body2,background:e.background.paper,borderRadius:r.borderRadius,boxShadow:t[4],color:e.text.primary,padding:o(1,2)}));export const ExportingOverlay=()=>{let[t,s]=a(null),m=o(()=>s(Date.now()),[]);return i(()=>{if(null===t)return;let e=setTimeout(()=>s(null),2e3);return()=>clearTimeout(e)},[t]),e(n,{onPointerDown:m,children:null!==t&&e(l,{role:"status",children:e(r,{id:"sdk.layout.exporting.message",message:"Configurator is exporting… please wait"})})})};
@@ -1 +1 @@
1
- import{jsx as r,jsxs as o,Fragment as s}from"react/jsx-runtime";import{useResponsive as t}from"#package/ui-sdk";import{LayoutSlots as e}from"../slots/index.js";import{DesktopLayout as a}from"./DesktopLayout.js";import{MobileLayout as m}from"./MobileLayout.js";export const Layout=()=>{let{isDesktop:i}=t();return o(s,{children:[r(e.Services,{}),r(e.SharedCanvas,{}),i?r(a,{}):r(m,{})]})};
1
+ import{jsx as t,jsxs as e,Fragment as r}from"react/jsx-runtime";import{styled as o}from"@mui/material";import{useEffect as i}from"react";import{useEagerObservableValue as m}from"#package/react-sdk";import{useResponsive as n}from"#package/ui-sdk";import{useConfigurator as a}from"../../../application-runtime/index.js";import{LayoutSlots as s}from"../slots/index.js";import{DesktopLayout as c}from"./DesktopLayout.js";import{ExportingOverlay as p}from"./ExportingOverlay.js";import{MobileLayout as d}from"./MobileLayout.js";let l=o("div")({display:"contents"});export const Layout=()=>{let{isDesktop:o}=n(),{exportSystem:u}=a(),f=m(u.exporting$);return i(()=>{if(!f)return;let t=document.activeElement;return()=>{t instanceof HTMLElement&&t.isConnected&&document.activeElement===document.body&&t.focus()}},[f]),e(r,{children:[e(l,{...{inert:f?"":void 0},children:[t(s.Services,{}),t(s.SharedCanvas,{}),o?t(c,{}):t(d,{})]}),f&&t(p,{})]})};
@@ -7,7 +7,7 @@ export interface LayoutSceneSafeAreaOptions {
7
7
  }
8
8
  /**
9
9
  * Measures the gap between a full-area container and an inner "safe area" element,
10
- * and writes the resulting gaps to the responsive context as canvas padding — letting the
10
+ * and writes the resulting gaps to the responsive state as canvas padding — letting the
11
11
  * 3D scene render only in the region not covered by overlay UI (preview body, sidebar, etc.).
12
12
  *
13
13
  * The implementation behind `useSceneSafeArea`, with the two things only the built-in
@@ -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";import{useResponsive as a}from"#package/ui-sdk";export const useLayoutSceneSafeArea=c=>{let{enabled:u,hasMiniSidebar:i}=c,{setCanvasPadding:m}=a(),l=r(null),s=r(null),f=r(null),h=r(null),p=r(0),g=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(p.current+=1,p.current>60){p.current=0;return}l.current&&cancelAnimationFrame(l.current),l.current=requestAnimationFrame(()=>g.current());return}p.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;m({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,m]);g.current=d;let A=t(()=>{l.current&&cancelAnimationFrame(l.current),l.current=requestAnimationFrame(d)},[d]),M=t(()=>{h.current?.disconnect(),h.current=null},[]),k=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]),x=t(t=>{s.current=t,k()},[k]),F=t(t=>{f.current=t,k()},[k]);return e(()=>(k(),()=>{M(),l.current&&cancelAnimationFrame(l.current)}),[k,M]),{containerRef:x,safeAreaRef:F,update:A}};
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}};
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * A layout attaches `containerRef` to the element that covers the whole canvas and `safeAreaRef`
5
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 context as the canvas
6
+ * again whenever either element resizes, and writes it to the responsive state as the canvas
7
7
  * padding the camera frames the scene with.
8
8
  *
9
9
  * Returns:
@@ -4,3 +4,4 @@ export * from './phoenix-layout-elements/index.js';
4
4
  export * from './preset-layout/index.js';
5
5
  export * as Legacy from './legacy/index.js';
6
6
  export * from './ConfiguratorEncapsulatedTheme.js';
7
+ export { type AssistantFormElementRoleProps, type AssistantFormElementType, type CreateAssistantFormElement, type FormContainerProps, type FormInputProps, type FormOptionProps, createAssistantFormElementFactory, } from './assistant/index.js';
@@ -1 +1 @@
1
- export*from"./configurator-layout/index.js";export*from"./phoenix-entity-elements/index.js";export*from"./phoenix-layout-elements/index.js";export*from"./preset-layout/index.js";export*as Legacy from"./legacy/index.js";export*from"./ConfiguratorEncapsulatedTheme.js";
1
+ export*from"./configurator-layout/index.js";export*from"./phoenix-entity-elements/index.js";export*from"./phoenix-layout-elements/index.js";export*from"./preset-layout/index.js";export*as Legacy from"./legacy/index.js";export*from"./ConfiguratorEncapsulatedTheme.js";export{createAssistantFormElementFactory}from"./assistant/index.js";
@@ -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,{})]})})};