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

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 (357) hide show
  1. package/dist/application-spec/errors/diagnostic-codes.d.ts +9 -0
  2. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  3. package/dist/application-spec/errors/diagnostic-messages.d.ts +10 -1
  4. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  5. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  6. package/dist/application-spec/generate-application/code/templates/application-types.js +6 -6
  7. package/dist/application-spec/generate-application/code/templates/common/doc-comment.d.ts +2 -0
  8. package/dist/application-spec/generate-application/code/templates/common/doc-comment.js +1 -0
  9. package/dist/application-spec/generate-application/code/templates/configurator-globals.d.ts +2 -1
  10. package/dist/application-spec/generate-application/code/templates/configurator-globals.js +19 -6
  11. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.js +7 -7
  12. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.d.ts +12 -0
  13. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.js +7 -0
  14. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +24 -22
  15. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
  16. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  17. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +13 -6
  18. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -2
  19. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +33 -3
  20. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  21. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.d.ts +9 -0
  22. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.js +1 -0
  23. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +4 -1
  24. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  25. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  26. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +4 -3
  27. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  28. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +33 -7
  29. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  30. package/dist/configurator/application-runtime/extensions/systems/canvas-system.d.ts +8 -0
  31. package/dist/configurator/application-runtime/extensions/systems/canvas-system.js +1 -1
  32. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.d.ts +8 -0
  33. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.js +1 -0
  34. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.d.ts +23 -1
  35. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.js +1 -1
  36. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +14 -1
  37. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  38. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +45 -4
  39. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  40. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.d.ts +14 -5
  41. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.js +1 -1
  42. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  43. package/dist/configurator/common/configurator-interface.d.ts +38 -2
  44. package/dist/configurator/common/configurator-interface.js +1 -1
  45. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +3 -3
  46. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -1
  47. package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
  48. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +4 -0
  49. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +1 -1
  50. package/dist/configurator/pages/default-configurator-elements.d.ts +3 -2
  51. package/dist/configurator/pages/default-configurator-elements.js +1 -1
  52. package/dist/configurator/pages/default-elements/index.d.ts +1 -0
  53. package/dist/configurator/pages/default-elements/index.js +1 -1
  54. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.d.ts +3 -0
  55. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.js +1 -0
  56. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.d.ts +3 -0
  57. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.js +1 -0
  58. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.d.ts +3 -0
  59. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.js +1 -0
  60. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.d.ts +3 -0
  61. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.js +1 -0
  62. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.d.ts +3 -0
  63. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.js +1 -0
  64. package/dist/configurator/pages/default-elements/scene-controls/index.d.ts +6 -0
  65. package/dist/configurator/pages/default-elements/scene-controls/index.js +1 -0
  66. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.d.ts +6 -0
  67. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.js +1 -0
  68. package/dist/configurator/scene/index.d.ts +1 -0
  69. package/dist/configurator/scene/index.js +1 -1
  70. package/dist/configurator/scene/scene-controls/ToolFab.d.ts +4 -0
  71. package/dist/configurator/scene/scene-controls/ToolFab.js +1 -1
  72. package/dist/configurator/scene/scene-controls/use-scene-control-tooltip.d.ts +2 -1
  73. package/dist/configurator/scene/scene-entity/scene-controls/SceneEntityHtmlHotspots.js +1 -1
  74. package/dist/configurator/toolbar-actions/index.d.ts +1 -0
  75. package/dist/configurator/toolbar-actions/index.js +1 -1
  76. package/dist/configurator/toolbar-actions/use-toolbar-actions.d.ts +100 -0
  77. package/dist/configurator/toolbar-actions/use-toolbar-actions.js +1 -0
  78. package/dist/configurator/toolbar-actions/use-toolbar-help.d.ts +7 -0
  79. package/dist/configurator/toolbar-actions/use-toolbar-help.js +1 -0
  80. package/dist/configurator/ui/assistant/AssistantChips.d.ts +3 -2
  81. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  82. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +1 -1
  83. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  84. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +8 -0
  85. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -0
  86. package/dist/configurator/ui/assistant/alert/index.d.ts +2 -0
  87. package/dist/configurator/ui/assistant/alert/index.js +1 -0
  88. package/dist/configurator/ui/assistant/alert/remark-alerts.d.ts +10 -0
  89. package/dist/configurator/ui/assistant/alert/remark-alerts.js +1 -0
  90. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -1
  91. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +1 -1
  92. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -1
  93. package/dist/configurator/ui/assistant/form/form-model.d.ts +3 -4
  94. package/dist/configurator/ui/assistant/form/form-state.d.ts +1 -1
  95. package/dist/configurator/ui/assistant/form/index.d.ts +2 -0
  96. package/dist/configurator/ui/assistant/form/index.js +1 -1
  97. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +3 -2
  98. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -1
  99. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +1 -1
  100. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -1
  101. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +3 -0
  102. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.js +1 -0
  103. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.d.ts +31 -0
  104. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.js +1 -0
  105. package/dist/configurator/ui/assistant/form/{form-element-definition.d.ts → registry/form-element-definition.d.ts} +3 -1
  106. package/dist/configurator/ui/assistant/form/registry/form-element-definition.js +1 -0
  107. package/dist/configurator/ui/assistant/form/{form-registry.d.ts → registry/form-registry.d.ts} +2 -2
  108. package/dist/configurator/ui/assistant/form/registry/form-registry.js +1 -0
  109. package/dist/configurator/ui/assistant/form/registry/index.d.ts +6 -0
  110. package/dist/configurator/ui/assistant/form/registry/index.js +1 -0
  111. package/dist/configurator/ui/assistant/form/registry/use-form-registry.d.ts +8 -0
  112. package/dist/configurator/ui/assistant/form/registry/use-form-registry.js +1 -0
  113. package/dist/configurator/ui/assistant/form-elements/FormCard.d.ts +9 -0
  114. package/dist/configurator/ui/assistant/form-elements/FormCard.js +1 -0
  115. package/dist/configurator/ui/assistant/form-elements/FormConfirm.d.ts +9 -0
  116. package/dist/configurator/ui/assistant/form-elements/FormConfirm.js +1 -0
  117. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +4 -1
  118. package/dist/configurator/ui/assistant/form-elements/FormNumber.d.ts +9 -0
  119. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -0
  120. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +4 -1
  121. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +4 -1
  122. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -1
  123. package/dist/configurator/ui/assistant/form-elements/FormSwatch.d.ts +10 -0
  124. package/dist/configurator/ui/assistant/form-elements/FormSwatch.js +1 -0
  125. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +4 -1
  126. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -1
  127. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.d.ts +10 -0
  128. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.js +1 -0
  129. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +20 -16
  130. package/dist/configurator/ui/assistant/form-elements/index.d.ts +4 -0
  131. package/dist/configurator/ui/assistant/form-elements/index.js +1 -1
  132. package/dist/configurator/ui/assistant/index.d.ts +3 -0
  133. package/dist/configurator/ui/assistant/index.js +1 -1
  134. package/dist/configurator/ui/assistant/resource-image/index.d.ts +1 -1
  135. package/dist/configurator/ui/assistant/resource-image/index.js +1 -1
  136. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +0 -9
  137. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -1
  138. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +9 -0
  139. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -0
  140. package/dist/configurator/ui/assistant/screenshots/index.d.ts +2 -0
  141. package/dist/configurator/ui/assistant/screenshots/index.js +1 -0
  142. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +14 -0
  143. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -0
  144. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +2 -2
  145. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  146. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  147. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.d.ts +5 -0
  148. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.js +1 -0
  149. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  150. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -1
  151. package/dist/configurator/ui/index.d.ts +1 -0
  152. package/dist/configurator/ui/index.js +1 -1
  153. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -1
  154. package/dist/docs/complex-use-cases/focus-mode.mdx +2 -0
  155. package/dist/docs/fabs/basic.mdx +4 -0
  156. package/dist/docs/index.json +62 -1
  157. package/dist/docs/integrations/webcomponent-api/basics.mdx +2 -0
  158. package/dist/docs/layouts/custom-layout.mdx +320 -158
  159. package/dist/docs/layouts/gallery/ardent-compressor.mdx +3516 -0
  160. package/dist/docs/layouts/gallery/fenwick-window.mdx +2803 -0
  161. package/dist/docs/layouts/gallery/ferrule-bar-station.mdx +6567 -0
  162. package/dist/docs/layouts/gallery/kestrel-kettle.mdx +1858 -0
  163. package/dist/docs/layouts/gallery/sunfold-solar.mdx +2683 -0
  164. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  165. package/dist/docs/other-features/navigation-hotspot.mdx +2 -0
  166. package/dist/docs/phoenix/configurator-interface.mdx +68 -11
  167. package/dist/docs/phoenix/sdk-builder-workflow.mdx +1 -1
  168. package/dist/docs/phoenix/sessions-and-access.mdx +2 -0
  169. package/dist/docs/selection-and-highlight/hotspots.mdx +2 -0
  170. package/dist/domain/application/assistant/assistant-manifest.d.ts +16 -1
  171. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +8 -1
  172. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  173. package/dist/domain/application/assistant/form/assistant-form-element-name.d.ts +11 -0
  174. package/dist/domain/application/assistant/form/assistant-form-element-name.js +8 -0
  175. package/dist/domain/application/assistant/form/assistant-form-elements.d.ts +174 -0
  176. package/dist/domain/application/assistant/form/assistant-form-elements.js +1 -0
  177. package/dist/domain/application/assistant/form/assistant-resource-path.d.ts +10 -0
  178. package/dist/domain/application/assistant/form/assistant-resource-path.js +1 -0
  179. package/dist/domain/application/assistant/form/index.d.ts +4 -0
  180. package/dist/domain/application/assistant/form/index.js +1 -0
  181. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  182. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  183. package/dist/domain/application/assistant/index.d.ts +2 -3
  184. package/dist/domain/application/assistant/index.js +1 -1
  185. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
  186. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +2 -0
  187. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
  188. package/dist/domain/application/web-component-property.d.ts +3 -1
  189. package/dist/domain/application/web-component-property.js +1 -1
  190. package/dist/domain/available-system-components.d.ts +1 -1
  191. package/dist/domain/available-system-components.js +1 -1
  192. package/dist/domain/domain-context/store-system/store-system.d.ts +5 -0
  193. package/dist/domain/domain-context/store-system/store-system.js +1 -1
  194. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +1 -0
  195. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  196. package/dist/domain/domain-runtime/domain-runtime.d.ts +8 -0
  197. package/dist/domain/domain-runtime/environment/types.d.ts +1 -1
  198. package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
  199. package/dist/domain/domain-runtime/spec/index.js +1 -1
  200. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  201. package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +15 -1
  202. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -1
  203. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.d.ts +12 -0
  204. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +1 -0
  205. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +2 -1
  206. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -1
  207. package/dist/domain/domain-runtime/spec/selectors.d.ts +3 -1
  208. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  209. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +24 -0
  210. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -0
  211. package/dist/domain/extensions/{client-side-image.d.ts → export-images/client-side-image.d.ts} +2 -2
  212. package/dist/domain/extensions/export-images/client-side-image.js +1 -0
  213. package/dist/domain/extensions/export-images/index.d.ts +3 -0
  214. package/dist/domain/extensions/export-images/index.js +1 -0
  215. package/dist/domain/extensions/{save-template-thumbnail.d.ts → export-images/save-template-thumbnail.d.ts} +2 -2
  216. package/dist/domain/extensions/export-images/save-template-thumbnail.js +1 -0
  217. package/dist/domain/extensions/index.d.ts +1 -2
  218. package/dist/domain/extensions/index.js +1 -1
  219. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +4 -0
  220. package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
  221. package/dist/editor/domain-editors/apply-spec-update.d.ts +8 -1
  222. package/dist/editor/domain-editors/apply-spec-update.js +1 -1
  223. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  224. package/dist/editor/screenshot/ScreenshotHandler.js +1 -1
  225. package/dist/i18n/locales/cs/messages.js +1 -1
  226. package/dist/i18n/locales/da/messages.js +1 -1
  227. package/dist/i18n/locales/de/messages.js +1 -1
  228. package/dist/i18n/locales/de-AT/messages.js +1 -1
  229. package/dist/i18n/locales/en/messages.js +1 -1
  230. package/dist/i18n/locales/en-AU/messages.js +1 -1
  231. package/dist/i18n/locales/en-GB/messages.js +1 -1
  232. package/dist/i18n/locales/es/messages.js +1 -1
  233. package/dist/i18n/locales/fr/messages.js +1 -1
  234. package/dist/i18n/locales/hu/messages.js +1 -1
  235. package/dist/i18n/locales/it/messages.js +1 -1
  236. package/dist/i18n/locales/nl/messages.js +1 -1
  237. package/dist/i18n/locales/pl/messages.js +1 -1
  238. package/dist/i18n/locales/pt/messages.js +1 -1
  239. package/dist/i18n/locales/ro/messages.js +1 -1
  240. package/dist/i18n/locales/sk/messages.js +1 -1
  241. package/dist/i18n/locales/tr/messages.js +1 -1
  242. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  243. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  244. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +16 -0
  245. package/dist/legacy/domain-spec/spec/domain-spec.js +1 -1
  246. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  247. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  248. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  249. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +11 -5
  250. package/dist/react-sdk/application-runtime/hooks/index.d.ts +1 -0
  251. package/dist/react-sdk/application-runtime/hooks/index.js +1 -1
  252. package/dist/react-sdk/application-runtime/hooks/responsive/index.d.ts +3 -0
  253. package/dist/react-sdk/application-runtime/hooks/responsive/index.js +1 -0
  254. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.d.ts +9 -0
  255. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.js +1 -0
  256. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.d.ts +26 -0
  257. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.js +1 -0
  258. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.d.ts +10 -0
  259. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.js +1 -0
  260. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.d.ts +24 -0
  261. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.js +1 -0
  262. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +5 -0
  263. package/dist/react-sdk/application-runtime/hooks/use-access-service.js +1 -1
  264. package/dist/react-sdk/application-runtime/hooks/use-phoenix-element-slots.d.ts +2 -1
  265. package/dist/react-sdk/application-runtime/index.d.ts +1 -0
  266. package/dist/react-sdk/application-runtime/integration/initialize.d.ts +7 -6
  267. package/dist/react-sdk/application-runtime/integration/initialize.js +1 -1
  268. package/dist/react-sdk/application-runtime/integration/selectors.d.ts +11 -2
  269. package/dist/react-sdk/application-runtime/integration/selectors.js +1 -1
  270. package/dist/react-sdk/application-runtime/integration/types.d.ts +5 -2
  271. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  272. package/dist/react-sdk/application-runtime/responsive/actions.d.ts +47 -0
  273. package/dist/react-sdk/application-runtime/responsive/actions.js +1 -0
  274. package/dist/react-sdk/application-runtime/responsive/index.d.ts +4 -0
  275. package/dist/react-sdk/application-runtime/responsive/index.js +1 -0
  276. package/dist/react-sdk/application-runtime/responsive/initialize.d.ts +3 -0
  277. package/dist/react-sdk/application-runtime/responsive/initialize.js +1 -0
  278. package/dist/react-sdk/application-runtime/responsive/selectors.d.ts +20 -0
  279. package/dist/react-sdk/application-runtime/responsive/selectors.js +1 -0
  280. package/dist/react-sdk/application-runtime/responsive/types.d.ts +104 -0
  281. package/dist/react-sdk/application-runtime/routing/routing-service.d.ts +34 -2
  282. package/dist/react-sdk/application-runtime/routing/routing-service.js +1 -1
  283. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +95 -2
  284. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  285. package/dist/react-sdk/domain-context/common-hooks/index.d.ts +1 -0
  286. package/dist/react-sdk/domain-context/common-hooks/index.js +1 -1
  287. package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.d.ts +23 -0
  288. package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.js +1 -0
  289. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +1 -0
  290. package/dist/react-sdk/domain-context/index.d.ts +1 -0
  291. package/dist/react-sdk/domain-context/index.js +1 -1
  292. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -1
  293. package/dist/react-sdk/index.d.ts +1 -1
  294. package/dist/react-sdk/index.js +1 -1
  295. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.d.ts +36 -0
  296. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.js +1 -0
  297. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.d.ts +44 -0
  298. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.js +1 -0
  299. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.d.ts +38 -0
  300. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.js +1 -0
  301. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.d.ts +30 -0
  302. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.js +1 -0
  303. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.d.ts +30 -0
  304. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.js +1 -0
  305. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.d.ts +9 -0
  306. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.js +1 -0
  307. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.d.ts +9 -0
  308. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.js +1 -0
  309. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.d.ts +10 -0
  310. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.js +1 -0
  311. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.d.ts +9 -0
  312. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.js +1 -0
  313. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.d.ts +9 -0
  314. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.js +1 -0
  315. package/dist/react-sdk/scene-control-elements/index.d.ts +11 -0
  316. package/dist/react-sdk/scene-control-elements/index.js +1 -0
  317. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.d.ts +5 -0
  318. package/dist/react-sdk/web-component/create-web-component.js +1 -1
  319. package/dist/react-sdk/web-component/god-mode/god-mode-registry.d.ts +30 -0
  320. package/dist/react-sdk/web-component/god-mode/god-mode-registry.js +1 -0
  321. package/dist/react-sdk/web-component/god-mode/index.d.ts +1 -0
  322. package/dist/react-sdk/web-component/god-mode/index.js +1 -0
  323. package/dist/ui-sdk/icons/__generated/Lightbulb.d.ts +3 -0
  324. package/dist/ui-sdk/icons/__generated/Lightbulb.js +1 -0
  325. package/dist/ui-sdk/icons/__generated/XCircle.d.ts +3 -0
  326. package/dist/ui-sdk/icons/__generated/XCircle.js +1 -0
  327. package/dist/ui-sdk/icons/__generated/index.d.ts +4 -0
  328. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  329. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  330. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +2 -2
  331. package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +11 -9
  332. package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -1
  333. package/dist/ui-sdk/theme/types.d.ts +5 -1
  334. package/package.json +13 -3
  335. package/schema/domain-spec.json +140 -0
  336. package/dist/configurator/ui/assistant/form/built-in-form-registry.d.ts +0 -10
  337. package/dist/configurator/ui/assistant/form/built-in-form-registry.js +0 -1
  338. package/dist/configurator/ui/assistant/form/form-registry.js +0 -8
  339. package/dist/domain/application/assistant/assistant-form-elements.d.ts +0 -28
  340. package/dist/domain/application/assistant/assistant-form-elements.js +0 -1
  341. package/dist/domain/extensions/client-side-image.js +0 -1
  342. package/dist/domain/extensions/save-template-thumbnail.js +0 -1
  343. package/dist/react-sdk/application-runtime/runtime/god-mode.d.ts +0 -19
  344. package/dist/react-sdk/application-runtime/runtime/god-mode.js +0 -1
  345. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.d.ts +0 -25
  346. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.js +0 -1
  347. package/dist/react-sdk/responsive-state/canvas-padding.d.ts +0 -14
  348. package/dist/react-sdk/responsive-state/index.d.ts +0 -5
  349. package/dist/react-sdk/responsive-state/index.js +0 -1
  350. package/dist/react-sdk/responsive-state/responsive-state-manager.d.ts +0 -111
  351. package/dist/react-sdk/responsive-state/responsive-state-manager.js +0 -1
  352. package/dist/react-sdk/responsive-state/use-responsive-state-manager.d.ts +0 -10
  353. package/dist/react-sdk/responsive-state/use-responsive-state-manager.js +0 -1
  354. package/dist/react-sdk/responsive-state/use-responsive-state.d.ts +0 -11
  355. package/dist/react-sdk/responsive-state/use-responsive-state.js +0 -1
  356. /package/dist/{configurator/ui/assistant/form/form-element-definition.js → react-sdk/application-runtime/responsive/types.js} +0 -0
  357. /package/dist/react-sdk/{responsive-state/canvas-padding.js → scene-control-elements/scene-control-tooltip-visibility.js} +0 -0
@@ -0,0 +1,24 @@
1
+ import type { CanvasPadding, ResponsiveActions, ResponsiveState, ResponsiveViewportSize } from '../../responsive/index.js';
2
+ /**
3
+ * The runtime's responsive state in the shape `ResponsiveApplicationProvider` of
4
+ * `@salsita-ai/sdk/ui` takes as its `store`, which that package declares by shape because it imports
5
+ * no other SDK package.
6
+ *
7
+ * @internal Runtime plumbing for the SDK's own UI. A project layout uses `useActiveViewports()`
8
+ * from `@salsita-ai/sdk/react` and `useSceneSafeArea()` from `@salsita-ai/sdk/configurator`.
9
+ */
10
+ export interface ResponsiveStore extends Omit<ResponsiveActions, 'reset'> {
11
+ /** Calls `onChange` after every change of the runtime; returns the unsubscribe. */
12
+ readonly subscribe: (onChange: () => void) => () => void;
13
+ readonly getState: () => ResponsiveState;
14
+ readonly getViewportSize: () => ResponsiveViewportSize;
15
+ readonly getCanvasPadding: () => CanvasPadding;
16
+ }
17
+ /**
18
+ * The responsive state of the application this component is mounted in, as the store its root
19
+ * container measures into and `useResponsive()` reads from. Stable for the runtime's lifetime.
20
+ *
21
+ * @internal Runtime plumbing for the SDK's own UI. A project layout uses `useActiveViewports()`
22
+ * from `@salsita-ai/sdk/react` and `useSceneSafeArea()` from `@salsita-ai/sdk/configurator`.
23
+ */
24
+ export declare const useResponsiveStore: () => ResponsiveStore;
@@ -0,0 +1 @@
1
+ import{useMemo as e}from"react";import{useResponsiveApplication as t}from"./use-responsive-application.js";export const useResponsiveStore=()=>{let{runtime:s,selectors:i,actions:a}=t();return e(()=>({setViewport:a.setViewport,setBreakpoints:a.setBreakpoints,setCanvasPadding:a.setCanvasPadding,expand:a.expand,collapse:a.collapse,hide:a.hide,show:a.show,setAnimating:a.setAnimating,subscribe:s.subscribe,getState:i.getResponsiveState,getViewportSize:i.getViewportSize,getCanvasPadding:i.getCanvasPadding}),[s,i,a])};
@@ -6,6 +6,11 @@ interface AccessServiceProviderProps {
6
6
  }
7
7
  export declare const AccessServiceProvider: (props: AccessServiceProviderProps) => import("react/jsx-runtime").JSX.Element;
8
8
  export declare const useProvidedAccessService: () => AccessService;
9
+ /**
10
+ * The provided access service with `accessInfo.viewMode` set by the application's read-only rule,
11
+ * the domain-context selector `getIsViewMode`: the access opens the configuration for viewing only,
12
+ * or the host element is `readonly`. The assistant's `apply` follows the same selector.
13
+ */
9
14
  export declare const useAccessService: () => AccessService;
10
15
  export declare const useConfigurationId: () => string;
11
16
  export declare const useConfiguratorRawAccessService: () => AccessService | null;
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{createContext as s,useContext as c,useMemo as o}from"react";import{standardWebComponentProperties as r}from"#package/domain";import{useApplicationRuntime as t}from"../provider/index.js";import{useApplicationRuntimeSelector as i}from"./use-application-runtime-selector.js";import{useWebComponentPropertyValue as n}from"./use-web-component.js";let a=s(null);export const AccessServiceProvider=s=>e(a.Provider,{value:s.value,children:s.children});export const useProvidedAccessService=()=>{let e=c(a);if(null===e)throw Error("Access service not found! Render access-dependent hooks inside AccessServiceProvider.");return e};export const useAccessService=()=>{let e=n(r.readonly),s=useProvidedAccessService();return o(()=>({...s,accessInfo:{...s.accessInfo,viewMode:s.accessInfo.viewMode||e}}),[s,e])};export const useConfigurationId=()=>useProvidedAccessService().configurationId;export const useConfiguratorRawAccessService=()=>i(t().selectors.access.getConfiguratorRawAccessService);export const useAdminRawAccessService=()=>i(t().selectors.access.getAdminRawAccessService);export const useConfiguratorRawAccessInfo=()=>i(t().selectors.access.getConfiguratorRawAccessInfo);export const useAdminRawAccessInfo=()=>i(t().selectors.access.getAdminRawAccessInfo);export const useAccessInfoActions=()=>t().actions.access;
1
+ import{jsx as e}from"react/jsx-runtime";import{createContext as s,useContext as c,useMemo as o}from"react";import{standardWebComponentProperties as r}from"#package/domain";import{useApplicationRuntime as t,useApplicationType as i}from"../provider/index.js";import{ApplicationType as n}from"../runtime/index.js";import{useApplicationRuntimeSelector as a}from"./use-application-runtime-selector.js";import{useWebComponentPropertyValue as d}from"./use-web-component.js";let u=s(null);export const AccessServiceProvider=s=>e(u.Provider,{value:s.value,children:s.children});export const useProvidedAccessService=()=>{let e=c(u);if(null===e)throw Error("Access service not found! Render access-dependent hooks inside AccessServiceProvider.");return e};export const useAccessService=()=>{let e=i(),s=t(),c=useProvidedAccessService(),u=e===n.Admin,m=a(u?s.selectors.domainContext.admin.getIsViewMode:s.selectors.domainContext.configurator.getIsViewMode),f=d(r.readonly),p=m||u&&f;return o(()=>({...c,accessInfo:{...c.accessInfo,viewMode:p}}),[c,p])};export const useConfigurationId=()=>useProvidedAccessService().configurationId;export const useConfiguratorRawAccessService=()=>a(t().selectors.access.getConfiguratorRawAccessService);export const useAdminRawAccessService=()=>a(t().selectors.access.getAdminRawAccessService);export const useConfiguratorRawAccessInfo=()=>a(t().selectors.access.getConfiguratorRawAccessInfo);export const useAdminRawAccessInfo=()=>a(t().selectors.access.getAdminRawAccessInfo);export const useAccessInfoActions=()=>t().actions.access;
@@ -1,8 +1,9 @@
1
- import type { PropsWithChildren } from 'react';
1
+ import type { ComponentType, PropsWithChildren } from 'react';
2
2
  import type { CustomPhoenixEntityElementProps } from '#package/domain';
3
3
  export interface PhoenixElementSlots {
4
4
  readonly entityElements: Record<string, (props: CustomPhoenixEntityElementProps) => JSX.Element>;
5
5
  readonly layoutElements: Record<string, (props: PropsWithChildren) => JSX.Element>;
6
+ readonly assistantFormElements: Record<string, ComponentType<never>>;
6
7
  readonly hashes: Record<string, string>;
7
8
  }
8
9
  export declare const usePhoenixElementSlots: () => PhoenixElementSlots;
@@ -5,6 +5,7 @@ export * from './web-component/index.js';
5
5
  export * from './common-services/index.js';
6
6
  export * from './domain-application-context/index.js';
7
7
  export * from './integration/index.js';
8
+ export { type CanvasPadding, type ResponsiveApplicationState, type ResponsiveBreakpoints, type ResponsiveRuntimeState, type ResponsiveState, type ResponsiveViewport, type ResponsiveViewportSize, } from './responsive/index.js';
8
9
  export * from './routing/index.js';
9
10
  export * from './session/index.js';
10
11
  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
  }
@@ -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 i,createMockSessionContext as n}from"#package/domain";import{createCommonServicesSelectors as s}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{createResponsiveActions as p,createResponsiveSelectors as d,initializeResponsive as l}from"../responsive/index.js";import{createRoutingActions as g,createRoutingSelectors as S,initializeRouting as v}from"../routing/index.js";import{SessionService as u,createSessionRuntimeActions as f,createSessionRuntimeSelectors as x,initializeSessionRuntime as C}from"../session/index.js";import{createMockWebComponentApi as b}from"../web-component/index.js";export const createMockApplicationRuntime=(y,w)=>{var A;let D,k,R,j,E,I,T,h,O,L,F,M,U,V,z,q,B,G,{sessionData:H,mode:J,role:K}=w,N=i(),P=(A={webComponentOptions:w.webComponentOptions??y.mount.options,webComponentApi:w.webComponentApi??b()},R=C(),j=o({config:y,services:N,getExtensionSystems:e=>G[e].getInitializableSystems()}),E=new Set,I=()=>{E.forEach(e=>{e()})},T=r({setIntegration:e=>{D=e(D),I()}}),D=m(),h=c({getState:()=>({integration:D}),actions:T}),O=g({setRouting:e=>{k=e(k),I()}}),k=v(),L=S({getState:()=>({...j.getState(),routing:k}),actions:O,accessActions:j.actions.access,loadedDataActions:j.actions.loadedData,domainServicesSelectors:j.selectors.domainServices,overridesSelectors:j.selectors.overrides}),F=l(),M=p({setResponsive:e=>{let t=e(F);t!==F&&(F=t,I())}}),U={configurator:d({getState:()=>({responsive:F}),applicationType:"configurator"}),admin:d({getState:()=>({responsive:F}),applicationType:"admin"})},V=s({getState:()=>({...j.getState(),session:R}),environmentSelectors:j.selectors.environment,specSelectors:j.selectors.spec,accessSelectors:j.selectors.access,domainServicesSelectors:j.selectors.domainServices,webComponentOptions:A.webComponentOptions,webComponentApi:A.webComponentApi,getSessionService:()=>B(),routingSelectors:L}),z=f({setSessionRuntime:e=>{R=e(R),I()}}),q=x({getState:()=>({...j.getState(),session:R}),sessionContextSelectors:j.selectors.sessionContext}),B=e(()=>new u({getLogger:()=>j.selectors.domainServices.getLogger(),getAnalyticsService:()=>j.selectors.domainServices.getAnalyticsService(),getUnauthenticatedClient:V.getUnauthenticatedClient,environmentSelectors:j.selectors.environment,sessionActions:z,setSessionContext:j.actions.sessionContext.setSessionContext,sessionSelectors:q,specSelectors:j.selectors.spec})),G={configurator:a({applicationType:"configurator",commonServicesSelectors:V,domainServicesSelectors:j.selectors.domainServices,domainContextSelectors:j.selectors.domainContext.configurator,getApplicationRuntimeExtensions:()=>[]}),admin:a({applicationType:"admin",commonServicesSelectors:V,domainServicesSelectors:j.selectors.domainServices,domainContextSelectors:j.selectors.domainContext.admin,getApplicationRuntimeExtensions:()=>[]})},{subscribe:e=>{E.add(e);let t=j.subscribe(e);return()=>{E.delete(e),t()}},getState:()=>({...j.getState(),integration:D,responsive:F,routing:k,session:R}),selectors:{...j.selectors,commonServices:V,integration:h,responsive:U,routing:L,session:q,domainApplicationContext:G},actions:{...j.actions,integration:T,responsive:M,routing:O,session:z}}),Q=P.getState().spec;return P.actions.spec.updateSpec({...Q,configurator:{...Q.configurator,createTransformers:e=>w.transformers.map(t=>t.transformer.register(e,t.priority??1/0))}}),P.actions.sessionContext.setSessionContext(n(K,H)),P.actions.access.setConfiguratorAccessInfo({raw:"mock-access-token",access:"read"===J?t.Read:t.Owner,viewMode:"read"===J,revisionId:void 0,configurationId:"mock"}),P.actions.domainData.setDomainData({publishedData:w.publishedData,frontendData:w.frontendData,backendData:w.backendData}),P.actions.loadedData.completeConfiguratorLoad({initialRevisionId:"mock-revision",initialEntities:w.entities,modelVersion:y.domain.domainFactory.modelVersion,rootEntityType:w.rootEntityType,schemaIdentity:y.domain.domainFactory}),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}}