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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (357) hide show
  1. package/dist/application-spec/errors/diagnostic-codes.d.ts +9 -0
  2. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  3. package/dist/application-spec/errors/diagnostic-messages.d.ts +10 -1
  4. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  5. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  6. package/dist/application-spec/generate-application/code/templates/application-types.js +6 -6
  7. package/dist/application-spec/generate-application/code/templates/common/doc-comment.d.ts +2 -0
  8. package/dist/application-spec/generate-application/code/templates/common/doc-comment.js +1 -0
  9. package/dist/application-spec/generate-application/code/templates/configurator-globals.d.ts +2 -1
  10. package/dist/application-spec/generate-application/code/templates/configurator-globals.js +19 -6
  11. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.js +7 -7
  12. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.d.ts +12 -0
  13. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.js +7 -0
  14. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +24 -22
  15. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
  16. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  17. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +13 -6
  18. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -2
  19. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +33 -3
  20. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  21. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.d.ts +9 -0
  22. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.js +1 -0
  23. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +4 -1
  24. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  25. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  26. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +4 -3
  27. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  28. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +33 -7
  29. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  30. package/dist/configurator/application-runtime/extensions/systems/canvas-system.d.ts +8 -0
  31. package/dist/configurator/application-runtime/extensions/systems/canvas-system.js +1 -1
  32. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.d.ts +8 -0
  33. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.js +1 -0
  34. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.d.ts +23 -1
  35. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.js +1 -1
  36. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +14 -1
  37. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  38. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +45 -4
  39. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  40. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.d.ts +14 -5
  41. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.js +1 -1
  42. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  43. package/dist/configurator/common/configurator-interface.d.ts +38 -2
  44. package/dist/configurator/common/configurator-interface.js +1 -1
  45. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +3 -3
  46. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -1
  47. package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
  48. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +4 -0
  49. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +1 -1
  50. package/dist/configurator/pages/default-configurator-elements.d.ts +3 -2
  51. package/dist/configurator/pages/default-configurator-elements.js +1 -1
  52. package/dist/configurator/pages/default-elements/index.d.ts +1 -0
  53. package/dist/configurator/pages/default-elements/index.js +1 -1
  54. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.d.ts +3 -0
  55. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.js +1 -0
  56. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.d.ts +3 -0
  57. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.js +1 -0
  58. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.d.ts +3 -0
  59. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.js +1 -0
  60. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.d.ts +3 -0
  61. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.js +1 -0
  62. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.d.ts +3 -0
  63. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.js +1 -0
  64. package/dist/configurator/pages/default-elements/scene-controls/index.d.ts +6 -0
  65. package/dist/configurator/pages/default-elements/scene-controls/index.js +1 -0
  66. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.d.ts +6 -0
  67. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.js +1 -0
  68. package/dist/configurator/scene/index.d.ts +1 -0
  69. package/dist/configurator/scene/index.js +1 -1
  70. package/dist/configurator/scene/scene-controls/ToolFab.d.ts +4 -0
  71. package/dist/configurator/scene/scene-controls/ToolFab.js +1 -1
  72. package/dist/configurator/scene/scene-controls/use-scene-control-tooltip.d.ts +2 -1
  73. package/dist/configurator/scene/scene-entity/scene-controls/SceneEntityHtmlHotspots.js +1 -1
  74. package/dist/configurator/toolbar-actions/index.d.ts +1 -0
  75. package/dist/configurator/toolbar-actions/index.js +1 -1
  76. package/dist/configurator/toolbar-actions/use-toolbar-actions.d.ts +100 -0
  77. package/dist/configurator/toolbar-actions/use-toolbar-actions.js +1 -0
  78. package/dist/configurator/toolbar-actions/use-toolbar-help.d.ts +7 -0
  79. package/dist/configurator/toolbar-actions/use-toolbar-help.js +1 -0
  80. package/dist/configurator/ui/assistant/AssistantChips.d.ts +3 -2
  81. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  82. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +1 -1
  83. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  84. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +8 -0
  85. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -0
  86. package/dist/configurator/ui/assistant/alert/index.d.ts +2 -0
  87. package/dist/configurator/ui/assistant/alert/index.js +1 -0
  88. package/dist/configurator/ui/assistant/alert/remark-alerts.d.ts +10 -0
  89. package/dist/configurator/ui/assistant/alert/remark-alerts.js +1 -0
  90. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -1
  91. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +1 -1
  92. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -1
  93. package/dist/configurator/ui/assistant/form/form-model.d.ts +3 -4
  94. package/dist/configurator/ui/assistant/form/form-state.d.ts +1 -1
  95. package/dist/configurator/ui/assistant/form/index.d.ts +2 -0
  96. package/dist/configurator/ui/assistant/form/index.js +1 -1
  97. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +3 -2
  98. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -1
  99. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +1 -1
  100. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -1
  101. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +3 -0
  102. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.js +1 -0
  103. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.d.ts +31 -0
  104. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.js +1 -0
  105. package/dist/configurator/ui/assistant/form/{form-element-definition.d.ts → registry/form-element-definition.d.ts} +3 -1
  106. package/dist/configurator/ui/assistant/form/registry/form-element-definition.js +1 -0
  107. package/dist/configurator/ui/assistant/form/{form-registry.d.ts → registry/form-registry.d.ts} +2 -2
  108. package/dist/configurator/ui/assistant/form/registry/form-registry.js +1 -0
  109. package/dist/configurator/ui/assistant/form/registry/index.d.ts +6 -0
  110. package/dist/configurator/ui/assistant/form/registry/index.js +1 -0
  111. package/dist/configurator/ui/assistant/form/registry/use-form-registry.d.ts +8 -0
  112. package/dist/configurator/ui/assistant/form/registry/use-form-registry.js +1 -0
  113. package/dist/configurator/ui/assistant/form-elements/FormCard.d.ts +9 -0
  114. package/dist/configurator/ui/assistant/form-elements/FormCard.js +1 -0
  115. package/dist/configurator/ui/assistant/form-elements/FormConfirm.d.ts +9 -0
  116. package/dist/configurator/ui/assistant/form-elements/FormConfirm.js +1 -0
  117. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +4 -1
  118. package/dist/configurator/ui/assistant/form-elements/FormNumber.d.ts +9 -0
  119. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -0
  120. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +4 -1
  121. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +4 -1
  122. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -1
  123. package/dist/configurator/ui/assistant/form-elements/FormSwatch.d.ts +10 -0
  124. package/dist/configurator/ui/assistant/form-elements/FormSwatch.js +1 -0
  125. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +4 -1
  126. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -1
  127. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.d.ts +10 -0
  128. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.js +1 -0
  129. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +20 -16
  130. package/dist/configurator/ui/assistant/form-elements/index.d.ts +4 -0
  131. package/dist/configurator/ui/assistant/form-elements/index.js +1 -1
  132. package/dist/configurator/ui/assistant/index.d.ts +3 -0
  133. package/dist/configurator/ui/assistant/index.js +1 -1
  134. package/dist/configurator/ui/assistant/resource-image/index.d.ts +1 -1
  135. package/dist/configurator/ui/assistant/resource-image/index.js +1 -1
  136. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +0 -9
  137. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -1
  138. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +9 -0
  139. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -0
  140. package/dist/configurator/ui/assistant/screenshots/index.d.ts +2 -0
  141. package/dist/configurator/ui/assistant/screenshots/index.js +1 -0
  142. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +14 -0
  143. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -0
  144. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +2 -2
  145. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  146. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  147. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.d.ts +5 -0
  148. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.js +1 -0
  149. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  150. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -1
  151. package/dist/configurator/ui/index.d.ts +1 -0
  152. package/dist/configurator/ui/index.js +1 -1
  153. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -1
  154. package/dist/docs/complex-use-cases/focus-mode.mdx +2 -0
  155. package/dist/docs/fabs/basic.mdx +4 -0
  156. package/dist/docs/index.json +62 -1
  157. package/dist/docs/integrations/webcomponent-api/basics.mdx +2 -0
  158. package/dist/docs/layouts/custom-layout.mdx +320 -158
  159. package/dist/docs/layouts/gallery/ardent-compressor.mdx +3516 -0
  160. package/dist/docs/layouts/gallery/fenwick-window.mdx +2803 -0
  161. package/dist/docs/layouts/gallery/ferrule-bar-station.mdx +6567 -0
  162. package/dist/docs/layouts/gallery/kestrel-kettle.mdx +1858 -0
  163. package/dist/docs/layouts/gallery/sunfold-solar.mdx +2683 -0
  164. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  165. package/dist/docs/other-features/navigation-hotspot.mdx +2 -0
  166. package/dist/docs/phoenix/configurator-interface.mdx +68 -11
  167. package/dist/docs/phoenix/sdk-builder-workflow.mdx +1 -1
  168. package/dist/docs/phoenix/sessions-and-access.mdx +2 -0
  169. package/dist/docs/selection-and-highlight/hotspots.mdx +2 -0
  170. package/dist/domain/application/assistant/assistant-manifest.d.ts +16 -1
  171. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +8 -1
  172. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  173. package/dist/domain/application/assistant/form/assistant-form-element-name.d.ts +11 -0
  174. package/dist/domain/application/assistant/form/assistant-form-element-name.js +8 -0
  175. package/dist/domain/application/assistant/form/assistant-form-elements.d.ts +174 -0
  176. package/dist/domain/application/assistant/form/assistant-form-elements.js +1 -0
  177. package/dist/domain/application/assistant/form/assistant-resource-path.d.ts +10 -0
  178. package/dist/domain/application/assistant/form/assistant-resource-path.js +1 -0
  179. package/dist/domain/application/assistant/form/index.d.ts +4 -0
  180. package/dist/domain/application/assistant/form/index.js +1 -0
  181. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  182. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  183. package/dist/domain/application/assistant/index.d.ts +2 -3
  184. package/dist/domain/application/assistant/index.js +1 -1
  185. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
  186. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +2 -0
  187. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
  188. package/dist/domain/application/web-component-property.d.ts +3 -1
  189. package/dist/domain/application/web-component-property.js +1 -1
  190. package/dist/domain/available-system-components.d.ts +1 -1
  191. package/dist/domain/available-system-components.js +1 -1
  192. package/dist/domain/domain-context/store-system/store-system.d.ts +5 -0
  193. package/dist/domain/domain-context/store-system/store-system.js +1 -1
  194. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +1 -0
  195. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  196. package/dist/domain/domain-runtime/domain-runtime.d.ts +8 -0
  197. package/dist/domain/domain-runtime/environment/types.d.ts +1 -1
  198. package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
  199. package/dist/domain/domain-runtime/spec/index.js +1 -1
  200. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  201. package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +15 -1
  202. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -1
  203. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.d.ts +12 -0
  204. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +1 -0
  205. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +2 -1
  206. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -1
  207. package/dist/domain/domain-runtime/spec/selectors.d.ts +3 -1
  208. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  209. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +24 -0
  210. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -0
  211. package/dist/domain/extensions/{client-side-image.d.ts → export-images/client-side-image.d.ts} +2 -2
  212. package/dist/domain/extensions/export-images/client-side-image.js +1 -0
  213. package/dist/domain/extensions/export-images/index.d.ts +3 -0
  214. package/dist/domain/extensions/export-images/index.js +1 -0
  215. package/dist/domain/extensions/{save-template-thumbnail.d.ts → export-images/save-template-thumbnail.d.ts} +2 -2
  216. package/dist/domain/extensions/export-images/save-template-thumbnail.js +1 -0
  217. package/dist/domain/extensions/index.d.ts +1 -2
  218. package/dist/domain/extensions/index.js +1 -1
  219. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +4 -0
  220. package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
  221. package/dist/editor/domain-editors/apply-spec-update.d.ts +8 -1
  222. package/dist/editor/domain-editors/apply-spec-update.js +1 -1
  223. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  224. package/dist/editor/screenshot/ScreenshotHandler.js +1 -1
  225. package/dist/i18n/locales/cs/messages.js +1 -1
  226. package/dist/i18n/locales/da/messages.js +1 -1
  227. package/dist/i18n/locales/de/messages.js +1 -1
  228. package/dist/i18n/locales/de-AT/messages.js +1 -1
  229. package/dist/i18n/locales/en/messages.js +1 -1
  230. package/dist/i18n/locales/en-AU/messages.js +1 -1
  231. package/dist/i18n/locales/en-GB/messages.js +1 -1
  232. package/dist/i18n/locales/es/messages.js +1 -1
  233. package/dist/i18n/locales/fr/messages.js +1 -1
  234. package/dist/i18n/locales/hu/messages.js +1 -1
  235. package/dist/i18n/locales/it/messages.js +1 -1
  236. package/dist/i18n/locales/nl/messages.js +1 -1
  237. package/dist/i18n/locales/pl/messages.js +1 -1
  238. package/dist/i18n/locales/pt/messages.js +1 -1
  239. package/dist/i18n/locales/ro/messages.js +1 -1
  240. package/dist/i18n/locales/sk/messages.js +1 -1
  241. package/dist/i18n/locales/tr/messages.js +1 -1
  242. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  243. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  244. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +16 -0
  245. package/dist/legacy/domain-spec/spec/domain-spec.js +1 -1
  246. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  247. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  248. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  249. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +11 -5
  250. package/dist/react-sdk/application-runtime/hooks/index.d.ts +1 -0
  251. package/dist/react-sdk/application-runtime/hooks/index.js +1 -1
  252. package/dist/react-sdk/application-runtime/hooks/responsive/index.d.ts +3 -0
  253. package/dist/react-sdk/application-runtime/hooks/responsive/index.js +1 -0
  254. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.d.ts +9 -0
  255. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.js +1 -0
  256. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.d.ts +26 -0
  257. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.js +1 -0
  258. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.d.ts +10 -0
  259. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.js +1 -0
  260. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.d.ts +24 -0
  261. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.js +1 -0
  262. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +5 -0
  263. package/dist/react-sdk/application-runtime/hooks/use-access-service.js +1 -1
  264. package/dist/react-sdk/application-runtime/hooks/use-phoenix-element-slots.d.ts +2 -1
  265. package/dist/react-sdk/application-runtime/index.d.ts +1 -0
  266. package/dist/react-sdk/application-runtime/integration/initialize.d.ts +7 -6
  267. package/dist/react-sdk/application-runtime/integration/initialize.js +1 -1
  268. package/dist/react-sdk/application-runtime/integration/selectors.d.ts +11 -2
  269. package/dist/react-sdk/application-runtime/integration/selectors.js +1 -1
  270. package/dist/react-sdk/application-runtime/integration/types.d.ts +5 -2
  271. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  272. package/dist/react-sdk/application-runtime/responsive/actions.d.ts +47 -0
  273. package/dist/react-sdk/application-runtime/responsive/actions.js +1 -0
  274. package/dist/react-sdk/application-runtime/responsive/index.d.ts +4 -0
  275. package/dist/react-sdk/application-runtime/responsive/index.js +1 -0
  276. package/dist/react-sdk/application-runtime/responsive/initialize.d.ts +3 -0
  277. package/dist/react-sdk/application-runtime/responsive/initialize.js +1 -0
  278. package/dist/react-sdk/application-runtime/responsive/selectors.d.ts +20 -0
  279. package/dist/react-sdk/application-runtime/responsive/selectors.js +1 -0
  280. package/dist/react-sdk/application-runtime/responsive/types.d.ts +104 -0
  281. package/dist/react-sdk/application-runtime/routing/routing-service.d.ts +34 -2
  282. package/dist/react-sdk/application-runtime/routing/routing-service.js +1 -1
  283. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +95 -2
  284. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  285. package/dist/react-sdk/domain-context/common-hooks/index.d.ts +1 -0
  286. package/dist/react-sdk/domain-context/common-hooks/index.js +1 -1
  287. package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.d.ts +23 -0
  288. package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.js +1 -0
  289. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +1 -0
  290. package/dist/react-sdk/domain-context/index.d.ts +1 -0
  291. package/dist/react-sdk/domain-context/index.js +1 -1
  292. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -1
  293. package/dist/react-sdk/index.d.ts +1 -1
  294. package/dist/react-sdk/index.js +1 -1
  295. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.d.ts +36 -0
  296. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.js +1 -0
  297. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.d.ts +44 -0
  298. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.js +1 -0
  299. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.d.ts +38 -0
  300. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.js +1 -0
  301. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.d.ts +30 -0
  302. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.js +1 -0
  303. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.d.ts +30 -0
  304. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.js +1 -0
  305. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.d.ts +9 -0
  306. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.js +1 -0
  307. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.d.ts +9 -0
  308. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.js +1 -0
  309. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.d.ts +10 -0
  310. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.js +1 -0
  311. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.d.ts +9 -0
  312. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.js +1 -0
  313. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.d.ts +9 -0
  314. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.js +1 -0
  315. package/dist/react-sdk/scene-control-elements/index.d.ts +11 -0
  316. package/dist/react-sdk/scene-control-elements/index.js +1 -0
  317. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.d.ts +5 -0
  318. package/dist/react-sdk/web-component/create-web-component.js +1 -1
  319. package/dist/react-sdk/web-component/god-mode/god-mode-registry.d.ts +30 -0
  320. package/dist/react-sdk/web-component/god-mode/god-mode-registry.js +1 -0
  321. package/dist/react-sdk/web-component/god-mode/index.d.ts +1 -0
  322. package/dist/react-sdk/web-component/god-mode/index.js +1 -0
  323. package/dist/ui-sdk/icons/__generated/Lightbulb.d.ts +3 -0
  324. package/dist/ui-sdk/icons/__generated/Lightbulb.js +1 -0
  325. package/dist/ui-sdk/icons/__generated/XCircle.d.ts +3 -0
  326. package/dist/ui-sdk/icons/__generated/XCircle.js +1 -0
  327. package/dist/ui-sdk/icons/__generated/index.d.ts +4 -0
  328. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  329. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  330. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +2 -2
  331. package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +11 -9
  332. package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -1
  333. package/dist/ui-sdk/theme/types.d.ts +5 -1
  334. package/package.json +13 -3
  335. package/schema/domain-spec.json +140 -0
  336. package/dist/configurator/ui/assistant/form/built-in-form-registry.d.ts +0 -10
  337. package/dist/configurator/ui/assistant/form/built-in-form-registry.js +0 -1
  338. package/dist/configurator/ui/assistant/form/form-registry.js +0 -8
  339. package/dist/domain/application/assistant/assistant-form-elements.d.ts +0 -28
  340. package/dist/domain/application/assistant/assistant-form-elements.js +0 -1
  341. package/dist/domain/extensions/client-side-image.js +0 -1
  342. package/dist/domain/extensions/save-template-thumbnail.js +0 -1
  343. package/dist/react-sdk/application-runtime/runtime/god-mode.d.ts +0 -19
  344. package/dist/react-sdk/application-runtime/runtime/god-mode.js +0 -1
  345. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.d.ts +0 -25
  346. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.js +0 -1
  347. package/dist/react-sdk/responsive-state/canvas-padding.d.ts +0 -14
  348. package/dist/react-sdk/responsive-state/index.d.ts +0 -5
  349. package/dist/react-sdk/responsive-state/index.js +0 -1
  350. package/dist/react-sdk/responsive-state/responsive-state-manager.d.ts +0 -111
  351. package/dist/react-sdk/responsive-state/responsive-state-manager.js +0 -1
  352. package/dist/react-sdk/responsive-state/use-responsive-state-manager.d.ts +0 -10
  353. package/dist/react-sdk/responsive-state/use-responsive-state-manager.js +0 -1
  354. package/dist/react-sdk/responsive-state/use-responsive-state.d.ts +0 -11
  355. package/dist/react-sdk/responsive-state/use-responsive-state.js +0 -1
  356. /package/dist/{configurator/ui/assistant/form/form-element-definition.js → react-sdk/application-runtime/responsive/types.js} +0 -0
  357. /package/dist/react-sdk/{responsive-state/canvas-padding.js → scene-control-elements/scene-control-tooltip-visibility.js} +0 -0
@@ -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;
@@ -422,6 +427,7 @@ export declare function createApplicationRuntimeSlices<State extends Application
422
427
  getMigrate: () => import("#package/domain").MigrateFunction<import("#package/domain").DomainEntity<string>>;
423
428
  getActiveMode: () => import("#package/domain").DomainMode;
424
429
  getIsInitialized: () => boolean;
430
+ getIsViewMode: () => boolean;
425
431
  getComponentReaderIndexes: () => import("#package/domain").ComponentReaderIndexes;
426
432
  getStoreRuntimeDependencies: () => {
427
433
  componentReaderIndexes: import("#package/domain").ComponentReaderIndexes;
@@ -531,6 +537,7 @@ export declare function createApplicationRuntimeSlices<State extends Application
531
537
  getMigrate: () => import("#package/domain").MigrateFunction<import("#package/domain").DomainEntity<string>>;
532
538
  getActiveMode: () => import("#package/domain").DomainMode;
533
539
  getIsInitialized: () => boolean;
540
+ getIsViewMode: () => boolean;
534
541
  getComponentReaderIndexes: () => import("#package/domain").ComponentReaderIndexes;
535
542
  getStoreRuntimeDependencies: () => {
536
543
  componentReaderIndexes: import("#package/domain").ComponentReaderIndexes;
@@ -596,7 +603,6 @@ export declare function createApplicationRuntimeSlices<State extends Application
596
603
  getUnauthenticatedClient: () => import("../../../client/contract.js").UnauthenticatedPhoenixApiClient;
597
604
  };
598
605
  integration: {
599
- selectAdminIntegrationService: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, import("../index.js").AdminIntegrationService>;
600
606
  selectIntegrationState: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, IntegrationState>;
601
607
  selectEmbeddedView: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, import("../index.js").EmbeddedView>;
602
608
  selectPresetEmbeddedState: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, import("../index.js").PresetEmbeddedView | null>;
@@ -607,6 +613,24 @@ export declare function createApplicationRuntimeSlices<State extends Application
607
613
  getPresetEmbeddedState: () => import("../index.js").PresetEmbeddedView | null;
608
614
  getRecipeEmbeddedState: () => import("../index.js").RecipeEmbeddedView | null;
609
615
  };
616
+ responsive: {
617
+ configurator: {
618
+ selectResponsiveState: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveState>;
619
+ selectViewportSize: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveViewportSize>;
620
+ selectCanvasPadding: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").CanvasPadding>;
621
+ getResponsiveState: () => import("../index.js").ResponsiveState;
622
+ getViewportSize: () => import("../index.js").ResponsiveViewportSize;
623
+ getCanvasPadding: () => import("../index.js").CanvasPadding;
624
+ };
625
+ admin: {
626
+ selectResponsiveState: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveState>;
627
+ selectViewportSize: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveViewportSize>;
628
+ selectCanvasPadding: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").CanvasPadding>;
629
+ getResponsiveState: () => import("../index.js").ResponsiveState;
630
+ getViewportSize: () => import("../index.js").ResponsiveViewportSize;
631
+ getCanvasPadding: () => import("../index.js").CanvasPadding;
632
+ };
633
+ };
610
634
  routing: {
611
635
  selectRoutingState: import("@salsita-ai/common/utils").Selector<import("../index.js").RoutingSelectorState, import("../index.js").RoutingState>;
612
636
  selectEffectiveRoutingState: import("@salsita-ai/common/utils").Selector<import("../index.js").RoutingSelectorState, import("../index.js").RoutingState>;
@@ -702,6 +726,30 @@ export declare function createApplicationRuntimeSlices<State extends Application
702
726
  enterEmbeddedView: (view: import("../index.js").EmbeddedView) => void;
703
727
  exitEmbeddedView: () => void;
704
728
  };
729
+ responsive: {
730
+ configurator: {
731
+ setViewport: (viewport: import("../index.js").ResponsiveViewport) => void;
732
+ setBreakpoints: (breakpoints: import("../index.js").ResponsiveBreakpoints) => void;
733
+ setCanvasPadding: (canvasPadding: import("../index.js").CanvasPadding) => void;
734
+ expand: () => void;
735
+ collapse: () => void;
736
+ hide: () => void;
737
+ show: () => void;
738
+ setAnimating: (isAnimating: boolean) => void;
739
+ reset: () => void;
740
+ };
741
+ admin: {
742
+ setViewport: (viewport: import("../index.js").ResponsiveViewport) => void;
743
+ setBreakpoints: (breakpoints: import("../index.js").ResponsiveBreakpoints) => void;
744
+ setCanvasPadding: (canvasPadding: import("../index.js").CanvasPadding) => void;
745
+ expand: () => void;
746
+ collapse: () => void;
747
+ hide: () => void;
748
+ show: () => void;
749
+ setAnimating: (isAnimating: boolean) => void;
750
+ reset: () => void;
751
+ };
752
+ };
705
753
  routing: {
706
754
  setRoutingState: (routingState: import("../index.js").RoutingState) => void;
707
755
  };
@@ -761,6 +809,7 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
761
809
  selectElementSlots: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, {
762
810
  entityElements: Record<string, (props: import("#package/domain").CustomPhoenixEntityElementProps) => JSX.Element>;
763
811
  layoutElements: Record<string, (props: import("react").PropsWithChildren) => JSX.Element>;
812
+ assistantFormElements: Record<string, import("react").ComponentType<never>>;
764
813
  hashes: Record<string, string>;
765
814
  }>;
766
815
  selectDataConfig: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, import("#package/domain").DataSpec | null>;
@@ -804,6 +853,7 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
804
853
  getElementSlots: () => {
805
854
  entityElements: Record<string, (props: import("#package/domain").CustomPhoenixEntityElementProps) => JSX.Element>;
806
855
  layoutElements: Record<string, (props: import("react").PropsWithChildren) => JSX.Element>;
856
+ assistantFormElements: Record<string, import("react").ComponentType<never>>;
807
857
  hashes: Record<string, string>;
808
858
  };
809
859
  getDataConfig: () => import("#package/domain").DataSpec | null;
@@ -1090,6 +1140,7 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
1090
1140
  getMigrate: () => import("#package/domain").MigrateFunction<import("#package/domain").DomainEntity<string>>;
1091
1141
  getActiveMode: () => import("#package/domain").DomainMode;
1092
1142
  getIsInitialized: () => boolean;
1143
+ getIsViewMode: () => boolean;
1093
1144
  getComponentReaderIndexes: () => import("#package/domain").ComponentReaderIndexes;
1094
1145
  getStoreRuntimeDependencies: () => {
1095
1146
  componentReaderIndexes: import("#package/domain").ComponentReaderIndexes;
@@ -1199,6 +1250,7 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
1199
1250
  getMigrate: () => import("#package/domain").MigrateFunction<import("#package/domain").DomainEntity<string>>;
1200
1251
  getActiveMode: () => import("#package/domain").DomainMode;
1201
1252
  getIsInitialized: () => boolean;
1253
+ getIsViewMode: () => boolean;
1202
1254
  getComponentReaderIndexes: () => import("#package/domain").ComponentReaderIndexes;
1203
1255
  getStoreRuntimeDependencies: () => {
1204
1256
  componentReaderIndexes: import("#package/domain").ComponentReaderIndexes;
@@ -1264,7 +1316,6 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
1264
1316
  getUnauthenticatedClient: () => import("../../../client/contract.js").UnauthenticatedPhoenixApiClient;
1265
1317
  };
1266
1318
  integration: {
1267
- selectAdminIntegrationService: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, import("../index.js").AdminIntegrationService>;
1268
1319
  selectIntegrationState: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, IntegrationState>;
1269
1320
  selectEmbeddedView: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, import("../index.js").EmbeddedView>;
1270
1321
  selectPresetEmbeddedState: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, import("../index.js").PresetEmbeddedView | null>;
@@ -1275,6 +1326,24 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
1275
1326
  getPresetEmbeddedState: () => import("../index.js").PresetEmbeddedView | null;
1276
1327
  getRecipeEmbeddedState: () => import("../index.js").RecipeEmbeddedView | null;
1277
1328
  };
1329
+ responsive: {
1330
+ configurator: {
1331
+ selectResponsiveState: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveState>;
1332
+ selectViewportSize: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveViewportSize>;
1333
+ selectCanvasPadding: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").CanvasPadding>;
1334
+ getResponsiveState: () => import("../index.js").ResponsiveState;
1335
+ getViewportSize: () => import("../index.js").ResponsiveViewportSize;
1336
+ getCanvasPadding: () => import("../index.js").CanvasPadding;
1337
+ };
1338
+ admin: {
1339
+ selectResponsiveState: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveState>;
1340
+ selectViewportSize: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveViewportSize>;
1341
+ selectCanvasPadding: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").CanvasPadding>;
1342
+ getResponsiveState: () => import("../index.js").ResponsiveState;
1343
+ getViewportSize: () => import("../index.js").ResponsiveViewportSize;
1344
+ getCanvasPadding: () => import("../index.js").CanvasPadding;
1345
+ };
1346
+ };
1278
1347
  routing: {
1279
1348
  selectRoutingState: import("@salsita-ai/common/utils").Selector<import("../index.js").RoutingSelectorState, import("../index.js").RoutingState>;
1280
1349
  selectEffectiveRoutingState: import("@salsita-ai/common/utils").Selector<import("../index.js").RoutingSelectorState, import("../index.js").RoutingState>;
@@ -1370,6 +1439,30 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
1370
1439
  enterEmbeddedView: (view: import("../index.js").EmbeddedView) => void;
1371
1440
  exitEmbeddedView: () => void;
1372
1441
  };
1442
+ responsive: {
1443
+ configurator: {
1444
+ setViewport: (viewport: import("../index.js").ResponsiveViewport) => void;
1445
+ setBreakpoints: (breakpoints: import("../index.js").ResponsiveBreakpoints) => void;
1446
+ setCanvasPadding: (canvasPadding: import("../index.js").CanvasPadding) => void;
1447
+ expand: () => void;
1448
+ collapse: () => void;
1449
+ hide: () => void;
1450
+ show: () => void;
1451
+ setAnimating: (isAnimating: boolean) => void;
1452
+ reset: () => void;
1453
+ };
1454
+ admin: {
1455
+ setViewport: (viewport: import("../index.js").ResponsiveViewport) => void;
1456
+ setBreakpoints: (breakpoints: import("../index.js").ResponsiveBreakpoints) => void;
1457
+ setCanvasPadding: (canvasPadding: import("../index.js").CanvasPadding) => void;
1458
+ expand: () => void;
1459
+ collapse: () => void;
1460
+ hide: () => void;
1461
+ show: () => void;
1462
+ setAnimating: (isAnimating: boolean) => void;
1463
+ reset: () => void;
1464
+ };
1465
+ };
1373
1466
  routing: {
1374
1467
  setRoutingState: (routingState: import("../index.js").RoutingState) => void;
1375
1468
  };
@@ -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)}
@@ -1,3 +1,4 @@
1
+ export * from './use-configuration-save-state.js';
1
2
  export * from './use-configurator-messages.js';
2
3
  export * from './use-domain-context.js';
3
4
  export * from './use-entity-selector.js';
@@ -1 +1 @@
1
- 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";
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])};
@@ -69,6 +69,7 @@ export declare const useDomainContextSelectors: () => {
69
69
  getMigrate: () => import("#package/domain").MigrateFunction<DomainEntity<string>>;
70
70
  getActiveMode: () => import("#package/domain").DomainMode;
71
71
  getIsInitialized: () => boolean;
72
+ getIsViewMode: () => boolean;
72
73
  getComponentReaderIndexes: () => import("#package/domain").ComponentReaderIndexes;
73
74
  getStoreRuntimeDependencies: () => {
74
75
  componentReaderIndexes: import("#package/domain").ComponentReaderIndexes;
@@ -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';
@@ -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{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
+ 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{useCallback as o}from"react";import{FrontendAnalyticsFactory as n,useAnalyticsService as e}from"../../application-runtime/index.js";import{useDomain as d,useEagerObservableValue as t}from"../common-hooks/index.js";export const useUndoRedo=()=>{let r=e(),{undoSystem:i}=d(),{canUndo:c,canRedo:m}=t(i.can$);return{canUndo:c,canRedo:m,undo:o(()=>{i.canUndo()&&(r.push(n.UndoButtonClicked()),i.undo())},[r,i]),redo:o(()=>{i.canRedo()&&(r.push(n.RedoButtonClicked()),i.redo())},[r,i])}};
1
+ import{useCallback as o,useMemo as n}from"react";import{FrontendAnalyticsFactory as e,useAnalyticsService as t}from"../../application-runtime/index.js";import{useDomain as d,useEagerObservableValue as r}from"../common-hooks/index.js";export const useUndoRedo=()=>{let i=t(),{undoSystem:c}=d(),{canUndo:m,canRedo:p}=r(c.can$),u=o(()=>{c.canUndo()&&(i.push(e.UndoButtonClicked()),c.undo())},[i,c]),s=o(()=>{c.canRedo()&&(i.push(e.RedoButtonClicked()),c.redo())},[i,c]);return n(()=>({canUndo:m,canRedo:p,undo:u,redo:s}),[m,p,u,s])};
@@ -8,7 +8,7 @@ export * from './invalid-deployment/index.js';
8
8
  export * from './web-component/index.js';
9
9
  export * from './localizable/index.js';
10
10
  export * from './loading-state/index.js';
11
- export * from './responsive-state/index.js';
12
11
  export * from './elements/index.js';
12
+ export * from './scene-control-elements/index.js';
13
13
  export * from './handlers/index.js';
14
14
  export * from './application-runtime/index.js';
@@ -1 +1 @@
1
- export*from"./theme/index.js";export*from"./utils/index.js";export*from"./session/index.js";export*from"./domain-context/index.js";export*from"./domain-application-context/index.js";export*from"./domain-controls/index.js";export*from"./invalid-deployment/index.js";export*from"./web-component/index.js";export*from"./localizable/index.js";export*from"./loading-state/index.js";export*from"./responsive-state/index.js";export*from"./elements/index.js";export*from"./handlers/index.js";export*from"./application-runtime/index.js";
1
+ export*from"./theme/index.js";export*from"./utils/index.js";export*from"./session/index.js";export*from"./domain-context/index.js";export*from"./domain-application-context/index.js";export*from"./domain-controls/index.js";export*from"./invalid-deployment/index.js";export*from"./web-component/index.js";export*from"./localizable/index.js";export*from"./loading-state/index.js";export*from"./elements/index.js";export*from"./scene-control-elements/index.js";export*from"./handlers/index.js";export*from"./application-runtime/index.js";
@@ -0,0 +1,36 @@
1
+ import type { Localizable } from '@salsita-ai/common/utils';
2
+ import type { DomainEntityId } from '#package/domain';
3
+ import type { SceneControlTooltipVisibility } from './scene-control-tooltip-visibility.js';
4
+ /**
5
+ * The name of the entity element that renders a `sceneEntityAddFab`. Its default, the built-in
6
+ * add-entity FAB, is registered in `defaultConfiguratorElements`.
7
+ */
8
+ export declare const AddEntityFabName = "AddEntityFab";
9
+ /**
10
+ * Props of the `AddEntityFab` element, rendered for each `sceneEntityAddFab` of an entity, at the
11
+ * position the component sets. The recipes it can add are not computed up front: the built-in FAB
12
+ * reads them with `useGroupedRecipeOptions(entityId, instanceNames, fixableViolations)` when it
13
+ * opens its menu, and a replacement does the same.
14
+ */
15
+ export interface AddEntityFabElementProps {
16
+ /** The entity the FAB adds children to. */
17
+ readonly entityId: DomainEntityId<string>;
18
+ /** The `childEntityRecipes` instances whose recipes the FAB offers; all of them when not set. */
19
+ readonly instanceNames?: readonly string[];
20
+ /** Violations a new entity may cause without disabling its recipe (the component's `hiddenViolations`). */
21
+ readonly fixableViolations?: readonly string[];
22
+ /** The name of a Phoenix icon. */
23
+ readonly icon?: string;
24
+ /** A visible text label. */
25
+ readonly label?: Localizable;
26
+ /** The tooltip text. */
27
+ readonly title?: Localizable;
28
+ /** When the tooltip shows: `on-hover` unless the component sets it. */
29
+ readonly tooltipVisibility: SceneControlTooltipVisibility;
30
+ /** Add the only recipe directly, without a menu. */
31
+ readonly skipMenuWhenOnlyOne?: boolean;
32
+ /** Render nothing when there is no recipe. */
33
+ readonly hideWhenNone?: boolean;
34
+ }
35
+ /** Renders the `AddEntityFab` element for an entity. */
36
+ export declare const AddEntityFabElement: import("react").MemoExoticComponent<(props: AddEntityFabElementProps) => import("react/jsx-runtime").JSX.Element>;
@@ -0,0 +1 @@
1
+ import{jsx as t}from"react/jsx-runtime";import{memo as e,useMemo as n}from"react";import{PhoenixEntityElementWithChildren as r}from"../elements/index.js";export const AddEntityFabName="AddEntityFab";export const AddEntityFabElement=e(e=>{let{entityId:d,instanceNames:i,fixableViolations:m,icon:o,label:a,title:s,tooltipVisibility:p,skipMenuWhenOnlyOne:x,hideWhenNone:y}=e,E=n(()=>({instanceNames:i,fixableViolations:m,icon:o,label:a,title:s,tooltipVisibility:p,skipMenuWhenOnlyOne:x,hideWhenNone:y}),[i,m,o,a,s,p,x,y]);return t(r,{kind:"AddEntityFab",entityId:d,elementProps:E})});
@@ -0,0 +1,44 @@
1
+ import { type SyntheticEvent } from 'react';
2
+ import type { Localizable } from '@salsita-ai/common/utils';
3
+ import type { DomainEntityId } from '#package/domain';
4
+ import type { SceneControlTooltipVisibility } from './scene-control-tooltip-visibility.js';
5
+ /**
6
+ * The name of the entity element that renders a `sceneEntityDeleteFab`. Its default, the built-in
7
+ * delete-entity FAB, is registered in `defaultConfiguratorElements`.
8
+ */
9
+ export declare const DeleteEntityFabName = "DeleteEntityFab";
10
+ /**
11
+ * Props of the `DeleteEntityFab` element, rendered for each `sceneEntityDeleteFab` of an entity, at
12
+ * the position the component sets.
13
+ */
14
+ export interface DeleteEntityFabElementProps {
15
+ /** The entity the FAB deletes. */
16
+ readonly entityId: DomainEntityId<string>;
17
+ /** The name of a Phoenix icon. */
18
+ readonly icon?: string;
19
+ /** A visible text label. */
20
+ readonly label?: Localizable;
21
+ /** The tooltip text. */
22
+ readonly title?: Localizable;
23
+ /** When the tooltip shows: `on-hover` unless the component sets it. */
24
+ readonly tooltipVisibility: SceneControlTooltipVisibility;
25
+ /**
26
+ * Deletes the entity and pushes the delete analytics event. Pass it straight to `onClick`: given
27
+ * an event, it stops the event's propagation so the click does not reach the scene.
28
+ */
29
+ readonly onDelete: (event?: SyntheticEvent) => void;
30
+ /** True when deleting would cause a violation the component does not allow. */
31
+ readonly disabled: boolean;
32
+ /** Why deleting is disabled, when it is. */
33
+ readonly disabledHint: string | undefined;
34
+ /** Logs the dry run of the deletion to the console, for debugging. */
35
+ readonly trace: () => void;
36
+ }
37
+ type DeleteEntityFabElementConfig = Omit<DeleteEntityFabElementProps, 'onDelete' | 'disabled' | 'disabledHint' | 'trace'>;
38
+ interface Props extends DeleteEntityFabElementConfig {
39
+ /** Violations deleting may cause without disabling the FAB (the component's `hiddenViolations`). */
40
+ readonly fixableViolations?: readonly string[];
41
+ }
42
+ /** Renders the `DeleteEntityFab` element for an entity, with the deletion it performs. */
43
+ export declare const DeleteEntityFabElement: import("react").MemoExoticComponent<(props: Props) => import("react/jsx-runtime").JSX.Element>;
44
+ export {};
@@ -0,0 +1 @@
1
+ import{jsx as t}from"react/jsx-runtime";import{memo as e,useCallback as i,useMemo as o}from"react";import{FrontendAnalyticsFactory as n}from"../application-runtime/index.js";import{useDeletedEntity as r}from"../domain-controls/index.js";import{PhoenixEntityElementWithChildren as m}from"../elements/index.js";export const DeleteEntityFabName="DeleteEntityFab";export const DeleteEntityFabElement=e(e=>{let{entityId:a,fixableViolations:s,icon:l,label:p,title:d,tooltipVisibility:c}=e,x=i(()=>n.EntityDeleteHotspotClicked(a),[a]),{disabled:y,hints:E,remove:b,trace:f}=r(a,s,x),j=i(t=>{t?.stopPropagation(),b()},[b]),D=o(()=>({icon:l,label:p,title:d,tooltipVisibility:c,onDelete:j,disabled:y,disabledHint:E,trace:f}),[l,p,d,c,j,y,E,f]);return t(m,{kind:"DeleteEntityFab",entityId:a,elementProps:D})});
@@ -0,0 +1,38 @@
1
+ import { type SyntheticEvent } from 'react';
2
+ import type { Localizable } from '@salsita-ai/common/utils';
3
+ import type { DomainEntityId } from '#package/domain';
4
+ import type { SceneControlTooltipVisibility } from './scene-control-tooltip-visibility.js';
5
+ /**
6
+ * The name of the entity element that renders a `sceneEntityNavigationHotspot`. Its default, the
7
+ * built-in navigation hotspot, is registered in `defaultConfiguratorElements`.
8
+ */
9
+ export declare const NavigationHotspotName = "NavigationHotspot";
10
+ /**
11
+ * Props of the `NavigationHotspot` element, rendered for each `sceneEntityNavigationHotspot` of an
12
+ * entity, at the position the component sets.
13
+ */
14
+ export interface NavigationHotspotElementProps {
15
+ /** The entity the hotspot is attached to. */
16
+ readonly entityId: DomainEntityId<string>;
17
+ /** The navigation state the hotspot goes to. */
18
+ readonly navigationState: string;
19
+ /** The tooltip text. */
20
+ readonly title?: Localizable;
21
+ /** When the tooltip shows: `on-hover` unless the component sets it. */
22
+ readonly tooltipVisibility: SceneControlTooltipVisibility;
23
+ /**
24
+ * Goes to `navigationState`, pushed onto the navigation stack or replacing the current state as
25
+ * the component sets. Pass it straight to `onClick`: given an event, it prevents the event's
26
+ * default and stops its propagation so the click does not reach the scene.
27
+ */
28
+ readonly onNavigate: (event?: SyntheticEvent) => void;
29
+ }
30
+ interface Props extends Omit<NavigationHotspotElementProps, 'onNavigate'> {
31
+ /** Push `navigationState` onto the navigation stack instead of replacing the current state. */
32
+ readonly pushToStack?: boolean;
33
+ /** The states `navigationState` can be stacked onto. */
34
+ readonly canStackOnto?: readonly string[];
35
+ }
36
+ /** Renders the `NavigationHotspot` element for an entity, with the navigation it performs. */
37
+ export declare const NavigationHotspotElement: import("react").MemoExoticComponent<(props: Props) => import("react/jsx-runtime").JSX.Element>;
38
+ export {};
@@ -0,0 +1 @@
1
+ import{jsx as t}from"react/jsx-runtime";import{memo as e,useCallback as o,useMemo as a}from"react";import{useDomain as i}from"../domain-context/index.js";import{PhoenixEntityElementWithChildren as n}from"../elements/index.js";export const NavigationHotspotName="NavigationHotspot";export const NavigationHotspotElement=e(e=>{let{entityId:s,navigationState:m,pushToStack:r,canStackOnto:p,title:g,tooltipVisibility:d}=e,{navigationSystem:l,storeSystem:v}=i(),c=o(t=>{t?.preventDefault(),t?.stopPropagation();let e=r?l.getPushNavigationUpdate(m,v.stateSlices.committed.value.state,{canStackOnto:p}):l.getNavigationUpdate(m);v.stageAndCommit([e])},[l,m,r,v,p]);return t(n,{kind:"NavigationHotspot",entityId:s,elementProps:a(()=>({navigationState:m,title:g,tooltipVisibility:d,onNavigate:c}),[m,g,d,c])})});
@@ -0,0 +1,30 @@
1
+ import { type SyntheticEvent } from 'react';
2
+ import type { Localizable } from '@salsita-ai/common/utils';
3
+ import type { DomainEntityId } from '#package/domain';
4
+ import type { SceneControlTooltipVisibility } from './scene-control-tooltip-visibility.js';
5
+ /**
6
+ * The name of the entity element that renders a `sceneEntitySelectHotspot`. Its default, the
7
+ * built-in selection hotspot, is registered in `defaultConfiguratorElements`.
8
+ */
9
+ export declare const SelectionHotspotName = "SelectionHotspot";
10
+ /**
11
+ * Props of the `SelectionHotspot` element, rendered for each `sceneEntitySelectHotspot` of an
12
+ * entity, at the position the component sets.
13
+ */
14
+ export interface SelectionHotspotElementProps {
15
+ /** The entity the hotspot selects. */
16
+ readonly entityId: DomainEntityId<string>;
17
+ /** The tooltip text. */
18
+ readonly title?: Localizable;
19
+ /** When the tooltip shows: `on-hover` unless the component sets it. */
20
+ readonly tooltipVisibility: SceneControlTooltipVisibility;
21
+ /**
22
+ * Selects the entity and pushes the selection-hotspot analytics event. Pass it straight to
23
+ * `onClick`: given an event, it stops the event's propagation so the click does not reach the scene.
24
+ */
25
+ readonly onSelect: (event?: SyntheticEvent) => void;
26
+ }
27
+ type Props = Omit<SelectionHotspotElementProps, 'onSelect'>;
28
+ /** Renders the `SelectionHotspot` element for an entity, with the selection it performs. */
29
+ export declare const SelectionHotspotElement: import("react").MemoExoticComponent<(props: Props) => import("react/jsx-runtime").JSX.Element>;
30
+ export {};
@@ -0,0 +1 @@
1
+ import{jsx as t}from"react/jsx-runtime";import{memo as o,useCallback as e,useMemo as i}from"react";import{FrontendAnalyticsFactory as n}from"../application-runtime/index.js";import{useSelectEntity as r}from"../domain-context/index.js";import{PhoenixEntityElementWithChildren as m}from"../elements/index.js";export const SelectionHotspotName="SelectionHotspot";export const SelectionHotspotElement=o(o=>{let{entityId:p,title:s,tooltipVisibility:c}=o,l=r(n.SelectionHotspotClicked),a=e(t=>{t?.stopPropagation(),l(p)},[p,l]);return t(m,{kind:"SelectionHotspot",entityId:p,elementProps:i(()=>({title:s,tooltipVisibility:c,onSelect:a}),[s,c,a])})});
@@ -0,0 +1,30 @@
1
+ import type { Localizable } from '@salsita-ai/common/utils';
2
+ import type { DomainEntityId, ToolMenuFabOption } from '#package/domain';
3
+ import type { SceneControlTooltipVisibility } from './scene-control-tooltip-visibility.js';
4
+ /**
5
+ * The name of the entity element that renders a `toolMenuFab`. Its default, the built-in tool-menu
6
+ * FAB, is registered in `defaultConfiguratorElements`.
7
+ */
8
+ export declare const ToolMenuFabName = "ToolMenuFab";
9
+ /**
10
+ * Props of the `ToolMenuFab` element, rendered for each `toolMenuFab` of an entity, at the position
11
+ * the component sets.
12
+ */
13
+ export interface ToolMenuFabElementProps {
14
+ /** The entity the FAB is attached to. */
15
+ readonly entityId: DomainEntityId<string>;
16
+ /** The tools the menu offers, each with its `label`, optional `icon` and `toolState`. */
17
+ readonly options: readonly ToolMenuFabOption[];
18
+ /** The name of a Phoenix icon; the built-in FAB shows `PencilSimpleBold` when it is not set. */
19
+ readonly icon?: string;
20
+ /** The tooltip text, which the built-in menu also shows as its heading. */
21
+ readonly title?: Localizable;
22
+ /** When the tooltip shows: `on-hover` unless the component sets it. */
23
+ readonly tooltipVisibility: SceneControlTooltipVisibility;
24
+ /** Switches to the given tool state, the `toolState` of one of the `options`. */
25
+ readonly onSelectTool: (toolState: string) => void;
26
+ }
27
+ type Props = Omit<ToolMenuFabElementProps, 'onSelectTool'>;
28
+ /** Renders the `ToolMenuFab` element for an entity, with the tool switch it performs. */
29
+ export declare const ToolMenuFabElement: import("react").MemoExoticComponent<(props: Props) => import("react/jsx-runtime").JSX.Element>;
30
+ export {};
@@ -0,0 +1 @@
1
+ import{jsx as e}from"react/jsx-runtime";import{memo as o,useCallback as t,useMemo as n}from"react";import{useDomain as m}from"../domain-context/index.js";import{PhoenixEntityElementWithChildren as r}from"../elements/index.js";export const ToolMenuFabName="ToolMenuFab";export const ToolMenuFabElement=o(o=>{let{entityId:a,options:i,icon:s,title:l,tooltipVisibility:p}=o,{navigationSystem:d,storeSystem:x}=m(),u=t(e=>{x.stageAndCommit([d.getToolUpdate(e)])},[d,x]);return e(r,{kind:"ToolMenuFab",entityId:a,elementProps:n(()=>({options:i,icon:s,title:l,tooltipVisibility:p,onSelectTool:u}),[i,s,l,p,u])})});
@@ -0,0 +1,9 @@
1
+ import { type PhoenixEntityElementRegistration } from '#package/domain';
2
+ import { type AddEntityFabElementProps } from './AddEntityFabElement.js';
3
+ /**
4
+ * Registers a project's add-entity FAB as the `AddEntityFab` entity element, with its props typed.
5
+ * Registering an entity element under that name with `createCustomPhoenixEntityElement` works too,
6
+ * but its component is then typed as taking only `entityId` and `children`.
7
+ */
8
+ export declare const createAddEntityFab: (Element: (props: AddEntityFabElementProps) => JSX.Element | null) => PhoenixEntityElementRegistration;
9
+ export type CreateAddEntityFab = (Element: (props: AddEntityFabElementProps) => JSX.Element | null) => PhoenixEntityElementRegistration;
@@ -0,0 +1 @@
1
+ import{createCustomPhoenixEntityElement as t}from"#package/domain";import{AddEntityFabName as o}from"./AddEntityFabElement.js";export const createAddEntityFab=a=>t(o,a);
@@ -0,0 +1,9 @@
1
+ import { type PhoenixEntityElementRegistration } from '#package/domain';
2
+ import { type DeleteEntityFabElementProps } from './DeleteEntityFabElement.js';
3
+ /**
4
+ * Registers a project's delete-entity FAB as the `DeleteEntityFab` entity element, with its props
5
+ * typed. Registering an entity element under that name with `createCustomPhoenixEntityElement`
6
+ * works too, but its component is then typed as taking only `entityId` and `children`.
7
+ */
8
+ export declare const createDeleteEntityFab: (Element: (props: DeleteEntityFabElementProps) => JSX.Element | null) => PhoenixEntityElementRegistration;
9
+ export type CreateDeleteEntityFab = (Element: (props: DeleteEntityFabElementProps) => JSX.Element | null) => PhoenixEntityElementRegistration;
@@ -0,0 +1 @@
1
+ import{createCustomPhoenixEntityElement as e}from"#package/domain";import{DeleteEntityFabName as t}from"./DeleteEntityFabElement.js";export const createDeleteEntityFab=o=>e(t,o);
@@ -0,0 +1,10 @@
1
+ import { type PhoenixEntityElementRegistration } from '#package/domain';
2
+ import { type NavigationHotspotElementProps } from './NavigationHotspotElement.js';
3
+ /**
4
+ * Registers a project's navigation hotspot as the `NavigationHotspot` entity element, with its
5
+ * props typed. Registering an entity element under that name with
6
+ * `createCustomPhoenixEntityElement` works too, but its component is then typed as taking only
7
+ * `entityId` and `children`.
8
+ */
9
+ export declare const createNavigationHotspot: (Element: (props: NavigationHotspotElementProps) => JSX.Element | null) => PhoenixEntityElementRegistration;
10
+ export type CreateNavigationHotspot = (Element: (props: NavigationHotspotElementProps) => JSX.Element | null) => PhoenixEntityElementRegistration;
@@ -0,0 +1 @@
1
+ import{createCustomPhoenixEntityElement as o}from"#package/domain";import{NavigationHotspotName as t}from"./NavigationHotspotElement.js";export const createNavigationHotspot=a=>o(t,a);
@@ -0,0 +1,9 @@
1
+ import { type PhoenixEntityElementRegistration } from '#package/domain';
2
+ import { type SelectionHotspotElementProps } from './SelectionHotspotElement.js';
3
+ /**
4
+ * Registers a project's selection hotspot as the `SelectionHotspot` entity element, with its props
5
+ * typed. Registering an entity element under that name with `createCustomPhoenixEntityElement`
6
+ * works too, but its component is then typed as taking only `entityId` and `children`.
7
+ */
8
+ export declare const createSelectionHotspot: (Element: (props: SelectionHotspotElementProps) => JSX.Element | null) => PhoenixEntityElementRegistration;
9
+ export type CreateSelectionHotspot = (Element: (props: SelectionHotspotElementProps) => JSX.Element | null) => PhoenixEntityElementRegistration;
@@ -0,0 +1 @@
1
+ import{createCustomPhoenixEntityElement as o}from"#package/domain";import{SelectionHotspotName as t}from"./SelectionHotspotElement.js";export const createSelectionHotspot=e=>o(t,e);