@salsita-ai/sdk 0.50.0-develop.03ef51a292 → 0.50.0-develop.08837efd9c

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 (780) hide show
  1. package/README.md +2 -2
  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/index.d.ts +1 -0
  12. package/dist/application-spec/core/index.js +1 -1
  13. package/dist/application-spec/core/json-value.d.ts +1 -1
  14. package/dist/application-spec/{core → enhanced-json}/eval-to-constant.d.ts +1 -1
  15. package/dist/application-spec/enhanced-json/index.d.ts +4 -0
  16. package/dist/application-spec/enhanced-json/index.js +1 -0
  17. package/dist/application-spec/enhanced-json/is-enhanced-json-array.d.ts +2 -0
  18. package/dist/application-spec/enhanced-json/is-enhanced-json-array.js +1 -0
  19. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.d.ts +18 -0
  20. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.js +1 -0
  21. package/dist/application-spec/enhanced-json/schema-from-value.d.ts +24 -0
  22. package/dist/application-spec/enhanced-json/schema-from-value.js +1 -0
  23. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.d.ts +14 -0
  24. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.js +1 -0
  25. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.d.ts +12 -0
  26. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.js +1 -0
  27. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.d.ts +13 -0
  28. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.js +1 -0
  29. package/dist/application-spec/errors/diagnostic-codes.d.ts +9 -0
  30. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  31. package/dist/application-spec/errors/diagnostic-messages.d.ts +12 -0
  32. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  33. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +8 -1
  34. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  35. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +4 -4
  36. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  37. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  38. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +56 -56
  39. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +1 -1
  40. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  41. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  42. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  43. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  44. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +11 -11
  45. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +1 -1
  46. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  47. package/dist/application-spec/generate-application/code/templates/domain-spec.js +12 -12
  48. package/dist/application-spec/generate-application/code/templates/domain.js +3 -3
  49. package/dist/application-spec/generate-application/code/templates/globals.js +5 -4
  50. package/dist/application-spec/generate-application/code/templates/index.d.ts +0 -7
  51. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  52. package/dist/application-spec/generate-application/code/templates/package-json.js +1 -1
  53. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +66 -42
  54. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +8 -2
  55. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +13 -14
  56. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +6 -8
  57. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +4 -3
  58. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -2
  59. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +1 -3
  60. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +1 -3
  61. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +1 -1
  62. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  63. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +2 -1
  64. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  65. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +2 -4
  66. package/dist/application-spec/index.d.ts +1 -0
  67. package/dist/application-spec/index.js +1 -1
  68. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  69. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  70. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +16 -3
  71. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  72. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  73. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  74. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  75. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  76. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  77. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  78. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  79. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  80. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  81. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  82. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  83. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  84. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  85. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  86. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  87. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  88. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  89. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  90. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  91. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  92. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  93. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  94. package/dist/client/authorized-client.d.ts +3 -1
  95. package/dist/client/authorized-client.js +1 -1
  96. package/dist/client/contract.d.ts +34 -0
  97. package/dist/client/contract.js +1 -1
  98. package/dist/client/index.d.ts +2 -2
  99. package/dist/client/index.js +1 -1
  100. package/dist/client/local-authorized-client.d.ts +3 -1
  101. package/dist/client/local-authorized-client.js +1 -1
  102. package/dist/client/memory-authorized-client.d.ts +3 -1
  103. package/dist/client/memory-authorized-client.js +1 -1
  104. package/dist/client/phoenix-api.d.ts +311 -2
  105. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  106. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  107. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  108. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +92 -3
  109. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  110. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  111. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  112. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +14 -4
  113. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  114. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  115. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  116. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  117. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  118. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  119. package/dist/configurator/common/configurator-interface.d.ts +5 -1
  120. package/dist/configurator/common/configurator-interface.js +1 -1
  121. package/dist/configurator/common/frontend-analytics.d.ts +2 -0
  122. package/dist/configurator/common/frontend-analytics.js +1 -1
  123. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +1 -1
  124. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +6 -0
  125. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  126. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  127. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  128. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  129. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  130. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  131. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  132. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  133. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  134. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  135. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +2 -1
  136. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -1
  137. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +1 -1
  138. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  139. package/dist/configurator/ui/assistant/AssistantThread.d.ts +6 -2
  140. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  141. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  142. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  143. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  144. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  145. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  146. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  147. package/dist/configurator/ui/assistant/entity-link/entity-link-target.d.ts +5 -0
  148. package/dist/configurator/ui/assistant/entity-link/entity-link-target.js +1 -0
  149. package/dist/configurator/ui/assistant/entity-link/index.d.ts +3 -0
  150. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  151. package/dist/configurator/ui/assistant/thread-items.d.ts +13 -2
  152. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  153. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  154. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  155. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  156. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  157. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.d.ts +101 -0
  158. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  159. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  160. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  161. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  162. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  163. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +0 -74
  164. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  165. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  166. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +4 -4
  167. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  168. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  169. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  170. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  171. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  172. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  173. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -2
  174. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +16 -19
  175. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  176. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  177. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  178. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  179. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  180. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  181. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  182. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  183. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  184. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  185. package/dist/docs/index.json +32 -1
  186. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  187. package/dist/docs/layouts/custom-layout.mdx +981 -0
  188. package/dist/docs/layouts/header/fixed.mdx +2 -2
  189. package/dist/docs/layouts/header/floating.mdx +2 -2
  190. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  191. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  192. package/dist/docs/other-features/side-effects.mdx +8 -11
  193. package/dist/docs/other-features/transformers.mdx +4 -0
  194. package/dist/docs/other-features/violation-messages.mdx +52 -56
  195. package/dist/docs/phoenix/configurator-interface.mdx +106 -65
  196. package/dist/docs/phoenix/deployments.mdx +1 -1
  197. package/dist/docs/phoenix/domain-model.mdx +4 -0
  198. package/dist/docs/phoenix/expression-context.mdx +11 -3
  199. package/dist/docs/phoenix/getting-started.mdx +1 -1
  200. package/dist/docs/phoenix/phoenix-cli.mdx +43 -47
  201. package/dist/docs/phoenix/project-structure.mdx +18 -11
  202. package/dist/docs/phoenix/quickstart.mdx +2 -2
  203. package/dist/docs/phoenix/sdk-builder-workflow.mdx +8 -8
  204. package/dist/docs/phoenix/testing.mdx +140 -0
  205. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  206. package/dist/docs/phoenix/webhooks.mdx +2 -2
  207. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  208. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -11
  209. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  210. package/dist/domain/admin-domain/index.d.ts +8 -3
  211. package/dist/domain/admin-domain/index.js +1 -1
  212. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  213. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  214. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  215. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  216. package/dist/domain/application/application-config.d.ts +7 -26
  217. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  218. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  219. package/dist/domain/application/assistant/assistant-manifest.d.ts +9 -1
  220. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +38 -2
  221. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -1
  222. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  223. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  224. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  225. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  226. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  227. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  228. package/dist/domain/application/assistant/index.d.ts +6 -1
  229. package/dist/domain/application/assistant/index.js +1 -1
  230. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  231. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  232. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  233. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  234. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +48 -0
  235. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  236. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  237. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  238. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  239. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  240. package/dist/domain/application/assistant-mutations.d.ts +2 -1
  241. package/dist/domain/application/assistant-recipe-groups.d.ts +1 -1
  242. package/dist/domain/application/configurator-builder.d.ts +2 -2
  243. package/dist/domain/application/configurator-builder.js +1 -1
  244. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  245. package/dist/domain/application/index.d.ts +2 -6
  246. package/dist/domain/application/index.js +1 -1
  247. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  248. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  249. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  250. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  251. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  252. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  253. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  254. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  255. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +3 -3
  256. package/dist/domain/application/published-data/map-published-data.d.ts +7 -3
  257. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  258. package/dist/domain/available-system-components.js +1 -1
  259. package/dist/domain/core/action/action-factory.d.ts +2 -2
  260. package/dist/domain/core/action/action.d.ts +19 -14
  261. package/dist/domain/core/action/index.d.ts +0 -1
  262. package/dist/domain/core/action/index.js +1 -1
  263. package/dist/domain/core/component/domain-component-optic.d.ts +29 -40
  264. package/dist/domain/core/component/domain-component-optic.js +2 -2
  265. package/dist/domain/core/component/legacy-filter.d.ts +2 -17
  266. package/dist/domain/core/component/system-component-filter.d.ts +36 -18
  267. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  268. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  269. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  270. package/dist/domain/core/data-schema/data-schema-field-object.js +1 -0
  271. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  272. package/dist/domain/core/data-schema/data-schema-field.js +1 -0
  273. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  274. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  275. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  276. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  277. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  278. package/dist/domain/core/data-schema/data-schema.js +1 -0
  279. package/dist/domain/core/data-schema/index.d.ts +7 -0
  280. package/dist/domain/core/data-schema/index.js +1 -0
  281. package/dist/domain/core/domain.d.ts +2 -2
  282. package/dist/domain/core/emission/index.d.ts +8 -0
  283. package/dist/domain/core/emission/index.js +1 -0
  284. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  285. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  286. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  287. package/dist/domain/core/emission/state-emission.js +1 -0
  288. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  289. package/dist/domain/core/emission/state-update-emission.js +1 -0
  290. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  291. package/dist/domain/core/emission/state-validation-result.js +1 -0
  292. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  293. package/dist/domain/core/emission/transformation-log.js +1 -0
  294. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  295. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  296. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  297. package/dist/domain/core/emission/transformer-log.js +1 -0
  298. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  299. package/dist/domain/core/emission/transformer-phase.js +1 -0
  300. package/dist/domain/core/expression/aliased-expressions.d.ts +10 -0
  301. package/dist/domain/core/expression/aliased-expressions.js +1 -0
  302. package/dist/domain/core/expression/constant-expressions.d.ts +16 -8
  303. package/dist/domain/core/expression/constant-expressions.js +1 -1
  304. package/dist/domain/core/expression/custom-expression.d.ts +21 -8
  305. package/dist/domain/core/expression/custom-expression.js +1 -1
  306. package/dist/domain/core/expression/expression.d.ts +15 -17
  307. package/dist/domain/core/expression/index.d.ts +1 -2
  308. package/dist/domain/core/expression/index.js +1 -1
  309. package/dist/domain/core/index.d.ts +4 -0
  310. package/dist/domain/core/index.js +1 -1
  311. package/dist/domain/core/invariant/custom-invariants.d.ts +8 -16
  312. package/dist/domain/core/invariant/index.d.ts +1 -1
  313. package/dist/domain/core/invariant/index.js +1 -1
  314. package/dist/domain/core/invariant/invariants.d.ts +4 -70
  315. package/dist/domain/core/invariant/invariants.js +1 -1
  316. package/dist/domain/core/invariant/violation.d.ts +51 -3
  317. package/dist/domain/core/invariant/violation.js +1 -1
  318. package/dist/domain/core/recipe/index.d.ts +1 -0
  319. package/dist/domain/core/recipe/index.js +1 -0
  320. package/dist/domain/core/recipe/recipes.d.ts +23 -0
  321. package/dist/domain/core/recipe/recipes.js +1 -0
  322. package/dist/domain/core/relation/all-of-type-relation.d.ts +19 -0
  323. package/dist/domain/core/relation/all-of-type-relation.js +1 -0
  324. package/dist/domain/{relations → core/relation}/component-factories.d.ts +1 -1
  325. package/dist/domain/core/relation/component-factories.js +1 -0
  326. package/dist/domain/{relations → core/relation}/composed-of.d.ts +1 -1
  327. package/dist/domain/core/relation/composed-of.js +1 -0
  328. package/dist/domain/core/relation/direct-relation.d.ts +17 -0
  329. package/dist/domain/core/relation/index.d.ts +8 -0
  330. package/dist/domain/core/relation/index.js +1 -0
  331. package/dist/domain/core/relation/indirect-relation.d.ts +25 -0
  332. package/dist/domain/core/relation/indirect-relation.js +1 -0
  333. package/dist/domain/{relations → core/relation}/reference-component.d.ts +4 -3
  334. package/dist/domain/core/relation/reference-component.js +1 -0
  335. package/dist/domain/{relations → core/relation}/reference-field.d.ts +1 -1
  336. package/dist/domain/core/relation/reference-field.js +1 -0
  337. package/dist/domain/core/relation/relation-factory.d.ts +22 -0
  338. package/dist/domain/core/relation/relation-factory.js +1 -0
  339. package/dist/domain/core/state/migrations.d.ts +14 -45
  340. package/dist/domain/core/state/migrations.js +1 -1
  341. package/dist/domain/core/state/state.d.ts +1 -1
  342. package/dist/domain/domain-builder.d.ts +2 -5
  343. package/dist/domain/domain-builder.js +1 -1
  344. package/dist/domain/domain-context/action-system/action-system.d.ts +2 -2
  345. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  346. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  347. package/dist/domain/domain-context/action-system/index.js +1 -0
  348. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  349. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  350. package/dist/domain/domain-context/create-transformer.d.ts +1 -1
  351. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +2 -2
  352. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  353. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  354. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  355. package/dist/domain/domain-context/domain-context-systems.d.ts +7 -7
  356. package/dist/domain/domain-context/index.d.ts +8 -18
  357. package/dist/domain/domain-context/index.js +1 -1
  358. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  359. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  360. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +2 -3
  361. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  362. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +1 -1
  363. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  364. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  365. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +2 -3
  366. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  367. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +2 -2
  368. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +2 -2
  369. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.js +1 -1
  370. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +2 -2
  371. package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
  372. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  373. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  374. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +2 -2
  375. package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
  376. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  377. package/dist/domain/domain-context/store-system/index.js +1 -0
  378. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  379. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -35
  380. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  381. package/dist/domain/domain-context/store-system/system-state.d.ts +1 -1
  382. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  383. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +5 -7
  384. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  385. package/dist/domain/domain-context/transformers/chain-builder.d.ts +1 -1
  386. package/dist/domain/domain-context/transformers/context.d.ts +2 -3
  387. package/dist/domain/domain-context/transformers/context.js +1 -1
  388. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  389. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  390. package/dist/domain/domain-context/transformers/index.js +1 -1
  391. package/dist/domain/domain-context/transformers/when-builder.d.ts +2 -3
  392. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  393. package/dist/domain/domain-context/undo-system.d.ts +2 -3
  394. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  395. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  396. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  397. package/dist/domain/domain-runtime/access/types.js +1 -1
  398. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  399. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  400. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  401. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  402. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  403. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  404. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  405. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  406. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +19 -23
  407. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  408. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  409. package/dist/domain/domain-runtime/domain-runtime.d.ts +84 -68
  410. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +19 -0
  411. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  412. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  413. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  414. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  415. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  416. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  417. package/dist/domain/domain-runtime/errors/index.js +1 -0
  418. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  419. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  420. package/dist/domain/domain-runtime/index.d.ts +1 -0
  421. package/dist/domain/domain-runtime/index.js +1 -1
  422. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  423. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  424. package/dist/domain/domain-runtime/spec/index.d.ts +5 -0
  425. package/dist/domain/domain-runtime/spec/index.js +1 -1
  426. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  427. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  428. package/dist/domain/{core/expression → domain-runtime/spec}/memoize-expression.d.ts +1 -2
  429. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +2 -2
  430. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  431. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +1 -1
  432. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  433. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  434. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  435. package/dist/domain/{project-modules → domain-runtime/spec/module-checks}/project-modules.d.ts +8 -17
  436. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  437. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  438. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  439. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  440. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  441. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  442. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  443. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  444. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  445. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  446. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  447. package/dist/domain/{core/action → domain-runtime/spec}/prepare-action-implementations.d.ts +1 -1
  448. package/dist/domain/domain-runtime/spec/prepare-action-implementations.js +5 -0
  449. package/dist/domain/{core/expression → domain-runtime/spec}/prepare-domain-expressions.d.ts +1 -1
  450. package/dist/domain/domain-runtime/spec/selectors.d.ts +5 -6
  451. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  452. package/dist/domain/domain-runtime/spec/types.d.ts +3 -2
  453. package/dist/domain/{system-components → extensions}/canvas-config.d.ts +1 -1
  454. package/dist/domain/{system-components → extensions}/child-entity-recipe-hierarchy.d.ts +1 -1
  455. package/dist/domain/extensions/child-entity-recipe-hierarchy.js +1 -0
  456. package/dist/domain/{system-components → extensions}/client-side-image.d.ts +2 -2
  457. package/dist/domain/{system-components → extensions}/client-side-image.js +1 -1
  458. package/dist/domain/{system-components → extensions}/common/angle-indicator-schema.d.ts +3 -3
  459. package/dist/domain/extensions/common/angle-indicator-schema.js +1 -0
  460. package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.d.ts +2 -2
  461. package/dist/domain/extensions/common/index.d.ts +4 -0
  462. package/dist/domain/extensions/common/index.js +1 -0
  463. package/dist/domain/{system-components → extensions}/custom-header.d.ts +1 -1
  464. package/dist/domain/extensions/custom-header.js +1 -0
  465. package/dist/domain/{system-components → extensions}/custom-price-footer.js +1 -1
  466. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.d.ts +1 -1
  467. package/dist/domain/extensions/custom-sidebar-footer.js +1 -0
  468. package/dist/domain/{system-components → extensions}/editable-angle-indicator.d.ts +3 -2
  469. package/dist/domain/extensions/editable-angle-indicator.js +1 -0
  470. package/dist/domain/{system-components → extensions}/editable-distance-dimension-indicator.d.ts +3 -2
  471. package/dist/domain/extensions/editable-distance-dimension-indicator.js +1 -0
  472. package/dist/domain/{system-components → extensions}/editable-offset-indicator.d.ts +3 -2
  473. package/dist/domain/extensions/editable-offset-indicator.js +1 -0
  474. package/dist/domain/{system-components → extensions}/editable-size-indicator.d.ts +2 -1
  475. package/dist/domain/extensions/editable-size-indicator.js +1 -0
  476. package/dist/domain/{system-components → extensions}/entity-header.d.ts +1 -1
  477. package/dist/domain/extensions/entity-header.js +1 -0
  478. package/dist/domain/{system-components → extensions}/finalize-component.js +1 -1
  479. package/dist/domain/{system-components → extensions}/horizontal-tabs.d.ts +2 -2
  480. package/dist/domain/extensions/index.d.ts +69 -0
  481. package/dist/domain/extensions/index.js +1 -0
  482. package/dist/domain/{system-components → extensions}/list-selector-dimension-indicator.d.ts +3 -2
  483. package/dist/domain/extensions/list-selector-dimension-indicator.js +1 -0
  484. package/dist/domain/{system-components → extensions}/navigation-steps.d.ts +2 -2
  485. package/dist/domain/extensions/offset-indicator.js +1 -0
  486. package/dist/domain/{system-components → extensions}/property-page.d.ts +1 -1
  487. package/dist/domain/extensions/property-page.js +1 -0
  488. package/dist/domain/{system-components → extensions}/replace-entity-recipe-hierarchy.d.ts +1 -1
  489. package/dist/domain/extensions/replace-entity-recipe-hierarchy.js +1 -0
  490. package/dist/domain/{system-components → extensions}/rotation-handle.d.ts +2 -2
  491. package/dist/domain/{system-components → extensions}/save-template-thumbnail.d.ts +2 -2
  492. package/dist/domain/{system-components → extensions}/save-template-thumbnail.js +1 -1
  493. package/dist/domain/{system-components → extensions}/scene-entity-add-fab.d.ts +1 -1
  494. package/dist/domain/extensions/scene-entity-add-fab.js +1 -0
  495. package/dist/domain/{system-components → extensions}/scene-entity-delete-fab.d.ts +1 -1
  496. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -0
  497. package/dist/domain/{system-components → extensions}/scene-entity-html-hotspot.d.ts +1 -1
  498. package/dist/domain/extensions/scene-entity-html-hotspot.js +1 -0
  499. package/dist/domain/{system-components → extensions}/scene-entity-navigation-hotspot.d.ts +1 -1
  500. package/dist/domain/extensions/scene-entity-navigation-hotspot.js +1 -0
  501. package/dist/domain/{system-components → extensions}/scene-entity-object-html-hotspot.d.ts +1 -1
  502. package/dist/domain/extensions/scene-entity-object-html-hotspot.js +1 -0
  503. package/dist/domain/{system-components → extensions}/scene-entity-select-hotspot.d.ts +1 -1
  504. package/dist/domain/extensions/scene-entity-select-hotspot.js +1 -0
  505. package/dist/domain/{system-components → extensions}/sketching-edit.d.ts +1 -1
  506. package/dist/domain/extensions/sketching-edit.js +1 -0
  507. package/dist/domain/{system-components → extensions}/summary-component.js +1 -1
  508. package/dist/domain/{system-components → extensions}/tool-menu-fab.d.ts +1 -1
  509. package/dist/domain/extensions/tool-menu-fab.js +1 -0
  510. package/dist/domain/{system-components → extensions}/toolbar.d.ts +1 -1
  511. package/dist/domain/extensions/toolbar.js +1 -0
  512. package/dist/domain/index.d.ts +2 -6
  513. package/dist/domain/index.js +1 -1
  514. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  515. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  516. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +28 -19
  517. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  518. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  519. package/dist/domain/mocks/create-mock-domain.js +1 -1
  520. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  521. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  522. package/dist/domain/mocks/create-test-application-config.js +1 -0
  523. package/dist/domain/mocks/index.d.ts +1 -0
  524. package/dist/domain/mocks/index.js +1 -1
  525. package/dist/domain/projections/blender-projections/blender-projections.d.ts +1 -2
  526. package/dist/domain/projections/blender-projections/camera.d.ts +2 -2
  527. package/dist/domain/projections/collision-projections.d.ts +1 -1
  528. package/dist/domain/projections/composition-projections.d.ts +1 -1
  529. package/dist/domain/projections/composition-projections.js +1 -1
  530. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  531. package/dist/domain/projections/index.d.ts +1 -1
  532. package/dist/domain/projections/position-projections.d.ts +1 -1
  533. package/dist/domain/projections/projected-entities-projections.d.ts +1 -1
  534. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  535. package/dist/domain/projections/validation-projections.d.ts +3 -19
  536. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  537. package/dist/domain/system-components/application-config.d.ts +2 -2
  538. package/dist/domain/system-components/child-entity-selection.d.ts +1 -2
  539. package/dist/domain/system-components/collision-box-geometry.d.ts +4 -2
  540. package/dist/domain/system-components/collision-geometry.d.ts +4 -2
  541. package/dist/domain/system-components/collision-point-geometry.d.ts +4 -2
  542. package/dist/domain/system-components/common/index.d.ts +0 -4
  543. package/dist/domain/system-components/common/index.js +1 -1
  544. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  545. package/dist/domain/system-components/common/recipes.d.ts +1 -2
  546. package/dist/domain/system-components/constraint.d.ts +10 -23
  547. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  548. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -1
  549. package/dist/domain/system-components/index.d.ts +0 -68
  550. package/dist/domain/system-components/index.js +1 -1
  551. package/dist/domain/system-components/material-swatch.js +1 -1
  552. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  553. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  554. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  555. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  556. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  557. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  558. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  559. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  560. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  561. package/dist/domain/utils/eval-cache.d.ts +1 -1
  562. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  563. package/dist/domain/utils/memo-eval.d.ts +2 -2
  564. package/dist/editor/domain-editors/use-implementation-files.d.ts +1 -2
  565. package/dist/editor/mocks/EditorMockContext.js +1 -1
  566. package/dist/i18n/locales/cs/messages.js +1 -1
  567. package/dist/i18n/locales/da/messages.js +1 -1
  568. package/dist/i18n/locales/de/messages.js +1 -1
  569. package/dist/i18n/locales/de-AT/messages.js +1 -1
  570. package/dist/i18n/locales/en/messages.js +1 -1
  571. package/dist/i18n/locales/en-AU/messages.js +1 -1
  572. package/dist/i18n/locales/en-GB/messages.js +1 -1
  573. package/dist/i18n/locales/es/messages.js +1 -1
  574. package/dist/i18n/locales/fr/messages.js +1 -1
  575. package/dist/i18n/locales/hu/messages.js +1 -1
  576. package/dist/i18n/locales/it/messages.js +1 -1
  577. package/dist/i18n/locales/nl/messages.js +1 -1
  578. package/dist/i18n/locales/pl/messages.js +1 -1
  579. package/dist/i18n/locales/pt/messages.js +1 -1
  580. package/dist/i18n/locales/ro/messages.js +1 -1
  581. package/dist/i18n/locales/sk/messages.js +1 -1
  582. package/dist/i18n/locales/tr/messages.js +1 -1
  583. package/dist/legacy/domain-cli/gen/configurator-builder.js +13 -12
  584. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  585. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  586. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  587. package/dist/legacy/domain-cli/gen/invariants.js +7 -6
  588. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  589. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  590. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  591. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +16 -5
  592. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  593. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  594. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  595. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +1 -0
  596. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  597. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.d.ts +1 -1
  598. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
  599. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  600. package/dist/phoenix/commands/init.d.ts +4 -4
  601. package/dist/phoenix/commands/init.js +1 -1
  602. package/dist/phoenix/commands/prettier.js +1 -1
  603. package/dist/phoenix/utils/git/index.d.ts +1 -0
  604. package/dist/phoenix/utils/git/index.js +1 -0
  605. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  606. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  607. package/dist/phoenix/utils/index.d.ts +1 -0
  608. package/dist/phoenix/utils/index.js +1 -1
  609. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +2 -0
  610. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  611. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  612. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +53 -36
  613. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  614. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +9 -9
  615. package/dist/react-sdk/domain-context/index.d.ts +1 -1
  616. package/dist/react-sdk/domain-context/index.js +1 -1
  617. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +6 -0
  618. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  619. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  620. package/dist/ui-sdk/theme/types.d.ts +1 -1
  621. package/dist/webhook/builders/common.d.ts +5 -0
  622. package/dist/webhook/builders/webhook-builder.js +1 -1
  623. package/package.json +3 -3
  624. package/schema/domain-spec.json +209 -16
  625. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  626. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  627. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  628. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -90
  629. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  630. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  631. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  632. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  633. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  634. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  635. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  636. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  637. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  638. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  639. package/dist/domain/application/element-registration.js +0 -1
  640. package/dist/domain/application/handler-registration.js +0 -1
  641. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -23
  642. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  643. package/dist/domain/application/resource-builder.d.ts +0 -13
  644. package/dist/domain/application/resource-builder.js +0 -1
  645. package/dist/domain/core/action/prepare-action-implementations.js +0 -5
  646. package/dist/domain/domain-context/recipe-system/recipes.d.ts +0 -55
  647. package/dist/domain/domain-context/recipe-system/recipes.js +0 -1
  648. package/dist/domain/project-modules/index.d.ts +0 -1
  649. package/dist/domain/project-modules/index.js +0 -1
  650. package/dist/domain/project-modules/project-modules.js +0 -1
  651. package/dist/domain/relations/all-of-type-relation.d.ts +0 -30
  652. package/dist/domain/relations/all-of-type-relation.js +0 -1
  653. package/dist/domain/relations/component-factories.js +0 -1
  654. package/dist/domain/relations/composed-of.js +0 -1
  655. package/dist/domain/relations/direct-relation.d.ts +0 -27
  656. package/dist/domain/relations/indirect-relation.d.ts +0 -78
  657. package/dist/domain/relations/indirect-relation.js +0 -1
  658. package/dist/domain/relations/reference-component.js +0 -1
  659. package/dist/domain/relations/relation-factory.d.ts +0 -17
  660. package/dist/domain/relations/relation-factory.js +0 -1
  661. package/dist/domain/relations/relation-implementation.d.ts +0 -5
  662. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +0 -1
  663. package/dist/domain/system-components/common/angle-indicator-schema.js +0 -1
  664. package/dist/domain/system-components/custom-header.js +0 -1
  665. package/dist/domain/system-components/custom-sidebar-footer.js +0 -1
  666. package/dist/domain/system-components/editable-angle-indicator.js +0 -1
  667. package/dist/domain/system-components/editable-distance-dimension-indicator.js +0 -1
  668. package/dist/domain/system-components/editable-offset-indicator.js +0 -1
  669. package/dist/domain/system-components/editable-size-indicator.js +0 -1
  670. package/dist/domain/system-components/entity-header.js +0 -1
  671. package/dist/domain/system-components/list-selector-dimension-indicator.js +0 -1
  672. package/dist/domain/system-components/offset-indicator.js +0 -1
  673. package/dist/domain/system-components/property-page.js +0 -1
  674. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +0 -1
  675. package/dist/domain/system-components/scene-entity-add-fab.js +0 -1
  676. package/dist/domain/system-components/scene-entity-delete-fab.js +0 -1
  677. package/dist/domain/system-components/scene-entity-html-hotspot.js +0 -1
  678. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +0 -1
  679. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +0 -1
  680. package/dist/domain/system-components/scene-entity-select-hotspot.js +0 -1
  681. package/dist/domain/system-components/sketching-edit.js +0 -1
  682. package/dist/domain/system-components/tool-menu-fab.js +0 -1
  683. package/dist/domain/system-components/toolbar.js +0 -1
  684. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  685. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  686. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
  687. /package/dist/domain/{relations/reference-field.js → core/data-schema/data-cell-value.js} +0 -0
  688. /package/dist/domain/{relations/relation-implementation.js → core/data-schema/data-schema-array-field.js} +0 -0
  689. /package/dist/domain/{relations → core/relation}/direct-relation.js +0 -0
  690. /package/dist/domain/{core/expression → domain-runtime/spec}/memoize-expression.js +0 -0
  691. /package/dist/domain/{core/expression → domain-runtime/spec}/prepare-domain-expressions.js +0 -0
  692. /package/dist/domain/{system-components → extensions}/angle-indicator.d.ts +0 -0
  693. /package/dist/domain/{system-components → extensions}/angle-indicator.js +0 -0
  694. /package/dist/domain/{system-components → extensions}/attribute-switch.d.ts +0 -0
  695. /package/dist/domain/{system-components → extensions}/attribute-switch.js +0 -0
  696. /package/dist/domain/{system-components → extensions}/autorotate-camera-component.d.ts +0 -0
  697. /package/dist/domain/{system-components → extensions}/autorotate-camera-component.js +0 -0
  698. /package/dist/domain/{system-components → extensions}/basic-sidebar-footer.d.ts +0 -0
  699. /package/dist/domain/{system-components → extensions}/basic-sidebar-footer.js +0 -0
  700. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.d.ts +0 -0
  701. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.js +0 -0
  702. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.d.ts +0 -0
  703. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.js +0 -0
  704. /package/dist/domain/{system-components → extensions}/canvas-config.js +0 -0
  705. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.d.ts +0 -0
  706. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.js +0 -0
  707. /package/dist/domain/{system-components → extensions}/canvas-padding.d.ts +0 -0
  708. /package/dist/domain/{system-components → extensions}/canvas-padding.js +0 -0
  709. /package/dist/domain/{system-components → extensions}/canvas-preset-environment.d.ts +0 -0
  710. /package/dist/domain/{system-components → extensions}/canvas-preset-environment.js +0 -0
  711. /package/dist/domain/{system-components → extensions}/color-value.d.ts +0 -0
  712. /package/dist/domain/{system-components → extensions}/color-value.js +0 -0
  713. /package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.js +0 -0
  714. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.d.ts +0 -0
  715. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.js +0 -0
  716. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.d.ts +0 -0
  717. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.js +0 -0
  718. /package/dist/domain/{system-components → extensions}/custom-price-footer.d.ts +0 -0
  719. /package/dist/domain/{system-components → extensions}/dimension-indicator.d.ts +0 -0
  720. /package/dist/domain/{system-components → extensions}/dimension-indicator.js +0 -0
  721. /package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.d.ts +0 -0
  722. /package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.js +0 -0
  723. /package/dist/domain/{system-components → extensions}/finalize-action.d.ts +0 -0
  724. /package/dist/domain/{system-components → extensions}/finalize-action.js +0 -0
  725. /package/dist/domain/{system-components → extensions}/finalize-component.d.ts +0 -0
  726. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.d.ts +0 -0
  727. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.js +0 -0
  728. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.d.ts +0 -0
  729. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.js +0 -0
  730. /package/dist/domain/{system-components → extensions}/fixed-header.d.ts +0 -0
  731. /package/dist/domain/{system-components → extensions}/fixed-header.js +0 -0
  732. /package/dist/domain/{system-components → extensions}/floating-header.d.ts +0 -0
  733. /package/dist/domain/{system-components → extensions}/floating-header.js +0 -0
  734. /package/dist/domain/{system-components → extensions}/hidden-header.d.ts +0 -0
  735. /package/dist/domain/{system-components → extensions}/hidden-header.js +0 -0
  736. /package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.d.ts +0 -0
  737. /package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.js +0 -0
  738. /package/dist/domain/{system-components → extensions}/horizontal-tabs.js +0 -0
  739. /package/dist/domain/{system-components → extensions}/multilingual-text-value.d.ts +0 -0
  740. /package/dist/domain/{system-components → extensions}/multilingual-text-value.js +0 -0
  741. /package/dist/domain/{system-components → extensions}/navigation-steps.js +0 -0
  742. /package/dist/domain/{system-components → extensions}/offset-anchors.d.ts +0 -0
  743. /package/dist/domain/{system-components → extensions}/offset-anchors.js +0 -0
  744. /package/dist/domain/{system-components → extensions}/offset-indicator.d.ts +0 -0
  745. /package/dist/domain/{system-components → extensions}/offset.d.ts +0 -0
  746. /package/dist/domain/{system-components → extensions}/offset.js +0 -0
  747. /package/dist/domain/{system-components → extensions}/other-action.d.ts +0 -0
  748. /package/dist/domain/{system-components → extensions}/other-action.js +0 -0
  749. /package/dist/domain/{system-components → extensions}/read-sidebar-footer.d.ts +0 -0
  750. /package/dist/domain/{system-components → extensions}/read-sidebar-footer.js +0 -0
  751. /package/dist/domain/{system-components → extensions}/rotatable.d.ts +0 -0
  752. /package/dist/domain/{system-components → extensions}/rotatable.js +0 -0
  753. /package/dist/domain/{system-components → extensions}/rotation-handle.js +0 -0
  754. /package/dist/domain/{system-components → extensions}/scene-entity-animation.d.ts +0 -0
  755. /package/dist/domain/{system-components → extensions}/scene-entity-animation.js +0 -0
  756. /package/dist/domain/{system-components → extensions}/scene-entity-control.d.ts +0 -0
  757. /package/dist/domain/{system-components → extensions}/scene-entity-control.js +0 -0
  758. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.d.ts +0 -0
  759. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.js +0 -0
  760. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.d.ts +0 -0
  761. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.js +0 -0
  762. /package/dist/domain/{system-components → extensions}/selectable-component.d.ts +0 -0
  763. /package/dist/domain/{system-components → extensions}/selectable-component.js +0 -0
  764. /package/dist/domain/{system-components → extensions}/sidebar-tabs.d.ts +0 -0
  765. /package/dist/domain/{system-components → extensions}/sidebar-tabs.js +0 -0
  766. /package/dist/domain/{system-components → extensions}/simple-summary.d.ts +0 -0
  767. /package/dist/domain/{system-components → extensions}/simple-summary.js +0 -0
  768. /package/dist/domain/{system-components → extensions}/size.d.ts +0 -0
  769. /package/dist/domain/{system-components → extensions}/size.js +0 -0
  770. /package/dist/domain/{system-components → extensions}/sketching-draw.d.ts +0 -0
  771. /package/dist/domain/{system-components → extensions}/sketching-draw.js +0 -0
  772. /package/dist/domain/{system-components → extensions}/summary-component.d.ts +0 -0
  773. /package/dist/domain/{system-components → extensions}/text-value.d.ts +0 -0
  774. /package/dist/domain/{system-components → extensions}/text-value.js +0 -0
  775. /package/dist/domain/{system-components → extensions}/tool-controls.d.ts +0 -0
  776. /package/dist/domain/{system-components → extensions}/tool-controls.js +0 -0
  777. /package/dist/domain/{system-components → extensions}/universal-sidebar-footer.d.ts +0 -0
  778. /package/dist/domain/{system-components → extensions}/universal-sidebar-footer.js +0 -0
  779. /package/dist/domain/{system-components → extensions}/view-controls.d.ts +0 -0
  780. /package/dist/domain/{system-components → extensions}/view-controls.js +0 -0
@@ -1 +1 @@
1
- import{jsx as e,jsxs as i}from"react/jsx-runtime";import{Trans as a}from"@lingui/react";import{Button as t,styled as s}from"@mui/material";import{useMemo as r}from"react";import{match as n}from"ts-pattern";import{useEagerObservableValue as o}from"#package/react-sdk";import{PhxIcon as l}from"#package/ui-sdk";import{useConfigurator as d}from"../../application-runtime/index.js";import{AssistantToolChips as m}from"./AssistantChips.js";import{AssistantMarkdown as p}from"./AssistantMarkdown.js";import{describeAssistantFailure as c}from"./assistant-failure.js";import{AssistantPanelName as h}from"./theme.js";import{buildThreadView as g}from"./thread-items.js";import{useFollowStream as u}from"./use-follow-stream.js";let f=s("div",{name:h,slot:"thread"})({display:"grid",position:"relative"}),k=s("div",{name:h,slot:"messages"})(({theme:{spacing:e,typography:i}})=>({...i.body2,display:"flex",flexDirection:"column",gap:e(1.5),overflowY:"auto",overscrollBehavior:"contain",paddingBlock:e(2),paddingInline:`var(--phx-sidebar-padding, ${e(2)})`,"& > :first-child":{marginBlockStart:"auto"}})),v=s("div",{name:h,slot:"userMessage"})(({theme:{palette:e,spacing:i}})=>({alignSelf:"flex-end",background:`hsl(from ${e.primary.main} h s l / 12%)`,borderRadius:"14px 14px 4px 14px",maxInlineSize:"85%",overflowWrap:"anywhere",paddingBlock:i(1),paddingInline:i(1.5),whiteSpace:"pre-wrap"})),w=s("div",{name:h,slot:"greeting"})({}),b=s("div",{name:h,slot:"status"})(({theme:{palette:e,typography:i}})=>({...i.caption,color:e.text.secondary})),x=s("div",{name:h,slot:"notice"})(({theme:{palette:e,shape:i,spacing:a}})=>({alignItems:"center",background:e.action.hover,borderRadius:i.borderRadius,display:"flex",flexWrap:"wrap",gap:a(1),justifyContent:"space-between",paddingBlock:a(1),paddingInline:a(1.5)})),y=s(t,{name:h,slot:"newReplyButton"})(({theme:{palette:e,spacing:i}})=>({background:e.text.primary,borderRadius:"calc(infinity * 1px)",color:e.background.paper,insetBlockEnd:i(1),insetInlineStart:"50%",position:"absolute",translate:"-50% 0","&:hover":{background:e.text.secondary}})),j=({item:i,isActive:a})=>n(i).with({kind:"user"},({text:i})=>e(v,{children:i})).with({kind:"text"},({markdown:i,isStreaming:a})=>e(p,{markdown:i,isStreaming:a})).with({kind:"tools"},({tools:i})=>e(m,{tools:i,isActive:a})).exhaustive();export const AssistantThread=()=>{let{assistantSystem:s}=d(),m=o(s.chat$),{messages:p,isLoading:h}=m,{items:v,isThinking:T}=r(()=>g(p,h),[p,h]),I=r(()=>v.filter(({kind:e})=>"user"===e).length,[v]),S=m.error?c(m.failedStatus):void 0,{scrollerRef:A,hasUnseenContent:B,handleScroll:R,scrollToEnd:C}=u(r(()=>({messages:p,isThinking:T,failure:S?.kind}),[p,T,S?.kind]),I);return i(f,{children:[i(k,{ref:A,onScroll:R,role:"log","aria-live":"polite",children:[m.isLoaded&&0===v.length&&!h&&!S&&e(w,{children:e(a,{id:"sdk.assistant.thread.greeting",message:"Hi. I can answer questions about this design and change it with you. Tell me what you need."})}),v.map(i=>e(j,{item:i,isActive:h&&i===v.at(-1)},i.id)),T&&e(b,{children:e(a,{id:"sdk.assistant.thread.thinking",message:"Thinkingâ€Ļ"})}),S&&i(x,{role:"alert",children:[e("span",{children:n(S.kind).with("notAvailable",()=>e(a,{id:"sdk.assistant.failure.notAvailable",message:"The assistant is not available here."})).with("busy",()=>e(a,{id:"sdk.assistant.failure.busy",message:"The assistant is still working on an earlier message."})).with("unavailable",()=>e(a,{id:"sdk.assistant.failure.unavailable",message:"The assistant is unavailable right now."})).exhaustive()}),S.canRetry&&e(t,{size:"small",variant:"outlined",color:"inherit",onClick:s.reloadThread,children:e(a,{id:"sdk.assistant.failure.retry.label",message:"Try again"})})]})]}),B&&e(y,{size:"small",onClick:C,endIcon:e(l,{name:"CaretDown"}),children:e(a,{id:"sdk.assistant.thread.newReply.label",message:"New reply"})})]})};
1
+ import{jsx as e,jsxs as a}from"react/jsx-runtime";import{Trans as i}from"@lingui/react";import{Button as t,styled as s}from"@mui/material";import{useCallback as r,useMemo as n}from"react";import{match as o}from"ts-pattern";import{useEagerObservableValue as l}from"#package/react-sdk";import{PhxIcon as d}from"#package/ui-sdk";import{useConfigurator as m}from"../../application-runtime/index.js";import{AssistantToolChips as c}from"./AssistantChips.js";import{AssistantMarkdown as h}from"./AssistantMarkdown.js";import{describeAssistantFailure as p}from"./assistant-failure.js";import{EntityLinkSelectionProvider as g,useCreateEntityLinkSelection as u}from"./entity-link/index.js";import{AssistantPanelName as k}from"./theme.js";import{buildEarlierThreadItems as f,buildThreadView as v}from"./thread-items.js";import{useFollowStream as w}from"./use-follow-stream.js";let b=s("div",{name:k,slot:"thread"})({display:"grid",position:"relative"}),x=s("div",{name:k,slot:"messages"})(({theme:{spacing:e,typography:a}})=>({...a.body2,display:"flex",flexDirection:"column",gap:e(1.5),overflowY:"auto",overscrollBehavior:"contain",paddingBlock:e(2),paddingInline:`var(--phx-sidebar-padding, ${e(2)})`,"& > :first-child":{marginBlockStart:"auto"}})),y=s("div",{name:k,slot:"userMessage"})(({theme:{palette:e,spacing:a}})=>({alignSelf:"flex-end",background:`hsl(from ${e.primary.main} h s l / 12%)`,borderRadius:"14px 14px 4px 14px",maxInlineSize:"85%",overflowWrap:"anywhere",paddingBlock:a(1),paddingInline:a(1.5),whiteSpace:"pre-wrap"})),S=s("div",{name:k,slot:"greeting"})({}),T=s("div",{name:k,slot:"status"})(({theme:{palette:e,typography:a}})=>({...a.caption,color:e.text.secondary})),j=s("div",{name:k,slot:"separator"})(({theme:{palette:e,spacing:a,typography:i}})=>({...i.caption,alignItems:"center",color:e.text.secondary,display:"flex",gap:a(1),"&::before, &::after":{borderBlockStart:`1px solid ${e.divider}`,content:'""',flex:1}})),B=s(t,{name:k,slot:"earlierButton"})({alignSelf:"center"}),E=s("div",{name:k,slot:"notice"})(({theme:{palette:e,shape:a,spacing:i}})=>({alignItems:"center",background:e.action.hover,borderRadius:a.borderRadius,display:"flex",flexWrap:"wrap",gap:i(1),justifyContent:"space-between",paddingBlock:i(1),paddingInline:i(1.5)})),I=s(t,{name:k,slot:"newReplyButton"})(({theme:{palette:e,spacing:a}})=>({background:e.text.primary,borderRadius:"calc(infinity * 1px)",color:e.background.paper,insetBlockEnd:a(1),insetInlineStart:"50%",position:"absolute",translate:"-50% 0","&:hover":{background:e.text.secondary}})),A=({item:a,isActive:t})=>o(a).with({kind:"user"},({text:a})=>e(y,{children:a})).with({kind:"text"},({markdown:a,isStreaming:i})=>e(h,{markdown:a,isStreaming:i})).with({kind:"tools"},({tools:a})=>e(c,{tools:a,isActive:t})).with({kind:"separator"},()=>e(j,{role:"separator",children:e(i,{id:"sdk.assistant.thread.earlierSummarized",message:"Earlier conversation summarized"})})).exhaustive();export const AssistantThread=()=>{let{assistantSystem:s}=m(),c=l(s.chat$),{messages:h,isLoading:k,isResuming:y,earlierThreads:j}=c,{items:C,isThinking:R}=n(()=>v(h,k),[h,k]),L=n(()=>f(j),[j]),z=n(()=>C.filter(({kind:e})=>"user"===e).length,[C]),$=c.error?p(c.failedStatus):void 0,{scrollerRef:D,hasUnseenContent:M,handleScroll:W,scrollToEnd:q}=w(n(()=>({messages:h,isThinking:R,isResuming:y,failure:$?.kind}),[h,R,y,$?.kind]),z),H=u(),N=r(e=>{e.target instanceof Element&&e.target.closest('a, button, input, select, textarea, [role="button"]')||window.getSelection()?.isCollapsed!==!1&&H.release()},[H]),Y=!c.isLoaded&&0===L.length&&!y&&!$;return a(b,{children:[e(g,{selection:H,children:a(x,{ref:D,onScroll:W,onClick:N,role:"log","aria-live":"polite",children:[c.isLoaded&&0===C.length&&0===L.length&&!k&&!y&&!$&&e(S,{children:e(i,{id:"sdk.assistant.thread.greeting",message:"Hi. I can answer questions about this design and change it with you. Tell me what you need."})}),Y&&e(T,{children:e(i,{id:"sdk.assistant.thread.loading",message:"Loading the conversationâ€Ļ"})}),c.isLoadingEarlierThread&&e(T,{children:e(i,{id:"sdk.assistant.thread.loadingEarlier",message:"Loading the earlier conversationâ€Ļ"})}),c.hasEarlierThread&&!c.isLoadingEarlierThread&&e(B,{size:"small",color:"inherit",onClick:s.loadEarlierThread,children:e(i,{id:"sdk.assistant.thread.showEarlier.label",message:"Show earlier conversation"})}),L.map(a=>e(A,{item:a,isActive:!1},a.id)),C.map(a=>e(A,{item:a,isActive:k&&a===C.at(-1)},a.id)),y&&e(T,{children:e(i,{id:"sdk.assistant.thread.resuming",message:"Resuming the conversationâ€Ļ"})}),R&&e(T,{children:e(i,{id:"sdk.assistant.thread.thinking",message:"Thinkingâ€Ļ"})}),$&&a(E,{role:"alert",children:[e("span",{children:o($.kind).with("notAvailable",()=>e(i,{id:"sdk.assistant.failure.notAvailable",message:"The assistant is not available here."})).with("busy",()=>e(i,{id:"sdk.assistant.failure.busy",message:"The assistant is still working on an earlier message."})).with("unavailable",()=>e(i,{id:"sdk.assistant.failure.unavailable",message:"The assistant is unavailable right now."})).exhaustive()}),$.canRetry&&e(t,{size:"small",variant:"outlined",color:"inherit",onClick:s.reloadThread,children:e(i,{id:"sdk.assistant.failure.retry.label",message:"Try again"})})]})]})}),M&&e(I,{size:"small",onClick:q,endIcon:e(d,{name:"CaretDown"}),children:e(i,{id:"sdk.assistant.thread.newReply.label",message:"New reply"})})]})};
@@ -0,0 +1,13 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type DomainEntityId } from '#package/domain';
3
+ export interface AssistantEntityLinkProps {
4
+ readonly id: DomainEntityId<string>;
5
+ /** The text the assistant gave the link; the id itself is never shown. */
6
+ readonly children: ReactNode;
7
+ }
8
+ /**
9
+ * An entity the assistant named in a reply, shown as its label. It follows the configurator live:
10
+ * a click selects the entity when the scene can select it, the link shows when the entity is
11
+ * selected or hovered in the scene, and it is struck out once the entity is gone.
12
+ */
13
+ export declare const AssistantEntityLink: import("react").MemoExoticComponent<({ id, children }: AssistantEntityLinkProps) => import("react/jsx-runtime").JSX.Element>;
@@ -0,0 +1 @@
1
+ import{jsx as e}from"react/jsx-runtime";import{alpha as t,styled as i}from"@mui/material";import{memo as n,useCallback as r,useEffect as o,useRef as a}from"react";import{sceneEntitySelectHotspotComponent as l,selectableComponent as c}from"#package/domain";import{useDomain as d,useFirstRenderedComponent as s,useHoveredDomainEntityId as m,useRenderedSelector as u,useSelectEntity as p,useSelectedDomainEntityId as k,useStoreSelector as y}from"#package/react-sdk";import{FrontendAnalyticsFactory as h}from"../../../common/index.js";import{AssistantPanelName as b}from"../theme.js";import{useEntityLinkSelection as g}from"./entity-link-selection.js";import{resolveEntityLinkState as f}from"./entity-link-state.js";let v=({theme:{palette:e,shape:i,spacing:n}})=>({background:e.action.hover,border:"none",borderRadius:i.borderRadius/2,boxDecorationBreak:"clone",color:"inherit",font:"inherit",margin:0,paddingBlock:0,paddingInline:n(.5),textAlign:"inherit",WebkitBoxDecorationBreak:"clone",'&[data-entity-link="interactive"]':{background:t(e.primary.main,e.action.hoverOpacity),color:e.primary.main,cursor:"pointer",'&:hover, &:focus-visible, &[data-hovered="true"]':{background:t(e.primary.main,e.action.focusOpacity)},"&:focus-visible":{outline:`2px solid ${e.primary.main}`,outlineOffset:1}},'&[data-entity-link="missing"]':{background:"none",color:e.text.disabled,paddingInline:0,textDecoration:"line-through"},'&[data-selected="true"]':{boxShadow:`inset 0 0 0 1px ${e.primary.main}`}}),x=i("span",{name:b,slot:"entityLink"})(v),S=i("button",{name:b,slot:"entityLink"})(v),j=({kind:t,isSelected:i,children:n})=>e(x,{"data-entity-link":t,"data-selected":i,children:n}),T=({id:t,isSelected:i,children:n})=>{let{navigationSystem:u}=d(),k=s({entityIds:[t],componentTypes:[c]}),y=s({entityIds:[t],componentTypes:[l]}),{kind:b,canHover:v}=f({isSelectable:null!=k,isHoverDisabled:k?.state.hoverable===!1,hasSelectHotspot:null!=y}),x=m()===t,T=p(h.AssistantEntityLinkClicked),B=g(),E=r(()=>{B?.remember(t),T(t)},[t,B,T]),L=a(!1),D=r(()=>{v&&(L.current=!0,u.debouncedToggleHover(t))},[v,t,u]),H=r(()=>{L.current&&(L.current=!1,u.debouncedToggleHover(null))},[u]),I=r(e=>{"touch"!==e.pointerType&&D()},[D]),A=r(e=>{e.currentTarget.matches(":focus-visible")&&D()},[D]);return(o(()=>H,[v,H,t]),"interactive"!==b)?e(j,{kind:b,isSelected:i,children:n}):e(S,{type:"button","data-entity-link":b,"data-selected":i,"data-hovered":v&&x,"aria-current":i?"true":void 0,onClick:E,onPointerEnter:I,onPointerLeave:H,onFocus:A,onBlur:H,children:n})};export const AssistantEntityLink=n(({id:t,children:i})=>{let{domain:n}=d(),r=y(e=>null!=n.getEntity(t,e.state),[n,t]),o=u(e=>null!=n.getEntity(t,e.state),[n,t]),a=k()===t;return r?o?e(T,{id:t,isSelected:a,children:i}):e(j,{kind:"plain",isSelected:a,children:i}):e(j,{kind:"missing",isSelected:!1,children:i})});
@@ -0,0 +1,22 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { DomainEntityId } from '#package/domain';
3
+ /**
4
+ * The selection an entity link made, held for the thread the links are in. A click elsewhere in
5
+ * the thread takes back what a link selected, so a user can look at an entity and let it go again.
6
+ * A selection made anywhere else, in the scene, a hotspot or the sidebar, is never taken back.
7
+ */
8
+ export interface EntityLinkSelection {
9
+ /** Records that a link is selecting this entity; call it before the select update is committed. */
10
+ readonly remember: (id: DomainEntityId<string>) => void;
11
+ /** Deselects the entity a link selected, when it is still the selected one, and forgets it. */
12
+ readonly release: () => void;
13
+ }
14
+ /** Creates the selection the entity links of one thread share; the thread provides it to them. */
15
+ export declare const useCreateEntityLinkSelection: () => EntityLinkSelection;
16
+ export interface EntityLinkSelectionProviderProps {
17
+ readonly selection: EntityLinkSelection;
18
+ readonly children: ReactNode;
19
+ }
20
+ export declare const EntityLinkSelectionProvider: ({ selection, children }: EntityLinkSelectionProviderProps) => import("react/jsx-runtime").JSX.Element;
21
+ /** The selection of the thread the link is in, or `null` for a link rendered outside a thread. */
22
+ export declare const useEntityLinkSelection: () => EntityLinkSelection | null;
@@ -0,0 +1 @@
1
+ import{jsx as t}from"react/jsx-runtime";import{createContext as e,useCallback as r,useContext as n,useEffect as l,useMemo as c,useRef as i}from"react";import{useDeselect as o,useDomain as u,useSelectedDomainEntityId as a}from"#package/react-sdk";let s=e(null);export const useCreateEntityLinkSelection=()=>{let{storeSystem:t,navigationSystem:e}=u(),n=o(),s=a(),m=i(null);l(()=>{s!==m.current&&(m.current=null)},[s]);let p=r(t=>{m.current=t},[]),S=r(()=>{let r=m.current;m.current=null,null!=r&&e.getActiveSelectionState(t.stateSlices.committed.value.state)===r&&n()},[n,e,t]);return c(()=>({remember:p,release:S}),[p,S])};export const EntityLinkSelectionProvider=({selection:e,children:r})=>t(s.Provider,{value:e,children:r});export const useEntityLinkSelection=()=>n(s);
@@ -0,0 +1,27 @@
1
+ /** What is attached right now to an existing entity that an entity link points at. */
2
+ export interface EntityLinkFacts {
3
+ /** A `selectable` component is attached to the entity under the current filters. */
4
+ readonly isSelectable: boolean;
5
+ /** The attached `selectable` component switches hover off with `hoverable: false`. */
6
+ readonly isHoverDisabled: boolean;
7
+ /** A `sceneEntitySelectHotspot` component is attached to the entity under the current filters. */
8
+ readonly hasSelectHotspot: boolean;
9
+ }
10
+ /**
11
+ * How an entity link shows and behaves:
12
+ *
13
+ * - `missing`: the entity is gone, the link is struck out;
14
+ * - `plain`: the entity exists but nothing in the scene selects it, so the link is only a label;
15
+ * - `interactive`: a click selects the entity, as a click on it or on its hotspot in the scene does.
16
+ */
17
+ export type EntityLinkKind = 'missing' | 'plain' | 'interactive';
18
+ /** The state of a link to an entity that exists; a link to one that is gone is `missing` without it. */
19
+ export interface EntityLinkState {
20
+ readonly kind: Exclude<EntityLinkKind, 'missing'>;
21
+ /**
22
+ * The link sends its hover to the scene and shows the hover of the scene. Only an entity the
23
+ * scene itself can hover takes part, so one that is selected through a hotspot alone does not.
24
+ */
25
+ readonly canHover: boolean;
26
+ }
27
+ export declare const resolveEntityLinkState: (facts: EntityLinkFacts) => EntityLinkState;
@@ -0,0 +1 @@
1
+ export const resolveEntityLinkState=e=>{let{isSelectable:n,isHoverDisabled:t,hasSelectHotspot:i}=e;return n||i?{kind:"interactive",canHover:n&&!t}:{kind:"plain",canHover:!1}};
@@ -0,0 +1,5 @@
1
+ import { type DomainEntityId } from '#package/domain';
2
+ /** True for the target of a link the assistant wrote to point at an entity, `entity:<id>`, whatever follows the scheme. */
3
+ export declare const isEntityLinkHref: (href: string) => boolean;
4
+ /** The entity id an entity link points at, or `null` when what follows the scheme is not a well-formed entity id. */
5
+ export declare const parseEntityLinkTarget: (href: string) => DomainEntityId<string> | null;
@@ -0,0 +1 @@
1
+ import{DomainEntityIdSchema as t}from"#package/domain";let e="entity:",n=new RegExp(t.pattern);export const isEntityLinkHref=t=>t.startsWith(e);export const parseEntityLinkTarget=t=>{let r=t.slice(e.length);return t.startsWith(e)&&n.test(r)?r:null};
@@ -0,0 +1,3 @@
1
+ export { AssistantEntityLink } from './AssistantEntityLink.js';
2
+ export { EntityLinkSelectionProvider, useCreateEntityLinkSelection } from './entity-link-selection.js';
3
+ export { isEntityLinkHref, parseEntityLinkTarget } from './entity-link-target.js';
@@ -0,0 +1 @@
1
+ export{AssistantEntityLink}from"./AssistantEntityLink.js";export{EntityLinkSelectionProvider,useCreateEntityLinkSelection}from"./entity-link-selection.js";export{isEntityLinkHref,parseEntityLinkTarget}from"./entity-link-target.js";
@@ -1,4 +1,5 @@
1
1
  import type { UIMessage } from '@tanstack/ai-client';
2
+ import type { AssistantEarlierThreadSnapshot } from '../../application-runtime/index.js';
2
3
  import { type AssistantToolChip } from './tool-chip.js';
3
4
  /** A tool call of the thread, with what its chip shows and what a click on the chip logs. */
4
5
  export interface AssistantToolItem {
@@ -8,8 +9,9 @@ export interface AssistantToolItem {
8
9
  readonly result: unknown;
9
10
  }
10
11
  /**
11
- * One block of the thread, in reading order: a user bubble, a stretch of assistant Markdown, or a
12
- * row of chips for the tool calls that follow each other without text in between.
12
+ * One block of the thread, in reading order: a user bubble, a stretch of assistant Markdown, a row
13
+ * of chips for the tool calls that follow each other without text in between, or the line that
14
+ * ends a closed thread of the conversation.
13
15
  */
14
16
  export type AssistantThreadItem = {
15
17
  readonly kind: 'user';
@@ -24,6 +26,9 @@ export type AssistantThreadItem = {
24
26
  readonly kind: 'tools';
25
27
  readonly id: string;
26
28
  readonly tools: readonly AssistantToolItem[];
29
+ } | {
30
+ readonly kind: 'separator';
31
+ readonly id: string;
27
32
  };
28
33
  export interface AssistantThreadView {
29
34
  readonly items: readonly AssistantThreadItem[];
@@ -35,3 +40,9 @@ export interface AssistantThreadView {
35
40
  * results are not shown on their own but decide the state of the chip of their call.
36
41
  */
37
42
  export declare const buildThreadView: (messages: ReadonlyArray<UIMessage>, isReplying: boolean) => AssistantThreadView;
43
+ /**
44
+ * Lays the closed threads of the conversation out above the thread that continues them, oldest
45
+ * first, each ended by a separator: the assistant read on from a summary of it, not from the
46
+ * messages themselves.
47
+ */
48
+ export declare const buildEarlierThreadItems: (earlierThreads: ReadonlyArray<AssistantEarlierThreadSnapshot>) => readonly AssistantThreadItem[];
@@ -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,n)=>{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),i=[],s=o.at(-1),a=t=>{let e=i.at(-1);e?.kind==="tools"?i[i.length-1]={...e,tools:[...e.tools,t]}:i.push({kind:"tools",id:t.id,tools:[t]})};for(let e of o){if("user"===e.role){let t=r(e.parts);t&&i.push({kind:"user",id:e.id,text:t});continue}let o=n&&e===s;e.parts.forEach((r,n)=>{let s=`${e.id}:${n}`;if("text"===r.type){if(r.content.trim()){let t=o&&n===e.parts.length-1;i.push({kind:"text",id:s,markdown:r.content,isStreaming:t})}return}if("tool-call"!==r.type)return;let p=l.get(r.id),d=r.input,u=r.output??p?.result;a({id:r.id,input:d,result:u,chip:t({name:r.name,input:d,result:u,error:p?.error,isReplyRunning:o})})})}let p=i.at(-1),d=s?.role==="assistant"&&(p?.kind==="text"&&p.isStreaming||p?.kind==="tools");return{items:i,isThinking:n&&!d}};
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`}]);
@@ -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,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})};