@salsita-ai/sdk 0.50.0-develop.f6390cb584 → 0.50.0-develop.f66f6d052a

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 (558) hide show
  1. package/dist/application/index.d.ts +1 -0
  2. package/dist/application/index.js +1 -1
  3. package/dist/application/mount-application.d.ts +1 -1
  4. package/dist/application/mount-application.js +1 -1
  5. package/dist/application/mount-configurator.d.ts +19 -0
  6. package/dist/application/mount-configurator.js +1 -0
  7. package/dist/application/mounted-application-runtime.d.ts +4 -0
  8. package/dist/application/mounted-application-runtime.js +1 -0
  9. package/dist/application/register-web-component.d.ts +2 -0
  10. package/dist/application/register-web-component.js +1 -0
  11. package/dist/application-spec/errors/diagnostic-codes.d.ts +9 -0
  12. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  13. package/dist/application-spec/errors/diagnostic-messages.d.ts +10 -1
  14. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  15. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  16. package/dist/application-spec/generate-application/code/templates/application-types.js +6 -6
  17. package/dist/application-spec/generate-application/code/templates/common/doc-comment.d.ts +2 -0
  18. package/dist/application-spec/generate-application/code/templates/common/doc-comment.js +1 -0
  19. package/dist/application-spec/generate-application/code/templates/configurator-globals.d.ts +2 -1
  20. package/dist/application-spec/generate-application/code/templates/configurator-globals.js +19 -6
  21. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.js +7 -7
  22. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.d.ts +12 -0
  23. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.js +7 -0
  24. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +24 -22
  25. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
  26. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  27. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +13 -6
  28. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -2
  29. package/dist/application-spec/generate-application/implementations/phx-application-types.d.ts +25 -0
  30. package/dist/application-spec/generate-application/implementations/phx-application-types.js +1 -0
  31. package/dist/application-spec/generate-application/implementations/phx-domain.d.ts +36 -0
  32. package/dist/application-spec/generate-application/implementations/phx-domain.js +1 -0
  33. package/dist/application-spec/generate-application/implementations/phx-model.d.ts +24 -0
  34. package/dist/application-spec/generate-application/implementations/phx-model.js +1 -0
  35. package/dist/application-spec/generate-application/implementations/phx.d.ts +22 -0
  36. package/dist/application-spec/generate-application/implementations/phx.js +1 -0
  37. package/dist/application-spec/generate-application/index.d.ts +2 -0
  38. package/dist/application-spec/generate-application/index.js +1 -1
  39. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +3 -3
  40. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +7 -4
  41. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  42. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.d.ts +16 -0
  43. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.js +1 -0
  44. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +17 -4
  45. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  46. package/dist/application-spec/generate-application/runtime/application-spec-slice.d.ts +71 -0
  47. package/dist/application-spec/generate-application/runtime/application-spec-slice.js +1 -0
  48. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +3 -3
  49. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +7 -5
  50. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  51. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.d.ts +16 -0
  52. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.js +1 -0
  53. package/dist/application-spec/generate-application/runtime/create-application.d.ts +57 -0
  54. package/dist/application-spec/generate-application/runtime/create-application.js +1 -0
  55. package/dist/application-spec/generate-application/runtime/index.d.ts +8 -0
  56. package/dist/application-spec/generate-application/runtime/index.js +1 -0
  57. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +9 -3
  58. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  59. package/dist/application-spec/generate-application/runtime/spec-runtime.d.ts +21 -0
  60. package/dist/application-spec/generate-application/runtime/spec-runtime.js +1 -0
  61. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +3 -2
  62. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +44 -9
  63. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -1
  64. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +33 -3
  65. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  66. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.d.ts +9 -0
  67. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.js +1 -0
  68. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +4 -1
  69. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  70. package/dist/client/authorized-client.d.ts +3 -1
  71. package/dist/client/authorized-client.js +1 -1
  72. package/dist/client/contract.d.ts +17 -0
  73. package/dist/client/index.d.ts +1 -1
  74. package/dist/client/local-authorized-client.d.ts +3 -1
  75. package/dist/client/local-authorized-client.js +1 -1
  76. package/dist/client/memory-authorized-client.d.ts +4 -1
  77. package/dist/client/memory-authorized-client.js +1 -1
  78. package/dist/client/phoenix-api.d.ts +228 -0
  79. package/dist/configurator/ConfiguratorApp.js +1 -1
  80. package/dist/configurator/app-loader-content/index.d.ts +0 -1
  81. package/dist/configurator/app-loader-content/index.js +1 -1
  82. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  83. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +17 -3
  84. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  85. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +34 -7
  86. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  87. package/dist/configurator/application-runtime/extensions/systems/canvas-system.d.ts +8 -0
  88. package/dist/configurator/application-runtime/extensions/systems/canvas-system.js +1 -1
  89. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.d.ts +8 -0
  90. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.js +1 -0
  91. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.d.ts +23 -1
  92. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.js +1 -1
  93. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +14 -1
  94. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  95. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +51 -4
  96. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  97. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.d.ts +14 -5
  98. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.js +1 -1
  99. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  100. package/dist/configurator/common/configurator-interface.d.ts +40 -6
  101. package/dist/configurator/common/configurator-interface.js +1 -1
  102. package/dist/configurator/configuration-not-found-page/BuiltInConfigurationNotFoundPage.d.ts +5 -0
  103. package/dist/configurator/configuration-not-found-page/BuiltInConfigurationNotFoundPage.js +1 -0
  104. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +0 -6
  105. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -1
  106. package/dist/configurator/configuration-not-found-page/index.d.ts +2 -2
  107. package/dist/configurator/configuration-not-found-page/index.js +1 -1
  108. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +3 -3
  109. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -1
  110. package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
  111. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +4 -0
  112. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +1 -1
  113. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.d.ts +3 -3
  114. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.js +1 -1
  115. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.d.ts +0 -5
  116. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.js +1 -1
  117. package/dist/configurator/configurator-error-page/index.d.ts +1 -2
  118. package/dist/configurator/configurator-error-page/index.js +1 -1
  119. package/dist/configurator/index.d.ts +9 -2
  120. package/dist/configurator/index.js +1 -1
  121. package/dist/configurator/pages/default-configurator-elements.d.ts +3 -2
  122. package/dist/configurator/pages/default-configurator-elements.js +1 -1
  123. package/dist/configurator/pages/default-elements/index.d.ts +1 -0
  124. package/dist/configurator/pages/default-elements/index.js +1 -1
  125. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.d.ts +3 -0
  126. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.js +1 -0
  127. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.d.ts +3 -0
  128. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.js +1 -0
  129. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.d.ts +3 -0
  130. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.js +1 -0
  131. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.d.ts +3 -0
  132. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.js +1 -0
  133. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.d.ts +3 -0
  134. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.js +1 -0
  135. package/dist/configurator/pages/default-elements/scene-controls/index.d.ts +6 -0
  136. package/dist/configurator/pages/default-elements/scene-controls/index.js +1 -0
  137. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.d.ts +6 -0
  138. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.js +1 -0
  139. package/dist/configurator/pages/error-boundaries/LoadingErrorBoundary.js +1 -1
  140. package/dist/configurator/scene/index.d.ts +1 -0
  141. package/dist/configurator/scene/index.js +1 -1
  142. package/dist/configurator/scene/scene-controls/ToolFab.d.ts +4 -0
  143. package/dist/configurator/scene/scene-controls/ToolFab.js +1 -1
  144. package/dist/configurator/scene/scene-controls/use-scene-control-tooltip.d.ts +2 -1
  145. package/dist/configurator/scene/scene-entity/scene-controls/SceneEntityHtmlHotspots.js +1 -1
  146. package/dist/configurator/toolbar-actions/index.d.ts +1 -0
  147. package/dist/configurator/toolbar-actions/index.js +1 -1
  148. package/dist/configurator/toolbar-actions/use-toolbar-actions.d.ts +100 -0
  149. package/dist/configurator/toolbar-actions/use-toolbar-actions.js +1 -0
  150. package/dist/configurator/toolbar-actions/use-toolbar-help.d.ts +7 -0
  151. package/dist/configurator/toolbar-actions/use-toolbar-help.js +1 -0
  152. package/dist/configurator/ui/assistant/AssistantChips.d.ts +3 -2
  153. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  154. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +1 -1
  155. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  156. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +8 -0
  157. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -0
  158. package/dist/configurator/ui/assistant/alert/index.d.ts +2 -0
  159. package/dist/configurator/ui/assistant/alert/index.js +1 -0
  160. package/dist/configurator/ui/assistant/alert/remark-alerts.d.ts +10 -0
  161. package/dist/configurator/ui/assistant/alert/remark-alerts.js +1 -0
  162. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -1
  163. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +1 -1
  164. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -1
  165. package/dist/configurator/ui/assistant/form/form-model.d.ts +3 -4
  166. package/dist/configurator/ui/assistant/form/form-state.d.ts +1 -1
  167. package/dist/configurator/ui/assistant/form/index.d.ts +2 -0
  168. package/dist/configurator/ui/assistant/form/index.js +1 -1
  169. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +3 -2
  170. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -1
  171. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +1 -1
  172. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -1
  173. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +3 -0
  174. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.js +1 -0
  175. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.d.ts +31 -0
  176. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.js +1 -0
  177. package/dist/configurator/ui/assistant/form/{form-element-definition.d.ts → registry/form-element-definition.d.ts} +3 -1
  178. package/dist/configurator/ui/assistant/form/registry/form-element-definition.js +1 -0
  179. package/dist/configurator/ui/assistant/form/{form-registry.d.ts → registry/form-registry.d.ts} +2 -2
  180. package/dist/configurator/ui/assistant/form/registry/form-registry.js +1 -0
  181. package/dist/configurator/ui/assistant/form/registry/index.d.ts +6 -0
  182. package/dist/configurator/ui/assistant/form/registry/index.js +1 -0
  183. package/dist/configurator/ui/assistant/form/registry/use-form-registry.d.ts +8 -0
  184. package/dist/configurator/ui/assistant/form/registry/use-form-registry.js +1 -0
  185. package/dist/configurator/ui/assistant/form-elements/FormCard.d.ts +9 -0
  186. package/dist/configurator/ui/assistant/form-elements/FormCard.js +1 -0
  187. package/dist/configurator/ui/assistant/form-elements/FormConfirm.d.ts +9 -0
  188. package/dist/configurator/ui/assistant/form-elements/FormConfirm.js +1 -0
  189. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +4 -1
  190. package/dist/configurator/ui/assistant/form-elements/FormNumber.d.ts +9 -0
  191. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -0
  192. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +4 -1
  193. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +4 -1
  194. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -1
  195. package/dist/configurator/ui/assistant/form-elements/FormSwatch.d.ts +10 -0
  196. package/dist/configurator/ui/assistant/form-elements/FormSwatch.js +1 -0
  197. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +4 -1
  198. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -1
  199. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.d.ts +10 -0
  200. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.js +1 -0
  201. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +20 -16
  202. package/dist/configurator/ui/assistant/form-elements/index.d.ts +4 -0
  203. package/dist/configurator/ui/assistant/form-elements/index.js +1 -1
  204. package/dist/configurator/ui/assistant/index.d.ts +3 -0
  205. package/dist/configurator/ui/assistant/index.js +1 -1
  206. package/dist/configurator/ui/assistant/resource-image/index.d.ts +1 -1
  207. package/dist/configurator/ui/assistant/resource-image/index.js +1 -1
  208. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +0 -9
  209. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -1
  210. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +9 -0
  211. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -0
  212. package/dist/configurator/ui/assistant/screenshots/index.d.ts +2 -0
  213. package/dist/configurator/ui/assistant/screenshots/index.js +1 -0
  214. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +22 -0
  215. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -0
  216. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.d.ts +8 -0
  217. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.js +1 -0
  218. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +2 -2
  219. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  220. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  221. package/dist/configurator/ui/configurator-layout/slots/canvas/LayoutCanvas.js +1 -1
  222. package/dist/configurator/ui/configurator-layout/slots/canvas/SharedCanvas.js +1 -1
  223. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.d.ts +5 -0
  224. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.js +1 -0
  225. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  226. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -1
  227. package/dist/configurator/ui/index.d.ts +1 -0
  228. package/dist/configurator/ui/index.js +1 -1
  229. package/dist/configurator/ui/legacy/layout/common/ReactiveInterfaceLayout.js +1 -1
  230. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.d.ts +0 -7
  231. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.js +2 -2
  232. package/dist/configurator/ui/phoenix-layout-elements/index.d.ts +8 -1
  233. package/dist/configurator/ui/phoenix-layout-elements/index.js +1 -1
  234. package/dist/configurator/ui/preset-layout/PresetUi.d.ts +0 -2
  235. package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
  236. package/dist/configurator/ui/preset-layout/index.d.ts +6 -1
  237. package/dist/configurator/ui/preset-layout/index.js +1 -1
  238. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -1
  239. package/dist/docs/complex-use-cases/focus-mode.mdx +2 -0
  240. package/dist/docs/fabs/basic.mdx +4 -0
  241. package/dist/docs/index.json +95 -1
  242. package/dist/docs/integrations/webcomponent-api/basics.mdx +2 -0
  243. package/dist/docs/layouts/custom-layout.mdx +320 -158
  244. package/dist/docs/layouts/gallery/ardent-compressor.mdx +3516 -0
  245. package/dist/docs/layouts/gallery/corvid-drone.mdx +3428 -0
  246. package/dist/docs/layouts/gallery/fenwick-window.mdx +2803 -0
  247. package/dist/docs/layouts/gallery/ferrule-bar-station.mdx +6567 -0
  248. package/dist/docs/layouts/gallery/kestrel-kettle.mdx +1858 -0
  249. package/dist/docs/layouts/gallery/nightjar-guitar.mdx +3698 -0
  250. package/dist/docs/layouts/gallery/sunfold-solar.mdx +2683 -0
  251. package/dist/docs/layouts/gallery/tidepool-aquascape.mdx +5203 -0
  252. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  253. package/dist/docs/other-features/navigation-hotspot.mdx +2 -0
  254. package/dist/docs/phoenix/configurator-interface.mdx +72 -14
  255. package/dist/docs/phoenix/sdk-builder-workflow.mdx +5 -3
  256. package/dist/docs/phoenix/sessions-and-access.mdx +2 -0
  257. package/dist/docs/selection-and-highlight/hotspots.mdx +2 -0
  258. package/dist/domain/application/assistant/assistant-manifest.d.ts +16 -1
  259. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +8 -1
  260. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  261. package/dist/domain/application/assistant/form/assistant-form-element-name.d.ts +11 -0
  262. package/dist/domain/application/assistant/form/assistant-form-element-name.js +8 -0
  263. package/dist/domain/application/assistant/form/assistant-form-elements.d.ts +174 -0
  264. package/dist/domain/application/assistant/form/assistant-form-elements.js +1 -0
  265. package/dist/domain/application/assistant/form/assistant-resource-path.d.ts +10 -0
  266. package/dist/domain/application/assistant/form/assistant-resource-path.js +1 -0
  267. package/dist/domain/application/assistant/form/index.d.ts +4 -0
  268. package/dist/domain/application/assistant/form/index.js +1 -0
  269. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  270. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  271. package/dist/domain/application/assistant/index.d.ts +2 -3
  272. package/dist/domain/application/assistant/index.js +1 -1
  273. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
  274. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +2 -0
  275. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
  276. package/dist/domain/application/configurator-builder.d.ts +7 -1
  277. package/dist/domain/application/configurator-builder.js +1 -1
  278. package/dist/domain/application/index.d.ts +1 -1
  279. package/dist/domain/application/index.js +1 -1
  280. package/dist/domain/application/standard-properties.js +1 -1
  281. package/dist/domain/application/web-component-property.d.ts +3 -1
  282. package/dist/domain/application/web-component-property.js +1 -1
  283. package/dist/domain/available-system-components.d.ts +1 -1
  284. package/dist/domain/available-system-components.js +1 -1
  285. package/dist/domain/domain-builder.d.ts +9 -3
  286. package/dist/domain/domain-builder.js +1 -1
  287. package/dist/domain/domain-context/store-system/store-system.d.ts +5 -0
  288. package/dist/domain/domain-context/store-system/store-system.js +1 -1
  289. package/dist/domain/domain-runtime/application.d.ts +39 -0
  290. package/dist/domain/domain-runtime/application.js +1 -0
  291. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +1 -0
  292. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  293. package/dist/domain/domain-runtime/domain-runtime.d.ts +44 -4
  294. package/dist/domain/domain-runtime/domain-runtime.js +1 -1
  295. package/dist/domain/domain-runtime/environment/initialize.d.ts +1 -1
  296. package/dist/domain/domain-runtime/environment/types.d.ts +1 -1
  297. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +2 -0
  298. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -1
  299. package/dist/domain/domain-runtime/index.d.ts +2 -1
  300. package/dist/domain/domain-runtime/index.js +1 -1
  301. package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
  302. package/dist/domain/domain-runtime/spec/index.js +1 -1
  303. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  304. package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +15 -1
  305. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -1
  306. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.d.ts +12 -0
  307. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +1 -0
  308. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +3 -1
  309. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -1
  310. package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.d.ts +23 -0
  311. package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.js +1 -0
  312. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +3 -4
  313. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -1
  314. package/dist/domain/domain-runtime/spec/selectors.d.ts +3 -1
  315. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  316. package/dist/domain/domain-runtime/web-component/actions.d.ts +3 -0
  317. package/dist/domain/domain-runtime/web-component/actions.js +1 -1
  318. package/dist/domain/domain-runtime/web-component/initialize.d.ts +1 -0
  319. package/dist/domain/domain-runtime/web-component/initialize.js +1 -1
  320. package/dist/domain/domain-runtime/web-component/selectors.d.ts +2 -0
  321. package/dist/domain/domain-runtime/web-component/selectors.js +1 -1
  322. package/dist/domain/domain-runtime/web-component/types.d.ts +6 -3
  323. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +24 -0
  324. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -0
  325. package/dist/domain/extensions/{client-side-image.d.ts → export-images/client-side-image.d.ts} +2 -2
  326. package/dist/domain/extensions/export-images/client-side-image.js +1 -0
  327. package/dist/domain/extensions/export-images/index.d.ts +3 -0
  328. package/dist/domain/extensions/export-images/index.js +1 -0
  329. package/dist/domain/extensions/{save-template-thumbnail.d.ts → export-images/save-template-thumbnail.d.ts} +2 -2
  330. package/dist/domain/extensions/export-images/save-template-thumbnail.js +1 -0
  331. package/dist/domain/extensions/index.d.ts +1 -2
  332. package/dist/domain/extensions/index.js +1 -1
  333. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +9 -0
  334. package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
  335. package/dist/editor/domain-editors/apply-spec-update.d.ts +10 -2
  336. package/dist/editor/domain-editors/apply-spec-update.js +1 -1
  337. package/dist/editor/domain-editors/use-implementation-files.d.ts +6 -14
  338. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  339. package/dist/editor/screenshot/ScreenshotHandler.js +1 -1
  340. package/dist/i18n/locales/cs/messages.js +1 -1
  341. package/dist/i18n/locales/da/messages.js +1 -1
  342. package/dist/i18n/locales/de/messages.js +1 -1
  343. package/dist/i18n/locales/de-AT/messages.js +1 -1
  344. package/dist/i18n/locales/en/messages.js +1 -1
  345. package/dist/i18n/locales/en-AU/messages.js +1 -1
  346. package/dist/i18n/locales/en-GB/messages.js +1 -1
  347. package/dist/i18n/locales/es/messages.js +1 -1
  348. package/dist/i18n/locales/fr/messages.js +1 -1
  349. package/dist/i18n/locales/hu/messages.js +1 -1
  350. package/dist/i18n/locales/it/messages.js +1 -1
  351. package/dist/i18n/locales/nl/messages.js +1 -1
  352. package/dist/i18n/locales/pl/messages.js +1 -1
  353. package/dist/i18n/locales/pt/messages.js +1 -1
  354. package/dist/i18n/locales/ro/messages.js +1 -1
  355. package/dist/i18n/locales/sk/messages.js +1 -1
  356. package/dist/i18n/locales/tr/messages.js +1 -1
  357. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  358. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  359. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +16 -0
  360. package/dist/legacy/domain-spec/spec/domain-spec.js +1 -1
  361. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  362. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  363. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  364. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +11 -5
  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 +2 -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/scene-control-elements/AddEntityFabElement.d.ts +36 -0
  486. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.js +1 -0
  487. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.d.ts +44 -0
  488. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.js +1 -0
  489. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.d.ts +38 -0
  490. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.js +1 -0
  491. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.d.ts +30 -0
  492. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.js +1 -0
  493. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.d.ts +30 -0
  494. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.js +1 -0
  495. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.d.ts +9 -0
  496. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.js +1 -0
  497. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.d.ts +9 -0
  498. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.js +1 -0
  499. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.d.ts +10 -0
  500. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.js +1 -0
  501. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.d.ts +9 -0
  502. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.js +1 -0
  503. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.d.ts +9 -0
  504. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.js +1 -0
  505. package/dist/react-sdk/scene-control-elements/index.d.ts +11 -0
  506. package/dist/react-sdk/scene-control-elements/index.js +1 -0
  507. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.d.ts +5 -0
  508. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.js +1 -0
  509. package/dist/react-sdk/session/SessionServiceProvider.js +1 -1
  510. package/dist/react-sdk/web-component/create-web-component.js +1 -1
  511. package/dist/react-sdk/web-component/god-mode/god-mode-registry.d.ts +30 -0
  512. package/dist/react-sdk/web-component/god-mode/god-mode-registry.js +1 -0
  513. package/dist/react-sdk/web-component/god-mode/index.d.ts +1 -0
  514. package/dist/react-sdk/web-component/god-mode/index.js +1 -0
  515. package/dist/ui-sdk/icons/__generated/Lightbulb.d.ts +3 -0
  516. package/dist/ui-sdk/icons/__generated/Lightbulb.js +1 -0
  517. package/dist/ui-sdk/icons/__generated/XCircle.d.ts +3 -0
  518. package/dist/ui-sdk/icons/__generated/XCircle.js +1 -0
  519. package/dist/ui-sdk/icons/__generated/index.d.ts +4 -0
  520. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  521. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  522. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +2 -2
  523. package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +11 -9
  524. package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -1
  525. package/dist/ui-sdk/theme/types.d.ts +5 -1
  526. package/package.json +13 -3
  527. package/schema/domain-spec.json +140 -0
  528. package/dist/configurator/app-loader-content/app-loader-content-name.d.ts +0 -5
  529. package/dist/configurator/app-loader-content/app-loader-content-name.js +0 -1
  530. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.js +0 -1
  531. package/dist/configurator/configurator-error-page/create-configurator-error-page.js +0 -1
  532. package/dist/configurator/ui/assistant/form/built-in-form-registry.d.ts +0 -10
  533. package/dist/configurator/ui/assistant/form/built-in-form-registry.js +0 -1
  534. package/dist/configurator/ui/assistant/form/form-registry.js +0 -8
  535. package/dist/domain/application/assistant/assistant-form-elements.d.ts +0 -28
  536. package/dist/domain/application/assistant/assistant-form-elements.js +0 -1
  537. package/dist/domain/extensions/client-side-image.js +0 -1
  538. package/dist/domain/extensions/save-template-thumbnail.js +0 -1
  539. package/dist/react-sdk/application-runtime/runtime/god-mode.d.ts +0 -19
  540. package/dist/react-sdk/application-runtime/runtime/god-mode.js +0 -1
  541. package/dist/react-sdk/loading-state/LoadingStateProvider.js +0 -1
  542. package/dist/react-sdk/loading-state/loading-state-manager.d.ts +0 -37
  543. package/dist/react-sdk/loading-state/loading-state-manager.js +0 -1
  544. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.d.ts +0 -25
  545. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.js +0 -1
  546. package/dist/react-sdk/responsive-state/canvas-padding.d.ts +0 -14
  547. package/dist/react-sdk/responsive-state/index.d.ts +0 -5
  548. package/dist/react-sdk/responsive-state/index.js +0 -1
  549. package/dist/react-sdk/responsive-state/responsive-state-manager.d.ts +0 -111
  550. package/dist/react-sdk/responsive-state/responsive-state-manager.js +0 -1
  551. package/dist/react-sdk/responsive-state/use-responsive-state-manager.d.ts +0 -10
  552. package/dist/react-sdk/responsive-state/use-responsive-state-manager.js +0 -1
  553. package/dist/react-sdk/responsive-state/use-responsive-state.d.ts +0 -11
  554. package/dist/react-sdk/responsive-state/use-responsive-state.js +0 -1
  555. /package/dist/{configurator/ui/assistant/form/form-element-definition.js → react-sdk/application-runtime/host-properties/types.js} +0 -0
  556. /package/dist/react-sdk/{elements/configurator-error-page-props.js → application-runtime/loading/types.js} +0 -0
  557. /package/dist/react-sdk/{responsive-state/canvas-padding.js → application-runtime/responsive/types.js} +0 -0
  558. /package/dist/react-sdk/{elements → page-elements}/configurator-error-page-props.d.ts +0 -0
@@ -0,0 +1,18 @@
1
+ import type { WebComponentPropertyDescriptor, standardWebComponentProperties } from '#package/domain';
2
+ import type { HostPropertyName, MirroredHostPropertyName } from './host-property-scopes.js';
3
+ type StandardWebComponentProperties = typeof standardWebComponentProperties;
4
+ type PropertyValue<DESCRIPTOR> = DESCRIPTOR extends WebComponentPropertyDescriptor<infer T> ? T : never;
5
+ /** The value type of a mirrored standard web-component property. */
6
+ export type HostPropertyValue<NAME extends MirroredHostPropertyName> = PropertyValue<StandardWebComponentProperties[NAME]>;
7
+ /**
8
+ * The current value of each application-scoped standard web-component property, as the host set
9
+ * it on the element, or the property's default. The domain-scoped ones, `readonly` and `locale`,
10
+ * live in the domain's `webComponent` slice instead.
11
+ *
12
+ * A read mirror: the element's property storage stays the single store, and writes keep going
13
+ * through the element setters.
14
+ */
15
+ export type HostPropertiesState = {
16
+ readonly [NAME in HostPropertyName]: HostPropertyValue<NAME>;
17
+ };
18
+ export {};
@@ -4,7 +4,10 @@ export * from './hooks/index.js';
4
4
  export * from './web-component/index.js';
5
5
  export * from './common-services/index.js';
6
6
  export * from './domain-application-context/index.js';
7
+ export type { HostPropertiesState, HostPropertyName } from './host-properties/index.js';
7
8
  export * from './integration/index.js';
9
+ export { type LoadingActions, type LoadingApplicationState, type LoadingPhase, type LoadingRuntimeState, type LoadingState, } from './loading/index.js';
10
+ export { type CanvasPadding, type ResponsiveApplicationState, type ResponsiveBreakpoints, type ResponsiveRuntimeState, type ResponsiveState, type ResponsiveViewport, type ResponsiveViewportSize, } from './responsive/index.js';
8
11
  export * from './routing/index.js';
9
12
  export * from './session/index.js';
10
13
  export * from './mocks/index.js';
@@ -1,7 +1,8 @@
1
- import type { IntegrationActions } from './actions.js';
2
1
  import type { IntegrationState } from './types.js';
3
- interface Context {
4
- readonly actions: IntegrationActions;
5
- }
6
- export declare const initializeIntegration: (context: Context) => IntegrationState;
7
- export {};
2
+ /**
3
+ * The integration slice's initial state. The admin integration service is not part of it: the
4
+ * integration selectors own it.
5
+ *
6
+ * @internal Runtime plumbing for the SDK's own UI.
7
+ */
8
+ export declare const initializeIntegration: () => IntegrationState;
@@ -1 +1 @@
1
- import{AdminIntegrationService as e}from"./admin-integration-service.js";export const initializeIntegration=i=>{let{actions:n}=i;return{adminIntegrationService:new e({actions:n}),embeddedView:null}};
1
+ export const initializeIntegration=()=>({embeddedView:null});
@@ -1,17 +1,26 @@
1
+ import type { IntegrationActions } from './actions.js';
2
+ import { AdminIntegrationService } from './admin-integration-service.js';
1
3
  import type { IntegrationState } from './types.js';
2
4
  export interface IntegrationSelectorState {
3
5
  readonly integration: IntegrationState;
4
6
  }
5
7
  interface Context {
6
8
  readonly getState: () => IntegrationSelectorState;
9
+ /** The actions the selector-owned admin integration service calls. */
10
+ readonly actions: IntegrationActions;
7
11
  }
12
+ /**
13
+ * The integration selectors. They own the runtime's admin integration service, built from the
14
+ * given actions.
15
+ *
16
+ * @internal Runtime plumbing for the SDK's own UI.
17
+ */
8
18
  export declare const createIntegrationSelectors: (context: Context) => {
9
- selectAdminIntegrationService: import("@salsita-ai/common/utils").Selector<IntegrationSelectorState, import("./admin-integration-service.js").AdminIntegrationService>;
10
19
  selectIntegrationState: import("@salsita-ai/common/utils").Selector<IntegrationSelectorState, IntegrationState>;
11
20
  selectEmbeddedView: import("@salsita-ai/common/utils").Selector<IntegrationSelectorState, import("./types.js").EmbeddedView>;
12
21
  selectPresetEmbeddedState: import("@salsita-ai/common/utils").Selector<IntegrationSelectorState, import("./types.js").PresetEmbeddedView | null>;
13
22
  selectRecipeEmbeddedState: import("@salsita-ai/common/utils").Selector<IntegrationSelectorState, import("./types.js").RecipeEmbeddedView | null>;
14
- getAdminIntegrationService: () => import("./admin-integration-service.js").AdminIntegrationService;
23
+ getAdminIntegrationService: () => AdminIntegrationService;
15
24
  getIntegrationState: () => IntegrationState;
16
25
  getEmbeddedView: () => import("./types.js").EmbeddedView;
17
26
  getPresetEmbeddedState: () => import("./types.js").PresetEmbeddedView | null;
@@ -1 +1 @@
1
- import{createSelector as e}from"@salsita-ai/common/utils";export const createIntegrationSelectors=t=>{let{getState:i}=t,n=e.withTypes(),r=n.leaf(e=>e.integration.adminIntegrationService),a=n.leaf(e=>e.integration),d=n.leaf(e=>e.integration.embeddedView),o=n([d],e=>e?.type==="recipe"?e:null),g=n([d],e=>e?.type==="preset"?e:null);return{selectAdminIntegrationService:r,selectIntegrationState:a,selectEmbeddedView:d,selectPresetEmbeddedState:g,selectRecipeEmbeddedState:o,getAdminIntegrationService:()=>r(i()),getIntegrationState:()=>a(i()),getEmbeddedView:()=>d(i()),getPresetEmbeddedState:()=>g(i()),getRecipeEmbeddedState:()=>o(i())}};
1
+ import{createSelector as e}from"@salsita-ai/common/utils";import{AdminIntegrationService as t}from"./admin-integration-service.js";export const createIntegrationSelectors=i=>{let{getState:n,actions:r}=i,a=e.withTypes(),o=new t({actions:r}),d=a.leaf(e=>e.integration),m=a.leaf(e=>e.integration.embeddedView),g=a([m],e=>e?.type==="recipe"?e:null),l=a([m],e=>e?.type==="preset"?e:null);return{selectIntegrationState:d,selectEmbeddedView:m,selectPresetEmbeddedState:l,selectRecipeEmbeddedState:g,getAdminIntegrationService:()=>o,getIntegrationState:()=>d(n()),getEmbeddedView:()=>m(n()),getPresetEmbeddedState:()=>l(n()),getRecipeEmbeddedState:()=>g(n())}};
@@ -1,5 +1,4 @@
1
1
  import type { DomainEntityId, Preset, Recipe } from '#package/domain';
2
- import type { AdminIntegrationService } from './admin-integration-service.js';
3
2
  export interface PresetEmbeddedView {
4
3
  readonly type: 'preset';
5
4
  readonly presetId: Preset['id'];
@@ -11,7 +10,11 @@ export interface RecipeEmbeddedView {
11
10
  readonly rootRecipeId?: DomainEntityId<string>;
12
11
  }
13
12
  export type EmbeddedView = PresetEmbeddedView | RecipeEmbeddedView | null;
13
+ /**
14
+ * The integration slice's state, as the runtime state and `useIntegrationState()` hold it. The admin
15
+ * integration service is not part of it: the integration selectors own it, and
16
+ * `getAdminIntegrationService()` returns it.
17
+ */
14
18
  export interface IntegrationState {
15
- readonly adminIntegrationService: AdminIntegrationService;
16
19
  readonly embeddedView: EmbeddedView;
17
20
  }
@@ -0,0 +1,45 @@
1
+ import type { DomainApplicationType } from '#package/domain';
2
+ import type { LoadingPhase, LoadingRuntimeState } from './types.js';
3
+ interface Context {
4
+ readonly setLoading: (fn: (state: LoadingRuntimeState) => LoadingRuntimeState) => void;
5
+ }
6
+ /**
7
+ * Every action returns the slice unchanged when the value is already set, so the runtime publishes
8
+ * nothing and no subscriber recomputes.
9
+ */
10
+ declare const createApplicationActions: (context: Context, applicationType: DomainApplicationType) => {
11
+ startPhase: (phase: LoadingPhase) => void;
12
+ endPhase: (id: string) => void;
13
+ reportError: () => void;
14
+ clearError: () => void;
15
+ expectPhase: (id: string) => void;
16
+ dropExpectation: (id: string) => void;
17
+ resetSlot: () => void;
18
+ };
19
+ /** One set of actions per application, as the domain context keys its own. */
20
+ export declare const createLoadingActions: (context: Context) => {
21
+ configurator: {
22
+ startPhase: (phase: LoadingPhase) => void;
23
+ endPhase: (id: string) => void;
24
+ reportError: () => void;
25
+ clearError: () => void;
26
+ expectPhase: (id: string) => void;
27
+ dropExpectation: (id: string) => void;
28
+ resetSlot: () => void;
29
+ };
30
+ admin: {
31
+ startPhase: (phase: LoadingPhase) => void;
32
+ endPhase: (id: string) => void;
33
+ reportError: () => void;
34
+ clearError: () => void;
35
+ expectPhase: (id: string) => void;
36
+ dropExpectation: (id: string) => void;
37
+ resetSlot: () => void;
38
+ };
39
+ };
40
+ /**
41
+ * @internal Runtime plumbing for the SDK's own UI. A project reports a phase with
42
+ * `phx.frontend.useLoadingState()`.
43
+ */
44
+ export type LoadingActions = ReturnType<typeof createApplicationActions>;
45
+ export {};
@@ -0,0 +1 @@
1
+ import{initializeLoadingApplication as e}from"./initialize.js";let t=(e,t)=>e.has(t)?e:new Set([...e,t]),s=(s,r)=>{let a=e=>{s.setLoading(t=>{let s=t[r],a=e(s);return a===s?t:{...t,[r]:a}})},n=e=>{a(t=>t.hasError===e?t:{...t,hasError:e})};return{startPhase:e=>{a(s=>{let r=((e,t)=>{let s=e.findIndex(e=>e.id===t.id);if(-1===s)return[...e,t];let r=e[s];return void 0!==r&&r.id===t.id&&r.progress===t.progress&&r.label===t.label?e:e.map(e=>e.id===t.id?t:e)})(s.phases,e),a=t(s.seenPhaseIds,e.id);return r===s.phases&&a===s.seenPhaseIds?s:{...s,phases:r,seenPhaseIds:a}})},endPhase:e=>{a(t=>t.phases.some(t=>t.id===e)?{...t,phases:t.phases.filter(t=>t.id!==e)}:t)},reportError:()=>{n(!0)},clearError:()=>{n(!1)},expectPhase:e=>{a(s=>{let r=s.expectationCounts.get(e)??0,a=new Map(s.expectationCounts).set(e,r+1);return{...s,expectationCounts:a,expectedPhaseIds:t(s.expectedPhaseIds,e)}})},dropExpectation:e=>{a(t=>{let s=t.expectationCounts.get(e);if(void 0===s)return t;let r=new Map(t.expectationCounts);return s>1?(r.set(e,s-1),{...t,expectationCounts:r}):(r.delete(e),{...t,expectationCounts:r,expectedPhaseIds:((e,t)=>{if(!e.has(t))return e;let s=new Set(e);return s.delete(t),s})(t.expectedPhaseIds,e)})})},resetSlot:()=>{a(t=>0!==t.phases.length||t.hasError||0!==t.expectedPhaseIds.size||0!==t.seenPhaseIds.size?e():t)}}};export const createLoadingActions=e=>({configurator:s(e,"configurator"),admin:s(e,"admin")});
@@ -0,0 +1,4 @@
1
+ export * from './actions.js';
2
+ export * from './initialize.js';
3
+ export * from './selectors.js';
4
+ export type * from './types.js';
@@ -0,0 +1 @@
1
+ export*from"./actions.js";export*from"./initialize.js";export*from"./selectors.js";
@@ -0,0 +1,3 @@
1
+ import type { LoadingApplicationState, LoadingRuntimeState } from './types.js';
2
+ export declare const initializeLoadingApplication: () => LoadingApplicationState;
3
+ export declare const initializeLoading: () => LoadingRuntimeState;
@@ -0,0 +1 @@
1
+ export const initializeLoadingApplication=()=>({phases:[],hasError:!1,expectedPhaseIds:new Set,expectationCounts:new Map,seenPhaseIds:new Set});export const initializeLoading=()=>({configurator:initializeLoadingApplication(),admin:initializeLoadingApplication()});
@@ -0,0 +1,18 @@
1
+ import type { DomainApplicationType } from '#package/domain';
2
+ import type { LoadingRuntimeState, LoadingState } from './types.js';
3
+ export interface LoadingSelectorState {
4
+ readonly loading: LoadingRuntimeState;
5
+ }
6
+ interface Context {
7
+ readonly getState: () => LoadingSelectorState;
8
+ readonly applicationType: DomainApplicationType;
9
+ }
10
+ /** The selectors of one application's loading state; the runtime creates one set per application. */
11
+ export declare const createLoadingSelectors: (context: Context) => {
12
+ selectLoadingState: import("@salsita-ai/common/utils").Selector<LoadingSelectorState, LoadingState>;
13
+ getLoadingState: () => LoadingState;
14
+ /** Whether the phase `id` is expected and has not started since the last reset. */
15
+ getIsAwaitingPhase: (id: string) => boolean;
16
+ };
17
+ export type LoadingSelectors = ReturnType<typeof createLoadingSelectors>;
18
+ export {};
@@ -0,0 +1 @@
1
+ import{createSelector as e}from"@salsita-ai/common/utils";export const createLoadingSelectors=a=>{let{getState:s,applicationType:t}=a,i=e.withTypes(),o=i.leaf(e=>e.loading[t].phases),l=i.leaf(e=>e.loading[t].hasError),n=i.leaf(e=>e.loading[t].expectedPhaseIds),r=i.leaf(e=>e.loading[t].seenPhaseIds),g=i([o,l,n],(e,a,s)=>({isLoading:e.length>0,hasError:a,phases:e,expectedPhaseIds:s}));return{selectLoadingState:g,getLoadingState:()=>g(s()),getIsAwaitingPhase:e=>{let a=s();return n(a).has(e)&&!r(a).has(e)}}};
@@ -0,0 +1,59 @@
1
+ /**
2
+ * One step of an application's load that the loader shows while it runs: authenticating the
3
+ * session, fetching data, loading the 3D scene, or a step a project reports itself.
4
+ */
5
+ export interface LoadingPhase {
6
+ readonly id: string;
7
+ /** From 0 to 1, when the step can tell how far it is. */
8
+ readonly progress?: number;
9
+ readonly label?: string;
10
+ }
11
+ /**
12
+ * The aggregated loading state the loader renders: the running phases in the order they started,
13
+ * and whether the load failed.
14
+ */
15
+ export interface LoadingState {
16
+ /** `true` while at least one phase runs. */
17
+ readonly isLoading: boolean;
18
+ readonly hasError: boolean;
19
+ readonly phases: readonly LoadingPhase[];
20
+ /** The phases the loader waits for before they start, so it does not flash off in between. */
21
+ readonly expectedPhaseIds: ReadonlySet<string>;
22
+ }
23
+ /**
24
+ * The loading state of one application.
25
+ *
26
+ * The loader host resets it when it mounts, which happens when the configurator is powered on or
27
+ * remounted; phases written before that are not shown. Whether a component is below the loader
28
+ * host is not part of it: that is a fact about the React tree, read with `useIsLoaderHosted()`.
29
+ *
30
+ * @internal Runtime plumbing for the SDK's own UI. A project reads the loading state with
31
+ * `phx.frontend.useLoadingStateValue()` and reports a phase with `phx.frontend.useLoadingState()`.
32
+ */
33
+ export interface LoadingApplicationState {
34
+ /** The running phases, in the order they started. Restarting a phase keeps its position. */
35
+ readonly phases: readonly LoadingPhase[];
36
+ readonly hasError: boolean;
37
+ readonly expectedPhaseIds: ReadonlySet<string>;
38
+ /**
39
+ * How many callers expect each phase of `expectedPhaseIds`: the components that mount the canvas
40
+ * nest, and an inner one unmounting must not drop the phase an outer one still expects.
41
+ */
42
+ readonly expectationCounts: ReadonlyMap<string, number>;
43
+ /**
44
+ * Every phase that started since the last reset. An expected phase that was seen once is no
45
+ * longer waited for, so a second configuration does not wait for the scene again.
46
+ */
47
+ readonly seenPhaseIds: ReadonlySet<string>;
48
+ }
49
+ /**
50
+ * The `loading` slice, one entry per application: an admin that embeds a configurator runs both in
51
+ * one runtime, and only the configurator hosts a loader.
52
+ *
53
+ * @internal Runtime plumbing for the SDK's own UI. A project reads the loading state with
54
+ * `phx.frontend.useLoadingStateValue()` and reports a phase with `phx.frontend.useLoadingState()`.
55
+ */
56
+ export interface LoadingRuntimeState {
57
+ readonly configurator: LoadingApplicationState;
58
+ readonly admin: LoadingApplicationState;
59
+ }
@@ -1 +1 @@
1
- import{memoOnce as e}from"@salsita-ai/common/utils";import{AccessLevel as t}from"@salsita-ai/contracts/api";import{createDomainRuntime as o,createMockDomainRuntimeServices as n,createMockSessionContext as s}from"#package/domain";import{createCommonServicesSelectors as i}from"../common-services/index.js";import{createDomainApplicationContextSelectors as a}from"../domain-application-context/index.js";import{createIntegrationActions as r,createIntegrationSelectors as c,initializeIntegration as m}from"../integration/index.js";import{createRoutingActions as d,createRoutingSelectors as p,initializeRouting as l}from"../routing/index.js";import{SessionService as S,createSessionRuntimeActions as g,createSessionRuntimeSelectors as v,initializeSessionRuntime as u}from"../session/index.js";import{createMockWebComponentApi as f}from"../web-component/index.js";export const createMockApplicationRuntime=(C,x)=>{var b;let w,y,A,D,k,E,I,R,h,j,O,T,L,F,M,{sessionData:U,mode:V,role:z}=x,q=n(),B=(b={webComponentOptions:x.webComponentOptions??C.mount.options,webComponentApi:x.webComponentApi??f()},A=u(),D=o({config:C,services:q,getExtensionSystems:e=>M[e].getInitializableSystems()}),k=new Set,E=()=>{k.forEach(e=>{e()})},w=m({actions:I=r({setIntegration:e=>{w=e(w),E()}})}),R=c({getState:()=>({integration:w})}),h=d({setRouting:e=>{y=e(y),E()}}),y=l(),j=p({getState:()=>({...D.getState(),routing:y}),actions:h,accessActions:D.actions.access,loadedDataActions:D.actions.loadedData,domainServicesSelectors:D.selectors.domainServices,overridesSelectors:D.selectors.overrides}),O=i({getState:()=>({...D.getState(),session:A}),environmentSelectors:D.selectors.environment,specSelectors:D.selectors.spec,accessSelectors:D.selectors.access,domainServicesSelectors:D.selectors.domainServices,webComponentOptions:b.webComponentOptions,webComponentApi:b.webComponentApi,getSessionService:()=>F(),routingSelectors:j}),T=g({setSessionRuntime:e=>{A=e(A),E()}}),L=v({getState:()=>({...D.getState(),session:A}),sessionContextSelectors:D.selectors.sessionContext}),F=e(()=>new S({getLogger:()=>D.selectors.domainServices.getLogger(),getAnalyticsService:()=>D.selectors.domainServices.getAnalyticsService(),getUnauthenticatedClient:O.getUnauthenticatedClient,environmentSelectors:D.selectors.environment,sessionActions:T,setSessionContext:D.actions.sessionContext.setSessionContext,sessionSelectors:L,specSelectors:D.selectors.spec})),M={configurator:a({applicationType:"configurator",commonServicesSelectors:O,domainServicesSelectors:D.selectors.domainServices,domainContextSelectors:D.selectors.domainContext.configurator,getApplicationRuntimeExtensions:()=>[]}),admin:a({applicationType:"admin",commonServicesSelectors:O,domainServicesSelectors:D.selectors.domainServices,domainContextSelectors:D.selectors.domainContext.admin,getApplicationRuntimeExtensions:()=>[]})},{subscribe:e=>{k.add(e);let t=D.subscribe(e);return()=>{k.delete(e),t()}},getState:()=>({...D.getState(),integration:w,routing:y,session:A}),selectors:{...D.selectors,commonServices:O,integration:R,routing:j,session:L,domainApplicationContext:M},actions:{...D.actions,integration:I,routing:h,session:T}}),G=B.getState().spec;return B.actions.spec.updateSpec({...G,configurator:{...G.configurator,createTransformers:e=>x.transformers.map(t=>t.transformer.register(e,t.priority??1/0))}}),B.actions.sessionContext.setSessionContext(s(z,U)),B.actions.access.setConfiguratorAccessInfo({raw:"mock-access-token",access:"read"===V?t.Read:t.Owner,viewMode:"read"===V,revisionId:void 0,configurationId:"mock"}),B.actions.domainData.setDomainData({publishedData:x.publishedData,frontendData:x.frontendData,backendData:x.backendData}),B.actions.loadedData.completeConfiguratorLoad({initialRevisionId:"mock-revision",initialEntities:x.entities,modelVersion:C.domain.domainFactory.modelVersion,rootEntityType:x.rootEntityType,schemaIdentity:C.domain.domainFactory}),B};
1
+ import{memoOnce as e}from"@salsita-ai/common/utils";import{AccessLevel as t}from"@salsita-ai/contracts/api";import{createDomainRuntime as o,createMockDomainRuntimeServices as n,createMockSessionContext as i}from"#package/domain";import{createCommonServicesSelectors as s}from"../common-services/index.js";import{createDomainApplicationContextSelectors as a}from"../domain-application-context/index.js";import{connectHostProperties as r,createHostPropertiesActions as c,createHostPropertiesSelectors as m,initializeHostProperties as p}from"../host-properties/index.js";import{createIntegrationActions as d,createIntegrationSelectors as l,initializeIntegration as g}from"../integration/index.js";import{createLoadingActions as S,createLoadingSelectors as f,initializeLoading as v}from"../loading/index.js";import{createResponsiveActions as u,createResponsiveSelectors as C,initializeResponsive as x}from"../responsive/index.js";import{createRoutingActions as b,createRoutingSelectors as y,initializeRouting as w}from"../routing/index.js";import{SessionService as A,createSessionRuntimeActions as D,createSessionRuntimeSelectors as R,initializeSessionRuntime as h}from"../session/index.js";import{createMockWebComponentApi as j}from"../web-component/index.js";export const createMockApplicationRuntime=(T,k)=>{var E;let I,L,O,M,F,P,U,V,z,H,q,B,G,J,K,N,Q,W,X,Y,Z,$,_,ee,{sessionData:et,mode:eo,role:en}=k,ei=n(),es=(E={webComponentOptions:k.webComponentOptions??T.mount.options,webComponentApi:k.webComponentApi??j()},O=h(),M=o({config:T,services:ei,getExtensionSystems:e=>ee[e].getInitializableSystems()}),F=new Set,P=()=>{F.forEach(e=>{e()})},U=d({setIntegration:e=>{I=e(I),P()}}),I=g(),V=l({getState:()=>({integration:I}),actions:U}),z=b({setRouting:e=>{L=e(L),P()}}),L=w(),H=y({getState:()=>({...M.getState(),routing:L}),actions:z,accessActions:M.actions.access,loadedDataActions:M.actions.loadedData,domainServicesSelectors:M.selectors.domainServices,overridesSelectors:M.selectors.overrides}),q=x(),B=u({setResponsive:e=>{let t=e(q);t!==q&&(q=t,P())}}),G={configurator:C({getState:()=>({responsive:q}),applicationType:"configurator"}),admin:C({getState:()=>({responsive:q}),applicationType:"admin"})},J=v(),K=S({setLoading:e=>{let t=e(J);t!==J&&(J=t,P())}}),N={configurator:f({getState:()=>({loading:J}),applicationType:"configurator"}),admin:f({getState:()=>({loading:J}),applicationType:"admin"})},Q=p(E.webComponentApi),W=c({setHostProperties:e=>{let t=e(Q);t!==Q&&(Q=t,P())}}),X=m({getState:()=>({hostProperties:Q})}),r({webComponentApi:E.webComponentApi,actions:W,domainSelectors:M.selectors.webComponent,domainActions:{setReadonly:M.actions.webComponent.setReadonly,setLocale:M.hostMirrorActions.setLocale}}),Y=s({getState:()=>({...M.getState(),session:O}),environmentSelectors:M.selectors.environment,specSelectors:M.selectors.spec,accessSelectors:M.selectors.access,domainServicesSelectors:M.selectors.domainServices,webComponentOptions:E.webComponentOptions,webComponentApi:E.webComponentApi,getSessionService:()=>_(),routingSelectors:H}),Z=D({setSessionRuntime:e=>{O=e(O),P()}}),$=R({getState:()=>({...M.getState(),session:O}),sessionContextSelectors:M.selectors.sessionContext}),_=e(()=>new A({getLogger:()=>M.selectors.domainServices.getLogger(),getAnalyticsService:()=>M.selectors.domainServices.getAnalyticsService(),getUnauthenticatedClient:Y.getUnauthenticatedClient,environmentSelectors:M.selectors.environment,sessionActions:Z,setSessionContext:M.actions.sessionContext.setSessionContext,sessionSelectors:$,specSelectors:M.selectors.spec})),ee={configurator:a({applicationType:"configurator",commonServicesSelectors:Y,domainServicesSelectors:M.selectors.domainServices,domainContextSelectors:M.selectors.domainContext.configurator,getApplicationRuntimeExtensions:()=>[]}),admin:a({applicationType:"admin",commonServicesSelectors:Y,domainServicesSelectors:M.selectors.domainServices,domainContextSelectors:M.selectors.domainContext.admin,getApplicationRuntimeExtensions:()=>[]})},{subscribe:e=>{F.add(e);let t=M.subscribe(e);return()=>{F.delete(e),t()}},getState:()=>({...M.getState(),hostProperties:Q,integration:I,loading:J,responsive:q,routing:L,session:O}),selectors:{...M.selectors,commonServices:Y,hostProperties:X,integration:V,loading:N,responsive:G,routing:H,session:$,domainApplicationContext:ee},actions:{...M.actions,integration:U,loading:K,responsive:B,routing:z,session:Z}}),ea=es.getState().spec;return es.actions.spec.updateSpec({...ea,configurator:{...ea.configurator,createTransformers:e=>k.transformers.map(t=>t.transformer.register(e,t.priority??1/0))}}),es.actions.sessionContext.setSessionContext(i(en,et)),es.actions.access.setConfiguratorAccessInfo({raw:"mock-access-token",access:"read"===eo?t.Read:t.Owner,viewMode:"read"===eo,revisionId:void 0,configurationId:"mock"}),es.actions.domainData.setDomainData({publishedData:k.publishedData,frontendData:k.frontendData,backendData:k.backendData}),es.actions.loadedData.completeConfiguratorLoad({initialRevisionId:"mock-revision",initialEntities:k.entities,modelVersion:T.domain.domainFactory.modelVersion,rootEntityType:k.rootEntityType,schemaIdentity:T.domain.domainFactory}),es};
@@ -5,5 +5,11 @@ interface ApplicationRuntimeProviderProps {
5
5
  readonly runtime: ApplicationRuntime;
6
6
  }
7
7
  export declare const ApplicationRuntimeProvider: (props: ApplicationRuntimeProviderProps) => import("react/jsx-runtime").JSX.Element;
8
+ /**
9
+ * The runtime, or `null` outside an `ApplicationRuntimeProvider`, for hooks that must work without one.
10
+ *
11
+ * @internal Runtime plumbing for the SDK's own UI.
12
+ */
13
+ export declare const useOptionalApplicationRuntime: () => ApplicationRuntime | null;
8
14
  export declare const useApplicationRuntime: () => ApplicationRuntime;
9
15
  export {};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{createContext as e,useContext as i}from"react";let r=e(null);export const ApplicationRuntimeProvider=e=>{let{children:i,runtime:o}=e;return t(r.Provider,{value:o,children:i})};export const useApplicationRuntime=()=>{let t=i(r);if(!t)throw Error("ApplicationRuntime context not found! useApplicationRuntime() must be used within an ApplicationRuntimeProvider. Use the hook appropriately.");return t};
1
+ import{jsx as t}from"react/jsx-runtime";import{createContext as e,useContext as i}from"react";let o=e(null);export const ApplicationRuntimeProvider=e=>{let{children:i,runtime:r}=e;return t(o.Provider,{value:r,children:i})};export const useOptionalApplicationRuntime=()=>i(o);export const useApplicationRuntime=()=>{let t=i(o);if(!t)throw Error("ApplicationRuntime context not found! useApplicationRuntime() must be used within an ApplicationRuntimeProvider. Use the hook appropriately.");return t};
@@ -6,4 +6,11 @@ interface ApplicationTypeProviderProps {
6
6
  }
7
7
  export declare const ApplicationTypeProvider: (props: ApplicationTypeProviderProps) => import("react/jsx-runtime").JSX.Element;
8
8
  export declare const useApplicationType: () => ApplicationType;
9
+ /**
10
+ * The application type of the nearest `ApplicationTypeProvider`, or `null` outside one, for the
11
+ * hooks that some application-agnostic providers call and that have nothing to do there.
12
+ *
13
+ * @internal Runtime plumbing for the SDK's own UI.
14
+ */
15
+ export declare const useOptionalApplicationType: () => ApplicationType | null;
9
16
  export {};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{createContext as t,useContext as r}from"react";let o=t(null);export const ApplicationTypeProvider=t=>{let{children:r,type:p}=t;return e(o.Provider,{value:p,children:r})};export const useApplicationType=()=>{let e=r(o);if(!e)throw Error("ApplicationType context not found! useApplicationType() must be used within an ApplicationTypeProvider. Use the hook appropriately.");return e};
1
+ import{jsx as e}from"react/jsx-runtime";import{createContext as t,useContext as o}from"react";let p=t(null);export const ApplicationTypeProvider=t=>{let{children:o,type:r}=t;return e(p.Provider,{value:r,children:o})};export const useApplicationType=()=>{let e=o(p);if(!e)throw Error("ApplicationType context not found! useApplicationType() must be used within an ApplicationTypeProvider. Use the hook appropriately.");return e};export const useOptionalApplicationType=()=>o(p);
@@ -0,0 +1,47 @@
1
+ import type { DomainApplicationType } from '#package/domain';
2
+ import type { CanvasPadding, ResponsiveBreakpoints, ResponsiveRuntimeState, ResponsiveViewport } from './types.js';
3
+ interface Context {
4
+ readonly setResponsive: (fn: (state: ResponsiveRuntimeState) => ResponsiveRuntimeState) => void;
5
+ }
6
+ /**
7
+ * Every action returns the slice unchanged when the value is already set, so the runtime publishes
8
+ * nothing and no subscriber recomputes.
9
+ */
10
+ declare const createApplicationActions: (context: Context, applicationType: DomainApplicationType) => {
11
+ setViewport: (viewport: ResponsiveViewport) => void;
12
+ setBreakpoints: (breakpoints: ResponsiveBreakpoints) => void;
13
+ setCanvasPadding: (canvasPadding: CanvasPadding) => void;
14
+ expand: () => void;
15
+ collapse: () => void;
16
+ hide: () => void;
17
+ show: () => void;
18
+ setAnimating: (isAnimating: boolean) => void;
19
+ reset: () => void;
20
+ };
21
+ /** One set of actions per application, as the domain context keys its own. */
22
+ export declare const createResponsiveActions: (context: Context) => {
23
+ configurator: {
24
+ setViewport: (viewport: ResponsiveViewport) => void;
25
+ setBreakpoints: (breakpoints: ResponsiveBreakpoints) => void;
26
+ setCanvasPadding: (canvasPadding: CanvasPadding) => void;
27
+ expand: () => void;
28
+ collapse: () => void;
29
+ hide: () => void;
30
+ show: () => void;
31
+ setAnimating: (isAnimating: boolean) => void;
32
+ reset: () => void;
33
+ };
34
+ admin: {
35
+ setViewport: (viewport: ResponsiveViewport) => void;
36
+ setBreakpoints: (breakpoints: ResponsiveBreakpoints) => void;
37
+ setCanvasPadding: (canvasPadding: CanvasPadding) => void;
38
+ expand: () => void;
39
+ collapse: () => void;
40
+ hide: () => void;
41
+ show: () => void;
42
+ setAnimating: (isAnimating: boolean) => void;
43
+ reset: () => void;
44
+ };
45
+ };
46
+ export type ResponsiveActions = ReturnType<typeof createApplicationActions>;
47
+ export {};
@@ -0,0 +1 @@
1
+ import{initializeResponsiveApplication as t}from"./initialize.js";let e=(e,i)=>{let n=t=>{e.setResponsive(e=>{let n=e[i],s=t(n);return s===n?e:{...e,[i]:s}})},s=t=>{n(e=>e.isExpanded===t?e:{...e,isExpanded:t})},r=t=>{n(e=>e.isHidden===t?e:{...e,isHidden:t})};return{setViewport:t=>{n(e=>{let i;return(i=e.viewport,null!==i&&i.width===t.width&&i.height===t.height&&i.isLandscape===t.isLandscape&&i.isPortrait===t.isPortrait)?e:{...e,viewport:t}})},setBreakpoints:t=>{n(e=>{let i;return(i=e.breakpoints,i.sm===t.sm&&i.md===t.md&&i.lg===t.lg)?e:{...e,breakpoints:t}})},setCanvasPadding:t=>{n(e=>{let i;return(i=e.canvasPadding,i.top===t.top&&i.right===t.right&&i.bottom===t.bottom&&i.left===t.left)?e:{...e,canvasPadding:t}})},expand:()=>{s(!0)},collapse:()=>{s(!1)},hide:()=>{r(!0)},show:()=>{r(!1)},setAnimating:t=>{n(e=>e.isAnimating===t?e:{...e,isAnimating:t})},reset:()=>{n(()=>t())}}};export const createResponsiveActions=t=>({configurator:e(t,"configurator"),admin:e(t,"admin")});
@@ -0,0 +1,4 @@
1
+ export * from './actions.js';
2
+ export * from './initialize.js';
3
+ export * from './selectors.js';
4
+ export type * from './types.js';
@@ -0,0 +1 @@
1
+ export*from"./actions.js";export*from"./initialize.js";export*from"./selectors.js";
@@ -0,0 +1,3 @@
1
+ import type { ResponsiveApplicationState, ResponsiveRuntimeState } from './types.js';
2
+ export declare const initializeResponsiveApplication: () => ResponsiveApplicationState;
3
+ export declare const initializeResponsive: () => ResponsiveRuntimeState;
@@ -0,0 +1 @@
1
+ export const initializeResponsiveApplication=()=>({viewport:null,breakpoints:{sm:480,md:768,lg:1024},canvasPadding:{top:0,right:0,bottom:0,left:0},isExpanded:!1,isHidden:!1,isAnimating:!1});export const initializeResponsive=()=>({configurator:initializeResponsiveApplication(),admin:initializeResponsiveApplication()});
@@ -0,0 +1,20 @@
1
+ import type { DomainApplicationType } from '#package/domain';
2
+ import type { ResponsiveRuntimeState, ResponsiveState, ResponsiveViewportSize } from './types.js';
3
+ export interface ResponsiveSelectorState {
4
+ readonly responsive: ResponsiveRuntimeState;
5
+ }
6
+ interface Context {
7
+ readonly getState: () => ResponsiveSelectorState;
8
+ readonly applicationType: DomainApplicationType;
9
+ }
10
+ /** The selectors of one application's responsive state; the runtime creates one set per application. */
11
+ export declare const createResponsiveSelectors: (context: Context) => {
12
+ selectResponsiveState: import("@salsita-ai/common/utils").Selector<ResponsiveSelectorState, ResponsiveState>;
13
+ selectViewportSize: import("@salsita-ai/common/utils").Selector<ResponsiveSelectorState, ResponsiveViewportSize>;
14
+ selectCanvasPadding: import("@salsita-ai/common/utils").Selector<ResponsiveSelectorState, import("./types.js").CanvasPadding>;
15
+ getResponsiveState: () => ResponsiveState;
16
+ getViewportSize: () => ResponsiveViewportSize;
17
+ getCanvasPadding: () => import("./types.js").CanvasPadding;
18
+ };
19
+ export type ResponsiveSelectors = ReturnType<typeof createResponsiveSelectors>;
20
+ export {};
@@ -0,0 +1 @@
1
+ import{createSelector as e}from"@salsita-ai/common/utils";export const createResponsiveSelectors=i=>{let{getState:s,applicationType:t}=i,a=e.withTypes(),o=a.leaf(e=>null!==e.responsive[t].viewport),n=a.leaf(e=>e.responsive[t].viewport?.width??0),r=a.leaf(e=>e.responsive[t].viewport?.height??0),p=a.leaf(e=>e.responsive[t].viewport?.isLandscape??!1),l=a.leaf(e=>e.responsive[t].viewport?.isPortrait??!1),v=a.leaf(e=>e.responsive[t].breakpoints),d=a.leaf(e=>e.responsive[t].canvasPadding),f=a.leaf(e=>e.responsive[t].isExpanded),g=a.leaf(e=>e.responsive[t].isHidden),h=a.leaf(e=>e.responsive[t].isAnimating),m=a([o,n,v],(e,i,s)=>e&&i<s.sm),w=a([o,n,v],(e,i,s)=>e&&i<=s.md),c=a([o,n,v],(e,i,s)=>e&&i<s.lg&&i>s.sm),u=a([o,n,v],(e,i,s)=>e&&i>s.md),P=a([m,w,c,u,p,l,d,f,g,h],(e,i,s,t,a,o,n,r,p,l)=>({isPhone:e,isMobile:i,isTablet:s,isDesktop:t,isLandscape:a,isPortrait:o,canvasPadding:n,isExpanded:r,isHidden:p,isAnimating:l})),S=a([n,r],(e,i)=>({width:Math.ceil(e),height:Math.ceil(i)}));return{selectResponsiveState:P,selectViewportSize:S,selectCanvasPadding:d,getResponsiveState:()=>P(s()),getViewportSize:()=>S(s()),getCanvasPadding:()=>d(s())}};
@@ -0,0 +1,104 @@
1
+ /**
2
+ * The part of the canvas, in pixels from each edge, that overlay UI covers. The camera frames the
3
+ * scene inside what is left, so the scene stays visible beside a sidebar or under a preview body.
4
+ *
5
+ * @internal Runtime plumbing for the SDK's own UI. A project layout uses `useActiveViewports()`
6
+ * from `@salsita-ai/sdk/react` and `useSceneSafeArea()` from `@salsita-ai/sdk/configurator`.
7
+ */
8
+ export interface CanvasPadding {
9
+ readonly top: number;
10
+ readonly right: number;
11
+ readonly bottom: number;
12
+ readonly left: number;
13
+ }
14
+ /**
15
+ * The widths, in pixels, that split the application's root container into phone, tablet and
16
+ * desktop. The theme decides them; the UI library pushes its theme's values in with
17
+ * `setBreakpoints`.
18
+ *
19
+ * @internal Runtime plumbing for the SDK's own UI. A project layout uses `useActiveViewports()`
20
+ * from `@salsita-ai/sdk/react` and `useSceneSafeArea()` from `@salsita-ai/sdk/configurator`.
21
+ */
22
+ export interface ResponsiveBreakpoints {
23
+ readonly sm: number;
24
+ readonly md: number;
25
+ readonly lg: number;
26
+ }
27
+ /**
28
+ * One measurement of the application's root container. The orientation comes from the window,
29
+ * not from the container's aspect ratio.
30
+ *
31
+ * @internal Runtime plumbing for the SDK's own UI. A project layout uses `useActiveViewports()`
32
+ * from `@salsita-ai/sdk/react` and `useSceneSafeArea()` from `@salsita-ai/sdk/configurator`.
33
+ */
34
+ export interface ResponsiveViewport {
35
+ readonly width: number;
36
+ readonly height: number;
37
+ readonly isLandscape: boolean;
38
+ readonly isPortrait: boolean;
39
+ }
40
+ /**
41
+ * The size of the application's root container, rounded up to whole pixels.
42
+ *
43
+ * @internal Runtime plumbing for the SDK's own UI. A project layout uses `useActiveViewports()`
44
+ * from `@salsita-ai/sdk/react` and `useSceneSafeArea()` from `@salsita-ai/sdk/configurator`.
45
+ */
46
+ export interface ResponsiveViewportSize {
47
+ readonly width: number;
48
+ readonly height: number;
49
+ }
50
+ /**
51
+ * The responsive state of one mounted application: what it measured of its root container, the
52
+ * breakpoints that classify it, the canvas padding the scene is framed with, and whether the
53
+ * container is expanded over the host page, hidden, or in a layout animation.
54
+ *
55
+ * The configurator's root container writes it while it is mounted and resets it when it unmounts.
56
+ *
57
+ * @internal Runtime plumbing for the SDK's own UI. A project layout uses `useActiveViewports()`
58
+ * from `@salsita-ai/sdk/react` and `useSceneSafeArea()` from `@salsita-ai/sdk/configurator`.
59
+ */
60
+ export interface ResponsiveApplicationState {
61
+ /** `null` until the root container is measured for the first time. */
62
+ readonly viewport: ResponsiveViewport | null;
63
+ readonly breakpoints: ResponsiveBreakpoints;
64
+ readonly canvasPadding: CanvasPadding;
65
+ readonly isExpanded: boolean;
66
+ readonly isHidden: boolean;
67
+ readonly isAnimating: boolean;
68
+ }
69
+ /**
70
+ * The `responsive` slice, one entry per application: an admin that embeds a configurator runs both
71
+ * in one runtime, and each has its own root container.
72
+ *
73
+ * @internal Runtime plumbing for the SDK's own UI. A project layout uses `useActiveViewports()`
74
+ * from `@salsita-ai/sdk/react` and `useSceneSafeArea()` from `@salsita-ai/sdk/configurator`.
75
+ */
76
+ export interface ResponsiveRuntimeState {
77
+ readonly configurator: ResponsiveApplicationState;
78
+ readonly admin: ResponsiveApplicationState;
79
+ }
80
+ /**
81
+ * The responsive state the UI and the lifecycle read: the size classes of the root container, the
82
+ * canvas padding, and whether the container is expanded, hidden or animating.
83
+ *
84
+ * Every size class is `false` until the container is measured for the first time.
85
+ *
86
+ * @internal Runtime plumbing for the SDK's own UI. A project layout uses `useActiveViewports()`
87
+ * from `@salsita-ai/sdk/react` and `useSceneSafeArea()` from `@salsita-ai/sdk/configurator`.
88
+ */
89
+ export interface ResponsiveState {
90
+ /** `width < sm` */
91
+ readonly isPhone: boolean;
92
+ /** `width <= md` */
93
+ readonly isMobile: boolean;
94
+ /** `sm < width < lg` */
95
+ readonly isTablet: boolean;
96
+ /** `width > md` */
97
+ readonly isDesktop: boolean;
98
+ readonly isLandscape: boolean;
99
+ readonly isPortrait: boolean;
100
+ readonly canvasPadding: CanvasPadding;
101
+ readonly isExpanded: boolean;
102
+ readonly isHidden: boolean;
103
+ readonly isAnimating: boolean;
104
+ }
@@ -17,11 +17,43 @@ interface RoutingServiceContext {
17
17
  }
18
18
  export declare class RoutingService {
19
19
  private readonly context;
20
- private onGoToIndex;
21
- private onNavigated;
20
+ private readonly onGoToIndexRegistrations;
21
+ private readonly onNavigatedRegistrations;
22
+ private unregisterSetOnGoToIndex;
23
+ private unregisterSetOnNavigated;
22
24
  constructor(context: RoutingServiceContext);
25
+ /**
26
+ * Registers the handler `goToIndex` calls instead of navigating; the handler navigates by calling
27
+ * `next`. The most recent registration is the active one. The returned function removes only this
28
+ * registration, so the one registered before it becomes active again.
29
+ * @internal Plumbing for `ConfiguratorRoutingProvider`; projects intercept `goToIndex` with
30
+ * `createOnGoToIndexHandler`.
31
+ */
32
+ registerOnGoToIndex: (handler: OnGoToIndexHandler) => (() => void);
33
+ /**
34
+ * Registers the callback told about each navigation `goToIndex` and `goToConfigurationDetail`
35
+ * make. The most recent registration is the active one, and it replaces the SDK's own reporting
36
+ * to the host (the `route` property, the configuration id in the URL and the `navigated` event)
37
+ * rather than listening beside it. The returned function removes only this registration, so the
38
+ * one registered before it becomes active again.
39
+ * @internal Plumbing for `ConfiguratorRoutingProvider`, which does that reporting.
40
+ */
41
+ registerOnNavigated: (handler: OnNavigatedHandler) => (() => void);
42
+ /**
43
+ * Replaces the handler this method registered before, on top of the other registrations; `null`
44
+ * removes it. Registrations made with `registerOnGoToIndex` stay.
45
+ * @deprecated Intercept `goToIndex` with a handler made by `createOnGoToIndexHandler` instead. This
46
+ * API will be removed in a future version.
47
+ */
23
48
  setOnGoToIndex: (handler: OnGoToIndexHandler | null) => void;
49
+ /**
50
+ * Replaces the callback this method registered before, on top of the other registrations; `null`
51
+ * removes it. Registrations made with `registerOnNavigated` stay.
52
+ * @deprecated Listen to the `navigated` event of the web component instead; a callback set here
53
+ * replaces the SDK's own reporting to the host. This API will be removed in a future version.
54
+ */
24
55
  setOnNavigated: (handler: OnNavigatedHandler | null) => void;
56
+ private notifyNavigated;
25
57
  routeTo: (routingState: RoutingState) => void;
26
58
  goToIndex: () => void;
27
59
  goToConfigurationDetail: (configurationId: string, accessToken?: string) => void;
@@ -1 +1 @@
1
- import{InvalidAccessKeyError as t}from"#package/client";import{AnalyticsEventFactory as o,decodeAccessInfo as e}from"#package/domain";import{getAccessInfo as n,getAccessTokenFromLocalStorage as i,putAccessTokenToLocalStorage as s,removeAccessTokenFromLocalStorage as a}from"./access-service.js";import{ApplicationRoutes as c}from"./types.js";export class RoutingService{context;onGoToIndex=null;onNavigated=null;constructor(t){this.context=t}setOnGoToIndex=t=>{this.onGoToIndex=t};setOnNavigated=t=>{this.onNavigated=t};routeTo=t=>{var o;if(o=this.context.getRoutingState(),o.route===c.Index||t.route===c.Index?o.route===t.route:o.configurationId===t.configurationId&&o.accessToken===t.accessToken)return;if(this.context.loadedDataActions.resetConfiguratorLoad(),t.route===c.Index){this.context.accessActions.setConfiguratorAccessInfo(null),this.context.actions.setRoutingState(t);return}let e=n(t.configurationId,t.accessToken);this.context.accessActions.setConfiguratorAccessInfo(e),this.context.actions.setRoutingState(t),t.accessToken&&s(t.configurationId,t.accessToken)};goToIndex=()=>{let t=()=>{this.context.getAnalytics().push(o.NavigationEvent({navigationState:"productPage"})),this.context.getLogger().appendToGlobalContext({navigationState:"productPage"});let t={route:c.Index};this.routeTo(t),this.onNavigated?.(t)};null==this.onGoToIndex?t():this.onGoToIndex({next:t})};goToConfigurationDetail=(t,o)=>{let e={route:c.Configuration,configurationId:t,accessToken:o};this.routeTo(e),this.onNavigated?.(e)};rejectAccessToken=(t,o)=>{i(t)===o&&a(t)};requestAccessToken=(o,n)=>{if(null!==e(n,o))return n;let i=new t;throw this.rejectAccessToken(o,n),this.context.loadedDataActions.failConfiguratorLoad(i),i}}
1
+ import{InvalidAccessKeyError as t}from"#package/client";import{AnalyticsEventFactory as e,decodeAccessInfo as o}from"#package/domain";import{getAccessInfo as n,getAccessTokenFromLocalStorage as i,putAccessTokenToLocalStorage as s,removeAccessTokenFromLocalStorage as a}from"./access-service.js";import{ApplicationRoutes as r}from"./types.js";let c=(t,e)=>{let o={handler:e};return t.push(o),()=>{let e=t.indexOf(o);-1!==e&&t.splice(e,1)}},g=t=>t.at(-1)?.handler??null;export class RoutingService{context;onGoToIndexRegistrations=[];onNavigatedRegistrations=[];unregisterSetOnGoToIndex=null;unregisterSetOnNavigated=null;constructor(t){this.context=t}registerOnGoToIndex=t=>c(this.onGoToIndexRegistrations,t);registerOnNavigated=t=>c(this.onNavigatedRegistrations,t);setOnGoToIndex=t=>{this.unregisterSetOnGoToIndex?.(),this.unregisterSetOnGoToIndex=null===t?null:this.registerOnGoToIndex(t)};setOnNavigated=t=>{this.unregisterSetOnNavigated?.(),this.unregisterSetOnNavigated=null===t?null:this.registerOnNavigated(t)};notifyNavigated=t=>{g(this.onNavigatedRegistrations)?.(t)};routeTo=t=>{var e;if(e=this.context.getRoutingState(),e.route===r.Index||t.route===r.Index?e.route===t.route:e.configurationId===t.configurationId&&e.accessToken===t.accessToken)return;if(this.context.loadedDataActions.resetConfiguratorLoad(),t.route===r.Index){this.context.accessActions.setConfiguratorAccessInfo(null),this.context.actions.setRoutingState(t);return}let o=n(t.configurationId,t.accessToken);this.context.accessActions.setConfiguratorAccessInfo(o),this.context.actions.setRoutingState(t),t.accessToken&&s(t.configurationId,t.accessToken)};goToIndex=()=>{let t=()=>{this.context.getAnalytics().push(e.NavigationEvent({navigationState:"productPage"})),this.context.getLogger().appendToGlobalContext({navigationState:"productPage"});let t={route:r.Index};this.routeTo(t),this.notifyNavigated(t)},o=g(this.onGoToIndexRegistrations);null==o?t():o({next:t})};goToConfigurationDetail=(t,e)=>{let o={route:r.Configuration,configurationId:t,accessToken:e};this.routeTo(o),this.notifyNavigated(o)};rejectAccessToken=(t,e)=>{i(t)===e&&a(t)};requestAccessToken=(e,n)=>{if(null!==o(n,e))return n;let i=new t;throw this.rejectAccessToken(e,n),this.context.loadedDataActions.failConfiguratorLoad(i),i}}