@salsita-ai/sdk 0.50.0-develop.c33986dc44 → 0.50.0-develop.c402728d10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (558) hide show
  1. package/README.md +5 -1
  2. package/dist/admin/AdminShell.js +1 -1
  3. package/dist/admin/legacy-admin/Application.js +1 -1
  4. package/dist/application-spec/core/enhanced-json-value.d.ts +2 -31
  5. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  6. package/dist/application-spec/core/index.d.ts +1 -3
  7. package/dist/application-spec/core/index.js +1 -1
  8. package/dist/application-spec/core/json-schema.d.ts +2 -52
  9. package/dist/application-spec/core/markers/index.d.ts +1 -1
  10. package/dist/application-spec/core/markers/index.js +1 -1
  11. package/dist/application-spec/core/markers/msg-marker.d.ts +2 -28
  12. package/dist/application-spec/core/markers/msg-marker.js +1 -1
  13. package/dist/application-spec/core/markers/raw-eval-write-marker.d.ts +1 -1
  14. package/dist/application-spec/core/markers/raw-eval-write-marker.js +1 -1
  15. package/dist/application-spec/core/markers/raw-read-write-marker.js +1 -1
  16. package/dist/application-spec/errors/diagnostic-codes.d.ts +8 -1
  17. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  18. package/dist/application-spec/errors/diagnostic-messages.d.ts +15 -1
  19. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  20. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  21. package/dist/application-spec/generate-application/code/templates/index.d.ts +2 -6
  22. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  23. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.d.ts +10 -0
  24. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.js +7 -0
  25. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  26. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +1 -1
  27. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +1 -1
  28. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -4
  29. package/dist/application-spec/generate-application/implementations/phx-model.d.ts +1 -1
  30. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +1 -2
  31. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +1 -2
  32. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +1 -2
  33. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +1 -1
  34. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -1
  35. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +1 -2
  36. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -1
  37. package/dist/application-spec/generate-application/runtime/generate-runtime-instance.d.ts +1 -1
  38. package/dist/application-spec/generate-application/runtime/generate-runtime-instance.js +1 -1
  39. package/dist/application-spec/generate-application/runtime/sections/actions-runtime.d.ts +1 -2
  40. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +1 -1
  41. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  42. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +1 -1
  43. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +1 -2
  44. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +1 -2
  45. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  46. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +1 -2
  47. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  48. package/dist/application-spec/generate-application/runtime/sections/preset-runtime.d.ts +2 -3
  49. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +1 -1
  50. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +1 -1
  51. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +96 -31
  52. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +1 -1
  53. package/dist/application-spec/parse-application-files/merge/merged-assistant.d.ts +13 -4
  54. package/dist/application-spec/parse-application-files/merge/merged-assistant.js +1 -1
  55. package/dist/application-spec/parse-application-files/merge/merged-infra.d.ts +4 -11
  56. package/dist/application-spec/parse-application-files/merge/merged-transformers.d.ts +2 -4
  57. package/dist/application-spec/parse-application-files/parse-application-files.js +1 -1
  58. package/dist/application-spec/parse-application-files/raw-spec/raw-acl.d.ts +2 -2
  59. package/dist/application-spec/parse-application-files/raw-spec/raw-acl.js +1 -1
  60. package/dist/application-spec/parse-application-files/raw-spec/raw-admin-pages.d.ts +3 -24
  61. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +25 -20
  62. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  63. package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.d.ts +1 -1
  64. package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.js +1 -1
  65. package/dist/application-spec/parse-application-files/raw-spec/raw-resources.d.ts +19 -64
  66. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-pages.d.ts +3 -20
  67. package/dist/application-spec/parse-application-files/spec/application/admin-spec/states.d.ts +3 -5
  68. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/states.d.ts +3 -8
  69. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding.d.ts +3 -13
  70. package/dist/application-spec/parse-application-files/spec/components/bindings/write-binding.d.ts +4 -32
  71. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +4 -10
  72. package/dist/application-spec/parse-application-files/spec/components/components.d.ts +3 -4
  73. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -2
  74. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  75. package/dist/application-spec/parse-application-files/spec/components/sdk-component-entry.d.ts +1 -1
  76. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +2 -3
  77. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  78. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +2 -3
  79. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +2 -2
  80. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -29
  81. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  82. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.d.ts +4 -71
  83. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  84. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +2 -2
  85. package/dist/application-spec/parse-application-files/spec/invariants/invariant.d.ts +5 -21
  86. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +4 -14
  87. package/dist/application-spec/parse-application-files/spec/model/aliases.d.ts +3 -9
  88. package/dist/application-spec/parse-application-files/spec/model/common-types.d.ts +6 -14
  89. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +6 -31
  90. package/dist/application-spec/parse-application-files/spec/model/entity-types.d.ts +3 -8
  91. package/dist/application-spec/parse-application-files/spec/model/model-version-key.d.ts +3 -3
  92. package/dist/application-spec/parse-application-files/spec/model/names/action-name.d.ts +3 -7
  93. package/dist/application-spec/parse-application-files/spec/model/names/alias-name.d.ts +3 -7
  94. package/dist/application-spec/parse-application-files/spec/model/names/entity-or-alias-name.d.ts +3 -8
  95. package/dist/application-spec/parse-application-files/spec/model/names/entity-type-name.d.ts +3 -8
  96. package/dist/application-spec/parse-application-files/spec/model/names/expression-name.d.ts +3 -6
  97. package/dist/application-spec/parse-application-files/spec/model/names/instance-name.d.ts +3 -7
  98. package/dist/application-spec/parse-application-files/spec/model/names/invariant-name.d.ts +3 -3
  99. package/dist/application-spec/parse-application-files/spec/model/names/shape-property-name.d.ts +3 -11
  100. package/dist/application-spec/parse-application-files/spec/model/names/violation-type-name.d.ts +3 -3
  101. package/dist/application-spec/parse-application-files/spec/model/presets.d.ts +6 -29
  102. package/dist/application-spec/parse-application-files/spec/sections/actions.d.ts +6 -23
  103. package/dist/application-spec/parse-application-files/spec/sections/app-metadata.d.ts +3 -18
  104. package/dist/application-spec/parse-application-files/spec/sections/application-version.d.ts +3 -7
  105. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  106. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.js +1 -1
  107. package/dist/application-spec/parse-application-files/spec/sections/data-spec/chunks.d.ts +6 -23
  108. package/dist/application-spec/parse-application-files/spec/sections/data-spec/custom-data-spec.d.ts +1 -16
  109. package/dist/application-spec/parse-application-files/spec/sections/data-spec/data-entry-key.d.ts +3 -9
  110. package/dist/application-spec/parse-application-files/spec/sections/data-spec/data-spec.d.ts +1 -10
  111. package/dist/application-spec/parse-application-files/spec/sections/data-spec/swatch-data-spec.d.ts +1 -14
  112. package/dist/application-spec/parse-application-files/spec/sections/state-value.d.ts +3 -7
  113. package/dist/application-spec/parse-application-files/spec/sections/theme.d.ts +3 -10
  114. package/dist/application-spec/parse-application-files/spec/sections/transformers.d.ts +4 -11
  115. package/dist/application-spec/parse-application-files/spec/sections/ui.d.ts +3 -12
  116. package/dist/client/authorized-client.d.ts +3 -1
  117. package/dist/client/authorized-client.js +1 -1
  118. package/dist/client/contract.d.ts +30 -1
  119. package/dist/client/contract.js +1 -1
  120. package/dist/client/index.d.ts +1 -1
  121. package/dist/client/local-authorized-client.d.ts +3 -1
  122. package/dist/client/local-authorized-client.js +1 -1
  123. package/dist/client/memory-authorized-client.d.ts +4 -1
  124. package/dist/client/memory-authorized-client.js +1 -1
  125. package/dist/client/phoenix-api.d.ts +259 -1
  126. package/dist/configurator/ConfiguratorApp.js +1 -1
  127. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  128. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +64 -6
  129. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  130. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +21 -4
  131. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  132. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +70 -56
  133. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  134. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +30 -9
  135. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  136. package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.d.ts +40 -0
  137. package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.js +1 -0
  138. package/dist/configurator/common/configurator-interface.d.ts +2 -2
  139. package/dist/configurator/common/configurator-interface.js +1 -1
  140. package/dist/configurator/configurator-context/configurator-hooks/index.d.ts +0 -1
  141. package/dist/configurator/configurator-context/configurator-hooks/index.js +1 -1
  142. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.js +1 -1
  143. package/dist/configurator/configurator-context/index.d.ts +0 -5
  144. package/dist/configurator/configurator-context/index.js +1 -1
  145. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  146. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  147. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  148. package/dist/configurator/pages/error-boundaries/DevContextFallback.js +1 -1
  149. package/dist/configurator/pages/error-boundaries/DevLoadingFallback.js +1 -1
  150. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  151. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +6 -0
  152. package/dist/configurator/ui/assistant/AssistantComposer.js +2 -1
  153. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  154. package/dist/configurator/ui/assistant/attachments/MessageImages.d.ts +11 -0
  155. package/dist/configurator/ui/assistant/attachments/MessageImages.js +1 -0
  156. package/dist/configurator/ui/assistant/attachments/index.d.ts +2 -0
  157. package/dist/configurator/ui/assistant/attachments/index.js +1 -0
  158. package/dist/configurator/ui/assistant/attachments/prepare-image.d.ts +19 -0
  159. package/dist/configurator/ui/assistant/attachments/prepare-image.js +1 -0
  160. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +1 -1
  161. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -1
  162. package/dist/configurator/ui/assistant/screenshots/index.d.ts +1 -0
  163. package/dist/configurator/ui/assistant/screenshots/index.js +1 -1
  164. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +12 -4
  165. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -1
  166. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.d.ts +8 -0
  167. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.js +1 -0
  168. package/dist/configurator/ui/assistant/thread-items.d.ts +2 -0
  169. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  170. package/dist/configurator/ui/assistant/tool-chip.d.ts +19 -9
  171. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  172. package/dist/configurator/ui/configurator-layout/slots/canvas/GPUAccelerationDisabled.js +1 -1
  173. package/dist/configurator/ui/configurator-layout/slots/canvas/WebGLNotSupported.js +1 -1
  174. package/dist/configurator/ui/configurator-layout/slots/readonly-banner/CloneToEditDialog.js +1 -1
  175. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  176. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  177. package/dist/configurator/ui/legacy/chat/MobileChat.js +1 -1
  178. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  179. package/dist/configurator/ui/legacy/layout/simple/SimpleSidebar.js +1 -1
  180. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  181. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  182. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  183. package/dist/configurator/ui/legacy/layout/steps/StepsSideBar.js +1 -1
  184. package/dist/configurator/ui/legacy/layout/tabs/TabsSidebar.js +1 -1
  185. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  186. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  187. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/use-basic-sidebar-footer.js +1 -1
  188. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  189. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  190. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -1
  191. package/dist/docs/3d-scene/cameras/custom.mdx +4 -2
  192. package/dist/docs/drag-and-drop/room-planner.mdx +1 -1
  193. package/dist/docs/index.json +1 -1
  194. package/dist/docs/phoenix/configurator-interface.mdx +1 -1
  195. package/dist/docs/phoenix/domain-model.mdx +4 -1
  196. package/dist/docs/phoenix/layout-slots.mdx +21 -0
  197. package/dist/docs/phoenix/migration-guide.mdx +3 -3
  198. package/dist/docs/phoenix/phoenix-cli.mdx +40 -7
  199. package/dist/docs/phoenix/project-structure.mdx +23 -19
  200. package/dist/docs/phoenix/sdk-builder-workflow.mdx +2 -2
  201. package/dist/docs/phoenix/webhooks.mdx +9 -1
  202. package/dist/domain/application/application-config.d.ts +6 -24
  203. package/dist/domain/application/assistant/assistant-manifest.d.ts +13 -3
  204. package/dist/domain/application/assistant/assistant-manifest.js +1 -1
  205. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +5 -9
  206. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -1
  207. package/dist/domain/application/assistant/build-assistant-lenses.js +1 -1
  208. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  209. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  210. package/dist/domain/application/assistant/index.d.ts +3 -3
  211. package/dist/domain/application/assistant/index.js +1 -1
  212. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
  213. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +2 -4
  214. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
  215. package/dist/domain/application/assistant-mutations.js +1 -1
  216. package/dist/domain/available-system-components/available-system-components.d.ts +11 -0
  217. package/dist/domain/available-system-components/available-system-components.js +1 -0
  218. package/dist/domain/available-system-components/index.d.ts +1 -0
  219. package/dist/domain/available-system-components/index.js +1 -0
  220. package/dist/domain/{domain-builder.d.ts → domain-builder/domain-builder.d.ts} +2 -2
  221. package/dist/domain/domain-builder/domain-builder.js +1 -0
  222. package/dist/domain/domain-builder/index.d.ts +1 -0
  223. package/dist/domain/domain-builder/index.js +1 -0
  224. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +6 -0
  225. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -1
  226. package/dist/domain/extensions/export-images/index.d.ts +1 -1
  227. package/dist/domain/extensions/export-images/index.js +1 -1
  228. package/dist/domain/extensions/index.d.ts +1 -1
  229. package/dist/domain/extensions/index.js +1 -1
  230. package/dist/domain/index.d.ts +3 -2
  231. package/dist/domain/index.js +1 -1
  232. package/dist/domain/spec/application/admin-pages-section.d.ts +29 -0
  233. package/dist/domain/spec/application/admin-pages.d.ts +26 -0
  234. package/dist/domain/spec/application/admin-states.d.ts +5 -0
  235. package/dist/domain/spec/application/configurator-states.d.ts +8 -0
  236. package/dist/domain/spec/application/configurator-states.js +1 -0
  237. package/dist/domain/spec/application/index.d.ts +5 -0
  238. package/dist/domain/spec/application/index.js +1 -0
  239. package/dist/domain/spec/components/bindings/index.d.ts +2 -0
  240. package/dist/domain/spec/components/bindings/index.js +1 -0
  241. package/dist/domain/spec/components/bindings/read-binding.d.ts +13 -0
  242. package/dist/domain/spec/components/bindings/read-binding.js +1 -0
  243. package/dist/domain/spec/components/bindings/write-binding.d.ts +32 -0
  244. package/dist/domain/spec/components/bindings/write-binding.js +1 -0
  245. package/dist/{application-spec/parse-application-files → domain}/spec/components/component-entry.d.ts +3 -3
  246. package/dist/domain/spec/components/component-entry.js +1 -0
  247. package/dist/{application-spec/core → domain/spec}/components/component-filter.d.ts +3 -2
  248. package/dist/domain/spec/components/component-filters.d.ts +10 -0
  249. package/dist/domain/spec/components/component-filters.js +1 -0
  250. package/dist/domain/spec/components/components.d.ts +4 -0
  251. package/dist/domain/spec/components/components.js +1 -0
  252. package/dist/domain/spec/components/index.d.ts +6 -0
  253. package/dist/domain/spec/enhanced-json/enhanced-json-value.d.ts +30 -0
  254. package/dist/domain/spec/enhanced-json/enhanced-json-value.js +1 -0
  255. package/dist/domain/spec/enhanced-json/index.d.ts +1 -0
  256. package/dist/domain/spec/enhanced-json/index.js +1 -0
  257. package/dist/{application-spec/parse-application-files → domain}/spec/expressions/expression.d.ts +9 -3
  258. package/dist/domain/spec/expressions/expression.js +1 -0
  259. package/dist/domain/spec/expressions/expressions.d.ts +27 -0
  260. package/dist/domain/spec/expressions/expressions.js +1 -0
  261. package/dist/domain/spec/expressions/index.d.ts +5 -0
  262. package/dist/domain/spec/expressions/memo-eval-plan.d.ts +70 -0
  263. package/dist/domain/spec/expressions/memo-eval-plan.js +1 -0
  264. package/dist/domain/spec/expressions/relation-expression-params.js +1 -0
  265. package/dist/domain/spec/index.d.ts +9 -0
  266. package/dist/domain/spec/index.js +1 -0
  267. package/dist/domain/spec/invariants/index.d.ts +2 -0
  268. package/dist/domain/spec/invariants/index.js +1 -0
  269. package/dist/domain/spec/invariants/invariant.d.ts +24 -0
  270. package/dist/domain/spec/invariants/invariant.js +1 -0
  271. package/dist/domain/spec/invariants/invariants.d.ts +14 -0
  272. package/dist/domain/spec/invariants/invariants.js +1 -0
  273. package/dist/domain/spec/json-schema.d.ts +52 -0
  274. package/dist/domain/spec/json-schema.js +1 -0
  275. package/dist/domain/spec/markers/index.d.ts +3 -0
  276. package/dist/domain/spec/markers/index.js +1 -0
  277. package/dist/domain/spec/markers/msg-marker.d.ts +28 -0
  278. package/dist/domain/spec/markers/msg-marker.js +1 -0
  279. package/dist/domain/spec/model/aliases.d.ts +9 -0
  280. package/dist/domain/spec/model/aliases.js +1 -0
  281. package/dist/domain/spec/model/common-types.d.ts +15 -0
  282. package/dist/domain/spec/model/common-types.js +1 -0
  283. package/dist/domain/spec/model/defaults.d.ts +33 -0
  284. package/dist/domain/spec/model/defaults.js +1 -0
  285. package/dist/domain/spec/model/entity-types.d.ts +8 -0
  286. package/dist/domain/spec/model/entity-types.js +1 -0
  287. package/dist/domain/spec/model/index.d.ts +7 -0
  288. package/dist/domain/spec/model/index.js +1 -0
  289. package/dist/domain/spec/model/model-version-key.d.ts +3 -0
  290. package/dist/domain/spec/model/model-version-key.js +1 -0
  291. package/dist/domain/spec/model/names/action-name.d.ts +7 -0
  292. package/dist/domain/spec/model/names/action-name.js +1 -0
  293. package/dist/domain/spec/model/names/alias-name.d.ts +7 -0
  294. package/dist/domain/spec/model/names/alias-name.js +1 -0
  295. package/dist/domain/spec/model/names/entity-or-alias-name.d.ts +8 -0
  296. package/dist/domain/spec/model/names/entity-or-alias-name.js +1 -0
  297. package/dist/domain/spec/model/names/entity-type-name.d.ts +8 -0
  298. package/dist/domain/spec/model/names/entity-type-name.js +1 -0
  299. package/dist/domain/spec/model/names/expression-name.d.ts +6 -0
  300. package/dist/domain/spec/model/names/expression-name.js +1 -0
  301. package/dist/domain/spec/model/names/index.d.ts +9 -0
  302. package/dist/domain/spec/model/names/index.js +1 -0
  303. package/dist/domain/spec/model/names/instance-name.d.ts +7 -0
  304. package/dist/domain/spec/model/names/instance-name.js +1 -0
  305. package/dist/domain/spec/model/names/invariant-name.d.ts +3 -0
  306. package/dist/domain/spec/model/names/invariant-name.js +1 -0
  307. package/dist/domain/spec/model/names/shape-property-name.d.ts +11 -0
  308. package/dist/domain/spec/model/names/shape-property-name.js +1 -0
  309. package/dist/domain/spec/model/names/violation-type-name.d.ts +3 -0
  310. package/dist/domain/spec/model/names/violation-type-name.js +1 -0
  311. package/dist/domain/spec/model/presets.d.ts +30 -0
  312. package/dist/domain/spec/model/presets.js +1 -0
  313. package/dist/domain/spec/sections/actions.d.ts +23 -0
  314. package/dist/domain/spec/sections/actions.js +1 -0
  315. package/dist/domain/spec/sections/app-metadata.d.ts +18 -0
  316. package/dist/domain/spec/sections/app-metadata.js +1 -0
  317. package/dist/domain/spec/sections/application-version.d.ts +7 -0
  318. package/dist/domain/spec/sections/application-version.js +1 -0
  319. package/dist/domain/spec/sections/data-spec/chunks.d.ts +23 -0
  320. package/dist/domain/spec/sections/data-spec/chunks.js +1 -0
  321. package/dist/domain/spec/sections/data-spec/custom-data-spec-entry.d.ts +16 -0
  322. package/dist/domain/spec/sections/data-spec/custom-data-spec-entry.js +1 -0
  323. package/dist/domain/spec/sections/data-spec/data-entry-key.d.ts +9 -0
  324. package/dist/domain/spec/sections/data-spec/data-entry-key.js +1 -0
  325. package/dist/domain/spec/sections/data-spec/index.d.ts +5 -0
  326. package/dist/domain/spec/sections/data-spec/index.js +1 -0
  327. package/dist/domain/spec/sections/data-spec/parsed-data-spec-entries.d.ts +10 -0
  328. package/dist/domain/spec/sections/data-spec/parsed-data-spec-entries.js +1 -0
  329. package/dist/domain/spec/sections/data-spec/swatch-data-spec-entry.d.ts +14 -0
  330. package/dist/domain/spec/sections/data-spec/swatch-data-spec-entry.js +1 -0
  331. package/dist/domain/spec/sections/index.d.ts +9 -0
  332. package/dist/domain/spec/sections/index.js +1 -0
  333. package/dist/domain/spec/sections/infra/acl.d.ts +12 -0
  334. package/dist/domain/spec/sections/infra/acl.js +1 -0
  335. package/dist/domain/spec/sections/infra/index.d.ts +3 -0
  336. package/dist/domain/spec/sections/infra/index.js +1 -0
  337. package/dist/domain/spec/sections/infra/resource-entry.d.ts +46 -0
  338. package/dist/domain/spec/sections/infra/resource-entry.js +1 -0
  339. package/dist/domain/spec/sections/infra/resources-config.d.ts +10 -0
  340. package/dist/domain/spec/sections/infra/resources-config.js +1 -0
  341. package/dist/domain/spec/sections/state-value.d.ts +7 -0
  342. package/dist/domain/spec/sections/state-value.js +1 -0
  343. package/dist/domain/spec/sections/theme.d.ts +10 -0
  344. package/dist/domain/spec/sections/theme.js +1 -0
  345. package/dist/domain/spec/sections/transformers.d.ts +15 -0
  346. package/dist/domain/spec/sections/transformers.js +1 -0
  347. package/dist/domain/spec/sections/ui.d.ts +12 -0
  348. package/dist/domain/spec/sections/ui.js +1 -0
  349. package/dist/domain/system-definitions.js +1 -1
  350. package/dist/domain/utils/index.d.ts +2 -0
  351. package/dist/domain/utils/index.js +1 -0
  352. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  353. package/dist/i18n/locales/cs/messages.js +1 -1
  354. package/dist/i18n/locales/da/messages.js +1 -1
  355. package/dist/i18n/locales/de/messages.js +1 -1
  356. package/dist/i18n/locales/de-AT/messages.js +1 -1
  357. package/dist/i18n/locales/en/messages.js +1 -1
  358. package/dist/i18n/locales/en-AU/messages.js +1 -1
  359. package/dist/i18n/locales/en-GB/messages.js +1 -1
  360. package/dist/i18n/locales/es/messages.js +1 -1
  361. package/dist/i18n/locales/fr/messages.js +1 -1
  362. package/dist/i18n/locales/hu/messages.js +1 -1
  363. package/dist/i18n/locales/it/messages.js +1 -1
  364. package/dist/i18n/locales/nl/messages.js +1 -1
  365. package/dist/i18n/locales/pl/messages.js +1 -1
  366. package/dist/i18n/locales/pt/messages.js +1 -1
  367. package/dist/i18n/locales/ro/messages.js +1 -1
  368. package/dist/i18n/locales/sk/messages.js +1 -1
  369. package/dist/i18n/locales/tr/messages.js +1 -1
  370. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +2 -2
  371. package/dist/legacy/phoenix-cli/services/webhook-service/transport.js +1 -1
  372. package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.d.ts +1 -0
  373. package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.js +1 -1
  374. package/dist/legacy/webhook-cli/lambda-local/index.js +1 -1
  375. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +1 -0
  376. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  377. package/dist/phoenix/application-spec/generate-project-files.d.ts +1 -0
  378. package/dist/phoenix/application-spec/index.d.ts +1 -0
  379. package/dist/phoenix/application-spec/index.js +1 -1
  380. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +11 -0
  381. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  382. package/dist/phoenix/bin.js +1 -1
  383. package/dist/phoenix/cli.js +1 -1
  384. package/dist/phoenix/commands/activate-deployment.js +1 -1
  385. package/dist/phoenix/commands/build.js +1 -1
  386. package/dist/phoenix/commands/changelog.js +1 -1
  387. package/dist/phoenix/commands/check.js +1 -1
  388. package/dist/phoenix/commands/clean.js +1 -1
  389. package/dist/phoenix/commands/cleanup-environment.js +2 -2
  390. package/dist/phoenix/commands/create-environment.js +1 -1
  391. package/dist/phoenix/commands/data.js +1 -1
  392. package/dist/phoenix/commands/deploy.js +1 -1
  393. package/dist/phoenix/commands/deployment-build-envs-command.js +1 -1
  394. package/dist/phoenix/commands/dev.js +4 -5
  395. package/dist/phoenix/commands/docs.js +1 -1
  396. package/dist/phoenix/commands/finish-deployment-command.js +1 -1
  397. package/dist/phoenix/commands/fix.js +1 -1
  398. package/dist/phoenix/commands/index.d.ts +1 -1
  399. package/dist/phoenix/commands/index.js +1 -1
  400. package/dist/phoenix/commands/inspect-assets.js +1 -1
  401. package/dist/phoenix/commands/list-environments.js +1 -1
  402. package/dist/phoenix/commands/login.d.ts +4 -1
  403. package/dist/phoenix/commands/login.js +2 -2
  404. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  405. package/dist/phoenix/commands/register-deployment.js +1 -1
  406. package/dist/phoenix/commands/scene.js +1 -1
  407. package/dist/phoenix/commands/screenshot.js +1 -1
  408. package/dist/phoenix/commands/state.js +1 -1
  409. package/dist/phoenix/commands/story-build.js +3 -3
  410. package/dist/phoenix/commands/story-create.js +1 -1
  411. package/dist/phoenix/commands/story-dev.js +2 -2
  412. package/dist/phoenix/commands/sync.js +1 -1
  413. package/dist/phoenix/commands/variants.js +1 -1
  414. package/dist/phoenix/editor-server/commands-router.js +1 -1
  415. package/dist/phoenix/editor-server/editor-server.d.ts +2 -13
  416. package/dist/phoenix/editor-server/editor-server.js +1 -1
  417. package/dist/phoenix/editor-server/spec-router.js +1 -1
  418. package/dist/phoenix/editor-server/trpc.d.ts +2 -12
  419. package/dist/phoenix/lingui/index.d.ts +1 -0
  420. package/dist/phoenix/lingui/index.js +1 -0
  421. package/dist/phoenix/lingui/lingui.d.ts +18 -0
  422. package/dist/phoenix/lingui/lingui.js +1 -0
  423. package/dist/phoenix/services/application-spec-project-watcher.d.ts +11 -6
  424. package/dist/phoenix/services/application-spec-project-watcher.js +2 -2
  425. package/dist/phoenix/services/cli-credentials.d.ts +3 -0
  426. package/dist/phoenix/services/cli-credentials.js +1 -1
  427. package/dist/phoenix/services/cli-exit.d.ts +5 -0
  428. package/dist/phoenix/services/cli-exit.js +1 -0
  429. package/dist/phoenix/services/deployment/deployment-preparation-service.d.ts +28 -0
  430. package/dist/phoenix/services/deployment/deployment-preparation-service.js +1 -0
  431. package/dist/phoenix/{commands → services/deployment}/generated-env-markers.d.ts +1 -0
  432. package/dist/phoenix/services/deployment/generated-env-markers.js +1 -0
  433. package/dist/phoenix/services/deployment/index.d.ts +2 -0
  434. package/dist/phoenix/services/deployment/index.js +1 -0
  435. package/dist/phoenix/services/index.d.ts +5 -1
  436. package/dist/phoenix/services/index.js +1 -1
  437. package/dist/phoenix/services/lingui-watcher.js +1 -1
  438. package/dist/phoenix/services/phoenix-store.d.ts +3 -0
  439. package/dist/phoenix/services/phoenix-store.js +1 -1
  440. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  441. package/dist/phoenix/services/session/editor-server-handle.d.ts +5 -0
  442. package/dist/phoenix/services/session/editor-server-handle.js +1 -0
  443. package/dist/phoenix/services/session/index.d.ts +2 -0
  444. package/dist/phoenix/services/session/index.js +1 -0
  445. package/dist/phoenix/services/session/phoenix-application.d.ts +82 -0
  446. package/dist/phoenix/services/session/phoenix-application.js +2 -0
  447. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.d.ts +9 -0
  448. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.js +1 -0
  449. package/dist/phoenix/services/telemetry/index.d.ts +3 -0
  450. package/dist/phoenix/services/telemetry/index.js +1 -0
  451. package/dist/phoenix/services/telemetry/telemetry-client.d.ts +25 -0
  452. package/dist/phoenix/services/telemetry/telemetry-client.js +1 -0
  453. package/dist/phoenix/services/telemetry/telemetry-command.d.ts +2 -0
  454. package/dist/phoenix/services/telemetry/telemetry-command.js +1 -0
  455. package/dist/phoenix/services/telemetry/telemetry-event.d.ts +44 -0
  456. package/dist/phoenix/services/telemetry/telemetry-event.js +1 -0
  457. package/dist/phoenix/services/telemetry/telemetry-state.d.ts +25 -0
  458. package/dist/phoenix/services/telemetry/telemetry-state.js +2 -0
  459. package/dist/phoenix/services/vite-config.js +1 -1
  460. package/dist/phoenix/services/webhook-service/transport.js +1 -1
  461. package/dist/phoenix/services/webhook-service/tunnel.d.ts +1 -0
  462. package/dist/phoenix/services/webhook-service/tunnel.js +1 -1
  463. package/dist/react-sdk/application-runtime/domain-application-context/chat-system.d.ts +1 -1
  464. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/ConfiguratorRoutingProvider.d.ts +1 -1
  465. package/dist/react-sdk/configurator-routing/ConfiguratorRoutingProvider.js +1 -0
  466. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/OnGoToIndexHandler.d.ts +1 -2
  467. package/dist/react-sdk/configurator-routing/OnGoToIndexHandler.js +1 -0
  468. package/dist/react-sdk/configurator-routing/index.d.ts +3 -0
  469. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/index.js +1 -1
  470. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/use-power-routing-lifecycle.d.ts +2 -0
  471. package/dist/react-sdk/configurator-routing/use-power-routing-lifecycle.js +1 -0
  472. package/dist/react-sdk/domain-application-context/BackendDataProvider.js +1 -1
  473. package/dist/react-sdk/domain-application-context/ConfigurationPersistSystemFailureHandler.js +1 -1
  474. package/dist/react-sdk/domain-application-context/FrontendDataProvider.js +1 -1
  475. package/dist/react-sdk/domain-application-context/OnPresetLoadedHandler.js +1 -0
  476. package/dist/react-sdk/domain-application-context/PublishedDataProvider.js +1 -1
  477. package/dist/react-sdk/domain-application-context/chat-hooks.d.ts +4 -0
  478. package/dist/react-sdk/domain-application-context/chat-hooks.js +1 -0
  479. package/dist/react-sdk/domain-application-context/index.d.ts +2 -0
  480. package/dist/react-sdk/domain-application-context/index.js +1 -1
  481. package/dist/react-sdk/elements/PhoenixEntityElement.js +1 -1
  482. package/dist/react-sdk/elements/PhoenixLayoutElement.js +1 -1
  483. package/dist/react-sdk/index.d.ts +5 -0
  484. package/dist/react-sdk/index.js +1 -1
  485. package/dist/react-sdk/integration/IntegrationSubscription.js +1 -0
  486. package/dist/react-sdk/integration/index.d.ts +1 -0
  487. package/dist/react-sdk/integration/index.js +1 -0
  488. package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.d.ts +8 -0
  489. package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.js +1 -0
  490. package/dist/react-sdk/lifecycle-providers/LifecycleProviders.js +1 -0
  491. package/dist/react-sdk/lifecycle-providers/index.d.ts +2 -0
  492. package/dist/react-sdk/lifecycle-providers/index.js +1 -0
  493. package/dist/react-sdk/notifications/index.d.ts +1 -0
  494. package/dist/react-sdk/notifications/index.js +1 -0
  495. package/dist/react-sdk/notifications/snackbar-action-button.d.ts +30 -0
  496. package/dist/react-sdk/notifications/snackbar-action-button.js +1 -0
  497. package/dist/react-sdk/preset-selection/PresetSelectionProvider.js +1 -0
  498. package/dist/react-sdk/preset-selection/index.d.ts +1 -0
  499. package/dist/react-sdk/preset-selection/index.js +1 -0
  500. package/dist/react-sdk/session/SessionServiceProvider.d.ts +5 -0
  501. package/dist/react-sdk/session/SessionServiceProvider.js +1 -1
  502. package/dist/ui-sdk/components/snackbar/Snackbar.d.ts +24 -3
  503. package/dist/ui-sdk/components/snackbar/Snackbar.js +1 -1
  504. package/dist/ui-sdk/icons/__generated/Paperclip.d.ts +3 -0
  505. package/dist/ui-sdk/icons/__generated/Paperclip.js +1 -0
  506. package/dist/ui-sdk/icons/__generated/index.d.ts +2 -0
  507. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  508. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  509. package/dist/ui-sdk/theme/types.d.ts +1 -1
  510. package/dist/watch/glob-matcher.d.ts +4 -4
  511. package/dist/watch/glob-matcher.js +1 -1
  512. package/dist/watch/watch.d.ts +4 -4
  513. package/dist/watch/watch.js +1 -1
  514. package/package.json +3 -3
  515. package/schema/domain-spec.json +22 -4
  516. package/dist/application-spec/core/components/index.d.ts +0 -2
  517. package/dist/application-spec/core/expressions/index.d.ts +0 -2
  518. package/dist/configurator/configurator-context/ConfiguratorDataProvider.d.ts +0 -2
  519. package/dist/configurator/configurator-context/ConfiguratorDataProvider.js +0 -1
  520. package/dist/configurator/configurator-context/IntegrationSubscription.js +0 -1
  521. package/dist/configurator/configurator-context/LifecycleProviders.js +0 -1
  522. package/dist/configurator/configurator-context/OnPresetLoadedHandler.js +0 -1
  523. package/dist/configurator/configurator-context/PresetSelectionProvider.js +0 -1
  524. package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.d.ts +0 -1
  525. package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.js +0 -1
  526. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +0 -1
  527. package/dist/configurator/configurator-context/configurator-routing/OnGoToIndexHandler.js +0 -1
  528. package/dist/configurator/configurator-context/configurator-routing/index.d.ts +0 -2
  529. package/dist/configurator/configurator-context/configurator-routing/use-power-routing-lifecycle.js +0 -1
  530. package/dist/domain/available-system-components.d.ts +0 -11
  531. package/dist/domain/available-system-components.js +0 -1
  532. package/dist/domain/domain-builder.js +0 -1
  533. package/dist/phoenix/commands/generated-env-markers.js +0 -1
  534. package/dist/phoenix/services/lingui.d.ts +0 -15
  535. package/dist/phoenix/services/lingui.js +0 -1
  536. package/dist/phoenix/services/phoenix-application.d.ts +0 -21
  537. package/dist/phoenix/services/phoenix-application.js +0 -1
  538. /package/dist/{application-spec/core/expressions/relation-expression-params.js → domain/spec/application/admin-pages-section.js} +0 -0
  539. /package/dist/{application-spec/parse-application-files/spec/components/component-entry.js → domain/spec/application/admin-pages.js} +0 -0
  540. /package/dist/{application-spec/parse-application-files/spec/expressions/expression.js → domain/spec/application/admin-states.js} +0 -0
  541. /package/dist/{application-spec/core → domain/spec/application}/application-instance.d.ts +0 -0
  542. /package/dist/{application-spec/core → domain/spec/application}/application-instance.js +0 -0
  543. /package/dist/{application-spec/core → domain/spec}/components/component-filter.js +0 -0
  544. /package/dist/{application-spec/core → domain/spec}/components/index.js +0 -0
  545. /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.d.ts +0 -0
  546. /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.js +0 -0
  547. /package/dist/{application-spec/core → domain/spec}/expressions/index.js +0 -0
  548. /package/dist/{application-spec/core → domain/spec}/expressions/relation-expression-params.d.ts +0 -0
  549. /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.d.ts +0 -0
  550. /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.js +0 -0
  551. /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.d.ts +0 -0
  552. /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.js +0 -0
  553. /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.d.ts +0 -0
  554. /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.js +0 -0
  555. /package/dist/{configurator/configurator-context → react-sdk/domain-application-context}/OnPresetLoadedHandler.d.ts +0 -0
  556. /package/dist/{configurator/configurator-context → react-sdk/integration}/IntegrationSubscription.d.ts +0 -0
  557. /package/dist/{configurator/configurator-context → react-sdk/lifecycle-providers}/LifecycleProviders.d.ts +0 -0
  558. /package/dist/{configurator/configurator-context → react-sdk/preset-selection}/PresetSelectionProvider.d.ts +0 -0
@@ -1 +1 @@
1
- import{jsx as a}from"react/jsx-runtime";import{useQuery as e}from"@tanstack/react-query";import{useCallback as r}from"react";import{Loader as t}from"#package/ui-sdk";import{BackendDataValueProvider as n,useProvidedFrontendData as o}from"../application-runtime/hooks/data/index.js";import{useApplicationRuntime as i,useApplicationRuntimeSelector as d,useAuthenticatedClient as c,useConfiguratorDomainFactory as s,useDomainDataActions as l,useFrontendData as k,useIsLoaderHosted as u,useLogger as m}from"../application-runtime/index.js";import{BuiltInLoadingPhase as f,useLoadingPhase as h}from"../loading-state/index.js";let D=e=>a(n,{backendData:d(i().selectors.domainData.getConfiguratorBackendData),children:e.children}),p=n=>{let i=m(),d=s(),p=l(),y=c(),v=k(),{frontendDataLoadKey:w}=o();if(!d)throw Error("DomainFactory is not available in the runtime registry. Ensure replaceDomainRuntime() is called with domainFactory before rendering BackendDataProvider.");if(void 0===w)throw Error("Frontend data load key not found! Render BackendDataProvider inside FrontendDataProvider so data reloads together.");let B=r(async a=>{try{return{success:!0,data:await y.getBackendData(a)}}catch(e){let a=e instanceof Error?e:Error(`Unknown error ${e}`);return i.warn("Failed to fetch backend data:",{},a),{success:!1}}},[y,i]),b=r(async(a,e)=>{if(!d.hasBackendData)return void p.setBackendData(void 0);let r=await B(a);if(e.throwIfAborted(),!r.success)return void p.setBackendData(void 0);try{let a=d.parseBackendData(r.data);return p.setBackendData(a),a}catch(e){let a=e instanceof Error?e:Error(`Unknown error ${e}`);i.error("Failed to parse backend data:",{backendData:r},a),p.setBackendData(void 0);return}},[d,B,i,p]),{data:g,error:F,isFetching:E}=e({queryKey:["get-backend-data",w],queryFn:async({signal:a})=>({backendData:await b(v,a)}),refetchOnMount:"always",refetchOnWindowFocus:!1,refetchOnReconnect:!1}),x=u();if(h({id:f.BackendData,label:"Loading backend data…"},(void 0===g||E)&&!F),F)throw F;return void 0===g||E?x?null:a(t,{}):a(D,{children:n.children},w)};export const BackendDataProvider=e=>a(p,{...e});
1
+ import{jsx as a}from"react/jsx-runtime";import{useQuery as e}from"@tanstack/react-query";import{useCallback as r}from"react";import{BackendDataValueProvider as t,useProvidedFrontendData as n}from"../application-runtime/hooks/data/index.js";import{useApplicationRuntime as o,useApplicationRuntimeSelector as d,useAuthenticatedClient as i,useConfiguratorDomainFactory as c,useDomainDataActions as s,useFrontendData as l,useLogger as u}from"../application-runtime/index.js";import{BuiltInLoadingPhase as k,useLoadingPhase as f}from"../loading-state/index.js";let m=e=>a(t,{backendData:d(o().selectors.domainData.getConfiguratorBackendData),children:e.children}),h=t=>{let o=u(),d=c(),h=s(),D=i(),p=l(),{frontendDataLoadKey:y}=n();if(!d)throw Error("DomainFactory is not available in the runtime registry. Ensure replaceDomainRuntime() is called with domainFactory before rendering BackendDataProvider.");if(void 0===y)throw Error("Frontend data load key not found! Render BackendDataProvider inside FrontendDataProvider so data reloads together.");let v=r(async a=>{try{return{success:!0,data:await D.getBackendData(a)}}catch(e){let a=e instanceof Error?e:Error(`Unknown error ${e}`);return o.warn("Failed to fetch backend data:",{},a),{success:!1}}},[D,o]),w=r(async(a,e)=>{if(!d.hasBackendData)return void h.setBackendData(void 0);let r=await v(a);if(e.throwIfAborted(),!r.success)return void h.setBackendData(void 0);try{let a=d.parseBackendData(r.data);return h.setBackendData(a),a}catch(e){let a=e instanceof Error?e:Error(`Unknown error ${e}`);o.error("Failed to parse backend data:",{backendData:r},a),h.setBackendData(void 0);return}},[d,v,o,h]),{data:B,error:b,isFetching:g}=e({queryKey:["get-backend-data",y],queryFn:async({signal:a})=>({backendData:await w(p,a)}),refetchOnMount:"always",refetchOnWindowFocus:!1,refetchOnReconnect:!1});if(f({id:k.BackendData,label:"Loading backend data…"},(void 0===B||g)&&!b),b)throw b;return void 0===B||g?null:a(m,{children:t.children},y)};export const BackendDataProvider=e=>a(h,{...e});
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import{Trans as i}from"@lingui/react";import{Button as e}from"@mui/material";import{useSnackbar as t}from"notistack";import{useCallback as s,useEffect as o,useMemo as n}from"react";import{pairwise as a,startWith as m}from"rxjs";import{P as l,match as p}from"ts-pattern";import{useDomainApplication as u}from"../application-runtime/index.js";import{usePatientObservableValue as c}from"../domain-context/index.js";let d="phx-configuration-persist-system-failure";export const ConfigurationPersistSystemFailureHandler=f=>((f=>{let{disabled:g=!1}=f,{configurationPersistSystem:x}=u(),{enqueueSnackbar:h,closeSnackbar:y}=t(),k=c(n(()=>x.failure$.pipe(a(),m([null,null])),[x.failure$]),[null,null],!g),j=s((t,s)=>{p([t,s]).with([null,null],()=>{}).with([l._,{error:l._}],()=>{h(r(i,{id:"sdk.persist.system.error.message",message:"An error occured when trying to update a configuration"}),{variant:"error",key:d,persist:!0,preventDuplicate:!0,action:t=>r(e,{color:"inherit",size:"small",onClick:()=>{y(t)},children:r(i,{id:"sdk.persist.system.error.dismiss",message:"Dismiss"})})})}).with([{error:l._},null],()=>{y(d),h(r(i,{id:"sdk.persist.system.error.recovered",message:"Configuration updated"}),{variant:"info"})}).exhaustive()},[h,y]),v=s(()=>{y(d)},[y]);o(()=>{g?v():j(k[0],k[1])},[g,k,j,v])})(f),null);
1
+ import{jsx as r}from"react/jsx-runtime";import{Trans as e}from"@lingui/react";import{useSnackbar as i}from"notistack";import{useCallback as t,useEffect as s,useMemo as o}from"react";import{pairwise as n,startWith as a}from"rxjs";import{P as m,match as l}from"ts-pattern";import{useDomainApplication as u}from"../application-runtime/index.js";import{usePatientObservableValue as p}from"../domain-context/index.js";let d="phx-configuration-persist-system-failure";export const ConfigurationPersistSystemFailureHandler=f=>((f=>{let{disabled:c=!1}=f,{configurationPersistSystem:g}=u(),{enqueueSnackbar:x,closeSnackbar:y}=i(),h=p(o(()=>g.failure$.pipe(n(),a([null,null])),[g.failure$]),[null,null],!c),k=t((i,t)=>{l([i,t]).with([null,null],()=>{}).with([m._,{error:m._}],()=>{x(r(e,{id:"sdk.persist.system.error.message",message:"An error occured when trying to update a configuration"}),{variant:"error",key:d,persist:!0,preventDuplicate:!0,actionButton:{label:r(e,{id:"sdk.persist.system.error.dismiss",message:"Dismiss"}),onClick:r=>{y(r)}}})}).with([{error:m._},null],()=>{y(d),x(r(e,{id:"sdk.persist.system.error.recovered",message:"Configuration updated"}),{variant:"info"})}).exhaustive()},[x,y]),j=t(()=>{y(d)},[y]);s(()=>{c?j():k(h[0],h[1])},[c,h,k,j])})(f),null);
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{useQuery as e}from"@tanstack/react-query";import{useCallback as r}from"react";import{Loader as a}from"#package/ui-sdk";import{FrontendDataValueProvider as n,useProvidedPublishedData as o}from"../application-runtime/hooks/data/index.js";import{useApplicationRuntime as d,useApplicationRuntimeSelector as i,useConfiguratorDomainFactory as s,useDomainDataActions as c,useIsLoaderHosted as l,useLogger as u,usePublishedData as f,useSession as m,useWebComponentApi as h}from"../application-runtime/index.js";import{BuiltInLoadingPhase as D,useLoadingPhase as y}from"../loading-state/index.js";import{CollectFrontendDataHandlerBoundary as p,useCollectFrontendDataHandler as F}from"./CollectFrontendDataHandler.js";let w=e=>t(n,{frontendData:i(d().selectors.domainData.getConfiguratorFrontendData),frontendDataLoadKey:e.frontendDataLoadKey,children:e.children}),g=n=>{let d=u(),i=s(),p=c(),g=m(),v=f(),{publishedDataLoadKey:P}=o(),{getPropertyValue:b}=h(),k=F();if(!i)throw Error("DomainFactory is not available in the runtime registry. Ensure replaceDomainRuntime() is called with domainFactory before rendering FrontendDataProvider.");if(void 0===P)throw Error("Published data load key not found! Render FrontendDataProvider inside PublishedDataProvider so data reloads together.");let E=r(async t=>{if(null==k)return{success:!1};try{return{success:!0,data:await k({sessionData:g.sessionPayload?.data??{},publishedData:t,getWebComponentPropertyValue:b})}}catch(e){let t=e instanceof Error?e:Error(`Unknown error ${e}`);return d.warn("Failed to collect frontend data, the collectFrontendData function threw an error, have you provided collectFrontendData function? Does it return data matching the frontendData spec defined in your domain?",{},t),{success:!1}}},[k,b,d,g.sessionPayload?.data]),j=r(async(t,e)=>{let r=await E(t);if(e.throwIfAborted(),!r.success)return p.setFrontendData({}),{};try{let t=i.parseFrontendData(r.data);return d.debug("Collected frontend data:",t),p.setFrontendData(t),t}catch(e){let t=e instanceof Error?e:Error(`Unknown error ${e}`);return d.error("Failed to parse frontend data:",{frontendData:r},t),p.setFrontendData({}),{}}},[i,E,d,p]),{data:x,error:K,isFetching:L}=e({queryKey:["get-frontend-data",P],queryFn:async({signal:t})=>j(v,t),refetchOnMount:"always",refetchOnWindowFocus:!1,refetchOnReconnect:!1}),q=l();if(y({id:D.FrontendData,label:"Loading frontend data…"},(void 0===x||L)&&!K),K)throw K;return void 0===x||L?q?null:t(a,{}):t(w,{frontendDataLoadKey:P,children:n.children},P)};export const FrontendDataProvider=e=>t(p,{children:t(g,{...e})});
1
+ import{jsx as t}from"react/jsx-runtime";import{useQuery as e}from"@tanstack/react-query";import{useCallback as r}from"react";import{FrontendDataValueProvider as a,useProvidedPublishedData as n}from"../application-runtime/hooks/data/index.js";import{useApplicationRuntime as o,useApplicationRuntimeSelector as d,useConfiguratorDomainFactory as i,useDomainDataActions as s,useLogger as c,usePublishedData as l,useSession as u,useWebComponentApi as f}from"../application-runtime/index.js";import{BuiltInLoadingPhase as h,useLoadingPhase as m}from"../loading-state/index.js";import{CollectFrontendDataHandlerBoundary as D,useCollectFrontendDataHandler as y}from"./CollectFrontendDataHandler.js";let p=e=>t(a,{frontendData:d(o().selectors.domainData.getConfiguratorFrontendData),frontendDataLoadKey:e.frontendDataLoadKey,children:e.children}),F=a=>{let o=c(),d=i(),D=s(),F=u(),w=l(),{publishedDataLoadKey:g}=n(),{getPropertyValue:v}=f(),P=y();if(!d)throw Error("DomainFactory is not available in the runtime registry. Ensure replaceDomainRuntime() is called with domainFactory before rendering FrontendDataProvider.");if(void 0===g)throw Error("Published data load key not found! Render FrontendDataProvider inside PublishedDataProvider so data reloads together.");let b=r(async t=>{if(null==P)return{success:!1};try{return{success:!0,data:await P({sessionData:F.sessionPayload?.data??{},publishedData:t,getWebComponentPropertyValue:v})}}catch(e){let t=e instanceof Error?e:Error(`Unknown error ${e}`);return o.warn("Failed to collect frontend data, the collectFrontendData function threw an error, have you provided collectFrontendData function? Does it return data matching the frontendData spec defined in your domain?",{},t),{success:!1}}},[P,v,o,F.sessionPayload?.data]),E=r(async(t,e)=>{let r=await b(t);if(e.throwIfAborted(),!r.success)return D.setFrontendData({}),{};try{let t=d.parseFrontendData(r.data);return o.debug("Collected frontend data:",t),D.setFrontendData(t),t}catch(e){let t=e instanceof Error?e:Error(`Unknown error ${e}`);return o.error("Failed to parse frontend data:",{frontendData:r},t),D.setFrontendData({}),{}}},[d,b,o,D]),{data:j,error:x,isFetching:k}=e({queryKey:["get-frontend-data",g],queryFn:async({signal:t})=>E(w,t),refetchOnMount:"always",refetchOnWindowFocus:!1,refetchOnReconnect:!1});if(m({id:h.FrontendData,label:"Loading frontend data…"},(void 0===j||k)&&!x),x)throw x;return void 0===j||k?null:t(p,{frontendDataLoadKey:g,children:a.children},g)};export const FrontendDataProvider=e=>t(D,{children:t(F,{...e})});
@@ -0,0 +1 @@
1
+ import{createSystemPhoenixAsyncHandler as e}from"#package/domain";import{useSystemPhoenixAsyncHandler as r}from"../handlers/index.js";let d="OnPresetLoadedHandler";export const createOnPresetLoadedHandler=r=>e(d,r);export const useOnPresetLoadedHandler=()=>r(d)?.handler;
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{useQuery as t}from"@tanstack/react-query";import r from"lodash-es/uniq.js";import{useCallback as a,useMemo as i}from"react";import{SYSTEM_CHUNK_KEY as s}from"#package/domain";import{Loader as n}from"#package/ui-sdk";import{PublishedDataValueProvider as o}from"../application-runtime/hooks/data/index.js";import{useApplicationRuntime as l,useApplicationRuntimeSelector as d,useAuthenticatedClient as u,useConfiguratorDomainFactory as h,useDomainDataActions as c,useIsLoaderHosted as p,useLogger as m,usePersistenceConfig as f,useSession as b,useSpecChunks as y,useSpecInitialPublishedData as k,useSpecPublishedDataHash as g}from"../application-runtime/index.js";import{BuiltInLoadingPhase as P,useLoadingPhase as w}from"../loading-state/index.js";import{FilterPublishedChunksHandlerBoundary as D,useFilterPublishedChunksHandler as v}from"./FilterPublishedChunksHandler.js";export const getAccessibleChunkKeys=(e,t)=>{let r=new Set((t??[]).map(String));return Object.keys(e).filter(t=>{if(t===s)return!0;let a=e[t];return null!=a&&r.has(a.scope)})};export const resolveChunkKeysToFetch=e=>{let{chunksSpec:t,chunkScopes:a,filteredChunkKeys:i}=e,n=i??getAccessibleChunkKeys(t,a);if(null!=i){let e=i.filter(e=>e!==s&&null==t[e]);if(e.length>0)throw Error(`createFilterPublishedChunksHandler returned unknown chunk keys: ${e.join(", ")}.`)}return r([...n,s].map(String))};let j=t=>e(o,{publishedData:d(l().selectors.domainData.getConfiguratorPublishedData),publishedDataLoadKey:t.publishedDataLoadKey,children:t.children}),F=r=>{let s=b(),o=m(),l=f(),d=y(),D=g(),F=k(),C=u(),E=h(),x=c();if(!E)throw Error("DomainFactory is not available in the runtime registry. Ensure replaceDomainRuntime() is called with domainFactory before rendering PublishedDataProvider.");let S=v(),K=s.sessionPayload?.chunkScopes,O=i(()=>{if(null==d||0===Object.keys(d).length)return;if(null==D)throw Error("publishedDataHash is required when chunks are defined. Use withPublishedDataHash() in ConfiguratorBuilder.");let e=S?.();return resolveChunkKeysToFetch({chunksSpec:d,chunkScopes:K,filteredChunkKeys:e})},[d,K,S,D]),A=i(()=>JSON.stringify(O??null),[O]),R=i(()=>JSON.stringify(F),[F]),q=a(async e=>{let t=await Promise.all(e.map(async e=>{try{let t=await C.getPublishedChunk(e,D);if(null==t){let t=F[e];if(t&&"object"==typeof t)return{key:e,data:t};return{key:e,data:{}}}return{key:e,data:t}}catch(t){return o.error("Failed to fetch published chunk",{key:e},t instanceof Error?t:Error(String(t))),{key:e,data:{}}}})),r={};for(let e of t)r[e.key]=e.data;return{success:!0,data:r}},[C,o,F,D]),H=a(async()=>{if("memory"===l.type||"local-storage"===l.type)return{success:!0,data:F};if(null!=O)return 0===O.length?{success:!0,data:{}}:q(O);let e=s.sessionPayload?.publishedAdminRevisionPath;if(null==e)return{success:!1};try{let t=await fetch(e);return{success:!0,data:await t.json()}}catch(r){let t=r instanceof Error?r:Error(`Unknown error ${r}`);return o.warn("Failed to fetch published data, the published data endpoint returned an error, have you published data from the admin? Check if the published data is accessible.",{path:e},t),{success:!1}}},[o,l,F,s.sessionPayload?.publishedAdminRevisionPath,O,q]),L=a(async e=>{let t=await H();if(e.throwIfAborted(),!t.success)return x.setPublishedData(F),F;try{let e=E.parsePublishedData(t.data);return o.debug("Fetched published admin revision data:",e),x.setPublishedData(e),e}catch(r){let e=r instanceof Error?r:Error(`Unknown error ${r}`);return o.error("Failed to parse published data, the data structure does not match the expected schema, does the published data match the publishedData schema defined in your domain?",{json:t},e),x.setPublishedData(F),F}},[o,E,H,F,x]),J=i(()=>["get-published-admin-data",s.sessionPayload?.publishedAdminRevisionPath,A,D,R],[A,R,D,s.sessionPayload?.publishedAdminRevisionPath]),N=i(()=>JSON.stringify(J),[J]),{data:U,error:$,isFetching:T}=t({queryKey:J,queryFn:({signal:e})=>L(e),refetchOnMount:"always",refetchOnWindowFocus:!1,refetchOnReconnect:!1}),B=p();if(w({id:P.PublishedData,label:"Loading published data…"},(void 0===U||T)&&!$),$)throw $;return void 0===U||T?B?null:e(n,{}):e(j,{publishedDataLoadKey:N,children:r.children},N)};export const PublishedDataProvider=t=>e(D,{children:e(F,{...t})});
1
+ import{jsx as e}from"react/jsx-runtime";import{useQuery as t}from"@tanstack/react-query";import r from"lodash-es/uniq.js";import{useCallback as a,useMemo as i}from"react";import{SYSTEM_CHUNK_KEY as n}from"#package/domain";import{PublishedDataValueProvider as s}from"../application-runtime/hooks/data/index.js";import{useApplicationRuntime as o,useApplicationRuntimeSelector as l,useAuthenticatedClient as d,useConfiguratorDomainFactory as u,useDomainDataActions as h,useLogger as c,usePersistenceConfig as p,useSession as f,useSpecChunks as m,useSpecInitialPublishedData as b,useSpecPublishedDataHash as y}from"../application-runtime/index.js";import{BuiltInLoadingPhase as P,useLoadingPhase as g}from"../loading-state/index.js";import{FilterPublishedChunksHandlerBoundary as k,useFilterPublishedChunksHandler as w}from"./FilterPublishedChunksHandler.js";export const getAccessibleChunkKeys=(e,t)=>{let r=new Set((t??[]).map(String));return Object.keys(e).filter(t=>{if(t===n)return!0;let a=e[t];return null!=a&&r.has(a.scope)})};export const resolveChunkKeysToFetch=e=>{let{chunksSpec:t,chunkScopes:a,filteredChunkKeys:i}=e,s=i??getAccessibleChunkKeys(t,a);if(null!=i){let e=i.filter(e=>e!==n&&null==t[e]);if(e.length>0)throw Error(`createFilterPublishedChunksHandler returned unknown chunk keys: ${e.join(", ")}.`)}return r([...s,n].map(String))};let D=t=>e(s,{publishedData:l(o().selectors.domainData.getConfiguratorPublishedData),publishedDataLoadKey:t.publishedDataLoadKey,children:t.children}),v=r=>{let n=f(),s=c(),o=p(),l=m(),k=y(),v=b(),j=d(),F=u(),C=h();if(!F)throw Error("DomainFactory is not available in the runtime registry. Ensure replaceDomainRuntime() is called with domainFactory before rendering PublishedDataProvider.");let E=w(),x=n.sessionPayload?.chunkScopes,S=i(()=>{if(null==l||0===Object.keys(l).length)return;if(null==k)throw Error("publishedDataHash is required when chunks are defined. Use withPublishedDataHash() in ConfiguratorBuilder.");let e=E?.();return resolveChunkKeysToFetch({chunksSpec:l,chunkScopes:x,filteredChunkKeys:e})},[l,x,E,k]),K=i(()=>JSON.stringify(S??null),[S]),O=i(()=>JSON.stringify(v),[v]),A=a(async e=>{let t=await Promise.all(e.map(async e=>{try{let t=await j.getPublishedChunk(e,k);if(null==t){let t=v[e];if(t&&"object"==typeof t)return{key:e,data:t};return{key:e,data:{}}}return{key:e,data:t}}catch(t){return s.error("Failed to fetch published chunk",{key:e},t instanceof Error?t:Error(String(t))),{key:e,data:{}}}})),r={};for(let e of t)r[e.key]=e.data;return{success:!0,data:r}},[j,s,v,k]),R=a(async()=>{if("memory"===o.type||"local-storage"===o.type)return{success:!0,data:v};if(null!=S)return 0===S.length?{success:!0,data:{}}:A(S);let e=n.sessionPayload?.publishedAdminRevisionPath;if(null==e)return{success:!1};try{let t=await fetch(e);return{success:!0,data:await t.json()}}catch(r){let t=r instanceof Error?r:Error(`Unknown error ${r}`);return s.warn("Failed to fetch published data, the published data endpoint returned an error, have you published data from the admin? Check if the published data is accessible.",{path:e},t),{success:!1}}},[s,o,v,n.sessionPayload?.publishedAdminRevisionPath,S,A]),q=a(async e=>{let t=await R();if(e.throwIfAborted(),!t.success)return C.setPublishedData(v),v;try{let e=F.parsePublishedData(t.data);return s.debug("Fetched published admin revision data:",e),C.setPublishedData(e),e}catch(r){let e=r instanceof Error?r:Error(`Unknown error ${r}`);return s.error("Failed to parse published data, the data structure does not match the expected schema, does the published data match the publishedData schema defined in your domain?",{json:t},e),C.setPublishedData(v),v}},[s,F,R,v,C]),H=i(()=>["get-published-admin-data",n.sessionPayload?.publishedAdminRevisionPath,K,k,O],[K,O,k,n.sessionPayload?.publishedAdminRevisionPath]),L=i(()=>JSON.stringify(H),[H]),{data:J,error:N,isFetching:U}=t({queryKey:H,queryFn:({signal:e})=>q(e),refetchOnMount:"always",refetchOnWindowFocus:!1,refetchOnReconnect:!1});if(g({id:P.PublishedData,label:"Loading published data…"},(void 0===J||U)&&!N),N)throw N;return void 0===J||U?null:e(D,{publishedDataLoadKey:L,children:r.children},L)};export const PublishedDataProvider=t=>e(k,{children:e(v,{...t})});
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @internal Runtime plumbing for the SDK's own legacy chat UI, which reads it to show or hide the chat.
3
+ */
4
+ export declare const useChatEnabled: () => boolean;
@@ -0,0 +1 @@
1
+ import{useMemo as t}from"react";import{applicationConfigComponent as n}from"#package/domain";import{useLogger as o}from"../application-runtime/index.js";import{useComponents as e}from"../domain-context/index.js";export const useChatEnabled=()=>{let i=o(),a=e({componentTypes:[n]});return t(()=>(a.length>1&&i.warn("Multiple application configs found, using the first one!",{applicationConfigs:a}),a[0]?.state.chatEnabled??!0),[a,i])};
@@ -5,3 +5,5 @@ export { BackendDataProvider, type BackendDataProviderProps } from './BackendDat
5
5
  export { createCollectFrontendDataHandler, useCollectFrontendDataHandler, CollectFrontendDataHandlerBoundary, type CollectFrontendDataContext, type CreateCollectFrontendDataHandler, } from './CollectFrontendDataHandler.js';
6
6
  export { createFilterPublishedChunksHandler, useFilterPublishedChunksHandler, FilterPublishedChunksHandlerBoundary, type CreateFilterPublishedChunksHandler, } from './FilterPublishedChunksHandler.js';
7
7
  export { createIsUndoableHandler, type CreateIsUndoableHandler } from './IsUndoableHandler.js';
8
+ export { useOnPresetLoadedHandler, createOnPresetLoadedHandler, type CreateOnPresetLoadedHandler, } from './OnPresetLoadedHandler.js';
9
+ export { useChatEnabled } from './chat-hooks.js';
@@ -1 +1 @@
1
- export{DomainLifecycleBoundary}from"./DomainLifecycleBoundary.js";export{PublishedDataProvider}from"./PublishedDataProvider.js";export{FrontendDataProvider}from"./FrontendDataProvider.js";export{BackendDataProvider}from"./BackendDataProvider.js";export{createCollectFrontendDataHandler,useCollectFrontendDataHandler,CollectFrontendDataHandlerBoundary}from"./CollectFrontendDataHandler.js";export{createFilterPublishedChunksHandler,useFilterPublishedChunksHandler,FilterPublishedChunksHandlerBoundary}from"./FilterPublishedChunksHandler.js";export{createIsUndoableHandler}from"./IsUndoableHandler.js";
1
+ export{DomainLifecycleBoundary}from"./DomainLifecycleBoundary.js";export{PublishedDataProvider}from"./PublishedDataProvider.js";export{FrontendDataProvider}from"./FrontendDataProvider.js";export{BackendDataProvider}from"./BackendDataProvider.js";export{createCollectFrontendDataHandler,useCollectFrontendDataHandler,CollectFrontendDataHandlerBoundary}from"./CollectFrontendDataHandler.js";export{createFilterPublishedChunksHandler,useFilterPublishedChunksHandler,FilterPublishedChunksHandlerBoundary}from"./FilterPublishedChunksHandler.js";export{createIsUndoableHandler}from"./IsUndoableHandler.js";export{useOnPresetLoadedHandler,createOnPresetLoadedHandler}from"./OnPresetLoadedHandler.js";export{useChatEnabled}from"./chat-hooks.js";
@@ -1 +1 @@
1
- import{jsx as e,jsxs as i,Fragment as n}from"react/jsx-runtime";import{Box as t}from"@mui/material";import{memo as r,useMemo as o}from"react";import{usePhoenixElementSlots as l}from"../application-runtime/index.js";export const PhoenixEntityElement=r(n=>{let{name:r,children:o,elementProps:d}=n,{entityElements:m,hashes:h}=l(),p=m[r];return p?e(p,{...d,children:o},h[r]??r):i(t,{component:"div",sx:{p:2,backgroundColor:"red",color:"white"},children:["PhoenixEntityElement ",r," not found! Have you defined it?"]})});export const PhoenixEntityElementWithChildren=i=>{let{kind:n,entityId:t,elementProps:r,children:l,visible:d}=i,m=o(()=>({entityId:t,...r}),[t,r]),h=o(()=>l?.map((i,n)=>e(PhoenixEntityElementWithChildren,{kind:i.kind,entityId:t,elementProps:"props"in i?i.props:void 0,children:"children"in i?i.children:void 0,visible:i.visible},`${i.kind}-${n}`)),[l,t]);return!1===d?null:e(PhoenixEntityElement,{entityId:t,name:n,elementProps:m,children:h})};export const PhoenixEntityElements=i=>{let{elements:t,entityId:r,fallback:o}=i;return void 0===t?e(n,{children:o}):e(n,{children:t.map((i,n)=>e(PhoenixEntityElementWithChildren,{kind:i.kind,entityId:r,elementProps:"props"in i?i.props:void 0,children:"children"in i?i.children:void 0,visible:i.visible},`${i.kind}-${n}`))})};
1
+ import{jsx as e,jsxs as i,Fragment as n}from"react/jsx-runtime";import{memo as t,useMemo as r}from"react";import{usePhoenixElementSlots as o}from"../application-runtime/index.js";let l={padding:16,backgroundColor:"red",color:"white"};export const PhoenixEntityElement=t(n=>{let{name:t,children:r,elementProps:d}=n,{entityElements:h,hashes:s}=o(),m=h[t];return m?e(m,{...d,children:r},s[t]??t):i("div",{style:l,children:["PhoenixEntityElement ",t," not found! Have you defined it?"]})});export const PhoenixEntityElementWithChildren=i=>{let{kind:n,entityId:t,elementProps:o,children:l,visible:d}=i,h=r(()=>({entityId:t,...o}),[t,o]),s=r(()=>l?.map((i,n)=>e(PhoenixEntityElementWithChildren,{kind:i.kind,entityId:t,elementProps:"props"in i?i.props:void 0,children:"children"in i?i.children:void 0,visible:i.visible},`${i.kind}-${n}`)),[l,t]);return!1===d?null:e(PhoenixEntityElement,{entityId:t,name:n,elementProps:h,children:s})};export const PhoenixEntityElements=i=>{let{elements:t,entityId:r,fallback:o}=i;return void 0===t?e(n,{children:o}):e(n,{children:t.map((i,n)=>e(PhoenixEntityElementWithChildren,{kind:i.kind,entityId:r,elementProps:"props"in i?i.props:void 0,children:"children"in i?i.children:void 0,visible:i.visible},`${i.kind}-${n}`))})};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as n,Fragment as i}from"react/jsx-runtime";import{Box as o}from"@mui/material";import{memo as t}from"react";import{usePhoenixElementSlots as r}from"../application-runtime/index.js";export const PhoenixLayoutElement=t(i=>{let{name:t,children:d,elementProps:l,defaultSlot:m}=i,{layoutElements:h,hashes:p}=r(),s=h[t]??m;return s?e(s,{...l??{},children:d},p[t]??t):n(o,{component:"div",sx:{p:2,backgroundColor:"red",color:"white"},children:["PhoenixLayoutElement ",t," not found! Have you defined it?"]})});export const PhoenixLayoutElementWithChildren=n=>{let{kind:i,elementProps:o,children:t}=n;return e(PhoenixLayoutElement,{name:i,elementProps:o,children:t?.map((n,i)=>e(PhoenixLayoutElementWithChildren,{kind:n.kind,elementProps:"props"in n?n.props:void 0,children:"children"in n?n.children:void 0},`${n.kind}-${i}`))})};export const PhoenixLayoutElements=n=>{let{elements:o,fallback:t}=n;return void 0===o?e(i,{children:t}):e(i,{children:o.map((n,i)=>e(PhoenixLayoutElementWithChildren,{kind:n.kind,elementProps:"props"in n?n.props:void 0,children:"children"in n?n.children:void 0},`${n.kind}-${i}`))})};export const usePhoenixLayoutElementExists=e=>{let{layoutElements:n}=r();return void 0!==n[e]};
1
+ import{jsx as e,jsxs as n,Fragment as i}from"react/jsx-runtime";import{memo as t}from"react";import{usePhoenixElementSlots as o}from"../application-runtime/index.js";let r={padding:16,backgroundColor:"red",color:"white"};export const PhoenixLayoutElement=t(i=>{let{name:t,children:d,elementProps:l,defaultSlot:h}=i,{layoutElements:s,hashes:m}=o(),p=s[t]??h;return p?e(p,{...l??{},children:d},m[t]??t):n("div",{style:r,children:["PhoenixLayoutElement ",t," not found! Have you defined it?"]})});export const PhoenixLayoutElementWithChildren=n=>{let{kind:i,elementProps:t,children:o}=n;return e(PhoenixLayoutElement,{name:i,elementProps:t,children:o?.map((n,i)=>e(PhoenixLayoutElementWithChildren,{kind:n.kind,elementProps:"props"in n?n.props:void 0,children:"children"in n?n.children:void 0},`${n.kind}-${i}`))})};export const PhoenixLayoutElements=n=>{let{elements:t,fallback:o}=n;return void 0===t?e(i,{children:o}):e(i,{children:t.map((n,i)=>e(PhoenixLayoutElementWithChildren,{kind:n.kind,elementProps:"props"in n?n.props:void 0,children:"children"in n?n.children:void 0},`${n.kind}-${i}`))})};export const usePhoenixLayoutElementExists=e=>{let{layoutElements:n}=o();return void 0!==n[e]};
@@ -8,8 +8,13 @@ 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 './configurator-routing/index.js';
12
+ export * from './integration/index.js';
13
+ export type * from './notifications/index.js';
11
14
  export * from './elements/index.js';
12
15
  export * from './scene-control-elements/index.js';
13
16
  export * from './page-elements/index.js';
17
+ export * from './lifecycle-providers/index.js';
18
+ export * from './preset-selection/index.js';
14
19
  export * from './handlers/index.js';
15
20
  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"./elements/index.js";export*from"./scene-control-elements/index.js";export*from"./page-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"./configurator-routing/index.js";export*from"./integration/index.js";export*from"./elements/index.js";export*from"./scene-control-elements/index.js";export*from"./page-elements/index.js";export*from"./lifecycle-providers/index.js";export*from"./preset-selection/index.js";export*from"./handlers/index.js";export*from"./application-runtime/index.js";
@@ -0,0 +1 @@
1
+ import{jsx as r}from"react/jsx-runtime";import{useEffect as t}from"react";import{useRecipeEmbeddedState as i}from"../application-runtime/index.js";import{useSelectEntity as o}from"../domain-context/index.js";export const IntegrationSubscription=e=>{let{children:n}=e,m=i()?.rootRecipeId,p=o();return t(()=>{m&&p(m)},[m,p]),r("div",{children:n})};
@@ -0,0 +1 @@
1
+ export { IntegrationSubscription, type IntegrationSubscriptionProps } from './IntegrationSubscription.js';
@@ -0,0 +1 @@
1
+ export{IntegrationSubscription}from"./IntegrationSubscription.js";
@@ -0,0 +1,8 @@
1
+ import type { PropsWithChildren } from 'react';
2
+ /**
3
+ * Runs the configurator's data stages in order, published, frontend and backend data, each
4
+ * followed by its `On*DataReady` provider.
5
+ *
6
+ * @internal Runtime plumbing for the SDK's own configurator application, which runs it at its root.
7
+ */
8
+ export declare const ConfiguratorDataProvider: ({ children }: PropsWithChildren) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ import{jsx as r}from"react/jsx-runtime";import{BackendDataProvider as i,FrontendDataProvider as e,PublishedDataProvider as o}from"../domain-application-context/index.js";import{OnBackendDataReadyProvider as n,OnFrontendDataReadyProvider as c,OnPublishedDataReadyProvider as t}from"./LifecycleProviders.js";export const ConfiguratorDataProvider=({children:d})=>r(o,{children:r(t,{children:r(e,{children:r(c,{children:r(i,{children:r(n,{children:d})})})})})});
@@ -0,0 +1 @@
1
+ import{jsx as e,Fragment as r}from"react/jsx-runtime";import{createCustomPhoenixLayoutElement as t}from"#package/domain";import{PhoenixLayoutElement as o}from"../elements/index.js";let n={},a="OnConfiguratorReadyProvider";export const createOnConfiguratorReadyProvider=e=>t(a,e);export const OnConfiguratorReadyProvider=({children:t})=>e(o,{name:a,elementProps:n,defaultSlot:r,children:t});let d="OnSessionReadyProvider";export const createOnSessionReadyProvider=e=>t(d,e);export const OnSessionReadyProvider=({children:t})=>e(o,{name:d,elementProps:n,defaultSlot:r,children:t});let i="OnPublishedDataReadyProvider";export const createOnPublishedDataReadyProvider=e=>t(i,e);export const OnPublishedDataReadyProvider=({children:t})=>e(o,{name:i,elementProps:n,defaultSlot:r,children:t});let l="OnApplicationStartProvider";export const createOnApplicationStartProvider=e=>t(l,e);export const OnApplicationStartProvider=({children:t})=>e(o,{name:l,elementProps:n,defaultSlot:r,children:t});let c="OnRoutingReadyProvider";export const createOnRoutingReadyProvider=e=>t(c,e);export const OnRoutingReadyProvider=({children:t})=>e(o,{name:c,elementProps:n,defaultSlot:r,children:t});let s="OnFrontendDataReadyProvider";export const createOnFrontendDataReadyProvider=e=>t(s,e);export const OnFrontendDataReadyProvider=({children:t})=>e(o,{name:s,elementProps:n,defaultSlot:r,children:t});let p="OnBackendDataReadyProvider";export const createOnBackendDataReadyProvider=e=>t(p,e);export const OnBackendDataReadyProvider=({children:t})=>e(o,{name:p,elementProps:n,defaultSlot:r,children:t});
@@ -0,0 +1,2 @@
1
+ export * from './LifecycleProviders.js';
2
+ export { ConfiguratorDataProvider } from './ConfiguratorDataProvider.js';
@@ -0,0 +1 @@
1
+ export*from"./LifecycleProviders.js";export{ConfiguratorDataProvider}from"./ConfiguratorDataProvider.js";
@@ -0,0 +1 @@
1
+ export type { SnackbarActionButton } from './snackbar-action-button.js';
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1,30 @@
1
+ import type { SnackbarKey } from 'notistack';
2
+ import type { ReactNode } from 'react';
3
+ /**
4
+ * A button a snackbar shows after its message, described as data instead of as an element.
5
+ *
6
+ * The code that raises a snackbar passes it as the `actionButton` option of notistack's `enqueueSnackbar`, so it
7
+ * needs no UI component. The themed snackbar of the configurator and the admin renders it in its `actionButton`
8
+ * slot, which the theme styles as `PhxSnackbar`. `onClick` receives the snackbar's key, for example to close the
9
+ * snackbar with `closeSnackbar`.
10
+ */
11
+ export interface SnackbarActionButton {
12
+ /** The button's text. */
13
+ readonly label: ReactNode;
14
+ /** Called with the key of the snackbar whose button was clicked. */
15
+ readonly onClick: (key: SnackbarKey) => void;
16
+ }
17
+ type SnackbarActionButtonOptions = {
18
+ /** A button shown after the message, see `SnackbarActionButton`. */
19
+ readonly actionButton?: SnackbarActionButton;
20
+ };
21
+ declare module 'notistack' {
22
+ interface VariantOverrides {
23
+ default: SnackbarActionButtonOptions;
24
+ info: SnackbarActionButtonOptions;
25
+ success: SnackbarActionButtonOptions;
26
+ warning: SnackbarActionButtonOptions;
27
+ error: SnackbarActionButtonOptions;
28
+ }
29
+ }
30
+ export {};
@@ -0,0 +1 @@
1
+ import{jsx as e}from"react/jsx-runtime";import{useMutation as t}from"@tanstack/react-query";import{useSnackbar as i}from"notistack";import{useSubscription as r}from"observable-hooks";import{createContext as o,useCallback as n,useContext as s,useEffect as a,useMemo as l,useState as m}from"react";import{skip as p}from"rxjs";import{match as d}from"ts-pattern";import{AuthorizedClient as c,LocalStorageAuthorizedPhoenixApiClient as g,MemoryAuthorizedPhoenixApiClient as u}from"#package/client";import{SYSTEM_CHUNK_KEY as f,standardWebComponentProperties as h}from"#package/domain";import{ApplicationRoutes as y,FrontendAnalyticsFactory as x,useAnalyticsService as P,useAuthenticatedClient as v,useConfiguratorDomainFactory as w,useIsDev as C,useLogger as T,usePersistenceConfig as D,usePublishedData as S,useRoutingSelectors as k,useSessionService as E,useSpecPresetSeed as b,useWebComponentProperty$ as j}from"../application-runtime/index.js";import{useConfiguratorRouting as A}from"../configurator-routing/index.js";import{useOnPresetLoadedHandler as I}from"../domain-application-context/index.js";import{useEagerObservableValue as V}from"../domain-context/index.js";import{useResolveLocalizable as $}from"../localizable/index.js";let F={id:"sdk.presets.create.error.message",message:"Could not start configuring from this preset. Please try again."},M={id:"sdk.presets.create.error.dismiss.label",message:"Dismiss"},R="phx-preset-creation-error";export const PresetSelectionContext=o(null);export const usePresetSelection=()=>{let e=s(PresetSelectionContext);if(null===e)throw Error("usePresetSelection must be used within a PresetSelectionProvider!");return e};let q=e=>t=>null===e||void 0!==t.tags&&t.tags.some(t=>e.includes(t));export const PresetSelectionProvider=o=>{let{children:s}=o,[z,B]=m(null),[U,G]=m(null),H=b(),J=v(),K=P(),L=D(),N=w(),O=C(),Q=$(),{requestSessionToken:W}=E(),X=T(),Y=A(),Z=k(),_=S(),{enqueueSnackbar:ee,closeSnackbar:et}=i(),ei=j(h.presetTags),er=V(ei),eo=I();r(l(()=>ei.pipe(p(1)),[ei]),()=>{Z.getRoutingState().route!==y.Index&&Y.goToIndex()}),a(()=>{G(null),et(R)},[O,et]);let{mutate:en}=t({mutationFn:n(async e=>{let{getData:t,name:i}=e,{rootEntityType:r,entities:o,modelVersion:n}=await t(),s=N.validateAndMigrateState(o,n);K.push(x.ProductSelected(r,Q(i)));let a=eo?await eo(s):s;return J.createConfiguration({rootEntityType:r,data:a})},[N,K,Q,J,eo]),onSuccess:e=>{Y.goToConfigurationDetail(e.configurationId,e.accessToken)},onError:(e,t)=>{X.error("Failed to create a new configuration from a preset!",{name:t.name},e),G(e)},onSettled:()=>{B(null)}}),es=l(()=>{let e,t=(e=f in _?_[f].presetCategories:_.presetCategories,{publishedPresetCategories:(e??[]).map(e=>({...e,presets:e.presets.filter(q(er))})).filter(e=>e.presets.length>0),seedPresets:H.filter(q(er))});return t.publishedPresetCategories.length>0?t.publishedPresetCategories.map(e=>({id:e.id,name:e.name,description:e.description,img:e.img,imgAlt:e.imgAlt,presets:e.presets.map(e=>({id:e.configurationId,name:e.name,description:e.description,img:e?.img,imgAlt:e?.imgAlt,detailTitle:e?.detailTitle,detailDescription:e?.detailDescription,getData:async()=>{let t=d(L).with({type:"server"},t=>new c(t.serverUrl,()=>e.readToken,W)).with({type:"local-storage"},()=>new g(N.modelVersion)).with({type:"memory"},()=>new u(N.modelVersion)).exhaustive(),i=await t.getConfigurationRevision(e.configurationId,e.revisionId);return{entities:i.data,rootEntityType:i.rootEntityType,modelVersion:i.modelVersion}}}))})):t.seedPresets.length>0?[{id:"Default",name:"Default Category",presets:t.seedPresets.map((e,t)=>({id:`${t}`,name:e.name??`${e.rootEntityType} preset - ${t}`,description:e.description??"",img:e.img,imgAlt:e.imgAlt,detailTitle:e.detailTitle,detailDescription:e.detailDescription,getData:async()=>({entities:e.initialDomainEntities,rootEntityType:e.rootEntityType,modelVersion:N.modelVersion})}))}]:[]},[_,W,L,N,er,H]),ea=l(()=>es.flatMap(e=>e.presets),[es]),el=n(e=>{let t=ea.find(t=>t.id===e);if(void 0===t)throw Error(`Preset with id ${e} not found!`);let{getData:i,name:r}=t,o=!O&&ea.length>1;G(null),B(e),en({getData:i,name:r},{onError:()=>{o&&(et(R),ee(Q(F),{variant:"error",key:R,persist:!0,preventDuplicate:!0,actionButton:{label:Q(M),onClick:e=>{G(null),et(e)}}}))}})},[ea,O,en,ee,et,Q]),em=ea.length>1,ep=l(()=>({hasMultiplePresets:em,presetCategories:es,selectPreset:el,selectionError:U,creatingPresetId:z}),[el,em,es,U,z]);return e(PresetSelectionContext.Provider,{value:ep,children:s})};
@@ -0,0 +1 @@
1
+ export { usePresetSelection, type UsePresetSelection, PresetSelectionProvider, type PresetSelectionProviderProps, } from './PresetSelectionProvider.js';
@@ -0,0 +1 @@
1
+ export{usePresetSelection,PresetSelectionProvider}from"./PresetSelectionProvider.js";
@@ -2,5 +2,10 @@ import type { ComponentType, ReactNode } from 'react';
2
2
  export interface SessionProviderProps {
3
3
  readonly children: ReactNode;
4
4
  readonly notAuthenticatedFallback?: ComponentType;
5
+ /**
6
+ * Shown while the session authenticates, unless a loader host shows the application's loader; an
7
+ * application without a loader host passes its loader here. Defaults to rendering nothing.
8
+ */
9
+ readonly loadingFallback?: ComponentType;
5
10
  }
6
11
  export declare const SessionServiceProvider: (props: SessionProviderProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{useCallback as t,useEffect as o,useMemo as i}from"react";import{distinctUntilChanged as n,filter as a,skip as r}from"rxjs";import{match as s}from"ts-pattern";import{standardWebComponentEvents as l,standardWebComponentProperties as d}from"#package/domain";import{Loader as c}from"#package/ui-sdk";import{DomainSessionProvider as u,INTEGRATION_MODE_SETTINGS as h,SessionProvider as m,useApplicationRuntime as g,useApplicationRuntimeSelector as p,useDispatchWebComponentEvent as f,useIsLoaderHosted as S,useLogger as k,useRawSession as v,useSessionService as x,useWebComponentProperty$ as w,useWebComponentPropertyValue as T}from"../application-runtime/index.js";import{usePatientObservableValue as j}from"../domain-context/index.js";import{BuiltInLoadingPhase as b,useLoadingPhase as C}from"../loading-state/index.js";import{NotAuthenticatedPage as A}from"./NotAuthenticatedPage.js";let U="code";export const SessionServiceProvider=E=>{let{children:P,notAuthenticatedFallback:z=A}=E,F=g(),$=k(),q=x(),M=v(),N=p(F.selectors.session.getSession),R=p(F.selectors.sessionContext.getSessionContext),y=T(d.sessionToken),L=T(d.adminSessionToken),W=T(d.refreshToken),B=w(d.integrationMode),D=w(d.authorizationCode),G=t(()=>{if(D.value){let e=B.value;"local-storage"===h[e].authenticationStorage&&$.warn(`authorizationCode WC prop used in '${e}' mode. This is discouraged — tokens stored in localStorage leak across tabs. Use 'handoff' or 'headless' mode instead.`);let t=D.value;return D.next(void 0),t}if(h[B.value].consumeCodeFromUrl){let e=new URL(window.location.href),t=e.searchParams.get(U);return e.searchParams.delete(U),history.replaceState(null,"",e),t??void 0}},[D,B,$]),H=j(i(()=>D.pipe(r(1),a(e=>void 0!==e),n()),[D]),void 0),I=h[T(d.integrationMode)].authenticationStorage,J=f(l.authenticationFailed),K=i(()=>s(I).with("local-storage",()=>localStorage).with("session-storage",()=>sessionStorage).exhaustive(),[I]);o(()=>{q.configure({initialSessionToken:y,initialAdminSessionToken:L,initialRefreshToken:W,retrieveAuthorizationCode:G,dispatchAuthenticationFailed:J,storage:K})},[q,y,L,W,G,J,K]),o(()=>{"loading"===M.authenticated&&q.requestSessionToken().catch(e=>{let t=e instanceof Error?e:Error(`Unknown error ${e}`);$.warn("Session could not be authenticated",{},t)})},[q,M.authenticated,$]),o(()=>{H&&($.debug("New authorization code received, re-authenticating session"),q.requestSessionToken().catch(e=>{let t=e instanceof Error?e:Error(`Unknown error ${e}`);$.warn("Session could not be authenticated",{},t)}))},[H,q,$]);let O=S();return(C({id:b.SessionAuth,label:"Authenticating session…"},"loading"===M.authenticated),"loading"===M.authenticated)?O?null:e(c,{}):"error"===M.authenticated?e(m,{value:M,children:e(z,{})}):null===R?null:e(m,{value:N,children:e(u,{value:R,children:P})})};
1
+ import{jsx as e}from"react/jsx-runtime";import{useCallback as t,useEffect as o,useMemo as n}from"react";import{distinctUntilChanged as i,filter as a,skip as r}from"rxjs";import{match as s}from"ts-pattern";import{standardWebComponentEvents as l,standardWebComponentProperties as d}from"#package/domain";import{DomainSessionProvider as c,INTEGRATION_MODE_SETTINGS as u,SessionProvider as h,useApplicationRuntime as m,useApplicationRuntimeSelector as g,useDispatchWebComponentEvent as f,useIsLoaderHosted as p,useLogger as S,useRawSession as k,useSessionService as v,useWebComponentProperty$ as x,useWebComponentPropertyValue as w}from"../application-runtime/index.js";import{usePatientObservableValue as T}from"../domain-context/index.js";import{BuiltInLoadingPhase as b,useLoadingPhase as j}from"../loading-state/index.js";import{NotAuthenticatedPage as C}from"./NotAuthenticatedPage.js";let A="code",U=()=>null;export const SessionServiceProvider=E=>{let{children:F,notAuthenticatedFallback:P=C,loadingFallback:z=U}=E,$=m(),q=S(),M=v(),N=k(),R=g($.selectors.session.getSession),y=g($.selectors.sessionContext.getSessionContext),L=w(d.sessionToken),W=w(d.adminSessionToken),B=w(d.refreshToken),D=x(d.integrationMode),G=x(d.authorizationCode),H=t(()=>{if(G.value){let e=D.value;"local-storage"===u[e].authenticationStorage&&q.warn(`authorizationCode WC prop used in '${e}' mode. This is discouraged — tokens stored in localStorage leak across tabs. Use 'handoff' or 'headless' mode instead.`);let t=G.value;return G.next(void 0),t}if(u[D.value].consumeCodeFromUrl){let e=new URL(window.location.href),t=e.searchParams.get(A);return e.searchParams.delete(A),history.replaceState(null,"",e),t??void 0}},[G,D,q]),I=T(n(()=>G.pipe(r(1),a(e=>void 0!==e),i()),[G]),void 0),J=u[w(d.integrationMode)].authenticationStorage,K=f(l.authenticationFailed),O=n(()=>s(J).with("local-storage",()=>localStorage).with("session-storage",()=>sessionStorage).exhaustive(),[J]);o(()=>{M.configure({initialSessionToken:L,initialAdminSessionToken:W,initialRefreshToken:B,retrieveAuthorizationCode:H,dispatchAuthenticationFailed:K,storage:O})},[M,L,W,B,H,K,O]),o(()=>{"loading"===N.authenticated&&M.requestSessionToken().catch(e=>{let t=e instanceof Error?e:Error(`Unknown error ${e}`);q.warn("Session could not be authenticated",{},t)})},[M,N.authenticated,q]),o(()=>{I&&(q.debug("New authorization code received, re-authenticating session"),M.requestSessionToken().catch(e=>{let t=e instanceof Error?e:Error(`Unknown error ${e}`);q.warn("Session could not be authenticated",{},t)}))},[I,M,q]);let Q=p();return(j({id:b.SessionAuth,label:"Authenticating session…"},"loading"===N.authenticated),"loading"===N.authenticated)?Q?null:e(z,{}):"error"===N.authenticated?e(h,{value:N,children:e(P,{})}):null===y?null:e(h,{value:R,children:e(c,{value:y,children:F})})};
@@ -1,6 +1,6 @@
1
- import type { AlertProps, ComponentsOverrides, ComponentsVariants } from '@mui/material';
2
- import type { CustomContentProps, SnackbarContentProps } from 'notistack';
3
- import type { ElementType } from 'react';
1
+ import type { AlertProps, ButtonProps, ComponentsOverrides, ComponentsVariants } from '@mui/material';
2
+ import type { CustomContentProps, SnackbarContentProps, SnackbarKey } from 'notistack';
3
+ import type { ElementType, ReactNode } from 'react';
4
4
  import type { ValueOf } from '@salsita-ai/common/utils';
5
5
  /**
6
6
  * Centralized registry of CSS class names for notistack's Snackbar components.
@@ -40,6 +40,7 @@ declare module '@mui/material/styles' {
40
40
  declare const Slots: {
41
41
  readonly Content: 'content';
42
42
  readonly Alert: 'alert';
43
+ readonly ActionButton: 'actionButton';
43
44
  };
44
45
  type PhxSnackbarSlots = ValueOf<typeof Slots>;
45
46
  export declare const SnackbarVariant: {
@@ -49,7 +50,24 @@ export declare const SnackbarVariant: {
49
50
  readonly Warning: 'warning';
50
51
  readonly Error: 'error';
51
52
  };
53
+ /**
54
+ * A button the snackbar shows after its message, described as data by the code that raises the snackbar.
55
+ *
56
+ * It arrives as the `actionButton` option of notistack's `enqueueSnackbar`, which `SnackbarActionButton` of
57
+ * `@salsita-ai/sdk/react` types, and renders in the `actionButton` slot, so the raising code needs no UI component and
58
+ * the theme decides the button's look.
59
+ */
60
+ interface SnackbarActionButtonDescription {
61
+ /** The button's text. */
62
+ readonly label: ReactNode;
63
+ /** Called with the key of the snackbar whose button was clicked. */
64
+ readonly onClick: (key: SnackbarKey) => void;
65
+ }
52
66
  export interface SnackbarProps extends Readonly<CustomContentProps> {
67
+ /**
68
+ * A button shown after the message and after `action`, rendered in the `actionButton` slot.
69
+ */
70
+ readonly actionButton?: SnackbarActionButtonDescription;
53
71
  /**
54
72
  * The components used for each slot inside the `Snackbar`.
55
73
  *
@@ -58,6 +76,7 @@ export interface SnackbarProps extends Readonly<CustomContentProps> {
58
76
  *
59
77
  * - `content` — The outer snackbar container (notistack's `SnackbarContent`).
60
78
  * - `alert` — The inner alert component displaying the message (`MuiAlert`).
79
+ * - `actionButton` — The button of `actionButton` (`MuiButton`, `color="inherit"`, `size="small"`).
61
80
  *
62
81
  * @default {}
63
82
  */
@@ -71,12 +90,14 @@ export interface SnackbarProps extends Readonly<CustomContentProps> {
71
90
  * Available slot keys:
72
91
  * - `content` — Props for the snackbar content wrapper.
73
92
  * - `alert` — Props for the alert component (severity, variant, etc.).
93
+ * - `actionButton` — Props for the button of `actionButton`.
74
94
  *
75
95
  * @default { alert: { variant: 'standard' } }
76
96
  */
77
97
  readonly slotProps?: Partial<{
78
98
  readonly [Slots.Content]: SnackbarContentProps;
79
99
  readonly [Slots.Alert]: AlertProps;
100
+ readonly [Slots.ActionButton]: ButtonProps;
80
101
  }>;
81
102
  }
82
103
  /**
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{Alert as a,styled as r,useThemeProps as n}from"@mui/material";import{SnackbarContent as e}from"notistack";import{forwardRef as o,useMemo as i}from"react";import{match as c}from"ts-pattern";export const notistackSnackbarClasses={container:"notistack-SnackbarContainer",snackbar:"notistack-Snackbar"};let s="PhxSnackbar",l={Content:r(e,{name:s,slot:"content"})({display:"block"}),Alert:r(a,{name:s,slot:"alert"})({userSelect:"none"})};export const SnackbarVariant={Default:"default",Info:"info",Success:"success",Warning:"warning",Error:"error"};export const Snackbar=o((a,r)=>{let{action:e,id:o,message:k,slotProps:m={alert:{variant:"standard"}},slots:f={},variant:p="info"}=n({props:a,name:s}),S=f.content??l.Content,b=f.alert??l.Alert,u=i(()=>{if(e)return"function"==typeof e?e(o):e},[e,o]);return t(S,{...m.content,ref:r,children:t(b,{...m.alert,severity:c(p).with(SnackbarVariant.Error,()=>p).with(SnackbarVariant.Info,()=>p).with(SnackbarVariant.Success,()=>p).with(SnackbarVariant.Warning,()=>p).otherwise(()=>SnackbarVariant.Info),action:u,"aria-atomic":"true","aria-live":"polite",children:k})})});
1
+ import{jsx as t,jsxs as n,Fragment as a}from"react/jsx-runtime";import{Alert as r,Button as o,styled as i,useThemeProps as e}from"@mui/material";import{SnackbarContent as c}from"notistack";import{forwardRef as s,useMemo as l}from"react";import{match as m}from"ts-pattern";export const notistackSnackbarClasses={container:"notistack-SnackbarContainer",snackbar:"notistack-Snackbar"};let k="PhxSnackbar",u={Content:i(c,{name:k,slot:"content"})({display:"block"}),Alert:i(r,{name:k,slot:"alert"})({userSelect:"none"}),ActionButton:i(o,{name:k,slot:"actionButton"})({})};export const SnackbarVariant={Default:"default",Info:"info",Success:"success",Warning:"warning",Error:"error"};export const Snackbar=s((r,o)=>{let{action:i,actionButton:c,id:s,message:f,slotProps:b={alert:{variant:"standard"}},slots:p={},variant:S="info"}=e({props:r,name:k}),h=p.content??u.Content,d=p.alert??u.Alert,x=p.actionButton??u.ActionButton,w=l(()=>{if(i)return"function"==typeof i?i(s):i},[i,s]),B=l(()=>void 0===c?w:n(a,{children:[w,t(x,{color:"inherit",size:"small",...b.actionButton,onClick:()=>{c.onClick(s)},children:c.label})]}),[x,c,s,w,b.actionButton]);return t(h,{...b.content,ref:o,children:t(d,{...b.alert,severity:m(S).with(SnackbarVariant.Error,()=>S).with(SnackbarVariant.Info,()=>S).with(SnackbarVariant.Success,()=>S).with(SnackbarVariant.Warning,()=>S).otherwise(()=>SnackbarVariant.Info),action:B,"aria-atomic":"true","aria-live":"polite",children:f})})});
@@ -0,0 +1,3 @@
1
+ import { type SvgIconProps } from '@mui/material';
2
+ declare const SvgPaperclip: (props: SvgIconProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default SvgPaperclip;
@@ -0,0 +1 @@
1
+ import{jsx as a}from"react/jsx-runtime";import{SvgIcon as r}from"@mui/material";export default(l=>a(r,{...l,children:a("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 256 256",children:a("path",{d:"M209.66 122.34a8 8 0 0 1 0 11.32l-82.05 82a56 56 0 0 1-79.2-79.21l99.26-100.72a40 40 0 1 1 56.61 56.55L105 193a24 24 0 1 1-34-34l83.3-84.62a8 8 0 1 1 11.4 11.22l-83.31 84.71a8 8 0 1 0 11.27 11.36L192.93 81A24 24 0 1 0 159 47L59.76 147.68a40 40 0 1 0 56.53 56.62l82.06-82a8 8 0 0 1 11.31.04"})})}));
@@ -74,6 +74,7 @@ import Palette from './Palette.js';
74
74
  import PaletteBold from './PaletteBold.js';
75
75
  import PaperPlaneRightBold from './PaperPlaneRightBold.js';
76
76
  import PaperPlaneTilt from './PaperPlaneTilt.js';
77
+ import Paperclip from './Paperclip.js';
77
78
  import PauseBold from './PauseBold.js';
78
79
  import PencilSimpleBold from './PencilSimpleBold.js';
79
80
  import PlayBold from './PlayBold.js';
@@ -183,6 +184,7 @@ export declare const Icon: {
183
184
  readonly PaletteBold: typeof PaletteBold;
184
185
  readonly PaperPlaneRightBold: typeof PaperPlaneRightBold;
185
186
  readonly PaperPlaneTilt: typeof PaperPlaneTilt;
187
+ readonly Paperclip: typeof Paperclip;
186
188
  readonly PauseBold: typeof PauseBold;
187
189
  readonly PencilSimpleBold: typeof PencilSimpleBold;
188
190
  readonly PlayBold: typeof PlayBold;
@@ -1 +1 @@
1
- import o from"./Alarm.js";import r from"./ArrowClockwise.js";import m from"./ArrowCounterClockwise.js";import t from"./ArrowLeft.js";import i from"./ArrowRight.js";import s from"./ArrowRightBold.js";import p from"./ArrowsHorizontal.js";import f from"./ArrowsIn.js";import j from"./ArrowsOut.js";import e from"./ArrowsOutCardinal.js";import l from"./Basketball.js";import a from"./BoundingBox.js";import u from"./BracketsCurly.js";import n from"./BuildingBold.js";import C from"./CameraRotate.js";import d from"./CaretDown.js";import B from"./CaretLeft.js";import c from"./CaretLeftBold.js";import g from"./CaretRight.js";import h from"./CaretRightBold.js";import A from"./Check.js";import P from"./CheckCircle.js";import w from"./CheckCircleDuotone.js";import S from"./Circle.js";import k from"./Cloud.js";import D from"./CloudArrowUp.js";import L from"./CopySimpleBold.js";import y from"./Cube.js";import F from"./CubeDuotone.js";import M from"./CurrencyDollar.js";import R from"./CurrencyEur.js";import I from"./CursorClick.js";import T from"./CustomAiAssistant.js";import b from"./CustomAiAssistantBold.js";import O from"./CustomAr.js";import W from"./CustomBigAiAssistant.js";import x from"./CustomMeasureCm.js";import E from"./CustomMeasureFt.js";import H from"./CustomMeasureIn.js";import G from"./CustomMeasureM.js";import U from"./CustomMeasureMm.js";import V from"./DotsSixVerticalBold.js";import X from"./DotsThreeVertical.js";import v from"./DotsThreeVerticalBold.js";import z from"./Export.js";import Q from"./EyeBold.js";import q from"./EyeClosedBold.js";import K from"./FileArrowUp.js";import N from"./FilePlus.js";import J from"./FileText.js";import Y from"./FireBold.js";import Z from"./Flame.js";import $ from"./FolderOpen.js";import _ from"./FolderStarBold.js";import oo from"./Gear.js";import or from"./GridFour.js";import om from"./HardDrives.js";import ot from"./House.js";import oi from"./Image.js";import os from"./ImageSquareBold.js";import op from"./Info.js";import of from"./InfoBold.js";import oj from"./Key.js";import oe from"./Lightbulb.js";import ol from"./List.js";import oa from"./ListBullets.js";import ou from"./ListChecks.js";import on from"./Lock.js";import oC from"./MagicWand.js";import od from"./MagnifyingGlassBold.js";import oB from"./NavigationArrow.js";import oc from"./PaintBrush.js";import og from"./Palette.js";import oh from"./PaletteBold.js";import oA from"./PaperPlaneRightBold.js";import oP from"./PaperPlaneTilt.js";import ow from"./PauseBold.js";import oS from"./PencilSimpleBold.js";import ok from"./PlayBold.js";import oD from"./Plus.js";import oL from"./PlusBold.js";import oy from"./PlusCircle.js";import oF from"./PlusCircleBold.js";import oM from"./PushPin.js";import oR from"./PushPinSlash.js";import oI from"./Question.js";import oT from"./QuestionDuotone.js";import ob from"./RocketLaunchBold.js";import oO from"./SalsitaLogo.js";import oW from"./Scan.js";import ox from"./ShoppingCartSimple.js";import oE from"./SignOut.js";import oH from"./SignOutBold.js";import oG from"./SlidersBold.js";import oU from"./SlidersHorizontal.js";import oV from"./SubsetOfRaw.js";import oX from"./TagBold.js";import ov from"./Trash.js";import oz from"./TrashSimpleBold.js";import oQ from"./UsersBold.js";import oq from"./Warning.js";import oK from"./WarningCircle.js";import oN from"./WarningCircleBold.js";import oJ from"./WarningCircleDuotone.js";import oY from"./WarningDuotone.js";import oZ from"./X.js";import o$ from"./XBold.js";import o_ from"./XCircle.js";export const Icon={Alarm:o,ArrowClockwise:r,ArrowCounterClockwise:m,ArrowLeft:t,ArrowRight:i,ArrowRightBold:s,ArrowsHorizontal:p,ArrowsIn:f,ArrowsOut:j,ArrowsOutCardinal:e,Basketball:l,BoundingBox:a,BracketsCurly:u,BuildingBold:n,CameraRotate:C,CaretDown:d,CaretLeft:B,CaretLeftBold:c,CaretRight:g,CaretRightBold:h,Check:A,CheckCircle:P,CheckCircleDuotone:w,Circle:S,Cloud:k,CloudArrowUp:D,CopySimpleBold:L,Cube:y,CubeDuotone:F,CurrencyDollar:M,CurrencyEur:R,CursorClick:I,CustomAiAssistant:T,CustomAiAssistantBold:b,CustomAr:O,CustomBigAiAssistant:W,CustomMeasureCm:x,CustomMeasureFt:E,CustomMeasureIn:H,CustomMeasureM:G,CustomMeasureMm:U,DotsSixVerticalBold:V,DotsThreeVertical:X,DotsThreeVerticalBold:v,Export:z,EyeBold:Q,EyeClosedBold:q,FileArrowUp:K,FilePlus:N,FileText:J,FireBold:Y,Flame:Z,FolderOpen:$,FolderStarBold:_,Gear:oo,GridFour:or,HardDrives:om,House:ot,Image:oi,ImageSquareBold:os,Info:op,InfoBold:of,Key:oj,Lightbulb:oe,List:ol,ListBullets:oa,ListChecks:ou,Lock:on,MagicWand:oC,MagnifyingGlassBold:od,NavigationArrow:oB,PaintBrush:oc,Palette:og,PaletteBold:oh,PaperPlaneRightBold:oA,PaperPlaneTilt:oP,PauseBold:ow,PencilSimpleBold:oS,PlayBold:ok,Plus:oD,PlusBold:oL,PlusCircle:oy,PlusCircleBold:oF,PushPin:oM,PushPinSlash:oR,Question:oI,QuestionDuotone:oT,RocketLaunchBold:ob,SalsitaLogo:oO,Scan:oW,ShoppingCartSimple:ox,SignOut:oE,SignOutBold:oH,SlidersBold:oG,SlidersHorizontal:oU,SubsetOfRaw:oV,TagBold:oX,Trash:ov,TrashSimpleBold:oz,UsersBold:oQ,Warning:oq,WarningCircle:oK,WarningCircleBold:oN,WarningCircleDuotone:oJ,WarningDuotone:oY,X:oZ,XBold:o$,XCircle:o_};
1
+ import o from"./Alarm.js";import r from"./ArrowClockwise.js";import m from"./ArrowCounterClockwise.js";import t from"./ArrowLeft.js";import i from"./ArrowRight.js";import s from"./ArrowRightBold.js";import p from"./ArrowsHorizontal.js";import f from"./ArrowsIn.js";import j from"./ArrowsOut.js";import e from"./ArrowsOutCardinal.js";import l from"./Basketball.js";import a from"./BoundingBox.js";import u from"./BracketsCurly.js";import n from"./BuildingBold.js";import C from"./CameraRotate.js";import d from"./CaretDown.js";import B from"./CaretLeft.js";import c from"./CaretLeftBold.js";import g from"./CaretRight.js";import h from"./CaretRightBold.js";import A from"./Check.js";import P from"./CheckCircle.js";import w from"./CheckCircleDuotone.js";import S from"./Circle.js";import k from"./Cloud.js";import D from"./CloudArrowUp.js";import L from"./CopySimpleBold.js";import y from"./Cube.js";import F from"./CubeDuotone.js";import M from"./CurrencyDollar.js";import R from"./CurrencyEur.js";import I from"./CursorClick.js";import T from"./CustomAiAssistant.js";import b from"./CustomAiAssistantBold.js";import O from"./CustomAr.js";import W from"./CustomBigAiAssistant.js";import x from"./CustomMeasureCm.js";import E from"./CustomMeasureFt.js";import H from"./CustomMeasureIn.js";import G from"./CustomMeasureM.js";import U from"./CustomMeasureMm.js";import V from"./DotsSixVerticalBold.js";import X from"./DotsThreeVertical.js";import v from"./DotsThreeVerticalBold.js";import z from"./Export.js";import Q from"./EyeBold.js";import q from"./EyeClosedBold.js";import K from"./FileArrowUp.js";import N from"./FilePlus.js";import J from"./FileText.js";import Y from"./FireBold.js";import Z from"./Flame.js";import $ from"./FolderOpen.js";import _ from"./FolderStarBold.js";import oo from"./Gear.js";import or from"./GridFour.js";import om from"./HardDrives.js";import ot from"./House.js";import oi from"./Image.js";import os from"./ImageSquareBold.js";import op from"./Info.js";import of from"./InfoBold.js";import oj from"./Key.js";import oe from"./Lightbulb.js";import ol from"./List.js";import oa from"./ListBullets.js";import ou from"./ListChecks.js";import on from"./Lock.js";import oC from"./MagicWand.js";import od from"./MagnifyingGlassBold.js";import oB from"./NavigationArrow.js";import oc from"./PaintBrush.js";import og from"./Palette.js";import oh from"./PaletteBold.js";import oA from"./PaperPlaneRightBold.js";import oP from"./PaperPlaneTilt.js";import ow from"./Paperclip.js";import oS from"./PauseBold.js";import ok from"./PencilSimpleBold.js";import oD from"./PlayBold.js";import oL from"./Plus.js";import oy from"./PlusBold.js";import oF from"./PlusCircle.js";import oM from"./PlusCircleBold.js";import oR from"./PushPin.js";import oI from"./PushPinSlash.js";import oT from"./Question.js";import ob from"./QuestionDuotone.js";import oO from"./RocketLaunchBold.js";import oW from"./SalsitaLogo.js";import ox from"./Scan.js";import oE from"./ShoppingCartSimple.js";import oH from"./SignOut.js";import oG from"./SignOutBold.js";import oU from"./SlidersBold.js";import oV from"./SlidersHorizontal.js";import oX from"./SubsetOfRaw.js";import ov from"./TagBold.js";import oz from"./Trash.js";import oQ from"./TrashSimpleBold.js";import oq from"./UsersBold.js";import oK from"./Warning.js";import oN from"./WarningCircle.js";import oJ from"./WarningCircleBold.js";import oY from"./WarningCircleDuotone.js";import oZ from"./WarningDuotone.js";import o$ from"./X.js";import o_ from"./XBold.js";import o0 from"./XCircle.js";export const Icon={Alarm:o,ArrowClockwise:r,ArrowCounterClockwise:m,ArrowLeft:t,ArrowRight:i,ArrowRightBold:s,ArrowsHorizontal:p,ArrowsIn:f,ArrowsOut:j,ArrowsOutCardinal:e,Basketball:l,BoundingBox:a,BracketsCurly:u,BuildingBold:n,CameraRotate:C,CaretDown:d,CaretLeft:B,CaretLeftBold:c,CaretRight:g,CaretRightBold:h,Check:A,CheckCircle:P,CheckCircleDuotone:w,Circle:S,Cloud:k,CloudArrowUp:D,CopySimpleBold:L,Cube:y,CubeDuotone:F,CurrencyDollar:M,CurrencyEur:R,CursorClick:I,CustomAiAssistant:T,CustomAiAssistantBold:b,CustomAr:O,CustomBigAiAssistant:W,CustomMeasureCm:x,CustomMeasureFt:E,CustomMeasureIn:H,CustomMeasureM:G,CustomMeasureMm:U,DotsSixVerticalBold:V,DotsThreeVertical:X,DotsThreeVerticalBold:v,Export:z,EyeBold:Q,EyeClosedBold:q,FileArrowUp:K,FilePlus:N,FileText:J,FireBold:Y,Flame:Z,FolderOpen:$,FolderStarBold:_,Gear:oo,GridFour:or,HardDrives:om,House:ot,Image:oi,ImageSquareBold:os,Info:op,InfoBold:of,Key:oj,Lightbulb:oe,List:ol,ListBullets:oa,ListChecks:ou,Lock:on,MagicWand:oC,MagnifyingGlassBold:od,NavigationArrow:oB,PaintBrush:oc,Palette:og,PaletteBold:oh,PaperPlaneRightBold:oA,PaperPlaneTilt:oP,Paperclip:ow,PauseBold:oS,PencilSimpleBold:ok,PlayBold:oD,Plus:oL,PlusBold:oy,PlusCircle:oF,PlusCircleBold:oM,PushPin:oR,PushPinSlash:oI,Question:oT,QuestionDuotone:ob,RocketLaunchBold:oO,SalsitaLogo:oW,Scan:ox,ShoppingCartSimple:oE,SignOut:oH,SignOutBold:oG,SlidersBold:oU,SlidersHorizontal:oV,SubsetOfRaw:oX,TagBold:ov,Trash:oz,TrashSimpleBold:oQ,UsersBold:oq,Warning:oK,WarningCircle:oN,WarningCircleBold:oJ,WarningCircleDuotone:oY,WarningDuotone:oZ,X:o$,XBold:o_,XCircle:o0};
@@ -1 +1 @@
1
- export const CustomIcons=["custom-ai-assistant","custom-ai-assistant-bold","custom-ar","custom-big-ai-assistant","custom-measure-cm","custom-measure-ft","custom-measure-in","custom-measure-m","custom-measure-mm","SalsitaLogo","subset-of-raw"];export const PhosphorIcons={bold:["arrow-right","building","caret-left","caret-right","copy-simple","dots-six-vertical","dots-three-vertical","eye-closed","eye","fire","folder-star","image-square","info","magnifying-glass","palette","paper-plane-right","pause","pencil-simple","play","plus","plus-circle","rocket-launch","sign-out","sliders","tag","trash-simple","users","warning-circle","x"],duotone:["check-circle","cube","question","warning-circle","warning"],regular:["alarm","arrow-clockwise","arrow-counter-clockwise","arrow-left","arrow-left","arrow-right","arrows-horizontal","arrows-in","arrows-out","arrows-out-cardinal","basketball","bounding-box","brackets-curly","camera-rotate","caret-down","caret-left","caret-right","check","check-circle","circle","cloud","cloud-arrow-up","cube","currency-dollar","currency-eur","cursor-click","dots-three-vertical","export","file-arrow-up","file-plus","file-text","flame","gear","folder-open","grid-four","hard-drives","house","image","info","key","lightbulb","list","list-bullets","list-checks","lock","magic-wand","navigation-arrow","paint-brush","palette","paper-plane-tilt","plus","plus-circle","push-pin","push-pin-slash","question","scan","shopping-cart-simple","sign-out","sliders-horizontal","trash","warning","warning-circle","x","x-circle"]};
1
+ export const CustomIcons=["custom-ai-assistant","custom-ai-assistant-bold","custom-ar","custom-big-ai-assistant","custom-measure-cm","custom-measure-ft","custom-measure-in","custom-measure-m","custom-measure-mm","SalsitaLogo","subset-of-raw"];export const PhosphorIcons={bold:["arrow-right","building","caret-left","caret-right","copy-simple","dots-six-vertical","dots-three-vertical","eye-closed","eye","fire","folder-star","image-square","info","magnifying-glass","palette","paper-plane-right","pause","pencil-simple","play","plus","plus-circle","rocket-launch","sign-out","sliders","tag","trash-simple","users","warning-circle","x"],duotone:["check-circle","cube","question","warning-circle","warning"],regular:["alarm","arrow-clockwise","arrow-counter-clockwise","arrow-left","arrow-left","arrow-right","arrows-horizontal","arrows-in","arrows-out","arrows-out-cardinal","basketball","bounding-box","brackets-curly","camera-rotate","caret-down","caret-left","caret-right","check","check-circle","circle","cloud","cloud-arrow-up","cube","currency-dollar","currency-eur","cursor-click","dots-three-vertical","export","file-arrow-up","file-plus","file-text","flame","gear","folder-open","grid-four","hard-drives","house","image","info","key","lightbulb","list","list-bullets","list-checks","lock","magic-wand","navigation-arrow","paint-brush","palette","paperclip","paper-plane-tilt","plus","plus-circle","push-pin","push-pin-slash","question","scan","shopping-cart-simple","sign-out","sliders-horizontal","trash","warning","warning-circle","x","x-circle"]};
@@ -44,7 +44,7 @@ declare module '@mui/material/styles' {
44
44
  PhxChat: 'root';
45
45
  PhxChatFooter: 'root' | 'formLayout' | 'input';
46
46
  PhxChatMessage: 'base' | 'assistant' | 'user' | 'widget' | 'error' | 'helper';
47
- PhxAssistantPanel: 'root' | 'header' | 'title' | 'closeButton' | 'thread' | 'greeting' | 'messages' | 'userMessage' | 'assistantMessage' | 'alert' | 'entityLink' | 'referenceLink' | 'referenceDetails' | 'image' | 'screenshotsLink' | 'screenshots' | 'form' | 'formGroup' | 'formGroupLabel' | 'formOptions' | 'formOptionsLabel' | 'formOptionsRow' | 'formReply' | 'formCard' | 'formCardImage' | 'formCardLabel' | 'formCardDescription' | 'formCardCheck' | 'formSwatch' | 'formSwatchImage' | 'formSwatchCheck' | 'formText' | 'formTextInput' | 'formNumber' | 'formConfirm' | 'formConfirmButtons' | 'formConfirmButton' | 'formSubmit' | 'formNote' | 'chips' | 'activity' | 'activityIcon' | 'chip' | 'undoButton' | 'status' | 'separator' | 'earlierButton' | 'notice' | 'newReplyButton' | 'composer' | 'inputFrame' | 'input' | 'sendButton' | 'stopButton' | 'hint';
47
+ PhxAssistantPanel: 'root' | 'header' | 'title' | 'closeButton' | 'thread' | 'greeting' | 'messages' | 'userMessage' | 'messageImages' | 'messageImage' | 'assistantMessage' | 'alert' | 'entityLink' | 'referenceLink' | 'referenceDetails' | 'image' | 'screenshotsLink' | 'screenshots' | 'form' | 'formGroup' | 'formGroupLabel' | 'formOptions' | 'formOptionsLabel' | 'formOptionsRow' | 'formReply' | 'formCard' | 'formCardImage' | 'formCardLabel' | 'formCardDescription' | 'formCardCheck' | 'formSwatch' | 'formSwatchImage' | 'formSwatchCheck' | 'formText' | 'formTextInput' | 'formNumber' | 'formConfirm' | 'formConfirmButtons' | 'formConfirmButton' | 'formSubmit' | 'formNote' | 'chips' | 'activity' | 'activityIcon' | 'chip' | 'undoButton' | 'status' | 'separator' | 'earlierButton' | 'notice' | 'newReplyButton' | 'composer' | 'inputFrame' | 'attachButton' | 'attachments' | 'attachment' | 'removeAttachment' | 'input' | 'sendButton' | 'stopButton' | 'hint' | 'attachmentNotice';
48
48
  PhxExportingOverlay: 'root' | 'message';
49
49
  PhxTopNavigation: 'root' | 'stepper' | 'step';
50
50
  PhxListSelector: 'root';
@@ -4,7 +4,7 @@ interface PathOperations {
4
4
  readonly sep: string;
5
5
  }
6
6
  /**
7
- * Build a chokidar v4 `ignored` callback from include + exclude glob arrays.
7
+ * Build a chokidar `ignored` callback from include + exclude glob arrays.
8
8
  *
9
9
  * Internal helper for {@link watch | the watch shim} in `./watch.ts`. Not part of the
10
10
  * public surface — consumers pass glob strings to `watch(...)` and this conversion
@@ -14,15 +14,15 @@ interface PathOperations {
14
14
  * - excludes are checked first against every path (file or directory). Patterns ending in
15
15
  * `/**` are auto-expanded to also match the bare directory form so chokidar prunes the
16
16
  * subtree instead of walking it.
17
- * - for directories, includes are not applied — chokidar must descend to find matching files.
18
- * - for files (or when stats is unavailable), includes are required when non-empty.
17
+ * - directories descend only towards an included literal file or within an included glob's prefix.
18
+ * - files require an include match when non-empty; discovery without stats remains permissive.
19
19
  */
20
20
  export declare const createWatchIgnoreMatcher: (params: {
21
21
  readonly includes?: readonly string[];
22
22
  readonly excludes?: readonly string[];
23
23
  /**
24
24
  * If set, absolute paths passed to the predicate are converted to paths relative to
25
- * this directory before being matched. Chokidar v4 passes absolute paths to `ignored`
25
+ * this directory before being matched. Chokidar passes absolute paths to `ignored`
26
26
  * even when `cwd` is set, but the include/exclude globs in this codebase are written
27
27
  * relative to the project root — this option bridges that.
28
28
  */
@@ -1 +1 @@
1
- import*as t from"node:path";import e from"picomatch";export const createWatchIgnoreMatcher=o=>{let{includes:r=[],excludes:n=[],cwd:l,pathOperations:s=t}=o,i=r.length>0?e([...r]):null,c=n.length>0?e((t=>{let e=[];for(let o of t)e.push(o),o.endsWith("/**")&&e.push(o.slice(0,-3));return e})(n)):null;return(t,e)=>{let o,r=(""===(o=l?s.relative(l,t):t)?".":o).split(s.sep).join("/");return!!c?.(r)||!!e&&!!e.isFile()&&!(!i||i(r))}};export const deriveWatchRoot=t=>{let e=t.split("/"),o=e.findIndex(t=>/[*?[{]/.test(t));return -1===o?t:0===o?".":e.slice(0,o).join("/")};let o=/[*?[{]/;export const containsGlob=t=>o.test(t);export const isRecursiveGlob=t=>t.includes("**");
1
+ import*as e from"node:path";import t from"picomatch";export const createWatchIgnoreMatcher=o=>{let{includes:s=[],excludes:r=[],cwd:i,pathOperations:l=e}=o,n="\\"===l.sep?e.win32.isAbsolute:e.posix.isAbsolute,p=e=>{let t=i?l.relative(i,e):e;return(""===t?".":t).split(l.sep).join("/")},c=s.map(e=>(i&&n(e)?p(e):e.split(l.sep).join("/")).replace(/^\.\/+/,"")),a=c.length>0?t(c):null,h=r.length>0?t((e=>{let t=[];for(let o of e)t.push(o),o.endsWith("/**")&&t.push(o.slice(0,-3));return t})(r)):null,u=c.map(e=>({path:deriveWatchRoot(e),isGlob:containsGlob(e)})),m=(e,t)=>{let o=l.relative(t,e);return""!==o&&".."!==o&&!o.startsWith(`..${l.sep}`)&&!n(o)};return(e,t)=>{let o=p(e);return!!h?.(o)||(t?.isDirectory()&&u.length>0?!u.some(({path:e,isGlob:t})=>m(e,o)||t&&(""===l.relative(e,o)||m(o,e))):!!t&&!!t.isFile()&&!(!a||a(o)))}};export const deriveWatchRoot=e=>{let t=e.split("/"),o=t.findIndex(e=>/[*?[{]/.test(e));return -1===o?e:0===o?".":t.slice(0,o).join("/")};let o=/[*?[{]/;export const containsGlob=e=>o.test(e);export const isRecursiveGlob=e=>e.includes("**");
@@ -16,10 +16,11 @@ export interface WatchOptions {
16
16
  * Watch files/directories with the chokidar v3 calling convention — accepts glob
17
17
  * strings for both `paths` and `ignored`.
18
18
  *
19
- * Backed by chokidar v4 internally (v4 dropped glob support; this shim restores it).
19
+ * Backed by chokidar's current concrete-path API; this shim supplies the glob filters.
20
20
  * Each input glob is classified:
21
21
  *
22
- * - **Concrete path** (no glob chars): added to watch roots as-is.
22
+ * - **Concrete path** (no glob chars): added as-is; with active glob filters an existing file's parent
23
+ * is watched instead, while the file's exact path stays in the include filter.
23
24
  * - **Recursive glob** (contains `**`): the prefix is used as the watch root, the full
24
25
  * pattern stays as an include filter so new files matching the glob still trigger events.
25
26
  * Example: `spec/**\/*.{yaml,yml}` → watches `spec/`, filters to `*.yaml`/`*.yml`.
@@ -27,8 +28,7 @@ export interface WatchOptions {
27
28
  * root, the full pattern stays as an include filter so new files matching the glob
28
29
  * still trigger events.
29
30
  *
30
- * Watch roots that don't exist at call time are dropped silently (chokidar v4 emits
31
- * `error` events for missing paths otherwise).
31
+ * Native roots missing at call time are dropped; other explicit inputs may still cover later files.
32
32
  *
33
33
  * Returns chokidar's `FSWatcher` — the `.on()` / `.close()` event API is unchanged.
34
34
  */
@@ -1 +1 @@
1
- import{watch as e}from"chokidar";import{statSync as t}from"node:fs";import{resolve as r}from"node:path";import{containsGlob as o,createWatchIgnoreMatcher as n,deriveWatchRoot as i,isRecursiveGlob as l}from"./glob-matcher.js";export const watch=(d,f)=>{let a=f?.cwd??process.cwd(),h=f?.ignored==null?[]:"string"==typeof f.ignored?[f.ignored]:f.ignored,p=[],g=[],c=new Set;for(let e of"string"==typeof d?[d]:d){if(!o(e)){t(r(a,e),{throwIfNoEntry:!1})&&(c.add(e),g.push(e));continue}if(!l(e)){p.push(e);let o=i(e);t(r(a,o),{throwIfNoEntry:!1})&&c.add(o);continue}p.push(e);let n=i(e);t(r(a,n),{throwIfNoEntry:!1})&&c.add(n)}if(p.length>0)for(let e of g){let o=t(r(a,e),{throwIfNoEntry:!1});p.push(o?.isDirectory()?`${e}/**/*`:e)}let u=[...c];return 0===u.length?s():e(u,{cwd:a,persistent:f?.persistent,ignoreInitial:f?.ignoreInitial,usePolling:f?.usePolling,interval:f?.interval,ignored:n({includes:p.length>0?p:void 0,excludes:h,cwd:a})})};let s=()=>{let t=e([],{persistent:!1});return setImmediate(()=>t.emit("ready")),t};
1
+ import{watch as e}from"chokidar";import{statSync as t}from"node:fs";import{dirname as r,resolve as o}from"node:path";import{containsGlob as i,createWatchIgnoreMatcher as n,deriveWatchRoot as l,isRecursiveGlob as s}from"./glob-matcher.js";export const watch=(a,f)=>{let p=f?.cwd??process.cwd(),g=f?.ignored==null?[]:"string"==typeof f.ignored?[f.ignored]:f.ignored,h=[],c=new Map,m=new Set;for(let e of"string"==typeof a?[a]:a){if(!i(e)){let r=t(o(p,e),{throwIfNoEntry:!1});r&&(m.add(e),c.set(e,r));continue}if(!s(e)){let r=l(e);t(o(p,r),{throwIfNoEntry:!1})&&(m.add(r),h.push(e));continue}let r=l(e);t(o(p,r),{throwIfNoEntry:!1})&&(m.add(r),h.push(e))}if(h.length>0)for(let[e,t]of c)h.push(t.isDirectory()?`${e}/**/*`:e),t.isFile()&&(m.delete(e),m.add(r(e)));let u=[...m];return 0===u.length?d():e(u,{cwd:p,persistent:f?.persistent,ignoreInitial:f?.ignoreInitial,usePolling:f?.usePolling,interval:f?.interval,ignored:n({includes:h.length>0?h:void 0,excludes:g,cwd:p})})};let d=()=>{let t=e([],{persistent:!1});return setImmediate(()=>t.emit("ready")),t};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salsita-ai/sdk",
3
- "version": "0.50.0-develop.c33986dc44",
3
+ "version": "0.50.0-develop.c402728d10",
4
4
  "description": "TypeScript SDK and CLI for building, running, and deploying Phoenix configurator applications.",
5
5
  "keywords": [
6
6
  "salsita",
@@ -308,8 +308,8 @@
308
308
  "yaml": "2.9.0",
309
309
  "yargs": "17.7.2",
310
310
  "zod": "3.25.76",
311
- "@salsita-ai/common": "0.50.0-develop.c33986dc44",
312
- "@salsita-ai/contracts": "0.50.0-develop.c33986dc44"
311
+ "@salsita-ai/contracts": "0.50.0-develop.c402728d10",
312
+ "@salsita-ai/common": "0.50.0-develop.c402728d10"
313
313
  },
314
314
  "devDependencies": {
315
315
  "@clerk/clerk-react": "5.61.8",