@salsita-ai/sdk 0.50.0-develop.d87b28256e → 0.50.0-develop.d96df76afa

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 (398) 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 +2 -1
  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/app-loader-content/DefaultAppLoaderContent.d.ts +2 -0
  26. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.js +5 -0
  27. package/dist/configurator/app-loader-content/app-loader-content-name.d.ts +5 -0
  28. package/dist/configurator/app-loader-content/app-loader-content-name.js +1 -0
  29. package/dist/configurator/app-loader-content/index.d.ts +2 -0
  30. package/dist/configurator/app-loader-content/index.js +1 -0
  31. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  32. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  33. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +12 -2
  34. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  35. package/dist/configurator/application-runtime/extensions/systems/canvas-system.d.ts +8 -0
  36. package/dist/configurator/application-runtime/extensions/systems/canvas-system.js +1 -1
  37. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.d.ts +8 -0
  38. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.js +1 -0
  39. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.d.ts +23 -1
  40. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.js +1 -1
  41. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +14 -1
  42. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  43. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +45 -4
  44. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  45. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.d.ts +14 -5
  46. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.js +1 -1
  47. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  48. package/dist/configurator/common/configurator-interface.d.ts +90 -4
  49. package/dist/configurator/common/configurator-interface.js +1 -1
  50. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +3 -3
  51. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -1
  52. package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
  53. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +4 -0
  54. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +1 -1
  55. package/dist/configurator/index.d.ts +1 -0
  56. package/dist/configurator/index.js +1 -1
  57. package/dist/configurator/pages/ConfiguratorErrorPage.d.ts +0 -1
  58. package/dist/configurator/pages/ConfiguratorErrorPage.js +1 -1
  59. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  60. package/dist/configurator/pages/default-configurator-elements.d.ts +4 -3
  61. package/dist/configurator/pages/default-configurator-elements.js +1 -1
  62. package/dist/configurator/pages/default-elements/index.d.ts +1 -0
  63. package/dist/configurator/pages/default-elements/index.js +1 -1
  64. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.d.ts +3 -0
  65. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.js +1 -0
  66. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.d.ts +3 -0
  67. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.js +1 -0
  68. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.d.ts +3 -0
  69. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.js +1 -0
  70. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.d.ts +3 -0
  71. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.js +1 -0
  72. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.d.ts +3 -0
  73. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.js +1 -0
  74. package/dist/configurator/pages/default-elements/scene-controls/index.d.ts +6 -0
  75. package/dist/configurator/pages/default-elements/scene-controls/index.js +1 -0
  76. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.d.ts +6 -0
  77. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.js +1 -0
  78. package/dist/configurator/scene/index.d.ts +1 -0
  79. package/dist/configurator/scene/index.js +1 -1
  80. package/dist/configurator/scene/scene-controls/ToolFab.d.ts +4 -0
  81. package/dist/configurator/scene/scene-controls/ToolFab.js +1 -1
  82. package/dist/configurator/scene/scene-controls/use-scene-control-tooltip.d.ts +2 -1
  83. package/dist/configurator/scene/scene-entity/scene-controls/SceneEntityHtmlHotspots.js +1 -1
  84. package/dist/configurator/toolbar-actions/index.d.ts +3 -0
  85. package/dist/configurator/toolbar-actions/index.js +1 -0
  86. package/dist/configurator/toolbar-actions/use-assistant-panel.d.ts +18 -0
  87. package/dist/configurator/toolbar-actions/use-assistant-panel.js +1 -0
  88. package/dist/configurator/toolbar-actions/use-measurements.d.ts +35 -0
  89. package/dist/configurator/toolbar-actions/use-measurements.js +1 -0
  90. package/dist/configurator/toolbar-actions/use-toolbar-actions.d.ts +100 -0
  91. package/dist/configurator/toolbar-actions/use-toolbar-actions.js +1 -0
  92. package/dist/configurator/toolbar-actions/use-toolbar-help.d.ts +7 -0
  93. package/dist/configurator/toolbar-actions/use-toolbar-help.js +1 -0
  94. package/dist/configurator/ui/assistant/AssistantChips.d.ts +3 -2
  95. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  96. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +1 -1
  97. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  98. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +8 -0
  99. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -0
  100. package/dist/configurator/ui/assistant/alert/index.d.ts +2 -0
  101. package/dist/configurator/ui/assistant/alert/index.js +1 -0
  102. package/dist/configurator/ui/assistant/alert/remark-alerts.d.ts +10 -0
  103. package/dist/configurator/ui/assistant/alert/remark-alerts.js +1 -0
  104. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -1
  105. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +1 -1
  106. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -1
  107. package/dist/configurator/ui/assistant/form/form-model.d.ts +3 -4
  108. package/dist/configurator/ui/assistant/form/form-state.d.ts +1 -1
  109. package/dist/configurator/ui/assistant/form/index.d.ts +2 -0
  110. package/dist/configurator/ui/assistant/form/index.js +1 -1
  111. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +3 -2
  112. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -1
  113. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +1 -1
  114. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -1
  115. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +3 -0
  116. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.js +1 -0
  117. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.d.ts +31 -0
  118. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.js +1 -0
  119. package/dist/configurator/ui/assistant/form/{form-element-definition.d.ts → registry/form-element-definition.d.ts} +3 -1
  120. package/dist/configurator/ui/assistant/form/registry/form-element-definition.js +1 -0
  121. package/dist/configurator/ui/assistant/form/{form-registry.d.ts → registry/form-registry.d.ts} +2 -2
  122. package/dist/configurator/ui/assistant/form/registry/form-registry.js +1 -0
  123. package/dist/configurator/ui/assistant/form/registry/index.d.ts +6 -0
  124. package/dist/configurator/ui/assistant/form/registry/index.js +1 -0
  125. package/dist/configurator/ui/assistant/form/registry/use-form-registry.d.ts +8 -0
  126. package/dist/configurator/ui/assistant/form/registry/use-form-registry.js +1 -0
  127. package/dist/configurator/ui/assistant/form-elements/FormCard.d.ts +9 -0
  128. package/dist/configurator/ui/assistant/form-elements/FormCard.js +1 -0
  129. package/dist/configurator/ui/assistant/form-elements/FormConfirm.d.ts +9 -0
  130. package/dist/configurator/ui/assistant/form-elements/FormConfirm.js +1 -0
  131. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +4 -1
  132. package/dist/configurator/ui/assistant/form-elements/FormNumber.d.ts +9 -0
  133. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -0
  134. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +4 -1
  135. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +4 -1
  136. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -1
  137. package/dist/configurator/ui/assistant/form-elements/FormSwatch.d.ts +10 -0
  138. package/dist/configurator/ui/assistant/form-elements/FormSwatch.js +1 -0
  139. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +4 -1
  140. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -1
  141. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.d.ts +10 -0
  142. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.js +1 -0
  143. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +20 -16
  144. package/dist/configurator/ui/assistant/form-elements/index.d.ts +4 -0
  145. package/dist/configurator/ui/assistant/form-elements/index.js +1 -1
  146. package/dist/configurator/ui/assistant/index.d.ts +3 -0
  147. package/dist/configurator/ui/assistant/index.js +1 -1
  148. package/dist/configurator/ui/assistant/resource-image/index.d.ts +1 -1
  149. package/dist/configurator/ui/assistant/resource-image/index.js +1 -1
  150. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +0 -9
  151. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -1
  152. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +9 -0
  153. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -0
  154. package/dist/configurator/ui/assistant/screenshots/index.d.ts +2 -0
  155. package/dist/configurator/ui/assistant/screenshots/index.js +1 -0
  156. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +14 -0
  157. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -0
  158. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +2 -2
  159. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  160. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  161. package/dist/configurator/ui/configurator-layout/slots/canvas/LayoutCanvas.js +1 -1
  162. package/dist/configurator/ui/configurator-layout/slots/canvas/SharedCanvas.js +1 -1
  163. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.d.ts +5 -0
  164. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.js +1 -0
  165. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  166. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -1
  167. package/dist/configurator/ui/index.d.ts +1 -0
  168. package/dist/configurator/ui/index.js +1 -1
  169. package/dist/configurator/ui/legacy/layout/common/ReactiveInterfaceLayout.js +1 -1
  170. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.js +2 -6
  171. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -1
  172. package/dist/configurator/ui/phoenix-layout-elements/LanguageMenuAction.js +1 -1
  173. package/dist/configurator/ui/phoenix-layout-elements/LanguageToolbarButton.js +1 -1
  174. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsMenuAction.js +1 -1
  175. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsToolbarButton.js +1 -1
  176. package/dist/configurator/ui/phoenix-layout-elements/ShareToolbarButton.js +1 -1
  177. package/dist/configurator/ui/phoenix-layout-elements/measurements/DimensionUnitSelector.js +1 -1
  178. package/dist/configurator/ui/phoenix-layout-elements/measurements/MeasurementsIndicatorsSwitch.js +1 -1
  179. package/dist/configurator/ui/phoenix-layout-elements/share/ShareModal.js +1 -1
  180. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.d.ts +7 -8
  181. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.js +1 -1
  182. package/dist/docs/complex-use-cases/focus-mode.mdx +2 -0
  183. package/dist/docs/fabs/basic.mdx +4 -0
  184. package/dist/docs/index.json +62 -1
  185. package/dist/docs/layouts/custom-layout.mdx +4 -2
  186. package/dist/docs/layouts/gallery/ardent-compressor.mdx +3516 -0
  187. package/dist/docs/layouts/gallery/fenwick-window.mdx +2803 -0
  188. package/dist/docs/layouts/gallery/ferrule-bar-station.mdx +6567 -0
  189. package/dist/docs/layouts/gallery/kestrel-kettle.mdx +1858 -0
  190. package/dist/docs/layouts/gallery/sunfold-solar.mdx +2683 -0
  191. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  192. package/dist/docs/other-features/navigation-hotspot.mdx +2 -0
  193. package/dist/docs/phoenix/configurator-interface.mdx +93 -10
  194. package/dist/docs/phoenix/layout-slots.mdx +4 -4
  195. package/dist/docs/phoenix/sdk-builder-workflow.mdx +1 -1
  196. package/dist/docs/phoenix/testing.mdx +2 -2
  197. package/dist/docs/selection-and-highlight/hotspots.mdx +2 -0
  198. package/dist/domain/application/assistant/assistant-manifest.d.ts +16 -1
  199. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +8 -1
  200. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  201. package/dist/domain/application/assistant/form/assistant-form-element-name.d.ts +11 -0
  202. package/dist/domain/application/assistant/form/assistant-form-element-name.js +8 -0
  203. package/dist/domain/application/assistant/form/assistant-form-elements.d.ts +174 -0
  204. package/dist/domain/application/assistant/form/assistant-form-elements.js +1 -0
  205. package/dist/domain/application/assistant/form/assistant-resource-path.d.ts +10 -0
  206. package/dist/domain/application/assistant/form/assistant-resource-path.js +1 -0
  207. package/dist/domain/application/assistant/form/index.d.ts +4 -0
  208. package/dist/domain/application/assistant/form/index.js +1 -0
  209. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  210. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  211. package/dist/domain/application/assistant/index.d.ts +2 -3
  212. package/dist/domain/application/assistant/index.js +1 -1
  213. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
  214. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +2 -0
  215. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
  216. package/dist/domain/available-system-components.d.ts +1 -1
  217. package/dist/domain/available-system-components.js +1 -1
  218. package/dist/domain/domain-context/store-system/store-system.d.ts +5 -0
  219. package/dist/domain/domain-context/store-system/store-system.js +1 -1
  220. package/dist/domain/domain-runtime/domain-runtime.d.ts +4 -0
  221. package/dist/domain/domain-runtime/environment/types.d.ts +1 -1
  222. package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
  223. package/dist/domain/domain-runtime/spec/index.js +1 -1
  224. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  225. package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +15 -1
  226. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -1
  227. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.d.ts +12 -0
  228. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +1 -0
  229. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +2 -1
  230. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -1
  231. package/dist/domain/domain-runtime/spec/selectors.d.ts +3 -1
  232. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  233. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +24 -0
  234. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -0
  235. package/dist/domain/extensions/{client-side-image.d.ts → export-images/client-side-image.d.ts} +2 -2
  236. package/dist/domain/extensions/export-images/client-side-image.js +1 -0
  237. package/dist/domain/extensions/export-images/index.d.ts +3 -0
  238. package/dist/domain/extensions/export-images/index.js +1 -0
  239. package/dist/domain/extensions/{save-template-thumbnail.d.ts → export-images/save-template-thumbnail.d.ts} +2 -2
  240. package/dist/domain/extensions/export-images/save-template-thumbnail.js +1 -0
  241. package/dist/domain/extensions/index.d.ts +1 -2
  242. package/dist/domain/extensions/index.js +1 -1
  243. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +2 -0
  244. package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
  245. package/dist/editor/domain-editors/apply-spec-update.d.ts +8 -1
  246. package/dist/editor/domain-editors/apply-spec-update.js +1 -1
  247. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  248. package/dist/editor/screenshot/ScreenshotHandler.js +1 -1
  249. package/dist/i18n/locales/cs/messages.js +1 -1
  250. package/dist/i18n/locales/da/messages.js +1 -1
  251. package/dist/i18n/locales/de/messages.js +1 -1
  252. package/dist/i18n/locales/de-AT/messages.js +1 -1
  253. package/dist/i18n/locales/en/messages.js +1 -1
  254. package/dist/i18n/locales/en-AU/messages.js +1 -1
  255. package/dist/i18n/locales/en-GB/messages.js +1 -1
  256. package/dist/i18n/locales/es/messages.js +1 -1
  257. package/dist/i18n/locales/fr/messages.js +1 -1
  258. package/dist/i18n/locales/hu/messages.js +1 -1
  259. package/dist/i18n/locales/it/messages.js +1 -1
  260. package/dist/i18n/locales/nl/messages.js +1 -1
  261. package/dist/i18n/locales/pl/messages.js +1 -1
  262. package/dist/i18n/locales/pt/messages.js +1 -1
  263. package/dist/i18n/locales/ro/messages.js +1 -1
  264. package/dist/i18n/locales/sk/messages.js +1 -1
  265. package/dist/i18n/locales/tr/messages.js +1 -1
  266. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +16 -0
  267. package/dist/legacy/domain-spec/spec/domain-spec.js +1 -1
  268. package/dist/react-sdk/application-runtime/common-services/analytics/frontend-analytics.d.ts +4 -0
  269. package/dist/react-sdk/application-runtime/hooks/index.d.ts +1 -0
  270. package/dist/react-sdk/application-runtime/hooks/index.js +1 -1
  271. package/dist/react-sdk/application-runtime/hooks/responsive/index.d.ts +3 -0
  272. package/dist/react-sdk/application-runtime/hooks/responsive/index.js +1 -0
  273. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.d.ts +9 -0
  274. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.js +1 -0
  275. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.d.ts +26 -0
  276. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.js +1 -0
  277. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.d.ts +10 -0
  278. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.js +1 -0
  279. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.d.ts +24 -0
  280. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.js +1 -0
  281. package/dist/react-sdk/application-runtime/hooks/use-phoenix-element-slots.d.ts +2 -1
  282. package/dist/react-sdk/application-runtime/index.d.ts +1 -0
  283. package/dist/react-sdk/application-runtime/integration/initialize.d.ts +7 -6
  284. package/dist/react-sdk/application-runtime/integration/initialize.js +1 -1
  285. package/dist/react-sdk/application-runtime/integration/selectors.d.ts +11 -2
  286. package/dist/react-sdk/application-runtime/integration/selectors.js +1 -1
  287. package/dist/react-sdk/application-runtime/integration/types.d.ts +5 -2
  288. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  289. package/dist/react-sdk/application-runtime/responsive/actions.d.ts +47 -0
  290. package/dist/react-sdk/application-runtime/responsive/actions.js +1 -0
  291. package/dist/react-sdk/application-runtime/responsive/index.d.ts +4 -0
  292. package/dist/react-sdk/application-runtime/responsive/index.js +1 -0
  293. package/dist/react-sdk/application-runtime/responsive/initialize.d.ts +3 -0
  294. package/dist/react-sdk/application-runtime/responsive/initialize.js +1 -0
  295. package/dist/react-sdk/application-runtime/responsive/selectors.d.ts +20 -0
  296. package/dist/react-sdk/application-runtime/responsive/selectors.js +1 -0
  297. package/dist/react-sdk/application-runtime/responsive/types.d.ts +104 -0
  298. package/dist/react-sdk/application-runtime/routing/routing-service.d.ts +34 -2
  299. package/dist/react-sdk/application-runtime/routing/routing-service.js +1 -1
  300. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +91 -2
  301. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  302. package/dist/react-sdk/domain-context/common-hooks/index.d.ts +9 -0
  303. package/dist/react-sdk/domain-context/common-hooks/index.js +1 -0
  304. package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.d.ts +23 -0
  305. package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.js +1 -0
  306. package/dist/react-sdk/domain-context/component-hooks/index.d.ts +1 -0
  307. package/dist/react-sdk/domain-context/component-hooks/index.js +1 -0
  308. package/dist/react-sdk/domain-context/component-hooks/use-component.js +1 -1
  309. package/dist/react-sdk/domain-context/entity-hooks/use-domain-entity-state.js +1 -1
  310. package/dist/react-sdk/domain-context/entity-hooks/use-entity-price.js +1 -1
  311. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-id.js +1 -1
  312. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-state.js +1 -1
  313. package/dist/react-sdk/domain-context/index.d.ts +4 -0
  314. package/dist/react-sdk/domain-context/index.js +1 -1
  315. package/dist/react-sdk/domain-context/system-hooks/composition-hooks.js +1 -1
  316. package/dist/react-sdk/domain-context/system-hooks/dimension-hooks.js +1 -1
  317. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.d.ts +8 -0
  318. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.js +1 -0
  319. package/dist/react-sdk/domain-context/system-hooks/hover-hooks.js +1 -1
  320. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.d.ts +24 -0
  321. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.js +1 -0
  322. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  323. package/dist/react-sdk/domain-context/system-hooks/selection-hooks.js +1 -1
  324. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.d.ts +32 -0
  325. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.js +1 -0
  326. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.js +1 -1
  327. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -1
  328. package/dist/react-sdk/index.d.ts +1 -1
  329. package/dist/react-sdk/index.js +1 -1
  330. package/dist/react-sdk/loading-state/loading-state-manager.d.ts +5 -0
  331. package/dist/react-sdk/loading-state/loading-state-manager.js +1 -1
  332. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.d.ts +36 -0
  333. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.js +1 -0
  334. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.d.ts +44 -0
  335. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.js +1 -0
  336. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.d.ts +38 -0
  337. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.js +1 -0
  338. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.d.ts +30 -0
  339. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.js +1 -0
  340. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.d.ts +30 -0
  341. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.js +1 -0
  342. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.d.ts +9 -0
  343. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.js +1 -0
  344. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.d.ts +9 -0
  345. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.js +1 -0
  346. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.d.ts +10 -0
  347. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.js +1 -0
  348. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.d.ts +9 -0
  349. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.js +1 -0
  350. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.d.ts +9 -0
  351. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.js +1 -0
  352. package/dist/react-sdk/scene-control-elements/index.d.ts +11 -0
  353. package/dist/react-sdk/scene-control-elements/index.js +1 -0
  354. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.d.ts +5 -0
  355. package/dist/react-sdk/web-component/create-web-component.js +1 -1
  356. package/dist/react-sdk/web-component/god-mode/god-mode-registry.d.ts +30 -0
  357. package/dist/react-sdk/web-component/god-mode/god-mode-registry.js +1 -0
  358. package/dist/react-sdk/web-component/god-mode/index.d.ts +1 -0
  359. package/dist/react-sdk/web-component/god-mode/index.js +1 -0
  360. package/dist/ui-sdk/icons/__generated/Lightbulb.d.ts +3 -0
  361. package/dist/ui-sdk/icons/__generated/Lightbulb.js +1 -0
  362. package/dist/ui-sdk/icons/__generated/XCircle.d.ts +3 -0
  363. package/dist/ui-sdk/icons/__generated/XCircle.js +1 -0
  364. package/dist/ui-sdk/icons/__generated/index.d.ts +4 -0
  365. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  366. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  367. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +2 -2
  368. package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +11 -9
  369. package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -1
  370. package/dist/ui-sdk/theme/types.d.ts +5 -1
  371. package/package.json +13 -3
  372. package/schema/domain-spec.json +140 -0
  373. package/dist/configurator/ui/assistant/form/built-in-form-registry.d.ts +0 -10
  374. package/dist/configurator/ui/assistant/form/built-in-form-registry.js +0 -1
  375. package/dist/configurator/ui/assistant/form/form-registry.js +0 -8
  376. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.d.ts +0 -4
  377. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.js +0 -1
  378. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.d.ts +0 -4
  379. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.js +0 -1
  380. package/dist/domain/application/assistant/assistant-form-elements.d.ts +0 -28
  381. package/dist/domain/application/assistant/assistant-form-elements.js +0 -1
  382. package/dist/domain/extensions/client-side-image.js +0 -1
  383. package/dist/domain/extensions/save-template-thumbnail.js +0 -1
  384. package/dist/react-sdk/application-runtime/runtime/god-mode.d.ts +0 -19
  385. package/dist/react-sdk/application-runtime/runtime/god-mode.js +0 -1
  386. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.d.ts +0 -25
  387. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.js +0 -1
  388. package/dist/react-sdk/responsive-state/canvas-padding.d.ts +0 -14
  389. package/dist/react-sdk/responsive-state/index.d.ts +0 -5
  390. package/dist/react-sdk/responsive-state/index.js +0 -1
  391. package/dist/react-sdk/responsive-state/responsive-state-manager.d.ts +0 -111
  392. package/dist/react-sdk/responsive-state/responsive-state-manager.js +0 -1
  393. package/dist/react-sdk/responsive-state/use-responsive-state-manager.d.ts +0 -10
  394. package/dist/react-sdk/responsive-state/use-responsive-state-manager.js +0 -1
  395. package/dist/react-sdk/responsive-state/use-responsive-state.d.ts +0 -11
  396. package/dist/react-sdk/responsive-state/use-responsive-state.js +0 -1
  397. /package/dist/{configurator/ui/assistant/form/form-element-definition.js → react-sdk/application-runtime/responsive/types.js} +0 -0
  398. /package/dist/react-sdk/{responsive-state/canvas-padding.js → scene-control-elements/scene-control-tooltip-visibility.js} +0 -0
@@ -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}}
@@ -2,11 +2,13 @@ import { BehaviorSubject } from 'rxjs';
2
2
  import { type AnyApplicationConfig, type DomainRuntimeState, type WebComponentOptions } from '#package/domain';
3
3
  import { type AnyApplicationRuntimeExtension, type DomainApplicationContextSelectors } from '../domain-application-context/index.js';
4
4
  import { type IntegrationState } from '../integration/index.js';
5
+ import { type ResponsiveRuntimeState } from '../responsive/index.js';
5
6
  import { type RoutingRuntimeState } from '../routing/index.js';
6
7
  import { type ApplicationSessionRuntime, SessionService } from '../session/index.js';
7
8
  import type { WebComponentApi } from '../web-component/index.js';
8
9
  export interface ApplicationRuntimeState extends DomainRuntimeState {
9
10
  readonly integration: IntegrationState;
11
+ readonly responsive: ResponsiveRuntimeState;
10
12
  readonly routing: RoutingRuntimeState;
11
13
  readonly session: ApplicationSessionRuntime;
12
14
  }
@@ -48,6 +50,7 @@ export declare function createApplicationRuntimeSlices<State extends Application
48
50
  webComponent: import("#package/domain").ApplicationWebComponentState;
49
51
  domainContext: import("#package/domain").ApplicationDomainContextState;
50
52
  integration: IntegrationState;
53
+ responsive: ResponsiveRuntimeState;
51
54
  routing: RoutingRuntimeState;
52
55
  session: ApplicationSessionRuntime;
53
56
  };
@@ -93,6 +96,7 @@ export declare function createApplicationRuntimeSlices<State extends Application
93
96
  selectElementSlots: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, {
94
97
  entityElements: Record<string, (props: import("#package/domain").CustomPhoenixEntityElementProps) => JSX.Element>;
95
98
  layoutElements: Record<string, (props: import("react").PropsWithChildren) => JSX.Element>;
99
+ assistantFormElements: Record<string, import("react").ComponentType<never>>;
96
100
  hashes: Record<string, string>;
97
101
  }>;
98
102
  selectDataConfig: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, import("#package/domain").DataSpec | null>;
@@ -136,6 +140,7 @@ export declare function createApplicationRuntimeSlices<State extends Application
136
140
  getElementSlots: () => {
137
141
  entityElements: Record<string, (props: import("#package/domain").CustomPhoenixEntityElementProps) => JSX.Element>;
138
142
  layoutElements: Record<string, (props: import("react").PropsWithChildren) => JSX.Element>;
143
+ assistantFormElements: Record<string, import("react").ComponentType<never>>;
139
144
  hashes: Record<string, string>;
140
145
  };
141
146
  getDataConfig: () => import("#package/domain").DataSpec | null;
@@ -596,7 +601,6 @@ export declare function createApplicationRuntimeSlices<State extends Application
596
601
  getUnauthenticatedClient: () => import("../../../client/contract.js").UnauthenticatedPhoenixApiClient;
597
602
  };
598
603
  integration: {
599
- selectAdminIntegrationService: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, import("../index.js").AdminIntegrationService>;
600
604
  selectIntegrationState: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, IntegrationState>;
601
605
  selectEmbeddedView: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, import("../index.js").EmbeddedView>;
602
606
  selectPresetEmbeddedState: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, import("../index.js").PresetEmbeddedView | null>;
@@ -607,6 +611,24 @@ export declare function createApplicationRuntimeSlices<State extends Application
607
611
  getPresetEmbeddedState: () => import("../index.js").PresetEmbeddedView | null;
608
612
  getRecipeEmbeddedState: () => import("../index.js").RecipeEmbeddedView | null;
609
613
  };
614
+ responsive: {
615
+ configurator: {
616
+ selectResponsiveState: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveState>;
617
+ selectViewportSize: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveViewportSize>;
618
+ selectCanvasPadding: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").CanvasPadding>;
619
+ getResponsiveState: () => import("../index.js").ResponsiveState;
620
+ getViewportSize: () => import("../index.js").ResponsiveViewportSize;
621
+ getCanvasPadding: () => import("../index.js").CanvasPadding;
622
+ };
623
+ admin: {
624
+ selectResponsiveState: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveState>;
625
+ selectViewportSize: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveViewportSize>;
626
+ selectCanvasPadding: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").CanvasPadding>;
627
+ getResponsiveState: () => import("../index.js").ResponsiveState;
628
+ getViewportSize: () => import("../index.js").ResponsiveViewportSize;
629
+ getCanvasPadding: () => import("../index.js").CanvasPadding;
630
+ };
631
+ };
610
632
  routing: {
611
633
  selectRoutingState: import("@salsita-ai/common/utils").Selector<import("../index.js").RoutingSelectorState, import("../index.js").RoutingState>;
612
634
  selectEffectiveRoutingState: import("@salsita-ai/common/utils").Selector<import("../index.js").RoutingSelectorState, import("../index.js").RoutingState>;
@@ -702,6 +724,30 @@ export declare function createApplicationRuntimeSlices<State extends Application
702
724
  enterEmbeddedView: (view: import("../index.js").EmbeddedView) => void;
703
725
  exitEmbeddedView: () => void;
704
726
  };
727
+ responsive: {
728
+ configurator: {
729
+ setViewport: (viewport: import("../index.js").ResponsiveViewport) => void;
730
+ setBreakpoints: (breakpoints: import("../index.js").ResponsiveBreakpoints) => void;
731
+ setCanvasPadding: (canvasPadding: import("../index.js").CanvasPadding) => void;
732
+ expand: () => void;
733
+ collapse: () => void;
734
+ hide: () => void;
735
+ show: () => void;
736
+ setAnimating: (isAnimating: boolean) => void;
737
+ reset: () => void;
738
+ };
739
+ admin: {
740
+ setViewport: (viewport: import("../index.js").ResponsiveViewport) => void;
741
+ setBreakpoints: (breakpoints: import("../index.js").ResponsiveBreakpoints) => void;
742
+ setCanvasPadding: (canvasPadding: import("../index.js").CanvasPadding) => void;
743
+ expand: () => void;
744
+ collapse: () => void;
745
+ hide: () => void;
746
+ show: () => void;
747
+ setAnimating: (isAnimating: boolean) => void;
748
+ reset: () => void;
749
+ };
750
+ };
705
751
  routing: {
706
752
  setRoutingState: (routingState: import("../index.js").RoutingState) => void;
707
753
  };
@@ -761,6 +807,7 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
761
807
  selectElementSlots: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, {
762
808
  entityElements: Record<string, (props: import("#package/domain").CustomPhoenixEntityElementProps) => JSX.Element>;
763
809
  layoutElements: Record<string, (props: import("react").PropsWithChildren) => JSX.Element>;
810
+ assistantFormElements: Record<string, import("react").ComponentType<never>>;
764
811
  hashes: Record<string, string>;
765
812
  }>;
766
813
  selectDataConfig: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, import("#package/domain").DataSpec | null>;
@@ -804,6 +851,7 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
804
851
  getElementSlots: () => {
805
852
  entityElements: Record<string, (props: import("#package/domain").CustomPhoenixEntityElementProps) => JSX.Element>;
806
853
  layoutElements: Record<string, (props: import("react").PropsWithChildren) => JSX.Element>;
854
+ assistantFormElements: Record<string, import("react").ComponentType<never>>;
807
855
  hashes: Record<string, string>;
808
856
  };
809
857
  getDataConfig: () => import("#package/domain").DataSpec | null;
@@ -1264,7 +1312,6 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
1264
1312
  getUnauthenticatedClient: () => import("../../../client/contract.js").UnauthenticatedPhoenixApiClient;
1265
1313
  };
1266
1314
  integration: {
1267
- selectAdminIntegrationService: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, import("../index.js").AdminIntegrationService>;
1268
1315
  selectIntegrationState: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, IntegrationState>;
1269
1316
  selectEmbeddedView: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, import("../index.js").EmbeddedView>;
1270
1317
  selectPresetEmbeddedState: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, import("../index.js").PresetEmbeddedView | null>;
@@ -1275,6 +1322,24 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
1275
1322
  getPresetEmbeddedState: () => import("../index.js").PresetEmbeddedView | null;
1276
1323
  getRecipeEmbeddedState: () => import("../index.js").RecipeEmbeddedView | null;
1277
1324
  };
1325
+ responsive: {
1326
+ configurator: {
1327
+ selectResponsiveState: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveState>;
1328
+ selectViewportSize: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveViewportSize>;
1329
+ selectCanvasPadding: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").CanvasPadding>;
1330
+ getResponsiveState: () => import("../index.js").ResponsiveState;
1331
+ getViewportSize: () => import("../index.js").ResponsiveViewportSize;
1332
+ getCanvasPadding: () => import("../index.js").CanvasPadding;
1333
+ };
1334
+ admin: {
1335
+ selectResponsiveState: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveState>;
1336
+ selectViewportSize: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveViewportSize>;
1337
+ selectCanvasPadding: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").CanvasPadding>;
1338
+ getResponsiveState: () => import("../index.js").ResponsiveState;
1339
+ getViewportSize: () => import("../index.js").ResponsiveViewportSize;
1340
+ getCanvasPadding: () => import("../index.js").CanvasPadding;
1341
+ };
1342
+ };
1278
1343
  routing: {
1279
1344
  selectRoutingState: import("@salsita-ai/common/utils").Selector<import("../index.js").RoutingSelectorState, import("../index.js").RoutingState>;
1280
1345
  selectEffectiveRoutingState: import("@salsita-ai/common/utils").Selector<import("../index.js").RoutingSelectorState, import("../index.js").RoutingState>;
@@ -1370,6 +1435,30 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
1370
1435
  enterEmbeddedView: (view: import("../index.js").EmbeddedView) => void;
1371
1436
  exitEmbeddedView: () => void;
1372
1437
  };
1438
+ responsive: {
1439
+ configurator: {
1440
+ setViewport: (viewport: import("../index.js").ResponsiveViewport) => void;
1441
+ setBreakpoints: (breakpoints: import("../index.js").ResponsiveBreakpoints) => void;
1442
+ setCanvasPadding: (canvasPadding: import("../index.js").CanvasPadding) => void;
1443
+ expand: () => void;
1444
+ collapse: () => void;
1445
+ hide: () => void;
1446
+ show: () => void;
1447
+ setAnimating: (isAnimating: boolean) => void;
1448
+ reset: () => void;
1449
+ };
1450
+ admin: {
1451
+ setViewport: (viewport: import("../index.js").ResponsiveViewport) => void;
1452
+ setBreakpoints: (breakpoints: import("../index.js").ResponsiveBreakpoints) => void;
1453
+ setCanvasPadding: (canvasPadding: import("../index.js").CanvasPadding) => void;
1454
+ expand: () => void;
1455
+ collapse: () => void;
1456
+ hide: () => void;
1457
+ show: () => void;
1458
+ setAnimating: (isAnimating: boolean) => void;
1459
+ reset: () => void;
1460
+ };
1461
+ };
1373
1462
  routing: {
1374
1463
  setRoutingState: (routingState: import("../index.js").RoutingState) => void;
1375
1464
  };
@@ -1 +1 @@
1
- import{BehaviorSubject as e}from"rxjs";import{memoOnce as t}from"@salsita-ai/common/utils";import{createDomainRuntimeSlices as i,resolveIsDev as n}from"#package/domain";import{initializeAnalyticsService as o}from"../common-services/analytics/analytics-service.js";import{initializeI18n as s,initializeLogger as r}from"../common-services/initialize.js";import{createCommonServicesSelectors as a}from"../common-services/selectors.js";import{createDomainApplicationContextSelectors as c}from"../domain-application-context/index.js";import{createIntegrationActions as m,createIntegrationSelectors as l,initializeIntegration as p}from"../integration/index.js";import{createRoutingActions as u,createRoutingSelectors as d,initializeRouting as g}from"../routing/index.js";import{SessionService as S,createSessionRuntimeActions as v,createSessionRuntimeSelectors as x,initializeSessionRuntime as f}from"../session/index.js";import{registerGodModeGlobal as C}from"./god-mode.js";export function createApplicationRuntimeSlices(e){let{config:y,bootConfig:A,getSubject:b,getConfiguratorExtensions:j}=e,w=n(y),R=r(y,w),I={analyticsService:o(y,R,w),i18n:s(y),logger:R},{initialize:E,selectors:h,actions:z}=i({config:y,services:I,getSubject:b,getExtensionSystems:e=>J[e].getInitializableSystems()}),D=E(),T=m({setIntegration:e=>{let t=b(),i=e(t.value.integration);t.next({...t.value,integration:i})}}),L=l({getState:()=>b().value}),O=p({actions:T}),U=u({setRouting:e=>{let t=b(),i=e(t.value.routing);t.next({...t.value,routing:i})}}),k=d({getState:()=>b().value,actions:U,accessActions:z.access,loadedDataActions:z.loadedData,domainServicesSelectors:h.domainServices,overridesSelectors:h.overrides}),G=g(),$=a({getState:()=>b().value,environmentSelectors:h.environment,specSelectors:h.spec,accessSelectors:h.access,domainServicesSelectors:h.domainServices,webComponentOptions:A.webComponentOptions,webComponentApi:A.webComponentApi,getSessionService:()=>H(),routingSelectors:k}),q=v({setSessionRuntime:e=>{let t=b(),i=e(t.value.session);t.next({...t.value,session:i})}}),B=x({getState:()=>b().value,sessionContextSelectors:h.sessionContext}),F=f(),H=t(()=>new S({getLogger:()=>h.domainServices.getLogger(),getAnalyticsService:()=>h.domainServices.getAnalyticsService(),getUnauthenticatedClient:$.getUnauthenticatedClient,environmentSelectors:h.environment,sessionActions:q,setSessionContext:z.sessionContext.setSessionContext,sessionSelectors:B,specSelectors:h.spec})),J={configurator:c({applicationType:"configurator",commonServicesSelectors:$,domainServicesSelectors:h.domainServices,domainContextSelectors:h.domainContext.configurator,getApplicationRuntimeExtensions:j}),admin:c({applicationType:"admin",commonServicesSelectors:$,domainServicesSelectors:h.domainServices,domainContextSelectors:h.domainContext.admin,getApplicationRuntimeExtensions:()=>[]})};return C({environmentActions:z.environment}),R.info(`Configurator Application loaded with deployment ID: ${y.deploymentId}!`),R.appendToGlobalContext({deploymentId:y.deploymentId}),{getState:()=>b().value,initialize:()=>({...D,integration:O,routing:G,session:F}),selectors:{...h,commonServices:$,integration:L,routing:k,session:B,domainApplicationContext:J},actions:{...z,integration:T,routing:U,session:q}}}export function createApplicationRuntime(t,i,n){return((t,i,n)=>{let o=null,s=null,r=()=>{if(!o)throw Error("Subject not yet initialized!");return o},{initialize:a,...c}=createApplicationRuntimeSlices({config:t,bootConfig:i,getSubject:r,getConfiguratorExtensions:()=>s});return s=n?n(c):[],c.selectors.domainApplicationContext.configurator.getSystems(),o=new e(a()),{...c,getState:()=>r().value,subscribe:e=>{let t=r().subscribe(()=>e());return()=>t.unsubscribe()}}})(t,i,n)}
1
+ import{BehaviorSubject as e}from"rxjs";import{memoOnce as t}from"@salsita-ai/common/utils";import{ImplementationErrors as i,createDomainRuntimeSlices as n,findAssistantFormElementErrors as o,resolveIsDev as s}from"#package/domain";import{initializeAnalyticsService as r}from"../common-services/analytics/analytics-service.js";import{initializeI18n as a,initializeLogger as c}from"../common-services/initialize.js";import{createCommonServicesSelectors as l}from"../common-services/selectors.js";import{createDomainApplicationContextSelectors as m}from"../domain-application-context/index.js";import{createIntegrationActions as p,createIntegrationSelectors as u,initializeIntegration as g}from"../integration/index.js";import{createResponsiveActions as v,createResponsiveSelectors as d,initializeResponsive as S}from"../responsive/index.js";import{createRoutingActions as x,createRoutingSelectors as f,initializeRouting as C}from"../routing/index.js";import{SessionService as y,createSessionRuntimeActions as A,createSessionRuntimeSelectors as b,initializeSessionRuntime as j}from"../session/index.js";export function createApplicationRuntimeSlices(e){let{config:w,bootConfig:R,getSubject:h,getConfiguratorExtensions:E}=e,I=s(w),T=c(w,I),z={analyticsService:r(w,T,I),i18n:a(w),logger:T},{initialize:D,selectors:L,actions:O}=n({config:w,services:z,getSubject:h,getExtensionSystems:e=>Z[e].getInitializableSystems()}),U=D(),{assistant:k,elements:G}=U.spec.configurator,$=o(k?.formElements??[],G);if($.length>0)throw new i($);let q=p({setIntegration:e=>{let t=h(),i=e(t.value.integration);t.next({...t.value,integration:i})}}),B=u({getState:()=>h().value,actions:q}),F=g(),H=x({setRouting:e=>{let t=h(),i=e(t.value.routing);t.next({...t.value,routing:i})}}),J=f({getState:()=>h().value,actions:H,accessActions:O.access,loadedDataActions:O.loadedData,domainServicesSelectors:L.domainServices,overridesSelectors:L.overrides}),K=C(),M=v({setResponsive:e=>{let t=h(),i=e(t.value.responsive);i!==t.value.responsive&&t.next({...t.value,responsive:i})}}),N={configurator:d({getState:()=>h().value,applicationType:"configurator"}),admin:d({getState:()=>h().value,applicationType:"admin"})},P=S(),Q=l({getState:()=>h().value,environmentSelectors:L.environment,specSelectors:L.spec,accessSelectors:L.access,domainServicesSelectors:L.domainServices,webComponentOptions:R.webComponentOptions,webComponentApi:R.webComponentApi,getSessionService:()=>Y(),routingSelectors:J}),V=A({setSessionRuntime:e=>{let t=h(),i=e(t.value.session);t.next({...t.value,session:i})}}),W=b({getState:()=>h().value,sessionContextSelectors:L.sessionContext}),X=j(),Y=t(()=>new y({getLogger:()=>L.domainServices.getLogger(),getAnalyticsService:()=>L.domainServices.getAnalyticsService(),getUnauthenticatedClient:Q.getUnauthenticatedClient,environmentSelectors:L.environment,sessionActions:V,setSessionContext:O.sessionContext.setSessionContext,sessionSelectors:W,specSelectors:L.spec})),Z={configurator:m({applicationType:"configurator",commonServicesSelectors:Q,domainServicesSelectors:L.domainServices,domainContextSelectors:L.domainContext.configurator,getApplicationRuntimeExtensions:E}),admin:m({applicationType:"admin",commonServicesSelectors:Q,domainServicesSelectors:L.domainServices,domainContextSelectors:L.domainContext.admin,getApplicationRuntimeExtensions:()=>[]})};return T.info(`Configurator Application loaded with deployment ID: ${w.deploymentId}!`),T.appendToGlobalContext({deploymentId:w.deploymentId}),{getState:()=>h().value,initialize:()=>({...U,integration:F,responsive:P,routing:K,session:X}),selectors:{...L,commonServices:Q,integration:B,responsive:N,routing:J,session:W,domainApplicationContext:Z},actions:{...O,integration:q,responsive:M,routing:H,session:V}}}export function createApplicationRuntime(t,i,n){return((t,i,n)=>{let o=null,s=null,r=()=>{if(!o)throw Error("Subject not yet initialized!");return o},{initialize:a,...c}=createApplicationRuntimeSlices({config:t,bootConfig:i,getSubject:r,getConfiguratorExtensions:()=>s});return s=n?n(c):[],c.selectors.domainApplicationContext.configurator.getSystems(),o=new e(a()),{...c,getState:()=>r().value,subscribe:e=>{let t=r().subscribe(()=>e());return()=>t.unsubscribe()}}})(t,i,n)}
@@ -0,0 +1,9 @@
1
+ export * from './use-configuration-save-state.js';
2
+ export * from './use-configurator-messages.js';
3
+ export * from './use-domain-context.js';
4
+ export * from './use-entity-selector.js';
5
+ export * from './use-observable-selector.js';
6
+ export * from './use-slices.js';
7
+ export * from './use-state-slice.js';
8
+ export * from './use-state-validity.js';
9
+ export * from './use-store-selector.js';
@@ -0,0 +1 @@
1
+ export*from"./use-configuration-save-state.js";export*from"./use-configurator-messages.js";export*from"./use-domain-context.js";export*from"./use-entity-selector.js";export*from"./use-observable-selector.js";export*from"./use-slices.js";export*from"./use-state-slice.js";export*from"./use-state-validity.js";export*from"./use-store-selector.js";
@@ -0,0 +1,23 @@
1
+ import { type ConfigurationPersistSystemFailure } from '../../application-runtime/index.js';
2
+ /**
3
+ * The save status of the configuration, as `useConfigurationSaveState()` returns it.
4
+ */
5
+ export interface ConfigurationSaveState {
6
+ /** The revision the configuration is at: the loaded one, then the one the latest save created. */
7
+ readonly revisionId: string;
8
+ /** Whether a save is running. */
9
+ readonly isSaving: boolean;
10
+ /**
11
+ * The latest failed save, `{ error, timestamp }` with `timestamp` in milliseconds since the epoch, or `null` once a
12
+ * later save succeeds or another configuration loads.
13
+ */
14
+ readonly failure: ConfigurationPersistSystemFailure | null;
15
+ }
16
+ export type UseConfigurationSaveState = () => ConfigurationSaveState;
17
+ /**
18
+ * The save status of the configuration of the application this component is mounted in, read from its persist system:
19
+ * `revisionId`, `isSaving` and `failure`. An editable configuration saves committed changes on its own, three seconds
20
+ * after the last one; a read-only one never saves. Loading a configuration resets the status. Re-renders when any of
21
+ * the three changes; the returned object keeps its identity otherwise.
22
+ */
23
+ export declare const useConfigurationSaveState: UseConfigurationSaveState;
@@ -0,0 +1 @@
1
+ import{useMemo as e}from"react";import{useDomainApplication as r}from"../../application-runtime/index.js";import{useEagerObservableValue as o}from"./use-observable-selector.js";export const useConfigurationSaveState=()=>{let{configurationPersistSystem:t}=r(),i=o(t.revisionId$),a=o(t.saving$),n=o(t.failure$);return e(()=>({revisionId:i,isSaving:a,failure:n}),[i,a,n])};
@@ -0,0 +1 @@
1
+ export * from './use-component.js';
@@ -0,0 +1 @@
1
+ export*from"./use-component.js";
@@ -1 +1 @@
1
- import{useMemo as t}from"react";import{useApplicationRuntimeSelector as e}from"../../application-runtime/index.js";import{useDomainContextSelectors as n}from"../common-hooks/use-domain-context.js";import{useRenderedSelector as o,useStoreSelector as r}from"../common-hooks/use-store-selector.js";let s=t=>[t.componentType,t.entityId,t.instanceName,t.componentTypes?.length,...t.componentTypes??[],t.entityIds?.length,...t.entityIds??[],t.instanceNames?.length,...t.instanceNames??[]],a=o=>{let r=n(),{componentReader:a}=r.getDomainSystems(),p=t(()=>a.isComponentTypeAttached(o),[a,e(r.getComponentReaderIndexes),...s(o)]);return{componentReader:a,isActive:p}};export const useComponent=t=>{let{entityId:e,componentType:n,instanceName:o}=t,{componentReader:s,isActive:p}=a({entityId:e,componentType:n,instanceName:o}),m=r(t=>s.readOneComponent({entityId:e,componentType:n,instanceName:o},t.state),[s,e,n,o],p);return null===m?null:m?.state};export const useRenderedComponent=t=>{let{entityId:e,componentType:n,instanceName:r}=t,{componentReader:s,isActive:p}=a({entityId:e,componentType:n,instanceName:r}),m=o(t=>s.readOneComponent({entityId:e,componentType:n,instanceName:r},t.state),[s,e,n,r],p);return null===m?null:m?.state};export const useComponents=t=>{let{entityIds:e,componentTypes:n,instanceNames:o}=t,{componentReader:p,isActive:m}=a({entityIds:e,componentTypes:n,instanceNames:o});return r(t=>p.readManyComponents({entityIds:e,componentTypes:n,instanceNames:o},t.state),[p,...s({entityIds:e,componentTypes:n,instanceNames:o})],m)};export const useDynamicComponents=t=>{let{entityIds:e,componentTypes:n,instanceNames:o}=t,{componentReader:s,isActive:p}=a({entityIds:e,componentTypes:n,instanceNames:o});return r(t=>s.readManyComponents({entityIds:e,componentTypes:n,instanceNames:o},t.state),[s,n,e,o],p)};export const useRenderedComponents=t=>{let{entityIds:e,componentTypes:n,instanceNames:r}=t,{componentReader:p,isActive:m}=a({entityIds:e,componentTypes:n,instanceNames:r});return o(t=>p.readManyComponents({entityIds:e,componentTypes:n,instanceNames:r},t.state),[p,...s({entityIds:e,componentTypes:n,instanceNames:r})],m)};export const useFirstComponent=t=>{let{entityIds:e,componentTypes:n,instanceNames:o}=t,{componentReader:p,isActive:m}=a({entityIds:e,componentTypes:n,instanceNames:o});return r(t=>p.readFirstComponent({entityIds:e,componentTypes:n,instanceNames:o},t.state),[p,...s({entityIds:e,componentTypes:n,instanceNames:o})],m)};export const useFirstRenderedComponent=t=>{let{entityIds:e,componentTypes:n,instanceNames:r}=t,{componentReader:p,isActive:m}=a({entityIds:e,componentTypes:n,instanceNames:r});return o(t=>p.readFirstComponent({entityIds:e,componentTypes:n,instanceNames:r},t.state),[p,...s({entityIds:e,componentTypes:n,instanceNames:r})],m)};export const useRootComponents=e=>{let n=t(()=>Array.isArray(e)?e:[e],[e]),{componentReader:o,isActive:p}=a({componentTypes:n});return r(t=>o.readManyComponents({componentTypes:n,entityIds:[t.state.rootEntityId]},t.state),[o,...s({componentTypes:n})],p)};export const useRootRenderedComponents=e=>{let n=t(()=>Array.isArray(e)?e:[e],[e]),{componentReader:r,isActive:p}=a({componentTypes:n});return o(t=>r.readManyComponents({componentTypes:n,entityIds:[t.state.rootEntityId]},t.state),[r,...s({componentTypes:n})],p)};export const useFirstRootComponent=e=>{let n=t(()=>Array.isArray(e)?e:[e],[e]),{componentReader:o,isActive:p}=a({componentTypes:n});return r(t=>o.readFirstRootComponent({componentTypes:n},t.state),[o,...s({componentTypes:n})],p)};export const useFirstRootRenderedComponent=e=>{let n=t(()=>Array.isArray(e)?e:[e],[e]),{componentReader:r,isActive:p}=a({componentTypes:n});return o(t=>r.readFirstRootComponent({componentTypes:n},t.state),[r,...s({componentTypes:n})],p)};
1
+ import{useMemo as t}from"react";import{useApplicationRuntimeSelector as e}from"../../application-runtime/index.js";import{useDomainContextSelectors as n,useRenderedSelector as o,useStoreSelector as r}from"../common-hooks/index.js";let s=t=>[t.componentType,t.entityId,t.instanceName,t.componentTypes?.length,...t.componentTypes??[],t.entityIds?.length,...t.entityIds??[],t.instanceNames?.length,...t.instanceNames??[]],a=o=>{let r=n(),{componentReader:a}=r.getDomainSystems(),p=t(()=>a.isComponentTypeAttached(o),[a,e(r.getComponentReaderIndexes),...s(o)]);return{componentReader:a,isActive:p}};export const useComponent=t=>{let{entityId:e,componentType:n,instanceName:o}=t,{componentReader:s,isActive:p}=a({entityId:e,componentType:n,instanceName:o}),m=r(t=>s.readOneComponent({entityId:e,componentType:n,instanceName:o},t.state),[s,e,n,o],p);return null===m?null:m?.state};export const useRenderedComponent=t=>{let{entityId:e,componentType:n,instanceName:r}=t,{componentReader:s,isActive:p}=a({entityId:e,componentType:n,instanceName:r}),m=o(t=>s.readOneComponent({entityId:e,componentType:n,instanceName:r},t.state),[s,e,n,r],p);return null===m?null:m?.state};export const useComponents=t=>{let{entityIds:e,componentTypes:n,instanceNames:o}=t,{componentReader:p,isActive:m}=a({entityIds:e,componentTypes:n,instanceNames:o});return r(t=>p.readManyComponents({entityIds:e,componentTypes:n,instanceNames:o},t.state),[p,...s({entityIds:e,componentTypes:n,instanceNames:o})],m)};export const useDynamicComponents=t=>{let{entityIds:e,componentTypes:n,instanceNames:o}=t,{componentReader:s,isActive:p}=a({entityIds:e,componentTypes:n,instanceNames:o});return r(t=>s.readManyComponents({entityIds:e,componentTypes:n,instanceNames:o},t.state),[s,n,e,o],p)};export const useRenderedComponents=t=>{let{entityIds:e,componentTypes:n,instanceNames:r}=t,{componentReader:p,isActive:m}=a({entityIds:e,componentTypes:n,instanceNames:r});return o(t=>p.readManyComponents({entityIds:e,componentTypes:n,instanceNames:r},t.state),[p,...s({entityIds:e,componentTypes:n,instanceNames:r})],m)};export const useFirstComponent=t=>{let{entityIds:e,componentTypes:n,instanceNames:o}=t,{componentReader:p,isActive:m}=a({entityIds:e,componentTypes:n,instanceNames:o});return r(t=>p.readFirstComponent({entityIds:e,componentTypes:n,instanceNames:o},t.state),[p,...s({entityIds:e,componentTypes:n,instanceNames:o})],m)};export const useFirstRenderedComponent=t=>{let{entityIds:e,componentTypes:n,instanceNames:r}=t,{componentReader:p,isActive:m}=a({entityIds:e,componentTypes:n,instanceNames:r});return o(t=>p.readFirstComponent({entityIds:e,componentTypes:n,instanceNames:r},t.state),[p,...s({entityIds:e,componentTypes:n,instanceNames:r})],m)};export const useRootComponents=e=>{let n=t(()=>Array.isArray(e)?e:[e],[e]),{componentReader:o,isActive:p}=a({componentTypes:n});return r(t=>o.readManyComponents({componentTypes:n,entityIds:[t.state.rootEntityId]},t.state),[o,...s({componentTypes:n})],p)};export const useRootRenderedComponents=e=>{let n=t(()=>Array.isArray(e)?e:[e],[e]),{componentReader:r,isActive:p}=a({componentTypes:n});return o(t=>r.readManyComponents({componentTypes:n,entityIds:[t.state.rootEntityId]},t.state),[r,...s({componentTypes:n})],p)};export const useFirstRootComponent=e=>{let n=t(()=>Array.isArray(e)?e:[e],[e]),{componentReader:o,isActive:p}=a({componentTypes:n});return r(t=>o.readFirstRootComponent({componentTypes:n},t.state),[o,...s({componentTypes:n})],p)};export const useFirstRootRenderedComponent=e=>{let n=t(()=>Array.isArray(e)?e:[e],[e]),{componentReader:r,isActive:p}=a({componentTypes:n});return o(t=>r.readFirstRootComponent({componentTypes:n},t.state),[r,...s({componentTypes:n})],p)};
@@ -1 +1 @@
1
- import{useDomain as t}from"../common-hooks/use-domain-context.js";import{useRenderedSelector as e,useStoreSelector as o}from"../common-hooks/use-store-selector.js";export const useDomainEntityState=e=>{let{domain:n}=t();return o(t=>n.get$Entity(e,t.state),[n,e])};export const useDomainEntityRenderedState=o=>{let{domain:n}=t();return e(t=>n.get$Entity(o,t.state),[n,o])};
1
+ import{useDomain as t,useRenderedSelector as e,useStoreSelector as n}from"../common-hooks/index.js";export const useDomainEntityState=e=>{let{domain:o}=t();return n(t=>o.get$Entity(e,t.state),[o,e])};export const useDomainEntityRenderedState=n=>{let{domain:o}=t();return e(t=>o.get$Entity(n,t.state),[o,n])};
@@ -1 +1 @@
1
- import{useLingui as t}from"@lingui/react";import{priceComponent as e}from"#package/domain";import{useFirstComponent as o}from"../component-hooks/use-component.js";import{useRootEntityId as r}from"./use-root-entity-id.js";export const useEntityPrice=r=>{let n=o({componentTypes:[e],entityIds:[r]}),{i18n:i}=t(),c=n?.state?.currency??"USD",s=n?.state.price;return void 0===s?null:i.number(s,{style:"currency",currency:c})};export const useRootEntityPrice=()=>{let t=r();return useEntityPrice(t)};
1
+ import{useLingui as t}from"@lingui/react";import{priceComponent as e}from"#package/domain";import{useFirstComponent as r}from"../component-hooks/index.js";import{useRootEntityId as o}from"./use-root-entity-id.js";export const useEntityPrice=o=>{let n=r({componentTypes:[e],entityIds:[o]}),{i18n:i}=t(),c=n?.state?.currency??"USD",s=n?.state.price;return void 0===s?null:i.number(s,{style:"currency",currency:c})};export const useRootEntityPrice=()=>{let t=o();return useEntityPrice(t)};
@@ -1 +1 @@
1
- import{useRenderedSelector as t,useStoreSelector as o}from"../common-hooks/use-store-selector.js";export const useRootEntityId=()=>o(t=>t.state.rootEntityId,[]);export const useRootEntityRenderedId=()=>t(t=>t.state.rootEntityId,[]);
1
+ import{useRenderedSelector as t,useStoreSelector as o}from"../common-hooks/index.js";export const useRootEntityId=()=>o(t=>t.state.rootEntityId,[]);export const useRootEntityRenderedId=()=>t(t=>t.state.rootEntityId,[]);
@@ -1 +1 @@
1
- import{useDomain as t}from"../common-hooks/use-domain-context.js";import{useRenderedSelector as o,useStoreSelector as e}from"../common-hooks/use-store-selector.js";export const useRootEntityState=()=>{let{domain:o}=t();return e(t=>o.getRoot$Entity(t.state),[o])};export const useRootEntityRenderedState=()=>{let{domain:e}=t();return o(t=>e.getRoot$Entity(t.state),[e])};
1
+ import{useDomain as t,useRenderedSelector as e,useStoreSelector as o}from"../common-hooks/index.js";export const useRootEntityState=()=>{let{domain:e}=t();return o(t=>e.getRoot$Entity(t.state),[e])};export const useRootEntityRenderedState=()=>{let{domain:o}=t();return e(t=>o.getRoot$Entity(t.state),[o])};
@@ -2,6 +2,7 @@ export { useDomain, type UseDomainContext } from './common-hooks/use-domain-cont
2
2
  export { useStoreSelector, useRenderedSelector, useRenderedSelector$, useStoreSelector$, type UseSynchronizedSelector, type UseSynchronizedSelector$, } from './common-hooks/use-store-selector.js';
3
3
  export { useEagerObservableSelector, usePatientObservableSelector, usePatientObservableValue, useEagerObservableValue, } from './common-hooks/use-observable-selector.js';
4
4
  export { useStateValidity, type UseStateValidity, useMapViolationHints, type UseMapViolationHints, useControlViolations, type UseControlViolations, useFinalizeViolations, type UseFinalizeViolations, } from './common-hooks/use-state-validity.js';
5
+ export { useConfigurationSaveState, type UseConfigurationSaveState, type ConfigurationSaveState, } from './common-hooks/use-configuration-save-state.js';
5
6
  export { useConfiguratorMessages, type UseConfiguratorMessages, type ConfiguratorMessage, } from './common-hooks/use-configurator-messages.js';
6
7
  export { useComponent, useRenderedComponent, type UseComponent, useComponents, useDynamicComponents, useRenderedComponents, type UseComponents, useRootComponents, useRootRenderedComponents, type UseRootComponents, useFirstComponent, useFirstRenderedComponent, type UseFirstComponent, useFirstRootComponent, useFirstRootRenderedComponent, type UseFirstRootComponent, } from './component-hooks/use-component.js';
7
8
  export { useCommittedState, useCommittedSlice, useRenderedSlice, useRenderedState, type UseSlice, type UseState, } from './common-hooks/use-slices.js';
@@ -13,6 +14,9 @@ export { useComposition, type UseComposition } from './system-hooks/composition-
13
14
  export { useUndoRedo, type UseUndoRedo, type UseUndoRedoResult } from './system-hooks/undo-redo-hooks.js';
14
15
  export { useTabNavigation, type TabEntry, type TabSource, type UseTabNavigation, type UseTabNavigationOptions, type UseTabNavigationResult, } from './system-hooks/tab-navigation-hooks.js';
15
16
  export { useStepNavigation, type NavigationStepEntry, type StepStatus, type UseStepNavigation, type UseStepNavigationResult, } from './system-hooks/step-navigation-hooks.js';
17
+ export { useLocaleSwitch, type UseLocaleSwitch, type UseLocaleSwitchResult, type LocaleOption, } from './system-hooks/locale-switch-hooks.js';
18
+ export { useGenerateShareLink, type GenerateShareLinkOptions } from './system-hooks/generate-share-link-hooks.js';
19
+ export { useShareLinks, type UseShareLinks, type UseShareLinksOptions, type UseShareLinksResult, } from './system-hooks/share-links-hooks.js';
16
20
  export { useHoveredDomainEntityId, useHoveredEntity, useHoveredEntityId, type UseHoveredDomainEntityId, type UseHoveredEntity, type UseHoveredEntityId, } from './system-hooks/hover-hooks.js';
17
21
  export { type UseRootEntityState, useRootEntityState, useRootEntityRenderedState, } from './entity-hooks/use-root-entity-state.js';
18
22
  export { type UseRootEntityId, useRootEntityId, useRootEntityRenderedId } from './entity-hooks/use-root-entity-id.js';
@@ -1 +1 @@
1
- export{useDomain}from"./common-hooks/use-domain-context.js";export{useStoreSelector,useRenderedSelector,useRenderedSelector$,useStoreSelector$}from"./common-hooks/use-store-selector.js";export{useEagerObservableSelector,usePatientObservableSelector,usePatientObservableValue,useEagerObservableValue}from"./common-hooks/use-observable-selector.js";export{useStateValidity,useMapViolationHints,useControlViolations,useFinalizeViolations}from"./common-hooks/use-state-validity.js";export{useConfiguratorMessages}from"./common-hooks/use-configurator-messages.js";export{useComponent,useRenderedComponent,useComponents,useDynamicComponents,useRenderedComponents,useRootComponents,useRootRenderedComponents,useFirstComponent,useFirstRenderedComponent,useFirstRootComponent,useFirstRootRenderedComponent}from"./component-hooks/use-component.js";export{useCommittedState,useCommittedSlice,useRenderedSlice,useRenderedState}from"./common-hooks/use-slices.js";export{useDomainEntityState,useDomainEntityRenderedState}from"./entity-hooks/use-domain-entity-state.js";export{useEntityPrice,useRootEntityPrice}from"./entity-hooks/use-entity-price.js";export{useSelectEntity,useSelectedEntity,useSelectedEntityId,useSelectedDomainEntityId,useDeselect,useSelectParent}from"./system-hooks/selection-hooks.js";export{useActiveNavigationState,useActiveViewState,useSetViewState,useActiveToolState,useIsFullscreenActive,useSetFullscreen,useActiveViewports,useDraggedDomainEntityId,useNavigate,usePushNavigate,usePopNavigate}from"./system-hooks/navigation-hooks.js";export{useComposition}from"./system-hooks/composition-hooks.js";export{useUndoRedo}from"./system-hooks/undo-redo-hooks.js";export{useTabNavigation}from"./system-hooks/tab-navigation-hooks.js";export{useStepNavigation}from"./system-hooks/step-navigation-hooks.js";export{useHoveredDomainEntityId,useHoveredEntity,useHoveredEntityId}from"./system-hooks/hover-hooks.js";export{useRootEntityState,useRootEntityRenderedState}from"./entity-hooks/use-root-entity-state.js";export{useRootEntityId,useRootEntityRenderedId}from"./entity-hooks/use-root-entity-id.js";export{useEntitySelector,useRootEntitySelector,useRenderedEntitySelector,useRenderedRootEntitySelector}from"./common-hooks/use-entity-selector.js";export{useDimensionState,useDimensions,useDimensionConfig}from"./system-hooks/dimension-hooks.js";
1
+ export{useDomain}from"./common-hooks/use-domain-context.js";export{useStoreSelector,useRenderedSelector,useRenderedSelector$,useStoreSelector$}from"./common-hooks/use-store-selector.js";export{useEagerObservableSelector,usePatientObservableSelector,usePatientObservableValue,useEagerObservableValue}from"./common-hooks/use-observable-selector.js";export{useStateValidity,useMapViolationHints,useControlViolations,useFinalizeViolations}from"./common-hooks/use-state-validity.js";export{useConfigurationSaveState}from"./common-hooks/use-configuration-save-state.js";export{useConfiguratorMessages}from"./common-hooks/use-configurator-messages.js";export{useComponent,useRenderedComponent,useComponents,useDynamicComponents,useRenderedComponents,useRootComponents,useRootRenderedComponents,useFirstComponent,useFirstRenderedComponent,useFirstRootComponent,useFirstRootRenderedComponent}from"./component-hooks/use-component.js";export{useCommittedState,useCommittedSlice,useRenderedSlice,useRenderedState}from"./common-hooks/use-slices.js";export{useDomainEntityState,useDomainEntityRenderedState}from"./entity-hooks/use-domain-entity-state.js";export{useEntityPrice,useRootEntityPrice}from"./entity-hooks/use-entity-price.js";export{useSelectEntity,useSelectedEntity,useSelectedEntityId,useSelectedDomainEntityId,useDeselect,useSelectParent}from"./system-hooks/selection-hooks.js";export{useActiveNavigationState,useActiveViewState,useSetViewState,useActiveToolState,useIsFullscreenActive,useSetFullscreen,useActiveViewports,useDraggedDomainEntityId,useNavigate,usePushNavigate,usePopNavigate}from"./system-hooks/navigation-hooks.js";export{useComposition}from"./system-hooks/composition-hooks.js";export{useUndoRedo}from"./system-hooks/undo-redo-hooks.js";export{useTabNavigation}from"./system-hooks/tab-navigation-hooks.js";export{useStepNavigation}from"./system-hooks/step-navigation-hooks.js";export{useLocaleSwitch}from"./system-hooks/locale-switch-hooks.js";export{useGenerateShareLink}from"./system-hooks/generate-share-link-hooks.js";export{useShareLinks}from"./system-hooks/share-links-hooks.js";export{useHoveredDomainEntityId,useHoveredEntity,useHoveredEntityId}from"./system-hooks/hover-hooks.js";export{useRootEntityState,useRootEntityRenderedState}from"./entity-hooks/use-root-entity-state.js";export{useRootEntityId,useRootEntityRenderedId}from"./entity-hooks/use-root-entity-id.js";export{useEntitySelector,useRootEntitySelector,useRenderedEntitySelector,useRenderedRootEntitySelector}from"./common-hooks/use-entity-selector.js";export{useDimensionState,useDimensions,useDimensionConfig}from"./system-hooks/dimension-hooks.js";
@@ -1 +1 @@
1
- import{useDomain as o}from"../common-hooks/use-domain-context.js";import{useRenderedSelector as e}from"../common-hooks/use-store-selector.js";export const useComposition=()=>{let{compositionProjections:t}=o();return e(o=>t.getTree(o.state),[t])};
1
+ import{useDomain as o,useRenderedSelector as e}from"../common-hooks/index.js";export const useComposition=()=>{let{compositionProjections:t}=o();return e(o=>t.getTree(o.state),[t])};
@@ -1 +1 @@
1
- import{useCallback as t}from"react";import{useDomain as e}from"../common-hooks/use-domain-context.js";import{useStoreSelector as o}from"../common-hooks/use-store-selector.js";export const useDimensionConfig=()=>{let{dimensionSystem:t}=e();return o(e=>t.getDimensionConfig(e.state),[t])};export const useDimensionState=()=>{let{dimensionSystem:t}=e();return o(e=>t.state.get(e.state),[t])};export const useDimensions=()=>{let{dimensionSystem:o}=e(),{storeSystem:s}=e();return{setGlobalUnit:t(t=>{let e=o.getSetGlobalUnitUpdates(t,s.stateSlices.committed.value.state);s.stageAndCommit(e)},[o,s])}};
1
+ import{useCallback as t}from"react";import{useDomain as e,useStoreSelector as o}from"../common-hooks/index.js";export const useDimensionConfig=()=>{let{dimensionSystem:t}=e();return o(e=>t.getDimensionConfig(e.state),[t])};export const useDimensionState=()=>{let{dimensionSystem:t}=e();return o(e=>t.state.get(e.state),[t])};export const useDimensions=()=>{let{dimensionSystem:o}=e(),{storeSystem:s}=e();return{setGlobalUnit:t(t=>{let e=o.getSetGlobalUnitUpdates(t,s.stateSlices.committed.value.state);s.stageAndCommit(e)},[o,s])}};
@@ -0,0 +1,8 @@
1
+ import type { AccessLevel } from '@salsita-ai/contracts/api';
2
+ export interface GenerateShareLinkOptions {
3
+ access: AccessLevel;
4
+ expiration?: number;
5
+ }
6
+ export declare const useGenerateShareLink: () => (options: GenerateShareLinkOptions) => Promise<{
7
+ readonly link: string;
8
+ }>;
@@ -0,0 +1 @@
1
+ import{useCallback as e}from"react";import{match as r}from"ts-pattern";import{applicationConfigComponent as t}from"#package/domain";import{useAuthorizedClient as a,useConfigurationId as o,useDomainApplication as i}from"../../application-runtime/index.js";import{useFirstRootComponent as n}from"../component-hooks/index.js";export const useGenerateShareLink=()=>{let s=n(t),m=s?.state.shareStrategy??"deployment-registered",{configurationPersistSystem:c}=i(),d=o(),p=a();return e(async e=>{let t=r(m).with("deployment-registered",()=>void 0).with("current-frontend",()=>{let e=new URL(window.location.href);return e.searchParams.delete("cid"),e.searchParams.delete("ca"),e.toString()}).exhaustive(),a=await c.save();return p.generateShareLink(d,"rr"===e.access?a:void 0,e.expiration,e.access,t)},[m,c,p,d])};
@@ -1 +1 @@
1
- import{useDomain as t}from"../common-hooks/use-domain-context.js";import{useRenderedSelector as e}from"../common-hooks/use-store-selector.js";export const useHoveredDomainEntityId=()=>{let{navigationSystem:o}=t();return e(t=>o.getActiveHoverState(t.state),[o])};export const useHoveredEntityId=t=>{let e=useHoveredDomainEntityId();return e&&t?.isId(e)?e:null};export const useHoveredEntity=o=>{let r=useHoveredEntityId(o),{domain:n}=t();return e(t=>r?n.get$Entity(r,t.state):null,[n,r])};
1
+ import{useDomain as t,useRenderedSelector as e}from"../common-hooks/index.js";export const useHoveredDomainEntityId=()=>{let{navigationSystem:o}=t();return e(t=>o.getActiveHoverState(t.state),[o])};export const useHoveredEntityId=t=>{let e=useHoveredDomainEntityId();return e&&t?.isId(e)?e:null};export const useHoveredEntity=o=>{let n=useHoveredEntityId(o),{domain:r}=t();return e(t=>n?r.get$Entity(n,t.state):null,[r,n])};
@@ -0,0 +1,24 @@
1
+ /** A language the configurator offers, with its name in that language. */
2
+ export interface LocaleOption {
3
+ readonly locale: string;
4
+ readonly displayName: string;
5
+ }
6
+ /**
7
+ * What a project layout needs to offer a language switch.
8
+ * - `locales`: the spec's `applicationConfig.availableLocales` (`['en']` without it), each with its own name.
9
+ * - `locale`: the active locale.
10
+ * - `setLocale`: activates a locale, falling back to a supported one as `useLinguiActivate` does.
11
+ * - `available`: whether there is more than one locale to choose from, the built-in rule for showing the switch.
12
+ */
13
+ export interface UseLocaleSwitchResult {
14
+ readonly locales: readonly LocaleOption[];
15
+ readonly locale: string;
16
+ readonly setLocale: (locale: string) => void;
17
+ readonly available: boolean;
18
+ }
19
+ export type UseLocaleSwitch = () => UseLocaleSwitchResult;
20
+ /**
21
+ * Hook to list the languages the configurator offers and switch between them, as the built-in toolbar's language
22
+ * button and the menu's language action do. It re-renders when the language changes.
23
+ */
24
+ export declare const useLocaleSwitch: UseLocaleSwitch;
@@ -0,0 +1 @@
1
+ import{useLingui as e}from"@lingui/react";import{useMemo as a}from"react";import{applicationConfigComponent as o}from"#package/domain";import{useLinguiActivate as l}from"../../localizable/index.js";import{useFirstRootComponent as t}from"../component-hooks/index.js";export const useLocaleSwitch=()=>{let{i18n:r}=e(),i=t(o),m=l(),n=i?.state.availableLocales,c=a(()=>(n??["en"]).map(e=>{let a=new Intl.DisplayNames([e],{type:"language",fallback:"code"});return{locale:e,displayName:a.of(e)??e}}),[n]),p=r.locale;return a(()=>({locales:c,locale:p,setLocale:e=>{m(e)},available:c.length>1}),[c,p,m])};
@@ -1 +1 @@
1
- import{useCallback as t}from"react";import{useDomain as e}from"../common-hooks/use-domain-context.js";import{useStoreSelector as o}from"../common-hooks/use-store-selector.js";export const useActiveNavigationState=()=>{let{navigationSystem:t}=e();return o(e=>t.getActiveNavigationState(e.state),[t])};export const useActiveViewState=()=>{let{navigationSystem:t}=e();return o(e=>t.getActiveViewState(e.state),[t])};export const useSetViewState=()=>{let{storeSystem:o,navigationSystem:s}=e();return t(t=>{o.stageAndCommit([s.getViewUpdate(t)])},[o,s])};export const useActiveToolState=()=>{let{navigationSystem:t}=e();return o(e=>t.getActiveToolState(e.state),[t])};export const useIsFullscreenActive=()=>{let{navigationSystem:t}=e();return o(e=>t.getActiveFullscreenState(e.state),[t])};export const useSetFullscreen=()=>{let{storeSystem:o,navigationSystem:s}=e();return t(t=>{o.stageAndCommit([s.getFullscreenUpdate(t)])},[o,s])};export const useDraggedDomainEntityId=()=>{let{navigationSystem:t}=e();return o(e=>t.getActiveDragState(e.state),[t])};export const useActiveViewports=()=>{let{navigationSystem:t}=e();return o(e=>t.getActiveViewportState(e.state),[t])};export const useNavigate=()=>{let{storeSystem:o,navigationSystem:s}=e();return t(t=>{o.stageAndCommit([s.getNavigationUpdate(t)])},[o,s])};export const usePushNavigate=()=>{let{storeSystem:o,navigationSystem:s}=e();return t(t=>{o.stageAndCommit([s.getPushNavigationUpdate(t,o.stateSlices.committed.value.state)])},[o,s])};export const usePopNavigate=()=>{let{storeSystem:o,navigationSystem:s}=e();return t(()=>{let t=s.getPopNavigationUpdate(o.stateSlices.committed.value.state);t&&o.stageAndCommit([t])},[o,s])};
1
+ import{useCallback as t}from"react";import{useDomain as e,useStoreSelector as a}from"../common-hooks/index.js";export const useActiveNavigationState=()=>{let{navigationSystem:t}=e();return a(e=>t.getActiveNavigationState(e.state),[t])};export const useActiveViewState=()=>{let{navigationSystem:t}=e();return a(e=>t.getActiveViewState(e.state),[t])};export const useSetViewState=()=>{let{storeSystem:a,navigationSystem:o}=e();return t(t=>{a.stageAndCommit([o.getViewUpdate(t)])},[a,o])};export const useActiveToolState=()=>{let{navigationSystem:t}=e();return a(e=>t.getActiveToolState(e.state),[t])};export const useIsFullscreenActive=()=>{let{navigationSystem:t}=e();return a(e=>t.getActiveFullscreenState(e.state),[t])};export const useSetFullscreen=()=>{let{storeSystem:a,navigationSystem:o}=e();return t(t=>{a.stageAndCommit([o.getFullscreenUpdate(t)])},[a,o])};export const useDraggedDomainEntityId=()=>{let{navigationSystem:t}=e();return a(e=>t.getActiveDragState(e.state),[t])};export const useActiveViewports=()=>{let{navigationSystem:t}=e();return a(e=>t.getActiveViewportState(e.state),[t])};export const useNavigate=()=>{let{storeSystem:a,navigationSystem:o}=e();return t(t=>{a.stageAndCommit([o.getNavigationUpdate(t)])},[a,o])};export const usePushNavigate=()=>{let{storeSystem:a,navigationSystem:o}=e();return t(t=>{a.stageAndCommit([o.getPushNavigationUpdate(t,a.stateSlices.committed.value.state)])},[a,o])};export const usePopNavigate=()=>{let{storeSystem:a,navigationSystem:o}=e();return t(()=>{let t=o.getPopNavigationUpdate(a.stateSlices.committed.value.state);t&&a.stageAndCommit([t])},[a,o])};
@@ -1 +1 @@
1
- import{useCallback as e}from"react";import{useAnalyticsService as t}from"../../application-runtime/index.js";import{useDomain as o}from"../common-hooks/use-domain-context.js";import{useStoreSelector as n}from"../common-hooks/use-store-selector.js";export const useSelectedDomainEntityId=()=>{let{navigationSystem:e}=o();return n(t=>e.getActiveSelectionState(t.state),[e])};export const useSelectedEntityId=e=>{let t=useSelectedDomainEntityId();return e?.isId(t)?t:null};export const useSelectEntity=n=>{let{storeSystem:s,navigationSystem:r}=o(),i=t();return e(e=>{s.stageAndCommit([r.getSelectUpdate(e)]),n&&i.push(n(e))},[s,r,n,i])};export const useSelectParent=(n,s,r)=>{let{storeSystem:i,navigationSystem:c,compositionProjections:l}=o(),m=t();return e(()=>{let e=l.getTree(i.stateSlices.committed.value.state).map.get(n);if(e?.parent){i.stageAndCommit([c.getSelectUpdate(e.parent.id)]),r&&m.push(r(e.parent.id));return}s&&(i.stageAndCommit([c.getSelectUpdate(s)]),r&&m.push(r(s)))},[i,c,n,l,s,r,m])};export const useDeselect=n=>{let{storeSystem:s,navigationSystem:r}=o(),i=t();return e(()=>{s.stageAndCommit([r.getDeselectUpdate()]),n&&i.push(n())},[s,r,n,i])};export const useSelectedEntity=e=>{let t=useSelectedEntityId(e),{domain:s}=o();return n(e=>t?s.get$Entity(t,e.state):null,[s,t])};
1
+ import{useCallback as e}from"react";import{useAnalyticsService as t}from"../../application-runtime/index.js";import{useDomain as n,useStoreSelector as r}from"../common-hooks/index.js";export const useSelectedDomainEntityId=()=>{let{navigationSystem:e}=n();return r(t=>e.getActiveSelectionState(t.state),[e])};export const useSelectedEntityId=e=>{let t=useSelectedDomainEntityId();return e?.isId(t)?t:null};export const useSelectEntity=r=>{let{storeSystem:s,navigationSystem:o}=n(),i=t();return e(e=>{s.stageAndCommit([o.getSelectUpdate(e)]),r&&i.push(r(e))},[s,o,r,i])};export const useSelectParent=(r,s,o)=>{let{storeSystem:i,navigationSystem:l,compositionProjections:c}=n(),a=t();return e(()=>{let e=c.getTree(i.stateSlices.committed.value.state).map.get(r);if(e?.parent){i.stageAndCommit([l.getSelectUpdate(e.parent.id)]),o&&a.push(o(e.parent.id));return}s&&(i.stageAndCommit([l.getSelectUpdate(s)]),o&&a.push(o(s)))},[i,l,r,c,s,o,a])};export const useDeselect=r=>{let{storeSystem:s,navigationSystem:o}=n(),i=t();return e(()=>{s.stageAndCommit([o.getDeselectUpdate()]),r&&i.push(r())},[s,o,r,i])};export const useSelectedEntity=e=>{let t=useSelectedEntityId(e),{domain:s}=n();return r(e=>t?s.get$Entity(t,e.state):null,[s,t])};