@salsita-ai/sdk 0.50.0-develop.d87b28256e → 0.50.0-develop.d9534cf412
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 +5 -1
- package/dist/admin/AdminShell.js +1 -1
- package/dist/admin/legacy-admin/Application.js +1 -1
- package/dist/application/index.d.ts +1 -0
- package/dist/application/index.js +1 -1
- package/dist/application/mount-application.d.ts +1 -1
- package/dist/application/mount-application.js +1 -1
- package/dist/application/mount-configurator.d.ts +19 -0
- package/dist/application/mount-configurator.js +1 -0
- package/dist/application/mounted-application-runtime.d.ts +4 -0
- package/dist/application/mounted-application-runtime.js +1 -0
- package/dist/application/register-web-component.d.ts +2 -0
- package/dist/application/register-web-component.js +1 -0
- package/dist/application-spec/core/enhanced-json-value.d.ts +2 -31
- package/dist/application-spec/core/enhanced-json-value.js +1 -1
- package/dist/application-spec/core/index.d.ts +1 -3
- package/dist/application-spec/core/index.js +1 -1
- package/dist/application-spec/core/json-schema.d.ts +2 -52
- package/dist/application-spec/core/markers/index.d.ts +1 -1
- package/dist/application-spec/core/markers/index.js +1 -1
- package/dist/application-spec/core/markers/msg-marker.d.ts +2 -28
- package/dist/application-spec/core/markers/msg-marker.js +1 -1
- package/dist/application-spec/core/markers/raw-eval-write-marker.d.ts +1 -1
- package/dist/application-spec/core/markers/raw-eval-write-marker.js +1 -1
- package/dist/application-spec/core/markers/raw-read-write-marker.js +1 -1
- package/dist/application-spec/errors/diagnostic-codes.d.ts +17 -1
- package/dist/application-spec/errors/diagnostic-codes.js +1 -1
- package/dist/application-spec/errors/diagnostic-messages.d.ts +25 -2
- package/dist/application-spec/errors/diagnostic-messages.js +1 -1
- package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
- package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
- 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/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/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.js +24 -22
- package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
- package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
- package/dist/application-spec/generate-application/code/templates/index.d.ts +2 -6
- package/dist/application-spec/generate-application/code/templates/index.js +1 -1
- package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.d.ts +10 -0
- package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.js +7 -0
- package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
- package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +14 -7
- package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -2
- package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -4
- 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 +2 -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 +3 -4
- package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +7 -4
- 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/application-runtime.d.ts +17 -4
- package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/application-spec-slice.d.ts +71 -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 +3 -4
- package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +7 -5
- 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/create-application.d.ts +57 -0
- package/dist/application-spec/generate-application/runtime/create-application.js +1 -0
- package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +1 -2
- package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +1 -1
- package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -1
- package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +1 -2
- package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -1
- package/dist/application-spec/generate-application/runtime/generate-runtime-instance.d.ts +1 -1
- package/dist/application-spec/generate-application/runtime/generate-runtime-instance.js +1 -1
- 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/sections/actions-runtime.d.ts +1 -2
- package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +1 -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 +1 -1
- package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +1 -2
- package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +9 -4
- 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 +1 -2
- package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/sections/preset-runtime.d.ts +2 -3
- package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +1 -1
- package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +1 -1
- 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/encoded-runtime-spec.d.ts +3 -2
- package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +124 -24
- package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -1
- package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +1 -1
- package/dist/application-spec/parse-application-files/merge/merged-assistant.d.ts +13 -4
- package/dist/application-spec/parse-application-files/merge/merged-assistant.js +1 -1
- package/dist/application-spec/parse-application-files/merge/merged-infra.d.ts +4 -11
- package/dist/application-spec/parse-application-files/merge/merged-transformers.d.ts +2 -4
- package/dist/application-spec/parse-application-files/parse-application-files.js +1 -1
- package/dist/application-spec/parse-application-files/raw-spec/raw-acl.d.ts +2 -2
- package/dist/application-spec/parse-application-files/raw-spec/raw-acl.js +1 -1
- package/dist/application-spec/parse-application-files/raw-spec/raw-admin-pages.d.ts +3 -24
- package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +58 -23
- package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
- package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.d.ts +1 -1
- package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.js +1 -1
- package/dist/application-spec/parse-application-files/raw-spec/raw-resources.d.ts +19 -64
- package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-pages.d.ts +3 -20
- package/dist/application-spec/parse-application-files/spec/application/admin-spec/states.d.ts +3 -5
- package/dist/application-spec/parse-application-files/spec/application/configurator-spec/states.d.ts +3 -8
- package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding.d.ts +3 -13
- package/dist/application-spec/parse-application-files/spec/components/bindings/write-binding.d.ts +4 -32
- package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +4 -10
- package/dist/application-spec/parse-application-files/spec/components/components.d.ts +3 -4
- package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -2
- package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
- package/dist/application-spec/parse-application-files/spec/components/sdk-component-entry.d.ts +1 -1
- package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +2 -3
- 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 +2 -3
- package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +2 -2
- package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -29
- package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
- package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.d.ts +4 -71
- package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
- package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +2 -2
- package/dist/application-spec/parse-application-files/spec/invariants/invariant.d.ts +5 -21
- package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +4 -14
- package/dist/application-spec/parse-application-files/spec/model/aliases.d.ts +3 -9
- package/dist/application-spec/parse-application-files/spec/model/common-types.d.ts +6 -14
- package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +6 -31
- package/dist/application-spec/parse-application-files/spec/model/entity-types.d.ts +3 -8
- package/dist/application-spec/parse-application-files/spec/model/model-version-key.d.ts +3 -3
- package/dist/application-spec/parse-application-files/spec/model/names/action-name.d.ts +3 -7
- package/dist/application-spec/parse-application-files/spec/model/names/alias-name.d.ts +3 -7
- package/dist/application-spec/parse-application-files/spec/model/names/entity-or-alias-name.d.ts +3 -8
- package/dist/application-spec/parse-application-files/spec/model/names/entity-type-name.d.ts +3 -8
- package/dist/application-spec/parse-application-files/spec/model/names/expression-name.d.ts +3 -6
- package/dist/application-spec/parse-application-files/spec/model/names/instance-name.d.ts +3 -7
- package/dist/application-spec/parse-application-files/spec/model/names/invariant-name.d.ts +3 -3
- package/dist/application-spec/parse-application-files/spec/model/names/shape-property-name.d.ts +3 -11
- package/dist/application-spec/parse-application-files/spec/model/names/violation-type-name.d.ts +3 -3
- package/dist/application-spec/parse-application-files/spec/model/presets.d.ts +6 -29
- package/dist/application-spec/parse-application-files/spec/sections/actions.d.ts +6 -23
- package/dist/application-spec/parse-application-files/spec/sections/app-metadata.d.ts +3 -18
- package/dist/application-spec/parse-application-files/spec/sections/application-version.d.ts +3 -7
- 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/application-spec/parse-application-files/spec/sections/assistant/assistant.js +1 -1
- package/dist/application-spec/parse-application-files/spec/sections/data-spec/chunks.d.ts +6 -23
- package/dist/application-spec/parse-application-files/spec/sections/data-spec/custom-data-spec.d.ts +1 -16
- package/dist/application-spec/parse-application-files/spec/sections/data-spec/data-entry-key.d.ts +3 -9
- package/dist/application-spec/parse-application-files/spec/sections/data-spec/data-spec.d.ts +1 -10
- package/dist/application-spec/parse-application-files/spec/sections/data-spec/swatch-data-spec.d.ts +1 -14
- package/dist/application-spec/parse-application-files/spec/sections/state-value.d.ts +3 -7
- package/dist/application-spec/parse-application-files/spec/sections/theme.d.ts +3 -10
- package/dist/application-spec/parse-application-files/spec/sections/transformers.d.ts +4 -11
- package/dist/application-spec/parse-application-files/spec/sections/ui.d.ts +3 -12
- package/dist/client/authorized-client.d.ts +3 -1
- package/dist/client/authorized-client.js +1 -1
- package/dist/client/contract.d.ts +30 -1
- package/dist/client/contract.js +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/local-authorized-client.d.ts +3 -1
- package/dist/client/local-authorized-client.js +1 -1
- package/dist/client/memory-authorized-client.d.ts +4 -1
- package/dist/client/memory-authorized-client.js +1 -1
- package/dist/client/phoenix-api.d.ts +259 -1
- 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 +68 -9
- 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 +52 -9
- package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +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/entity-meta.d.ts +82 -55
- 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 +66 -4
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.d.ts +40 -0
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.js +1 -0
- 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 +91 -7
- package/dist/configurator/common/configurator-interface.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 +0 -6
- package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -1
- package/dist/configurator/configuration-not-found-page/index.d.ts +2 -2
- package/dist/configurator/configuration-not-found-page/index.js +1 -1
- package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
- package/dist/configurator/configurator-context/configurator-hooks/index.d.ts +0 -1
- package/dist/configurator/configurator-context/configurator-hooks/index.js +1 -1
- package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +4 -0
- package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.js +1 -1
- package/dist/configurator/configurator-context/index.d.ts +0 -5
- package/dist/configurator/configurator-context/index.js +1 -1
- package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.d.ts +3 -3
- package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.js +1 -1
- package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.d.ts +0 -5
- package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.js +1 -1
- package/dist/configurator/configurator-error-page/index.d.ts +1 -2
- package/dist/configurator/configurator-error-page/index.js +1 -1
- package/dist/configurator/index.d.ts +10 -2
- 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/LoadedConfiguratorDetailPage.js +1 -1
- package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
- package/dist/configurator/pages/default-configurator-elements.d.ts +6 -1
- package/dist/configurator/pages/default-configurator-elements.js +1 -1
- package/dist/configurator/pages/default-elements/index.d.ts +1 -0
- package/dist/configurator/pages/default-elements/index.js +1 -1
- 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/error-boundaries/BuiltInGeneralErrorFallback.d.ts +5 -0
- package/dist/configurator/pages/error-boundaries/BuiltInGeneralErrorFallback.js +1 -0
- package/dist/configurator/pages/error-boundaries/DevContextFallback.js +1 -1
- package/dist/configurator/pages/error-boundaries/DevLoadingFallback.js +1 -1
- package/dist/configurator/pages/error-boundaries/LoadingErrorBoundary.js +1 -1
- package/dist/configurator/pages/error-boundaries/index.d.ts +1 -0
- package/dist/configurator/pages/error-boundaries/index.js +1 -1
- package/dist/configurator/{configurator-context → pages/provider-slots}/ConfiguratorResponsiveProvider.d.ts +3 -3
- package/dist/configurator/pages/provider-slots/ConfiguratorResponsiveProvider.js +1 -0
- package/dist/configurator/pages/provider-slots/ContainerSlotProvider.d.ts +3 -0
- package/dist/configurator/pages/provider-slots/ContainerSlotProvider.js +1 -0
- package/dist/configurator/pages/provider-slots/LoaderSlotProvider.d.ts +3 -0
- package/dist/configurator/pages/provider-slots/LoaderSlotProvider.js +1 -0
- package/dist/configurator/pages/provider-slots/MessageHostSlotProvider.d.ts +3 -0
- package/dist/configurator/pages/provider-slots/MessageHostSlotProvider.js +1 -0
- package/dist/configurator/pages/provider-slots/SceneResourcesSlotProvider.d.ts +3 -0
- package/dist/configurator/pages/provider-slots/SceneResourcesSlotProvider.js +1 -0
- package/dist/configurator/pages/provider-slots/ThemeSlotProvider.d.ts +3 -0
- package/dist/configurator/pages/provider-slots/ThemeSlotProvider.js +1 -0
- package/dist/configurator/pages/provider-slots/configurator-provider-slot-elements.d.ts +3 -0
- package/dist/configurator/pages/provider-slots/configurator-provider-slot-elements.js +1 -0
- package/dist/configurator/pages/provider-slots/index.d.ts +6 -0
- package/dist/configurator/pages/provider-slots/index.js +1 -0
- package/dist/configurator/pages/ui-elements/BuiltInInvalidDeploymentReload.d.ts +2 -0
- package/dist/configurator/pages/ui-elements/BuiltInInvalidDeploymentReload.js +1 -0
- package/dist/configurator/pages/ui-elements/configurator-ui-elements.d.ts +3 -0
- package/dist/configurator/pages/ui-elements/configurator-ui-elements.js +1 -0
- package/dist/configurator/pages/ui-elements/index.d.ts +2 -0
- package/dist/configurator/pages/ui-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/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/AssistantComposer.d.ts +6 -0
- package/dist/configurator/ui/assistant/AssistantComposer.js +2 -1
- package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +1 -1
- package/dist/configurator/ui/assistant/AssistantMarkdown.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/attachments/MessageImages.d.ts +11 -0
- package/dist/configurator/ui/assistant/attachments/MessageImages.js +1 -0
- package/dist/configurator/ui/assistant/attachments/index.d.ts +2 -0
- package/dist/configurator/ui/assistant/attachments/index.js +1 -0
- package/dist/configurator/ui/assistant/attachments/prepare-image.d.ts +19 -0
- package/dist/configurator/ui/assistant/attachments/prepare-image.js +1 -0
- package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -1
- package/dist/configurator/ui/assistant/form/compose-answer.d.ts +1 -1
- package/dist/configurator/ui/assistant/form/compose-answer.js +1 -1
- package/dist/configurator/ui/assistant/form/form-model.d.ts +3 -4
- package/dist/configurator/ui/assistant/form/form-state.d.ts +1 -1
- package/dist/configurator/ui/assistant/form/index.d.ts +2 -0
- package/dist/configurator/ui/assistant/form/index.js +1 -1
- package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +3 -2
- package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -1
- package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +1 -1
- package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -1
- 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/{form-element-definition.d.ts → registry/form-element-definition.d.ts} +3 -1
- package/dist/configurator/ui/assistant/form/registry/form-element-definition.js +1 -0
- package/dist/configurator/ui/assistant/form/{form-registry.d.ts → registry/form-registry.d.ts} +2 -2
- 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 +4 -1
- 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 +4 -1
- package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +4 -1
- package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -1
- 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 +4 -1
- package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -1
- 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 +20 -16
- package/dist/configurator/ui/assistant/form-elements/index.d.ts +4 -0
- package/dist/configurator/ui/assistant/form-elements/index.js +1 -1
- package/dist/configurator/ui/assistant/index.d.ts +3 -0
- package/dist/configurator/ui/assistant/index.js +1 -1
- package/dist/configurator/ui/assistant/resource-image/index.d.ts +1 -1
- package/dist/configurator/ui/assistant/resource-image/index.js +1 -1
- package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +0 -9
- package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -1
- 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 +3 -0
- package/dist/configurator/ui/assistant/screenshots/index.js +1 -0
- package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +22 -0
- package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -0
- package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.d.ts +8 -0
- package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.js +1 -0
- package/dist/configurator/ui/assistant/streamed-markdown.d.ts +2 -2
- package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
- package/dist/configurator/ui/assistant/thread-items.d.ts +2 -0
- package/dist/configurator/ui/assistant/thread-items.js +1 -1
- package/dist/configurator/ui/assistant/tool-chip.d.ts +19 -9
- package/dist/configurator/ui/assistant/tool-chip.js +1 -1
- package/dist/configurator/ui/configurator-layout/slots/canvas/GPUAccelerationDisabled.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/canvas/WebGLNotSupported.js +1 -1
- package/dist/configurator/ui/configurator-layout/slots/readonly-banner/CloneToEditDialog.js +1 -1
- package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.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/MobilePreview.js +1 -1
- package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -1
- package/dist/configurator/ui/index.d.ts +1 -0
- package/dist/configurator/ui/index.js +1 -1
- package/dist/configurator/ui/legacy/chat/MobileChat.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/simple/SimpleSidebar.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/StepsSideBar.js +1 -1
- package/dist/configurator/ui/legacy/layout/tabs/TabsSidebar.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/LanguageMenuAction.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/LanguageToolbarButton.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/ShareToolbarButton.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/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/use-basic-sidebar-footer.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 +0 -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.js +1 -1
- package/dist/docs/3d-scene/cameras/custom.mdx +4 -2
- package/dist/docs/complex-use-cases/focus-mode.mdx +2 -0
- package/dist/docs/drag-and-drop/room-planner.mdx +1 -1
- package/dist/docs/fabs/basic.mdx +4 -0
- package/dist/docs/index.json +95 -1
- package/dist/docs/integrations/webcomponent-api/basics.mdx +2 -0
- package/dist/docs/layouts/custom-layout.mdx +321 -159
- 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 +3698 -0
- package/dist/docs/layouts/gallery/sunfold-solar.mdx +2683 -0
- package/dist/docs/layouts/gallery/tidepool-aquascape.mdx +5203 -0
- package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
- package/dist/docs/other-features/navigation-hotspot.mdx +2 -0
- package/dist/docs/phoenix/configurator-interface.mdx +101 -17
- package/dist/docs/phoenix/domain-model.mdx +4 -1
- package/dist/docs/phoenix/layout-slots.mdx +25 -4
- package/dist/docs/phoenix/migration-guide.mdx +3 -3
- package/dist/docs/phoenix/phoenix-cli.mdx +40 -7
- package/dist/docs/phoenix/project-structure.mdx +23 -19
- package/dist/docs/phoenix/sdk-builder-workflow.mdx +7 -5
- package/dist/docs/phoenix/sessions-and-access.mdx +2 -0
- package/dist/docs/phoenix/testing.mdx +8 -3
- package/dist/docs/phoenix/webhooks.mdx +9 -1
- package/dist/docs/selection-and-highlight/hotspots.mdx +2 -0
- package/dist/domain/application/application-config.d.ts +6 -24
- package/dist/domain/application/assistant/assistant-manifest.d.ts +29 -4
- package/dist/domain/application/assistant/assistant-manifest.js +1 -1
- package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +12 -9
- package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -1
- package/dist/domain/application/assistant/build-assistant-lenses.js +1 -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 +4 -5
- 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 +4 -4
- package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
- package/dist/domain/application/assistant-mutations.js +1 -1
- package/dist/domain/application/configurator-builder.d.ts +7 -1
- package/dist/domain/application/configurator-builder.js +1 -1
- package/dist/domain/application/index.d.ts +1 -1
- package/dist/domain/application/index.js +1 -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/available-system-components.d.ts +11 -0
- package/dist/domain/available-system-components/available-system-components.js +1 -0
- package/dist/domain/available-system-components/index.d.ts +1 -0
- package/dist/domain/available-system-components/index.js +1 -0
- package/dist/domain/{domain-builder.d.ts → domain-builder/domain-builder.d.ts} +11 -5
- package/dist/domain/domain-builder/domain-builder.js +1 -0
- package/dist/domain/domain-builder/index.d.ts +1 -0
- package/dist/domain/domain-builder/index.js +1 -0
- 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/application.d.ts +39 -0
- package/dist/domain/domain-runtime/application.js +1 -0
- 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 +44 -4
- package/dist/domain/domain-runtime/domain-runtime.js +1 -1
- package/dist/domain/domain-runtime/environment/initialize.d.ts +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 +2 -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 +15 -1
- 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 +30 -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/index.d.ts +3 -2
- package/dist/domain/index.js +1 -1
- package/dist/domain/mocks/create-mock-domain-runtime.d.ts +9 -0
- package/dist/domain/spec/application/admin-pages-section.d.ts +29 -0
- package/dist/domain/spec/application/admin-pages.d.ts +26 -0
- package/dist/domain/spec/application/admin-states.d.ts +5 -0
- package/dist/domain/spec/application/configurator-states.d.ts +8 -0
- package/dist/domain/spec/application/index.d.ts +5 -0
- package/dist/domain/spec/application/index.js +1 -0
- package/dist/domain/spec/components/bindings/index.d.ts +2 -0
- package/dist/domain/spec/components/bindings/read-binding.d.ts +13 -0
- package/dist/domain/spec/components/bindings/write-binding.d.ts +32 -0
- package/dist/domain/spec/components/bindings/write-binding.js +1 -0
- package/dist/{application-spec/parse-application-files → domain}/spec/components/component-entry.d.ts +3 -3
- package/dist/domain/spec/components/component-entry.js +1 -0
- package/dist/{application-spec/core → domain/spec}/components/component-filter.d.ts +3 -2
- package/dist/domain/spec/components/component-filters.d.ts +10 -0
- package/dist/domain/spec/components/component-filters.js +1 -0
- package/dist/domain/spec/components/components.d.ts +4 -0
- package/dist/domain/spec/components/components.js +1 -0
- package/dist/domain/spec/components/index.d.ts +6 -0
- package/dist/domain/spec/enhanced-json/enhanced-json-value.d.ts +30 -0
- package/dist/domain/spec/enhanced-json/enhanced-json-value.js +1 -0
- package/dist/domain/spec/enhanced-json/index.d.ts +1 -0
- package/dist/domain/spec/enhanced-json/index.js +1 -0
- package/dist/{application-spec/parse-application-files → domain}/spec/expressions/expression.d.ts +9 -3
- package/dist/domain/spec/expressions/expression.js +1 -0
- package/dist/domain/spec/expressions/expressions.d.ts +27 -0
- package/dist/domain/spec/expressions/expressions.js +1 -0
- package/dist/domain/spec/expressions/index.d.ts +5 -0
- package/dist/domain/spec/expressions/memo-eval-plan.d.ts +70 -0
- package/dist/domain/spec/expressions/memo-eval-plan.js +1 -0
- package/dist/domain/spec/expressions/relation-expression-params.js +1 -0
- package/dist/domain/spec/index.d.ts +9 -0
- package/dist/domain/spec/index.js +1 -0
- package/dist/domain/spec/invariants/index.d.ts +2 -0
- package/dist/domain/spec/invariants/index.js +1 -0
- package/dist/domain/spec/invariants/invariant.d.ts +24 -0
- package/dist/domain/spec/invariants/invariant.js +1 -0
- package/dist/domain/spec/invariants/invariants.d.ts +14 -0
- package/dist/domain/spec/invariants/invariants.js +1 -0
- package/dist/domain/spec/json-schema.d.ts +52 -0
- package/dist/domain/spec/json-schema.js +1 -0
- package/dist/domain/spec/markers/index.d.ts +3 -0
- package/dist/domain/spec/markers/index.js +1 -0
- package/dist/domain/spec/markers/msg-marker.d.ts +28 -0
- package/dist/domain/spec/markers/msg-marker.js +1 -0
- package/dist/domain/spec/model/aliases.d.ts +9 -0
- package/dist/domain/spec/model/aliases.js +1 -0
- package/dist/domain/spec/model/common-types.d.ts +15 -0
- package/dist/domain/spec/model/common-types.js +1 -0
- package/dist/domain/spec/model/defaults.d.ts +33 -0
- package/dist/domain/spec/model/defaults.js +1 -0
- package/dist/domain/spec/model/entity-types.d.ts +8 -0
- package/dist/domain/spec/model/entity-types.js +1 -0
- package/dist/domain/spec/model/index.d.ts +7 -0
- package/dist/domain/spec/model/index.js +1 -0
- package/dist/domain/spec/model/model-version-key.d.ts +3 -0
- package/dist/domain/spec/model/model-version-key.js +1 -0
- package/dist/domain/spec/model/names/action-name.d.ts +7 -0
- package/dist/domain/spec/model/names/action-name.js +1 -0
- package/dist/domain/spec/model/names/alias-name.d.ts +7 -0
- package/dist/domain/spec/model/names/alias-name.js +1 -0
- package/dist/domain/spec/model/names/entity-or-alias-name.d.ts +8 -0
- package/dist/domain/spec/model/names/entity-or-alias-name.js +1 -0
- package/dist/domain/spec/model/names/entity-type-name.d.ts +8 -0
- package/dist/domain/spec/model/names/entity-type-name.js +1 -0
- package/dist/domain/spec/model/names/expression-name.d.ts +6 -0
- package/dist/domain/spec/model/names/expression-name.js +1 -0
- package/dist/domain/spec/model/names/index.d.ts +9 -0
- package/dist/domain/spec/model/names/index.js +1 -0
- package/dist/domain/spec/model/names/instance-name.d.ts +7 -0
- package/dist/domain/spec/model/names/instance-name.js +1 -0
- package/dist/domain/spec/model/names/invariant-name.d.ts +3 -0
- package/dist/domain/spec/model/names/invariant-name.js +1 -0
- package/dist/domain/spec/model/names/shape-property-name.d.ts +11 -0
- package/dist/domain/spec/model/names/shape-property-name.js +1 -0
- package/dist/domain/spec/model/names/violation-type-name.d.ts +3 -0
- package/dist/domain/spec/model/names/violation-type-name.js +1 -0
- package/dist/domain/spec/model/presets.d.ts +30 -0
- package/dist/domain/spec/model/presets.js +1 -0
- package/dist/domain/spec/sections/actions.d.ts +23 -0
- package/dist/domain/spec/sections/actions.js +1 -0
- package/dist/domain/spec/sections/app-metadata.d.ts +18 -0
- package/dist/domain/spec/sections/app-metadata.js +1 -0
- package/dist/domain/spec/sections/application-version.d.ts +7 -0
- package/dist/domain/spec/sections/application-version.js +1 -0
- package/dist/domain/spec/sections/data-spec/chunks.d.ts +23 -0
- package/dist/domain/spec/sections/data-spec/chunks.js +1 -0
- package/dist/domain/spec/sections/data-spec/custom-data-spec-entry.d.ts +16 -0
- package/dist/domain/spec/sections/data-spec/custom-data-spec-entry.js +1 -0
- package/dist/domain/spec/sections/data-spec/data-entry-key.d.ts +9 -0
- package/dist/domain/spec/sections/data-spec/data-entry-key.js +1 -0
- package/dist/domain/spec/sections/data-spec/index.d.ts +5 -0
- package/dist/domain/spec/sections/data-spec/index.js +1 -0
- package/dist/domain/spec/sections/data-spec/parsed-data-spec-entries.d.ts +10 -0
- package/dist/domain/spec/sections/data-spec/parsed-data-spec-entries.js +1 -0
- package/dist/domain/spec/sections/data-spec/swatch-data-spec-entry.d.ts +14 -0
- package/dist/domain/spec/sections/data-spec/swatch-data-spec-entry.js +1 -0
- package/dist/domain/spec/sections/index.d.ts +9 -0
- package/dist/domain/spec/sections/index.js +1 -0
- package/dist/domain/spec/sections/infra/acl.d.ts +12 -0
- package/dist/domain/spec/sections/infra/acl.js +1 -0
- package/dist/domain/spec/sections/infra/index.d.ts +3 -0
- package/dist/domain/spec/sections/infra/index.js +1 -0
- package/dist/domain/spec/sections/infra/resource-entry.d.ts +46 -0
- package/dist/domain/spec/sections/infra/resource-entry.js +1 -0
- package/dist/domain/spec/sections/infra/resources-config.d.ts +10 -0
- package/dist/domain/spec/sections/infra/resources-config.js +1 -0
- package/dist/domain/spec/sections/state-value.d.ts +7 -0
- package/dist/domain/spec/sections/state-value.js +1 -0
- package/dist/domain/spec/sections/theme.d.ts +10 -0
- package/dist/domain/spec/sections/theme.js +1 -0
- package/dist/domain/spec/sections/transformers.d.ts +15 -0
- package/dist/domain/spec/sections/transformers.js +1 -0
- package/dist/domain/spec/sections/ui.d.ts +12 -0
- package/dist/domain/spec/sections/ui.js +1 -0
- package/dist/domain/system-definitions.js +1 -1
- package/dist/domain/utils/index.d.ts +2 -0
- package/dist/domain/utils/index.js +1 -0
- 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/graphql/GraphQLPanel.js +1 -1
- package/dist/editor/screenshot/ScreenshotHandler.js +1 -1
- 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 +16 -0
- 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/services/webhook-service/transport.js +1 -1
- package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.d.ts +1 -0
- package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.js +1 -1
- package/dist/legacy/webhook-cli/lambda-local/index.js +1 -1
- package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +1 -0
- package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
- package/dist/phoenix/application-spec/generate-project-files.d.ts +1 -0
- package/dist/phoenix/application-spec/index.d.ts +1 -0
- package/dist/phoenix/application-spec/index.js +1 -1
- package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +11 -0
- package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
- package/dist/phoenix/bin.js +1 -1
- package/dist/phoenix/cli.js +1 -1
- package/dist/phoenix/commands/activate-deployment.js +1 -1
- package/dist/phoenix/commands/build.js +1 -1
- package/dist/phoenix/commands/changelog.js +1 -1
- package/dist/phoenix/commands/check.js +1 -1
- package/dist/phoenix/commands/clean.js +1 -1
- package/dist/phoenix/commands/cleanup-environment.js +2 -2
- package/dist/phoenix/commands/create-environment.js +1 -1
- package/dist/phoenix/commands/data.js +1 -1
- package/dist/phoenix/commands/deploy.js +1 -1
- package/dist/phoenix/commands/deployment-build-envs-command.js +1 -1
- package/dist/phoenix/commands/dev.js +4 -5
- package/dist/phoenix/commands/docs.js +1 -1
- package/dist/phoenix/commands/finish-deployment-command.js +1 -1
- package/dist/phoenix/commands/fix.js +1 -1
- package/dist/phoenix/commands/index.d.ts +1 -1
- package/dist/phoenix/commands/index.js +1 -1
- package/dist/phoenix/commands/inspect-assets.js +1 -1
- package/dist/phoenix/commands/list-environments.js +1 -1
- package/dist/phoenix/commands/login.d.ts +4 -1
- package/dist/phoenix/commands/login.js +2 -2
- package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
- package/dist/phoenix/commands/register-deployment.js +1 -1
- package/dist/phoenix/commands/scene.js +1 -1
- package/dist/phoenix/commands/screenshot.js +1 -1
- package/dist/phoenix/commands/state.js +1 -1
- package/dist/phoenix/commands/story-build.js +3 -3
- package/dist/phoenix/commands/story-create.js +1 -1
- package/dist/phoenix/commands/story-dev.js +2 -2
- package/dist/phoenix/commands/sync.js +1 -1
- package/dist/phoenix/commands/variants.js +1 -1
- package/dist/phoenix/editor-server/commands-router.js +1 -1
- package/dist/phoenix/editor-server/editor-server.d.ts +2 -13
- package/dist/phoenix/editor-server/editor-server.js +1 -1
- package/dist/phoenix/editor-server/spec-router.js +1 -1
- package/dist/phoenix/editor-server/trpc.d.ts +2 -12
- package/dist/phoenix/lingui/index.d.ts +1 -0
- package/dist/phoenix/lingui/index.js +1 -0
- package/dist/phoenix/lingui/lingui.d.ts +18 -0
- package/dist/phoenix/lingui/lingui.js +1 -0
- package/dist/phoenix/services/application-spec-project-watcher.d.ts +11 -6
- package/dist/phoenix/services/application-spec-project-watcher.js +2 -2
- package/dist/phoenix/services/cli-credentials.d.ts +3 -0
- package/dist/phoenix/services/cli-credentials.js +1 -1
- package/dist/phoenix/services/cli-exit.d.ts +5 -0
- package/dist/phoenix/services/cli-exit.js +1 -0
- package/dist/phoenix/services/deployment/deployment-preparation-service.d.ts +28 -0
- package/dist/phoenix/services/deployment/deployment-preparation-service.js +1 -0
- package/dist/phoenix/{commands → services/deployment}/generated-env-markers.d.ts +1 -0
- package/dist/phoenix/services/deployment/generated-env-markers.js +1 -0
- package/dist/phoenix/services/deployment/index.d.ts +2 -0
- package/dist/phoenix/services/deployment/index.js +1 -0
- package/dist/phoenix/services/index.d.ts +5 -1
- package/dist/phoenix/services/index.js +1 -1
- package/dist/phoenix/services/lingui-watcher.js +1 -1
- package/dist/phoenix/services/phoenix-store.d.ts +3 -0
- package/dist/phoenix/services/phoenix-store.js +1 -1
- package/dist/phoenix/services/prepare-development-environment.js +1 -1
- package/dist/phoenix/services/session/editor-server-handle.d.ts +5 -0
- package/dist/phoenix/services/session/editor-server-handle.js +1 -0
- package/dist/phoenix/services/session/index.d.ts +2 -0
- package/dist/phoenix/services/session/index.js +1 -0
- package/dist/phoenix/services/session/phoenix-application.d.ts +82 -0
- package/dist/phoenix/services/session/phoenix-application.js +2 -0
- package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.d.ts +9 -0
- package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.js +1 -0
- package/dist/phoenix/services/telemetry/index.d.ts +3 -0
- package/dist/phoenix/services/telemetry/index.js +1 -0
- package/dist/phoenix/services/telemetry/telemetry-client.d.ts +25 -0
- package/dist/phoenix/services/telemetry/telemetry-client.js +1 -0
- package/dist/phoenix/services/telemetry/telemetry-command.d.ts +2 -0
- package/dist/phoenix/services/telemetry/telemetry-command.js +1 -0
- package/dist/phoenix/services/telemetry/telemetry-event.d.ts +44 -0
- package/dist/phoenix/services/telemetry/telemetry-event.js +1 -0
- package/dist/phoenix/services/telemetry/telemetry-state.d.ts +25 -0
- package/dist/phoenix/services/telemetry/telemetry-state.js +2 -0
- package/dist/phoenix/services/vite-config.js +1 -1
- package/dist/phoenix/services/webhook-service/transport.js +1 -1
- package/dist/phoenix/services/webhook-service/tunnel.d.ts +1 -0
- package/dist/phoenix/services/webhook-service/tunnel.js +1 -1
- package/dist/react-sdk/application-runtime/common-services/analytics/analytics-service.d.ts +1 -1
- package/dist/react-sdk/application-runtime/common-services/analytics/frontend-analytics.d.ts +4 -0
- package/dist/react-sdk/application-runtime/common-services/initialize.d.ts +2 -2
- package/dist/react-sdk/application-runtime/domain-application-context/chat-system.d.ts +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 +313 -10
- package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
- package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/ConfiguratorRoutingProvider.d.ts +1 -1
- package/dist/react-sdk/configurator-routing/ConfiguratorRoutingProvider.js +1 -0
- package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/OnGoToIndexHandler.d.ts +1 -2
- package/dist/react-sdk/configurator-routing/OnGoToIndexHandler.js +1 -0
- package/dist/react-sdk/configurator-routing/index.d.ts +3 -0
- package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/index.js +1 -1
- package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/use-power-routing-lifecycle.d.ts +2 -0
- package/dist/react-sdk/configurator-routing/use-power-routing-lifecycle.js +1 -0
- package/dist/react-sdk/configurator-ui-elements/ConfiguratorUiElementHost.d.ts +7 -0
- package/dist/react-sdk/configurator-ui-elements/ConfiguratorUiElementHost.js +1 -0
- package/dist/react-sdk/configurator-ui-elements/ErrorFallbackElement.d.ts +14 -0
- package/dist/react-sdk/configurator-ui-elements/ErrorFallbackElement.js +1 -0
- package/dist/react-sdk/configurator-ui-elements/ErrorFallbackPropsProvider.d.ts +18 -0
- package/dist/react-sdk/configurator-ui-elements/ErrorFallbackPropsProvider.js +1 -0
- package/dist/react-sdk/configurator-ui-elements/PlainErrorFallback.d.ts +5 -0
- package/dist/react-sdk/configurator-ui-elements/PlainErrorFallback.js +1 -0
- package/dist/react-sdk/configurator-ui-elements/configurator-ui-element.d.ts +17 -0
- package/dist/react-sdk/configurator-ui-elements/configurator-ui-element.js +1 -0
- package/dist/react-sdk/configurator-ui-elements/create-configurator-ui-element.d.ts +5 -0
- package/dist/react-sdk/configurator-ui-elements/create-configurator-ui-element.js +1 -0
- package/dist/react-sdk/configurator-ui-elements/index.d.ts +6 -0
- package/dist/react-sdk/configurator-ui-elements/index.js +1 -0
- package/dist/react-sdk/domain-application-context/BackendDataProvider.js +1 -1
- package/dist/react-sdk/domain-application-context/ConfigurationPersistSystemFailureHandler.js +1 -1
- package/dist/react-sdk/domain-application-context/FrontendDataProvider.js +1 -1
- package/dist/react-sdk/domain-application-context/OnPresetLoadedHandler.js +1 -0
- package/dist/react-sdk/domain-application-context/PublishedDataProvider.js +1 -1
- package/dist/react-sdk/domain-application-context/chat-hooks.d.ts +4 -0
- package/dist/react-sdk/domain-application-context/chat-hooks.js +1 -0
- package/dist/react-sdk/domain-application-context/index.d.ts +2 -0
- package/dist/react-sdk/domain-application-context/index.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-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 +4 -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/tab-navigation-hooks.js +1 -1
- package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -1
- package/dist/react-sdk/elements/PhoenixEntityElement.js +1 -1
- package/dist/react-sdk/elements/PhoenixLayoutElement.js +1 -1
- package/dist/react-sdk/elements/index.d.ts +0 -1
- package/dist/react-sdk/index.d.ts +9 -1
- package/dist/react-sdk/index.js +1 -1
- package/dist/react-sdk/integration/IntegrationSubscription.js +1 -0
- package/dist/react-sdk/integration/index.d.ts +1 -0
- package/dist/react-sdk/integration/index.js +1 -0
- package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.d.ts +8 -0
- package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.js +1 -0
- package/dist/react-sdk/lifecycle-providers/LifecycleProviders.js +1 -0
- package/dist/react-sdk/lifecycle-providers/index.d.ts +2 -0
- package/dist/react-sdk/lifecycle-providers/index.js +1 -0
- 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/notifications/index.d.ts +1 -0
- package/dist/react-sdk/notifications/index.js +1 -0
- package/dist/react-sdk/notifications/snackbar-action-button.d.ts +30 -0
- package/dist/react-sdk/notifications/snackbar-action-button.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.js +1 -0
- package/dist/{configurator/configuration-not-found-page → react-sdk/page-elements}/create-configuration-not-found-page.d.ts +7 -1
- package/dist/react-sdk/page-elements/create-configuration-not-found-page.js +1 -0
- package/dist/{configurator/configurator-error-page → react-sdk/page-elements}/create-configurator-error-page.d.ts +6 -1
- 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/preset-selection/PresetSelectionProvider.js +1 -0
- package/dist/react-sdk/preset-selection/index.d.ts +1 -0
- package/dist/react-sdk/preset-selection/index.js +1 -0
- package/dist/react-sdk/provider-slots/ConfiguratorProviderSlotHost.d.ts +11 -0
- package/dist/react-sdk/provider-slots/ConfiguratorProviderSlotHost.js +1 -0
- package/dist/react-sdk/provider-slots/configurator-provider-slot.d.ts +24 -0
- package/dist/react-sdk/provider-slots/configurator-provider-slot.js +1 -0
- package/dist/react-sdk/provider-slots/create-configurator-provider-slot.d.ts +5 -0
- package/dist/react-sdk/provider-slots/create-configurator-provider-slot.js +1 -0
- package/dist/react-sdk/provider-slots/index.d.ts +3 -0
- package/dist/react-sdk/provider-slots/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/SessionServiceProvider.d.ts +5 -0
- 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/components/snackbar/Snackbar.d.ts +24 -3
- package/dist/ui-sdk/components/snackbar/Snackbar.js +1 -1
- 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/Paperclip.d.ts +3 -0
- package/dist/ui-sdk/icons/__generated/Paperclip.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 +6 -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 +2 -2
- package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +11 -9
- package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -1
- package/dist/ui-sdk/theme/types.d.ts +5 -1
- package/dist/watch/glob-matcher.d.ts +4 -4
- package/dist/watch/glob-matcher.js +1 -1
- package/dist/watch/watch.d.ts +4 -4
- package/dist/watch/watch.js +1 -1
- package/package.json +13 -3
- package/schema/domain-spec.json +158 -0
- package/dist/application-spec/core/components/index.d.ts +0 -2
- package/dist/application-spec/core/expressions/index.d.ts +0 -2
- package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.js +0 -1
- package/dist/configurator/configurator-context/ConfiguratorDataProvider.d.ts +0 -2
- package/dist/configurator/configurator-context/ConfiguratorDataProvider.js +0 -1
- package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +0 -1
- package/dist/configurator/configurator-context/IntegrationSubscription.js +0 -1
- package/dist/configurator/configurator-context/LifecycleProviders.js +0 -1
- package/dist/configurator/configurator-context/OnPresetLoadedHandler.js +0 -1
- package/dist/configurator/configurator-context/PresetSelectionProvider.js +0 -1
- package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.d.ts +0 -1
- package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.js +0 -1
- package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +0 -1
- package/dist/configurator/configurator-context/configurator-routing/OnGoToIndexHandler.js +0 -1
- package/dist/configurator/configurator-context/configurator-routing/index.d.ts +0 -2
- package/dist/configurator/configurator-context/configurator-routing/use-power-routing-lifecycle.js +0 -1
- package/dist/configurator/configurator-error-page/create-configurator-error-page.js +0 -1
- package/dist/configurator/ui/assistant/form/built-in-form-registry.d.ts +0 -10
- package/dist/configurator/ui/assistant/form/built-in-form-registry.js +0 -1
- package/dist/configurator/ui/assistant/form/form-registry.js +0 -8
- 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/application/assistant/assistant-form-elements.d.ts +0 -28
- package/dist/domain/application/assistant/assistant-form-elements.js +0 -1
- package/dist/domain/available-system-components.d.ts +0 -11
- package/dist/domain/available-system-components.js +0 -1
- package/dist/domain/domain-builder.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/generated-env-markers.js +0 -1
- package/dist/phoenix/services/lingui.d.ts +0 -15
- package/dist/phoenix/services/lingui.js +0 -1
- package/dist/phoenix/services/phoenix-application.d.ts +0 -21
- package/dist/phoenix/services/phoenix-application.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/react-sdk/responsive-state/ResponsiveStateProvider.d.ts +0 -25
- package/dist/react-sdk/responsive-state/ResponsiveStateProvider.js +0 -1
- package/dist/react-sdk/responsive-state/canvas-padding.d.ts +0 -14
- package/dist/react-sdk/responsive-state/index.d.ts +0 -5
- package/dist/react-sdk/responsive-state/index.js +0 -1
- package/dist/react-sdk/responsive-state/responsive-state-manager.d.ts +0 -111
- package/dist/react-sdk/responsive-state/responsive-state-manager.js +0 -1
- package/dist/react-sdk/responsive-state/use-responsive-state-manager.d.ts +0 -10
- package/dist/react-sdk/responsive-state/use-responsive-state-manager.js +0 -1
- package/dist/react-sdk/responsive-state/use-responsive-state.d.ts +0 -11
- package/dist/react-sdk/responsive-state/use-responsive-state.js +0 -1
- /package/dist/{application-spec/core/expressions/relation-expression-params.js → domain/spec/application/admin-pages-section.js} +0 -0
- /package/dist/{application-spec/parse-application-files/spec/components/component-entry.js → domain/spec/application/admin-pages.js} +0 -0
- /package/dist/{application-spec/parse-application-files/spec/expressions/expression.js → domain/spec/application/admin-states.js} +0 -0
- /package/dist/{application-spec/core → domain/spec/application}/application-instance.d.ts +0 -0
- /package/dist/{application-spec/core → domain/spec/application}/application-instance.js +0 -0
- /package/dist/{configurator/ui/assistant/form/form-element-definition.js → domain/spec/application/configurator-states.js} +0 -0
- /package/dist/{react-sdk/elements/configurator-error-page-props.js → domain/spec/components/bindings/index.js} +0 -0
- /package/dist/{react-sdk/responsive-state/canvas-padding.js → domain/spec/components/bindings/read-binding.js} +0 -0
- /package/dist/{application-spec/core → domain/spec}/components/component-filter.js +0 -0
- /package/dist/{application-spec/core → domain/spec}/components/index.js +0 -0
- /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.d.ts +0 -0
- /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.js +0 -0
- /package/dist/{application-spec/core → domain/spec}/expressions/index.js +0 -0
- /package/dist/{application-spec/core → domain/spec}/expressions/relation-expression-params.d.ts +0 -0
- /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.d.ts +0 -0
- /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.js +0 -0
- /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.d.ts +0 -0
- /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.js +0 -0
- /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.d.ts +0 -0
- /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.js +0 -0
- /package/dist/{configurator/configurator-context → react-sdk/domain-application-context}/OnPresetLoadedHandler.d.ts +0 -0
- /package/dist/{configurator/configurator-context → react-sdk/integration}/IntegrationSubscription.d.ts +0 -0
- /package/dist/{configurator/configurator-context → react-sdk/lifecycle-providers}/LifecycleProviders.d.ts +0 -0
- /package/dist/react-sdk/{elements → page-elements}/configurator-error-page-props.d.ts +0 -0
- /package/dist/{configurator/configurator-context → react-sdk/preset-selection}/PresetSelectionProvider.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
export const messages=JSON.parse('{"sdk.admin.error.backToHome.label":["\xcenapoi la Pagina Principală"],"sdk.admin.error.system.message":["\xcent\xe2mpinăm \xeen prezent unele dificultăți tehnice. Vă rugăm să \xeencercați din nou \xeen c\xe2teva minute. Vă mulțumim pentru răbdare!"],"sdk.admin.error.system.title":["Ups, ceva a mers prost!"],"sdk.angleDimension.hintMessageTooLarge":["Valoarea curentă este ",["currentWithUnit"],", care este mai mare dec\xe2t maximul permis de ",["limitWithUnit"],"."],"sdk.angleDimension.hintMessageTooSmall":["Valoarea curentă este ",["currentWithUnit"],", care este mai mică dec\xe2t minimul permis de ",["limitWithUnit"],"."],"sdk.assistant.composer.disclaimer":["AI poate greși. Verificați rezultatul."],"sdk.assistant.composer.placeholder":["\xcentrebați sau spuneți-mi ce să schimb…"],"sdk.assistant.composer.send.label":["Trimite"],"sdk.assistant.composer.stop.label":["Oprește"],"sdk.assistant.failure.busy":["Asistentul lucrează \xeencă la un mesaj anterior."],"sdk.assistant.failure.notAvailable":["Asistentul nu este disponibil aici."],"sdk.assistant.failure.retry.label":["\xcencercați din nou"],"sdk.assistant.failure.unavailable":["Asistentul nu este disponibil momentan."],"sdk.assistant.form.failure":["Asistentul nu a putut crea acest formular."],"sdk.assistant.form.fix.label":["Corectează"],"sdk.assistant.form.submit.label":["Trimite"],"sdk.assistant.form.writing":["Se pregătește un formular…"],"sdk.assistant.panel.close.label":["\xcenchide asistentul"],"sdk.assistant.panel.title":["Asistent"],"sdk.assistant.reference.unavailable.message":["Momentan indisponibil"],"sdk.assistant.thread.earlierSummarized":["Conversația anterioară a fost rezumată"],"sdk.assistant.thread.greeting":["Bună ziua. Pot răspunde la \xeentrebări despre acest design și \xeel pot modifica \xeempreună cu dumneavoastră. Spuneți-mi de ce aveți nevoie."],"sdk.assistant.thread.loading":["Se \xeencarcă conversația…"],"sdk.assistant.thread.loadingEarlier":["Se \xeencarcă conversația anterioară…"],"sdk.assistant.thread.newReply.label":["Răspuns nou"],"sdk.assistant.thread.resuming":["Se reia conversația…"],"sdk.assistant.thread.showEarlier.label":["Afișează conversația anterioară"],"sdk.assistant.thread.thinking":["Se g\xe2ndește…"],"sdk.assistant.tool.cancelled.hint":["Oprit \xeenainte de finalizare."],"sdk.assistant.tool.mistake.hint":["Asistentul a făcut o greșeală."],"sdk.assistant.tool.noResult.hint":["Rezultatul acestui pas s-a pierdut. Este posibil să fi fost executat sau nu."],"sdk.assistant.tool.readDesign.label":["Citire design"],"sdk.assistant.tool.toolBudget.hint":["Neexecutat: asistentul a atins limita de pași pentru un mesaj."],"sdk.assistant.tool.undo.label":["Anulează"],"sdk.assistant.tool.updateDesign.label":["Actualizare design"],"sdk.assistant.toolbarButton.label":["Asistent"],"sdk.chat.disclaimer.close.label":["\xcenchide"],"sdk.chat.disclaimer.dialog.title":["Declinarea de responsabilitate pentru Chat"],"sdk.chat.disclaimer.full.message":["<0>Următoarea declinare de responsabilitate este destinată să informeze utilizatorii despre limitările și ghidurile de utilizare ale chatbot-ului AI disponibil pe acest site web. Vă rugăm să citiți cu atenție această declinare \xeenainte de a interacționa cu chatbot-ul.</0><1><2>Informații generale:</2> Chatbot-ul AI este un sistem automatizat alimentat de OpenAI/ChatGPT. Este proiectat să ofere informații și asistență bazate pe informațiile disponibile despre produsele oferite pe acest site web. Deși ne străduim să oferim informații precise prin chatbot-ul AI, nu putem garanta acuratețea, completitudinea sau actualitatea informațiilor furnizate. Vă recomandăm să folosiți răspunsurile ca punct de plecare și să verificați răspunsurile cu furnizorul acestor informații (proprietarul acestui site web) sau orice documentație de produs disponibilă.</1><3><4>Responsabilitatea utilizatorului:</4> Utilizatorii chatbot-ului AI \xeeși asumă responsabilitatea completă pentru interacțiunile lor și dependența de informațiile furnizate. Este important să exercitați prudența și să vă folosiți propria discreție \xeen interpretarea și acționarea pe baza răspunsurilor chatbot-ului. Nici proprietarul acestui site web, nici furnizorul tehnologiei chatbot-ului nu pot fi ținuți responsabili pentru orice acțiuni, pierderi sau daune rezultate din utilizarea chatbot-ului.</3><5><6>Confidențialitatea și securitatea datelor:</6> Prioritizăm confidențialitatea și securitatea informațiilor utilizatorilor. Fiți conștienți că conversațiile cu chatbot-ul pot fi revizuite de proprietarul acestui site web și de furnizorul tehnologiei pentru a \xeembunătăți rezultatele. \xcen timp ce OpenAI/ChatGPT păstrează jurnalele acestor conversații timp de 30 de zile, aceste date nu sunt folosite pentru a antrena modelele lor de AI. Nu partajați informații sensibile sau personale \xeen conversațiile voastre.</5><7>Prin utilizarea acestui chatbot AI, indicați acceptarea și \xeențelegerea declinării de responsabilitate de mai sus. Dacă nu sunteți de acord cu orice parte a acestei declinări, vă recomandăm să vă abțineți de la utilizarea chatbot-ului.</7>"],"sdk.chat.disclaimer.inline.message":["Atenție! AI-ul poate greși"],"sdk.chat.disclaimer.seeMore.label":["vezi mai mult"],"sdk.chat.header.desktop.title":["Asistent"],"sdk.chat.input.default.placeholder":["Căutați sau \xeentrebați orice..."],"sdk.chat.input.footer.placeholder":["Tastați aici..."],"sdk.chat.mobile.assistant.label":["Asistent AI"],"sdk.chat.send.button.label":["Trimite mesaj"],"sdk.chat.system.error.message":["Eroare"],"sdk.chat.welcome.greeting.message":["\xcentrebați orice sau alegeți dintre cele mai frecvente"],"sdk.collision.warning.tooltip":["Elementele sunt prea aproape sau se suprapun"],"sdk.controls.dimension.angle.error":["Vă rugăm să furnizați un număr valid!"],"sdk.controls.dimension.angle.hint":["Vă rugăm să furnizați un număr."],"sdk.controls.dimension.angle.hintRange":["Vă rugăm să furnizați un număr \xeentre ",["0"],["unitLabelWithSpace"]," și ",["1"],["unitLabelWithSpace"],"."],"sdk.controls.dimension.angleSlider.error":["Vă rugăm să furnizați un număr valid!"],"sdk.controls.dimension.distance.error":["Vă rugăm să furnizați un număr valid!"],"sdk.controls.dimension.distance.hint":["Vă rugăm să furnizați un număr."],"sdk.controls.dimension.distance.hintRange":["Vă rugăm să furnizați un număr \xeentre ",["0"]," și ",["1"],"."],"sdk.controls.dimension.distanceSlider.error":["Vă rugăm să furnizați un număr valid!"],"sdk.controls.dimension.generic.error":["Vă rugăm să furnizați un număr valid!"],"sdk.controls.dimension.generic.hint":["Vă rugăm să furnizați un număr"],"sdk.controls.dimension.generic.hintRange":["Vă rugăm să furnizați un număr \xeentre ",["0"]," și ",["1"],"."],"sdk.controls.dimension.genericSlider.error":["Vă rugăm să furnizați un număr valid!"],"sdk.controls.dimension.indicator.apply":["Aplică"],"sdk.controls.dimension.indicator.cancel":["Anulează"],"sdk.controls.dimension.offset.hint":["Vă rugăm să furnizați un număr."],"sdk.controls.dimension.size.hint":["Vă rugăm să furnizați un număr."],"sdk.controls.entity.add.close.label":["\xcenchide"],"sdk.controls.entity.add.nothingMessage":["Nu se poate adăuga nimic aici"],"sdk.controls.entity.childDelete.label":["Șterge"],"sdk.controls.entity.childSelect.label":["Editează"],"sdk.controls.entity.delete.label":["Șterge"],"sdk.controls.entity.replace.label":["\xcenlocuiește"],"sdk.controls.property.back.label":["\xcenapoi"],"sdk.controls.recipeGroup.notFound.message":["Nu a fost găsit"],"sdk.controls.recipeGroup.notFound.title":["Grupul pe care \xeel căutați nu mai este disponibil. Vă rugăm să selectați alt grup."],"sdk.controls.tool.close.label":["\xcenchide"],"sdk.controls.units.feet.label":["picioare"],"sdk.controls.units.inch.label":["țoli"],"sdk.controls.upload.dragDrop.hint":["sau trageți și plasați"],"sdk.controls.upload.failed.error":["Eșec la \xeencărcarea fișierului."],"sdk.controls.upload.link.label":["Link"],"sdk.controls.upload.size.error":["Fișierul este prea mare. Dimensiunea maximă este ",["0"]," MB."],"sdk.distanceDimension.hintMessageTooLarge":["Valoarea curentă este ",["0"],", care este mai mare dec\xe2t maximul permis de ",["1"],"."],"sdk.distanceDimension.hintMessageTooSmall":["Valoarea curentă este ",["0"],", care este mai mică dec\xe2t minimul permis de ",["1"],"."],"sdk.finalize.notConfigured.tooltip":["Funcția de finalizare nu este configurată."],"sdk.finalize.outOfSync.hint":["Configurația nu este sincronizată. Unele modificări nu au fost salvate corect."],"sdk.genericDimension.hintMessageTooLarge":["Valoarea curentă este ",["currentWithUnit"],", care este mai mare dec\xe2t maximul permis de ",["limitWithUnit"],"."],"sdk.genericDimension.hintMessageTooSmall":["Valoarea curentă este ",["currentWithUnit"],", care este mai mică dec\xe2t minimul permis de ",["limitWithUnit"],"."],"sdk.layout.banner.readonly.cancel.label":["Anulează"],"sdk.layout.banner.readonly.clone.label":["Creează copie editabilă"],"sdk.layout.banner.readonly.clone.message":["Sunteți pe cale să creați o copie editabilă a acestei configurații. Modificările pe care le faceți nu vor afecta link-ul partajat original."],"sdk.layout.banner.readonly.clone.title":["Editează configurația"],"sdk.layout.banner.readonly.editConfig.label":["Editează configurația"],"sdk.layout.banner.readonly.editMobile.label":["Editează"],"sdk.layout.banner.readonly.info.message":["Vizualizați o configurație doar pentru citire."],"sdk.layout.button.closeConfigurator.label":["\xcenapoi"],"sdk.layout.button.closePresetPreview.label":["\xcenapoi"],"sdk.layout.button.desktopBack.label":["\xcenapoi"],"sdk.layout.button.desktopSidebarBack.label":["\xcenapoi"],"sdk.layout.button.mobileBack.label":["\xcenapoi"],"sdk.layout.button.mobileSidebarBack.label":["\xcenapoi"],"sdk.layout.button.presetBack.label":["\xcenapoi"],"sdk.layout.button.saveRecipe.label":["Salvează Rețeta"],"sdk.layout.button.saveTemplate.label":["Salvează Șablon"],"sdk.layout.button.setTemplate.label":["Setează ca Șablon"],"sdk.layout.controls.mobile.view3d.label":["Vizualizare 3D"],"sdk.layout.controls.mobile.viewOnly.message":["<0>Mod doar vizualizare.</0> Pentru a modifica configurația, folosiți un dispozitiv cu ecran mai mare."],"sdk.layout.controls.tablet.viewOnly.message":["<0>Mod doar vizualizare.</0> Pentru a modifica configurația, folosiți un dispozitiv cu ecran mai mare sau \xeencercați să schimbați orientarea dispozitivului."],"sdk.layout.finalize.moreActions":["More finalization options"],"sdk.layout.footer.price.label":["Preț total"],"sdk.layout.hamburgerMenu.language.dialogTitle":["Schimbă Limba"],"sdk.layout.hamburgerMenu.language.label":["Schimbă Limba"],"sdk.layout.menu.hamburger.close.label":["\xcenchide"],"sdk.layout.menu.hamburger.help.label":["Arată ajutor"],"sdk.layout.menu.hamburger.help.label.closeButtonLabel":["\xcenchide"],"sdk.layout.menu.hamburger.share.label":["Partajează configurația"],"sdk.layout.menu.hamburger.title":["Setări"],"sdk.layout.menu.hamburger.tooltip":["Deschide meniul"],"sdk.layout.menu.language.close.label":["\xcenchide"],"sdk.layout.menu.measurements.close.label":["\xcenchide"],"sdk.layout.menu.measurements.label":["Schimbă măsura"],"sdk.layout.navigation.common.product.label":["Site"],"sdk.layout.navigation.mobile.product.label":["Site"],"sdk.layout.navigation.steps.first.label":["Produse"],"sdk.layout.sidebar.disabledFinalizeButton.label":["Finalizează"],"sdk.layout.sidebar.finalize.label":["Adaugă \xeen coș"],"sdk.layout.sidebar.finalizePage.label":["Finalizează"],"sdk.layout.sidebar.nextStep.label":["Pasul următor"],"sdk.layout.sidebar.nextStepShort.label":["Următor"],"sdk.layout.sidebar.previousStep.label":["Pasul anterior"],"sdk.layout.sidebar.price.label":["Preț total"],"sdk.layout.sidebar.totalPrice.label":["Preț total"],"sdk.layout.summary.button.label":["Rezumat"],"sdk.layout.toolbar.mobile.tools.title":["Instrumente"],"sdk.layout.toolbar.mobile.units.label":["Unități"],"sdk.measurements":["Schimbă măsura"],"sdk.messages.error.configNotFound.message":["Configurația pe care \xeencercați să o accesați poate să nu mai existe, sau s-ar putea să nu aveți permisiunile necesare pentru a o vizualiza."],"sdk.messages.error.configNotFound.title":["Configurația nu este accesibilă"],"sdk.messages.error.configurator.backToHome.label":["\xcenapoi la Pagina Principală"],"sdk.messages.error.configurator.message":["\xcent\xe2mpinăm \xeen prezent unele dificultăți tehnice. Vă rugăm să \xeencercați din nou \xeen c\xe2teva minute. Vă mulțumim pentru răbdare!"],"sdk.messages.error.configurator.title":["Ups, ceva a mers prost!"],"sdk.messages.error.configuratorRoot.backToHome.label":["Mesaj tradus"],"sdk.messages.error.configuratorRoot.message":["Mesaj tradus"],"sdk.messages.error.configuratorRoot.title":["Mesaj tradus"],"sdk.messages.error.gpuDisabled.message":["Mesaj tradus"],"sdk.messages.error.gpuDisabled.title":["Mesaj tradus"],"sdk.messages.error.notFound.backToHome.label":["Mesaj tradus"],"sdk.messages.error.webglNotSupported.message":["Mesaj tradus"],"sdk.messages.error.webglNotSupported.title":["Mesaj tradus"],"sdk.messages.finalize.error":["Oops, ceva a mers prost"],"sdk.messages.navigation.goToHomepage.label":["Mesaj tradus"],"sdk.messages.otherAction.error":["Oops, ceva a mers prost"],"sdk.messages.system.invalidDeployment.close.label":["Mesaj tradus"],"sdk.messages.system.invalidDeployment.message":["Mesaj tradus"],"sdk.messages.system.invalidDeployment.title":["Mesaj tradus"],"sdk.messages.validation.uncaughtError.message":["Mesaj tradus"],"sdk.persist.system.error.dismiss":["\xcenchide"],"sdk.persist.system.error.message":["A apărut o eroare la \xeencercarea de a actualiza o configurație"],"sdk.persist.system.error.recovered":["Configurație actualizată"],"sdk.presets.category.count.message":["Mesaj tradus"],"sdk.presets.category.heading.title":["Selectați preset-ul inițial"],"sdk.presets.create.error.dismiss.label":["\xcenchide"],"sdk.presets.create.error.message":["Configurarea nu a putut fi pornită din acest preset. Vă rugăm să \xeencercați din nou."],"sdk.presets.detail.close.label":["\xcenchide"],"sdk.presets.detail.learnMore.label":["Află mai multe"],"sdk.presets.detail.select.label":["Selectează"],"sdk.presets.preview.title":["Personalizează produsul"],"sdk.presets.select.button.label":["Selectează"],"sdk.presets.start.button.label":["\xcencepe configurarea"],"sdk.preview.customize.title":["Personalizează produsul"],"sdk.preview.start.button.label":["\xcencepe configurarea"],"sdk.sketching.angle.apply.label":["Aplică"],"sdk.sketching.angle.cancel.label":["Anulează"],"sdk.sketching.angle.control.label":["Unghi"],"sdk.sketching.angle.control.text":["Ajustează unghiul"],"sdk.sketching.angle.control.title":["Setează unghiul"],"sdk.sketching.angle.input.error":["Vă rugăm să furnizați un număr valid!"],"sdk.sketching.dimension.apply.label":["Aplică"],"sdk.sketching.dimension.cancel.label":["Anulează"],"sdk.sketching.dimension.depth.label":["Ad\xe2ncime"],"sdk.sketching.dimension.depth.text":["Ajustează ad\xe2ncimea"],"sdk.sketching.dimension.depth.title":["Setează ad\xe2ncimea"],"sdk.sketching.dimension.input.error":["Vă rugăm să furnizați un număr valid!"],"sdk.sketching.dimension.length.label":["Lungime"],"sdk.sketching.dimension.length.text":["Ajustează lungimea"],"sdk.sketching.dimension.length.title":["Setează lungimea"],"sdk.sketching.dimension.width.label":["Lățime"],"sdk.sketching.dimension.width.text":["Ajustează lățimea"],"sdk.sketching.dimension.width.title":["Setează lățimea"],"sdk.sketching.draw.done.label":["Gata"],"sdk.sketching.spotlight.label":["Faceți clic pentru a \xeencepe desenarea"],"sdk.toolbar.actions.undoRedo.label":["Acțiuni"],"sdk.toolbar.camera.reset.label":["Resetează camera"],"sdk.toolbar.camera.reset.labelAriaLabel":["resetează camera la poziția implicită"],"sdk.toolbar.fullscreen.enter.label":["Deschide ecran complet"],"sdk.toolbar.fullscreen.exit.label":["Ieși din ecran complet"],"sdk.toolbar.help.close.label":["\xcenchide"],"sdk.toolbar.help.label":["Ajutor"],"sdk.toolbar.language.title":["Schimbă limba"],"sdk.toolbar.measurements.change.aria":["deschide meniul de măsură"],"sdk.toolbar.measurements.indicators.label":["Indicatori de dimensiune"],"sdk.toolbar.measurements.input.aria":["Schimbă măsurătorile"],"sdk.toolbar.measurements.units.aria":["Configurarea unității de măsură"],"sdk.toolbar.mobile.fullscreen.enter.label":["Extinde"],"sdk.toolbar.mobile.fullscreen.exit.label":["Micșorează"],"sdk.toolbar.mobile.fullscreen.title":["Ecran complet"],"sdk.toolbar.mobile.open.aria":["Deschide bara de instrumente"],"sdk.toolbar.mobile.viewControls.label":["Vizualizări"],"sdk.toolbar.share.allowEdit.label":["Permite destinatarului să editeze configurația"],"sdk.toolbar.share.allowEditShort.label":["Permite destinatarului să editeze"],"sdk.toolbar.share.close.label":["\xcenchide"],"sdk.toolbar.share.copiedLinkButtonTitle":["Copiat"],"sdk.toolbar.share.copyLink.label":["Copiază link"],"sdk.toolbar.share.copyLinkButtonTitle":["Copiază link"],"sdk.toolbar.share.input.aria":["Comută pentru a permite copierea link-ului editabil \xeen clipboard"],"sdk.toolbar.share.label":["Partajează configurația"],"sdk.toolbar.share.linkCopied.label":["Copiat"],"sdk.toolbar.share.loading.label":["se \xeencarcă link-ul..."],"sdk.toolbar.share.open.label":["Partajează"],"sdk.toolbar.share.section.label":["Partajează creația ta"],"sdk.toolbar.undoRedo.redo.label":["Refă"],"sdk.toolbar.undoRedo.undo.label":["Anulează"],"sdk.toolbar.viewControls.title":["Schimbă vizualizarea"],"sdk.totalPrice":["Preț total"]}');
|
|
1
|
+
export const messages=JSON.parse('{"sdk.admin.error.backToHome.label":["\xcenapoi la Pagina Principală"],"sdk.admin.error.system.message":["\xcent\xe2mpinăm \xeen prezent unele dificultăți tehnice. Vă rugăm să \xeencercați din nou \xeen c\xe2teva minute. Vă mulțumim pentru răbdare!"],"sdk.admin.error.system.title":["Ups, ceva a mers prost!"],"sdk.angleDimension.hintMessageTooLarge":["Valoarea curentă este ",["currentWithUnit"],", care este mai mare dec\xe2t maximul permis de ",["limitWithUnit"],"."],"sdk.angleDimension.hintMessageTooSmall":["Valoarea curentă este ",["currentWithUnit"],", care este mai mică dec\xe2t minimul permis de ",["limitWithUnit"],"."],"sdk.assistant.composer.attach.label":["Atașează imagini"],"sdk.assistant.composer.attachment.limit":["Puteți atașa cel mult ",["max"]," imagini."],"sdk.assistant.composer.attachment.remove":["Elimină imaginea"],"sdk.assistant.composer.attachment.unreadable":["Format de imagine neacceptat."],"sdk.assistant.composer.disclaimer":["AI poate greși. Verificați rezultatul."],"sdk.assistant.composer.placeholder":["\xcentrebați sau spuneți-mi ce să schimb…"],"sdk.assistant.composer.send.label":["Trimite"],"sdk.assistant.composer.stop.label":["Oprește"],"sdk.assistant.failure.busy":["Asistentul lucrează \xeencă la un mesaj anterior."],"sdk.assistant.failure.notAvailable":["Asistentul nu este disponibil aici."],"sdk.assistant.failure.retry.label":["\xcencercați din nou"],"sdk.assistant.failure.unavailable":["Asistentul nu este disponibil momentan."],"sdk.assistant.form.confirm.no":["Nu"],"sdk.assistant.form.confirm.yes":["Da"],"sdk.assistant.form.failure":["Asistentul nu a putut crea acest formular."],"sdk.assistant.form.fix.label":["Corectează"],"sdk.assistant.form.number.invalid":["Introduceți un număr."],"sdk.assistant.form.submit.label":["Trimite"],"sdk.assistant.form.writing":["Se pregătește un formular…"],"sdk.assistant.message.image.open":["Afișează imaginea atașată mai mare"],"sdk.assistant.panel.close.label":["\xcenchide asistentul"],"sdk.assistant.panel.title":["Asistent"],"sdk.assistant.reference.unavailable.message":["Momentan indisponibil"],"sdk.assistant.thread.earlierSummarized":["Conversația anterioară a fost rezumată"],"sdk.assistant.thread.greeting":["Bună ziua. Pot răspunde la \xeentrebări despre acest design și \xeel pot modifica \xeempreună cu dumneavoastră. Spuneți-mi de ce aveți nevoie."],"sdk.assistant.thread.loading":["Se \xeencarcă conversația…"],"sdk.assistant.thread.loadingEarlier":["Se \xeencarcă conversația anterioară…"],"sdk.assistant.thread.newReply.label":["Răspuns nou"],"sdk.assistant.thread.resuming":["Se reia conversația…"],"sdk.assistant.thread.showEarlier.label":["Afișează conversația anterioară"],"sdk.assistant.thread.thinking":["Se g\xe2ndește…"],"sdk.assistant.tool.cancelled.hint":["Oprit \xeenainte de finalizare."],"sdk.assistant.tool.mistake.hint":["Asistentul a făcut o greșeală."],"sdk.assistant.tool.noResult.hint":["Rezultatul acestui pas s-a pierdut. Este posibil să fi fost executat sau nu."],"sdk.assistant.tool.readDesign.label":["Citire design"],"sdk.assistant.tool.screenshots.label":[["count","plural",{"one":["#"," captură de ecran"],"few":["#"," capturi de ecran"],"other":["#"," de capturi de ecran"]}]],"sdk.assistant.tool.toolBudget.hint":["Neexecutat: asistentul a atins limita de pași pentru un mesaj."],"sdk.assistant.tool.undo.label":["Anulează"],"sdk.assistant.tool.updateDesign.label":["Actualizare design"],"sdk.assistant.toolbarButton.label":["Asistent"],"sdk.chat.disclaimer.close.label":["\xcenchide"],"sdk.chat.disclaimer.dialog.title":["Declinarea de responsabilitate pentru Chat"],"sdk.chat.disclaimer.full.message":["<0>Următoarea declinare de responsabilitate este destinată să informeze utilizatorii despre limitările și ghidurile de utilizare ale chatbot-ului AI disponibil pe acest site web. Vă rugăm să citiți cu atenție această declinare \xeenainte de a interacționa cu chatbot-ul.</0><1><2>Informații generale:</2> Chatbot-ul AI este un sistem automatizat alimentat de OpenAI/ChatGPT. Este proiectat să ofere informații și asistență bazate pe informațiile disponibile despre produsele oferite pe acest site web. Deși ne străduim să oferim informații precise prin chatbot-ul AI, nu putem garanta acuratețea, completitudinea sau actualitatea informațiilor furnizate. Vă recomandăm să folosiți răspunsurile ca punct de plecare și să verificați răspunsurile cu furnizorul acestor informații (proprietarul acestui site web) sau orice documentație de produs disponibilă.</1><3><4>Responsabilitatea utilizatorului:</4> Utilizatorii chatbot-ului AI \xeeși asumă responsabilitatea completă pentru interacțiunile lor și dependența de informațiile furnizate. Este important să exercitați prudența și să vă folosiți propria discreție \xeen interpretarea și acționarea pe baza răspunsurilor chatbot-ului. Nici proprietarul acestui site web, nici furnizorul tehnologiei chatbot-ului nu pot fi ținuți responsabili pentru orice acțiuni, pierderi sau daune rezultate din utilizarea chatbot-ului.</3><5><6>Confidențialitatea și securitatea datelor:</6> Prioritizăm confidențialitatea și securitatea informațiilor utilizatorilor. Fiți conștienți că conversațiile cu chatbot-ul pot fi revizuite de proprietarul acestui site web și de furnizorul tehnologiei pentru a \xeembunătăți rezultatele. \xcen timp ce OpenAI/ChatGPT păstrează jurnalele acestor conversații timp de 30 de zile, aceste date nu sunt folosite pentru a antrena modelele lor de AI. Nu partajați informații sensibile sau personale \xeen conversațiile voastre.</5><7>Prin utilizarea acestui chatbot AI, indicați acceptarea și \xeențelegerea declinării de responsabilitate de mai sus. Dacă nu sunteți de acord cu orice parte a acestei declinări, vă recomandăm să vă abțineți de la utilizarea chatbot-ului.</7>"],"sdk.chat.disclaimer.inline.message":["Atenție! AI-ul poate greși"],"sdk.chat.disclaimer.seeMore.label":["vezi mai mult"],"sdk.chat.header.desktop.title":["Asistent"],"sdk.chat.input.default.placeholder":["Căutați sau \xeentrebați orice..."],"sdk.chat.input.footer.placeholder":["Tastați aici..."],"sdk.chat.mobile.assistant.label":["Asistent AI"],"sdk.chat.send.button.label":["Trimite mesaj"],"sdk.chat.system.error.message":["Eroare"],"sdk.chat.welcome.greeting.message":["\xcentrebați orice sau alegeți dintre cele mai frecvente"],"sdk.collision.warning.tooltip":["Elementele sunt prea aproape sau se suprapun"],"sdk.controls.dimension.angle.error":["Vă rugăm să furnizați un număr valid!"],"sdk.controls.dimension.angle.hint":["Vă rugăm să furnizați un număr."],"sdk.controls.dimension.angle.hintRange":["Vă rugăm să furnizați un număr \xeentre ",["0"],["unitLabelWithSpace"]," și ",["1"],["unitLabelWithSpace"],"."],"sdk.controls.dimension.angleSlider.error":["Vă rugăm să furnizați un număr valid!"],"sdk.controls.dimension.distance.error":["Vă rugăm să furnizați un număr valid!"],"sdk.controls.dimension.distance.hint":["Vă rugăm să furnizați un număr."],"sdk.controls.dimension.distance.hintRange":["Vă rugăm să furnizați un număr \xeentre ",["0"]," și ",["1"],"."],"sdk.controls.dimension.distanceSlider.error":["Vă rugăm să furnizați un număr valid!"],"sdk.controls.dimension.generic.error":["Vă rugăm să furnizați un număr valid!"],"sdk.controls.dimension.generic.hint":["Vă rugăm să furnizați un număr"],"sdk.controls.dimension.generic.hintRange":["Vă rugăm să furnizați un număr \xeentre ",["0"]," și ",["1"],"."],"sdk.controls.dimension.genericSlider.error":["Vă rugăm să furnizați un număr valid!"],"sdk.controls.dimension.indicator.apply":["Aplică"],"sdk.controls.dimension.indicator.cancel":["Anulează"],"sdk.controls.dimension.offset.hint":["Vă rugăm să furnizați un număr."],"sdk.controls.dimension.size.hint":["Vă rugăm să furnizați un număr."],"sdk.controls.entity.add.close.label":["\xcenchide"],"sdk.controls.entity.add.nothingMessage":["Nu se poate adăuga nimic aici"],"sdk.controls.entity.childDelete.label":["Șterge"],"sdk.controls.entity.childSelect.label":["Editează"],"sdk.controls.entity.delete.label":["Șterge"],"sdk.controls.entity.replace.label":["\xcenlocuiește"],"sdk.controls.property.back.label":["\xcenapoi"],"sdk.controls.recipeGroup.notFound.message":["Nu a fost găsit"],"sdk.controls.recipeGroup.notFound.title":["Grupul pe care \xeel căutați nu mai este disponibil. Vă rugăm să selectați alt grup."],"sdk.controls.tool.close.label":["\xcenchide"],"sdk.controls.units.feet.label":["picioare"],"sdk.controls.units.inch.label":["țoli"],"sdk.controls.upload.dragDrop.hint":["sau trageți și plasați"],"sdk.controls.upload.failed.error":["Eșec la \xeencărcarea fișierului."],"sdk.controls.upload.link.label":["Link"],"sdk.controls.upload.size.error":["Fișierul este prea mare. Dimensiunea maximă este ",["0"]," MB."],"sdk.distanceDimension.hintMessageTooLarge":["Valoarea curentă este ",["0"],", care este mai mare dec\xe2t maximul permis de ",["1"],"."],"sdk.distanceDimension.hintMessageTooSmall":["Valoarea curentă este ",["0"],", care este mai mică dec\xe2t minimul permis de ",["1"],"."],"sdk.finalize.notConfigured.tooltip":["Funcția de finalizare nu este configurată."],"sdk.finalize.outOfSync.hint":["Configurația nu este sincronizată. Unele modificări nu au fost salvate corect."],"sdk.genericDimension.hintMessageTooLarge":["Valoarea curentă este ",["currentWithUnit"],", care este mai mare dec\xe2t maximul permis de ",["limitWithUnit"],"."],"sdk.genericDimension.hintMessageTooSmall":["Valoarea curentă este ",["currentWithUnit"],", care este mai mică dec\xe2t minimul permis de ",["limitWithUnit"],"."],"sdk.layout.banner.readonly.cancel.label":["Anulează"],"sdk.layout.banner.readonly.clone.label":["Creează copie editabilă"],"sdk.layout.banner.readonly.clone.message":["Sunteți pe cale să creați o copie editabilă a acestei configurații. Modificările pe care le faceți nu vor afecta link-ul partajat original."],"sdk.layout.banner.readonly.clone.title":["Editează configurația"],"sdk.layout.banner.readonly.editConfig.label":["Editează configurația"],"sdk.layout.banner.readonly.editMobile.label":["Editează"],"sdk.layout.banner.readonly.info.message":["Vizualizați o configurație doar pentru citire."],"sdk.layout.button.closeConfigurator.label":["\xcenapoi"],"sdk.layout.button.closePresetPreview.label":["\xcenapoi"],"sdk.layout.button.desktopBack.label":["\xcenapoi"],"sdk.layout.button.desktopSidebarBack.label":["\xcenapoi"],"sdk.layout.button.mobileBack.label":["\xcenapoi"],"sdk.layout.button.mobileSidebarBack.label":["\xcenapoi"],"sdk.layout.button.presetBack.label":["\xcenapoi"],"sdk.layout.button.saveRecipe.label":["Salvează Rețeta"],"sdk.layout.button.saveTemplate.label":["Salvează Șablon"],"sdk.layout.button.setTemplate.label":["Setează ca Șablon"],"sdk.layout.controls.mobile.view3d.label":["Vizualizare 3D"],"sdk.layout.controls.mobile.viewOnly.message":["<0>Mod doar vizualizare.</0> Pentru a modifica configurația, folosiți un dispozitiv cu ecran mai mare."],"sdk.layout.controls.tablet.viewOnly.message":["<0>Mod doar vizualizare.</0> Pentru a modifica configurația, folosiți un dispozitiv cu ecran mai mare sau \xeencercați să schimbați orientarea dispozitivului."],"sdk.layout.exporting.message":["Configuratorul exportă… vă rugăm să așteptați"],"sdk.layout.finalize.moreActions":["More finalization options"],"sdk.layout.footer.price.label":["Preț total"],"sdk.layout.hamburgerMenu.language.dialogTitle":["Schimbă Limba"],"sdk.layout.hamburgerMenu.language.label":["Schimbă Limba"],"sdk.layout.menu.hamburger.close.label":["\xcenchide"],"sdk.layout.menu.hamburger.help.label":["Arată ajutor"],"sdk.layout.menu.hamburger.help.label.closeButtonLabel":["\xcenchide"],"sdk.layout.menu.hamburger.share.label":["Partajează configurația"],"sdk.layout.menu.hamburger.title":["Setări"],"sdk.layout.menu.hamburger.tooltip":["Deschide meniul"],"sdk.layout.menu.language.close.label":["\xcenchide"],"sdk.layout.menu.measurements.close.label":["\xcenchide"],"sdk.layout.menu.measurements.label":["Schimbă măsura"],"sdk.layout.navigation.common.product.label":["Site"],"sdk.layout.navigation.mobile.product.label":["Site"],"sdk.layout.navigation.steps.first.label":["Produse"],"sdk.layout.sidebar.disabledFinalizeButton.label":["Finalizează"],"sdk.layout.sidebar.finalize.label":["Adaugă \xeen coș"],"sdk.layout.sidebar.finalizePage.label":["Finalizează"],"sdk.layout.sidebar.nextStep.label":["Pasul următor"],"sdk.layout.sidebar.nextStepShort.label":["Următor"],"sdk.layout.sidebar.previousStep.label":["Pasul anterior"],"sdk.layout.sidebar.price.label":["Preț total"],"sdk.layout.sidebar.totalPrice.label":["Preț total"],"sdk.layout.summary.button.label":["Rezumat"],"sdk.layout.toolbar.mobile.tools.title":["Instrumente"],"sdk.layout.toolbar.mobile.units.label":["Unități"],"sdk.measurements":["Schimbă măsura"],"sdk.messages.error.configNotFound.message":["Configurația pe care \xeencercați să o accesați poate să nu mai existe, sau s-ar putea să nu aveți permisiunile necesare pentru a o vizualiza."],"sdk.messages.error.configNotFound.title":["Configurația nu este accesibilă"],"sdk.messages.error.configurator.backToHome.label":["\xcenapoi la Pagina Principală"],"sdk.messages.error.configurator.message":["\xcent\xe2mpinăm \xeen prezent unele dificultăți tehnice. Vă rugăm să \xeencercați din nou \xeen c\xe2teva minute. Vă mulțumim pentru răbdare!"],"sdk.messages.error.configurator.title":["Ups, ceva a mers prost!"],"sdk.messages.error.configuratorRoot.backToHome.label":["Mesaj tradus"],"sdk.messages.error.configuratorRoot.message":["Mesaj tradus"],"sdk.messages.error.configuratorRoot.title":["Mesaj tradus"],"sdk.messages.error.gpuDisabled.message":["Mesaj tradus"],"sdk.messages.error.gpuDisabled.title":["Mesaj tradus"],"sdk.messages.error.notFound.backToHome.label":["Mesaj tradus"],"sdk.messages.error.webglNotSupported.message":["Mesaj tradus"],"sdk.messages.error.webglNotSupported.title":["Mesaj tradus"],"sdk.messages.finalize.error":["Oops, ceva a mers prost"],"sdk.messages.navigation.goToHomepage.label":["Mesaj tradus"],"sdk.messages.otherAction.error":["Oops, ceva a mers prost"],"sdk.messages.system.invalidDeployment.close.label":["Mesaj tradus"],"sdk.messages.system.invalidDeployment.message":["Mesaj tradus"],"sdk.messages.system.invalidDeployment.title":["Mesaj tradus"],"sdk.messages.validation.uncaughtError.message":["Mesaj tradus"],"sdk.persist.system.error.dismiss":["\xcenchide"],"sdk.persist.system.error.message":["A apărut o eroare la \xeencercarea de a actualiza o configurație"],"sdk.persist.system.error.recovered":["Configurație actualizată"],"sdk.presets.category.count.message":["Mesaj tradus"],"sdk.presets.category.heading.title":["Selectați preset-ul inițial"],"sdk.presets.create.error.dismiss.label":["\xcenchide"],"sdk.presets.create.error.message":["Configurarea nu a putut fi pornită din acest preset. Vă rugăm să \xeencercați din nou."],"sdk.presets.detail.close.label":["\xcenchide"],"sdk.presets.detail.learnMore.label":["Află mai multe"],"sdk.presets.detail.select.label":["Selectează"],"sdk.presets.preview.title":["Personalizează produsul"],"sdk.presets.select.button.label":["Selectează"],"sdk.presets.start.button.label":["\xcencepe configurarea"],"sdk.preview.customize.title":["Personalizează produsul"],"sdk.preview.start.button.label":["\xcencepe configurarea"],"sdk.sketching.angle.apply.label":["Aplică"],"sdk.sketching.angle.cancel.label":["Anulează"],"sdk.sketching.angle.control.label":["Unghi"],"sdk.sketching.angle.control.text":["Ajustează unghiul"],"sdk.sketching.angle.control.title":["Setează unghiul"],"sdk.sketching.angle.input.error":["Vă rugăm să furnizați un număr valid!"],"sdk.sketching.dimension.apply.label":["Aplică"],"sdk.sketching.dimension.cancel.label":["Anulează"],"sdk.sketching.dimension.depth.label":["Ad\xe2ncime"],"sdk.sketching.dimension.depth.text":["Ajustează ad\xe2ncimea"],"sdk.sketching.dimension.depth.title":["Setează ad\xe2ncimea"],"sdk.sketching.dimension.input.error":["Vă rugăm să furnizați un număr valid!"],"sdk.sketching.dimension.length.label":["Lungime"],"sdk.sketching.dimension.length.text":["Ajustează lungimea"],"sdk.sketching.dimension.length.title":["Setează lungimea"],"sdk.sketching.dimension.width.label":["Lățime"],"sdk.sketching.dimension.width.text":["Ajustează lățimea"],"sdk.sketching.dimension.width.title":["Setează lățimea"],"sdk.sketching.draw.done.label":["Gata"],"sdk.sketching.spotlight.label":["Faceți clic pentru a \xeencepe desenarea"],"sdk.toolbar.actions.undoRedo.label":["Acțiuni"],"sdk.toolbar.camera.reset.label":["Resetează camera"],"sdk.toolbar.camera.reset.labelAriaLabel":["resetează camera la poziția implicită"],"sdk.toolbar.fullscreen.enter.label":["Deschide ecran complet"],"sdk.toolbar.fullscreen.exit.label":["Ieși din ecran complet"],"sdk.toolbar.help.close.label":["\xcenchide"],"sdk.toolbar.help.label":["Ajutor"],"sdk.toolbar.language.title":["Schimbă limba"],"sdk.toolbar.measurements.change.aria":["deschide meniul de măsură"],"sdk.toolbar.measurements.indicators.label":["Indicatori de dimensiune"],"sdk.toolbar.measurements.input.aria":["Schimbă măsurătorile"],"sdk.toolbar.measurements.units.aria":["Configurarea unității de măsură"],"sdk.toolbar.mobile.fullscreen.enter.label":["Extinde"],"sdk.toolbar.mobile.fullscreen.exit.label":["Micșorează"],"sdk.toolbar.mobile.fullscreen.title":["Ecran complet"],"sdk.toolbar.mobile.open.aria":["Deschide bara de instrumente"],"sdk.toolbar.mobile.viewControls.label":["Vizualizări"],"sdk.toolbar.share.allowEdit.label":["Permite destinatarului să editeze configurația"],"sdk.toolbar.share.allowEditShort.label":["Permite destinatarului să editeze"],"sdk.toolbar.share.close.label":["\xcenchide"],"sdk.toolbar.share.copiedLinkButtonTitle":["Copiat"],"sdk.toolbar.share.copyLink.label":["Copiază link"],"sdk.toolbar.share.copyLinkButtonTitle":["Copiază link"],"sdk.toolbar.share.input.aria":["Comută pentru a permite copierea link-ului editabil \xeen clipboard"],"sdk.toolbar.share.label":["Partajează configurația"],"sdk.toolbar.share.linkCopied.label":["Copiat"],"sdk.toolbar.share.loading.label":["se \xeencarcă link-ul..."],"sdk.toolbar.share.open.label":["Partajează"],"sdk.toolbar.share.section.label":["Partajează creația ta"],"sdk.toolbar.undoRedo.redo.label":["Refă"],"sdk.toolbar.undoRedo.undo.label":["Anulează"],"sdk.toolbar.viewControls.title":["Schimbă vizualizarea"],"sdk.totalPrice":["Preț total"]}');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const messages=JSON.parse('{"sdk.admin.error.backToHome.label":["Sp\xe4ť na domovsk\xfa str\xe1nku"],"sdk.admin.error.system.message":["Moment\xe1lne m\xe1me technick\xe9 probl\xe9my. Sk\xfaste to pros\xedm o p\xe1r min\xfat. Ďakujeme za vašu trpezlivosť!"],"sdk.admin.error.system.title":["Ups, niečo sa pokazilo!"],"sdk.angleDimension.hintMessageTooLarge":["Aktu\xe1lna hodnota je ",["currentWithUnit"],", čo je v\xe4čšie než povolen\xe9 maximum ",["limitWithUnit"],"."],"sdk.angleDimension.hintMessageTooSmall":["Aktu\xe1lna hodnota je ",["currentWithUnit"],", čo je menšie než povolen\xe9 minimum ",["limitWithUnit"],"."],"sdk.assistant.composer.disclaimer":["AI sa m\xf4že m\xfdliť. V\xfdsledok si skontrolujte."],"sdk.assistant.composer.placeholder":["Op\xfdtajte sa alebo nap\xedšte, čo zmeniť…"],"sdk.assistant.composer.send.label":["Odoslať"],"sdk.assistant.composer.stop.label":["Zastaviť"],"sdk.assistant.failure.busy":["Asistent ešte pracuje na predch\xe1dzaj\xfacej spr\xe1ve."],"sdk.assistant.failure.notAvailable":["Asistent tu nie je dostupn\xfd."],"sdk.assistant.failure.retry.label":["Sk\xfasiť znova"],"sdk.assistant.failure.unavailable":["Asistent teraz nie je dostupn\xfd."],"sdk.assistant.form.failure":["Asistent nedok\xe1zal zostaviť tento formul\xe1r."],"sdk.assistant.form.fix.label":["Opraviť"],"sdk.assistant.form.submit.label":["Odoslať"],"sdk.assistant.form.writing":["Pripravuje sa formul\xe1r…"],"sdk.assistant.panel.close.label":["Zavrieť asistenta"],"sdk.assistant.panel.title":["Asistent"],"sdk.assistant.reference.unavailable.message":["Moment\xe1lne nie je k dispoz\xedcii"],"sdk.assistant.thread.earlierSummarized":["Predch\xe1dzaj\xfaca konverz\xe1cia zhrnut\xe1"],"sdk.assistant.thread.greeting":["Dobr\xfd deň. M\xf4žem odpovedať na ot\xe1zky k tomuto n\xe1vrhu a upravovať ho s vami. Nap\xedšte, čo potrebujete."],"sdk.assistant.thread.loading":["Nač\xedtavam konverz\xe1ciu…"],"sdk.assistant.thread.loadingEarlier":["Nač\xedtavam predch\xe1dzaj\xfacu konverz\xe1ciu…"],"sdk.assistant.thread.newReply.label":["Nov\xe1 odpoveď"],"sdk.assistant.thread.resuming":["Obnovujem konverz\xe1ciu…"],"sdk.assistant.thread.showEarlier.label":["Zobraziť predch\xe1dzaj\xfacu konverz\xe1ciu"],"sdk.assistant.thread.thinking":["Prem\xfdšľam…"],"sdk.assistant.tool.cancelled.hint":["Zastaven\xe9 pred dokončen\xedm."],"sdk.assistant.tool.mistake.hint":["Asistent urobil chybu."],"sdk.assistant.tool.noResult.hint":["V\xfdsledok tohto kroku sa stratil. Krok mohol, ale nemusel byť vykonan\xfd."],"sdk.assistant.tool.readDesign.label":["Č\xedtanie n\xe1vrhu"],"sdk.assistant.tool.toolBudget.hint":["Nevykonan\xe9: asistent dosiahol limit krokov pre jednu spr\xe1vu."],"sdk.assistant.tool.undo.label":["Sp\xe4ť"],"sdk.assistant.tool.updateDesign.label":["\xdaprava n\xe1vrhu"],"sdk.assistant.toolbarButton.label":["Asistent"],"sdk.chat.disclaimer.close.label":["Zavrieť"],"sdk.chat.disclaimer.dialog.title":["Upozornenie k chatu"],"sdk.chat.disclaimer.full.message":["<0>Nasleduj\xface vyhl\xe1senie m\xe1 za cieľ informovať použ\xedvateľov o obmedzeniach a pokynoch pre použ\xedvanie AI chatbota dostupn\xe9ho na tomto webe. Pred komunik\xe1ciou s chatbotom si pros\xedm pozorne preč\xedtajte toto vyhl\xe1senie.</0><1><2>Všeobecn\xe9 inform\xe1cie:</2> AI chatbot je automatizovan\xfd syst\xe9m poh\xe1ňan\xfd OpenAI/ChatGPT. Je navrhnut\xfd tak, aby poskytoval inform\xe1cie a pomoc na z\xe1klade dostupn\xfdch inform\xe1ci\xed o produktoch pon\xfakan\xfdch na tomto webe. Aj keď sa snaž\xedme poskytovať presn\xe9 inform\xe1cie prostredn\xedctvom AI chatbota, nem\xf4žeme zaručiť presnosť, \xfaplnosť alebo aktu\xe1lnosť poskytovan\xfdch inform\xe1ci\xed. Odpor\xfačame použ\xedvať odpovede ako v\xfdchodiskov\xfd bod a overovať odpovede u poskytovateľa t\xfdchto inform\xe1ci\xed (vlastn\xedka tohto webu) alebo akejkoľvek dostupnej produktovej dokument\xe1cie.</1><3><4>Zodpovednosť použ\xedvateľa:</4> Použ\xedvatelia AI chatbota nes\xfa v\xfdhradn\xfa zodpovednosť za svoje interakcie a spoliehanie sa na poskytovan\xe9 inform\xe1cie. Je d\xf4ležit\xe9 byť opatrn\xfd a použ\xedvať vlastn\xfd \xfasudok pri interpret\xe1cii a konan\xed na z\xe1klade odpoved\xed chatbota. Ani vlastn\xedk tohto webu, ani poskytovateľ technol\xf3gie chatbota nem\xf4že byť činen\xfd zodpovedn\xfdm za ak\xe9koľvek činy, straty alebo škody vypl\xfdvaj\xface z použ\xedvania chatbota.</3><5><6>Ochrana \xfadajov a bezpečnosť:</6> Uprednostňujeme ochranu a bezpečnosť inform\xe1ci\xed použ\xedvateľov. Majte na pam\xe4ti, že konverz\xe1cie s chatbotom m\xf4žu byť skontrolovan\xe9 vlastn\xedkom tohto webu a poskytovateľom technol\xf3gie za \xfačelom zlepšenia v\xfdsledkov. Zatiaľ čo OpenAI/ChatGPT uchov\xe1va z\xe1znamy t\xfdchto konverz\xe1ci\xed po dobu 30 dn\xed, tieto d\xe1ta sa nepouž\xedvaj\xfa na tr\xe9ning ich AI modelov. Nezdieľajte žiadne citliv\xe9 alebo osobn\xe9 inform\xe1cie vo vašich konverz\xe1ci\xe1ch.</5><7>Použ\xedvan\xedm tohto AI chatbota vyjadrujete svoj s\xfahlas a porozumenie vyššie uveden\xe9mu vyhl\xe1seniu. Ak nes\xfahlas\xedte s ktoroukoľvek časťou tohto vyhl\xe1senia, odpor\xfačame chatbot nepouž\xedvať.</7>"],"sdk.chat.disclaimer.inline.message":["Varovanie! AI sa m\xf4že m\xfdliť"],"sdk.chat.disclaimer.seeMore.label":["viac inform\xe1ci\xed"],"sdk.chat.header.desktop.title":["Asistent"],"sdk.chat.input.default.placeholder":["Hľadajte alebo sa op\xfdtajte na čokoľvek..."],"sdk.chat.input.footer.placeholder":["P\xedšte sem..."],"sdk.chat.mobile.assistant.label":["AI Asistent"],"sdk.chat.send.button.label":["Odoslať spr\xe1vu"],"sdk.chat.system.error.message":["Chyba"],"sdk.chat.welcome.greeting.message":["Op\xfdtajte sa na čokoľvek alebo vyberte z najčastejšie kladen\xfdch ot\xe1zok"],"sdk.collision.warning.tooltip":["Predmety s\xfa pr\xedliš bl\xedzko alebo sa prekr\xfdvaj\xfa"],"sdk.controls.dimension.angle.error":["Neplatn\xfd uhol"],"sdk.controls.dimension.angle.hint":["Zadajte uhol"],"sdk.controls.dimension.angle.hintRange":["Zadajte č\xedslo medzi ",["0"],["unitLabelWithSpace"]," a ",["1"],["unitLabelWithSpace"],"."],"sdk.controls.dimension.angleSlider.error":["Neplatn\xfd uhol"],"sdk.controls.dimension.distance.error":["Neplatn\xe1 vzdialenosť"],"sdk.controls.dimension.distance.hint":["Zadajte vzdialenosť"],"sdk.controls.dimension.distance.hintRange":["Zadajte č\xedslo medzi ",["0"]," a ",["1"],"."],"sdk.controls.dimension.distanceSlider.error":["Neplatn\xe1 vzdialenosť"],"sdk.controls.dimension.generic.error":["Neplatn\xe1 hodnota"],"sdk.controls.dimension.generic.hint":["Zadajte hodnotu"],"sdk.controls.dimension.generic.hintRange":["Zadajte č\xedslo medzi ",["0"]," a ",["1"],"."],"sdk.controls.dimension.genericSlider.error":["Neplatn\xe1 hodnota"],"sdk.controls.dimension.indicator.apply":["Použiť"],"sdk.controls.dimension.indicator.cancel":["Zrušiť"],"sdk.controls.dimension.list.selector.close.label":["Zavrieť"],"sdk.controls.dimension.offset.hint":["Zadajte odsadenie"],"sdk.controls.dimension.size.hint":["Zadajte rozmer"],"sdk.controls.entity.add.close.label":["Zavrieť"],"sdk.controls.entity.add.nothingMessage":["Sem nemožno nič pridať"],"sdk.controls.entity.childDelete.label":["Zmazať"],"sdk.controls.entity.childSelect.label":["Upraviť"],"sdk.controls.entity.delete.label":["Zmazať"],"sdk.controls.entity.replace.label":["Nahradiť"],"sdk.controls.property.back.label":["Sp\xe4ť"],"sdk.controls.recipeGroup.notFound.message":["Skupina, ktor\xfa hľad\xe1te, už nie je k dispoz\xedcii. Vyberte pros\xedm in\xfa skupinu."],"sdk.controls.recipeGroup.notFound.title":["Nen\xe1jden\xe9"],"sdk.controls.tool.close.label":["Zavrieť"],"sdk.controls.units.feet.label":["stopy"],"sdk.controls.units.inch.label":["palce"],"sdk.controls.upload.dragDrop.hint":["alebo potiahnite sem"],"sdk.controls.upload.failed.error":["Nepodarilo sa nahrať s\xfabor."],"sdk.controls.upload.link.label":["Odkaz"],"sdk.controls.upload.size.error":["S\xfabor je pr\xedliš veľk\xfd. Maxim\xe1lna veľkosť je ",["0"]," MB."],"sdk.distanceDimension.hintMessageTooLarge":["Aktu\xe1lna hodnota je ",["0"],", čo je v\xe4čšie než povolen\xe9 maximum ",["1"],"."],"sdk.distanceDimension.hintMessageTooSmall":["Aktu\xe1lna hodnota je ",["0"],", čo je menšie než povolen\xe9 minimum ",["1"],"."],"sdk.finalize.notConfigured.tooltip":["Funkcia dokončenia nie je nakonfigurovan\xe1."],"sdk.finalize.outOfSync.hint":["Konfigur\xe1cia nie je synchronizovan\xe1. Niektor\xe9 zmeny neboli spr\xe1vne uložen\xe9."],"sdk.genericDimension.hintMessageTooLarge":["Aktu\xe1lna hodnota je ",["currentWithUnit"],", čo je v\xe4čšie než povolen\xe9 maximum ",["limitWithUnit"],"."],"sdk.genericDimension.hintMessageTooSmall":["Aktu\xe1lna hodnota je ",["currentWithUnit"],", čo je menšie než povolen\xe9 minimum ",["limitWithUnit"],"."],"sdk.layout.banner.readonly.cancel.label":["Zrušiť"],"sdk.layout.banner.readonly.clone.label":["Vytvoriť upraviteľn\xfa k\xf3piu"],"sdk.layout.banner.readonly.clone.message":["Chyst\xe1te sa vytvoriť upraviteľn\xfa k\xf3piu tohto nastavenia. Zmeny, ktor\xe9 urob\xedte, neovplyvnia p\xf4vodn\xfd zdieľan\xfd odkaz."],"sdk.layout.banner.readonly.clone.title":["Upraviť konfigur\xe1ciu"],"sdk.layout.banner.readonly.editConfig.label":["Upraviť konfigur\xe1ciu"],"sdk.layout.banner.readonly.editMobile.label":["Upraviť"],"sdk.layout.banner.readonly.info.message":["Prezer\xe1te konfigur\xe1ciu iba na č\xedtanie."],"sdk.layout.button.closeConfigurator.label":["Sp\xe4ť"],"sdk.layout.button.closePresetPreview.label":["Sp\xe4ť"],"sdk.layout.button.desktopBack.label":["Sp\xe4ť"],"sdk.layout.button.desktopSidebarBack.label":["Sp\xe4ť"],"sdk.layout.button.mobileBack.label":["Sp\xe4ť"],"sdk.layout.button.mobileSidebarBack.label":["Sp\xe4ť"],"sdk.layout.button.presetBack.label":["Sp\xe4ť"],"sdk.layout.button.saveRecipe.label":["Uložiť Recept"],"sdk.layout.button.saveTemplate.label":["Uložiť Šabl\xf3nu"],"sdk.layout.button.setTemplate.label":["Nastaviť ako Šabl\xf3nu"],"sdk.layout.controls.mobile.view3d.label":["3D pohľad"],"sdk.layout.controls.mobile.viewOnly.message":["<0>Režim iba na zobrazenie.</0> Pre \xfapravy konfigur\xe1cie použite zariadenie s v\xe4čšou obrazovkou."],"sdk.layout.controls.tablet.viewOnly.message":["<0>Režim iba na zobrazenie.</0> Pre \xfapravy konfigur\xe1cie použite zariadenie s v\xe4čšou obrazovkou alebo sk\xfaste zmeniť orient\xe1ciu zariadenia."],"sdk.layout.finalize.moreActions":["More finalization options"],"sdk.layout.footer.price.label":["Celkov\xe1 cena"],"sdk.layout.hamburgerMenu.language.dialogTitle":["Zmeniť jazyk"],"sdk.layout.hamburgerMenu.language.label":["Zmeniť jazyk"],"sdk.layout.menu.hamburger.close.label":["Zavrieť"],"sdk.layout.menu.hamburger.help.label":["Zobraziť pomocn\xedka"],"sdk.layout.menu.hamburger.help.label.closeButtonLabel":["Zavrieť"],"sdk.layout.menu.hamburger.share.label":["Zdieľať konfigur\xe1ciu"],"sdk.layout.menu.hamburger.title":["Nastavenia"],"sdk.layout.menu.hamburger.tooltip":["Otvoriť menu"],"sdk.layout.menu.language.close.label":["Zavrieť"],"sdk.layout.menu.measurements.close.label":["Zavrieť"],"sdk.layout.menu.measurements.label":["Zmeniť mieru"],"sdk.layout.navigation.common.product.label":["Web"],"sdk.layout.navigation.mobile.product.label":["Web"],"sdk.layout.navigation.steps.first.label":["Produkty"],"sdk.layout.sidebar.disabledFinalizeButton.label":["Dokončiť"],"sdk.layout.sidebar.finalize.label":["Pridať do koš\xedka"],"sdk.layout.sidebar.finalizePage.label":["Dokončiť"],"sdk.layout.sidebar.nextStep.label":["Ďalš\xed krok"],"sdk.layout.sidebar.nextStepShort.label":["Ďalej"],"sdk.layout.sidebar.previousStep.label":["Predch\xe1dzaj\xfaci krok"],"sdk.layout.sidebar.price.label":["Cena"],"sdk.layout.sidebar.totalPrice.label":["Celkov\xe1 cena"],"sdk.layout.summary.button.label":["Zhrnutie"],"sdk.layout.toolbar.mobile.tools.title":["N\xe1stroje"],"sdk.layout.toolbar.mobile.units.label":["Jednotky"],"sdk.measurements":["Zmeniť mieru"],"sdk.messages.error.configNotFound.message":["Konfigur\xe1cia, ku ktorej sa pok\xfašate pristupovať, už nemus\xed existovať, alebo nem\xe1te potrebn\xe9 opr\xe1vnenia na jej zobrazenie."],"sdk.messages.error.configNotFound.title":["Konfigur\xe1cia nie je pr\xedstupn\xe1"],"sdk.messages.error.configurator.backToHome.label":["Sp\xe4ť na domovsk\xfa str\xe1nku"],"sdk.messages.error.configurator.message":["Moment\xe1lne m\xe1me technick\xe9 probl\xe9my. Sk\xfaste to pros\xedm o p\xe1r min\xfat. Ďakujeme za vašu trpezlivosť!"],"sdk.messages.error.configurator.title":["Ups, niečo sa pokazilo!"],"sdk.messages.error.configuratorRoot.backToHome.label":["Sp\xe4ť na domovsk\xfa str\xe1nku"],"sdk.messages.error.configuratorRoot.message":["Moment\xe1lne m\xe1me technick\xe9 probl\xe9my. Sk\xfaste to pros\xedm o p\xe1r min\xfat. Ďakujeme za vašu trpezlivosť!"],"sdk.messages.error.configuratorRoot.title":["Ups, niečo sa pokazilo!"],"sdk.messages.error.gpuDisabled.message":["V\xe1š prehliadač m\xe1 zak\xe1zan\xfa GPU akceler\xe1ciu, čo br\xe1ni spr\xe1vnemu fungovaniu konfigur\xe1tora. 3D v\xfdkon je v\xe1žne ovplyvnen\xfd. Povoľte t\xfato možnosť v nastaveniach prehliadača, aby ste mohli konfigur\xe1tor použ\xedvať."],"sdk.messages.error.gpuDisabled.title":["GPU akceler\xe1cia zak\xe1zan\xe1"],"sdk.messages.error.notFound.backToHome.label":["Sp\xe4ť na domovsk\xfa str\xe1nku"],"sdk.messages.error.webglNotSupported.message":["Vaše zariadenie alebo prehliadač nepodporuje WebGL, ktor\xfd je nutn\xfd pre funkciu konfigur\xe1tora. Sk\xfaste in\xfd prehliadač alebo zariadenie, ktor\xe9 podporuje WebGL"],"sdk.messages.error.webglNotSupported.title":["WebGL nie je podporovan\xfd alebo nemožno inicializovať"],"sdk.messages.finalize.error":["Ups, niečo sa pokazilo"],"sdk.messages.navigation.goToHomepage.label":["Prejsť na \xfavodn\xfa str\xe1nku"],"sdk.messages.otherAction.error":["Ups, niečo sa pokazilo"],"sdk.messages.system.invalidDeployment.close.label":["Znovu nač\xedtať"],"sdk.messages.system.invalidDeployment.message":["Konfigur\xe1tor bol aktualizovan\xfd. Pros\xedm, znovu nač\xedtajte str\xe1nku pre pokračovanie."],"sdk.messages.system.invalidDeployment.title":["Konfigur\xe1tor aktualizovan\xfd"],"sdk.messages.validation.uncaughtError.message":["Došlo k neočak\xe1vanej chybe. Sk\xfaste to pros\xedm znova."],"sdk.persist.system.error.dismiss":["Zavrieť"],"sdk.persist.system.error.message":["Pri aktualiz\xe1cii konfigur\xe1cie došlo k chybe"],"sdk.persist.system.error.recovered":["Konfigur\xe1cia aktualizovan\xe1"],"sdk.presets.category.count.message":[["presetCount","plural",{"one":["#"," šabl\xf3na"],"few":["#"," šabl\xf3ny"],"other":["#"," šabl\xf3n"]}]],"sdk.presets.category.heading.title":["Vyberte v\xfdchodiskov\xfa šabl\xf3nu"],"sdk.presets.create.error.dismiss.label":["Zavrieť"],"sdk.presets.create.error.message":["Konfigur\xe1ciu sa z tejto šabl\xf3ny nepodarilo spustiť. Sk\xfaste to pros\xedm znova."],"sdk.presets.detail.close.label":["Zavrieť"],"sdk.presets.detail.learnMore.label":["Zistiť viac"],"sdk.presets.detail.select.label":["Vybrať"],"sdk.presets.preview.title":["Prisp\xf4sobiť produkt"],"sdk.presets.select.button.label":["Vybrať"],"sdk.presets.start.button.label":["Začať konfigurovať"],"sdk.preview.customize.title":["Prisp\xf4sobiť produkt"],"sdk.preview.start.button.label":["Začať konfigurovať"],"sdk.sketching.angle.apply.label":["Použiť"],"sdk.sketching.angle.cancel.label":["Zrušiť"],"sdk.sketching.angle.control.label":["Uhol"],"sdk.sketching.angle.control.text":["Upravte uhol"],"sdk.sketching.angle.control.title":["Nastaviť uhol"],"sdk.sketching.angle.input.error":["Zadajte platn\xe9 č\xedslo!"],"sdk.sketching.dimension.apply.label":["Použiť"],"sdk.sketching.dimension.cancel.label":["Zrušiť"],"sdk.sketching.dimension.depth.label":["Hĺbka"],"sdk.sketching.dimension.depth.text":["Upravte hĺbku"],"sdk.sketching.dimension.depth.title":["Nastaviť hĺbku"],"sdk.sketching.dimension.input.error":["Zadajte platn\xe9 č\xedslo!"],"sdk.sketching.dimension.length.label":["Dĺžka"],"sdk.sketching.dimension.length.text":["Upravte dĺžku"],"sdk.sketching.dimension.length.title":["Nastaviť dĺžku"],"sdk.sketching.dimension.width.label":["Š\xedrka"],"sdk.sketching.dimension.width.text":["Upravte š\xedrku"],"sdk.sketching.dimension.width.title":["Nastaviť š\xedrku"],"sdk.sketching.draw.done.label":["Hotovo"],"sdk.sketching.spotlight.label":["Kliknite pre začatie kreslenia"],"sdk.toolbar.actions.undoRedo.label":["Akcie"],"sdk.toolbar.camera.reset.label":["Resetovať kameru"],"sdk.toolbar.camera.reset.labelAriaLabel":["resetovať kameru na v\xfdchodiskov\xfa poz\xedciu"],"sdk.toolbar.fullscreen.enter.label":["Otvoriť na cel\xfa obrazovku"],"sdk.toolbar.fullscreen.exit.label":["Ukončiť cel\xfa obrazovku"],"sdk.toolbar.help.close.label":["Zavrieť"],"sdk.toolbar.help.label":["Pomocn\xedk"],"sdk.toolbar.language.title":["Prepn\xfať jazyk"],"sdk.toolbar.measurements.change.aria":["otvoriť menu merania"],"sdk.toolbar.measurements.indicators.label":["Indik\xe1tory rozmerov"],"sdk.toolbar.measurements.input.aria":["Prepn\xfať meranie"],"sdk.toolbar.measurements.units.aria":["Nastavenie jednotiek merania"],"sdk.toolbar.mobile.fullscreen.enter.label":["Rozbaliť"],"sdk.toolbar.mobile.fullscreen.exit.label":["Zmenšiť"],"sdk.toolbar.mobile.fullscreen.title":["Režim celej obrazovky"],"sdk.toolbar.mobile.open.aria":["Otvoriť panel n\xe1strojov"],"sdk.toolbar.mobile.viewControls.label":["Pohľady"],"sdk.toolbar.share.allowEdit.label":["Povoliť pr\xedjemcovi upravovať konfigur\xe1ciu"],"sdk.toolbar.share.allowEditShort.label":["Povoliť pr\xedjemcovi upravovať"],"sdk.toolbar.share.close.label":["Zavrieť"],"sdk.toolbar.share.copiedLinkButtonTitle":["Skop\xedrovan\xe9"],"sdk.toolbar.share.copyLink.label":["Skop\xedrovať odkaz"],"sdk.toolbar.share.copyLinkButtonTitle":["Skop\xedrovať odkaz"],"sdk.toolbar.share.input.aria":["Prepn\xfať pre skop\xedrovanie upraviteľn\xe9ho odkazu do schr\xe1nky"],"sdk.toolbar.share.label":["Zdieľať konfigur\xe1ciu"],"sdk.toolbar.share.linkCopied.label":["Skop\xedrovan\xe9"],"sdk.toolbar.share.loading.label":["generovanie odkazu..."],"sdk.toolbar.share.open.label":["Zdieľať"],"sdk.toolbar.share.section.label":["Zdieľať svoj v\xfdtvor"],"sdk.toolbar.undoRedo.redo.label":["Znova"],"sdk.toolbar.undoRedo.undo.label":["Sp\xe4ť"],"sdk.toolbar.viewControls.title":["Prepn\xfať pohľad"],"sdk.totalPrice":["Celkov\xe1 cena"]}');
|
|
1
|
+
export const messages=JSON.parse('{"sdk.admin.error.backToHome.label":["Sp\xe4ť na domovsk\xfa str\xe1nku"],"sdk.admin.error.system.message":["Moment\xe1lne m\xe1me technick\xe9 probl\xe9my. Sk\xfaste to pros\xedm o p\xe1r min\xfat. Ďakujeme za vašu trpezlivosť!"],"sdk.admin.error.system.title":["Ups, niečo sa pokazilo!"],"sdk.angleDimension.hintMessageTooLarge":["Aktu\xe1lna hodnota je ",["currentWithUnit"],", čo je v\xe4čšie než povolen\xe9 maximum ",["limitWithUnit"],"."],"sdk.angleDimension.hintMessageTooSmall":["Aktu\xe1lna hodnota je ",["currentWithUnit"],", čo je menšie než povolen\xe9 minimum ",["limitWithUnit"],"."],"sdk.assistant.composer.attach.label":["Pripojiť obr\xe1zky"],"sdk.assistant.composer.attachment.limit":["M\xf4žete pripojiť najviac ",["max"]," obr\xe1zky."],"sdk.assistant.composer.attachment.remove":["Odstr\xe1niť obr\xe1zok"],"sdk.assistant.composer.attachment.unreadable":["Nepodporovan\xfd form\xe1t obr\xe1zka."],"sdk.assistant.composer.disclaimer":["AI sa m\xf4že m\xfdliť. V\xfdsledok si skontrolujte."],"sdk.assistant.composer.placeholder":["Op\xfdtajte sa alebo nap\xedšte, čo zmeniť…"],"sdk.assistant.composer.send.label":["Odoslať"],"sdk.assistant.composer.stop.label":["Zastaviť"],"sdk.assistant.failure.busy":["Asistent ešte pracuje na predch\xe1dzaj\xfacej spr\xe1ve."],"sdk.assistant.failure.notAvailable":["Asistent tu nie je dostupn\xfd."],"sdk.assistant.failure.retry.label":["Sk\xfasiť znova"],"sdk.assistant.failure.unavailable":["Asistent teraz nie je dostupn\xfd."],"sdk.assistant.form.confirm.no":["Nie"],"sdk.assistant.form.confirm.yes":["\xc1no"],"sdk.assistant.form.failure":["Asistent nedok\xe1zal zostaviť tento formul\xe1r."],"sdk.assistant.form.fix.label":["Opraviť"],"sdk.assistant.form.number.invalid":["Zadajte č\xedslo."],"sdk.assistant.form.submit.label":["Odoslať"],"sdk.assistant.form.writing":["Pripravuje sa formul\xe1r…"],"sdk.assistant.message.image.open":["Zobraziť pripojen\xfd obr\xe1zok v\xe4čš\xed"],"sdk.assistant.panel.close.label":["Zavrieť asistenta"],"sdk.assistant.panel.title":["Asistent"],"sdk.assistant.reference.unavailable.message":["Moment\xe1lne nie je k dispoz\xedcii"],"sdk.assistant.thread.earlierSummarized":["Predch\xe1dzaj\xfaca konverz\xe1cia zhrnut\xe1"],"sdk.assistant.thread.greeting":["Dobr\xfd deň. M\xf4žem odpovedať na ot\xe1zky k tomuto n\xe1vrhu a upravovať ho s vami. Nap\xedšte, čo potrebujete."],"sdk.assistant.thread.loading":["Nač\xedtavam konverz\xe1ciu…"],"sdk.assistant.thread.loadingEarlier":["Nač\xedtavam predch\xe1dzaj\xfacu konverz\xe1ciu…"],"sdk.assistant.thread.newReply.label":["Nov\xe1 odpoveď"],"sdk.assistant.thread.resuming":["Obnovujem konverz\xe1ciu…"],"sdk.assistant.thread.showEarlier.label":["Zobraziť predch\xe1dzaj\xfacu konverz\xe1ciu"],"sdk.assistant.thread.thinking":["Prem\xfdšľam…"],"sdk.assistant.tool.cancelled.hint":["Zastaven\xe9 pred dokončen\xedm."],"sdk.assistant.tool.mistake.hint":["Asistent urobil chybu."],"sdk.assistant.tool.noResult.hint":["V\xfdsledok tohto kroku sa stratil. Krok mohol, ale nemusel byť vykonan\xfd."],"sdk.assistant.tool.readDesign.label":["Č\xedtanie n\xe1vrhu"],"sdk.assistant.tool.screenshots.label":[["count","plural",{"one":["#"," sn\xedmka"],"few":["#"," sn\xedmky"],"other":["#"," sn\xedmok"]}]],"sdk.assistant.tool.toolBudget.hint":["Nevykonan\xe9: asistent dosiahol limit krokov pre jednu spr\xe1vu."],"sdk.assistant.tool.undo.label":["Sp\xe4ť"],"sdk.assistant.tool.updateDesign.label":["\xdaprava n\xe1vrhu"],"sdk.assistant.toolbarButton.label":["Asistent"],"sdk.chat.disclaimer.close.label":["Zavrieť"],"sdk.chat.disclaimer.dialog.title":["Upozornenie k chatu"],"sdk.chat.disclaimer.full.message":["<0>Nasleduj\xface vyhl\xe1senie m\xe1 za cieľ informovať použ\xedvateľov o obmedzeniach a pokynoch pre použ\xedvanie AI chatbota dostupn\xe9ho na tomto webe. Pred komunik\xe1ciou s chatbotom si pros\xedm pozorne preč\xedtajte toto vyhl\xe1senie.</0><1><2>Všeobecn\xe9 inform\xe1cie:</2> AI chatbot je automatizovan\xfd syst\xe9m poh\xe1ňan\xfd OpenAI/ChatGPT. Je navrhnut\xfd tak, aby poskytoval inform\xe1cie a pomoc na z\xe1klade dostupn\xfdch inform\xe1ci\xed o produktoch pon\xfakan\xfdch na tomto webe. Aj keď sa snaž\xedme poskytovať presn\xe9 inform\xe1cie prostredn\xedctvom AI chatbota, nem\xf4žeme zaručiť presnosť, \xfaplnosť alebo aktu\xe1lnosť poskytovan\xfdch inform\xe1ci\xed. Odpor\xfačame použ\xedvať odpovede ako v\xfdchodiskov\xfd bod a overovať odpovede u poskytovateľa t\xfdchto inform\xe1ci\xed (vlastn\xedka tohto webu) alebo akejkoľvek dostupnej produktovej dokument\xe1cie.</1><3><4>Zodpovednosť použ\xedvateľa:</4> Použ\xedvatelia AI chatbota nes\xfa v\xfdhradn\xfa zodpovednosť za svoje interakcie a spoliehanie sa na poskytovan\xe9 inform\xe1cie. Je d\xf4ležit\xe9 byť opatrn\xfd a použ\xedvať vlastn\xfd \xfasudok pri interpret\xe1cii a konan\xed na z\xe1klade odpoved\xed chatbota. Ani vlastn\xedk tohto webu, ani poskytovateľ technol\xf3gie chatbota nem\xf4že byť činen\xfd zodpovedn\xfdm za ak\xe9koľvek činy, straty alebo škody vypl\xfdvaj\xface z použ\xedvania chatbota.</3><5><6>Ochrana \xfadajov a bezpečnosť:</6> Uprednostňujeme ochranu a bezpečnosť inform\xe1ci\xed použ\xedvateľov. Majte na pam\xe4ti, že konverz\xe1cie s chatbotom m\xf4žu byť skontrolovan\xe9 vlastn\xedkom tohto webu a poskytovateľom technol\xf3gie za \xfačelom zlepšenia v\xfdsledkov. Zatiaľ čo OpenAI/ChatGPT uchov\xe1va z\xe1znamy t\xfdchto konverz\xe1ci\xed po dobu 30 dn\xed, tieto d\xe1ta sa nepouž\xedvaj\xfa na tr\xe9ning ich AI modelov. Nezdieľajte žiadne citliv\xe9 alebo osobn\xe9 inform\xe1cie vo vašich konverz\xe1ci\xe1ch.</5><7>Použ\xedvan\xedm tohto AI chatbota vyjadrujete svoj s\xfahlas a porozumenie vyššie uveden\xe9mu vyhl\xe1seniu. Ak nes\xfahlas\xedte s ktoroukoľvek časťou tohto vyhl\xe1senia, odpor\xfačame chatbot nepouž\xedvať.</7>"],"sdk.chat.disclaimer.inline.message":["Varovanie! AI sa m\xf4že m\xfdliť"],"sdk.chat.disclaimer.seeMore.label":["viac inform\xe1ci\xed"],"sdk.chat.header.desktop.title":["Asistent"],"sdk.chat.input.default.placeholder":["Hľadajte alebo sa op\xfdtajte na čokoľvek..."],"sdk.chat.input.footer.placeholder":["P\xedšte sem..."],"sdk.chat.mobile.assistant.label":["AI Asistent"],"sdk.chat.send.button.label":["Odoslať spr\xe1vu"],"sdk.chat.system.error.message":["Chyba"],"sdk.chat.welcome.greeting.message":["Op\xfdtajte sa na čokoľvek alebo vyberte z najčastejšie kladen\xfdch ot\xe1zok"],"sdk.collision.warning.tooltip":["Predmety s\xfa pr\xedliš bl\xedzko alebo sa prekr\xfdvaj\xfa"],"sdk.controls.dimension.angle.error":["Neplatn\xfd uhol"],"sdk.controls.dimension.angle.hint":["Zadajte uhol"],"sdk.controls.dimension.angle.hintRange":["Zadajte č\xedslo medzi ",["0"],["unitLabelWithSpace"]," a ",["1"],["unitLabelWithSpace"],"."],"sdk.controls.dimension.angleSlider.error":["Neplatn\xfd uhol"],"sdk.controls.dimension.distance.error":["Neplatn\xe1 vzdialenosť"],"sdk.controls.dimension.distance.hint":["Zadajte vzdialenosť"],"sdk.controls.dimension.distance.hintRange":["Zadajte č\xedslo medzi ",["0"]," a ",["1"],"."],"sdk.controls.dimension.distanceSlider.error":["Neplatn\xe1 vzdialenosť"],"sdk.controls.dimension.generic.error":["Neplatn\xe1 hodnota"],"sdk.controls.dimension.generic.hint":["Zadajte hodnotu"],"sdk.controls.dimension.generic.hintRange":["Zadajte č\xedslo medzi ",["0"]," a ",["1"],"."],"sdk.controls.dimension.genericSlider.error":["Neplatn\xe1 hodnota"],"sdk.controls.dimension.indicator.apply":["Použiť"],"sdk.controls.dimension.indicator.cancel":["Zrušiť"],"sdk.controls.dimension.list.selector.close.label":["Zavrieť"],"sdk.controls.dimension.offset.hint":["Zadajte odsadenie"],"sdk.controls.dimension.size.hint":["Zadajte rozmer"],"sdk.controls.entity.add.close.label":["Zavrieť"],"sdk.controls.entity.add.nothingMessage":["Sem nemožno nič pridať"],"sdk.controls.entity.childDelete.label":["Zmazať"],"sdk.controls.entity.childSelect.label":["Upraviť"],"sdk.controls.entity.delete.label":["Zmazať"],"sdk.controls.entity.replace.label":["Nahradiť"],"sdk.controls.property.back.label":["Sp\xe4ť"],"sdk.controls.recipeGroup.notFound.message":["Skupina, ktor\xfa hľad\xe1te, už nie je k dispoz\xedcii. Vyberte pros\xedm in\xfa skupinu."],"sdk.controls.recipeGroup.notFound.title":["Nen\xe1jden\xe9"],"sdk.controls.tool.close.label":["Zavrieť"],"sdk.controls.units.feet.label":["stopy"],"sdk.controls.units.inch.label":["palce"],"sdk.controls.upload.dragDrop.hint":["alebo potiahnite sem"],"sdk.controls.upload.failed.error":["Nepodarilo sa nahrať s\xfabor."],"sdk.controls.upload.link.label":["Odkaz"],"sdk.controls.upload.size.error":["S\xfabor je pr\xedliš veľk\xfd. Maxim\xe1lna veľkosť je ",["0"]," MB."],"sdk.distanceDimension.hintMessageTooLarge":["Aktu\xe1lna hodnota je ",["0"],", čo je v\xe4čšie než povolen\xe9 maximum ",["1"],"."],"sdk.distanceDimension.hintMessageTooSmall":["Aktu\xe1lna hodnota je ",["0"],", čo je menšie než povolen\xe9 minimum ",["1"],"."],"sdk.finalize.notConfigured.tooltip":["Funkcia dokončenia nie je nakonfigurovan\xe1."],"sdk.finalize.outOfSync.hint":["Konfigur\xe1cia nie je synchronizovan\xe1. Niektor\xe9 zmeny neboli spr\xe1vne uložen\xe9."],"sdk.genericDimension.hintMessageTooLarge":["Aktu\xe1lna hodnota je ",["currentWithUnit"],", čo je v\xe4čšie než povolen\xe9 maximum ",["limitWithUnit"],"."],"sdk.genericDimension.hintMessageTooSmall":["Aktu\xe1lna hodnota je ",["currentWithUnit"],", čo je menšie než povolen\xe9 minimum ",["limitWithUnit"],"."],"sdk.layout.banner.readonly.cancel.label":["Zrušiť"],"sdk.layout.banner.readonly.clone.label":["Vytvoriť upraviteľn\xfa k\xf3piu"],"sdk.layout.banner.readonly.clone.message":["Chyst\xe1te sa vytvoriť upraviteľn\xfa k\xf3piu tohto nastavenia. Zmeny, ktor\xe9 urob\xedte, neovplyvnia p\xf4vodn\xfd zdieľan\xfd odkaz."],"sdk.layout.banner.readonly.clone.title":["Upraviť konfigur\xe1ciu"],"sdk.layout.banner.readonly.editConfig.label":["Upraviť konfigur\xe1ciu"],"sdk.layout.banner.readonly.editMobile.label":["Upraviť"],"sdk.layout.banner.readonly.info.message":["Prezer\xe1te konfigur\xe1ciu iba na č\xedtanie."],"sdk.layout.button.closeConfigurator.label":["Sp\xe4ť"],"sdk.layout.button.closePresetPreview.label":["Sp\xe4ť"],"sdk.layout.button.desktopBack.label":["Sp\xe4ť"],"sdk.layout.button.desktopSidebarBack.label":["Sp\xe4ť"],"sdk.layout.button.mobileBack.label":["Sp\xe4ť"],"sdk.layout.button.mobileSidebarBack.label":["Sp\xe4ť"],"sdk.layout.button.presetBack.label":["Sp\xe4ť"],"sdk.layout.button.saveRecipe.label":["Uložiť Recept"],"sdk.layout.button.saveTemplate.label":["Uložiť Šabl\xf3nu"],"sdk.layout.button.setTemplate.label":["Nastaviť ako Šabl\xf3nu"],"sdk.layout.controls.mobile.view3d.label":["3D pohľad"],"sdk.layout.controls.mobile.viewOnly.message":["<0>Režim iba na zobrazenie.</0> Pre \xfapravy konfigur\xe1cie použite zariadenie s v\xe4čšou obrazovkou."],"sdk.layout.controls.tablet.viewOnly.message":["<0>Režim iba na zobrazenie.</0> Pre \xfapravy konfigur\xe1cie použite zariadenie s v\xe4čšou obrazovkou alebo sk\xfaste zmeniť orient\xe1ciu zariadenia."],"sdk.layout.exporting.message":["Konfigur\xe1tor exportuje… čakajte, pros\xedm"],"sdk.layout.finalize.moreActions":["More finalization options"],"sdk.layout.footer.price.label":["Celkov\xe1 cena"],"sdk.layout.hamburgerMenu.language.dialogTitle":["Zmeniť jazyk"],"sdk.layout.hamburgerMenu.language.label":["Zmeniť jazyk"],"sdk.layout.menu.hamburger.close.label":["Zavrieť"],"sdk.layout.menu.hamburger.help.label":["Zobraziť pomocn\xedka"],"sdk.layout.menu.hamburger.help.label.closeButtonLabel":["Zavrieť"],"sdk.layout.menu.hamburger.share.label":["Zdieľať konfigur\xe1ciu"],"sdk.layout.menu.hamburger.title":["Nastavenia"],"sdk.layout.menu.hamburger.tooltip":["Otvoriť menu"],"sdk.layout.menu.language.close.label":["Zavrieť"],"sdk.layout.menu.measurements.close.label":["Zavrieť"],"sdk.layout.menu.measurements.label":["Zmeniť mieru"],"sdk.layout.navigation.common.product.label":["Web"],"sdk.layout.navigation.mobile.product.label":["Web"],"sdk.layout.navigation.steps.first.label":["Produkty"],"sdk.layout.sidebar.disabledFinalizeButton.label":["Dokončiť"],"sdk.layout.sidebar.finalize.label":["Pridať do koš\xedka"],"sdk.layout.sidebar.finalizePage.label":["Dokončiť"],"sdk.layout.sidebar.nextStep.label":["Ďalš\xed krok"],"sdk.layout.sidebar.nextStepShort.label":["Ďalej"],"sdk.layout.sidebar.previousStep.label":["Predch\xe1dzaj\xfaci krok"],"sdk.layout.sidebar.price.label":["Cena"],"sdk.layout.sidebar.totalPrice.label":["Celkov\xe1 cena"],"sdk.layout.summary.button.label":["Zhrnutie"],"sdk.layout.toolbar.mobile.tools.title":["N\xe1stroje"],"sdk.layout.toolbar.mobile.units.label":["Jednotky"],"sdk.measurements":["Zmeniť mieru"],"sdk.messages.error.configNotFound.message":["Konfigur\xe1cia, ku ktorej sa pok\xfašate pristupovať, už nemus\xed existovať, alebo nem\xe1te potrebn\xe9 opr\xe1vnenia na jej zobrazenie."],"sdk.messages.error.configNotFound.title":["Konfigur\xe1cia nie je pr\xedstupn\xe1"],"sdk.messages.error.configurator.backToHome.label":["Sp\xe4ť na domovsk\xfa str\xe1nku"],"sdk.messages.error.configurator.message":["Moment\xe1lne m\xe1me technick\xe9 probl\xe9my. Sk\xfaste to pros\xedm o p\xe1r min\xfat. Ďakujeme za vašu trpezlivosť!"],"sdk.messages.error.configurator.title":["Ups, niečo sa pokazilo!"],"sdk.messages.error.configuratorRoot.backToHome.label":["Sp\xe4ť na domovsk\xfa str\xe1nku"],"sdk.messages.error.configuratorRoot.message":["Moment\xe1lne m\xe1me technick\xe9 probl\xe9my. Sk\xfaste to pros\xedm o p\xe1r min\xfat. Ďakujeme za vašu trpezlivosť!"],"sdk.messages.error.configuratorRoot.title":["Ups, niečo sa pokazilo!"],"sdk.messages.error.gpuDisabled.message":["V\xe1š prehliadač m\xe1 zak\xe1zan\xfa GPU akceler\xe1ciu, čo br\xe1ni spr\xe1vnemu fungovaniu konfigur\xe1tora. 3D v\xfdkon je v\xe1žne ovplyvnen\xfd. Povoľte t\xfato možnosť v nastaveniach prehliadača, aby ste mohli konfigur\xe1tor použ\xedvať."],"sdk.messages.error.gpuDisabled.title":["GPU akceler\xe1cia zak\xe1zan\xe1"],"sdk.messages.error.notFound.backToHome.label":["Sp\xe4ť na domovsk\xfa str\xe1nku"],"sdk.messages.error.webglNotSupported.message":["Vaše zariadenie alebo prehliadač nepodporuje WebGL, ktor\xfd je nutn\xfd pre funkciu konfigur\xe1tora. Sk\xfaste in\xfd prehliadač alebo zariadenie, ktor\xe9 podporuje WebGL"],"sdk.messages.error.webglNotSupported.title":["WebGL nie je podporovan\xfd alebo nemožno inicializovať"],"sdk.messages.finalize.error":["Ups, niečo sa pokazilo"],"sdk.messages.navigation.goToHomepage.label":["Prejsť na \xfavodn\xfa str\xe1nku"],"sdk.messages.otherAction.error":["Ups, niečo sa pokazilo"],"sdk.messages.system.invalidDeployment.close.label":["Znovu nač\xedtať"],"sdk.messages.system.invalidDeployment.message":["Konfigur\xe1tor bol aktualizovan\xfd. Pros\xedm, znovu nač\xedtajte str\xe1nku pre pokračovanie."],"sdk.messages.system.invalidDeployment.title":["Konfigur\xe1tor aktualizovan\xfd"],"sdk.messages.validation.uncaughtError.message":["Došlo k neočak\xe1vanej chybe. Sk\xfaste to pros\xedm znova."],"sdk.persist.system.error.dismiss":["Zavrieť"],"sdk.persist.system.error.message":["Pri aktualiz\xe1cii konfigur\xe1cie došlo k chybe"],"sdk.persist.system.error.recovered":["Konfigur\xe1cia aktualizovan\xe1"],"sdk.presets.category.count.message":[["presetCount","plural",{"one":["#"," šabl\xf3na"],"few":["#"," šabl\xf3ny"],"other":["#"," šabl\xf3n"]}]],"sdk.presets.category.heading.title":["Vyberte v\xfdchodiskov\xfa šabl\xf3nu"],"sdk.presets.create.error.dismiss.label":["Zavrieť"],"sdk.presets.create.error.message":["Konfigur\xe1ciu sa z tejto šabl\xf3ny nepodarilo spustiť. Sk\xfaste to pros\xedm znova."],"sdk.presets.detail.close.label":["Zavrieť"],"sdk.presets.detail.learnMore.label":["Zistiť viac"],"sdk.presets.detail.select.label":["Vybrať"],"sdk.presets.preview.title":["Prisp\xf4sobiť produkt"],"sdk.presets.select.button.label":["Vybrať"],"sdk.presets.start.button.label":["Začať konfigurovať"],"sdk.preview.customize.title":["Prisp\xf4sobiť produkt"],"sdk.preview.start.button.label":["Začať konfigurovať"],"sdk.sketching.angle.apply.label":["Použiť"],"sdk.sketching.angle.cancel.label":["Zrušiť"],"sdk.sketching.angle.control.label":["Uhol"],"sdk.sketching.angle.control.text":["Upravte uhol"],"sdk.sketching.angle.control.title":["Nastaviť uhol"],"sdk.sketching.angle.input.error":["Zadajte platn\xe9 č\xedslo!"],"sdk.sketching.dimension.apply.label":["Použiť"],"sdk.sketching.dimension.cancel.label":["Zrušiť"],"sdk.sketching.dimension.depth.label":["Hĺbka"],"sdk.sketching.dimension.depth.text":["Upravte hĺbku"],"sdk.sketching.dimension.depth.title":["Nastaviť hĺbku"],"sdk.sketching.dimension.input.error":["Zadajte platn\xe9 č\xedslo!"],"sdk.sketching.dimension.length.label":["Dĺžka"],"sdk.sketching.dimension.length.text":["Upravte dĺžku"],"sdk.sketching.dimension.length.title":["Nastaviť dĺžku"],"sdk.sketching.dimension.width.label":["Š\xedrka"],"sdk.sketching.dimension.width.text":["Upravte š\xedrku"],"sdk.sketching.dimension.width.title":["Nastaviť š\xedrku"],"sdk.sketching.draw.done.label":["Hotovo"],"sdk.sketching.spotlight.label":["Kliknite pre začatie kreslenia"],"sdk.toolbar.actions.undoRedo.label":["Akcie"],"sdk.toolbar.camera.reset.label":["Resetovať kameru"],"sdk.toolbar.camera.reset.labelAriaLabel":["resetovať kameru na v\xfdchodiskov\xfa poz\xedciu"],"sdk.toolbar.fullscreen.enter.label":["Otvoriť na cel\xfa obrazovku"],"sdk.toolbar.fullscreen.exit.label":["Ukončiť cel\xfa obrazovku"],"sdk.toolbar.help.close.label":["Zavrieť"],"sdk.toolbar.help.label":["Pomocn\xedk"],"sdk.toolbar.language.title":["Prepn\xfať jazyk"],"sdk.toolbar.measurements.change.aria":["otvoriť menu merania"],"sdk.toolbar.measurements.indicators.label":["Indik\xe1tory rozmerov"],"sdk.toolbar.measurements.input.aria":["Prepn\xfať meranie"],"sdk.toolbar.measurements.units.aria":["Nastavenie jednotiek merania"],"sdk.toolbar.mobile.fullscreen.enter.label":["Rozbaliť"],"sdk.toolbar.mobile.fullscreen.exit.label":["Zmenšiť"],"sdk.toolbar.mobile.fullscreen.title":["Režim celej obrazovky"],"sdk.toolbar.mobile.open.aria":["Otvoriť panel n\xe1strojov"],"sdk.toolbar.mobile.viewControls.label":["Pohľady"],"sdk.toolbar.share.allowEdit.label":["Povoliť pr\xedjemcovi upravovať konfigur\xe1ciu"],"sdk.toolbar.share.allowEditShort.label":["Povoliť pr\xedjemcovi upravovať"],"sdk.toolbar.share.close.label":["Zavrieť"],"sdk.toolbar.share.copiedLinkButtonTitle":["Skop\xedrovan\xe9"],"sdk.toolbar.share.copyLink.label":["Skop\xedrovať odkaz"],"sdk.toolbar.share.copyLinkButtonTitle":["Skop\xedrovať odkaz"],"sdk.toolbar.share.input.aria":["Prepn\xfať pre skop\xedrovanie upraviteľn\xe9ho odkazu do schr\xe1nky"],"sdk.toolbar.share.label":["Zdieľať konfigur\xe1ciu"],"sdk.toolbar.share.linkCopied.label":["Skop\xedrovan\xe9"],"sdk.toolbar.share.loading.label":["generovanie odkazu..."],"sdk.toolbar.share.open.label":["Zdieľať"],"sdk.toolbar.share.section.label":["Zdieľať svoj v\xfdtvor"],"sdk.toolbar.undoRedo.redo.label":["Znova"],"sdk.toolbar.undoRedo.undo.label":["Sp\xe4ť"],"sdk.toolbar.viewControls.title":["Prepn\xfať pohľad"],"sdk.totalPrice":["Celkov\xe1 cena"]}');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const messages=JSON.parse('{"sdk.admin.error.backToHome.label":["Ana sayfaya d\xf6n"],"sdk.admin.error.system.message":["Şu anda teknik zorluklar yaşıyoruz. L\xfctfen birka\xe7 dakika sonra tekrar deneyin. Sabrınız i\xe7in teşekk\xfcrler!"],"sdk.admin.error.system.title":["Sistem hatası"],"sdk.angleDimension.hintMessageTooLarge":["Mevcut değer ",["currentWithUnit"]," olup, izin verilen maksimum değer olan ",["limitWithUnit"]," değerinden b\xfcy\xfckt\xfcr."],"sdk.angleDimension.hintMessageTooSmall":["Mevcut değer ",["currentWithUnit"]," olup, izin verilen minimum değer olan ",["limitWithUnit"]," değerinden k\xfc\xe7\xfckt\xfcr."],"sdk.assistant.composer.disclaimer":["Yapay zek\xe2 yanılabilir. Sonucu kontrol edin."],"sdk.assistant.composer.placeholder":["Sorun veya neyi değiştireceğimi s\xf6yleyin…"],"sdk.assistant.composer.send.label":["G\xf6nder"],"sdk.assistant.composer.stop.label":["Durdur"],"sdk.assistant.failure.busy":["Asistan h\xe2l\xe2 \xf6nceki bir mesaj \xfczerinde \xe7alışıyor."],"sdk.assistant.failure.notAvailable":["Asistan burada kullanılamıyor."],"sdk.assistant.failure.retry.label":["Tekrar dene"],"sdk.assistant.failure.unavailable":["Asistan şu anda kullanılamıyor."],"sdk.assistant.form.failure":["Asistan bu formu oluşturamadı."],"sdk.assistant.form.fix.label":["D\xfczelt"],"sdk.assistant.form.submit.label":["G\xf6nder"],"sdk.assistant.form.writing":["Form hazırlanıyor…"],"sdk.assistant.panel.close.label":["Asistanı kapat"],"sdk.assistant.panel.title":["Asistan"],"sdk.assistant.reference.unavailable.message":["Şu anda kullanılamıyor"],"sdk.assistant.thread.earlierSummarized":["\xd6nceki konuşma \xf6zetlendi"],"sdk.assistant.thread.greeting":["Merhaba. Bu tasarımla ilgili soruları yanıtlayabilir ve onu sizinle birlikte değiştirebilirim. Neye ihtiyacınız olduğunu s\xf6yleyin."],"sdk.assistant.thread.loading":["Konuşma y\xfckleniyor…"],"sdk.assistant.thread.loadingEarlier":["\xd6nceki konuşma y\xfckleniyor…"],"sdk.assistant.thread.newReply.label":["Yeni yanıt"],"sdk.assistant.thread.resuming":["Konuşma s\xfcrd\xfcr\xfcl\xfcyor…"],"sdk.assistant.thread.showEarlier.label":["\xd6nceki konuşmayı g\xf6ster"],"sdk.assistant.thread.thinking":["D\xfcş\xfcn\xfcyor…"],"sdk.assistant.tool.cancelled.hint":["Tamamlanmadan durduruldu."],"sdk.assistant.tool.mistake.hint":["Asistan bir hata yaptı."],"sdk.assistant.tool.noResult.hint":["Bu adımın sonucu kayboldu. Adım uygulanmış da olabilir, uygulanmamış da."],"sdk.assistant.tool.readDesign.label":["Tasarımı oku"],"sdk.assistant.tool.toolBudget.hint":["Yapılmadı: asistan bir mesaj i\xe7in adım sınırına ulaştı."],"sdk.assistant.tool.undo.label":["Geri Al"],"sdk.assistant.tool.updateDesign.label":["Tasarımı g\xfcncelle"],"sdk.assistant.toolbarButton.label":["Asistan"],"sdk.chat.disclaimer.close.label":["Kapat"],"sdk.chat.disclaimer.dialog.title":["Asistan bildirimi"],"sdk.chat.disclaimer.full.message":["<0>Aşağıdaki sorumluluk reddi, bu web sitesinde bulunan AI chatbot\'un sınırlamaları ve kullanım y\xf6nergeleri hakkında kullanıcıları bilgilendirmek amacıyla hazırlanmıştır. Chatbot ile etkileşime ge\xe7meden \xf6nce l\xfctfen bu sorumluluk reddini dikkatlice okuyun.</0><1><2>Genel Bilgiler:</2> AI chatbot, OpenAI/ChatGPT tarafından desteklenen otomatik bir sistemdir. Bu web sitesinde sunulan \xfcr\xfcnler hakkında mevcut bilgilere dayanarak bilgi ve yardım sağlamak \xfczere tasarlanmıştır. AI chatbot aracılığıyla doğru bilgi sağlamaya \xe7alışsak da, sağlanan bilgilerin doğruluğunu, eksiksizliğini veya g\xfcncelliğini garanti edemeyiz. Yanıtları başlangı\xe7 noktası olarak kullanmanızı ve yanıtları bu bilgilerin sağlayıcısı (bu web sitesinin sahibi) veya mevcut \xfcr\xfcn belgelerinde doğrulamanızı \xf6neririz.</1><3><4>Kullanıcı Sorumluluğu:</4> AI chatbot kullanıcıları, etkileşimleri ve sağlanan bilgilere g\xfcvenmeleri konusunda tam sorumluluk taşırlar. Chatbot\'un yanıtlarını yorumlarken ve bunlara g\xf6re hareket ederken dikkatli olmak ve kendi takdirinizi kullanmak \xf6nemlidir. Bu web sitesinin sahibi veya chatbot teknolojisinin sağlayıcısı, chatbot kullanımından kaynaklanan eylemler, kayıplar veya zararlardan sorumlu tutulamaz.</3><5><6>Veri Gizliliği ve G\xfcvenliği:</6> Kullanıcı bilgilerinin gizliliğini ve g\xfcvenliğini \xf6nceliklendiriyoruz. Chatbot konuşmalarının sonu\xe7ları iyileştirmek i\xe7in bu web sitesinin sahibi ve teknoloji sağlayıcısı tarafından incelenebileceğini unutmayın. OpenAI/ChatGPT bu konuşmaların g\xfcnl\xfcklerini 30 g\xfcn boyunca saklarken, bu veriler AI modellerini eğitmek i\xe7in kullanılmaz. Konuşmalarınızda hassas veya kişisel bilgiler paylaşmayın.</5><7>Bu AI chatbot\'u kullanarak, yukarıdaki sorumluluk reddini kabul ettiğinizi ve anladığınızı belirtirsiniz. Bu sorumluluk reddinin herhangi bir b\xf6l\xfcm\xfcyle aynı fikirde değilseniz, chatbot\'u kullanmamanızı \xf6neririz.</7>"],"sdk.chat.disclaimer.inline.message":["Asistan deneyseldir ve yanlış bilgiler sağlayabilir."],"sdk.chat.disclaimer.seeMore.label":["Daha fazla bilgi"],"sdk.chat.header.desktop.title":["Asistan"],"sdk.chat.input.default.placeholder":["Mesaj yazın..."],"sdk.chat.input.footer.placeholder":["Mesaj yazın..."],"sdk.chat.mobile.assistant.label":["Asistan"],"sdk.chat.send.button.label":["Mesaj g\xf6nder"],"sdk.chat.system.error.message":["Asistanla iletişim kurarken bir hata oluştu. L\xfctfen tekrar deneyin."],"sdk.chat.welcome.greeting.message":["Merhaba! Ben sizin asistanınızım ve \xfcr\xfcn yapılandırması konusunda size yardımcı olacağım. Ne \xf6ğrenmek istersiniz?"],"sdk.collision.warning.tooltip":["\xd6ğeler \xe7ok yakın veya \xe7akışıyor"],"sdk.controls.dimension.angle.error":["Ge\xe7ersiz a\xe7ı"],"sdk.controls.dimension.angle.hint":["A\xe7ı girin"],"sdk.controls.dimension.angle.hintRange":["L\xfctfen ",["0"],["unitLabelWithSpace"]," ile ",["1"],["unitLabelWithSpace"]," arasında bir sayı girin."],"sdk.controls.dimension.angleSlider.error":["Ge\xe7ersiz a\xe7ı"],"sdk.controls.dimension.distance.error":["Ge\xe7ersiz mesafe"],"sdk.controls.dimension.distance.hint":["Mesafe girin"],"sdk.controls.dimension.distance.hintRange":["Mesafe ",["0"]," ile ",["1"]," arasında olmalıdır"],"sdk.controls.dimension.distanceSlider.error":["Ge\xe7ersiz mesafe"],"sdk.controls.dimension.generic.error":["Ge\xe7ersiz değer"],"sdk.controls.dimension.generic.hint":["Değer girin"],"sdk.controls.dimension.generic.hintRange":["Değer ",["min"]," ile ",["max"]," arasında olmalıdır"],"sdk.controls.dimension.genericSlider.error":["Ge\xe7ersiz değer"],"sdk.controls.dimension.indicator.apply":["Uygula"],"sdk.controls.dimension.indicator.cancel":["İptal"],"sdk.controls.dimension.offset.hint":["Ofset girin"],"sdk.controls.dimension.size.hint":["Boyut girin"],"sdk.controls.entity.add.close.label":["Kapat"],"sdk.controls.entity.add.nothingMessage":["Eklenecek bir şey yok"],"sdk.controls.entity.childDelete.label":["Sil"],"sdk.controls.entity.childSelect.label":["Se\xe7"],"sdk.controls.entity.delete.label":["Sil"],"sdk.controls.entity.replace.label":["Değiştir"],"sdk.controls.property.back.label":["Geri"],"sdk.controls.recipeGroup.notFound.message":["Bulunamadı"],"sdk.controls.recipeGroup.notFound.title":["Aradığınız grup artık mevcut değil. L\xfctfen başka bir grup se\xe7in."],"sdk.controls.tool.close.label":["Kapat"],"sdk.controls.units.feet.label":["ayak"],"sdk.controls.units.inch.label":["in\xe7"],"sdk.controls.upload.dragDrop.hint":["Dosyaları buraya s\xfcr\xfckleyin veya se\xe7mek i\xe7in tıklayın"],"sdk.controls.upload.failed.error":["Y\xfckleme başarısız"],"sdk.controls.upload.link.label":["Veya bir bağlantı yapıştırın"],"sdk.controls.upload.size.error":["Dosya \xe7ok b\xfcy\xfck"],"sdk.distanceDimension.hintMessageTooLarge":["Mevcut değer ",["0"]," olup, izin verilen maksimum değer olan ",["1"]," değerinden b\xfcy\xfckt\xfcr."],"sdk.distanceDimension.hintMessageTooSmall":["Mevcut değer ",["0"]," olup, izin verilen minimum değer olan ",["1"]," değerinden k\xfc\xe7\xfckt\xfcr."],"sdk.finalize.notConfigured.tooltip":["Tamamlama \xf6zelliği yapılandırılmamış."],"sdk.finalize.outOfSync.hint":["Yapılandırma senkronize değil. Bazı değişiklikler d\xfczg\xfcn şekilde kaydedilmedi."],"sdk.genericDimension.hintMessageTooLarge":["Mevcut değer ",["currentWithUnit"]," olup, izin verilen maksimum değer olan ",["limitWithUnit"]," değerinden b\xfcy\xfckt\xfcr."],"sdk.genericDimension.hintMessageTooSmall":["Mevcut değer ",["currentWithUnit"]," olup, izin verilen minimum değer olan ",["limitWithUnit"]," değerinden k\xfc\xe7\xfckt\xfcr."],"sdk.layout.banner.readonly.cancel.label":["İptal"],"sdk.layout.banner.readonly.clone.label":["D\xfczenlemek i\xe7in klonla"],"sdk.layout.banner.readonly.clone.message":["Bu yapılandırmanın d\xfczenleme i\xe7in bir kopyasını oluşturmak ister misiniz?"],"sdk.layout.banner.readonly.clone.title":["Yapılandırmayı klonla"],"sdk.layout.banner.readonly.editConfig.label":["Yapılandırmayı d\xfczenle"],"sdk.layout.banner.readonly.editMobile.label":["D\xfczenle"],"sdk.layout.banner.readonly.info.message":["Bu yapılandırma salt okunurdur. D\xfczenlemek i\xe7in bir kopya oluşturun."],"sdk.layout.button.closeConfigurator.label":["Yapılandırıcıyı kapat"],"sdk.layout.button.closePresetPreview.label":["\xd6nceden ayarlanmış \xf6nizlemeyi kapat"],"sdk.layout.button.desktopBack.label":["Geri"],"sdk.layout.button.desktopSidebarBack.label":["Geri"],"sdk.layout.button.mobileBack.label":["Geri"],"sdk.layout.button.mobileSidebarBack.label":["Geri"],"sdk.layout.button.presetBack.label":["Geri"],"sdk.layout.button.saveRecipe.label":["Tarifi kaydet"],"sdk.layout.button.saveTemplate.label":["Şablonu kaydet"],"sdk.layout.button.setTemplate.label":["Şablon olarak ayarla"],"sdk.layout.controls.mobile.view3d.label":["3D g\xf6r\xfcn\xfcm"],"sdk.layout.controls.mobile.viewOnly.message":["<0>Sadece g\xf6r\xfcnt\xfcleme modu.</0> Konfig\xfcrasyonu değiştirmek i\xe7in daha b\xfcy\xfck ekranlı bir cihaz kullanın."],"sdk.layout.controls.tablet.viewOnly.message":["<0>Sadece g\xf6r\xfcnt\xfcleme modu.</0> Konfig\xfcrasyonu değiştirmek i\xe7in daha b\xfcy\xfck ekranlı bir cihaz kullanın veya cihazınızın y\xf6n\xfcn\xfc değiştirmeyi deneyin."],"sdk.layout.finalize.moreActions":["More finalization options"],"sdk.layout.footer.price.label":["Toplam fiyat"],"sdk.layout.hamburgerMenu.language.dialogTitle":["Dil se\xe7in"],"sdk.layout.hamburgerMenu.language.label":["Dil"],"sdk.layout.menu.hamburger.close.label":["Kapat"],"sdk.layout.menu.hamburger.help.label":["Yardım"],"sdk.layout.menu.hamburger.help.label.closeButtonLabel":["Yardımı kapat"],"sdk.layout.menu.hamburger.share.label":["Paylaş"],"sdk.layout.menu.hamburger.title":["Men\xfc"],"sdk.layout.menu.hamburger.tooltip":["Men\xfcy\xfc a\xe7"],"sdk.layout.menu.language.close.label":["Kapat"],"sdk.layout.menu.measurements.close.label":["Kapat"],"sdk.layout.menu.measurements.label":["\xd6l\xe7\xfcmler"],"sdk.layout.navigation.common.product.label":["\xdcr\xfcn"],"sdk.layout.navigation.mobile.product.label":["\xdcr\xfcn"],"sdk.layout.navigation.steps.first.label":["İlk"],"sdk.layout.sidebar.disabledFinalizeButton.label":["Sonlandır"],"sdk.layout.sidebar.finalize.label":["Tamamla"],"sdk.layout.sidebar.finalizePage.label":["Tamamla"],"sdk.layout.sidebar.nextStep.label":["Sonraki adım"],"sdk.layout.sidebar.nextStepShort.label":["Sonraki"],"sdk.layout.sidebar.previousStep.label":["\xd6nceki adım"],"sdk.layout.sidebar.price.label":["Fiyat"],"sdk.layout.sidebar.totalPrice.label":["Toplam fiyat"],"sdk.layout.summary.button.label":["\xd6zet"],"sdk.layout.toolbar.mobile.tools.title":["Ara\xe7lar"],"sdk.layout.toolbar.mobile.units.label":["Birimler"],"sdk.measurements":["\xd6l\xe7\xfcmler"],"sdk.messages.error.configNotFound.message":["Yapılandırma bulunamadı. Silinmiş olabilir veya yanlış bir bağlantı girmiş olabilirsiniz."],"sdk.messages.error.configNotFound.title":["Yapılandırma bulunamadı"],"sdk.messages.error.configurator.backToHome.label":["Ana sayfaya d\xf6n"],"sdk.messages.error.configurator.message":["Hay aksi, bir şeyler ters gitti! L\xfctfen tekrar deneyin veya destek ile iletişime ge\xe7in."],"sdk.messages.error.configurator.title":["Yapılandırıcı hatası"],"sdk.messages.error.configuratorRoot.backToHome.label":["Ana sayfaya d\xf6n"],"sdk.messages.error.configuratorRoot.message":["Yapılandırıcı kullanılamıyor. L\xfctfen daha sonra tekrar deneyin."],"sdk.messages.error.configuratorRoot.title":["Yapılandırıcı kullanılamıyor"],"sdk.messages.error.gpuDisabled.message":["GPU hızlandırması devre dışı. Performans azalabilir. Daha iyi performans i\xe7in tarayıcı ayarlarınızda donanım hızlandırmasını etkinleştirin."],"sdk.messages.error.gpuDisabled.title":["GPU hızlandırması devre dışı"],"sdk.messages.error.notFound.backToHome.label":["Ana sayfaya d\xf6n"],"sdk.messages.error.webglNotSupported.message":["Tarayıcınız 3D render i\xe7in gerekli olan WebGL\'yi desteklemiyor. L\xfctfen farklı bir tarayıcı kullanmayı deneyin veya mevcut olanı g\xfcncelleyin."],"sdk.messages.error.webglNotSupported.title":["WebGL desteklenmiyor"],"sdk.messages.finalize.error":["Oops, bir hata oluştu"],"sdk.messages.navigation.goToHomepage.label":["Ana sayfaya git"],"sdk.messages.otherAction.error":["Oops, bir hata oluştu"],"sdk.messages.system.invalidDeployment.close.label":["Kapat"],"sdk.messages.system.invalidDeployment.message":["Bu dağıtım ge\xe7ersiz veya silinmiş."],"sdk.messages.system.invalidDeployment.title":["Ge\xe7ersiz dağıtım"],"sdk.messages.validation.uncaughtError.message":["Beklenmeyen bir hata oluştu. L\xfctfen tekrar deneyin."],"sdk.persist.system.error.dismiss":["Kapat"],"sdk.persist.system.error.message":["Bir yapılandırmayı g\xfcncellemeye \xe7alışırken bir hata oluştu"],"sdk.persist.system.error.recovered":["Yapılandırma g\xfcncellendi"],"sdk.presets.category.count.message":[["count"]," \xf6nceden ayarlanmış"],"sdk.presets.category.heading.title":["Kategoriler"],"sdk.presets.create.error.dismiss.label":["Kapat"],"sdk.presets.create.error.message":["Bu hazır ayardan yapılandırma başlatılamadı. L\xfctfen tekrar deneyin."],"sdk.presets.detail.close.label":["Kapat"],"sdk.presets.detail.learnMore.label":["Daha fazla bilgi"],"sdk.presets.detail.select.label":["Se\xe7"],"sdk.presets.preview.title":["\xd6nizleme"],"sdk.presets.select.button.label":["Se\xe7"],"sdk.presets.start.button.label":["Başla"],"sdk.preview.customize.title":["\xd6zelleştir"],"sdk.preview.start.button.label":["Başla"],"sdk.sketching.angle.apply.label":["Uygula"],"sdk.sketching.angle.cancel.label":["İptal"],"sdk.sketching.angle.control.label":["A\xe7ı"],"sdk.sketching.angle.control.text":["A\xe7ıyı ayarla"],"sdk.sketching.angle.control.title":["A\xe7ı belirle"],"sdk.sketching.angle.input.error":["L\xfctfen ge\xe7erli bir sayı girin!"],"sdk.sketching.dimension.apply.label":["Uygula"],"sdk.sketching.dimension.cancel.label":["İptal"],"sdk.sketching.dimension.depth.label":["Derinlik"],"sdk.sketching.dimension.depth.text":["Derinliği ayarla"],"sdk.sketching.dimension.depth.title":["Derinlik belirle"],"sdk.sketching.dimension.input.error":["L\xfctfen ge\xe7erli bir sayı girin!"],"sdk.sketching.dimension.length.label":["Uzunluk"],"sdk.sketching.dimension.length.text":["Uzunluğu ayarla"],"sdk.sketching.dimension.length.title":["Uzunluk belirle"],"sdk.sketching.dimension.width.label":["Genişlik"],"sdk.sketching.dimension.width.text":["Genişliği ayarla"],"sdk.sketching.dimension.width.title":["Genişlik belirle"],"sdk.sketching.draw.done.label":["Tamam"],"sdk.sketching.spotlight.label":["\xc7izime başlamak i\xe7in tıklayın"],"sdk.toolbar.actions.undoRedo.label":["Geri Al/Yinele"],"sdk.toolbar.camera.reset.label":["Kamerayı sıfırla"],"sdk.toolbar.camera.reset.labelAriaLabel":["Kamerayı varsayılan konuma sıfırla"],"sdk.toolbar.fullscreen.enter.label":["Tam ekran"],"sdk.toolbar.fullscreen.exit.label":["Tam ekrandan \xe7ık"],"sdk.toolbar.help.close.label":["Yardımı kapat"],"sdk.toolbar.help.label":["Yardım"],"sdk.toolbar.language.title":["Dil"],"sdk.toolbar.measurements.change.aria":["\xd6l\xe7\xfcmleri değiştir"],"sdk.toolbar.measurements.indicators.label":["\xd6l\xe7\xfcm g\xf6stergeleri"],"sdk.toolbar.measurements.input.aria":["\xd6l\xe7\xfcm girişini değiştir"],"sdk.toolbar.measurements.units.aria":["\xd6l\xe7\xfcm birimlerini değiştir"],"sdk.toolbar.mobile.fullscreen.enter.label":["Tam ekran"],"sdk.toolbar.mobile.fullscreen.exit.label":["Tam ekrandan \xe7ık"],"sdk.toolbar.mobile.fullscreen.title":["Tam ekran"],"sdk.toolbar.mobile.open.aria":["Mobil ara\xe7ları a\xe7"],"sdk.toolbar.mobile.viewControls.label":["G\xf6r\xfcn\xfcm kontrolleri"],"sdk.toolbar.share.allowEdit.label":["D\xfczenlemeye izin ver"],"sdk.toolbar.share.allowEditShort.label":["D\xfczenleme"],"sdk.toolbar.share.close.label":["Kapat"],"sdk.toolbar.share.copiedLinkButtonTitle":["Bağlantı kopyalandı"],"sdk.toolbar.share.copyLink.label":["Bağlantıyı kopyala"],"sdk.toolbar.share.copyLinkButtonTitle":["Bağlantıyı kopyala"],"sdk.toolbar.share.input.aria":["Paylaşım bağlantısı girişi"],"sdk.toolbar.share.label":["Paylaş"],"sdk.toolbar.share.linkCopied.label":["Bağlantı kopyalandı"],"sdk.toolbar.share.loading.label":["Y\xfckleniyor..."],"sdk.toolbar.share.open.label":["A\xe7"],"sdk.toolbar.share.section.label":["Paylaş"],"sdk.toolbar.undoRedo.redo.label":["Yinele"],"sdk.toolbar.undoRedo.undo.label":["Geri Al"],"sdk.toolbar.viewControls.title":["G\xf6r\xfcn\xfcm kontrolleri"],"sdk.totalPrice":["Toplam fiyat"]}');
|
|
1
|
+
export const messages=JSON.parse('{"sdk.admin.error.backToHome.label":["Ana sayfaya d\xf6n"],"sdk.admin.error.system.message":["Şu anda teknik zorluklar yaşıyoruz. L\xfctfen birka\xe7 dakika sonra tekrar deneyin. Sabrınız i\xe7in teşekk\xfcrler!"],"sdk.admin.error.system.title":["Sistem hatası"],"sdk.angleDimension.hintMessageTooLarge":["Mevcut değer ",["currentWithUnit"]," olup, izin verilen maksimum değer olan ",["limitWithUnit"]," değerinden b\xfcy\xfckt\xfcr."],"sdk.angleDimension.hintMessageTooSmall":["Mevcut değer ",["currentWithUnit"]," olup, izin verilen minimum değer olan ",["limitWithUnit"]," değerinden k\xfc\xe7\xfckt\xfcr."],"sdk.assistant.composer.attach.label":["G\xf6rsel ekle"],"sdk.assistant.composer.attachment.limit":["En fazla ",["max"]," g\xf6rsel ekleyebilirsiniz."],"sdk.assistant.composer.attachment.remove":["G\xf6rseli kaldır"],"sdk.assistant.composer.attachment.unreadable":["Desteklenmeyen g\xf6rsel bi\xe7imi."],"sdk.assistant.composer.disclaimer":["Yapay zek\xe2 yanılabilir. Sonucu kontrol edin."],"sdk.assistant.composer.placeholder":["Sorun veya neyi değiştireceğimi s\xf6yleyin…"],"sdk.assistant.composer.send.label":["G\xf6nder"],"sdk.assistant.composer.stop.label":["Durdur"],"sdk.assistant.failure.busy":["Asistan h\xe2l\xe2 \xf6nceki bir mesaj \xfczerinde \xe7alışıyor."],"sdk.assistant.failure.notAvailable":["Asistan burada kullanılamıyor."],"sdk.assistant.failure.retry.label":["Tekrar dene"],"sdk.assistant.failure.unavailable":["Asistan şu anda kullanılamıyor."],"sdk.assistant.form.confirm.no":["Hayır"],"sdk.assistant.form.confirm.yes":["Evet"],"sdk.assistant.form.failure":["Asistan bu formu oluşturamadı."],"sdk.assistant.form.fix.label":["D\xfczelt"],"sdk.assistant.form.number.invalid":["Bir sayı girin."],"sdk.assistant.form.submit.label":["G\xf6nder"],"sdk.assistant.form.writing":["Form hazırlanıyor…"],"sdk.assistant.message.image.open":["Eklenen g\xf6rseli daha b\xfcy\xfck g\xf6ster"],"sdk.assistant.panel.close.label":["Asistanı kapat"],"sdk.assistant.panel.title":["Asistan"],"sdk.assistant.reference.unavailable.message":["Şu anda kullanılamıyor"],"sdk.assistant.thread.earlierSummarized":["\xd6nceki konuşma \xf6zetlendi"],"sdk.assistant.thread.greeting":["Merhaba. Bu tasarımla ilgili soruları yanıtlayabilir ve onu sizinle birlikte değiştirebilirim. Neye ihtiyacınız olduğunu s\xf6yleyin."],"sdk.assistant.thread.loading":["Konuşma y\xfckleniyor…"],"sdk.assistant.thread.loadingEarlier":["\xd6nceki konuşma y\xfckleniyor…"],"sdk.assistant.thread.newReply.label":["Yeni yanıt"],"sdk.assistant.thread.resuming":["Konuşma s\xfcrd\xfcr\xfcl\xfcyor…"],"sdk.assistant.thread.showEarlier.label":["\xd6nceki konuşmayı g\xf6ster"],"sdk.assistant.thread.thinking":["D\xfcş\xfcn\xfcyor…"],"sdk.assistant.tool.cancelled.hint":["Tamamlanmadan durduruldu."],"sdk.assistant.tool.mistake.hint":["Asistan bir hata yaptı."],"sdk.assistant.tool.noResult.hint":["Bu adımın sonucu kayboldu. Adım uygulanmış da olabilir, uygulanmamış da."],"sdk.assistant.tool.readDesign.label":["Tasarımı oku"],"sdk.assistant.tool.screenshots.label":[["count","plural",{"one":["#"," ekran g\xf6r\xfcnt\xfcs\xfc"],"other":["#"," ekran g\xf6r\xfcnt\xfcs\xfc"]}]],"sdk.assistant.tool.toolBudget.hint":["Yapılmadı: asistan bir mesaj i\xe7in adım sınırına ulaştı."],"sdk.assistant.tool.undo.label":["Geri Al"],"sdk.assistant.tool.updateDesign.label":["Tasarımı g\xfcncelle"],"sdk.assistant.toolbarButton.label":["Asistan"],"sdk.chat.disclaimer.close.label":["Kapat"],"sdk.chat.disclaimer.dialog.title":["Asistan bildirimi"],"sdk.chat.disclaimer.full.message":["<0>Aşağıdaki sorumluluk reddi, bu web sitesinde bulunan AI chatbot\'un sınırlamaları ve kullanım y\xf6nergeleri hakkında kullanıcıları bilgilendirmek amacıyla hazırlanmıştır. Chatbot ile etkileşime ge\xe7meden \xf6nce l\xfctfen bu sorumluluk reddini dikkatlice okuyun.</0><1><2>Genel Bilgiler:</2> AI chatbot, OpenAI/ChatGPT tarafından desteklenen otomatik bir sistemdir. Bu web sitesinde sunulan \xfcr\xfcnler hakkında mevcut bilgilere dayanarak bilgi ve yardım sağlamak \xfczere tasarlanmıştır. AI chatbot aracılığıyla doğru bilgi sağlamaya \xe7alışsak da, sağlanan bilgilerin doğruluğunu, eksiksizliğini veya g\xfcncelliğini garanti edemeyiz. Yanıtları başlangı\xe7 noktası olarak kullanmanızı ve yanıtları bu bilgilerin sağlayıcısı (bu web sitesinin sahibi) veya mevcut \xfcr\xfcn belgelerinde doğrulamanızı \xf6neririz.</1><3><4>Kullanıcı Sorumluluğu:</4> AI chatbot kullanıcıları, etkileşimleri ve sağlanan bilgilere g\xfcvenmeleri konusunda tam sorumluluk taşırlar. Chatbot\'un yanıtlarını yorumlarken ve bunlara g\xf6re hareket ederken dikkatli olmak ve kendi takdirinizi kullanmak \xf6nemlidir. Bu web sitesinin sahibi veya chatbot teknolojisinin sağlayıcısı, chatbot kullanımından kaynaklanan eylemler, kayıplar veya zararlardan sorumlu tutulamaz.</3><5><6>Veri Gizliliği ve G\xfcvenliği:</6> Kullanıcı bilgilerinin gizliliğini ve g\xfcvenliğini \xf6nceliklendiriyoruz. Chatbot konuşmalarının sonu\xe7ları iyileştirmek i\xe7in bu web sitesinin sahibi ve teknoloji sağlayıcısı tarafından incelenebileceğini unutmayın. OpenAI/ChatGPT bu konuşmaların g\xfcnl\xfcklerini 30 g\xfcn boyunca saklarken, bu veriler AI modellerini eğitmek i\xe7in kullanılmaz. Konuşmalarınızda hassas veya kişisel bilgiler paylaşmayın.</5><7>Bu AI chatbot\'u kullanarak, yukarıdaki sorumluluk reddini kabul ettiğinizi ve anladığınızı belirtirsiniz. Bu sorumluluk reddinin herhangi bir b\xf6l\xfcm\xfcyle aynı fikirde değilseniz, chatbot\'u kullanmamanızı \xf6neririz.</7>"],"sdk.chat.disclaimer.inline.message":["Asistan deneyseldir ve yanlış bilgiler sağlayabilir."],"sdk.chat.disclaimer.seeMore.label":["Daha fazla bilgi"],"sdk.chat.header.desktop.title":["Asistan"],"sdk.chat.input.default.placeholder":["Mesaj yazın..."],"sdk.chat.input.footer.placeholder":["Mesaj yazın..."],"sdk.chat.mobile.assistant.label":["Asistan"],"sdk.chat.send.button.label":["Mesaj g\xf6nder"],"sdk.chat.system.error.message":["Asistanla iletişim kurarken bir hata oluştu. L\xfctfen tekrar deneyin."],"sdk.chat.welcome.greeting.message":["Merhaba! Ben sizin asistanınızım ve \xfcr\xfcn yapılandırması konusunda size yardımcı olacağım. Ne \xf6ğrenmek istersiniz?"],"sdk.collision.warning.tooltip":["\xd6ğeler \xe7ok yakın veya \xe7akışıyor"],"sdk.controls.dimension.angle.error":["Ge\xe7ersiz a\xe7ı"],"sdk.controls.dimension.angle.hint":["A\xe7ı girin"],"sdk.controls.dimension.angle.hintRange":["L\xfctfen ",["0"],["unitLabelWithSpace"]," ile ",["1"],["unitLabelWithSpace"]," arasında bir sayı girin."],"sdk.controls.dimension.angleSlider.error":["Ge\xe7ersiz a\xe7ı"],"sdk.controls.dimension.distance.error":["Ge\xe7ersiz mesafe"],"sdk.controls.dimension.distance.hint":["Mesafe girin"],"sdk.controls.dimension.distance.hintRange":["Mesafe ",["0"]," ile ",["1"]," arasında olmalıdır"],"sdk.controls.dimension.distanceSlider.error":["Ge\xe7ersiz mesafe"],"sdk.controls.dimension.generic.error":["Ge\xe7ersiz değer"],"sdk.controls.dimension.generic.hint":["Değer girin"],"sdk.controls.dimension.generic.hintRange":["Değer ",["min"]," ile ",["max"]," arasında olmalıdır"],"sdk.controls.dimension.genericSlider.error":["Ge\xe7ersiz değer"],"sdk.controls.dimension.indicator.apply":["Uygula"],"sdk.controls.dimension.indicator.cancel":["İptal"],"sdk.controls.dimension.offset.hint":["Ofset girin"],"sdk.controls.dimension.size.hint":["Boyut girin"],"sdk.controls.entity.add.close.label":["Kapat"],"sdk.controls.entity.add.nothingMessage":["Eklenecek bir şey yok"],"sdk.controls.entity.childDelete.label":["Sil"],"sdk.controls.entity.childSelect.label":["Se\xe7"],"sdk.controls.entity.delete.label":["Sil"],"sdk.controls.entity.replace.label":["Değiştir"],"sdk.controls.property.back.label":["Geri"],"sdk.controls.recipeGroup.notFound.message":["Bulunamadı"],"sdk.controls.recipeGroup.notFound.title":["Aradığınız grup artık mevcut değil. L\xfctfen başka bir grup se\xe7in."],"sdk.controls.tool.close.label":["Kapat"],"sdk.controls.units.feet.label":["ayak"],"sdk.controls.units.inch.label":["in\xe7"],"sdk.controls.upload.dragDrop.hint":["Dosyaları buraya s\xfcr\xfckleyin veya se\xe7mek i\xe7in tıklayın"],"sdk.controls.upload.failed.error":["Y\xfckleme başarısız"],"sdk.controls.upload.link.label":["Veya bir bağlantı yapıştırın"],"sdk.controls.upload.size.error":["Dosya \xe7ok b\xfcy\xfck"],"sdk.distanceDimension.hintMessageTooLarge":["Mevcut değer ",["0"]," olup, izin verilen maksimum değer olan ",["1"]," değerinden b\xfcy\xfckt\xfcr."],"sdk.distanceDimension.hintMessageTooSmall":["Mevcut değer ",["0"]," olup, izin verilen minimum değer olan ",["1"]," değerinden k\xfc\xe7\xfckt\xfcr."],"sdk.finalize.notConfigured.tooltip":["Tamamlama \xf6zelliği yapılandırılmamış."],"sdk.finalize.outOfSync.hint":["Yapılandırma senkronize değil. Bazı değişiklikler d\xfczg\xfcn şekilde kaydedilmedi."],"sdk.genericDimension.hintMessageTooLarge":["Mevcut değer ",["currentWithUnit"]," olup, izin verilen maksimum değer olan ",["limitWithUnit"]," değerinden b\xfcy\xfckt\xfcr."],"sdk.genericDimension.hintMessageTooSmall":["Mevcut değer ",["currentWithUnit"]," olup, izin verilen minimum değer olan ",["limitWithUnit"]," değerinden k\xfc\xe7\xfckt\xfcr."],"sdk.layout.banner.readonly.cancel.label":["İptal"],"sdk.layout.banner.readonly.clone.label":["D\xfczenlemek i\xe7in klonla"],"sdk.layout.banner.readonly.clone.message":["Bu yapılandırmanın d\xfczenleme i\xe7in bir kopyasını oluşturmak ister misiniz?"],"sdk.layout.banner.readonly.clone.title":["Yapılandırmayı klonla"],"sdk.layout.banner.readonly.editConfig.label":["Yapılandırmayı d\xfczenle"],"sdk.layout.banner.readonly.editMobile.label":["D\xfczenle"],"sdk.layout.banner.readonly.info.message":["Bu yapılandırma salt okunurdur. D\xfczenlemek i\xe7in bir kopya oluşturun."],"sdk.layout.button.closeConfigurator.label":["Yapılandırıcıyı kapat"],"sdk.layout.button.closePresetPreview.label":["\xd6nceden ayarlanmış \xf6nizlemeyi kapat"],"sdk.layout.button.desktopBack.label":["Geri"],"sdk.layout.button.desktopSidebarBack.label":["Geri"],"sdk.layout.button.mobileBack.label":["Geri"],"sdk.layout.button.mobileSidebarBack.label":["Geri"],"sdk.layout.button.presetBack.label":["Geri"],"sdk.layout.button.saveRecipe.label":["Tarifi kaydet"],"sdk.layout.button.saveTemplate.label":["Şablonu kaydet"],"sdk.layout.button.setTemplate.label":["Şablon olarak ayarla"],"sdk.layout.controls.mobile.view3d.label":["3D g\xf6r\xfcn\xfcm"],"sdk.layout.controls.mobile.viewOnly.message":["<0>Sadece g\xf6r\xfcnt\xfcleme modu.</0> Konfig\xfcrasyonu değiştirmek i\xe7in daha b\xfcy\xfck ekranlı bir cihaz kullanın."],"sdk.layout.controls.tablet.viewOnly.message":["<0>Sadece g\xf6r\xfcnt\xfcleme modu.</0> Konfig\xfcrasyonu değiştirmek i\xe7in daha b\xfcy\xfck ekranlı bir cihaz kullanın veya cihazınızın y\xf6n\xfcn\xfc değiştirmeyi deneyin."],"sdk.layout.exporting.message":["Yapılandırıcı dışa aktarıyor… l\xfctfen bekleyin"],"sdk.layout.finalize.moreActions":["More finalization options"],"sdk.layout.footer.price.label":["Toplam fiyat"],"sdk.layout.hamburgerMenu.language.dialogTitle":["Dil se\xe7in"],"sdk.layout.hamburgerMenu.language.label":["Dil"],"sdk.layout.menu.hamburger.close.label":["Kapat"],"sdk.layout.menu.hamburger.help.label":["Yardım"],"sdk.layout.menu.hamburger.help.label.closeButtonLabel":["Yardımı kapat"],"sdk.layout.menu.hamburger.share.label":["Paylaş"],"sdk.layout.menu.hamburger.title":["Men\xfc"],"sdk.layout.menu.hamburger.tooltip":["Men\xfcy\xfc a\xe7"],"sdk.layout.menu.language.close.label":["Kapat"],"sdk.layout.menu.measurements.close.label":["Kapat"],"sdk.layout.menu.measurements.label":["\xd6l\xe7\xfcmler"],"sdk.layout.navigation.common.product.label":["\xdcr\xfcn"],"sdk.layout.navigation.mobile.product.label":["\xdcr\xfcn"],"sdk.layout.navigation.steps.first.label":["İlk"],"sdk.layout.sidebar.disabledFinalizeButton.label":["Sonlandır"],"sdk.layout.sidebar.finalize.label":["Tamamla"],"sdk.layout.sidebar.finalizePage.label":["Tamamla"],"sdk.layout.sidebar.nextStep.label":["Sonraki adım"],"sdk.layout.sidebar.nextStepShort.label":["Sonraki"],"sdk.layout.sidebar.previousStep.label":["\xd6nceki adım"],"sdk.layout.sidebar.price.label":["Fiyat"],"sdk.layout.sidebar.totalPrice.label":["Toplam fiyat"],"sdk.layout.summary.button.label":["\xd6zet"],"sdk.layout.toolbar.mobile.tools.title":["Ara\xe7lar"],"sdk.layout.toolbar.mobile.units.label":["Birimler"],"sdk.measurements":["\xd6l\xe7\xfcmler"],"sdk.messages.error.configNotFound.message":["Yapılandırma bulunamadı. Silinmiş olabilir veya yanlış bir bağlantı girmiş olabilirsiniz."],"sdk.messages.error.configNotFound.title":["Yapılandırma bulunamadı"],"sdk.messages.error.configurator.backToHome.label":["Ana sayfaya d\xf6n"],"sdk.messages.error.configurator.message":["Hay aksi, bir şeyler ters gitti! L\xfctfen tekrar deneyin veya destek ile iletişime ge\xe7in."],"sdk.messages.error.configurator.title":["Yapılandırıcı hatası"],"sdk.messages.error.configuratorRoot.backToHome.label":["Ana sayfaya d\xf6n"],"sdk.messages.error.configuratorRoot.message":["Yapılandırıcı kullanılamıyor. L\xfctfen daha sonra tekrar deneyin."],"sdk.messages.error.configuratorRoot.title":["Yapılandırıcı kullanılamıyor"],"sdk.messages.error.gpuDisabled.message":["GPU hızlandırması devre dışı. Performans azalabilir. Daha iyi performans i\xe7in tarayıcı ayarlarınızda donanım hızlandırmasını etkinleştirin."],"sdk.messages.error.gpuDisabled.title":["GPU hızlandırması devre dışı"],"sdk.messages.error.notFound.backToHome.label":["Ana sayfaya d\xf6n"],"sdk.messages.error.webglNotSupported.message":["Tarayıcınız 3D render i\xe7in gerekli olan WebGL\'yi desteklemiyor. L\xfctfen farklı bir tarayıcı kullanmayı deneyin veya mevcut olanı g\xfcncelleyin."],"sdk.messages.error.webglNotSupported.title":["WebGL desteklenmiyor"],"sdk.messages.finalize.error":["Oops, bir hata oluştu"],"sdk.messages.navigation.goToHomepage.label":["Ana sayfaya git"],"sdk.messages.otherAction.error":["Oops, bir hata oluştu"],"sdk.messages.system.invalidDeployment.close.label":["Kapat"],"sdk.messages.system.invalidDeployment.message":["Bu dağıtım ge\xe7ersiz veya silinmiş."],"sdk.messages.system.invalidDeployment.title":["Ge\xe7ersiz dağıtım"],"sdk.messages.validation.uncaughtError.message":["Beklenmeyen bir hata oluştu. L\xfctfen tekrar deneyin."],"sdk.persist.system.error.dismiss":["Kapat"],"sdk.persist.system.error.message":["Bir yapılandırmayı g\xfcncellemeye \xe7alışırken bir hata oluştu"],"sdk.persist.system.error.recovered":["Yapılandırma g\xfcncellendi"],"sdk.presets.category.count.message":[["count"]," \xf6nceden ayarlanmış"],"sdk.presets.category.heading.title":["Kategoriler"],"sdk.presets.create.error.dismiss.label":["Kapat"],"sdk.presets.create.error.message":["Bu hazır ayardan yapılandırma başlatılamadı. L\xfctfen tekrar deneyin."],"sdk.presets.detail.close.label":["Kapat"],"sdk.presets.detail.learnMore.label":["Daha fazla bilgi"],"sdk.presets.detail.select.label":["Se\xe7"],"sdk.presets.preview.title":["\xd6nizleme"],"sdk.presets.select.button.label":["Se\xe7"],"sdk.presets.start.button.label":["Başla"],"sdk.preview.customize.title":["\xd6zelleştir"],"sdk.preview.start.button.label":["Başla"],"sdk.sketching.angle.apply.label":["Uygula"],"sdk.sketching.angle.cancel.label":["İptal"],"sdk.sketching.angle.control.label":["A\xe7ı"],"sdk.sketching.angle.control.text":["A\xe7ıyı ayarla"],"sdk.sketching.angle.control.title":["A\xe7ı belirle"],"sdk.sketching.angle.input.error":["L\xfctfen ge\xe7erli bir sayı girin!"],"sdk.sketching.dimension.apply.label":["Uygula"],"sdk.sketching.dimension.cancel.label":["İptal"],"sdk.sketching.dimension.depth.label":["Derinlik"],"sdk.sketching.dimension.depth.text":["Derinliği ayarla"],"sdk.sketching.dimension.depth.title":["Derinlik belirle"],"sdk.sketching.dimension.input.error":["L\xfctfen ge\xe7erli bir sayı girin!"],"sdk.sketching.dimension.length.label":["Uzunluk"],"sdk.sketching.dimension.length.text":["Uzunluğu ayarla"],"sdk.sketching.dimension.length.title":["Uzunluk belirle"],"sdk.sketching.dimension.width.label":["Genişlik"],"sdk.sketching.dimension.width.text":["Genişliği ayarla"],"sdk.sketching.dimension.width.title":["Genişlik belirle"],"sdk.sketching.draw.done.label":["Tamam"],"sdk.sketching.spotlight.label":["\xc7izime başlamak i\xe7in tıklayın"],"sdk.toolbar.actions.undoRedo.label":["Geri Al/Yinele"],"sdk.toolbar.camera.reset.label":["Kamerayı sıfırla"],"sdk.toolbar.camera.reset.labelAriaLabel":["Kamerayı varsayılan konuma sıfırla"],"sdk.toolbar.fullscreen.enter.label":["Tam ekran"],"sdk.toolbar.fullscreen.exit.label":["Tam ekrandan \xe7ık"],"sdk.toolbar.help.close.label":["Yardımı kapat"],"sdk.toolbar.help.label":["Yardım"],"sdk.toolbar.language.title":["Dil"],"sdk.toolbar.measurements.change.aria":["\xd6l\xe7\xfcmleri değiştir"],"sdk.toolbar.measurements.indicators.label":["\xd6l\xe7\xfcm g\xf6stergeleri"],"sdk.toolbar.measurements.input.aria":["\xd6l\xe7\xfcm girişini değiştir"],"sdk.toolbar.measurements.units.aria":["\xd6l\xe7\xfcm birimlerini değiştir"],"sdk.toolbar.mobile.fullscreen.enter.label":["Tam ekran"],"sdk.toolbar.mobile.fullscreen.exit.label":["Tam ekrandan \xe7ık"],"sdk.toolbar.mobile.fullscreen.title":["Tam ekran"],"sdk.toolbar.mobile.open.aria":["Mobil ara\xe7ları a\xe7"],"sdk.toolbar.mobile.viewControls.label":["G\xf6r\xfcn\xfcm kontrolleri"],"sdk.toolbar.share.allowEdit.label":["D\xfczenlemeye izin ver"],"sdk.toolbar.share.allowEditShort.label":["D\xfczenleme"],"sdk.toolbar.share.close.label":["Kapat"],"sdk.toolbar.share.copiedLinkButtonTitle":["Bağlantı kopyalandı"],"sdk.toolbar.share.copyLink.label":["Bağlantıyı kopyala"],"sdk.toolbar.share.copyLinkButtonTitle":["Bağlantıyı kopyala"],"sdk.toolbar.share.input.aria":["Paylaşım bağlantısı girişi"],"sdk.toolbar.share.label":["Paylaş"],"sdk.toolbar.share.linkCopied.label":["Bağlantı kopyalandı"],"sdk.toolbar.share.loading.label":["Y\xfckleniyor..."],"sdk.toolbar.share.open.label":["A\xe7"],"sdk.toolbar.share.section.label":["Paylaş"],"sdk.toolbar.undoRedo.redo.label":["Yinele"],"sdk.toolbar.undoRedo.undo.label":["Geri Al"],"sdk.toolbar.viewControls.title":["G\xf6r\xfcn\xfcm kontrolleri"],"sdk.totalPrice":["Toplam fiyat"]}');
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const cacheVersion =
|
|
1
|
+
export declare const cacheVersion = 773;
|
|
2
2
|
export declare const needsRebuild: (fileContents: string[], outputDirectory: string) => Promise<boolean>;
|
|
3
3
|
export declare const writeCacheInfo: (fileContents: string[], outputDirectory: string) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createHash as e}from"crypto";import{existsSync as r}from"fs";import{readFile as t}from"fs/promises";import{isEqualArray as o}from"@salsita-ai/common/utils";import{writeFormatted as i}from"../gen/write-formatted.js";export const cacheVersion=
|
|
1
|
+
import{createHash as e}from"crypto";import{existsSync as r}from"fs";import{readFile as t}from"fs/promises";import{isEqualArray as o}from"@salsita-ai/common/utils";import{writeFormatted as i}from"../gen/write-formatted.js";export const cacheVersion=773;let s=r=>({version:773,files:r.map(r=>e("md5").update(r).digest("base64")).sort()});export const needsRebuild=async(e,i)=>{let a=`${i}/cache.json`;if(!r(a))return!0;try{let r=JSON.parse(await t(a,"utf-8")),i=s(e);return 773!==r.version||!o(r.files,i.files)}catch(e){return console.error("Failed to read cache file, forcing rebuild",e),!0}};export const writeCacheInfo=async(e,r)=>{let t=`${r}/cache.json`,o=s(e);await i(t,JSON.stringify(o,null,2))};
|
|
@@ -5285,6 +5285,22 @@ export interface DomainSpecification {
|
|
|
5285
5285
|
$filter?: ComponentSystemFilter;
|
|
5286
5286
|
};
|
|
5287
5287
|
};
|
|
5288
|
+
agentScreenshot?: {
|
|
5289
|
+
[k: string]: {
|
|
5290
|
+
exportState: EnhancedStringRead;
|
|
5291
|
+
width: number | ReadEnhancement;
|
|
5292
|
+
height: number | ReadEnhancement;
|
|
5293
|
+
fileFormat: ('PNG' | 'JPEG') | ReadEnhancement;
|
|
5294
|
+
backgroundColor?: string | ReadEnhancement;
|
|
5295
|
+
toolState: EnhancedStringRead;
|
|
5296
|
+
viewState: EnhancedStringRead;
|
|
5297
|
+
navigationState: EnhancedStringRead;
|
|
5298
|
+
$filter?: ComponentSystemFilter;
|
|
5299
|
+
} | {
|
|
5300
|
+
$read: string;
|
|
5301
|
+
$filter?: ComponentSystemFilter;
|
|
5302
|
+
};
|
|
5303
|
+
};
|
|
5288
5304
|
projectedEntities?: {
|
|
5289
5305
|
[k: string]: {
|
|
5290
5306
|
blueprints: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{dereference as e}from"@apidevtools/json-schema-ref-parser";import t from"lodash-es/cloneDeep.js";import r from"lodash-es/isEqual.js";import{P as i,match as n}from"ts-pattern";import{ComponentSystemFilterSchema as o,availableSystemComponents as a,getAllPhxDefinitions as s,getExtendedSchemaValidator as
|
|
1
|
+
import{dereference as e}from"@apidevtools/json-schema-ref-parser";import t from"lodash-es/cloneDeep.js";import r from"lodash-es/isEqual.js";import{P as i,match as n}from"ts-pattern";import{ComponentSystemFilterSchema as o,availableSystemComponents as a,getAllPhxDefinitions as s,getExtendedSchemaValidator as f}from"#package/domain";import{domainSpecTemplate as p,requiredSpecs as d}from"./domain-spec-template.js";let l={anyOf:[{$ref:"#/definitions/Read"},{$ref:"#/definitions/ImportRef"},{$ref:"#/definitions/CodeRef"},{$ref:"#/definitions/DataRef"},{$ref:"#/definitions/Eval"}]},m={anyOf:[{$ref:"#/definitions/ReadWrite"},{$ref:"#/definitions/ImportRef"},{$ref:"#/definitions/CodeRef"}]},c=[{readName:"EnhancedStringRead",readWriteName:"EnhancedStringReadWrite",schema:{type:"string"}},{readName:"EnhancedNumberRead",readWriteName:"EnhancedNumberReadWrite",schema:{type:"number"}},{readName:"EnhancedBooleanRead",readWriteName:"EnhancedBooleanReadWrite",schema:{type:"boolean"}}],h=(e,t)=>({anyOf:[$(e,[]),t?{$ref:"#/definitions/ReadWriteEnhancement"}:{$ref:"#/definitions/ReadEnhancement"}]}),y=(e,t)=>{let i=c.find(t=>r(e,t.schema));return i?{$ref:`#/definitions/${t?i.readWriteName:i.readName}`}:h(e,t)},$=(e,t)=>({...e,...n(e).with({type:"object",properties:i.not(i.nullish).select()},e=>({properties:Object.fromEntries(Object.entries(e).map(([e,r])=>[e,y(r,t.includes(e))]))})).with({type:"object",additionalProperties:i.not(i.nullish.or(i.boolean)).select()},e=>({additionalProperties:y(e,!1)})).with({type:"object",patternProperties:i.not(i.nullish).select()},e=>({patternProperties:Object.fromEntries(Object.entries(e).map(([e,t])=>[e,y(t,!1)]))})).with({type:"array",items:i.not(i.nullish).select()},e=>({items:$(e,[])})).with({anyOf:i.array().select()},e=>({anyOf:e.map(e=>$(e,[]))})).with({oneOf:i.array().select()},e=>({oneOf:e.map(e=>$(e,[]))})).otherwise(()=>({}))}),u={anyOf:[...$(o,[]).anyOf,{$ref:"#/definitions/Read"}]},j=Object.fromEntries(c.flatMap(e=>[[e.readName,h(e.schema,!1)],[e.readWriteName,h(e.schema,!0)]])),b=e=>{let{definitions:t,...r}=$(e.schema,e.writableKeys);return{type:"object",additionalProperties:{anyOf:[{...r,properties:{...r.properties,$filter:{$ref:"#/definitions/ComponentSystemFilter"}}},{type:"object",properties:{$read:{type:"string",pattern:"^\\$?[a-z]\\w*$"},$filter:{$ref:"#/definitions/ComponentSystemFilter"}},required:["$read"],additionalProperties:!1}]}}},O=new Map,E=e=>{let t=`${globalThis.PHX_SCHEMA_VALIDATOR??"ajv"}:${e}`,r=O.get(t);if(r)return r;let i={...(e=>{let t=a.find(t=>t.name===e);if(!t)throw Error(`Component ${e} not found!`);return b(t)})(e).additionalProperties,definitions:{...p.definitions,...s(),...j,ComponentSystemFilter:u,ReadEnhancement:l,ReadWriteEnhancement:m}},n=f().compile(i);return O.set(t,n),n},R=e=>{for(let t of Object.values(e))for(let[e,r]of Object.entries(t)){let t=E(e);for(let[i,n]of Object.entries(r))if(!t(n))throw Error(`Component validation failed ${e} ${i}, ${JSON.stringify(t.errors,null,2)}`)}};export const getDomainSpec=(e=!0)=>t({$comment:"This schema is generated from the domain-spec-template.json file, do not modify it directly.",...p,properties:{...p.properties,components:{type:"object",patternProperties:{"^[A-Z]\\w*$":{type:"object",properties:e?Object.fromEntries(a.map(e=>{let t=b(e);return[e.name,t]})):{},additionalProperties:!e}},additionalProperties:!1}},definitions:{...p.definitions,...s(),...j,ComponentSystemFilter:u,ReadEnhancement:l,ReadWriteEnhancement:m}});let g=getDomainSpec(!1),w=f().compile(g),S=f().compile({...g,$id:"https://salsita.ai/phoenix/schemas/domain-spec.json!complete",required:[...d]});export const getValidatePartialSpecification=()=>e=>{let t=w(e);return(R(e.components??{}),t)?{success:!0,value:e}:{success:!1,errors:w.errors}};export const getValidateMergedSpecification=()=>e=>{let t=S(e);return(R(e.components??{}),t)?{success:!0,value:e}:{success:!1,errors:S.errors}};export const dereferenceDomainSpec=async r=>{var i;let n,o;return r.definitions={...t(s()),...r.definitions??{}},i=e=>{"object"==typeof e&&null!==e&&"$ref"in e&&"string"==typeof e.$ref&&(e.$ref=e.$ref.replace("https://salsita.ai/phoenix/schemas/types.json#","#"))},n=new Set,(o=e=>{if(!n.has(e)){if(n.add(e),i(e),Array.isArray(e))for(let t of e)o(t);else if("object"==typeof e&&null!==e)for(let t of Object.values(e))o(t)}})(r),await e(r,{resolve:{http:!1,file:!1,common:{order:2}}}),delete r.definitions,r};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const mergeClaudeMdContent: (existingContent: string | undefined) => string;
|
|
2
|
-
export declare const claudeMdFile = "[PHOENIX-SDK-START]\n## Phoenix Configurator Project\n\nDeclarative 3D product configurator built with Phoenix SDK. Domain model defined in YAML, custom logic in TypeScript.\n\n## Build Commands\n- `pnpm phoenix build` \u2014 Full production build\n- `pnpm phoenix dev` \u2014 Development mode with hot reload\n- `pnpm phoenix sync` \u2014 Sync generated files without full build\n\n## Dev Logs\n- `pnpm phoenix dev` writes all logs to `.phoenix/phoenix-dev.log`\n- Contains: spec parse errors, build errors, browser runtime errors, file watcher events\n- After making changes, always check the log for errors: `tail -50 .phoenix/phoenix-dev.log` or `grep ERROR .phoenix/phoenix-dev.log`\n- Rotated automatically at 10MB (`.log.1`, `.log.2` are older rotations)\n\n## Project Structure\n- `spec/` \u2014 Domain YAML specs (entities, relations, expressions, invariants, components, application config)\n- `src/expressions/` \u2014 Computed/derived entity properties (`phx.domain.implementCustomExpressions()`)\n- `src/invariants/` \u2014 Business rule constraints (`phx.domain.implementCustomInvariants()`)\n- `src/transformers/` \u2014 Automatic state fixers (`phx.frontend.transformerBuilder`)\n- `src/components/` \u2014 ECS system components (`phx.domain.attachComponent.withEntity()`)\n- `src/elements/` \u2014 Page-level React components (`phx.frontend.createCustomPhoenixLayoutElement()`)\n - `ConfiguratorLayout`: a layout element with this name replaces everything the built-in layout renders for a loaded configuration, in owner and read mode, finalization included. Prefer arranging the spec's layout components; write one for shell-level changes, such as moving the sidebar or adding an area the built-in layout has no place for\n - Mount `LayoutSlots.SharedCanvas` (from `@salsita-ai/sdk/configurator`) in a positioned root covering the page, or the app loader stays on screen; put the UI above it, positioned and after it in the markup. Call `useSceneSafeArea()` (same import) and put `containerRef` on the element covering the whole canvas and `safeAreaRef` on the region the UI leaves free, with `pointerEvents: 'none'`, so the camera frames the scene there\n - Sidebar moved, contents as the spec configures them: mount `LayoutSlots.DesktopSidebar` in a positioned container that sets its size, with `side=\"start\"` on the left; `docs/layouts/sidebar/in-a-custom-layout.mdx` is the whole layout\n - Your own UI: \"Hooks for a Project Layout\" in `docs/phoenix/configurator-interface.mdx` lists the hooks with what each returns (`pnpm phoenix docs -r docs/phoenix/configurator-interface.mdx`), `docs/phoenix/layout-slots.mdx` the built-in pieces you can still mount, and `docs/layouts/custom-layout.mdx` is a worked example\n - Messages: mount `LayoutSlots.Services` for the built-in snackbars, or show violations, side-effect hints and errors yourself with `phx.frontend.useConfiguratorMessages(onMessage)`, not both. Either way mount a snackbar root (`LayoutSlots.DesktopSnackbarsRoot` or `LayoutSlots.MobileSnackbarsRoot`): save and built-in action errors are always snackbars\n - Finalize over the spec's `finalizeAction` components, each naming a handler registered with `phx.frontend.createPhoenixHandler`: run each with `phx.frontend.useFinalizeAction(handler)` in a component of its own wrapped in `PhoenixHandlerBoundary` (from `@salsita-ai/sdk/react`), or mount `FinalizeActions` (from `@salsita-ai/sdk/configurator`) for the built-in buttons. `finalizePage` and `finalizeButton` are legacy\n - Read mode and fullscreen are the layout's job, no hook enforces them: hide what a viewer must not change while `phx.frontend.useAccessService().accessInfo.viewMode` is `true`, and remove panels while `phx.frontend.useIsFullscreenActive()` is set; `phx.frontend.useSetFullscreen()` returns its setter\n- `src/handlers/` \u2014 Event & lifecycle handlers\n- `src/webhooks/` \u2014 Server-side webhook handlers (`phx.webhooks.*Builder`)\n- `src/migrations/` \u2014 Schema version migrations (v*.ts)\n- `src/locales/` \u2014 Locale catalogs (authored .po sources; compiled .ts, do not edit)\n- `src/admin/` \u2014 Admin interface (mirrors main src/ structure)\n- `src/_shared/` \u2014 Shared utilities (NOT auto-imported, requires explicit imports)\n- `.phoenix/` \u2014 Auto-generated files (DO NOT EDIT)\n- `public/` \u2014 Static assets (3D models, textures, images, HDRI maps, fonts)\n- `assets/` \u2014 Uploadable resources (PDF templates, email assets)\n\n## Architecture Principles\n- YAML-first: 99% of configuration in spec/*.yaml, custom code is last resort\n- ECS pattern: entities (domain objects) + components (behavior/UI) + systems (SDK runtime)\n- Reactive state: immutable domain state flows through RxJS pipelines\n- Data binding: `$read` (read-only), `$write` (write-only), `$bind` (bidirectional) connect components to domain\n- memoEval: all component implementations must use memoEval for stable object references\n\n## Key Patterns\n- Expressions = computed properties on entities (prefix: `$`), implemented per-entity in src/expressions/\n- Invariants = validation rules returning violations, static or dynamic\n- Transformers = auto-fixers maintaining consistency after state changes\n- Components defined in YAML with `$read`/`$bind` bindings, or custom in src/components/ using attachComponent builder\n- Webhooks = server-side finalization tasks (PDF, email, CSV, image rendering)\n- Filters = contextual component activation via navigationStates, viewStates, modes, selectedEntityIds\n\n## File Conventions\n- Components: PascalCase (.tsx)\n- Utilities: kebab-case (.ts)\n- Expressions: entity-name.ts\n- Migrations: v*.ts (sequential)\n- Specs: kebab-case.yaml\n- Underscore folders (_shared/, _utils/) are NOT auto-imported\n\n## Export Rules\nAll files in src/expressions/, src/invariants/, src/transformers/, src/components/, src/handlers/, src/webhooks/ MUST use default exports. Can be a single item or an array. Named exports are ignored by the SDK auto-import system.\n\n## Webhook Membership\n- User-authored components, admin components, and handlers are frontend-only by default.\n- A handler that registers `createMapPublishedRevisionDataHandler`, `createMapPublishedChunkedDataHandler`, `createDataRowValidatorHandler`, or `createSheetValidatorHandler` is included in the webhook automatically.\n- To include another component or handler in the webhook, put `'use webhook'` as its first statement (leading comments are allowed).\n- A webhook-included file and its runtime local-import closure must not import browser SDK entrypoints (`application`, `admin`, `configurator`, `editor`, `react`, `ui`) or style/font/image assets. Spec parsing reports the unsafe import and inclusion reason as a diagnostic.\n- Keep browser rendering in an unpinned file. Move shared server-safe logic into a separate module when both frontend and webhook code need it.\n\n## Do Not Edit\n- `.phoenix/` directory \u2014 completely regenerated on each build\n- `tsconfig.json`, `eslint.config.js`, `prettier.config.js`, `.prettierignore`, `.linguirc`, `.nvmrc`\n- `src/locales/` .ts files \u2014 compiled from .po files\n\n## Code Review\nUse `/review` command to review code changes before committing.\n\n## SDK Documentation\n\nAlways search SDK docs for relevant examples before implementing Phoenix features.\n\n### Commands\n- `pnpm phoenix docs` \u2014 Full documentation index with descriptions\n- `pnpm phoenix docs -s <term>` \u2014 Search all doc content and metadata (case-insensitive)\n- `pnpm phoenix docs --dir` \u2014 Print the absolute docs directory for grep or ripgrep\n- `pnpm phoenix docs -r <path>` \u2014 Read specific doc (raw text to stdout)\n- `pnpm phoenix docs -c <category>` \u2014 List docs in a category\n- `pnpm phoenix docs -l` \u2014 List all doc paths with titles\n\n### 3D Asset Inspection\n\nRun `pnpm phoenix inspect:assets` to discover all glTF/GLB files in `public/` and get a summary table. Use `--file <path>` for detailed single-file inspection.\n\n**When to use:** before writing YAML/code that references objectName, materialsToOverride, morphTargetInfluences, or object positioning.\n\n**What it shows per node:**\n- Name, type (Mesh/Light/Camera/Empty), children\n- Transform: `pos=`, `rot=`, `scale=` (only non-default values shown)\n- Per-node morph targets: `morphs=Width,Height`\n- Bounding box: `bounds=WxHxD` (width x height x depth in meters)\n- Origin placement: `origin=center`, `bottom-center`, `top-center`, `bottom-corner`, etc. with numerical offset\n\n**Use cases:**\n- Find exact node names for `objectName` in scene entity components\n- Find material names for `materialsToOverride`\n- Find morph target names for `morphTargetInfluences`\n- Check model dimensions (bounds) for positioning, dimension indicators, or invariants\n- Check origin placement to understand how models anchor (center vs bottom-center)\n- Use `--json` for programmatic access to all data\n\n**Flags:** `--objects`, `--materials`, `--morphs`, `--animations`, `--json`\n\n### Screenshot CLI\n\nCapture 3D canvas screenshots from a running dev server via `pnpm phoenix screenshot`.\n\n**Prerequisites:**\n1. `phoenix dev` must be running (starts the WebSocket server on port 3020)\n2. Configurator must be open in a browser (the browser does the actual rendering)\n\n**Options:**\n- `--output, -o` \u2014 Output file path (default: `./screenshot.png`)\n- `--width, -w` \u2014 Width in pixels (default: 1920)\n- `--height` \u2014 Height in pixels (default: 1080)\n- `--format, -f` \u2014 Image format: PNG or JPEG (default: PNG)\n- `--port` \u2014 WebSocket server port (default: 3020)\n\n**Example workflow:**\n1. Start dev server: `pnpm phoenix dev`\n2. Open configurator in browser (or via Playwright MCP)\n3. Take screenshot: `pnpm phoenix screenshot -o ./render.png -w 2560 --height 1440`\n\n**Use cases:** visual regression testing, generating product images, debugging 3D renders\n\n### Inspect: State\n\nGet the current editor runtime state as JSON via `pnpm phoenix inspect:state`.\n\n**Prerequisites:** same as screenshot (dev server running + browser open)\n\n**Options:**\n- `--output, -o` \u2014 Output file path (prints to stdout if omitted)\n- `--sections, -s` \u2014 Comma-separated: entities, navigation, validation (default: all)\n- `--pretty` \u2014 Pretty-print JSON (default: true)\n- `--port` \u2014 WebSocket server port (default: 3020)\n\n**Example:** `pnpm phoenix inspect:state -o ./state.json -s entities,navigation`\n\n**Lifecycle status:** Always included in response. Shows which systems are ready:\n- `domainLoaded` \u2014 domain data loaded\n- `domainContextReady` \u2014 domain context initialized (entities available)\n- `configuratorReady` \u2014 3D configurator initialized\n- `sessionAuthenticated` \u2014 session service active\n- `editorMode` \u2014 editor mode enabled\n\n**Tips:** Use `--sections` to limit payload size. Pipe through `head`/`tail` for partial output (e.g., `pnpm phoenix inspect:state | head -50`).\n\n**Use cases:** AI agent context, debugging entity state, inspecting navigation/validation\n\n### Inspect: Data\n\nGet the current editor context data as JSON via `pnpm phoenix inspect:data`.\n\n**Prerequisites:** same as screenshot (dev server running + browser open)\n\n**Options:**\n- `--output, -o` \u2014 Output file path (prints to stdout if omitted)\n- `--pretty` \u2014 Pretty-print JSON (default: true)\n- `--port` \u2014 WebSocket server port (default: 3020)\n\n**Returns:** publishedData, frontendData, backendData, sessionData, accessData, webComponentProperties\n\n**Example:** `pnpm phoenix inspect:data -o ./data.json`\n\n**Tips:** Pipe through `head`/`tail` for partial output (e.g., `pnpm phoenix inspect:data | head -30`).\n\n**Use cases:** AI agent context, debugging published/session/access data\n\n### Inspect: Scene\n\nGet the current Three.js scene graph as JSON via `pnpm phoenix inspect:scene`.\n\n**Prerequisites:** same as screenshot (dev server running + browser open)\n\n**Options:**\n- `--output, -o` \u2014 Output file path (prints to stdout if omitted)\n- `--pretty` \u2014 Pretty-print JSON (default: true)\n- `--port` \u2014 WebSocket server port (default: 3020)\n\n**Returns:** Recursive scene tree with per-node: name, type, visible, position, rotation, scale, userData (entityId), and for meshes: geometry name, bounding box, material properties (color, metalness, roughness, opacity, textures), morph target influences. Lights include color, intensity, and type-specific properties.\n\n**Example:** `pnpm phoenix inspect:scene -o ./scene.json`\n\n**Tips:** Scene graphs can be large. Pipe through `head`/`tail` for partial output.\n\n**Use cases:** AI agent context, debugging 3D scene layout, inspecting materials and lighting\n\n### Key Docs\n- `docs/phoenix/getting-started.mdx` \u2014 Setup, prerequisites, first project\n- `docs/phoenix/quickstart.mdx` \u2014 End-to-end tutorial building a configurator\n- `docs/phoenix/domain-model.mdx` \u2014 Entities, attributes, relations, specs\n- `docs/phoenix/components.mdx` \u2014 ECS pattern, YAML components, custom components\n- `docs/phoenix/project-structure.mdx` \u2014 Files, folders, conventions\n- `docs/phoenix/best-practices.mdx` \u2014 YAML-first, code patterns, common pitfalls\n- `docs/phoenix/state-management.mdx` \u2014 Reactive state, RxJS pipelines, data flow\n- `docs/phoenix/expression-context.mdx` \u2014 Expression API, context object, helpers\n- `docs/phoenix/webhooks.mdx` \u2014 Server-side finalization workflows\n- `docs/phoenix/finalization.mdx` \u2014 Finalization system, PDF/email/CSV generation\n- `docs/phoenix/migrations.mdx` \u2014 Schema versioning, migration files\n\n### Agent Workflow\n1. Find relevant docs by content: `pnpm phoenix docs -s \"camera\"`\n2. Read matching doc: `pnpm phoenix docs -r docs/3d-scene/cameras/transitions.mdx`\n3. Search within a doc: `pnpm phoenix docs -r <path> | grep \"example\"`\n4. Search titles only as a fallback: `pnpm phoenix docs -l | grep \"camera\"`\n5. Search generated files directly when needed: `grep -rn \"camera\" \"$(pnpm phoenix docs --dir)\"`\n6. Browse a topic area: `pnpm phoenix docs -c \"Layouts\"`\n\n### Playwright MCP Setup (for AI agents)\n\nTo interact with the 3D configurator in a browser, Playwright MCP needs GPU-enabled flags for WebGL rendering. Add to `~/.claude/.mcp.json`:\n\n```json\n{\n \"mcpServers\": {\n \"playwright\": {\n \"command\": \"npx\",\n \"args\": [\n \"@playwright/mcp@latest\",\n \"--headed\",\n \"--launch-options\",\n \"{\\\"args\\\":[\\\"--use-gl=swiftshader\\\",\\\"--enable-webgl\\\",\\\"--ignore-gpu-blocklist\\\"]}\"\n ]\n }\n }\n}\n```\n\nKey flags:\n- `--headed` \u2014 visible browser (required for GPU rendering)\n- `--use-gl=swiftshader` \u2014 software GPU fallback for environments without a physical GPU\n- `--enable-webgl` + `--ignore-gpu-blocklist` \u2014 ensure WebGL is available\n[PHOENIX-SDK-END]\n";
|
|
2
|
+
export declare const claudeMdFile = "[PHOENIX-SDK-START]\n## Phoenix Configurator Project\n\nDeclarative 3D product configurator built with Phoenix SDK. Domain model defined in YAML, custom logic in TypeScript.\n\n## Build Commands\n- `pnpm phoenix build` \u2014 Full production build\n- `pnpm phoenix dev` \u2014 Development mode with hot reload\n- `pnpm phoenix sync` \u2014 Sync generated files without full build\n\n## Dev Logs\n- `pnpm phoenix dev` writes all logs to `.phoenix/phoenix-dev.log`\n- Contains: spec parse errors, build errors, browser runtime errors, file watcher events\n- After making changes, always check the log for errors: `tail -50 .phoenix/phoenix-dev.log` or `grep ERROR .phoenix/phoenix-dev.log`\n- Rotated automatically at 10MB (`.log.1`, `.log.2` are older rotations)\n\n## Project Structure\n- `spec/` \u2014 Domain YAML specs (entities, relations, expressions, invariants, components, application config)\n- `src/expressions/` \u2014 Computed/derived entity properties (`phx.domain.implementCustomExpressions()`)\n- `src/invariants/` \u2014 Business rule constraints (`phx.domain.implementCustomInvariants()`)\n- `src/transformers/` \u2014 Automatic state fixers (`phx.frontend.transformerBuilder`)\n- `src/components/` \u2014 ECS system components (`phx.domain.attachComponent.withEntity()`)\n- `src/elements/` \u2014 Page-level React components (`phx.frontend.createCustomPhoenixLayoutElement()`)\n - `ConfiguratorLayout`: a layout element with this name replaces everything the built-in layout renders for a loaded configuration, in owner and read mode, finalization included. Prefer arranging the spec's layout components; write one for shell-level changes, such as moving the sidebar or adding an area the built-in layout has no place for\n - Mount `LayoutSlots.SharedCanvas` (from `@salsita-ai/sdk/configurator`) in a positioned root covering the page; put the UI above it, positioned and after it in the markup. With the canvas mounted the app loader waits until the scene has loaded; a layout without a canvas is not held by the loader. Call `phx.frontend.useSceneSafeArea()` and put `containerRef` on the element covering the whole canvas and `safeAreaRef` on the region the UI leaves free, with `pointerEvents: 'none'`, so the camera frames the scene there\n - Sidebar moved, contents as the spec configures them: mount `LayoutSlots.DesktopSidebar` in a positioned container that sets its size, with `side=\"start\"` on the left; `docs/layouts/sidebar/in-a-custom-layout.mdx` is the whole layout\n - Your own UI: \"Hooks for a Project Layout\" in `docs/phoenix/configurator-interface.mdx` lists the hooks with what each returns (`pnpm phoenix docs -r docs/phoenix/configurator-interface.mdx`), `docs/phoenix/layout-slots.mdx` the built-in pieces you can still mount, and `docs/layouts/custom-layout.mdx` is a worked example. Call the hooks as `phx.frontend.useX()`; besides those below, these are often needed: `usePreview()` (`isPreview` while the preview start screen shows), `useCloseAction()` (the host's close action or `null`), `useActiveViewports()` (the container's breakpoints, `null` until measured, `desktop` above 768 px: the desktop/phone switch), `useResolveLocalizable()` and `useLocalizable(text)` (spec texts to strings), `useIsCloningAllowed()` (a read-mode \"edit a copy\" action with `LayoutSlots.CloneToEditDialog`)\n - Undo and redo: `phx.frontend.useUndoRedo()` returns `{ canUndo, canRedo, undo, redo }`; disable each button from `canUndo`/`canRedo`\n - Tabs: `phx.frontend.useTabNavigation()` returns `{ source, tabs, activeTab, select }` for the spec's `sidebarTabs` (of the selected entity) or `horizontalTabs`; render `tabs` (each `{ index, label, icon, state, isActive }`, `icon` a PhxIcon name) and call `select(tab.index)` on click. Pass `{ source: 'sidebarTabs' }` or `{ source: 'horizontalTabs' }` when the layout shows one kind only. Not `LayoutSlots.useSidebarTabs()`: it serves the built-in sidebar and returns no tabs while its summary shows\n - Steps: `phx.frontend.useStepNavigation()` returns `{ steps, activeStep, activeIndex, isFirst, isLast, canGoNext, canGoPrevious, next, previous, goTo }` for the spec's `navigationSteps`; render `steps` (each `{ index, label, state, status }`, `status` `'complete' | 'active' | 'upcoming'`), call `next()`/`previous()` for Back and Next and `goTo(step.index)` from a stepper. It enforces no order and no validity: enable only `'complete'` steps for an \"earlier steps only\" stepper, and to block moving on while the configuration has a problem, require `phx.frontend.useStateValidity().severity !== 'warning'` besides `canGoNext`: a change with a `fixable` or `fatal` violation is rejected, so the configuration is never invalid, and a `warning` is the problem that stays (it blocks finalizing too). `useSteps` and `useHasSteps` from `@salsita-ai/sdk/configurator` are deprecated\n - Messages: mount `LayoutSlots.Services` for the built-in snackbars, or show violations, side-effect hints, errors and failed saves yourself with `phx.frontend.useConfiguratorMessages(onMessage)`, not both. A failed save arrives as `saveError`, the next successful save as `saveRecovery`; a layout that mounts neither shows no sign of a failed save. Either way mount a snackbar root (`LayoutSlots.DesktopSnackbarsRoot` or `LayoutSlots.MobileSnackbarsRoot`): errors of the built-in actions are always snackbars\n - Finalize over the spec's `finalizeAction` components, each naming a handler registered with `phx.frontend.createPhoenixHandler`: `phx.frontend.useFinalizeActions()` returns `{ actions, primary, secondary, disabled, hints }`; render `primary` (and `secondary` in a menu or list) in a loop, each action `{ key, label, title, icon, run, isPending, error, disabled }`, and call `action.run()` on click (its promise never rejects; show `action.error` on failure). The configurator runs the handlers itself, outside the layout, so a handler must not rely on a provider the layout adds. For one known handler, `phx.frontend.useFinalizeAction(handler)` in a component wrapped in `PhoenixHandlerBoundary` (from `@salsita-ai/sdk/react`) works too; `FinalizeActions` (from `@salsita-ai/sdk/configurator`) mounts the built-in buttons. `finalizePage` and `finalizeButton` are legacy\n - Read mode and fullscreen are the layout's job, no hook enforces them (`useUndoRedo`, `useFinalizeActions` and `useStepNavigation` included): hide undo, redo, finalization and whatever else a viewer must not change while `phx.frontend.useAccessService().accessInfo.viewMode` is `true` (tabs are navigation, so a viewer may switch them), and remove panels while `phx.frontend.useIsFullscreenActive()` is set; `phx.frontend.useSetFullscreen()` returns its setter\n - `ConfigurationNotFoundPage`: `phx.frontend.createConfigurationNotFoundPage(({ onBack }) => \u2026)` replaces the \"configuration not accessible\" page; show a way back only when the optional `onBack` is set. The not-authenticated page's default renders it too; only the admin's not-authorized page keeps the built-in page\n - `ConfiguratorErrorPage`: `phx.frontend.createConfiguratorErrorPage(({ reason, onRetry }) => \u2026)` replaces the production error page; `reason` is `uncaughtError` or `presetCreationFailed`. A page that throws falls back to the built-in one, and development keeps the detailed error pages, so the project page shows only in a production build. Register both pages with these helpers: `createCustomPhoenixLayoutElement` with the name works too, but types the component as taking only `children`, so the typed props do not compile there in a strict project\n - `AppLoaderContent`: `phx.frontend.createAppLoader(({ phases }) => \u2026)` replaces what the loading overlay shows (each phase `{ id, label?, progress? }`, the list possibly empty); Phoenix keeps the overlay itself\n- `src/handlers/` \u2014 Event & lifecycle handlers\n- `src/webhooks/` \u2014 Server-side webhook handlers (`phx.webhooks.*Builder`)\n- `src/migrations/` \u2014 Schema version migrations (v*.ts)\n- `src/locales/` \u2014 Locale catalogs (authored .po sources; compiled .ts, do not edit)\n- `src/admin/` \u2014 Admin interface (mirrors main src/ structure)\n- `src/_shared/` \u2014 Shared utilities (NOT auto-imported, requires explicit imports)\n- `.phoenix/` \u2014 Auto-generated files (DO NOT EDIT)\n- `public/` \u2014 Static assets (3D models, textures, images, HDRI maps, fonts)\n- `assets/` \u2014 Uploadable resources (PDF templates, email assets)\n\n## Architecture Principles\n- YAML-first: 99% of configuration in spec/*.yaml, custom code is last resort\n- ECS pattern: entities (domain objects) + components (behavior/UI) + systems (SDK runtime)\n- Reactive state: immutable domain state flows through RxJS pipelines\n- Data binding: `$read` (read-only), `$write` (write-only), `$bind` (bidirectional) connect components to domain\n- memoEval: all component implementations must use memoEval for stable object references\n\n## Key Patterns\n- Expressions = computed properties on entities (prefix: `$`), implemented per-entity in src/expressions/\n- Invariants = validation rules returning violations, static or dynamic\n- Transformers = auto-fixers maintaining consistency after state changes\n- Components defined in YAML with `$read`/`$bind` bindings, or custom in src/components/ using attachComponent builder\n- Webhooks = server-side finalization tasks (PDF, email, CSV, image rendering)\n- Filters = contextual component activation via navigationStates, viewStates, modes, selectedEntityIds\n\n## File Conventions\n- Components: PascalCase (.tsx)\n- Utilities: kebab-case (.ts)\n- Expressions: entity-name.ts\n- Migrations: v*.ts (sequential)\n- Specs: kebab-case.yaml\n- Underscore folders (_shared/, _utils/) are NOT auto-imported\n\n## Export Rules\nAll files in src/expressions/, src/invariants/, src/transformers/, src/components/, src/handlers/, src/webhooks/ MUST use default exports. Can be a single item or an array. Named exports are ignored by the SDK auto-import system.\n\n## Webhook Membership\n- User-authored components, admin components, and handlers are frontend-only by default.\n- A handler that registers `createMapPublishedRevisionDataHandler`, `createMapPublishedChunkedDataHandler`, `createDataRowValidatorHandler`, or `createSheetValidatorHandler` is included in the webhook automatically.\n- To include another component or handler in the webhook, put `'use webhook'` as its first statement (leading comments are allowed).\n- A webhook-included file and its runtime local-import closure must not import browser SDK entrypoints (`application`, `admin`, `configurator`, `editor`, `react`, `ui`) or style/font/image assets. Spec parsing reports the unsafe import and inclusion reason as a diagnostic.\n- Keep browser rendering in an unpinned file. Move shared server-safe logic into a separate module when both frontend and webhook code need it.\n\n## Do Not Edit\n- `.phoenix/` directory \u2014 completely regenerated on each build\n- `tsconfig.json`, `eslint.config.js`, `prettier.config.js`, `.prettierignore`, `.linguirc`, `.nvmrc`\n- `src/locales/` .ts files \u2014 compiled from .po files\n\n## Code Review\nUse `/review` command to review code changes before committing.\n\n## SDK Documentation\n\nAlways search SDK docs for relevant examples before implementing Phoenix features.\n\n### Commands\n- `pnpm phoenix docs` \u2014 Full documentation index with descriptions\n- `pnpm phoenix docs -s <term>` \u2014 Search all doc content and metadata (case-insensitive)\n- `pnpm phoenix docs --dir` \u2014 Print the absolute docs directory for grep or ripgrep\n- `pnpm phoenix docs -r <path>` \u2014 Read specific doc (raw text to stdout)\n- `pnpm phoenix docs -c <category>` \u2014 List docs in a category\n- `pnpm phoenix docs -l` \u2014 List all doc paths with titles\n\n### 3D Asset Inspection\n\nRun `pnpm phoenix inspect:assets` to discover all glTF/GLB files in `public/` and get a summary table. Use `--file <path>` for detailed single-file inspection.\n\n**When to use:** before writing YAML/code that references objectName, materialsToOverride, morphTargetInfluences, or object positioning.\n\n**What it shows per node:**\n- Name, type (Mesh/Light/Camera/Empty), children\n- Transform: `pos=`, `rot=`, `scale=` (only non-default values shown)\n- Per-node morph targets: `morphs=Width,Height`\n- Bounding box: `bounds=WxHxD` (width x height x depth in meters)\n- Origin placement: `origin=center`, `bottom-center`, `top-center`, `bottom-corner`, etc. with numerical offset\n\n**Use cases:**\n- Find exact node names for `objectName` in scene entity components\n- Find material names for `materialsToOverride`\n- Find morph target names for `morphTargetInfluences`\n- Check model dimensions (bounds) for positioning, dimension indicators, or invariants\n- Check origin placement to understand how models anchor (center vs bottom-center)\n- Use `--json` for programmatic access to all data\n\n**Flags:** `--objects`, `--materials`, `--morphs`, `--animations`, `--json`\n\n### Screenshot CLI\n\nCapture 3D canvas screenshots from a running dev server via `pnpm phoenix screenshot`.\n\n**Prerequisites:**\n1. `phoenix dev` must be running (starts the WebSocket server on port 3020)\n2. Configurator must be open in a browser (the browser does the actual rendering)\n\n**Options:**\n- `--output, -o` \u2014 Output file path (default: `./screenshot.png`)\n- `--width, -w` \u2014 Width in pixels (default: 1920)\n- `--height` \u2014 Height in pixels (default: 1080)\n- `--format, -f` \u2014 Image format: PNG or JPEG (default: PNG)\n- `--port` \u2014 WebSocket server port (default: 3020)\n\n**Example workflow:**\n1. Start dev server: `pnpm phoenix dev`\n2. Open configurator in browser (or via Playwright MCP)\n3. Take screenshot: `pnpm phoenix screenshot -o ./render.png -w 2560 --height 1440`\n\n**Use cases:** visual regression testing, generating product images, debugging 3D renders\n\n### Inspect: State\n\nGet the current editor runtime state as JSON via `pnpm phoenix inspect:state`.\n\n**Prerequisites:** same as screenshot (dev server running + browser open)\n\n**Options:**\n- `--output, -o` \u2014 Output file path (prints to stdout if omitted)\n- `--sections, -s` \u2014 Comma-separated: entities, navigation, validation (default: all)\n- `--pretty` \u2014 Pretty-print JSON (default: true)\n- `--port` \u2014 WebSocket server port (default: 3020)\n\n**Example:** `pnpm phoenix inspect:state -o ./state.json -s entities,navigation`\n\n**Lifecycle status:** Always included in response. Shows which systems are ready:\n- `domainLoaded` \u2014 domain data loaded\n- `domainContextReady` \u2014 domain context initialized (entities available)\n- `configuratorReady` \u2014 3D configurator initialized\n- `sessionAuthenticated` \u2014 session service active\n- `editorMode` \u2014 editor mode enabled\n\n**Tips:** Use `--sections` to limit payload size. Pipe through `head`/`tail` for partial output (e.g., `pnpm phoenix inspect:state | head -50`).\n\n**Use cases:** AI agent context, debugging entity state, inspecting navigation/validation\n\n### Inspect: Data\n\nGet the current editor context data as JSON via `pnpm phoenix inspect:data`.\n\n**Prerequisites:** same as screenshot (dev server running + browser open)\n\n**Options:**\n- `--output, -o` \u2014 Output file path (prints to stdout if omitted)\n- `--pretty` \u2014 Pretty-print JSON (default: true)\n- `--port` \u2014 WebSocket server port (default: 3020)\n\n**Returns:** publishedData, frontendData, backendData, sessionData, accessData, webComponentProperties\n\n**Example:** `pnpm phoenix inspect:data -o ./data.json`\n\n**Tips:** Pipe through `head`/`tail` for partial output (e.g., `pnpm phoenix inspect:data | head -30`).\n\n**Use cases:** AI agent context, debugging published/session/access data\n\n### Inspect: Scene\n\nGet the current Three.js scene graph as JSON via `pnpm phoenix inspect:scene`.\n\n**Prerequisites:** same as screenshot (dev server running + browser open)\n\n**Options:**\n- `--output, -o` \u2014 Output file path (prints to stdout if omitted)\n- `--pretty` \u2014 Pretty-print JSON (default: true)\n- `--port` \u2014 WebSocket server port (default: 3020)\n\n**Returns:** Recursive scene tree with per-node: name, type, visible, position, rotation, scale, userData (entityId), and for meshes: geometry name, bounding box, material properties (color, metalness, roughness, opacity, textures), morph target influences. Lights include color, intensity, and type-specific properties.\n\n**Example:** `pnpm phoenix inspect:scene -o ./scene.json`\n\n**Tips:** Scene graphs can be large. Pipe through `head`/`tail` for partial output.\n\n**Use cases:** AI agent context, debugging 3D scene layout, inspecting materials and lighting\n\n### Key Docs\n- `docs/phoenix/getting-started.mdx` \u2014 Setup, prerequisites, first project\n- `docs/phoenix/quickstart.mdx` \u2014 End-to-end tutorial building a configurator\n- `docs/phoenix/domain-model.mdx` \u2014 Entities, attributes, relations, specs\n- `docs/phoenix/components.mdx` \u2014 ECS pattern, YAML components, custom components\n- `docs/phoenix/project-structure.mdx` \u2014 Files, folders, conventions\n- `docs/phoenix/best-practices.mdx` \u2014 YAML-first, code patterns, common pitfalls\n- `docs/phoenix/state-management.mdx` \u2014 Reactive state, RxJS pipelines, data flow\n- `docs/phoenix/expression-context.mdx` \u2014 Expression API, context object, helpers\n- `docs/phoenix/webhooks.mdx` \u2014 Server-side finalization workflows\n- `docs/phoenix/finalization.mdx` \u2014 Finalization system, PDF/email/CSV generation\n- `docs/phoenix/migrations.mdx` \u2014 Schema versioning, migration files\n\n### Agent Workflow\n1. Find relevant docs by content: `pnpm phoenix docs -s \"camera\"`\n2. Read matching doc: `pnpm phoenix docs -r docs/3d-scene/cameras/transitions.mdx`\n3. Search within a doc: `pnpm phoenix docs -r <path> | grep \"example\"`\n4. Search titles only as a fallback: `pnpm phoenix docs -l | grep \"camera\"`\n5. Search generated files directly when needed: `grep -rn \"camera\" \"$(pnpm phoenix docs --dir)\"`\n6. Browse a topic area: `pnpm phoenix docs -c \"Layouts\"`\n\n### Playwright MCP Setup (for AI agents)\n\nTo interact with the 3D configurator in a browser, Playwright MCP needs GPU-enabled flags for WebGL rendering. Add to `~/.claude/.mcp.json`:\n\n```json\n{\n \"mcpServers\": {\n \"playwright\": {\n \"command\": \"npx\",\n \"args\": [\n \"@playwright/mcp@latest\",\n \"--headed\",\n \"--launch-options\",\n \"{\\\"args\\\":[\\\"--use-gl=swiftshader\\\",\\\"--enable-webgl\\\",\\\"--ignore-gpu-blocklist\\\"]}\"\n ]\n }\n }\n}\n```\n\nKey flags:\n- `--headed` \u2014 visible browser (required for GPU rendering)\n- `--use-gl=swiftshader` \u2014 software GPU fallback for environments without a physical GPU\n- `--enable-webgl` + `--ignore-gpu-blocklist` \u2014 ensure WebGL is available\n[PHOENIX-SDK-END]\n";
|
package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const mergeCursorRulesContent: (existingContent: string | undefined) => string;
|
|
2
|
-
export declare const cursorRulesFile = "---\ndescription: Phoenix SDK project rules\nglobs:\nalwaysApply: true\n---\n\n[PHOENIX-SDK-START]\n## Phoenix Configurator Project\n\nDeclarative 3D product configurator built with Phoenix SDK. Domain model defined in YAML, custom logic in TypeScript.\n\n## Build Commands\n- `pnpm phoenix build` \u2014 Full production build\n- `pnpm phoenix dev` \u2014 Development mode with hot reload\n- `pnpm phoenix sync` \u2014 Sync generated files without full build\n\n## Dev Logs\n- `pnpm phoenix dev` writes all logs to `.phoenix/phoenix-dev.log`\n- Contains: spec parse errors, build errors, browser runtime errors, file watcher events\n- After making changes, always check the log for errors: `tail -50 .phoenix/phoenix-dev.log` or `grep ERROR .phoenix/phoenix-dev.log`\n- Rotated automatically at 10MB (`.log.1`, `.log.2` are older rotations)\n\n## Project Structure\n- `spec/` \u2014 Domain YAML specs (entities, relations, expressions, invariants, components, application config)\n- `src/expressions/` \u2014 Computed/derived entity properties (`phx.domain.implementCustomExpressions()`)\n- `src/invariants/` \u2014 Business rule constraints (`phx.domain.implementCustomInvariants()`)\n- `src/transformers/` \u2014 Automatic state fixers (`phx.frontend.transformerBuilder`)\n- `src/components/` \u2014 ECS system components (`phx.domain.attachComponent.withEntity()`)\n- `src/elements/` \u2014 Page-level React components (`phx.frontend.createCustomPhoenixLayoutElement()`)\n - `ConfiguratorLayout`: a layout element with this name replaces everything the built-in layout renders for a loaded configuration, in owner and read mode, finalization included. Prefer arranging the spec's layout components; write one for shell-level changes, such as moving the sidebar or adding an area the built-in layout has no place for\n - Mount `LayoutSlots.SharedCanvas` (from `@salsita-ai/sdk/configurator`) in a positioned root covering the page, or the app loader stays on screen; put the UI above it, positioned and after it in the markup. Call `useSceneSafeArea()` (same import) and put `containerRef` on the element covering the whole canvas and `safeAreaRef` on the region the UI leaves free, with `pointerEvents: 'none'`, so the camera frames the scene there\n - Sidebar moved, contents as the spec configures them: mount `LayoutSlots.DesktopSidebar` in a positioned container that sets its size, with `side=\"start\"` on the left; `docs/layouts/sidebar/in-a-custom-layout.mdx` is the whole layout\n - Your own UI: \"Hooks for a Project Layout\" in `docs/phoenix/configurator-interface.mdx` lists the hooks with what each returns (`pnpm phoenix docs -r docs/phoenix/configurator-interface.mdx`), `docs/phoenix/layout-slots.mdx` the built-in pieces you can still mount, and `docs/layouts/custom-layout.mdx` is a worked example\n - Messages: mount `LayoutSlots.Services` for the built-in snackbars, or show violations, side-effect hints and errors yourself with `phx.frontend.useConfiguratorMessages(onMessage)`, not both. Either way mount a snackbar root (`LayoutSlots.DesktopSnackbarsRoot` or `LayoutSlots.MobileSnackbarsRoot`): save and built-in action errors are always snackbars\n - Finalize over the spec's `finalizeAction` components, each naming a handler registered with `phx.frontend.createPhoenixHandler`: run each with `phx.frontend.useFinalizeAction(handler)` in a component of its own wrapped in `PhoenixHandlerBoundary` (from `@salsita-ai/sdk/react`), or mount `FinalizeActions` (from `@salsita-ai/sdk/configurator`) for the built-in buttons. `finalizePage` and `finalizeButton` are legacy\n - Read mode and fullscreen are the layout's job, no hook enforces them: hide what a viewer must not change while `phx.frontend.useAccessService().accessInfo.viewMode` is `true`, and remove panels while `phx.frontend.useIsFullscreenActive()` is set; `phx.frontend.useSetFullscreen()` returns its setter\n- `src/handlers/` \u2014 Event & lifecycle handlers\n- `src/webhooks/` \u2014 Server-side webhook handlers (`phx.webhooks.*Builder`)\n- `src/migrations/` \u2014 Schema version migrations (v*.ts)\n- `src/locales/` \u2014 Locale catalogs (authored .po sources; compiled .ts, do not edit)\n- `src/admin/` \u2014 Admin interface (mirrors main src/ structure)\n- `src/_shared/` \u2014 Shared utilities (NOT auto-imported, requires explicit imports)\n- `.phoenix/` \u2014 Auto-generated files (DO NOT EDIT)\n- `public/` \u2014 Static assets (3D models, textures, images, HDRI maps, fonts)\n- `assets/` \u2014 Uploadable resources (PDF templates, email assets)\n\n## Architecture Principles\n- YAML-first: 99% of configuration in spec/*.yaml, custom code is last resort\n- ECS pattern: entities (domain objects) + components (behavior/UI) + systems (SDK runtime)\n- Reactive state: immutable domain state flows through RxJS pipelines\n- Data binding: `$read` (read-only), `$write` (write-only), `$bind` (bidirectional) connect components to domain\n- memoEval: all component implementations must use memoEval for stable object references\n\n## Key Patterns\n- Expressions = computed properties on entities (prefix: `$`), implemented per-entity in src/expressions/\n- Invariants = validation rules returning violations, static or dynamic\n- Transformers = auto-fixers maintaining consistency after state changes\n- Components defined in YAML with `$read`/`$bind` bindings, or custom in src/components/ using attachComponent builder\n- Webhooks = server-side finalization tasks (PDF, email, CSV, image rendering)\n- Filters = contextual component activation via navigationStates, viewStates, modes, selectedEntityIds\n\n## File Conventions\n- Components: PascalCase (.tsx)\n- Utilities: kebab-case (.ts)\n- Expressions: entity-name.ts\n- Migrations: v*.ts (sequential)\n- Specs: kebab-case.yaml\n- Underscore folders (_shared/, _utils/) are NOT auto-imported\n\n## Export Rules\nAll files in src/expressions/, src/invariants/, src/transformers/, src/components/, src/handlers/, src/webhooks/ MUST use default exports. Can be a single item or an array. Named exports are ignored by the SDK auto-import system.\n\n## Webhook Membership\n- User-authored components, admin components, and handlers are frontend-only by default.\n- A handler that registers `createMapPublishedRevisionDataHandler`, `createMapPublishedChunkedDataHandler`, `createDataRowValidatorHandler`, or `createSheetValidatorHandler` is included in the webhook automatically.\n- To include another component or handler in the webhook, put `'use webhook'` as its first statement (leading comments are allowed).\n- A webhook-included file and its runtime local-import closure must not import browser SDK entrypoints (`application`, `admin`, `configurator`, `editor`, `react`, `ui`) or style/font/image assets. Spec parsing reports the unsafe import and inclusion reason as a diagnostic.\n- Keep browser rendering in an unpinned file. Move shared server-safe logic into a separate module when both frontend and webhook code need it.\n\n## Do Not Edit\n- `.phoenix/` directory \u2014 completely regenerated on each build\n- `tsconfig.json`, `eslint.config.js`, `prettier.config.js`, `.prettierignore`, `.linguirc`, `.nvmrc`\n- `src/locales/` .ts files \u2014 compiled from .po files\n\n## Code Review\nUse `/review` command to review code changes before committing.\n\n## SDK Documentation\n\nAlways search SDK docs for relevant examples before implementing Phoenix features.\n\n### Commands\n- `pnpm phoenix docs` \u2014 Full documentation index with descriptions\n- `pnpm phoenix docs -s <term>` \u2014 Search all doc content and metadata (case-insensitive)\n- `pnpm phoenix docs --dir` \u2014 Print the absolute docs directory for grep or ripgrep\n- `pnpm phoenix docs -r <path>` \u2014 Read specific doc (raw text to stdout)\n- `pnpm phoenix docs -c <category>` \u2014 List docs in a category\n- `pnpm phoenix docs -l` \u2014 List all doc paths with titles\n\n### 3D Asset Inspection\n\nRun `pnpm phoenix inspect:assets` to discover all glTF/GLB files in `public/` and get a summary table. Use `--file <path>` for detailed single-file inspection.\n\n**When to use:** before writing YAML/code that references objectName, materialsToOverride, morphTargetInfluences, or object positioning.\n\n**What it shows per node:**\n- Name, type (Mesh/Light/Camera/Empty), children\n- Transform: `pos=`, `rot=`, `scale=` (only non-default values shown)\n- Per-node morph targets: `morphs=Width,Height`\n- Bounding box: `bounds=WxHxD` (width x height x depth in meters)\n- Origin placement: `origin=center`, `bottom-center`, `top-center`, `bottom-corner`, etc. with numerical offset\n\n**Use cases:**\n- Find exact node names for `objectName` in scene entity components\n- Find material names for `materialsToOverride`\n- Find morph target names for `morphTargetInfluences`\n- Check model dimensions (bounds) for positioning, dimension indicators, or invariants\n- Check origin placement to understand how models anchor (center vs bottom-center)\n- Use `--json` for programmatic access to all data\n\n**Flags:** `--objects`, `--materials`, `--morphs`, `--animations`, `--json`\n\n### Screenshot CLI\n\nCapture 3D canvas screenshots from a running dev server via `pnpm phoenix screenshot`.\n\n**Prerequisites:**\n1. `phoenix dev` must be running (starts the WebSocket server on port 3020)\n2. Configurator must be open in a browser (the browser does the actual rendering)\n\n**Options:**\n- `--output, -o` \u2014 Output file path (default: `./screenshot.png`)\n- `--width, -w` \u2014 Width in pixels (default: 1920)\n- `--height` \u2014 Height in pixels (default: 1080)\n- `--format, -f` \u2014 Image format: PNG or JPEG (default: PNG)\n- `--port` \u2014 WebSocket server port (default: 3020)\n\n**Example workflow:**\n1. Start dev server: `pnpm phoenix dev`\n2. Open configurator in browser (or via Playwright MCP)\n3. Take screenshot: `pnpm phoenix screenshot -o ./render.png -w 2560 --height 1440`\n\n**Use cases:** visual regression testing, generating product images, debugging 3D renders\n\n### Inspect: State\n\nGet the current editor runtime state as JSON via `pnpm phoenix inspect:state`.\n\n**Prerequisites:** same as screenshot (dev server running + browser open)\n\n**Options:**\n- `--output, -o` \u2014 Output file path (prints to stdout if omitted)\n- `--sections, -s` \u2014 Comma-separated: entities, navigation, validation (default: all)\n- `--pretty` \u2014 Pretty-print JSON (default: true)\n- `--port` \u2014 WebSocket server port (default: 3020)\n\n**Example:** `pnpm phoenix inspect:state -o ./state.json -s entities,navigation`\n\n**Lifecycle status:** Always included in response. Shows which systems are ready:\n- `domainLoaded` \u2014 domain data loaded\n- `domainContextReady` \u2014 domain context initialized (entities available)\n- `configuratorReady` \u2014 3D configurator initialized\n- `sessionAuthenticated` \u2014 session service active\n- `editorMode` \u2014 editor mode enabled\n\n**Tips:** Use `--sections` to limit payload size. Pipe through `head`/`tail` for partial output (e.g., `pnpm phoenix inspect:state | head -50`).\n\n**Use cases:** AI agent context, debugging entity state, inspecting navigation/validation\n\n### Inspect: Data\n\nGet the current editor context data as JSON via `pnpm phoenix inspect:data`.\n\n**Prerequisites:** same as screenshot (dev server running + browser open)\n\n**Options:**\n- `--output, -o` \u2014 Output file path (prints to stdout if omitted)\n- `--pretty` \u2014 Pretty-print JSON (default: true)\n- `--port` \u2014 WebSocket server port (default: 3020)\n\n**Returns:** publishedData, frontendData, backendData, sessionData, accessData, webComponentProperties\n\n**Example:** `pnpm phoenix inspect:data -o ./data.json`\n\n**Tips:** Pipe through `head`/`tail` for partial output (e.g., `pnpm phoenix inspect:data | head -30`).\n\n**Use cases:** AI agent context, debugging published/session/access data\n\n### Inspect: Scene\n\nGet the current Three.js scene graph as JSON via `pnpm phoenix inspect:scene`.\n\n**Prerequisites:** same as screenshot (dev server running + browser open)\n\n**Options:**\n- `--output, -o` \u2014 Output file path (prints to stdout if omitted)\n- `--pretty` \u2014 Pretty-print JSON (default: true)\n- `--port` \u2014 WebSocket server port (default: 3020)\n\n**Returns:** Recursive scene tree with per-node: name, type, visible, position, rotation, scale, userData (entityId), and for meshes: geometry name, bounding box, material properties (color, metalness, roughness, opacity, textures), morph target influences. Lights include color, intensity, and type-specific properties.\n\n**Example:** `pnpm phoenix inspect:scene -o ./scene.json`\n\n**Tips:** Scene graphs can be large. Pipe through `head`/`tail` for partial output.\n\n**Use cases:** AI agent context, debugging 3D scene layout, inspecting materials and lighting\n\n### Key Docs\n- `docs/phoenix/getting-started.mdx` \u2014 Setup, prerequisites, first project\n- `docs/phoenix/quickstart.mdx` \u2014 End-to-end tutorial building a configurator\n- `docs/phoenix/domain-model.mdx` \u2014 Entities, attributes, relations, specs\n- `docs/phoenix/components.mdx` \u2014 ECS pattern, YAML components, custom components\n- `docs/phoenix/project-structure.mdx` \u2014 Files, folders, conventions\n- `docs/phoenix/best-practices.mdx` \u2014 YAML-first, code patterns, common pitfalls\n- `docs/phoenix/state-management.mdx` \u2014 Reactive state, RxJS pipelines, data flow\n- `docs/phoenix/expression-context.mdx` \u2014 Expression API, context object, helpers\n- `docs/phoenix/webhooks.mdx` \u2014 Server-side finalization workflows\n- `docs/phoenix/finalization.mdx` \u2014 Finalization system, PDF/email/CSV generation\n- `docs/phoenix/migrations.mdx` \u2014 Schema versioning, migration files\n\n### Agent Workflow\n1. Find relevant docs by content: `pnpm phoenix docs -s \"camera\"`\n2. Read matching doc: `pnpm phoenix docs -r docs/3d-scene/cameras/transitions.mdx`\n3. Search within a doc: `pnpm phoenix docs -r <path> | grep \"example\"`\n4. Search titles only as a fallback: `pnpm phoenix docs -l | grep \"camera\"`\n5. Search generated files directly when needed: `grep -rn \"camera\" \"$(pnpm phoenix docs --dir)\"`\n6. Browse a topic area: `pnpm phoenix docs -c \"Layouts\"`\n\n### Playwright MCP Setup (for AI agents)\n\nTo interact with the 3D configurator in a browser, Playwright MCP needs GPU-enabled flags for WebGL rendering. Add to `~/.claude/.mcp.json`:\n\n```json\n{\n \"mcpServers\": {\n \"playwright\": {\n \"command\": \"npx\",\n \"args\": [\n \"@playwright/mcp@latest\",\n \"--headed\",\n \"--launch-options\",\n \"{\\\"args\\\":[\\\"--use-gl=swiftshader\\\",\\\"--enable-webgl\\\",\\\"--ignore-gpu-blocklist\\\"]}\"\n ]\n }\n }\n}\n```\n\nKey flags:\n- `--headed` \u2014 visible browser (required for GPU rendering)\n- `--use-gl=swiftshader` \u2014 software GPU fallback for environments without a physical GPU\n- `--enable-webgl` + `--ignore-gpu-blocklist` \u2014 ensure WebGL is available\n[PHOENIX-SDK-END]\n";
|
|
2
|
+
export declare const cursorRulesFile = "---\ndescription: Phoenix SDK project rules\nglobs:\nalwaysApply: true\n---\n\n[PHOENIX-SDK-START]\n## Phoenix Configurator Project\n\nDeclarative 3D product configurator built with Phoenix SDK. Domain model defined in YAML, custom logic in TypeScript.\n\n## Build Commands\n- `pnpm phoenix build` \u2014 Full production build\n- `pnpm phoenix dev` \u2014 Development mode with hot reload\n- `pnpm phoenix sync` \u2014 Sync generated files without full build\n\n## Dev Logs\n- `pnpm phoenix dev` writes all logs to `.phoenix/phoenix-dev.log`\n- Contains: spec parse errors, build errors, browser runtime errors, file watcher events\n- After making changes, always check the log for errors: `tail -50 .phoenix/phoenix-dev.log` or `grep ERROR .phoenix/phoenix-dev.log`\n- Rotated automatically at 10MB (`.log.1`, `.log.2` are older rotations)\n\n## Project Structure\n- `spec/` \u2014 Domain YAML specs (entities, relations, expressions, invariants, components, application config)\n- `src/expressions/` \u2014 Computed/derived entity properties (`phx.domain.implementCustomExpressions()`)\n- `src/invariants/` \u2014 Business rule constraints (`phx.domain.implementCustomInvariants()`)\n- `src/transformers/` \u2014 Automatic state fixers (`phx.frontend.transformerBuilder`)\n- `src/components/` \u2014 ECS system components (`phx.domain.attachComponent.withEntity()`)\n- `src/elements/` \u2014 Page-level React components (`phx.frontend.createCustomPhoenixLayoutElement()`)\n - `ConfiguratorLayout`: a layout element with this name replaces everything the built-in layout renders for a loaded configuration, in owner and read mode, finalization included. Prefer arranging the spec's layout components; write one for shell-level changes, such as moving the sidebar or adding an area the built-in layout has no place for\n - Mount `LayoutSlots.SharedCanvas` (from `@salsita-ai/sdk/configurator`) in a positioned root covering the page; put the UI above it, positioned and after it in the markup. With the canvas mounted the app loader waits until the scene has loaded; a layout without a canvas is not held by the loader. Call `phx.frontend.useSceneSafeArea()` and put `containerRef` on the element covering the whole canvas and `safeAreaRef` on the region the UI leaves free, with `pointerEvents: 'none'`, so the camera frames the scene there\n - Sidebar moved, contents as the spec configures them: mount `LayoutSlots.DesktopSidebar` in a positioned container that sets its size, with `side=\"start\"` on the left; `docs/layouts/sidebar/in-a-custom-layout.mdx` is the whole layout\n - Your own UI: \"Hooks for a Project Layout\" in `docs/phoenix/configurator-interface.mdx` lists the hooks with what each returns (`pnpm phoenix docs -r docs/phoenix/configurator-interface.mdx`), `docs/phoenix/layout-slots.mdx` the built-in pieces you can still mount, and `docs/layouts/custom-layout.mdx` is a worked example. Call the hooks as `phx.frontend.useX()`; besides those below, these are often needed: `usePreview()` (`isPreview` while the preview start screen shows), `useCloseAction()` (the host's close action or `null`), `useActiveViewports()` (the container's breakpoints, `null` until measured, `desktop` above 768 px: the desktop/phone switch), `useResolveLocalizable()` and `useLocalizable(text)` (spec texts to strings), `useIsCloningAllowed()` (a read-mode \"edit a copy\" action with `LayoutSlots.CloneToEditDialog`)\n - Undo and redo: `phx.frontend.useUndoRedo()` returns `{ canUndo, canRedo, undo, redo }`; disable each button from `canUndo`/`canRedo`\n - Tabs: `phx.frontend.useTabNavigation()` returns `{ source, tabs, activeTab, select }` for the spec's `sidebarTabs` (of the selected entity) or `horizontalTabs`; render `tabs` (each `{ index, label, icon, state, isActive }`, `icon` a PhxIcon name) and call `select(tab.index)` on click. Pass `{ source: 'sidebarTabs' }` or `{ source: 'horizontalTabs' }` when the layout shows one kind only. Not `LayoutSlots.useSidebarTabs()`: it serves the built-in sidebar and returns no tabs while its summary shows\n - Steps: `phx.frontend.useStepNavigation()` returns `{ steps, activeStep, activeIndex, isFirst, isLast, canGoNext, canGoPrevious, next, previous, goTo }` for the spec's `navigationSteps`; render `steps` (each `{ index, label, state, status }`, `status` `'complete' | 'active' | 'upcoming'`), call `next()`/`previous()` for Back and Next and `goTo(step.index)` from a stepper. It enforces no order and no validity: enable only `'complete'` steps for an \"earlier steps only\" stepper, and to block moving on while the configuration has a problem, require `phx.frontend.useStateValidity().severity !== 'warning'` besides `canGoNext`: a change with a `fixable` or `fatal` violation is rejected, so the configuration is never invalid, and a `warning` is the problem that stays (it blocks finalizing too). `useSteps` and `useHasSteps` from `@salsita-ai/sdk/configurator` are deprecated\n - Messages: mount `LayoutSlots.Services` for the built-in snackbars, or show violations, side-effect hints, errors and failed saves yourself with `phx.frontend.useConfiguratorMessages(onMessage)`, not both. A failed save arrives as `saveError`, the next successful save as `saveRecovery`; a layout that mounts neither shows no sign of a failed save. Either way mount a snackbar root (`LayoutSlots.DesktopSnackbarsRoot` or `LayoutSlots.MobileSnackbarsRoot`): errors of the built-in actions are always snackbars\n - Finalize over the spec's `finalizeAction` components, each naming a handler registered with `phx.frontend.createPhoenixHandler`: `phx.frontend.useFinalizeActions()` returns `{ actions, primary, secondary, disabled, hints }`; render `primary` (and `secondary` in a menu or list) in a loop, each action `{ key, label, title, icon, run, isPending, error, disabled }`, and call `action.run()` on click (its promise never rejects; show `action.error` on failure). The configurator runs the handlers itself, outside the layout, so a handler must not rely on a provider the layout adds. For one known handler, `phx.frontend.useFinalizeAction(handler)` in a component wrapped in `PhoenixHandlerBoundary` (from `@salsita-ai/sdk/react`) works too; `FinalizeActions` (from `@salsita-ai/sdk/configurator`) mounts the built-in buttons. `finalizePage` and `finalizeButton` are legacy\n - Read mode and fullscreen are the layout's job, no hook enforces them (`useUndoRedo`, `useFinalizeActions` and `useStepNavigation` included): hide undo, redo, finalization and whatever else a viewer must not change while `phx.frontend.useAccessService().accessInfo.viewMode` is `true` (tabs are navigation, so a viewer may switch them), and remove panels while `phx.frontend.useIsFullscreenActive()` is set; `phx.frontend.useSetFullscreen()` returns its setter\n - `ConfigurationNotFoundPage`: `phx.frontend.createConfigurationNotFoundPage(({ onBack }) => \u2026)` replaces the \"configuration not accessible\" page; show a way back only when the optional `onBack` is set. The not-authenticated page's default renders it too; only the admin's not-authorized page keeps the built-in page\n - `ConfiguratorErrorPage`: `phx.frontend.createConfiguratorErrorPage(({ reason, onRetry }) => \u2026)` replaces the production error page; `reason` is `uncaughtError` or `presetCreationFailed`. A page that throws falls back to the built-in one, and development keeps the detailed error pages, so the project page shows only in a production build. Register both pages with these helpers: `createCustomPhoenixLayoutElement` with the name works too, but types the component as taking only `children`, so the typed props do not compile there in a strict project\n - `AppLoaderContent`: `phx.frontend.createAppLoader(({ phases }) => \u2026)` replaces what the loading overlay shows (each phase `{ id, label?, progress? }`, the list possibly empty); Phoenix keeps the overlay itself\n- `src/handlers/` \u2014 Event & lifecycle handlers\n- `src/webhooks/` \u2014 Server-side webhook handlers (`phx.webhooks.*Builder`)\n- `src/migrations/` \u2014 Schema version migrations (v*.ts)\n- `src/locales/` \u2014 Locale catalogs (authored .po sources; compiled .ts, do not edit)\n- `src/admin/` \u2014 Admin interface (mirrors main src/ structure)\n- `src/_shared/` \u2014 Shared utilities (NOT auto-imported, requires explicit imports)\n- `.phoenix/` \u2014 Auto-generated files (DO NOT EDIT)\n- `public/` \u2014 Static assets (3D models, textures, images, HDRI maps, fonts)\n- `assets/` \u2014 Uploadable resources (PDF templates, email assets)\n\n## Architecture Principles\n- YAML-first: 99% of configuration in spec/*.yaml, custom code is last resort\n- ECS pattern: entities (domain objects) + components (behavior/UI) + systems (SDK runtime)\n- Reactive state: immutable domain state flows through RxJS pipelines\n- Data binding: `$read` (read-only), `$write` (write-only), `$bind` (bidirectional) connect components to domain\n- memoEval: all component implementations must use memoEval for stable object references\n\n## Key Patterns\n- Expressions = computed properties on entities (prefix: `$`), implemented per-entity in src/expressions/\n- Invariants = validation rules returning violations, static or dynamic\n- Transformers = auto-fixers maintaining consistency after state changes\n- Components defined in YAML with `$read`/`$bind` bindings, or custom in src/components/ using attachComponent builder\n- Webhooks = server-side finalization tasks (PDF, email, CSV, image rendering)\n- Filters = contextual component activation via navigationStates, viewStates, modes, selectedEntityIds\n\n## File Conventions\n- Components: PascalCase (.tsx)\n- Utilities: kebab-case (.ts)\n- Expressions: entity-name.ts\n- Migrations: v*.ts (sequential)\n- Specs: kebab-case.yaml\n- Underscore folders (_shared/, _utils/) are NOT auto-imported\n\n## Export Rules\nAll files in src/expressions/, src/invariants/, src/transformers/, src/components/, src/handlers/, src/webhooks/ MUST use default exports. Can be a single item or an array. Named exports are ignored by the SDK auto-import system.\n\n## Webhook Membership\n- User-authored components, admin components, and handlers are frontend-only by default.\n- A handler that registers `createMapPublishedRevisionDataHandler`, `createMapPublishedChunkedDataHandler`, `createDataRowValidatorHandler`, or `createSheetValidatorHandler` is included in the webhook automatically.\n- To include another component or handler in the webhook, put `'use webhook'` as its first statement (leading comments are allowed).\n- A webhook-included file and its runtime local-import closure must not import browser SDK entrypoints (`application`, `admin`, `configurator`, `editor`, `react`, `ui`) or style/font/image assets. Spec parsing reports the unsafe import and inclusion reason as a diagnostic.\n- Keep browser rendering in an unpinned file. Move shared server-safe logic into a separate module when both frontend and webhook code need it.\n\n## Do Not Edit\n- `.phoenix/` directory \u2014 completely regenerated on each build\n- `tsconfig.json`, `eslint.config.js`, `prettier.config.js`, `.prettierignore`, `.linguirc`, `.nvmrc`\n- `src/locales/` .ts files \u2014 compiled from .po files\n\n## Code Review\nUse `/review` command to review code changes before committing.\n\n## SDK Documentation\n\nAlways search SDK docs for relevant examples before implementing Phoenix features.\n\n### Commands\n- `pnpm phoenix docs` \u2014 Full documentation index with descriptions\n- `pnpm phoenix docs -s <term>` \u2014 Search all doc content and metadata (case-insensitive)\n- `pnpm phoenix docs --dir` \u2014 Print the absolute docs directory for grep or ripgrep\n- `pnpm phoenix docs -r <path>` \u2014 Read specific doc (raw text to stdout)\n- `pnpm phoenix docs -c <category>` \u2014 List docs in a category\n- `pnpm phoenix docs -l` \u2014 List all doc paths with titles\n\n### 3D Asset Inspection\n\nRun `pnpm phoenix inspect:assets` to discover all glTF/GLB files in `public/` and get a summary table. Use `--file <path>` for detailed single-file inspection.\n\n**When to use:** before writing YAML/code that references objectName, materialsToOverride, morphTargetInfluences, or object positioning.\n\n**What it shows per node:**\n- Name, type (Mesh/Light/Camera/Empty), children\n- Transform: `pos=`, `rot=`, `scale=` (only non-default values shown)\n- Per-node morph targets: `morphs=Width,Height`\n- Bounding box: `bounds=WxHxD` (width x height x depth in meters)\n- Origin placement: `origin=center`, `bottom-center`, `top-center`, `bottom-corner`, etc. with numerical offset\n\n**Use cases:**\n- Find exact node names for `objectName` in scene entity components\n- Find material names for `materialsToOverride`\n- Find morph target names for `morphTargetInfluences`\n- Check model dimensions (bounds) for positioning, dimension indicators, or invariants\n- Check origin placement to understand how models anchor (center vs bottom-center)\n- Use `--json` for programmatic access to all data\n\n**Flags:** `--objects`, `--materials`, `--morphs`, `--animations`, `--json`\n\n### Screenshot CLI\n\nCapture 3D canvas screenshots from a running dev server via `pnpm phoenix screenshot`.\n\n**Prerequisites:**\n1. `phoenix dev` must be running (starts the WebSocket server on port 3020)\n2. Configurator must be open in a browser (the browser does the actual rendering)\n\n**Options:**\n- `--output, -o` \u2014 Output file path (default: `./screenshot.png`)\n- `--width, -w` \u2014 Width in pixels (default: 1920)\n- `--height` \u2014 Height in pixels (default: 1080)\n- `--format, -f` \u2014 Image format: PNG or JPEG (default: PNG)\n- `--port` \u2014 WebSocket server port (default: 3020)\n\n**Example workflow:**\n1. Start dev server: `pnpm phoenix dev`\n2. Open configurator in browser (or via Playwright MCP)\n3. Take screenshot: `pnpm phoenix screenshot -o ./render.png -w 2560 --height 1440`\n\n**Use cases:** visual regression testing, generating product images, debugging 3D renders\n\n### Inspect: State\n\nGet the current editor runtime state as JSON via `pnpm phoenix inspect:state`.\n\n**Prerequisites:** same as screenshot (dev server running + browser open)\n\n**Options:**\n- `--output, -o` \u2014 Output file path (prints to stdout if omitted)\n- `--sections, -s` \u2014 Comma-separated: entities, navigation, validation (default: all)\n- `--pretty` \u2014 Pretty-print JSON (default: true)\n- `--port` \u2014 WebSocket server port (default: 3020)\n\n**Example:** `pnpm phoenix inspect:state -o ./state.json -s entities,navigation`\n\n**Lifecycle status:** Always included in response. Shows which systems are ready:\n- `domainLoaded` \u2014 domain data loaded\n- `domainContextReady` \u2014 domain context initialized (entities available)\n- `configuratorReady` \u2014 3D configurator initialized\n- `sessionAuthenticated` \u2014 session service active\n- `editorMode` \u2014 editor mode enabled\n\n**Tips:** Use `--sections` to limit payload size. Pipe through `head`/`tail` for partial output (e.g., `pnpm phoenix inspect:state | head -50`).\n\n**Use cases:** AI agent context, debugging entity state, inspecting navigation/validation\n\n### Inspect: Data\n\nGet the current editor context data as JSON via `pnpm phoenix inspect:data`.\n\n**Prerequisites:** same as screenshot (dev server running + browser open)\n\n**Options:**\n- `--output, -o` \u2014 Output file path (prints to stdout if omitted)\n- `--pretty` \u2014 Pretty-print JSON (default: true)\n- `--port` \u2014 WebSocket server port (default: 3020)\n\n**Returns:** publishedData, frontendData, backendData, sessionData, accessData, webComponentProperties\n\n**Example:** `pnpm phoenix inspect:data -o ./data.json`\n\n**Tips:** Pipe through `head`/`tail` for partial output (e.g., `pnpm phoenix inspect:data | head -30`).\n\n**Use cases:** AI agent context, debugging published/session/access data\n\n### Inspect: Scene\n\nGet the current Three.js scene graph as JSON via `pnpm phoenix inspect:scene`.\n\n**Prerequisites:** same as screenshot (dev server running + browser open)\n\n**Options:**\n- `--output, -o` \u2014 Output file path (prints to stdout if omitted)\n- `--pretty` \u2014 Pretty-print JSON (default: true)\n- `--port` \u2014 WebSocket server port (default: 3020)\n\n**Returns:** Recursive scene tree with per-node: name, type, visible, position, rotation, scale, userData (entityId), and for meshes: geometry name, bounding box, material properties (color, metalness, roughness, opacity, textures), morph target influences. Lights include color, intensity, and type-specific properties.\n\n**Example:** `pnpm phoenix inspect:scene -o ./scene.json`\n\n**Tips:** Scene graphs can be large. Pipe through `head`/`tail` for partial output.\n\n**Use cases:** AI agent context, debugging 3D scene layout, inspecting materials and lighting\n\n### Key Docs\n- `docs/phoenix/getting-started.mdx` \u2014 Setup, prerequisites, first project\n- `docs/phoenix/quickstart.mdx` \u2014 End-to-end tutorial building a configurator\n- `docs/phoenix/domain-model.mdx` \u2014 Entities, attributes, relations, specs\n- `docs/phoenix/components.mdx` \u2014 ECS pattern, YAML components, custom components\n- `docs/phoenix/project-structure.mdx` \u2014 Files, folders, conventions\n- `docs/phoenix/best-practices.mdx` \u2014 YAML-first, code patterns, common pitfalls\n- `docs/phoenix/state-management.mdx` \u2014 Reactive state, RxJS pipelines, data flow\n- `docs/phoenix/expression-context.mdx` \u2014 Expression API, context object, helpers\n- `docs/phoenix/webhooks.mdx` \u2014 Server-side finalization workflows\n- `docs/phoenix/finalization.mdx` \u2014 Finalization system, PDF/email/CSV generation\n- `docs/phoenix/migrations.mdx` \u2014 Schema versioning, migration files\n\n### Agent Workflow\n1. Find relevant docs by content: `pnpm phoenix docs -s \"camera\"`\n2. Read matching doc: `pnpm phoenix docs -r docs/3d-scene/cameras/transitions.mdx`\n3. Search within a doc: `pnpm phoenix docs -r <path> | grep \"example\"`\n4. Search titles only as a fallback: `pnpm phoenix docs -l | grep \"camera\"`\n5. Search generated files directly when needed: `grep -rn \"camera\" \"$(pnpm phoenix docs --dir)\"`\n6. Browse a topic area: `pnpm phoenix docs -c \"Layouts\"`\n\n### Playwright MCP Setup (for AI agents)\n\nTo interact with the 3D configurator in a browser, Playwright MCP needs GPU-enabled flags for WebGL rendering. Add to `~/.claude/.mcp.json`:\n\n```json\n{\n \"mcpServers\": {\n \"playwright\": {\n \"command\": \"npx\",\n \"args\": [\n \"@playwright/mcp@latest\",\n \"--headed\",\n \"--launch-options\",\n \"{\\\"args\\\":[\\\"--use-gl=swiftshader\\\",\\\"--enable-webgl\\\",\\\"--ignore-gpu-blocklist\\\"]}\"\n ]\n }\n }\n}\n```\n\nKey flags:\n- `--headed` \u2014 visible browser (required for GPU rendering)\n- `--use-gl=swiftshader` \u2014 software GPU fallback for environments without a physical GPU\n- `--enable-webgl` + `--ignore-gpu-blocklist` \u2014 ensure WebGL is available\n[PHOENIX-SDK-END]\n";
|