@salsita-ai/sdk 0.50.0-develop.26a71cda28 → 0.50.0-develop.2ad6270b01

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 (685) hide show
  1. package/README.md +19 -14
  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-spec/caching/content-diff.js +1 -1
  13. package/dist/application-spec/core/application-file.d.ts +0 -2
  14. package/dist/application-spec/core/application-file.js +1 -1
  15. package/dist/application-spec/core/expressions/index.d.ts +2 -0
  16. package/dist/application-spec/core/expressions/index.js +1 -0
  17. package/dist/application-spec/core/expressions/relation-expression-params.d.ts +11 -0
  18. package/dist/application-spec/core/expressions/relation-expression-params.js +1 -0
  19. package/dist/application-spec/core/expressions/sdk-expression-implementation.d.ts +24 -0
  20. package/dist/application-spec/core/expressions/sdk-expression-implementation.js +1 -0
  21. package/dist/application-spec/core/index.d.ts +1 -0
  22. package/dist/application-spec/core/index.js +1 -1
  23. package/dist/application-spec/errors/diagnostic-codes.d.ts +5 -0
  24. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  25. package/dist/application-spec/errors/diagnostic-messages.d.ts +5 -0
  26. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  27. package/dist/application-spec/generate-application/code/common/code-imports.js +1 -1
  28. package/dist/application-spec/generate-application/code/common/env-reader.js +2 -2
  29. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  30. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  31. package/dist/application-spec/generate-application/code/common/single-quoted-string.d.ts +6 -0
  32. package/dist/application-spec/generate-application/code/common/single-quoted-string.js +1 -0
  33. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  34. package/dist/application-spec/generate-application/code/generate-application-code.d.ts +3 -2
  35. package/dist/application-spec/generate-application/code/generate-application-code.js +1 -1
  36. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +15 -14
  37. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  38. package/dist/application-spec/generate-application/code/standalone-app-files.d.ts +2 -2
  39. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  40. package/dist/application-spec/generate-application/code/story-files.js +1 -1
  41. package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -0
  42. package/dist/application-spec/generate-application/code/templates/common/format-property-key.d.ts +7 -0
  43. package/dist/application-spec/generate-application/code/templates/common/format-property-key.js +1 -0
  44. package/dist/application-spec/generate-application/code/templates/common/schema-to-type-string.js +3 -3
  45. package/dist/application-spec/generate-application/code/templates/configurator-config.js +6 -4
  46. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +35 -0
  47. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +5 -0
  48. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.d.ts +1 -0
  49. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.js +1 -0
  50. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.d.ts +1 -1
  51. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +6 -6
  52. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +59 -63
  53. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +8 -0
  54. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  55. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-presets.js +1 -1
  56. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +13 -13
  57. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.d.ts +1 -1
  58. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.js +2 -2
  59. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +2 -1
  60. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  61. package/dist/application-spec/generate-application/code/templates/eslint-config.d.ts +5 -0
  62. package/dist/application-spec/generate-application/code/templates/eslint-config.js +4 -5
  63. package/dist/application-spec/generate-application/code/templates/frontend-config.js +3 -5
  64. package/dist/application-spec/generate-application/code/templates/gitignore.js +0 -3
  65. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.d.ts +43 -0
  66. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +31 -0
  67. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
  68. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  69. package/dist/application-spec/generate-application/code/templates/globals.js +24 -44
  70. package/dist/application-spec/generate-application/code/templates/index.d.ts +3 -3
  71. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  72. package/dist/application-spec/generate-application/code/templates/lingui-rc.d.ts +5 -0
  73. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +4 -4
  74. package/dist/application-spec/generate-application/code/templates/prettier-config.d.ts +5 -0
  75. package/dist/application-spec/generate-application/code/templates/prettier-config.js +4 -5
  76. package/dist/application-spec/generate-application/code/templates/root-tsconfig.d.ts +6 -0
  77. package/dist/application-spec/generate-application/code/templates/root-tsconfig.js +2 -0
  78. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  79. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +1 -1
  80. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +5 -5
  81. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +3 -3
  82. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  83. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +2 -2
  84. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +24 -7
  85. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -2
  86. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
  87. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
  88. package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
  89. package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
  90. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
  91. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
  92. package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
  93. package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
  94. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
  95. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
  96. package/dist/application-spec/generate-application/code/templates/story/phx-module.d.ts +8 -2
  97. package/dist/application-spec/generate-application/code/templates/story/phx-module.js +15 -3
  98. package/dist/application-spec/generate-application/code/templates/story/wrapper.d.ts +3 -0
  99. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -1
  100. package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
  101. package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
  102. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +6 -1
  103. package/dist/application-spec/generate-application/code/templates/webhook-index.js +10 -1
  104. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -3
  105. package/dist/application-spec/generate-application/index.d.ts +2 -0
  106. package/dist/application-spec/generate-application/index.js +1 -1
  107. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +6 -4
  108. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +1 -1
  109. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +8 -3
  110. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  111. package/dist/application-spec/generate-application/runtime/admin-runtime/states-runtime.d.ts +2 -2
  112. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +19 -5
  113. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  114. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +6 -4
  115. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +1 -1
  116. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +7 -2
  117. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  118. package/dist/application-spec/generate-application/runtime/configurator-runtime/states-runtime.d.ts +2 -2
  119. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +43 -0
  120. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.js +1 -0
  121. package/dist/application-spec/generate-application/runtime/factory-data/index.d.ts +3 -0
  122. package/dist/application-spec/generate-application/runtime/factory-data/index.js +1 -0
  123. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +13 -0
  124. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -0
  125. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +16 -0
  126. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -0
  127. package/dist/application-spec/generate-application/runtime/migrations/index.d.ts +1 -0
  128. package/dist/application-spec/generate-application/runtime/migrations/index.js +1 -0
  129. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +53 -0
  130. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +1 -0
  131. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +2 -2
  132. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +2 -1
  133. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  134. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +2 -1
  135. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +1 -1
  136. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +3 -0
  137. package/dist/application-spec/generate-application/runtime/sections/component-optic.js +1 -1
  138. package/dist/application-spec/generate-application/runtime/sections/data-runtime.d.ts +4 -4
  139. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +7 -4
  140. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  141. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +9 -5
  142. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  143. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +3 -1
  144. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.js +1 -1
  145. package/dist/application-spec/generate-application/runtime/sections/theme-runtime.d.ts +2 -2
  146. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +3 -3
  147. package/dist/application-spec/generate-application/runtime/spec-code/index.d.ts +2 -0
  148. package/dist/application-spec/generate-application/runtime/spec-code/index.js +1 -0
  149. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +18 -0
  150. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.js +1 -0
  151. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.d.ts +17 -0
  152. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.js +1 -0
  153. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.d.ts +9 -0
  154. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.js +1 -0
  155. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.d.ts +8 -0
  156. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.js +1 -0
  157. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +27 -0
  158. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.js +1 -0
  159. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +5 -0
  160. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -0
  161. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +68 -0
  162. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -0
  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 +34 -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/categorize/earlier-generated-tsconfig.d.ts +9 -0
  170. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
  171. package/dist/application-spec/parse-application-files/raw-spec/parse-yaml-spec-file.js +1 -1
  172. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  173. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  174. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  175. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  176. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.d.ts +3 -0
  177. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js +1 -0
  178. package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +5 -0
  179. package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -0
  180. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.d.ts +6 -0
  181. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.js +1 -0
  182. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.d.ts +8 -0
  183. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.js +1 -0
  184. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts +10 -0
  185. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.js +1 -0
  186. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.d.ts +98 -0
  187. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.js +1 -0
  188. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts +13 -0
  189. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js +1 -0
  190. package/dist/application-spec/parse-application-files/spec/components/bindings/index.d.ts +2 -0
  191. package/dist/application-spec/parse-application-files/spec/components/bindings/index.js +1 -1
  192. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.d.ts +24 -0
  193. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js +1 -0
  194. package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts +8 -0
  195. package/dist/application-spec/parse-application-files/spec/components/component-state-type.js +1 -0
  196. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts +13 -0
  197. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js +1 -0
  198. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.d.ts +14 -0
  199. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.js +1 -0
  200. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +6 -0
  201. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  202. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +7 -4
  203. package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
  204. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +24 -0
  205. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -0
  206. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.d.ts +13 -0
  207. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.js +1 -0
  208. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
  209. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
  210. package/dist/application-spec/parse-application-files/spec/expressions/expression.d.ts +1 -28
  211. package/dist/application-spec/parse-application-files/spec/expressions/expression.js +1 -1
  212. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -3
  213. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  214. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  215. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  216. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +3 -1
  217. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  218. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +2 -2
  219. package/dist/application-spec/parse-application-files/spec/invariants/invariants.js +1 -1
  220. package/dist/application-spec/parse-application-files/spec/model/index.d.ts +1 -0
  221. package/dist/application-spec/parse-application-files/spec/model/index.js +1 -1
  222. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.d.ts +10 -0
  223. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.js +1 -0
  224. package/dist/client/phoenix-api.d.ts +367 -0
  225. package/dist/configurator/ConfiguratorApp.js +1 -1
  226. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +36 -1
  227. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  228. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +7 -1
  229. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  230. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.d.ts +1 -1
  231. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.d.ts +12 -0
  232. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.js +1 -0
  233. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +7 -1
  234. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  235. package/dist/configurator/common/configurator-interface.d.ts +86 -3
  236. package/dist/configurator/common/configurator-interface.js +1 -1
  237. package/dist/configurator/common/index.d.ts +3 -1
  238. package/dist/configurator/common/index.js +1 -1
  239. package/dist/configurator/common/use-reset-camera.d.ts +6 -0
  240. package/dist/configurator/common/use-reset-camera.js +1 -0
  241. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +12 -0
  242. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -0
  243. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.d.ts +9 -0
  244. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.js +1 -0
  245. package/dist/configurator/configuration-not-found-page/index.d.ts +2 -0
  246. package/dist/configurator/configuration-not-found-page/index.js +1 -0
  247. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +12 -0
  248. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -0
  249. package/dist/configurator/configurator-context/PresetSelectionProvider.js +1 -1
  250. package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
  251. package/dist/configurator/configurator-context/ViewportStateSync.d.ts +2 -2
  252. package/dist/configurator/configurator-context/ViewportStateSync.js +1 -1
  253. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +6 -0
  254. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.d.ts +6 -0
  255. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.js +1 -0
  256. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.d.ts +12 -0
  257. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.js +1 -0
  258. package/dist/configurator/configurator-error-page/create-configurator-error-page.d.ts +9 -0
  259. package/dist/configurator/configurator-error-page/create-configurator-error-page.js +1 -0
  260. package/dist/configurator/configurator-error-page/index.d.ts +3 -0
  261. package/dist/configurator/configurator-error-page/index.js +1 -0
  262. package/dist/configurator/index.d.ts +2 -0
  263. package/dist/configurator/index.js +1 -1
  264. package/dist/configurator/pages/ConfiguratorErrorPage.d.ts +0 -1
  265. package/dist/configurator/pages/ConfiguratorErrorPage.js +1 -1
  266. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  267. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +3 -2
  268. package/dist/configurator/pages/DefaultNotAuthenticatedPage.d.ts +8 -0
  269. package/dist/configurator/pages/DefaultNotAuthenticatedPage.js +1 -0
  270. package/dist/configurator/pages/DefaultPresetUi.d.ts +7 -0
  271. package/dist/configurator/pages/DefaultPresetUi.js +1 -0
  272. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  273. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  274. package/dist/configurator/pages/PresetCreationErrorPage.d.ts +1 -1
  275. package/dist/configurator/pages/PresetCreationErrorPage.js +1 -1
  276. package/dist/configurator/pages/RootPage.js +1 -1
  277. package/dist/configurator/pages/configurator-layout-name.d.ts +2 -0
  278. package/dist/configurator/pages/configurator-layout-name.js +1 -0
  279. package/dist/configurator/pages/default-configurator-elements.d.ts +12 -0
  280. package/dist/configurator/pages/default-configurator-elements.js +1 -0
  281. package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +10 -0
  282. package/dist/configurator/pages/default-elements/built-in-entity-element.js +1 -0
  283. package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +10 -0
  284. package/dist/configurator/pages/default-elements/built-in-layout-element.js +1 -0
  285. package/dist/configurator/pages/default-elements/domain-control-elements.d.ts +6 -0
  286. package/dist/configurator/pages/default-elements/domain-control-elements.js +1 -0
  287. package/dist/configurator/pages/default-elements/index.d.ts +4 -0
  288. package/dist/configurator/pages/default-elements/index.js +1 -0
  289. package/dist/configurator/pages/default-elements/recipe-panel-elements.d.ts +3 -0
  290. package/dist/configurator/pages/default-elements/recipe-panel-elements.js +1 -0
  291. package/dist/configurator/pages/default-elements/sidebar-footer-elements.d.ts +7 -0
  292. package/dist/configurator/pages/default-elements/sidebar-footer-elements.js +1 -0
  293. package/dist/configurator/pages/default-elements/toolbar-elements.d.ts +7 -0
  294. package/dist/configurator/pages/default-elements/toolbar-elements.js +1 -0
  295. package/dist/configurator/pages/error-boundaries/GeneralErrorBoundary.js +1 -1
  296. package/dist/configurator/pages/index.d.ts +1 -0
  297. package/dist/configurator/pages/index.js +1 -1
  298. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.d.ts +4 -0
  299. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.js +1 -0
  300. package/dist/configurator/preset-screen-elements/PresetPageActionElement.d.ts +4 -0
  301. package/dist/configurator/preset-screen-elements/PresetPageActionElement.js +1 -0
  302. package/dist/configurator/preset-screen-elements/index.d.ts +2 -0
  303. package/dist/configurator/preset-screen-elements/index.js +1 -0
  304. package/dist/configurator/scene/scene-controls/DeleteEntityFab.js +1 -1
  305. package/dist/configurator/scene/scene-controls/SelectionHotspot.js +1 -1
  306. package/dist/configurator/ui/assistant/AssistantChips.d.ts +8 -2
  307. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  308. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -2
  309. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  310. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  311. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  312. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +1 -1
  313. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -1
  314. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +1 -1
  315. package/dist/configurator/ui/assistant/entity-link/index.d.ts +0 -1
  316. package/dist/configurator/ui/assistant/entity-link/index.js +1 -1
  317. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +19 -0
  318. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -0
  319. package/dist/configurator/ui/assistant/form/built-in-form-registry.d.ts +10 -0
  320. package/dist/configurator/ui/assistant/form/built-in-form-registry.js +1 -0
  321. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +11 -0
  322. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -0
  323. package/dist/configurator/ui/assistant/form/describe-build-errors.d.ts +6 -0
  324. package/dist/configurator/ui/assistant/form/describe-build-errors.js +1 -0
  325. package/dist/configurator/ui/assistant/form/form-element-definition.d.ts +14 -0
  326. package/dist/configurator/ui/assistant/form/form-element-definition.js +1 -0
  327. package/dist/configurator/ui/assistant/form/form-model.d.ts +38 -0
  328. package/dist/configurator/ui/assistant/form/form-model.js +1 -0
  329. package/dist/configurator/ui/assistant/form/form-registry.d.ts +31 -0
  330. package/dist/configurator/ui/assistant/form/form-registry.js +8 -0
  331. package/dist/configurator/ui/assistant/form/form-state.d.ts +4 -0
  332. package/dist/configurator/ui/assistant/form/form-state.js +1 -0
  333. package/dist/configurator/ui/assistant/form/index.d.ts +2 -0
  334. package/dist/configurator/ui/assistant/form/index.js +1 -0
  335. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +9 -0
  336. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -0
  337. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +13 -0
  338. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -0
  339. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +3 -0
  340. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -0
  341. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +3 -0
  342. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -0
  343. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +3 -0
  344. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -0
  345. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +3 -0
  346. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -0
  347. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +34 -0
  348. package/dist/configurator/ui/assistant/form-elements/form-element-props.js +1 -0
  349. package/dist/configurator/ui/assistant/form-elements/index.d.ts +5 -0
  350. package/dist/configurator/ui/assistant/form-elements/index.js +1 -0
  351. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +16 -0
  352. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -0
  353. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.d.ts +34 -0
  354. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.js +1 -0
  355. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.d.ts +25 -0
  356. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.js +1 -0
  357. package/dist/configurator/ui/assistant/reference-link/index.d.ts +3 -0
  358. package/dist/configurator/ui/assistant/reference-link/index.js +1 -0
  359. package/dist/configurator/ui/assistant/reference-link/reference-styles.d.ts +12 -0
  360. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -0
  361. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.d.ts +8 -0
  362. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.js +1 -0
  363. package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +9 -0
  364. package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -0
  365. package/dist/configurator/ui/assistant/resource-image/index.d.ts +3 -0
  366. package/dist/configurator/ui/assistant/resource-image/index.js +1 -0
  367. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +11 -0
  368. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -0
  369. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.d.ts +5 -0
  370. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.js +1 -0
  371. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +2 -0
  372. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  373. package/dist/configurator/ui/assistant/thread-items.d.ts +8 -1
  374. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  375. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -1
  376. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.d.ts +1 -1
  377. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.js +1 -1
  378. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  379. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  380. package/dist/configurator/ui/configurator-layout/slots/services/Services.js +1 -1
  381. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  382. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  383. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.d.ts +1 -1
  384. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.js +1 -1
  385. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +1 -1
  386. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -1
  387. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +1 -1
  388. package/dist/configurator/ui/legacy/layout/common/CommonFinalizeButton.js +1 -1
  389. package/dist/configurator/ui/legacy/layout/common/CommonSummaryButton.js +1 -1
  390. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  391. package/dist/configurator/ui/legacy/layout/common/ResponsiveFinalizeButton.js +1 -1
  392. package/dist/configurator/ui/legacy/layout/common/SummaryReadLayout.js +1 -1
  393. package/dist/configurator/ui/legacy/layout/simple/SimpleOwnerLayout.js +1 -1
  394. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  395. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  396. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  397. package/dist/configurator/ui/legacy/layout/steps/StepsSidebarFooter.js +1 -1
  398. package/dist/configurator/ui/legacy/layout/tabs/TabsOwnerLayout.js +1 -1
  399. package/dist/configurator/ui/legacy/toolbar/common/DimensionUnitSelector.js +1 -1
  400. package/dist/configurator/ui/legacy/toolbar/common/MeasurementsIndicatorsSwitch.js +1 -1
  401. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/FullscreenToolbarAction.js +1 -1
  402. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/HelpToolbarAction.js +1 -1
  403. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/MeasurementsToolbarAction.js +1 -1
  404. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/UndoRedoToolbarGroup.js +1 -1
  405. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.js +3 -3
  406. package/dist/configurator/ui/phoenix-layout-elements/EnterFullscreenToolbarButton.js +1 -1
  407. package/dist/configurator/ui/phoenix-layout-elements/ExitFullscreenToolbarButton.js +1 -1
  408. package/dist/configurator/ui/phoenix-layout-elements/HelpToolbarButton.js +1 -1
  409. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.d.ts +1 -0
  410. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.js +1 -1
  411. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.d.ts +1 -0
  412. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.js +1 -1
  413. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsToolbarButton.js +1 -1
  414. package/dist/configurator/ui/phoenix-layout-elements/RedoToolbarButton.js +1 -1
  415. package/dist/configurator/ui/phoenix-layout-elements/UndoToolbarButton.js +1 -1
  416. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  417. package/dist/configurator/ui/phoenix-layout-elements/header/common/horizontal-tabs/DesktopHorizontalTabs.js +1 -1
  418. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.d.ts +1 -1
  419. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.js +1 -1
  420. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -8
  421. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  422. package/dist/configurator/ui/phoenix-layout-elements/measurements/DimensionUnitSelector.js +1 -1
  423. package/dist/configurator/ui/phoenix-layout-elements/measurements/MeasurementsIndicatorsSwitch.js +1 -1
  424. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/BasicFinalizeButton.js +1 -1
  425. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/CustomFinalizeButton.js +1 -1
  426. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/EnterSummaryButton.js +1 -1
  427. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/FinalizeActions.js +1 -1
  428. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/NextStepButton.js +1 -1
  429. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  430. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  431. package/dist/configurator/ui/preset-layout/PresetUi.d.ts +4 -0
  432. package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
  433. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.d.ts +10 -0
  434. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -0
  435. package/dist/configurator/ui/save-message-snackbars/index.d.ts +1 -0
  436. package/dist/configurator/ui/save-message-snackbars/index.js +1 -0
  437. package/dist/docs/controls/select-child-entity/cardselect.mdx +1 -0
  438. package/dist/docs/fabs/basic.mdx +2 -2
  439. package/dist/docs/index.json +11 -1
  440. package/dist/docs/layouts/custom-layout.mdx +1635 -181
  441. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +2 -2
  442. package/dist/docs/other-features/error-5xx.mdx +1 -1
  443. package/dist/docs/other-features/not-found-404.mdx +1 -1
  444. package/dist/docs/phoenix/application-states.mdx +9 -7
  445. package/dist/docs/phoenix/clerk-sign-in.mdx +1 -1
  446. package/dist/docs/phoenix/components.mdx +6 -0
  447. package/dist/docs/phoenix/configurator-interface.mdx +164 -25
  448. package/dist/docs/phoenix/deployments.mdx +2 -6
  449. package/dist/docs/phoenix/domain-model.mdx +2 -0
  450. package/dist/docs/phoenix/finalization.mdx +1 -1
  451. package/dist/docs/phoenix/getting-started.mdx +6 -3
  452. package/dist/docs/phoenix/layout-slots.mdx +116 -0
  453. package/dist/docs/phoenix/localization.mdx +10 -6
  454. package/dist/docs/phoenix/migration-guide.mdx +24 -11
  455. package/dist/docs/phoenix/phoenix-cli.mdx +67 -20
  456. package/dist/docs/phoenix/project-structure.mdx +70 -33
  457. package/dist/docs/phoenix/quickstart.mdx +7 -7
  458. package/dist/docs/phoenix/sdk-builder-workflow.mdx +7 -7
  459. package/dist/docs/phoenix/testing.mdx +8 -0
  460. package/dist/docs/phoenix/webhooks.mdx +21 -4
  461. package/dist/domain/application/application-config.d.ts +3 -1
  462. package/dist/domain/application/assistant/assistant-form-elements.d.ts +28 -0
  463. package/dist/domain/application/assistant/assistant-form-elements.js +1 -0
  464. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  465. package/dist/domain/application/assistant/index.d.ts +2 -0
  466. package/dist/domain/application/assistant/index.js +1 -1
  467. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -1
  468. package/dist/domain/application/configurator-builder.d.ts +4 -1
  469. package/dist/domain/application/configurator-builder.js +1 -1
  470. package/dist/domain/core/model/model.d.ts +1 -1
  471. package/dist/domain/core/schema/extended-schema-validator.js +1 -1
  472. package/dist/domain/domain-context/index.d.ts +1 -1
  473. package/dist/domain/domain-context/undo-system.d.ts +28 -1
  474. package/dist/domain/domain-context/undo-system.js +1 -1
  475. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  476. package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +12 -11
  477. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -1
  478. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +1 -1
  479. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -1
  480. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  481. package/dist/domain/domain-runtime/spec/types.d.ts +2 -0
  482. package/dist/domain/extensions/attribute-switch.d.ts +1 -1
  483. package/dist/domain/extensions/attribute-switch.js +1 -1
  484. package/dist/domain/extensions/editable-offset-indicator.js +1 -1
  485. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -1
  486. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -1
  487. package/dist/domain/extensions/offset-indicator.js +1 -1
  488. package/dist/domain/extensions/scene-entity-animation.js +1 -1
  489. package/dist/domain/system-components/child-entity-selection.js +1 -1
  490. package/dist/domain/system-components/common/recipes.d.ts +21 -3
  491. package/dist/domain/system-components/common/recipes.js +1 -1
  492. package/dist/domain/system-components/common/scene-entity-control-schema.d.ts +3 -0
  493. package/dist/domain/system-components/common/scene-entity-control-schema.js +1 -1
  494. package/dist/domain/system-components/drag-handle.js +1 -1
  495. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  496. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  497. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  498. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  499. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  500. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  501. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  502. package/dist/editor/Editor.d.ts +7 -0
  503. package/dist/editor/Editor.js +1 -1
  504. package/dist/editor/mocks/CreateMockYaml.js +2 -2
  505. package/dist/editor/mocks/EditorMockContext.d.ts +2 -0
  506. package/dist/editor/mocks/EditorMockContext.js +1 -1
  507. package/dist/globals/index.d.ts +2 -0
  508. package/dist/i18n/locales/cs/messages.js +1 -1
  509. package/dist/i18n/locales/da/messages.js +1 -1
  510. package/dist/i18n/locales/de/messages.js +1 -1
  511. package/dist/i18n/locales/de-AT/messages.js +1 -1
  512. package/dist/i18n/locales/en/messages.js +1 -1
  513. package/dist/i18n/locales/en-AU/messages.js +1 -1
  514. package/dist/i18n/locales/en-GB/messages.js +1 -1
  515. package/dist/i18n/locales/es/messages.js +1 -1
  516. package/dist/i18n/locales/fr/messages.js +1 -1
  517. package/dist/i18n/locales/hu/messages.js +1 -1
  518. package/dist/i18n/locales/it/messages.js +1 -1
  519. package/dist/i18n/locales/nl/messages.js +1 -1
  520. package/dist/i18n/locales/pl/messages.js +1 -1
  521. package/dist/i18n/locales/pt/messages.js +1 -1
  522. package/dist/i18n/locales/ro/messages.js +1 -1
  523. package/dist/i18n/locales/sk/messages.js +1 -1
  524. package/dist/i18n/locales/tr/messages.js +1 -1
  525. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  526. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  527. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +146 -145
  528. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  529. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  530. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  531. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +7 -2
  532. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +15 -14
  533. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +14 -12
  534. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +14 -13
  535. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +13 -11
  536. package/dist/phoenix/application-spec/application-spec-builder.d.ts +0 -2
  537. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  538. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +0 -2
  539. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  540. package/dist/phoenix/application-spec/generate-application-spec-story.js +2 -2
  541. package/dist/phoenix/application-spec/generate-project-files.d.ts +0 -2
  542. package/dist/phoenix/application-spec/project-files.js +1 -1
  543. package/dist/phoenix/bin.d.ts +2 -0
  544. package/dist/phoenix/bin.js +2 -0
  545. package/dist/phoenix/check-configs/built-in-eslint-config.d.ts +9 -0
  546. package/dist/phoenix/check-configs/built-in-eslint-config.js +1 -0
  547. package/dist/phoenix/check-configs/eslint-config.d.ts +10 -0
  548. package/dist/phoenix/check-configs/eslint-config.js +1 -0
  549. package/dist/phoenix/check-configs/index.d.ts +8 -0
  550. package/dist/phoenix/check-configs/index.js +1 -0
  551. package/dist/phoenix/check-configs/typescript-project.d.ts +5 -0
  552. package/dist/phoenix/check-configs/typescript-project.js +1 -0
  553. package/dist/phoenix/cli.d.ts +0 -1
  554. package/dist/phoenix/cli.js +1 -2
  555. package/dist/phoenix/commands/build.js +1 -1
  556. package/dist/phoenix/commands/check.js +1 -1
  557. package/dist/phoenix/commands/clean.js +1 -1
  558. package/dist/phoenix/commands/deploy.js +2 -2
  559. package/dist/phoenix/commands/deps/deps.d.ts +73 -0
  560. package/dist/phoenix/commands/deps/deps.js +3 -0
  561. package/dist/phoenix/commands/deps/index.d.ts +1 -0
  562. package/dist/phoenix/commands/deps/index.js +1 -0
  563. package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
  564. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
  565. package/dist/phoenix/commands/dev.js +5 -5
  566. package/dist/phoenix/commands/fix.js +1 -1
  567. package/dist/phoenix/commands/index.d.ts +1 -0
  568. package/dist/phoenix/commands/index.js +1 -1
  569. package/dist/phoenix/commands/init.d.ts +17 -5
  570. package/dist/phoenix/commands/init.js +1 -1
  571. package/dist/phoenix/commands/link.js +1 -1
  572. package/dist/phoenix/commands/prettier.js +1 -1
  573. package/dist/phoenix/commands/sync.js +1 -1
  574. package/dist/phoenix/commands/unlink.js +1 -1
  575. package/dist/phoenix/services/application-spec-project-watcher.d.ts +2 -2
  576. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  577. package/dist/phoenix/services/lingui.d.ts +8 -0
  578. package/dist/phoenix/services/lingui.js +1 -1
  579. package/dist/phoenix/services/swc.js +1 -1
  580. package/dist/phoenix/services/vite-config.js +1 -1
  581. package/dist/phoenix/utils/index.d.ts +4 -2
  582. package/dist/phoenix/utils/index.js +1 -1
  583. package/dist/phoenix/utils/node-version/index.d.ts +1 -0
  584. package/dist/phoenix/utils/node-version/index.js +1 -0
  585. package/dist/phoenix/utils/node-version/supported-node-version.d.ts +12 -0
  586. package/dist/phoenix/utils/node-version/supported-node-version.js +4 -0
  587. package/dist/phoenix/utils/package-info.d.ts +0 -9
  588. package/dist/phoenix/utils/package-info.js +1 -1
  589. package/dist/phoenix/utils/package-manager/index.d.ts +2 -0
  590. package/dist/phoenix/utils/package-manager/index.js +1 -0
  591. package/dist/phoenix/utils/package-manager/package-manager-commands.d.ts +19 -0
  592. package/dist/phoenix/utils/package-manager/package-manager-commands.js +1 -0
  593. package/dist/phoenix/utils/package-manager/pnpm-project.d.ts +9 -0
  594. package/dist/phoenix/utils/package-manager/pnpm-project.js +1 -0
  595. package/dist/phoenix/utils/run-command.d.ts +11 -0
  596. package/dist/phoenix/utils/run-command.js +1 -1
  597. package/dist/phoenix/utils/sdk-tool/index.d.ts +1 -0
  598. package/dist/phoenix/utils/sdk-tool/index.js +1 -0
  599. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.d.ts +15 -0
  600. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.js +1 -0
  601. package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.d.ts +4 -0
  602. package/dist/react-sdk/application-runtime/common-services/analytics/index.d.ts +1 -0
  603. package/dist/react-sdk/application-runtime/common-services/analytics/index.js +1 -1
  604. package/dist/react-sdk/domain-application-context/DomainLifecycleBoundary.js +1 -1
  605. package/dist/react-sdk/domain-context/common-hooks/index.d.ts +8 -0
  606. package/dist/react-sdk/domain-context/common-hooks/index.js +1 -0
  607. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +41 -0
  608. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  609. package/dist/react-sdk/domain-context/component-hooks/index.d.ts +1 -0
  610. package/dist/react-sdk/domain-context/component-hooks/index.js +1 -0
  611. package/dist/react-sdk/domain-context/component-hooks/use-component.js +1 -1
  612. package/dist/react-sdk/domain-context/entity-hooks/use-domain-entity-state.js +1 -1
  613. package/dist/react-sdk/domain-context/entity-hooks/use-entity-price.js +1 -1
  614. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-id.js +1 -1
  615. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-state.js +1 -1
  616. package/dist/react-sdk/domain-context/index.d.ts +5 -1
  617. package/dist/react-sdk/domain-context/index.js +1 -1
  618. package/dist/react-sdk/domain-context/system-hooks/composition-hooks.js +1 -1
  619. package/dist/react-sdk/domain-context/system-hooks/dimension-hooks.js +1 -1
  620. package/dist/react-sdk/domain-context/system-hooks/hover-hooks.js +1 -1
  621. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +5 -0
  622. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  623. package/dist/react-sdk/domain-context/system-hooks/selection-hooks.js +1 -1
  624. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.d.ts +57 -0
  625. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.js +1 -0
  626. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.d.ts +61 -0
  627. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.js +1 -0
  628. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.d.ts +20 -0
  629. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -0
  630. package/dist/react-sdk/elements/configurator-error-page-props.d.ts +20 -0
  631. package/dist/react-sdk/elements/configurator-error-page-props.js +1 -0
  632. package/dist/react-sdk/elements/index.d.ts +1 -0
  633. package/dist/react-sdk/handlers/FinalizeActionRunner.d.ts +13 -0
  634. package/dist/react-sdk/handlers/FinalizeActionRunner.js +1 -0
  635. package/dist/react-sdk/handlers/FinalizeActionsHost.d.ts +10 -0
  636. package/dist/react-sdk/handlers/FinalizeActionsHost.js +1 -0
  637. package/dist/react-sdk/handlers/FinalizeActionsProvider.d.ts +11 -0
  638. package/dist/react-sdk/handlers/FinalizeActionsProvider.js +1 -0
  639. package/dist/react-sdk/handlers/finalize-actions-context.d.ts +6 -0
  640. package/dist/react-sdk/handlers/finalize-actions-context.js +1 -0
  641. package/dist/react-sdk/handlers/finalize-actions-store.d.ts +23 -0
  642. package/dist/react-sdk/handlers/finalize-actions-store.js +1 -0
  643. package/dist/react-sdk/handlers/index.d.ts +6 -0
  644. package/dist/react-sdk/handlers/index.js +1 -1
  645. package/dist/react-sdk/handlers/use-finalize-action.d.ts +32 -0
  646. package/dist/react-sdk/handlers/use-finalize-action.js +1 -0
  647. package/dist/react-sdk/handlers/use-finalize-actions.d.ts +53 -0
  648. package/dist/react-sdk/handlers/use-finalize-actions.js +1 -0
  649. package/dist/react-sdk/index.d.ts +1 -0
  650. package/dist/react-sdk/index.js +1 -1
  651. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.d.ts +25 -0
  652. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.js +1 -0
  653. package/dist/react-sdk/responsive-state/canvas-padding.d.ts +14 -0
  654. package/dist/react-sdk/responsive-state/canvas-padding.js +1 -0
  655. package/dist/react-sdk/responsive-state/index.d.ts +5 -0
  656. package/dist/react-sdk/responsive-state/index.js +1 -0
  657. package/dist/react-sdk/responsive-state/responsive-state-manager.d.ts +111 -0
  658. package/dist/react-sdk/responsive-state/responsive-state-manager.js +1 -0
  659. package/dist/react-sdk/responsive-state/use-responsive-state-manager.d.ts +10 -0
  660. package/dist/react-sdk/responsive-state/use-responsive-state-manager.js +1 -0
  661. package/dist/react-sdk/responsive-state/use-responsive-state.d.ts +11 -0
  662. package/dist/react-sdk/responsive-state/use-responsive-state.js +1 -0
  663. package/dist/react-sdk/session/NotAuthenticatedPage.d.ts +4 -0
  664. package/dist/react-sdk/session/NotAuthenticatedPage.js +1 -1
  665. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +9 -0
  666. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.js +1 -1
  667. package/dist/ui-sdk/responsive-application/index.d.ts +1 -0
  668. package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +57 -0
  669. package/dist/ui-sdk/responsive-application/responsive-state-store.js +1 -0
  670. package/dist/ui-sdk/responsive-application/use-store-responsive-info.d.ts +7 -0
  671. package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -0
  672. package/dist/ui-sdk/theme/types.d.ts +1 -1
  673. package/package.json +48 -36
  674. package/schema/domain-spec.json +996 -205
  675. package/dist/application-spec/generate-application/code/templates/nvmrc.d.ts +0 -1
  676. package/dist/application-spec/generate-application/code/templates/nvmrc.js +0 -2
  677. package/dist/application-spec/generate-application/code/templates/package-json.d.ts +0 -10
  678. package/dist/application-spec/generate-application/code/templates/package-json.js +0 -1
  679. package/dist/application-spec/generate-application/code/templates/webhook-implementation.d.ts +0 -1
  680. package/dist/application-spec/generate-application/code/templates/webhook-implementation.js +0 -7
  681. package/dist/configurator/ui/assistant/entity-link/entity-link-target.d.ts +0 -5
  682. package/dist/configurator/ui/assistant/entity-link/entity-link-target.js +0 -1
  683. package/dist/phoenix/commands/generate-project-files.d.ts +0 -6
  684. package/dist/phoenix/commands/generate-project-files.js +0 -1
  685. /package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.js +0 -0
@@ -1,10 +1,31 @@
1
1
  import type { ObservableWithLastValue } from '@salsita-ai/common/utils';
2
- import type { $DomainEntity, DomainEntity, ResetStateEmission, StateEmission } from '../core/index.js';
2
+ import type { $DomainEntity, DomainEntity, DomainState, ResetStateEmission, StateEmission } from '../core/index.js';
3
3
  import type { DomainContextSelectors } from '../domain-runtime/index.js';
4
4
  export interface UndoCapabilities {
5
5
  readonly canUndo: boolean;
6
6
  readonly canRedo: boolean;
7
7
  }
8
+ /**
9
+ * One step of the undo history: a state that undo and redo return to.
10
+ *
11
+ * A step is made by an undoable change. The non-undoable commits made on top of it afterwards, such
12
+ * as a selection or a navigation, do not make steps of their own; returning to the step keeps them,
13
+ * so undoing a later change does not also take back what the user selected since. A step therefore
14
+ * holds two states: the one that identifies it and the one it returns to.
15
+ */
16
+ export interface UndoStep<ENTITIES extends DomainEntity<string>> {
17
+ /**
18
+ * The state the undoable change committed. It identifies the step and never changes, so a caller
19
+ * that knows which state its own change committed can tell whether that change is the step the
20
+ * configuration is at.
21
+ */
22
+ readonly committedState: DomainState<ENTITIES>;
23
+ /**
24
+ * What undo or redo resets the store to: `committedState` plus the non-undoable commits made on
25
+ * top of it before the next undoable change.
26
+ */
27
+ readonly restoreState: DomainState<ENTITIES>;
28
+ }
8
29
  export interface CanBeUndoneContext<ENTITIES extends DomainEntity<string>, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>> {
9
30
  oldEmission: StateEmission<ENTITIES, $MAP>;
10
31
  newEmission: StateEmission<ENTITIES, $MAP>;
@@ -39,6 +60,12 @@ export declare class UndoSystem<ENTITIES extends DomainEntity<string>, $MAP exte
39
60
  private _activeIsUndoable;
40
61
  private readonly _canSubject;
41
62
  readonly can$: ObservableWithLastValue<UndoCapabilities>;
63
+ private readonly _tipSubject;
64
+ /**
65
+ * The step the configuration is at: the top of the stack, or the step an undo or redo returned to.
66
+ * Nothing while the stack is empty, before the first undoable change and after a reset.
67
+ */
68
+ readonly tip$: ObservableWithLastValue<UndoStep<ENTITIES> | undefined>;
42
69
  constructor(_context: UndoSystemContext);
43
70
  initialize: () => void;
44
71
  /**
@@ -1 +1 @@
1
- import{BehaviorSubject as t,pairwise as e}from"rxjs";let s=t=>t.oldEmission.state.entities!==t.newEmission.state.entities;export const UNDO_REDO_RESET_TAG={};export const isUndoRedoReset=t=>"reset"===t.kind&&t.tag===UNDO_REDO_RESET_TAG;export class UndoSystem{_context;_stack=[];_currentIndex=-1;_activeIsUndoable;_canSubject=new t({canUndo:!1,canRedo:!1});can$=this._canSubject;constructor(t){this._context=t,this._context.selectors.getStoreSystem().stateSlices.committed.pipe(e()).subscribe(([t,e])=>{if("reset"===e.kind&&e.tag!==UNDO_REDO_RESET_TAG)return void this.resetStack();let n=this._activeIsUndoable?.handler??s;("reset"!==e.kind||e.tag!==UNDO_REDO_RESET_TAG)&&n({oldEmission:t,newEmission:e})&&(this._stack=[...this._stack.slice(0,this._currentIndex),t.state,e.state],this._currentIndex=this._stack.length-1,this._refresh())})}initialize=()=>{this.resetStack()};registerIsUndoable(t){let e={handler:t};return this._activeIsUndoable=e,()=>{this._activeIsUndoable===e&&(this._activeIsUndoable=void 0)}}resetStack(){this._stack=[],this._currentIndex=-1,this._refresh()}_refresh(){this._canSubject.next({canUndo:this.canUndo(),canRedo:this.canRedo()})}canUndo(){return this._currentIndex>0}canRedo(){return this._currentIndex<this._stack.length-1}undo(){let t=this._stack[this._currentIndex-1];void 0!==t&&(this._currentIndex--,this._context.selectors.getStoreSystem().reset(t,UNDO_REDO_RESET_TAG),this._refresh())}redo(){let t=this._stack[this._currentIndex+1];void 0!==t&&(this._currentIndex++,this._context.selectors.getStoreSystem().reset(t,UNDO_REDO_RESET_TAG),this._refresh())}}
1
+ import{BehaviorSubject as t,pairwise as e}from"rxjs";let s=t=>t.oldEmission.state.entities!==t.newEmission.state.entities;export const UNDO_REDO_RESET_TAG={};export const isUndoRedoReset=t=>"reset"===t.kind&&t.tag===UNDO_REDO_RESET_TAG;export class UndoSystem{_context;_stack=[];_currentIndex=-1;_activeIsUndoable;_canSubject=new t({canUndo:!1,canRedo:!1});can$=this._canSubject;_tipSubject=new t(void 0);tip$=this._tipSubject;constructor(t){this._context=t,this._context.selectors.getStoreSystem().stateSlices.committed.pipe(e()).subscribe(([t,e])=>{if("reset"===e.kind&&e.tag!==UNDO_REDO_RESET_TAG)return void this.resetStack();let i=this._activeIsUndoable?.handler??s;if("reset"===e.kind&&e.tag===UNDO_REDO_RESET_TAG||!i({oldEmission:t,newEmission:e}))return;let r=this._stack[this._currentIndex],n={committedState:r?.committedState??t.state,restoreState:t.state},c={committedState:e.state,restoreState:e.state};this._stack=[...this._stack.slice(0,this._currentIndex),n,c],this._currentIndex=this._stack.length-1,this._refresh()})}initialize=()=>{this.resetStack()};registerIsUndoable(t){let e={handler:t};return this._activeIsUndoable=e,()=>{this._activeIsUndoable===e&&(this._activeIsUndoable=void 0)}}resetStack(){this._stack=[],this._currentIndex=-1,this._refresh()}_refresh(){this._canSubject.next({canUndo:this.canUndo(),canRedo:this.canRedo()}),this._tipSubject.next(this._stack[this._currentIndex])}canUndo(){return this._currentIndex>0}canRedo(){return this._currentIndex<this._stack.length-1}undo(){let t=this._stack[this._currentIndex-1];void 0!==t&&(this._currentIndex--,this._context.selectors.getStoreSystem().reset(t.restoreState,UNDO_REDO_RESET_TAG),this._refresh())}redo(){let t=this._stack[this._currentIndex+1];void 0!==t&&(this._currentIndex++,this._context.selectors.getStoreSystem().reset(t.restoreState,UNDO_REDO_RESET_TAG),this._refresh())}}
@@ -1 +1 @@
1
- import{SessionRole as e}from"@salsita-ai/contracts/api";import{createImplementationErrorCollector as t}from"../errors/index.js";import{resolveComponentOpticModules as a,resolveElementModule as n,resolveHandlerModule as o,resolveImportedTransformers as i,resolveTransformerModule as s}from"./module-checks/index.js";let r=(e,t,a)=>e.flatMap(e=>a.attempt(()=>t(e),[]));export const initializeSpec=m=>{let c=m.adminDomain.presets[0];if(!c)throw Error("Cannot register application spec because admin preset is required.");let d=t(),l=r(m.handlers,o,d),p=r(m.elements,n,d),y=r(m.transformers?.importedTransformers??[],e=>[s(e)],d),u=r(m.domain.componentOptics,e=>a([e]),d),f=r(m.adminDomain.componentOptics,e=>a([e]),d);d.throwIfAny();let x=(e=>{let t={};for(let a of e)t[a.name]=(void 0)??a.name;return t})(l),g=(e=>{let t={},a=0;for(let n of e)if("entity"===n.type||"layout"===n.type)t[n.name]=(void 0)??n.name;else{let e=`icon:${a}`;t[e]=(void 0)??`${e}:${n.elements.length}`,a+=1}return t})(p),v=m.transformers?.specTransformers??[];return{version:m.version,dataConfig:m.dataSpec??null,chunks:m.chunks,publishedDataHash:m.publishedDataHash,initialPublishedData:m.initialPublishedData,canCreate:m.features?.acl?.canCreate??Object.values(e),enableAdminRelease:m.features?.enableAdminRelease??!1,textLanguages:m.domain.textLanguages??m.adminDomain.textLanguages??["en"],baseResourcesUrl:m.resources?.baseResourcesUrl??m.defaultEnvs?.resourcesUrl??"",configurator:{factory:m.domain.domainFactory,presets:m.domain.presets,aliasMap:m.domain.domainFactory.context.aliasMap,entityReflections:m.domain.domainFactory.context.entityReflections,$entityReflections:m.domain.domainFactory.context.$entityReflections,expressions:m.domain.domainFactory.context.expressions,actions:m.domain.domainFactory.context.actions,actionImplementations:m.domain.domainFactory.context.actionImplementations,allowedRootEntityTypes:m.domain.domainFactory.context.allowedRootEntityTypes,migrate:m.domain.domainFactory.context.migrate,componentOptics:u,createTransformers:e=>i(y,v,e),navigationStates:m.navigation?.navigationStates??[],viewStates:m.navigation?.viewStates??[],toolStates:m.navigation?.toolStates??[],exportStates:m.navigation?.exportStates??[],handlers:l,handlerHashes:x,elements:p,elementHashes:g,appLoader:m.ui?.appLoader??"universal",preview:m.ui?.preview??"auto",alwaysExpand:m.ui?.alwaysExpand??!1,theme:m.ui?.theme??{},assistant:m.assistant??null,deploymentQueryDisabled:m.resources?.deploymentQueryDisabled??!1,prefetchTextureUrls:m.resources?.prefetchTextureUrls??[],modelVersion:m.domain.domainFactory.modelVersion},admin:{factory:m.adminDomain.domainFactory,modelVersion:m.adminDomain.domainFactory.modelVersion,aliasMap:m.adminDomain.domainFactory.context.aliasMap,entityReflections:m.adminDomain.domainFactory.context.entityReflections,$entityReflections:m.adminDomain.domainFactory.context.$entityReflections,expressions:m.adminDomain.domainFactory.context.expressions,actions:m.adminDomain.domainFactory.context.actions,actionImplementations:m.adminDomain.domainFactory.context.actionImplementations,allowedRootEntityTypes:m.adminDomain.domainFactory.context.allowedRootEntityTypes,migrate:m.adminDomain.domainFactory.context.migrate,preset:c,componentOptics:f,navigationStates:m.adminNavigation?.navigationStates??[],viewStates:m.adminNavigation?.viewStates??[],handlers:l,handlerHashes:x,elements:p,elementHashes:g}}};
1
+ import{SessionRole as e}from"@salsita-ai/contracts/api";import{createImplementationErrorCollector as t}from"../errors/index.js";import{resolveComponentOpticModules as a,resolveElementModule as n,resolveHandlerModule as o,resolveImportedTransformers as i,resolveTransformerModule as s}from"./module-checks/index.js";let r=(e,t,a)=>e.flatMap(e=>a.attempt(()=>t(e),[]));export const initializeSpec=m=>{let c=m.adminDomain.presets[0];if(!c)throw Error("Cannot register application spec because admin preset is required.");let d=t(),l=r(m.handlers,o,d),p=r(m.elements,n,d),y=r(m.transformers?.importedTransformers??[],e=>[s(e)],d),u=r(m.domain.componentOptics,e=>a([e]),d),f=r(m.adminDomain.componentOptics,e=>a([e]),d);d.throwIfAny();let x=(e=>{let t={};for(let a of e)t[a.name]=(void 0)??a.name;return t})(l),g=(e=>{let t={},a=0;for(let n of e)if("entity"===n.type||"layout"===n.type)t[n.name]=(void 0)??n.name;else{let e=`icon:${a}`;t[e]=(void 0)??`${e}:${n.elements.length}`,a+=1}return t})(p),v=m.transformers?.specTransformers??[];return{version:m.version,dataConfig:m.dataSpec??null,chunks:m.chunks,publishedDataHash:m.publishedDataHash,initialPublishedData:m.initialPublishedData,canCreate:m.features?.acl?.canCreate??Object.values(e),enableAdminRelease:m.features?.enableAdminRelease??!1,textLanguages:m.domain.textLanguages??m.adminDomain.textLanguages??["en"],baseResourcesUrl:m.resources?.baseResourcesUrl??m.defaultEnvs?.resourcesUrl??"",configurator:{factory:m.domain.domainFactory,presets:m.domain.presets,aliasMap:m.domain.domainFactory.context.aliasMap,entityReflections:m.domain.domainFactory.context.entityReflections,$entityReflections:m.domain.domainFactory.context.$entityReflections,expressions:m.domain.domainFactory.context.expressions,actions:m.domain.domainFactory.context.actions,actionImplementations:m.domain.domainFactory.context.actionImplementations,allowedRootEntityTypes:m.domain.domainFactory.context.allowedRootEntityTypes,migrate:m.domain.domainFactory.context.migrate,componentOptics:u,createTransformers:e=>i(y,v,e),navigationStates:m.navigation?.navigationStates??[],viewStates:m.navigation?.viewStates??[],toolStates:m.navigation?.toolStates??[],exportStates:m.navigation?.exportStates??[],handlers:l,handlerHashes:x,elements:p,defaultElements:m.defaultElements??[],elementHashes:g,appLoader:m.ui?.appLoader??"universal",preview:m.ui?.preview??"auto",alwaysExpand:m.ui?.alwaysExpand??!1,theme:m.ui?.theme??{},assistant:m.assistant??null,deploymentQueryDisabled:m.resources?.deploymentQueryDisabled??!1,prefetchTextureUrls:m.resources?.prefetchTextureUrls??[],modelVersion:m.domain.domainFactory.modelVersion},admin:{factory:m.adminDomain.domainFactory,modelVersion:m.adminDomain.domainFactory.modelVersion,aliasMap:m.adminDomain.domainFactory.context.aliasMap,entityReflections:m.adminDomain.domainFactory.context.entityReflections,$entityReflections:m.adminDomain.domainFactory.context.$entityReflections,expressions:m.adminDomain.domainFactory.context.expressions,actions:m.adminDomain.domainFactory.context.actions,actionImplementations:m.adminDomain.domainFactory.context.actionImplementations,allowedRootEntityTypes:m.adminDomain.domainFactory.context.allowedRootEntityTypes,migrate:m.adminDomain.domainFactory.context.migrate,preset:c,componentOptics:f,navigationStates:m.adminNavigation?.navigationStates??[],viewStates:m.adminNavigation?.viewStates??[],handlers:l,handlerHashes:x,elements:p,elementHashes:g}}};
@@ -26,15 +26,6 @@ export interface CustomPhoenixEntityElementProps {
26
26
  entityId: DomainEntityId<string>;
27
27
  children?: ReactNode;
28
28
  }
29
- export interface SystemElementRegistry {
30
- layoutElements: Record<string, (props: PropsWithChildren) => JSX.Element>;
31
- entityElements: Record<string, (props: CustomPhoenixEntityElementProps) => JSX.Element>;
32
- }
33
- /**
34
- * Internal registry for system-level elements registered at import time
35
- * via createPhoenixLayoutElement / createPhoenixEntityElement.
36
- */
37
- export declare const systemElementRegistry: SystemElementRegistry;
38
29
  type SchemaOfPhoenixLayoutElement<SCHEMA extends {
39
30
  kind: string;
40
31
  props?: Record<string, unknown>;
@@ -61,7 +52,12 @@ export interface PhoenixLayoutElementDefinition<SCHEMA extends {
61
52
  }>;
62
53
  }
63
54
  /**
64
- * For internal use in PHX only.
55
+ * Returns the component of a built-in layout element definition; it registers nothing. A layout
56
+ * element reaches the runtime only through a registration in `elements` or `defaultElements`.
57
+ *
58
+ * @deprecated Register a layout element with `createCustomPhoenixLayoutElement(name, component)`;
59
+ * the built-in ones are in `defaultConfiguratorElements` and `defaultAdminElements`. This API will
60
+ * be removed in a future version.
65
61
  */
66
62
  export declare const createPhoenixLayoutElement: <SCHEMA extends {
67
63
  kind: string;
@@ -95,7 +91,12 @@ export interface PhoenixEntityElementDefinition<SCHEMA extends {
95
91
  component: React.FunctionComponent<SCHEMA['props'] & CustomPhoenixEntityElementProps>;
96
92
  }
97
93
  /**
98
- * For internal use in PHX only.
94
+ * Returns the component of a built-in entity element definition; it registers nothing. An entity
95
+ * element reaches the runtime only through a registration in `elements` or `defaultElements`.
96
+ *
97
+ * @deprecated Register an entity element with `createCustomPhoenixEntityElement(name, component)`;
98
+ * the built-in ones are in `defaultConfiguratorElements` and `defaultAdminElements`. This API will
99
+ * be removed in a future version.
99
100
  */
100
101
  export declare const createPhoenixEntityElement: <SCHEMA extends {
101
102
  kind: string;
@@ -1 +1 @@
1
- import{SHARED_FOLDER_HINT as e,isRecord as t,resolveListModule as n}from"./project-modules.js";export const systemElementRegistry={layoutElements:{},entityElements:{}};export const createPhoenixLayoutElement=e=>(systemElementRegistry.layoutElements[e.schema.properties.kind.enum[0]]=e.component,e.component);export const createCustomPhoenixLayoutElement=(e,t)=>({type:"layout",name:e,element:t});export const createPhoenixEntityElement=e=>(systemElementRegistry.entityElements[e.schema.properties.kind.enum[0]]=e.component,e.component);export const createCustomPhoenixEntityElement=(e,t)=>({type:"entity",name:e,element:t});let o={expected:"an element registration, or an array of them",fix:`Create it with phx.frontend.createCustomPhoenixLayoutElement(...) or phx.frontend.createCustomPhoenixEntityElement(...), ${e}.`},r=e=>!!t(e)&&("icon"===e.type?Array.isArray(e.elements):("entity"===e.type||"layout"===e.type)&&"string"==typeof e.name&&"function"==typeof e.element);export const resolveElementModule=e=>n(e,o,r);export const resolveElementModules=e=>e.flatMap(resolveElementModule);
1
+ import{SHARED_FOLDER_HINT as e,isRecord as t,resolveListModule as o}from"./project-modules.js";export const createPhoenixLayoutElement=e=>e.component;export const createCustomPhoenixLayoutElement=(e,t)=>({type:"layout",name:e,element:t});export const createPhoenixEntityElement=e=>e.component;export const createCustomPhoenixEntityElement=(e,t)=>({type:"entity",name:e,element:t});let n={expected:"an element registration, or an array of them",fix:`Create it with phx.frontend.createCustomPhoenixLayoutElement(...) or phx.frontend.createCustomPhoenixEntityElement(...), ${e}.`},r=e=>!!t(e)&&("icon"===e.type?Array.isArray(e.elements):("entity"===e.type||"layout"===e.type)&&"string"==typeof e.name&&"function"==typeof e.element);export const resolveElementModule=e=>o(e,n,r);export const resolveElementModules=e=>e.flatMap(resolveElementModule);
@@ -1,4 +1,4 @@
1
- export { type PhoenixEntityElementProps, type PhoenixEntityElementRegistration, type PhoenixLayoutElementRegistration, type PhoenixIconRegistration, type ElementRegistration, type CustomPhoenixEntityElementProps, type PhoenixLayoutElementDefinition, type PhoenixEntityElementDefinition, type CreateCustomPhoenixLayoutElement, type CreateCustomPhoenixEntityElement, createPhoenixLayoutElement, createPhoenixEntityElement, createCustomPhoenixLayoutElement, createCustomPhoenixEntityElement, resolveElementModule, resolveElementModules, systemElementRegistry, } from './element-registration.js';
1
+ export { type PhoenixEntityElementProps, type PhoenixEntityElementRegistration, type PhoenixLayoutElementRegistration, type PhoenixIconRegistration, type ElementRegistration, type CustomPhoenixEntityElementProps, type PhoenixLayoutElementDefinition, type PhoenixEntityElementDefinition, type CreateCustomPhoenixLayoutElement, type CreateCustomPhoenixEntityElement, createPhoenixLayoutElement, createPhoenixEntityElement, createCustomPhoenixLayoutElement, createCustomPhoenixEntityElement, resolveElementModule, resolveElementModules, } from './element-registration.js';
2
2
  export { type PhoenixHandlerDefinition, type SystemPhoenixHandlerDefinition, type PhoenixHandlerRegistration, type SystemPhoenixHandlerRegistration, type SystemPhoenixAsyncHandlerDefinition, type SystemPhoenixAsyncHandlerRegistration, type HandlerRegistration, type CreatePhoenixHandler, createPhoenixHandler, createSystemPhoenixHandler, createSystemPhoenixAsyncHandler, resolveHandlerModule, resolveHandlerModules, } from './handler-registration.js';
3
3
  export { type ProjectModule } from './project-modules.js';
4
4
  export { resolveActionModules } from './resolve-action-modules.js';
@@ -1 +1 @@
1
- export{createPhoenixLayoutElement,createPhoenixEntityElement,createCustomPhoenixLayoutElement,createCustomPhoenixEntityElement,resolveElementModule,resolveElementModules,systemElementRegistry}from"./element-registration.js";export{createPhoenixHandler,createSystemPhoenixHandler,createSystemPhoenixAsyncHandler,resolveHandlerModule,resolveHandlerModules}from"./handler-registration.js";export{resolveActionModules}from"./resolve-action-modules.js";export{resolveComponentOpticModules}from"./resolve-component-optic-modules.js";export{resolveExpressionModules}from"./resolve-expression-modules.js";export{resolveImportedTransformers,resolveTransformerModule,resolveTransformerModules}from"./resolve-imported-transformers.js";export{resolveInvariantModules}from"./resolve-invariant-modules.js";
1
+ export{createPhoenixLayoutElement,createPhoenixEntityElement,createCustomPhoenixLayoutElement,createCustomPhoenixEntityElement,resolveElementModule,resolveElementModules}from"./element-registration.js";export{createPhoenixHandler,createSystemPhoenixHandler,createSystemPhoenixAsyncHandler,resolveHandlerModule,resolveHandlerModules}from"./handler-registration.js";export{resolveActionModules}from"./resolve-action-modules.js";export{resolveComponentOpticModules}from"./resolve-component-optic-modules.js";export{resolveExpressionModules}from"./resolve-expression-modules.js";export{resolveImportedTransformers,resolveTransformerModule,resolveTransformerModules}from"./resolve-imported-transformers.js";export{resolveInvariantModules}from"./resolve-invariant-modules.js";
@@ -1 +1 @@
1
- import{createSelector as e}from"@salsita-ai/common/utils";import{buildAssistantManifest as t}from"../../application/assistant/index.js";import{systemElementRegistry as n}from"./module-checks/index.js";export const createSpecSelectors=a=>{let{getState:s}=a,r=e.withTypes(),o=r([r.leaf(e=>e.spec)],e=>e),l=r([o],e=>e.version),i=r([o],e=>e.baseResourcesUrl),m=r([o],e=>e.configurator),g=r([o],e=>e.dataConfig),p=r([o],e=>e.chunks),d=r([o],e=>e.publishedDataHash),c=r([o],e=>e.initialPublishedData),u=r([o],e=>e.canCreate),h=r([o],e=>e.enableAdminRelease),y=r([o],e=>e.textLanguages),f=r([m],e=>e.modelVersion),C=r([o],e=>e.admin),x=r([C],e=>e.preset),A=r([C],e=>e.modelVersion),E=r([m],e=>e.theme),b=r([m],e=>e.assistant),H=r([b],e=>e?t(e):null),D=r([m],e=>e.factory),P=r([C],e=>e.factory),S=r([m],e=>e.componentOptics),w=r([C],e=>e.componentOptics),O=r([m],e=>e.appLoader),T=r([m],e=>e.preview),V=r([m],e=>e.alwaysExpand),L=r([m],e=>e.presets),R=r([m],e=>e.deploymentQueryDisabled),U=r([m],e=>e.prefetchTextureUrls),k=r([m],e=>e.handlerHashes),v=r([m],e=>e.handlers),j=r([v,k],(e,t)=>({...(e=>{let t={},n={},a={};for(let s of e)"phoenix"===s.type&&(t[s.name]=s.handler),"system"===s.type&&(n[s.name]=s.handler),"system-async"===s.type&&(a[s.name]=s.handler);return{handlers:t,systemHandlers:n,systemAsyncHandlers:a}})(e),hashes:t})),F=r([m],e=>e.elementHashes),M=r([m],e=>e.elements),Q=r([M,F],(e,t)=>({...(e=>{let t={},a={};for(let n of e)"layout"===n.type&&(t[n.name]=n.element),"entity"===n.type&&(a[n.name]=n.element);return{entityElements:{...n.entityElements,...a},layoutElements:{...n.layoutElements,...t}}})(e),hashes:t}));return{selectSpec:o,selectVersion:l,selectBaseResourcesUrl:i,selectConfiguratorSpec:m,selectConfiguratorModelVersion:f,selectAdminSpec:C,selectAdminPreset:x,selectAdminModelVersion:A,selectThemeOptions:E,selectAssistant:H,selectConfiguratorFactory:D,selectAdminFactory:P,selectConfiguratorComponentOptics:S,selectAdminComponentOptics:w,selectAppLoader:O,selectPreview:T,selectAlwaysExpand:V,selectPresetSeed:L,selectDeploymentQueryDisabled:R,selectPrefetchTextureUrls:U,selectTextLanguages:y,selectHandlerHashes:k,selectHandlers:v,selectHandlerSlots:j,selectElementHashes:F,selectElements:M,selectElementSlots:Q,selectDataConfig:g,selectChunks:p,selectPublishedDataHash:d,selectInitialPublishedData:c,selectCanCreate:u,selectEnableAdminRelease:h,getVersion:()=>l(s()),getBaseResourcesUrl:()=>i(s()),getConfiguratorSpec:()=>m(s()),getConfiguratorModelVersion:()=>f(s()),getAdminSpec:()=>C(s()),getAdminPreset:()=>x(s()),getAdminModelVersion:()=>A(s()),getThemeOptions:()=>E(s()),getAssistant:()=>H(s()),getConfiguratorFactory:()=>D(s()),getAdminFactory:()=>P(s()),getConfiguratorComponentOptics:()=>S(s()),getAdminComponentOptics:()=>w(s()),getAppLoader:()=>O(s()),getPreview:()=>T(s()),getAlwaysExpand:()=>V(s()),getPresetSeed:()=>L(s()),getDeploymentQueryDisabled:()=>R(s()),getPrefetchTextureUrls:()=>U(s()),getTextLanguages:()=>y(s()),getHandlerHashes:()=>k(s()),getHandlers:()=>v(s()),getHandlerSlots:()=>j(s()),getElementHashes:()=>F(s()),getElements:()=>M(s()),getElementSlots:()=>Q(s()),getDataConfig:()=>g(s()),getChunks:()=>p(s()),getPublishedDataHash:()=>d(s()),getInitialPublishedData:()=>c(s()),getCanCreate:()=>u(s()),getEnableAdminRelease:()=>h(s())}};
1
+ import{createSelector as e}from"@salsita-ai/common/utils";import{buildAssistantManifest as t}from"../../application/assistant/index.js";export const createSpecSelectors=a=>{let{getState:n}=a,s=e.withTypes(),r=s([s.leaf(e=>e.spec)],e=>e),l=s([r],e=>e.version),o=s([r],e=>e.baseResourcesUrl),i=s([r],e=>e.configurator),g=s([r],e=>e.dataConfig),m=s([r],e=>e.chunks),p=s([r],e=>e.publishedDataHash),d=s([r],e=>e.initialPublishedData),c=s([r],e=>e.canCreate),u=s([r],e=>e.enableAdminRelease),h=s([r],e=>e.textLanguages),y=s([i],e=>e.modelVersion),f=s([r],e=>e.admin),C=s([f],e=>e.preset),A=s([f],e=>e.modelVersion),b=s([i],e=>e.theme),x=s([i],e=>e.assistant),E=s([x],e=>e?t(e):null),H=s([i],e=>e.factory),D=s([f],e=>e.factory),P=s([i],e=>e.componentOptics),S=s([f],e=>e.componentOptics),w=s([i],e=>e.appLoader),O=s([i],e=>e.preview),T=s([i],e=>e.alwaysExpand),V=s([i],e=>e.presets),L=s([i],e=>e.deploymentQueryDisabled),R=s([i],e=>e.prefetchTextureUrls),U=s([i],e=>e.handlerHashes),v=s([i],e=>e.handlers),k=s([v,U],(e,t)=>({...(e=>{let t={},a={},n={};for(let s of e)"phoenix"===s.type&&(t[s.name]=s.handler),"system"===s.type&&(a[s.name]=s.handler),"system-async"===s.type&&(n[s.name]=s.handler);return{handlers:t,systemHandlers:a,systemAsyncHandlers:n}})(e),hashes:t})),F=s([i],e=>e.elementHashes),M=s([i],e=>e.elements),Q=s([i],e=>e.defaultElements),j=s([Q,M,F],(e,t,a)=>({...(e=>{let t={},a={};for(let n of e)"layout"===n.type&&(t[n.name]=n.element),"entity"===n.type&&(a[n.name]=n.element);return{entityElements:a,layoutElements:t}})([...e,...t]),hashes:a}));return{selectSpec:r,selectVersion:l,selectBaseResourcesUrl:o,selectConfiguratorSpec:i,selectConfiguratorModelVersion:y,selectAdminSpec:f,selectAdminPreset:C,selectAdminModelVersion:A,selectThemeOptions:b,selectAssistant:E,selectConfiguratorFactory:H,selectAdminFactory:D,selectConfiguratorComponentOptics:P,selectAdminComponentOptics:S,selectAppLoader:w,selectPreview:O,selectAlwaysExpand:T,selectPresetSeed:V,selectDeploymentQueryDisabled:L,selectPrefetchTextureUrls:R,selectTextLanguages:h,selectHandlerHashes:U,selectHandlers:v,selectHandlerSlots:k,selectElementHashes:F,selectElements:M,selectElementSlots:j,selectDataConfig:g,selectChunks:m,selectPublishedDataHash:p,selectInitialPublishedData:d,selectCanCreate:c,selectEnableAdminRelease:u,getVersion:()=>l(n()),getBaseResourcesUrl:()=>o(n()),getConfiguratorSpec:()=>i(n()),getConfiguratorModelVersion:()=>y(n()),getAdminSpec:()=>f(n()),getAdminPreset:()=>C(n()),getAdminModelVersion:()=>A(n()),getThemeOptions:()=>b(n()),getAssistant:()=>E(n()),getConfiguratorFactory:()=>H(n()),getAdminFactory:()=>D(n()),getConfiguratorComponentOptics:()=>P(n()),getAdminComponentOptics:()=>S(n()),getAppLoader:()=>w(n()),getPreview:()=>O(n()),getAlwaysExpand:()=>T(n()),getPresetSeed:()=>V(n()),getDeploymentQueryDisabled:()=>L(n()),getPrefetchTextureUrls:()=>R(n()),getTextLanguages:()=>h(n()),getHandlerHashes:()=>U(n()),getHandlers:()=>v(n()),getHandlerSlots:()=>k(n()),getElementHashes:()=>F(n()),getElements:()=>M(n()),getElementSlots:()=>j(n()),getDataConfig:()=>g(n()),getChunks:()=>m(n()),getPublishedDataHash:()=>p(n()),getInitialPublishedData:()=>d(n()),getCanCreate:()=>c(n()),getEnableAdminRelease:()=>u(n())}};
@@ -35,6 +35,8 @@ export interface ApplicationConfiguratorSpec {
35
35
  */
36
36
  readonly handlerHashes: Record<string, string>;
37
37
  readonly elements: readonly ElementRegistration[];
38
+ /** The SDK's default element registrations; an entry of `elements` with the same name replaces one. */
39
+ readonly defaultElements: readonly ElementRegistration[];
38
40
  /**
39
41
  * Per-element content hash. Used as remount key so only the specific element
40
42
  * whose source changed remounts. Unchanged elements keep their hash and stay mounted.
@@ -1,5 +1,5 @@
1
1
  export declare const AttributeSwitchValueSchema: {
2
- readonly type: ["string", "number", "boolean"];
2
+ readonly type: 'boolean';
3
3
  };
4
4
  export type AttributeSwitchComponentState = {
5
5
  readonly value: boolean;
@@ -1 +1 @@
1
- import{SystemComponentBuilder as t}from"../core/index.js";export const AttributeSwitchValueSchema={type:["string","number","boolean"]};export const attributeSwitchComponent=t.component("attributeSwitch").withState({type:"object",properties:{value:AttributeSwitchValueSchema},tsType:"AttributeSwitchComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"AttributeSwitchComponentState"}],required:["value"],additionalProperties:!1}).withWritableKeys(["value"]).build();
1
+ import{SystemComponentBuilder as t}from"../core/index.js";export const AttributeSwitchValueSchema={type:"boolean"};export const attributeSwitchComponent=t.component("attributeSwitch").withState({type:"object",properties:{value:AttributeSwitchValueSchema},tsType:"AttributeSwitchComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"AttributeSwitchComponentState"}],required:["value"],additionalProperties:!1}).withWritableKeys(["value"]).build();
@@ -1 +1 @@
1
- import{EnhancedLocalizableSchema as t}from"@salsita-ai/common/utils";import{SystemComponentBuilder as e,isSnapshotOfComponentType as i}from"../core/index.js";import{DimensionUnitSchema as n,UnitsConfigSchema as r}from"../dimensions/index.js";import{SceneHtmlOpacityProperties as o,SceneHtmlVisibilityProperties as a}from"../system-components/index.js";import{DimensionIndicatorBaseProperties as s,EditableIndicatorButtonVariantSchema as p}from"./common/index.js";export const editableOffsetIndicatorComponent=e.component("editableOffsetIndicator").withState({tsType:"EditableOffsetIndicatorComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"EditableOffsetIndicatorComponentState"}],type:"object",properties:{...s,targetEntityOffsetAnchors:{type:"array",items:{type:"string"}},targetReferenceOffsetAnchors:{type:"array",items:{type:"string"}},referenceEntityIds:{type:["array","null"],items:{type:"string"}},directionVector:{type:"object",properties:{x:{type:"number"},y:{type:"number"},z:{type:"number"}},additionalProperties:!1},directionVectorRelativeToEntityId:{type:["string","null"]},maxDistance:{type:["number","null"]},minDistance:{type:["number","null"]},maxPerpendicularDistance:{type:["number","null"]},minPerpendicularDistance:{type:["number","null"]},visible:{type:"boolean"},force:{type:"boolean"},displayUnit:n,unitDisplayConfig:r,...o,...a,targetOffset:{type:"string"},fixableViolations:{type:"array",items:{type:"string"}},inputLabel:t,modalTitle:t,modalText:t,helperText:t,buttonVariant:p},required:["targetOffset","targetEntityOffsetAnchors","targetReferenceOffsetAnchors","directionVector"],additionalProperties:!1}).build();export const isEditableOffsetIndicatorSnapshot=i(editableOffsetIndicatorComponent);
1
+ import{EnhancedLocalizableSchema as e}from"@salsita-ai/common/utils";import{DomainEntityIdSchema as t,SystemComponentBuilder as i,isSnapshotOfComponentType as n}from"../core/index.js";import{DimensionUnitSchema as r,UnitsConfigSchema as o}from"../dimensions/index.js";import{SceneHtmlOpacityProperties as a,SceneHtmlVisibilityProperties as s}from"../system-components/index.js";import{DimensionIndicatorBaseProperties as p,EditableIndicatorButtonVariantSchema as m}from"./common/index.js";export const editableOffsetIndicatorComponent=i.component("editableOffsetIndicator").withState({tsType:"EditableOffsetIndicatorComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"EditableOffsetIndicatorComponentState"}],type:"object",properties:{...p,targetEntityOffsetAnchors:{type:"array",items:{type:"string"}},targetReferenceOffsetAnchors:{type:"array",items:{type:"string"}},referenceEntityIds:{type:["array","null"],items:t},directionVector:{type:"object",properties:{x:{type:"number"},y:{type:"number"},z:{type:"number"}},additionalProperties:!1},directionVectorRelativeToEntityId:{anyOf:[t,{type:"null"}]},maxDistance:{type:["number","null"]},minDistance:{type:["number","null"]},maxPerpendicularDistance:{type:["number","null"]},minPerpendicularDistance:{type:["number","null"]},visible:{type:"boolean"},force:{type:"boolean"},displayUnit:r,unitDisplayConfig:o,...a,...s,targetOffset:{type:"string"},fixableViolations:{type:"array",items:{type:"string"}},inputLabel:e,modalTitle:e,modalText:e,helperText:e,buttonVariant:m},required:["targetOffset","targetEntityOffsetAnchors","targetReferenceOffsetAnchors","directionVector"],additionalProperties:!1}).build();export const isEditableOffsetIndicatorSnapshot=n(editableOffsetIndicatorComponent);
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e,isSnapshotOfComponentType as t}from"../core/index.js";export const FitSelectionOrthographicCameraComponentName="fitSelectionOrthographicCamera";export const fitSelectionOrthographicCameraComponent=e.component("fitSelectionOrthographicCamera").withState({type:"object",tsType:"FitSelectionOrthographicCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"FitSelectionOrthographicCameraComponentState"}],properties:{priority:{type:"number"},fitToBox:{type:"boolean"},animateTransition:{type:"boolean"},zoomLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},left:{type:"number"},bottom:{type:"number"},frustumSize:{type:"number"},near:{type:"number"},far:{type:"number"},focus:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},minZoom:{type:"number"},maxZoom:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number"},middle:{type:"number"},right:{type:"number"},wheel:{type:"number"}},required:["left","middle","right"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number"},two:{type:"number"},three:{type:"number"}},required:["one","two"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isFitSelectionOrthographicCameraComponent=t(fitSelectionOrthographicCameraComponent);
1
+ import{SystemComponentBuilder as e,isSnapshotOfComponentType as t}from"../core/index.js";export const FitSelectionOrthographicCameraComponentName="fitSelectionOrthographicCamera";export const fitSelectionOrthographicCameraComponent=e.component("fitSelectionOrthographicCamera").withState({type:"object",tsType:"FitSelectionOrthographicCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"FitSelectionOrthographicCameraComponentState"}],properties:{priority:{type:"number"},fitToBox:{type:"boolean"},animateTransition:{type:"boolean"},zoomLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},left:{type:"number"},bottom:{type:"number"},frustumSize:{type:"number"},near:{type:"number"},far:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},minZoom:{type:"number"},maxZoom:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number",enum:[0,1,2,4,8,16]},middle:{type:"number",enum:[0,1,2,4,8,16]},right:{type:"number",enum:[0,1,2,4,8,16]},wheel:{type:"number",enum:[0,1,2,4,8,16]}},required:["left","middle","right","wheel"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number",enum:[0,8,16,32,64,128]},two:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]},three:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]}},required:["one","two","three"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isFitSelectionOrthographicCameraComponent=t(fitSelectionOrthographicCameraComponent);
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e,isSnapshotOfComponentType as t}from"../core/index.js";export const FitSelectionPerspectiveCameraComponentName="fitSelectionPerspectiveCamera";export const fitSelectionPerspectiveCameraComponent=e.component("fitSelectionPerspectiveCamera").withState({type:"object",tsType:"FitSelectionPerspectiveCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"FitSelectionPerspectiveCameraComponentState"}],properties:{priority:{type:"number"},fitToBox:{type:"boolean"},fitMeshChanges:{type:"boolean"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},distanceLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fov:{type:"number"},far:{type:"number"},near:{type:"number"},focus:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number"},middle:{type:"number"},right:{type:"number"},wheel:{type:"number"}},required:["left","middle","right"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number"},two:{type:"number"},three:{type:"number"}},required:["one","two"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isFitSelectionPerspectiveCameraComponent=t(fitSelectionPerspectiveCameraComponent);
1
+ import{SystemComponentBuilder as e,isSnapshotOfComponentType as t}from"../core/index.js";export const FitSelectionPerspectiveCameraComponentName="fitSelectionPerspectiveCamera";export const fitSelectionPerspectiveCameraComponent=e.component("fitSelectionPerspectiveCamera").withState({type:"object",tsType:"FitSelectionPerspectiveCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"FitSelectionPerspectiveCameraComponentState"}],properties:{priority:{type:"number"},fitToBox:{type:"boolean"},fitMeshChanges:{type:"boolean"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},distanceLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fov:{type:"number"},far:{type:"number"},near:{type:"number"},focus:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number",enum:[0,1,2,4,8,16]},middle:{type:"number",enum:[0,1,2,4,8,16]},right:{type:"number",enum:[0,1,2,4,8,16]},wheel:{type:"number",enum:[0,1,2,4,8,16]}},required:["left","middle","right","wheel"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number",enum:[0,8,16,32,64,128]},two:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]},three:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]}},required:["one","two","three"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isFitSelectionPerspectiveCameraComponent=t(fitSelectionPerspectiveCameraComponent);
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e,isSnapshotOfComponentType as t}from"../core/index.js";import{DimensionUnitSchema as n,UnitsConfigSchema as r}from"../dimensions/index.js";import{DimensionIndicatorBaseProperties as i}from"./common/index.js";export const offsetIndicatorComponent=e.component("offsetIndicator").withState({tsType:"OffsetIndicatorComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"OffsetIndicatorComponentState"}],type:"object",properties:{...i,targetEntityOffsetAnchors:{type:"array",items:{type:"string"}},targetReferenceOffsetAnchors:{type:"array",items:{type:"string"}},referenceEntityIds:{type:["array","null"],items:{type:"string"}},directionVector:{type:"object",properties:{x:{type:"number"},y:{type:"number"},z:{type:"number"}},additionalProperties:!1},directionVectorRelativeToEntityId:{type:["string","null"]},maxDistance:{type:["number","null"]},minDistance:{type:["number","null"]},maxPerpendicularDistance:{type:["number","null"]},minPerpendicularDistance:{type:["number","null"]},visible:{type:"boolean"},force:{type:"boolean"},displayUnit:n,unitDisplayConfig:r},required:["targetEntityOffsetAnchors","targetReferenceOffsetAnchors","directionVector"],additionalProperties:!1}).build();export const isOffsetIndicatorSnapshot=t(offsetIndicatorComponent);
1
+ import{DomainEntityIdSchema as e,SystemComponentBuilder as t,isSnapshotOfComponentType as n}from"../core/index.js";import{DimensionUnitSchema as r,UnitsConfigSchema as o}from"../dimensions/index.js";import{DimensionIndicatorBaseProperties as i}from"./common/index.js";export const offsetIndicatorComponent=t.component("offsetIndicator").withState({tsType:"OffsetIndicatorComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"OffsetIndicatorComponentState"}],type:"object",properties:{...i,targetEntityOffsetAnchors:{type:"array",items:{type:"string"}},targetReferenceOffsetAnchors:{type:"array",items:{type:"string"}},referenceEntityIds:{type:["array","null"],items:e},directionVector:{type:"object",properties:{x:{type:"number"},y:{type:"number"},z:{type:"number"}},additionalProperties:!1},directionVectorRelativeToEntityId:{anyOf:[e,{type:"null"}]},maxDistance:{type:["number","null"]},minDistance:{type:["number","null"]},maxPerpendicularDistance:{type:["number","null"]},minPerpendicularDistance:{type:["number","null"]},visible:{type:"boolean"},force:{type:"boolean"},displayUnit:r,unitDisplayConfig:o},required:["targetEntityOffsetAnchors","targetReferenceOffsetAnchors","directionVector"],additionalProperties:!1}).build();export const isOffsetIndicatorSnapshot=n(offsetIndicatorComponent);
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e}from"../core/index.js";export const sceneEntityAnimationComponent=e.component("sceneEntityAnimation").withState({type:"object",tsType:"SceneEntityAnimationComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"SceneEntityAnimationComponentState"}],properties:{fileUrl:{type:"string"},name:{type:"string"},type:{type:"string"},timeScale:{type:"number"}},required:["fileUrl","name","timeScale","type"],additionalProperties:!1}).build();
1
+ import{SystemComponentBuilder as e}from"../core/index.js";export const sceneEntityAnimationComponent=e.component("sceneEntityAnimation").withState({type:"object",tsType:"SceneEntityAnimationComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"SceneEntityAnimationComponentState"}],properties:{fileUrl:{type:"string"},name:{type:"string"},type:{type:"string",enum:["reversable"]},timeScale:{type:"number"}},required:["fileUrl","name","timeScale","type"],additionalProperties:!1}).build();
@@ -1 +1 @@
1
- import{EnhancedLocalizableSchema as e}from"@salsita-ai/common/utils";import{SystemComponentBuilder as t}from"../core/index.js";import{recipeSchema as i}from"./common/recipes.js";export const childEntitySelectionComponent=t.component("childEntitySelection").withState({type:"object",tsType:"ChildEntitySelectionComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"ChildEntitySelectionComponentState"}],properties:{value:{type:"string"},options:{type:"array",items:{type:"object",properties:{label:e,description:e,img:e,recipes:{type:"array",items:i},keepChildren:{type:"boolean"}},required:["recipes","label"],additionalProperties:!0}}},required:["value","options"],additionalProperties:!1}).build();
1
+ import{EnhancedLocalizableSchema as e}from"@salsita-ai/common/utils";import{DomainEntityIdSchema as t,SystemComponentBuilder as i}from"../core/index.js";import{recipeSchema as o}from"./common/recipes.js";export const childEntitySelectionComponent=i.component("childEntitySelection").withState({type:"object",tsType:"ChildEntitySelectionComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"ChildEntitySelectionComponentState"}],properties:{value:t,options:{type:"array",items:{type:"object",properties:{label:e,description:e,img:e,recipes:{type:"array",items:o}},required:["recipes","label"],additionalProperties:!1}},keepChildren:{type:"boolean"}},required:["value","options"],additionalProperties:!1}).build();
@@ -1,5 +1,5 @@
1
1
  import { type Localizable } from '@salsita-ai/common/utils';
2
- import type { DomainEntity, EntityRecipe } from '../../core/index.js';
2
+ import { type DomainEntity, type EntityRecipe } from '../../core/index.js';
3
3
  export interface RecipeListItem {
4
4
  /**
5
5
  * Stable identifier of the recipe within its list, independent of the language and of the title.
@@ -29,8 +29,17 @@ export declare const recipeSchema: {
29
29
  readonly type: {
30
30
  readonly type: 'string';
31
31
  };
32
+ readonly id: {
33
+ readonly type: 'string';
34
+ readonly pattern: '^[A-Z]\\w*-\\d+$';
35
+ readonly import: [{
36
+ readonly module: '@salsita-ai/sdk/domain';
37
+ readonly member: 'DomainEntityId';
38
+ }];
39
+ readonly tsType: 'DomainEntityId';
40
+ };
32
41
  };
33
- readonly required: ["type"];
42
+ readonly required: ["type", "id"];
34
43
  readonly additionalProperties: true;
35
44
  };
36
45
  export declare const recipeListItemSchema: {
@@ -89,8 +98,17 @@ export declare const recipeListItemSchema: {
89
98
  readonly type: {
90
99
  readonly type: 'string';
91
100
  };
101
+ readonly id: {
102
+ readonly type: 'string';
103
+ readonly pattern: '^[A-Z]\\w*-\\d+$';
104
+ readonly import: [{
105
+ readonly module: '@salsita-ai/sdk/domain';
106
+ readonly member: 'DomainEntityId';
107
+ }];
108
+ readonly tsType: 'DomainEntityId';
109
+ };
92
110
  };
93
- readonly required: ["type"];
111
+ readonly required: ["type", "id"];
94
112
  readonly additionalProperties: true;
95
113
  };
96
114
  };
@@ -1 +1 @@
1
- import{EnhancedLocalizableSchema as e}from"@salsita-ai/common/utils";export const recipeSchema={type:"object",properties:{type:{type:"string"}},required:["type"],additionalProperties:!0};export const recipeListItemSchema={type:"object",properties:{key:{type:"string"},title:e,description:e,thumbnailUrl:e,recipes:{type:"array",items:recipeSchema}},required:["title","recipes"],additionalProperties:!1};export const GroupedRecipesSchema={type:"object",tsType:"GroupedRecipes",import:[{module:"@salsita-ai/sdk/domain",member:"GroupedRecipes"}],properties:{instanceNames:{type:"array",items:{type:"string"}}},required:["instanceNames"]};export const GroupedRecipeGroupSchema={type:"object",tsType:"GroupedRecipeGroup",import:[{module:"@salsita-ai/sdk/domain",member:"GroupedRecipeGroup"}],properties:{label:e,description:e,thumbnailUrl:e,children:{$ref:"#/definitions/GroupedRecipeItems"}},required:["label","children"],additionalProperties:!1};export const GroupedRecipeItemsSchema={tsType:"GroupedRecipeItems",import:[{module:"@salsita-ai/sdk/domain",member:"GroupedRecipeItems"}],anyOf:[{type:"array",items:GroupedRecipeGroupSchema},GroupedRecipesSchema]};
1
+ import{EnhancedLocalizableSchema as e}from"@salsita-ai/common/utils";import{DomainEntityIdSchema as i}from"../../core/index.js";export const recipeSchema={type:"object",properties:{type:{type:"string"},id:i},required:["type","id"],additionalProperties:!0};export const recipeListItemSchema={type:"object",properties:{key:{type:"string"},title:e,description:e,thumbnailUrl:e,recipes:{type:"array",items:recipeSchema}},required:["title","recipes"],additionalProperties:!1};export const GroupedRecipesSchema={type:"object",tsType:"GroupedRecipes",import:[{module:"@salsita-ai/sdk/domain",member:"GroupedRecipes"}],properties:{instanceNames:{type:"array",items:{type:"string"}}},required:["instanceNames"]};export const GroupedRecipeGroupSchema={type:"object",tsType:"GroupedRecipeGroup",import:[{module:"@salsita-ai/sdk/domain",member:"GroupedRecipeGroup"}],properties:{label:e,description:e,thumbnailUrl:e,children:{$ref:"#/definitions/GroupedRecipeItems"}},required:["label","children"],additionalProperties:!1};export const GroupedRecipeItemsSchema={tsType:"GroupedRecipeItems",import:[{module:"@salsita-ai/sdk/domain",member:"GroupedRecipeItems"}],anyOf:[{type:"array",items:GroupedRecipeGroupSchema},GroupedRecipesSchema]};
@@ -115,6 +115,7 @@ declare const SceneHtmlOpacityPropertiesTmp: {
115
115
  readonly type: 'number';
116
116
  };
117
117
  };
118
+ readonly required: readonly ['min', 'max'];
118
119
  readonly additionalProperties: false;
119
120
  };
120
121
  readonly polarAngleLimits: {
@@ -138,6 +139,7 @@ declare const SceneHtmlOpacityPropertiesTmp: {
138
139
  readonly type: 'number';
139
140
  };
140
141
  };
142
+ readonly required: readonly ['min', 'max'];
141
143
  readonly additionalProperties: false;
142
144
  };
143
145
  readonly distanceLimits: {
@@ -161,6 +163,7 @@ declare const SceneHtmlOpacityPropertiesTmp: {
161
163
  readonly type: 'number';
162
164
  };
163
165
  };
166
+ readonly required: readonly ['min', 'max'];
164
167
  readonly additionalProperties: false;
165
168
  };
166
169
  readonly minInteractiveOpacity: {
@@ -1 +1 @@
1
- import{EnhancedLocalizableSchema as e}from"@salsita-ai/common/utils";let t={type:"object",tsType:"SceneEntityHtmlOpacityLimits",import:[{module:"@salsita-ai/sdk/domain",member:"SceneEntityHtmlOpacityLimits"}],properties:{min:{type:"number"},max:{type:"number"},smoothZone:{type:"number"},minOpacity:{type:"number"}},additionalProperties:!1};export const SceneHtmlOpacityProperties={azimuthAngleLimits:t,polarAngleLimits:t,distanceLimits:t,minInteractiveOpacity:{type:"number"}};export const SceneHtmlPositionProperties={offsetX:{type:"number"},offsetY:{type:"number"},offsetZ:{type:"number"},screenOffsetHorizontal:{type:"number"},screenOffsetVertical:{type:"number"}};export const SceneHtmlVisibilityProperties={hideWhileDragging:{type:"boolean"},occlude:{type:"boolean"},showWhen:{type:"array",items:{type:"string",enum:["selected","unselected"]}}};export const SceneHtmlTooltipProperties={title:e,tooltipVisibility:{type:["string"],enum:["on-hover","forced","forced-when-still","hidden"]}};
1
+ import{EnhancedLocalizableSchema as e}from"@salsita-ai/common/utils";let t={type:"object",tsType:"SceneEntityHtmlOpacityLimits",import:[{module:"@salsita-ai/sdk/domain",member:"SceneEntityHtmlOpacityLimits"}],properties:{min:{type:"number"},max:{type:"number"},smoothZone:{type:"number"},minOpacity:{type:"number"}},required:["min","max"],additionalProperties:!1};export const SceneHtmlOpacityProperties={azimuthAngleLimits:t,polarAngleLimits:t,distanceLimits:t,minInteractiveOpacity:{type:"number"}};export const SceneHtmlPositionProperties={offsetX:{type:"number"},offsetY:{type:"number"},offsetZ:{type:"number"},screenOffsetHorizontal:{type:"number"},screenOffsetVertical:{type:"number"}};export const SceneHtmlVisibilityProperties={hideWhileDragging:{type:"boolean"},occlude:{type:"boolean"},showWhen:{type:"array",items:{type:"string",enum:["selected","unselected"]}}};export const SceneHtmlTooltipProperties={title:e,tooltipVisibility:{type:["string"],enum:["on-hover","forced","forced-when-still","hidden"]}};
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e,isInstanceOfComponentType as a,isSnapshotOfComponentType as t}from"../core/index.js";import{DraggableSurfaceSchema as r}from"./common/index.js";export const dragHandleComponent=e.component("dragHandle").withState({tsType:"DragHandleComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"DragHandleComponentState"}],type:"object",properties:{surfaces:{type:"array",items:r},target:{type:"string"},draggableX:{type:"number"},draggableY:{type:"number"},draggableZ:{type:"number"},draggableRotationY:{type:"number"}},required:["surfaces"],additionalProperties:!1}).withWritableKeys(["draggableX","draggableY","draggableZ","draggableRotationY"]).build();export const DraggableUpdateTag="Draggable.update";export const TransientDraggableUpdateTag="Draggable.update.transient";export const isDragHandleSnapshot=t(dragHandleComponent);export const isDragHandleInstance=a(dragHandleComponent);
1
+ import{SystemComponentBuilder as e,isInstanceOfComponentType as a,isSnapshotOfComponentType as t}from"../core/index.js";import{DraggableSurfaceSchema as r}from"./common/index.js";export const dragHandleComponent=e.component("dragHandle").withState({tsType:"DragHandleComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"DragHandleComponentState"}],type:"object",properties:{surfaces:{type:"array",items:r},draggableX:{type:"number"},draggableY:{type:"number"},draggableZ:{type:"number"},draggableRotationY:{type:"number"}},required:["surfaces"],additionalProperties:!1}).withWritableKeys(["draggableX","draggableY","draggableZ","draggableRotationY"]).build();export const DraggableUpdateTag="Draggable.update";export const TransientDraggableUpdateTag="Draggable.update.transient";export const isDragHandleSnapshot=t(dragHandleComponent);export const isDragHandleInstance=a(dragHandleComponent);
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e,isInstanceOfComponentType as t,isSnapshotOfComponentType as o}from"../core/index.js";export const FitEntityOrthographicCameraComponentName="fitEntityOrthographicCamera";export const fitEntityOrthographicCameraComponent=e.component("fitEntityOrthographicCamera").withState({type:"object",tsType:"FitEntityOrthographicCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"FitEntityOrthographicCameraComponentState"}],properties:{priority:{type:"number"},fitMeshChanges:{type:"boolean"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},zoomLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fitToBox:{type:"boolean"},left:{type:"number"},bottom:{type:"number"},frustumSize:{type:"number"},near:{type:"number"},far:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},minZoom:{type:"number"},maxZoom:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number"},middle:{type:"number"},right:{type:"number"},wheel:{type:"number"}},required:["left","middle","right"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number"},two:{type:"number"},three:{type:"number"}},required:["one","two"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isFitEntityOrthographicCameraComponentSnapshot=o(fitEntityOrthographicCameraComponent);export const isFitEntityOrthographicCameraComponentInstance=t(fitEntityOrthographicCameraComponent);
1
+ import{SystemComponentBuilder as e,isInstanceOfComponentType as t,isSnapshotOfComponentType as o}from"../core/index.js";export const FitEntityOrthographicCameraComponentName="fitEntityOrthographicCamera";export const fitEntityOrthographicCameraComponent=e.component("fitEntityOrthographicCamera").withState({type:"object",tsType:"FitEntityOrthographicCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"FitEntityOrthographicCameraComponentState"}],properties:{priority:{type:"number"},fitMeshChanges:{type:"boolean"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},zoomLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fitToBox:{type:"boolean"},left:{type:"number"},bottom:{type:"number"},frustumSize:{type:"number"},near:{type:"number"},far:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},minZoom:{type:"number"},maxZoom:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number",enum:[0,1,2,4,8,16]},middle:{type:"number",enum:[0,1,2,4,8,16]},right:{type:"number",enum:[0,1,2,4,8,16]},wheel:{type:"number",enum:[0,1,2,4,8,16]}},required:["left","middle","right","wheel"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number",enum:[0,8,16,32,64,128]},two:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]},three:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]}},required:["one","two","three"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isFitEntityOrthographicCameraComponentSnapshot=o(fitEntityOrthographicCameraComponent);export const isFitEntityOrthographicCameraComponentInstance=t(fitEntityOrthographicCameraComponent);
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e,isInstanceOfComponentType as t,isSnapshotOfComponentType as n}from"../core/index.js";export const FitEntityPerspectiveCameraComponentName="fitEntityPerspectiveCamera";export const fitEntityPerspectiveCameraComponent=e.component("fitEntityPerspectiveCamera").withState({type:"object",tsType:"FitEntityPerspectiveCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"FitEntityPerspectiveCameraComponentState"}],properties:{priority:{type:"number"},fitMeshChanges:{type:"boolean"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},distanceLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fitToBox:{type:"boolean"},fov:{type:"number"},far:{type:"number"},near:{type:"number"},focus:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number"},middle:{type:"number"},right:{type:"number"},wheel:{type:"number"}},required:["left","middle","right"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number"},two:{type:"number"},three:{type:"number"}},required:["one","two"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isFitEntityPerspectiveCameraComponentSnapshot=n(fitEntityPerspectiveCameraComponent);export const isFitEntityPerspectiveCameraComponentInstance=t(fitEntityPerspectiveCameraComponent);
1
+ import{SystemComponentBuilder as e,isInstanceOfComponentType as t,isSnapshotOfComponentType as n}from"../core/index.js";export const FitEntityPerspectiveCameraComponentName="fitEntityPerspectiveCamera";export const fitEntityPerspectiveCameraComponent=e.component("fitEntityPerspectiveCamera").withState({type:"object",tsType:"FitEntityPerspectiveCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"FitEntityPerspectiveCameraComponentState"}],properties:{priority:{type:"number"},fitMeshChanges:{type:"boolean"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},distanceLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fitToBox:{type:"boolean"},fov:{type:"number"},far:{type:"number"},near:{type:"number"},focus:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number",enum:[0,1,2,4,8,16]},middle:{type:"number",enum:[0,1,2,4,8,16]},right:{type:"number",enum:[0,1,2,4,8,16]},wheel:{type:"number",enum:[0,1,2,4,8,16]}},required:["left","middle","right","wheel"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number",enum:[0,8,16,32,64,128]},two:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]},three:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]}},required:["one","two","three"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isFitEntityPerspectiveCameraComponentSnapshot=n(fitEntityPerspectiveCameraComponent);export const isFitEntityPerspectiveCameraComponentInstance=t(fitEntityPerspectiveCameraComponent);
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e,isSnapshotOfComponentType as t}from"../core/index.js";export const FitRootOrthographicCameraComponentName="fitRootOrthographicCamera";export const fitRootOrthographicCameraComponent=e.component("fitRootOrthographicCamera").withState({type:"object",tsType:"FitRootOrthographicCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"FitRootOrthographicCameraComponentState"}],properties:{priority:{type:"number"},fitMeshChanges:{type:"boolean"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},zoomLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fitToBox:{type:"boolean"},left:{type:"number"},bottom:{type:"number"},frustumSize:{type:"number"},near:{type:"number"},far:{type:"number"},focus:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},minZoom:{type:"number"},maxZoom:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number"},middle:{type:"number"},right:{type:"number"},wheel:{type:"number"}},required:["left","middle","right"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number"},two:{type:"number"},three:{type:"number"}},required:["one","two"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isFitRootOrthographicCameraComponent=t(fitRootOrthographicCameraComponent);
1
+ import{SystemComponentBuilder as e,isSnapshotOfComponentType as t}from"../core/index.js";export const FitRootOrthographicCameraComponentName="fitRootOrthographicCamera";export const fitRootOrthographicCameraComponent=e.component("fitRootOrthographicCamera").withState({type:"object",tsType:"FitRootOrthographicCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"FitRootOrthographicCameraComponentState"}],properties:{priority:{type:"number"},fitMeshChanges:{type:"boolean"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},zoomLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fitToBox:{type:"boolean"},left:{type:"number"},bottom:{type:"number"},frustumSize:{type:"number"},near:{type:"number"},far:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},minZoom:{type:"number"},maxZoom:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number",enum:[0,1,2,4,8,16]},middle:{type:"number",enum:[0,1,2,4,8,16]},right:{type:"number",enum:[0,1,2,4,8,16]},wheel:{type:"number",enum:[0,1,2,4,8,16]}},required:["left","middle","right","wheel"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number",enum:[0,8,16,32,64,128]},two:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]},three:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]}},required:["one","two","three"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isFitRootOrthographicCameraComponent=t(fitRootOrthographicCameraComponent);
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e,isSnapshotOfComponentType as t}from"../core/index.js";export const FitRootPerspectiveCameraComponentName="fitRootPerspectiveCamera";export const fitRootPerspectiveCameraComponent=e.component("fitRootPerspectiveCamera").withState({type:"object",tsType:"FitRootPerspectiveCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"FitRootPerspectiveCameraComponentState"}],properties:{priority:{type:"number"},fitMeshChanges:{type:"boolean"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},distanceLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fitToBox:{type:"boolean"},fov:{type:"number"},far:{type:"number"},near:{type:"number"},focus:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number"},middle:{type:"number"},right:{type:"number"},wheel:{type:"number"}},required:["left","middle","right"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number"},two:{type:"number"},three:{type:"number"}},required:["one","two"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isFitRootPerspectiveCameraComponent=t(fitRootPerspectiveCameraComponent);
1
+ import{SystemComponentBuilder as e,isSnapshotOfComponentType as t}from"../core/index.js";export const FitRootPerspectiveCameraComponentName="fitRootPerspectiveCamera";export const fitRootPerspectiveCameraComponent=e.component("fitRootPerspectiveCamera").withState({type:"object",tsType:"FitRootPerspectiveCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"FitRootPerspectiveCameraComponentState"}],properties:{priority:{type:"number"},fitMeshChanges:{type:"boolean"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},distanceLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fitToBox:{type:"boolean"},fov:{type:"number"},far:{type:"number"},near:{type:"number"},focus:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number",enum:[0,1,2,4,8,16]},middle:{type:"number",enum:[0,1,2,4,8,16]},right:{type:"number",enum:[0,1,2,4,8,16]},wheel:{type:"number",enum:[0,1,2,4,8,16]}},required:["left","middle","right","wheel"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number",enum:[0,8,16,32,64,128]},two:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]},three:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]}},required:["one","two","three"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isFitRootPerspectiveCameraComponent=t(fitRootPerspectiveCameraComponent);
@@ -1 +1 @@
1
- import{SystemComponentBuilder as t,isComponentModificationOfType as e,isInstanceOfComponentType as o,isSnapshotOfComponentType as a}from"../core/index.js";import{DraggableSurfaceSchema as n,SceneHtmlOpacityProperties as r,SceneHtmlPositionProperties as p,SceneHtmlVisibilityProperties as s}from"./common/index.js";export const HotspotDragHandleVariant={Point:"point",Fab:"fab"};export const hotspotDragHandleComponent=t.component("hotspotDragHandle").withState({tsType:"HotspotDragHandleComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"HotspotDragHandleComponentState"}],type:"object",properties:{...p,...r,...s,surfaces:{type:"array",items:n},target:{type:"string"},handleSize:{type:"number"},variant:{type:"string",enum:Object.values(HotspotDragHandleVariant)},icon:{type:"string"},draggableX:{type:"number"},draggableY:{type:"number"},draggableZ:{type:"number"}},required:["surfaces"],additionalProperties:!1}).withWritableKeys(["draggableX","draggableY","draggableZ"]).build();export const isHotspotDragHandleSnapshot=a(hotspotDragHandleComponent);export const isHotspotDragHandleInstance=o(hotspotDragHandleComponent);export const isHotspotDragHandleModification=e(hotspotDragHandleComponent);
1
+ import{SystemComponentBuilder as t,isComponentModificationOfType as e,isInstanceOfComponentType as o,isSnapshotOfComponentType as a}from"../core/index.js";import{DraggableSurfaceSchema as n,SceneHtmlOpacityProperties as r,SceneHtmlPositionProperties as p,SceneHtmlVisibilityProperties as s}from"./common/index.js";export const HotspotDragHandleVariant={Point:"point",Fab:"fab"};export const hotspotDragHandleComponent=t.component("hotspotDragHandle").withState({tsType:"HotspotDragHandleComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"HotspotDragHandleComponentState"}],type:"object",properties:{...p,...r,...s,surfaces:{type:"array",items:n},handleSize:{type:"number"},variant:{type:"string",enum:Object.values(HotspotDragHandleVariant)},icon:{type:"string"},draggableX:{type:"number"},draggableY:{type:"number"},draggableZ:{type:"number"}},required:["surfaces"],additionalProperties:!1}).withWritableKeys(["draggableX","draggableY","draggableZ"]).build();export const isHotspotDragHandleSnapshot=a(hotspotDragHandleComponent);export const isHotspotDragHandleInstance=o(hotspotDragHandleComponent);export const isHotspotDragHandleModification=e(hotspotDragHandleComponent);
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e}from"../core/index.js";export const StaticOrthographicCameraComponentName="staticOrthographicCamera";export const staticOrthographicCameraComponent=e.component(StaticOrthographicCameraComponentName).withState({type:"object",tsType:"StaticOrthographicCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"StaticOrthographicCameraComponentState"}],properties:{priority:{type:"number"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},zoomLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},left:{type:"number"},bottom:{type:"number"},frustumSize:{type:"number"},far:{type:"number"},near:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},minZoom:{type:"number"},maxZoom:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number"},middle:{type:"number"},right:{type:"number"},wheel:{type:"number"}},required:["left","middle","right"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number"},two:{type:"number"},three:{type:"number"}},required:["one","two"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},lookAtX:{type:"number"},lookAtY:{type:"number"},lookAtZ:{type:"number"}},required:[],additionalProperties:!1}).build();export const isStaticOrthographicCameraComponent=e=>e.componentInstance.componentType.name===StaticOrthographicCameraComponentName;
1
+ import{SystemComponentBuilder as e}from"../core/index.js";export const StaticOrthographicCameraComponentName="staticOrthographicCamera";export const staticOrthographicCameraComponent=e.component(StaticOrthographicCameraComponentName).withState({type:"object",tsType:"StaticOrthographicCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"StaticOrthographicCameraComponentState"}],properties:{priority:{type:"number"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},zoomLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},left:{type:"number"},bottom:{type:"number"},frustumSize:{type:"number"},far:{type:"number"},near:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},minZoom:{type:"number"},maxZoom:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number",enum:[0,1,2,4,8,16]},middle:{type:"number",enum:[0,1,2,4,8,16]},right:{type:"number",enum:[0,1,2,4,8,16]},wheel:{type:"number",enum:[0,1,2,4,8,16]}},required:["left","middle","right","wheel"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number",enum:[0,8,16,32,64,128]},two:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]},three:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]}},required:["one","two","three"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},lookAtX:{type:"number"},lookAtY:{type:"number"},lookAtZ:{type:"number"}},required:[],additionalProperties:!1}).build();export const isStaticOrthographicCameraComponent=e=>e.componentInstance.componentType.name===StaticOrthographicCameraComponentName;
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e}from"../core/index.js";export const StaticPerspectiveCameraComponentName="staticPerspectiveCamera";export const staticPerspectiveCameraComponent=e.component(StaticPerspectiveCameraComponentName).withState({type:"object",tsType:"StaticPerspectiveCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"StaticPerspectiveCameraComponentState"}],properties:{priority:{type:"number"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},distanceLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fov:{type:"number"},far:{type:"number"},near:{type:"number"},focus:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number"},middle:{type:"number"},right:{type:"number"},wheel:{type:"number"}},required:["left","middle","right"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number"},two:{type:"number"},three:{type:"number"}},required:["one","two"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},lookAtX:{type:"number"},lookAtY:{type:"number"},lookAtZ:{type:"number"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isStaticPerspectiveCameraComponent=e=>e.componentInstance.componentType.name===StaticPerspectiveCameraComponentName;
1
+ import{SystemComponentBuilder as e}from"../core/index.js";export const StaticPerspectiveCameraComponentName="staticPerspectiveCamera";export const staticPerspectiveCameraComponent=e.component(StaticPerspectiveCameraComponentName).withState({type:"object",tsType:"StaticPerspectiveCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"StaticPerspectiveCameraComponentState"}],properties:{priority:{type:"number"},animateOnLoad:{type:"boolean"},animateTransition:{type:"boolean"},distanceLockGroup:{type:["string","null"]},rotationLockGroup:{type:["string","null"]},fov:{type:"number"},far:{type:"number"},near:{type:"number"},focus:{type:"number"},distance:{type:"number"},minDistance:{type:"number"},maxDistance:{type:"number"},polarAngle:{type:"number"},minPolarAngle:{type:"number"},maxPolarAngle:{type:"number"},azimuthAngle:{type:"number"},minAzimuthAngle:{type:"number"},maxAzimuthAngle:{type:"number"},smoothTime:{type:"number"},draggingSmoothTime:{type:"number"},maxSpeed:{type:"number"},azimuthRotateSpeed:{type:"number"},polarRotateSpeed:{type:"number"},dollySpeed:{type:"number"},dollyDragInverted:{type:"boolean"},truckSpeed:{type:"number"},mouseButtons:{type:"object",properties:{left:{type:"number",enum:[0,1,2,4,8,16]},middle:{type:"number",enum:[0,1,2,4,8,16]},right:{type:"number",enum:[0,1,2,4,8,16]},wheel:{type:"number",enum:[0,1,2,4,8,16]}},required:["left","middle","right","wheel"],additionalProperties:!1},touches:{type:"object",properties:{one:{type:"number",enum:[0,8,16,32,64,128]},two:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]},three:{type:"number",enum:[0,32,64,128,256,512,1024,2048,4096,8192,16384,32768]}},required:["one","two","three"],additionalProperties:!1},boundaryEnclosesCamera:{type:"boolean"},dollyToCursor:{type:"boolean"},dragToOffset:{type:"boolean"},verticalDragToForward:{type:"boolean"},boundary:{type:"object"},lookAtX:{type:"number"},lookAtY:{type:"number"},lookAtZ:{type:"number"},relative:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isStaticPerspectiveCameraComponent=e=>e.componentInstance.componentType.name===StaticPerspectiveCameraComponentName;
@@ -32,6 +32,13 @@ export interface EditorProps {
32
32
  readonly mockTemplates?: MockTemplateDefinition[];
33
33
  /** If true, automatically apply the first template when templates are initialized */
34
34
  readonly autoApplyTemplate?: boolean;
35
+ /**
36
+ * Key of the mock template to apply on mount, in place of the template stored for this page.
37
+ * Applying it does not store it, so it never changes what an editor without this prop opens.
38
+ * An unknown key logs a warning and falls back to the stored template, or to the first template
39
+ * when `autoApplyTemplate` is set.
40
+ */
41
+ readonly initialTemplateKey?: string;
35
42
  /** Key used to scope localStorage template persistence (e.g. environment slug) */
36
43
  readonly environmentKey?: string;
37
44
  /** Web component tag name for creating and discovering reflection systems. */
@@ -1 +1 @@
1
- import{jsx as e,jsxs as i,Fragment as t}from"react/jsx-runtime";import{Box as o,Chip as n,CssBaseline as r,IconButton as s,ThemeProvider as a,Tooltip as l,Typography as d,createTheme as c,useMediaQuery as m,useTheme as p}from"@mui/material";import{ModalProvider as f}from"mui-modal-provider";import{memo as h,useCallback as u,useEffect as g,useState as w}from"react";import{match as k}from"ts-pattern";import{useLocalStorage as y}from"usehooks-ts";import{PhxIcon as x,SnackbarProvider as b,createThemeWithPhoenixIcons as v}from"#package/ui-sdk";import{EditorMode as S}from"./EditorMode.js";import{EditorRuntimeProvider as P}from"./EditorRuntimeProvider.js";import{EditorAdminContextProvider as j}from"./admin/EditorAdminContext.js";import{EditorAdminMainContent as V}from"./admin/EditorAdminMainContent.js";import{EditorAdminSidebar as E}from"./admin/EditorAdminSidebar.js";import{useEditorAdminState as D}from"./admin/use-editor-admin-state.js";import{Analytics as T}from"./analytics/Analytics.js";import{AnalyticsProvider as A}from"./analytics/AnalyticsContext.js";import{Logotype as C}from"./common/Logotype.js";import{PanelIconButton as L}from"./common/PanelIconButton.js";import{BrowserConsoleReporter as M}from"./console-reporter/BrowserConsoleReporter.js";import{DataHandler as W}from"./data/DataHandler.js";import{DebugFlags as R}from"./debug-flags/DebugFlags.js";import{DiagnosticsPanel as I}from"./diagnostics/DiagnosticsPanel.js";import{DomainEditors as F}from"./domain-editors/DomainEditors.js";import{DomainSpecProvider as G,useDomainSpecContext as z}from"./domain-editors/DomainSpecContext.js";import{DomainReflection as B}from"./domain-reflection/DomainReflection.js";import{GraphQLPanel as Q}from"./graphql/GraphQLPanel.js";import{LogsPanel as H}from"./logs/LogsPanel.js";import{EditorMockProvider as U}from"./mocks/EditorMockContext.js";import{Mocks as q}from"./mocks/Mocks.js";import{ProfilerPanel as O}from"./profiler/ProfilerPanel.js";import{RemoteFilesList as K}from"./remote-files/RemoteFilesList.js";import{SceneHandler as N}from"./scene/SceneHandler.js";import{ScreenshotHandler as X}from"./screenshot/ScreenshotHandler.js";import{EditorConnectionProvider as Y}from"./services/EditorConnectionContext.js";import{EditorActionButtons as $}from"./sidebar/EditorActionButtons.js";import{StateInspector as J}from"./state-inspector/index.js";import{StateHandler as Z}from"./state/StateHandler.js";import{SpaTemplate as _}from"./templates/SpaTemplate.js";import{Templates as ee}from"./templates/Templates.js";import{TemplatesList as ei}from"./templates/TemplatesList.js";import{TunnelProvider as et,useTunnel as eo}from"./tunnel/TunnelContext.js";import{TunnelPanel as en}from"./tunnel/TunnelPanel.js";import{hasTunnelProblem as er}from"./tunnel/tunnel-view-model.js";import{HTML_VARIANT_FRAME_ATTRIBUTE as es,VariantPreviewHandler as ea,useConfiguratorContainerRef as el}from"./variants/VariantPreviewHandler.js";import{VideoStudio as ed}from"./video-studio/VideoStudio.js";import{WebSocketStatus as ec}from"./websocket-status/WebSocketStatus.js";let em=h(()=>e("div",{ref:el(),style:{width:"100%",height:"100%"}})),ep=v(c());export const EditorPanelView={Files:"Files",Reflections:"Reflections",Domain:"Domain",Templates:"Templates",Mocks:"Mocks",Inspector:"Inspector",Debug:"Debug",Profiler:"Profiler",GraphQL:"GraphQL",VideoStudio:"VideoStudio",Analytics:"Analytics",Diagnostics:"Diagnostics",Logs:"Logs",Tunnel:"Tunnel",WebSocketStatus:"WebSocketStatus",Admin:"Admin"};let ef=[{key:EditorPanelView.Templates,icon:"GridFour",title:"Templates"},{key:EditorPanelView.Reflections,icon:"House",title:"Reflections"},{key:EditorPanelView.Files,icon:"List",title:"Files"},{key:EditorPanelView.Domain,icon:"Gear",title:"Domain"},{key:EditorPanelView.Mocks,icon:"TagBold",title:"Mocks"},{key:EditorPanelView.Inspector,icon:"CurrencyDollar",title:"Inspector"},{key:EditorPanelView.Debug,icon:"EyeBold",title:"Debug"},{key:EditorPanelView.Profiler,icon:"Alarm",title:"Profiler"},{key:EditorPanelView.GraphQL,icon:"MagnifyingGlassBold",title:"GraphQL"},{key:EditorPanelView.VideoStudio,icon:"CameraRotate",title:"Video Studio"},{key:EditorPanelView.Analytics,icon:"Flame",title:"Analytics"},{key:EditorPanelView.Diagnostics,icon:"WarningCircle",title:"Diagnostics"},{key:EditorPanelView.Logs,icon:"BracketsCurly",title:"Logs"},{key:EditorPanelView.Tunnel,icon:"ArrowsHorizontal",title:"Webhook Tunnel"}],eh=h(r=>{let{panelView:a,setPanelView:c,width:m,setWidth:p,selectedTemplate:f,setSelectedTemplate:h,isResizing:y,setIsResizing:b,onExit:v,enableAdmin:S}=r,P=D(S),{unreadDiagnosticCount:j,markDiagnosticsRead:A}=z(),{state:M}=eo(),W=a?Math.max(m,240):38,[G,U]=w(0),N=u(()=>U(e=>e+1),[]);return g(()=>{a===EditorPanelView.Diagnostics&&A()},[A,a]),i(o,{component:"div",sx:{display:"grid",gridTemplateColumns:`${W}px min-content auto`,gridTemplateRows:"minmax(0, 1fr)",width:"100vw",height:"100vh",backgroundColor:"#ffffff",overflow:"hidden"},onMouseMove:e=>{y&&p(e.clientX)},onMouseUp:()=>{b(!1)},children:[i(o,{component:"div",sx:{display:"grid",gridTemplateColumns:"36px auto",backgroundColor:"#f8f9fa",borderRight:"1px solid #dee2e6",boxShadow:"2px 0 8px rgba(0, 0, 0, 0.06)",overflow:"hidden",height:"100%"},children:[i("div",{style:{backgroundColor:"#f8f9fa",height:"100%",display:"flex",flexDirection:"column",alignItems:"center",padding:"4px 0"},children:[e("div",{style:{marginBottom:"8px"},children:e(C,{variant:"icon-only"})}),i("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:"2px"},children:[S&&i(t,{children:[e(L,{icon:"SlidersHorizontal",title:"Admin",active:a===EditorPanelView.Admin,onClick:()=>{a===EditorPanelView.Admin?c(null):c(EditorPanelView.Admin)}}),e("div",{style:{borderBottom:"1px solid #dee2e6",margin:"2px 0"}})]}),ef.map(i=>e(L,{icon:i.icon,title:i.title,active:a===i.key,badgeCount:i.key===EditorPanelView.Tunnel?+!!er(M):i.key===EditorPanelView.Diagnostics?j:0,onClick:()=>{a===i.key?c(null):c(i.key)}},i.key))]}),e($,{reload:N}),e("div",{style:{padding:"0 2px",paddingBottom:"4px"},children:e(L,{icon:"CloudArrowUp",title:"WebSocket Status",active:a===EditorPanelView.WebSocketStatus,onClick:()=>{a===EditorPanelView.WebSocketStatus?c(null):c(EditorPanelView.WebSocketStatus)}})}),v&&e("div",{style:{padding:"0 2px",paddingBottom:"8px"},children:e(L,{icon:"SignOut",title:"Exit Editor",variant:"danger",onClick:v})})]}),a&&i(o,{component:"div",sx:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",backgroundColor:"#ffffff"},children:[e(o,{component:"div",sx:{p:1.5,borderBottom:"1px solid #e9ecef",backgroundColor:"#ffffff"},children:i(o,{component:"div",sx:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[i(o,{component:"div",sx:{display:"flex",flexDirection:"row",alignItems:"center"},children:[e(d,{variant:"h6",sx:{fontSize:16,fontWeight:600,color:"#212529"},children:k(a).with("Files",()=>"Files").with("Reflections",()=>"Reflections").with("Domain",()=>"Domain").with("Templates",()=>"Templates").with("Mocks",()=>"Mocks").with("Inspector",()=>"State Inspector").with("Debug",()=>"Debug").with("Profiler",()=>"Profiler").with("GraphQL",()=>"GraphQL").with("VideoStudio",()=>"Video Studio").with("Analytics",()=>"Analytics").with("Diagnostics",()=>"Diagnostics").with("Logs",()=>"Dev Server Logs").with("Tunnel",()=>"Webhook Tunnel").with("WebSocketStatus",()=>"WebSocket Status").with("Admin",()=>"Admin").otherwise(e=>e)}),e(l,{title:k(a).with("Files",()=>"Browse and inspect loaded GLTF files and their contents").with("Reflections",()=>"Inspect internal Phoenix systems state and configuration").with("Domain",()=>"Edit YAML domain specifications and component configurations").with("Templates",()=>"Select different layout templates for the configurator interface").with("Mocks",()=>"Create and manage mock data for testing session and access configurations").with("Inspector",()=>"Walk the entity tree: fields, expressions, and children").with("Debug",()=>"Toggle scene debug visuals like offset anchors, snapping, and collision meshes").with("Profiler",()=>"Make domain expressions show up as named frames in browser CPU profiles").with("GraphQL",()=>"Run GraphQL queries against the schema generated from the assistant manifest").with("VideoStudio",()=>"Create video sequences by capturing keyframes and exporting as video").with("Analytics",()=>"View parse pipeline metrics, domain stats, and diagnostics").with("Diagnostics",()=>"View latest editor warnings and errors").with("Logs",()=>"View dev server logs: spec builds, webhooks, vite, and browser console").with("Tunnel",()=>"View webhook tunnel status and the requests routed through it").with("WebSocketStatus",()=>"View WebSocket connection status and editor mode information").with("Admin",()=>"Manage admin panel, publish data, and configure settings").otherwise(()=>"Panel information"),placement:"left",arrow:!0,children:e(s,{size:"small",sx:{ml:1,color:"#6c757d",fontSize:14,p:.25,"&:hover":{backgroundColor:"#f8f9fa",color:"#495057"}},children:e(x,{name:"Info",style:{fontSize:14}})})})]}),e(o,{component:"div",sx:{display:"flex",alignItems:"center",gap:1},children:"Templates"===a&&e(n,{label:f.charAt(0).toUpperCase()+f.slice(1),variant:"outlined",size:"small",sx:{backgroundColor:"#f8f9fa",borderColor:"#dee2e6",color:"#495057",fontWeight:500,fontSize:"0.75rem"}})})]})}),i(o,{component:"div",sx:{flex:1,backgroundColor:"#ffffff",overflow:"auto"},children:["Files"===a&&e(K,{}),"Reflections"===a&&e(B,{}),"Domain"===a&&e(F,{}),"Templates"===a&&e(ei,{selectedTemplate:f,onTemplateSelect:h}),"Mocks"===a&&e(q,{}),"Inspector"===a&&e(J,{}),"Debug"===a&&e(R,{}),"Profiler"===a&&e(O,{}),"GraphQL"===a&&e(Q,{}),"VideoStudio"===a&&e(ed,{}),"Analytics"===a&&e(T,{}),"Diagnostics"===a&&e(I,{}),"Logs"===a&&e(H,{}),"Tunnel"===a&&e(en,{}),"WebSocketStatus"===a&&e(ec,{}),S&&"Admin"===a&&e(E,{...P})]})]})]}),e("div",{style:{width:"2px",backgroundColor:"#dee2e6",cursor:"ew-resize",boxShadow:"1px 0 3px rgba(0, 0, 0, 0.05)"},onMouseDown:()=>{b(!0)}}),i("div",{style:{position:"relative",overflow:"hidden"},children:[e("div",{style:{position:"absolute",inset:0,zIndex:+("Admin"!==a)},children:e(ee,{selectedTemplate:f,children:e(em,{},G)})}),S&&e("div",{style:{position:"absolute",inset:0,zIndex:+("Admin"===a)},children:e(V,{})})]})]})}),eu=h(()=>e(_,{children:e(em,{})})),eg=h(o=>{let{wsUrl:n="ws://localhost:3020",localMode:r=!1,domainSpec:s,initialRawProjectFiles:a,onExit:l,mockTemplates:d,autoApplyTemplate:c,environmentKey:h,tagName:u,enableAdmin:k=!0}=o,x=m(p().breakpoints.up("md")),[v,V]=y("editor-width",350),[E,D]=y("editor-view",null),[T,C]=y("editor-template","spa"),[L,R]=w(!1);return g(()=>{null===E||Object.values(EditorPanelView).some(e=>e===E)&&(k||E!==EditorPanelView.Admin)||D(null)},[k,E,D]),e(f,{children:e(b,{maxSnack:5,children:e(j,{children:e(P,{tagName:u,children:e(Y,{initialWsUrl:n,localMode:r,children:e(et,{children:e(S,{children:e(A,{children:e(G,{domainSpec:s,initialRawProjectFiles:a,children:i(U,{mockTemplates:d,autoApplyTemplate:c,environmentKey:h,children:[!r&&i(t,{children:[e(X,{}),e(Z,{}),e(W,{}),e(N,{}),e(M,{})]}),e(ea,{children:x?e(eh,{panelView:E,setPanelView:D,width:v,setWidth:V,selectedTemplate:T,setSelectedTemplate:C,isResizing:L,setIsResizing:R,onExit:l,enableAdmin:k}):e(eu,{})})]})})})})})})})})})})});export const Editor=h(t=>{try{if(window.frameElement?.hasAttribute(es))return e("div",{role:"alert","data-testid":"variant-page-unavailable",style:{padding:24,fontFamily:"sans-serif"},children:"This preview page is unavailable. Ask the agent to recreate it or close the comparison."})}catch{}return i(a,{theme:ep,children:[e(r,{}),e(eg,{...t})]})});
1
+ import{jsx as e,jsxs as i,Fragment as t}from"react/jsx-runtime";import{Box as o,Chip as n,CssBaseline as r,IconButton as s,ThemeProvider as a,Tooltip as l,Typography as d,createTheme as m,useMediaQuery as c,useTheme as p}from"@mui/material";import{ModalProvider as f}from"mui-modal-provider";import{memo as h,useCallback as u,useEffect as g,useState as w}from"react";import{match as k}from"ts-pattern";import{useLocalStorage as y}from"usehooks-ts";import{PhxIcon as x,SnackbarProvider as b,createThemeWithPhoenixIcons as v}from"#package/ui-sdk";import{EditorMode as S}from"./EditorMode.js";import{EditorRuntimeProvider as P}from"./EditorRuntimeProvider.js";import{EditorAdminContextProvider as j}from"./admin/EditorAdminContext.js";import{EditorAdminMainContent as V}from"./admin/EditorAdminMainContent.js";import{EditorAdminSidebar as E}from"./admin/EditorAdminSidebar.js";import{useEditorAdminState as D}from"./admin/use-editor-admin-state.js";import{Analytics as T}from"./analytics/Analytics.js";import{AnalyticsProvider as A}from"./analytics/AnalyticsContext.js";import{Logotype as C}from"./common/Logotype.js";import{PanelIconButton as L}from"./common/PanelIconButton.js";import{BrowserConsoleReporter as M}from"./console-reporter/BrowserConsoleReporter.js";import{DataHandler as W}from"./data/DataHandler.js";import{DebugFlags as R}from"./debug-flags/DebugFlags.js";import{DiagnosticsPanel as I}from"./diagnostics/DiagnosticsPanel.js";import{DomainEditors as F}from"./domain-editors/DomainEditors.js";import{DomainSpecProvider as G,useDomainSpecContext as z}from"./domain-editors/DomainSpecContext.js";import{DomainReflection as B}from"./domain-reflection/DomainReflection.js";import{GraphQLPanel as Q}from"./graphql/GraphQLPanel.js";import{LogsPanel as H}from"./logs/LogsPanel.js";import{EditorMockProvider as U}from"./mocks/EditorMockContext.js";import{Mocks as q}from"./mocks/Mocks.js";import{ProfilerPanel as K}from"./profiler/ProfilerPanel.js";import{RemoteFilesList as O}from"./remote-files/RemoteFilesList.js";import{SceneHandler as N}from"./scene/SceneHandler.js";import{ScreenshotHandler as X}from"./screenshot/ScreenshotHandler.js";import{EditorConnectionProvider as Y}from"./services/EditorConnectionContext.js";import{EditorActionButtons as $}from"./sidebar/EditorActionButtons.js";import{StateInspector as J}from"./state-inspector/index.js";import{StateHandler as Z}from"./state/StateHandler.js";import{SpaTemplate as _}from"./templates/SpaTemplate.js";import{Templates as ee}from"./templates/Templates.js";import{TemplatesList as ei}from"./templates/TemplatesList.js";import{TunnelProvider as et,useTunnel as eo}from"./tunnel/TunnelContext.js";import{TunnelPanel as en}from"./tunnel/TunnelPanel.js";import{hasTunnelProblem as er}from"./tunnel/tunnel-view-model.js";import{HTML_VARIANT_FRAME_ATTRIBUTE as es,VariantPreviewHandler as ea,useConfiguratorContainerRef as el}from"./variants/VariantPreviewHandler.js";import{VideoStudio as ed}from"./video-studio/VideoStudio.js";import{WebSocketStatus as em}from"./websocket-status/WebSocketStatus.js";let ec=h(()=>e("div",{ref:el(),style:{width:"100%",height:"100%"}})),ep=v(m());export const EditorPanelView={Files:"Files",Reflections:"Reflections",Domain:"Domain",Templates:"Templates",Mocks:"Mocks",Inspector:"Inspector",Debug:"Debug",Profiler:"Profiler",GraphQL:"GraphQL",VideoStudio:"VideoStudio",Analytics:"Analytics",Diagnostics:"Diagnostics",Logs:"Logs",Tunnel:"Tunnel",WebSocketStatus:"WebSocketStatus",Admin:"Admin"};let ef=[{key:EditorPanelView.Templates,icon:"GridFour",title:"Templates"},{key:EditorPanelView.Reflections,icon:"House",title:"Reflections"},{key:EditorPanelView.Files,icon:"List",title:"Files"},{key:EditorPanelView.Domain,icon:"Gear",title:"Domain"},{key:EditorPanelView.Mocks,icon:"TagBold",title:"Mocks"},{key:EditorPanelView.Inspector,icon:"CurrencyDollar",title:"Inspector"},{key:EditorPanelView.Debug,icon:"EyeBold",title:"Debug"},{key:EditorPanelView.Profiler,icon:"Alarm",title:"Profiler"},{key:EditorPanelView.GraphQL,icon:"MagnifyingGlassBold",title:"GraphQL"},{key:EditorPanelView.VideoStudio,icon:"CameraRotate",title:"Video Studio"},{key:EditorPanelView.Analytics,icon:"Flame",title:"Analytics"},{key:EditorPanelView.Diagnostics,icon:"WarningCircle",title:"Diagnostics"},{key:EditorPanelView.Logs,icon:"BracketsCurly",title:"Logs"},{key:EditorPanelView.Tunnel,icon:"ArrowsHorizontal",title:"Webhook Tunnel"}],eh=h(r=>{let{panelView:a,setPanelView:m,width:c,setWidth:p,selectedTemplate:f,setSelectedTemplate:h,isResizing:y,setIsResizing:b,onExit:v,enableAdmin:S}=r,P=D(S),{unreadDiagnosticCount:j,markDiagnosticsRead:A}=z(),{state:M}=eo(),W=a?Math.max(c,240):38,[G,U]=w(0),N=u(()=>U(e=>e+1),[]);return g(()=>{a===EditorPanelView.Diagnostics&&A()},[A,a]),i(o,{component:"div",sx:{display:"grid",gridTemplateColumns:`${W}px min-content auto`,gridTemplateRows:"minmax(0, 1fr)",width:"100vw",height:"100vh",backgroundColor:"#ffffff",overflow:"hidden"},onMouseMove:e=>{y&&p(e.clientX)},onMouseUp:()=>{b(!1)},children:[i(o,{component:"div",sx:{display:"grid",gridTemplateColumns:"36px auto",backgroundColor:"#f8f9fa",borderRight:"1px solid #dee2e6",boxShadow:"2px 0 8px rgba(0, 0, 0, 0.06)",overflow:"hidden",height:"100%"},children:[i("div",{style:{backgroundColor:"#f8f9fa",height:"100%",display:"flex",flexDirection:"column",alignItems:"center",padding:"4px 0"},children:[e("div",{style:{marginBottom:"8px"},children:e(C,{variant:"icon-only"})}),i("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:"2px"},children:[S&&i(t,{children:[e(L,{icon:"SlidersHorizontal",title:"Admin",active:a===EditorPanelView.Admin,onClick:()=>{a===EditorPanelView.Admin?m(null):m(EditorPanelView.Admin)}}),e("div",{style:{borderBottom:"1px solid #dee2e6",margin:"2px 0"}})]}),ef.map(i=>e(L,{icon:i.icon,title:i.title,active:a===i.key,badgeCount:i.key===EditorPanelView.Tunnel?+!!er(M):i.key===EditorPanelView.Diagnostics?j:0,onClick:()=>{a===i.key?m(null):m(i.key)}},i.key))]}),e($,{reload:N}),e("div",{style:{padding:"0 2px",paddingBottom:"4px"},children:e(L,{icon:"CloudArrowUp",title:"WebSocket Status",active:a===EditorPanelView.WebSocketStatus,onClick:()=>{a===EditorPanelView.WebSocketStatus?m(null):m(EditorPanelView.WebSocketStatus)}})}),v&&e("div",{style:{padding:"0 2px",paddingBottom:"8px"},children:e(L,{icon:"SignOut",title:"Exit Editor",variant:"danger",onClick:v})})]}),a&&i(o,{component:"div",sx:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",backgroundColor:"#ffffff"},children:[e(o,{component:"div",sx:{p:1.5,borderBottom:"1px solid #e9ecef",backgroundColor:"#ffffff"},children:i(o,{component:"div",sx:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[i(o,{component:"div",sx:{display:"flex",flexDirection:"row",alignItems:"center"},children:[e(d,{variant:"h6",sx:{fontSize:16,fontWeight:600,color:"#212529"},children:k(a).with("Files",()=>"Files").with("Reflections",()=>"Reflections").with("Domain",()=>"Domain").with("Templates",()=>"Templates").with("Mocks",()=>"Mocks").with("Inspector",()=>"State Inspector").with("Debug",()=>"Debug").with("Profiler",()=>"Profiler").with("GraphQL",()=>"GraphQL").with("VideoStudio",()=>"Video Studio").with("Analytics",()=>"Analytics").with("Diagnostics",()=>"Diagnostics").with("Logs",()=>"Dev Server Logs").with("Tunnel",()=>"Webhook Tunnel").with("WebSocketStatus",()=>"WebSocket Status").with("Admin",()=>"Admin").otherwise(e=>e)}),e(l,{title:k(a).with("Files",()=>"Browse and inspect loaded GLTF files and their contents").with("Reflections",()=>"Inspect internal Phoenix systems state and configuration").with("Domain",()=>"Edit YAML domain specifications and component configurations").with("Templates",()=>"Select different layout templates for the configurator interface").with("Mocks",()=>"Create and manage mock data for testing session and access configurations").with("Inspector",()=>"Walk the entity tree: fields, expressions, and children").with("Debug",()=>"Toggle scene debug visuals like offset anchors, snapping, and collision meshes").with("Profiler",()=>"Make domain expressions show up as named frames in browser CPU profiles").with("GraphQL",()=>"Run GraphQL queries against the schema generated from the assistant manifest").with("VideoStudio",()=>"Create video sequences by capturing keyframes and exporting as video").with("Analytics",()=>"View parse pipeline metrics, domain stats, and diagnostics").with("Diagnostics",()=>"View latest editor warnings and errors").with("Logs",()=>"View dev server logs: spec builds, webhooks, vite, and browser console").with("Tunnel",()=>"View webhook tunnel status and the requests routed through it").with("WebSocketStatus",()=>"View WebSocket connection status and editor mode information").with("Admin",()=>"Manage admin panel, publish data, and configure settings").otherwise(()=>"Panel information"),placement:"left",arrow:!0,children:e(s,{size:"small",sx:{ml:1,color:"#6c757d",fontSize:14,p:.25,"&:hover":{backgroundColor:"#f8f9fa",color:"#495057"}},children:e(x,{name:"Info",style:{fontSize:14}})})})]}),e(o,{component:"div",sx:{display:"flex",alignItems:"center",gap:1},children:"Templates"===a&&e(n,{label:f.charAt(0).toUpperCase()+f.slice(1),variant:"outlined",size:"small",sx:{backgroundColor:"#f8f9fa",borderColor:"#dee2e6",color:"#495057",fontWeight:500,fontSize:"0.75rem"}})})]})}),i(o,{component:"div",sx:{flex:1,backgroundColor:"#ffffff",overflow:"auto"},children:["Files"===a&&e(O,{}),"Reflections"===a&&e(B,{}),"Domain"===a&&e(F,{}),"Templates"===a&&e(ei,{selectedTemplate:f,onTemplateSelect:h}),"Mocks"===a&&e(q,{}),"Inspector"===a&&e(J,{}),"Debug"===a&&e(R,{}),"Profiler"===a&&e(K,{}),"GraphQL"===a&&e(Q,{}),"VideoStudio"===a&&e(ed,{}),"Analytics"===a&&e(T,{}),"Diagnostics"===a&&e(I,{}),"Logs"===a&&e(H,{}),"Tunnel"===a&&e(en,{}),"WebSocketStatus"===a&&e(em,{}),S&&"Admin"===a&&e(E,{...P})]})]})]}),e("div",{style:{width:"2px",backgroundColor:"#dee2e6",cursor:"ew-resize",boxShadow:"1px 0 3px rgba(0, 0, 0, 0.05)"},onMouseDown:()=>{b(!0)}}),i("div",{style:{position:"relative",overflow:"hidden"},children:[e("div",{style:{position:"absolute",inset:0,zIndex:+("Admin"!==a)},children:e(ee,{selectedTemplate:f,children:e(ec,{},G)})}),S&&e("div",{style:{position:"absolute",inset:0,zIndex:+("Admin"===a)},children:e(V,{})})]})]})}),eu=h(()=>e(_,{children:e(ec,{})})),eg=h(o=>{let{wsUrl:n="ws://localhost:3020",localMode:r=!1,domainSpec:s,initialRawProjectFiles:a,onExit:l,mockTemplates:d,autoApplyTemplate:m,initialTemplateKey:h,environmentKey:u,tagName:k,enableAdmin:x=!0}=o,v=c(p().breakpoints.up("md")),[V,E]=y("editor-width",350),[D,T]=y("editor-view",null),[C,L]=y("editor-template","spa"),[R,I]=w(!1);return g(()=>{null===D||Object.values(EditorPanelView).some(e=>e===D)&&(x||D!==EditorPanelView.Admin)||T(null)},[x,D,T]),e(f,{children:e(b,{maxSnack:5,children:e(j,{children:e(P,{tagName:k,children:e(Y,{initialWsUrl:n,localMode:r,children:e(et,{children:e(S,{children:e(A,{children:e(G,{domainSpec:s,initialRawProjectFiles:a,children:i(U,{mockTemplates:d,autoApplyTemplate:m,initialTemplateKey:h,environmentKey:u,children:[!r&&i(t,{children:[e(X,{}),e(Z,{}),e(W,{}),e(N,{}),e(M,{})]}),e(ea,{children:v?e(eh,{panelView:D,setPanelView:T,width:V,setWidth:E,selectedTemplate:C,setSelectedTemplate:L,isResizing:R,setIsResizing:I,onExit:l,enableAdmin:x}):e(eu,{})})]})})})})})})})})})})});export const Editor=h(t=>{try{if(window.frameElement?.hasAttribute(es))return e("div",{role:"alert","data-testid":"variant-page-unavailable",style:{padding:24,fontFamily:"sans-serif"},children:"This preview page is unavailable. Ask the agent to recreate it or close the comparison."})}catch{}return i(a,{theme:ep,children:[e(r,{}),e(eg,{...t})]})});