diff --git a/.changeset/adm-6-binding-authoring.md b/.changeset/adm-6-binding-authoring.md new file mode 100644 index 00000000..5a2b1f25 --- /dev/null +++ b/.changeset/adm-6-binding-authoring.md @@ -0,0 +1,5 @@ +--- +'@ankhorage/studio': minor +--- + +Restore contextual component binding authoring with ZORA-owned bindable metadata, canonical manifest data bindings, uniform external/generated operation selection, schema-aware response paths, event payload input mapping, and binding diagnostics while keeping execution in Runtime. diff --git a/README.md b/README.md index c500adc9..f9eb72f0 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ # @ankhorage/studio -![license: MIT](././paradox/badges/license.svg) ![npm: v0.12.0](././paradox/badges/npm.svg) ![runtime: bun](././paradox/badges/runtime.svg) ![typescript: strict](././paradox/badges/typescript.svg) ![eslint: checked](././paradox/badges/eslint.svg) ![prettier: checked](././paradox/badges/prettier.svg) ![build: checked](././paradox/badges/build.svg) ![tests: checked](././paradox/badges/tests.svg) ![docs: paradox](././paradox/badges/docs.svg) +![license: MIT](././paradox/badges/license.svg) ![npm: v0.13.0](././paradox/badges/npm.svg) ![runtime: bun](././paradox/badges/runtime.svg) ![typescript: strict](././paradox/badges/typescript.svg) ![eslint: checked](././paradox/badges/eslint.svg) ![prettier: checked](././paradox/badges/prettier.svg) ![build: checked](././paradox/badges/build.svg) ![tests: checked](././paradox/badges/tests.svg) ![docs: paradox](././paradox/badges/docs.svg) Standalone Studio authoring package for Ankhorage apps. @@ -30,12 +30,20 @@ Manage Studio development and projects through the Ankh CLI. - [Module relationships](././paradox/diagrams/module-relationships.mmd) - [Export graph](././paradox/diagrams/export-graph.mmd) - [addNodeToTree sequence](././paradox/diagrams/sequences/add-node-to-tree.mmd) +- [appendStudioEventBinding sequence](././paradox/diagrams/sequences/append-studio-event-binding.mmd) +- [assessStudioBindingCompatibility sequence](././paradox/diagrams/sequences/assess-studio-binding-compatibility.mmd) - [buildInsertCatalogEntries sequence](././paradox/diagrams/sequences/build-insert-catalog-entries.mmd) - [cloneWithNewIds sequence](././paradox/diagrams/sequences/clone-with-new-ids.mmd) +- [collectStudioResponsePaths sequence](././paradox/diagrams/sequences/collect-studio-response-paths.mmd) - [createNodeFromCatalogEntry sequence](././paradox/diagrams/sequences/create-node-from-catalog-entry.mmd) +- [diagnoseStudioComponentBindings sequence](././paradox/diagrams/sequences/diagnose-studio-component-bindings.mmd) - [findNodeById sequence](././paradox/diagrams/sequences/find-node-by-id.mmd) +- [removeStudioEventBinding sequence](././paradox/diagrams/sequences/remove-studio-event-binding.mmd) +- [removeStudioPropBinding sequence](././paradox/diagrams/sequences/remove-studio-prop-binding.mmd) - [resolveStudioInstancePropertyGroups sequence](././paradox/diagrams/sequences/resolve-studio-instance-property-groups.mmd) +- [resolveStudioSchemaValueMeta sequence](././paradox/diagrams/sequences/resolve-studio-schema-value-meta.mmd) - [updateNodeInTree sequence](././paradox/diagrams/sequences/update-node-in-tree.mmd) +- [upsertStudioPropBinding sequence](././paradox/diagrams/sequences/upsert-studio-prop-binding.mmd) - [validateInsertRecipe sequence](././paradox/diagrams/sequences/validate-insert-recipe.mmd) - [validateNodePlacement sequence](././paradox/diagrams/sequences/validate-node-placement.mmd) - [validateProjectCreationInput sequence](././paradox/diagrams/sequences/validate-project-creation-input.mmd) diff --git a/docs/binding-authoring.md b/docs/binding-authoring.md new file mode 100644 index 00000000..d4a4391a --- /dev/null +++ b/docs/binding-authoring.md @@ -0,0 +1,27 @@ +# Binding authoring + +Studio exposes one contextual binding surface at `/ankh/bindings/:nodeId`. It is opened from the selected component through the Studio AppBar and is intentionally separate from the Properties editor. + +## Ownership + +Studio owns authoring UX and manifest mutation only. Canonical binding shapes come from `@ankhorage/contracts`, bindable component props/events and event payload metadata come from ZORA, and binding execution remains in `@ankhorage/runtime`. + +Studio does not maintain a second endpoint registry, event schema registry, or binding executor. + +## Property/data bindings + +The editor only exposes properties declared in `ZORA_BINDABLE_COMPONENT_META`. Authored bindings persist in `manifest.dataBindings` and support the canonical literal, state, context, and operation-result sources. + +Operation-result bindings enumerate normalized `manifest.dataSources` uniformly, so external and generated APIs use the same authoring path. Response paths are derived from canonical operation response schemas and compared against ZORA bindable value metadata. + +## Event/action bindings + +The editor only exposes events declared by ZORA binding metadata. Events can target canonical actions or canonical data-source operations. + +Known event payload fields are surfaced from ZORA. Action payload fields come from Studio's existing action authoring metadata, while operation request inputs come from canonical operation request schemas. Inputs can use literal values or event payload paths, including nested paths beneath object/record payload fields. + +## Diagnostics + +Studio resolves operation references against the same normalized operation catalog used by the authoring selectors. Missing operation references, response paths, required operation inputs, incompatible response/input values, unknown bindable props/events, and unavailable actions are surfaced as authoring diagnostics. + +Diagnostics never execute operations and do not reproduce Runtime execution logic. Runtime remains the only execution owner. diff --git a/package.json b/package.json index ff7a2ec6..553506cc 100644 --- a/package.json +++ b/package.json @@ -140,6 +140,10 @@ "types": "./dist/manifestState.d.ts", "import": "./dist/manifestState.js" }, + "./bindingAuthoringModel": { + "types": "./dist/bindingAuthoringModel.d.ts", + "import": "./dist/bindingAuthoringModel.js" + }, "./propertiesAuthoringModel": { "types": "./dist/propertiesAuthoringModel.d.ts", "import": "./dist/propertiesAuthoringModel.js" diff --git a/paradox/badges/npm.svg b/paradox/badges/npm.svg index c2b062b5..16f0aa77 100644 --- a/paradox/badges/npm.svg +++ b/paradox/badges/npm.svg @@ -1,7 +1,7 @@ - -npm: v0.12.0 + +npm: v0.13.0 npm -v0.12.0 +v0.13.0 diff --git a/paradox/diagrams/architecture-overview.mmd b/paradox/diagrams/architecture-overview.mmd index 40b2699d..7140244f 100644 --- a/paradox/diagrams/architecture-overview.mmd +++ b/paradox/diagrams/architecture-overview.mmd @@ -75,6 +75,38 @@ graph TD module_src_authSettings_test_ts --> module_src_authSettings_ts module_src_authSettings_ts["src/authSettings.ts"] package__ankhorage_studio -.-> module_src_authSettings_ts + module_src_bindingAuthoringContracts_ts["src/bindingAuthoringContracts.ts"] + package__ankhorage_studio -.-> module_src_bindingAuthoringContracts_ts + module_src_bindingAuthoringModel_test_ts["src/bindingAuthoringModel.test.ts"] + package__ankhorage_studio -.-> module_src_bindingAuthoringModel_test_ts + module_src_bindingAuthoringModel_test_ts --> module_src_bindingAuthoringModel_ts + module_src_bindingAuthoringModel_ts["src/bindingAuthoringModel.ts"] + package__ankhorage_studio -.-> module_src_bindingAuthoringModel_ts + module_src_bindingDiagnosticsModel_ts["src/bindingDiagnosticsModel.ts"] + package__ankhorage_studio -.-> module_src_bindingDiagnosticsModel_ts + module_src_bindingDiagnosticsModel_ts --> module_src_bindingAuthoringContracts_ts + module_src_bindingDiagnosticsModel_ts --> module_src_bindingOperationModel_ts + module_src_bindingDiagnosticsModel_ts --> module_src_bindingSchemaModel_ts + module_src_bindingManifestPersistence_test_ts["src/bindingManifestPersistence.test.ts"] + package__ankhorage_studio -.-> module_src_bindingManifestPersistence_test_ts + module_src_bindingManifestPersistence_test_ts --> module_src_core_studioManifestDraftModel_ts + module_src_bindingManifestPersistence_test_ts --> module_src_index_ts + module_src_bindingManifestPersistence_test_ts --> module_src_manifestSync_ts + module_src_bindingMetadataModel_ts["src/bindingMetadataModel.ts"] + package__ankhorage_studio -.-> module_src_bindingMetadataModel_ts + module_src_bindingMetadataModel_ts --> module_src_bindingAuthoringContracts_ts + module_src_bindingMutationAcceptance_test_ts["src/bindingMutationAcceptance.test.ts"] + package__ankhorage_studio -.-> module_src_bindingMutationAcceptance_test_ts + module_src_bindingMutationAcceptance_test_ts --> module_src_bindingAuthoringModel_ts + module_src_bindingMutationModel_ts["src/bindingMutationModel.ts"] + package__ankhorage_studio -.-> module_src_bindingMutationModel_ts + module_src_bindingOperationModel_ts["src/bindingOperationModel.ts"] + package__ankhorage_studio -.-> module_src_bindingOperationModel_ts + module_src_bindingOperationModel_ts --> module_src_bindingAuthoringContracts_ts + module_src_bindingOperationModel_ts --> module_src_bindingSchemaModel_ts + module_src_bindingSchemaModel_ts["src/bindingSchemaModel.ts"] + package__ankhorage_studio -.-> module_src_bindingSchemaModel_ts + module_src_bindingSchemaModel_ts --> module_src_bindingAuthoringContracts_ts module_src_canvasDragModel_public_test_ts["src/canvasDragModel.public.test.ts"] package__ankhorage_studio -.-> module_src_canvasDragModel_public_test_ts module_src_canvasDragModel_public_test_ts --> module_src_canvasDragModel_ts @@ -847,6 +879,7 @@ graph TD module_src_ui_admin_AnkhAdminPage_tsx --> module_src_studioAdminRouteModel_ts module_src_ui_admin_AnkhAdminPage_tsx --> module_src_ui_admin_pages_ApisAdminPage_tsx module_src_ui_admin_AnkhAdminPage_tsx --> module_src_ui_admin_pages_AuthAdminPage_tsx + module_src_ui_admin_AnkhAdminPage_tsx --> module_src_ui_admin_pages_BindingsAdminPage_tsx module_src_ui_admin_AnkhAdminPage_tsx --> module_src_ui_admin_pages_OverviewAdminPage_tsx module_src_ui_admin_AnkhAdminPage_tsx --> module_src_ui_admin_pages_PropertiesAdminPage_tsx module_src_ui_admin_AnkhAdminPage_tsx --> module_src_ui_admin_pages_SecretsAdminPage_tsx @@ -926,6 +959,48 @@ graph TD module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_ui_admin_pages_adminAuthCredentialFlow_ts module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_ui_admin_pages_adminAuthHealthFlow_ts module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_ui_admin_pages_adminAuthSessionModel_ts + module_src_ui_admin_pages_bindings_bindingAdminStyles_ts["src/ui/admin/pages/bindings/bindingAdminStyles.ts"] + package__ankhorage_studio -.-> module_src_ui_admin_pages_bindings_bindingAdminStyles_ts + module_src_ui_admin_pages_bindings_BindingDiagnosticsCard_tsx["src/ui/admin/pages/bindings/BindingDiagnosticsCard.tsx"] + package__ankhorage_studio -.-> module_src_ui_admin_pages_bindings_BindingDiagnosticsCard_tsx + module_src_ui_admin_pages_bindings_BindingDiagnosticsCard_tsx --> module_src_bindingAuthoringModel_ts + module_src_ui_admin_pages_bindings_BindingDiagnosticsCard_tsx --> module_src_ui_admin_pages_bindings_bindingAdminStyles_ts + module_src_ui_admin_pages_bindings_bindingEditorModel_ts["src/ui/admin/pages/bindings/bindingEditorModel.ts"] + package__ankhorage_studio -.-> module_src_ui_admin_pages_bindings_bindingEditorModel_ts + module_src_ui_admin_pages_bindings_bindingEditorModel_ts --> module_src_bindingAuthoringModel_ts + module_src_ui_admin_pages_bindings_EventBindingComposer_tsx["src/ui/admin/pages/bindings/EventBindingComposer.tsx"] + package__ankhorage_studio -.-> module_src_ui_admin_pages_bindings_EventBindingComposer_tsx + module_src_ui_admin_pages_bindings_EventBindingComposer_tsx --> module_src_bindingAuthoringModel_ts + module_src_ui_admin_pages_bindings_EventBindingComposer_tsx --> module_src_index_ts + module_src_ui_admin_pages_bindings_EventBindingComposer_tsx --> module_src_ui_admin_adminPagePrimitives_tsx + module_src_ui_admin_pages_bindings_EventBindingComposer_tsx --> module_src_ui_admin_pages_bindings_bindingAdminStyles_ts + module_src_ui_admin_pages_bindings_EventBindingComposer_tsx --> module_src_ui_admin_pages_bindings_bindingEditorModel_ts + module_src_ui_admin_pages_bindings_EventBindingsCard_tsx["src/ui/admin/pages/bindings/EventBindingsCard.tsx"] + package__ankhorage_studio -.-> module_src_ui_admin_pages_bindings_EventBindingsCard_tsx + module_src_ui_admin_pages_bindings_EventBindingsCard_tsx --> module_src_bindingAuthoringModel_ts + module_src_ui_admin_pages_bindings_EventBindingsCard_tsx --> module_src_ui_admin_pages_bindings_bindingAdminStyles_ts + module_src_ui_admin_pages_bindings_EventBindingsCard_tsx --> module_src_ui_admin_pages_bindings_EventBindingComposer_tsx + module_src_ui_admin_pages_bindings_PropertyBindingEditor_tsx["src/ui/admin/pages/bindings/PropertyBindingEditor.tsx"] + package__ankhorage_studio -.-> module_src_ui_admin_pages_bindings_PropertyBindingEditor_tsx + module_src_ui_admin_pages_bindings_PropertyBindingEditor_tsx --> module_src_bindingAuthoringModel_ts + module_src_ui_admin_pages_bindings_PropertyBindingEditor_tsx --> module_src_ui_admin_adminPagePrimitives_tsx + module_src_ui_admin_pages_bindings_PropertyBindingEditor_tsx --> module_src_ui_admin_pages_bindings_bindingAdminStyles_ts + module_src_ui_admin_pages_bindings_PropertyBindingEditor_tsx --> module_src_ui_admin_pages_bindings_bindingEditorModel_ts + module_src_ui_admin_pages_bindings_PropertyBindingsCard_tsx["src/ui/admin/pages/bindings/PropertyBindingsCard.tsx"] + package__ankhorage_studio -.-> module_src_ui_admin_pages_bindings_PropertyBindingsCard_tsx + module_src_ui_admin_pages_bindings_PropertyBindingsCard_tsx --> module_src_bindingAuthoringModel_ts + module_src_ui_admin_pages_bindings_PropertyBindingsCard_tsx --> module_src_ui_admin_pages_bindings_bindingAdminStyles_ts + module_src_ui_admin_pages_bindings_PropertyBindingsCard_tsx --> module_src_ui_admin_pages_bindings_PropertyBindingEditor_tsx + module_src_ui_admin_pages_BindingsAdminPage_tsx["src/ui/admin/pages/BindingsAdminPage.tsx"] + package__ankhorage_studio -.-> module_src_ui_admin_pages_BindingsAdminPage_tsx + module_src_ui_admin_pages_BindingsAdminPage_tsx --> module_src_bindingAuthoringModel_ts + module_src_ui_admin_pages_BindingsAdminPage_tsx --> module_src_core_StudioContext_ts + module_src_ui_admin_pages_BindingsAdminPage_tsx --> module_src_index_ts + module_src_ui_admin_pages_BindingsAdminPage_tsx --> module_src_manifestState_ts + module_src_ui_admin_pages_BindingsAdminPage_tsx --> module_src_ui_admin_adminPagePrimitives_tsx + module_src_ui_admin_pages_BindingsAdminPage_tsx --> module_src_ui_admin_pages_bindings_BindingDiagnosticsCard_tsx + module_src_ui_admin_pages_BindingsAdminPage_tsx --> module_src_ui_admin_pages_bindings_EventBindingsCard_tsx + module_src_ui_admin_pages_BindingsAdminPage_tsx --> module_src_ui_admin_pages_bindings_PropertyBindingsCard_tsx module_src_ui_admin_pages_DataSourceCatalogCard_tsx["src/ui/admin/pages/DataSourceCatalogCard.tsx"] package__ankhorage_studio -.-> module_src_ui_admin_pages_DataSourceCatalogCard_tsx module_src_ui_admin_pages_DataSourceCatalogCard_tsx --> module_src_ui_admin_pages_ExternalApiAdminPrimitives_tsx diff --git a/paradox/diagrams/export-graph.mmd b/paradox/diagrams/export-graph.mmd index 87e725f6..ad2820bb 100644 --- a/paradox/diagrams/export-graph.mmd +++ b/paradox/diagrams/export-graph.mmd @@ -20,6 +20,16 @@ graph LR module_src_authFlowContract_test_ts["src/authFlowContract.test.ts"] module_src_authSettings_test_ts["src/authSettings.test.ts"] module_src_authSettings_ts["src/authSettings.ts"] + module_src_bindingAuthoringContracts_ts["src/bindingAuthoringContracts.ts"] + module_src_bindingAuthoringModel_test_ts["src/bindingAuthoringModel.test.ts"] + module_src_bindingAuthoringModel_ts["src/bindingAuthoringModel.ts"] + module_src_bindingDiagnosticsModel_ts["src/bindingDiagnosticsModel.ts"] + module_src_bindingManifestPersistence_test_ts["src/bindingManifestPersistence.test.ts"] + module_src_bindingMetadataModel_ts["src/bindingMetadataModel.ts"] + module_src_bindingMutationAcceptance_test_ts["src/bindingMutationAcceptance.test.ts"] + module_src_bindingMutationModel_ts["src/bindingMutationModel.ts"] + module_src_bindingOperationModel_ts["src/bindingOperationModel.ts"] + module_src_bindingSchemaModel_ts["src/bindingSchemaModel.ts"] module_src_canvasDragModel_public_test_ts["src/canvasDragModel.public.test.ts"] module_src_canvasDragModel_test_ts["src/canvasDragModel.test.ts"] module_src_canvasDragModel_ts["src/canvasDragModel.ts"] @@ -261,6 +271,14 @@ graph LR module_src_ui_admin_pages_ApisAdminPage_tsx["src/ui/admin/pages/ApisAdminPage.tsx"] module_src_ui_admin_pages_AuthAdminPage_test_ts["src/ui/admin/pages/AuthAdminPage.test.ts"] module_src_ui_admin_pages_AuthAdminPage_tsx["src/ui/admin/pages/AuthAdminPage.tsx"] + module_src_ui_admin_pages_bindings_bindingAdminStyles_ts["src/ui/admin/pages/bindings/bindingAdminStyles.ts"] + module_src_ui_admin_pages_bindings_BindingDiagnosticsCard_tsx["src/ui/admin/pages/bindings/BindingDiagnosticsCard.tsx"] + module_src_ui_admin_pages_bindings_bindingEditorModel_ts["src/ui/admin/pages/bindings/bindingEditorModel.ts"] + module_src_ui_admin_pages_bindings_EventBindingComposer_tsx["src/ui/admin/pages/bindings/EventBindingComposer.tsx"] + module_src_ui_admin_pages_bindings_EventBindingsCard_tsx["src/ui/admin/pages/bindings/EventBindingsCard.tsx"] + module_src_ui_admin_pages_bindings_PropertyBindingEditor_tsx["src/ui/admin/pages/bindings/PropertyBindingEditor.tsx"] + module_src_ui_admin_pages_bindings_PropertyBindingsCard_tsx["src/ui/admin/pages/bindings/PropertyBindingsCard.tsx"] + module_src_ui_admin_pages_BindingsAdminPage_tsx["src/ui/admin/pages/BindingsAdminPage.tsx"] module_src_ui_admin_pages_DataSourceCatalogCard_tsx["src/ui/admin/pages/DataSourceCatalogCard.tsx"] module_src_ui_admin_pages_DataSourceOperationsCard_tsx["src/ui/admin/pages/DataSourceOperationsCard.tsx"] module_src_ui_admin_pages_ExternalApiAdminPrimitives_tsx["src/ui/admin/pages/ExternalApiAdminPrimitives.tsx"] @@ -299,6 +317,11 @@ graph LR export_addNodeToTree["addNodeToTree"] module_src_index_ts --> export_addNodeToTree export_addNodeToTree -.-> export_StudioComponentMetaRegistry + export_appendStudioEventBinding["appendStudioEventBinding"] + module_src_bindingMutationModel_ts --> export_appendStudioEventBinding + export_assessStudioBindingCompatibility["assessStudioBindingCompatibility"] + module_src_bindingSchemaModel_ts --> export_assessStudioBindingCompatibility + export_assessStudioBindingCompatibility -.-> export_StudioBindingCompatibility export_buildInsertCatalogEntries["buildInsertCatalogEntries"] module_src_index_ts --> export_buildInsertCatalogEntries export_buildInsertCatalogEntries -.-> export_InsertCatalogEntry @@ -310,18 +333,34 @@ graph LR export_cloneWithNewIds["cloneWithNewIds"] module_src_index_ts --> export_cloneWithNewIds export_cloneWithNewIds -.-> export_StudioIdGenerator + export_collectStudioBindingOperationOptions["collectStudioBindingOperationOptions"] + module_src_bindingOperationModel_ts --> export_collectStudioBindingOperationOptions + export_collectStudioBindingOperationOptions -.-> export_StudioBindingOperationOption + export_collectStudioResponsePaths["collectStudioResponsePaths"] + module_src_bindingSchemaModel_ts --> export_collectStudioResponsePaths + export_collectStudioResponsePaths -.-> export_StudioBindingResponsePathOption export_createNodeFromCatalogEntry["createNodeFromCatalogEntry"] module_src_index_ts --> export_createNodeFromCatalogEntry export_createNodeFromCatalogEntry -.-> export_InsertCatalogEntry export_createNodeFromCatalogEntry -.-> export_StudioComponentMetaRegistry export_createNodeFromCatalogEntry -.-> export_StudioIdGenerator + export_createStudioActionInputFields["createStudioActionInputFields"] + module_src_bindingOperationModel_ts --> export_createStudioActionInputFields + export_createStudioActionInputFields -.-> export_StudioBindingInputFieldOption export_createStudioInstancePropertyPatch["createStudioInstancePropertyPatch"] module_src_propertiesAuthoringModel_ts --> export_createStudioInstancePropertyPatch export_createStudioInstancePropertyPatch -.-> export_StudioInstancePropertyValue export_deriveProjectId["deriveProjectId"] module_src_projectIdentity_ts --> export_deriveProjectId + export_diagnoseStudioComponentBindings["diagnoseStudioComponentBindings"] + module_src_bindingDiagnosticsModel_ts --> export_diagnoseStudioComponentBindings + export_diagnoseStudioComponentBindings -.-> export_StudioBindingDiagnostic + export_diagnoseStudioComponentBindings -.-> export_StudioBindingOperationOption export_findNodeById["findNodeById"] module_src_index_ts --> export_findNodeById + export_findStudioBindingOperationOption["findStudioBindingOperationOption"] + module_src_bindingOperationModel_ts --> export_findStudioBindingOperationOption + export_findStudioBindingOperationOption -.-> export_StudioBindingOperationOption export_generateStudioId["generateStudioId"] module_src_index_ts --> export_generateStudioId export_getInsertCatalogCategoryLabel["getInsertCatalogCategoryLabel"] @@ -438,6 +477,10 @@ graph LR module_src_projectWorkspaceContracts_ts --> export_ProjectSortKey export_removeNodeFromTree["removeNodeFromTree"] module_src_index_ts --> export_removeNodeFromTree + export_removeStudioEventBinding["removeStudioEventBinding"] + module_src_bindingMutationModel_ts --> export_removeStudioEventBinding + export_removeStudioPropBinding["removeStudioPropBinding"] + module_src_bindingMutationModel_ts --> export_removeStudioPropBinding export_resolveDefaultInsertPlacement["resolveDefaultInsertPlacement"] module_src_index_ts --> export_resolveDefaultInsertPlacement export_resolveDefaultInsertPlacement -.-> export_PlacementResolutionResult @@ -451,6 +494,12 @@ graph LR export_resolveInsertPlacement -.-> export_PlacementKind export_resolveInsertPlacement -.-> export_PlacementResolutionResult export_resolveInsertPlacement -.-> export_StudioComponentMetaRegistry + export_resolveStudioBindableEvents["resolveStudioBindableEvents"] + module_src_bindingMetadataModel_ts --> export_resolveStudioBindableEvents + export_resolveStudioBindableEvents -.-> export_StudioBindableEventOption + export_resolveStudioBindableProps["resolveStudioBindableProps"] + module_src_bindingMetadataModel_ts --> export_resolveStudioBindableProps + export_resolveStudioBindableProps -.-> export_StudioBindablePropOption export_resolveStudioInstancePropertyFields["resolveStudioInstancePropertyFields"] module_src_propertiesAuthoringModel_ts --> export_resolveStudioInstancePropertyFields export_resolveStudioInstancePropertyFields -.-> export_StudioAuthoringComponentMeta @@ -459,6 +508,8 @@ graph LR module_src_propertiesAuthoringModel_ts --> export_resolveStudioInstancePropertyGroups export_resolveStudioInstancePropertyGroups -.-> export_StudioAuthoringComponentMeta export_resolveStudioInstancePropertyGroups -.-> export_StudioInstancePropertyGroup + export_resolveStudioSchemaValueMeta["resolveStudioSchemaValueMeta"] + module_src_bindingSchemaModel_ts --> export_resolveStudioSchemaValueMeta export_STUDIO_INSERT_RECIPES["STUDIO_INSERT_RECIPES"] module_src_index_ts --> export_STUDIO_INSERT_RECIPES export_STUDIO_PACKAGE_BOUNDARY["STUDIO_PACKAGE_BOUNDARY"] @@ -487,6 +538,22 @@ graph LR module_src_propertiesAuthoringModel_ts --> export_StudioAuthoringMetaRegistry export_StudioAuthoringPropSchema["StudioAuthoringPropSchema"] module_src_propertiesAuthoringModel_ts --> export_StudioAuthoringPropSchema + export_StudioBindableEventOption["StudioBindableEventOption"] + module_src_bindingAuthoringContracts_ts --> export_StudioBindableEventOption + export_StudioBindablePropOption["StudioBindablePropOption"] + module_src_bindingAuthoringContracts_ts --> export_StudioBindablePropOption + export_StudioBindingCompatibility["StudioBindingCompatibility"] + module_src_bindingAuthoringContracts_ts --> export_StudioBindingCompatibility + export_StudioBindingDiagnostic["StudioBindingDiagnostic"] + module_src_bindingAuthoringContracts_ts --> export_StudioBindingDiagnostic + export_StudioBindingInputFieldOption["StudioBindingInputFieldOption"] + module_src_bindingAuthoringContracts_ts --> export_StudioBindingInputFieldOption + export_StudioBindingOperationOption["StudioBindingOperationOption"] + module_src_bindingAuthoringContracts_ts --> export_StudioBindingOperationOption + export_StudioBindingOperationOption -.-> export_StudioBindingInputFieldOption + export_StudioBindingOperationOption -.-> export_StudioBindingResponsePathOption + export_StudioBindingResponsePathOption["StudioBindingResponsePathOption"] + module_src_bindingAuthoringContracts_ts --> export_StudioBindingResponsePathOption export_StudioCommand["StudioCommand"] module_src_index_ts --> export_StudioCommand export_StudioComponentBlueprint["StudioComponentBlueprint"] @@ -574,6 +641,8 @@ graph LR module_src_index_ts --> export_TPL_SCREEN_EMPTY export_updateNodeInTree["updateNodeInTree"] module_src_index_ts --> export_updateNodeInTree + export_upsertStudioPropBinding["upsertStudioPropBinding"] + module_src_bindingMutationModel_ts --> export_upsertStudioPropBinding export_validateInsertRecipe["validateInsertRecipe"] module_src_index_ts --> export_validateInsertRecipe export_validateInsertRecipe -.-> export_InsertRecipe diff --git a/paradox/diagrams/module-relationships.mmd b/paradox/diagrams/module-relationships.mmd index d160d264..eaf03b5e 100644 --- a/paradox/diagrams/module-relationships.mmd +++ b/paradox/diagrams/module-relationships.mmd @@ -20,6 +20,16 @@ graph LR module_src_authFlowContract_test_ts["src/authFlowContract.test.ts"] module_src_authSettings_test_ts["src/authSettings.test.ts"] module_src_authSettings_ts["src/authSettings.ts"] + module_src_bindingAuthoringContracts_ts["src/bindingAuthoringContracts.ts"] + module_src_bindingAuthoringModel_test_ts["src/bindingAuthoringModel.test.ts"] + module_src_bindingAuthoringModel_ts["src/bindingAuthoringModel.ts"] + module_src_bindingDiagnosticsModel_ts["src/bindingDiagnosticsModel.ts"] + module_src_bindingManifestPersistence_test_ts["src/bindingManifestPersistence.test.ts"] + module_src_bindingMetadataModel_ts["src/bindingMetadataModel.ts"] + module_src_bindingMutationAcceptance_test_ts["src/bindingMutationAcceptance.test.ts"] + module_src_bindingMutationModel_ts["src/bindingMutationModel.ts"] + module_src_bindingOperationModel_ts["src/bindingOperationModel.ts"] + module_src_bindingSchemaModel_ts["src/bindingSchemaModel.ts"] module_src_canvasDragModel_public_test_ts["src/canvasDragModel.public.test.ts"] module_src_canvasDragModel_test_ts["src/canvasDragModel.test.ts"] module_src_canvasDragModel_ts["src/canvasDragModel.ts"] @@ -261,6 +271,14 @@ graph LR module_src_ui_admin_pages_ApisAdminPage_tsx["src/ui/admin/pages/ApisAdminPage.tsx"] module_src_ui_admin_pages_AuthAdminPage_test_ts["src/ui/admin/pages/AuthAdminPage.test.ts"] module_src_ui_admin_pages_AuthAdminPage_tsx["src/ui/admin/pages/AuthAdminPage.tsx"] + module_src_ui_admin_pages_bindings_bindingAdminStyles_ts["src/ui/admin/pages/bindings/bindingAdminStyles.ts"] + module_src_ui_admin_pages_bindings_BindingDiagnosticsCard_tsx["src/ui/admin/pages/bindings/BindingDiagnosticsCard.tsx"] + module_src_ui_admin_pages_bindings_bindingEditorModel_ts["src/ui/admin/pages/bindings/bindingEditorModel.ts"] + module_src_ui_admin_pages_bindings_EventBindingComposer_tsx["src/ui/admin/pages/bindings/EventBindingComposer.tsx"] + module_src_ui_admin_pages_bindings_EventBindingsCard_tsx["src/ui/admin/pages/bindings/EventBindingsCard.tsx"] + module_src_ui_admin_pages_bindings_PropertyBindingEditor_tsx["src/ui/admin/pages/bindings/PropertyBindingEditor.tsx"] + module_src_ui_admin_pages_bindings_PropertyBindingsCard_tsx["src/ui/admin/pages/bindings/PropertyBindingsCard.tsx"] + module_src_ui_admin_pages_BindingsAdminPage_tsx["src/ui/admin/pages/BindingsAdminPage.tsx"] module_src_ui_admin_pages_DataSourceCatalogCard_tsx["src/ui/admin/pages/DataSourceCatalogCard.tsx"] module_src_ui_admin_pages_DataSourceOperationsCard_tsx["src/ui/admin/pages/DataSourceOperationsCard.tsx"] module_src_ui_admin_pages_ExternalApiAdminPrimitives_tsx["src/ui/admin/pages/ExternalApiAdminPrimitives.tsx"] @@ -322,6 +340,18 @@ graph LR module_src_app_workspace_WorkspacePrimitives_tsx --> module_src_projectWorkspaceContracts_ts module_src_app_workspace_WorkspacePrimitives_tsx --> module_src_templateCatalogContracts_ts module_src_authSettings_test_ts --> module_src_authSettings_ts + module_src_bindingAuthoringModel_test_ts --> module_src_bindingAuthoringModel_ts + module_src_bindingDiagnosticsModel_ts --> module_src_bindingAuthoringContracts_ts + module_src_bindingDiagnosticsModel_ts --> module_src_bindingOperationModel_ts + module_src_bindingDiagnosticsModel_ts --> module_src_bindingSchemaModel_ts + module_src_bindingManifestPersistence_test_ts --> module_src_core_studioManifestDraftModel_ts + module_src_bindingManifestPersistence_test_ts --> module_src_index_ts + module_src_bindingManifestPersistence_test_ts --> module_src_manifestSync_ts + module_src_bindingMetadataModel_ts --> module_src_bindingAuthoringContracts_ts + module_src_bindingMutationAcceptance_test_ts --> module_src_bindingAuthoringModel_ts + module_src_bindingOperationModel_ts --> module_src_bindingAuthoringContracts_ts + module_src_bindingOperationModel_ts --> module_src_bindingSchemaModel_ts + module_src_bindingSchemaModel_ts --> module_src_bindingAuthoringContracts_ts module_src_canvasDragModel_public_test_ts --> module_src_canvasDragModel_ts module_src_canvasDragModel_public_test_ts --> module_src_canvasDropZones_ts module_src_canvasDragModel_test_ts --> module_src_canvasDragModel_ts @@ -649,6 +679,7 @@ graph LR module_src_ui_admin_AnkhAdminPage_tsx --> module_src_studioAdminRouteModel_ts module_src_ui_admin_AnkhAdminPage_tsx --> module_src_ui_admin_pages_ApisAdminPage_tsx module_src_ui_admin_AnkhAdminPage_tsx --> module_src_ui_admin_pages_AuthAdminPage_tsx + module_src_ui_admin_AnkhAdminPage_tsx --> module_src_ui_admin_pages_BindingsAdminPage_tsx module_src_ui_admin_AnkhAdminPage_tsx --> module_src_ui_admin_pages_OverviewAdminPage_tsx module_src_ui_admin_AnkhAdminPage_tsx --> module_src_ui_admin_pages_PropertiesAdminPage_tsx module_src_ui_admin_AnkhAdminPage_tsx --> module_src_ui_admin_pages_SecretsAdminPage_tsx @@ -692,6 +723,32 @@ graph LR module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_ui_admin_pages_adminAuthCredentialFlow_ts module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_ui_admin_pages_adminAuthHealthFlow_ts module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_ui_admin_pages_adminAuthSessionModel_ts + module_src_ui_admin_pages_bindings_BindingDiagnosticsCard_tsx --> module_src_bindingAuthoringModel_ts + module_src_ui_admin_pages_bindings_BindingDiagnosticsCard_tsx --> module_src_ui_admin_pages_bindings_bindingAdminStyles_ts + module_src_ui_admin_pages_bindings_bindingEditorModel_ts --> module_src_bindingAuthoringModel_ts + module_src_ui_admin_pages_bindings_EventBindingComposer_tsx --> module_src_bindingAuthoringModel_ts + module_src_ui_admin_pages_bindings_EventBindingComposer_tsx --> module_src_index_ts + module_src_ui_admin_pages_bindings_EventBindingComposer_tsx --> module_src_ui_admin_adminPagePrimitives_tsx + module_src_ui_admin_pages_bindings_EventBindingComposer_tsx --> module_src_ui_admin_pages_bindings_bindingAdminStyles_ts + module_src_ui_admin_pages_bindings_EventBindingComposer_tsx --> module_src_ui_admin_pages_bindings_bindingEditorModel_ts + module_src_ui_admin_pages_bindings_EventBindingsCard_tsx --> module_src_bindingAuthoringModel_ts + module_src_ui_admin_pages_bindings_EventBindingsCard_tsx --> module_src_ui_admin_pages_bindings_bindingAdminStyles_ts + module_src_ui_admin_pages_bindings_EventBindingsCard_tsx --> module_src_ui_admin_pages_bindings_EventBindingComposer_tsx + module_src_ui_admin_pages_bindings_PropertyBindingEditor_tsx --> module_src_bindingAuthoringModel_ts + module_src_ui_admin_pages_bindings_PropertyBindingEditor_tsx --> module_src_ui_admin_adminPagePrimitives_tsx + module_src_ui_admin_pages_bindings_PropertyBindingEditor_tsx --> module_src_ui_admin_pages_bindings_bindingAdminStyles_ts + module_src_ui_admin_pages_bindings_PropertyBindingEditor_tsx --> module_src_ui_admin_pages_bindings_bindingEditorModel_ts + module_src_ui_admin_pages_bindings_PropertyBindingsCard_tsx --> module_src_bindingAuthoringModel_ts + module_src_ui_admin_pages_bindings_PropertyBindingsCard_tsx --> module_src_ui_admin_pages_bindings_bindingAdminStyles_ts + module_src_ui_admin_pages_bindings_PropertyBindingsCard_tsx --> module_src_ui_admin_pages_bindings_PropertyBindingEditor_tsx + module_src_ui_admin_pages_BindingsAdminPage_tsx --> module_src_bindingAuthoringModel_ts + module_src_ui_admin_pages_BindingsAdminPage_tsx --> module_src_core_StudioContext_ts + module_src_ui_admin_pages_BindingsAdminPage_tsx --> module_src_index_ts + module_src_ui_admin_pages_BindingsAdminPage_tsx --> module_src_manifestState_ts + module_src_ui_admin_pages_BindingsAdminPage_tsx --> module_src_ui_admin_adminPagePrimitives_tsx + module_src_ui_admin_pages_BindingsAdminPage_tsx --> module_src_ui_admin_pages_bindings_BindingDiagnosticsCard_tsx + module_src_ui_admin_pages_BindingsAdminPage_tsx --> module_src_ui_admin_pages_bindings_EventBindingsCard_tsx + module_src_ui_admin_pages_BindingsAdminPage_tsx --> module_src_ui_admin_pages_bindings_PropertyBindingsCard_tsx module_src_ui_admin_pages_DataSourceCatalogCard_tsx --> module_src_ui_admin_pages_ExternalApiAdminPrimitives_tsx module_src_ui_admin_pages_DataSourceOperationsCard_tsx --> module_src_core_StudioContext_ts module_src_ui_admin_pages_DataSourceOperationsCard_tsx --> module_src_externalApiApi_ts diff --git a/paradox/diagrams/sequences/append-studio-event-binding.mmd b/paradox/diagrams/sequences/append-studio-event-binding.mmd new file mode 100644 index 00000000..1234d89e --- /dev/null +++ b/paradox/diagrams/sequences/append-studio-event-binding.mmd @@ -0,0 +1,8 @@ +sequenceDiagram + participant participant_appendStudioEventBinding as appendStudioEventBinding + participant participant_isEmptyBinding as isEmptyBinding + participant participant_writeBinding as writeBinding + participant_appendStudioEventBinding->>participant_writeBinding: writeBinding() + participant_writeBinding->>participant_isEmptyBinding: isEmptyBinding() + participant_isEmptyBinding-->>participant_writeBinding: return + participant_writeBinding-->>participant_appendStudioEventBinding: return diff --git a/paradox/diagrams/sequences/assess-studio-binding-compatibility.mmd b/paradox/diagrams/sequences/assess-studio-binding-compatibility.mmd new file mode 100644 index 00000000..3b45bb05 --- /dev/null +++ b/paradox/diagrams/sequences/assess-studio-binding-compatibility.mmd @@ -0,0 +1,10 @@ +sequenceDiagram + participant participant_assessStudioBindingCompatibility as assessStudioBindingCompatibility + participant participant_isImageAssetShape as isImageAssetShape + participant participant_isObjectLike as isObjectLike + participant_assessStudioBindingCompatibility->>participant_isObjectLike: isObjectLike() + participant_isObjectLike-->>participant_assessStudioBindingCompatibility: return + participant_assessStudioBindingCompatibility->>participant_isImageAssetShape: isImageAssetShape() + participant_isImageAssetShape->>participant_isObjectLike: isObjectLike() + participant_isObjectLike-->>participant_isImageAssetShape: return + participant_isImageAssetShape-->>participant_assessStudioBindingCompatibility: return diff --git a/paradox/diagrams/sequences/collect-studio-response-paths.mmd b/paradox/diagrams/sequences/collect-studio-response-paths.mmd new file mode 100644 index 00000000..274d54df --- /dev/null +++ b/paradox/diagrams/sequences/collect-studio-response-paths.mmd @@ -0,0 +1,30 @@ +sequenceDiagram + participant participant_collectObjectPaths as collectObjectPaths + participant participant_collectStudioResponsePaths as collectStudioResponsePaths + participant participant_resolveSchemaFields as resolveSchemaFields + participant participant_resolveSchemaRef as resolveSchemaRef + participant participant_resolveSchemaType as resolveSchemaType + participant participant_resolveSingleSchemaType as resolveSingleSchemaType + participant participant_resolveStudioSchemaValueMeta as resolveStudioSchemaValueMeta + participant_collectStudioResponsePaths->>participant_resolveStudioSchemaValueMeta: resolveStudioSchemaValueMeta() + participant_resolveStudioSchemaValueMeta->>participant_resolveSchemaRef: resolveSchemaRef() + participant_resolveSchemaRef->>participant_resolveSchemaRef: resolveSchemaRef() + participant_resolveSchemaRef-->>participant_resolveSchemaRef: return + participant_resolveSchemaRef-->>participant_resolveStudioSchemaValueMeta: return + participant_resolveStudioSchemaValueMeta->>participant_resolveSchemaType: resolveSchemaType() + participant_resolveSchemaType->>participant_resolveSingleSchemaType: resolveSingleSchemaType() + participant_resolveSingleSchemaType-->>participant_resolveSchemaType: return + participant_resolveSchemaType-->>participant_resolveStudioSchemaValueMeta: return + participant_resolveStudioSchemaValueMeta->>participant_resolveSchemaFields: resolveSchemaFields() + participant_resolveSchemaFields-->>participant_resolveStudioSchemaValueMeta: return + participant_resolveStudioSchemaValueMeta->>participant_resolveStudioSchemaValueMeta: resolveStudioSchemaValueMeta() + participant_resolveStudioSchemaValueMeta-->>participant_resolveStudioSchemaValueMeta: return + participant_resolveStudioSchemaValueMeta-->>participant_collectStudioResponsePaths: return + participant_collectStudioResponsePaths->>participant_collectObjectPaths: collectObjectPaths() + participant_collectObjectPaths->>participant_resolveSchemaRef: resolveSchemaRef() + participant_resolveSchemaRef-->>participant_collectObjectPaths: return + participant_collectObjectPaths->>participant_resolveStudioSchemaValueMeta: resolveStudioSchemaValueMeta() + participant_resolveStudioSchemaValueMeta-->>participant_collectObjectPaths: return + participant_collectObjectPaths->>participant_collectObjectPaths: collectObjectPaths() + participant_collectObjectPaths-->>participant_collectObjectPaths: return + participant_collectObjectPaths-->>participant_collectStudioResponsePaths: return diff --git a/paradox/diagrams/sequences/diagnose-studio-component-bindings.mmd b/paradox/diagrams/sequences/diagnose-studio-component-bindings.mmd new file mode 100644 index 00000000..0c201bc8 --- /dev/null +++ b/paradox/diagrams/sequences/diagnose-studio-component-bindings.mmd @@ -0,0 +1,5 @@ +sequenceDiagram + participant participant_diagnoseStudioComponentBindings as diagnoseStudioComponentBindings + participant participant_diagnostic as diagnostic + participant_diagnoseStudioComponentBindings->>participant_diagnostic: diagnostic() + participant_diagnostic-->>participant_diagnoseStudioComponentBindings: return diff --git a/paradox/diagrams/sequences/remove-studio-event-binding.mmd b/paradox/diagrams/sequences/remove-studio-event-binding.mmd new file mode 100644 index 00000000..ded8df6b --- /dev/null +++ b/paradox/diagrams/sequences/remove-studio-event-binding.mmd @@ -0,0 +1,8 @@ +sequenceDiagram + participant participant_isEmptyBinding as isEmptyBinding + participant participant_removeStudioEventBinding as removeStudioEventBinding + participant participant_writeBinding as writeBinding + participant_removeStudioEventBinding->>participant_writeBinding: writeBinding() + participant_writeBinding->>participant_isEmptyBinding: isEmptyBinding() + participant_isEmptyBinding-->>participant_writeBinding: return + participant_writeBinding-->>participant_removeStudioEventBinding: return diff --git a/paradox/diagrams/sequences/remove-studio-prop-binding.mmd b/paradox/diagrams/sequences/remove-studio-prop-binding.mmd new file mode 100644 index 00000000..a4411694 --- /dev/null +++ b/paradox/diagrams/sequences/remove-studio-prop-binding.mmd @@ -0,0 +1,8 @@ +sequenceDiagram + participant participant_isEmptyBinding as isEmptyBinding + participant participant_removeStudioPropBinding as removeStudioPropBinding + participant participant_writeBinding as writeBinding + participant_removeStudioPropBinding->>participant_writeBinding: writeBinding() + participant_writeBinding->>participant_isEmptyBinding: isEmptyBinding() + participant_isEmptyBinding-->>participant_writeBinding: return + participant_writeBinding-->>participant_removeStudioPropBinding: return diff --git a/paradox/diagrams/sequences/resolve-studio-schema-value-meta.mmd b/paradox/diagrams/sequences/resolve-studio-schema-value-meta.mmd new file mode 100644 index 00000000..6e788aeb --- /dev/null +++ b/paradox/diagrams/sequences/resolve-studio-schema-value-meta.mmd @@ -0,0 +1,18 @@ +sequenceDiagram + participant participant_resolveSchemaFields as resolveSchemaFields + participant participant_resolveSchemaRef as resolveSchemaRef + participant participant_resolveSchemaType as resolveSchemaType + participant participant_resolveSingleSchemaType as resolveSingleSchemaType + participant participant_resolveStudioSchemaValueMeta as resolveStudioSchemaValueMeta + participant_resolveStudioSchemaValueMeta->>participant_resolveSchemaRef: resolveSchemaRef() + participant_resolveSchemaRef->>participant_resolveSchemaRef: resolveSchemaRef() + participant_resolveSchemaRef-->>participant_resolveSchemaRef: return + participant_resolveSchemaRef-->>participant_resolveStudioSchemaValueMeta: return + participant_resolveStudioSchemaValueMeta->>participant_resolveSchemaType: resolveSchemaType() + participant_resolveSchemaType->>participant_resolveSingleSchemaType: resolveSingleSchemaType() + participant_resolveSingleSchemaType-->>participant_resolveSchemaType: return + participant_resolveSchemaType-->>participant_resolveStudioSchemaValueMeta: return + participant_resolveStudioSchemaValueMeta->>participant_resolveSchemaFields: resolveSchemaFields() + participant_resolveSchemaFields-->>participant_resolveStudioSchemaValueMeta: return + participant_resolveStudioSchemaValueMeta->>participant_resolveStudioSchemaValueMeta: resolveStudioSchemaValueMeta() + participant_resolveStudioSchemaValueMeta-->>participant_resolveStudioSchemaValueMeta: return diff --git a/paradox/diagrams/sequences/upsert-studio-prop-binding.mmd b/paradox/diagrams/sequences/upsert-studio-prop-binding.mmd new file mode 100644 index 00000000..035dc50b --- /dev/null +++ b/paradox/diagrams/sequences/upsert-studio-prop-binding.mmd @@ -0,0 +1,8 @@ +sequenceDiagram + participant participant_isEmptyBinding as isEmptyBinding + participant participant_upsertStudioPropBinding as upsertStudioPropBinding + participant participant_writeBinding as writeBinding + participant_upsertStudioPropBinding->>participant_writeBinding: writeBinding() + participant_writeBinding->>participant_isEmptyBinding: isEmptyBinding() + participant_isEmptyBinding-->>participant_writeBinding: return + participant_writeBinding-->>participant_upsertStudioPropBinding: return diff --git a/paradox/exports.json b/paradox/exports.json index 213f7039..8dbd6d96 100644 --- a/paradox/exports.json +++ b/paradox/exports.json @@ -8,7 +8,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 378, + "line": 384, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -26,7 +26,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 284, + "line": 290, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -80,7 +80,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 600, + "line": 606, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -103,6 +103,94 @@ "members": [], "structuredRows": [] }, + { + "name": "appendStudioEventBinding", + "description": null, + "isReadme": false, + "examples": [], + "kind": "function", + "modulePath": "src/bindingMutationModel.ts", + "sourceLocation": { + "filePath": "src/bindingMutationModel.ts", + "line": 34, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": [], + "signatures": [ + { + "label": "(registry: Readonly>, node: UiNode, eventName: string, binding: EventBinding) => Readonly>", + "parameters": [ + { + "name": "binding", + "type": "EventBinding", + "required": true, + "description": null + }, + { + "name": "eventName", + "type": "string", + "required": true, + "description": null + }, + { + "name": "node", + "type": "UiNode", + "required": true, + "description": null + }, + { + "name": "registry", + "type": "Readonly>", + "required": true, + "description": null + } + ], + "returnType": "Readonly>", + "returnDescription": null + } + ], + "members": [], + "structuredRows": [] + }, + { + "name": "assessStudioBindingCompatibility", + "description": null, + "isReadme": false, + "examples": [], + "kind": "function", + "modulePath": "src/bindingSchemaModel.ts", + "sourceLocation": { + "filePath": "src/bindingSchemaModel.ts", + "line": 43, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": ["StudioBindingCompatibility"], + "signatures": [ + { + "label": "(expected: UiBindableValueMeta, actual: UiBindableValueMeta) => StudioBindingCompatibility", + "parameters": [ + { + "name": "actual", + "type": "UiBindableValueMeta", + "required": true, + "description": null + }, + { + "name": "expected", + "type": "UiBindableValueMeta", + "required": true, + "description": null + } + ], + "returnType": "StudioBindingCompatibility", + "returnDescription": null + } + ], + "members": [], + "structuredRows": [] + }, { "name": "buildInsertCatalogEntries", "description": null, @@ -112,7 +200,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 1312, + "line": 1318, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -144,7 +232,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 759, + "line": 765, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -176,7 +264,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 525, + "line": 531, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -205,6 +293,76 @@ "members": [], "structuredRows": [] }, + { + "name": "collectStudioBindingOperationOptions", + "description": null, + "isReadme": false, + "examples": [], + "kind": "function", + "modulePath": "src/bindingOperationModel.ts", + "sourceLocation": { + "filePath": "src/bindingOperationModel.ts", + "line": 16, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": ["StudioBindingOperationOption"], + "signatures": [ + { + "label": "(dataSources: Readonly>) => readonly StudioBindingOperationOption[]", + "parameters": [ + { + "name": "dataSources", + "type": "Readonly>", + "required": true, + "description": null + } + ], + "returnType": "readonly StudioBindingOperationOption[]", + "returnDescription": null + } + ], + "members": [], + "structuredRows": [] + }, + { + "name": "collectStudioResponsePaths", + "description": null, + "isReadme": false, + "examples": [], + "kind": "function", + "modulePath": "src/bindingSchemaModel.ts", + "sourceLocation": { + "filePath": "src/bindingSchemaModel.ts", + "line": 33, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": ["StudioBindingResponsePathOption"], + "signatures": [ + { + "label": "(schema: DataSchema | undefined, schemas: Readonly> | undefined) => readonly StudioBindingResponsePathOption[]", + "parameters": [ + { + "name": "schema", + "type": "DataSchema | undefined", + "required": true, + "description": null + }, + { + "name": "schemas", + "type": "Readonly> | undefined", + "required": true, + "description": null + } + ], + "returnType": "readonly StudioBindingResponsePathOption[]", + "returnDescription": null + } + ], + "members": [], + "structuredRows": [] + }, { "name": "createNodeFromCatalogEntry", "description": null, @@ -214,7 +372,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 1231, + "line": 1237, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -249,6 +407,38 @@ "members": [], "structuredRows": [] }, + { + "name": "createStudioActionInputFields", + "description": null, + "isReadme": false, + "examples": [], + "kind": "function", + "modulePath": "src/bindingOperationModel.ts", + "sourceLocation": { + "filePath": "src/bindingOperationModel.ts", + "line": 95, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": ["StudioBindingInputFieldOption"], + "signatures": [ + { + "label": "(payloadSchema: Readonly> | undefined) => readonly StudioBindingInputFieldOption[]", + "parameters": [ + { + "name": "payloadSchema", + "type": "Readonly> | undefined", + "required": true, + "description": null + } + ], + "returnType": "readonly StudioBindingInputFieldOption[]", + "returnDescription": null + } + ], + "members": [], + "structuredRows": [] + }, { "name": "createStudioInstancePropertyPatch", "description": null, @@ -325,6 +515,38 @@ "members": [], "structuredRows": [] }, + { + "name": "diagnoseStudioComponentBindings", + "description": null, + "isReadme": false, + "examples": [], + "kind": "function", + "modulePath": "src/bindingDiagnosticsModel.ts", + "sourceLocation": { + "filePath": "src/bindingDiagnosticsModel.ts", + "line": 20, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": ["StudioBindingDiagnostic", "StudioBindingOperationOption"], + "signatures": [ + { + "label": "(args: { readonly node: UiNode; readonly registry: ComponentDataBindingRegistry; readonly componentMeta: UiComponentMetaRegistry; readonly operations: readonly StudioBindingOperationOption[]; readonly actionTypes: readonly string[]; }) => readonly StudioBindingDiagnostic[]", + "parameters": [ + { + "name": "args", + "type": "{ readonly node: UiNode; readonly registry: ComponentDataBindingRegistry; readonly componentMeta: UiComponentMetaRegistry; readonly operations: readonly StudioBindingOperationOption[]; readonly actionTypes: readonly string[]; }", + "required": true, + "description": null + } + ], + "returnType": "readonly StudioBindingDiagnostic[]", + "returnDescription": null + } + ], + "members": [], + "structuredRows": [] + }, { "name": "findNodeById", "description": null, @@ -334,7 +556,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 542, + "line": 548, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -363,6 +585,44 @@ "members": [], "structuredRows": [] }, + { + "name": "findStudioBindingOperationOption", + "description": null, + "isReadme": false, + "examples": [], + "kind": "function", + "modulePath": "src/bindingOperationModel.ts", + "sourceLocation": { + "filePath": "src/bindingOperationModel.ts", + "line": 24, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": ["StudioBindingOperationOption"], + "signatures": [ + { + "label": "(options: readonly StudioBindingOperationOption[], ref: BindingOperationRef) => StudioBindingOperationOption | undefined", + "parameters": [ + { + "name": "options", + "type": "readonly StudioBindingOperationOption[]", + "required": true, + "description": null + }, + { + "name": "ref", + "type": "BindingOperationRef", + "required": true, + "description": null + } + ], + "returnType": "StudioBindingOperationOption | undefined", + "returnDescription": null + } + ], + "members": [], + "structuredRows": [] + }, { "name": "generateStudioId", "description": null, @@ -372,7 +632,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 518, + "line": 524, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -404,7 +664,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 1157, + "line": 1163, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -436,7 +696,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 262, + "line": 268, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -525,7 +785,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 244, + "line": 250, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -565,7 +825,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 221, + "line": 227, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -583,7 +843,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 272, + "line": 278, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -601,7 +861,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 250, + "line": 256, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -688,7 +948,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 218, + "line": 224, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -706,7 +966,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 219, + "line": 225, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -724,7 +984,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 267, + "line": 273, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -818,7 +1078,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 989, + "line": 995, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -850,7 +1110,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 932, + "line": 938, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -897,7 +1157,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 939, + "line": 945, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -930,7 +1190,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 229, + "line": 235, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -984,7 +1244,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 237, + "line": 243, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1031,7 +1291,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 224, + "line": 230, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1064,7 +1324,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 292, + "line": 298, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1111,7 +1371,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 633, + "line": 639, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -1155,7 +1415,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 1057, + "line": 1063, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1187,7 +1447,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 1016, + "line": 1022, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1234,7 +1494,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 1023, + "line": 1029, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1267,7 +1527,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 180, + "line": 186, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1314,7 +1574,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 187, + "line": 193, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1332,7 +1592,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 199, + "line": 205, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1365,7 +1625,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 178, + "line": 184, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1383,7 +1643,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 211, + "line": 217, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1401,7 +1661,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 204, + "line": 210, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1877,7 +2137,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 582, + "line": 588, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -1907,31 +2167,49 @@ "structuredRows": [] }, { - "name": "resolveDefaultInsertPlacement", + "name": "removeStudioEventBinding", "description": null, "isReadme": false, "examples": [], "kind": "function", - "modulePath": "src/index.ts", + "modulePath": "src/bindingMutationModel.ts", "sourceLocation": { - "filePath": "src/index.ts", - "line": 887, + "filePath": "src/bindingMutationModel.ts", + "line": 50, "column": 1 }, "exportPaths": ["src/index.ts"], - "relatedSymbols": ["PlacementResolutionResult", "StudioComponentMetaRegistry"], + "relatedSymbols": [], "signatures": [ { - "label": "(args: { root: UiNode; selectedNodeId: string | null; childType: string; componentMeta: StudioComponentMetaRegistry; }) => PlacementResolutionResult", + "label": "(registry: Readonly>, node: UiNode, eventName: string, bindingIndex: number) => Readonly>", "parameters": [ { - "name": "args", - "type": "{ root: UiNode; selectedNodeId: string | null; childType: string; componentMeta: StudioComponentMetaRegistry; }", + "name": "bindingIndex", + "type": "number", + "required": true, + "description": null + }, + { + "name": "eventName", + "type": "string", + "required": true, + "description": null + }, + { + "name": "node", + "type": "UiNode", + "required": true, + "description": null + }, + { + "name": "registry", + "type": "Readonly>", "required": true, "description": null } ], - "returnType": "PlacementResolutionResult", + "returnType": "Readonly>", "returnDescription": null } ], @@ -1939,31 +2217,43 @@ "structuredRows": [] }, { - "name": "resolveInsertCatalogEntries", + "name": "removeStudioPropBinding", "description": null, "isReadme": false, "examples": [], "kind": "function", - "modulePath": "src/index.ts", + "modulePath": "src/bindingMutationModel.ts", "sourceLocation": { - "filePath": "src/index.ts", - "line": 1354, + "filePath": "src/bindingMutationModel.ts", + "line": 22, "column": 1 }, "exportPaths": ["src/index.ts"], - "relatedSymbols": ["InsertCatalogEntry", "StudioComponentMetaRegistry"], + "relatedSymbols": [], "signatures": [ { - "label": "(args: { entries: readonly InsertCatalogEntry[]; root: UiNode | null; selectedNodeId: string | null; componentMeta: StudioComponentMetaRegistry; }) => InsertCatalogEntry[]", + "label": "(registry: Readonly>, node: UiNode, propName: string) => Readonly>", "parameters": [ { - "name": "args", - "type": "{ entries: readonly InsertCatalogEntry[]; root: UiNode | null; selectedNodeId: string | null; componentMeta: StudioComponentMetaRegistry; }", + "name": "node", + "type": "UiNode", + "required": true, + "description": null + }, + { + "name": "propName", + "type": "string", + "required": true, + "description": null + }, + { + "name": "registry", + "type": "Readonly>", "required": true, "description": null } ], - "returnType": "InsertCatalogEntry[]", + "returnType": "Readonly>", "returnDescription": null } ], @@ -1971,7 +2261,7 @@ "structuredRows": [] }, { - "name": "resolveInsertPlacement", + "name": "resolveDefaultInsertPlacement", "description": null, "isReadme": false, "examples": [], @@ -1979,18 +2269,18 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 826, + "line": 893, "column": 1 }, "exportPaths": ["src/index.ts"], - "relatedSymbols": ["PlacementKind", "PlacementResolutionResult", "StudioComponentMetaRegistry"], + "relatedSymbols": ["PlacementResolutionResult", "StudioComponentMetaRegistry"], "signatures": [ { - "label": "(args: { root: UiNode; targetNodeId: string; childType: string; componentMeta: StudioComponentMetaRegistry; kind: PlacementKind; }) => PlacementResolutionResult", + "label": "(args: { root: UiNode; selectedNodeId: string | null; childType: string; componentMeta: StudioComponentMetaRegistry; }) => PlacementResolutionResult", "parameters": [ { "name": "args", - "type": "{ root: UiNode; targetNodeId: string; childType: string; componentMeta: StudioComponentMetaRegistry; kind: PlacementKind; }", + "type": "{ root: UiNode; selectedNodeId: string | null; childType: string; componentMeta: StudioComponentMetaRegistry; }", "required": true, "description": null } @@ -2003,12 +2293,152 @@ "structuredRows": [] }, { - "name": "resolveStudioInstancePropertyFields", + "name": "resolveInsertCatalogEntries", "description": null, "isReadme": false, "examples": [], "kind": "function", - "modulePath": "src/propertiesAuthoringModel.ts", + "modulePath": "src/index.ts", + "sourceLocation": { + "filePath": "src/index.ts", + "line": 1360, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": ["InsertCatalogEntry", "StudioComponentMetaRegistry"], + "signatures": [ + { + "label": "(args: { entries: readonly InsertCatalogEntry[]; root: UiNode | null; selectedNodeId: string | null; componentMeta: StudioComponentMetaRegistry; }) => InsertCatalogEntry[]", + "parameters": [ + { + "name": "args", + "type": "{ entries: readonly InsertCatalogEntry[]; root: UiNode | null; selectedNodeId: string | null; componentMeta: StudioComponentMetaRegistry; }", + "required": true, + "description": null + } + ], + "returnType": "InsertCatalogEntry[]", + "returnDescription": null + } + ], + "members": [], + "structuredRows": [] + }, + { + "name": "resolveInsertPlacement", + "description": null, + "isReadme": false, + "examples": [], + "kind": "function", + "modulePath": "src/index.ts", + "sourceLocation": { + "filePath": "src/index.ts", + "line": 832, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": ["PlacementKind", "PlacementResolutionResult", "StudioComponentMetaRegistry"], + "signatures": [ + { + "label": "(args: { root: UiNode; targetNodeId: string; childType: string; componentMeta: StudioComponentMetaRegistry; kind: PlacementKind; }) => PlacementResolutionResult", + "parameters": [ + { + "name": "args", + "type": "{ root: UiNode; targetNodeId: string; childType: string; componentMeta: StudioComponentMetaRegistry; kind: PlacementKind; }", + "required": true, + "description": null + } + ], + "returnType": "PlacementResolutionResult", + "returnDescription": null + } + ], + "members": [], + "structuredRows": [] + }, + { + "name": "resolveStudioBindableEvents", + "description": null, + "isReadme": false, + "examples": [], + "kind": "function", + "modulePath": "src/bindingMetadataModel.ts", + "sourceLocation": { + "filePath": "src/bindingMetadataModel.ts", + "line": 21, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": ["StudioBindableEventOption"], + "signatures": [ + { + "label": "(node: UiNode, registry: Readonly>) => readonly StudioBindableEventOption[]", + "parameters": [ + { + "name": "node", + "type": "UiNode", + "required": true, + "description": null + }, + { + "name": "registry", + "type": "Readonly>", + "required": true, + "description": null + } + ], + "returnType": "readonly StudioBindableEventOption[]", + "returnDescription": null + } + ], + "members": [], + "structuredRows": [] + }, + { + "name": "resolveStudioBindableProps", + "description": null, + "isReadme": false, + "examples": [], + "kind": "function", + "modulePath": "src/bindingMetadataModel.ts", + "sourceLocation": { + "filePath": "src/bindingMetadataModel.ts", + "line": 8, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": ["StudioBindablePropOption"], + "signatures": [ + { + "label": "(node: UiNode, registry: Readonly>) => readonly StudioBindablePropOption[]", + "parameters": [ + { + "name": "node", + "type": "UiNode", + "required": true, + "description": null + }, + { + "name": "registry", + "type": "Readonly>", + "required": true, + "description": null + } + ], + "returnType": "readonly StudioBindablePropOption[]", + "returnDescription": null + } + ], + "members": [], + "structuredRows": [] + }, + { + "name": "resolveStudioInstancePropertyFields", + "description": null, + "isReadme": false, + "examples": [], + "kind": "function", + "modulePath": "src/propertiesAuthoringModel.ts", "sourceLocation": { "filePath": "src/propertiesAuthoringModel.ts", "line": 45, @@ -2078,6 +2508,50 @@ "members": [], "structuredRows": [] }, + { + "name": "resolveStudioSchemaValueMeta", + "description": null, + "isReadme": false, + "examples": [], + "kind": "function", + "modulePath": "src/bindingSchemaModel.ts", + "sourceLocation": { + "filePath": "src/bindingSchemaModel.ts", + "line": 14, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": [], + "signatures": [ + { + "label": "(schema: DataSchema | undefined, schemas: Readonly> | undefined, seen?: ReadonlySet) => UiBindableValueMeta", + "parameters": [ + { + "name": "schema", + "type": "DataSchema | undefined", + "required": true, + "description": null + }, + { + "name": "schemas", + "type": "Readonly> | undefined", + "required": true, + "description": null + }, + { + "name": "seen", + "type": "ReadonlySet", + "required": false, + "description": null + } + ], + "returnType": "UiBindableValueMeta", + "returnDescription": null + } + ], + "members": [], + "structuredRows": [] + }, { "name": "STUDIO_INSERT_RECIPES", "description": null, @@ -2087,7 +2561,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 1124, + "line": 1130, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -2130,7 +2604,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 59, + "line": 60, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -2148,7 +2622,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 51, + "line": 52, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -2166,7 +2640,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 87, + "line": 88, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -2184,7 +2658,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 276, + "line": 282, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -2224,7 +2698,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 274, + "line": 280, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -2242,7 +2716,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 282, + "line": 288, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -2260,7 +2734,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 122, + "line": 126, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -2278,7 +2752,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 145, + "line": 150, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -2296,7 +2770,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 134, + "line": 139, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -2417,6 +2891,292 @@ ], "structuredRows": [] }, + { + "name": "StudioBindableEventOption", + "description": null, + "isReadme": false, + "examples": [], + "kind": "type", + "modulePath": "src/bindingAuthoringContracts.ts", + "sourceLocation": { + "filePath": "src/bindingAuthoringContracts.ts", + "line": 16, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": [], + "signatures": [], + "members": [ + { + "name": "label", + "kind": "property", + "type": "string", + "required": true, + "description": null + }, + { + "name": "meta", + "kind": "property", + "type": "UiBindableEventMeta", + "required": true, + "description": null + }, + { + "name": "name", + "kind": "property", + "type": "string", + "required": true, + "description": null + } + ], + "structuredRows": [] + }, + { + "name": "StudioBindablePropOption", + "description": null, + "isReadme": false, + "examples": [], + "kind": "type", + "modulePath": "src/bindingAuthoringContracts.ts", + "sourceLocation": { + "filePath": "src/bindingAuthoringContracts.ts", + "line": 10, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": [], + "signatures": [], + "members": [ + { + "name": "label", + "kind": "property", + "type": "string", + "required": true, + "description": null + }, + { + "name": "meta", + "kind": "property", + "type": "UiBindablePropMeta", + "required": true, + "description": null + }, + { + "name": "name", + "kind": "property", + "type": "string", + "required": true, + "description": null + } + ], + "structuredRows": [] + }, + { + "name": "StudioBindingCompatibility", + "description": null, + "isReadme": false, + "examples": [], + "kind": "unknown", + "modulePath": "src/bindingAuthoringContracts.ts", + "sourceLocation": { + "filePath": "src/bindingAuthoringContracts.ts", + "line": 8, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": [], + "signatures": [], + "members": [], + "structuredRows": [] + }, + { + "name": "StudioBindingDiagnostic", + "description": null, + "isReadme": false, + "examples": [], + "kind": "type", + "modulePath": "src/bindingAuthoringContracts.ts", + "sourceLocation": { + "filePath": "src/bindingAuthoringContracts.ts", + "line": 43, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": [], + "signatures": [], + "members": [ + { + "name": "code", + "kind": "property", + "type": "\"incompatible-input\" | \"incompatible-response\" | \"missing-action\" | \"missing-binding-meta\" | \"missing-input\" | \"missing-operation\" | \"missing-response-path\" | \"unknown-event\" | \"unknown-prop\"", + "required": true, + "description": null + }, + { + "name": "message", + "kind": "property", + "type": "string", + "required": true, + "description": null + }, + { + "name": "path", + "kind": "property", + "type": "string | undefined", + "required": false, + "description": null + }, + { + "name": "severity", + "kind": "property", + "type": "\"warning\" | \"error\"", + "required": true, + "description": null + } + ], + "structuredRows": [] + }, + { + "name": "StudioBindingInputFieldOption", + "description": null, + "isReadme": false, + "examples": [], + "kind": "type", + "modulePath": "src/bindingAuthoringContracts.ts", + "sourceLocation": { + "filePath": "src/bindingAuthoringContracts.ts", + "line": 22, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": [], + "signatures": [], + "members": [ + { + "name": "label", + "kind": "property", + "type": "string", + "required": true, + "description": null + }, + { + "name": "name", + "kind": "property", + "type": "string", + "required": true, + "description": null + }, + { + "name": "required", + "kind": "property", + "type": "boolean", + "required": true, + "description": null + }, + { + "name": "value", + "kind": "property", + "type": "UiBindableValueMeta", + "required": true, + "description": null + } + ], + "structuredRows": [] + }, + { + "name": "StudioBindingOperationOption", + "description": null, + "isReadme": false, + "examples": [], + "kind": "type", + "modulePath": "src/bindingAuthoringContracts.ts", + "sourceLocation": { + "filePath": "src/bindingAuthoringContracts.ts", + "line": 35, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": ["StudioBindingInputFieldOption", "StudioBindingResponsePathOption"], + "signatures": [], + "members": [ + { + "name": "inputFields", + "kind": "property", + "type": "readonly StudioBindingInputFieldOption[]", + "required": true, + "description": null + }, + { + "name": "label", + "kind": "property", + "type": "string", + "required": true, + "description": null + }, + { + "name": "operation", + "kind": "property", + "type": "BindingOperationRef", + "required": true, + "description": null + }, + { + "name": "responsePaths", + "kind": "property", + "type": "readonly StudioBindingResponsePathOption[]", + "required": true, + "description": null + }, + { + "name": "sourceLabel", + "kind": "property", + "type": "string", + "required": true, + "description": null + } + ], + "structuredRows": [] + }, + { + "name": "StudioBindingResponsePathOption", + "description": null, + "isReadme": false, + "examples": [], + "kind": "type", + "modulePath": "src/bindingAuthoringContracts.ts", + "sourceLocation": { + "filePath": "src/bindingAuthoringContracts.ts", + "line": 29, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": [], + "signatures": [], + "members": [ + { + "name": "label", + "kind": "property", + "type": "string", + "required": true, + "description": null + }, + { + "name": "path", + "kind": "property", + "type": "string", + "required": true, + "description": null + }, + { + "name": "value", + "kind": "property", + "type": "UiBindableValueMeta", + "required": true, + "description": null + } + ], + "structuredRows": [] + }, { "name": "StudioCommand", "description": null, @@ -2426,7 +3186,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 317, + "line": 323, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -2444,7 +3204,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 301, + "line": 307, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -2477,7 +3237,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 306, + "line": 312, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -2524,7 +3284,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 313, + "line": 319, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -2542,7 +3302,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 333, + "line": 339, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -2945,7 +3705,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 326, + "line": 332, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -2963,7 +3723,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 315, + "line": 321, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3132,7 +3892,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 117, + "line": 121, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3150,7 +3910,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 147, + "line": 153, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3168,7 +3928,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 119, + "line": 123, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3186,7 +3946,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 116, + "line": 120, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3204,7 +3964,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 114, + "line": 118, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3222,7 +3982,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 53, + "line": 54, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3262,7 +4022,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 121, + "line": 125, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3280,7 +4040,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 112, + "line": 116, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3387,7 +4147,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 110, + "line": 114, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3405,7 +4165,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 120, + "line": 124, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3423,7 +4183,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 115, + "line": 119, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3441,7 +4201,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 158, + "line": 164, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3495,7 +4255,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 113, + "line": 117, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3513,7 +4273,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 166, + "line": 172, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3761,7 +4521,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 153, + "line": 159, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3779,7 +4539,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 470, + "line": 476, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -3797,7 +4557,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 554, + "line": 560, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -3832,6 +4592,56 @@ "members": [], "structuredRows": [] }, + { + "name": "upsertStudioPropBinding", + "description": null, + "isReadme": false, + "examples": [], + "kind": "function", + "modulePath": "src/bindingMutationModel.ts", + "sourceLocation": { + "filePath": "src/bindingMutationModel.ts", + "line": 9, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": [], + "signatures": [ + { + "label": "(registry: Readonly>, node: UiNode, propName: string, binding: PropBinding) => Readonly>", + "parameters": [ + { + "name": "binding", + "type": "PropBinding", + "required": true, + "description": null + }, + { + "name": "node", + "type": "UiNode", + "required": true, + "description": null + }, + { + "name": "propName", + "type": "string", + "required": true, + "description": null + }, + { + "name": "registry", + "type": "Readonly>", + "required": true, + "description": null + } + ], + "returnType": "Readonly>", + "returnDescription": null + } + ], + "members": [], + "structuredRows": [] + }, { "name": "validateInsertRecipe", "description": null, @@ -3841,7 +4651,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 1174, + "line": 1180, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3879,7 +4689,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 771, + "line": 777, "column": 1 }, "exportPaths": ["src/index.ts"], diff --git a/paradox/exports.md b/paradox/exports.md index f0a8c1ad..59f993cc 100644 --- a/paradox/exports.md +++ b/paradox/exports.md @@ -4,13 +4,13 @@ Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:378:14` +Source: `src/index.ts:384:14` ## ActionDefinition Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:284:1` +Source: `src/index.ts:290:1` ### Members @@ -26,7 +26,7 @@ Source: `src/index.ts:284:1` Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:600:14` +Source: `src/index.ts:606:14` ### Signatures @@ -34,11 +34,39 @@ Source: `src/index.ts:600:14` - args: `{ root: UiNode; targetId: string; newNode: UiNode; componentMeta: StudioComponentMetaRegistry; mode?: "append" | "prepend"; }` - returns: `UiNode` +## appendStudioEventBinding + +Kind: `function` +Module: `src/bindingMutationModel.ts` +Source: `src/bindingMutationModel.ts:34:1` + +### Signatures + +- `(registry: Readonly>, node: UiNode, eventName: string, binding: EventBinding) => Readonly>` + - binding: `EventBinding` + - eventName: `string` + - node: `UiNode` + - registry: `Readonly>` + - returns: `Readonly>` + +## assessStudioBindingCompatibility + +Kind: `function` +Module: `src/bindingSchemaModel.ts` +Source: `src/bindingSchemaModel.ts:43:1` + +### Signatures + +- `(expected: UiBindableValueMeta, actual: UiBindableValueMeta) => StudioBindingCompatibility` + - actual: `UiBindableValueMeta` + - expected: `UiBindableValueMeta` + - returns: `StudioBindingCompatibility` + ## buildInsertCatalogEntries Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:1312:1` +Source: `src/index.ts:1318:1` ### Signatures @@ -50,7 +78,7 @@ Source: `src/index.ts:1312:1` Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:759:1` +Source: `src/index.ts:765:1` ### Signatures @@ -62,7 +90,7 @@ Source: `src/index.ts:759:1` Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:525:14` +Source: `src/index.ts:531:14` ### Signatures @@ -71,11 +99,36 @@ Source: `src/index.ts:525:14` - node: `UiNode` - returns: `UiNode` +## collectStudioBindingOperationOptions + +Kind: `function` +Module: `src/bindingOperationModel.ts` +Source: `src/bindingOperationModel.ts:16:1` + +### Signatures + +- `(dataSources: Readonly>) => readonly StudioBindingOperationOption[]` + - dataSources: `Readonly>` + - returns: `readonly StudioBindingOperationOption[]` + +## collectStudioResponsePaths + +Kind: `function` +Module: `src/bindingSchemaModel.ts` +Source: `src/bindingSchemaModel.ts:33:1` + +### Signatures + +- `(schema: DataSchema | undefined, schemas: Readonly> | undefined) => readonly StudioBindingResponsePathOption[]` + - schema: `DataSchema | undefined` + - schemas: `Readonly> | undefined` + - returns: `readonly StudioBindingResponsePathOption[]` + ## createNodeFromCatalogEntry Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:1231:1` +Source: `src/index.ts:1237:1` ### Signatures @@ -85,6 +138,18 @@ Source: `src/index.ts:1231:1` - entry: `InsertCatalogEntry` - returns: `UiNode` +## createStudioActionInputFields + +Kind: `function` +Module: `src/bindingOperationModel.ts` +Source: `src/bindingOperationModel.ts:95:1` + +### Signatures + +- `(payloadSchema: Readonly> | undefined) => readonly StudioBindingInputFieldOption[]` + - payloadSchema: `Readonly> | undefined` + - returns: `readonly StudioBindingInputFieldOption[]` + ## createStudioInstancePropertyPatch Kind: `function` @@ -111,11 +176,23 @@ Source: `src/projectIdentity.ts:11:1` - projectName: `string` - returns: `string` +## diagnoseStudioComponentBindings + +Kind: `function` +Module: `src/bindingDiagnosticsModel.ts` +Source: `src/bindingDiagnosticsModel.ts:20:1` + +### Signatures + +- `(args: { readonly node: UiNode; readonly registry: ComponentDataBindingRegistry; readonly componentMeta: UiComponentMetaRegistry; readonly operations: readonly StudioBindingOperationOption[]; readonly actionTypes: readonly string[]; }) => readonly StudioBindingDiagnostic[]` + - args: `{ readonly node: UiNode; readonly registry: ComponentDataBindingRegistry; readonly componentMeta: UiComponentMetaRegistry; readonly operations: readonly StudioBindingOperationOption[]; readonly actionTypes: readonly string[]; }` + - returns: `readonly StudioBindingDiagnostic[]` + ## findNodeById Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:542:14` +Source: `src/index.ts:548:14` ### Signatures @@ -124,11 +201,24 @@ Source: `src/index.ts:542:14` - root: `UiNode` - returns: `UiNode | null` +## findStudioBindingOperationOption + +Kind: `function` +Module: `src/bindingOperationModel.ts` +Source: `src/bindingOperationModel.ts:24:1` + +### Signatures + +- `(options: readonly StudioBindingOperationOption[], ref: BindingOperationRef) => StudioBindingOperationOption | undefined` + - options: `readonly StudioBindingOperationOption[]` + - ref: `BindingOperationRef` + - returns: `StudioBindingOperationOption | undefined` + ## generateStudioId Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:518:14` +Source: `src/index.ts:524:14` ### Signatures @@ -140,7 +230,7 @@ Source: `src/index.ts:518:14` Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:1157:1` +Source: `src/index.ts:1163:1` ### Signatures @@ -152,7 +242,7 @@ Source: `src/index.ts:1157:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:262:1` +Source: `src/index.ts:268:1` ### Members @@ -173,7 +263,7 @@ Source: `src/index.ts:262:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:244:1` +Source: `src/index.ts:250:1` ### Members @@ -187,19 +277,19 @@ Source: `src/index.ts:244:1` Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:221:1` +Source: `src/index.ts:227:1` ## InsertCatalogEntry Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:272:1` +Source: `src/index.ts:278:1` ## InsertCatalogEntryBase Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:250:1` +Source: `src/index.ts:256:1` ### Members @@ -219,19 +309,19 @@ Source: `src/index.ts:250:1` Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:218:1` +Source: `src/index.ts:224:1` ## InsertCatalogEntryStatus Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:219:1` +Source: `src/index.ts:225:1` ## InsertCatalogRecipeEntry Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:267:1` +Source: `src/index.ts:273:1` ### Members @@ -252,7 +342,7 @@ Source: `src/index.ts:267:1` Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:989:1` +Source: `src/index.ts:995:1` ### Signatures @@ -264,7 +354,7 @@ Source: `src/index.ts:989:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:932:1` +Source: `src/index.ts:938:1` ### Members @@ -279,7 +369,7 @@ Source: `src/index.ts:932:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:939:1` +Source: `src/index.ts:945:1` ### Members @@ -292,7 +382,7 @@ Source: `src/index.ts:939:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:229:1` +Source: `src/index.ts:235:1` ### Members @@ -308,7 +398,7 @@ Source: `src/index.ts:229:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:237:1` +Source: `src/index.ts:243:1` ### Members @@ -323,7 +413,7 @@ Source: `src/index.ts:237:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:224:1` +Source: `src/index.ts:230:1` ### Members @@ -336,7 +426,7 @@ Source: `src/index.ts:224:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:292:1` +Source: `src/index.ts:298:1` ### Members @@ -351,7 +441,7 @@ Source: `src/index.ts:292:1` Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:633:14` +Source: `src/index.ts:639:14` ### Signatures @@ -365,7 +455,7 @@ Source: `src/index.ts:633:14` Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:1057:1` +Source: `src/index.ts:1063:1` ### Signatures @@ -377,7 +467,7 @@ Source: `src/index.ts:1057:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:1016:1` +Source: `src/index.ts:1022:1` ### Members @@ -392,7 +482,7 @@ Source: `src/index.ts:1016:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:1023:1` +Source: `src/index.ts:1029:1` ### Members @@ -405,7 +495,7 @@ Source: `src/index.ts:1023:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:180:1` +Source: `src/index.ts:186:1` ### Members @@ -420,13 +510,13 @@ Source: `src/index.ts:180:1` Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:187:1` +Source: `src/index.ts:193:1` ## PlacementFailureReason Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:199:1` +Source: `src/index.ts:205:1` ### Members @@ -439,19 +529,19 @@ Source: `src/index.ts:199:1` Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:178:1` +Source: `src/index.ts:184:1` ## PlacementResolutionResult Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:211:1` +Source: `src/index.ts:217:1` ## PlacementValidationResult Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:204:1` +Source: `src/index.ts:210:1` ## ProjectAuthDiagnostic @@ -599,7 +689,7 @@ Source: `src/projectWorkspaceContracts.ts:16:1` Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:582:14` +Source: `src/index.ts:588:14` ### Signatures @@ -608,11 +698,40 @@ Source: `src/index.ts:582:14` - root: `UiNode` - returns: `UiNode | null` +## removeStudioEventBinding + +Kind: `function` +Module: `src/bindingMutationModel.ts` +Source: `src/bindingMutationModel.ts:50:1` + +### Signatures + +- `(registry: Readonly>, node: UiNode, eventName: string, bindingIndex: number) => Readonly>` + - bindingIndex: `number` + - eventName: `string` + - node: `UiNode` + - registry: `Readonly>` + - returns: `Readonly>` + +## removeStudioPropBinding + +Kind: `function` +Module: `src/bindingMutationModel.ts` +Source: `src/bindingMutationModel.ts:22:1` + +### Signatures + +- `(registry: Readonly>, node: UiNode, propName: string) => Readonly>` + - node: `UiNode` + - propName: `string` + - registry: `Readonly>` + - returns: `Readonly>` + ## resolveDefaultInsertPlacement Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:887:1` +Source: `src/index.ts:893:1` ### Signatures @@ -624,7 +743,7 @@ Source: `src/index.ts:887:1` Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:1354:1` +Source: `src/index.ts:1360:1` ### Signatures @@ -636,7 +755,7 @@ Source: `src/index.ts:1354:1` Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:826:1` +Source: `src/index.ts:832:1` ### Signatures @@ -644,6 +763,32 @@ Source: `src/index.ts:826:1` - args: `{ root: UiNode; targetNodeId: string; childType: string; componentMeta: StudioComponentMetaRegistry; kind: PlacementKind; }` - returns: `PlacementResolutionResult` +## resolveStudioBindableEvents + +Kind: `function` +Module: `src/bindingMetadataModel.ts` +Source: `src/bindingMetadataModel.ts:21:1` + +### Signatures + +- `(node: UiNode, registry: Readonly>) => readonly StudioBindableEventOption[]` + - node: `UiNode` + - registry: `Readonly>` + - returns: `readonly StudioBindableEventOption[]` + +## resolveStudioBindableProps + +Kind: `function` +Module: `src/bindingMetadataModel.ts` +Source: `src/bindingMetadataModel.ts:8:1` + +### Signatures + +- `(node: UiNode, registry: Readonly>) => readonly StudioBindablePropOption[]` + - node: `UiNode` + - registry: `Readonly>` + - returns: `readonly StudioBindablePropOption[]` + ## resolveStudioInstancePropertyFields Kind: `function` @@ -670,11 +815,25 @@ Source: `src/propertiesAuthoringModel.ts:74:1` - registry: `Readonly>` - returns: `readonly StudioInstancePropertyGroup[]` +## resolveStudioSchemaValueMeta + +Kind: `function` +Module: `src/bindingSchemaModel.ts` +Source: `src/bindingSchemaModel.ts:14:1` + +### Signatures + +- `(schema: DataSchema | undefined, schemas: Readonly> | undefined, seen?: ReadonlySet) => UiBindableValueMeta` + - schema: `DataSchema | undefined` + - schemas: `Readonly> | undefined` + - seen: `ReadonlySet` (optional) + - returns: `UiBindableValueMeta` + ## STUDIO_INSERT_RECIPES Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:1124:14` +Source: `src/index.ts:1130:14` | id | label | description | category | | -------------- | -------------- | ---------------------------------------- | -------- | @@ -686,25 +845,25 @@ Source: `src/index.ts:1124:14` Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:59:14` +Source: `src/index.ts:60:14` ## STUDIO_PACKAGE_NAME Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:51:14` +Source: `src/index.ts:52:14` ## STUDIO_PUBLIC_CONTRACTS Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:87:14` +Source: `src/index.ts:88:14` ## StudioActionPayloadField Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:276:1` +Source: `src/index.ts:282:1` ### Members @@ -718,31 +877,31 @@ Source: `src/index.ts:276:1` Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:274:1` +Source: `src/index.ts:280:1` ## StudioActionPayloadSchema Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:282:1` +Source: `src/index.ts:288:1` ## StudioAdminRouteId Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:122:1` +Source: `src/index.ts:126:1` ## StudioAdminRoutePath Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:145:1` +Source: `src/index.ts:150:1` ## StudioAdminStaticRoutePath Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:134:1` +Source: `src/index.ts:139:1` ## StudioAuthoringComponentMeta @@ -780,17 +939,111 @@ Source: `src/propertiesAuthoringModel.ts:3:1` | label | property | `string \| undefined` | no | | | type | property | `string` | yes | | +## StudioBindableEventOption + +Kind: `type` +Module: `src/bindingAuthoringContracts.ts` +Source: `src/bindingAuthoringContracts.ts:16:1` + +### Members + +| Name | Kind | Type | Required | Description | +| ----- | -------- | --------------------- | -------- | ----------- | +| label | property | `string` | yes | | +| meta | property | `UiBindableEventMeta` | yes | | +| name | property | `string` | yes | | + +## StudioBindablePropOption + +Kind: `type` +Module: `src/bindingAuthoringContracts.ts` +Source: `src/bindingAuthoringContracts.ts:10:1` + +### Members + +| Name | Kind | Type | Required | Description | +| ----- | -------- | -------------------- | -------- | ----------- | +| label | property | `string` | yes | | +| meta | property | `UiBindablePropMeta` | yes | | +| name | property | `string` | yes | | + +## StudioBindingCompatibility + +Kind: `unknown` +Module: `src/bindingAuthoringContracts.ts` +Source: `src/bindingAuthoringContracts.ts:8:1` + +## StudioBindingDiagnostic + +Kind: `type` +Module: `src/bindingAuthoringContracts.ts` +Source: `src/bindingAuthoringContracts.ts:43:1` + +### Members + +| Name | Kind | Type | Required | Description | +| -------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ----------- | +| code | property | `"incompatible-input" \| "incompatible-response" \| "missing-action" \| "missing-binding-meta" \| "missing-input" \| "missing-operation" \| "missing-response-path" \| "unknown-event" \| "unknown-prop"` | yes | | +| message | property | `string` | yes | | +| path | property | `string \| undefined` | no | | +| severity | property | `"warning" \| "error"` | yes | | + +## StudioBindingInputFieldOption + +Kind: `type` +Module: `src/bindingAuthoringContracts.ts` +Source: `src/bindingAuthoringContracts.ts:22:1` + +### Members + +| Name | Kind | Type | Required | Description | +| -------- | -------- | --------------------- | -------- | ----------- | +| label | property | `string` | yes | | +| name | property | `string` | yes | | +| required | property | `boolean` | yes | | +| value | property | `UiBindableValueMeta` | yes | | + +## StudioBindingOperationOption + +Kind: `type` +Module: `src/bindingAuthoringContracts.ts` +Source: `src/bindingAuthoringContracts.ts:35:1` + +### Members + +| Name | Kind | Type | Required | Description | +| ------------- | -------- | -------------------------------------------- | -------- | ----------- | +| inputFields | property | `readonly StudioBindingInputFieldOption[]` | yes | | +| label | property | `string` | yes | | +| operation | property | `BindingOperationRef` | yes | | +| responsePaths | property | `readonly StudioBindingResponsePathOption[]` | yes | | +| sourceLabel | property | `string` | yes | | + +## StudioBindingResponsePathOption + +Kind: `type` +Module: `src/bindingAuthoringContracts.ts` +Source: `src/bindingAuthoringContracts.ts:29:1` + +### Members + +| Name | Kind | Type | Required | Description | +| ----- | -------- | --------------------- | -------- | ----------- | +| label | property | `string` | yes | | +| path | property | `string` | yes | | +| value | property | `UiBindableValueMeta` | yes | | + ## StudioCommand Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:317:1` +Source: `src/index.ts:323:1` ## StudioComponentBlueprint Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:301:1` +Source: `src/index.ts:307:1` ### Members @@ -803,7 +1056,7 @@ Source: `src/index.ts:301:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:306:1` +Source: `src/index.ts:312:1` ### Members @@ -818,13 +1071,13 @@ Source: `src/index.ts:306:1` Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:313:1` +Source: `src/index.ts:319:1` ## StudioContextValue Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:333:1` +Source: `src/index.ts:339:1` ### Members @@ -888,13 +1141,13 @@ Source: `src/index.ts:333:1` Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:326:1` +Source: `src/index.ts:332:1` ## StudioIdGenerator Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:315:1` +Source: `src/index.ts:321:1` ## StudioInstancePropertyEditorKind @@ -945,37 +1198,37 @@ Source: `src/propertiesAuthoringModel.ts:43:1` Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:117:1` +Source: `src/index.ts:121:1` ## StudioManifest Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:147:1` +Source: `src/index.ts:153:1` ## StudioMode Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:119:1` +Source: `src/index.ts:123:1` ## StudioModuleId Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:116:1` +Source: `src/index.ts:120:1` ## StudioNodeId Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:114:1` +Source: `src/index.ts:118:1` ## StudioPackageBoundary Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:53:1` +Source: `src/index.ts:54:1` ### Members @@ -989,13 +1242,13 @@ Source: `src/index.ts:53:1` Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:121:1` +Source: `src/index.ts:125:1` ## StudioProjectId Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:112:1` +Source: `src/index.ts:116:1` ## StudioProjectSummary @@ -1022,25 +1275,25 @@ Source: `src/projectWorkspaceContracts.ts:3:1` Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:110:1` +Source: `src/index.ts:114:1` ## StudioSaveStatus Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:120:1` +Source: `src/index.ts:124:1` ## StudioScreenId Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:115:1` +Source: `src/index.ts:119:1` ## StudioSelectionState Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:158:1` +Source: `src/index.ts:164:1` ### Members @@ -1056,13 +1309,13 @@ Source: `src/index.ts:158:1` Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:113:1` +Source: `src/index.ts:117:1` ## StudioSessionState Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:166:1` +Source: `src/index.ts:172:1` ### Members @@ -1134,19 +1387,19 @@ Source: `src/templateCatalogContracts.ts:25:1` Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:153:1` +Source: `src/index.ts:159:1` ## TPL_SCREEN_EMPTY Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:470:14` +Source: `src/index.ts:476:14` ## updateNodeInTree Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:554:14` +Source: `src/index.ts:560:14` ### Signatures @@ -1156,11 +1409,26 @@ Source: `src/index.ts:554:14` - root: `UiNode` - returns: `UiNode` +## upsertStudioPropBinding + +Kind: `function` +Module: `src/bindingMutationModel.ts` +Source: `src/bindingMutationModel.ts:9:1` + +### Signatures + +- `(registry: Readonly>, node: UiNode, propName: string, binding: PropBinding) => Readonly>` + - binding: `PropBinding` + - node: `UiNode` + - propName: `string` + - registry: `Readonly>` + - returns: `Readonly>` + ## validateInsertRecipe Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:1174:1` +Source: `src/index.ts:1180:1` ### Signatures @@ -1173,7 +1441,7 @@ Source: `src/index.ts:1174:1` Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:771:1` +Source: `src/index.ts:777:1` ### Signatures diff --git a/paradox/index.html b/paradox/index.html index e5194f7a..a7a63fcd 100644 --- a/paradox/index.html +++ b/paradox/index.html @@ -309,6 +309,46 @@

@ankhorage/studio

20 functions +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • @@ -1819,6 +1859,76 @@

    @ankhorage/studio

    30 functions
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +