@salsita-ai/sdk 0.50.0-develop.e33c8d8711 → 0.50.0-develop.e54f47e4bf

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 (952) hide show
  1. package/README.md +8 -4
  2. package/dist/admin/default-admin-elements.d.ts +9 -0
  3. package/dist/admin/default-admin-elements.js +1 -0
  4. package/dist/admin/default-elements/built-in-entity-element.d.ts +10 -0
  5. package/dist/admin/default-elements/built-in-entity-element.js +1 -0
  6. package/dist/admin/default-elements/built-in-layout-element.d.ts +10 -0
  7. package/dist/admin/default-elements/built-in-layout-element.js +1 -0
  8. package/dist/admin/default-elements/index.d.ts +2 -0
  9. package/dist/admin/default-elements/index.js +1 -0
  10. package/dist/admin/index.d.ts +1 -0
  11. package/dist/admin/index.js +1 -1
  12. package/dist/application/index.d.ts +1 -0
  13. package/dist/application/index.js +1 -1
  14. package/dist/application/mount-application.d.ts +1 -1
  15. package/dist/application/mount-application.js +1 -1
  16. package/dist/application/mount-configurator.d.ts +19 -0
  17. package/dist/application/mount-configurator.js +1 -0
  18. package/dist/application/mounted-application-runtime.d.ts +4 -0
  19. package/dist/application/mounted-application-runtime.js +1 -0
  20. package/dist/application/register-web-component.d.ts +2 -0
  21. package/dist/application/register-web-component.js +1 -0
  22. package/dist/application-spec/caching/content-diff.js +1 -1
  23. package/dist/application-spec/core/application-file.d.ts +0 -2
  24. package/dist/application-spec/core/application-file.js +1 -1
  25. package/dist/application-spec/errors/diagnostic-codes.d.ts +11 -0
  26. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  27. package/dist/application-spec/errors/diagnostic-messages.d.ts +12 -1
  28. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  29. package/dist/application-spec/generate-application/code/common/code-imports.js +1 -1
  30. package/dist/application-spec/generate-application/code/common/env-reader.js +2 -2
  31. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  32. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  33. package/dist/application-spec/generate-application/code/common/single-quoted-string.d.ts +6 -0
  34. package/dist/application-spec/generate-application/code/common/single-quoted-string.js +1 -0
  35. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  36. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +10 -14
  37. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  38. package/dist/application-spec/generate-application/code/story-files.js +1 -1
  39. package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -0
  40. package/dist/application-spec/generate-application/code/templates/application-types.js +6 -6
  41. package/dist/application-spec/generate-application/code/templates/common/doc-comment.d.ts +2 -0
  42. package/dist/application-spec/generate-application/code/templates/common/doc-comment.js +1 -0
  43. package/dist/application-spec/generate-application/code/templates/common/format-property-key.d.ts +7 -0
  44. package/dist/application-spec/generate-application/code/templates/common/format-property-key.js +1 -0
  45. package/dist/application-spec/generate-application/code/templates/common/schema-to-type-string.js +3 -3
  46. package/dist/application-spec/generate-application/code/templates/configurator-globals.d.ts +2 -1
  47. package/dist/application-spec/generate-application/code/templates/configurator-globals.js +19 -6
  48. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +35 -0
  49. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +5 -0
  50. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.d.ts +1 -0
  51. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.js +1 -0
  52. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.d.ts +1 -1
  53. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +6 -6
  54. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +59 -63
  55. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +8 -0
  56. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  57. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-presets.js +1 -1
  58. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +13 -13
  59. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.d.ts +1 -1
  60. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.js +2 -2
  61. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +2 -1
  62. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  63. package/dist/application-spec/generate-application/code/templates/eslint-config.d.ts +5 -0
  64. package/dist/application-spec/generate-application/code/templates/eslint-config.js +4 -5
  65. package/dist/application-spec/generate-application/code/templates/gitignore.js +1 -3
  66. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.js +7 -7
  67. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.d.ts +12 -0
  68. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.js +7 -0
  69. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.d.ts +43 -0
  70. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +33 -0
  71. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +2 -0
  72. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  73. package/dist/application-spec/generate-application/code/templates/globals.js +24 -43
  74. package/dist/application-spec/generate-application/code/templates/index.d.ts +2 -2
  75. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  76. package/dist/application-spec/generate-application/code/templates/lingui-rc.d.ts +5 -0
  77. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +4 -4
  78. package/dist/application-spec/generate-application/code/templates/prettier-config.d.ts +5 -0
  79. package/dist/application-spec/generate-application/code/templates/prettier-config.js +4 -5
  80. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  81. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +1 -1
  82. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +5 -5
  83. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +3 -3
  84. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  85. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +2 -2
  86. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +26 -8
  87. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -2
  88. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
  89. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
  90. package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
  91. package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
  92. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
  93. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
  94. package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
  95. package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
  96. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
  97. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
  98. package/dist/application-spec/generate-application/code/templates/story/phx-module.d.ts +8 -2
  99. package/dist/application-spec/generate-application/code/templates/story/phx-module.js +15 -3
  100. package/dist/application-spec/generate-application/code/templates/story/wrapper.d.ts +3 -0
  101. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -1
  102. package/dist/application-spec/generate-application/implementations/phx-application-types.d.ts +25 -0
  103. package/dist/application-spec/generate-application/implementations/phx-application-types.js +1 -0
  104. package/dist/application-spec/generate-application/implementations/phx-domain.d.ts +36 -0
  105. package/dist/application-spec/generate-application/implementations/phx-domain.js +1 -0
  106. package/dist/application-spec/generate-application/implementations/phx-model.d.ts +24 -0
  107. package/dist/application-spec/generate-application/implementations/phx-model.js +1 -0
  108. package/dist/application-spec/generate-application/implementations/phx.d.ts +22 -0
  109. package/dist/application-spec/generate-application/implementations/phx.js +1 -0
  110. package/dist/application-spec/generate-application/index.d.ts +2 -0
  111. package/dist/application-spec/generate-application/index.js +1 -1
  112. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +6 -4
  113. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +1 -1
  114. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +9 -5
  115. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  116. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.d.ts +16 -0
  117. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.js +1 -0
  118. package/dist/application-spec/generate-application/runtime/admin-runtime/states-runtime.d.ts +2 -2
  119. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +29 -9
  120. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  121. package/dist/application-spec/generate-application/runtime/application-spec-slice.d.ts +71 -0
  122. package/dist/application-spec/generate-application/runtime/application-spec-slice.js +1 -0
  123. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +7 -5
  124. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +1 -1
  125. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +9 -6
  126. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  127. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.d.ts +16 -0
  128. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.js +1 -0
  129. package/dist/application-spec/generate-application/runtime/configurator-runtime/states-runtime.d.ts +2 -2
  130. package/dist/application-spec/generate-application/runtime/create-application.d.ts +57 -0
  131. package/dist/application-spec/generate-application/runtime/create-application.js +1 -0
  132. package/dist/application-spec/generate-application/runtime/index.d.ts +8 -0
  133. package/dist/application-spec/generate-application/runtime/index.js +1 -0
  134. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +2 -2
  135. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +2 -2
  136. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +2 -1
  137. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  138. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +2 -1
  139. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +1 -1
  140. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +3 -0
  141. package/dist/application-spec/generate-application/runtime/sections/component-optic.js +1 -1
  142. package/dist/application-spec/generate-application/runtime/sections/data-runtime.d.ts +4 -4
  143. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +15 -6
  144. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  145. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +9 -5
  146. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  147. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +3 -1
  148. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.js +1 -1
  149. package/dist/application-spec/generate-application/runtime/sections/theme-runtime.d.ts +2 -2
  150. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +3 -3
  151. package/dist/application-spec/generate-application/runtime/spec-code/index.d.ts +2 -0
  152. package/dist/application-spec/generate-application/runtime/spec-code/index.js +1 -0
  153. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +18 -0
  154. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.js +1 -0
  155. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.d.ts +17 -0
  156. package/dist/application-spec/generate-application/runtime/spec-runtime.d.ts +21 -0
  157. package/dist/application-spec/generate-application/runtime/spec-runtime.js +1 -0
  158. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +3 -2
  159. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +1 -0
  160. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -1
  161. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +44 -9
  162. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -1
  163. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +40 -0
  164. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.js +1 -0
  165. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +18 -0
  166. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  167. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.d.ts +16 -0
  168. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.js +9 -0
  169. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +33 -3
  170. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  171. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  172. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  173. package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +1 -0
  174. package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -1
  175. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.d.ts +6 -0
  176. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.js +1 -0
  177. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +3 -0
  178. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  179. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +3 -0
  180. package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
  181. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +24 -0
  182. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -0
  183. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.d.ts +13 -0
  184. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.js +1 -0
  185. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
  186. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
  187. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +6 -2
  188. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  189. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +3 -1
  190. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  191. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.d.ts +9 -0
  192. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.js +1 -0
  193. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +4 -1
  194. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  195. package/dist/client/authorized-client.d.ts +3 -1
  196. package/dist/client/authorized-client.js +1 -1
  197. package/dist/client/contract.d.ts +17 -0
  198. package/dist/client/index.d.ts +1 -1
  199. package/dist/client/local-authorized-client.d.ts +3 -1
  200. package/dist/client/local-authorized-client.js +1 -1
  201. package/dist/client/memory-authorized-client.d.ts +4 -1
  202. package/dist/client/memory-authorized-client.js +1 -1
  203. package/dist/client/phoenix-api.d.ts +228 -0
  204. package/dist/configurator/ConfiguratorApp.js +1 -1
  205. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.d.ts +2 -0
  206. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.js +5 -0
  207. package/dist/configurator/app-loader-content/index.d.ts +1 -0
  208. package/dist/configurator/app-loader-content/index.js +1 -0
  209. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  210. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +24 -4
  211. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  212. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +34 -7
  213. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  214. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.d.ts +1 -1
  215. package/dist/configurator/application-runtime/extensions/systems/canvas-system.d.ts +8 -0
  216. package/dist/configurator/application-runtime/extensions/systems/canvas-system.js +1 -1
  217. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.d.ts +8 -0
  218. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.js +1 -0
  219. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.d.ts +23 -1
  220. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.js +1 -1
  221. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.d.ts +12 -0
  222. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.js +1 -0
  223. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +14 -1
  224. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  225. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +52 -5
  226. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  227. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.d.ts +14 -5
  228. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.js +1 -1
  229. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  230. package/dist/configurator/common/configurator-interface.d.ts +121 -6
  231. package/dist/configurator/common/configurator-interface.js +1 -1
  232. package/dist/configurator/common/index.d.ts +2 -2
  233. package/dist/configurator/common/index.js +1 -1
  234. package/dist/configurator/configuration-not-found-page/BuiltInConfigurationNotFoundPage.d.ts +5 -0
  235. package/dist/configurator/configuration-not-found-page/BuiltInConfigurationNotFoundPage.js +1 -0
  236. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +6 -0
  237. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -0
  238. package/dist/configurator/configuration-not-found-page/index.d.ts +2 -0
  239. package/dist/configurator/configuration-not-found-page/index.js +1 -0
  240. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +12 -0
  241. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -0
  242. package/dist/configurator/configurator-context/PresetSelectionProvider.js +1 -1
  243. package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
  244. package/dist/configurator/configurator-context/ViewportStateSync.d.ts +2 -2
  245. package/dist/configurator/configurator-context/ViewportStateSync.js +1 -1
  246. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +10 -0
  247. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +1 -1
  248. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.d.ts +6 -0
  249. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.js +1 -0
  250. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.d.ts +7 -0
  251. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.js +1 -0
  252. package/dist/configurator/configurator-error-page/index.d.ts +2 -0
  253. package/dist/configurator/configurator-error-page/index.js +1 -0
  254. package/dist/configurator/index.d.ts +10 -0
  255. package/dist/configurator/index.js +1 -1
  256. package/dist/configurator/pages/ConfiguratorErrorPage.d.ts +0 -1
  257. package/dist/configurator/pages/ConfiguratorErrorPage.js +1 -1
  258. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  259. package/dist/configurator/pages/DefaultNotAuthenticatedPage.d.ts +8 -0
  260. package/dist/configurator/pages/DefaultNotAuthenticatedPage.js +1 -0
  261. package/dist/configurator/pages/DefaultPresetUi.d.ts +7 -0
  262. package/dist/configurator/pages/DefaultPresetUi.js +1 -0
  263. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  264. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  265. package/dist/configurator/pages/PresetCreationErrorPage.d.ts +1 -1
  266. package/dist/configurator/pages/PresetCreationErrorPage.js +1 -1
  267. package/dist/configurator/pages/RootPage.js +1 -1
  268. package/dist/configurator/pages/default-configurator-elements.d.ts +7 -1
  269. package/dist/configurator/pages/default-configurator-elements.js +1 -1
  270. package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +10 -0
  271. package/dist/configurator/pages/default-elements/built-in-entity-element.js +1 -0
  272. package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +10 -0
  273. package/dist/configurator/pages/default-elements/built-in-layout-element.js +1 -0
  274. package/dist/configurator/pages/default-elements/domain-control-elements.d.ts +6 -0
  275. package/dist/configurator/pages/default-elements/domain-control-elements.js +1 -0
  276. package/dist/configurator/pages/default-elements/index.d.ts +5 -0
  277. package/dist/configurator/pages/default-elements/index.js +1 -0
  278. package/dist/configurator/pages/default-elements/recipe-panel-elements.d.ts +3 -0
  279. package/dist/configurator/pages/default-elements/recipe-panel-elements.js +1 -0
  280. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.d.ts +3 -0
  281. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.js +1 -0
  282. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.d.ts +3 -0
  283. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.js +1 -0
  284. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.d.ts +3 -0
  285. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.js +1 -0
  286. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.d.ts +3 -0
  287. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.js +1 -0
  288. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.d.ts +3 -0
  289. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.js +1 -0
  290. package/dist/configurator/pages/default-elements/scene-controls/index.d.ts +6 -0
  291. package/dist/configurator/pages/default-elements/scene-controls/index.js +1 -0
  292. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.d.ts +6 -0
  293. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.js +1 -0
  294. package/dist/configurator/pages/default-elements/sidebar-footer-elements.d.ts +7 -0
  295. package/dist/configurator/pages/default-elements/sidebar-footer-elements.js +1 -0
  296. package/dist/configurator/pages/default-elements/toolbar-elements.d.ts +7 -0
  297. package/dist/configurator/pages/default-elements/toolbar-elements.js +1 -0
  298. package/dist/configurator/pages/error-boundaries/GeneralErrorBoundary.js +1 -1
  299. package/dist/configurator/pages/error-boundaries/LoadingErrorBoundary.js +1 -1
  300. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.d.ts +4 -0
  301. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.js +1 -0
  302. package/dist/configurator/preset-screen-elements/PresetPageActionElement.d.ts +4 -0
  303. package/dist/configurator/preset-screen-elements/PresetPageActionElement.js +1 -0
  304. package/dist/configurator/preset-screen-elements/index.d.ts +2 -0
  305. package/dist/configurator/preset-screen-elements/index.js +1 -0
  306. package/dist/configurator/scene/index.d.ts +1 -0
  307. package/dist/configurator/scene/index.js +1 -1
  308. package/dist/configurator/scene/scene-controls/DeleteEntityFab.js +1 -1
  309. package/dist/configurator/scene/scene-controls/SelectionHotspot.js +1 -1
  310. package/dist/configurator/scene/scene-controls/ToolFab.d.ts +4 -0
  311. package/dist/configurator/scene/scene-controls/ToolFab.js +1 -1
  312. package/dist/configurator/scene/scene-controls/use-scene-control-tooltip.d.ts +2 -1
  313. package/dist/configurator/scene/scene-entity/scene-controls/SceneEntityHtmlHotspots.js +1 -1
  314. package/dist/configurator/toolbar-actions/index.d.ts +3 -0
  315. package/dist/configurator/toolbar-actions/index.js +1 -0
  316. package/dist/configurator/toolbar-actions/use-assistant-panel.d.ts +18 -0
  317. package/dist/configurator/toolbar-actions/use-assistant-panel.js +1 -0
  318. package/dist/configurator/toolbar-actions/use-measurements.d.ts +35 -0
  319. package/dist/configurator/toolbar-actions/use-measurements.js +1 -0
  320. package/dist/configurator/toolbar-actions/use-toolbar-actions.d.ts +100 -0
  321. package/dist/configurator/toolbar-actions/use-toolbar-actions.js +1 -0
  322. package/dist/configurator/toolbar-actions/use-toolbar-help.d.ts +7 -0
  323. package/dist/configurator/toolbar-actions/use-toolbar-help.js +1 -0
  324. package/dist/configurator/ui/assistant/AssistantChips.d.ts +3 -2
  325. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  326. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +1 -1
  327. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  328. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  329. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  330. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +8 -0
  331. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -0
  332. package/dist/configurator/ui/assistant/alert/index.d.ts +2 -0
  333. package/dist/configurator/ui/assistant/alert/index.js +1 -0
  334. package/dist/configurator/ui/assistant/alert/remark-alerts.d.ts +10 -0
  335. package/dist/configurator/ui/assistant/alert/remark-alerts.js +1 -0
  336. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +1 -1
  337. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -1
  338. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +1 -1
  339. package/dist/configurator/ui/assistant/entity-link/index.d.ts +0 -1
  340. package/dist/configurator/ui/assistant/entity-link/index.js +1 -1
  341. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -1
  342. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +1 -1
  343. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -1
  344. package/dist/configurator/ui/assistant/form/form-model.d.ts +3 -4
  345. package/dist/configurator/ui/assistant/form/form-state.d.ts +1 -1
  346. package/dist/configurator/ui/assistant/form/index.d.ts +2 -0
  347. package/dist/configurator/ui/assistant/form/index.js +1 -1
  348. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +3 -2
  349. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -1
  350. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +1 -1
  351. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -1
  352. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +3 -0
  353. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.js +1 -0
  354. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.d.ts +31 -0
  355. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.js +1 -0
  356. package/dist/configurator/ui/assistant/form/{form-element-definition.d.ts → registry/form-element-definition.d.ts} +3 -1
  357. package/dist/configurator/ui/assistant/form/registry/form-element-definition.js +1 -0
  358. package/dist/configurator/ui/assistant/form/{form-registry.d.ts → registry/form-registry.d.ts} +2 -2
  359. package/dist/configurator/ui/assistant/form/registry/form-registry.js +1 -0
  360. package/dist/configurator/ui/assistant/form/registry/index.d.ts +6 -0
  361. package/dist/configurator/ui/assistant/form/registry/index.js +1 -0
  362. package/dist/configurator/ui/assistant/form/registry/use-form-registry.d.ts +8 -0
  363. package/dist/configurator/ui/assistant/form/registry/use-form-registry.js +1 -0
  364. package/dist/configurator/ui/assistant/form-elements/FormCard.d.ts +9 -0
  365. package/dist/configurator/ui/assistant/form-elements/FormCard.js +1 -0
  366. package/dist/configurator/ui/assistant/form-elements/FormConfirm.d.ts +9 -0
  367. package/dist/configurator/ui/assistant/form-elements/FormConfirm.js +1 -0
  368. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +4 -1
  369. package/dist/configurator/ui/assistant/form-elements/FormNumber.d.ts +9 -0
  370. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -0
  371. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +4 -1
  372. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +4 -1
  373. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -1
  374. package/dist/configurator/ui/assistant/form-elements/FormSwatch.d.ts +10 -0
  375. package/dist/configurator/ui/assistant/form-elements/FormSwatch.js +1 -0
  376. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +4 -1
  377. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -1
  378. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.d.ts +10 -0
  379. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.js +1 -0
  380. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +20 -16
  381. package/dist/configurator/ui/assistant/form-elements/index.d.ts +4 -0
  382. package/dist/configurator/ui/assistant/form-elements/index.js +1 -1
  383. package/dist/configurator/ui/assistant/index.d.ts +3 -0
  384. package/dist/configurator/ui/assistant/index.js +1 -1
  385. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +16 -0
  386. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -0
  387. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.d.ts +34 -0
  388. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.js +1 -0
  389. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.d.ts +25 -0
  390. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.js +1 -0
  391. package/dist/configurator/ui/assistant/reference-link/index.d.ts +3 -0
  392. package/dist/configurator/ui/assistant/reference-link/index.js +1 -0
  393. package/dist/configurator/ui/assistant/reference-link/reference-styles.d.ts +12 -0
  394. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -0
  395. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.d.ts +8 -0
  396. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.js +1 -0
  397. package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +9 -0
  398. package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -0
  399. package/dist/configurator/ui/assistant/resource-image/index.d.ts +3 -0
  400. package/dist/configurator/ui/assistant/resource-image/index.js +1 -0
  401. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +2 -0
  402. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -0
  403. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.d.ts +5 -0
  404. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.js +1 -0
  405. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +9 -0
  406. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -0
  407. package/dist/configurator/ui/assistant/screenshots/index.d.ts +2 -0
  408. package/dist/configurator/ui/assistant/screenshots/index.js +1 -0
  409. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +22 -0
  410. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -0
  411. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.d.ts +8 -0
  412. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.js +1 -0
  413. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +2 -2
  414. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  415. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  416. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -1
  417. package/dist/configurator/ui/configurator-layout/slots/canvas/LayoutCanvas.js +1 -1
  418. package/dist/configurator/ui/configurator-layout/slots/canvas/SharedCanvas.js +1 -1
  419. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.d.ts +1 -1
  420. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.js +1 -1
  421. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  422. package/dist/configurator/ui/configurator-layout/slots/services/Services.js +1 -1
  423. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.d.ts +1 -1
  424. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.js +1 -1
  425. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.d.ts +5 -0
  426. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.js +1 -0
  427. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  428. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +1 -1
  429. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -1
  430. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +1 -1
  431. package/dist/configurator/ui/index.d.ts +1 -0
  432. package/dist/configurator/ui/index.js +1 -1
  433. package/dist/configurator/ui/legacy/layout/common/CommonFinalizeButton.js +1 -1
  434. package/dist/configurator/ui/legacy/layout/common/CommonSummaryButton.js +1 -1
  435. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  436. package/dist/configurator/ui/legacy/layout/common/ReactiveInterfaceLayout.js +1 -1
  437. package/dist/configurator/ui/legacy/layout/common/ResponsiveFinalizeButton.js +1 -1
  438. package/dist/configurator/ui/legacy/layout/common/SummaryReadLayout.js +1 -1
  439. package/dist/configurator/ui/legacy/layout/simple/SimpleOwnerLayout.js +1 -1
  440. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  441. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  442. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  443. package/dist/configurator/ui/legacy/layout/steps/StepsSidebarFooter.js +1 -1
  444. package/dist/configurator/ui/legacy/layout/tabs/TabsOwnerLayout.js +1 -1
  445. package/dist/configurator/ui/legacy/toolbar/common/DimensionUnitSelector.js +1 -1
  446. package/dist/configurator/ui/legacy/toolbar/common/MeasurementsIndicatorsSwitch.js +1 -1
  447. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/FullscreenToolbarAction.js +1 -1
  448. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/HelpToolbarAction.js +1 -1
  449. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/MeasurementsToolbarAction.js +1 -1
  450. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/UndoRedoToolbarGroup.js +1 -1
  451. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.d.ts +0 -7
  452. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.js +2 -6
  453. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -1
  454. package/dist/configurator/ui/phoenix-layout-elements/EnterFullscreenToolbarButton.js +1 -1
  455. package/dist/configurator/ui/phoenix-layout-elements/ExitFullscreenToolbarButton.js +1 -1
  456. package/dist/configurator/ui/phoenix-layout-elements/HelpToolbarButton.js +1 -1
  457. package/dist/configurator/ui/phoenix-layout-elements/LanguageMenuAction.js +1 -1
  458. package/dist/configurator/ui/phoenix-layout-elements/LanguageToolbarButton.js +1 -1
  459. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.d.ts +1 -0
  460. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.js +1 -1
  461. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.d.ts +1 -0
  462. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.js +1 -1
  463. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsMenuAction.js +1 -1
  464. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsToolbarButton.js +1 -1
  465. package/dist/configurator/ui/phoenix-layout-elements/RedoToolbarButton.js +1 -1
  466. package/dist/configurator/ui/phoenix-layout-elements/ShareToolbarButton.js +1 -1
  467. package/dist/configurator/ui/phoenix-layout-elements/UndoToolbarButton.js +1 -1
  468. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  469. package/dist/configurator/ui/phoenix-layout-elements/header/common/horizontal-tabs/DesktopHorizontalTabs.js +1 -1
  470. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.d.ts +1 -1
  471. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.js +1 -1
  472. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -8
  473. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  474. package/dist/configurator/ui/phoenix-layout-elements/index.d.ts +8 -1
  475. package/dist/configurator/ui/phoenix-layout-elements/index.js +1 -1
  476. package/dist/configurator/ui/phoenix-layout-elements/measurements/DimensionUnitSelector.js +1 -1
  477. package/dist/configurator/ui/phoenix-layout-elements/measurements/MeasurementsIndicatorsSwitch.js +1 -1
  478. package/dist/configurator/ui/phoenix-layout-elements/share/ShareModal.js +1 -1
  479. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.d.ts +7 -8
  480. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.js +1 -1
  481. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/BasicFinalizeButton.js +1 -1
  482. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/CustomFinalizeButton.js +1 -1
  483. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/EnterSummaryButton.js +1 -1
  484. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/FinalizeActions.js +1 -1
  485. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/NextStepButton.js +1 -1
  486. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  487. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  488. package/dist/configurator/ui/preset-layout/PresetUi.d.ts +4 -2
  489. package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
  490. package/dist/configurator/ui/preset-layout/index.d.ts +6 -1
  491. package/dist/configurator/ui/preset-layout/index.js +1 -1
  492. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.d.ts +10 -0
  493. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -0
  494. package/dist/configurator/ui/save-message-snackbars/index.d.ts +1 -0
  495. package/dist/configurator/ui/save-message-snackbars/index.js +1 -0
  496. package/dist/docs/complex-use-cases/focus-mode.mdx +2 -0
  497. package/dist/docs/controls/select-child-entity/cardselect.mdx +1 -0
  498. package/dist/docs/fabs/basic.mdx +6 -2
  499. package/dist/docs/index.json +95 -1
  500. package/dist/docs/integrations/webcomponent-api/basics.mdx +2 -0
  501. package/dist/docs/layouts/custom-layout.mdx +637 -165
  502. package/dist/docs/layouts/gallery/ardent-compressor.mdx +3516 -0
  503. package/dist/docs/layouts/gallery/corvid-drone.mdx +3428 -0
  504. package/dist/docs/layouts/gallery/fenwick-window.mdx +2803 -0
  505. package/dist/docs/layouts/gallery/ferrule-bar-station.mdx +6567 -0
  506. package/dist/docs/layouts/gallery/kestrel-kettle.mdx +1858 -0
  507. package/dist/docs/layouts/gallery/nightjar-guitar.mdx +3698 -0
  508. package/dist/docs/layouts/gallery/sunfold-solar.mdx +2683 -0
  509. package/dist/docs/layouts/gallery/tidepool-aquascape.mdx +5203 -0
  510. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  511. package/dist/docs/other-features/error-5xx.mdx +1 -1
  512. package/dist/docs/other-features/navigation-hotspot.mdx +2 -0
  513. package/dist/docs/other-features/not-found-404.mdx +1 -1
  514. package/dist/docs/phoenix/clerk-sign-in.mdx +1 -1
  515. package/dist/docs/phoenix/configurator-interface.mdx +223 -59
  516. package/dist/docs/phoenix/domain-model.mdx +2 -0
  517. package/dist/docs/phoenix/finalization.mdx +1 -1
  518. package/dist/docs/phoenix/getting-started.mdx +5 -3
  519. package/dist/docs/phoenix/layout-slots.mdx +23 -23
  520. package/dist/docs/phoenix/localization.mdx +6 -2
  521. package/dist/docs/phoenix/migration-guide.mdx +12 -10
  522. package/dist/docs/phoenix/phoenix-cli.mdx +31 -16
  523. package/dist/docs/phoenix/project-structure.mdx +52 -30
  524. package/dist/docs/phoenix/quickstart.mdx +7 -7
  525. package/dist/docs/phoenix/sdk-builder-workflow.mdx +11 -9
  526. package/dist/docs/phoenix/sessions-and-access.mdx +2 -0
  527. package/dist/docs/phoenix/testing.mdx +8 -0
  528. package/dist/docs/selection-and-highlight/hotspots.mdx +2 -0
  529. package/dist/domain/application/assistant/assistant-manifest.d.ts +16 -1
  530. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +8 -1
  531. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  532. package/dist/domain/application/assistant/form/assistant-form-element-name.d.ts +11 -0
  533. package/dist/domain/application/assistant/form/assistant-form-element-name.js +8 -0
  534. package/dist/domain/application/assistant/form/assistant-form-elements.d.ts +174 -0
  535. package/dist/domain/application/assistant/form/assistant-form-elements.js +1 -0
  536. package/dist/domain/application/assistant/form/assistant-resource-path.d.ts +10 -0
  537. package/dist/domain/application/assistant/form/assistant-resource-path.js +1 -0
  538. package/dist/domain/application/assistant/form/index.d.ts +4 -0
  539. package/dist/domain/application/assistant/form/index.js +1 -0
  540. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  541. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  542. package/dist/domain/application/assistant/index.d.ts +2 -3
  543. package/dist/domain/application/assistant/index.js +1 -1
  544. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
  545. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +2 -0
  546. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
  547. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -1
  548. package/dist/domain/application/configurator-builder.d.ts +7 -1
  549. package/dist/domain/application/configurator-builder.js +1 -1
  550. package/dist/domain/application/index.d.ts +1 -1
  551. package/dist/domain/application/index.js +1 -1
  552. package/dist/domain/application/standard-properties.js +1 -1
  553. package/dist/domain/application/web-component-property.d.ts +3 -1
  554. package/dist/domain/application/web-component-property.js +1 -1
  555. package/dist/domain/available-system-components.d.ts +1 -1
  556. package/dist/domain/available-system-components.js +1 -1
  557. package/dist/domain/domain-builder.d.ts +9 -3
  558. package/dist/domain/domain-builder.js +1 -1
  559. package/dist/domain/domain-context/store-system/store-system.d.ts +5 -0
  560. package/dist/domain/domain-context/store-system/store-system.js +1 -1
  561. package/dist/domain/domain-runtime/application.d.ts +39 -0
  562. package/dist/domain/domain-runtime/application.js +1 -0
  563. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +1 -0
  564. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  565. package/dist/domain/domain-runtime/domain-runtime.d.ts +44 -4
  566. package/dist/domain/domain-runtime/domain-runtime.js +1 -1
  567. package/dist/domain/domain-runtime/environment/initialize.d.ts +1 -1
  568. package/dist/domain/domain-runtime/environment/types.d.ts +1 -1
  569. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +2 -0
  570. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -1
  571. package/dist/domain/domain-runtime/index.d.ts +2 -1
  572. package/dist/domain/domain-runtime/index.js +1 -1
  573. package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
  574. package/dist/domain/domain-runtime/spec/index.js +1 -1
  575. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  576. package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +27 -12
  577. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -1
  578. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.d.ts +12 -0
  579. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +1 -0
  580. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +3 -1
  581. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -1
  582. package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.d.ts +23 -0
  583. package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.js +1 -0
  584. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +3 -4
  585. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -1
  586. package/dist/domain/domain-runtime/spec/selectors.d.ts +3 -1
  587. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  588. package/dist/domain/domain-runtime/web-component/actions.d.ts +3 -0
  589. package/dist/domain/domain-runtime/web-component/actions.js +1 -1
  590. package/dist/domain/domain-runtime/web-component/initialize.d.ts +1 -0
  591. package/dist/domain/domain-runtime/web-component/initialize.js +1 -1
  592. package/dist/domain/domain-runtime/web-component/selectors.d.ts +2 -0
  593. package/dist/domain/domain-runtime/web-component/selectors.js +1 -1
  594. package/dist/domain/domain-runtime/web-component/types.d.ts +6 -3
  595. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +24 -0
  596. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -0
  597. package/dist/domain/extensions/{client-side-image.d.ts → export-images/client-side-image.d.ts} +2 -2
  598. package/dist/domain/extensions/export-images/client-side-image.js +1 -0
  599. package/dist/domain/extensions/export-images/index.d.ts +3 -0
  600. package/dist/domain/extensions/export-images/index.js +1 -0
  601. package/dist/domain/extensions/{save-template-thumbnail.d.ts → export-images/save-template-thumbnail.d.ts} +2 -2
  602. package/dist/domain/extensions/export-images/save-template-thumbnail.js +1 -0
  603. package/dist/domain/extensions/index.d.ts +1 -2
  604. package/dist/domain/extensions/index.js +1 -1
  605. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +9 -0
  606. package/dist/domain/system-components/child-entity-selection.js +1 -1
  607. package/dist/domain/system-components/common/scene-entity-control-schema.d.ts +3 -0
  608. package/dist/domain/system-components/common/scene-entity-control-schema.js +1 -1
  609. package/dist/editor/Editor.d.ts +7 -0
  610. package/dist/editor/Editor.js +1 -1
  611. package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
  612. package/dist/editor/domain-editors/apply-spec-update.d.ts +10 -2
  613. package/dist/editor/domain-editors/apply-spec-update.js +1 -1
  614. package/dist/editor/domain-editors/use-implementation-files.d.ts +6 -14
  615. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  616. package/dist/editor/mocks/CreateMockYaml.js +2 -2
  617. package/dist/editor/mocks/EditorMockContext.d.ts +2 -0
  618. package/dist/editor/mocks/EditorMockContext.js +1 -1
  619. package/dist/editor/screenshot/ScreenshotHandler.js +1 -1
  620. package/dist/i18n/locales/cs/messages.js +1 -1
  621. package/dist/i18n/locales/da/messages.js +1 -1
  622. package/dist/i18n/locales/de/messages.js +1 -1
  623. package/dist/i18n/locales/de-AT/messages.js +1 -1
  624. package/dist/i18n/locales/en/messages.js +1 -1
  625. package/dist/i18n/locales/en-AU/messages.js +1 -1
  626. package/dist/i18n/locales/en-GB/messages.js +1 -1
  627. package/dist/i18n/locales/es/messages.js +1 -1
  628. package/dist/i18n/locales/fr/messages.js +1 -1
  629. package/dist/i18n/locales/hu/messages.js +1 -1
  630. package/dist/i18n/locales/it/messages.js +1 -1
  631. package/dist/i18n/locales/nl/messages.js +1 -1
  632. package/dist/i18n/locales/pl/messages.js +1 -1
  633. package/dist/i18n/locales/pt/messages.js +1 -1
  634. package/dist/i18n/locales/ro/messages.js +1 -1
  635. package/dist/i18n/locales/sk/messages.js +1 -1
  636. package/dist/i18n/locales/tr/messages.js +1 -1
  637. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  638. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  639. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +95 -80
  640. package/dist/legacy/domain-spec/spec/domain-spec.js +1 -1
  641. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  642. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  643. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  644. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +11 -5
  645. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +10 -11
  646. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +9 -10
  647. package/dist/phoenix/application-spec/application-spec-builder.d.ts +0 -2
  648. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  649. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +0 -2
  650. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  651. package/dist/phoenix/application-spec/generate-application-spec-story.js +2 -2
  652. package/dist/phoenix/application-spec/generate-project-files.d.ts +0 -2
  653. package/dist/phoenix/application-spec/project-files.js +1 -1
  654. package/dist/phoenix/bin.d.ts +2 -0
  655. package/dist/phoenix/bin.js +2 -0
  656. package/dist/phoenix/check-configs/built-in-eslint-config.d.ts +9 -0
  657. package/dist/phoenix/check-configs/built-in-eslint-config.js +1 -0
  658. package/dist/phoenix/check-configs/eslint-config.d.ts +10 -0
  659. package/dist/phoenix/check-configs/eslint-config.js +1 -0
  660. package/dist/phoenix/check-configs/index.d.ts +8 -0
  661. package/dist/phoenix/check-configs/index.js +1 -0
  662. package/dist/phoenix/check-configs/typescript-project.d.ts +5 -0
  663. package/dist/phoenix/check-configs/typescript-project.js +1 -0
  664. package/dist/phoenix/cli.d.ts +0 -1
  665. package/dist/phoenix/cli.js +1 -2
  666. package/dist/phoenix/commands/build.js +1 -1
  667. package/dist/phoenix/commands/check.js +1 -1
  668. package/dist/phoenix/commands/clean.js +1 -1
  669. package/dist/phoenix/commands/deploy.js +2 -2
  670. package/dist/phoenix/commands/deps/deps.d.ts +22 -1
  671. package/dist/phoenix/commands/deps/deps.js +2 -2
  672. package/dist/phoenix/commands/deps/index.d.ts +1 -1
  673. package/dist/phoenix/commands/deps/index.js +1 -1
  674. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -1
  675. package/dist/phoenix/commands/dev.js +4 -4
  676. package/dist/phoenix/commands/fix.js +1 -1
  677. package/dist/phoenix/commands/init.d.ts +17 -5
  678. package/dist/phoenix/commands/init.js +1 -1
  679. package/dist/phoenix/commands/link.js +1 -1
  680. package/dist/phoenix/commands/prettier.js +1 -1
  681. package/dist/phoenix/commands/sync.js +1 -1
  682. package/dist/phoenix/commands/unlink.js +1 -1
  683. package/dist/phoenix/services/application-spec-project-watcher.d.ts +0 -2
  684. package/dist/phoenix/services/application-spec-project-watcher.js +2 -2
  685. package/dist/phoenix/services/lingui.d.ts +8 -0
  686. package/dist/phoenix/services/lingui.js +1 -1
  687. package/dist/phoenix/services/swc.js +1 -1
  688. package/dist/phoenix/services/vite-config.js +1 -1
  689. package/dist/phoenix/utils/index.d.ts +3 -2
  690. package/dist/phoenix/utils/index.js +1 -1
  691. package/dist/phoenix/utils/node-version/index.d.ts +1 -0
  692. package/dist/phoenix/utils/node-version/index.js +1 -0
  693. package/dist/phoenix/utils/node-version/supported-node-version.d.ts +12 -0
  694. package/dist/phoenix/utils/node-version/supported-node-version.js +4 -0
  695. package/dist/phoenix/utils/package-info.d.ts +0 -9
  696. package/dist/phoenix/utils/package-info.js +1 -1
  697. package/dist/phoenix/utils/package-manager/index.d.ts +2 -0
  698. package/dist/phoenix/utils/package-manager/index.js +1 -0
  699. package/dist/phoenix/utils/package-manager/package-manager-commands.d.ts +19 -0
  700. package/dist/phoenix/utils/package-manager/package-manager-commands.js +1 -0
  701. package/dist/phoenix/utils/package-manager/pnpm-project.d.ts +9 -0
  702. package/dist/phoenix/utils/package-manager/pnpm-project.js +1 -0
  703. package/dist/phoenix/utils/run-command.d.ts +11 -0
  704. package/dist/phoenix/utils/run-command.js +1 -1
  705. package/dist/phoenix/utils/sdk-tool/index.d.ts +1 -0
  706. package/dist/phoenix/utils/sdk-tool/index.js +1 -0
  707. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.d.ts +15 -0
  708. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.js +1 -0
  709. package/dist/react-sdk/application-runtime/common-services/analytics/analytics-service.d.ts +1 -1
  710. package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.d.ts +4 -0
  711. package/dist/react-sdk/application-runtime/common-services/analytics/index.d.ts +1 -0
  712. package/dist/react-sdk/application-runtime/common-services/analytics/index.js +1 -1
  713. package/dist/react-sdk/application-runtime/common-services/initialize.d.ts +2 -2
  714. package/dist/react-sdk/application-runtime/hooks/index.d.ts +2 -0
  715. package/dist/react-sdk/application-runtime/hooks/index.js +1 -1
  716. package/dist/react-sdk/application-runtime/hooks/loading/index.d.ts +5 -0
  717. package/dist/react-sdk/application-runtime/hooks/loading/index.js +1 -0
  718. package/dist/react-sdk/application-runtime/hooks/loading/loader-host-context.d.ts +11 -0
  719. package/dist/react-sdk/application-runtime/hooks/loading/loader-host-context.js +1 -0
  720. package/dist/react-sdk/application-runtime/hooks/loading/use-is-awaiting-loading-phase.d.ts +8 -0
  721. package/dist/react-sdk/application-runtime/hooks/loading/use-is-awaiting-loading-phase.js +1 -0
  722. package/dist/react-sdk/application-runtime/hooks/loading/use-is-loader-hosted.d.ts +7 -0
  723. package/dist/react-sdk/application-runtime/hooks/loading/use-is-loader-hosted.js +1 -0
  724. package/dist/react-sdk/application-runtime/hooks/loading/use-loading-actions.d.ts +9 -0
  725. package/dist/react-sdk/application-runtime/hooks/loading/use-loading-actions.js +1 -0
  726. package/dist/react-sdk/application-runtime/hooks/loading/use-loading-application.d.ts +24 -0
  727. package/dist/react-sdk/application-runtime/hooks/loading/use-loading-application.js +1 -0
  728. package/dist/react-sdk/application-runtime/hooks/responsive/index.d.ts +3 -0
  729. package/dist/react-sdk/application-runtime/hooks/responsive/index.js +1 -0
  730. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.d.ts +9 -0
  731. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.js +1 -0
  732. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.d.ts +26 -0
  733. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.js +1 -0
  734. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.d.ts +10 -0
  735. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.js +1 -0
  736. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.d.ts +24 -0
  737. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.js +1 -0
  738. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +5 -0
  739. package/dist/react-sdk/application-runtime/hooks/use-access-service.js +1 -1
  740. package/dist/react-sdk/application-runtime/hooks/use-phoenix-element-slots.d.ts +2 -1
  741. package/dist/react-sdk/application-runtime/hooks/use-web-component-readonly-sync.d.ts +4 -11
  742. package/dist/react-sdk/application-runtime/hooks/use-web-component-readonly-sync.js +1 -1
  743. package/dist/react-sdk/application-runtime/hooks/use-web-component.d.ts +5 -0
  744. package/dist/react-sdk/application-runtime/hooks/use-web-component.js +1 -1
  745. package/dist/react-sdk/application-runtime/host-properties/actions.d.ts +15 -0
  746. package/dist/react-sdk/application-runtime/host-properties/actions.js +1 -0
  747. package/dist/react-sdk/application-runtime/host-properties/connect-host-properties.d.ts +30 -0
  748. package/dist/react-sdk/application-runtime/host-properties/connect-host-properties.js +1 -0
  749. package/dist/react-sdk/application-runtime/host-properties/domain-host-properties.d.ts +7 -0
  750. package/dist/react-sdk/application-runtime/host-properties/domain-host-properties.js +1 -0
  751. package/dist/react-sdk/application-runtime/host-properties/host-property-descriptors.d.ts +21 -0
  752. package/dist/react-sdk/application-runtime/host-properties/host-property-descriptors.js +1 -0
  753. package/dist/react-sdk/application-runtime/host-properties/host-property-scopes.d.ts +42 -0
  754. package/dist/react-sdk/application-runtime/host-properties/host-property-scopes.js +1 -0
  755. package/dist/react-sdk/application-runtime/host-properties/index.d.ts +8 -0
  756. package/dist/react-sdk/application-runtime/host-properties/index.js +1 -0
  757. package/dist/react-sdk/application-runtime/host-properties/initialize.d.ts +7 -0
  758. package/dist/react-sdk/application-runtime/host-properties/initialize.js +1 -0
  759. package/dist/react-sdk/application-runtime/host-properties/selectors.d.ts +54 -0
  760. package/dist/react-sdk/application-runtime/host-properties/selectors.js +1 -0
  761. package/dist/react-sdk/application-runtime/host-properties/types.d.ts +18 -0
  762. package/dist/react-sdk/application-runtime/host-properties/types.js +1 -0
  763. package/dist/react-sdk/application-runtime/index.d.ts +3 -0
  764. package/dist/react-sdk/application-runtime/integration/initialize.d.ts +7 -6
  765. package/dist/react-sdk/application-runtime/integration/initialize.js +1 -1
  766. package/dist/react-sdk/application-runtime/integration/selectors.d.ts +11 -2
  767. package/dist/react-sdk/application-runtime/integration/selectors.js +1 -1
  768. package/dist/react-sdk/application-runtime/integration/types.d.ts +5 -2
  769. package/dist/react-sdk/application-runtime/loading/actions.d.ts +45 -0
  770. package/dist/react-sdk/application-runtime/loading/actions.js +1 -0
  771. package/dist/react-sdk/application-runtime/loading/index.d.ts +4 -0
  772. package/dist/react-sdk/application-runtime/loading/index.js +1 -0
  773. package/dist/react-sdk/application-runtime/loading/initialize.d.ts +3 -0
  774. package/dist/react-sdk/application-runtime/loading/initialize.js +1 -0
  775. package/dist/react-sdk/application-runtime/loading/selectors.d.ts +18 -0
  776. package/dist/react-sdk/application-runtime/loading/selectors.js +1 -0
  777. package/dist/react-sdk/application-runtime/loading/types.d.ts +59 -0
  778. package/dist/react-sdk/application-runtime/loading/types.js +1 -0
  779. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  780. package/dist/react-sdk/application-runtime/provider/ApplicationRuntime.d.ts +6 -0
  781. package/dist/react-sdk/application-runtime/provider/ApplicationRuntime.js +1 -1
  782. package/dist/react-sdk/application-runtime/provider/ApplicationType.d.ts +7 -0
  783. package/dist/react-sdk/application-runtime/provider/ApplicationType.js +1 -1
  784. package/dist/react-sdk/application-runtime/responsive/actions.d.ts +47 -0
  785. package/dist/react-sdk/application-runtime/responsive/actions.js +1 -0
  786. package/dist/react-sdk/application-runtime/responsive/index.d.ts +4 -0
  787. package/dist/react-sdk/application-runtime/responsive/index.js +1 -0
  788. package/dist/react-sdk/application-runtime/responsive/initialize.d.ts +3 -0
  789. package/dist/react-sdk/application-runtime/responsive/initialize.js +1 -0
  790. package/dist/react-sdk/application-runtime/responsive/selectors.d.ts +20 -0
  791. package/dist/react-sdk/application-runtime/responsive/selectors.js +1 -0
  792. package/dist/react-sdk/application-runtime/responsive/types.d.ts +104 -0
  793. package/dist/react-sdk/application-runtime/responsive/types.js +1 -0
  794. package/dist/react-sdk/application-runtime/routing/routing-service.d.ts +34 -2
  795. package/dist/react-sdk/application-runtime/routing/routing-service.js +1 -1
  796. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +313 -10
  797. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  798. package/dist/react-sdk/domain-application-context/BackendDataProvider.js +1 -1
  799. package/dist/react-sdk/domain-application-context/DomainLifecycleBoundary.js +1 -1
  800. package/dist/react-sdk/domain-application-context/FrontendDataProvider.js +1 -1
  801. package/dist/react-sdk/domain-application-context/PublishedDataProvider.js +1 -1
  802. package/dist/react-sdk/domain-context/common-hooks/index.d.ts +9 -0
  803. package/dist/react-sdk/domain-context/common-hooks/index.js +1 -0
  804. package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.d.ts +23 -0
  805. package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.js +1 -0
  806. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +15 -4
  807. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -1
  808. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +1 -0
  809. package/dist/react-sdk/domain-context/component-hooks/index.d.ts +1 -0
  810. package/dist/react-sdk/domain-context/component-hooks/index.js +1 -0
  811. package/dist/react-sdk/domain-context/component-hooks/use-component.js +1 -1
  812. package/dist/react-sdk/domain-context/entity-hooks/use-domain-entity-state.js +1 -1
  813. package/dist/react-sdk/domain-context/entity-hooks/use-entity-price.js +1 -1
  814. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-id.js +1 -1
  815. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-state.js +1 -1
  816. package/dist/react-sdk/domain-context/index.d.ts +7 -0
  817. package/dist/react-sdk/domain-context/index.js +1 -1
  818. package/dist/react-sdk/domain-context/system-hooks/composition-hooks.js +1 -1
  819. package/dist/react-sdk/domain-context/system-hooks/dimension-hooks.js +1 -1
  820. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.d.ts +8 -0
  821. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.js +1 -0
  822. package/dist/react-sdk/domain-context/system-hooks/hover-hooks.js +1 -1
  823. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.d.ts +24 -0
  824. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.js +1 -0
  825. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  826. package/dist/react-sdk/domain-context/system-hooks/selection-hooks.js +1 -1
  827. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.d.ts +32 -0
  828. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.js +1 -0
  829. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.d.ts +57 -0
  830. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.js +1 -0
  831. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.d.ts +61 -0
  832. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.js +1 -0
  833. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.d.ts +20 -0
  834. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -0
  835. package/dist/react-sdk/handlers/FinalizeActionRunner.d.ts +13 -0
  836. package/dist/react-sdk/handlers/FinalizeActionRunner.js +1 -0
  837. package/dist/react-sdk/handlers/FinalizeActionsHost.d.ts +10 -0
  838. package/dist/react-sdk/handlers/FinalizeActionsHost.js +1 -0
  839. package/dist/react-sdk/handlers/FinalizeActionsProvider.d.ts +11 -0
  840. package/dist/react-sdk/handlers/FinalizeActionsProvider.js +1 -0
  841. package/dist/react-sdk/handlers/finalize-actions-context.d.ts +6 -0
  842. package/dist/react-sdk/handlers/finalize-actions-context.js +1 -0
  843. package/dist/react-sdk/handlers/finalize-actions-store.d.ts +23 -0
  844. package/dist/react-sdk/handlers/finalize-actions-store.js +1 -0
  845. package/dist/react-sdk/handlers/index.d.ts +6 -0
  846. package/dist/react-sdk/handlers/index.js +1 -1
  847. package/dist/{configurator/common → react-sdk/handlers}/use-finalize-action.d.ts +3 -2
  848. package/dist/react-sdk/handlers/use-finalize-action.js +1 -0
  849. package/dist/react-sdk/handlers/use-finalize-actions.d.ts +53 -0
  850. package/dist/react-sdk/handlers/use-finalize-actions.js +1 -0
  851. package/dist/react-sdk/index.d.ts +2 -0
  852. package/dist/react-sdk/index.js +1 -1
  853. package/dist/react-sdk/loading-state/LoaderHost.d.ts +20 -0
  854. package/dist/react-sdk/loading-state/LoaderHost.js +1 -0
  855. package/dist/react-sdk/loading-state/built-in-loading-phase.d.ts +9 -0
  856. package/dist/react-sdk/loading-state/built-in-loading-phase.js +1 -0
  857. package/dist/react-sdk/loading-state/create-app-loader.d.ts +18 -0
  858. package/dist/react-sdk/loading-state/create-app-loader.js +1 -0
  859. package/dist/react-sdk/loading-state/index.d.ts +4 -2
  860. package/dist/react-sdk/loading-state/index.js +1 -1
  861. package/dist/react-sdk/loading-state/{LoadingStateProvider.d.ts → loading-state-hooks.d.ts} +3 -12
  862. package/dist/react-sdk/loading-state/loading-state-hooks.js +1 -0
  863. package/dist/react-sdk/page-elements/ConfigurationNotFoundPagePropsProvider.d.ts +17 -0
  864. package/dist/react-sdk/page-elements/ConfigurationNotFoundPagePropsProvider.js +1 -0
  865. package/dist/react-sdk/page-elements/ConfiguratorErrorPagePropsProvider.d.ts +17 -0
  866. package/dist/react-sdk/page-elements/ConfiguratorErrorPagePropsProvider.js +1 -0
  867. package/dist/react-sdk/page-elements/configurator-error-page-props.d.ts +20 -0
  868. package/dist/react-sdk/page-elements/configurator-error-page-props.js +1 -0
  869. package/dist/react-sdk/page-elements/create-configuration-not-found-page.d.ts +15 -0
  870. package/dist/react-sdk/page-elements/create-configuration-not-found-page.js +1 -0
  871. package/dist/react-sdk/page-elements/create-configurator-error-page.d.ts +14 -0
  872. package/dist/react-sdk/page-elements/create-configurator-error-page.js +1 -0
  873. package/dist/react-sdk/page-elements/create-preset-ui.d.ts +9 -0
  874. package/dist/react-sdk/page-elements/create-preset-ui.js +1 -0
  875. package/dist/react-sdk/page-elements/index.d.ts +6 -0
  876. package/dist/react-sdk/page-elements/index.js +1 -0
  877. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.d.ts +36 -0
  878. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.js +1 -0
  879. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.d.ts +44 -0
  880. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.js +1 -0
  881. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.d.ts +38 -0
  882. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.js +1 -0
  883. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.d.ts +30 -0
  884. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.js +1 -0
  885. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.d.ts +30 -0
  886. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.js +1 -0
  887. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.d.ts +9 -0
  888. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.js +1 -0
  889. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.d.ts +9 -0
  890. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.js +1 -0
  891. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.d.ts +10 -0
  892. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.js +1 -0
  893. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.d.ts +9 -0
  894. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.js +1 -0
  895. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.d.ts +9 -0
  896. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.js +1 -0
  897. package/dist/react-sdk/scene-control-elements/index.d.ts +11 -0
  898. package/dist/react-sdk/scene-control-elements/index.js +1 -0
  899. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.d.ts +5 -0
  900. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.js +1 -0
  901. package/dist/react-sdk/session/NotAuthenticatedPage.d.ts +4 -0
  902. package/dist/react-sdk/session/NotAuthenticatedPage.js +1 -1
  903. package/dist/react-sdk/session/SessionServiceProvider.js +1 -1
  904. package/dist/react-sdk/web-component/create-web-component.js +1 -1
  905. package/dist/react-sdk/web-component/god-mode/god-mode-registry.d.ts +30 -0
  906. package/dist/react-sdk/web-component/god-mode/god-mode-registry.js +1 -0
  907. package/dist/react-sdk/web-component/god-mode/index.d.ts +1 -0
  908. package/dist/react-sdk/web-component/god-mode/index.js +1 -0
  909. package/dist/ui-sdk/icons/__generated/Lightbulb.d.ts +3 -0
  910. package/dist/ui-sdk/icons/__generated/Lightbulb.js +1 -0
  911. package/dist/ui-sdk/icons/__generated/XCircle.d.ts +3 -0
  912. package/dist/ui-sdk/icons/__generated/XCircle.js +1 -0
  913. package/dist/ui-sdk/icons/__generated/index.d.ts +4 -0
  914. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  915. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  916. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +9 -0
  917. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.js +1 -1
  918. package/dist/ui-sdk/responsive-application/index.d.ts +1 -0
  919. package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +59 -0
  920. package/dist/ui-sdk/responsive-application/responsive-state-store.js +1 -0
  921. package/dist/ui-sdk/responsive-application/use-store-responsive-info.d.ts +7 -0
  922. package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -0
  923. package/dist/ui-sdk/theme/types.d.ts +5 -1
  924. package/package.json +28 -11
  925. package/schema/domain-spec.json +226 -8
  926. package/dist/application-spec/generate-application/code/templates/nvmrc.d.ts +0 -1
  927. package/dist/application-spec/generate-application/code/templates/nvmrc.js +0 -2
  928. package/dist/application-spec/generate-application/code/templates/package-json.d.ts +0 -10
  929. package/dist/application-spec/generate-application/code/templates/package-json.js +0 -1
  930. package/dist/configurator/common/use-finalize-action.js +0 -1
  931. package/dist/configurator/ui/assistant/entity-link/entity-link-target.d.ts +0 -5
  932. package/dist/configurator/ui/assistant/entity-link/entity-link-target.js +0 -1
  933. package/dist/configurator/ui/assistant/form/built-in-form-registry.d.ts +0 -10
  934. package/dist/configurator/ui/assistant/form/built-in-form-registry.js +0 -1
  935. package/dist/configurator/ui/assistant/form/form-registry.js +0 -8
  936. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.d.ts +0 -4
  937. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.js +0 -1
  938. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.d.ts +0 -4
  939. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.js +0 -1
  940. package/dist/domain/application/assistant/assistant-form-elements.d.ts +0 -28
  941. package/dist/domain/application/assistant/assistant-form-elements.js +0 -1
  942. package/dist/domain/extensions/client-side-image.js +0 -1
  943. package/dist/domain/extensions/save-template-thumbnail.js +0 -1
  944. package/dist/phoenix/commands/generate-project-files.d.ts +0 -6
  945. package/dist/phoenix/commands/generate-project-files.js +0 -1
  946. package/dist/react-sdk/application-runtime/runtime/god-mode.d.ts +0 -19
  947. package/dist/react-sdk/application-runtime/runtime/god-mode.js +0 -1
  948. package/dist/react-sdk/loading-state/LoadingStateProvider.js +0 -1
  949. package/dist/react-sdk/loading-state/loading-state-manager.d.ts +0 -32
  950. package/dist/react-sdk/loading-state/loading-state-manager.js +0 -1
  951. /package/dist/{configurator/ui/assistant/form/form-element-definition.js → application-spec/generate-application/runtime/spec-code/spec-code-module.js} +0 -0
  952. /package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.js +0 -0
@@ -0,0 +1,8 @@
1
+ import { type FormRegistry } from './form-registry.js';
2
+ /**
3
+ * The registry the application's forms are read with. It is built when a form renders rather than
4
+ * when the bundle loads, since compiling validators then would break a configurator on a page whose
5
+ * CSP forbids eval, even one without an assistant; and rebuilt when the YAML or a component
6
+ * changes, so hot reload reaches the forms.
7
+ */
8
+ export declare const useFormRegistry: () => FormRegistry;
@@ -0,0 +1 @@
1
+ import{useMemo as r}from"react";import{extendedSchemaValidator as e}from"#package/domain";import{usePhoenixElementSlots as t,useSpecAssistant as m}from"#package/react-sdk";import{BUILT_IN_FORM_ELEMENTS as o}from"./built-in-form-elements.js";import{createFormElementDefinition as i}from"./form-element-definition.js";import{createFormRegistry as a}from"./form-registry.js";let f=[];export const useFormRegistry=()=>{let n=m()?.formElements??f,{assistantFormElements:s}=t();return r(()=>a([...o,...n.flatMap(r=>{let e=Object.entries(s).find(([e])=>e===r.name)?.[1];return e?[i(r,e)]:[]})],{schemaValidator:e}),[n,s])};
@@ -0,0 +1,9 @@
1
+ import type { AssistantBuiltInFormElementAttributes } from '#package/domain';
2
+ import type { FormOptionProps } from './form-element-props.js';
3
+ type FormCardProps = FormOptionProps<AssistantBuiltInFormElementAttributes<'card'>>;
4
+ /**
5
+ * A `card`: a tile with its picture on top, then its label and description, outlined and checked
6
+ * while it is picked. A picture that is not a resource path or fails to load is left out.
7
+ */
8
+ export declare const FormCard: ({ attributes, label, disabled, selected, onSelect }: FormCardProps) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as r}from"react/jsx-runtime";import{styled as i}from"@mui/material";import{useCallback as o,useState as t}from"react";import{PhxIcon as a}from"#package/ui-sdk";import{useResourceImageUrl as n}from"../resource-image/index.js";import{AssistantPanelName as d}from"../theme.js";let l=i("button",{name:d,slot:"formCard"})(({theme:{palette:e,shape:r,spacing:i}})=>({alignContent:"start",background:e.background.paper,border:`1px solid ${e.divider}`,borderRadius:r.borderRadius,color:e.text.primary,cursor:"pointer",display:"grid",flex:"1 1 140px",font:"inherit",gap:i(.25),margin:0,maxInlineSize:220,padding:i(.75),position:"relative",textAlign:"start","&:hover:not(:disabled)":{background:e.action.hover},"&:focus-visible":{outline:`2px solid ${e.primary.main}`,outlineOffset:1},"&:disabled":{color:e.text.disabled,cursor:"default"},'&[aria-pressed="true"]':{borderColor:e.primary.main,boxShadow:`inset 0 0 0 1px ${e.primary.main}`}})),s=i("img",{name:d,slot:"formCardImage"})(({theme:{shape:e,spacing:r}})=>({aspectRatio:"4 / 3",borderRadius:e.borderRadius,display:"block",inlineSize:"100%",marginBlockEnd:r(.5),objectFit:"contain"})),m=i("span",{name:d,slot:"formCardLabel"})(({theme:{typography:e}})=>({...e.body2,fontWeight:e.fontWeightMedium})),p=i("span",{name:d,slot:"formCardDescription"})(({theme:{palette:e,typography:r}})=>({...r.caption,color:e.text.secondary})),c=i("span",{name:d,slot:"formCardCheck"})(({theme:{palette:e,spacing:r}})=>({alignItems:"center",background:e.primary.main,borderRadius:"50%",color:e.primary.contrastText,display:"flex",fontSize:14,insetBlockStart:r(.5),insetInlineEnd:r(.5),justifyContent:"center",padding:2,position:"absolute"}));export const FormCard=({attributes:i,label:d,disabled:u,selected:b,onSelect:f})=>{let{value:g,image:h}=i,x=[d,g].find(Boolean),y=""===i.description?void 0:i.description,k=n()(h),[C,j]=t(),v=o(()=>{j(k)},[k]);return r(l,{type:"button","aria-label":null==x&&null==y?h:void 0,disabled:u,"aria-pressed":b,onClick:()=>f([g,d,y,h].find(Boolean)??""),children:[null!=k&&k!==C&&e(s,{src:k,alt:"",loading:"lazy",onError:v}),null!=x&&e(m,{children:x}),null!=y&&e(p,{children:y}),b&&e(c,{"aria-hidden":!0,children:e(a,{name:"Check",fontSize:"inherit"})})]})};
@@ -0,0 +1,9 @@
1
+ import type { AssistantBuiltInFormElementAttributes } from '#package/domain';
2
+ import type { FormInputProps } from './form-element-props.js';
3
+ type FormConfirmProps = FormInputProps<boolean, AssistantBuiltInFormElementAttributes<'confirm'>>;
4
+ /**
5
+ * A `confirm`: a yes or no question as ✓ and ✗ buttons. Its state is the pick, and it answers with
6
+ * the user's own words for yes and no, as the answer is their own message.
7
+ */
8
+ export declare const FormConfirm: ({ label, disabled, state, onChange }: FormConfirmProps) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as r}from"react/jsx-runtime";import{alpha as i,styled as a}from"@mui/material";import{useLocalizable as o}from"#package/react-sdk";import{PhxIcon as t}from"#package/ui-sdk";import{AssistantPanelName as n}from"../theme.js";let s={id:"sdk.assistant.form.confirm.yes",message:"Yes"},l={id:"sdk.assistant.form.confirm.no",message:"No"},d=a("div",{name:n,slot:"formConfirm"})(({theme:{palette:e,spacing:r,typography:i}})=>({...i.caption,color:e.text.secondary,display:"grid",gap:r(.75)})),m=a("div",{name:n,slot:"formConfirmButtons"})(({theme:{spacing:e}})=>({display:"flex",gap:e(.75)})),c=a("button",{name:n,slot:"formConfirmButton"})(({theme:{palette:e,spacing:r}})=>({alignItems:"center",background:e.background.paper,border:`1px solid ${e.divider}`,borderRadius:"calc(infinity * 1px)",color:e.text.primary,cursor:"pointer",display:"inline-flex",justifyContent:"center",margin:0,paddingBlock:r(.5),paddingInline:r(1.5),"&:hover:not(:disabled)":{background:e.action.hover},"&:focus-visible":{outline:`2px solid ${e.primary.main}`,outlineOffset:1},"&:disabled":{color:e.text.disabled,cursor:"default"},'&[aria-pressed="true"]':{background:i(e.primary.main,e.action.selectedOpacity),borderColor:e.primary.main}}));export const FormConfirm=({label:i,disabled:a,state:n,onChange:p})=>{let f=o(s),u=o(l);return r(d,{role:"group","aria-label":i,children:[null!=i&&e("span",{"aria-hidden":!0,children:i}),r(m,{children:[e(c,{type:"button","aria-label":f,title:f,disabled:a,"aria-pressed":!0===n,onClick:()=>p(!0,f),children:e(t,{name:"Check",fontSize:"small"})}),e(c,{type:"button","aria-label":u,title:u,disabled:a,"aria-pressed":!1===n,onClick:()=>p(!1,u),children:e(t,{name:"X",fontSize:"small"})})]})]})};
@@ -1,3 +1,6 @@
1
+ import type { AssistantBuiltInFormElementAttributes } from '#package/domain';
1
2
  import type { FormContainerProps } from './form-element-props.js';
3
+ type FormGroupProps = FormContainerProps<AssistantBuiltInFormElementAttributes<'group'>>;
2
4
  /** A `group`: its children stacked under its label, which heads them. */
3
- export declare const FormGroup: ({ label, children }: FormContainerProps) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const FormGroup: ({ label, children }: FormGroupProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,9 @@
1
+ import type { AssistantBuiltInFormElementAttributes } from '#package/domain';
2
+ import type { FormInputProps } from './form-element-props.js';
3
+ type FormNumberProps = FormInputProps<number, AssistantBuiltInFormElementAttributes<'number'>>;
4
+ /**
5
+ * A `number`: a field with its unit, and a slider beside it when both `min` and `max` are given. It
6
+ * stays unanswered until the user enters a number, even while the slider rests at `min`.
7
+ */
8
+ export declare const FormNumber: ({ attributes: { value, min, max, step, unit }, label, disabled, state, onChange, }: FormNumberProps) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1 @@
1
+ import{jsx as r,jsxs as i}from"react/jsx-runtime";import{Trans as e}from"@lingui/react";import{styled as o}from"@mui/material";import{useCallback as t,useEffect as a}from"react";import{NumericalInput as m}from"#package/ui-sdk";import{AssistantPanelName as n}from"../theme.js";import{clampFormNumber as s}from"./clamp-form-number.js";let l=o("div",{name:n,slot:"formNumber"})(({theme:{palette:r,spacing:i,typography:e}})=>({alignSelf:"stretch",color:r.text.secondary,display:"grid",gap:i(.5),...e.caption})),d=(r,i)=>i?`${r} ${i}`:String(r),u=r=>""===r.trim()?null:Number(r);export const FormNumber=({attributes:{value:o,min:n,max:p,step:v,unit:c},label:f,disabled:g,state:b,onChange:h})=>{let x=void 0===o?void 0:s(o,{min:n,max:p}),j=b??x;a(()=>{void 0===b&&void 0!==x&&h(x,d(x,c))},[b,x,c,h]);let N=t(r=>h(r,d(r,c)),[h,c]),S=t(()=>{if(void 0===j)return;let r=s(j,{min:n,max:p});r!==j&&N(r)},[j,n,p,N]),k=t(r=>void 0===j?"":String(r),[j]);return i(l,{role:"group","aria-label":f,children:[null!=f&&r("span",{"aria-hidden":!0,children:f}),r(m,{value:j??n??0,min:n,max:p,unit:c,size:"small",disabled:g,withSlider:void 0!==n&&void 0!==p,sliderProps:void 0===v?void 0:{step:v},inputFieldProps:{parseValue:u,formatValue:k,invalidNumberErrorMessage:r(e,{id:"sdk.assistant.form.number.invalid",message:"Enter a number."})},onChange:N,onChanged:S})]})};
@@ -1,3 +1,6 @@
1
+ import type { AssistantBuiltInFormElementAttributes } from '#package/domain';
1
2
  import type { FormContainerProps } from './form-element-props.js';
3
+ type FormOptionsProps = FormContainerProps<AssistantBuiltInFormElementAttributes<'choice' | 'choices'>>;
2
4
  /** A `choice` or `choices`: its options in a wrapping row under its label. */
3
- export declare const FormOptions: ({ label, children }: FormContainerProps) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const FormOptions: ({ label, children }: FormOptionsProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -1,3 +1,6 @@
1
+ import type { AssistantBuiltInFormElementAttributes } from '#package/domain';
1
2
  import type { FormOptionProps } from './form-element-props.js';
3
+ type FormReplyProps = FormOptionProps<AssistantBuiltInFormElementAttributes<'reply'>>;
2
4
  /** A `reply`: a short answer as a small pill, marked while it is picked. */
3
- export declare const FormReply: ({ label, disabled, selected, onSelect }: FormOptionProps) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const FormReply: ({ attributes, label, disabled, selected, onSelect }: FormReplyProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import{alpha as e,styled as i}from"@mui/material";import{AssistantPanelName as o}from"../theme.js";let t=i("button",{name:o,slot:"formReply"})(({theme:{palette:r,spacing:i,typography:o}})=>({...o.body2,background:r.background.paper,border:`1px solid ${r.divider}`,borderRadius:"calc(infinity * 1px)",color:r.text.primary,cursor:"pointer",margin:0,paddingBlock:i(.25),paddingInline:i(1.25),textAlign:"start","&:hover:not(:disabled)":{background:r.action.hover},"&:focus-visible":{outline:`2px solid ${r.primary.main}`,outlineOffset:1},"&:disabled":{color:r.text.disabled,cursor:"default"},'&[aria-pressed="true"]':{background:e(r.primary.main,r.action.selectedOpacity),borderColor:r.primary.main}}));export const FormReply=({label:e,disabled:i,selected:o,onSelect:a})=>r(t,{type:"button",disabled:i,"aria-pressed":o,onClick:a,children:e});
1
+ import{jsx as r}from"react/jsx-runtime";import{alpha as e,styled as o}from"@mui/material";import{AssistantPanelName as i}from"../theme.js";let a=o("button",{name:i,slot:"formReply"})(({theme:{palette:r,spacing:o,typography:i}})=>({...i.body2,background:r.background.paper,border:`1px solid ${r.divider}`,borderRadius:"calc(infinity * 1px)",color:r.text.primary,cursor:"pointer",margin:0,paddingBlock:o(.25),paddingInline:o(1.25),textAlign:"start","&:hover:not(:disabled)":{background:r.action.hover},"&:focus-visible":{outline:`2px solid ${r.primary.main}`,outlineOffset:1},"&:disabled":{color:r.text.disabled,cursor:"default"},'&[aria-pressed="true"]':{background:e(r.primary.main,r.action.selectedOpacity),borderColor:r.primary.main}}));export const FormReply=({attributes:e,label:o,disabled:i,selected:t,onSelect:d})=>r(a,{type:"button",disabled:i,"aria-pressed":t,onClick:()=>d([e.value,o].find(Boolean)??""),children:o});
@@ -0,0 +1,10 @@
1
+ import type { AssistantBuiltInFormElementAttributes } from '#package/domain';
2
+ import type { FormOptionProps } from './form-element-props.js';
3
+ type FormSwatchProps = FormOptionProps<AssistantBuiltInFormElementAttributes<'swatch'>>;
4
+ /**
5
+ * A `swatch`: a small square filled with its color or covered by its picture, its label in a
6
+ * tooltip, ringed and checked while it is picked. A picture that is not a resource path or fails to
7
+ * load leaves the color, or a neutral tile.
8
+ */
9
+ export declare const FormSwatch: ({ attributes, label, disabled, selected, onSelect }: FormSwatchProps) => import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as i}from"react/jsx-runtime";import{Tooltip as r,styled as o}from"@mui/material";import{useCallback as a,useState as t}from"react";import{PhxIcon as n}from"#package/ui-sdk";import{useResourceImageUrl as l}from"../resource-image/index.js";import{AssistantPanelName as s}from"../theme.js";let d=o("button",{name:s,slot:"formSwatch"})(({theme:{palette:e,shape:i}})=>({background:e.action.hover,blockSize:36,border:`1px solid ${e.divider}`,borderRadius:i.borderRadius,cursor:"pointer",flex:"none",inlineSize:36,margin:0,overflow:"hidden",padding:0,position:"relative","&:focus-visible":{outline:`2px solid ${e.primary.main}`,outlineOffset:3},"&:disabled":{cursor:"default",opacity:e.action.disabledOpacity},'&[aria-pressed="true"]':{boxShadow:`0 0 0 2px ${e.background.paper}, 0 0 0 4px ${e.primary.main}`}})),m=o("img",{name:s,slot:"formSwatchImage"})({blockSize:"100%",display:"block",inlineSize:"100%",objectFit:"cover"}),c=o("span",{name:s,slot:"formSwatchCheck"})(({theme:{palette:e}})=>({alignItems:"center",background:e.primary.main,borderRadius:"50%",color:e.primary.contrastText,display:"flex",fontSize:14,inset:"50% auto auto 50%",justifyContent:"center",padding:2,position:"absolute",transform:"translate(-50%, -50%)"})),p=o("span")({display:"inline-flex"});export const FormSwatch=({attributes:o,label:s,disabled:u,selected:f,onSelect:b})=>{let{value:h,color:x,image:g}=o,y=l()(g),[k,S]=t(),j=[s,h,x,g].find(Boolean),v=a(()=>{S(y)},[y]);return e(r,{title:j??"",placement:"top",children:e(p,{children:i(d,{type:"button","aria-label":j,disabled:u,"aria-pressed":f,onClick:()=>b([h,s,x,g].find(Boolean)??""),style:null==x?void 0:{background:x},children:[null!=y&&y!==k&&e(m,{src:y,alt:"",loading:"lazy",onError:v}),f&&e(c,{"aria-hidden":!0,children:e(n,{name:"Check",fontSize:"inherit"})})]})})})};
@@ -1,3 +1,6 @@
1
+ import type { AssistantBuiltInFormElementAttributes } from '#package/domain';
1
2
  import type { FormInputProps } from './form-element-props.js';
3
+ type FormTextProps = FormInputProps<string, AssistantBuiltInFormElementAttributes<'text'>>;
2
4
  /** A `text`: a single line the user types, with its label above it. */
3
- export declare const FormText: ({ attributes, label, value, disabled, state, onChange }: FormInputProps) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const FormText: ({ attributes: { value, placeholder }, label, disabled, state, onChange }: FormTextProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as r}from"react/jsx-runtime";import{InputBase as t,styled as o}from"@mui/material";import{useCallback as i}from"react";import{AssistantPanelName as a}from"../theme.js";let d=o("label",{name:a,slot:"formText"})(({theme:{palette:e,spacing:r,typography:t}})=>({alignSelf:"stretch",color:e.text.secondary,display:"grid",gap:r(.5),...t.caption})),m=o(t,{name:a,slot:"formTextInput"})(({theme:{palette:e,spacing:r,typography:t}})=>({...t.body2,border:`1px solid ${e.divider}`,borderRadius:12,color:e.text.primary,paddingBlock:r(.75),paddingInline:r(1.5),"&.Mui-focused":{borderColor:e.primary.main},"& .MuiInputBase-input":{padding:0}}));export const FormText=({attributes:t,label:o,value:a,disabled:l,state:n,onChange:p})=>{let{placeholder:s}=t;return r(d,{children:[o,e(m,{value:"string"==typeof n?n:a??"",placeholder:"string"==typeof s?s:void 0,disabled:l,onChange:i(e=>{let r=e.target.value;p(r,""===r.trim()?void 0:r.trim())},[p])})]})};
1
+ import{jsx as e,jsxs as r}from"react/jsx-runtime";import{InputBase as t,styled as o}from"@mui/material";import{useCallback as i,useEffect as a}from"react";import{AssistantPanelName as d}from"../theme.js";let m=o("label",{name:d,slot:"formText"})(({theme:{palette:e,spacing:r,typography:t}})=>({alignSelf:"stretch",color:e.text.secondary,display:"grid",gap:r(.5),...t.caption})),l=e=>""===e.trim()?void 0:e.trim(),n=o(t,{name:d,slot:"formTextInput"})(({theme:{palette:e,spacing:r,typography:t}})=>({...t.body2,border:`1px solid ${e.divider}`,borderRadius:12,color:e.text.primary,paddingBlock:r(.75),paddingInline:r(1.5),"&.Mui-focused":{borderColor:e.primary.main},"& .MuiInputBase-input":{padding:0}}));export const FormText=({attributes:{value:t,placeholder:o},label:d,disabled:s,state:p,onChange:c})=>(a(()=>{void 0===p&&void 0!==t&&""!==t&&c(t,l(t))},[p,t,c]),r(m,{children:[d,e(n,{value:p??t??"",placeholder:o,disabled:s,onChange:i(e=>{let r=e.target.value;c(r,l(r))},[c])})]}));
@@ -0,0 +1,10 @@
1
+ /** The limits a `number` keeps its value within, from its attributes. */
2
+ export interface FormNumberLimits {
3
+ readonly min?: number;
4
+ readonly max?: number;
5
+ }
6
+ /**
7
+ * The value a `number` settles on once the user leaves the field: within `min` and `max`. The
8
+ * `step` is left out: it moves the slider, and a typed value between steps stays as typed.
9
+ */
10
+ export declare const clampFormNumber: (value: number, { min, max }: FormNumberLimits) => number;
@@ -0,0 +1 @@
1
+ export const clampFormNumber=(m,{min:a,max:t})=>Math.min(t??1/0,Math.max(a??-1/0,m));
@@ -1,34 +1,38 @@
1
1
  import type { ReactNode } from 'react';
2
- /** Validated and coerced attributes of an element, without the built-in `label` and `value`. */
2
+ /** Validated and coerced attributes of an element, without the built-in `label`: what any element gets. */
3
3
  export type FormElementAttributes = Readonly<Record<string, unknown>>;
4
4
  /** Props of a `group`, `choice` or `choices` element: it lays out the children the form renders for it. */
5
- export interface FormContainerProps {
6
- readonly attributes: FormElementAttributes;
5
+ export interface FormContainerProps<ATTRIBUTES = FormElementAttributes> {
6
+ readonly attributes: ATTRIBUTES;
7
7
  readonly label?: string;
8
8
  readonly disabled: boolean;
9
9
  readonly children: ReactNode;
10
10
  }
11
11
  /**
12
- * Props of an option. Its container decides what a pick does: in a `choice` it replaces the
13
- * previous pick, in a `choices` it toggles, and in a form that asks one question it sends at once.
12
+ * Props of an option. It reports what it answers with when the user picks it, as an input reports
13
+ * its answer: by convention its `value` attribute, or else its label. Its container decides what a
14
+ * pick does: in a `choice` it replaces the previous pick, in a `choices` it toggles, and in a form
15
+ * that asks one question it sends at once. An empty answer counts as unanswered.
14
16
  */
15
- export interface FormOptionProps {
16
- readonly attributes: FormElementAttributes;
17
+ export interface FormOptionProps<ATTRIBUTES = FormElementAttributes> {
18
+ readonly attributes: ATTRIBUTES;
17
19
  readonly label?: string;
18
20
  readonly disabled: boolean;
19
21
  readonly selected: boolean;
20
- onSelect(): void;
22
+ onSelect(answer: string): void;
21
23
  }
22
24
  /**
23
- * Props of an input. Its state is its own: the form stores it and hands it back. `answer` is the
24
- * text the answer shows for it, or `undefined` while there is none.
25
+ * Props of an input. Its state is its own: the form stores what it reports and hands it back.
26
+ * `answer` is the text the answer shows for it, or `undefined` while there is none. An input that
27
+ * starts with a `value` attribute reports its starting answer when it mounts, since an input that
28
+ * never reports is unanswered and only the input knows how its value reads in the answer, such as
29
+ * a number with its unit. A quick input, which a lone form sends on its first report, reports only
30
+ * what the user did.
25
31
  */
26
- export interface FormInputProps {
27
- readonly attributes: FormElementAttributes;
32
+ export interface FormInputProps<STATE = unknown, ATTRIBUTES = FormElementAttributes> {
33
+ readonly attributes: ATTRIBUTES;
28
34
  readonly label?: string;
29
- /** What the field starts with. */
30
- readonly value?: string;
31
35
  readonly disabled: boolean;
32
- readonly state: unknown;
33
- onChange(state: unknown, answer: string | undefined): void;
36
+ readonly state: STATE | undefined;
37
+ onChange(state: STATE, answer: string | undefined): void;
34
38
  }
@@ -1,5 +1,9 @@
1
1
  export type { FormContainerProps, FormElementAttributes, FormInputProps, FormOptionProps, } from './form-element-props.js';
2
+ export { FormCard } from './FormCard.js';
3
+ export { FormConfirm } from './FormConfirm.js';
2
4
  export { FormGroup } from './FormGroup.js';
3
5
  export { FormOptions } from './FormOptions.js';
6
+ export { FormNumber } from './FormNumber.js';
4
7
  export { FormReply } from './FormReply.js';
8
+ export { FormSwatch } from './FormSwatch.js';
5
9
  export { FormText } from './FormText.js';
@@ -1 +1 @@
1
- export{FormGroup}from"./FormGroup.js";export{FormOptions}from"./FormOptions.js";export{FormReply}from"./FormReply.js";export{FormText}from"./FormText.js";
1
+ export{FormCard}from"./FormCard.js";export{FormConfirm}from"./FormConfirm.js";export{FormGroup}from"./FormGroup.js";export{FormOptions}from"./FormOptions.js";export{FormNumber}from"./FormNumber.js";export{FormReply}from"./FormReply.js";export{FormSwatch}from"./FormSwatch.js";export{FormText}from"./FormText.js";
@@ -1,2 +1,5 @@
1
1
  export { AssistantPanel, ASSISTANT_PANEL_SLOT } from './AssistantPanel.js';
2
2
  export { useIsAssistantPanelOpen } from './use-is-assistant-panel-open.js';
3
+ export type { AssistantFormElementRoleProps, AssistantFormElementType, CreateAssistantFormElement, } from './form/index.js';
4
+ export { createAssistantFormElementFactory } from './form/index.js';
5
+ export type { FormContainerProps, FormInputProps, FormOptionProps } from './form-elements/index.js';
@@ -1 +1 @@
1
- export{AssistantPanel,ASSISTANT_PANEL_SLOT}from"./AssistantPanel.js";export{useIsAssistantPanelOpen}from"./use-is-assistant-panel-open.js";
1
+ export{AssistantPanel,ASSISTANT_PANEL_SLOT}from"./AssistantPanel.js";export{useIsAssistantPanelOpen}from"./use-is-assistant-panel-open.js";export{createAssistantFormElementFactory}from"./form/index.js";
@@ -0,0 +1,16 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { AssistantReferenceTarget } from './assistant-link-target.js';
3
+ export interface AssistantReferenceLinkProps {
4
+ readonly target: AssistantReferenceTarget;
5
+ /** The text the assistant gave the link; the target itself is never shown. */
6
+ readonly children: ReactNode;
7
+ }
8
+ declare const ReferenceLinkView: ({ target, children }: AssistantReferenceLinkProps) => import("react/jsx-runtime").JSX.Element;
9
+ /**
10
+ * A recipe or an option the assistant named in a reply, shown as its label. Hovering, focusing or
11
+ * tapping it opens a popover with its picture or color, name and description, read from the
12
+ * current state at that moment; leaving it, tapping outside or Escape closes it. A click does
13
+ * nothing else.
14
+ */
15
+ export declare const AssistantReferenceLink: import("react").MemoExoticComponent<typeof ReferenceLinkView>;
16
+ export {};
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as r}from"react/jsx-runtime";import{Trans as n}from"@lingui/react";import{ClickAwayListener as t,Tooltip as a,styled as i}from"@mui/material";import{memo as o,useCallback as l,useEffect as s,useRef as d,useState as c}from"react";import{isShallowEqual as p}from"@salsita-ai/common/utils";import{useResourceUrl as m}from"#package/react-sdk";import{AssistantPanelName as u}from"../theme.js";import{assistantReferenceStyles as f}from"./reference-styles.js";import{useAssistantReferenceDetails as h}from"./use-assistant-reference-details.js";let b=i("span",{name:u,slot:"referenceLink"})(f),x=i("span",{name:u,slot:"referenceDetails"})(({theme:{palette:e,shape:r,shadows:n,spacing:t,typography:a}})=>({...a.body2,background:e.background.paper,borderRadius:r.borderRadius,boxShadow:n[4],color:e.text.primary,display:"flex",gap:t(1.5),maxInlineSize:320,padding:t(1.5),'&[data-reference-details="unavailable"]':{color:e.text.secondary}})),g=i("img")(({theme:{shape:e}})=>({alignSelf:"flex-start",blockSize:"auto",borderRadius:e.borderRadius/2,flexShrink:0,inlineSize:64,maxBlockSize:96,objectFit:"contain"})),k=i("span")(({theme:{palette:e,shape:r}})=>({blockSize:32,borderRadius:r.borderRadius/2,boxShadow:`inset 0 0 0 1px ${e.divider}`,flexShrink:0,inlineSize:32})),y=i("span")(({theme:{palette:e,spacing:r}})=>({display:"flex",flexDirection:"column",gap:r(.5),minInlineSize:0,"& > :first-of-type":{fontWeight:600},"& > :not(:first-of-type)":{color:e.text.secondary}})),S=({target:t,onResolve:a,onImageLoad:i})=>{let o=h(t),{getResourceUrl:l}=m(),d=null!=o;if(s(()=>{a(d)},[d,a]),!o)return e(x,{"data-reference-details":"unavailable",children:e(n,{id:"sdk.assistant.reference.unavailable.message",message:"Not available right now"})});let{name:c,description:p,imageUrl:u,color:f}=o;return r(x,{children:[null!=u&&e(g,{src:l(u),alt:"",onLoad:i}),null==u&&null!=f&&e(k,{style:{background:f}}),r(y,{children:[e("span",{children:c}),null!=p&&e("span",{children:p})]})]})};export const AssistantReferenceLink=o(({target:r,children:n})=>{let[i,o]=c(!1),[s,p]=c(!1),m=l(()=>o(!0),[]),u=l(()=>o(!1),[]),f=l(e=>p(!e),[]),h=d(null),x=l(e=>{h.current=e},[]),g=l(()=>{h.current?.update()},[]),k=l(e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),o(!0))},[]);return e(t,{onClickAway:u,mouseEvent:!!i&&"onClick",touchEvent:!!i&&"onTouchEnd",children:e(a,{open:i,onOpen:m,onClose:u,title:e(S,{target:r,onResolve:f,onImageLoad:g}),placement:"top-start",describeChild:!0,disableTouchListener:!0,PopperProps:{popperRef:x},slotProps:{tooltip:{sx:{background:"none",maxInlineSize:"none",padding:0}}},children:e(b,{role:"button",tabIndex:0,"aria-expanded":i,"data-reference":s?"muted":void 0,onClick:m,onKeyDown:k,children:n})})})},(e,r)=>e.children===r.children&&p(e.target,r.target));
@@ -0,0 +1,34 @@
1
+ import { type DomainEntityId } from '#package/domain';
2
+ /** A recipe of a recipe group on an entity, as the assistant read it under `meta`: `recipe:<entityId>/<groupId>/<key>`. */
3
+ export interface AssistantRecipeTarget {
4
+ readonly kind: 'recipe';
5
+ readonly entityId: DomainEntityId<string>;
6
+ readonly groupId: string;
7
+ readonly key: string;
8
+ }
9
+ /**
10
+ * A choice of a writable field on an entity, as the assistant read it under `meta`:
11
+ * `option:<entityId>/<edgeName>/<value>`. The edge is the options field the assistant queried, such
12
+ * as `finishOptions`, and the value is the option's value in its string form.
13
+ */
14
+ export interface AssistantOptionTarget {
15
+ readonly kind: 'option';
16
+ readonly entityId: DomainEntityId<string>;
17
+ readonly edgeName: string;
18
+ readonly value: string;
19
+ }
20
+ /** What a reference points at: something the configurator offers, shown by its details rather than selected. */
21
+ export type AssistantReferenceTarget = AssistantRecipeTarget | AssistantOptionTarget;
22
+ /** Where a link the assistant wrote in a reply points: an entity of the configuration, or a reference. */
23
+ export type AssistantLinkTarget = {
24
+ readonly kind: 'entity';
25
+ readonly id: DomainEntityId<string>;
26
+ } | AssistantReferenceTarget;
27
+ /** True for the target of a link the assistant wrote with one of its schemes, whatever follows the scheme. */
28
+ export declare const isAssistantLinkHref: (href: string) => boolean;
29
+ /**
30
+ * What a link the assistant wrote points at, or `null` when what follows its scheme is not a
31
+ * well-formed target. An entity link holds the id as it is; the parts of a reference are decoded,
32
+ * so a key the model encoded as in a URL and one Markdown encoded from angle brackets read the same.
33
+ */
34
+ export declare const parseAssistantLinkTarget: (href: string) => AssistantLinkTarget | null;
@@ -0,0 +1 @@
1
+ import{DomainEntityIdSchema as t}from"#package/domain";let e="entity:",n="recipe:",i="option:",l=[e,n,i],r=new RegExp(t.pattern),s=t=>{try{let e=decodeURIComponent(t);return""===e?null:e}catch{return null}},u=t=>{let e=t.split("/").map(s);if(3!==e.length)return null;let[n,i,l]=e;return null!=n&&r.test(n)&&null!=i&&null!=l?{entityId:n,first:i,second:l}:null};export const isAssistantLinkHref=t=>l.some(e=>t.startsWith(e));export const parseAssistantLinkTarget=t=>{if(t.startsWith(e)){let n=t.slice(e.length);return r.test(n)?{kind:"entity",id:n}:null}if(t.startsWith(n)){let e=u(t.slice(n.length));return e&&{kind:"recipe",entityId:e.entityId,groupId:e.first,key:e.second}}if(t.startsWith(i)){let e=u(t.slice(i.length));return e&&{kind:"option",entityId:e.entityId,edgeName:e.first,value:e.second}}return null};
@@ -0,0 +1,25 @@
1
+ import { type AssistantManifest, type AssistantRecipeContext, type DomainEntity, type DomainState } from '#package/domain';
2
+ import type { AssistantReferenceTarget } from './assistant-link-target.js';
3
+ type AnyDomainState = DomainState<DomainEntity<string>>;
4
+ /** What the popover of a reference shows of the recipe or option it points at, texts in the current language. */
5
+ export interface AssistantReferenceDetails {
6
+ readonly name: string;
7
+ readonly description: string | null;
8
+ readonly imageUrl: string | null;
9
+ readonly color: string | null;
10
+ }
11
+ /**
12
+ * What reading a reference needs: the manifest of the session and the readers `meta` resolves
13
+ * through, so the popover shows what the agent read.
14
+ */
15
+ export interface AssistantReferenceContext extends Pick<AssistantRecipeContext, 'componentReader' | 'resolveLocalizable'> {
16
+ readonly manifest: AssistantManifest;
17
+ }
18
+ /**
19
+ * The details of what a reference points at on the given state, read the way `meta` reads them:
20
+ * only what the session's manifest exposes, from a component that is active on the entity there.
21
+ * `null` when the target does not resolve: the entity, the group or options edge, or the key or value is
22
+ * unknown, or the component is not active.
23
+ */
24
+ export declare const readAssistantReferenceDetails: (target: AssistantReferenceTarget, state: AnyDomainState, context: AssistantReferenceContext) => AssistantReferenceDetails | null;
25
+ export {};
@@ -0,0 +1 @@
1
+ import{match as e}from"ts-pattern";import{findAssistantFieldOptions as i,findAssistantRecipeGroups as t,readAssistantFieldOptions as n,readAssistantRecipeGroup as r}from"#package/domain";let l=["child","replace"];export const readAssistantReferenceDetails=(o,a,d)=>{let u=a.entities.find(e=>e.id===o.entityId);return u?e(o).with({kind:"recipe"},e=>((e,i,n,o)=>{let a=(({entityId:e,groupId:i,key:n},o,a,d)=>{for(let u of l)for(let l of t(d.manifest,u,o)){if(l.groupId!==i)continue;let t=r(u,l,e,a,d)?.recipes.find(e=>e.key===n);if(t)return t}return null})(e,i,n,o);if(!a)return null;let{title:d,description:u,thumbnailUrl:f}=a.item,{resolveLocalizable:m}=o;return{name:m(d),description:void 0===u?null:m(u),imageUrl:void 0===f?null:m(f),color:null}})(e,u.type,a,d)).with({kind:"option"},e=>(({entityId:e,edgeName:t,value:r},l,o,a)=>{let d=i(a.manifest,l).find(e=>e.edgeName===t),u=d?n(d,e,o,a)?.find(e=>String(e.value)===r):void 0;return u?{name:u.name??u.description??String(u.value),description:null==u.name?null:u.description,imageUrl:u.imageUrl,color:u.color}:null})(e,u.type,a,d)).exhaustive():null};
@@ -0,0 +1,3 @@
1
+ export { AssistantReferenceLink } from './AssistantReferenceLink.js';
2
+ export { isAssistantLinkHref, parseAssistantLinkTarget } from './assistant-link-target.js';
3
+ export { assistantReferenceStyles } from './reference-styles.js';
@@ -0,0 +1 @@
1
+ export{AssistantReferenceLink}from"./AssistantReferenceLink.js";export{isAssistantLinkHref,parseAssistantLinkTarget}from"./assistant-link-target.js";export{assistantReferenceStyles}from"./reference-styles.js";
@@ -0,0 +1,12 @@
1
+ import { type CSSObject, type Theme } from '@mui/material';
2
+ /**
3
+ * How a link in a reply reads: a glossary reference, text that flows with the sentence and wraps
4
+ * with it, in the reference color with a dashed underline. Entity links and the references to
5
+ * recipes and options share it, so every link of a reply looks alike.
6
+ *
7
+ * - `data-reference="plain"`: something that exists but does nothing on a click, in the text color;
8
+ * - `data-reference="muted"`: something that is gone or cannot be read right now.
9
+ */
10
+ export declare const assistantReferenceStyles: ({ theme: { palette, shape } }: {
11
+ readonly theme: Theme;
12
+ }) => CSSObject;
@@ -0,0 +1 @@
1
+ import{alpha as e}from"@mui/material";export const assistantReferenceStyles=({theme:{palette:r,shape:o}})=>({background:"none",border:"none",borderRadius:o.borderRadius/2,boxDecorationBreak:"clone",color:r.primary.main,cursor:"pointer",font:"inherit",margin:0,padding:0,textDecorationLine:"underline",textDecorationStyle:"dashed",textDecorationThickness:1,textUnderlineOffset:"0.2em",WebkitBoxDecorationBreak:"clone",'&:hover, &:focus-visible, &[data-hovered="true"], &[aria-expanded="true"]':{background:e(r.primary.main,r.action.hoverOpacity)},"&:focus-visible":{outline:`2px solid ${r.primary.main}`,outlineOffset:1},'&[data-reference="plain"]':{color:"inherit",cursor:"auto"},'&[data-reference="muted"]':{color:r.text.disabled}});
@@ -0,0 +1,8 @@
1
+ import type { AssistantReferenceTarget } from './assistant-link-target.js';
2
+ import { type AssistantReferenceDetails } from './assistant-reference-details.js';
3
+ /**
4
+ * The details of what a reference points at, read from the committed state and followed while the
5
+ * caller is mounted; `null` when it does not resolve there. Only the open popover of a reference
6
+ * calls it, so a reply full of references reads nothing until one is opened.
7
+ */
8
+ export declare const useAssistantReferenceDetails: (target: AssistantReferenceTarget) => AssistantReferenceDetails | null;
@@ -0,0 +1 @@
1
+ import{useDomain as e,useResolveLocalizable as t,useStoreSelector as r}from"#package/react-sdk";import{useConfigurator as s}from"../../../application-runtime/index.js";import{readAssistantReferenceDetails as i}from"./assistant-reference-details.js";export const useAssistantReferenceDetails=a=>{let{assistantSystem:n}=s(),{componentReader:o}=e(),l=t();return r(({state:e})=>{let t=n.getSessionManifest();return t?i(a,e,{manifest:t,componentReader:o,resolveLocalizable:e=>l(e)}):null},[n,o,l,a])};
@@ -0,0 +1,9 @@
1
+ export interface AssistantImageProps {
2
+ readonly src: string | undefined;
3
+ readonly alt: string | undefined;
4
+ }
5
+ /**
6
+ * An image in a reply, loaded from the project's resources. One the panel refuses to request or
7
+ * that fails to load shows its alt text instead, so the sentence around it still reads.
8
+ */
9
+ export declare const AssistantImage: import("react").MemoExoticComponent<({ src, alt }: AssistantImageProps) => import("react/jsx-runtime").JSX.Element>;
@@ -0,0 +1 @@
1
+ import{jsx as r,Fragment as e}from"react/jsx-runtime";import{styled as t}from"@mui/material";import{memo as m,useCallback as o,useState as a}from"react";import{AssistantPanelName as i}from"../theme.js";import{useResourceImageUrl as s}from"./use-resource-image-url.js";let l=t("img",{name:i,slot:"image"})(({theme:{shape:r,spacing:e}})=>({blockSize:"auto",borderRadius:r.borderRadius,display:"block",maxInlineSize:"100%","& + &":{marginBlockStart:e(1)}}));export const AssistantImage=m(({src:t,alt:m})=>{let i=s()(t),[n,u]=a(),c=o(()=>{u(i)},[i]);return null==i||i===n?r(e,{children:m}):r(l,{src:i,alt:m??"",loading:"lazy",onError:c})});
@@ -0,0 +1,3 @@
1
+ export { AssistantImage } from './AssistantImage.js';
2
+ export { isResourcePath } from './resource-path.js';
3
+ export { useResourceImageUrl } from './use-resource-image-url.js';
@@ -0,0 +1 @@
1
+ export{AssistantImage}from"./AssistantImage.js";export{isResourcePath}from"./resource-path.js";export{useResourceImageUrl}from"./use-resource-image-url.js";
@@ -0,0 +1,2 @@
1
+ /** True when the image source the model wrote may be requested: a path into the project's resources. */
2
+ export declare const isResourcePath: (src: string | undefined) => src is string;
@@ -0,0 +1 @@
1
+ import{ASSISTANT_RESOURCE_PATH_PATTERN as e}from"#package/domain";let t=RegExp(e,"u");export const isResourcePath=e=>null!=e&&t.test(e);
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Resolves an image source the model wrote the way the configurator resolves thumbnails, or returns
3
+ * `undefined` when it is not a path into the project's resources and must not be requested.
4
+ */
5
+ export declare const useResourceImageUrl: () => (src: string | undefined) => string | undefined;
@@ -0,0 +1 @@
1
+ import{useCallback as r}from"react";import{useResourceUrl as e}from"#package/react-sdk";import{isResourcePath as o}from"./resource-path.js";export const useResourceImageUrl=()=>{let{getResourceUrl:t}=e();return r(r=>o(r)?t(r):void 0,[t])};
@@ -0,0 +1,9 @@
1
+ import type { AssistantToolScreenshot } from './tool-screenshots.js';
2
+ interface ScreenshotThumbnailsProps {
3
+ readonly screenshots: readonly AssistantToolScreenshot[];
4
+ /** Called once a picture has loaded, which changes the size of the popover. */
5
+ readonly onImageLoad: () => void;
6
+ }
7
+ /** The pictures of a tool call's screenshots. */
8
+ export declare const ScreenshotThumbnails: ({ screenshots, onImageLoad }: ScreenshotThumbnailsProps) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1 @@
1
+ import{jsx as e}from"react/jsx-runtime";import{styled as o}from"@mui/material";import{AssistantPanelName as r}from"../theme.js";import{useScreenshotSrc as a}from"./use-screenshot-src.js";let i=o("span",{name:r,slot:"screenshots",shouldForwardProp:e=>"columns"!==e})(({columns:e,theme:{palette:o,shape:r,shadows:a,spacing:i}})=>({background:o.background.paper,borderRadius:r.borderRadius,boxShadow:a[4],display:"grid",gap:i(1.5),gridTemplateColumns:`repeat(${e}, minmax(0, 200px))`,maxInlineSize:"80vw",padding:i(1.5)})),s=o("img")(({theme:{palette:e,shape:o}})=>({blockSize:"auto",borderRadius:o.borderRadius/2,boxShadow:`inset 0 0 0 1px ${e.divider}`,display:"block",inlineSize:"100%"})),d=o("span")(({theme:{palette:e,shape:o}})=>({aspectRatio:"4 / 3",background:e.action.hover,borderRadius:o.borderRadius/2,display:"block"})),t=({picture:o,onImageLoad:r})=>{let i=a(o);return void 0===i?e(d,{}):e(s,{src:i,alt:"",onLoad:r})};export const ScreenshotThumbnails=({screenshots:o,onImageLoad:r})=>e(i,{columns:Math.min(o.length,2),children:o.map(({label:o,picture:a})=>e(t,{picture:a,onImageLoad:r},o))});
@@ -0,0 +1,2 @@
1
+ export { ScreenshotThumbnails } from './ScreenshotThumbnails.js';
2
+ export { type AssistantToolScreenshot, readToolScreenshots } from './tool-screenshots.js';
@@ -0,0 +1 @@
1
+ export{ScreenshotThumbnails}from"./ScreenshotThumbnails.js";export{readToolScreenshots}from"./tool-screenshots.js";
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Where the panel gets a screenshot's picture from: the server, by the id the browser uploaded it
3
+ * under, or the data URL of a picture a thread from before the upload carries inline.
4
+ */
5
+ export type AssistantScreenshotPicture = {
6
+ readonly kind: 'stored';
7
+ readonly imageId: string;
8
+ } | {
9
+ readonly kind: 'inline';
10
+ readonly src: string;
11
+ };
12
+ /** A screenshot a `query` or `apply` call took, as the panel shows it. */
13
+ export interface AssistantToolScreenshot {
14
+ /** The label the call's `image` field returned, such as `Cabinet-2/doorLayout#2`. */
15
+ readonly label: string;
16
+ readonly picture: AssistantScreenshotPicture;
17
+ }
18
+ /**
19
+ * The screenshots of a tool result: the image parts that follow the result's JSON, each after the
20
+ * text part with its label. A result without them, such as plain JSON or an error, has none.
21
+ */
22
+ export declare const readToolScreenshots: (result: unknown) => readonly AssistantToolScreenshot[];
@@ -0,0 +1 @@
1
+ import{z as t}from"zod";import{readAssistantImageReference as e}from"@salsita-ai/contracts/assistant";let a=t.object({type:t.literal("text"),content:t.string()}),r=t.object({type:t.literal("image"),source:t.discriminatedUnion("type",[t.object({type:t.literal("url"),value:t.string()}),t.object({type:t.literal("data"),value:t.string(),mimeType:t.string()})])}),s=/^[^/]+\/[^#]+(?:#\d+)?$/;export const readToolScreenshots=t=>Array.isArray(t)?t.slice(1).flatMap((t,l,i)=>{let n=r.safeParse(t),o=a.safeParse(i[l-1]),c=n.success?(({source:t})=>{if("data"===t.type)return{kind:"inline",src:`data:${t.mimeType};base64,${t.value}`};let a=e(t.value);return null===a?null:{kind:"stored",imageId:a}})(n.data):null;return c&&o.success&&s.test(o.data.content)?[{label:o.data.content,picture:c}]:[]}):[];
@@ -0,0 +1,8 @@
1
+ import type { AssistantScreenshotPicture } from './tool-screenshots.js';
2
+ /**
3
+ * The `src` of a screenshot's picture: the data URL of an inline one at once, and for an uploaded
4
+ * one the object URL the assistant system reads it into, once it has been read; `undefined` until
5
+ * then and when the read fails. Only the open popover of a call's screenshots calls it, so nothing
6
+ * is read while the popover is closed.
7
+ */
8
+ export declare const useScreenshotSrc: (picture: AssistantScreenshotPicture) => string | undefined;
@@ -0,0 +1 @@
1
+ import{useEffect as r,useState as e}from"react";import{useConfigurator as n}from"../../../application-runtime/index.js";export const useScreenshotSrc=t=>{let{assistantSystem:i}=n(),o="stored"===t.kind?t.imageId:null,[l,d]=e();return(r(()=>{if(null===o)return;let r=!0;return i.loadScreenshotUrl(o).then(e=>{r&&d({imageId:o,src:e})},()=>void 0),()=>{r=!1}},[i,o]),"inline"===t.kind)?t.src:l?.imageId===o?l.src:void 0};
@@ -2,7 +2,7 @@
2
2
  export declare const hasOpenFence: (text: string) => boolean;
3
3
  /**
4
4
  * Makes the Markdown of a reply that is still streaming renderable as it stands, so half-written
5
- * markup does not flash as raw characters: an open code fence is closed, an inline code span, a link
6
- * or a table header the model has not finished is held back, and open bold text is closed.
5
+ * markup does not flash as raw characters: an open code fence is closed, an inline code span, a link,
6
+ * an alert marker or a table header the model has not finished is held back, and open bold text is closed.
7
7
  */
8
8
  export declare const completeStreamedMarkdown: (text: string) => string;
@@ -1,2 +1,2 @@
1
- let e=(e,t)=>e.split(t).length-1,t=/^\|?\s*:?-+:?\s*(\|\s*:?-+:?\s*)*\|?\s*$/;export const hasOpenFence=t=>e(t,"```")%2==1;export const completeStreamedMarkdown=n=>{if(hasOpenFence(n))return`${n}
2
- \`\`\``;let l=n.lastIndexOf("```"),s=-1===l?"":n.slice(0,l+3),r=n.slice(s.length),c=(e=>{let n=e.split("\n"),l=n.length;for(;l>0&&n[l-1]?.trimStart().startsWith("|");)l-=1;let s=n.slice(l),r=s[1],c=null!=r&&s.length>2&&t.test(r);return 0===s.length||c?e:n.slice(0,l).join("\n")})((e(r,"`")%2==1?r.slice(0,r.lastIndexOf("`")):r).replace(/!?\[([^\]\n]*)\]\([^)\n]*$/,"$1").replace(/!?\[[^\]\n]*$/,"")),i=e(c,"**")%2==1?`${c}**`:c;return`${s}${i}`};
1
+ let e=(e,t)=>e.split(t).length-1,t=/^\|?\s*:?-+:?\s*(\|\s*:?-+:?\s*)*\|?\s*$/,l=/(^|\n) {0,3}>[ \t]*\[![a-z]*$/i,n=/(^|\n) {0,3}>[ \t]*\[![a-z]+\][ \t]*$/i;export const hasOpenFence=t=>e(t,"```")%2==1;export const completeStreamedMarkdown=s=>{var r;let a;if(hasOpenFence(s))return`${s}
2
+ \`\`\``;let i=s.lastIndexOf("```"),c=-1===i?"":s.slice(0,i+3),{head:$,marker:h}=(r=s.slice(c.length),null==(a=n.exec(r))?{head:r.replace(l,"$1"),marker:""}:{head:r.slice(0,a.index),marker:r.slice(a.index)}),p=(e=>{let l=e.split("\n"),n=l.length;for(;n>0&&l[n-1]?.trimStart().startsWith("|");)n-=1;let s=l.slice(n),r=s[1],a=null!=r&&s.length>2&&t.test(r);return 0===s.length||a?e:l.slice(0,n).join("\n")})((e($,"`")%2==1?$.slice(0,$.lastIndexOf("`")):$).replace(/!?\[([^\]\n]*)\](?:\([^)\n]*)?$/,"$1").replace(/!?\[[^\]\n]*$/,"")),d=e(p,"**")%2==1?`${p}**`:p;return`${c}${d}${h}`};
@@ -1 +1 @@
1
- import{Kind as e,parse as t}from"graphql";import{z as n}from"zod";import{ASSISTANT_TOOL_ERROR_CODES as r,AssistantToolError as a,applyTool as i,queryTool as o}from"@salsita-ai/contracts/assistant";let l=n.object({operations:n.array(n.object({query:n.string(),operationName:n.string().nullish()}))}),s=n.object({results:n.array(n.object({errors:n.array(n.unknown()).optional()})),committed:n.boolean()});export const describeToolCall=n=>{let d=(({name:n,input:r})=>{let a,s=(a=l.safeParse(r)).success?a.data.operations.flatMap(({query:n,operationName:r})=>r??(n=>{try{let r=t(n).definitions.find(t=>t.kind===e.OPERATION_DEFINITION);return r?.kind===e.OPERATION_DEFINITION?r.name?.value:void 0}catch{return}})(n)??[]):[];return s.length>0?{kind:"text",text:s.join(", ")}:n===i.name?{kind:"updateDesign"}:n===o.name?{kind:"readDesign"}:{kind:"text",text:n}})(n);if(null==n.result&&null==n.error)return{label:d,state:n.isReplyRunning?"running":"done",errorCode:void 0};let u=(e=>{let t=a.safeParse(e);if(t.success)return r.find(e=>e===t.data.code)})(n.result);return{label:d,state:(({name:e,result:t,error:n},r)=>{if(null!=n||null!=r)return e===o.name?"flawed":"failed";if(e!==i.name&&e!==o.name)return"done";let a=s.safeParse(t);if(!a.success)return e===o.name?"flawed":"failed";let{results:l,committed:d}=a.data;return e===i.name?d?"done":"failed":l.some(({errors:e})=>(e?.length??0)>0)||0===l.length?"flawed":"done"})(n,u),errorCode:u}};
1
+ import{Kind as e,parse as t}from"graphql";import{z as n}from"zod";import{ASSISTANT_TOOL_ERROR_CODES as r,AssistantToolError as a,applyTool as s,queryTool as o}from"@salsita-ai/contracts/assistant";let i=n.object({operations:n.array(n.object({query:n.string(),operationName:n.string().nullish()}))}),l=n.object({results:n.array(n.object({errors:n.array(n.unknown()).optional()})),committed:n.boolean()}),u=n.tuple([n.object({type:n.literal("text"),content:n.string()})]).rest(n.unknown());export const describeToolCall=n=>{let d=(({name:n,input:r})=>{let a,l=(a=i.safeParse(r)).success?a.data.operations.flatMap(({query:n,operationName:r})=>r??(n=>{try{let r=t(n).definitions.find(t=>t.kind===e.OPERATION_DEFINITION);return r?.kind===e.OPERATION_DEFINITION?r.name?.value:void 0}catch{return}})(n)??[]):[];return l.length>0?{kind:"text",text:l.join(", ")}:n===s.name?{kind:"updateDesign"}:n===o.name?{kind:"readDesign"}:{kind:"text",text:n}})(n);if(null==n.result&&null==n.error)return{label:d,state:n.isReplyRunning?"running":"done",errorCode:void 0};let c=(e=>{let t=a.safeParse(e);if(t.success)return r.find(e=>e===t.data.code)})(n.result);return{label:d,state:(({name:e,result:t,error:n},r)=>{if(null!=n||null!=r)return e===o.name?"flawed":"failed";if(e!==s.name&&e!==o.name)return"done";let a=l.safeParse((e=>{let t=u.safeParse(e);if(!t.success)return e;try{return JSON.parse(t.data[0].content)}catch{return e}})(t));if(!a.success)return e===o.name?"flawed":"failed";let{results:i,committed:d}=a.data;return e===s.name?d?"done":"failed":i.some(({errors:e})=>(e?.length??0)>0)||0===i.length?"flawed":"done"})(n,c),errorCode:c}};
@@ -1 +1 @@
1
- import{useCallback as r,useEffect as e,useLayoutEffect as t,useRef as l,useState as c}from"react";export const useFollowStream=(o,n)=>{let s=l(null),u=l(!0),[i,g]=c(!1),h=r(()=>{let r=s.current;u.current=!0,g(!1),r&&(r.scrollTop=r.scrollHeight)},[]),H=r(()=>{let r=s.current;r&&(u.current=r.scrollHeight-r.scrollTop-r.clientHeight<=24,u.current&&g(!1))},[]);return t(()=>{h()},[n,h]),t(()=>{let r=s.current;r&&(u.current?r.scrollTop=r.scrollHeight:r.scrollHeight>r.clientHeight&&g(!0))},[o]),e(()=>{let r=s.current;if(!r)return;let e=new ResizeObserver(()=>{u.current&&(r.scrollTop=r.scrollHeight)});return e.observe(r),()=>{e.disconnect()}},[]),{scrollerRef:s,hasUnseenContent:i,handleScroll:H,scrollToEnd:h}};
1
+ import{useCallback as e,useEffect as r,useLayoutEffect as t,useRef as l,useState as c}from"react";export const useFollowStream=(o,n)=>{let s=l(null),i=l(!0),[u,g]=c(!1),h=e(()=>{let e=s.current;i.current=!0,g(!1),e&&(e.scrollTop=e.scrollHeight)},[]),H=e(()=>{let e=s.current;e&&(i.current=e.scrollHeight-e.scrollTop-e.clientHeight<=24,i.current&&g(!1))},[]);return t(()=>{h()},[n,h]),t(()=>{let e=s.current;e&&(i.current?e.scrollTop=e.scrollHeight:e.scrollHeight>e.clientHeight&&g(!0))},[o]),r(()=>{let e=s.current;if(!e)return;let r=()=>{i.current&&(e.scrollTop=e.scrollHeight)},t=new ResizeObserver(r);return t.observe(e),e.addEventListener("load",r,!0),()=>{t.disconnect(),e.removeEventListener("load",r,!0)}},[]),{scrollerRef:s,hasUnseenContent:u,handleScroll:H,scrollToEnd:h}};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{Box as a}from"@mui/material";import{useDetectGPU as i}from"@react-three/drei";import{Canvas as o,useThree as n}from"@react-three/fiber";import{memo as s,useCallback as l,useEffect as p,useMemo as c,useState as f}from"react";import{BuiltInLoadingPhase as m,useLoadingPhase as d,useLoadingStateManager as h,useStoreSelector as u}from"#package/react-sdk";import{useResponsive as g}from"#package/ui-sdk";import{useConfigurator as x}from"../../../../application-runtime/index.js";import{Scene as v,SceneEnvironment as C}from"../../../../scene/index.js";import{CanvasLoader as P}from"../../../phoenix-layout-elements/index.js";import{GPUIssuePage as w}from"./GPUIssuePage.js";let j=e=>{let{onCanNotLoad:t}=e,r=n(e=>e.gl);return p(()=>{let e=r.getContext(),a=e.getExtension("WEBGL_debug_renderer_info");a?e.getParameter(a.UNMASKED_RENDERER_WEBGL).toLocaleLowerCase().includes("swiftshader")&&t?.("no-acceleration"):t?.("no-acceleration")},[r,t]),null};export const Canvas=s(()=>{let[n,s]=f(null),[D,E]=f(!0),{canvasSystem:B}=x(),L=u(e=>B.getCanvasConfig(e.state),[B]),y=i(),{canvasPadding:k}=g(),M=null!==h();d({id:m.SceneAssets,label:"Loading 3D scene…"},D);let $=l(()=>{E(!1),B.reportFirstLoadFinished()},[B]),_=l(e=>{B.onCanvasClick$.next(e)},[B]),b=l(e=>{B.onCanvasPointerMove$.next(e)},[B]),A=c(()=>{let e={};return L?.precision&&(e.precision=L.precision),L?.alpha&&(e.alpha=L.alpha),L?.premultipliedAlpha&&(e.premultipliedAlpha=L.premultipliedAlpha),L?.antialias&&(e.antialias=L.antialias),L?.stencil&&(e.stencil=L.stencil),L?.preserveDrawingBuffer&&(e.preserveDrawingBuffer=L.preserveDrawingBuffer),L?.powerPreference&&(e.powerPreference=L.powerPreference),L?.depth&&(e.depth=L.depth),L?.logarithmicDepthBuffer&&(e.logarithmicDepthBuffer=L.logarithmicDepthBuffer),L?.failIfMajorPerformanceCaveat&&(e.failIfMajorPerformanceCaveat=L.failIfMajorPerformanceCaveat),e},[L]);return(p(()=>{"WEBGL_UNSUPPORTED"===y.type&&s("no-gpu")},[y,s]),n)?e(w,{issue:n}):t(r,{children:[e(a,{component:"div",sx:{transition:"opacity 0.3s ease-in",opacity:+!D,width:"100%",height:"100%"},children:t(o,{gl:A,onClick:_,onPointerMove:b,frameloop:L?.frameloop,shadows:L?.shadows,children:[e(v,{onFirstLoad:$}),e(j,{onCanNotLoad:s}),e(C,{})]})}),!M&&e(a,{component:"div",sx:{position:"absolute",top:k.top,left:k.left,width:`calc(100% - ${k.left}px - ${k.right}px)`,height:`calc(100% - ${k.top}px - ${k.bottom}px)`,display:"flex",justifyContent:"center",alignItems:"center",transition:"opacity 0.3s ease-in",opacity:+!!D,pointerEvents:"none"},children:e(P,{})})]})});
1
+ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{Box as a}from"@mui/material";import{useDetectGPU as i}from"@react-three/drei";import{Canvas as o,useThree as n}from"@react-three/fiber";import{memo as s,useCallback as p,useEffect as l,useMemo as c,useState as f}from"react";import{BuiltInLoadingPhase as m,useExpectPhase as d,useIsLoaderHosted as h,useLoadingPhase as u,useStoreSelector as g}from"#package/react-sdk";import{useResponsive as x}from"#package/ui-sdk";import{useConfigurator as v}from"../../../../application-runtime/index.js";import{Scene as C,SceneEnvironment as P}from"../../../../scene/index.js";import{CanvasLoader as w}from"../../../phoenix-layout-elements/index.js";import{GPUIssuePage as j}from"./GPUIssuePage.js";let D=e=>{let{onCanNotLoad:t}=e,r=n(e=>e.gl);return l(()=>{let e=r.getContext(),a=e.getExtension("WEBGL_debug_renderer_info");a?e.getParameter(a.UNMASKED_RENDERER_WEBGL).toLocaleLowerCase().includes("swiftshader")&&t?.("no-acceleration"):t?.("no-acceleration")},[r,t]),null};export const Canvas=s(()=>{let[n,s]=f(null),[E,B]=f(!0),{canvasSystem:L}=v(),y=g(e=>L.getCanvasConfig(e.state),[L]),k=i(),{canvasPadding:A}=x(),M=h();d(m.SceneAssets),u({id:m.SceneAssets,label:"Loading 3D scene…"},E);let $=p(()=>{B(!1),L.reportFirstLoadFinished()},[L]),_=p(e=>{L.onCanvasClick$.next(e)},[L]),b=p(e=>{L.onCanvasPointerMove$.next(e)},[L]),I=c(()=>{let e={};return y?.precision&&(e.precision=y.precision),y?.alpha&&(e.alpha=y.alpha),y?.premultipliedAlpha&&(e.premultipliedAlpha=y.premultipliedAlpha),y?.antialias&&(e.antialias=y.antialias),y?.stencil&&(e.stencil=y.stencil),y?.preserveDrawingBuffer&&(e.preserveDrawingBuffer=y.preserveDrawingBuffer),y?.powerPreference&&(e.powerPreference=y.powerPreference),y?.depth&&(e.depth=y.depth),y?.logarithmicDepthBuffer&&(e.logarithmicDepthBuffer=y.logarithmicDepthBuffer),y?.failIfMajorPerformanceCaveat&&(e.failIfMajorPerformanceCaveat=y.failIfMajorPerformanceCaveat),e},[y]);return(l(()=>{"WEBGL_UNSUPPORTED"===k.type&&s("no-gpu")},[k,s]),n)?e(j,{issue:n}):t(r,{children:[e(a,{component:"div",sx:{transition:"opacity 0.3s ease-in",opacity:+!E,width:"100%",height:"100%"},children:t(o,{gl:I,onClick:_,onPointerMove:b,frameloop:y?.frameloop,shadows:y?.shadows,children:[e(C,{onFirstLoad:$}),e(D,{onCanNotLoad:s}),e(P,{})]})}),!M&&e(a,{component:"div",sx:{position:"absolute",top:A.top,left:A.left,width:`calc(100% - ${A.left}px - ${A.right}px)`,height:`calc(100% - ${A.top}px - ${A.bottom}px)`,display:"flex",justifyContent:"center",alignItems:"center",transition:"opacity 0.3s ease-in",opacity:+!!E,pointerEvents:"none"},children:e(w,{})})]})});
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{styled as e}from"@mui/material";import{Suspense as o,memo as r,useEffect as i,useRef as n,useState as a}from"react";import{useLoadingStateManager as s}from"#package/react-sdk";import{usePreview as l}from"../../../../configurator-context/index.js";import{CanvasLoader as m}from"../../../phoenix-layout-elements/index.js";import{Canvas as c}from"./LayoutCanvas.js";let p=e("div",{shouldForwardProp:t=>"masked"!==t})(({masked:t,theme:{palette:e}})=>({backgroundColor:e.background.scene,inset:0,position:"absolute",isolation:"isolate",maxBlockSize:"var(--phx-app-height)","&::after":{backgroundColor:"inherit",content:'""',display:"block",inset:"inherit",opacity:+!!t,pointerEvents:"none",position:"absolute",transitionDuration:t?"0ms":"100ms",transitionProperty:"opacity",transitionTimingFunction:"linear"}})),u=e("div")({display:"grid",inset:0,placeItems:"center",pointerEvents:"none",position:"absolute"}),d=()=>null!==s()?null:t(u,{children:t(m,{})});export const SharedCanvas=r(()=>{let{isExpanded:e}=l(),[r,s]=a(!1),m=n(e);return i(()=>{if(e===m.current)return;m.current=e,s(!0);let t=setTimeout(()=>s(!1),600);return()=>clearTimeout(t)},[e]),t(p,{masked:r,children:t(o,{fallback:t(d,{}),children:t(c,{})})})});
1
+ import{jsx as t}from"react/jsx-runtime";import{styled as e}from"@mui/material";import{Suspense as o,memo as r,useEffect as i,useRef as n,useState as a}from"react";import{BuiltInLoadingPhase as s,useExpectPhase as l,useIsLoaderHosted as m}from"#package/react-sdk";import{usePreview as c}from"../../../../configurator-context/index.js";import{CanvasLoader as p}from"../../../phoenix-layout-elements/index.js";import{Canvas as u}from"./LayoutCanvas.js";let d=e("div",{shouldForwardProp:t=>"masked"!==t})(({masked:t,theme:{palette:e}})=>({backgroundColor:e.background.scene,inset:0,position:"absolute",isolation:"isolate",maxBlockSize:"var(--phx-app-height)","&::after":{backgroundColor:"inherit",content:'""',display:"block",inset:"inherit",opacity:+!!t,pointerEvents:"none",position:"absolute",transitionDuration:t?"0ms":"100ms",transitionProperty:"opacity",transitionTimingFunction:"linear"}})),h=e("div")({display:"grid",inset:0,placeItems:"center",pointerEvents:"none",position:"absolute"}),f=()=>m()?null:t(h,{children:t(p,{})});export const SharedCanvas=r(()=>{l(s.SceneAssets);let{isExpanded:e}=c(),[r,m]=a(!1),p=n(e);return i(()=>{if(e===p.current)return;p.current=e,m(!0);let t=setTimeout(()=>m(!1),600);return()=>clearTimeout(t)},[e]),t(d,{masked:r,children:t(o,{fallback:t(f,{}),children:t(u,{})})})});
@@ -1,7 +1,7 @@
1
1
  export declare const useMobileTabs: () => {
2
2
  tabs: {
3
3
  label: string;
4
- icon: import("react").ReactNode;
4
+ icon: string | number | boolean | Iterable<import("react").ReactNode> | import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
5
5
  value: string;
6
6
  isActive: boolean;
7
7
  }[];