@salsita-ai/sdk 0.50.0-develop.c4848d224b → 0.50.0-develop.d08a6c0e83

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 (534) hide show
  1. package/README.md +1 -1
  2. package/dist/application/index.d.ts +1 -0
  3. package/dist/application/index.js +1 -1
  4. package/dist/application/mount-application.d.ts +1 -1
  5. package/dist/application/mount-application.js +1 -1
  6. package/dist/application/mount-configurator.d.ts +19 -0
  7. package/dist/application/mount-configurator.js +1 -0
  8. package/dist/application/mounted-application-runtime.d.ts +4 -0
  9. package/dist/application/mounted-application-runtime.js +1 -0
  10. package/dist/application/register-web-component.d.ts +2 -0
  11. package/dist/application/register-web-component.js +1 -0
  12. package/dist/application-spec/errors/diagnostic-codes.d.ts +9 -0
  13. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  14. package/dist/application-spec/errors/diagnostic-messages.d.ts +10 -1
  15. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  16. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  17. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  18. package/dist/application-spec/generate-application/code/templates/application-types.js +6 -6
  19. package/dist/application-spec/generate-application/code/templates/common/doc-comment.d.ts +2 -0
  20. package/dist/application-spec/generate-application/code/templates/common/doc-comment.js +1 -0
  21. package/dist/application-spec/generate-application/code/templates/configurator-globals.d.ts +2 -1
  22. package/dist/application-spec/generate-application/code/templates/configurator-globals.js +19 -6
  23. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.js +7 -7
  24. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.d.ts +12 -0
  25. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.js +7 -0
  26. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +24 -22
  27. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
  28. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  29. package/dist/application-spec/generate-application/code/templates/index.d.ts +2 -6
  30. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  31. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.d.ts +10 -0
  32. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.js +7 -0
  33. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  34. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +13 -6
  35. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -2
  36. package/dist/application-spec/generate-application/implementations/phx-application-types.d.ts +25 -0
  37. package/dist/application-spec/generate-application/implementations/phx-application-types.js +1 -0
  38. package/dist/application-spec/generate-application/implementations/phx-domain.d.ts +36 -0
  39. package/dist/application-spec/generate-application/implementations/phx-domain.js +1 -0
  40. package/dist/application-spec/generate-application/implementations/phx-model.d.ts +24 -0
  41. package/dist/application-spec/generate-application/implementations/phx-model.js +1 -0
  42. package/dist/application-spec/generate-application/implementations/phx.d.ts +22 -0
  43. package/dist/application-spec/generate-application/implementations/phx.js +1 -0
  44. package/dist/application-spec/generate-application/index.d.ts +2 -0
  45. package/dist/application-spec/generate-application/index.js +1 -1
  46. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +3 -3
  47. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +7 -4
  48. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  49. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.d.ts +16 -0
  50. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.js +1 -0
  51. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +17 -4
  52. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  53. package/dist/application-spec/generate-application/runtime/application-spec-slice.d.ts +71 -0
  54. package/dist/application-spec/generate-application/runtime/application-spec-slice.js +1 -0
  55. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +3 -3
  56. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +7 -5
  57. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  58. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.d.ts +16 -0
  59. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.js +1 -0
  60. package/dist/application-spec/generate-application/runtime/create-application.d.ts +57 -0
  61. package/dist/application-spec/generate-application/runtime/create-application.js +1 -0
  62. package/dist/application-spec/generate-application/runtime/index.d.ts +8 -0
  63. package/dist/application-spec/generate-application/runtime/index.js +1 -0
  64. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +9 -3
  65. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  66. package/dist/application-spec/generate-application/runtime/spec-runtime.d.ts +21 -0
  67. package/dist/application-spec/generate-application/runtime/spec-runtime.js +1 -0
  68. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +3 -2
  69. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +44 -9
  70. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -1
  71. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +33 -3
  72. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  73. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.d.ts +9 -0
  74. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.js +1 -0
  75. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +4 -1
  76. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  77. package/dist/client/authorized-client.d.ts +3 -1
  78. package/dist/client/authorized-client.js +1 -1
  79. package/dist/client/contract.d.ts +17 -0
  80. package/dist/client/index.d.ts +1 -1
  81. package/dist/client/local-authorized-client.d.ts +3 -1
  82. package/dist/client/local-authorized-client.js +1 -1
  83. package/dist/client/memory-authorized-client.d.ts +4 -1
  84. package/dist/client/memory-authorized-client.js +1 -1
  85. package/dist/client/phoenix-api.d.ts +228 -0
  86. package/dist/configurator/ConfiguratorApp.js +1 -1
  87. package/dist/configurator/app-loader-content/index.d.ts +0 -1
  88. package/dist/configurator/app-loader-content/index.js +1 -1
  89. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  90. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +17 -3
  91. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  92. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +34 -7
  93. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  94. package/dist/configurator/application-runtime/extensions/systems/canvas-system.d.ts +8 -0
  95. package/dist/configurator/application-runtime/extensions/systems/canvas-system.js +1 -1
  96. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.d.ts +8 -0
  97. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.js +1 -0
  98. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.d.ts +23 -1
  99. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.js +1 -1
  100. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +14 -1
  101. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  102. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +51 -4
  103. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  104. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.d.ts +14 -5
  105. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.js +1 -1
  106. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  107. package/dist/configurator/common/configurator-interface.d.ts +14 -6
  108. package/dist/configurator/common/configurator-interface.js +1 -1
  109. package/dist/configurator/configuration-not-found-page/BuiltInConfigurationNotFoundPage.d.ts +5 -0
  110. package/dist/configurator/configuration-not-found-page/BuiltInConfigurationNotFoundPage.js +1 -0
  111. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +0 -6
  112. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -1
  113. package/dist/configurator/configuration-not-found-page/index.d.ts +2 -2
  114. package/dist/configurator/configuration-not-found-page/index.js +1 -1
  115. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +3 -3
  116. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -1
  117. package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
  118. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +4 -0
  119. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +1 -1
  120. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.d.ts +3 -3
  121. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.js +1 -1
  122. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.d.ts +0 -5
  123. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.js +1 -1
  124. package/dist/configurator/configurator-error-page/index.d.ts +1 -2
  125. package/dist/configurator/configurator-error-page/index.js +1 -1
  126. package/dist/configurator/index.d.ts +9 -2
  127. package/dist/configurator/index.js +1 -1
  128. package/dist/configurator/pages/default-configurator-elements.js +1 -1
  129. package/dist/configurator/pages/error-boundaries/LoadingErrorBoundary.js +1 -1
  130. package/dist/configurator/toolbar-actions/index.d.ts +1 -0
  131. package/dist/configurator/toolbar-actions/index.js +1 -1
  132. package/dist/configurator/toolbar-actions/use-toolbar-actions.d.ts +100 -0
  133. package/dist/configurator/toolbar-actions/use-toolbar-actions.js +1 -0
  134. package/dist/configurator/toolbar-actions/use-toolbar-help.d.ts +7 -0
  135. package/dist/configurator/toolbar-actions/use-toolbar-help.js +1 -0
  136. package/dist/configurator/ui/assistant/AssistantChips.d.ts +3 -2
  137. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  138. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +1 -1
  139. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  140. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +8 -0
  141. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -0
  142. package/dist/configurator/ui/assistant/alert/index.d.ts +2 -0
  143. package/dist/configurator/ui/assistant/alert/index.js +1 -0
  144. package/dist/configurator/ui/assistant/alert/remark-alerts.d.ts +10 -0
  145. package/dist/configurator/ui/assistant/alert/remark-alerts.js +1 -0
  146. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -1
  147. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +1 -1
  148. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -1
  149. package/dist/configurator/ui/assistant/form/form-model.d.ts +3 -4
  150. package/dist/configurator/ui/assistant/form/form-state.d.ts +1 -1
  151. package/dist/configurator/ui/assistant/form/index.d.ts +2 -0
  152. package/dist/configurator/ui/assistant/form/index.js +1 -1
  153. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +3 -2
  154. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -1
  155. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +1 -1
  156. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -1
  157. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +3 -0
  158. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.js +1 -0
  159. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.d.ts +31 -0
  160. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.js +1 -0
  161. package/dist/configurator/ui/assistant/form/{form-element-definition.d.ts → registry/form-element-definition.d.ts} +3 -1
  162. package/dist/configurator/ui/assistant/form/registry/form-element-definition.js +1 -0
  163. package/dist/configurator/ui/assistant/form/{form-registry.d.ts → registry/form-registry.d.ts} +2 -2
  164. package/dist/configurator/ui/assistant/form/registry/form-registry.js +1 -0
  165. package/dist/configurator/ui/assistant/form/registry/index.d.ts +6 -0
  166. package/dist/configurator/ui/assistant/form/registry/index.js +1 -0
  167. package/dist/configurator/ui/assistant/form/registry/use-form-registry.d.ts +8 -0
  168. package/dist/configurator/ui/assistant/form/registry/use-form-registry.js +1 -0
  169. package/dist/configurator/ui/assistant/form-elements/FormCard.d.ts +9 -0
  170. package/dist/configurator/ui/assistant/form-elements/FormCard.js +1 -0
  171. package/dist/configurator/ui/assistant/form-elements/FormConfirm.d.ts +9 -0
  172. package/dist/configurator/ui/assistant/form-elements/FormConfirm.js +1 -0
  173. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +4 -1
  174. package/dist/configurator/ui/assistant/form-elements/FormNumber.d.ts +9 -0
  175. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -0
  176. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +4 -1
  177. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +4 -1
  178. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -1
  179. package/dist/configurator/ui/assistant/form-elements/FormSwatch.d.ts +10 -0
  180. package/dist/configurator/ui/assistant/form-elements/FormSwatch.js +1 -0
  181. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +4 -1
  182. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -1
  183. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.d.ts +10 -0
  184. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.js +1 -0
  185. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +20 -16
  186. package/dist/configurator/ui/assistant/form-elements/index.d.ts +4 -0
  187. package/dist/configurator/ui/assistant/form-elements/index.js +1 -1
  188. package/dist/configurator/ui/assistant/index.d.ts +3 -0
  189. package/dist/configurator/ui/assistant/index.js +1 -1
  190. package/dist/configurator/ui/assistant/resource-image/index.d.ts +1 -1
  191. package/dist/configurator/ui/assistant/resource-image/index.js +1 -1
  192. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +0 -9
  193. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -1
  194. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +9 -0
  195. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -0
  196. package/dist/configurator/ui/assistant/screenshots/index.d.ts +2 -0
  197. package/dist/configurator/ui/assistant/screenshots/index.js +1 -0
  198. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +22 -0
  199. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -0
  200. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.d.ts +8 -0
  201. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.js +1 -0
  202. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +2 -2
  203. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  204. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  205. package/dist/configurator/ui/configurator-layout/slots/canvas/LayoutCanvas.js +1 -1
  206. package/dist/configurator/ui/configurator-layout/slots/canvas/SharedCanvas.js +1 -1
  207. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.d.ts +5 -0
  208. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.js +1 -0
  209. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  210. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -1
  211. package/dist/configurator/ui/index.d.ts +1 -0
  212. package/dist/configurator/ui/index.js +1 -1
  213. package/dist/configurator/ui/legacy/layout/common/ReactiveInterfaceLayout.js +1 -1
  214. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.d.ts +0 -7
  215. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.js +2 -2
  216. package/dist/configurator/ui/phoenix-layout-elements/index.d.ts +8 -1
  217. package/dist/configurator/ui/phoenix-layout-elements/index.js +1 -1
  218. package/dist/configurator/ui/preset-layout/PresetUi.d.ts +0 -2
  219. package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
  220. package/dist/configurator/ui/preset-layout/index.d.ts +6 -1
  221. package/dist/configurator/ui/preset-layout/index.js +1 -1
  222. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -1
  223. package/dist/docs/index.json +95 -1
  224. package/dist/docs/integrations/webcomponent-api/basics.mdx +2 -0
  225. package/dist/docs/layouts/custom-layout.mdx +318 -158
  226. package/dist/docs/layouts/gallery/ardent-compressor.mdx +3516 -0
  227. package/dist/docs/layouts/gallery/corvid-drone.mdx +3428 -0
  228. package/dist/docs/layouts/gallery/fenwick-window.mdx +2803 -0
  229. package/dist/docs/layouts/gallery/ferrule-bar-station.mdx +6567 -0
  230. package/dist/docs/layouts/gallery/kestrel-kettle.mdx +1858 -0
  231. package/dist/docs/layouts/gallery/nightjar-guitar.mdx +3698 -0
  232. package/dist/docs/layouts/gallery/sunfold-solar.mdx +2683 -0
  233. package/dist/docs/layouts/gallery/tidepool-aquascape.mdx +5203 -0
  234. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  235. package/dist/docs/phoenix/configurator-interface.mdx +16 -13
  236. package/dist/docs/phoenix/domain-model.mdx +4 -1
  237. package/dist/docs/phoenix/phoenix-cli.mdx +14 -6
  238. package/dist/docs/phoenix/project-structure.mdx +21 -17
  239. package/dist/docs/phoenix/sdk-builder-workflow.mdx +7 -5
  240. package/dist/docs/phoenix/sessions-and-access.mdx +2 -0
  241. package/dist/domain/application/assistant/assistant-manifest.d.ts +16 -1
  242. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +8 -1
  243. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  244. package/dist/domain/application/assistant/form/assistant-form-element-name.d.ts +11 -0
  245. package/dist/domain/application/assistant/form/assistant-form-element-name.js +8 -0
  246. package/dist/domain/application/assistant/form/assistant-form-elements.d.ts +174 -0
  247. package/dist/domain/application/assistant/form/assistant-form-elements.js +1 -0
  248. package/dist/domain/application/assistant/form/assistant-resource-path.d.ts +10 -0
  249. package/dist/domain/application/assistant/form/assistant-resource-path.js +1 -0
  250. package/dist/domain/application/assistant/form/index.d.ts +4 -0
  251. package/dist/domain/application/assistant/form/index.js +1 -0
  252. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  253. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  254. package/dist/domain/application/assistant/index.d.ts +2 -3
  255. package/dist/domain/application/assistant/index.js +1 -1
  256. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
  257. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +2 -0
  258. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
  259. package/dist/domain/application/configurator-builder.d.ts +7 -1
  260. package/dist/domain/application/configurator-builder.js +1 -1
  261. package/dist/domain/application/index.d.ts +1 -1
  262. package/dist/domain/application/index.js +1 -1
  263. package/dist/domain/application/standard-properties.js +1 -1
  264. package/dist/domain/application/web-component-property.d.ts +3 -1
  265. package/dist/domain/application/web-component-property.js +1 -1
  266. package/dist/domain/available-system-components.d.ts +1 -1
  267. package/dist/domain/available-system-components.js +1 -1
  268. package/dist/domain/domain-builder.d.ts +9 -3
  269. package/dist/domain/domain-builder.js +1 -1
  270. package/dist/domain/domain-context/store-system/store-system.d.ts +5 -0
  271. package/dist/domain/domain-context/store-system/store-system.js +1 -1
  272. package/dist/domain/domain-runtime/application.d.ts +39 -0
  273. package/dist/domain/domain-runtime/application.js +1 -0
  274. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +1 -0
  275. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  276. package/dist/domain/domain-runtime/domain-runtime.d.ts +44 -4
  277. package/dist/domain/domain-runtime/domain-runtime.js +1 -1
  278. package/dist/domain/domain-runtime/environment/initialize.d.ts +1 -1
  279. package/dist/domain/domain-runtime/environment/types.d.ts +1 -1
  280. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +2 -0
  281. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -1
  282. package/dist/domain/domain-runtime/index.d.ts +2 -1
  283. package/dist/domain/domain-runtime/index.js +1 -1
  284. package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
  285. package/dist/domain/domain-runtime/spec/index.js +1 -1
  286. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  287. package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +15 -1
  288. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -1
  289. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.d.ts +12 -0
  290. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +1 -0
  291. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +3 -1
  292. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -1
  293. package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.d.ts +23 -0
  294. package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.js +1 -0
  295. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +3 -4
  296. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -1
  297. package/dist/domain/domain-runtime/spec/selectors.d.ts +3 -1
  298. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  299. package/dist/domain/domain-runtime/web-component/actions.d.ts +3 -0
  300. package/dist/domain/domain-runtime/web-component/actions.js +1 -1
  301. package/dist/domain/domain-runtime/web-component/initialize.d.ts +1 -0
  302. package/dist/domain/domain-runtime/web-component/initialize.js +1 -1
  303. package/dist/domain/domain-runtime/web-component/selectors.d.ts +2 -0
  304. package/dist/domain/domain-runtime/web-component/selectors.js +1 -1
  305. package/dist/domain/domain-runtime/web-component/types.d.ts +6 -3
  306. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +24 -0
  307. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -0
  308. package/dist/domain/extensions/{client-side-image.d.ts → export-images/client-side-image.d.ts} +2 -2
  309. package/dist/domain/extensions/export-images/client-side-image.js +1 -0
  310. package/dist/domain/extensions/export-images/index.d.ts +3 -0
  311. package/dist/domain/extensions/export-images/index.js +1 -0
  312. package/dist/domain/extensions/{save-template-thumbnail.d.ts → export-images/save-template-thumbnail.d.ts} +2 -2
  313. package/dist/domain/extensions/export-images/save-template-thumbnail.js +1 -0
  314. package/dist/domain/extensions/index.d.ts +1 -2
  315. package/dist/domain/extensions/index.js +1 -1
  316. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +9 -0
  317. package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
  318. package/dist/editor/domain-editors/apply-spec-update.d.ts +10 -2
  319. package/dist/editor/domain-editors/apply-spec-update.js +1 -1
  320. package/dist/editor/domain-editors/use-implementation-files.d.ts +6 -14
  321. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  322. package/dist/editor/screenshot/ScreenshotHandler.js +1 -1
  323. package/dist/i18n/locales/cs/messages.js +1 -1
  324. package/dist/i18n/locales/da/messages.js +1 -1
  325. package/dist/i18n/locales/de/messages.js +1 -1
  326. package/dist/i18n/locales/de-AT/messages.js +1 -1
  327. package/dist/i18n/locales/en/messages.js +1 -1
  328. package/dist/i18n/locales/en-AU/messages.js +1 -1
  329. package/dist/i18n/locales/en-GB/messages.js +1 -1
  330. package/dist/i18n/locales/es/messages.js +1 -1
  331. package/dist/i18n/locales/fr/messages.js +1 -1
  332. package/dist/i18n/locales/hu/messages.js +1 -1
  333. package/dist/i18n/locales/it/messages.js +1 -1
  334. package/dist/i18n/locales/nl/messages.js +1 -1
  335. package/dist/i18n/locales/pl/messages.js +1 -1
  336. package/dist/i18n/locales/pt/messages.js +1 -1
  337. package/dist/i18n/locales/ro/messages.js +1 -1
  338. package/dist/i18n/locales/sk/messages.js +1 -1
  339. package/dist/i18n/locales/tr/messages.js +1 -1
  340. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  341. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  342. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +16 -0
  343. package/dist/legacy/domain-spec/spec/domain-spec.js +1 -1
  344. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  345. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  346. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  347. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +11 -5
  348. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  349. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +11 -0
  350. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  351. package/dist/phoenix/cli.js +1 -1
  352. package/dist/phoenix/commands/deploy.js +1 -1
  353. package/dist/phoenix/commands/dev.js +5 -5
  354. package/dist/phoenix/commands/generated-env-markers.d.ts +1 -0
  355. package/dist/phoenix/commands/generated-env-markers.js +1 -1
  356. package/dist/phoenix/commands/index.d.ts +1 -1
  357. package/dist/phoenix/commands/index.js +1 -1
  358. package/dist/phoenix/services/application-spec-project-watcher.d.ts +3 -1
  359. package/dist/phoenix/services/application-spec-project-watcher.js +2 -2
  360. package/dist/phoenix/services/index.d.ts +1 -0
  361. package/dist/phoenix/services/index.js +1 -1
  362. package/dist/phoenix/services/lingui.d.ts +5 -2
  363. package/dist/phoenix/services/lingui.js +1 -1
  364. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  365. package/dist/react-sdk/application-runtime/common-services/analytics/analytics-service.d.ts +1 -1
  366. package/dist/react-sdk/application-runtime/common-services/initialize.d.ts +2 -2
  367. package/dist/react-sdk/application-runtime/hooks/index.d.ts +2 -0
  368. package/dist/react-sdk/application-runtime/hooks/index.js +1 -1
  369. package/dist/react-sdk/application-runtime/hooks/loading/index.d.ts +5 -0
  370. package/dist/react-sdk/application-runtime/hooks/loading/index.js +1 -0
  371. package/dist/react-sdk/application-runtime/hooks/loading/loader-host-context.d.ts +11 -0
  372. package/dist/react-sdk/application-runtime/hooks/loading/loader-host-context.js +1 -0
  373. package/dist/react-sdk/application-runtime/hooks/loading/use-is-awaiting-loading-phase.d.ts +8 -0
  374. package/dist/react-sdk/application-runtime/hooks/loading/use-is-awaiting-loading-phase.js +1 -0
  375. package/dist/react-sdk/application-runtime/hooks/loading/use-is-loader-hosted.d.ts +7 -0
  376. package/dist/react-sdk/application-runtime/hooks/loading/use-is-loader-hosted.js +1 -0
  377. package/dist/react-sdk/application-runtime/hooks/loading/use-loading-actions.d.ts +9 -0
  378. package/dist/react-sdk/application-runtime/hooks/loading/use-loading-actions.js +1 -0
  379. package/dist/react-sdk/application-runtime/hooks/loading/use-loading-application.d.ts +24 -0
  380. package/dist/react-sdk/application-runtime/hooks/loading/use-loading-application.js +1 -0
  381. package/dist/react-sdk/application-runtime/hooks/responsive/index.d.ts +3 -0
  382. package/dist/react-sdk/application-runtime/hooks/responsive/index.js +1 -0
  383. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.d.ts +9 -0
  384. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.js +1 -0
  385. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.d.ts +26 -0
  386. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.js +1 -0
  387. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.d.ts +10 -0
  388. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.js +1 -0
  389. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.d.ts +24 -0
  390. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.js +1 -0
  391. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +5 -0
  392. package/dist/react-sdk/application-runtime/hooks/use-access-service.js +1 -1
  393. package/dist/react-sdk/application-runtime/hooks/use-phoenix-element-slots.d.ts +2 -1
  394. package/dist/react-sdk/application-runtime/hooks/use-web-component-readonly-sync.d.ts +4 -11
  395. package/dist/react-sdk/application-runtime/hooks/use-web-component-readonly-sync.js +1 -1
  396. package/dist/react-sdk/application-runtime/hooks/use-web-component.d.ts +5 -0
  397. package/dist/react-sdk/application-runtime/hooks/use-web-component.js +1 -1
  398. package/dist/react-sdk/application-runtime/host-properties/actions.d.ts +15 -0
  399. package/dist/react-sdk/application-runtime/host-properties/actions.js +1 -0
  400. package/dist/react-sdk/application-runtime/host-properties/connect-host-properties.d.ts +30 -0
  401. package/dist/react-sdk/application-runtime/host-properties/connect-host-properties.js +1 -0
  402. package/dist/react-sdk/application-runtime/host-properties/domain-host-properties.d.ts +7 -0
  403. package/dist/react-sdk/application-runtime/host-properties/domain-host-properties.js +1 -0
  404. package/dist/react-sdk/application-runtime/host-properties/host-property-descriptors.d.ts +21 -0
  405. package/dist/react-sdk/application-runtime/host-properties/host-property-descriptors.js +1 -0
  406. package/dist/react-sdk/application-runtime/host-properties/host-property-scopes.d.ts +42 -0
  407. package/dist/react-sdk/application-runtime/host-properties/host-property-scopes.js +1 -0
  408. package/dist/react-sdk/application-runtime/host-properties/index.d.ts +8 -0
  409. package/dist/react-sdk/application-runtime/host-properties/index.js +1 -0
  410. package/dist/react-sdk/application-runtime/host-properties/initialize.d.ts +7 -0
  411. package/dist/react-sdk/application-runtime/host-properties/initialize.js +1 -0
  412. package/dist/react-sdk/application-runtime/host-properties/selectors.d.ts +54 -0
  413. package/dist/react-sdk/application-runtime/host-properties/selectors.js +1 -0
  414. package/dist/react-sdk/application-runtime/host-properties/types.d.ts +18 -0
  415. package/dist/react-sdk/application-runtime/index.d.ts +3 -0
  416. package/dist/react-sdk/application-runtime/integration/initialize.d.ts +7 -6
  417. package/dist/react-sdk/application-runtime/integration/initialize.js +1 -1
  418. package/dist/react-sdk/application-runtime/integration/selectors.d.ts +11 -2
  419. package/dist/react-sdk/application-runtime/integration/selectors.js +1 -1
  420. package/dist/react-sdk/application-runtime/integration/types.d.ts +5 -2
  421. package/dist/react-sdk/application-runtime/loading/actions.d.ts +45 -0
  422. package/dist/react-sdk/application-runtime/loading/actions.js +1 -0
  423. package/dist/react-sdk/application-runtime/loading/index.d.ts +4 -0
  424. package/dist/react-sdk/application-runtime/loading/index.js +1 -0
  425. package/dist/react-sdk/application-runtime/loading/initialize.d.ts +3 -0
  426. package/dist/react-sdk/application-runtime/loading/initialize.js +1 -0
  427. package/dist/react-sdk/application-runtime/loading/selectors.d.ts +18 -0
  428. package/dist/react-sdk/application-runtime/loading/selectors.js +1 -0
  429. package/dist/react-sdk/application-runtime/loading/types.d.ts +59 -0
  430. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  431. package/dist/react-sdk/application-runtime/provider/ApplicationRuntime.d.ts +6 -0
  432. package/dist/react-sdk/application-runtime/provider/ApplicationRuntime.js +1 -1
  433. package/dist/react-sdk/application-runtime/provider/ApplicationType.d.ts +7 -0
  434. package/dist/react-sdk/application-runtime/provider/ApplicationType.js +1 -1
  435. package/dist/react-sdk/application-runtime/responsive/actions.d.ts +47 -0
  436. package/dist/react-sdk/application-runtime/responsive/actions.js +1 -0
  437. package/dist/react-sdk/application-runtime/responsive/index.d.ts +4 -0
  438. package/dist/react-sdk/application-runtime/responsive/index.js +1 -0
  439. package/dist/react-sdk/application-runtime/responsive/initialize.d.ts +3 -0
  440. package/dist/react-sdk/application-runtime/responsive/initialize.js +1 -0
  441. package/dist/react-sdk/application-runtime/responsive/selectors.d.ts +20 -0
  442. package/dist/react-sdk/application-runtime/responsive/selectors.js +1 -0
  443. package/dist/react-sdk/application-runtime/responsive/types.d.ts +104 -0
  444. package/dist/react-sdk/application-runtime/routing/routing-service.d.ts +34 -2
  445. package/dist/react-sdk/application-runtime/routing/routing-service.js +1 -1
  446. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +313 -10
  447. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  448. package/dist/react-sdk/domain-application-context/BackendDataProvider.js +1 -1
  449. package/dist/react-sdk/domain-application-context/FrontendDataProvider.js +1 -1
  450. package/dist/react-sdk/domain-application-context/PublishedDataProvider.js +1 -1
  451. package/dist/react-sdk/domain-context/common-hooks/index.d.ts +1 -0
  452. package/dist/react-sdk/domain-context/common-hooks/index.js +1 -1
  453. package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.d.ts +23 -0
  454. package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.js +1 -0
  455. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +1 -0
  456. package/dist/react-sdk/domain-context/index.d.ts +1 -0
  457. package/dist/react-sdk/domain-context/index.js +1 -1
  458. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -1
  459. package/dist/react-sdk/elements/index.d.ts +0 -1
  460. package/dist/react-sdk/index.d.ts +1 -1
  461. package/dist/react-sdk/index.js +1 -1
  462. package/dist/react-sdk/loading-state/LoaderHost.d.ts +20 -0
  463. package/dist/react-sdk/loading-state/LoaderHost.js +1 -0
  464. package/dist/react-sdk/loading-state/built-in-loading-phase.d.ts +9 -0
  465. package/dist/react-sdk/loading-state/built-in-loading-phase.js +1 -0
  466. package/dist/react-sdk/loading-state/create-app-loader.d.ts +18 -0
  467. package/dist/react-sdk/loading-state/create-app-loader.js +1 -0
  468. package/dist/react-sdk/loading-state/index.d.ts +4 -2
  469. package/dist/react-sdk/loading-state/index.js +1 -1
  470. package/dist/react-sdk/loading-state/{LoadingStateProvider.d.ts → loading-state-hooks.d.ts} +3 -12
  471. package/dist/react-sdk/loading-state/loading-state-hooks.js +1 -0
  472. package/dist/react-sdk/page-elements/ConfigurationNotFoundPagePropsProvider.d.ts +17 -0
  473. package/dist/react-sdk/page-elements/ConfigurationNotFoundPagePropsProvider.js +1 -0
  474. package/dist/react-sdk/page-elements/ConfiguratorErrorPagePropsProvider.d.ts +17 -0
  475. package/dist/react-sdk/page-elements/ConfiguratorErrorPagePropsProvider.js +1 -0
  476. package/dist/react-sdk/page-elements/configurator-error-page-props.js +1 -0
  477. package/dist/{configurator/configuration-not-found-page → react-sdk/page-elements}/create-configuration-not-found-page.d.ts +7 -1
  478. package/dist/react-sdk/page-elements/create-configuration-not-found-page.js +1 -0
  479. package/dist/{configurator/configurator-error-page → react-sdk/page-elements}/create-configurator-error-page.d.ts +6 -1
  480. package/dist/react-sdk/page-elements/create-configurator-error-page.js +1 -0
  481. package/dist/react-sdk/page-elements/create-preset-ui.d.ts +9 -0
  482. package/dist/react-sdk/page-elements/create-preset-ui.js +1 -0
  483. package/dist/react-sdk/page-elements/index.d.ts +6 -0
  484. package/dist/react-sdk/page-elements/index.js +1 -0
  485. package/dist/react-sdk/session/SessionServiceProvider.js +1 -1
  486. package/dist/react-sdk/web-component/create-web-component.js +1 -1
  487. package/dist/react-sdk/web-component/god-mode/god-mode-registry.d.ts +30 -0
  488. package/dist/react-sdk/web-component/god-mode/god-mode-registry.js +1 -0
  489. package/dist/react-sdk/web-component/god-mode/index.d.ts +1 -0
  490. package/dist/react-sdk/web-component/god-mode/index.js +1 -0
  491. package/dist/ui-sdk/icons/__generated/Lightbulb.d.ts +3 -0
  492. package/dist/ui-sdk/icons/__generated/Lightbulb.js +1 -0
  493. package/dist/ui-sdk/icons/__generated/XCircle.d.ts +3 -0
  494. package/dist/ui-sdk/icons/__generated/XCircle.js +1 -0
  495. package/dist/ui-sdk/icons/__generated/index.d.ts +4 -0
  496. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  497. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  498. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +2 -2
  499. package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +11 -9
  500. package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -1
  501. package/dist/ui-sdk/theme/types.d.ts +5 -1
  502. package/package.json +13 -3
  503. package/schema/domain-spec.json +140 -0
  504. package/dist/configurator/app-loader-content/app-loader-content-name.d.ts +0 -5
  505. package/dist/configurator/app-loader-content/app-loader-content-name.js +0 -1
  506. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.js +0 -1
  507. package/dist/configurator/configurator-error-page/create-configurator-error-page.js +0 -1
  508. package/dist/configurator/ui/assistant/form/built-in-form-registry.d.ts +0 -10
  509. package/dist/configurator/ui/assistant/form/built-in-form-registry.js +0 -1
  510. package/dist/configurator/ui/assistant/form/form-registry.js +0 -8
  511. package/dist/domain/application/assistant/assistant-form-elements.d.ts +0 -28
  512. package/dist/domain/application/assistant/assistant-form-elements.js +0 -1
  513. package/dist/domain/extensions/client-side-image.js +0 -1
  514. package/dist/domain/extensions/save-template-thumbnail.js +0 -1
  515. package/dist/react-sdk/application-runtime/runtime/god-mode.d.ts +0 -19
  516. package/dist/react-sdk/application-runtime/runtime/god-mode.js +0 -1
  517. package/dist/react-sdk/loading-state/LoadingStateProvider.js +0 -1
  518. package/dist/react-sdk/loading-state/loading-state-manager.d.ts +0 -37
  519. package/dist/react-sdk/loading-state/loading-state-manager.js +0 -1
  520. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.d.ts +0 -25
  521. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.js +0 -1
  522. package/dist/react-sdk/responsive-state/canvas-padding.d.ts +0 -14
  523. package/dist/react-sdk/responsive-state/index.d.ts +0 -5
  524. package/dist/react-sdk/responsive-state/index.js +0 -1
  525. package/dist/react-sdk/responsive-state/responsive-state-manager.d.ts +0 -111
  526. package/dist/react-sdk/responsive-state/responsive-state-manager.js +0 -1
  527. package/dist/react-sdk/responsive-state/use-responsive-state-manager.d.ts +0 -10
  528. package/dist/react-sdk/responsive-state/use-responsive-state-manager.js +0 -1
  529. package/dist/react-sdk/responsive-state/use-responsive-state.d.ts +0 -11
  530. package/dist/react-sdk/responsive-state/use-responsive-state.js +0 -1
  531. /package/dist/{configurator/ui/assistant/form/form-element-definition.js → react-sdk/application-runtime/host-properties/types.js} +0 -0
  532. /package/dist/react-sdk/{elements/configurator-error-page-props.js → application-runtime/loading/types.js} +0 -0
  533. /package/dist/react-sdk/{responsive-state/canvas-padding.js → application-runtime/responsive/types.js} +0 -0
  534. /package/dist/react-sdk/{elements → page-elements}/configurator-error-page-props.d.ts +0 -0
@@ -0,0 +1,9 @@
1
+ import type { AssistantToolScreenshot } from './tool-screenshots.js';
2
+ interface ScreenshotThumbnailsProps {
3
+ readonly screenshots: readonly AssistantToolScreenshot[];
4
+ /** Called once a picture has loaded, which changes the size of the popover. */
5
+ readonly onImageLoad: () => void;
6
+ }
7
+ /** The pictures of a tool call's screenshots. */
8
+ export declare const ScreenshotThumbnails: ({ screenshots, onImageLoad }: ScreenshotThumbnailsProps) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1 @@
1
+ import{jsx as e}from"react/jsx-runtime";import{styled as o}from"@mui/material";import{AssistantPanelName as r}from"../theme.js";import{useScreenshotSrc as a}from"./use-screenshot-src.js";let i=o("span",{name:r,slot:"screenshots",shouldForwardProp:e=>"columns"!==e})(({columns:e,theme:{palette:o,shape:r,shadows:a,spacing:i}})=>({background:o.background.paper,borderRadius:r.borderRadius,boxShadow:a[4],display:"grid",gap:i(1.5),gridTemplateColumns:`repeat(${e}, minmax(0, 200px))`,maxInlineSize:"80vw",padding:i(1.5)})),s=o("img")(({theme:{palette:e,shape:o}})=>({blockSize:"auto",borderRadius:o.borderRadius/2,boxShadow:`inset 0 0 0 1px ${e.divider}`,display:"block",inlineSize:"100%"})),d=o("span")(({theme:{palette:e,shape:o}})=>({aspectRatio:"4 / 3",background:e.action.hover,borderRadius:o.borderRadius/2,display:"block"})),t=({picture:o,onImageLoad:r})=>{let i=a(o);return void 0===i?e(d,{}):e(s,{src:i,alt:"",onLoad:r})};export const ScreenshotThumbnails=({screenshots:o,onImageLoad:r})=>e(i,{columns:Math.min(o.length,2),children:o.map(({label:o,picture:a})=>e(t,{picture:a,onImageLoad:r},o))});
@@ -0,0 +1,2 @@
1
+ export { ScreenshotThumbnails } from './ScreenshotThumbnails.js';
2
+ export { type AssistantToolScreenshot, readToolScreenshots } from './tool-screenshots.js';
@@ -0,0 +1 @@
1
+ export{ScreenshotThumbnails}from"./ScreenshotThumbnails.js";export{readToolScreenshots}from"./tool-screenshots.js";
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Where the panel gets a screenshot's picture from: the server, by the id the browser uploaded it
3
+ * under, or the data URL of a picture a thread from before the upload carries inline.
4
+ */
5
+ export type AssistantScreenshotPicture = {
6
+ readonly kind: 'stored';
7
+ readonly imageId: string;
8
+ } | {
9
+ readonly kind: 'inline';
10
+ readonly src: string;
11
+ };
12
+ /** A screenshot a `query` or `apply` call took, as the panel shows it. */
13
+ export interface AssistantToolScreenshot {
14
+ /** The label the call's `image` field returned, such as `Cabinet-2/doorLayout#2`. */
15
+ readonly label: string;
16
+ readonly picture: AssistantScreenshotPicture;
17
+ }
18
+ /**
19
+ * The screenshots of a tool result: the image parts that follow the result's JSON, each after the
20
+ * text part with its label. A result without them, such as plain JSON or an error, has none.
21
+ */
22
+ export declare const readToolScreenshots: (result: unknown) => readonly AssistantToolScreenshot[];
@@ -0,0 +1 @@
1
+ import{z as t}from"zod";import{readAssistantImageReference as e}from"@salsita-ai/contracts/assistant";let a=t.object({type:t.literal("text"),content:t.string()}),r=t.object({type:t.literal("image"),source:t.discriminatedUnion("type",[t.object({type:t.literal("url"),value:t.string()}),t.object({type:t.literal("data"),value:t.string(),mimeType:t.string()})])}),s=/^[^/]+\/[^#]+(?:#\d+)?$/;export const readToolScreenshots=t=>Array.isArray(t)?t.slice(1).flatMap((t,l,i)=>{let n=r.safeParse(t),o=a.safeParse(i[l-1]),c=n.success?(({source:t})=>{if("data"===t.type)return{kind:"inline",src:`data:${t.mimeType};base64,${t.value}`};let a=e(t.value);return null===a?null:{kind:"stored",imageId:a}})(n.data):null;return c&&o.success&&s.test(o.data.content)?[{label:o.data.content,picture:c}]:[]}):[];
@@ -0,0 +1,8 @@
1
+ import type { AssistantScreenshotPicture } from './tool-screenshots.js';
2
+ /**
3
+ * The `src` of a screenshot's picture: the data URL of an inline one at once, and for an uploaded
4
+ * one the object URL the assistant system reads it into, once it has been read; `undefined` until
5
+ * then and when the read fails. Only the open popover of a call's screenshots calls it, so nothing
6
+ * is read while the popover is closed.
7
+ */
8
+ export declare const useScreenshotSrc: (picture: AssistantScreenshotPicture) => string | undefined;
@@ -0,0 +1 @@
1
+ import{useEffect as r,useState as e}from"react";import{useConfigurator as n}from"../../../application-runtime/index.js";export const useScreenshotSrc=t=>{let{assistantSystem:i}=n(),o="stored"===t.kind?t.imageId:null,[l,d]=e();return(r(()=>{if(null===o)return;let r=!0;return i.loadScreenshotUrl(o).then(e=>{r&&d({imageId:o,src:e})},()=>void 0),()=>{r=!1}},[i,o]),"inline"===t.kind)?t.src:l?.imageId===o?l.src:void 0};
@@ -2,7 +2,7 @@
2
2
  export declare const hasOpenFence: (text: string) => boolean;
3
3
  /**
4
4
  * Makes the Markdown of a reply that is still streaming renderable as it stands, so half-written
5
- * markup does not flash as raw characters: an open code fence is closed, an inline code span, a link
6
- * or a table header the model has not finished is held back, and open bold text is closed.
5
+ * markup does not flash as raw characters: an open code fence is closed, an inline code span, a link,
6
+ * an alert marker or a table header the model has not finished is held back, and open bold text is closed.
7
7
  */
8
8
  export declare const completeStreamedMarkdown: (text: string) => string;
@@ -1,2 +1,2 @@
1
- let e=(e,t)=>e.split(t).length-1,t=/^\|?\s*:?-+:?\s*(\|\s*:?-+:?\s*)*\|?\s*$/;export const hasOpenFence=t=>e(t,"```")%2==1;export const completeStreamedMarkdown=n=>{if(hasOpenFence(n))return`${n}
2
- \`\`\``;let l=n.lastIndexOf("```"),s=-1===l?"":n.slice(0,l+3),r=n.slice(s.length),c=(e=>{let n=e.split("\n"),l=n.length;for(;l>0&&n[l-1]?.trimStart().startsWith("|");)l-=1;let s=n.slice(l),r=s[1],c=null!=r&&s.length>2&&t.test(r);return 0===s.length||c?e:n.slice(0,l).join("\n")})((e(r,"`")%2==1?r.slice(0,r.lastIndexOf("`")):r).replace(/!?\[([^\]\n]*)\](?:\([^)\n]*)?$/,"$1").replace(/!?\[[^\]\n]*$/,"")),i=e(c,"**")%2==1?`${c}**`:c;return`${s}${i}`};
1
+ let e=(e,t)=>e.split(t).length-1,t=/^\|?\s*:?-+:?\s*(\|\s*:?-+:?\s*)*\|?\s*$/,l=/(^|\n) {0,3}>[ \t]*\[![a-z]*$/i,n=/(^|\n) {0,3}>[ \t]*\[![a-z]+\][ \t]*$/i;export const hasOpenFence=t=>e(t,"```")%2==1;export const completeStreamedMarkdown=s=>{var r;let a;if(hasOpenFence(s))return`${s}
2
+ \`\`\``;let i=s.lastIndexOf("```"),c=-1===i?"":s.slice(0,i+3),{head:$,marker:h}=(r=s.slice(c.length),null==(a=n.exec(r))?{head:r.replace(l,"$1"),marker:""}:{head:r.slice(0,a.index),marker:r.slice(a.index)}),p=(e=>{let l=e.split("\n"),n=l.length;for(;n>0&&l[n-1]?.trimStart().startsWith("|");)n-=1;let s=l.slice(n),r=s[1],a=null!=r&&s.length>2&&t.test(r);return 0===s.length||a?e:l.slice(0,n).join("\n")})((e($,"`")%2==1?$.slice(0,$.lastIndexOf("`")):$).replace(/!?\[([^\]\n]*)\](?:\([^)\n]*)?$/,"$1").replace(/!?\[[^\]\n]*$/,"")),d=e(p,"**")%2==1?`${p}**`:p;return`${c}${d}${h}`};
@@ -1 +1 @@
1
- import{Kind as e,parse as t}from"graphql";import{z as n}from"zod";import{ASSISTANT_TOOL_ERROR_CODES as r,AssistantToolError as a,applyTool as i,queryTool as o}from"@salsita-ai/contracts/assistant";let l=n.object({operations:n.array(n.object({query:n.string(),operationName:n.string().nullish()}))}),s=n.object({results:n.array(n.object({errors:n.array(n.unknown()).optional()})),committed:n.boolean()});export const describeToolCall=n=>{let d=(({name:n,input:r})=>{let a,s=(a=l.safeParse(r)).success?a.data.operations.flatMap(({query:n,operationName:r})=>r??(n=>{try{let r=t(n).definitions.find(t=>t.kind===e.OPERATION_DEFINITION);return r?.kind===e.OPERATION_DEFINITION?r.name?.value:void 0}catch{return}})(n)??[]):[];return s.length>0?{kind:"text",text:s.join(", ")}:n===i.name?{kind:"updateDesign"}:n===o.name?{kind:"readDesign"}:{kind:"text",text:n}})(n);if(null==n.result&&null==n.error)return{label:d,state:n.isReplyRunning?"running":"done",errorCode:void 0};let u=(e=>{let t=a.safeParse(e);if(t.success)return r.find(e=>e===t.data.code)})(n.result);return{label:d,state:(({name:e,result:t,error:n},r)=>{if(null!=n||null!=r)return e===o.name?"flawed":"failed";if(e!==i.name&&e!==o.name)return"done";let a=s.safeParse(t);if(!a.success)return e===o.name?"flawed":"failed";let{results:l,committed:d}=a.data;return e===i.name?d?"done":"failed":l.some(({errors:e})=>(e?.length??0)>0)||0===l.length?"flawed":"done"})(n,u),errorCode:u}};
1
+ import{Kind as e,parse as t}from"graphql";import{z as n}from"zod";import{ASSISTANT_TOOL_ERROR_CODES as r,AssistantToolError as a,applyTool as s,queryTool as o}from"@salsita-ai/contracts/assistant";let i=n.object({operations:n.array(n.object({query:n.string(),operationName:n.string().nullish()}))}),l=n.object({results:n.array(n.object({errors:n.array(n.unknown()).optional()})),committed:n.boolean()}),u=n.tuple([n.object({type:n.literal("text"),content:n.string()})]).rest(n.unknown());export const describeToolCall=n=>{let d=(({name:n,input:r})=>{let a,l=(a=i.safeParse(r)).success?a.data.operations.flatMap(({query:n,operationName:r})=>r??(n=>{try{let r=t(n).definitions.find(t=>t.kind===e.OPERATION_DEFINITION);return r?.kind===e.OPERATION_DEFINITION?r.name?.value:void 0}catch{return}})(n)??[]):[];return l.length>0?{kind:"text",text:l.join(", ")}:n===s.name?{kind:"updateDesign"}:n===o.name?{kind:"readDesign"}:{kind:"text",text:n}})(n);if(null==n.result&&null==n.error)return{label:d,state:n.isReplyRunning?"running":"done",errorCode:void 0};let c=(e=>{let t=a.safeParse(e);if(t.success)return r.find(e=>e===t.data.code)})(n.result);return{label:d,state:(({name:e,result:t,error:n},r)=>{if(null!=n||null!=r)return e===o.name?"flawed":"failed";if(e!==s.name&&e!==o.name)return"done";let a=l.safeParse((e=>{let t=u.safeParse(e);if(!t.success)return e;try{return JSON.parse(t.data[0].content)}catch{return e}})(t));if(!a.success)return e===o.name?"flawed":"failed";let{results:i,committed:d}=a.data;return e===s.name?d?"done":"failed":i.some(({errors:e})=>(e?.length??0)>0)||0===i.length?"flawed":"done"})(n,c),errorCode:c}};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{Box as a}from"@mui/material";import{useDetectGPU as i}from"@react-three/drei";import{Canvas as o,useThree as n}from"@react-three/fiber";import{memo as s,useCallback as l,useEffect as p,useMemo as c,useState as f}from"react";import{BuiltInLoadingPhase as m,useExpectPhase as d,useLoadingPhase as h,useLoadingStateManager as u,useStoreSelector as g}from"#package/react-sdk";import{useResponsive as x}from"#package/ui-sdk";import{useConfigurator as v}from"../../../../application-runtime/index.js";import{Scene as C,SceneEnvironment as P}from"../../../../scene/index.js";import{CanvasLoader as w}from"../../../phoenix-layout-elements/index.js";import{GPUIssuePage as j}from"./GPUIssuePage.js";let D=e=>{let{onCanNotLoad:t}=e,r=n(e=>e.gl);return p(()=>{let e=r.getContext(),a=e.getExtension("WEBGL_debug_renderer_info");a?e.getParameter(a.UNMASKED_RENDERER_WEBGL).toLocaleLowerCase().includes("swiftshader")&&t?.("no-acceleration"):t?.("no-acceleration")},[r,t]),null};export const Canvas=s(()=>{let[n,s]=f(null),[E,B]=f(!0),{canvasSystem:L}=v(),y=g(e=>L.getCanvasConfig(e.state),[L]),k=i(),{canvasPadding:A}=x(),M=null!==u();d(m.SceneAssets),h({id:m.SceneAssets,label:"Loading 3D scene…"},E);let $=l(()=>{B(!1),L.reportFirstLoadFinished()},[L]),_=l(e=>{L.onCanvasClick$.next(e)},[L]),b=l(e=>{L.onCanvasPointerMove$.next(e)},[L]),I=c(()=>{let e={};return y?.precision&&(e.precision=y.precision),y?.alpha&&(e.alpha=y.alpha),y?.premultipliedAlpha&&(e.premultipliedAlpha=y.premultipliedAlpha),y?.antialias&&(e.antialias=y.antialias),y?.stencil&&(e.stencil=y.stencil),y?.preserveDrawingBuffer&&(e.preserveDrawingBuffer=y.preserveDrawingBuffer),y?.powerPreference&&(e.powerPreference=y.powerPreference),y?.depth&&(e.depth=y.depth),y?.logarithmicDepthBuffer&&(e.logarithmicDepthBuffer=y.logarithmicDepthBuffer),y?.failIfMajorPerformanceCaveat&&(e.failIfMajorPerformanceCaveat=y.failIfMajorPerformanceCaveat),e},[y]);return(p(()=>{"WEBGL_UNSUPPORTED"===k.type&&s("no-gpu")},[k,s]),n)?e(j,{issue:n}):t(r,{children:[e(a,{component:"div",sx:{transition:"opacity 0.3s ease-in",opacity:+!E,width:"100%",height:"100%"},children:t(o,{gl:I,onClick:_,onPointerMove:b,frameloop:y?.frameloop,shadows:y?.shadows,children:[e(C,{onFirstLoad:$}),e(D,{onCanNotLoad:s}),e(P,{})]})}),!M&&e(a,{component:"div",sx:{position:"absolute",top:A.top,left:A.left,width:`calc(100% - ${A.left}px - ${A.right}px)`,height:`calc(100% - ${A.top}px - ${A.bottom}px)`,display:"flex",justifyContent:"center",alignItems:"center",transition:"opacity 0.3s ease-in",opacity:+!!E,pointerEvents:"none"},children:e(w,{})})]})});
1
+ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{Box as a}from"@mui/material";import{useDetectGPU as i}from"@react-three/drei";import{Canvas as o,useThree as n}from"@react-three/fiber";import{memo as s,useCallback as p,useEffect as l,useMemo as c,useState as f}from"react";import{BuiltInLoadingPhase as m,useExpectPhase as d,useIsLoaderHosted as h,useLoadingPhase as u,useStoreSelector as g}from"#package/react-sdk";import{useResponsive as x}from"#package/ui-sdk";import{useConfigurator as v}from"../../../../application-runtime/index.js";import{Scene as C,SceneEnvironment as P}from"../../../../scene/index.js";import{CanvasLoader as w}from"../../../phoenix-layout-elements/index.js";import{GPUIssuePage as j}from"./GPUIssuePage.js";let D=e=>{let{onCanNotLoad:t}=e,r=n(e=>e.gl);return l(()=>{let e=r.getContext(),a=e.getExtension("WEBGL_debug_renderer_info");a?e.getParameter(a.UNMASKED_RENDERER_WEBGL).toLocaleLowerCase().includes("swiftshader")&&t?.("no-acceleration"):t?.("no-acceleration")},[r,t]),null};export const Canvas=s(()=>{let[n,s]=f(null),[E,B]=f(!0),{canvasSystem:L}=v(),y=g(e=>L.getCanvasConfig(e.state),[L]),k=i(),{canvasPadding:A}=x(),M=h();d(m.SceneAssets),u({id:m.SceneAssets,label:"Loading 3D scene…"},E);let $=p(()=>{B(!1),L.reportFirstLoadFinished()},[L]),_=p(e=>{L.onCanvasClick$.next(e)},[L]),b=p(e=>{L.onCanvasPointerMove$.next(e)},[L]),I=c(()=>{let e={};return y?.precision&&(e.precision=y.precision),y?.alpha&&(e.alpha=y.alpha),y?.premultipliedAlpha&&(e.premultipliedAlpha=y.premultipliedAlpha),y?.antialias&&(e.antialias=y.antialias),y?.stencil&&(e.stencil=y.stencil),y?.preserveDrawingBuffer&&(e.preserveDrawingBuffer=y.preserveDrawingBuffer),y?.powerPreference&&(e.powerPreference=y.powerPreference),y?.depth&&(e.depth=y.depth),y?.logarithmicDepthBuffer&&(e.logarithmicDepthBuffer=y.logarithmicDepthBuffer),y?.failIfMajorPerformanceCaveat&&(e.failIfMajorPerformanceCaveat=y.failIfMajorPerformanceCaveat),e},[y]);return(l(()=>{"WEBGL_UNSUPPORTED"===k.type&&s("no-gpu")},[k,s]),n)?e(j,{issue:n}):t(r,{children:[e(a,{component:"div",sx:{transition:"opacity 0.3s ease-in",opacity:+!E,width:"100%",height:"100%"},children:t(o,{gl:I,onClick:_,onPointerMove:b,frameloop:y?.frameloop,shadows:y?.shadows,children:[e(C,{onFirstLoad:$}),e(D,{onCanNotLoad:s}),e(P,{})]})}),!M&&e(a,{component:"div",sx:{position:"absolute",top:A.top,left:A.left,width:`calc(100% - ${A.left}px - ${A.right}px)`,height:`calc(100% - ${A.top}px - ${A.bottom}px)`,display:"flex",justifyContent:"center",alignItems:"center",transition:"opacity 0.3s ease-in",opacity:+!!E,pointerEvents:"none"},children:e(w,{})})]})});
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{styled as e}from"@mui/material";import{Suspense as o,memo as r,useEffect as i,useRef as n,useState as a}from"react";import{BuiltInLoadingPhase as s,useExpectPhase as l,useLoadingStateManager as m}from"#package/react-sdk";import{usePreview as c}from"../../../../configurator-context/index.js";import{CanvasLoader as p}from"../../../phoenix-layout-elements/index.js";import{Canvas as u}from"./LayoutCanvas.js";let d=e("div",{shouldForwardProp:t=>"masked"!==t})(({masked:t,theme:{palette:e}})=>({backgroundColor:e.background.scene,inset:0,position:"absolute",isolation:"isolate",maxBlockSize:"var(--phx-app-height)","&::after":{backgroundColor:"inherit",content:'""',display:"block",inset:"inherit",opacity:+!!t,pointerEvents:"none",position:"absolute",transitionDuration:t?"0ms":"100ms",transitionProperty:"opacity",transitionTimingFunction:"linear"}})),h=e("div")({display:"grid",inset:0,placeItems:"center",pointerEvents:"none",position:"absolute"}),f=()=>null!==m()?null:t(h,{children:t(p,{})});export const SharedCanvas=r(()=>{l(s.SceneAssets);let{isExpanded:e}=c(),[r,m]=a(!1),p=n(e);return i(()=>{if(e===p.current)return;p.current=e,m(!0);let t=setTimeout(()=>m(!1),600);return()=>clearTimeout(t)},[e]),t(d,{masked:r,children:t(o,{fallback:t(f,{}),children:t(u,{})})})});
1
+ import{jsx as t}from"react/jsx-runtime";import{styled as e}from"@mui/material";import{Suspense as o,memo as r,useEffect as i,useRef as n,useState as a}from"react";import{BuiltInLoadingPhase as s,useExpectPhase as l,useIsLoaderHosted as m}from"#package/react-sdk";import{usePreview as c}from"../../../../configurator-context/index.js";import{CanvasLoader as p}from"../../../phoenix-layout-elements/index.js";import{Canvas as u}from"./LayoutCanvas.js";let d=e("div",{shouldForwardProp:t=>"masked"!==t})(({masked:t,theme:{palette:e}})=>({backgroundColor:e.background.scene,inset:0,position:"absolute",isolation:"isolate",maxBlockSize:"var(--phx-app-height)","&::after":{backgroundColor:"inherit",content:'""',display:"block",inset:"inherit",opacity:+!!t,pointerEvents:"none",position:"absolute",transitionDuration:t?"0ms":"100ms",transitionProperty:"opacity",transitionTimingFunction:"linear"}})),h=e("div")({display:"grid",inset:0,placeItems:"center",pointerEvents:"none",position:"absolute"}),f=()=>m()?null:t(h,{children:t(p,{})});export const SharedCanvas=r(()=>{l(s.SceneAssets);let{isExpanded:e}=c(),[r,m]=a(!1),p=n(e);return i(()=>{if(e===p.current)return;p.current=e,m(!0);let t=setTimeout(()=>m(!1),600);return()=>clearTimeout(t)},[e]),t(d,{masked:r,children:t(o,{fallback:t(f,{}),children:t(u,{})})})});
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Covers the configurator while an export runs, which keeps it inert: a press anywhere shows for a
3
+ * moment why nothing responds, instead of a configurator that silently ignores the user.
4
+ */
5
+ export declare const ExportingOverlay: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ import{jsx as e}from"react/jsx-runtime";import{Trans as r}from"@lingui/react";import{styled as t}from"@mui/material";import{useCallback as o,useEffect as i,useState as a}from"react";let n=t("div",{name:"PhxExportingOverlay",slot:"root"})(({theme:{zIndex:e}})=>({alignItems:"center",cursor:"wait",display:"flex",inset:0,justifyContent:"center",position:"absolute",zIndex:e.modal+1})),l=t("div",{name:"PhxExportingOverlay",slot:"message"})(({theme:{palette:e,shape:r,shadows:t,spacing:o,typography:i}})=>({...i.body2,background:e.background.paper,borderRadius:r.borderRadius,boxShadow:t[4],color:e.text.primary,padding:o(1,2)}));export const ExportingOverlay=()=>{let[t,s]=a(null),m=o(()=>s(Date.now()),[]);return i(()=>{if(null===t)return;let e=setTimeout(()=>s(null),2e3);return()=>clearTimeout(e)},[t]),e(n,{onPointerDown:m,children:null!==t&&e(l,{role:"status",children:e(r,{id:"sdk.layout.exporting.message",message:"Configurator is exporting… please wait"})})})};
@@ -1 +1 @@
1
- import{jsx as r,jsxs as o,Fragment as s}from"react/jsx-runtime";import{useResponsive as t}from"#package/ui-sdk";import{LayoutSlots as e}from"../slots/index.js";import{DesktopLayout as a}from"./DesktopLayout.js";import{MobileLayout as m}from"./MobileLayout.js";export const Layout=()=>{let{isDesktop:i}=t();return o(s,{children:[r(e.Services,{}),r(e.SharedCanvas,{}),i?r(a,{}):r(m,{})]})};
1
+ import{jsx as t,jsxs as e,Fragment as r}from"react/jsx-runtime";import{styled as o}from"@mui/material";import{useEffect as i}from"react";import{useEagerObservableValue as m}from"#package/react-sdk";import{useResponsive as n}from"#package/ui-sdk";import{useConfigurator as a}from"../../../application-runtime/index.js";import{LayoutSlots as s}from"../slots/index.js";import{DesktopLayout as c}from"./DesktopLayout.js";import{ExportingOverlay as p}from"./ExportingOverlay.js";import{MobileLayout as d}from"./MobileLayout.js";let l=o("div")({display:"contents"});export const Layout=()=>{let{isDesktop:o}=n(),{exportSystem:u}=a(),f=m(u.exporting$);return i(()=>{if(!f)return;let t=document.activeElement;return()=>{t instanceof HTMLElement&&t.isConnected&&document.activeElement===document.body&&t.focus()}},[f]),e(r,{children:[e(l,{...{inert:f?"":void 0},children:[t(s.Services,{}),t(s.SharedCanvas,{}),o?t(c,{}):t(d,{})]}),f&&t(p,{})]})};
@@ -1 +1 @@
1
- import{useCallback as t,useEffect as e,useRef as r}from"react";import{canvasPaddingComponent as n}from"#package/domain";import{useFirstComponent as o,useResponsiveStateManager as a}from"#package/react-sdk";export const useLayoutSceneSafeArea=c=>{let{enabled:u,hasMiniSidebar:i}=c,{setCanvasPadding:l}=a(),m=r(null),s=r(null),f=r(null),h=r(null),g=r(0),p=r(()=>{}),b=o({componentTypes:[n]}),d=t(()=>{let t=s.current,e=f.current;if(!u||!t||!e)return;let r=t.getBoundingClientRect(),n=e.getBoundingClientRect();if(Math.abs(r.width-t.offsetWidth)>1||Math.abs(r.height-t.offsetHeight)>1){if(g.current+=1,g.current>60){g.current=0;return}m.current&&cancelAnimationFrame(m.current),m.current=requestAnimationFrame(()=>p.current());return}g.current=0;let o={bottom:Math.max(0,r.bottom-n.bottom),left:Math.max(0,n.left-r.left),right:Math.max(0,r.right-n.right),top:Math.max(0,n.top-r.top)},a=i?.3:1,c=b?.state.bottom??1,h=b?.state.left??1,d=b?.state.right??a,A=b?.state.top??1;l({bottom:o.bottom*c,left:o.left*h,right:o.right*d,top:o.top*A})},[u,i,b?.state.bottom,b?.state.left,b?.state.right,b?.state.top,l]);p.current=d;let A=t(()=>{m.current&&cancelAnimationFrame(m.current),m.current=requestAnimationFrame(d)},[d]),M=t(()=>{h.current?.disconnect(),h.current=null},[]),x=t(()=>{let t=s.current,e=f.current;if(!u||!t||!e)return void M();M();let r=new ResizeObserver(A);r.observe(t),r.observe(e),h.current=r},[M,u,A]),F=t(t=>{s.current=t,x()},[x]),v=t(t=>{f.current=t,x()},[x]);return e(()=>(x(),()=>{M(),m.current&&cancelAnimationFrame(m.current)}),[x,M]),{containerRef:F,safeAreaRef:v,update:A}};
1
+ import{useCallback as t,useEffect as e,useRef as r}from"react";import{canvasPaddingComponent as n}from"#package/domain";import{useFirstComponent as o,useResponsiveActions as a}from"#package/react-sdk";export const useLayoutSceneSafeArea=c=>{let{enabled:u,hasMiniSidebar:i}=c,{setCanvasPadding:l}=a(),m=r(null),s=r(null),f=r(null),h=r(null),g=r(0),p=r(()=>{}),b=o({componentTypes:[n]}),d=t(()=>{let t=s.current,e=f.current;if(!u||!t||!e)return;let r=t.getBoundingClientRect(),n=e.getBoundingClientRect();if(Math.abs(r.width-t.offsetWidth)>1||Math.abs(r.height-t.offsetHeight)>1){if(g.current+=1,g.current>60){g.current=0;return}m.current&&cancelAnimationFrame(m.current),m.current=requestAnimationFrame(()=>p.current());return}g.current=0;let o={bottom:Math.max(0,r.bottom-n.bottom),left:Math.max(0,n.left-r.left),right:Math.max(0,r.right-n.right),top:Math.max(0,n.top-r.top)},a=i?.3:1,c=b?.state.bottom??1,h=b?.state.left??1,d=b?.state.right??a,A=b?.state.top??1;l({bottom:o.bottom*c,left:o.left*h,right:o.right*d,top:o.top*A})},[u,i,b?.state.bottom,b?.state.left,b?.state.right,b?.state.top,l]);p.current=d;let A=t(()=>{m.current&&cancelAnimationFrame(m.current),m.current=requestAnimationFrame(d)},[d]),M=t(()=>{h.current?.disconnect(),h.current=null},[]),x=t(()=>{let t=s.current,e=f.current;if(!u||!t||!e)return void M();M();let r=new ResizeObserver(A);r.observe(t),r.observe(e),h.current=r},[M,u,A]),F=t(t=>{s.current=t,x()},[x]),v=t(t=>{f.current=t,x()},[x]);return e(()=>(x(),()=>{M(),m.current&&cancelAnimationFrame(m.current)}),[x,M]),{containerRef:F,safeAreaRef:v,update:A}};
@@ -4,3 +4,4 @@ export * from './phoenix-layout-elements/index.js';
4
4
  export * from './preset-layout/index.js';
5
5
  export * as Legacy from './legacy/index.js';
6
6
  export * from './ConfiguratorEncapsulatedTheme.js';
7
+ export { type AssistantFormElementRoleProps, type AssistantFormElementType, type CreateAssistantFormElement, type FormContainerProps, type FormInputProps, type FormOptionProps, createAssistantFormElementFactory, } from './assistant/index.js';
@@ -1 +1 @@
1
- export*from"./configurator-layout/index.js";export*from"./phoenix-entity-elements/index.js";export*from"./phoenix-layout-elements/index.js";export*from"./preset-layout/index.js";export*as Legacy from"./legacy/index.js";export*from"./ConfiguratorEncapsulatedTheme.js";
1
+ export*from"./configurator-layout/index.js";export*from"./phoenix-entity-elements/index.js";export*from"./phoenix-layout-elements/index.js";export*from"./preset-layout/index.js";export*as Legacy from"./legacy/index.js";export*from"./ConfiguratorEncapsulatedTheme.js";export{createAssistantFormElementFactory}from"./assistant/index.js";
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import{Box as i,styled as r}from"@mui/material";import{AnimatePresence as a}from"motion/react";import{Suspense as n,memo as s,useEffect as l,useState as m}from"react";import{BuiltInLoadingPhase as c,useExpectPhase as d,useIsFullscreenActive as p,useLoadingStateManager as u,useResolveLocalizable as f}from"#package/react-sdk";import{useResponsive as b}from"#package/ui-sdk";import{usePreview as g}from"../../../../configurator-context/index.js";import{CanvasLoader as v}from"../../../phoenix-layout-elements/index.js";import{InterfaceLayout as x}from"../old/InterfaceLayout.js";import{PreviewLayout as h}from"../old/PreviewLayout.js";let k=({overlay:t})=>e("div",{style:{position:"absolute"},children:t}),y=r("div")({display:"grid",inset:0,placeItems:"center",pointerEvents:"none",position:"absolute"}),j=()=>null!==u()?null:e(y,{children:e(v,{})}),C=({canvas:t})=>{d(c.SceneAssets);let[o,r]=m(!0),{isPreview:a}=g();return l(()=>{r(!1);let e=setTimeout(()=>{r(!0)},400);return()=>{clearTimeout(e)}},[a]),e(i,{component:"div",sx:{backgroundColor:"background.scene",inset:0,isolation:"isolate",maxBlockSize:"var(--phx-app-height)",position:"absolute"},children:e(n,{fallback:e(j,{}),children:o&&t})})},S={id:"sdk.preview.customize.title",message:"Customize product"},L={id:"sdk.preview.start.button.label",message:"Start configuring"};export const ReactiveInterfaceLayout=s(i=>{let{canvas:r,sidebar:n,topNavigation:s,branding:l,toolbar:m,fullScreenToolbar:c,viewControls:d,toolControls:u,overlay:v,mobileControls:y,mobileTopNavigation:j,mobileHeaderActionButton:w,mobileHeaderCenter:z,footer:B,sideEffects:I,LayoutContainer:P}=i,{setCanvasPadding:T}=b(),A=p(),{isPreview:E,isHidden:F}=g(),H=f();return t(o,{children:[e(C,{canvas:r}),e(k,{overlay:v}),t(a,{children:[!F&&E&&e(h,{title:H(S),startButtonLabel:H(L),updateScenePadding:T}),!F&&!E&&e(x,{sidebar:n,topNavigation:s,branding:l,toolbar:m,toolbarSecondary:c,mobileControls:y,mobileTopNavigation:j,mobileHeaderActionButton:w,mobileHeaderCenter:z,footer:B,sideEffects:I,isFullScreen:A,updateScenePadding:T,LayoutContainer:P,viewControls:d,toolControls:u})]})]})});
1
+ import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import{Box as i,styled as r}from"@mui/material";import{AnimatePresence as a}from"motion/react";import{Suspense as n,memo as s,useEffect as l,useState as m}from"react";import{BuiltInLoadingPhase as c,useExpectPhase as d,useIsFullscreenActive as p,useIsLoaderHosted as u,useResolveLocalizable as f}from"#package/react-sdk";import{useResponsive as b}from"#package/ui-sdk";import{usePreview as g}from"../../../../configurator-context/index.js";import{CanvasLoader as v}from"../../../phoenix-layout-elements/index.js";import{InterfaceLayout as x}from"../old/InterfaceLayout.js";import{PreviewLayout as h}from"../old/PreviewLayout.js";let k=({overlay:t})=>e("div",{style:{position:"absolute"},children:t}),y=r("div")({display:"grid",inset:0,placeItems:"center",pointerEvents:"none",position:"absolute"}),j=()=>u()?null:e(y,{children:e(v,{})}),C=({canvas:t})=>{d(c.SceneAssets);let[o,r]=m(!0),{isPreview:a}=g();return l(()=>{r(!1);let e=setTimeout(()=>{r(!0)},400);return()=>{clearTimeout(e)}},[a]),e(i,{component:"div",sx:{backgroundColor:"background.scene",inset:0,isolation:"isolate",maxBlockSize:"var(--phx-app-height)",position:"absolute"},children:e(n,{fallback:e(j,{}),children:o&&t})})},S={id:"sdk.preview.customize.title",message:"Customize product"},L={id:"sdk.preview.start.button.label",message:"Start configuring"};export const ReactiveInterfaceLayout=s(i=>{let{canvas:r,sidebar:n,topNavigation:s,branding:l,toolbar:m,fullScreenToolbar:c,viewControls:d,toolControls:u,overlay:v,mobileControls:y,mobileTopNavigation:j,mobileHeaderActionButton:w,mobileHeaderCenter:z,footer:B,sideEffects:I,LayoutContainer:P}=i,{setCanvasPadding:T}=b(),A=p(),{isPreview:E,isHidden:F}=g(),H=f();return t(o,{children:[e(C,{canvas:r}),e(k,{overlay:v}),t(a,{children:[!F&&E&&e(h,{title:H(S),startButtonLabel:H(L),updateScenePadding:T}),!F&&!E&&e(x,{sidebar:n,topNavigation:s,branding:l,toolbar:m,toolbarSecondary:c,mobileControls:y,mobileTopNavigation:j,mobileHeaderActionButton:w,mobileHeaderCenter:z,footer:B,sideEffects:I,isFullScreen:A,updateScenePadding:T,LayoutContainer:P,viewControls:d,toolControls:u})]})]})});
@@ -1,11 +1,4 @@
1
1
  import type { PropsWithChildren } from 'react';
2
- import type { PhoenixLayoutElementRegistration } from '#package/domain';
3
- import type { LoadingPhase } from '#package/react-sdk';
4
- export interface AppLoaderContentProps {
5
- readonly phases: readonly LoadingPhase[];
6
- }
7
- export declare const createAppLoader: (Element: (props: AppLoaderContentProps) => JSX.Element) => readonly PhoenixLayoutElementRegistration[];
8
- export type CreateAppLoader = (Element: (props: AppLoaderContentProps) => JSX.Element) => readonly PhoenixLayoutElementRegistration[];
9
2
  interface AppLoaderProps extends PropsWithChildren {
10
3
  readonly mode?: 'legacy' | 'universal';
11
4
  }
@@ -1,4 +1,4 @@
1
- import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{keyframes as o,styled as a}from"@mui/material";import{useRef as s}from"react";import{createCustomPhoenixLayoutElement as i}from"#package/domain";import{BuiltInLoadingPhase as n,PhoenixLayoutElement as p,useLoadingStateValue as m,useResponsiveState as c}from"#package/react-sdk";import{AppLoaderContentName as l}from"../../app-loader-content/index.js";export const createAppLoader=t=>[i(l,()=>{let{phases:r}=m();return e(t,{phases:r})})];let d=o`
1
+ import{jsx as e,jsxs as t,Fragment as i}from"react/jsx-runtime";import{keyframes as a,styled as r}from"@mui/material";import{AppLoaderContentName as s,BuiltInLoadingPhase as o,PhoenixLayoutElement as n,useIsAwaitingLoadingPhase as p,useLoadingStateValue as m,useResponsiveState as l}from"#package/react-sdk";let c=a`
2
2
  from { opacity: 0 }
3
3
  to { opacity: 1 }
4
- `,x=a("div")({animation:`${d} 1000ms linear 300ms forwards`,opacity:0,display:"grid",inset:0,maxBlockSize:"var(--phx-app-height)",placeItems:"center",pointerEvents:"none",position:"absolute",transition:"inset 100ms ease-in-out",zIndex:9999});export const AppLoader=({mode:o="universal",children:a})=>{let{isLoading:i,hasError:d,phases:f,expectedPhaseIds:u}=m(),{canvasPadding:h}=c(),g=s(!1);if(f.some(e=>e.id===n.SceneAssets)&&(g.current=!0),"legacy"===o)return a;let y=u.has(n.SceneAssets)&&!g.current;return t(r,{children:[a,!d&&(i||y)&&e(x,{style:{inset:`${h.top}px ${h.right}px ${h.bottom}px ${h.left}px`},children:e(p,{name:l,elementProps:{phases:f}})})]})};
4
+ `,x=r("div")({animation:`${c} 1000ms linear 300ms forwards`,opacity:0,display:"grid",inset:0,maxBlockSize:"var(--phx-app-height)",placeItems:"center",pointerEvents:"none",position:"absolute",transition:"inset 100ms ease-in-out",zIndex:9999});export const AppLoader=({mode:a="universal",children:r})=>{let{isLoading:c,hasError:d,phases:f}=m(),g=p(o.SceneAssets),{canvasPadding:h}=l();return"legacy"===a?r:t(i,{children:[r,!d&&(c||g)&&e(x,{style:{inset:`${h.top}px ${h.right}px ${h.bottom}px ${h.left}px`},children:e(n,{name:s,elementProps:{phases:f}})})]})};
@@ -25,7 +25,14 @@ export { SetAsRecipeButton } from './SetAsRecipeButton.js';
25
25
  export { LayoutDialog, createLayoutDialog, type CreateLayoutDialog } from './LayoutDialog.js';
26
26
  export { LayoutFooter, createLayoutFooter, type CreateLayoutFooter } from './LayoutFooter.js';
27
27
  export { CanvasLoader, createCanvasLoader, type CreateCanvasLoader } from './CanvasLoader.js';
28
- export { AppLoader, createAppLoader, type CreateAppLoader, type AppLoaderContentProps } from './AppLoader.js';
28
+ export { AppLoader } from './AppLoader.js';
29
+ export {
30
+ /** @deprecated Use `createAppLoader` from `@salsita-ai/sdk/react`. */
31
+ createAppLoader,
32
+ /** @deprecated Use `CreateAppLoader` from `@salsita-ai/sdk/react`. */
33
+ type CreateAppLoader,
34
+ /** @deprecated Use `AppLoaderContentProps` from `@salsita-ai/sdk/react`. */
35
+ type AppLoaderContentProps, } from '#package/react-sdk';
29
36
  export { ToolbarHelp, createToolbarHelp, type CreateToolbarHelp, useToolbarHelpExists } from './ToolbarHelp.js';
30
37
  export { LayoutToolbarDesktop, createLayoutToolbarDesktop, type LayoutToolbarDesktopProps, type CreateLayoutToolbarDesktop, } from './LayoutToolbarDesktop.js';
31
38
  export { LayoutToolbarDesktopFullScreen, createLayoutToolbarDesktopFullScreen, type LayoutToolbarDesktopFullScreenProps, type CreateLayoutToolbarDesktopFullScreen, } from './LayoutToolbarDesktopFullScreen.js';
@@ -1 +1 @@
1
- export*from"./sidebar-footer/index.js";export*from"./header/index.js";export{useShareData,useShareSettings}from"./share/use-share.js";export{MenuRoutingProvider,useMenuRouting}from"./menu-actions/MenuRoutingContext.js";export{MenuAction}from"./menu-actions/MenuAction.js";export{RoutingMenuAction}from"./menu-actions/RoutingMenuAction.js";export{EnterFullscreenToolbarButton}from"./EnterFullscreenToolbarButton.js";export{ExitFullscreenToolbarButton}from"./ExitFullscreenToolbarButton.js";export{LanguageToolbarButton}from"./LanguageToolbarButton.js";export{ToolbarButtonGroup}from"./ToolbarButtonGroup.js";export{ShareMenuAction}from"./ShareMenuAction.js";export{ShareToolbarButton}from"./ShareToolbarButton.js";export{UndoToolbarButton}from"./UndoToolbarButton.js";export{RedoToolbarButton}from"./RedoToolbarButton.js";export{MeasurementsToolbarButton}from"./MeasurementsToolbarButton.js";export{HelpToolbarButton}from"./HelpToolbarButton.js";export{AssistantToolbarButton}from"./AssistantToolbarButton.js";export{HelpMenuAction}from"./HelpMenuAction.js";export{LanguageMenuAction}from"./LanguageMenuAction.js";export{MeasurementsMenuAction}from"./MeasurementsMenuAction.js";export{ResetCameraToolbarButton}from"./ResetCameraToolbarButton.js";export{SimpleSummary}from"./SimpleSummary.js";export{ResetUndoListener}from"./ResetUndoListener.js";export{SetAsRecipeButton}from"./SetAsRecipeButton.js";export{LayoutDialog,createLayoutDialog}from"./LayoutDialog.js";export{LayoutFooter,createLayoutFooter}from"./LayoutFooter.js";export{CanvasLoader,createCanvasLoader}from"./CanvasLoader.js";export{AppLoader,createAppLoader}from"./AppLoader.js";export{ToolbarHelp,createToolbarHelp,useToolbarHelpExists}from"./ToolbarHelp.js";export{LayoutToolbarDesktop,createLayoutToolbarDesktop}from"./LayoutToolbarDesktop.js";export{LayoutToolbarDesktopFullScreen,createLayoutToolbarDesktopFullScreen}from"./LayoutToolbarDesktopFullScreen.js";export{LayoutToolbarReadDesktop,createLayoutToolbarReadDesktop}from"./LayoutToolbarReadDesktop.js";export{LayoutToolbarReadDesktopFullScreen,createLayoutToolbarReadDesktopFullScreen}from"./LayoutToolbarReadDesktopFullScreen.js";export{LayoutCustomOwnerUi,createLayoutCustomOwnerUi}from"./LayoutCustomOwnerUi.js";export{LayoutCustomReadUi,createLayoutCustomReadUi}from"./LayoutCustomReadUi.js";export{LayoutAdminUi,createLayoutAdminUi}from"./LayoutAdminUi.js";export{LayoutUserUi,createLayoutUserUi}from"./LayoutUserUi.js";export{ExitToolModeFab}from"./call-to-action/ExitToolModeFab.js";export*from"./svg-throbber-3d/index.js";
1
+ export*from"./sidebar-footer/index.js";export*from"./header/index.js";export{useShareData,useShareSettings}from"./share/use-share.js";export{MenuRoutingProvider,useMenuRouting}from"./menu-actions/MenuRoutingContext.js";export{MenuAction}from"./menu-actions/MenuAction.js";export{RoutingMenuAction}from"./menu-actions/RoutingMenuAction.js";export{EnterFullscreenToolbarButton}from"./EnterFullscreenToolbarButton.js";export{ExitFullscreenToolbarButton}from"./ExitFullscreenToolbarButton.js";export{LanguageToolbarButton}from"./LanguageToolbarButton.js";export{ToolbarButtonGroup}from"./ToolbarButtonGroup.js";export{ShareMenuAction}from"./ShareMenuAction.js";export{ShareToolbarButton}from"./ShareToolbarButton.js";export{UndoToolbarButton}from"./UndoToolbarButton.js";export{RedoToolbarButton}from"./RedoToolbarButton.js";export{MeasurementsToolbarButton}from"./MeasurementsToolbarButton.js";export{HelpToolbarButton}from"./HelpToolbarButton.js";export{AssistantToolbarButton}from"./AssistantToolbarButton.js";export{HelpMenuAction}from"./HelpMenuAction.js";export{LanguageMenuAction}from"./LanguageMenuAction.js";export{MeasurementsMenuAction}from"./MeasurementsMenuAction.js";export{ResetCameraToolbarButton}from"./ResetCameraToolbarButton.js";export{SimpleSummary}from"./SimpleSummary.js";export{ResetUndoListener}from"./ResetUndoListener.js";export{SetAsRecipeButton}from"./SetAsRecipeButton.js";export{LayoutDialog,createLayoutDialog}from"./LayoutDialog.js";export{LayoutFooter,createLayoutFooter}from"./LayoutFooter.js";export{CanvasLoader,createCanvasLoader}from"./CanvasLoader.js";export{AppLoader}from"./AppLoader.js";export{createAppLoader}from"#package/react-sdk";export{ToolbarHelp,createToolbarHelp,useToolbarHelpExists}from"./ToolbarHelp.js";export{LayoutToolbarDesktop,createLayoutToolbarDesktop}from"./LayoutToolbarDesktop.js";export{LayoutToolbarDesktopFullScreen,createLayoutToolbarDesktopFullScreen}from"./LayoutToolbarDesktopFullScreen.js";export{LayoutToolbarReadDesktop,createLayoutToolbarReadDesktop}from"./LayoutToolbarReadDesktop.js";export{LayoutToolbarReadDesktopFullScreen,createLayoutToolbarReadDesktopFullScreen}from"./LayoutToolbarReadDesktopFullScreen.js";export{LayoutCustomOwnerUi,createLayoutCustomOwnerUi}from"./LayoutCustomOwnerUi.js";export{LayoutCustomReadUi,createLayoutCustomReadUi}from"./LayoutCustomReadUi.js";export{LayoutAdminUi,createLayoutAdminUi}from"./LayoutAdminUi.js";export{LayoutUserUi,createLayoutUserUi}from"./LayoutUserUi.js";export{ExitToolModeFab}from"./call-to-action/ExitToolModeFab.js";export*from"./svg-throbber-3d/index.js";
@@ -1,6 +1,4 @@
1
1
  import type { PhoenixLayoutElementRegistration } from '#package/domain';
2
- export declare const createPresetUi: (Element: () => JSX.Element) => PhoenixLayoutElementRegistration;
3
- export type CreatePresetUi = (Element: () => JSX.Element) => PhoenixLayoutElementRegistration;
4
2
  export type CreatePresetPageAction = (Element: () => JSX.Element) => PhoenixLayoutElementRegistration;
5
3
  export declare const createPresetPageAction: (Element: () => JSX.Element) => PhoenixLayoutElementRegistration;
6
4
  export declare const createPresetDeviceNotSupported: (Element: () => JSX.Element) => PhoenixLayoutElementRegistration;
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{createCustomPhoenixLayoutElement as t}from"#package/domain";import{PhoenixLayoutElement as r}from"#package/react-sdk";import{PresetDeviceNotSupportedName as o,PresetPageActionName as s}from"../../preset-screen-elements/index.js";let c="PresetUi";export const createPresetUi=e=>t(c,e);export const createPresetPageAction=e=>t(s,e);export const createPresetDeviceNotSupported=e=>t(o,e);export const PresetUi=()=>e(r,{name:c,elementProps:{}});
1
+ import{jsx as e}from"react/jsx-runtime";import{createCustomPhoenixLayoutElement as t}from"#package/domain";import{PhoenixLayoutElement as r,PresetUiName as o}from"#package/react-sdk";import{PresetDeviceNotSupportedName as s,PresetPageActionName as m}from"../../preset-screen-elements/index.js";export const createPresetPageAction=e=>t(m,e);export const createPresetDeviceNotSupported=e=>t(s,e);export const PresetUi=()=>e(r,{name:o,elementProps:{}});
@@ -3,4 +3,9 @@ export { PresetBackButton } from './PresetBackButton.js';
3
3
  export { PresetPreviewLayout, type PresetPreviewLayoutProps } from './PresetPreviewLayout.js';
4
4
  export { PresetSnackbarsRoot } from './PresetSnackbarsRoot.js';
5
5
  export { ClosePresetScreenButton as ClosePresetPreviewButton } from './ClosePresetScreenButton.js';
6
- export { PresetUi, createPresetUi, type CreatePresetUi, createPresetPageAction, type CreatePresetPageAction, createPresetDeviceNotSupported, type CreatePresetDeviceNotSupported, } from './PresetUi.js';
6
+ export { PresetUi, createPresetPageAction, type CreatePresetPageAction, createPresetDeviceNotSupported, type CreatePresetDeviceNotSupported, } from './PresetUi.js';
7
+ export {
8
+ /** @deprecated Use `createPresetUi` from `@salsita-ai/sdk/react`. */
9
+ createPresetUi,
10
+ /** @deprecated Use `CreatePresetUi` from `@salsita-ai/sdk/react`. */
11
+ type CreatePresetUi, } from '#package/react-sdk';
@@ -1 +1 @@
1
- export{CategoryPresetUi}from"./CategoryPresetUi.js";export{PresetBackButton}from"./PresetBackButton.js";export{PresetPreviewLayout}from"./PresetPreviewLayout.js";export{PresetSnackbarsRoot}from"./PresetSnackbarsRoot.js";export{ClosePresetScreenButton as ClosePresetPreviewButton}from"./ClosePresetScreenButton.js";export{PresetUi,createPresetUi,createPresetPageAction,createPresetDeviceNotSupported}from"./PresetUi.js";
1
+ export{CategoryPresetUi}from"./CategoryPresetUi.js";export{PresetBackButton}from"./PresetBackButton.js";export{PresetPreviewLayout}from"./PresetPreviewLayout.js";export{PresetSnackbarsRoot}from"./PresetSnackbarsRoot.js";export{ClosePresetScreenButton as ClosePresetPreviewButton}from"./ClosePresetScreenButton.js";export{PresetUi,createPresetPageAction,createPresetDeviceNotSupported}from"./PresetUi.js";export{createPresetUi}from"#package/react-sdk";
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import{Trans as e}from"@lingui/react";import{Button as s}from"@mui/material";import{useSnackbar as i}from"notistack";import{useEffect as t}from"react";import{useApplicationRuntime as o,useApplicationRuntimeSelector as a,useConfiguratorMessages as n}from"#package/react-sdk";let m="phx-configuration-persist-system-failure";export const SaveMessageSnackbars=()=>{let c=a(o().selectors.domainContext.configurator.getInitializationState).isViewMode,{enqueueSnackbar:d,closeSnackbar:p}=i();return t(()=>{c&&p(m)},[c,p]),n(i=>{c||("saveError"===i.kind&&d(r(e,{id:"sdk.persist.system.error.message",message:"An error occured when trying to update a configuration"}),{variant:"error",key:m,persist:!0,preventDuplicate:!0,action:i=>r(s,{color:"inherit",size:"small",onClick:()=>{p(i)},children:r(e,{id:"sdk.persist.system.error.dismiss",message:"Dismiss"})})}),"saveRecovery"===i.kind&&(p(m),d(r(e,{id:"sdk.persist.system.error.recovered",message:"Configuration updated"}),{variant:"info"})))}),null};
1
+ import{jsx as r}from"react/jsx-runtime";import{Trans as e}from"@lingui/react";import{Button as s}from"@mui/material";import{useSnackbar as i}from"notistack";import{useEffect as t}from"react";import{useApplicationRuntime as o,useApplicationRuntimeSelector as a,useConfiguratorMessages as n}from"#package/react-sdk";let m="phx-configuration-persist-system-failure";export const SaveMessageSnackbars=()=>{let c=a(o().selectors.domainContext.configurator.getIsViewMode),{enqueueSnackbar:d,closeSnackbar:p}=i();return t(()=>{c&&p(m)},[c,p]),n(i=>{c||("saveError"===i.kind&&d(r(e,{id:"sdk.persist.system.error.message",message:"An error occured when trying to update a configuration"}),{variant:"error",key:m,persist:!0,preventDuplicate:!0,action:i=>r(s,{color:"inherit",size:"small",onClick:()=>{p(i)},children:r(e,{id:"sdk.persist.system.error.dismiss",message:"Dismiss"})})}),"saveRecovery"===i.kind&&(p(m),d(r(e,{id:"sdk.persist.system.error.recovered",message:"Configuration updated"}),{variant:"info"})))}),null};
@@ -1,5 +1,5 @@
1
1
  {
2
- "generatedAt": "2026-10-16T10:35:04.427Z",
2
+ "generatedAt": "2026-10-18T13:40:28.775Z",
3
3
  "categories": [
4
4
  {
5
5
  "name": "Phoenix",
@@ -881,6 +881,100 @@
881
881
  ],
882
882
  "subcategories": []
883
883
  },
884
+ {
885
+ "name": "Gallery",
886
+ "docs": [
887
+ {
888
+ "title": "Ardent Compressor",
889
+ "description": "Quote an engineered product from a form, with no 3D model at all. An industrial compressor maker, Ardent Air, lets plant engineers size a rotary screw compressor and ask for a firm quote. The...",
890
+ "path": "docs/layouts/gallery/ardent-compressor.mdx",
891
+ "category": [
892
+ "Layouts",
893
+ "Gallery",
894
+ "Ardent Compressor"
895
+ ],
896
+ "source": "storybook-example"
897
+ },
898
+ {
899
+ "title": "Corvid Drone",
900
+ "description": "Build a pro tool in which an engineer configures a product and a client reads the result. A drone maker, Corvid Aero, has its engineers configure the K6 survey drone for each customer: the frame, the...",
901
+ "path": "docs/layouts/gallery/corvid-drone.mdx",
902
+ "category": [
903
+ "Layouts",
904
+ "Gallery",
905
+ "Corvid Drone"
906
+ ],
907
+ "source": "storybook-example"
908
+ },
909
+ {
910
+ "title": "Fenwick Window",
911
+ "description": "Show a made-to-measure product as the drawing a workshop would build it from. A joinery, Fenwick & Lowe, sells timber casement windows to order: the customer sets the overall size, the panes across,...",
912
+ "path": "docs/layouts/gallery/fenwick-window.mdx",
913
+ "category": [
914
+ "Layouts",
915
+ "Gallery",
916
+ "Fenwick Window"
917
+ ],
918
+ "source": "storybook-example"
919
+ },
920
+ {
921
+ "title": "Ferrule Bar Station",
922
+ "description": "Let a bar designer lay out a commercial bartender station and hand the result straight to the workshop. A fictional maker, Ferrule Barworks, sells stainless underbar stations built from modules: ice...",
923
+ "path": "docs/layouts/gallery/ferrule-bar-station.mdx",
924
+ "category": [
925
+ "Layouts",
926
+ "Gallery",
927
+ "Ferrule Bar Station"
928
+ ],
929
+ "source": "storybook-example"
930
+ },
931
+ {
932
+ "title": "Kestrel Kettle",
933
+ "description": "Sell a small product from one calm page that looks like the shop's own. A specialty-coffee shop, Aldermoor Coffee, sells its Kestrel pour-over kettle in three finishes, two handle woods and with or...",
934
+ "path": "docs/layouts/gallery/kestrel-kettle.mdx",
935
+ "category": [
936
+ "Layouts",
937
+ "Gallery",
938
+ "Kestrel Kettle"
939
+ ],
940
+ "source": "storybook-example"
941
+ },
942
+ {
943
+ "title": "Nightjar Guitar",
944
+ "description": "Walk a customer through a product one step at a time and end in an order. A custom guitar shop, Northfret, sells its Nightjar electric guitar through a five-step wizard: the body, the neck, the...",
945
+ "path": "docs/layouts/gallery/nightjar-guitar.mdx",
946
+ "category": [
947
+ "Layouts",
948
+ "Gallery",
949
+ "Nightjar Guitar"
950
+ ],
951
+ "source": "storybook-example"
952
+ },
953
+ {
954
+ "title": "Sunfold Solar",
955
+ "description": "Help a household decide on a system by showing what it would do for them. A solar installer, Sunfold, lets a homeowner plan panels and a battery for their roof: the roof's area and direction, the...",
956
+ "path": "docs/layouts/gallery/sunfold-solar.mdx",
957
+ "category": [
958
+ "Layouts",
959
+ "Gallery",
960
+ "Sunfold Solar"
961
+ ],
962
+ "source": "storybook-example"
963
+ },
964
+ {
965
+ "title": "Tidepool Aquascape",
966
+ "description": "Let a customer compose a product from pieces they add, change and take away, in a workspace that shows the result as they go. An aquascaping studio, Tidepool Studio, sells planted aquariums: the...",
967
+ "path": "docs/layouts/gallery/tidepool-aquascape.mdx",
968
+ "category": [
969
+ "Layouts",
970
+ "Gallery",
971
+ "Tidepool Aquascape"
972
+ ],
973
+ "source": "storybook-example"
974
+ }
975
+ ],
976
+ "subcategories": []
977
+ },
884
978
  {
885
979
  "name": "Header",
886
980
  "docs": [
@@ -214,6 +214,8 @@ Properties use camelCase (`integrationMode`), while attributes use kebab-case (`
214
214
 
215
215
  Attributes are **write-only from the host's perspective**: setting an attribute (in HTML or via `setAttribute`) flows the value into the property, but the WC **never reflects property changes back to attributes**. To read the current value, always use the JavaScript property, not `getAttribute`.
216
216
 
217
+ Boolean attributes (`readonly`, `expanded`, and a custom property whose `attributeParser` is `webComponentAttributeParsers.boolean`) follow the HTML convention: present without a value (`<salsita-configurator readonly>`, `setAttribute('readonly', '')`) or with their own name as the value (`readonly="readonly"`), they switch the property on. `"true"` and `"false"` work too; any other value is ignored with an error in the console. Removing the attribute resets the property to its default.
218
+
217
219
  Standard property to attribute mapping:
218
220
 
219
221
  | Property | Attribute(s) |