@salsita-ai/sdk 0.50.0-develop.dede205ab0 → 0.50.0-develop.e33c8d8711

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 (771) hide show
  1. package/README.md +13 -12
  2. package/dist/admin/create-admin-pages-from-spec.d.ts +1 -1
  3. package/dist/application-spec/core/components/component-filter.d.ts +53 -0
  4. package/dist/application-spec/core/components/component-filter.js +1 -0
  5. package/dist/application-spec/core/components/index.d.ts +2 -0
  6. package/dist/application-spec/core/components/index.js +1 -0
  7. package/dist/application-spec/core/components/sdk-code-ref.d.ts +9 -0
  8. package/dist/application-spec/core/components/sdk-code-ref.js +1 -0
  9. package/dist/application-spec/core/enhanced-json-value.d.ts +0 -68
  10. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  11. package/dist/application-spec/core/expressions/index.d.ts +2 -0
  12. package/dist/application-spec/core/expressions/index.js +1 -0
  13. package/dist/application-spec/core/expressions/relation-expression-params.d.ts +11 -0
  14. package/dist/application-spec/core/expressions/sdk-expression-implementation.d.ts +24 -0
  15. package/dist/application-spec/core/expressions/sdk-expression-implementation.js +1 -0
  16. package/dist/application-spec/core/index.d.ts +2 -0
  17. package/dist/application-spec/core/index.js +1 -1
  18. package/dist/application-spec/core/json-value.d.ts +1 -1
  19. package/dist/application-spec/{core → enhanced-json}/eval-to-constant.d.ts +1 -1
  20. package/dist/application-spec/enhanced-json/index.d.ts +4 -0
  21. package/dist/application-spec/enhanced-json/index.js +1 -0
  22. package/dist/application-spec/enhanced-json/is-enhanced-json-array.d.ts +2 -0
  23. package/dist/application-spec/enhanced-json/is-enhanced-json-array.js +1 -0
  24. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.d.ts +18 -0
  25. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.js +1 -0
  26. package/dist/application-spec/enhanced-json/schema-from-value.d.ts +24 -0
  27. package/dist/application-spec/enhanced-json/schema-from-value.js +1 -0
  28. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.d.ts +14 -0
  29. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.js +1 -0
  30. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.d.ts +12 -0
  31. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.js +1 -0
  32. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.d.ts +13 -0
  33. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.js +1 -0
  34. package/dist/application-spec/errors/diagnostic-codes.d.ts +12 -0
  35. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  36. package/dist/application-spec/errors/diagnostic-messages.d.ts +15 -0
  37. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  38. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  39. package/dist/application-spec/generate-application/code/generate-application-code.d.ts +3 -2
  40. package/dist/application-spec/generate-application/code/generate-application-code.js +1 -1
  41. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +17 -5
  42. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  43. package/dist/application-spec/generate-application/code/standalone-app-files.d.ts +2 -2
  44. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  45. package/dist/application-spec/generate-application/code/templates/configurator-config.js +6 -4
  46. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +4 -4
  47. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  48. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  49. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +56 -56
  50. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +1 -1
  51. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  52. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  53. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  54. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  55. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +11 -11
  56. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +1 -1
  57. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  58. package/dist/application-spec/generate-application/code/templates/domain-spec.js +12 -12
  59. package/dist/application-spec/generate-application/code/templates/domain.js +3 -3
  60. package/dist/application-spec/generate-application/code/templates/frontend-config.js +3 -5
  61. package/dist/application-spec/generate-application/code/templates/gitignore.js +1 -2
  62. package/dist/application-spec/generate-application/code/templates/globals.js +3 -3
  63. package/dist/application-spec/generate-application/code/templates/index.d.ts +1 -8
  64. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  65. package/dist/application-spec/generate-application/code/templates/package-json.js +1 -1
  66. package/dist/application-spec/generate-application/code/templates/root-tsconfig.d.ts +6 -0
  67. package/dist/application-spec/generate-application/code/templates/root-tsconfig.js +2 -0
  68. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  69. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +66 -42
  70. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +9 -3
  71. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  72. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +24 -18
  73. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +6 -8
  74. package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
  75. package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
  76. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +4 -3
  77. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +6 -1
  78. package/dist/application-spec/generate-application/code/templates/webhook-index.js +10 -1
  79. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -3
  80. package/dist/application-spec/generate-application/index.d.ts +2 -0
  81. package/dist/application-spec/generate-application/index.js +1 -1
  82. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +6 -2
  83. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  84. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +8 -3
  85. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  86. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +5 -3
  87. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  88. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +43 -0
  89. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.js +1 -0
  90. package/dist/application-spec/generate-application/runtime/factory-data/index.d.ts +3 -0
  91. package/dist/application-spec/generate-application/runtime/factory-data/index.js +1 -0
  92. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +13 -0
  93. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -0
  94. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +16 -0
  95. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -0
  96. package/dist/application-spec/generate-application/runtime/migrations/index.d.ts +1 -0
  97. package/dist/application-spec/generate-application/runtime/migrations/index.js +1 -0
  98. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +53 -0
  99. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +1 -0
  100. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +1 -1
  101. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  102. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +2 -1
  103. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  104. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +2 -4
  105. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.d.ts +9 -0
  106. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.js +1 -0
  107. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.d.ts +8 -0
  108. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.js +1 -0
  109. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +27 -0
  110. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.js +1 -0
  111. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +4 -0
  112. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -0
  113. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +68 -0
  114. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -0
  115. package/dist/application-spec/index.d.ts +1 -0
  116. package/dist/application-spec/index.js +1 -1
  117. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +16 -0
  118. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  119. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts +9 -0
  120. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
  121. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  122. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  123. package/dist/application-spec/parse-application-files/raw-spec/parse-yaml-spec-file.js +1 -1
  124. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +16 -3
  125. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  126. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  127. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  128. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  129. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  130. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  131. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.d.ts +3 -0
  132. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js +1 -0
  133. package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +4 -0
  134. package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -0
  135. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.d.ts +8 -0
  136. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.js +1 -0
  137. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts +10 -0
  138. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.js +1 -0
  139. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.d.ts +98 -0
  140. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.js +1 -0
  141. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts +13 -0
  142. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js +1 -0
  143. package/dist/application-spec/parse-application-files/spec/components/bindings/index.d.ts +2 -0
  144. package/dist/application-spec/parse-application-files/spec/components/bindings/index.js +1 -1
  145. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.d.ts +24 -0
  146. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js +1 -0
  147. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  148. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  149. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  150. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  151. package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts +8 -0
  152. package/dist/application-spec/parse-application-files/spec/components/component-state-type.js +1 -0
  153. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts +13 -0
  154. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js +1 -0
  155. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  156. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  157. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.d.ts +14 -0
  158. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.js +1 -0
  159. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +3 -0
  160. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  161. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +4 -4
  162. package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
  163. package/dist/application-spec/parse-application-files/spec/expressions/expression.d.ts +1 -28
  164. package/dist/application-spec/parse-application-files/spec/expressions/expression.js +1 -1
  165. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +1 -1
  166. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  167. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  168. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  169. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  170. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  171. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +2 -2
  172. package/dist/application-spec/parse-application-files/spec/invariants/invariants.js +1 -1
  173. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  174. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  175. package/dist/application-spec/parse-application-files/spec/model/index.d.ts +1 -0
  176. package/dist/application-spec/parse-application-files/spec/model/index.js +1 -1
  177. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.d.ts +10 -0
  178. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.js +1 -0
  179. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  180. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  181. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  182. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  183. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  184. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  185. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  186. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  187. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  188. package/dist/client/phoenix-api.d.ts +468 -3
  189. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  190. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  191. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  192. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +66 -2
  193. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  194. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +7 -1
  195. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  196. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  197. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +20 -4
  198. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  199. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  200. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  201. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  202. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  203. package/dist/configurator/common/configurator-interface.d.ts +26 -1
  204. package/dist/configurator/common/configurator-interface.js +1 -1
  205. package/dist/configurator/common/frontend-analytics.d.ts +2 -0
  206. package/dist/configurator/common/frontend-analytics.js +1 -1
  207. package/dist/configurator/common/index.d.ts +2 -0
  208. package/dist/configurator/common/index.js +1 -1
  209. package/dist/configurator/common/use-finalize-action.d.ts +31 -0
  210. package/dist/configurator/common/use-finalize-action.js +1 -0
  211. package/dist/configurator/common/use-reset-camera.d.ts +6 -0
  212. package/dist/configurator/common/use-reset-camera.js +1 -0
  213. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +1 -1
  214. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +7 -0
  215. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  216. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  217. package/dist/configurator/pages/configurator-layout-name.d.ts +2 -0
  218. package/dist/configurator/pages/configurator-layout-name.js +1 -0
  219. package/dist/configurator/pages/default-configurator-elements.d.ts +7 -0
  220. package/dist/configurator/pages/default-configurator-elements.js +1 -0
  221. package/dist/configurator/pages/index.d.ts +1 -0
  222. package/dist/configurator/pages/index.js +1 -1
  223. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  224. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  225. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  226. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  227. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  228. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  229. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  230. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  231. package/dist/configurator/ui/assistant/AssistantChips.d.ts +8 -2
  232. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  233. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -2
  234. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  235. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  236. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  237. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  238. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  239. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  240. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  241. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  242. package/dist/configurator/ui/assistant/entity-link/entity-link-target.d.ts +5 -0
  243. package/dist/configurator/ui/assistant/entity-link/entity-link-target.js +1 -0
  244. package/dist/configurator/ui/assistant/entity-link/index.d.ts +3 -0
  245. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  246. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +19 -0
  247. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -0
  248. package/dist/configurator/ui/assistant/form/built-in-form-registry.d.ts +10 -0
  249. package/dist/configurator/ui/assistant/form/built-in-form-registry.js +1 -0
  250. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +11 -0
  251. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -0
  252. package/dist/configurator/ui/assistant/form/describe-build-errors.d.ts +6 -0
  253. package/dist/configurator/ui/assistant/form/describe-build-errors.js +1 -0
  254. package/dist/configurator/ui/assistant/form/form-element-definition.d.ts +14 -0
  255. package/dist/configurator/ui/assistant/form/form-element-definition.js +1 -0
  256. package/dist/configurator/ui/assistant/form/form-model.d.ts +38 -0
  257. package/dist/configurator/ui/assistant/form/form-model.js +1 -0
  258. package/dist/configurator/ui/assistant/form/form-registry.d.ts +31 -0
  259. package/dist/configurator/ui/assistant/form/form-registry.js +8 -0
  260. package/dist/configurator/ui/assistant/form/form-state.d.ts +4 -0
  261. package/dist/configurator/ui/assistant/form/form-state.js +1 -0
  262. package/dist/configurator/ui/assistant/form/index.d.ts +2 -0
  263. package/dist/configurator/ui/assistant/form/index.js +1 -0
  264. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +9 -0
  265. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -0
  266. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +13 -0
  267. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -0
  268. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +3 -0
  269. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -0
  270. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +3 -0
  271. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -0
  272. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +3 -0
  273. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -0
  274. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +3 -0
  275. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -0
  276. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +34 -0
  277. package/dist/configurator/ui/assistant/form-elements/form-element-props.js +1 -0
  278. package/dist/configurator/ui/assistant/form-elements/index.d.ts +5 -0
  279. package/dist/configurator/ui/assistant/form-elements/index.js +1 -0
  280. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +2 -0
  281. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  282. package/dist/configurator/ui/assistant/thread-items.d.ts +8 -1
  283. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  284. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  285. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  286. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  287. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  288. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.d.ts +101 -0
  289. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  290. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  291. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  292. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  293. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  294. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  295. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  296. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  297. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  298. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +0 -74
  299. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  300. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  301. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +4 -4
  302. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  303. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  304. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  305. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  306. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  307. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  308. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -2
  309. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +16 -19
  310. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  311. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  312. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  313. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  314. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  315. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  316. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  317. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  318. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  319. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  320. package/dist/docs/index.json +42 -1
  321. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  322. package/dist/docs/layouts/custom-layout.mdx +2125 -0
  323. package/dist/docs/layouts/header/fixed.mdx +2 -2
  324. package/dist/docs/layouts/header/floating.mdx +2 -2
  325. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  326. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  327. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  328. package/dist/docs/other-features/side-effects.mdx +8 -11
  329. package/dist/docs/other-features/transformers.mdx +4 -0
  330. package/dist/docs/other-features/violation-messages.mdx +52 -56
  331. package/dist/docs/phoenix/application-states.mdx +9 -7
  332. package/dist/docs/phoenix/components.mdx +6 -0
  333. package/dist/docs/phoenix/configurator-interface.mdx +237 -80
  334. package/dist/docs/phoenix/deployments.mdx +2 -6
  335. package/dist/docs/phoenix/domain-model.mdx +4 -0
  336. package/dist/docs/phoenix/expression-context.mdx +11 -3
  337. package/dist/docs/phoenix/finalization.mdx +1 -1
  338. package/dist/docs/phoenix/getting-started.mdx +2 -1
  339. package/dist/docs/phoenix/layout-slots.mdx +116 -0
  340. package/dist/docs/phoenix/localization.mdx +4 -4
  341. package/dist/docs/phoenix/migration-guide.mdx +19 -8
  342. package/dist/docs/phoenix/phoenix-cli.mdx +66 -34
  343. package/dist/docs/phoenix/project-structure.mdx +38 -16
  344. package/dist/docs/phoenix/quickstart.mdx +2 -2
  345. package/dist/docs/phoenix/sdk-builder-workflow.mdx +3 -3
  346. package/dist/docs/phoenix/testing.mdx +140 -0
  347. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  348. package/dist/docs/phoenix/webhooks.mdx +23 -6
  349. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  350. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -11
  351. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  352. package/dist/domain/admin-domain/index.d.ts +7 -2
  353. package/dist/domain/admin-domain/index.js +1 -1
  354. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  355. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  356. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  357. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  358. package/dist/domain/application/application-config.d.ts +9 -26
  359. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  360. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  361. package/dist/domain/application/assistant/assistant-form-elements.d.ts +28 -0
  362. package/dist/domain/application/assistant/assistant-form-elements.js +1 -0
  363. package/dist/domain/application/assistant/assistant-manifest.d.ts +9 -1
  364. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +38 -2
  365. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -1
  366. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  367. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  368. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  369. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  370. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  371. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  372. package/dist/domain/application/assistant/index.d.ts +8 -1
  373. package/dist/domain/application/assistant/index.js +1 -1
  374. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  375. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  376. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  377. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  378. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +48 -0
  379. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  380. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  381. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  382. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  383. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  384. package/dist/domain/application/assistant-mutations.d.ts +2 -1
  385. package/dist/domain/application/assistant-recipe-groups.d.ts +1 -1
  386. package/dist/domain/application/configurator-builder.d.ts +5 -2
  387. package/dist/domain/application/configurator-builder.js +1 -1
  388. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  389. package/dist/domain/application/index.d.ts +1 -5
  390. package/dist/domain/application/index.js +1 -1
  391. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  392. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  393. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  394. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  395. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  396. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  397. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  398. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  399. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +3 -3
  400. package/dist/domain/application/published-data/map-published-data.d.ts +7 -3
  401. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  402. package/dist/domain/core/action/action-factory.d.ts +2 -2
  403. package/dist/domain/core/action/action.d.ts +19 -14
  404. package/dist/domain/core/component/domain-component-optic.d.ts +29 -40
  405. package/dist/domain/core/component/domain-component-optic.js +2 -2
  406. package/dist/domain/core/component/legacy-filter.d.ts +2 -17
  407. package/dist/domain/core/component/system-component-filter.d.ts +36 -18
  408. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  409. package/dist/domain/core/data-schema/data-cell-value.js +1 -0
  410. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  411. package/dist/domain/core/data-schema/data-schema-array-field.js +1 -0
  412. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  413. package/dist/domain/core/data-schema/data-schema-field-object.js +1 -0
  414. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  415. package/dist/domain/core/data-schema/data-schema-field.js +1 -0
  416. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  417. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  418. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  419. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  420. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  421. package/dist/domain/core/data-schema/data-schema.js +1 -0
  422. package/dist/domain/core/data-schema/index.d.ts +7 -0
  423. package/dist/domain/core/data-schema/index.js +1 -0
  424. package/dist/domain/core/domain.d.ts +2 -2
  425. package/dist/domain/core/emission/index.d.ts +8 -0
  426. package/dist/domain/core/emission/index.js +1 -0
  427. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  428. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  429. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  430. package/dist/domain/core/emission/state-emission.js +1 -0
  431. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  432. package/dist/domain/core/emission/state-update-emission.js +1 -0
  433. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  434. package/dist/domain/core/emission/state-validation-result.js +1 -0
  435. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  436. package/dist/domain/core/emission/transformation-log.js +1 -0
  437. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  438. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  439. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  440. package/dist/domain/core/emission/transformer-log.js +1 -0
  441. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  442. package/dist/domain/core/emission/transformer-phase.js +1 -0
  443. package/dist/domain/core/expression/aliased-expressions.d.ts +2 -2
  444. package/dist/domain/core/expression/constant-expressions.d.ts +16 -8
  445. package/dist/domain/core/expression/constant-expressions.js +1 -1
  446. package/dist/domain/core/expression/custom-expression.d.ts +20 -7
  447. package/dist/domain/core/expression/custom-expression.js +1 -1
  448. package/dist/domain/core/expression/expression.d.ts +15 -17
  449. package/dist/domain/core/index.d.ts +2 -0
  450. package/dist/domain/core/invariant/custom-invariants.d.ts +8 -16
  451. package/dist/domain/core/invariant/index.d.ts +1 -1
  452. package/dist/domain/core/invariant/index.js +1 -1
  453. package/dist/domain/core/invariant/invariants.d.ts +4 -70
  454. package/dist/domain/core/invariant/invariants.js +1 -1
  455. package/dist/domain/core/invariant/violation.d.ts +51 -3
  456. package/dist/domain/core/invariant/violation.js +1 -1
  457. package/dist/domain/core/model/model.d.ts +1 -1
  458. package/dist/domain/core/recipe/recipes.d.ts +18 -50
  459. package/dist/domain/core/recipe/recipes.js +1 -1
  460. package/dist/domain/core/relation/all-of-type-relation.d.ts +8 -21
  461. package/dist/domain/core/relation/all-of-type-relation.js +1 -1
  462. package/dist/domain/core/relation/direct-relation.d.ts +13 -24
  463. package/dist/domain/core/relation/index.d.ts +0 -1
  464. package/dist/domain/core/relation/indirect-relation.d.ts +12 -67
  465. package/dist/domain/core/relation/indirect-relation.js +1 -1
  466. package/dist/domain/core/relation/reference-component.d.ts +2 -2
  467. package/dist/domain/core/relation/relation-factory.d.ts +19 -15
  468. package/dist/domain/core/relation/relation-factory.js +1 -1
  469. package/dist/domain/core/schema/extended-schema-validator.js +1 -1
  470. package/dist/domain/core/state/migrations.d.ts +14 -45
  471. package/dist/domain/core/state/migrations.js +1 -1
  472. package/dist/domain/core/state/state.d.ts +1 -1
  473. package/dist/domain/domain-builder.d.ts +1 -1
  474. package/dist/domain/domain-builder.js +1 -1
  475. package/dist/domain/domain-context/action-system/action-system.d.ts +2 -2
  476. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  477. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  478. package/dist/domain/domain-context/action-system/index.js +1 -0
  479. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  480. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  481. package/dist/domain/domain-context/create-transformer.d.ts +1 -1
  482. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +2 -2
  483. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  484. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  485. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  486. package/dist/domain/domain-context/domain-context-systems.d.ts +7 -7
  487. package/dist/domain/domain-context/index.d.ts +8 -17
  488. package/dist/domain/domain-context/index.js +1 -1
  489. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  490. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  491. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +2 -3
  492. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  493. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +1 -1
  494. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  495. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  496. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +1 -1
  497. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  498. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +2 -2
  499. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +2 -2
  500. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +2 -2
  501. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  502. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  503. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +2 -2
  504. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  505. package/dist/domain/domain-context/store-system/index.js +1 -0
  506. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  507. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -35
  508. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  509. package/dist/domain/domain-context/store-system/system-state.d.ts +1 -1
  510. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  511. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +5 -7
  512. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  513. package/dist/domain/domain-context/transformers/chain-builder.d.ts +1 -1
  514. package/dist/domain/domain-context/transformers/context.d.ts +2 -3
  515. package/dist/domain/domain-context/transformers/context.js +1 -1
  516. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  517. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  518. package/dist/domain/domain-context/transformers/index.js +1 -1
  519. package/dist/domain/domain-context/transformers/when-builder.d.ts +2 -3
  520. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  521. package/dist/domain/domain-context/undo-system.d.ts +29 -3
  522. package/dist/domain/domain-context/undo-system.js +1 -1
  523. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  524. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  525. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  526. package/dist/domain/domain-runtime/access/types.js +1 -1
  527. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  528. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  529. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  530. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  531. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  532. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  533. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  534. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  535. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +18 -22
  536. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  537. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  538. package/dist/domain/domain-runtime/domain-runtime.d.ts +84 -68
  539. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +19 -0
  540. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  541. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  542. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  543. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  544. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  545. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  546. package/dist/domain/domain-runtime/errors/index.js +1 -0
  547. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  548. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  549. package/dist/domain/domain-runtime/index.d.ts +1 -0
  550. package/dist/domain/domain-runtime/index.js +1 -1
  551. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  552. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  553. package/dist/domain/domain-runtime/spec/index.d.ts +2 -0
  554. package/dist/domain/domain-runtime/spec/index.js +1 -1
  555. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  556. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  557. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +2 -2
  558. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  559. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +1 -1
  560. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  561. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  562. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  563. package/dist/domain/{project-modules → domain-runtime/spec/module-checks}/project-modules.d.ts +8 -17
  564. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  565. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  566. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  567. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  568. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  569. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  570. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  571. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  572. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  573. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  574. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  575. package/dist/domain/domain-runtime/spec/selectors.d.ts +5 -6
  576. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  577. package/dist/domain/domain-runtime/spec/types.d.ts +5 -2
  578. package/dist/domain/extensions/attribute-switch.d.ts +1 -1
  579. package/dist/domain/extensions/attribute-switch.js +1 -1
  580. package/dist/domain/extensions/canvas-config.d.ts +1 -1
  581. package/dist/domain/extensions/client-side-image.d.ts +2 -2
  582. package/dist/domain/extensions/client-side-image.js +1 -1
  583. package/dist/domain/extensions/common/angle-indicator-schema.d.ts +2 -2
  584. package/dist/domain/extensions/common/dimension-indicator-schema.d.ts +2 -2
  585. package/dist/domain/extensions/editable-angle-indicator.d.ts +1 -1
  586. package/dist/domain/extensions/editable-distance-dimension-indicator.d.ts +1 -1
  587. package/dist/domain/extensions/editable-offset-indicator.d.ts +1 -1
  588. package/dist/domain/extensions/editable-offset-indicator.js +1 -1
  589. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -1
  590. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -1
  591. package/dist/domain/extensions/horizontal-tabs.d.ts +2 -2
  592. package/dist/domain/extensions/list-selector-dimension-indicator.d.ts +1 -1
  593. package/dist/domain/extensions/navigation-steps.d.ts +2 -2
  594. package/dist/domain/extensions/offset-indicator.js +1 -1
  595. package/dist/domain/extensions/rotation-handle.d.ts +2 -2
  596. package/dist/domain/extensions/save-template-thumbnail.d.ts +2 -2
  597. package/dist/domain/extensions/save-template-thumbnail.js +1 -1
  598. package/dist/domain/extensions/scene-entity-animation.js +1 -1
  599. package/dist/domain/index.d.ts +0 -1
  600. package/dist/domain/index.js +1 -1
  601. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  602. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  603. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +28 -19
  604. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  605. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  606. package/dist/domain/mocks/create-mock-domain.js +1 -1
  607. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  608. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  609. package/dist/domain/mocks/create-test-application-config.js +1 -0
  610. package/dist/domain/mocks/index.d.ts +1 -0
  611. package/dist/domain/mocks/index.js +1 -1
  612. package/dist/domain/projections/blender-projections/blender-projections.d.ts +1 -2
  613. package/dist/domain/projections/blender-projections/camera.d.ts +2 -2
  614. package/dist/domain/projections/collision-projections.d.ts +1 -1
  615. package/dist/domain/projections/composition-projections.d.ts +1 -1
  616. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  617. package/dist/domain/projections/index.d.ts +1 -1
  618. package/dist/domain/projections/position-projections.d.ts +1 -1
  619. package/dist/domain/projections/projected-entities-projections.d.ts +1 -1
  620. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  621. package/dist/domain/projections/validation-projections.d.ts +3 -19
  622. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  623. package/dist/domain/system-components/application-config.d.ts +2 -2
  624. package/dist/domain/system-components/child-entity-selection.js +1 -1
  625. package/dist/domain/system-components/collision-box-geometry.d.ts +4 -2
  626. package/dist/domain/system-components/collision-geometry.d.ts +4 -2
  627. package/dist/domain/system-components/collision-point-geometry.d.ts +4 -2
  628. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  629. package/dist/domain/system-components/common/recipes.d.ts +21 -3
  630. package/dist/domain/system-components/common/recipes.js +1 -1
  631. package/dist/domain/system-components/constraint.d.ts +10 -23
  632. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  633. package/dist/domain/system-components/drag-handle.js +1 -1
  634. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  635. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  636. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  637. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  638. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -1
  639. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  640. package/dist/domain/system-components/material-swatch.js +1 -1
  641. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  642. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  643. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  644. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  645. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  646. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  647. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  648. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  649. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  650. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  651. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  652. package/dist/domain/utils/eval-cache.d.ts +1 -1
  653. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  654. package/dist/domain/utils/memo-eval.d.ts +2 -2
  655. package/dist/editor/domain-editors/use-implementation-files.d.ts +1 -2
  656. package/dist/editor/mocks/EditorMockContext.js +1 -1
  657. package/dist/globals/index.d.ts +2 -0
  658. package/dist/i18n/locales/cs/messages.js +1 -1
  659. package/dist/i18n/locales/da/messages.js +1 -1
  660. package/dist/i18n/locales/de/messages.js +1 -1
  661. package/dist/i18n/locales/de-AT/messages.js +1 -1
  662. package/dist/i18n/locales/en/messages.js +1 -1
  663. package/dist/i18n/locales/en-AU/messages.js +1 -1
  664. package/dist/i18n/locales/en-GB/messages.js +1 -1
  665. package/dist/i18n/locales/es/messages.js +1 -1
  666. package/dist/i18n/locales/fr/messages.js +1 -1
  667. package/dist/i18n/locales/hu/messages.js +1 -1
  668. package/dist/i18n/locales/it/messages.js +1 -1
  669. package/dist/i18n/locales/nl/messages.js +1 -1
  670. package/dist/i18n/locales/pl/messages.js +1 -1
  671. package/dist/i18n/locales/pt/messages.js +1 -1
  672. package/dist/i18n/locales/ro/messages.js +1 -1
  673. package/dist/i18n/locales/sk/messages.js +1 -1
  674. package/dist/i18n/locales/tr/messages.js +1 -1
  675. package/dist/legacy/domain-cli/gen/configurator-builder.js +13 -12
  676. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  677. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  678. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  679. package/dist/legacy/domain-cli/gen/invariants.js +7 -6
  680. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  681. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  682. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  683. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +81 -68
  684. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  685. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  686. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  687. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +7 -0
  688. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  689. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.d.ts +1 -1
  690. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
  691. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +18 -16
  692. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +14 -12
  693. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +13 -11
  694. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +13 -11
  695. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  696. package/dist/phoenix/application-spec/project-files.js +1 -1
  697. package/dist/phoenix/cli.js +1 -1
  698. package/dist/phoenix/commands/check.js +1 -1
  699. package/dist/phoenix/commands/deploy.js +1 -1
  700. package/dist/phoenix/commands/deps/deps.d.ts +52 -0
  701. package/dist/phoenix/commands/deps/deps.js +3 -0
  702. package/dist/phoenix/commands/deps/index.d.ts +1 -0
  703. package/dist/phoenix/commands/deps/index.js +1 -0
  704. package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
  705. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
  706. package/dist/phoenix/commands/dev.js +5 -5
  707. package/dist/phoenix/commands/fix.js +1 -1
  708. package/dist/phoenix/commands/index.d.ts +1 -0
  709. package/dist/phoenix/commands/index.js +1 -1
  710. package/dist/phoenix/commands/init.d.ts +4 -4
  711. package/dist/phoenix/commands/init.js +1 -1
  712. package/dist/phoenix/commands/prettier.js +1 -1
  713. package/dist/phoenix/services/application-spec-project-watcher.d.ts +2 -0
  714. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  715. package/dist/phoenix/services/source-archive.d.ts +1 -0
  716. package/dist/phoenix/services/source-archive.js +1 -1
  717. package/dist/phoenix/services/swc.js +1 -1
  718. package/dist/phoenix/utils/git/index.d.ts +1 -0
  719. package/dist/phoenix/utils/git/index.js +1 -0
  720. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  721. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  722. package/dist/phoenix/utils/index.d.ts +2 -0
  723. package/dist/phoenix/utils/index.js +1 -1
  724. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +2 -0
  725. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  726. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  727. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +53 -36
  728. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  729. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +30 -0
  730. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  731. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +9 -9
  732. package/dist/react-sdk/domain-context/index.d.ts +2 -1
  733. package/dist/react-sdk/domain-context/index.js +1 -1
  734. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +11 -0
  735. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  736. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  737. package/dist/ui-sdk/theme/types.d.ts +1 -1
  738. package/dist/webhook/builders/common.d.ts +5 -0
  739. package/dist/webhook/builders/webhook-builder.js +1 -1
  740. package/package.json +34 -29
  741. package/schema/domain-spec.json +1115 -209
  742. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  743. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  744. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  745. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -90
  746. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  747. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  748. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  749. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  750. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  751. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  752. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  753. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  754. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  755. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  756. package/dist/application-spec/generate-application/code/templates/webhook-implementation.d.ts +0 -1
  757. package/dist/application-spec/generate-application/code/templates/webhook-implementation.js +0 -7
  758. package/dist/domain/application/element-registration.js +0 -1
  759. package/dist/domain/application/handler-registration.js +0 -1
  760. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -23
  761. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  762. package/dist/domain/application/resource-builder.d.ts +0 -13
  763. package/dist/domain/application/resource-builder.js +0 -1
  764. package/dist/domain/core/relation/relation-implementation.d.ts +0 -7
  765. package/dist/domain/project-modules/index.d.ts +0 -1
  766. package/dist/domain/project-modules/index.js +0 -1
  767. package/dist/domain/project-modules/project-modules.js +0 -1
  768. /package/dist/{domain/core/relation/relation-implementation.js → application-spec/core/expressions/relation-expression-params.js} +0 -0
  769. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  770. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  771. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
@@ -0,0 +1,9 @@
1
+ import type { FormModel } from './form-model.js';
2
+ import type { FormRegistry } from './form-registry.js';
3
+ /**
4
+ * Builds a form from the markup of a ```` ```form ```` fence. A block whose only content is loose
5
+ * options asks one question, so they form an implicit `choice`; elsewhere loose options form an
6
+ * implicit `choices`. A block with any unknown element, invalid attribute or misplaced element is
7
+ * not built at all, and every such error is returned.
8
+ */
9
+ export declare const parseFormBlock: (source: string, registry: FormRegistry) => FormModel;
@@ -0,0 +1 @@
1
+ import{Parser as e}from"htmlparser2";import{readFormAttributes as o}from"./read-form-attributes.js";let r=({name:e,attributes:o,position:r})=>({element:e,label:o.label,position:r}),t=({definition:e},o,r)=>({id:o,definition:e,attributes:{},children:r}),i=(e,o)=>{let r=[],i=[],n=()=>{i.length>0&&(r.push(t(o.registry.choices,`choices-${i[0]?.id}`,i)),i=[])};for(let o of e)"option"===o.definition.role?i.push(o):(n(),r.push(o));return n(),r},n=(e,t,l)=>e.flatMap(e=>((e,t,l)=>{var s;let a=l.registry.get(e.name);if(!a){l.errors.push({...r(e),message:"not a form element"}),n(e.children,void 0,l);return}let{definition:h}=a,p=(s=h.role,t?.role==="option"||t?.role==="input"?`cannot be inside <${t.name}>, which holds no elements`:(t?.role==="choice"||t?.role==="choices")&&"option"!==s?`cannot be inside <${t.name}>, which holds only options`:void 0);p&&l.errors.push({...r(e),message:p});let{attributes:c,errors:u}=o(a,e.attributes);for(let o of u)l.errors.push({...r(e),message:o});let{label:d,value:g,...m}=c,f=n(e.children,{name:e.name,role:h.role},l);return{id:String(e.position),definition:h,label:"string"==typeof d?d:void 0,value:"string"==typeof g?g:void 0,attributes:m,children:"group"===h.role?i(f,l):f}})(e,t,l)??[]),l=e=>{if("choice"===e.definition.role)return!0;let[o,...r]=e.children;return"group"===e.definition.role&&null!=o&&0===r.length&&l(o)};export const parseFormBlock=(o,r)=>{let s,a,h,p,c={registry:r,errors:[]},u={name:r.group.definition.name,role:"group"},d=n((a=[s=[]],h=0,(p=new e({onopentag:(e,o)=>{let r={name:e,attributes:o,position:h+=1,children:[]};a.at(-1)?.push(r),a.push(r.children)},onclosetag:()=>{a.length>1&&a.pop()}},{xmlMode:!0,lowerCaseTags:!0,lowerCaseAttributeNames:!0,recognizeSelfClosing:!0})).write(o),p.end(),s),u,c);if(c.errors.length>0)return{ok:!1,errors:c.errors};let g=d.length>0&&d.every(e=>"option"===e.definition.role)?[t(r.choice,"choice",d)]:i(d,c),m=t(r.group,"root",g);return{ok:!0,root:m,isQuick:l(m)}};
@@ -0,0 +1,13 @@
1
+ import type { RegisteredFormElement } from './form-registry.js';
2
+ /** The attributes of an element converted to their declared types, and what was wrong with them. */
3
+ export interface FormAttributesReading {
4
+ readonly attributes: Readonly<Record<string, unknown>>;
5
+ /** Each problem worded to follow the element's tag, e.g. `the attribute "step" must be an integer`. */
6
+ readonly errors: readonly string[];
7
+ }
8
+ /**
9
+ * Reads the attributes of an element against its declarations. Undeclared and missing required
10
+ * attributes are found by name; each declared one is coerced and checked by its own validator, and
11
+ * the error is worded from the declaration, never from the validator, whose errors differ by mode.
12
+ */
13
+ export declare const readFormAttributes: ({ definition, attributes: declared }: RegisteredFormElement, markup: Readonly<Record<string, string>>) => FormAttributesReading;
@@ -0,0 +1 @@
1
+ import{match as t}from"ts-pattern";let e=t=>{if(""===t.trim())return;let e=Number(t);return Number.isFinite(e)?e:void 0},r=(r,{type:i})=>t(i).with("string",()=>r).with("number",()=>e(r)??r).with("integer",()=>{let t=e(r);return null!=t&&Number.isInteger(t)?t:r}).with("boolean",()=>""===r||"true"===r||"false"!==r&&r).exhaustive(),i={string:"a string",number:"a number",integer:"an integer",boolean:"true or false"},u=(t,{type:e,enum:r})=>r?`the attribute "${t}" must be one of ${r.map(t=>`"${t}"`).join(", ")}`:`the attribute "${t}" must be ${i[e]}`;export const readFormAttributes=({definition:t,attributes:e},i)=>{let n={},a=[];for(let[t,o]of Object.entries(i)){let i=e.get(t);if(!i){a.push(`the attribute "${t}" is not declared`);continue}let s=r(o,i.attribute);i.validate(s)?n[t]=s:a.push(u(t,i.attribute))}for(let e of t.required??[])e in i||a.push(`the attribute "${e}" is required`);return{attributes:n,errors:a}};
@@ -0,0 +1,3 @@
1
+ import type { FormContainerProps } from './form-element-props.js';
2
+ /** A `group`: its children stacked under its label, which heads them. */
3
+ export declare const FormGroup: ({ label, children }: FormContainerProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ import{jsx as r,jsxs as e}from"react/jsx-runtime";import{styled as o}from"@mui/material";import{AssistantPanelName as m}from"../theme.js";let t=o("div",{name:m,slot:"formGroup"})(({theme:{spacing:r}})=>({display:"flex",flexDirection:"column",gap:r(1.5)})),i=o("div",{name:m,slot:"formGroupLabel"})(({theme:{palette:r,typography:e}})=>({...e.subtitle2,color:r.text.primary}));export const FormGroup=({label:o,children:m})=>e(t,{role:"group","aria-label":o,children:[null!=o&&r(i,{"aria-hidden":!0,children:o}),m]});
@@ -0,0 +1,3 @@
1
+ import type { FormContainerProps } from './form-element-props.js';
2
+ /** A `choice` or `choices`: its options in a wrapping row under its label. */
3
+ export declare const FormOptions: ({ label, children }: FormContainerProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as o}from"react/jsx-runtime";import{styled as r}from"@mui/material";import{AssistantPanelName as i}from"../theme.js";let t=r("div",{name:i,slot:"formOptions"})(({theme:{spacing:e}})=>({display:"grid",gap:e(.75)})),a=r("div",{name:i,slot:"formOptionsLabel"})(({theme:{palette:e,typography:o}})=>({...o.caption,color:e.text.secondary})),m=r("div",{name:i,slot:"formOptionsRow"})(({theme:{spacing:e}})=>({display:"flex",flexWrap:"wrap",gap:e(.75)}));export const FormOptions=({label:r,children:i})=>o(t,{role:"group","aria-label":r,children:[null!=r&&e(a,{"aria-hidden":!0,children:r}),e(m,{children:i})]});
@@ -0,0 +1,3 @@
1
+ import type { FormOptionProps } from './form-element-props.js';
2
+ /** A `reply`: a short answer as a small pill, marked while it is picked. */
3
+ export declare const FormReply: ({ label, disabled, selected, onSelect }: FormOptionProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ import{jsx as r}from"react/jsx-runtime";import{alpha as e,styled as i}from"@mui/material";import{AssistantPanelName as o}from"../theme.js";let t=i("button",{name:o,slot:"formReply"})(({theme:{palette:r,spacing:i,typography:o}})=>({...o.body2,background:r.background.paper,border:`1px solid ${r.divider}`,borderRadius:"calc(infinity * 1px)",color:r.text.primary,cursor:"pointer",margin:0,paddingBlock:i(.25),paddingInline:i(1.25),textAlign:"start","&:hover:not(:disabled)":{background:r.action.hover},"&:focus-visible":{outline:`2px solid ${r.primary.main}`,outlineOffset:1},"&:disabled":{color:r.text.disabled,cursor:"default"},'&[aria-pressed="true"]':{background:e(r.primary.main,r.action.selectedOpacity),borderColor:r.primary.main}}));export const FormReply=({label:e,disabled:i,selected:o,onSelect:a})=>r(t,{type:"button",disabled:i,"aria-pressed":o,onClick:a,children:e});
@@ -0,0 +1,3 @@
1
+ import type { FormInputProps } from './form-element-props.js';
2
+ /** A `text`: a single line the user types, with its label above it. */
3
+ export declare const FormText: ({ attributes, label, value, disabled, state, onChange }: FormInputProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as r}from"react/jsx-runtime";import{InputBase as t,styled as o}from"@mui/material";import{useCallback as i}from"react";import{AssistantPanelName as a}from"../theme.js";let d=o("label",{name:a,slot:"formText"})(({theme:{palette:e,spacing:r,typography:t}})=>({alignSelf:"stretch",color:e.text.secondary,display:"grid",gap:r(.5),...t.caption})),m=o(t,{name:a,slot:"formTextInput"})(({theme:{palette:e,spacing:r,typography:t}})=>({...t.body2,border:`1px solid ${e.divider}`,borderRadius:12,color:e.text.primary,paddingBlock:r(.75),paddingInline:r(1.5),"&.Mui-focused":{borderColor:e.primary.main},"& .MuiInputBase-input":{padding:0}}));export const FormText=({attributes:t,label:o,value:a,disabled:l,state:n,onChange:p})=>{let{placeholder:s}=t;return r(d,{children:[o,e(m,{value:"string"==typeof n?n:a??"",placeholder:"string"==typeof s?s:void 0,disabled:l,onChange:i(e=>{let r=e.target.value;p(r,""===r.trim()?void 0:r.trim())},[p])})]})};
@@ -0,0 +1,34 @@
1
+ import type { ReactNode } from 'react';
2
+ /** Validated and coerced attributes of an element, without the built-in `label` and `value`. */
3
+ export type FormElementAttributes = Readonly<Record<string, unknown>>;
4
+ /** Props of a `group`, `choice` or `choices` element: it lays out the children the form renders for it. */
5
+ export interface FormContainerProps {
6
+ readonly attributes: FormElementAttributes;
7
+ readonly label?: string;
8
+ readonly disabled: boolean;
9
+ readonly children: ReactNode;
10
+ }
11
+ /**
12
+ * Props of an option. Its container decides what a pick does: in a `choice` it replaces the
13
+ * previous pick, in a `choices` it toggles, and in a form that asks one question it sends at once.
14
+ */
15
+ export interface FormOptionProps {
16
+ readonly attributes: FormElementAttributes;
17
+ readonly label?: string;
18
+ readonly disabled: boolean;
19
+ readonly selected: boolean;
20
+ onSelect(): void;
21
+ }
22
+ /**
23
+ * Props of an input. Its state is its own: the form stores it and hands it back. `answer` is the
24
+ * text the answer shows for it, or `undefined` while there is none.
25
+ */
26
+ export interface FormInputProps {
27
+ readonly attributes: FormElementAttributes;
28
+ readonly label?: string;
29
+ /** What the field starts with. */
30
+ readonly value?: string;
31
+ readonly disabled: boolean;
32
+ readonly state: unknown;
33
+ onChange(state: unknown, answer: string | undefined): void;
34
+ }
@@ -0,0 +1,5 @@
1
+ export type { FormContainerProps, FormElementAttributes, FormInputProps, FormOptionProps, } from './form-element-props.js';
2
+ export { FormGroup } from './FormGroup.js';
3
+ export { FormOptions } from './FormOptions.js';
4
+ export { FormReply } from './FormReply.js';
5
+ export { FormText } from './FormText.js';
@@ -0,0 +1 @@
1
+ export{FormGroup}from"./FormGroup.js";export{FormOptions}from"./FormOptions.js";export{FormReply}from"./FormReply.js";export{FormText}from"./FormText.js";
@@ -1,3 +1,5 @@
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
5
  * markup does not flash as raw characters: an open code fence is closed, an inline code span, a link
@@ -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*$/;export const hasOpenFence=t=>e(t,"```")%2==1;export const completeStreamedMarkdown=n=>{if(hasOpenFence(n))return`${n}
2
+ \`\`\``;let l=n.lastIndexOf("```"),s=-1===l?"":n.slice(0,l+3),r=n.slice(s.length),c=(e=>{let n=e.split("\n"),l=n.length;for(;l>0&&n[l-1]?.trimStart().startsWith("|");)l-=1;let s=n.slice(l),r=s[1],c=null!=r&&s.length>2&&t.test(r);return 0===s.length||c?e:n.slice(0,l).join("\n")})((e(r,"`")%2==1?r.slice(0,r.lastIndexOf("`")):r).replace(/!?\[([^\]\n]*)\]\([^)\n]*$/,"$1").replace(/!?\[[^\]\n]*$/,"")),i=e(c,"**")%2==1?`${c}**`:c;return`${s}${i}`};
@@ -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`}]);
@@ -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"};
@@ -0,0 +1,101 @@
1
+ import type { ComponentsOverrides } from '@mui/material';
2
+ import type { CSSProperties } from 'react';
3
+ import type { ValueOf } from '@salsita-ai/common/utils';
4
+ declare const MuiSidebarComponentName: 'PhxDesktopSidebar';
5
+ declare const MuiSidebarSlots: {
6
+ readonly Root: 'root';
7
+ readonly Header: 'header';
8
+ readonly Body: 'body';
9
+ readonly Content: 'content';
10
+ readonly Tabs: 'tabs';
11
+ readonly Footer: 'footer';
12
+ };
13
+ type DesktopSidebarSlots = ValueOf<typeof MuiSidebarSlots>;
14
+ declare module '@mui/material/styles' {
15
+ interface ComponentNameToClassKey {
16
+ [MuiSidebarComponentName]: DesktopSidebarSlots;
17
+ }
18
+ interface ComponentsPropsList {
19
+ [MuiSidebarComponentName]: ThemeableDesktopSidebarProps;
20
+ }
21
+ interface Components {
22
+ [MuiSidebarComponentName]?: {
23
+ defaultProps?: ComponentsPropsList['PhxDesktopSidebar'];
24
+ styleOverrides?: ComponentsOverrides<Theme>['PhxDesktopSidebar'];
25
+ };
26
+ }
27
+ }
28
+ /** Which side of its layout the sidebar is on. */
29
+ export type DesktopSidebarSide = 'start' | 'end';
30
+ interface SidebarOwnerState {
31
+ readonly isHeaderEmpty?: boolean;
32
+ readonly isContentEmpty?: boolean;
33
+ }
34
+ export interface ThemeableDesktopSidebarProps extends SidebarOwnerState {
35
+ /**
36
+ * Background applied to sidebar sections (header, body, footer).
37
+ *
38
+ * @default theme.palette.background.paper
39
+ */
40
+ readonly background?: CSSProperties['background'];
41
+ /**
42
+ * Border applied to sidebar sections.
43
+ *
44
+ * @default 0
45
+ */
46
+ readonly border?: CSSProperties['border'];
47
+ /**
48
+ * Corner radius applied to sidebar sections.
49
+ *
50
+ * @default theme.shape.sidebarBorderRadius ?? theme.shape.borderRadius
51
+ */
52
+ readonly borderRadius?: CSSProperties['borderRadius'];
53
+ /**
54
+ * CSS filter applied to the sidebar root (e.g. drop-shadow for elevation).
55
+ *
56
+ * @default elevation[1] drop-shadow
57
+ */
58
+ readonly filter?: CSSProperties['filter'];
59
+ /**
60
+ * Spacing value for sidebar inner padding.
61
+ * Accepts a theme spacing multiplier or a CSS value.
62
+ *
63
+ * @default theme.spacing(2.5)
64
+ */
65
+ readonly padding?: number | string;
66
+ /**
67
+ * Background gradient for scrollable edge indicators.
68
+ * Applied to `::before` and `::after` pseudo-elements on the content area.
69
+ *
70
+ * @default linear-gradient(180deg, hsl(from black h s l / 12%), transparent 8px)
71
+ */
72
+ readonly scrollableIndicatorBackground?: CSSProperties['background'];
73
+ /**
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`.
76
+ */
77
+ readonly width?: CSSProperties['width'];
78
+ }
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'];
87
+ /**
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'
92
+ */
93
+ readonly side?: DesktopSidebarSide;
94
+ }
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;
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,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 t}from"@lingui/react";import{useSnackbar as i}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}=i(),s=n();return a(i=>{e(i).with({kind:"error"},({error:i})=>{s.error("Uncaught error",i),o(r(t,{id:"sdk.messages.validation.uncaughtError.message",message:"Oops, something went wrong"}),{variant:"error"})}).with({kind:"violation"},({entityId:r,violation:t,text:i})=>{o(`${String(r)}: ${i}`,{variant:e(t.severity).with("notice",()=>"info").with("warning",()=>"warning").with("fixable",()=>"error").with("fatal",()=>"error").exhaustive()})}).with({kind:"sideEffect"},()=>{}).exhaustive()}),null};
@@ -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,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,80 +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
- declare const MuiSidebarComponentName: 'PhxDesktopSidebar';
5
- declare const MuiSidebarSlots: {
6
- readonly Root: 'root';
7
- readonly Header: 'header';
8
- readonly Body: 'body';
9
- readonly Content: 'content';
10
- readonly Tabs: 'tabs';
11
- readonly Footer: 'footer';
12
- };
13
- type DesktopSidebarSlots = ValueOf<typeof MuiSidebarSlots>;
14
- declare module '@mui/material/styles' {
15
- interface ComponentNameToClassKey {
16
- [MuiSidebarComponentName]: DesktopSidebarSlots;
17
- }
18
- interface ComponentsPropsList {
19
- [MuiSidebarComponentName]: ThemeableDesktopSidebarProps;
20
- }
21
- interface Components {
22
- [MuiSidebarComponentName]?: {
23
- defaultProps?: ComponentsPropsList['PhxDesktopSidebar'];
24
- styleOverrides?: ComponentsOverrides<Theme>['PhxDesktopSidebar'];
25
- };
26
- }
27
- }
28
- interface SidebarOwnerState {
29
- readonly isHeaderEmpty?: boolean;
30
- readonly isContentEmpty?: boolean;
31
- }
32
- export interface ThemeableDesktopSidebarProps extends SidebarOwnerState {
33
- /**
34
- * Background applied to sidebar sections (header, body, footer).
35
- *
36
- * @default theme.palette.background.paper
37
- */
38
- readonly background?: CSSProperties['background'];
39
- /**
40
- * Border applied to sidebar sections.
41
- *
42
- * @default 0
43
- */
44
- readonly border?: CSSProperties['border'];
45
- /**
46
- * Corner radius applied to sidebar sections.
47
- *
48
- * @default theme.shape.sidebarBorderRadius ?? theme.shape.borderRadius
49
- */
50
- readonly borderRadius?: CSSProperties['borderRadius'];
51
- /**
52
- * CSS filter applied to the sidebar root (e.g. drop-shadow for elevation).
53
- *
54
- * @default elevation[1] drop-shadow
55
- */
56
- readonly filter?: CSSProperties['filter'];
57
- /**
58
- * Spacing value for sidebar inner padding.
59
- * Accepts a theme spacing multiplier or a CSS value.
60
- *
61
- * @default theme.spacing(2.5)
62
- */
63
- readonly padding?: number | string;
64
- /**
65
- * Background gradient for scrollable edge indicators.
66
- * Applied to `::before` and `::after` pseudo-elements on the content area.
67
- *
68
- * @default linear-gradient(180deg, hsl(from black h s l / 12%), transparent 8px)
69
- */
70
- readonly scrollableIndicatorBackground?: CSSProperties['background'];
71
- /**
72
- * Inline size (width) of the sidebar.
73
- *
74
- * @default inherited from ThemeableDesktopLayoutProps.sidebarWidth
75
- */
76
- readonly width?: CSSProperties['width'];
77
- }
78
4
  export declare const PhxDesktopLayoutName: 'PhxDesktopLayout';
79
5
  declare const MuiLayoutComponentName: "PhxDesktopLayout";
80
6
  declare const MuiLayoutSlots: {
@@ -1,17 +1,10 @@
1
- import{jsx as a,jsxs as t,Fragment as o}from"react/jsx-runtime";import{keyframes as e,paperClasses as r,snackbarClasses as d,styled as i,useTheme as n,useThemeProps as s}from"@mui/material";import{AnimatePresence as l,motion as p}from"motion/react";import{useCallback as b,useRef as u}from"react";import{useAccessService as c,useIsFullscreenActive as m}from"#package/react-sdk";import{attrf as h,commonStyles as y,numToPx as g,useInvalidateScrollTimeline as f,useIsEmpty as x,useResponsive as k}from"#package/ui-sdk";import{usePreview as v}from"../../../configurator-context/index.js";import{ASSISTANT_PANEL_SLOT as S,AssistantPanel as E,useIsAssistantPanelOpen as w}from"../../assistant/index.js";import{LayoutSlots as R}from"../slots/index.js";import{DesktopPreview as $}from"./DesktopPreview.js";import{useSceneSafeArea as B}from"./use-scene-safe-area.js";let C="PhxDesktopSidebar",D="minimalist",T="split",I="visible",A="hidden",P="assistant",F={Root:i("div",{name:C,slot:"root",shouldForwardProp:a=>"ownerState"!==a})(({ownerState:a})=>[`
2
- --phx-sidebar-background: ${a.background};
3
- --phx-sidebar-border: ${a.border};
4
- --phx-sidebar-filter: ${a.filter};
5
- --phx-sidebar-padding: ${a.padding};
6
- --phx-sidebar-radius: ${a.borderRadius}px;
7
- --phx-sidebar-scrollable-indicator-background: ${a.scrollableIndicatorBackground};
8
- `,{borderRadius:"var(--phx-sidebar-radius)",display:"grid",filter:"var(--phx-sidebar-filter)",gridTemplateRows:"min-content minmax(0, 1fr) min-content",inlineSize:a.width,position:"relative","& > *":{pointerEvents:"auto"},"@container style(--inspect: on)":{"--phx-sidebar-background":"hsl(from gold h s l / 50%)"},[`&[data-sidebar*="${I}"]`]:{opacity:1},[`&[data-sidebar*="${A}"]`]:{opacity:0},[`&[data-sidebar*="${P}"] > :not([data-sidebar="${S}"])`]:{visibility:"hidden"}}]),Tabs:i("div",{name:C,slot:"tabs",shouldForwardProp:a=>"ownerState"!==a})(({theme:{spacing:a}})=>({insetBlockStart:0,insetInlineEnd:"100%",maxInlineSize:150,paddingInlineEnd:a(2),position:"absolute","&:is(:empty)":{padding:0},[`.${r.root}`]:{boxShadow:"none"}})),Header:i("header",{name:C,slot:"header",shouldForwardProp:a=>"ownerState"!==a})({background:"var(--phx-sidebar-background)",border:"var(--phx-sidebar-border)",borderBlockEnd:0,borderStartStartRadius:"inherit",borderStartEndRadius:"inherit",paddingBlock:"calc(0.6 * var(--phx-sidebar-padding))",paddingInline:"var(--phx-sidebar-padding)","&:is(:empty)":{border:0,paddingBlock:0}}),Body:i("div",{name:C,slot:"body",shouldForwardProp:a=>"ownerState"!==a})(({ownerState:a})=>({background:"var(--phx-sidebar-background)",border:"var(--phx-sidebar-border)",borderBlockStart:0,borderBlockEnd:0,display:"grid",position:"relative",'[data-layout*="slot[sidebar]"]:where(:has([data-sidebar="slot[header]"])) &':{...a.isHeaderEmpty&&{borderBlockStart:"var(--phx-sidebar-border)",borderStartStartRadius:"inherit",borderStartEndRadius:"inherit",paddingBlockStart:"var(--phx-sidebar-padding)"}},'&:has([data-sidebar*="slot[content]"]:empty)':{...a.isContentEmpty&&{paddingBlock:0}},[`[data-sidebar*="${D}"] &`]:{...a.isContentEmpty&&{border:0}},[`[data-sidebar*="${T}"] &`]:{borderBlockEnd:"var(--phx-sidebar-border)",borderEndStartRadius:"inherit",borderEndEndRadius:"inherit",paddingBlockEnd:"var(--phx-sidebar-padding)"}})),Content:i("div",{name:C,slot:"content",shouldForwardProp:a=>"ownerState"!==a})(({ownerState:a,theme:{spacing:t}})=>({...y.layout.normalizeScrollableContainer,alignContent:"start",borderRadius:"inherit",display:"grid",gap:t(3),padding:"var(--phx-sidebar-padding)","@supports (animation-timeline: scroll())":{"&[data-scrollable]":{scrollTimeline:"--phx-sidebar-timeline y","&::after, &::before":{animation:`${y.keyframes.fadeIn} both`,animationTimeline:"--phx-sidebar-timeline",background:"var(--phx-sidebar-scrollable-indicator-background)",backgroundRepeat:"no-repeat",content:'""',display:"block",insetInline:0,opacity:0,pointerEvents:"none",position:"absolute",zIndex:1},"&::after":{animationDirection:"reverse",animationRange:`calc(100% - ${t(4)}) 100%`,borderEndStartRadius:"inherit",borderEndEndRadius:"inherit",insetBlockStart:"50%",insetBlockEnd:0,scale:"1 -1"},"&::before":{animationRange:`0 ${t(4)}`,borderStartStartRadius:"inherit",borderStartEndRadius:"inherit",insetBlockStart:0,insetBlockEnd:"50%"}}},"&:is(:empty)":{paddingBlock:0},'[data-layout*="slot[sidebar]"] &':{...a.isHeaderEmpty&&{paddingBlockStart:0,"&::before":{borderStartStartRadius:0,borderStartEndRadius:0,insetBlockStart:"var(--phx-sidebar-padding)"}}},[`[data-sidebar*="${T}"] &`]:{paddingBlockEnd:0,"&::after":{borderEndStartRadius:0,borderEndEndRadius:0,insetBlockEnd:"var(--phx-sidebar-padding)"}}})),Footer:i("footer",{name:C,slot:"footer",shouldForwardProp:a=>"ownerState"!==a})(({ownerState:a,theme:{palette:t,spacing:o}})=>({background:"var(--phx-sidebar-background)",border:"var(--phx-sidebar-border)",borderBlockStart:`1px solid ${t.divider}`,borderEndStartRadius:"inherit",borderEndEndRadius:"inherit",padding:"var(--phx-sidebar-padding)","&:is(:empty)":{border:0,paddingBlock:0},[`[data-sidebar*="${D}"] &`]:{...a.isContentEmpty&&{borderBlockStart:"var(--phx-sidebar-border)",borderStartStartRadius:"inherit",borderStartEndRadius:"inherit"}},[`[data-sidebar*="${T}"] &`]:{borderBlockStart:"var(--phx-sidebar-border)",borderStartStartRadius:"inherit",borderStartEndRadius:"inherit",marginBlockStart:o(2)}}))};export const PhxDesktopLayoutName="PhxDesktopLayout";let j="PhxDesktopLayout",z=i(p.div,{name:j,slot:"root",shouldForwardProp:a=>"ownerState"!==a})(({ownerState:a,theme:{spacing:t}})=>{let o=e({"0%":{marginInlineEnd:0},"100%":{marginInlineEnd:t(-2)}});return[`
1
+ import{jsx as t,jsxs as a,Fragment as o}from"react/jsx-runtime";import{keyframes as e,snackbarClasses as i,styled as r,useThemeProps as d}from"@mui/material";import{AnimatePresence as l,motion as s}from"motion/react";import{useCallback as n}from"react";import{useAccessService as u,useIsFullscreenActive as m}from"#package/react-sdk";import{attrf as p,commonStyles as y,numToPx as c,useResponsive as b}from"#package/ui-sdk";import{usePreview as h}from"../../../configurator-context/index.js";import{useIsAssistantPanelOpen as f}from"../../assistant/index.js";import{SidebarKeys as g}from"../sidebar-keys/index.js";import{LayoutSlots as x}from"../slots/index.js";import{DesktopPreview as v}from"./DesktopPreview.js";import{useLayoutSceneSafeArea as k}from"./use-layout-scene-safe-area.js";export const PhxDesktopLayoutName="PhxDesktopLayout";let w="PhxDesktopLayout",C=r(s.div,{name:w,slot:"root",shouldForwardProp:t=>"ownerState"!==t})(({ownerState:t,theme:{spacing:a}})=>{let o=e({"0%":{marginInlineEnd:0},"100%":{marginInlineEnd:a(-2)}});return[`
9
2
  --inspect: off; // đŸ•šī¸ inspection mode toggle
10
3
 
11
- --phx-layout-sidebar-track-size: ${g(a.sidebarWidth)};
4
+ --phx-layout-sidebar-track-size: ${c(t.sidebarWidth)};
12
5
 
13
- --phx-layout-gap: ${t(2)};
14
- --phx-layout-gutter: ${t(3)};
6
+ --phx-layout-gap: ${a(2)};
7
+ --phx-layout-gutter: ${a(3)};
15
8
  `,{display:"grid",gridTemplateColumns:`
16
9
  [full-start]
17
10
  var(--phx-layout-gutter)
@@ -38,12 +31,4 @@ import{jsx as a,jsxs as t,Fragment as o}from"react/jsx-runtime";import{keyframes
38
31
  [bottom-start]
39
32
  min-content
40
33
  [bottom-end full-end]
41
- `,inset:0,isolation:"isolate",pointerEvents:"none",position:"absolute","@container style(--inspect: on)":{'& > *, & > * > *, [data-layout*="slot[body.footer]"] > *':{outline:"2px solid hsl(from tomato h s l / 50%)"}},'[data-layout*="interactive"]':{"& > *":{pointerEvents:"auto"}},'[data-layout*="slot[header]"]':{gridArea:"top-start / main-start / top-end / sidebar-end"},'[data-layout*="slot[body]"]':{containerType:"size",display:"grid",gridArea:"main",gridRowStart:"top-end",gridTemplateRows:"min-content 1fr min-content"},'[data-layout*="slot[body.top]"]':{gridArea:"1 / 1 / 2 / -1","& > *":{...y.transition.fadeIn}},'[data-layout*="slot[body.safeSceneArea]"]':{gridArea:"1 / 1 / 3 / -1","@container style(--inspect: on)":{background:"hsl(from lime h s l / 50%)"}},'[data-layout*="slot[body.bottom]"]':{alignItems:"end",display:"grid",gap:t(2),gridArea:"3 / 1 / 4 / -1",gridTemplateColumns:"minmax(0, auto) minmax(60px, 1fr)",justifyContent:"start",position:"relative",'&:has([data-layout="slot[body.viewControls]"]:empty)':{gap:0,gridTemplateColumns:"repeat(2, auto)"}},'[data-layout="slot[body.toolbar]"]':{animation:`${o} auto linear both`,animationTimeline:"scroll(self inline)",display:"flex",margin:t(-2),overflowX:"scroll",overscrollBehavior:"contain",padding:t(2),scrollbarWidth:"none","&::after":{content:'""'}},'[data-layout="slot[body.toolControls]"]':{insetBlockEnd:`calc(100% + ${t(6)})`,position:"absolute","& > *":{...y.transition.fadeIn,transitionDuration:"300ms"}},'[data-layout="slot[body.viewControls]"]':{},'[data-layout="slot[body.logo]"], [data-layout="slot[body.sideEffects]"]':{insetBlockEnd:`calc(100% + ${t(2)})`,position:"absolute"},'[data-layout="slot[body.sideEffects]"]':{insetInline:0,[`.${d.root}`]:{inset:"unset",insetBlockEnd:0,position:"absolute"}},'[data-layout*="slot[sidebar]"]':{display:"grid",gridArea:"top-start / sidebar-start / main-end / sidebar-end",gridTemplateRows:"minmax(0, auto)"},'[data-layout*="slot[footer]"]':{display:"grid",gap:"var(--phx-layout-gap)",gridArea:"bottom-start / full-start / bottom-end / full-end"},'&:has([data-header*="fixed"])':{'[data-layout*="slot[header]"]':{gridArea:"full-start / full-start / top-end / full-end"},'[data-layout*="slot[body]"]':{gridRowStart:"main-start"},'[data-layout*="slot[sidebar]"]':{gridRow:"main-start / main-end"}},'&:has([data-header*="floating"])':{'[data-layout*="slot[header]"]':{gridColumnEnd:"main-end"}},[`&:has([data-sidebar*="${D}"])`]:{'[data-layout*="slot[sidebar]"]':{alignContent:"end",gridRow:"main-start / main-end"}},[`&:has([data-header*="floating"]):has([data-sidebar*="${D}"])`]:{'[data-layout*="slot[header]"]':{gridColumnEnd:"sidebar-end"},'[data-layout*="slot[sidebar]"]':{gridRowStart:"top-end"}},[`&:has([data-sidebar*="${P}"])`]:{'[data-layout*="slot[sidebar]"]':{alignContent:"stretch"}},[`&:has([data-sidebar*="${A}"])`]:{"--phx-layout-gap":0,"--phx-layout-sidebar-track-size":0,'[data-layout*="slot[sidebar]"]':{overflow:"hidden"}}}]}),H=i("div")({gridArea:"1 / 1 / -1 / -1"});export const DesktopLayout=()=>{let e=u(null),r=u(null),{palette:d,shape:i,spacing:p}=n(),{sidebarWidth:y="clamp(360px, 30cqi, 400px)"}=s({props:{},name:j}),{background:g=d.background.paper,border:S=0,borderRadius:L=i.sidebarBorderRadius??i.borderRadius,filter:W=`
42
- drop-shadow(0 1px 1.5px hsl(from ${d.common.black} h s l / 12%))
43
- drop-shadow(0 1px 0.5px hsl(from ${d.common.black} h s l / 14%))
44
- drop-shadow(0 2px 0.5px hsl(from ${d.common.black} h s l / 20%))
45
- `,padding:q=p(2.5),scrollableIndicatorBackground:M=`linear-gradient(
46
- 180deg,
47
- hsl(from black h s l / 12%),
48
- hsl(from black h s l / 0%) 8px
49
- )`}=s({props:{},name:C}),{hasMiniSidebar:N,hasSplitSidebar:V}=R.useSidebarContent(),X=w(),{accessInfo:G}=c(),J=m(),{isPreview:K,isHidden:O}=v(),Q=!O&&!K,U=!J,{setCanvasPadding:Y,setAnimating:Z}=k(),{containerRef:_,safeAreaRef:aa,update:at}=B(Y,N&&!X,Q),ao=b(()=>{Z(!0)},[Z]),ae=b(()=>{Z(!1),at()},[Z,at]),ar=Q&&U,ad=x(e,{disabled:!ar}),ai=x(r,{disabled:!ar});f(r,{disabled:!ar});let an={background:g,border:S,borderRadius:L,filter:W,isHeaderEmpty:ad,isContentEmpty:ai,padding:q,scrollableIndicatorBackground:M,width:y};return a(o,{children:t(l,{mode:"wait",children:[!O&&K&&a($,{},"preview-layout"),Q&&t(z,{layoutId:"ui-layout",layout:!0,ownerState:{sidebarWidth:y},"data-layout":h({state:{initial:!J,fullscreen:J}}),onLayoutAnimationStart:ao,onLayoutAnimationComplete:ae,children:[a(H,{ref:_}),a("header",{"data-layout":"slot[header]",children:a(R.DesktopHeader,{})}),t("main",{"data-layout":"slot[body]",children:[a("div",{"data-layout":"slot[body.top] interactive",children:a(R.DesktopCallToAction,{})}),a("div",{ref:aa,"data-layout":"slot[body.safeSceneArea]"}),t("div",{"data-layout":"slot[body.bottom] interactive",children:[a("div",{"data-layout":"slot[body.toolbar]",children:a(R.DesktopToolbar,{})}),a("div",{"data-layout":"slot[body.toolControls]",children:!J&&a(R.DesktopToolControls,{})}),a("div",{"data-layout":"slot[body.viewControls]",children:a(R.DesktopViewControls,{})}),a("div",{"data-layout":"slot[body.logo]",children:a(R.DesktopPoweredBy,{})}),a("div",{"data-layout":"slot[body.sideEffects]",children:a(R.DesktopSnackbarsRoot,{})})]})]}),a("aside",{"data-layout":"slot[sidebar]",children:t(F.Root,{ownerState:an,"data-sidebar":h({variant:{[`${D}`]:N,[`${T}`]:V},state:{[`${I}`]:U,[`${A}`]:!U,[`${P}`]:X}}),inert:U?void 0:"",children:[a(F.Tabs,{ownerState:an,"data-sidebar":"slot[tabs]",children:a(R.DesktopSidebarTabs,{})}),a(F.Header,{ref:e,ownerState:an,"data-sidebar":"slot[header]",children:a(R.DesktopSidebarBackButton,{})}),a(F.Body,{ownerState:an,"data-sidebar":"slot[body]",children:a(F.Content,{ref:r,ownerState:an,"data-sidebar":"slot[content]",children:a(R.DesktopSidebarContent,{})})}),a(F.Footer,{ownerState:an,"data-sidebar":"slot[footer]",children:a(R.DesktopSidebarFooter,{})}),a(E,{})]})}),t("footer",{"data-layout":"slot[footer] interactive",children:[G.viewMode&&!J&&a(R.DesktopReadonlyBanner,{}),a(R.DesktopFooter,{})]})]},"interface-layout")]})})};
34
+ `,inset:0,isolation:"isolate",pointerEvents:"none",position:"absolute","@container style(--inspect: on)":{'& > *, & > * > *, [data-layout*="slot[body.footer]"] > *':{outline:"2px solid hsl(from tomato h s l / 50%)"}},'[data-layout*="interactive"]':{"& > *":{pointerEvents:"auto"}},'[data-layout*="slot[header]"]':{gridArea:"top-start / main-start / top-end / sidebar-end"},'[data-layout*="slot[body]"]':{containerType:"size",display:"grid",gridArea:"main",gridRowStart:"top-end",gridTemplateRows:"min-content 1fr min-content"},'[data-layout*="slot[body.top]"]':{gridArea:"1 / 1 / 2 / -1","& > *":{...y.transition.fadeIn}},'[data-layout*="slot[body.safeSceneArea]"]':{gridArea:"1 / 1 / 3 / -1","@container style(--inspect: on)":{background:"hsl(from lime h s l / 50%)"}},'[data-layout*="slot[body.bottom]"]':{alignItems:"end",display:"grid",gap:a(2),gridArea:"3 / 1 / 4 / -1",gridTemplateColumns:"minmax(0, auto) minmax(60px, 1fr)",justifyContent:"start",position:"relative",'&:has([data-layout="slot[body.viewControls]"]:empty)':{gap:0,gridTemplateColumns:"repeat(2, auto)"}},'[data-layout="slot[body.toolbar]"]':{animation:`${o} auto linear both`,animationTimeline:"scroll(self inline)",display:"flex",margin:a(-2),overflowX:"scroll",overscrollBehavior:"contain",padding:a(2),scrollbarWidth:"none","&::after":{content:'""'}},'[data-layout="slot[body.toolControls]"]':{insetBlockEnd:`calc(100% + ${a(6)})`,position:"absolute","& > *":{...y.transition.fadeIn,transitionDuration:"300ms"}},'[data-layout="slot[body.viewControls]"]':{},'[data-layout="slot[body.logo]"], [data-layout="slot[body.sideEffects]"]':{insetBlockEnd:`calc(100% + ${a(2)})`,position:"absolute"},'[data-layout="slot[body.sideEffects]"]':{insetInline:0,[`.${i.root}`]:{inset:"unset",insetBlockEnd:0,position:"absolute"}},'[data-layout*="slot[sidebar]"]':{display:"grid",gridArea:"top-start / sidebar-start / main-end / sidebar-end",gridTemplateRows:"minmax(0, auto)"},'[data-layout*="slot[footer]"]':{display:"grid",gap:"var(--phx-layout-gap)",gridArea:"bottom-start / full-start / bottom-end / full-end"},'&:has([data-header*="fixed"])':{'[data-layout*="slot[header]"]':{gridArea:"full-start / full-start / top-end / full-end"},'[data-layout*="slot[body]"]':{gridRowStart:"main-start"},'[data-layout*="slot[sidebar]"]':{gridRow:"main-start / main-end"}},'&:has([data-header*="floating"])':{'[data-layout*="slot[header]"]':{gridColumnEnd:"main-end"}},[`&:has([data-sidebar*="${g.Minimalist}"])`]:{'[data-layout*="slot[sidebar]"]':{alignContent:"end",gridRow:"main-start / main-end"}},[`&:has([data-header*="floating"]):has([data-sidebar*="${g.Minimalist}"])`]:{'[data-layout*="slot[header]"]':{gridColumnEnd:"sidebar-end"},'[data-layout*="slot[sidebar]"]':{gridRowStart:"top-end"}},[`&:has([data-sidebar*="${g.Assistant}"])`]:{'[data-layout*="slot[sidebar]"]':{alignContent:"stretch"}},[`&:has([data-sidebar*="${g.Hidden}"])`]:{"--phx-layout-gap":0,"--phx-layout-sidebar-track-size":0,'[data-layout*="slot[sidebar]"]':{overflow:"hidden"}}}]}),D=r("div")({gridArea:"1 / 1 / -1 / -1"});export const DesktopLayout=()=>{let{sidebarWidth:e="clamp(360px, 30cqi, 400px)"}=d({props:{},name:w}),{hasMiniSidebar:i}=x.useSidebarContent(),r=f(),{accessInfo:s}=u(),y=m(),{isPreview:c,isHidden:g}=h(),A=!g&&!c,{setAnimating:E}=b(),{containerRef:S,safeAreaRef:T,update:$}=k({enabled:A,hasMiniSidebar:i&&!r}),j=n(()=>{E(!0)},[E]),R=n(()=>{E(!1),$()},[E,$]);return t(o,{children:a(l,{mode:"wait",children:[!g&&c&&t(v,{},"preview-layout"),A&&a(C,{layoutId:"ui-layout",layout:!0,ownerState:{sidebarWidth:e},"data-layout":p({state:{initial:!y,fullscreen:y}}),onLayoutAnimationStart:j,onLayoutAnimationComplete:R,children:[t(D,{ref:S}),t("header",{"data-layout":"slot[header]",children:t(x.DesktopHeader,{})}),a("main",{"data-layout":"slot[body]",children:[t("div",{"data-layout":"slot[body.top] interactive",children:t(x.DesktopCallToAction,{})}),t("div",{ref:T,"data-layout":"slot[body.safeSceneArea]"}),a("div",{"data-layout":"slot[body.bottom] interactive",children:[t("div",{"data-layout":"slot[body.toolbar]",children:t(x.DesktopToolbar,{})}),t("div",{"data-layout":"slot[body.toolControls]",children:!y&&t(x.DesktopToolControls,{})}),t("div",{"data-layout":"slot[body.viewControls]",children:t(x.DesktopViewControls,{})}),t("div",{"data-layout":"slot[body.logo]",children:t(x.DesktopPoweredBy,{})}),t("div",{"data-layout":"slot[body.sideEffects]",children:t(x.DesktopSnackbarsRoot,{})})]})]}),t("aside",{"data-layout":"slot[sidebar]",children:t(x.DesktopSidebar,{width:e})}),a("footer",{"data-layout":"slot[footer] interactive",children:[s.viewMode&&!y&&t(x.DesktopReadonlyBanner,{}),t(x.DesktopFooter,{})]})]},"interface-layout")]})})};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{useCallback as e,useMemo as o}from"react";import{useResolveLocalizable as a}from"#package/react-sdk";import{Preview as i,useResponsive as r}from"#package/ui-sdk";import{usePresetSelection as n,usePreview as s}from"../../../configurator-context/index.js";import{useSceneSafeArea as p}from"./use-scene-safe-area.js";let m={id:"sdk.preview.customize.title",message:"Customize product"},u={id:"sdk.preview.start.button.label",message:"Start configuring"},c={layoutId:"ui-layout",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{layout:{type:"spring",bounce:.2,duration:.6},opacity:{duration:.2,ease:"linear"}}};export const DesktopPreview=l=>{let{slotProps:d={},slots:f}=l,{enter:y}=s(),{hasMultiplePresets:g}=n(),{setCanvasPadding:k,setAnimating:x}=r(),{containerRef:b,safeAreaRef:j,update:w}=p(k,!1),S=a(),v=e(()=>{x(!0)},[x]),A=e(()=>{x(!1),w()},[x,w]),L=o(()=>({...d,root:{...c,onLayoutAnimationStart:v,onLayoutAnimationComplete:A,...d.root}}),[A,v,d]);return t(i,{title:S(m),buttonLabel:S(u),containerRef:b,safeAreaRef:j,withScene:!g,slots:f,slotProps:L,onStart:y})};
1
+ import{jsx as t}from"react/jsx-runtime";import{useCallback as e,useMemo as o}from"react";import{useResolveLocalizable as a}from"#package/react-sdk";import{Preview as i,useResponsive as r}from"#package/ui-sdk";import{usePresetSelection as n,usePreview as s}from"../../../configurator-context/index.js";import{useLayoutSceneSafeArea as p}from"./use-layout-scene-safe-area.js";let u={id:"sdk.preview.customize.title",message:"Customize product"},m={id:"sdk.preview.start.button.label",message:"Start configuring"},c={layoutId:"ui-layout",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{layout:{type:"spring",bounce:.2,duration:.6},opacity:{duration:.2,ease:"linear"}}};export const DesktopPreview=l=>{let{slotProps:d={},slots:f}=l,{enter:y}=s(),{hasMultiplePresets:g}=n(),{setAnimating:b}=r(),{containerRef:k,safeAreaRef:x,update:S}=p({enabled:!0,hasMiniSidebar:!1}),j=a(),w=e(()=>{b(!0)},[b]),v=e(()=>{b(!1),S()},[b,S]),A=o(()=>({...d,root:{...c,onLayoutAnimationStart:w,onLayoutAnimationComplete:v,...d.root}}),[v,w,d]);return t(i,{title:j(u),buttonLabel:j(m),containerRef:k,safeAreaRef:x,withScene:!g,slots:f,slotProps:A,onStart:y})};