@salsita-ai/sdk 0.50.0-develop.61e519cfcc → 0.50.0-develop.662fa65a4c
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.
- package/README.md +19 -14
- package/dist/admin/default-admin-elements.d.ts +9 -0
- package/dist/admin/default-admin-elements.js +1 -0
- package/dist/admin/default-elements/built-in-entity-element.d.ts +10 -0
- package/dist/admin/default-elements/built-in-entity-element.js +1 -0
- package/dist/admin/default-elements/built-in-layout-element.d.ts +10 -0
- package/dist/admin/default-elements/built-in-layout-element.js +1 -0
- package/dist/admin/default-elements/index.d.ts +2 -0
- package/dist/admin/default-elements/index.js +1 -0
- package/dist/admin/index.d.ts +1 -0
- package/dist/admin/index.js +1 -1
- package/dist/application-spec/caching/content-diff.js +1 -1
- package/dist/application-spec/core/application-file.d.ts +0 -2
- package/dist/application-spec/core/application-file.js +1 -1
- package/dist/application-spec/errors/diagnostic-codes.d.ts +14 -0
- package/dist/application-spec/errors/diagnostic-codes.js +1 -1
- package/dist/application-spec/errors/diagnostic-messages.d.ts +15 -1
- package/dist/application-spec/errors/diagnostic-messages.js +1 -1
- package/dist/application-spec/generate-application/code/common/code-imports.js +1 -1
- package/dist/application-spec/generate-application/code/common/env-reader.js +2 -2
- package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
- package/dist/application-spec/generate-application/code/common/index.js +1 -1
- package/dist/application-spec/generate-application/code/common/single-quoted-string.d.ts +6 -0
- package/dist/application-spec/generate-application/code/common/single-quoted-string.js +1 -0
- package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
- package/dist/application-spec/generate-application/code/generate-application-code.d.ts +3 -2
- package/dist/application-spec/generate-application/code/generate-application-code.js +1 -1
- package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +15 -14
- package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
- package/dist/application-spec/generate-application/code/story-files.js +1 -1
- package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -0
- package/dist/application-spec/generate-application/code/templates/application-types.js +6 -6
- package/dist/application-spec/generate-application/code/templates/common/doc-comment.d.ts +2 -0
- package/dist/application-spec/generate-application/code/templates/common/doc-comment.js +1 -0
- package/dist/application-spec/generate-application/code/templates/common/format-property-key.d.ts +7 -0
- package/dist/application-spec/generate-application/code/templates/common/format-property-key.js +1 -0
- package/dist/application-spec/generate-application/code/templates/common/schema-to-type-string.js +3 -3
- package/dist/application-spec/generate-application/code/templates/configurator-globals.d.ts +2 -1
- package/dist/application-spec/generate-application/code/templates/configurator-globals.js +19 -6
- package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +35 -0
- package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +5 -0
- package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.d.ts +1 -0
- package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.js +1 -0
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.d.ts +1 -1
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +6 -6
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +59 -63
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +8 -0
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-presets.js +1 -1
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +13 -13
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.d.ts +1 -1
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.js +2 -2
- package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +2 -1
- package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
- package/dist/application-spec/generate-application/code/templates/eslint-config.d.ts +5 -0
- package/dist/application-spec/generate-application/code/templates/eslint-config.js +4 -5
- package/dist/application-spec/generate-application/code/templates/frontend-config.js +3 -5
- package/dist/application-spec/generate-application/code/templates/gitignore.js +0 -3
- package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.js +7 -7
- package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.d.ts +12 -0
- package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.js +7 -0
- package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.d.ts +43 -0
- package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +33 -0
- package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +2 -0
- package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
- package/dist/application-spec/generate-application/code/templates/globals.js +24 -44
- package/dist/application-spec/generate-application/code/templates/index.d.ts +3 -2
- package/dist/application-spec/generate-application/code/templates/index.js +1 -1
- package/dist/application-spec/generate-application/code/templates/lingui-rc.d.ts +5 -0
- package/dist/application-spec/generate-application/code/templates/lingui-rc.js +4 -4
- package/dist/application-spec/generate-application/code/templates/prettier-config.d.ts +5 -0
- package/dist/application-spec/generate-application/code/templates/prettier-config.js +4 -5
- package/dist/application-spec/generate-application/code/templates/root-tsconfig.d.ts +6 -0
- package/dist/application-spec/generate-application/code/templates/root-tsconfig.js +2 -0
- package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
- package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +1 -1
- package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +5 -5
- package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +3 -3
- package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
- package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +2 -2
- package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +29 -10
- package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -2
- package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
- package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
- package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
- package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
- package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
- package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
- package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
- package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
- package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
- package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
- package/dist/application-spec/generate-application/code/templates/story/phx-module.d.ts +8 -2
- package/dist/application-spec/generate-application/code/templates/story/phx-module.js +15 -3
- package/dist/application-spec/generate-application/code/templates/story/wrapper.d.ts +3 -0
- package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -1
- package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
- package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
- package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -3
- package/dist/application-spec/generate-application/implementations/phx-application-types.d.ts +25 -0
- package/dist/application-spec/generate-application/implementations/phx-application-types.js +1 -0
- package/dist/application-spec/generate-application/implementations/phx-domain.d.ts +36 -0
- package/dist/application-spec/generate-application/implementations/phx-domain.js +1 -0
- package/dist/application-spec/generate-application/implementations/phx-model.d.ts +24 -0
- package/dist/application-spec/generate-application/implementations/phx-model.js +1 -0
- package/dist/application-spec/generate-application/implementations/phx.d.ts +22 -0
- package/dist/application-spec/generate-application/implementations/phx.js +1 -0
- package/dist/application-spec/generate-application/index.d.ts +1 -0
- package/dist/application-spec/generate-application/index.js +1 -1
- package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +6 -4
- package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +7 -5
- package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.d.ts +16 -0
- package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.js +1 -0
- package/dist/application-spec/generate-application/runtime/admin-runtime/states-runtime.d.ts +2 -2
- package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +24 -9
- package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/application-spec-slice.d.ts +70 -0
- package/dist/application-spec/generate-application/runtime/application-spec-slice.js +1 -0
- package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +7 -5
- package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +7 -6
- package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.d.ts +16 -0
- package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.js +1 -0
- package/dist/application-spec/generate-application/runtime/configurator-runtime/states-runtime.d.ts +2 -2
- package/dist/application-spec/generate-application/runtime/index.d.ts +8 -0
- package/dist/application-spec/generate-application/runtime/index.js +1 -0
- package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +2 -2
- package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +2 -2
- package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +2 -1
- package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
- package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +2 -1
- package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +1 -1
- package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +3 -0
- package/dist/application-spec/generate-application/runtime/sections/component-optic.js +1 -1
- package/dist/application-spec/generate-application/runtime/sections/data-runtime.d.ts +4 -4
- package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +15 -6
- package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +9 -5
- package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +3 -1
- package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/sections/theme-runtime.d.ts +2 -2
- package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +3 -3
- package/dist/application-spec/generate-application/runtime/spec-code/index.d.ts +2 -0
- package/dist/application-spec/generate-application/runtime/spec-code/index.js +1 -0
- package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +18 -0
- package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.js +1 -0
- package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.d.ts +17 -0
- package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.js +1 -0
- package/dist/application-spec/generate-application/runtime/spec-runtime.d.ts +21 -0
- package/dist/application-spec/generate-application/runtime/spec-runtime.js +1 -0
- package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.d.ts +9 -0
- package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.js +1 -0
- package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.d.ts +8 -0
- package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.js +1 -0
- package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +28 -0
- package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.js +1 -0
- package/dist/application-spec/generate-application/runtime-spec/index.d.ts +5 -0
- package/dist/application-spec/generate-application/runtime-spec/index.js +1 -0
- package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +103 -0
- package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -0
- package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +40 -0
- package/dist/application-spec/generate-application/runtime-spec/spec-code-id.js +1 -0
- package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +28 -0
- package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
- package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.d.ts +16 -0
- package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.js +9 -0
- package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts +9 -0
- package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
- package/dist/application-spec/parse-application-files/raw-spec/parse-yaml-spec-file.js +1 -1
- package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +33 -3
- package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
- package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
- package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
- package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
- package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
- package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.d.ts +3 -0
- package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js +1 -0
- package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +5 -0
- package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -0
- package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.d.ts +6 -0
- package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.js +1 -0
- package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.d.ts +8 -0
- package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.js +1 -0
- package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts +10 -0
- package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.js +1 -0
- package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.d.ts +98 -0
- package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.js +1 -0
- package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts +13 -0
- package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js +1 -0
- package/dist/application-spec/parse-application-files/spec/components/bindings/index.d.ts +2 -0
- package/dist/application-spec/parse-application-files/spec/components/bindings/index.js +1 -1
- package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.d.ts +24 -0
- package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js +1 -0
- package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts +8 -0
- package/dist/application-spec/parse-application-files/spec/components/component-state-type.js +1 -0
- package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts +13 -0
- package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js +1 -0
- package/dist/application-spec/parse-application-files/spec/components/static-entity-id.d.ts +14 -0
- package/dist/application-spec/parse-application-files/spec/components/static-entity-id.js +1 -0
- package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +6 -0
- package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
- package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +7 -4
- package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
- package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +24 -0
- package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -0
- package/dist/application-spec/parse-application-files/spec/expressions/expression-read.d.ts +13 -0
- package/dist/application-spec/parse-application-files/spec/expressions/expression-read.js +1 -0
- package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
- package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
- package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +6 -2
- package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
- package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +3 -1
- package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
- package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +2 -2
- package/dist/application-spec/parse-application-files/spec/invariants/invariants.js +1 -1
- package/dist/application-spec/parse-application-files/spec/model/index.d.ts +1 -0
- package/dist/application-spec/parse-application-files/spec/model/index.js +1 -1
- package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.d.ts +10 -0
- package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.js +1 -0
- package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.d.ts +9 -0
- package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.js +1 -0
- package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +4 -1
- package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
- package/dist/client/phoenix-api.d.ts +367 -0
- package/dist/configurator/ConfiguratorApp.js +1 -1
- package/dist/configurator/app-loader-content/DefaultAppLoaderContent.d.ts +2 -0
- package/dist/configurator/app-loader-content/DefaultAppLoaderContent.js +5 -0
- package/dist/configurator/app-loader-content/index.d.ts +1 -0
- package/dist/configurator/app-loader-content/index.js +1 -0
- package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +11 -4
- package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +33 -7
- package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.d.ts +1 -1
- package/dist/configurator/application-runtime/extensions/systems/canvas-system.d.ts +8 -0
- package/dist/configurator/application-runtime/extensions/systems/canvas-system.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.d.ts +8 -0
- package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.js +1 -0
- package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.d.ts +23 -1
- package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.d.ts +12 -0
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.js +1 -0
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +14 -1
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +46 -5
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.d.ts +14 -5
- package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
- package/dist/configurator/common/configurator-interface.d.ts +121 -6
- package/dist/configurator/common/configurator-interface.js +1 -1
- package/dist/configurator/common/index.d.ts +2 -2
- package/dist/configurator/common/index.js +1 -1
- package/dist/configurator/configuration-not-found-page/BuiltInConfigurationNotFoundPage.d.ts +5 -0
- package/dist/configurator/configuration-not-found-page/BuiltInConfigurationNotFoundPage.js +1 -0
- package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +6 -0
- package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -0
- package/dist/configurator/configuration-not-found-page/index.d.ts +2 -0
- package/dist/configurator/configuration-not-found-page/index.js +1 -0
- package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +12 -0
- package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -0
- package/dist/configurator/configurator-context/PresetSelectionProvider.js +1 -1
- package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
- package/dist/configurator/configurator-context/ViewportStateSync.d.ts +2 -2
- package/dist/configurator/configurator-context/ViewportStateSync.js +1 -1
- package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +10 -0
- package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +1 -1
- package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.d.ts +6 -0
- package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.js +1 -0
- package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.d.ts +7 -0
- package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.js +1 -0
- package/dist/configurator/configurator-error-page/index.d.ts +2 -0
- package/dist/configurator/configurator-error-page/index.js +1 -0
- package/dist/configurator/index.d.ts +10 -0
- package/dist/configurator/index.js +1 -1
- package/dist/configurator/pages/ConfiguratorErrorPage.d.ts +0 -1
- package/dist/configurator/pages/ConfiguratorErrorPage.js +1 -1
- package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
- package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +3 -2
- package/dist/configurator/pages/DefaultNotAuthenticatedPage.d.ts +8 -0
- package/dist/configurator/pages/DefaultNotAuthenticatedPage.js +1 -0
- package/dist/configurator/pages/DefaultPresetUi.d.ts +7 -0
- package/dist/configurator/pages/DefaultPresetUi.js +1 -0
- package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
- package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
- package/dist/configurator/pages/PresetCreationErrorPage.d.ts +1 -1
- package/dist/configurator/pages/PresetCreationErrorPage.js +1 -1
- package/dist/configurator/pages/RootPage.js +1 -1
- package/dist/configurator/pages/default-configurator-elements.d.ts +7 -1
- package/dist/configurator/pages/default-configurator-elements.js +1 -1
- package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +10 -0
- package/dist/configurator/pages/default-elements/built-in-entity-element.js +1 -0
- package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +10 -0
- package/dist/configurator/pages/default-elements/built-in-layout-element.js +1 -0
- package/dist/configurator/pages/default-elements/domain-control-elements.d.ts +6 -0
- package/dist/configurator/pages/default-elements/domain-control-elements.js +1 -0
- package/dist/configurator/pages/default-elements/index.d.ts +5 -0
- package/dist/configurator/pages/default-elements/index.js +1 -0
- package/dist/configurator/pages/default-elements/recipe-panel-elements.d.ts +3 -0
- package/dist/configurator/pages/default-elements/recipe-panel-elements.js +1 -0
- package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.d.ts +3 -0
- package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.js +1 -0
- package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.d.ts +3 -0
- package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.js +1 -0
- package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.d.ts +3 -0
- package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.js +1 -0
- package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.d.ts +3 -0
- package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.js +1 -0
- package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.d.ts +3 -0
- package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.js +1 -0
- package/dist/configurator/pages/default-elements/scene-controls/index.d.ts +6 -0
- package/dist/configurator/pages/default-elements/scene-controls/index.js +1 -0
- package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.d.ts +6 -0
- package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.js +1 -0
- package/dist/configurator/pages/default-elements/sidebar-footer-elements.d.ts +7 -0
- package/dist/configurator/pages/default-elements/sidebar-footer-elements.js +1 -0
- package/dist/configurator/pages/default-elements/toolbar-elements.d.ts +7 -0
- package/dist/configurator/pages/default-elements/toolbar-elements.js +1 -0
- package/dist/configurator/pages/error-boundaries/GeneralErrorBoundary.js +1 -1
- package/dist/configurator/pages/error-boundaries/LoadingErrorBoundary.js +1 -1
- package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.d.ts +4 -0
- package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.js +1 -0
- package/dist/configurator/preset-screen-elements/PresetPageActionElement.d.ts +4 -0
- package/dist/configurator/preset-screen-elements/PresetPageActionElement.js +1 -0
- package/dist/configurator/preset-screen-elements/index.d.ts +2 -0
- package/dist/configurator/preset-screen-elements/index.js +1 -0
- package/dist/configurator/scene/index.d.ts +1 -0
- package/dist/configurator/scene/index.js +1 -1
- package/dist/configurator/scene/scene-controls/DeleteEntityFab.js +1 -1
- package/dist/configurator/scene/scene-controls/SelectionHotspot.js +1 -1
- package/dist/configurator/scene/scene-controls/ToolFab.d.ts +4 -0
- package/dist/configurator/scene/scene-controls/ToolFab.js +1 -1
- package/dist/configurator/scene/scene-controls/use-scene-control-tooltip.d.ts +2 -1
- package/dist/configurator/scene/scene-entity/scene-controls/SceneEntityHtmlHotspots.js +1 -1
- package/dist/configurator/toolbar-actions/index.d.ts +3 -0
- package/dist/configurator/toolbar-actions/index.js +1 -0
- package/dist/configurator/toolbar-actions/use-assistant-panel.d.ts +18 -0
- package/dist/configurator/toolbar-actions/use-assistant-panel.js +1 -0
- package/dist/configurator/toolbar-actions/use-measurements.d.ts +35 -0
- package/dist/configurator/toolbar-actions/use-measurements.js +1 -0
- package/dist/configurator/toolbar-actions/use-toolbar-actions.d.ts +100 -0
- package/dist/configurator/toolbar-actions/use-toolbar-actions.js +1 -0
- package/dist/configurator/toolbar-actions/use-toolbar-help.d.ts +7 -0
- package/dist/configurator/toolbar-actions/use-toolbar-help.js +1 -0
- package/dist/configurator/ui/assistant/AssistantChips.d.ts +3 -2
- package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
- package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -2
- package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
- package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
- package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
- package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +8 -0
- package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -0
- package/dist/configurator/ui/assistant/alert/index.d.ts +2 -0
- package/dist/configurator/ui/assistant/alert/index.js +1 -0
- package/dist/configurator/ui/assistant/alert/remark-alerts.d.ts +10 -0
- package/dist/configurator/ui/assistant/alert/remark-alerts.js +1 -0
- package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +1 -1
- package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -1
- package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +1 -1
- package/dist/configurator/ui/assistant/entity-link/index.d.ts +0 -1
- package/dist/configurator/ui/assistant/entity-link/index.js +1 -1
- package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +19 -0
- package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -0
- package/dist/configurator/ui/assistant/form/compose-answer.d.ts +11 -0
- package/dist/configurator/ui/assistant/form/compose-answer.js +1 -0
- package/dist/configurator/ui/assistant/form/describe-build-errors.d.ts +6 -0
- package/dist/configurator/ui/assistant/form/describe-build-errors.js +1 -0
- package/dist/configurator/ui/assistant/form/form-model.d.ts +37 -0
- package/dist/configurator/ui/assistant/form/form-model.js +1 -0
- package/dist/configurator/ui/assistant/form/form-state.d.ts +4 -0
- package/dist/configurator/ui/assistant/form/form-state.js +1 -0
- package/dist/configurator/ui/assistant/form/index.d.ts +4 -0
- package/dist/configurator/ui/assistant/form/index.js +1 -0
- package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +10 -0
- package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -0
- package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +13 -0
- package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -0
- package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +3 -0
- package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.js +1 -0
- package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.d.ts +31 -0
- package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.js +1 -0
- package/dist/configurator/ui/assistant/form/registry/form-element-definition.d.ts +16 -0
- package/dist/configurator/ui/assistant/form/registry/form-element-definition.js +1 -0
- package/dist/configurator/ui/assistant/form/registry/form-registry.d.ts +31 -0
- package/dist/configurator/ui/assistant/form/registry/form-registry.js +1 -0
- package/dist/configurator/ui/assistant/form/registry/index.d.ts +6 -0
- package/dist/configurator/ui/assistant/form/registry/index.js +1 -0
- package/dist/configurator/ui/assistant/form/registry/use-form-registry.d.ts +8 -0
- package/dist/configurator/ui/assistant/form/registry/use-form-registry.js +1 -0
- package/dist/configurator/ui/assistant/form-elements/FormCard.d.ts +9 -0
- package/dist/configurator/ui/assistant/form-elements/FormCard.js +1 -0
- package/dist/configurator/ui/assistant/form-elements/FormConfirm.d.ts +9 -0
- package/dist/configurator/ui/assistant/form-elements/FormConfirm.js +1 -0
- package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +6 -0
- package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -0
- package/dist/configurator/ui/assistant/form-elements/FormNumber.d.ts +9 -0
- package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -0
- package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +6 -0
- package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -0
- package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +6 -0
- package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -0
- package/dist/configurator/ui/assistant/form-elements/FormSwatch.d.ts +10 -0
- package/dist/configurator/ui/assistant/form-elements/FormSwatch.js +1 -0
- package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +6 -0
- package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -0
- package/dist/configurator/ui/assistant/form-elements/clamp-form-number.d.ts +10 -0
- package/dist/configurator/ui/assistant/form-elements/clamp-form-number.js +1 -0
- package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +38 -0
- package/dist/configurator/ui/assistant/form-elements/form-element-props.js +1 -0
- package/dist/configurator/ui/assistant/form-elements/index.d.ts +9 -0
- package/dist/configurator/ui/assistant/form-elements/index.js +1 -0
- package/dist/configurator/ui/assistant/index.d.ts +3 -0
- package/dist/configurator/ui/assistant/index.js +1 -1
- package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +16 -0
- package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -0
- package/dist/configurator/ui/assistant/reference-link/assistant-link-target.d.ts +34 -0
- package/dist/configurator/ui/assistant/reference-link/assistant-link-target.js +1 -0
- package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.d.ts +25 -0
- package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.js +1 -0
- package/dist/configurator/ui/assistant/reference-link/index.d.ts +3 -0
- package/dist/configurator/ui/assistant/reference-link/index.js +1 -0
- package/dist/configurator/ui/assistant/reference-link/reference-styles.d.ts +12 -0
- package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -0
- package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.d.ts +8 -0
- package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.js +1 -0
- package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +9 -0
- package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -0
- package/dist/configurator/ui/assistant/resource-image/index.d.ts +3 -0
- package/dist/configurator/ui/assistant/resource-image/index.js +1 -0
- package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +2 -0
- package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -0
- package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.d.ts +5 -0
- package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.js +1 -0
- package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +9 -0
- package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -0
- package/dist/configurator/ui/assistant/screenshots/index.d.ts +2 -0
- package/dist/configurator/ui/assistant/screenshots/index.js +1 -0
- package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +14 -0
- package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -0
- package/dist/configurator/ui/assistant/streamed-markdown.d.ts +4 -2
- package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
- package/dist/configurator/ui/assistant/thread-items.d.ts +8 -1
- package/dist/configurator/ui/assistant/thread-items.js +1 -1
- package/dist/configurator/ui/assistant/tool-chip.js +1 -1
- package/dist/configurator/ui/assistant/use-follow-stream.js +1 -1
- package/dist/configurator/ui/configurator-layout/slots/canvas/LayoutCanvas.js +1 -1
- package/dist/configurator/ui/configurator-layout/slots/canvas/SharedCanvas.js +1 -1
- package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.d.ts +1 -1
- package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.js +1 -1
- package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
- package/dist/configurator/ui/configurator-layout/slots/services/Services.js +1 -1
- package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.d.ts +1 -1
- package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.js +1 -1
- package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.d.ts +5 -0
- package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.js +1 -0
- package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
- package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +1 -1
- package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -1
- package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +1 -1
- package/dist/configurator/ui/index.d.ts +1 -0
- package/dist/configurator/ui/index.js +1 -1
- package/dist/configurator/ui/legacy/layout/common/CommonFinalizeButton.js +1 -1
- package/dist/configurator/ui/legacy/layout/common/CommonSummaryButton.js +1 -1
- package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
- package/dist/configurator/ui/legacy/layout/common/ReactiveInterfaceLayout.js +1 -1
- package/dist/configurator/ui/legacy/layout/common/ResponsiveFinalizeButton.js +1 -1
- package/dist/configurator/ui/legacy/layout/common/SummaryReadLayout.js +1 -1
- package/dist/configurator/ui/legacy/layout/simple/SimpleOwnerLayout.js +1 -1
- package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
- package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
- package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
- package/dist/configurator/ui/legacy/layout/steps/StepsSidebarFooter.js +1 -1
- package/dist/configurator/ui/legacy/layout/tabs/TabsOwnerLayout.js +1 -1
- package/dist/configurator/ui/legacy/toolbar/common/DimensionUnitSelector.js +1 -1
- package/dist/configurator/ui/legacy/toolbar/common/MeasurementsIndicatorsSwitch.js +1 -1
- package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/FullscreenToolbarAction.js +1 -1
- package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/HelpToolbarAction.js +1 -1
- package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/MeasurementsToolbarAction.js +1 -1
- package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/UndoRedoToolbarGroup.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/AppLoader.d.ts +0 -7
- package/dist/configurator/ui/phoenix-layout-elements/AppLoader.js +2 -6
- package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/EnterFullscreenToolbarButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/ExitFullscreenToolbarButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/HelpToolbarButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/LanguageMenuAction.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/LanguageToolbarButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.d.ts +1 -0
- package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.d.ts +1 -0
- package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/MeasurementsMenuAction.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/MeasurementsToolbarButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/RedoToolbarButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/ShareToolbarButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/UndoToolbarButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/header/common/horizontal-tabs/DesktopHorizontalTabs.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.d.ts +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -8
- package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/index.d.ts +8 -1
- package/dist/configurator/ui/phoenix-layout-elements/index.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/measurements/DimensionUnitSelector.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/measurements/MeasurementsIndicatorsSwitch.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/share/ShareModal.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/share/use-share.d.ts +7 -8
- package/dist/configurator/ui/phoenix-layout-elements/share/use-share.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/BasicFinalizeButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/CustomFinalizeButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/EnterSummaryButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/FinalizeActions.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/NextStepButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
- package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
- package/dist/configurator/ui/preset-layout/PresetUi.d.ts +4 -2
- package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
- package/dist/configurator/ui/preset-layout/index.d.ts +6 -1
- package/dist/configurator/ui/preset-layout/index.js +1 -1
- package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.d.ts +10 -0
- package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -0
- package/dist/configurator/ui/save-message-snackbars/index.d.ts +1 -0
- package/dist/configurator/ui/save-message-snackbars/index.js +1 -0
- package/dist/docs/complex-use-cases/focus-mode.mdx +2 -0
- package/dist/docs/controls/select-child-entity/cardselect.mdx +1 -0
- package/dist/docs/fabs/basic.mdx +6 -2
- package/dist/docs/index.json +95 -1
- package/dist/docs/integrations/webcomponent-api/basics.mdx +2 -0
- package/dist/docs/layouts/custom-layout.mdx +1473 -280
- package/dist/docs/layouts/gallery/ardent-compressor.mdx +3516 -0
- package/dist/docs/layouts/gallery/corvid-drone.mdx +3428 -0
- package/dist/docs/layouts/gallery/fenwick-window.mdx +2803 -0
- package/dist/docs/layouts/gallery/ferrule-bar-station.mdx +6567 -0
- package/dist/docs/layouts/gallery/kestrel-kettle.mdx +1858 -0
- package/dist/docs/layouts/gallery/nightjar-guitar.mdx +3683 -0
- package/dist/docs/layouts/gallery/sunfold-solar.mdx +2683 -0
- package/dist/docs/layouts/gallery/tidepool-aquascape.mdx +5031 -0
- package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
- package/dist/docs/other-features/error-5xx.mdx +1 -1
- package/dist/docs/other-features/navigation-hotspot.mdx +2 -0
- package/dist/docs/other-features/not-found-404.mdx +1 -1
- package/dist/docs/phoenix/clerk-sign-in.mdx +1 -1
- package/dist/docs/phoenix/components.mdx +6 -0
- package/dist/docs/phoenix/configurator-interface.mdx +223 -59
- package/dist/docs/phoenix/deployments.mdx +2 -6
- package/dist/docs/phoenix/domain-model.mdx +2 -0
- package/dist/docs/phoenix/finalization.mdx +1 -1
- package/dist/docs/phoenix/getting-started.mdx +6 -3
- package/dist/docs/phoenix/layout-slots.mdx +23 -23
- package/dist/docs/phoenix/localization.mdx +10 -6
- package/dist/docs/phoenix/migration-guide.mdx +24 -11
- package/dist/docs/phoenix/phoenix-cli.mdx +65 -20
- package/dist/docs/phoenix/project-structure.mdx +66 -32
- package/dist/docs/phoenix/quickstart.mdx +7 -7
- package/dist/docs/phoenix/sdk-builder-workflow.mdx +8 -8
- package/dist/docs/phoenix/sessions-and-access.mdx +2 -0
- package/dist/docs/phoenix/testing.mdx +8 -0
- package/dist/docs/phoenix/webhooks.mdx +4 -4
- package/dist/docs/selection-and-highlight/hotspots.mdx +2 -0
- package/dist/domain/application/assistant/assistant-manifest.d.ts +16 -1
- package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +8 -1
- package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
- package/dist/domain/application/assistant/form/assistant-form-element-name.d.ts +11 -0
- package/dist/domain/application/assistant/form/assistant-form-element-name.js +8 -0
- package/dist/domain/application/assistant/form/assistant-form-elements.d.ts +174 -0
- package/dist/domain/application/assistant/form/assistant-form-elements.js +1 -0
- package/dist/domain/application/assistant/form/assistant-resource-path.d.ts +10 -0
- package/dist/domain/application/assistant/form/assistant-resource-path.js +1 -0
- package/dist/domain/application/assistant/form/index.d.ts +4 -0
- package/dist/domain/application/assistant/form/index.js +1 -0
- package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
- package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
- package/dist/domain/application/assistant/index.d.ts +2 -1
- package/dist/domain/application/assistant/index.js +1 -1
- package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
- package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +2 -0
- package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
- package/dist/domain/application/assistant-recipe-groups.d.ts +3 -1
- package/dist/domain/application/standard-properties.js +1 -1
- package/dist/domain/application/web-component-property.d.ts +3 -1
- package/dist/domain/application/web-component-property.js +1 -1
- package/dist/domain/available-system-components.d.ts +1 -1
- package/dist/domain/available-system-components.js +1 -1
- package/dist/domain/core/schema/extended-schema-validator.js +1 -1
- package/dist/domain/domain-builder.d.ts +9 -3
- package/dist/domain/domain-builder.js +1 -1
- package/dist/domain/domain-context/store-system/store-system.d.ts +5 -0
- package/dist/domain/domain-context/store-system/store-system.js +1 -1
- package/dist/domain/domain-runtime/domain-context/selectors.d.ts +1 -0
- package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
- package/dist/domain/domain-runtime/domain-runtime.d.ts +26 -0
- package/dist/domain/domain-runtime/domain-runtime.js +1 -1
- package/dist/domain/domain-runtime/environment/types.d.ts +1 -1
- package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +2 -0
- package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -1
- package/dist/domain/domain-runtime/index.d.ts +1 -1
- package/dist/domain/domain-runtime/index.js +1 -1
- package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
- package/dist/domain/domain-runtime/spec/index.js +1 -1
- package/dist/domain/domain-runtime/spec/initialize.js +1 -1
- package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +27 -12
- package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -1
- package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.d.ts +12 -0
- package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +1 -0
- package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +3 -1
- package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -1
- package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.d.ts +23 -0
- package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.js +1 -0
- package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +3 -4
- package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -1
- package/dist/domain/domain-runtime/spec/selectors.d.ts +3 -1
- package/dist/domain/domain-runtime/spec/selectors.js +1 -1
- package/dist/domain/domain-runtime/web-component/actions.d.ts +3 -0
- package/dist/domain/domain-runtime/web-component/actions.js +1 -1
- package/dist/domain/domain-runtime/web-component/initialize.d.ts +1 -0
- package/dist/domain/domain-runtime/web-component/initialize.js +1 -1
- package/dist/domain/domain-runtime/web-component/selectors.d.ts +2 -0
- package/dist/domain/domain-runtime/web-component/selectors.js +1 -1
- package/dist/domain/domain-runtime/web-component/types.d.ts +6 -3
- package/dist/domain/extensions/export-images/agent-screenshot.d.ts +24 -0
- package/dist/domain/extensions/export-images/agent-screenshot.js +1 -0
- package/dist/domain/extensions/{client-side-image.d.ts → export-images/client-side-image.d.ts} +2 -2
- package/dist/domain/extensions/export-images/client-side-image.js +1 -0
- package/dist/domain/extensions/export-images/index.d.ts +3 -0
- package/dist/domain/extensions/export-images/index.js +1 -0
- package/dist/domain/extensions/{save-template-thumbnail.d.ts → export-images/save-template-thumbnail.d.ts} +2 -2
- package/dist/domain/extensions/export-images/save-template-thumbnail.js +1 -0
- package/dist/domain/extensions/index.d.ts +1 -2
- package/dist/domain/extensions/index.js +1 -1
- package/dist/domain/mocks/create-mock-domain-runtime.d.ts +9 -0
- package/dist/domain/system-components/child-entity-selection.js +1 -1
- package/dist/domain/system-components/common/scene-entity-control-schema.d.ts +3 -0
- package/dist/domain/system-components/common/scene-entity-control-schema.js +1 -1
- package/dist/editor/Editor.d.ts +7 -0
- package/dist/editor/Editor.js +1 -1
- package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
- package/dist/editor/domain-editors/apply-spec-update.d.ts +10 -2
- package/dist/editor/domain-editors/apply-spec-update.js +1 -1
- package/dist/editor/domain-editors/use-implementation-files.d.ts +6 -14
- package/dist/editor/domain-editors/use-implementation-files.js +1 -1
- package/dist/editor/mocks/CreateMockYaml.js +2 -2
- package/dist/editor/mocks/EditorMockContext.d.ts +2 -0
- package/dist/editor/mocks/EditorMockContext.js +1 -1
- package/dist/editor/screenshot/ScreenshotHandler.js +1 -1
- package/dist/globals/index.d.ts +2 -0
- package/dist/i18n/locales/cs/messages.js +1 -1
- package/dist/i18n/locales/da/messages.js +1 -1
- package/dist/i18n/locales/de/messages.js +1 -1
- package/dist/i18n/locales/de-AT/messages.js +1 -1
- package/dist/i18n/locales/en/messages.js +1 -1
- package/dist/i18n/locales/en-AU/messages.js +1 -1
- package/dist/i18n/locales/en-GB/messages.js +1 -1
- package/dist/i18n/locales/es/messages.js +1 -1
- package/dist/i18n/locales/fr/messages.js +1 -1
- package/dist/i18n/locales/hu/messages.js +1 -1
- package/dist/i18n/locales/it/messages.js +1 -1
- package/dist/i18n/locales/nl/messages.js +1 -1
- package/dist/i18n/locales/pl/messages.js +1 -1
- package/dist/i18n/locales/pt/messages.js +1 -1
- package/dist/i18n/locales/ro/messages.js +1 -1
- package/dist/i18n/locales/sk/messages.js +1 -1
- package/dist/i18n/locales/tr/messages.js +1 -1
- package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
- package/dist/legacy/domain-cli/utils/cache.js +1 -1
- package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +95 -80
- package/dist/legacy/domain-spec/spec/domain-spec.js +1 -1
- package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
- package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
- package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
- package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +11 -5
- package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +10 -11
- package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +9 -10
- package/dist/phoenix/application-spec/application-spec-builder.d.ts +0 -2
- package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
- package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +0 -2
- package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
- package/dist/phoenix/application-spec/generate-application-spec-story.js +2 -2
- package/dist/phoenix/application-spec/generate-project-files.d.ts +0 -2
- package/dist/phoenix/application-spec/project-files.js +1 -1
- package/dist/phoenix/bin.d.ts +2 -0
- package/dist/phoenix/bin.js +2 -0
- package/dist/phoenix/check-configs/built-in-eslint-config.d.ts +9 -0
- package/dist/phoenix/check-configs/built-in-eslint-config.js +1 -0
- package/dist/phoenix/check-configs/eslint-config.d.ts +10 -0
- package/dist/phoenix/check-configs/eslint-config.js +1 -0
- package/dist/phoenix/check-configs/index.d.ts +8 -0
- package/dist/phoenix/check-configs/index.js +1 -0
- package/dist/phoenix/check-configs/typescript-project.d.ts +5 -0
- package/dist/phoenix/check-configs/typescript-project.js +1 -0
- package/dist/phoenix/cli.d.ts +0 -1
- package/dist/phoenix/cli.js +1 -2
- package/dist/phoenix/commands/build.js +1 -1
- package/dist/phoenix/commands/check.js +1 -1
- package/dist/phoenix/commands/clean.js +1 -1
- package/dist/phoenix/commands/deploy.js +2 -2
- package/dist/phoenix/commands/deps/deps.d.ts +73 -0
- package/dist/phoenix/commands/deps/deps.js +3 -0
- package/dist/phoenix/commands/deps/index.d.ts +1 -0
- package/dist/phoenix/commands/deps/index.js +1 -0
- package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
- package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
- package/dist/phoenix/commands/dev.js +5 -5
- package/dist/phoenix/commands/fix.js +1 -1
- package/dist/phoenix/commands/index.d.ts +1 -0
- package/dist/phoenix/commands/index.js +1 -1
- package/dist/phoenix/commands/init.d.ts +17 -5
- package/dist/phoenix/commands/init.js +1 -1
- package/dist/phoenix/commands/link.js +1 -1
- package/dist/phoenix/commands/prettier.js +1 -1
- package/dist/phoenix/commands/sync.js +1 -1
- package/dist/phoenix/commands/unlink.js +1 -1
- package/dist/phoenix/services/application-spec-project-watcher.d.ts +2 -2
- package/dist/phoenix/services/application-spec-project-watcher.js +2 -2
- package/dist/phoenix/services/lingui.d.ts +8 -0
- package/dist/phoenix/services/lingui.js +1 -1
- package/dist/phoenix/services/swc.js +1 -1
- package/dist/phoenix/services/vite-config.js +1 -1
- package/dist/phoenix/utils/index.d.ts +4 -2
- package/dist/phoenix/utils/index.js +1 -1
- package/dist/phoenix/utils/node-version/index.d.ts +1 -0
- package/dist/phoenix/utils/node-version/index.js +1 -0
- package/dist/phoenix/utils/node-version/supported-node-version.d.ts +12 -0
- package/dist/phoenix/utils/node-version/supported-node-version.js +4 -0
- package/dist/phoenix/utils/package-info.d.ts +0 -9
- package/dist/phoenix/utils/package-info.js +1 -1
- package/dist/phoenix/utils/package-manager/index.d.ts +2 -0
- package/dist/phoenix/utils/package-manager/index.js +1 -0
- package/dist/phoenix/utils/package-manager/package-manager-commands.d.ts +19 -0
- package/dist/phoenix/utils/package-manager/package-manager-commands.js +1 -0
- package/dist/phoenix/utils/package-manager/pnpm-project.d.ts +9 -0
- package/dist/phoenix/utils/package-manager/pnpm-project.js +1 -0
- package/dist/phoenix/utils/run-command.d.ts +11 -0
- package/dist/phoenix/utils/run-command.js +1 -1
- package/dist/phoenix/utils/sdk-tool/index.d.ts +1 -0
- package/dist/phoenix/utils/sdk-tool/index.js +1 -0
- package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.d.ts +15 -0
- package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.js +1 -0
- package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.d.ts +4 -0
- package/dist/react-sdk/application-runtime/common-services/analytics/index.d.ts +1 -0
- package/dist/react-sdk/application-runtime/common-services/analytics/index.js +1 -1
- package/dist/react-sdk/application-runtime/hooks/index.d.ts +2 -0
- package/dist/react-sdk/application-runtime/hooks/index.js +1 -1
- package/dist/react-sdk/application-runtime/hooks/loading/index.d.ts +5 -0
- package/dist/react-sdk/application-runtime/hooks/loading/index.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/loading/loader-host-context.d.ts +11 -0
- package/dist/react-sdk/application-runtime/hooks/loading/loader-host-context.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-is-awaiting-loading-phase.d.ts +8 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-is-awaiting-loading-phase.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-is-loader-hosted.d.ts +7 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-is-loader-hosted.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-loading-actions.d.ts +9 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-loading-actions.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-loading-application.d.ts +24 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-loading-application.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/index.d.ts +3 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/index.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.d.ts +9 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.d.ts +26 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.d.ts +10 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.d.ts +24 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +5 -0
- package/dist/react-sdk/application-runtime/hooks/use-access-service.js +1 -1
- package/dist/react-sdk/application-runtime/hooks/use-phoenix-element-slots.d.ts +2 -1
- package/dist/react-sdk/application-runtime/hooks/use-web-component-readonly-sync.d.ts +4 -11
- package/dist/react-sdk/application-runtime/hooks/use-web-component-readonly-sync.js +1 -1
- package/dist/react-sdk/application-runtime/hooks/use-web-component.d.ts +5 -0
- package/dist/react-sdk/application-runtime/hooks/use-web-component.js +1 -1
- package/dist/react-sdk/application-runtime/host-properties/actions.d.ts +15 -0
- package/dist/react-sdk/application-runtime/host-properties/actions.js +1 -0
- package/dist/react-sdk/application-runtime/host-properties/connect-host-properties.d.ts +30 -0
- package/dist/react-sdk/application-runtime/host-properties/connect-host-properties.js +1 -0
- package/dist/react-sdk/application-runtime/host-properties/domain-host-properties.d.ts +7 -0
- package/dist/react-sdk/application-runtime/host-properties/domain-host-properties.js +1 -0
- package/dist/react-sdk/application-runtime/host-properties/host-property-descriptors.d.ts +21 -0
- package/dist/react-sdk/application-runtime/host-properties/host-property-descriptors.js +1 -0
- package/dist/react-sdk/application-runtime/host-properties/host-property-scopes.d.ts +42 -0
- package/dist/react-sdk/application-runtime/host-properties/host-property-scopes.js +1 -0
- package/dist/react-sdk/application-runtime/host-properties/index.d.ts +8 -0
- package/dist/react-sdk/application-runtime/host-properties/index.js +1 -0
- package/dist/react-sdk/application-runtime/host-properties/initialize.d.ts +7 -0
- package/dist/react-sdk/application-runtime/host-properties/initialize.js +1 -0
- package/dist/react-sdk/application-runtime/host-properties/selectors.d.ts +54 -0
- package/dist/react-sdk/application-runtime/host-properties/selectors.js +1 -0
- package/dist/react-sdk/application-runtime/host-properties/types.d.ts +18 -0
- package/dist/react-sdk/application-runtime/host-properties/types.js +1 -0
- package/dist/react-sdk/application-runtime/index.d.ts +3 -0
- package/dist/react-sdk/application-runtime/integration/initialize.d.ts +7 -6
- package/dist/react-sdk/application-runtime/integration/initialize.js +1 -1
- package/dist/react-sdk/application-runtime/integration/selectors.d.ts +11 -2
- package/dist/react-sdk/application-runtime/integration/selectors.js +1 -1
- package/dist/react-sdk/application-runtime/integration/types.d.ts +5 -2
- package/dist/react-sdk/application-runtime/loading/actions.d.ts +45 -0
- package/dist/react-sdk/application-runtime/loading/actions.js +1 -0
- package/dist/react-sdk/application-runtime/loading/index.d.ts +4 -0
- package/dist/react-sdk/application-runtime/loading/index.js +1 -0
- package/dist/react-sdk/application-runtime/loading/initialize.d.ts +3 -0
- package/dist/react-sdk/application-runtime/loading/initialize.js +1 -0
- package/dist/react-sdk/application-runtime/loading/selectors.d.ts +18 -0
- package/dist/react-sdk/application-runtime/loading/selectors.js +1 -0
- package/dist/react-sdk/application-runtime/loading/types.d.ts +59 -0
- package/dist/react-sdk/application-runtime/loading/types.js +1 -0
- package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
- package/dist/react-sdk/application-runtime/provider/ApplicationRuntime.d.ts +6 -0
- package/dist/react-sdk/application-runtime/provider/ApplicationRuntime.js +1 -1
- package/dist/react-sdk/application-runtime/provider/ApplicationType.d.ts +7 -0
- package/dist/react-sdk/application-runtime/provider/ApplicationType.js +1 -1
- package/dist/react-sdk/application-runtime/responsive/actions.d.ts +47 -0
- package/dist/react-sdk/application-runtime/responsive/actions.js +1 -0
- package/dist/react-sdk/application-runtime/responsive/index.d.ts +4 -0
- package/dist/react-sdk/application-runtime/responsive/index.js +1 -0
- package/dist/react-sdk/application-runtime/responsive/initialize.d.ts +3 -0
- package/dist/react-sdk/application-runtime/responsive/initialize.js +1 -0
- package/dist/react-sdk/application-runtime/responsive/selectors.d.ts +20 -0
- package/dist/react-sdk/application-runtime/responsive/selectors.js +1 -0
- package/dist/react-sdk/application-runtime/responsive/types.d.ts +104 -0
- package/dist/react-sdk/application-runtime/responsive/types.js +1 -0
- package/dist/react-sdk/application-runtime/routing/routing-service.d.ts +34 -2
- package/dist/react-sdk/application-runtime/routing/routing-service.js +1 -1
- package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +296 -4
- package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
- package/dist/react-sdk/domain-application-context/BackendDataProvider.js +1 -1
- package/dist/react-sdk/domain-application-context/DomainLifecycleBoundary.js +1 -1
- package/dist/react-sdk/domain-application-context/FrontendDataProvider.js +1 -1
- package/dist/react-sdk/domain-application-context/PublishedDataProvider.js +1 -1
- package/dist/react-sdk/domain-context/common-hooks/index.d.ts +9 -0
- package/dist/react-sdk/domain-context/common-hooks/index.js +1 -0
- package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.d.ts +23 -0
- package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.js +1 -0
- package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +15 -4
- package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -1
- package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +1 -0
- package/dist/react-sdk/domain-context/component-hooks/index.d.ts +1 -0
- package/dist/react-sdk/domain-context/component-hooks/index.js +1 -0
- package/dist/react-sdk/domain-context/component-hooks/use-component.js +1 -1
- package/dist/react-sdk/domain-context/entity-hooks/use-domain-entity-state.js +1 -1
- package/dist/react-sdk/domain-context/entity-hooks/use-entity-price.js +1 -1
- package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-id.js +1 -1
- package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-state.js +1 -1
- package/dist/react-sdk/domain-context/index.d.ts +7 -0
- package/dist/react-sdk/domain-context/index.js +1 -1
- package/dist/react-sdk/domain-context/system-hooks/composition-hooks.js +1 -1
- package/dist/react-sdk/domain-context/system-hooks/dimension-hooks.js +1 -1
- package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.d.ts +8 -0
- package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.js +1 -0
- package/dist/react-sdk/domain-context/system-hooks/hover-hooks.js +1 -1
- package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.d.ts +24 -0
- package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.js +1 -0
- package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
- package/dist/react-sdk/domain-context/system-hooks/selection-hooks.js +1 -1
- package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.d.ts +32 -0
- package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.js +1 -0
- package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.d.ts +57 -0
- package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.js +1 -0
- package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.d.ts +61 -0
- package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.js +1 -0
- package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.d.ts +20 -0
- package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -0
- package/dist/react-sdk/handlers/FinalizeActionRunner.d.ts +13 -0
- package/dist/react-sdk/handlers/FinalizeActionRunner.js +1 -0
- package/dist/react-sdk/handlers/FinalizeActionsHost.d.ts +10 -0
- package/dist/react-sdk/handlers/FinalizeActionsHost.js +1 -0
- package/dist/react-sdk/handlers/FinalizeActionsProvider.d.ts +11 -0
- package/dist/react-sdk/handlers/FinalizeActionsProvider.js +1 -0
- package/dist/react-sdk/handlers/finalize-actions-context.d.ts +6 -0
- package/dist/react-sdk/handlers/finalize-actions-context.js +1 -0
- package/dist/react-sdk/handlers/finalize-actions-store.d.ts +23 -0
- package/dist/react-sdk/handlers/finalize-actions-store.js +1 -0
- package/dist/react-sdk/handlers/index.d.ts +6 -0
- package/dist/react-sdk/handlers/index.js +1 -1
- package/dist/{configurator/common → react-sdk/handlers}/use-finalize-action.d.ts +3 -2
- package/dist/react-sdk/handlers/use-finalize-action.js +1 -0
- package/dist/react-sdk/handlers/use-finalize-actions.d.ts +53 -0
- package/dist/react-sdk/handlers/use-finalize-actions.js +1 -0
- package/dist/react-sdk/index.d.ts +2 -0
- package/dist/react-sdk/index.js +1 -1
- package/dist/react-sdk/loading-state/LoaderHost.d.ts +20 -0
- package/dist/react-sdk/loading-state/LoaderHost.js +1 -0
- package/dist/react-sdk/loading-state/built-in-loading-phase.d.ts +9 -0
- package/dist/react-sdk/loading-state/built-in-loading-phase.js +1 -0
- package/dist/react-sdk/loading-state/create-app-loader.d.ts +18 -0
- package/dist/react-sdk/loading-state/create-app-loader.js +1 -0
- package/dist/react-sdk/loading-state/index.d.ts +4 -2
- package/dist/react-sdk/loading-state/index.js +1 -1
- package/dist/react-sdk/loading-state/{LoadingStateProvider.d.ts → loading-state-hooks.d.ts} +3 -12
- package/dist/react-sdk/loading-state/loading-state-hooks.js +1 -0
- package/dist/react-sdk/page-elements/ConfigurationNotFoundPagePropsProvider.d.ts +17 -0
- package/dist/react-sdk/page-elements/ConfigurationNotFoundPagePropsProvider.js +1 -0
- package/dist/react-sdk/page-elements/ConfiguratorErrorPagePropsProvider.d.ts +17 -0
- package/dist/react-sdk/page-elements/ConfiguratorErrorPagePropsProvider.js +1 -0
- package/dist/react-sdk/page-elements/configurator-error-page-props.d.ts +20 -0
- package/dist/react-sdk/page-elements/configurator-error-page-props.js +1 -0
- package/dist/react-sdk/page-elements/create-configuration-not-found-page.d.ts +15 -0
- package/dist/react-sdk/page-elements/create-configuration-not-found-page.js +1 -0
- package/dist/react-sdk/page-elements/create-configurator-error-page.d.ts +14 -0
- package/dist/react-sdk/page-elements/create-configurator-error-page.js +1 -0
- package/dist/react-sdk/page-elements/create-preset-ui.d.ts +9 -0
- package/dist/react-sdk/page-elements/create-preset-ui.js +1 -0
- package/dist/react-sdk/page-elements/index.d.ts +6 -0
- package/dist/react-sdk/page-elements/index.js +1 -0
- package/dist/react-sdk/scene-control-elements/AddEntityFabElement.d.ts +36 -0
- package/dist/react-sdk/scene-control-elements/AddEntityFabElement.js +1 -0
- package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.d.ts +44 -0
- package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.js +1 -0
- package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.d.ts +38 -0
- package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.js +1 -0
- package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.d.ts +30 -0
- package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.js +1 -0
- package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.d.ts +30 -0
- package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.js +1 -0
- package/dist/react-sdk/scene-control-elements/create-add-entity-fab.d.ts +9 -0
- package/dist/react-sdk/scene-control-elements/create-add-entity-fab.js +1 -0
- package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.d.ts +9 -0
- package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.js +1 -0
- package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.d.ts +10 -0
- package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.js +1 -0
- package/dist/react-sdk/scene-control-elements/create-selection-hotspot.d.ts +9 -0
- package/dist/react-sdk/scene-control-elements/create-selection-hotspot.js +1 -0
- package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.d.ts +9 -0
- package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.js +1 -0
- package/dist/react-sdk/scene-control-elements/index.d.ts +11 -0
- package/dist/react-sdk/scene-control-elements/index.js +1 -0
- package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.d.ts +5 -0
- package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.js +1 -0
- package/dist/react-sdk/session/NotAuthenticatedPage.d.ts +4 -0
- package/dist/react-sdk/session/NotAuthenticatedPage.js +1 -1
- package/dist/react-sdk/session/SessionServiceProvider.js +1 -1
- package/dist/react-sdk/web-component/create-web-component.js +1 -1
- package/dist/react-sdk/web-component/god-mode/god-mode-registry.d.ts +30 -0
- package/dist/react-sdk/web-component/god-mode/god-mode-registry.js +1 -0
- package/dist/react-sdk/web-component/god-mode/index.d.ts +1 -0
- package/dist/react-sdk/web-component/god-mode/index.js +1 -0
- package/dist/ui-sdk/icons/__generated/Lightbulb.d.ts +3 -0
- package/dist/ui-sdk/icons/__generated/Lightbulb.js +1 -0
- package/dist/ui-sdk/icons/__generated/XCircle.d.ts +3 -0
- package/dist/ui-sdk/icons/__generated/XCircle.js +1 -0
- package/dist/ui-sdk/icons/__generated/index.d.ts +4 -0
- package/dist/ui-sdk/icons/__generated/index.js +1 -1
- package/dist/ui-sdk/icons/icons-registry.js +1 -1
- package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +9 -0
- package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.js +1 -1
- package/dist/ui-sdk/responsive-application/index.d.ts +1 -0
- package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +59 -0
- package/dist/ui-sdk/responsive-application/responsive-state-store.js +1 -0
- package/dist/ui-sdk/responsive-application/use-store-responsive-info.d.ts +7 -0
- package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -0
- package/dist/ui-sdk/theme/types.d.ts +5 -1
- package/package.json +58 -36
- package/schema/domain-spec.json +226 -8
- package/dist/application-spec/generate-application/code/templates/nvmrc.d.ts +0 -1
- package/dist/application-spec/generate-application/code/templates/nvmrc.js +0 -2
- package/dist/application-spec/generate-application/code/templates/package-json.d.ts +0 -10
- package/dist/application-spec/generate-application/code/templates/package-json.js +0 -1
- package/dist/configurator/common/use-finalize-action.js +0 -1
- package/dist/configurator/ui/assistant/entity-link/entity-link-target.d.ts +0 -5
- package/dist/configurator/ui/assistant/entity-link/entity-link-target.js +0 -1
- package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.d.ts +0 -4
- package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.js +0 -1
- package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.d.ts +0 -4
- package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.js +0 -1
- package/dist/domain/extensions/client-side-image.js +0 -1
- package/dist/domain/extensions/save-template-thumbnail.js +0 -1
- package/dist/phoenix/commands/generate-project-files.d.ts +0 -6
- package/dist/phoenix/commands/generate-project-files.js +0 -1
- package/dist/react-sdk/application-runtime/runtime/god-mode.d.ts +0 -19
- package/dist/react-sdk/application-runtime/runtime/god-mode.js +0 -1
- package/dist/react-sdk/loading-state/LoadingStateProvider.js +0 -1
- package/dist/react-sdk/loading-state/loading-state-manager.d.ts +0 -32
- package/dist/react-sdk/loading-state/loading-state-manager.js +0 -1
- /package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.js +0 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { MemoEvalPlan } from '../../parse-application-files/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* The id under which the generated `.phoenix/spec-code.ts` holds one piece of code written in YAML,
|
|
4
|
+
* and under which the runtime looks it up. Ids are unique within one domain; the configurator and
|
|
5
|
+
* the admin domain each have their own map.
|
|
6
|
+
*
|
|
7
|
+
* An id is computed from what the runtime spec already carries, by the functions of this file, on
|
|
8
|
+
* both sides: the generator that writes the closures and the runtime that reads them. It names the
|
|
9
|
+
* entity or alias that owns the code, the expression or the component instance, the position of the
|
|
10
|
+
* code inside that one value, and a hash of the code's text. So it stays the same when anything
|
|
11
|
+
* else in the spec changes, and it changes whenever the code itself changes: a module generated from
|
|
12
|
+
* another version of the spec does not hold it, and the runtime compiles the text instead of running
|
|
13
|
+
* the wrong closure.
|
|
14
|
+
*/
|
|
15
|
+
export type SpecCodeId = string;
|
|
16
|
+
/**
|
|
17
|
+
* The part of an id that names a value expression: `KitchenRange.$maxWidth`. Its constant, when it
|
|
18
|
+
* is one, shares the plan and so the ids.
|
|
19
|
+
*/
|
|
20
|
+
export declare const specCodeExpressionKey: (typeOrAlias: string, expressionName: string) => string;
|
|
21
|
+
/**
|
|
22
|
+
* The part of an id that names a component instance: `KitchenRange.main:detail`. The component
|
|
23
|
+
* belongs to it because an instance name is unique per component, not per entity: one entity can
|
|
24
|
+
* attach `main` of several components.
|
|
25
|
+
*/
|
|
26
|
+
export declare const specCodeComponentKey: (typeOrAlias: string, instanceName: string, componentName: string) => string;
|
|
27
|
+
/**
|
|
28
|
+
* The id of each dependency of a plan, by dependency index: `<key>#<n>@<hash>` for the `n`-th
|
|
29
|
+
* `$eval` dependency, `undefined` for a read. `key` is the expression or component key of the value
|
|
30
|
+
* the plan builds. The ordinal counts the plan's `$eval` dependencies only, so a `$read` added to
|
|
31
|
+
* the same value does not renumber them.
|
|
32
|
+
*/
|
|
33
|
+
export declare const specCodeEvalIds: (plan: MemoEvalPlan, key: string) => ReadonlyArray<SpecCodeId | undefined>;
|
|
34
|
+
/**
|
|
35
|
+
* Id of the `$eval` of one filter criterion of a component instance:
|
|
36
|
+
* `KitchenRange.label:textValue#filter0.active@<hash>`. `componentKey` comes from
|
|
37
|
+
* {@link specCodeComponentKey}; `branch` is the index of the filter among the `$or` alternatives,
|
|
38
|
+
* 0 when the filter has none; `code` is the criterion's code.
|
|
39
|
+
*/
|
|
40
|
+
export declare const specCodeFilterId: (componentKey: string, branch: number, criterion: string, code: string) => SpecCodeId;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let e=e=>{let t=e.trim(),o=0x811c9dc5;for(let e=0;e<t.length;e++)o^=t.charCodeAt(e),o=Math.imul(o,0x1000193)>>>0;return o.toString(16).padStart(8,"0")};export const specCodeExpressionKey=(e,t)=>`${e}.${t}`;export const specCodeComponentKey=(e,t,o)=>`${e}.${t}:${o}`;export const specCodeEvalIds=(t,o)=>{let r=0;return t.deps.map(t=>"eval"===t.kind?`${o}#${r++}@${e(t.code)}`:void 0)};export const specCodeFilterId=(t,o,r,d)=>`${t}#filter${o}.${r}@${e(d)}`;
|
|
@@ -70,6 +70,34 @@ export type CategorizedFiles = Branded<'CategorizedFiles', {
|
|
|
70
70
|
readonly mockTemplatesChanged: boolean;
|
|
71
71
|
readonly projectFiles: readonly CategorizedFile[];
|
|
72
72
|
readonly projectFilesChanged: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* One-time migration: true only on a checkout's first sync with an SDK that contains this field;
|
|
75
|
+
* delete it once projects have synced with such an SDK.
|
|
76
|
+
*
|
|
77
|
+
* Whether the project's root `tsconfig.json` is the full file earlier SDK versions generated on
|
|
78
|
+
* every sync, before the TypeScript settings moved to `.phoenix/tsconfig.json`. Generation reads
|
|
79
|
+
* it to replace that file with the one-line `tsconfig.json` that extends `.phoenix/tsconfig.json`;
|
|
80
|
+
* any other root `tsconfig.json` is the project's own and is left as it is.
|
|
81
|
+
*/
|
|
82
|
+
readonly hasEarlierGeneratedTsconfig: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* One-time migration: true only on a checkout's first sync with an SDK that contains this field;
|
|
85
|
+
* delete it once projects have synced with such an SDK.
|
|
86
|
+
*
|
|
87
|
+
* Whether the project's root `eslint.config.js` is the file earlier SDK versions generated on
|
|
88
|
+
* every sync, before it became the project's. Generation reads it to replace that file once with
|
|
89
|
+
* the current one; any other root `eslint.config.js` is the project's own and is left as it is.
|
|
90
|
+
*/
|
|
91
|
+
readonly hasEarlierGeneratedEslintConfig: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* One-time migration: true only on a checkout's first sync with an SDK that contains this field;
|
|
94
|
+
* delete it once projects have synced with such an SDK.
|
|
95
|
+
*
|
|
96
|
+
* Whether the project's root `prettier.config.js` is the file earlier SDK versions generated on
|
|
97
|
+
* every sync, before it became the project's. Generation reads it to replace that file once with
|
|
98
|
+
* the current one; any other root `prettier.config.js` is the project's own and is left as it is.
|
|
99
|
+
*/
|
|
100
|
+
readonly hasEarlierGeneratedPrettierConfig: boolean;
|
|
73
101
|
readonly customCode: readonly CategorizedFile[];
|
|
74
102
|
readonly customCodeChanged: boolean;
|
|
75
103
|
readonly envs: Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"lodash-es/isEqual.js";import{Branded as n}from"@salsita-ai/common/utils";import{computeFileDepHashes as s}from"../../caching/index.js";import{DiagnosticCode as o,diagnosticMessages as
|
|
1
|
+
import e from"lodash-es/isEqual.js";import{Branded as n}from"@salsita-ai/common/utils";import{computeFileDepHashes as s}from"../../caching/index.js";import{DiagnosticCode as o,diagnosticMessages as i}from"../../errors/index.js";import{isEarlierGeneratedEslintConfig as t,isEarlierGeneratedPrettierConfig as a}from"./earlier-generated-editor-configs.js";import{isEarlierGeneratedTsconfig as r}from"./earlier-generated-tsconfig.js";import{findWebhookHandlerRegistration as m}from"./module-analysis.js";import{findWebhookSafetyViolation as l}from"./webhook-safety.js";export const buildProjectFileIndex=e=>new Map([...e.spec,...e.expressions,...e.actions,...e.handlers,...e.elements,...e.transformers,...e.components,...e.invariants,...e.migrations,...e.adminMigrations,...e.adminExpressions,...e.adminInvariants,...e.adminComponents,...e.adminElements,...e.webhooks,...e.locales,...e.mockTemplates,...e.projectFiles,...e.customCode].map(e=>[e.file.name,e]));let d=e=>/\/_[^/]+\//.test(e),c=[{path:"spec/",key:"spec"},{path:"src/admin/expressions/",key:"adminExpressions"},{path:"src/admin/invariants/",key:"adminInvariants"},{path:"src/admin/components/",key:"adminComponents"},{path:"src/admin/elements/",key:"adminElements"},{path:"src/admin/migrations/",key:"adminMigrations"},{path:"src/expressions/",key:"expressions"},{path:"src/actions/",key:"actions"},{path:"src/handlers/",key:"handlers"},{path:"src/elements/",key:"elements"},{path:"src/transformers/",key:"transformers"},{path:"src/components/",key:"components"},{path:"src/invariants/",key:"invariants"},{path:"src/migrations/",key:"migrations"},{path:"src/webhooks/",key:"webhooks"},{path:"src/locales/",key:"locales"},{path:"mocks/",key:"mockTemplates"}],p="tsconfig.json",h="eslint.config.js",f="prettier.config.js",g=new Set([".gitignore",p,h,f,"CLAUDE.md",".cursor/rules/phoenix.mdc"]),u=new Set(["migrations","adminMigrations"]),k=c.filter(({path:e,key:n})=>e.startsWith("src/")&&u.has(n)),b=(e,n)=>{let s=e.slice(n.length).split("/");return!(s.length<=1)&&s.slice(0,-1).some(e=>!e.startsWith("_"))},C=/\.(ts|tsx|js|jsx)$/,v=(e,n)=>{if("components"===e||"adminComponents"===e)return n.hasUseWebhookDirective?{membership:"pinned",logSuffix:"webhook ('use webhook' directive)"}:{membership:"frontend",logSuffix:"frontend only (no 'use webhook' directive)"};if("handlers"===e){let e=m(n);return void 0!==e?{membership:"named-handler",logSuffix:`webhook (the ${e} registration)`}:n.hasUseWebhookDirective?{membership:"pinned",logSuffix:"webhook ('use webhook' directive)"}:{membership:"frontend",logSuffix:"frontend only (not a named handler or pin)"}}};export const CategorizedFiles=(m,u,x,y)=>{let E={spec:[],expressions:[],actions:[],handlers:[],elements:[],transformers:[],components:[],invariants:[],migrations:[],adminMigrations:[],adminExpressions:[],adminInvariants:[],adminComponents:[],adminElements:[],webhooks:[],locales:[],mockTemplates:[],projectFiles:[],customCode:[]},j=[];for(let e of m.files){if("text"!==e.kind)continue;if(d(e.name)){E.customCode.push({file:e,category:"customCode"});continue}if(g.has(e.name)){E.projectFiles.push({file:e,category:"projectFiles"});continue}let n=!1;for(let{path:s,key:o}of c)if(e.name.startsWith(s)){E[o].push({file:e,category:o}),n=!0;break}n||j.push(e.name)}for(let e of j)e.startsWith("src/")&&x.error(o.UNKNOWN_SRC_PATH,i.UNKNOWN_SRC_PATH(e));for(let{path:e,key:n}of k)for(let s of E[n])b(s.file.name,e)&&x.error(o.INVALID_SUBDIRECTORY,i.INVALID_SUBDIRECTORY(s.file.name,e));let I=E.webhooks.some(e=>"src/webhooks/index.ts"===e.file.name);if(E.webhooks.length>0&&!I&&x.error(o.MISSING_WEBHOOK_INDEX,i.MISSING_WEBHOOK_INDEX()),x.hasErrors)return;let w=E.projectFiles.find(e=>e.file.name===p),S=void 0!==w&&r(w.file.content),F=E.projectFiles.find(e=>e.file.name===h),_=void 0!==F&&t(F.file.content),M=E.projectFiles.find(e=>e.file.name===f),O=void 0!==M&&a(M.file.content),N=[];for(let e of Object.values(E))for(let n of e)N.push(n.file.name);let A=s(m,N),{analyzer:T,logger:D}=y,W=u.createBuilder("categorizedFiles/moduleAnalysis",{build:e=>{try{return{analysis:T(e.name,e.content)}}catch(e){return{error:e instanceof Error?e.message:String(e)}}},getKey:e=>e.name,compare:(e,n)=>e.content===n.content}),U=new Set,H=e=>{if(!C.test(e.name))return;U.add(e.name);let n=W.build({name:e.name,content:e.content}).output;return void 0!==n.error?void x.error(o.MODULE_ANALYSIS_FAILED,i[o.MODULE_ANALYSIS_FAILED](e.name,n.error)):n.analysis},B={},K={};for(let[e,s]of Object.entries(E)){let o=u.createBuilder(`categorizedFiles/${e}`,{build:e=>e,getKey:e=>e.name,compare:(e,n)=>e.depHash===n.depHash}),i=new Set;B[e]=s.map(e=>{let s=A[e.file.name]??{deps:[],hash:""},{changed:t}=o.build({name:e.file.name,depHash:s.hash});i.add(e.file.name);let a=H(e.file),r=void 0===a?void 0:v(e.category,a);return void 0!==r&&D.debug(`Webhook membership: ${e.file.name} -> ${r.logSuffix}`),n({file:e.file,category:e.category,deps:s.deps,depHash:s.hash,changed:t,analysis:a,webhookMembership:r?.membership})}),K[e]=o.cleanup(i)}W.cleanup(U);let L=(e,n)=>n.some(e=>e.changed)||!0===K[e],R=u.createBuilder("categorizedFiles/envs",{build:e=>e.envs,getKey:()=>"singleton",compare:(n,s)=>e(n.envs,s.envs)}).build({envs:m.envs}),P=n({spec:B.spec,specChanged:L("spec",B.spec),expressions:B.expressions,expressionsChanged:L("expressions",B.expressions),actions:B.actions,actionsChanged:L("actions",B.actions),handlers:B.handlers,handlersChanged:L("handlers",B.handlers),elements:B.elements,elementsChanged:L("elements",B.elements),transformers:B.transformers,transformersChanged:L("transformers",B.transformers),components:B.components,componentsChanged:L("components",B.components),invariants:B.invariants,invariantsChanged:L("invariants",B.invariants),migrations:B.migrations,migrationsChanged:L("migrations",B.migrations),adminMigrations:B.adminMigrations,adminMigrationsChanged:L("adminMigrations",B.adminMigrations),adminExpressions:B.adminExpressions,adminExpressionsChanged:L("adminExpressions",B.adminExpressions),adminInvariants:B.adminInvariants,adminInvariantsChanged:L("adminInvariants",B.adminInvariants),adminComponents:B.adminComponents,adminComponentsChanged:L("adminComponents",B.adminComponents),adminElements:B.adminElements,adminElementsChanged:L("adminElements",B.adminElements),webhooks:B.webhooks,webhooksChanged:L("webhooks",B.webhooks),hasWebhookEntry:I,locales:B.locales,localesChanged:L("locales",B.locales),mockTemplates:B.mockTemplates,mockTemplatesChanged:L("mockTemplates",B.mockTemplates),projectFiles:B.projectFiles,projectFilesChanged:L("projectFiles",B.projectFiles),hasEarlierGeneratedTsconfig:S,hasEarlierGeneratedEslintConfig:_,hasEarlierGeneratedPrettierConfig:O,customCode:B.customCode,customCodeChanged:L("customCode",B.customCode),envs:R.output,envsChanged:R.changed}),$=buildProjectFileIndex(P);for(let e of $.values()){if("pinned"!==e.webhookMembership&&"named-handler"!==e.webhookMembership)continue;let n=l(e,$);void 0!==n&&x.error(o.WEBHOOK_UNSAFE_IMPORT,i[o.WEBHOOK_UNSAFE_IMPORT](n.fileName,n.inclusionReason,n.importer,n.specifier))}return P};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One-time migration, see the top of this module: true only before a checkout's first sync with this SDK.
|
|
3
|
+
*
|
|
4
|
+
* Whether the content of a project's root `eslint.config.js` is the file earlier SDK versions
|
|
5
|
+
* generated. Whitespace, semicolons and the quote style do not count; any other difference makes the
|
|
6
|
+
* file the project's own.
|
|
7
|
+
*/
|
|
8
|
+
export declare const isEarlierGeneratedEslintConfig: (content: string) => boolean;
|
|
9
|
+
/**
|
|
10
|
+
* One-time migration, see the top of this module: true only before a checkout's first sync with this SDK.
|
|
11
|
+
*
|
|
12
|
+
* Whether the content of a project's root `prettier.config.js` is the file earlier SDK versions
|
|
13
|
+
* generated. Whitespace, semicolons and the quote style do not count; any other difference makes the
|
|
14
|
+
* file the project's own.
|
|
15
|
+
*/
|
|
16
|
+
export declare const isEarlierGeneratedPrettierConfig: (content: string) => boolean;
|
package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
let e=`/**
|
|
2
|
+
* Auto-generated file.
|
|
3
|
+
* Do not modify this file manually.
|
|
4
|
+
* Version: 1
|
|
5
|
+
*/`,t=["@salsita-ai/sdk/common","@salsita-ai/platform-common","@salsita-ai/common"],a=(a,r)=>t.map(t=>`${e}
|
|
6
|
+
import { ${a} } from '${t}/${r}'
|
|
7
|
+
|
|
8
|
+
export default ${a}
|
|
9
|
+
`),r=e=>e.replace(/\s+/g,"").replace(/;/g,"").replace(/"/g,"'"),i=new Set(a("eslintrc","eslint").map(r)),o=new Set(a("prettierrc","prettier").map(r));export const isEarlierGeneratedEslintConfig=e=>i.has(r(e));export const isEarlierGeneratedPrettierConfig=e=>o.has(r(e));
|
package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One-time migration, see the top of this module: true only before a checkout's first sync with this SDK.
|
|
3
|
+
*
|
|
4
|
+
* Whether the content of a project's root `tsconfig.json` is the file earlier SDK versions generated.
|
|
5
|
+
* The comparison is by meaning: comments, formatting and key order do not count, so a generated
|
|
6
|
+
* file that an editor or formatter rewrote is still recognised. Content that does not parse, or that
|
|
7
|
+
* differs in any setting, is the project's own.
|
|
8
|
+
*/
|
|
9
|
+
export declare const isEarlierGeneratedTsconfig: (content: string) => boolean;
|
package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"lodash-es/isEqual.js";let l={compilerOptions:{noEmit:!0,module:"ESNext",moduleResolution:"Bundler",lib:["ES2022","DOM"],esModuleInterop:!0,isolatedModules:!0,resolveJsonModule:!0,allowJs:!1,skipLibCheck:!0,strict:!0,noImplicitOverride:!0,noImplicitReturns:!0,noPropertyAccessFromIndexSignature:!0,noUncheckedIndexedAccess:!0,allowUnreachableCode:!1,allowUnusedLabels:!1,noFallthroughCasesInSwitch:!0,noUnusedLocals:!0,noUnusedParameters:!0,useDefineForClassFields:!0,jsx:"react-jsx",paths:{}},include:["src",".phoenix","prettier.config.js","eslint.config.js","./.phoenix/globals.d.ts"]},s=(e,l)=>{let s=l+1;for(;s<e.length&&'"'!==e[s];)s+="\\"===e[s]?2:1;return s+1};export const isEarlierGeneratedTsconfig=t=>e((e=>{try{return JSON.parse((e=>{let l="",t=0;for(;t<e.length;){let n=e[t];if('"'===n){let n=s(e,t);l+=e.slice(t,n),t=n;continue}","===n&&/^\s*[}\]]/.test(e.slice(t+1))||(l+=n),t++}return l})((e=>{let l="",t=0;for(;t<e.length;){let n=e[t],o=e[t+1];if('"'===n){let n=s(e,t);l+=e.slice(t,n),t=n}else if("/"===n&&"/"===o){let l=e.indexOf("\n",t);t=-1===l?e.length:l}else if("/"===n&&"*"===o){let l=e.indexOf("*/",t+2);t=-1===l?e.length:l+2}else l+=n,t++}return l})(e)))}catch{return}})(t),l);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{parse as r}from"yaml";import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as t,diagnosticMessages as n}from"../../errors/index.js";export const parseYamlSpecFile=(
|
|
1
|
+
import{parse as r}from"yaml";import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as t,diagnosticMessages as n}from"../../errors/index.js";let o=(r,e,i)=>{if("number"==typeof r)return!Number.isFinite(r)&&(i.at(...e).error(t.NON_FINITE_NUMBER,n.NON_FINITE_NUMBER(e.join("."),String(r))),!0);if("object"!=typeof r||null===r)return!1;let a=!1;for(let[t,n]of Object.entries(r))a=o(n,[...e,t],i)||a;return a};export const parseYamlSpecFile=(i,a)=>{try{let E=r(i.file.content,{merge:!0});if(null===E)return a.warning(t.EMPTY_SPEC_FILE,n.EMPTY_SPEC_FILE()),e({name:i.file.name,content:{}});if("object"!=typeof E||Array.isArray(E))return void a.error(t.YAML_PARSE_ERROR,n.YAML_PARSE_ERROR("File did not parse to an object"));if(o(E,[],a))return;return e({name:i.file.name,content:E})}catch(r){a.error(t.YAML_PARSE_ERROR,n.YAML_PARSE_ERROR(r instanceof Error?r.message:String(r)));return}};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { type AssistantAiSettings } from '@salsita-ai/contracts/assistant';
|
|
3
|
-
import { ASSISTANT_HINTS } from '#package/domain';
|
|
3
|
+
import { ASSISTANT_HINTS, type AssistantFormAttribute, type AssistantFormRole } from '#package/domain';
|
|
4
4
|
/**
|
|
5
5
|
* One whitelisted field in the assistant manifest. `description` overrides the JSON Schema
|
|
6
6
|
* description of the shape property; `as` exposes the field under a different GraphQL name; `lenses`
|
|
@@ -12,6 +12,21 @@ export interface RawAssistantField {
|
|
|
12
12
|
readonly as?: string;
|
|
13
13
|
readonly lenses?: readonly string[];
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* One of the project's own elements of an assistant form, keyed under `assistant.formElements` by
|
|
17
|
+
* its tag, and implemented by the component a file in `src/elements/` registers under the same name
|
|
18
|
+
* with `phx.frontend.createAssistantFormElement`. `role` decides the props the component gets, how
|
|
19
|
+
* the form collects it into the answer and where the prompt lists it, with `description` after its
|
|
20
|
+
* signature. `attributes` are flat scalars beside the built-in `label`, each a JSON Schema of the
|
|
21
|
+
* keywords `AssistantFormAttribute` allows, and `required` names those the model must write. An
|
|
22
|
+
* option or an input that takes a `value` declares it like any other attribute.
|
|
23
|
+
*/
|
|
24
|
+
export interface RawAssistantFormElement {
|
|
25
|
+
readonly description: string;
|
|
26
|
+
readonly role: AssistantFormRole;
|
|
27
|
+
readonly attributes?: Readonly<Record<string, AssistantFormAttribute>>;
|
|
28
|
+
readonly required?: readonly string[];
|
|
29
|
+
}
|
|
15
30
|
/**
|
|
16
31
|
* One lens of the assistant `lenses` map, keyed by the name the agent spreads it by: a named
|
|
17
32
|
* selection made of the `entities` entries tagged with that name. `description` tells the agent when
|
|
@@ -90,6 +105,16 @@ export interface RawAssistantAction {
|
|
|
90
105
|
readonly description?: string;
|
|
91
106
|
readonly as?: string;
|
|
92
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* One view of the assistant `screenshots` map, keyed by the instance name of an `agentScreenshot`
|
|
110
|
+
* component: it lets the agent take a screenshot of the entity from that view under `meta`.
|
|
111
|
+
* `description` tells the agent what the view shows; `as` is the name the agent asks for the view
|
|
112
|
+
* by, the instance name by default.
|
|
113
|
+
*/
|
|
114
|
+
export interface RawAssistantScreenshot {
|
|
115
|
+
readonly description: string;
|
|
116
|
+
readonly as?: string;
|
|
117
|
+
}
|
|
93
118
|
/**
|
|
94
119
|
* Experimental assistant manifest authored under the `assistant` root key. `entities` whitelists the
|
|
95
120
|
* stored fields the generated GraphQL schema exposes, keyed by entity type or alias name and then by
|
|
@@ -100,8 +125,11 @@ export interface RawAssistantAction {
|
|
|
100
125
|
* entity type or alias, the `childEntityRecipes` groups whose recipes the agent may list and add
|
|
101
126
|
* with `addChild`. `replaceRecipes` names, per entity type or alias, the `replaceEntityRecipes`
|
|
102
127
|
* groups whose recipes the agent may list and replace the entity by with `replaceEntity`. `actions`
|
|
103
|
-
* names the declared actions the agent may run as custom mutations.
|
|
104
|
-
*
|
|
128
|
+
* names the declared actions the agent may run as custom mutations. `screenshots` names, per entity
|
|
129
|
+
* type or alias, the `agentScreenshot` views the agent may take a screenshot of the entity from.
|
|
130
|
+
* Nothing is exposed without an entry. `lenses` declares the named selections that `entities`
|
|
131
|
+
* entries are tagged with, and `formElements` the project's own elements of the forms the agent
|
|
132
|
+
* asks the user with.
|
|
105
133
|
*
|
|
106
134
|
* `ai` and `instructions` are for the server only: the provider, model tier and reasoning level the
|
|
107
135
|
* deployment's assistant runs with, and the integrator's own guidance for it, appended to the system
|
|
@@ -114,7 +142,9 @@ export interface RawAssistant {
|
|
|
114
142
|
readonly childRecipes?: Readonly<Record<string, RawAssistantRecipes>>;
|
|
115
143
|
readonly replaceRecipes?: Readonly<Record<string, RawAssistantRecipes>>;
|
|
116
144
|
readonly actions?: Readonly<Record<string, RawAssistantAction | null>>;
|
|
145
|
+
readonly screenshots?: Readonly<Record<string, Readonly<Record<string, RawAssistantScreenshot>>>>;
|
|
117
146
|
readonly lenses?: Readonly<Record<string, RawAssistantLens>>;
|
|
147
|
+
readonly formElements?: Readonly<Record<string, RawAssistantFormElement>>;
|
|
118
148
|
readonly instructions?: string;
|
|
119
149
|
readonly ai: AssistantAiSettings;
|
|
120
150
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{z as e}from"zod";import{ASSISTANT_AI_PROVIDERS as t,ASSISTANT_MODEL_TIERS as
|
|
1
|
+
import{z as e}from"zod";import{ASSISTANT_AI_PROVIDERS as t,ASSISTANT_MODEL_TIERS as n,ASSISTANT_REASONING_LEVELS as o}from"@salsita-ai/contracts/assistant";import{ASSISTANT_FORM_NAME_PATTERN as i,ASSISTANT_HINTS as r}from"#package/domain";export const ASSISTANT_OPTION_COMPONENT_TYPES=["materialSwatch","attributeSelection","distanceDimensionSelect"];let s=e.string().regex(/^(?!__)[_A-Za-z][_0-9A-Za-z]*$/,'must be a GraphQL name: letters, digits and "_", not starting with a digit or "__"'),a=t=>e.enum(t,{errorMap:()=>({message:`must be one of: ${t.join(", ")}`})}),m=e.object({description:e.string().optional(),as:s.optional(),lenses:e.array(e.string()).optional()}).strict(),l="must be a whole number of at least 1; remove the key to nest tagged relations one level",p=e.object({description:e.string().trim().min(1,"must not be empty; say when the agent should use the lens"),maxDepth:e.number({invalid_type_error:l}).int(l).min(1,l).optional()}).strict(),c=s.refine(e=>!e.includes("__"),'must not contain "__", which names the generated copies of a lens'),u=e.array(a(r)),d=e.object({options:e.object({componentType:a(ASSISTANT_OPTION_COMPONENT_TYPES),instanceName:e.string().min(1,"must not be empty; name the component instance that holds the choices"),as:s.optional(),validate:e.boolean().optional(),allowDryRuns:e.boolean().optional(),hints:u.optional()}).strict().optional()}).strict(),g=e.object({as:e.string().trim().min(1,"must not be empty; remove the key to use the instance name").optional(),description:e.string().optional(),allowDryRuns:e.boolean().optional()}).strict(),h=t=>e.object({hints:u.optional(),groups:e.record(e.string(),g.nullable(),{required_error:`is required: the recipe groups of the type go under "groups", keyed by the instance name of a "${t}" component`})}).strict(),b=e.object({description:e.string().optional(),as:s.optional()}).strict(),y=["enum","pattern","minimum","maximum","minLength","maxLength"],f=["enum","pattern","minLength","maxLength"],_=["enum","minimum","maximum"],v=e.object({type:a(["string","number","integer","boolean"]),enum:e.array(e.union([e.string(),e.number()])).min(1,"must list at least one value").optional(),pattern:e.string().refine(e=>{try{return RegExp(e,"u"),!0}catch{return!1}},"must be a regular expression, as in JSON Schema").optional(),minimum:e.number().optional(),maximum:e.number().optional(),minLength:e.number().int().nonnegative().optional(),maxLength:e.number().int().nonnegative().optional()}).strict().superRefine((t,n)=>{let o="string"===t.type?f:"boolean"===t.type?[]:_;for(let i of y)void 0===t[i]||o.includes(i)||n.addIssue({code:e.ZodIssueCode.custom,path:[i],message:`does not apply to an attribute of type "${t.type}"; remove it or change the type`});let i="string"===t.type?"string":"number";for(let[o,r]of("boolean"!==t.type&&t.enum?.some(e=>typeof e!==i||"integer"===t.type&&!Number.isInteger(e))&&n.addIssue({code:e.ZodIssueCode.custom,path:["enum"],message:`must list only ${"integer"===t.type?"whole number":i}s, since the attribute is of type "${t.type}"`}),[["minimum","maximum"],["minLength","maxLength"]])){let[i,s]=[t[o],t[r]];void 0!==i&&void 0!==s&&i>s&&n.addIssue({code:e.ZodIssueCode.custom,path:[o],message:`must not be greater than "${r}", or no value could satisfy the attribute`})}}),w=e.string().regex(i,'must start with a lowercase letter and hold only lowercase letters, digits and "-", since the panel reads form markup in lowercase'),j=e.object({description:e.string().trim().min(1,"must not be empty; say what the element is for and where the agent may use it"),role:a(["group","choice","choices","option","input"]),attributes:e.record(w,v).optional(),required:e.array(e.string()).optional()}).strict(),x=e.object({description:e.string().trim().min(1,"must not be empty; say what the view shows"),as:s.optional()}).strict(),S=`is required: declare provider (${t.join(", ")}), model (${n.join(", ")}) and reasoning (${o.join(", ")})`,T="must be a positive whole number of input tokens; remove the key to use the default of the server",I=e.object({provider:a(t),model:a(n),reasoning:a(o),maxThreadSize:e.number({invalid_type_error:T}).int(T).positive(T).optional()},{required_error:S,invalid_type_error:S}).strict();export const rawAssistantSchema=e.object({entities:e.record(e.string(),e.record(e.string(),m.nullable())).optional(),deletable:e.record(e.string(),e.object({}).strict().nullable()).optional(),writable:e.record(e.string(),e.record(e.string(),d.nullable())).optional(),childRecipes:e.record(e.string(),h("childEntityRecipes")).optional(),replaceRecipes:e.record(e.string(),h("replaceEntityRecipes")).optional(),actions:e.record(e.string(),b.nullable()).optional(),screenshots:e.record(e.string(),e.record(e.string(),x)).optional(),lenses:e.record(c,p).optional(),formElements:e.record(w,j).optional(),instructions:e.string().trim().min(1,"must not be empty; remove the key when there are no instructions").optional(),ai:I}).strict();
|
package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as t,diagnosticMessages as s}from"../../../../errors/index.js";import{Components as n,UserComponents as r}from"../../components/index.js";import{Expressions as o}from"../../expressions/index.js";import{Invariants as i}from"../../invariants/index.js";import{ConfigurationSchema as a,Defaults as m,ModelVersion as
|
|
1
|
+
import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as t,diagnosticMessages as s}from"../../../../errors/index.js";import{Components as n,UserComponents as r}from"../../components/index.js";import{Expressions as o}from"../../expressions/index.js";import{Invariants as i}from"../../invariants/index.js";import{ConfigurationSchema as a,Defaults as m,ModelVersion as p,Presets as l}from"../../model/index.js";import{Relations as d}from"../../relations/index.js";import{ResolvedVersions as f}from"../resolved-versions.js";import{AdminPages as S}from"./admin-pages.js";import{AdminStates as x}from"./states.js";export const AdminSpec=(g,v)=>{let{rawModel:u,rawPresets:I,rawExpressions:T,rawInvariants:_,rawRelations:c,rawDefaults:j,migrationFiles:A,rawComponents:C,rawAdminPages:E,dataSpec:M,phxDefinitions:N,evalExpressionParser:L,label:y,requireMigrationFiles:G}=g;if(0===Object.keys(u).length)return void v.at(y).error(t.MISSING_MODEL,s.MISSING_MODEL(y));u.latest||v.at(y).error(t.MISSING_LATEST,s.MISSING_LATEST(y));let O=new Map;for(let[e,t]of Object.entries(u)){let s=p(e,t,N,v.at(y,e));s&&O.set(s.versionKey,s)}if(v.hasErrors)return;let h=f(O,A,v,{requireMigrationFiles:G});if(!h)return;let D=h.versionedModels.find(e=>e.isLatest)?.modelVersion;if(!D)return;let V=h.latestVersion,P=a(D,V),b=d(c,D,N,v),w=i({rawInvariants:_,rawExpressions:T,rawRelations:c,rawComponents:C},D,N,v),F=l(I,D,b,v),R=S(E,{latestModel:D,parsingContext:v.at(y,"$adminPages")},M);if(!R)return;let k=r(C,{latestModel:D,phxDefinitions:N,parsingContext:v}),K=m(j,D,v.at(y,"defaults")),$=o({rawExpressions:T,inferredExpressions:[...b.expressions,...w.expressions,...k.expressions],expressionReads:k.expressionReads},{latestModel:D,aliases:D.aliases,entityTypes:D.entityTypes,evalExpressionParser:L,phxDefinitions:N,parsingContext:v}),q=n({userComponents:k.components,generatedComponents:[...b.components,...R.components],invariantComponents:w.components},{aliases:D.aliases,parsingContext:v});if(void 0!==K&&void 0!==$&&void 0!==q)return e({latestModel:D,schemaVersion:V,resolvedVersions:h,components:q,configurationSchema:P,presets:F,expressions:$,invariants:w,defaults:K,states:x(((n,r,o)=>{if(0===r.length)return n;let i=1===n.navigationStates.length&&"Default"===n.navigationStates[0]?[]:n.navigationStates,a=i.filter(e=>r.includes(e));return a.length>0&&o.error(t.ADMIN_PAGES_NAV_STATE_CONFLICT,s.ADMIN_PAGES_NAV_STATE_CONFLICT(a)),e({...n,navigationStates:[...i,...r]})})(g.rawStates,R.navigationStates,v),v),adminPages:R})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as s,diagnosticMessages as t}from"../../../../errors/index.js";import{Components as o,UserComponents as r}from"../../components/index.js";import{Expressions as i}from"../../expressions/index.js";import{Invariants as n}from"../../invariants/index.js";import{ConfigurationSchema as a,DataSchemas as m,Defaults as p,ModelVersion as
|
|
1
|
+
import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as s,diagnosticMessages as t}from"../../../../errors/index.js";import{Components as o,UserComponents as r}from"../../components/index.js";import{Expressions as i}from"../../expressions/index.js";import{Invariants as n}from"../../invariants/index.js";import{ConfigurationSchema as a,DataSchemas as m,Defaults as p,ModelVersion as d,Presets as l}from"../../model/index.js";import{Relations as f}from"../../relations/index.js";import{Actions as x,AssistantServerSettings as S,AssistantSpec as v,Theme as c,Transformers as j,Ui as u}from"../../sections/index.js";import{ResolvedVersions as g}from"../resolved-versions.js";import{ConfiguratorStates as C}from"./states.js";export const ConfiguratorSpec=(I,M)=>{let{rawModel:y,rawPresets:E,rawExpressions:T,rawActions:L,rawInvariants:h,rawRelations:G,rawDefaults:N,dataSchemas:O,dataSpec:_,appMetadata:b,rawTheme:w,rawUi:A,rawTransformers:D,rawAssistant:R,migrationFiles:V,transformerFiles:k,rawComponents:K,phxDefinitions:q,evalExpressionParser:z,label:B}=I;if(0===Object.keys(y).length)return void M.at(B).error(s.MISSING_MODEL,t.MISSING_MODEL(B));y.latest||M.at(B).error(s.MISSING_LATEST,t.MISSING_LATEST(B));let F=new Map;for(let[e,s]of Object.entries(y)){let t=d(e,s,q,M.at(B,e));t&&F.set(t.versionKey,t)}if(M.hasErrors)return;let H=g(F,V,M);if(!H)return;let J=H.versionedModels.find(e=>e.isLatest)?.modelVersion;if(!J)return;let P=H.latestVersion,Q=a(J,P),U=f(G,J,q,M),W=n({rawInvariants:h,rawExpressions:T,rawRelations:G,rawComponents:K},J,q,M),X=l(E,J,U,M),Y=r(K,{latestModel:J,phxDefinitions:q,parsingContext:M}),Z=p(N,J,M.at(B,"defaults")),$=j(D,k,M),ee=i({rawExpressions:T,inferredExpressions:[...U.expressions,...W.expressions,...Y.expressions],expressionReads:Y.expressionReads},{latestModel:J,aliases:J.aliases,entityTypes:J.entityTypes,evalExpressionParser:z,phxDefinitions:q,parsingContext:M}),es=o({userComponents:Y.components,generatedComponents:U.components,invariantComponents:W.components},{aliases:J.aliases,parsingContext:M}),et=m({merged:O,dataSpec:_,appMetadata:b,phxDefinitions:q,parsingContext:M}),eo=C(I.rawStates,M.at("states")),er=x(L,{latestModel:J,phxDefinitions:q},M.at("actions"));if(void 0!==Z&&void 0!==ee&&void 0!==er&&void 0!==es&&void 0!==et)return e({latestModel:J,schemaVersion:P,dataSchemas:et,resolvedVersions:H,components:es,configurationSchema:Q,presets:X,expressions:ee,actions:er,invariants:W,defaults:Z,states:eo,theme:c(w),ui:u(A),transformers:$,assistant:v(R,{model:J,states:eo,phxDefinitions:q,expressions:ee,components:es,actions:er},M),assistantServerSettings:S(R)})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export*from"./schema-ref-resolver.js";export*from"./validate-schema-refs.js";
|
|
1
|
+
export*from"./schema-ref-resolver.js";export*from"./validate-schema-refs.js";export*from"./value-type/index.js";
|
package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let e=(n,r)=>0===n.length?"never":[...new Set(n.map(n=>((n,r)=>{switch(n.kind){case"unknown":return"unknown";case"string":if(n.named){let e=n.named.entityTypes;return void 0===e?n.named.name:`${n.named.name}<${[...e].map(e=>`'${e}'`).join(" | ")}>`}return void 0===n.literal?"string":`'${n.literal}'`;case"number":case"boolean":return void 0===n.literal?n.kind:String(n.literal);case"null":return"null";case"array":{let t=e(n.element,r+1);return n.element.length>1?`readonly (${t})[]`:`readonly ${t}[]`}case"object":{if(r>=2)return"object";if(n.index)return`Record<string, ${e(n.index,r+1)}>`;if(!n.properties)return"Record<string, unknown>";let t=[...n.properties].map(([n,t])=>`${n}${t.required?"":"?"}: ${e(t.type,r+1)}`);return`{ ${t.join("; ")} }`}}})(n,r)))].join(" | ");export const formatValueType=n=>e(n,0);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export*from"./format-value-type.js";export*from"./intersect-value-types.js";export*from"./is-assignable-value-type.js";export*from"./value-type-at.js";export*from"./value-type.js";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ValueType } from './value-type.js';
|
|
2
|
+
/**
|
|
3
|
+
* The values two types have in common, as a union: an empty union when no value is of both. A
|
|
4
|
+
* member the schemas do not describe (`unknown`) is assumed to share values with any other.
|
|
5
|
+
*/
|
|
6
|
+
export declare const intersectValueTypes: (left: ValueType, right: ValueType) => ValueType;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let e=[{kind:"unknown"}],n="DomainEntityId",i=(e,n)=>void 0!==n.literal?n.literal===e.literal?[e]:[]:!n.named||n.named.acceptsLiteral?.(e.literal)?[e]:[],t=e=>"object"===e.kind&&void 0===e.index&&void 0!==e.properties&&e.properties.size>0&&[...e.properties.values()].every(e=>!e.required);export const intersectValueTypes=(r,l)=>r.flatMap(r=>l.flatMap(l=>((r,l)=>{if("unknown"===r.kind||"unknown"===l.kind)return e;if("string"===r.kind&&"string"===l.kind)return((t,r)=>{let{literal:l}=t;return void 0!==l?i({...t,literal:l},r):void 0!==r.literal?i({...r,literal:r.literal},t):t.named&&r.named?((i,t)=>{let r,l;if(i.name!==t.name)return i.name===n||t.name===n?[]:e;if(void 0===i.entityTypes||void 0===t.entityTypes)return[{kind:"string",named:void 0===i.entityTypes?t:i}];let d=(r=i.entityTypes,l=t.entityTypes,new Set([...r].filter(e=>l.has(e))));return 0===d.size?[]:[{kind:"string",named:{...i,entityTypes:d}}]})(t.named,r.named):[t.named?t:r]})(r,l);if("number"===r.kind&&"number"===l.kind||"boolean"===r.kind&&"boolean"===l.kind){let e,n;return e=r,n=l,void 0===e.literal?[n]:void 0===n.literal||n.literal===e.literal?[e]:[]}if("null"===r.kind&&"null"===l.kind)return[r];if("array"===r.kind&&"array"===l.kind)return[{kind:"array",element:intersectValueTypes(r.element,l.element)}];if("object"===r.kind&&"object"===l.kind){let e=new Map(r.properties??[]);for(let[n,i]of l.properties??[]){let t=e.get(n);if(!t){e.set(n,i);continue}let r=intersectValueTypes(t.type,i.type),l=t.required||i.required;if(0===r.length&&l)return[];e.set(n,{type:r,required:l})}return r.properties||l.properties?[{kind:"object",properties:e}]:[r.index?r:l]}return t(r)&&"null"!==l.kind?[l]:t(l)&&"null"!==r.kind?[r]:[]})(r,l)));
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ValueType } from './value-type.js';
|
|
2
|
+
/**
|
|
3
|
+
* Whether TypeScript accepts a value of the source type where the target type is expected: every
|
|
4
|
+
* member of the source union fits some member of the target union. A member the schemas do not
|
|
5
|
+
* describe (`unknown`) on either side fits, so the answer is `false` only when the types are known
|
|
6
|
+
* to disagree.
|
|
7
|
+
*/
|
|
8
|
+
export declare const isAssignableValueType: (source: ValueType, target: ValueType) => boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let e=(e,r)=>e.filter(e=>e.kind===r),r=(r,i)=>e(i,"boolean").some(e=>void 0===e.literal||e.literal===r),i=e=>"null"===e.kind?[e]:"boolean"===e.kind?void 0===e.literal?[{kind:"boolean",literal:!0},{kind:"boolean",literal:!1}]:[e]:("string"===e.kind||"number"===e.kind)&&void 0!==e.literal?[e]:void 0,t=(r,n)=>{if(e(n,"object").some(e=>{if(void 0!==e.index){var i;return i=e.index,r.properties||r.index?[...r.properties?.values()??[]].every(e=>isAssignableValueType(e.type,i))&&(void 0===r.index||isAssignableValueType(r.index,i)):i.some(e=>"unknown"===e.kind)}return void 0===e.properties||(0===e.properties.size?void 0!==r.properties&&0===r.properties.size&&void 0===r.index:((e,r,i)=>{let t=e.properties;if(!t)return[...r.values()].every(e=>!e.required);for(let[e,i]of r){let r=t.get(e);if(!r){if(i.required)return!1;continue}if(i.required&&!r.required||!isAssignableValueType(r.type,i.type))return!1}let n=!i&&r.size>0&&[...r.values()].every(e=>!e.required),l=[...t.keys()].some(e=>r.has(e));return!n||0===t.size||l})(r,e.properties,e.open??!1))}))return!0;let l=(e=>{for(let[r,t]of e.properties??[]){let n=t.type.map(i);if(!(0===n.length||n.some(e=>void 0===e))&&!(n.flat().length<2))return n.flatMap(e=>e??[]).map(i=>({...e,properties:new Map([...e.properties??[],[r,{...t,type:[i]}]])}))}})(r);return void 0!==l&&l.every(e=>t(e,n))};export const isAssignableValueType=(i,n)=>n.some(e=>"unknown"===e.kind)||i.every(i=>((i,n)=>{switch(i.kind){case"unknown":return!0;case"string":return e(n,"string").some(e=>{if(i.named){var r,t;let n,l;return e.named?(r=i.named,t=e.named,r.name===t.name&&(void 0===t.entityTypes||void 0!==r.entityTypes&&(n=r.entityTypes,l=t.entityTypes,[...n].every(e=>l.has(e))))):void 0===e.literal}return void 0!==i.literal?e.named?e.named.acceptsLiteral?.(i.literal)??!1:void 0===e.literal||e.literal===i.literal:void 0===e.literal&&void 0===e.named});case"number":return e(n,"number").some(e=>void 0===e.literal||e.literal===i.literal);case"boolean":return void 0===i.literal?r(!0,n)&&r(!1,n):r(i.literal,n);case"null":return e(n,"null").length>0;case"array":return e(n,"array").some(e=>isAssignableValueType(i.element,e.element));case"object":return t(i,n)}})(i,n));
|
package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { SchemaPathSegment } from '../../../../core/index.js';
|
|
2
|
+
import type { ValueType } from './value-type.js';
|
|
3
|
+
/**
|
|
4
|
+
* The type expected at a path inside a value of `type`: a number segment indexes an array, a string
|
|
5
|
+
* segment names an object property. Through a union, the path is followed into every member that
|
|
6
|
+
* has it, and the result is the union of what they expect. A value written there must fit one of
|
|
7
|
+
* them; which member the rest of the value selects is not considered, so the answer is never
|
|
8
|
+
* narrower than what TypeScript expects. A path that no member has yields `unknown`.
|
|
9
|
+
*/
|
|
10
|
+
export declare const valueTypeAt: (type: ValueType, path: readonly SchemaPathSegment[]) => ValueType;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let e=[{kind:"unknown"}],n=(n,t)=>"unknown"===n.kind?e:"number"==typeof t?"array"===n.kind?n.element:[]:"object"!==n.kind?[]:n.index?n.index:n.properties?n.properties.get(t)?.type??[]:e;export const valueTypeAt=(t,r)=>{let o=t;for(let t of r){let r=o.flatMap(e=>n(e,t));if(0===r.length)return e;o=r}return o};
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import type { EnhancedJsonSchemaType } from '../../../../core/index.js';
|
|
2
|
+
import { type SchemaRefResolver } from '../schema-ref-resolver.js';
|
|
3
|
+
/**
|
|
4
|
+
* A string type that TypeScript names and that a plain `string` does not satisfy: an entity id
|
|
5
|
+
* (`DomainEntityId`, a branded template literal) or a template literal such as `HexColor`.
|
|
6
|
+
*
|
|
7
|
+
* - `entityTypes`: for an entity id, the entity types whose ids it holds; `undefined` for the id of
|
|
8
|
+
* any entity (`DomainEntityId<string>`).
|
|
9
|
+
* - `acceptsLiteral`: which string literals satisfy it; absent for a brand, which no literal does.
|
|
10
|
+
*/
|
|
11
|
+
export interface NamedString {
|
|
12
|
+
readonly name: string;
|
|
13
|
+
readonly entityTypes?: ReadonlySet<string>;
|
|
14
|
+
readonly acceptsLiteral?: (literal: string) => boolean;
|
|
15
|
+
}
|
|
16
|
+
/** A property of an object type. */
|
|
17
|
+
export interface ObjectProperty {
|
|
18
|
+
readonly type: ValueType;
|
|
19
|
+
readonly required: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* One member of the union a {@link ValueType} stands for.
|
|
23
|
+
*
|
|
24
|
+
* - `unknown`: a value the schema does not describe, such as a type given as TypeScript text
|
|
25
|
+
* (`tsType`) or a ref that resolves to nothing. It is assignable to and from every type.
|
|
26
|
+
* - `string`, `number`, `boolean`: a primitive, or one literal of it (`literal`). A string can be a
|
|
27
|
+
* {@link NamedString}.
|
|
28
|
+
* - `array`: a read-only array of `element`.
|
|
29
|
+
* - `object`: `properties` lists the known properties; `index` is the type of every other property
|
|
30
|
+
* (`Record<string, T>`). With neither, it is any object (`Record<string, unknown>`). `open` marks
|
|
31
|
+
* an SDK type, whose TypeScript type may have properties its schema does not list.
|
|
32
|
+
*/
|
|
33
|
+
export type ValueTypeMember = {
|
|
34
|
+
readonly kind: 'unknown';
|
|
35
|
+
} | {
|
|
36
|
+
readonly kind: 'string';
|
|
37
|
+
readonly literal?: string;
|
|
38
|
+
readonly named?: NamedString;
|
|
39
|
+
} | {
|
|
40
|
+
readonly kind: 'number';
|
|
41
|
+
readonly literal?: number;
|
|
42
|
+
} | {
|
|
43
|
+
readonly kind: 'boolean';
|
|
44
|
+
readonly literal?: boolean;
|
|
45
|
+
} | {
|
|
46
|
+
readonly kind: 'null';
|
|
47
|
+
} | {
|
|
48
|
+
readonly kind: 'array';
|
|
49
|
+
readonly element: ValueType;
|
|
50
|
+
} | {
|
|
51
|
+
readonly kind: 'object';
|
|
52
|
+
readonly properties?: ReadonlyMap<string, ObjectProperty>;
|
|
53
|
+
readonly index?: ValueType;
|
|
54
|
+
readonly open?: boolean;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* The type a schema stands for in generated TypeScript, as the union of its members. An empty union
|
|
58
|
+
* is `never`.
|
|
59
|
+
*/
|
|
60
|
+
export type ValueType = readonly ValueTypeMember[];
|
|
61
|
+
/** Who wrote a schema, which decides what its `tsType` means. */
|
|
62
|
+
export type SchemaAuthor =
|
|
63
|
+
/** A project: a `tsType` is TypeScript text the parser cannot read, so the type is `unknown`. */
|
|
64
|
+
'project'
|
|
65
|
+
/**
|
|
66
|
+
* The SDK: a component or phoenix definition schema states its type in JSON next to the `tsType`
|
|
67
|
+
* that names it, so the JSON describes the type, except for the named strings in
|
|
68
|
+
* {@link NAMED_STRINGS}.
|
|
69
|
+
*/
|
|
70
|
+
| 'sdk';
|
|
71
|
+
/** What a {@link ValueType} needs to read a schema. */
|
|
72
|
+
export interface ValueTypeResolution {
|
|
73
|
+
readonly author: SchemaAuthor;
|
|
74
|
+
/** Resolves phoenix definition refs and common type refs. */
|
|
75
|
+
readonly resolveRef: SchemaRefResolver;
|
|
76
|
+
/** The entity types an entity type or alias name stands for. */
|
|
77
|
+
readonly entityTypes: (typeOrAlias: string) => readonly string[];
|
|
78
|
+
/** The `definitions` of the root schema, for its `#/definitions/X` refs. */
|
|
79
|
+
readonly definitions?: Readonly<Record<string, EnhancedJsonSchemaType>>;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* The SDK's named string types, by the `tsType` an SDK schema gives them, with the literals that
|
|
83
|
+
* satisfy each (none for a brand). A `type: string` schema of the SDK whose `tsType` is not listed
|
|
84
|
+
* here describes a plain string.
|
|
85
|
+
*/
|
|
86
|
+
export declare const NAMED_STRINGS: Readonly<Record<string, Pick<NamedString, 'acceptsLiteral'>>>;
|
|
87
|
+
/** The type of an entity id: of the entity types `typeOrAlias` stands for, or of any entity. */
|
|
88
|
+
export declare const entityIdValueType: (typeOrAlias: string | undefined, resolution: Pick<ValueTypeResolution, 'entityTypes'>) => ValueType;
|
|
89
|
+
/**
|
|
90
|
+
* The type TypeScript gives a literal value written in a spec where a type is expected: a string,
|
|
91
|
+
* number or boolean is its literal type, an array is an array of the union of its items, and an
|
|
92
|
+
* object has exactly its properties, each required.
|
|
93
|
+
*/
|
|
94
|
+
export declare const literalValueType: (value: unknown) => ValueType;
|
|
95
|
+
/** The type a schema stands for in generated TypeScript. */
|
|
96
|
+
export declare const ValueType: (schema: EnhancedJsonSchemaType, resolution: ValueTypeResolution) => ValueType;
|
|
97
|
+
/** Whether a type has a member the schema does not describe. */
|
|
98
|
+
export declare const hasUnknownMember: (type: ValueType) => boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{isArray as e}from"@salsita-ai/common/utils";import{phxDefinitionRefName as t}from"../schema-ref-resolver.js";let r=new Set(["white","black","red","green","blue","yellow","cyan","magenta"]),n=e=>e.startsWith("#");export const NAMED_STRINGS={DomainEntityId:{},HexColor:{acceptsLiteral:n},Color:{acceptsLiteral:e=>{let t;return n(e)||r.has(e)||e.startsWith("ral-")&&(t=e.slice(4)).trim()===t&&""!==t&&!Number.isNaN(Number(t))}}};let i={EnhancedLocalizable:"Localizable",EnhancedMessageDescriptor:"MessageDescriptor"},o=new Set(["PhoenixEntityElement","PhoenixLayoutElement"]),a=[{kind:"unknown"}],l="DomainEntityId";export const entityIdValueType=(e,t)=>[{kind:"string",named:{name:l,...void 0===e?{}:{entityTypes:new Set(t.entityTypes(e))}}}];export const literalValueType=e=>null===e?[{kind:"null"}]:"string"==typeof e?[{kind:"string",literal:e}]:"number"==typeof e?[{kind:"number",literal:e}]:"boolean"==typeof e?[{kind:"boolean",literal:e}]:Array.isArray(e)?[{kind:"array",element:e.flatMap(literalValueType)}]:"object"==typeof e?[{kind:"object",properties:new Map(Object.entries(e).map(([e,t])=>[e,{type:literalValueType(t),required:!0}]))}]:[{kind:"unknown"}];let s=(e,r)=>{let{$ref:n}=e;if(r.openRefs.has(n))return a;let i=new Set([...r.openRefs,n]),o=/^#\/definitions\/([^/]+)$/.exec(n)?.[1],s=void 0===o?void 0:r.resolution.definitions?.[o];if(s)return y(s,{...r,openRefs:i});let p=t(n);if(p===l)return entityIdValueType(e.references,r.resolution);let u=r.resolution.resolveRef(n);if(!u)return a;let d=void 0===p?r.resolution:{...r.resolution,author:"sdk",definitions:void 0};return void 0!==p&&void 0!==u.tsType&&/^\$?DomainEntity$/.test(u.tsType)?a:y(u,{resolution:d,openRefs:i})},p=(t,r,n)=>{switch(t){case"string":return[{kind:"string"}];case"number":case"integer":return[{kind:"number"}];case"boolean":return[{kind:"boolean"}];case"null":return[{kind:"null"}];case"array":return((t,r)=>{let{items:n}=t;return n?e(n)?a:[{kind:"array",element:y(n,r)}]:[{kind:"array",element:a}]})(r,n);case"object":let i="sdk"===n.resolution.author;if(i&&(!r.properties&&(void 0===r.additionalProperties||"object"==typeof r.additionalProperties&&0===Object.keys(r.additionalProperties).length)||r.properties&&0===Object.keys(r.properties).length))return a;if("object"==typeof r.additionalProperties)return[{kind:"object",index:y(r.additionalProperties,n)}];if(!r.properties)return[{kind:"object"}];let o=new Set(r.required??[]),l=new Map;for(let[e,t]of Object.entries(r.properties))l.set(e,{type:y(t,n),required:o.has(e)});return[{kind:"object",properties:l,...i?{open:!0}:{}}];default:return a}},u=["type","enum","const","$ref","anyOf","oneOf","allOf","properties","items","additionalProperties","tsType"],d=e=>u.some(t=>t in e),y=(t,r)=>{if(void 0!==t.tsType){if("project"===r.resolution.author||o.has(t.tsType))return a;let e=i[t.tsType];if(void 0!==e)return s({$ref:`phx:${e}`},r);let n=NAMED_STRINGS[t.tsType];if(n)return t.tsType===l?entityIdValueType(t.references,r.resolution):[{kind:"string",named:{name:t.tsType,...n}}]}if(void 0!==t.$ref)return s({...t,$ref:t.$ref},r);if(t.enum)return t.enum.flatMap(literalValueType);let n=t.const;if(void 0!==n)return literalValueType(n);let u=t.anyOf??t.oneOf;return u?u.flatMap(e=>y(e,r)):t.allOf?((e,t)=>{let[r,...n]=e.filter(d);return r&&0===n.length?y(r,t):a})(t.allOf,r):"string"==typeof t.type?p(t.type,t,r):e(t.type)?t.type.flatMap(e=>p(e,t,r)):a};export const ValueType=(e,t)=>y(e,{resolution:t,openRefs:new Set});export const hasUnknownMember=e=>e.some(e=>"unknown"===e.kind);
|
package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ParseContext, SchemaPathSegment } from '../../../../core/index.js';
|
|
2
|
+
import type { ComponentReadBindingContext } from './read-binding.js';
|
|
3
|
+
type ComponentInstance = Pick<ComponentReadBindingContext, 'entityKey' | 'componentName' | 'instanceName'>;
|
|
4
|
+
/** Writes a path inside a component instance's props, such as `options[0].label`. */
|
|
5
|
+
export declare const formatComponentPropPath: (path: readonly SchemaPathSegment[]) => string;
|
|
6
|
+
/**
|
|
7
|
+
* Names a place in a component instance for a diagnostic: `Entity.component.instance`, followed by
|
|
8
|
+
* the path inside the instance (a prop path or a filter criterion) when there is one.
|
|
9
|
+
*/
|
|
10
|
+
export declare const componentPath: (instance: ComponentInstance, path: readonly SchemaPathSegment[]) => string;
|
|
11
|
+
/** The parse context at a place in a component instance, so a diagnostic carries its spec path. */
|
|
12
|
+
export declare const componentParseContext: (parsingContext: ParseContext, instance: ComponentInstance, path: readonly SchemaPathSegment[]) => ParseContext;
|
|
13
|
+
export {};
|
package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const formatComponentPropPath=t=>t.reduce((t,n)=>"number"==typeof n?`${t}[${n}]`:0===t.length?n:`${t}.${n}`,"");export const componentPath=(t,n)=>{let e=`${String(t.entityKey)}.${t.componentName}.${String(t.instanceName)}`;return 0===n.length?e:`${e}.${formatComponentPropPath(n)}`};export const componentParseContext=(t,n,e)=>t.at(String(n.entityKey),n.componentName,String(n.instanceName),...e.map(String));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export*from"./read-binding.js";export*from"./write-binding.js";
|
|
1
|
+
export*from"./component-path.js";export*from"./read-binding.js";export*from"./read-binding-type.js";export*from"./write-binding.js";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { SchemaPathSegment } from '../../../../core/index.js';
|
|
2
|
+
import { type ValueType, type ValueTypeResolution } from '../../common/index.js';
|
|
3
|
+
import { type ComponentReadBindingContext } from './read-binding.js';
|
|
4
|
+
/** What the type check of a read binding needs besides the binding's own context. */
|
|
5
|
+
export interface ReadBindingTypeContext extends ComponentReadBindingContext {
|
|
6
|
+
/** Resolves the refs of the entity's field schemas; the schemas are the project's. */
|
|
7
|
+
readonly typeResolution: Omit<ValueTypeResolution, 'author' | 'definitions'>;
|
|
8
|
+
}
|
|
9
|
+
/** A `$read` or `$bind` of a shape field and the place in the component where it is read. */
|
|
10
|
+
export interface ReadBindingTypeCheck {
|
|
11
|
+
readonly marker: '$read' | '$bind';
|
|
12
|
+
readonly target: string;
|
|
13
|
+
/** Where in the component the value goes: a prop path or a filter criterion, or empty for the whole state. */
|
|
14
|
+
readonly path: readonly SchemaPathSegment[];
|
|
15
|
+
/** The type the component expects there. */
|
|
16
|
+
readonly expected: ValueType;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Reports a `$read` or `$bind` of a shape field whose type does not fit the type the component
|
|
20
|
+
* expects where the value goes, which the type check of generated code rejects. An expression
|
|
21
|
+
* target is checked where the expression's type is settled; an unknown field is reported by
|
|
22
|
+
* {@link ComponentReadBinding}.
|
|
23
|
+
*/
|
|
24
|
+
export declare const checkReadBindingType: (check: ReadBindingTypeCheck, context: ReadBindingTypeContext) => void;
|
package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{DiagnosticCode as e,diagnosticMessages as t}from"../../../../errors/index.js";import{entityIdValueType as r,formatValueType as o,isAssignableValueType as i,ValueType as n}from"../../common/index.js";import{componentParseContext as p,componentPath as a}from"./component-path.js";import{isExpressionReadTarget as m}from"./read-binding.js";export const checkReadBindingType=(s,d)=>{if(m(s.target))return;let c=((e,t)=>{if("id"===e)return r(String(t.entityKey),t.typeResolution);let o=t.resolvedShape.fieldSchemas.get(e);return o&&n(o,{...t.typeResolution,author:"project"})})(s.target,d);!c||i(c,s.expected)||p(d.parsingContext,d,s.path).error(e.COMPONENT_BINDING_TYPE_MISMATCH,t.COMPONENT_BINDING_TYPE_MISMATCH(a(d,s.path),`${s.marker}: ${s.target}`,o(c),o(s.expected)))};
|
package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { EnhancedJsonSchemaType } from '../../../core/index.js';
|
|
2
|
+
import { ValueType, type ValueTypeResolution } from '../common/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* The type of a system component's state, read from its JSON schema. The schemas state the same
|
|
5
|
+
* types as the components' TypeScript state types, except that a brand or template literal is known
|
|
6
|
+
* only by the `tsType` that names it. Read once per component schema.
|
|
7
|
+
*/
|
|
8
|
+
export declare const componentStateType: (componentSchema: EnhancedJsonSchemaType, resolution: Omit<ValueTypeResolution, 'author' | 'definitions'>) => ValueType;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ValueType as e}from"../common/index.js";let t=new WeakMap;export const componentStateType=(n,o)=>{let i=t.get(n);if(i)return i;let r=e(n,{...o,author:"sdk",definitions:n.definitions});return t.set(n,r),r};
|
package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { EnhancedJsonSchemaType, FILTER_CRITERION_KEYS } from '../../../core/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* The type each filter criterion takes, as an SDK schema that states exactly the TypeScript type of
|
|
4
|
+
* `ComponentSystemFilterProps`: the modes, roles and viewports are their literal unions and the
|
|
5
|
+
* entity ids are `DomainEntityId`s. `FILTER_CRITERION_SCHEMAS`, which infers the type of an
|
|
6
|
+
* expression read in a criterion, is wider where the JSON schema of the filter is.
|
|
7
|
+
*/
|
|
8
|
+
export declare const FILTER_CRITERION_TYPE_SCHEMAS: Readonly<Record<(typeof FILTER_CRITERION_KEYS)[number], EnhancedJsonSchemaType>>;
|
|
9
|
+
/**
|
|
10
|
+
* The type a root filter (`$filter: { $read: x }`) takes, `ComponentSystemFilter`: a boolean, or an
|
|
11
|
+
* object of the criteria other than the export ones.
|
|
12
|
+
*/
|
|
13
|
+
export declare const ROOT_FILTER_TYPE_SCHEMA: EnhancedJsonSchemaType;
|
package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{SessionRole as e}from"@salsita-ai/contracts/api";import{VIEWPORTS as t}from"#package/domain";let r={type:"string",tsType:"DomainEntityId"},a={anyOf:[r,{type:"object",properties:{id:r},required:["id"]}]},i={anyOf:[{type:"array",items:a},a]},s={type:"array",items:{type:"string"}},o={type:"boolean"};export const FILTER_CRITERION_TYPE_SCHEMAS={navigationStates:s,viewStates:s,toolStates:s,exportStates:s,modes:{type:"array",items:{enum:["owner","read","finalize"]}},roles:{type:"array",items:{enum:Object.values(e)}},selectedEntityIds:i,hoveredEntityIds:i,draggedEntityIds:i,exportedEntityIds:i,active:o,fullscreen:o,debug:o,viewports:{type:"array",items:{enum:[...t]}}};let n=new Set(["exportedEntityIds","exportStates"]),p=Object.fromEntries(Object.entries(FILTER_CRITERION_TYPE_SCHEMAS).filter(([e])=>!n.has(e)));export const ROOT_FILTER_TYPE_SCHEMA={anyOf:[o,{type:"object",properties:p}]};
|