diff --git a/.changeset/bright-pandas-drag.md b/.changeset/bright-pandas-drag.md new file mode 100644 index 00000000..a3a845de --- /dev/null +++ b/.changeset/bright-pandas-drag.md @@ -0,0 +1,7 @@ +--- +'@ankhorage/studio': minor +--- + +Restore contextual Insert and Delete authoring, add placement-backed canvas drag and drop through +the cross-platform adapter with deterministic session cleanup, and remove obsolete DnD wrappers +and directional tree mutation APIs. diff --git a/README.md b/README.md index f9eb72f0..9c2d77b2 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ # @ankhorage/studio -![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) +![license: MIT](././paradox/badges/license.svg) ![npm: v0.14.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. @@ -29,7 +29,6 @@ Manage Studio development and projects through the Ankh CLI. - [Architecture overview](././paradox/diagrams/architecture-overview.mmd) - [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) @@ -40,6 +39,7 @@ Manage Studio development and projects through the Ankh CLI. - [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) +- [resolveInsertPlacement sequence](././paradox/diagrams/sequences/resolve-insert-placement.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) diff --git a/docs/studio-authoring-model.md b/docs/studio-authoring-model.md index a537294b..6f39c8fc 100644 --- a/docs/studio-authoring-model.md +++ b/docs/studio-authoring-model.md @@ -10,7 +10,7 @@ This package now owns the package-neutral Studio authoring/model helpers used by - component metadata contract shape used by authoring helpers - empty screen starter template - Studio ID generation helper -- UI tree helpers for cloning, finding, updating, removing, adding, and moving nodes +- UI tree helpers for cloning, finding, updating, removing, inserting, and placement-backed moving - node placement validation/resolution - insert catalog entry construction and placement resolution - catalog entry node creation @@ -19,7 +19,13 @@ This package now owns the package-neutral Studio authoring/model helpers used by The package intentionally does not import Zora or any concrete component registry. Host packages pass component metadata through `StudioComponentMetaRegistry` when resolving placement, building insert catalog entries, or creating nodes. -This keeps `@ankhorage/studio` as the authoring-model owner while letting `ankhorage4` and future hosts decide which component registry powers the Studio catalog. +This keeps `@ankhorage/studio` as the authoring-model owner while letting the first-party Studio app +and generated app hosts inject the same component registry that powers their Runtime rendering. + +Placement mutation is intentionally singular. `insertNodeAtPlacement`, +`resolveMoveNodePlacement`, and `moveNodeToPlacement` are the canonical tree APIs. The older +directional `addNodeToTree`, `moveNodeInTree`, and `moveStudioManifestNode` APIs are removed, as are +the `@ankhorage/studio/dnd*` wrapper subpaths. ## Deliberately not moved here @@ -32,11 +38,15 @@ This slice still does not move product shell or platform code. In particular, th - panels - React Native components - Expo Router code -- DnD provider/runtime implementation +- package-neutral DnD provider/runtime implementation - Supabase/storage implementation - generated-app runtime composition code - template catalog ownership +The local generated Studio runtime may compose the shared cross-platform DnD adapter directly for +its app-facing canvas UI. That integration does not change ownership of the package-neutral tree +and placement model. + ## Dependency rule The authoring model may depend on `@ankhorage/contracts` for manifest and `UiNode` types. It must not import React, React Native, Expo, DnD, Supabase, Zora implementation modules, generated-app runtime composition code, or host-app implementation modules. diff --git a/docs/studio-canvas-drag-model.md b/docs/studio-canvas-drag-model.md index daf96fd8..3ff4148f 100644 --- a/docs/studio-canvas-drag-model.md +++ b/docs/studio-canvas-drag-model.md @@ -1,6 +1,7 @@ # Studio canvas interaction model -`@ankhorage/studio/canvasDragModel` provides package-neutral helpers for Studio canvas node movement payloads and canvas placement slot selection. +`@ankhorage/studio/canvasDragModel` provides package-neutral helpers for Studio canvas node +movement payloads, placement slots, measured drop-zone geometry, and drag-preview text. ## Import @@ -8,6 +9,9 @@ import { createStudioCanvasDragPayload, isStudioCanvasDragPayload, + resolveCanvasDragSession, + resolveCanvasDragPreviewText, + resolveCanvasDropZoneRect, resolveCanvasDropZoneSlots, } from '@ankhorage/studio/canvasDragModel'; ``` @@ -18,7 +22,31 @@ import { - runtime guard for canvas movement payloads - valid canvas placement-zone detection - resolving before, inside, and after placement slots +- deriving drop-zone rectangles from measured Runtime node bounds +- selecting concise authored text for the measured-bounds drag preview +- resolving whether an active drag still belongs to the current edit selection and manifest tree -## Host-owned concerns +## Runtime integration -Hosts still own the gesture implementation, React rendering, hover/focus state, styles, and concrete move execution. +The generated local Studio host composes these helpers with `DropProvider`, `Draggable`, +`Draggable.Handle`, and `Droppable` imported directly from +`@ankhorage/react-native-reanimated-dnd-web`. It renders a 48-point handle only for the selected +non-root node, keeps the rest of the canvas on the stationary-selection path, and shows a +measured-bounds ghost while dragging. + +Every rendered Runtime node becomes a measured target while a drag is active. The screen surface +supplies a synthetic root target on native, where the normal selection recorder intentionally does +not wrap the root. More specific targets are registered before broad ancestor zones so nested +placements win overlapping collision checks. + +The UI adapter owns transient drag and hover state and resets it after cancellation or commit. Each +reset also advances the Draggable session identity, remounting the web adapter after it reports a +drop so committed translation and `DROPPED` state cannot leak into the next interaction. The +selected node ID is part of that identity, so changing selection also creates a fresh adapter +instance. + +An active drag is exposed to Runtime measurement and the overlay only while Edit mode is active, +the active node is still selected, and the node still exists in the current root. Selection loss, +tree removal, and Preview transitions synchronously suppress drag geometry and clear transient +state. A valid drop invokes the context's placement mutation exactly once. The package-neutral +model remains free of gestures, React lifecycle, concrete ZORA metadata, and manifest persistence. diff --git a/docs/studio-canvas-drop-zones.md b/docs/studio-canvas-drop-zones.md index 2edd7d46..8cb89f65 100644 --- a/docs/studio-canvas-drop-zones.md +++ b/docs/studio-canvas-drop-zones.md @@ -1,6 +1,7 @@ # Studio canvas drop zones -`@ankhorage/studio/canvasDropZones` provides package-neutral helpers for resolving valid canvas drop zones around a target node. +`@ankhorage/studio/canvasDropZones` provides package-neutral helpers for resolving canvas drop zones +around a rendered target node. ## Import @@ -11,10 +12,14 @@ import { resolveCanvasDropZones, getValidCanvasDropZones } from '@ankhorage/stud ## Owned here - resolving `before`, `inside`, and `after` drop zones -- rejecting self-drops -- validating placements through Studio component metadata +- rejecting root, self, descendant, and no-op movement +- validating placements through caller-provided Studio component metadata +- preserving canonical placement failure codes and messages for invalid-zone feedback - filtering valid drop zones -## Host-owned concerns +## Runtime integration -Hosts still own pointer handling, drag/drop gestures, visual affordances, dialogs, and React lifecycle wiring. +The package's generated Studio runtime owns pointer handling, direct adapter composition, visual +affordances, and React lifecycle wiring. Other hosts may render the same package-neutral zone +resolutions with their platform UI, but must execute successful drops through the canonical +`NodePlacement` mutation instead of maintaining a second tree-moving algorithm. diff --git a/docs/studio-insert-modal-model.md b/docs/studio-insert-modal-model.md index 6bdfaed5..3101abcc 100644 --- a/docs/studio-insert-modal-model.md +++ b/docs/studio-insert-modal-model.md @@ -1,6 +1,7 @@ # Studio insert modal model -`@ankhorage/studio/insertModalModel` provides package-neutral helpers for preparing insert catalog entries for insert modal UIs. +`@ankhorage/studio/insertModalModel` provides package-neutral helpers for preparing insert catalog +entries for contextual Insert UI. ## Import @@ -19,6 +20,20 @@ import { - resolving node display labels from aliases and component metadata - formatting placement hints for enabled catalog entries -## Host-owned concerns +## Studio integration -Hosts still own rendering modals, search input state, selected category UI, concrete component metadata such as Zora metadata, and insert execution. +The first-party Studio shell renders the contextual Insert surface with ordinary ZORA `Modal`, +`Input`, `ListSection`, and `ListRow` components. The app bar says **Add child** when the selected +node accepts a direct child and **Insert** when placement falls back to an ancestor or sibling. +Search and category state are transient; enabled rows show their resolved placement hint, while +disabled rows retain the catalog's exact explanation. + +`StudioProvider` receives concrete component metadata from the generated app and exposes the +package-neutral catalog, insert, delete, and placement-backed move capabilities through the Studio +context. Insertion creates nodes from the catalog blueprint and defaults, persists through the +canonical manifest placement mutation, and selects the inserted node. Deletion uses a ZORA +confirmation dialog, rejects the screen root, removes the complete subtree and its bindings, and +selects the deleted node's former parent. + +There is no parallel Toolbox or Studio-only component registry. Hosts still own which concrete +metadata registry they inject and where the contextual app-bar augmentation is mounted. diff --git a/docs/studio-manifest-state.md b/docs/studio-manifest-state.md index 97865aab..4f007ff1 100644 --- a/docs/studio-manifest-state.md +++ b/docs/studio-manifest-state.md @@ -28,6 +28,15 @@ Host packages still own lifecycle and concrete integration inputs: Where a mutation needs component placement rules, callers pass `StudioComponentMetaRegistry` instead of this package importing Zora. +Insert and move wrappers delegate to the same canonical tree placement functions exported from the +root authoring model. `resolveMoveNodePlacement` validates the requested parent, reference, index, +component compatibility, root/self/descendant safety, and same-parent index adjustment before a +move is applied. This keeps Insert UI and canvas DnD on one `NodePlacement` contract rather than +directional or gesture-specific mutation APIs. + +Deleting a node removes the full subtree. Data and event bindings keyed by, or owned by, any node +in that subtree are removed in the same immutable manifest mutation. + ## Import path Use the manifest-state subpath when consuming these helpers: diff --git a/docs/studio-public-contracts.md b/docs/studio-public-contracts.md index 8f3397b2..0b478aad 100644 --- a/docs/studio-public-contracts.md +++ b/docs/studio-public-contracts.md @@ -17,6 +17,17 @@ to integrate the Studio package boundary: - Studio command/event contracts - the type-only context value shape +`StudioContextValue` now carries the caller-injected `componentMeta` registry and concrete +`insertFromCatalogEntry`, `moveNodeToPlacement`, and `deleteNode` capabilities. `StudioProvider` +requires that registry so the generated Studio app uses the same component rules as its Runtime. +`resolveMoveNodePlacement` is public for validating and normalizing a placement before mutation; +`invalid-reference` identifies incoherent sibling references. + +The obsolete `addNodeToTree`, `moveNodeInTree`, directional `moveStudioManifestNode`, and +`StudioContextValue.moveNode` APIs have been removed. The `@ankhorage/studio/dnd`, +`@ankhorage/studio/dnd/primitives`, and `@ankhorage/studio/dnd/state` exports are also removed; +app-facing canvas code imports the maintained cross-platform adapter directly. + ## Deliberately not moved here This slice does not move product UI or app-host implementation code. In particular, this package diff --git a/docs/studio-runtime-selection.md b/docs/studio-runtime-selection.md index 8bc253f6..a3ceaaae 100644 --- a/docs/studio-runtime-selection.md +++ b/docs/studio-runtime-selection.md @@ -5,6 +5,20 @@ Generated apps compose Studio selection through the normal Runtime renderer conf selection. Edit mode supplies `interactionPolicy="passive"` only to components that explicitly support the canonical policy; Preview restores `enabled`. +The same root selection surface owns canvas drag composition in Edit mode. A selected non-root node +gets one 48-point `Draggable.Handle`; the selected component itself remains on the stationary tap +path. The handle and every drop target use `@ankhorage/react-native-reanimated-dnd-web` directly, +so native and web share the adapter contract without `@ankhorage/studio/dnd*` wrapper APIs. Preview +mounts no drag overlay and clears an active drag if mode changes. + +Starting a drag activates public geometry measurement for every rendered Runtime node. Web uses +DOM descendant bounds and native uses `measureInWindow`; the root surface contributes its own +bounds when native root instrumentation is intentionally absent. Before, inside, and after zones +are resolved through caller-injected component metadata and the canonical `NodePlacement` rules. +Invalid zones remain visible with their structured reason. A measured-bounds ghost includes the +component label and the first useful authored text property. Cancellation and commit both release +drag geometry, hover state, and the ghost. + Stationary native Runtime selection remains supported and was validated on Android: stationary Edit taps select the deepest intended node once, movement and scrolling cancel unintended selection, passive interaction preserves nested scrolling and authored state, and Preview restores @@ -41,7 +55,8 @@ refresh it without a layout-changing wrapper or private React Native/Fabric APIs On web, Runtime-node registration stores a lazy `getResizeTargets()` callback. Descendants are not traversed and are not observed merely because a node rendered. Inactive registration changes also avoid a complete scan of the Runtime-node registry. Only the selected node and visible unsupported -nodes activate resize targets. Selection or Edit/Preview changes compute the complete desired +nodes activate resize targets while idle; an active canvas drag temporarily activates every +rendered Runtime node. Selection, drag, or Edit/Preview changes compute the complete desired target set, observe newly required elements, and unobserve elements no longer required. Because the set is deduplicated before diffing, a shared descendant is observed once and remains observed while any active measurement still requires it. @@ -51,7 +66,8 @@ selection surface. Web selected chrome and unsupported overlays both use `pointe never intercept authored input. Scroll, viewport resize, responsive layout, and authored-root `onLayout` refresh applicable geometry. Changing or clearing selection immediately removes the previous web outline. Preview releases authoring ResizeObserver targets and renders neither -selected nor unsupported chrome. Unmount disconnects the observer and clears desired-target +selected chrome, unsupported chrome, nor canvas drag affordances. Unmount disconnects the observer +and clears desired-target ownership; navigation and active measurement removal cancel pending work once no indicator remains. The generated Studio shell synchronizes the current app pathname into `StudioProvider`. Studio diff --git a/eslint.config.mjs b/eslint.config.mjs index 8015bc89..29726ccc 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -9,23 +9,4 @@ export default createConfig({ tsconfigRootDir: __dirname, project: ['./tsconfig.json'], files: ['src/**/*.ts', 'scripts/**/*.ts'], - overrides: [ - { - files: ['src/dnd/**/*.ts'], - rules: { - 'no-restricted-imports': [ - 'error', - { - paths: [ - { - name: 'react-native-reanimated-dnd', - message: - "Forbidden in Studio. Use '@ankhorage/react-native-reanimated-dnd-web' directly instead.", - }, - ], - }, - ], - }, - }, - ], }); diff --git a/knip.config.ts b/knip.config.ts index f0d4e8f4..0a98d0a2 100644 --- a/knip.config.ts +++ b/knip.config.ts @@ -12,9 +12,6 @@ export default createKnipConfig({ 'src/core/StudioContext.ts', 'src/core/StudioProvider.ts', 'src/core/studioPackageBoundary.ts', - 'src/dnd/index.ts', - 'src/dnd/primitives.ts', - 'src/dnd/state.ts', 'src/runtime/index.ts', 'src/runtime/actionSuppression.ts', 'src/runtime/appExtensionRegistry.ts', diff --git a/package.json b/package.json index 461966da..c940f301 100644 --- a/package.json +++ b/package.json @@ -40,18 +40,6 @@ "types": "./dist/cli/index.d.ts", "import": "./dist/cli/index.js" }, - "./dnd": { - "types": "./dist/dnd/index.d.ts", - "import": "./dist/dnd/index.js" - }, - "./dnd/primitives": { - "types": "./dist/dnd/primitives.d.ts", - "import": "./dist/dnd/primitives.js" - }, - "./dnd/state": { - "types": "./dist/dnd/state.d.ts", - "import": "./dist/dnd/state.js" - }, "./runtime": { "types": "./dist/runtime/index.d.ts", "import": "./dist/runtime/index.js" diff --git a/paradox/badges/npm.svg b/paradox/badges/npm.svg index 16f0aa77..c5e3a65b 100644 --- a/paradox/badges/npm.svg +++ b/paradox/badges/npm.svg @@ -1,7 +1,7 @@ - -npm: v0.13.0 + +npm: v0.14.0 npm -v0.13.0 +v0.14.0 diff --git a/paradox/diagrams/architecture-overview.mmd b/paradox/diagrams/architecture-overview.mmd index 7140244f..a996dabe 100644 --- a/paradox/diagrams/architecture-overview.mmd +++ b/paradox/diagrams/architecture-overview.mmd @@ -179,12 +179,6 @@ graph TD module_src_core_StudioProvider_ts --> module_src_routeUtils_ts module_src_core_StudioProvider_ts --> module_src_studioSelectionModel_ts module_src_core_StudioProvider_ts --> module_src_ui_admin_AuthAdminSession_tsx - module_src_dnd_index_ts["src/dnd/index.ts"] - package__ankhorage_studio -.-> module_src_dnd_index_ts - module_src_dnd_primitives_ts["src/dnd/primitives.ts"] - package__ankhorage_studio -.-> module_src_dnd_primitives_ts - module_src_dnd_state_ts["src/dnd/state.ts"] - package__ankhorage_studio -.-> module_src_dnd_state_ts module_src_externalApiApi_ts["src/externalApiApi.ts"] package__ankhorage_studio -.-> module_src_externalApiApi_ts module_src_externalApiApi_ts --> module_src_core_constants_ts @@ -811,11 +805,14 @@ graph TD package__ankhorage_studio -.-> module_src_runtime_stationarySelection_test_ts module_src_runtime_stationarySelection_ts["src/runtime/stationarySelection.ts"] package__ankhorage_studio -.-> module_src_runtime_stationarySelection_ts + module_src_runtime_stationarySelection_ts --> module_src_canvasDragModel_ts + module_src_runtime_stationarySelection_ts --> module_src_index_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_indicatorRefreshCoordinator_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_indicatorSettleCoordinator_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_runtimeNodeMeasurement_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_stationarySelectionCoordinator_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_stationarySelectionInputState_ts + module_src_runtime_stationarySelection_ts --> module_src_ui_canvas_StudioCanvasDndOverlay_tsx module_src_runtime_stationarySelectionCoordinator_test_ts["src/runtime/stationarySelectionCoordinator.test.ts"] package__ankhorage_studio -.-> module_src_runtime_stationarySelectionCoordinator_test_ts module_src_runtime_stationarySelectionCoordinator_test_ts --> module_src_runtime_stationarySelectionCoordinator_ts @@ -1100,17 +1097,46 @@ graph TD module_src_ui_AnkhStudio_ts["src/ui/AnkhStudio.ts"] package__ankhorage_studio -.-> module_src_ui_AnkhStudio_ts module_src_ui_AnkhStudio_ts --> module_src_core_StudioContext_ts + module_src_ui_canvas_canvasDndInteraction_test_ts["src/ui/canvas/canvasDndInteraction.test.ts"] + package__ankhorage_studio -.-> module_src_ui_canvas_canvasDndInteraction_test_ts + module_src_ui_canvas_canvasDndInteraction_test_ts --> module_src_canvasDropZones_ts + module_src_ui_canvas_canvasDndInteraction_test_ts --> module_src_ui_canvas_canvasDndInteraction_ts + module_src_ui_canvas_canvasDndInteraction_ts["src/ui/canvas/canvasDndInteraction.ts"] + package__ankhorage_studio -.-> module_src_ui_canvas_canvasDndInteraction_ts + module_src_ui_canvas_canvasDndInteraction_ts --> module_src_canvasDragModel_ts + module_src_ui_canvas_canvasDndInteraction_ts --> module_src_canvasDropZones_ts + module_src_ui_canvas_canvasDndInteraction_ts --> module_src_index_ts + module_src_ui_canvas_StudioCanvasDndOverlay_test_ts["src/ui/canvas/StudioCanvasDndOverlay.test.ts"] + package__ankhorage_studio -.-> module_src_ui_canvas_StudioCanvasDndOverlay_test_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx["src/ui/canvas/StudioCanvasDndOverlay.tsx"] + package__ankhorage_studio -.-> module_src_ui_canvas_StudioCanvasDndOverlay_tsx + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_canvasDragModel_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_canvasDropZones_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_index_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_insertModalModel_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_runtime_runtimeNodeMeasurement_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_ui_canvas_canvasDndInteraction_ts module_src_ui_studioAppBarModel_ts["src/ui/studioAppBarModel.ts"] package__ankhorage_studio -.-> module_src_ui_studioAppBarModel_ts + module_src_ui_StudioDeleteDialog_tsx["src/ui/StudioDeleteDialog.tsx"] + package__ankhorage_studio -.-> module_src_ui_StudioDeleteDialog_tsx + module_src_ui_StudioInsertDialog_tsx["src/ui/StudioInsertDialog.tsx"] + package__ankhorage_studio -.-> module_src_ui_StudioInsertDialog_tsx + module_src_ui_StudioInsertDialog_tsx --> module_src_index_ts + module_src_ui_StudioInsertDialog_tsx --> module_src_insertModalModel_ts module_src_ui_useStudioAppBarAugmentation_test_ts["src/ui/useStudioAppBarAugmentation.test.ts"] package__ankhorage_studio -.-> module_src_ui_useStudioAppBarAugmentation_test_ts module_src_ui_useStudioAppBarAugmentation_test_ts --> module_src_ui_studioAppBarModel_ts module_src_ui_useStudioAppBarAugmentation_ts["src/ui/useStudioAppBarAugmentation.ts"] package__ankhorage_studio -.-> module_src_ui_useStudioAppBarAugmentation_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_core_StudioContext_ts + module_src_ui_useStudioAppBarAugmentation_ts --> module_src_index_ts + module_src_ui_useStudioAppBarAugmentation_ts --> module_src_insertModalModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_studioAdminRouteModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_studioSelectionModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_ui_studioAppBarModel_ts + module_src_ui_useStudioAppBarAugmentation_ts --> module_src_ui_StudioDeleteDialog_tsx + module_src_ui_useStudioAppBarAugmentation_ts --> module_src_ui_StudioInsertDialog_tsx module_src_upsertExternalApiDataSource_ts["src/upsertExternalApiDataSource.ts"] package__ankhorage_studio -.-> module_src_upsertExternalApiDataSource_ts module_src_utils_treeUtils_ts["src/utils/treeUtils.ts"] diff --git a/paradox/diagrams/export-graph.mmd b/paradox/diagrams/export-graph.mmd index ad2820bb..7275df07 100644 --- a/paradox/diagrams/export-graph.mmd +++ b/paradox/diagrams/export-graph.mmd @@ -47,9 +47,6 @@ graph LR module_src_core_studioPackageBoundary_ts["src/core/studioPackageBoundary.ts"] module_src_core_StudioProvider_test_ts["src/core/StudioProvider.test.ts"] module_src_core_StudioProvider_ts["src/core/StudioProvider.ts"] - module_src_dnd_index_ts["src/dnd/index.ts"] - module_src_dnd_primitives_ts["src/dnd/primitives.ts"] - module_src_dnd_state_ts["src/dnd/state.ts"] module_src_externalApiApi_ts["src/externalApiApi.ts"] module_src_externalApiAuthoring_public_test_ts["src/externalApiAuthoring.public.test.ts"] module_src_externalApiAuthoring_ts["src/externalApiAuthoring.ts"] @@ -301,7 +298,13 @@ graph LR module_src_ui_admin_pages_ThemeAdminPage_test_ts["src/ui/admin/pages/ThemeAdminPage.test.ts"] module_src_ui_admin_pages_ThemeAdminPage_tsx["src/ui/admin/pages/ThemeAdminPage.tsx"] module_src_ui_AnkhStudio_ts["src/ui/AnkhStudio.ts"] + module_src_ui_canvas_canvasDndInteraction_test_ts["src/ui/canvas/canvasDndInteraction.test.ts"] + module_src_ui_canvas_canvasDndInteraction_ts["src/ui/canvas/canvasDndInteraction.ts"] + module_src_ui_canvas_StudioCanvasDndOverlay_test_ts["src/ui/canvas/StudioCanvasDndOverlay.test.ts"] + module_src_ui_canvas_StudioCanvasDndOverlay_tsx["src/ui/canvas/StudioCanvasDndOverlay.tsx"] module_src_ui_studioAppBarModel_ts["src/ui/studioAppBarModel.ts"] + module_src_ui_StudioDeleteDialog_tsx["src/ui/StudioDeleteDialog.tsx"] + module_src_ui_StudioInsertDialog_tsx["src/ui/StudioInsertDialog.tsx"] module_src_ui_useStudioAppBarAugmentation_test_ts["src/ui/useStudioAppBarAugmentation.test.ts"] module_src_ui_useStudioAppBarAugmentation_ts["src/ui/useStudioAppBarAugmentation.ts"] module_src_upsertExternalApiDataSource_ts["src/upsertExternalApiDataSource.ts"] @@ -314,9 +317,6 @@ graph LR export_ActionDefinition["ActionDefinition"] module_src_index_ts --> export_ActionDefinition export_ActionDefinition -.-> export_StudioActionPayloadSchema - 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"] @@ -413,8 +413,6 @@ graph LR module_src_index_ts --> export_InsertRecipeNode export_ModuleDefinition["ModuleDefinition"] module_src_index_ts --> export_ModuleDefinition - export_moveNodeInTree["moveNodeInTree"] - module_src_index_ts --> export_moveNodeInTree export_moveNodeToPlacement["moveNodeToPlacement"] module_src_index_ts --> export_moveNodeToPlacement export_moveNodeToPlacement -.-> export_MoveNodeToPlacementArgs @@ -494,6 +492,10 @@ graph LR export_resolveInsertPlacement -.-> export_PlacementKind export_resolveInsertPlacement -.-> export_PlacementResolutionResult export_resolveInsertPlacement -.-> export_StudioComponentMetaRegistry + export_resolveMoveNodePlacement["resolveMoveNodePlacement"] + module_src_index_ts --> export_resolveMoveNodePlacement + export_resolveMoveNodePlacement -.-> export_MoveNodeToPlacementArgs + export_resolveMoveNodePlacement -.-> export_PlacementResolutionResult export_resolveStudioBindableEvents["resolveStudioBindableEvents"] module_src_bindingMetadataModel_ts --> export_resolveStudioBindableEvents export_resolveStudioBindableEvents -.-> export_StudioBindableEventOption @@ -568,6 +570,7 @@ graph LR export_StudioContextValue -.-> export_InsertCatalogEntry export_StudioContextValue -.-> export_NodePlacement export_StudioContextValue -.-> export_StudioAdminRouteId + export_StudioContextValue -.-> export_StudioComponentMetaRegistry export_StudioContextValue -.-> export_StudioLocale export_StudioContextValue -.-> export_StudioManifest export_StudioContextValue -.-> export_StudioMode diff --git a/paradox/diagrams/module-relationships.mmd b/paradox/diagrams/module-relationships.mmd index eaf03b5e..32eb4519 100644 --- a/paradox/diagrams/module-relationships.mmd +++ b/paradox/diagrams/module-relationships.mmd @@ -47,9 +47,6 @@ graph LR module_src_core_studioPackageBoundary_ts["src/core/studioPackageBoundary.ts"] module_src_core_StudioProvider_test_ts["src/core/StudioProvider.test.ts"] module_src_core_StudioProvider_ts["src/core/StudioProvider.ts"] - module_src_dnd_index_ts["src/dnd/index.ts"] - module_src_dnd_primitives_ts["src/dnd/primitives.ts"] - module_src_dnd_state_ts["src/dnd/state.ts"] module_src_externalApiApi_ts["src/externalApiApi.ts"] module_src_externalApiAuthoring_public_test_ts["src/externalApiAuthoring.public.test.ts"] module_src_externalApiAuthoring_ts["src/externalApiAuthoring.ts"] @@ -301,7 +298,13 @@ graph LR module_src_ui_admin_pages_ThemeAdminPage_test_ts["src/ui/admin/pages/ThemeAdminPage.test.ts"] module_src_ui_admin_pages_ThemeAdminPage_tsx["src/ui/admin/pages/ThemeAdminPage.tsx"] module_src_ui_AnkhStudio_ts["src/ui/AnkhStudio.ts"] + module_src_ui_canvas_canvasDndInteraction_test_ts["src/ui/canvas/canvasDndInteraction.test.ts"] + module_src_ui_canvas_canvasDndInteraction_ts["src/ui/canvas/canvasDndInteraction.ts"] + module_src_ui_canvas_StudioCanvasDndOverlay_test_ts["src/ui/canvas/StudioCanvasDndOverlay.test.ts"] + module_src_ui_canvas_StudioCanvasDndOverlay_tsx["src/ui/canvas/StudioCanvasDndOverlay.tsx"] module_src_ui_studioAppBarModel_ts["src/ui/studioAppBarModel.ts"] + module_src_ui_StudioDeleteDialog_tsx["src/ui/StudioDeleteDialog.tsx"] + module_src_ui_StudioInsertDialog_tsx["src/ui/StudioInsertDialog.tsx"] module_src_ui_useStudioAppBarAugmentation_test_ts["src/ui/useStudioAppBarAugmentation.test.ts"] module_src_ui_useStudioAppBarAugmentation_ts["src/ui/useStudioAppBarAugmentation.ts"] module_src_upsertExternalApiDataSource_ts["src/upsertExternalApiDataSource.ts"] @@ -657,11 +660,14 @@ graph LR module_src_runtime_previewRuntimeConfig_ts --> module_src_runtime_previewRegistry_ts module_src_runtime_runtimeNodeMeasurement_test_ts --> module_src_runtime_runtimeNodeMeasurement_ts module_src_runtime_stationarySelection_public_test_ts --> module_src_runtime_index_ts + module_src_runtime_stationarySelection_ts --> module_src_canvasDragModel_ts + module_src_runtime_stationarySelection_ts --> module_src_index_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_indicatorRefreshCoordinator_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_indicatorSettleCoordinator_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_runtimeNodeMeasurement_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_stationarySelectionCoordinator_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_stationarySelectionInputState_ts + module_src_runtime_stationarySelection_ts --> module_src_ui_canvas_StudioCanvasDndOverlay_tsx module_src_runtime_stationarySelectionCoordinator_test_ts --> module_src_runtime_stationarySelectionCoordinator_ts module_src_runtime_stationarySelectionInputState_test_ts --> module_src_runtime_stationarySelectionInputState_ts module_src_runtime_useRuntimeAction_ts --> module_src_runtime_runtimeActions_ts @@ -804,11 +810,28 @@ graph LR module_src_ui_admin_pages_ThemeAdminPage_tsx --> module_src_ui_admin_pages_adminThemeHarmony_ts module_src_ui_admin_pages_ThemeAdminPage_tsx --> module_src_ui_admin_pages_adminThemeModel_ts module_src_ui_AnkhStudio_ts --> module_src_core_StudioContext_ts + module_src_ui_canvas_canvasDndInteraction_test_ts --> module_src_canvasDropZones_ts + module_src_ui_canvas_canvasDndInteraction_test_ts --> module_src_ui_canvas_canvasDndInteraction_ts + module_src_ui_canvas_canvasDndInteraction_ts --> module_src_canvasDragModel_ts + module_src_ui_canvas_canvasDndInteraction_ts --> module_src_canvasDropZones_ts + module_src_ui_canvas_canvasDndInteraction_ts --> module_src_index_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_canvasDragModel_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_canvasDropZones_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_index_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_insertModalModel_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_runtime_runtimeNodeMeasurement_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_ui_canvas_canvasDndInteraction_ts + module_src_ui_StudioInsertDialog_tsx --> module_src_index_ts + module_src_ui_StudioInsertDialog_tsx --> module_src_insertModalModel_ts module_src_ui_useStudioAppBarAugmentation_test_ts --> module_src_ui_studioAppBarModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_core_StudioContext_ts + module_src_ui_useStudioAppBarAugmentation_ts --> module_src_index_ts + module_src_ui_useStudioAppBarAugmentation_ts --> module_src_insertModalModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_studioAdminRouteModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_studioSelectionModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_ui_studioAppBarModel_ts + module_src_ui_useStudioAppBarAugmentation_ts --> module_src_ui_StudioDeleteDialog_tsx + module_src_ui_useStudioAppBarAugmentation_ts --> module_src_ui_StudioInsertDialog_tsx module_src_utils_treeUtils_ts --> module_src_index_ts module_src_workspacePlatform_test_ts --> module_src_workspacePlatform_ts module_src_workspaceSearch_ts --> module_src_projectWorkspaceContracts_ts diff --git a/paradox/diagrams/sequences/add-node-to-tree.mmd b/paradox/diagrams/sequences/add-node-to-tree.mmd deleted file mode 100644 index a24e4a63..00000000 --- a/paradox/diagrams/sequences/add-node-to-tree.mmd +++ /dev/null @@ -1,5 +0,0 @@ -sequenceDiagram - participant participant_addNodeToTree as addNodeToTree - participant participant_canAcceptChild as canAcceptChild - participant_addNodeToTree->>participant_canAcceptChild: canAcceptChild() - participant_canAcceptChild-->>participant_addNodeToTree: return diff --git a/paradox/diagrams/sequences/resolve-insert-placement.mmd b/paradox/diagrams/sequences/resolve-insert-placement.mmd index b5ec5e20..f867ae52 100644 --- a/paradox/diagrams/sequences/resolve-insert-placement.mmd +++ b/paradox/diagrams/sequences/resolve-insert-placement.mmd @@ -12,6 +12,7 @@ sequenceDiagram participant_visit->>participant_visit: visit() participant_visit->>participant_visit: visit() participant_visit->>participant_visit: visit() + participant_visit->>participant_visit: visit() participant_visit->>participant_resolveRouteScreenFilePath: resolveRouteScreenFilePath() participant_resolveRouteScreenFilePath->>participant_normalizeRel: normalizeRel() participant_normalizeRel-->>participant_resolveRouteScreenFilePath: return @@ -19,8 +20,7 @@ sequenceDiagram participant_visit-->>participant_visit: return participant_visit-->>participant_visit: return participant_visit-->>participant_visit: return - participant_visit-->>participant_findNodeWithParent: return - participant_findNodeWithParent->>participant_visit: visit() + participant_visit-->>participant_visit: return participant_visit-->>participant_findNodeWithParent: return participant_findNodeWithParent-->>participant_resolveInsertPlacement: return participant_resolveInsertPlacement->>participant_validateNodePlacement: validateNodePlacement() diff --git a/paradox/exports.json b/paradox/exports.json index 8dbd6d96..82441ded 100644 --- a/paradox/exports.json +++ b/paradox/exports.json @@ -8,7 +8,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 384, + "line": 385, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -26,7 +26,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 290, + "line": 291, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -71,38 +71,6 @@ ], "structuredRows": [] }, - { - "name": "addNodeToTree", - "description": null, - "isReadme": false, - "examples": [], - "kind": "value", - "modulePath": "src/index.ts", - "sourceLocation": { - "filePath": "src/index.ts", - "line": 606, - "column": 14 - }, - "exportPaths": ["src/index.ts"], - "relatedSymbols": ["StudioComponentMetaRegistry"], - "signatures": [ - { - "label": "(args: { root: UiNode; targetId: string; newNode: UiNode; componentMeta: StudioComponentMetaRegistry; mode?: \"append\" | \"prepend\"; }) => UiNode", - "parameters": [ - { - "name": "args", - "type": "{ root: UiNode; targetId: string; newNode: UiNode; componentMeta: StudioComponentMetaRegistry; mode?: \"append\" | \"prepend\"; }", - "required": true, - "description": null - } - ], - "returnType": "UiNode", - "returnDescription": null - } - ], - "members": [], - "structuredRows": [] - }, { "name": "appendStudioEventBinding", "description": null, @@ -200,7 +168,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 1318, + "line": 1327, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -232,7 +200,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 765, + "line": 703, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -264,7 +232,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 531, + "line": 532, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -372,7 +340,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 1237, + "line": 1246, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -556,7 +524,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 548, + "line": 549, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -632,7 +600,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 524, + "line": 525, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -664,7 +632,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 1163, + "line": 1172, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -696,7 +664,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 268, + "line": 269, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -785,7 +753,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 250, + "line": 251, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -825,7 +793,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 227, + "line": 228, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -843,7 +811,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 278, + "line": 279, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -861,7 +829,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 256, + "line": 257, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -948,7 +916,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 224, + "line": 225, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -966,7 +934,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 225, + "line": 226, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -984,7 +952,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 273, + "line": 274, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1078,7 +1046,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 995, + "line": 965, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1110,7 +1078,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 938, + "line": 908, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1157,7 +1125,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 945, + "line": 915, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1190,7 +1158,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 235, + "line": 236, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1244,7 +1212,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 243, + "line": 244, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1291,7 +1259,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 230, + "line": 231, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1324,7 +1292,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 298, + "line": 299, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1362,50 +1330,6 @@ ], "structuredRows": [] }, - { - "name": "moveNodeInTree", - "description": null, - "isReadme": false, - "examples": [], - "kind": "value", - "modulePath": "src/index.ts", - "sourceLocation": { - "filePath": "src/index.ts", - "line": 639, - "column": 14 - }, - "exportPaths": ["src/index.ts"], - "relatedSymbols": [], - "signatures": [ - { - "label": "(root: UiNode, nodeId: string, direction: \"up\" | \"down\") => UiNode", - "parameters": [ - { - "name": "direction", - "type": "\"up\" | \"down\"", - "required": true, - "description": null - }, - { - "name": "nodeId", - "type": "string", - "required": true, - "description": null - }, - { - "name": "root", - "type": "UiNode", - "required": true, - "description": null - } - ], - "returnType": "UiNode", - "returnDescription": null - } - ], - "members": [], - "structuredRows": [] - }, { "name": "moveNodeToPlacement", "description": null, @@ -1415,7 +1339,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 1063, + "line": 1101, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1447,7 +1371,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 1022, + "line": 992, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1494,7 +1418,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 1029, + "line": 999, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1592,7 +1516,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 205, + "line": 206, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1643,7 +1567,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 217, + "line": 218, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -1661,7 +1585,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 210, + "line": 211, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -2137,7 +2061,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 588, + "line": 589, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -2269,7 +2193,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 893, + "line": 863, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -2301,7 +2225,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 1360, + "line": 1369, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -2333,7 +2257,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 832, + "line": 802, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -2356,6 +2280,38 @@ "members": [], "structuredRows": [] }, + { + "name": "resolveMoveNodePlacement", + "description": null, + "isReadme": false, + "examples": [], + "kind": "function", + "modulePath": "src/index.ts", + "sourceLocation": { + "filePath": "src/index.ts", + "line": 1033, + "column": 1 + }, + "exportPaths": ["src/index.ts"], + "relatedSymbols": ["MoveNodeToPlacementArgs", "PlacementResolutionResult"], + "signatures": [ + { + "label": "(args: MoveNodeToPlacementArgs) => PlacementResolutionResult", + "parameters": [ + { + "name": "args", + "type": "MoveNodeToPlacementArgs", + "required": true, + "description": null + } + ], + "returnType": "PlacementResolutionResult", + "returnDescription": null + } + ], + "members": [], + "structuredRows": [] + }, { "name": "resolveStudioBindableEvents", "description": null, @@ -2561,7 +2517,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 1130, + "line": 1139, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -2658,7 +2614,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 282, + "line": 283, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -2698,7 +2654,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 280, + "line": 281, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -2716,7 +2672,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 288, + "line": 289, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3186,7 +3142,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 323, + "line": 324, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3204,7 +3160,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 307, + "line": 308, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3237,7 +3193,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 312, + "line": 313, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3284,7 +3240,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 319, + "line": 320, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3302,7 +3258,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 339, + "line": 340, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3310,6 +3266,7 @@ "InsertCatalogEntry", "NodePlacement", "StudioAdminRouteId", + "StudioComponentMetaRegistry", "StudioLocale", "StudioManifest", "StudioMode", @@ -3371,6 +3328,13 @@ "required": true, "description": null }, + { + "name": "componentMeta", + "kind": "property", + "type": "StudioComponentMetaRegistry", + "required": true, + "description": null + }, { "name": "deleteGeneratedApi", "kind": "property", @@ -3448,13 +3412,6 @@ "required": true, "description": null }, - { - "name": "moveNode", - "kind": "property", - "type": "(id: StudioNodeId, direction: \"up\" | \"down\") => void", - "required": true, - "description": null - }, { "name": "moveNodeToPlacement", "kind": "property", @@ -3705,7 +3662,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 332, + "line": 333, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -3723,7 +3680,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 321, + "line": 322, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -4539,7 +4496,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 476, + "line": 477, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -4557,7 +4514,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 560, + "line": 561, "column": 14 }, "exportPaths": ["src/index.ts"], @@ -4651,7 +4608,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 1180, + "line": 1189, "column": 1 }, "exportPaths": ["src/index.ts"], @@ -4689,7 +4646,7 @@ "modulePath": "src/index.ts", "sourceLocation": { "filePath": "src/index.ts", - "line": 777, + "line": 715, "column": 1 }, "exportPaths": ["src/index.ts"], diff --git a/paradox/exports.md b/paradox/exports.md index 59f993cc..876e08cf 100644 --- a/paradox/exports.md +++ b/paradox/exports.md @@ -4,13 +4,13 @@ Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:384:14` +Source: `src/index.ts:385:14` ## ActionDefinition Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:290:1` +Source: `src/index.ts:291:1` ### Members @@ -22,18 +22,6 @@ Source: `src/index.ts:290:1` | requiresPayload | property | `boolean` | yes | | | type | property | `ActionType` | yes | | -## addNodeToTree - -Kind: `value` -Module: `src/index.ts` -Source: `src/index.ts:606:14` - -### Signatures - -- `(args: { root: UiNode; targetId: string; newNode: UiNode; componentMeta: StudioComponentMetaRegistry; mode?: "append" | "prepend"; }) => UiNode` - - args: `{ root: UiNode; targetId: string; newNode: UiNode; componentMeta: StudioComponentMetaRegistry; mode?: "append" | "prepend"; }` - - returns: `UiNode` - ## appendStudioEventBinding Kind: `function` @@ -66,7 +54,7 @@ Source: `src/bindingSchemaModel.ts:43:1` Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:1318:1` +Source: `src/index.ts:1327:1` ### Signatures @@ -78,7 +66,7 @@ Source: `src/index.ts:1318:1` Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:765:1` +Source: `src/index.ts:703:1` ### Signatures @@ -90,7 +78,7 @@ Source: `src/index.ts:765:1` Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:531:14` +Source: `src/index.ts:532:14` ### Signatures @@ -128,7 +116,7 @@ Source: `src/bindingSchemaModel.ts:33:1` Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:1237:1` +Source: `src/index.ts:1246:1` ### Signatures @@ -192,7 +180,7 @@ Source: `src/bindingDiagnosticsModel.ts:20:1` Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:548:14` +Source: `src/index.ts:549:14` ### Signatures @@ -218,7 +206,7 @@ Source: `src/bindingOperationModel.ts:24:1` Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:524:14` +Source: `src/index.ts:525:14` ### Signatures @@ -230,7 +218,7 @@ Source: `src/index.ts:524:14` Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:1163:1` +Source: `src/index.ts:1172:1` ### Signatures @@ -242,7 +230,7 @@ Source: `src/index.ts:1163:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:268:1` +Source: `src/index.ts:269:1` ### Members @@ -263,7 +251,7 @@ Source: `src/index.ts:268:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:250:1` +Source: `src/index.ts:251:1` ### Members @@ -277,19 +265,19 @@ Source: `src/index.ts:250:1` Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:227:1` +Source: `src/index.ts:228:1` ## InsertCatalogEntry Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:278:1` +Source: `src/index.ts:279:1` ## InsertCatalogEntryBase Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:256:1` +Source: `src/index.ts:257:1` ### Members @@ -309,19 +297,19 @@ Source: `src/index.ts:256:1` Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:224:1` +Source: `src/index.ts:225:1` ## InsertCatalogEntryStatus Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:225:1` +Source: `src/index.ts:226:1` ## InsertCatalogRecipeEntry Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:273:1` +Source: `src/index.ts:274:1` ### Members @@ -342,7 +330,7 @@ Source: `src/index.ts:273:1` Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:995:1` +Source: `src/index.ts:965:1` ### Signatures @@ -354,7 +342,7 @@ Source: `src/index.ts:995:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:938:1` +Source: `src/index.ts:908:1` ### Members @@ -369,7 +357,7 @@ Source: `src/index.ts:938:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:945:1` +Source: `src/index.ts:915:1` ### Members @@ -382,7 +370,7 @@ Source: `src/index.ts:945:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:235:1` +Source: `src/index.ts:236:1` ### Members @@ -398,7 +386,7 @@ Source: `src/index.ts:235:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:243:1` +Source: `src/index.ts:244:1` ### Members @@ -413,7 +401,7 @@ Source: `src/index.ts:243:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:230:1` +Source: `src/index.ts:231:1` ### Members @@ -426,7 +414,7 @@ Source: `src/index.ts:230:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:298:1` +Source: `src/index.ts:299:1` ### Members @@ -437,25 +425,11 @@ Source: `src/index.ts:298:1` | name | property | `string` | yes | | | ui | property | `{ modal?: { title: string; }; } \| undefined` | no | | -## moveNodeInTree - -Kind: `value` -Module: `src/index.ts` -Source: `src/index.ts:639:14` - -### Signatures - -- `(root: UiNode, nodeId: string, direction: "up" | "down") => UiNode` - - direction: `"up" | "down"` - - nodeId: `string` - - root: `UiNode` - - returns: `UiNode` - ## moveNodeToPlacement Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:1063:1` +Source: `src/index.ts:1101:1` ### Signatures @@ -467,7 +441,7 @@ Source: `src/index.ts:1063:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:1022:1` +Source: `src/index.ts:992:1` ### Members @@ -482,7 +456,7 @@ Source: `src/index.ts:1022:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:1029:1` +Source: `src/index.ts:999:1` ### Members @@ -516,7 +490,7 @@ Source: `src/index.ts:193:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:205:1` +Source: `src/index.ts:206:1` ### Members @@ -535,13 +509,13 @@ Source: `src/index.ts:184:1` Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:217:1` +Source: `src/index.ts:218:1` ## PlacementValidationResult Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:210:1` +Source: `src/index.ts:211:1` ## ProjectAuthDiagnostic @@ -689,7 +663,7 @@ Source: `src/projectWorkspaceContracts.ts:16:1` Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:588:14` +Source: `src/index.ts:589:14` ### Signatures @@ -731,7 +705,7 @@ Source: `src/bindingMutationModel.ts:22:1` Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:893:1` +Source: `src/index.ts:863:1` ### Signatures @@ -743,7 +717,7 @@ Source: `src/index.ts:893:1` Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:1360:1` +Source: `src/index.ts:1369:1` ### Signatures @@ -755,7 +729,7 @@ Source: `src/index.ts:1360:1` Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:832:1` +Source: `src/index.ts:802:1` ### Signatures @@ -763,6 +737,18 @@ Source: `src/index.ts:832:1` - args: `{ root: UiNode; targetNodeId: string; childType: string; componentMeta: StudioComponentMetaRegistry; kind: PlacementKind; }` - returns: `PlacementResolutionResult` +## resolveMoveNodePlacement + +Kind: `function` +Module: `src/index.ts` +Source: `src/index.ts:1033:1` + +### Signatures + +- `(args: MoveNodeToPlacementArgs) => PlacementResolutionResult` + - args: `MoveNodeToPlacementArgs` + - returns: `PlacementResolutionResult` + ## resolveStudioBindableEvents Kind: `function` @@ -833,7 +819,7 @@ Source: `src/bindingSchemaModel.ts:14:1` Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:1130:14` +Source: `src/index.ts:1139:14` | id | label | description | category | | -------------- | -------------- | ---------------------------------------- | -------- | @@ -863,7 +849,7 @@ Source: `src/index.ts:88:14` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:282:1` +Source: `src/index.ts:283:1` ### Members @@ -877,13 +863,13 @@ Source: `src/index.ts:282:1` Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:280:1` +Source: `src/index.ts:281:1` ## StudioActionPayloadSchema Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:288:1` +Source: `src/index.ts:289:1` ## StudioAdminRouteId @@ -1037,13 +1023,13 @@ Source: `src/bindingAuthoringContracts.ts:29:1` Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:323:1` +Source: `src/index.ts:324:1` ## StudioComponentBlueprint Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:307:1` +Source: `src/index.ts:308:1` ### Members @@ -1056,7 +1042,7 @@ Source: `src/index.ts:307:1` Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:312:1` +Source: `src/index.ts:313:1` ### Members @@ -1071,13 +1057,13 @@ Source: `src/index.ts:312:1` Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:319:1` +Source: `src/index.ts:320:1` ## StudioContextValue Kind: `type` Module: `src/index.ts` -Source: `src/index.ts:339:1` +Source: `src/index.ts:340:1` ### Members @@ -1090,6 +1076,7 @@ Source: `src/index.ts:339:1` | activeScreenId | property | `string \| null` | yes | | | addScreen | property | `(name: string) => void` | yes | | | addTheme | property | `() => void` | yes | | +| componentMeta | property | `StudioComponentMetaRegistry` | yes | | | deleteGeneratedApi | property | `(id: string) => void` | yes | | | deleteNode | property | `(id: StudioNodeId) => void` | yes | | | deleteScreen | property | `(id: StudioScreenId) => void` | yes | | @@ -1101,7 +1088,6 @@ Source: `src/index.ts:339:1` | isLoading | property | `boolean` | yes | | | lastNonAdminLocation | property | `string` | yes | | | manifest | property | `StudioManifest \| null` | yes | | -| moveNode | property | `(id: StudioNodeId, direction: "up" \| "down") => void` | yes | | | moveNodeToPlacement | property | `(nodeId: StudioNodeId, placement: NodePlacement) => boolean` | yes | | | mutateAuthSettings | property | `(mutation: StudioAuthSettingsMutation) => StudioAuthSettings \| null` | yes | | | previewMode | property | `boolean` | yes | | @@ -1141,13 +1127,13 @@ Source: `src/index.ts:339:1` Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:332:1` +Source: `src/index.ts:333:1` ## StudioIdGenerator Kind: `unknown` Module: `src/index.ts` -Source: `src/index.ts:321:1` +Source: `src/index.ts:322:1` ## StudioInstancePropertyEditorKind @@ -1393,13 +1379,13 @@ Source: `src/index.ts:159:1` Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:476:14` +Source: `src/index.ts:477:14` ## updateNodeInTree Kind: `value` Module: `src/index.ts` -Source: `src/index.ts:560:14` +Source: `src/index.ts:561:14` ### Signatures @@ -1428,7 +1414,7 @@ Source: `src/bindingMutationModel.ts:9:1` Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:1180:1` +Source: `src/index.ts:1189:1` ### Signatures @@ -1441,7 +1427,7 @@ Source: `src/index.ts:1180:1` Kind: `function` Module: `src/index.ts` -Source: `src/index.ts:777:1` +Source: `src/index.ts:715:1` ### Signatures diff --git a/paradox/index.html b/paradox/index.html index a7a63fcd..960d42a7 100644 --- a/paradox/index.html +++ b/paradox/index.html @@ -352,7 +352,7 @@

@ankhorage/studio

  • @@ -433,12 +433,6 @@

    @ankhorage/studio

    9 functions
  • -
  • - -
  • @@ -1404,7 +1398,7 @@

    @ankhorage/studio

  • @@ -2095,12 +2089,54 @@

    @ankhorage/studio

    1 function
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • @@ -2141,9 +2177,9 @@

    @ankhorage/studio

    Package overview

    -
    126public exports
    +
    125public exports
    0components
    -
    310modules
    +
    313modules
    1entrypoints

    Entrypoints

    @@ -2551,7 +2587,7 @@

    src/canvasDragModel.test.ts

    src/canvasDragModel.ts

    Referenced module

    @@ -2560,10 +2596,12 @@

    src/canvasDragModel.ts

    src/index.ts

    - Exports: CanvasDropZoneSlots, + Exports: CanvasDragSessionResolution, + CanvasDropZoneSlots, CanvasRect, createStudioCanvasDragPayload, isStudioCanvasDragPayload, - isValidCanvasDropZone, resolveCanvasDropZoneSlots, - StudioCanvasDragPayload + isValidCanvasDropZone, resolveCanvasDragPreviewText, + resolveCanvasDragSession, resolveCanvasDropZoneRect, + resolveCanvasDropZoneSlots, StudioCanvasDragPayload

    src/core/StudioProvider.ts StudioProviderProps

    -
    -

    src/dnd/index.ts

    -

    Referenced module

    -

    Dependencies: None

    -

    - Exports: AnimationFunction, clamp, - CollisionAlgorithm, createIdleStudioDragState, - Draggable, DraggableContextValue, - DraggableHandleProps, DraggableProps, - DraggableState, DropAlignment, DropOffset, - Droppable, DroppableProps, DroppedItemsMap, - DropProvider, DropProviderProps, - DropProviderRef, DropSlot, - HorizontalScrollDirection, HorizontalSortableItemProps, - HorizontalSortableProps, - HorizontalSortableRenderItemProps, listToObject, - objectMove, PositionUpdateListener, - ScrollDirection, setAutoScroll, setPosition, - SlotsContext, SlotsContextValue, Sortable, - SortableContextValue, SortableDirection, - SortableHandleProps, SortableItem, - SortableItemProps, SortableProps, - SortableRenderItemProps, StudioDragState, - useDraggable, UseDraggableOptions, - UseDraggableReturn, useDroppable, - UseDroppableOptions, UseDroppableReturn, - UseHorizontalSortableListOptions, - UseHorizontalSortableListReturn, - UseHorizontalSortableOptions, UseHorizontalSortableReturn, - useSortable, useSortableList, - UseSortableListOptions, UseSortableListReturn, - UseSortableOptions, UseSortableReturn -

    -
    -
    -

    src/dnd/primitives.ts

    -

    Referenced module

    -

    Dependencies: None

    -

    - Exports: AnimationFunction, clamp, - CollisionAlgorithm, Draggable, - DraggableContextValue, DraggableHandleProps, - DraggableProps, DraggableState, - DropAlignment, DropOffset, Droppable, - DroppableProps, DroppedItemsMap, - DropProvider, DropProviderProps, - DropProviderRef, DropSlot, - HorizontalScrollDirection, HorizontalSortableItemProps, - HorizontalSortableProps, - HorizontalSortableRenderItemProps, listToObject, - objectMove, PositionUpdateListener, - ScrollDirection, setAutoScroll, setPosition, - SlotsContext, SlotsContextValue, Sortable, - SortableContextValue, SortableDirection, - SortableHandleProps, SortableItem, - SortableItemProps, SortableProps, - SortableRenderItemProps, useDraggable, - UseDraggableOptions, UseDraggableReturn, - useDroppable, UseDroppableOptions, - UseDroppableReturn, UseHorizontalSortableListOptions, - UseHorizontalSortableListReturn, - UseHorizontalSortableOptions, UseHorizontalSortableReturn, - useSortable, useSortableList, - UseSortableListOptions, UseSortableListReturn, - UseSortableOptions, UseSortableReturn -

    -
    -
    -

    src/dnd/state.ts

    -

    Referenced module

    -

    Dependencies: None

    -

    - Exports: createIdleStudioDragState, - StudioDragState -

    -
    src/index.test.ts

    src/index.ts

    Configured entrypoint

    Dependencies: src/authSettings.ts

    Exports: ACTION_REGISTRY, - ActionDefinition, addNodeToTree, - appendStudioEventBinding, + ActionDefinition, appendStudioEventBinding, assessStudioBindingCompatibility, buildInsertCatalogEntries, canAcceptChild, cloneWithNewIds, collectStudioBindingOperationOptions, @@ -4397,14 +4349,14 @@

    src/index.ts

    insertNodeAtPlacement, InsertNodeAtPlacementArgs, InsertNodeAtPlacementResult, InsertRecipe, InsertRecipeIssue, InsertRecipeNode, - ModuleDefinition, moveNodeInTree, - moveNodeToPlacement, MoveNodeToPlacementArgs, - MoveNodeToPlacementResult, NodePlacement, - PlacementFailureCode, PlacementFailureReason, - PlacementKind, PlacementResolutionResult, - PlacementValidationResult, ProjectAuthDiagnostic, - ProjectAuthDiagnosticSeverity, ProjectAuthHealth, - ProjectAuthHealthStatus, ProjectCreationValidationCode, + ModuleDefinition, moveNodeToPlacement, + MoveNodeToPlacementArgs, MoveNodeToPlacementResult, + NodePlacement, PlacementFailureCode, + PlacementFailureReason, PlacementKind, + PlacementResolutionResult, PlacementValidationResult, + ProjectAuthDiagnostic, ProjectAuthDiagnosticSeverity, + ProjectAuthHealth, ProjectAuthHealthStatus, + ProjectCreationValidationCode, ProjectCreationValidationError, ProjectCreationValidationFailure, ProjectCreationValidationResult, @@ -4415,7 +4367,8 @@

    src/index.ts

    removeStudioEventBinding, removeStudioPropBinding, resolveDefaultInsertPlacement, resolveInsertCatalogEntries, resolveInsertPlacement, - resolveStudioBindableEvents, resolveStudioBindableProps, + resolveMoveNodePlacement, resolveStudioBindableEvents, + resolveStudioBindableProps, resolveStudioInstancePropertyFields, resolveStudioInstancePropertyGroups, resolveStudioSchemaValueMeta, STUDIO_INSERT_RECIPES, @@ -4617,7 +4570,7 @@

    src/manifestState.test.ts

    src/manifestState.ts

    Referenced module

    @@ -4635,7 +4588,7 @@

    src/manifestState.ts

    insertRouteAtParentPath, insertStudioManifestNodeAtPlacement, isRouteGroupSegment, listScreenIdsInRouteOrder, makeUniqueRouteNameForParent, - makeUniqueSiblingRouteName, moveStudioManifestNode, + makeUniqueSiblingRouteName, moveStudioManifestNodeToPlacement, pathToKey, removeScreenIdFromRoutes, reorderStudioManifestScreens, resolveActiveRootNode, resolveInitialActiveScreenId, @@ -4892,16 +4845,15 @@

    src/root.test.ts

    src/root.ts

    Referenced module

    Dependencies: None

    Exports: ACTION_REGISTRY, - ActionDefinition, addNodeToTree, - analyzeProjectAuthHealth, AnkhAdminPage, - AnkhAdminShell, AnkhStudio, + ActionDefinition, analyzeProjectAuthHealth, + AnkhAdminPage, AnkhAdminShell, AnkhStudio, appendStudioEventBinding, assertMetadataOnlyResponse, assessStudioBindingCompatibility, buildInsertCatalogEntries, canAcceptChild, @@ -4922,14 +4874,14 @@

    src/root.ts

    insertNodeAtPlacement, InsertNodeAtPlacementArgs, InsertNodeAtPlacementResult, InsertRecipe, InsertRecipeIssue, InsertRecipeNode, - ModuleDefinition, moveNodeInTree, - moveNodeToPlacement, MoveNodeToPlacementArgs, - MoveNodeToPlacementResult, NodePlacement, - PlacementFailureCode, PlacementFailureReason, - PlacementKind, PlacementResolutionResult, - PlacementValidationResult, ProjectAuthDiagnostic, - ProjectAuthDiagnosticSeverity, ProjectAuthHealth, - ProjectAuthHealthStatus, ProjectCreationValidationCode, + ModuleDefinition, moveNodeToPlacement, + MoveNodeToPlacementArgs, MoveNodeToPlacementResult, + NodePlacement, PlacementFailureCode, + PlacementFailureReason, PlacementKind, + PlacementResolutionResult, PlacementValidationResult, + ProjectAuthDiagnostic, ProjectAuthDiagnosticSeverity, + ProjectAuthHealth, ProjectAuthHealthStatus, + ProjectCreationValidationCode, ProjectCreationValidationError, ProjectCreationValidationFailure, ProjectCreationValidationResult, ProjectDetailScreen, @@ -4941,7 +4893,8 @@

    src/root.ts

    removeNodeFromTree, removeStudioEventBinding, removeStudioPropBinding, resolveDefaultInsertPlacement, resolveInsertCatalogEntries, resolveInsertPlacement, - resolveStudioBindableEvents, resolveStudioBindableProps, + resolveMoveNodePlacement, resolveStudioBindableEvents, + resolveStudioBindableProps, resolveStudioInstancePropertyFields, resolveStudioInstancePropertyGroups, resolveStudioSchemaValueMeta, STUDIO_INSERT_RECIPES, @@ -5036,7 +4989,7 @@

    src/runtime/appExtensionRegistry.ts

    src/runtime/index.ts

    Referenced module

    @@ -5061,6 +5014,7 @@

    src/runtime/index.ts

    STUDIO_APP_EXTENSION_COMPONENT_REGISTRY, STUDIO_APP_EXTENSION_INTERACTION_POLICY_SUPPORT, STUDIO_PREVIEW_COMPONENT_REGISTRY, + StudioCanvasInteractionAdapter, StudioInteractionPolicyResolverArgs, StudioLocalizationPreview, StudioLocalizationPreviewInput, StudioPreviewRegistryOptions, @@ -5280,23 +5234,25 @@

    src/runtime/stationarySelection.test.ts

    src/runtime/stationarySelection.ts

    Referenced module

    - Dependencies: - src/runtime/indicatorRefreshCoordinator.ts, + Dependencies: src/canvasDragModel.ts, + src/index.ts, src/runtime/indicatorRefreshCoordinator.ts, src/runtime/indicatorSettleCoordinator.ts, src/runtime/runtimeNodeMeasurement.ts, src/runtime/stationarySelectionCoordinator.ts, - src/runtime/stationarySelectionInputState.ts + src/runtime/stationarySelectionInputState.ts, + src/ui/canvas/StudioCanvasDndOverlay.tsx

    Exports: CommitSelectionResult, createStudioStationarySelectionWrapNode, StationarySelectionCoordinator, StationaryTapSelector, - TransactionState, useStudioUnsupportedNodeMeasurement + StudioCanvasInteractionAdapter, TransactionState, + useStudioUnsupportedNodeMeasurement

    src/ui/AnkhStudio.ts

    Dependencies: src/core/StudioContext.ts

    Exports: AnkhStudio, AnkhStudioProps

    +
    +

    src/ui/canvas/canvasDndInteraction.test.ts

    +

    Referenced module

    +

    + Dependencies: src/canvasDropZones.ts, + src/ui/canvas/canvasDndInteraction.ts +

    +

    Exports: None

    +
    +
    +

    src/ui/canvas/canvasDndInteraction.ts

    +

    Referenced module

    +

    + Dependencies: src/canvasDragModel.ts, + src/canvasDropZones.ts, src/index.ts +

    +

    + Exports: activateCanvasDrag, + CanvasDragSessionCallbacks, commitCanvasDrop, + completeCanvasDropAfterAdapter, + createCanvasDraggableSessionKey, resetCanvasDragSession, + sortCanvasDropTargetsBySpecificity +

    +
    +
    +

    src/ui/canvas/StudioCanvasDndOverlay.test.ts

    +

    Referenced module

    +

    Dependencies: None

    +

    Exports: None

    +
    +
    +

    src/ui/canvas/StudioCanvasDndOverlay.tsx

    +

    Referenced module

    +

    + Dependencies: src/canvasDragModel.ts, + src/canvasDropZones.ts, src/index.ts, + src/insertModalModel.ts, + src/runtime/runtimeNodeMeasurement.ts, + src/ui/canvas/canvasDndInteraction.ts +

    +

    + Exports: StudioCanvasDndOverlay, + StudioCanvasDndOverlayProps +

    +
    src/ui/studioAppBarModel.ts StudioAppBarContextAction

    +
    +

    src/ui/StudioDeleteDialog.tsx

    +

    Referenced module

    +

    Dependencies: None

    +

    + Exports: StudioDeleteDialog, + StudioDeleteDialogProps +

    +
    +
    +

    src/ui/StudioInsertDialog.tsx

    +

    Referenced module

    +

    + Dependencies: src/index.ts, + src/insertModalModel.ts +

    +

    + Exports: StudioInsertDialog, + StudioInsertDialogProps +

    +
    src/ui/useStudioAppBarAugmentation.test.ts

    src/ui/useStudioAppBarAugmentation.ts

    Referenced module

    Dependencies: src/core/StudioContext.ts, + src/index.ts, src/insertModalModel.ts, src/studioAdminRouteModel.ts, src/studioSelectionModel.ts, - src/ui/studioAppBarModel.ts + src/ui/studioAppBarModel.ts, + src/ui/StudioDeleteDialog.tsx, + src/ui/StudioInsertDialog.tsx

    Exports: StudioAppBarAugmentation, @@ -6256,14 +6296,13 @@

    src/upsertExternalApiDataSource.ts

    src/utils/treeUtils.ts

    Referenced module

    Dependencies: src/index.ts

    - Exports: addNodeToTree, cloneWithNewIds, - findNodeById, moveNodeInTree, + Exports: cloneWithNewIds, findNodeById, removeNodeFromTree, updateNodeInTree

    @@ -7324,7 +7363,7 @@

    src/index.ts

    data-search="ACTION_REGISTRY value src/index.ts " >

    ACTION_REGISTRY

    -

    value • src/index.ts:384:14

    +

    value • src/index.ts:385:14

    Export paths: src/index.ts

    Related symbols: None
    @@ -7335,7 +7374,7 @@

    ACTION_REGISTRY

    data-search="ActionDefinition type src/index.ts StudioActionPayloadSchema" >

    ActionDefinition

    -

    type • src/index.ts:290:1

    +

    type • src/index.ts:291:1

    Export paths: src/index.ts

    @@ -7394,59 +7433,13 @@

    ActionDefinition

    -
    -

    addNodeToTree

    -

    value • src/index.ts:606:14

    - -

    Export paths: src/index.ts

    -
    - Related symbols: -
      -
    • StudioComponentMetaRegistry
    • -
    -
    -
    -
    Signature
    -
    -(args: { root: UiNode; targetId: string; newNode: UiNode; componentMeta: StudioComponentMetaRegistry; mode?: "append" | "prepend"; }) => UiNode
    - - - - - - - - - - - - - - - - - -
    ParameterTypeRequiredDescription
    args - { root: UiNode; targetId: string; newNode: UiNode; componentMeta: - StudioComponentMetaRegistry; mode?: "append" | - "prepend"; } - yes
    -

    Returns: UiNode

    -
    -

    buildInsertCatalogEntries

    -

    function • src/index.ts:1318:1

    +

    function • src/index.ts:1327:1

    Export paths: src/index.ts

    @@ -7493,7 +7486,7 @@
    Signature
    data-search="canAcceptChild function src/index.ts StudioComponentMetaRegistry (args: { parentType: string; childType: string; componentMeta: StudioComponentMetaRegistry; }) => boolean" >

    canAcceptChild

    -

    function • src/index.ts:765:1

    +

    function • src/index.ts:703:1

    Export paths: src/index.ts

    @@ -7538,7 +7531,7 @@
    Signature
    data-search="cloneWithNewIds value src/index.ts StudioIdGenerator (node: UiNode, createId?: StudioIdGenerator) => UiNode" >

    cloneWithNewIds

    -

    value • src/index.ts:531:14

    +

    value • src/index.ts:532:14

    Export paths: src/index.ts

    @@ -7583,7 +7576,7 @@
    Signature
    data-search="createNodeFromCatalogEntry function src/index.ts InsertCatalogEntry StudioComponentMetaRegistry StudioIdGenerator (entry: InsertCatalogEntry, componentMeta: StudioComponentMetaRegistry, createId?: StudioIdGenerator) => UiNode" >

    createNodeFromCatalogEntry

    -

    function • src/index.ts:1237:1

    +

    function • src/index.ts:1246:1

    Export paths: src/index.ts

    @@ -7637,7 +7630,7 @@
    Signature
    data-search="findNodeById value src/index.ts (root: UiNode, id: string) => UiNode | null" >

    findNodeById

    -

    value • src/index.ts:548:14

    +

    value • src/index.ts:549:14

    Export paths: src/index.ts

    Related symbols: None
    @@ -7677,7 +7670,7 @@
    Signature
    data-search="generateStudioId value src/index.ts (prefix?: string | undefined) => string" >

    generateStudioId

    -

    value • src/index.ts:524:14

    +

    value • src/index.ts:525:14

    Export paths: src/index.ts

    Related symbols: None
    @@ -7711,7 +7704,7 @@
    Signature
    data-search="getInsertCatalogCategoryLabel function src/index.ts (category: string) => string" >

    getInsertCatalogCategoryLabel

    -

    function • src/index.ts:1163:1

    +

    function • src/index.ts:1172:1

    Export paths: src/index.ts

    Related symbols: None
    @@ -7745,7 +7738,7 @@
    Signature
    data-search="InsertCatalogComponentEntry type src/index.ts InsertCatalogDisabledReason InsertCatalogEntryStatus NodePlacement" >

    InsertCatalogComponentEntry

    -

    type • src/index.ts:268:1

    +

    type • src/index.ts:269:1

    Export paths: src/index.ts

    @@ -7847,7 +7840,7 @@

    InsertCatalogComponentEntry

    data-search="InsertCatalogDisabledReason type src/index.ts InsertCatalogDisabledReasonCode InsertRecipeIssue" >

    InsertCatalogDisabledReason

    -

    type • src/index.ts:250:1

    +

    type • src/index.ts:251:1

    Export paths: src/index.ts

    @@ -7899,7 +7892,7 @@

    InsertCatalogDisabledReason

    data-search="InsertCatalogDisabledReasonCode unknown src/index.ts " >

    InsertCatalogDisabledReasonCode

    -

    unknown • src/index.ts:227:1

    +

    unknown • src/index.ts:228:1

    Export paths: src/index.ts

    Related symbols: None
    @@ -7910,7 +7903,7 @@

    InsertCatalogDisabledReasonCode

    data-search="InsertCatalogEntry unknown src/index.ts " >

    InsertCatalogEntry

    -

    unknown • src/index.ts:278:1

    +

    unknown • src/index.ts:279:1

    Export paths: src/index.ts

    Related symbols: None
    @@ -7921,7 +7914,7 @@

    InsertCatalogEntry

    data-search="InsertCatalogEntryBase type src/index.ts InsertCatalogDisabledReason InsertCatalogEntryKind InsertCatalogEntryStatus NodePlacement" >

    InsertCatalogEntryBase

    -

    type • src/index.ts:256:1

    +

    type • src/index.ts:257:1

    Export paths: src/index.ts

    @@ -8017,7 +8010,7 @@

    InsertCatalogEntryBase

    data-search="InsertCatalogEntryKind unknown src/index.ts " >

    InsertCatalogEntryKind

    -

    unknown • src/index.ts:224:1

    +

    unknown • src/index.ts:225:1

    Export paths: src/index.ts

    Related symbols: None
    @@ -8028,7 +8021,7 @@

    InsertCatalogEntryKind

    data-search="InsertCatalogEntryStatus unknown src/index.ts " >

    InsertCatalogEntryStatus

    -

    unknown • src/index.ts:225:1

    +

    unknown • src/index.ts:226:1

    Export paths: src/index.ts

    Related symbols: None
    @@ -8039,7 +8032,7 @@

    InsertCatalogEntryStatus

    data-search="InsertCatalogRecipeEntry type src/index.ts InsertCatalogDisabledReason InsertCatalogEntryStatus InsertRecipe NodePlacement" >

    InsertCatalogRecipeEntry

    -

    type • src/index.ts:273:1

    +

    type • src/index.ts:274:1

    Export paths: src/index.ts

    @@ -8142,7 +8135,7 @@

    InsertCatalogRecipeEntry

    data-search="insertNodeAtPlacement function src/index.ts InsertNodeAtPlacementArgs InsertNodeAtPlacementResult (args: InsertNodeAtPlacementArgs) => InsertNodeAtPlacementResult | null" >

    insertNodeAtPlacement

    -

    function • src/index.ts:995:1

    +

    function • src/index.ts:965:1

    Export paths: src/index.ts

    @@ -8183,7 +8176,7 @@
    Signature
    data-search="InsertNodeAtPlacementArgs type src/index.ts NodePlacement StudioComponentMetaRegistry" >

    InsertNodeAtPlacementArgs

    -

    type • src/index.ts:938:1

    +

    type • src/index.ts:908:1

    Export paths: src/index.ts

    @@ -8242,7 +8235,7 @@

    InsertNodeAtPlacementArgs

    data-search="InsertNodeAtPlacementResult type src/index.ts " >

    InsertNodeAtPlacementResult

    -

    type • src/index.ts:945:1

    +

    type • src/index.ts:915:1

    Export paths: src/index.ts

    Related symbols: None
    @@ -8281,7 +8274,7 @@

    InsertNodeAtPlacementResult

    data-search="InsertRecipe type src/index.ts InsertRecipeNode" >

    InsertRecipe

    -

    type • src/index.ts:235:1

    +

    type • src/index.ts:236:1

    Export paths: src/index.ts

    @@ -8346,7 +8339,7 @@

    InsertRecipe

    data-search="InsertRecipeIssue type src/index.ts " >

    InsertRecipeIssue

    -

    type • src/index.ts:243:1

    +

    type • src/index.ts:244:1

    Export paths: src/index.ts

    Related symbols: None
    @@ -8399,7 +8392,7 @@

    InsertRecipeIssue

    data-search="InsertRecipeNode type src/index.ts " >

    InsertRecipeNode

    -

    type • src/index.ts:230:1

    +

    type • src/index.ts:231:1

    Export paths: src/index.ts

    Related symbols: None
    @@ -8438,7 +8431,7 @@

    InsertRecipeNode

    data-search="ModuleDefinition type src/index.ts " >

    ModuleDefinition

    -

    type • src/index.ts:298:1

    +

    type • src/index.ts:299:1

    Export paths: src/index.ts

    Related symbols: None
    @@ -8485,60 +8478,13 @@

    ModuleDefinition

    -
    -

    moveNodeInTree

    -

    value • src/index.ts:639:14

    - -

    Export paths: src/index.ts

    -
    Related symbols: None
    -
    -
    Signature
    -
    -(root: UiNode, nodeId: string, direction: "up" | "down") => UiNode
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypeRequiredDescription
    direction"up" | "down"yes
    nodeIdstringyes
    rootUiNodeyes
    -

    Returns: UiNode

    -
    -

    moveNodeToPlacement

    -

    function • src/index.ts:1063:1

    +

    function • src/index.ts:1101:1

    Export paths: src/index.ts

    @@ -8578,7 +8524,7 @@
    Signature
    data-search="MoveNodeToPlacementArgs type src/index.ts NodePlacement StudioComponentMetaRegistry" >

    MoveNodeToPlacementArgs

    -

    type • src/index.ts:1022:1

    +

    type • src/index.ts:992:1

    Export paths: src/index.ts

    @@ -8637,7 +8583,7 @@

    MoveNodeToPlacementArgs

    data-search="MoveNodeToPlacementResult type src/index.ts " >

    MoveNodeToPlacementResult

    -

    type • src/index.ts:1029:1

    +

    type • src/index.ts:999:1

    Export paths: src/index.ts

    Related symbols: None
    @@ -8745,7 +8691,7 @@

    PlacementFailureCode

    data-search="PlacementFailureReason type src/index.ts PlacementFailureCode" >

    PlacementFailureReason

    -

    type • src/index.ts:205:1

    +

    type • src/index.ts:206:1

    Export paths: src/index.ts

    @@ -8800,7 +8746,7 @@

    PlacementKind

    data-search="PlacementResolutionResult unknown src/index.ts " >

    PlacementResolutionResult

    -

    unknown • src/index.ts:217:1

    +

    unknown • src/index.ts:218:1

    Export paths: src/index.ts

    Related symbols: None
    @@ -8811,7 +8757,7 @@

    PlacementResolutionResult

    data-search="PlacementValidationResult unknown src/index.ts " >

    PlacementValidationResult

    -

    unknown • src/index.ts:210:1

    +

    unknown • src/index.ts:211:1

    Export paths: src/index.ts

    Related symbols: None
    @@ -8822,7 +8768,7 @@

    PlacementValidationResult

    data-search="removeNodeFromTree value src/index.ts (root: UiNode, nodeId: string) => UiNode | null" >

    removeNodeFromTree

    -

    value • src/index.ts:588:14

    +

    value • src/index.ts:589:14

    Export paths: src/index.ts

    Related symbols: None
    @@ -8862,7 +8808,7 @@
    Signature
    data-search="resolveDefaultInsertPlacement function src/index.ts PlacementResolutionResult StudioComponentMetaRegistry (args: { root: UiNode; selectedNodeId: string | null; childType: string; componentMeta: StudioComponentMetaRegistry; }) => PlacementResolutionResult" >

    resolveDefaultInsertPlacement

    -

    function • src/index.ts:893:1

    +

    function • src/index.ts:863:1

    Export paths: src/index.ts

    @@ -8908,7 +8854,7 @@
    Signature
    data-search="resolveInsertCatalogEntries function src/index.ts InsertCatalogEntry StudioComponentMetaRegistry (args: { entries: readonly InsertCatalogEntry[]; root: UiNode | null; selectedNodeId: string | null; componentMeta: StudioComponentMetaRegistry; }) => InsertCatalogEntry[]" >

    resolveInsertCatalogEntries

    -

    function • src/index.ts:1360:1

    +

    function • src/index.ts:1369:1

    Export paths: src/index.ts

    @@ -8955,7 +8901,7 @@
    Signature
    data-search="resolveInsertPlacement function src/index.ts PlacementKind PlacementResolutionResult StudioComponentMetaRegistry (args: { root: UiNode; targetNodeId: string; childType: string; componentMeta: StudioComponentMetaRegistry; kind: PlacementKind; }) => PlacementResolutionResult" >

    resolveInsertPlacement

    -

    function • src/index.ts:832:1

    +

    function • src/index.ts:802:1

    Export paths: src/index.ts

    @@ -8996,13 +8942,53 @@
    Signature

    Returns: PlacementResolutionResult

    +
    +

    resolveMoveNodePlacement

    +

    function • src/index.ts:1033:1

    + +

    Export paths: src/index.ts

    +
    + Related symbols: +
      +
    • MoveNodeToPlacementArgs
    • +
    • PlacementResolutionResult
    • +
    +
    +
    +
    Signature
    +
    (args: MoveNodeToPlacementArgs) => PlacementResolutionResult
    + + + + + + + + + + + + + + + + + +
    ParameterTypeRequiredDescription
    argsMoveNodeToPlacementArgsyes
    +

    Returns: PlacementResolutionResult

    +
    +

    STUDIO_INSERT_RECIPES

    -

    value • src/index.ts:1130:14

    +

    value • src/index.ts:1139:14

    Export paths: src/index.ts

    Related symbols: None
    @@ -9046,7 +9032,7 @@

    STUDIO_PUBLIC_CONTRACTS

    data-search="StudioActionPayloadField type src/index.ts StudioActionPayloadPrimitive" >

    StudioActionPayloadField

    -

    type • src/index.ts:282:1

    +

    type • src/index.ts:283:1

    Export paths: src/index.ts

    @@ -9097,7 +9083,7 @@

    StudioActionPayloadField

    data-search="StudioActionPayloadPrimitive unknown src/index.ts " >

    StudioActionPayloadPrimitive

    -

    unknown • src/index.ts:280:1

    +

    unknown • src/index.ts:281:1

    Export paths: src/index.ts

    Related symbols: None
    @@ -9108,7 +9094,7 @@

    StudioActionPayloadPrimitive

    data-search="StudioActionPayloadSchema unknown src/index.ts " >

    StudioActionPayloadSchema

    -

    unknown • src/index.ts:288:1

    +

    unknown • src/index.ts:289:1

    Export paths: src/index.ts

    Related symbols: None
    @@ -9152,7 +9138,7 @@

    StudioAdminStaticRoutePath

    data-search="StudioCommand unknown src/index.ts " >

    StudioCommand

    -

    unknown • src/index.ts:323:1

    +

    unknown • src/index.ts:324:1

    Export paths: src/index.ts

    Related symbols: None
    @@ -9163,7 +9149,7 @@

    StudioCommand

    data-search="StudioComponentBlueprint type src/index.ts " >

    StudioComponentBlueprint

    -

    type • src/index.ts:307:1

    +

    type • src/index.ts:308:1

    Export paths: src/index.ts

    Related symbols: None
    @@ -9202,7 +9188,7 @@

    StudioComponentBlueprint

    data-search="StudioComponentMeta type src/index.ts StudioComponentBlueprint" >

    StudioComponentMeta

    -

    type • src/index.ts:312:1

    +

    type • src/index.ts:313:1

    Export paths: src/index.ts

    @@ -9260,7 +9246,7 @@

    StudioComponentMeta

    data-search="StudioComponentMetaRegistry unknown src/index.ts " >

    StudioComponentMetaRegistry

    -

    unknown • src/index.ts:319:1

    +

    unknown • src/index.ts:320:1

    Export paths: src/index.ts

    Related symbols: None
    @@ -9268,10 +9254,10 @@

    StudioComponentMetaRegistry

    StudioContextValue

    -

    type • src/index.ts:339:1

    +

    type • src/index.ts:340:1

    Export paths: src/index.ts

    @@ -9280,6 +9266,7 @@

    StudioContextValue

  • InsertCatalogEntry
  • NodePlacement
  • StudioAdminRouteId
  • +
  • StudioComponentMetaRegistry
  • StudioLocale
  • StudioManifest
  • StudioMode
  • @@ -9352,6 +9339,13 @@

    StudioContextValue

    yes + + componentMeta + property + StudioComponentMetaRegistry + yes + + deleteGeneratedApi property @@ -9429,18 +9423,6 @@

    StudioContextValue

    yes - - moveNode - property - - (id: StudioNodeId, direction: "up" | "down") => - void - - yes - - moveNodeToPlacement property @@ -9710,7 +9692,7 @@

    StudioContextValue

    data-search="StudioEvent unknown src/index.ts " >

    StudioEvent

    -

    unknown • src/index.ts:332:1

    +

    unknown • src/index.ts:333:1

    Export paths: src/index.ts

    Related symbols: None
    @@ -9721,7 +9703,7 @@

    StudioEvent

    data-search="StudioIdGenerator unknown src/index.ts " >

    StudioIdGenerator

    -

    unknown • src/index.ts:321:1

    +

    unknown • src/index.ts:322:1

    Export paths: src/index.ts

    Related symbols: None
    @@ -10070,7 +10052,7 @@

    ThemeUpdates

    data-search="TPL_SCREEN_EMPTY value src/index.ts " >

    TPL_SCREEN_EMPTY

    -

    value • src/index.ts:476:14

    +

    value • src/index.ts:477:14

    Export paths: src/index.ts

    Related symbols: None
    @@ -10081,7 +10063,7 @@

    TPL_SCREEN_EMPTY

    data-search="updateNodeInTree value src/index.ts (root: UiNode, id: string, newProps: Record<string, unknown>) => UiNode" >

    updateNodeInTree

    -

    value • src/index.ts:560:14

    +

    value • src/index.ts:561:14

    Export paths: src/index.ts

    Related symbols: None
    @@ -10128,7 +10110,7 @@
    Signature
    data-search="validateInsertRecipe function src/index.ts InsertRecipe InsertRecipeIssue StudioComponentMetaRegistry (recipe: InsertRecipe, componentMeta: StudioComponentMetaRegistry) => InsertRecipeIssue | null" >

    validateInsertRecipe

    -

    function • src/index.ts:1180:1

    +

    function • src/index.ts:1189:1

    Export paths: src/index.ts

    @@ -10176,7 +10158,7 @@
    Signature
    data-search="validateNodePlacement function src/index.ts NodePlacement PlacementValidationResult StudioComponentMetaRegistry (args: { root: UiNode; placement: NodePlacement; childType: string; componentMeta: StudioComponentMetaRegistry; }) => PlacementValidationResult" >

    validateNodePlacement

    -

    function • src/index.ts:777:1

    +

    function • src/index.ts:715:1

    Export paths: src/index.ts

    @@ -11769,12 +11751,6 @@

    Architecture overview

    module_src_routeUtils_ts module_src_core_StudioProvider_ts --> module_src_studioSelectionModel_ts module_src_core_StudioProvider_ts --> module_src_ui_admin_AuthAdminSession_tsx - module_src_dnd_index_ts["src/dnd/index.ts"] package__ankhorage_studio - -.-> module_src_dnd_index_ts - module_src_dnd_primitives_ts["src/dnd/primitives.ts"] - package__ankhorage_studio -.-> module_src_dnd_primitives_ts - module_src_dnd_state_ts["src/dnd/state.ts"] package__ankhorage_studio - -.-> module_src_dnd_state_ts module_src_externalApiApi_ts["src/externalApiApi.ts"] package__ankhorage_studio -.-> module_src_externalApiApi_ts module_src_externalApiApi_ts --> module_src_core_constants_ts @@ -12624,6 +12600,8 @@

    Architecture overview

    package__ankhorage_studio -.-> module_src_runtime_stationarySelection_test_ts module_src_runtime_stationarySelection_ts["src/runtime/stationarySelection.ts"] package__ankhorage_studio -.-> module_src_runtime_stationarySelection_ts + module_src_runtime_stationarySelection_ts --> module_src_canvasDragModel_ts + module_src_runtime_stationarySelection_ts --> module_src_index_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_indicatorRefreshCoordinator_ts module_src_runtime_stationarySelection_ts --> @@ -12634,6 +12612,8 @@

    Architecture overview

    module_src_runtime_stationarySelectionCoordinator_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_stationarySelectionInputState_ts + module_src_runtime_stationarySelection_ts --> + module_src_ui_canvas_StudioCanvasDndOverlay_tsx module_src_runtime_stationarySelectionCoordinator_test_ts["src/runtime/stationarySelectionCoordinator.test.ts"] package__ankhorage_studio -.-> module_src_runtime_stationarySelectionCoordinator_test_ts @@ -13045,8 +13025,37 @@

    Architecture overview

    module_src_ui_AnkhStudio_ts["src/ui/AnkhStudio.ts"] package__ankhorage_studio -.-> module_src_ui_AnkhStudio_ts module_src_ui_AnkhStudio_ts --> module_src_core_StudioContext_ts + module_src_ui_canvas_canvasDndInteraction_test_ts["src/ui/canvas/canvasDndInteraction.test.ts"] + package__ankhorage_studio -.-> module_src_ui_canvas_canvasDndInteraction_test_ts + module_src_ui_canvas_canvasDndInteraction_test_ts --> + module_src_canvasDropZones_ts module_src_ui_canvas_canvasDndInteraction_test_ts + --> module_src_ui_canvas_canvasDndInteraction_ts + module_src_ui_canvas_canvasDndInteraction_ts["src/ui/canvas/canvasDndInteraction.ts"] + package__ankhorage_studio -.-> module_src_ui_canvas_canvasDndInteraction_ts + module_src_ui_canvas_canvasDndInteraction_ts --> module_src_canvasDragModel_ts + module_src_ui_canvas_canvasDndInteraction_ts --> module_src_canvasDropZones_ts + module_src_ui_canvas_canvasDndInteraction_ts --> module_src_index_ts + module_src_ui_canvas_StudioCanvasDndOverlay_test_ts["src/ui/canvas/StudioCanvasDndOverlay.test.ts"] + package__ankhorage_studio -.-> + module_src_ui_canvas_StudioCanvasDndOverlay_test_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx["src/ui/canvas/StudioCanvasDndOverlay.tsx"] + package__ankhorage_studio -.-> module_src_ui_canvas_StudioCanvasDndOverlay_tsx + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_canvasDragModel_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_canvasDropZones_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_index_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> + module_src_insertModalModel_ts module_src_ui_canvas_StudioCanvasDndOverlay_tsx + --> module_src_runtime_runtimeNodeMeasurement_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> + module_src_ui_canvas_canvasDndInteraction_ts module_src_ui_studioAppBarModel_ts["src/ui/studioAppBarModel.ts"] package__ankhorage_studio -.-> module_src_ui_studioAppBarModel_ts + module_src_ui_StudioDeleteDialog_tsx["src/ui/StudioDeleteDialog.tsx"] + package__ankhorage_studio -.-> module_src_ui_StudioDeleteDialog_tsx + module_src_ui_StudioInsertDialog_tsx["src/ui/StudioInsertDialog.tsx"] + package__ankhorage_studio -.-> module_src_ui_StudioInsertDialog_tsx + module_src_ui_StudioInsertDialog_tsx --> module_src_index_ts + module_src_ui_StudioInsertDialog_tsx --> module_src_insertModalModel_ts module_src_ui_useStudioAppBarAugmentation_test_ts["src/ui/useStudioAppBarAugmentation.test.ts"] package__ankhorage_studio -.-> module_src_ui_useStudioAppBarAugmentation_test_ts module_src_ui_useStudioAppBarAugmentation_test_ts --> @@ -13054,11 +13063,16 @@

    Architecture overview

    module_src_ui_useStudioAppBarAugmentation_ts["src/ui/useStudioAppBarAugmentation.ts"] package__ankhorage_studio -.-> module_src_ui_useStudioAppBarAugmentation_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_core_StudioContext_ts + module_src_ui_useStudioAppBarAugmentation_ts --> module_src_index_ts + module_src_ui_useStudioAppBarAugmentation_ts --> module_src_insertModalModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_studioAdminRouteModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_studioSelectionModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> - module_src_ui_studioAppBarModel_ts + module_src_ui_studioAppBarModel_ts module_src_ui_useStudioAppBarAugmentation_ts + --> module_src_ui_StudioDeleteDialog_tsx + module_src_ui_useStudioAppBarAugmentation_ts --> + module_src_ui_StudioInsertDialog_tsx module_src_upsertExternalApiDataSource_ts["src/upsertExternalApiDataSource.ts"] package__ankhorage_studio -.-> module_src_upsertExternalApiDataSource_ts module_src_utils_treeUtils_ts["src/utils/treeUtils.ts"] @@ -13258,12 +13272,6 @@

    Architecture overview

    module_src_core_StudioProvider_ts --> module_src_routeUtils_ts module_src_core_StudioProvider_ts --> module_src_studioSelectionModel_ts module_src_core_StudioProvider_ts --> module_src_ui_admin_AuthAdminSession_tsx - module_src_dnd_index_ts["src/dnd/index.ts"] - package__ankhorage_studio -.-> module_src_dnd_index_ts - module_src_dnd_primitives_ts["src/dnd/primitives.ts"] - package__ankhorage_studio -.-> module_src_dnd_primitives_ts - module_src_dnd_state_ts["src/dnd/state.ts"] - package__ankhorage_studio -.-> module_src_dnd_state_ts module_src_externalApiApi_ts["src/externalApiApi.ts"] package__ankhorage_studio -.-> module_src_externalApiApi_ts module_src_externalApiApi_ts --> module_src_core_constants_ts @@ -13890,11 +13898,14 @@

    Architecture overview

    package__ankhorage_studio -.-> module_src_runtime_stationarySelection_test_ts module_src_runtime_stationarySelection_ts["src/runtime/stationarySelection.ts"] package__ankhorage_studio -.-> module_src_runtime_stationarySelection_ts + module_src_runtime_stationarySelection_ts --> module_src_canvasDragModel_ts + module_src_runtime_stationarySelection_ts --> module_src_index_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_indicatorRefreshCoordinator_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_indicatorSettleCoordinator_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_runtimeNodeMeasurement_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_stationarySelectionCoordinator_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_stationarySelectionInputState_ts + module_src_runtime_stationarySelection_ts --> module_src_ui_canvas_StudioCanvasDndOverlay_tsx module_src_runtime_stationarySelectionCoordinator_test_ts["src/runtime/stationarySelectionCoordinator.test.ts"] package__ankhorage_studio -.-> module_src_runtime_stationarySelectionCoordinator_test_ts module_src_runtime_stationarySelectionCoordinator_test_ts --> module_src_runtime_stationarySelectionCoordinator_ts @@ -14179,17 +14190,46 @@

    Architecture overview

    module_src_ui_AnkhStudio_ts["src/ui/AnkhStudio.ts"] package__ankhorage_studio -.-> module_src_ui_AnkhStudio_ts module_src_ui_AnkhStudio_ts --> module_src_core_StudioContext_ts + module_src_ui_canvas_canvasDndInteraction_test_ts["src/ui/canvas/canvasDndInteraction.test.ts"] + package__ankhorage_studio -.-> module_src_ui_canvas_canvasDndInteraction_test_ts + module_src_ui_canvas_canvasDndInteraction_test_ts --> module_src_canvasDropZones_ts + module_src_ui_canvas_canvasDndInteraction_test_ts --> module_src_ui_canvas_canvasDndInteraction_ts + module_src_ui_canvas_canvasDndInteraction_ts["src/ui/canvas/canvasDndInteraction.ts"] + package__ankhorage_studio -.-> module_src_ui_canvas_canvasDndInteraction_ts + module_src_ui_canvas_canvasDndInteraction_ts --> module_src_canvasDragModel_ts + module_src_ui_canvas_canvasDndInteraction_ts --> module_src_canvasDropZones_ts + module_src_ui_canvas_canvasDndInteraction_ts --> module_src_index_ts + module_src_ui_canvas_StudioCanvasDndOverlay_test_ts["src/ui/canvas/StudioCanvasDndOverlay.test.ts"] + package__ankhorage_studio -.-> module_src_ui_canvas_StudioCanvasDndOverlay_test_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx["src/ui/canvas/StudioCanvasDndOverlay.tsx"] + package__ankhorage_studio -.-> module_src_ui_canvas_StudioCanvasDndOverlay_tsx + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_canvasDragModel_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_canvasDropZones_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_index_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_insertModalModel_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_runtime_runtimeNodeMeasurement_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_ui_canvas_canvasDndInteraction_ts module_src_ui_studioAppBarModel_ts["src/ui/studioAppBarModel.ts"] package__ankhorage_studio -.-> module_src_ui_studioAppBarModel_ts + module_src_ui_StudioDeleteDialog_tsx["src/ui/StudioDeleteDialog.tsx"] + package__ankhorage_studio -.-> module_src_ui_StudioDeleteDialog_tsx + module_src_ui_StudioInsertDialog_tsx["src/ui/StudioInsertDialog.tsx"] + package__ankhorage_studio -.-> module_src_ui_StudioInsertDialog_tsx + module_src_ui_StudioInsertDialog_tsx --> module_src_index_ts + module_src_ui_StudioInsertDialog_tsx --> module_src_insertModalModel_ts module_src_ui_useStudioAppBarAugmentation_test_ts["src/ui/useStudioAppBarAugmentation.test.ts"] package__ankhorage_studio -.-> module_src_ui_useStudioAppBarAugmentation_test_ts module_src_ui_useStudioAppBarAugmentation_test_ts --> module_src_ui_studioAppBarModel_ts module_src_ui_useStudioAppBarAugmentation_ts["src/ui/useStudioAppBarAugmentation.ts"] package__ankhorage_studio -.-> module_src_ui_useStudioAppBarAugmentation_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_core_StudioContext_ts + module_src_ui_useStudioAppBarAugmentation_ts --> module_src_index_ts + module_src_ui_useStudioAppBarAugmentation_ts --> module_src_insertModalModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_studioAdminRouteModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_studioSelectionModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_ui_studioAppBarModel_ts + module_src_ui_useStudioAppBarAugmentation_ts --> module_src_ui_StudioDeleteDialog_tsx + module_src_ui_useStudioAppBarAugmentation_ts --> module_src_ui_StudioInsertDialog_tsx module_src_upsertExternalApiDataSource_ts["src/upsertExternalApiDataSource.ts"] package__ankhorage_studio -.-> module_src_upsertExternalApiDataSource_ts module_src_utils_treeUtils_ts["src/utils/treeUtils.ts"] @@ -14262,9 +14302,6 @@

    Module relationships

    module_src_core_studioPackageBoundary_ts["src/core/studioPackageBoundary.ts"] module_src_core_StudioProvider_test_ts["src/core/StudioProvider.test.ts"] module_src_core_StudioProvider_ts["src/core/StudioProvider.ts"] - module_src_dnd_index_ts["src/dnd/index.ts"] - module_src_dnd_primitives_ts["src/dnd/primitives.ts"] - module_src_dnd_state_ts["src/dnd/state.ts"] module_src_externalApiApi_ts["src/externalApiApi.ts"] module_src_externalApiAuthoring_public_test_ts["src/externalApiAuthoring.public.test.ts"] module_src_externalApiAuthoring_ts["src/externalApiAuthoring.ts"] @@ -14516,7 +14553,13 @@

    Module relationships

    module_src_ui_admin_pages_ThemeAdminPage_test_ts["src/ui/admin/pages/ThemeAdminPage.test.ts"] module_src_ui_admin_pages_ThemeAdminPage_tsx["src/ui/admin/pages/ThemeAdminPage.tsx"] module_src_ui_AnkhStudio_ts["src/ui/AnkhStudio.ts"] + module_src_ui_canvas_canvasDndInteraction_test_ts["src/ui/canvas/canvasDndInteraction.test.ts"] + module_src_ui_canvas_canvasDndInteraction_ts["src/ui/canvas/canvasDndInteraction.ts"] + module_src_ui_canvas_StudioCanvasDndOverlay_test_ts["src/ui/canvas/StudioCanvasDndOverlay.test.ts"] + module_src_ui_canvas_StudioCanvasDndOverlay_tsx["src/ui/canvas/StudioCanvasDndOverlay.tsx"] module_src_ui_studioAppBarModel_ts["src/ui/studioAppBarModel.ts"] + module_src_ui_StudioDeleteDialog_tsx["src/ui/StudioDeleteDialog.tsx"] + module_src_ui_StudioInsertDialog_tsx["src/ui/StudioInsertDialog.tsx"] module_src_ui_useStudioAppBarAugmentation_test_ts["src/ui/useStudioAppBarAugmentation.test.ts"] module_src_ui_useStudioAppBarAugmentation_ts["src/ui/useStudioAppBarAugmentation.ts"] module_src_upsertExternalApiDataSource_ts["src/upsertExternalApiDataSource.ts"] @@ -15055,6 +15098,8 @@

    Module relationships

    module_src_runtime_runtimeNodeMeasurement_ts module_src_runtime_stationarySelection_public_test_ts --> module_src_runtime_index_ts module_src_runtime_stationarySelection_ts --> + module_src_canvasDragModel_ts module_src_runtime_stationarySelection_ts --> + module_src_index_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_indicatorRefreshCoordinator_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_indicatorSettleCoordinator_ts @@ -15064,6 +15109,8 @@

    Module relationships

    module_src_runtime_stationarySelectionCoordinator_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_stationarySelectionInputState_ts + module_src_runtime_stationarySelection_ts --> + module_src_ui_canvas_StudioCanvasDndOverlay_tsx module_src_runtime_stationarySelectionCoordinator_test_ts --> module_src_runtime_stationarySelectionCoordinator_ts module_src_runtime_stationarySelectionInputState_test_ts --> @@ -15299,14 +15346,35 @@

    Module relationships

    module_src_ui_admin_pages_adminThemeHarmony_ts module_src_ui_admin_pages_ThemeAdminPage_tsx --> module_src_ui_admin_pages_adminThemeModel_ts module_src_ui_AnkhStudio_ts --> - module_src_core_StudioContext_ts module_src_ui_useStudioAppBarAugmentation_test_ts + module_src_core_StudioContext_ts module_src_ui_canvas_canvasDndInteraction_test_ts + --> module_src_canvasDropZones_ts + module_src_ui_canvas_canvasDndInteraction_test_ts --> + module_src_ui_canvas_canvasDndInteraction_ts + module_src_ui_canvas_canvasDndInteraction_ts --> module_src_canvasDragModel_ts + module_src_ui_canvas_canvasDndInteraction_ts --> module_src_canvasDropZones_ts + module_src_ui_canvas_canvasDndInteraction_ts --> module_src_index_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_canvasDragModel_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_canvasDropZones_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_index_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> + module_src_insertModalModel_ts module_src_ui_canvas_StudioCanvasDndOverlay_tsx + --> module_src_runtime_runtimeNodeMeasurement_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> + module_src_ui_canvas_canvasDndInteraction_ts module_src_ui_StudioInsertDialog_tsx + --> module_src_index_ts module_src_ui_StudioInsertDialog_tsx --> + module_src_insertModalModel_ts module_src_ui_useStudioAppBarAugmentation_test_ts --> module_src_ui_studioAppBarModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_core_StudioContext_ts + module_src_ui_useStudioAppBarAugmentation_ts --> module_src_index_ts + module_src_ui_useStudioAppBarAugmentation_ts --> module_src_insertModalModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_studioAdminRouteModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_studioSelectionModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> - module_src_ui_studioAppBarModel_ts module_src_utils_treeUtils_ts --> + module_src_ui_studioAppBarModel_ts module_src_ui_useStudioAppBarAugmentation_ts + --> module_src_ui_StudioDeleteDialog_tsx + module_src_ui_useStudioAppBarAugmentation_ts --> + module_src_ui_StudioInsertDialog_tsx module_src_utils_treeUtils_ts --> module_src_index_ts module_src_workspacePlatform_test_ts --> module_src_workspacePlatform_ts module_src_workspaceSearch_ts --> module_src_projectWorkspaceContracts_ts module_src_workspaceSearch_ts --> @@ -15364,9 +15432,6 @@

    Module relationships

    module_src_core_studioPackageBoundary_ts["src/core/studioPackageBoundary.ts"] module_src_core_StudioProvider_test_ts["src/core/StudioProvider.test.ts"] module_src_core_StudioProvider_ts["src/core/StudioProvider.ts"] - module_src_dnd_index_ts["src/dnd/index.ts"] - module_src_dnd_primitives_ts["src/dnd/primitives.ts"] - module_src_dnd_state_ts["src/dnd/state.ts"] module_src_externalApiApi_ts["src/externalApiApi.ts"] module_src_externalApiAuthoring_public_test_ts["src/externalApiAuthoring.public.test.ts"] module_src_externalApiAuthoring_ts["src/externalApiAuthoring.ts"] @@ -15618,7 +15683,13 @@

    Module relationships

    module_src_ui_admin_pages_ThemeAdminPage_test_ts["src/ui/admin/pages/ThemeAdminPage.test.ts"] module_src_ui_admin_pages_ThemeAdminPage_tsx["src/ui/admin/pages/ThemeAdminPage.tsx"] module_src_ui_AnkhStudio_ts["src/ui/AnkhStudio.ts"] + module_src_ui_canvas_canvasDndInteraction_test_ts["src/ui/canvas/canvasDndInteraction.test.ts"] + module_src_ui_canvas_canvasDndInteraction_ts["src/ui/canvas/canvasDndInteraction.ts"] + module_src_ui_canvas_StudioCanvasDndOverlay_test_ts["src/ui/canvas/StudioCanvasDndOverlay.test.ts"] + module_src_ui_canvas_StudioCanvasDndOverlay_tsx["src/ui/canvas/StudioCanvasDndOverlay.tsx"] module_src_ui_studioAppBarModel_ts["src/ui/studioAppBarModel.ts"] + module_src_ui_StudioDeleteDialog_tsx["src/ui/StudioDeleteDialog.tsx"] + module_src_ui_StudioInsertDialog_tsx["src/ui/StudioInsertDialog.tsx"] module_src_ui_useStudioAppBarAugmentation_test_ts["src/ui/useStudioAppBarAugmentation.test.ts"] module_src_ui_useStudioAppBarAugmentation_ts["src/ui/useStudioAppBarAugmentation.ts"] module_src_upsertExternalApiDataSource_ts["src/upsertExternalApiDataSource.ts"] @@ -15974,11 +16045,14 @@

    Module relationships

    module_src_runtime_previewRuntimeConfig_ts --> module_src_runtime_previewRegistry_ts module_src_runtime_runtimeNodeMeasurement_test_ts --> module_src_runtime_runtimeNodeMeasurement_ts module_src_runtime_stationarySelection_public_test_ts --> module_src_runtime_index_ts + module_src_runtime_stationarySelection_ts --> module_src_canvasDragModel_ts + module_src_runtime_stationarySelection_ts --> module_src_index_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_indicatorRefreshCoordinator_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_indicatorSettleCoordinator_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_runtimeNodeMeasurement_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_stationarySelectionCoordinator_ts module_src_runtime_stationarySelection_ts --> module_src_runtime_stationarySelectionInputState_ts + module_src_runtime_stationarySelection_ts --> module_src_ui_canvas_StudioCanvasDndOverlay_tsx module_src_runtime_stationarySelectionCoordinator_test_ts --> module_src_runtime_stationarySelectionCoordinator_ts module_src_runtime_stationarySelectionInputState_test_ts --> module_src_runtime_stationarySelectionInputState_ts module_src_runtime_useRuntimeAction_ts --> module_src_runtime_runtimeActions_ts @@ -16121,11 +16195,28 @@

    Module relationships

    module_src_ui_admin_pages_ThemeAdminPage_tsx --> module_src_ui_admin_pages_adminThemeHarmony_ts module_src_ui_admin_pages_ThemeAdminPage_tsx --> module_src_ui_admin_pages_adminThemeModel_ts module_src_ui_AnkhStudio_ts --> module_src_core_StudioContext_ts + module_src_ui_canvas_canvasDndInteraction_test_ts --> module_src_canvasDropZones_ts + module_src_ui_canvas_canvasDndInteraction_test_ts --> module_src_ui_canvas_canvasDndInteraction_ts + module_src_ui_canvas_canvasDndInteraction_ts --> module_src_canvasDragModel_ts + module_src_ui_canvas_canvasDndInteraction_ts --> module_src_canvasDropZones_ts + module_src_ui_canvas_canvasDndInteraction_ts --> module_src_index_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_canvasDragModel_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_canvasDropZones_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_index_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_insertModalModel_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_runtime_runtimeNodeMeasurement_ts + module_src_ui_canvas_StudioCanvasDndOverlay_tsx --> module_src_ui_canvas_canvasDndInteraction_ts + module_src_ui_StudioInsertDialog_tsx --> module_src_index_ts + module_src_ui_StudioInsertDialog_tsx --> module_src_insertModalModel_ts module_src_ui_useStudioAppBarAugmentation_test_ts --> module_src_ui_studioAppBarModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_core_StudioContext_ts + module_src_ui_useStudioAppBarAugmentation_ts --> module_src_index_ts + module_src_ui_useStudioAppBarAugmentation_ts --> module_src_insertModalModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_studioAdminRouteModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_studioSelectionModel_ts module_src_ui_useStudioAppBarAugmentation_ts --> module_src_ui_studioAppBarModel_ts + module_src_ui_useStudioAppBarAugmentation_ts --> module_src_ui_StudioDeleteDialog_tsx + module_src_ui_useStudioAppBarAugmentation_ts --> module_src_ui_StudioInsertDialog_tsx module_src_utils_treeUtils_ts --> module_src_index_ts module_src_workspacePlatform_test_ts --> module_src_workspacePlatform_ts module_src_workspaceSearch_ts --> module_src_projectWorkspaceContracts_ts @@ -16185,9 +16276,6 @@

    Export graph

    module_src_core_studioPackageBoundary_ts["src/core/studioPackageBoundary.ts"] module_src_core_StudioProvider_test_ts["src/core/StudioProvider.test.ts"] module_src_core_StudioProvider_ts["src/core/StudioProvider.ts"] - module_src_dnd_index_ts["src/dnd/index.ts"] - module_src_dnd_primitives_ts["src/dnd/primitives.ts"] - module_src_dnd_state_ts["src/dnd/state.ts"] module_src_externalApiApi_ts["src/externalApiApi.ts"] module_src_externalApiAuthoring_public_test_ts["src/externalApiAuthoring.public.test.ts"] module_src_externalApiAuthoring_ts["src/externalApiAuthoring.ts"] @@ -16439,7 +16527,13 @@

    Export graph

    module_src_ui_admin_pages_ThemeAdminPage_test_ts["src/ui/admin/pages/ThemeAdminPage.test.ts"] module_src_ui_admin_pages_ThemeAdminPage_tsx["src/ui/admin/pages/ThemeAdminPage.tsx"] module_src_ui_AnkhStudio_ts["src/ui/AnkhStudio.ts"] + module_src_ui_canvas_canvasDndInteraction_test_ts["src/ui/canvas/canvasDndInteraction.test.ts"] + module_src_ui_canvas_canvasDndInteraction_ts["src/ui/canvas/canvasDndInteraction.ts"] + module_src_ui_canvas_StudioCanvasDndOverlay_test_ts["src/ui/canvas/StudioCanvasDndOverlay.test.ts"] + module_src_ui_canvas_StudioCanvasDndOverlay_tsx["src/ui/canvas/StudioCanvasDndOverlay.tsx"] module_src_ui_studioAppBarModel_ts["src/ui/studioAppBarModel.ts"] + module_src_ui_StudioDeleteDialog_tsx["src/ui/StudioDeleteDialog.tsx"] + module_src_ui_StudioInsertDialog_tsx["src/ui/StudioInsertDialog.tsx"] module_src_ui_useStudioAppBarAugmentation_test_ts["src/ui/useStudioAppBarAugmentation.test.ts"] module_src_ui_useStudioAppBarAugmentation_ts["src/ui/useStudioAppBarAugmentation.ts"] module_src_upsertExternalApiDataSource_ts["src/upsertExternalApiDataSource.ts"] @@ -16450,9 +16544,7 @@

    Export graph

    export_ACTION_REGISTRY["ACTION_REGISTRY"] module_src_index_ts --> export_ACTION_REGISTRY export_ActionDefinition["ActionDefinition"] module_src_index_ts --> export_ActionDefinition export_ActionDefinition -.-> - export_StudioActionPayloadSchema export_addNodeToTree["addNodeToTree"] - module_src_index_ts --> export_addNodeToTree export_addNodeToTree -.-> - export_StudioComponentMetaRegistry + export_StudioActionPayloadSchema export_appendStudioEventBinding["appendStudioEventBinding"] module_src_bindingMutationModel_ts --> export_appendStudioEventBinding export_assessStudioBindingCompatibility["assessStudioBindingCompatibility"] @@ -16548,11 +16640,9 @@

    Export graph

    export_InsertRecipeIssue export_InsertRecipeNode["InsertRecipeNode"] module_src_index_ts --> export_InsertRecipeNode export_ModuleDefinition["ModuleDefinition"] module_src_index_ts --> - export_ModuleDefinition export_moveNodeInTree["moveNodeInTree"] - module_src_index_ts --> export_moveNodeInTree - export_moveNodeToPlacement["moveNodeToPlacement"] module_src_index_ts - --> export_moveNodeToPlacement export_moveNodeToPlacement -.-> - export_MoveNodeToPlacementArgs export_moveNodeToPlacement -.-> + export_ModuleDefinition export_moveNodeToPlacement["moveNodeToPlacement"] + module_src_index_ts --> export_moveNodeToPlacement export_moveNodeToPlacement + -.-> export_MoveNodeToPlacementArgs export_moveNodeToPlacement -.-> export_MoveNodeToPlacementResult export_MoveNodeToPlacementArgs["MoveNodeToPlacementArgs"] module_src_index_ts --> export_MoveNodeToPlacementArgs @@ -16630,6 +16720,10 @@

    Export graph

    export_resolveInsertPlacement -.-> export_PlacementKind export_resolveInsertPlacement -.-> export_PlacementResolutionResult export_resolveInsertPlacement -.-> export_StudioComponentMetaRegistry + export_resolveMoveNodePlacement["resolveMoveNodePlacement"] + module_src_index_ts --> export_resolveMoveNodePlacement + export_resolveMoveNodePlacement -.-> export_MoveNodeToPlacementArgs + export_resolveMoveNodePlacement -.-> export_PlacementResolutionResult export_resolveStudioBindableEvents["resolveStudioBindableEvents"] module_src_bindingMetadataModel_ts --> export_resolveStudioBindableEvents export_resolveStudioBindableEvents -.-> export_StudioBindableEventOption @@ -16708,6 +16802,7 @@

    Export graph

    export_StudioContextValue export_StudioContextValue -.-> export_InsertCatalogEntry export_StudioContextValue -.-> export_NodePlacement export_StudioContextValue -.-> export_StudioAdminRouteId + export_StudioContextValue -.-> export_StudioComponentMetaRegistry export_StudioContextValue -.-> export_StudioLocale export_StudioContextValue -.-> export_StudioManifest export_StudioContextValue -.-> export_StudioMode export_StudioContextValue -.-> export_StudioModuleId export_StudioContextValue @@ -16837,9 +16932,6 @@

    Export graph

    module_src_core_studioPackageBoundary_ts["src/core/studioPackageBoundary.ts"] module_src_core_StudioProvider_test_ts["src/core/StudioProvider.test.ts"] module_src_core_StudioProvider_ts["src/core/StudioProvider.ts"] - module_src_dnd_index_ts["src/dnd/index.ts"] - module_src_dnd_primitives_ts["src/dnd/primitives.ts"] - module_src_dnd_state_ts["src/dnd/state.ts"] module_src_externalApiApi_ts["src/externalApiApi.ts"] module_src_externalApiAuthoring_public_test_ts["src/externalApiAuthoring.public.test.ts"] module_src_externalApiAuthoring_ts["src/externalApiAuthoring.ts"] @@ -17091,7 +17183,13 @@

    Export graph

    module_src_ui_admin_pages_ThemeAdminPage_test_ts["src/ui/admin/pages/ThemeAdminPage.test.ts"] module_src_ui_admin_pages_ThemeAdminPage_tsx["src/ui/admin/pages/ThemeAdminPage.tsx"] module_src_ui_AnkhStudio_ts["src/ui/AnkhStudio.ts"] + module_src_ui_canvas_canvasDndInteraction_test_ts["src/ui/canvas/canvasDndInteraction.test.ts"] + module_src_ui_canvas_canvasDndInteraction_ts["src/ui/canvas/canvasDndInteraction.ts"] + module_src_ui_canvas_StudioCanvasDndOverlay_test_ts["src/ui/canvas/StudioCanvasDndOverlay.test.ts"] + module_src_ui_canvas_StudioCanvasDndOverlay_tsx["src/ui/canvas/StudioCanvasDndOverlay.tsx"] module_src_ui_studioAppBarModel_ts["src/ui/studioAppBarModel.ts"] + module_src_ui_StudioDeleteDialog_tsx["src/ui/StudioDeleteDialog.tsx"] + module_src_ui_StudioInsertDialog_tsx["src/ui/StudioInsertDialog.tsx"] module_src_ui_useStudioAppBarAugmentation_test_ts["src/ui/useStudioAppBarAugmentation.test.ts"] module_src_ui_useStudioAppBarAugmentation_ts["src/ui/useStudioAppBarAugmentation.ts"] module_src_upsertExternalApiDataSource_ts["src/upsertExternalApiDataSource.ts"] @@ -17104,9 +17202,6 @@

    Export graph

    export_ActionDefinition["ActionDefinition"] module_src_index_ts --> export_ActionDefinition export_ActionDefinition -.-> export_StudioActionPayloadSchema - 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"] @@ -17203,8 +17298,6 @@

    Export graph

    module_src_index_ts --> export_InsertRecipeNode export_ModuleDefinition["ModuleDefinition"] module_src_index_ts --> export_ModuleDefinition - export_moveNodeInTree["moveNodeInTree"] - module_src_index_ts --> export_moveNodeInTree export_moveNodeToPlacement["moveNodeToPlacement"] module_src_index_ts --> export_moveNodeToPlacement export_moveNodeToPlacement -.-> export_MoveNodeToPlacementArgs @@ -17284,6 +17377,10 @@

    Export graph

    export_resolveInsertPlacement -.-> export_PlacementKind export_resolveInsertPlacement -.-> export_PlacementResolutionResult export_resolveInsertPlacement -.-> export_StudioComponentMetaRegistry + export_resolveMoveNodePlacement["resolveMoveNodePlacement"] + module_src_index_ts --> export_resolveMoveNodePlacement + export_resolveMoveNodePlacement -.-> export_MoveNodeToPlacementArgs + export_resolveMoveNodePlacement -.-> export_PlacementResolutionResult export_resolveStudioBindableEvents["resolveStudioBindableEvents"] module_src_bindingMetadataModel_ts --> export_resolveStudioBindableEvents export_resolveStudioBindableEvents -.-> export_StudioBindableEventOption @@ -17358,6 +17455,7 @@

    Export graph

    export_StudioContextValue -.-> export_InsertCatalogEntry export_StudioContextValue -.-> export_NodePlacement export_StudioContextValue -.-> export_StudioAdminRouteId + export_StudioContextValue -.-> export_StudioComponentMetaRegistry export_StudioContextValue -.-> export_StudioLocale export_StudioContextValue -.-> export_StudioManifest export_StudioContextValue -.-> export_StudioMode @@ -17447,29 +17545,6 @@

    Export graph

    module_src_projectIdentity_ts --> export_validateProjectCreationInput export_validateProjectCreationInput -.-> export_ProjectCreationValidationResult export_validateProjectCreationInput -.-> export_StudioProjectSummary - - -
    -
    -

    addNodeToTree sequence

    -

    diagrams/sequences/add-node-to-tree.mmd

    -
    - sequenceDiagram participant participant_addNodeToTree as addNodeToTree participant - participant_canAcceptChild as canAcceptChild - participant_addNodeToTree->>participant_canAcceptChild: canAcceptChild() - participant_canAcceptChild-->>participant_addNodeToTree: return -
    -
    - View Mermaid source -
    -sequenceDiagram
    -  participant participant_addNodeToTree as addNodeToTree
    -  participant participant_canAcceptChild as canAcceptChild
    -  participant_addNodeToTree->>participant_canAcceptChild: canAcceptChild()
    -  participant_canAcceptChild-->>participant_addNodeToTree: return
     
    @@ -17827,6 +17902,89 @@

    removeStudioPropBinding sequence

    participant_writeBinding->>participant_isEmptyBinding: isEmptyBinding() participant_isEmptyBinding-->>participant_writeBinding: return participant_writeBinding-->>participant_removeStudioPropBinding: return + + +
    +
    +

    resolveInsertPlacement sequence

    +

    diagrams/sequences/resolve-insert-placement.mmd

    +
    + sequenceDiagram participant participant_canAcceptChild as canAcceptChild participant + participant_findNodeById as findNodeById participant participant_findNodeWithParent + as findNodeWithParent participant participant_normalizeRel as normalizeRel + participant participant_resolveInsertPlacement as resolveInsertPlacement participant + participant_resolveRouteScreenFilePath as resolveRouteScreenFilePath participant + participant_validateNodePlacement as validateNodePlacement participant + participant_visit as visit + participant_resolveInsertPlacement->>participant_findNodeWithParent: + findNodeWithParent() participant_findNodeWithParent->>participant_visit: + visit() participant_visit->>participant_visit: visit() + participant_visit->>participant_visit: visit() + participant_visit->>participant_visit: visit() + participant_visit->>participant_visit: visit() + participant_visit->>participant_resolveRouteScreenFilePath: + resolveRouteScreenFilePath() + participant_resolveRouteScreenFilePath->>participant_normalizeRel: + normalizeRel() + participant_normalizeRel-->>participant_resolveRouteScreenFilePath: return + participant_resolveRouteScreenFilePath-->>participant_visit: return + participant_visit-->>participant_visit: return + participant_visit-->>participant_visit: return + participant_visit-->>participant_visit: return + participant_visit-->>participant_visit: return + participant_visit-->>participant_findNodeWithParent: return + participant_findNodeWithParent-->>participant_resolveInsertPlacement: return + participant_resolveInsertPlacement->>participant_validateNodePlacement: + validateNodePlacement() + participant_validateNodePlacement->>participant_findNodeById: findNodeById() + participant_findNodeById->>participant_findNodeById: findNodeById() + participant_findNodeById-->>participant_findNodeById: return + participant_findNodeById-->>participant_validateNodePlacement: return + participant_validateNodePlacement->>participant_canAcceptChild: + canAcceptChild() + participant_canAcceptChild-->>participant_validateNodePlacement: return + participant_validateNodePlacement-->>participant_resolveInsertPlacement: + return +
    +
    + View Mermaid source +
    +sequenceDiagram
    +  participant participant_canAcceptChild as canAcceptChild
    +  participant participant_findNodeById as findNodeById
    +  participant participant_findNodeWithParent as findNodeWithParent
    +  participant participant_normalizeRel as normalizeRel
    +  participant participant_resolveInsertPlacement as resolveInsertPlacement
    +  participant participant_resolveRouteScreenFilePath as resolveRouteScreenFilePath
    +  participant participant_validateNodePlacement as validateNodePlacement
    +  participant participant_visit as visit
    +  participant_resolveInsertPlacement->>participant_findNodeWithParent: findNodeWithParent()
    +  participant_findNodeWithParent->>participant_visit: visit()
    +  participant_visit->>participant_visit: visit()
    +  participant_visit->>participant_visit: visit()
    +  participant_visit->>participant_visit: visit()
    +  participant_visit->>participant_visit: visit()
    +  participant_visit->>participant_resolveRouteScreenFilePath: resolveRouteScreenFilePath()
    +  participant_resolveRouteScreenFilePath->>participant_normalizeRel: normalizeRel()
    +  participant_normalizeRel-->>participant_resolveRouteScreenFilePath: return
    +  participant_resolveRouteScreenFilePath-->>participant_visit: return
    +  participant_visit-->>participant_visit: return
    +  participant_visit-->>participant_visit: return
    +  participant_visit-->>participant_visit: return
    +  participant_visit-->>participant_visit: return
    +  participant_visit-->>participant_findNodeWithParent: return
    +  participant_findNodeWithParent-->>participant_resolveInsertPlacement: return
    +  participant_resolveInsertPlacement->>participant_validateNodePlacement: validateNodePlacement()
    +  participant_validateNodePlacement->>participant_findNodeById: findNodeById()
    +  participant_findNodeById->>participant_findNodeById: findNodeById()
    +  participant_findNodeById-->>participant_findNodeById: return
    +  participant_findNodeById-->>participant_validateNodePlacement: return
    +  participant_validateNodePlacement->>participant_canAcceptChild: canAcceptChild()
    +  participant_canAcceptChild-->>participant_validateNodePlacement: return
    +  participant_validateNodePlacement-->>participant_resolveInsertPlacement: return
     
    @@ -18960,32 +19118,55 @@

    isImageAssetShape

    >

    src/canvasDragModel.ts

    +
    +

    treeContainsNode

    +

    src/canvasDragModel.ts:33:1

    +

    No description available.

    +
    +
    +

    resolveCanvasDragSession

    +

    src/canvasDragModel.ts:38:1

    +

    No description available.

    +

    createStudioCanvasDragPayload

    -

    src/canvasDragModel.ts:16:1

    +

    src/canvasDragModel.ts:60:1

    No description available.

    isStudioCanvasDragPayload

    -

    src/canvasDragModel.ts:20:1

    +

    src/canvasDragModel.ts:64:1

    No description available.

    isValidCanvasDropZone

    -

    src/canvasDragModel.ts:28:1

    +

    src/canvasDragModel.ts:72:1

    No description available.

    resolveCanvasDropZoneSlots

    -

    src/canvasDragModel.ts:34:1

    +

    src/canvasDragModel.ts:78:1

    No description available.

    findDropZoneByKind

    -

    src/canvasDragModel.ts:47:1

    +

    src/canvasDragModel.ts:91:1

    +

    No description available.

    +
    +
    +

    resolveCanvasDropZoneRect

    +

    src/canvasDragModel.ts:98:1

    +

    No description available.

    +
    +
    +

    resolveCanvasDragPreviewText

    +

    src/canvasDragModel.ts:132:1

    No description available.

    @@ -19015,12 +19196,12 @@

    buildRoot

    src/canvasDropZones.ts

    resolveCanvasDropZones

    -

    src/canvasDropZones.ts:23:1

    +

    src/canvasDropZones.ts:28:1

    No description available.

    getValidCanvasDropZones

    -

    src/canvasDropZones.ts:64:1

    +

    src/canvasDropZones.ts:86:1

    No description available.

    @@ -19619,17 +19800,17 @@

    createDeferred

    src/core/StudioProvider.ts

    noop

    -

    src/core/StudioProvider.ts:59:7

    +

    src/core/StudioProvider.ts:71:7

    No description available.

    noopAsync

    -

    src/core/StudioProvider.ts:60:7

    +

    src/core/StudioProvider.ts:72:7

    No description available.

    StudioProvider

    -

    src/core/StudioProvider.ts:63:14

    +

    src/core/StudioProvider.ts:75:14

    No description available.

    StudioProvider data-search="useStudioManifestPersistence src/core/StudioProvider.ts " >

    useStudioManifestPersistence

    -

    src/core/StudioProvider.ts:308:1

    +

    src/core/StudioProvider.ts:381:1

    No description available.

    requestStudioManifest

    -

    src/core/StudioProvider.ts:409:1

    +

    src/core/StudioProvider.ts:482:1

    No description available.

    saveStudioManifest

    -

    src/core/StudioProvider.ts:418:1

    +

    src/core/StudioProvider.ts:491:1

    No description available.

    readPersistenceJson

    -

    src/core/StudioProvider.ts:431:1

    +

    src/core/StudioProvider.ts:504:1

    No description available.

    createPersistenceError

    -

    src/core/StudioProvider.ts:439:1

    +

    src/core/StudioProvider.ts:512:1

    No description available.

    toPersistenceMessage

    -

    src/core/StudioProvider.ts:446:1

    -

    No description available.

    -
    - - - @@ -24351,7 +24522,7 @@

    collectZoraExtensionDependencies

    src/index.test.ts

    createRoot

    -

    src/index.test.ts:51:7

    +

    src/index.test.ts:53:7

    No description available.

    @@ -24361,167 +24532,162 @@

    createRoot

    src/index.ts

    generateStudioId

    -

    src/index.ts:524:14

    +

    src/index.ts:525:14

    No description available.

    cloneWithNewIds

    -

    src/index.ts:531:14

    +

    src/index.ts:532:14

    No description available.

    findNodeById

    -

    src/index.ts:548:14

    +

    src/index.ts:549:14

    No description available.

    updateNodeInTree

    -

    src/index.ts:560:14

    +

    src/index.ts:561:14

    No description available.

    removeNodeFromTree

    -

    src/index.ts:588:14

    -

    No description available.

    -
    -
    -

    addNodeToTree

    -

    src/index.ts:606:14

    -

    No description available.

    -
    -
    -

    moveNodeInTree

    -

    src/index.ts:639:14

    +

    src/index.ts:589:14

    No description available.

    findNodeWithParent

    -

    src/index.ts:675:1

    +

    src/index.ts:613:1

    No description available.

    visit

    -

    src/index.ts:680:9

    +

    src/index.ts:618:9

    No description available.

    isDescendantNode

    -

    src/index.ts:699:1

    +

    src/index.ts:637:1

    No description available.

    removeNodeForMove

    -

    src/index.ts:710:1

    +

    src/index.ts:648:1

    No description available.

    canAcceptChild

    -

    src/index.ts:765:1

    +

    src/index.ts:703:1

    No description available.

    validateNodePlacement

    -

    src/index.ts:777:1

    +

    src/index.ts:715:1

    No description available.

    resolveInsertPlacement

    -

    src/index.ts:832:1

    +

    src/index.ts:802:1

    No description available.

    resolveDefaultInsertPlacement

    -

    src/index.ts:893:1

    +

    src/index.ts:863:1

    No description available.

    insertChildAtIndex

    -

    src/index.ts:950:1

    +

    src/index.ts:920:1

    No description available.

    insertNodeAtPlacement

    -

    src/index.ts:995:1

    +

    src/index.ts:965:1

    No description available.

    getAdjustedMovePlacement

    -

    src/index.ts:1034:1

    +

    src/index.ts:1004:1

    +

    No description available.

    +
    +
    +

    resolveMoveNodePlacement

    +

    src/index.ts:1033:1

    No description available.

    moveNodeToPlacement

    -

    src/index.ts:1063:1

    +

    src/index.ts:1101:1

    No description available.

    getInsertCatalogCategoryLabel

    -

    src/index.ts:1163:1

    +

    src/index.ts:1172:1

    No description available.

    resolveCategoryOrder

    -

    src/index.ts:1167:1

    +

    src/index.ts:1176:1

    No description available.

    describeInsertRecipeIssue

    -

    src/index.ts:1172:1

    +

    src/index.ts:1181:1

    No description available.

    validateInsertRecipe

    -

    src/index.ts:1180:1

    +

    src/index.ts:1189:1

    No description available.

    visit

    -

    src/index.ts:1184:9

    +

    src/index.ts:1193:9

    No description available.

    createNodeFromRecipe

    -

    src/index.ts:1217:1

    +

    src/index.ts:1226:1

    No description available.

    buildNode

    -

    src/index.ts:1222:9

    +

    src/index.ts:1231:9

    No description available.

    createNodeFromCatalogEntry

    -

    src/index.ts:1237:1

    +

    src/index.ts:1246:1

    No description available.

    createComponentEntry

    -

    src/index.ts:1257:1

    +

    src/index.ts:1266:1

    No description available.

    createRecipeEntry

    -

    src/index.ts:1280:1

    +

    src/index.ts:1289:1

    No description available.

    buildInsertCatalogEntries

    -

    src/index.ts:1318:1

    +

    src/index.ts:1327:1

    No description available.

    resolvePlacementForEntry

    -

    src/index.ts:1344:1

    +

    src/index.ts:1353:1

    No description available.

    resolveInsertCatalogEntries

    -

    src/index.ts:1360:1

    +

    src/index.ts:1369:1

    No description available.

    isStyleRecord

    -

    src/index.ts:1409:1

    +

    src/index.ts:1418:1

    No description available.

    @@ -24815,17 +24981,17 @@

    createManifest

    src/manifestState.test.ts

    createManifest

    -

    src/manifestState.test.ts:37:1

    +

    src/manifestState.test.ts:36:1

    No description available.

    createScreens

    -

    src/manifestState.test.ts:91:1

    +

    src/manifestState.test.ts:90:1

    No description available.

    createId

    -

    src/manifestState.test.ts:310:11

    +

    src/manifestState.test.ts:313:11

    No description available.

    @@ -24840,7 +25006,7 @@

    createId

    src/manifestState.ts

    generateManifestStateId

    -

    src/manifestState.ts:95:14

    +

    src/manifestState.ts:96:14

    No description available.

    generateManifestStateId data-search="createStudioManifestFingerprint src/manifestState.ts " >

    createStudioManifestFingerprint

    -

    src/manifestState.ts:102:1

    +

    src/manifestState.ts:103:1

    No description available.

    pathToKey

    -

    src/manifestState.ts:119:1

    +

    src/manifestState.ts:120:1

    No description available.

    isRouteGroupSegment

    -

    src/manifestState.ts:123:1

    +

    src/manifestState.ts:124:1

    No description available.

    collectScreenRouteEntries

    -

    src/manifestState.ts:127:1

    +

    src/manifestState.ts:128:1

    No description available.

    groupScreenRouteEntries

    -

    src/manifestState.ts:153:1

    +

    src/manifestState.ts:154:1

    No description available.

    listScreenIdsInRouteOrder

    -

    src/manifestState.ts:172:1

    +

    src/manifestState.ts:173:1

    No description available.

    resolveInitialScreenId

    -

    src/manifestState.ts:181:1

    +

    src/manifestState.ts:182:1

    No description available.

    resolveInitialActiveScreenId

    -

    src/manifestState.ts:206:1

    +

    src/manifestState.ts:207:1

    No description available.

    resolveActiveRootNode

    -

    src/manifestState.ts:214:1

    +

    src/manifestState.ts:215:1

    No description available.

    findNodeInManifest

    -

    src/manifestState.ts:222:1

    +

    src/manifestState.ts:223:1

    No description available.

    resolveSafeSelectedNodeId

    -

    src/manifestState.ts:233:1

    +

    src/manifestState.ts:234:1

    No description available.

    findScreenIdForNode

    -

    src/manifestState.ts:241:1

    +

    src/manifestState.ts:242:1

    No description available.

    updateStudioManifestNode

    -

    src/manifestState.ts:251:1

    +

    src/manifestState.ts:252:1

    No description available.

    deleteStudioManifestNode

    -

    src/manifestState.ts:276:1

    -

    No description available.

    -
    -
    -

    moveStudioManifestNode

    -

    src/manifestState.ts:305:1

    +

    src/manifestState.ts:277:1

    No description available.

    moveStudioManifestNode data-search="insertStudioManifestNodeAtPlacement src/manifestState.ts " >

    insertStudioManifestNodeAtPlacement

    -

    src/manifestState.ts:330:1

    +

    src/manifestState.ts:314:1

    No description available.

    insertStudioManifestNodeAtPlacement data-search="moveStudioManifestNodeToPlacement src/manifestState.ts " >

    moveStudioManifestNodeToPlacement

    -

    src/manifestState.ts:367:1

    +

    src/manifestState.ts:348:1

    No description available.

    moveStudioManifestNodeToPlacement data-search="updateStudioManifestDataBindings src/manifestState.ts " >

    updateStudioManifestDataBindings

    -

    src/manifestState.ts:423:1

    +

    src/manifestState.ts:383:1

    No description available.

    updateStudioManifestDataBindings data-search="updateStudioManifestDataSources src/manifestState.ts " >

    updateStudioManifestDataSources

    -

    src/manifestState.ts:430:1

    +

    src/manifestState.ts:390:1

    No description available.

    createDefaultThemeConfig

    -

    src/manifestState.ts:437:1

    +

    src/manifestState.ts:397:1

    No description available.

    addStudioManifestTheme

    -

    src/manifestState.ts:455:1

    +

    src/manifestState.ts:415:1

    No description available.

    updateStudioManifestTheme

    -

    src/manifestState.ts:462:1

    +

    src/manifestState.ts:422:1

    No description available.

    deleteStudioManifestTheme

    -

    src/manifestState.ts:482:1

    +

    src/manifestState.ts:442:1

    No description available.

    deleteStudioManifestTheme data-search="setStudioManifestActiveThemeId src/manifestState.ts " >

    setStudioManifestActiveThemeId

    -

    src/manifestState.ts:497:1

    +

    src/manifestState.ts:457:1

    No description available.

    setStudioManifestActiveThemeId data-search="setStudioManifestActiveThemeMode src/manifestState.ts " >

    setStudioManifestActiveThemeMode

    -

    src/manifestState.ts:504:1

    +

    src/manifestState.ts:464:1

    No description available.

    setStudioManifestActiveThemeMode data-search="updateStudioManifestModuleConfig src/manifestState.ts " >

    updateStudioManifestModuleConfig

    -

    src/manifestState.ts:511:1

    +

    src/manifestState.ts:471:1

    No description available.

    updateStudioManifestModuleConfig data-search="updateStudioManifestOAuthProviders src/manifestState.ts " >

    updateStudioManifestOAuthProviders

    -

    src/manifestState.ts:567:1

    +

    src/manifestState.ts:527:1

    No description available.

    getPrimaryNavigatorPath

    -

    src/manifestState.ts:598:1

    +

    src/manifestState.ts:558:1

    No description available.

    findParentPathForScreenId

    -

    src/manifestState.ts:608:1

    +

    src/manifestState.ts:568:1

    No description available.

    findRoutesAtParentPath

    -

    src/manifestState.ts:631:1

    +

    src/manifestState.ts:591:1

    No description available.

    insertRouteAtParentPath

    -

    src/manifestState.ts:645:1

    +

    src/manifestState.ts:605:1

    No description available.

    findNavigatorAtPath

    -

    src/manifestState.ts:666:1

    +

    src/manifestState.ts:626:1

    No description available.

    updateNavigatorAtPath

    -

    src/manifestState.ts:680:1

    +

    src/manifestState.ts:640:1

    No description available.

    updateNavigatorAtPath data-search="setStudioManifestNavigatorType src/manifestState.ts " >

    setStudioManifestNavigatorType

    -

    src/manifestState.ts:701:1

    +

    src/manifestState.ts:661:1

    No description available.

    setStudioManifestNavigatorType data-search="setStudioManifestNavigatorInitialRoute src/manifestState.ts " >

    setStudioManifestNavigatorInitialRoute

    -

    src/manifestState.ts:718:1

    +

    src/manifestState.ts:678:1

    No description available.

    addStudioManifestScreen

    -

    src/manifestState.ts:740:1

    +

    src/manifestState.ts:700:1

    No description available.

    deleteStudioManifestScreen

    -

    src/manifestState.ts:807:1

    +

    src/manifestState.ts:767:1

    No description available.

    reorderStudioManifestScreens

    -

    src/manifestState.ts:852:1

    +

    src/manifestState.ts:812:1

    No description available.

    removeScreenIdFromRoutes

    -

    src/manifestState.ts:865:1

    +

    src/manifestState.ts:825:1

    No description available.

    makeUniqueSiblingRouteName

    -

    src/manifestState.ts:897:1

    +

    src/manifestState.ts:857:1

    No description available.

    toCanonicalRoutePattern

    -

    src/manifestState.ts:910:1

    +

    src/manifestState.ts:870:1

    No description available.

    makeUniqueRouteNameForParent

    -

    src/manifestState.ts:917:1

    +

    src/manifestState.ts:877:1

    No description available.

    normalizeRouteName

    -

    src/manifestState.ts:938:1

    +

    src/manifestState.ts:898:1

    No description available.

    cloneNodeWithNewIds

    -

    src/manifestState.ts:948:1

    +

    src/manifestState.ts:908:1

    No description available.

    updateNodeInManifestTree

    -

    src/manifestState.ts:962:1

    +

    src/manifestState.ts:922:1

    No description available.

    removeNodeFromManifestTree

    -

    src/manifestState.ts:987:1

    -

    No description available.

    -
    -
    -

    moveNodeInManifestTree

    -

    src/manifestState.ts:1003:1

    +

    src/manifestState.ts:947:1

    No description available.

    -
    -

    findNodeWithParent

    -

    src/manifestState.ts:1036:1

    +
    +

    collectNodeIds

    +

    src/manifestState.ts:963:1

    No description available.

    visit

    -

    src/manifestState.ts:1039:9

    -

    No description available.

    -
    -
    -

    validateManifestNodePlacement

    -

    src/manifestState.ts:1054:1

    -

    No description available.

    -
    -
    -

    insertChildAtIndex

    -

    src/manifestState.ts:1074:1

    -

    No description available.

    -
    -
    -

    isDescendantNode

    -

    src/manifestState.ts:1105:1

    -

    No description available.

    -
    -
    -

    removeNodeForMove

    -

    src/manifestState.ts:1113:1

    -

    No description available.

    -
    -
    -

    adjustMovePlacement

    -

    src/manifestState.ts:1155:1

    +

    src/manifestState.ts:965:9

    No description available.

    adjustMovePlacement data-search="normalizeNavigatorAfterRouteUpdate src/manifestState.ts " >

    normalizeNavigatorAfterRouteUpdate

    -

    src/manifestState.ts:1170:1

    +

    src/manifestState.ts:973:1

    No description available.

    isStyleRecord

    -

    src/manifestState.ts:1191:1

    +

    src/manifestState.ts:994:1

    No description available.

    @@ -26142,7 +26273,7 @@

    runtimeNodeMeasurementChangeAffectsActiveIndicators

    data-search="shouldRenderSelectedNodeChrome src/runtime/runtimeNodeMeasurement.ts " >

    shouldRenderSelectedNodeChrome

    -

    src/runtime/runtimeNodeMeasurement.ts:63:1

    +

    src/runtime/runtimeNodeMeasurement.ts:65:1

    No description available.

    shouldRenderSelectedNodeChrome data-search="unionMeasuredRects src/runtime/runtimeNodeMeasurement.ts " >

    unionMeasuredRects

    -

    src/runtime/runtimeNodeMeasurement.ts:77:1

    +

    src/runtime/runtimeNodeMeasurement.ts:79:1

    No description available.

    unionMeasuredRects data-search="measureNativeRuntimeNodeView src/runtime/runtimeNodeMeasurement.ts " >

    measureNativeRuntimeNodeView

    -

    src/runtime/runtimeNodeMeasurement.ts:95:1

    +

    src/runtime/runtimeNodeMeasurement.ts:97:1

    No description available.

    measureNativeRuntimeNodeView data-search="createNativeRuntimeNodeMeasurement src/runtime/runtimeNodeMeasurement.ts " >

    createNativeRuntimeNodeMeasurement

    -

    src/runtime/runtimeNodeMeasurement.ts:105:1

    +

    src/runtime/runtimeNodeMeasurement.ts:107:1

    No description available.

    createNativeRuntimeNodeMeasurement data-search="createRuntimeNodeMeasurementRegistry src/runtime/runtimeNodeMeasurement.ts " >

    createRuntimeNodeMeasurementRegistry

    -

    src/runtime/runtimeNodeMeasurement.ts:116:1

    +

    src/runtime/runtimeNodeMeasurement.ts:118:1

    No description available.

    createRuntimeNodeMeasurementRegistry data-search="selectPreferredRuntimeNodeMeasurements src/runtime/runtimeNodeMeasurement.ts " >

    selectPreferredRuntimeNodeMeasurements

    -

    src/runtime/runtimeNodeMeasurement.ts:149:1

    +

    src/runtime/runtimeNodeMeasurement.ts:151:1

    No description available.

    selectPreferredRuntimeNodeMeasurements data-search="getActiveRuntimeNodeMeasurements src/runtime/runtimeNodeMeasurement.ts " >

    getActiveRuntimeNodeMeasurements

    -

    src/runtime/runtimeNodeMeasurement.ts:158:1

    +

    src/runtime/runtimeNodeMeasurement.ts:160:1

    No description available.

    getActiveRuntimeNodeMeasurements data-search="hasActiveRuntimeNodeMeasurements src/runtime/runtimeNodeMeasurement.ts " >

    hasActiveRuntimeNodeMeasurements

    -

    src/runtime/runtimeNodeMeasurement.ts:175:1

    +

    src/runtime/runtimeNodeMeasurement.ts:179:1

    No description available.

    hasActiveRuntimeNodeMeasurements data-search="measureRuntimeNodeIndicators src/runtime/runtimeNodeMeasurement.ts " >

    measureRuntimeNodeIndicators

    -

    src/runtime/runtimeNodeMeasurement.ts:183:1

    +

    src/runtime/runtimeNodeMeasurement.ts:191:1

    No description available.

    measureRuntimeNodeIndicators data-search="createActiveResizeTargetCoordinator src/runtime/runtimeNodeMeasurement.ts " >

    createActiveResizeTargetCoordinator

    -

    src/runtime/runtimeNodeMeasurement.ts:233:1

    +

    src/runtime/runtimeNodeMeasurement.ts:266:1

    No description available.

    createActiveResizeTargetCoordinator data-search="createSelectedIndicatorViewProps src/runtime/runtimeNodeMeasurement.ts " >

    createSelectedIndicatorViewProps

    -

    src/runtime/runtimeNodeMeasurement.ts:276:1

    +

    src/runtime/runtimeNodeMeasurement.ts:309:1

    No description available.

    @@ -26240,7 +26371,7 @@

    src/runtime/stationarySelection.ts

    data-search="isWebElementLike src/runtime/stationarySelection.ts " >

    isWebElementLike

    -

    src/runtime/stationarySelection.ts:85:1

    +

    src/runtime/stationarySelection.ts:89:1

    No description available.

    isWebElementLike data-search="getWebResizeTarget src/runtime/stationarySelection.ts " >

    getWebResizeTarget

    -

    src/runtime/stationarySelection.ts:95:1

    +

    src/runtime/stationarySelection.ts:99:1

    No description available.

    getWebResizeTarget data-search="getWebDescendantResizeTargets src/runtime/stationarySelection.ts " >

    getWebDescendantResizeTargets

    -

    src/runtime/stationarySelection.ts:99:1

    +

    src/runtime/stationarySelection.ts:103:1

    No description available.

    toMeasuredRect

    -

    src/runtime/stationarySelection.ts:110:1

    +

    src/runtime/stationarySelection.ts:114:1

    No description available.

    toMeasuredRect data-search="measureRenderedBoxes src/runtime/stationarySelection.ts " >

    measureRenderedBoxes

    -

    src/runtime/stationarySelection.ts:119:1

    +

    src/runtime/stationarySelection.ts:123:1

    No description available.

    measureRootView

    -

    src/runtime/stationarySelection.ts:128:1

    +

    src/runtime/stationarySelection.ts:132:1

    No description available.

    measureRootView data-search="measureRuntimeNodeWebView src/runtime/stationarySelection.ts " >

    measureRuntimeNodeWebView

    -

    src/runtime/stationarySelection.ts:140:1

    +

    src/runtime/stationarySelection.ts:144:1

    No description available.

    measureRuntimeNodeWebView data-search="measureAuthoredWebView src/runtime/stationarySelection.ts " >

    measureAuthoredWebView

    -

    src/runtime/stationarySelection.ts:154:1

    +

    src/runtime/stationarySelection.ts:158:1

    No description available.

    measureAuthoredWebView data-search="areIndicatorRectsEqual src/runtime/stationarySelection.ts " >

    areIndicatorRectsEqual

    -

    src/runtime/stationarySelection.ts:163:1

    +

    src/runtime/stationarySelection.ts:167:1

    No description available.

    areIndicatorRectsEqual data-search="useStudioUnsupportedNodeMeasurement src/runtime/stationarySelection.ts " >

    useStudioUnsupportedNodeMeasurement

    -

    src/runtime/stationarySelection.ts:187:1

    +

    src/runtime/stationarySelection.ts:191:1

    No description available.

    useStudioUnsupportedNodeMeasurement data-search="StudioNodeTouchRecorder src/runtime/stationarySelection.ts " >

    StudioNodeTouchRecorder

    -

    src/runtime/stationarySelection.ts:220:1

    +

    src/runtime/stationarySelection.ts:224:1

    No description available.

    StudioNodeTouchRecorder data-search="recordInteraction src/runtime/stationarySelection.ts " >

    recordInteraction

    -

    src/runtime/stationarySelection.ts:232:3

    +

    src/runtime/stationarySelection.ts:236:3

    No description available.

    recordInteraction data-search="handlePointerDown src/runtime/stationarySelection.ts " >

    handlePointerDown

    -

    src/runtime/stationarySelection.ts:246:3

    +

    src/runtime/stationarySelection.ts:250:3

    No description available.

    handlePointerDown data-search="handleTouchStart src/runtime/stationarySelection.ts " >

    handleTouchStart

    -

    src/runtime/stationarySelection.ts:257:3

    +

    src/runtime/stationarySelection.ts:261:3

    No description available.

    handleTouchStart data-search="handleInteractionCompletion src/runtime/stationarySelection.ts " >

    handleInteractionCompletion

    -

    src/runtime/stationarySelection.ts:266:3

    +

    src/runtime/stationarySelection.ts:270:3

    No description available.

    handleLayout

    -

    src/runtime/stationarySelection.ts:270:3

    +

    src/runtime/stationarySelection.ts:274:3

    No description available.

    handleLayout data-search="createStudioStationarySelectionWrapNode src/runtime/stationarySelection.ts " >

    createStudioStationarySelectionWrapNode

    -

    src/runtime/stationarySelection.ts:350:1

    +

    src/runtime/stationarySelection.ts:363:1

    No description available.

    createStudioStationarySelectionWrapNode data-search="StationaryTapSelector src/runtime/stationarySelection.ts " >

    StationaryTapSelector

    -

    src/runtime/stationarySelection.ts:389:1

    +

    src/runtime/stationarySelection.ts:410:1

    No description available.

    handleScroll

    -

    src/runtime/stationarySelection.ts:646:11

    +

    src/runtime/stationarySelection.ts:704:11

    No description available.

    handleResize

    -

    src/runtime/stationarySelection.ts:647:11

    +

    src/runtime/stationarySelection.ts:705:11

    No description available.

    @@ -26999,7 +27130,7 @@

    KeyValue

    src/ui/admin/AnkhAdminPage.tsx

    AnkhAdminPage

    -

    src/ui/admin/AnkhAdminPage.tsx:74:1

    +

    src/ui/admin/AnkhAdminPage.tsx:72:1

    No description available.

    @@ -27899,7 +28030,7 @@

    EventPayloadSummary

    >

    describeEventBinding

    - src/ui/admin/pages/bindings/EventBindingsCard.tsx:89:1 + src/ui/admin/pages/bindings/EventBindingsCard.tsx:93:1

    No description available.

    @@ -27909,7 +28040,7 @@

    describeEventBinding

    >

    describeBindingInput

    - src/ui/admin/pages/bindings/EventBindingsCard.tsx:100:1 + src/ui/admin/pages/bindings/EventBindingsCard.tsx:111:1

    No description available.

    @@ -28732,6 +28863,129 @@

    AnkhStudio

    + + +
    src/ui/studioAppBarModel.ts data-search="resolveStudioAppBarContextActions src/ui/studioAppBarModel.ts " >

    resolveStudioAppBarContextActions

    -

    src/ui/studioAppBarModel.ts:11:1

    +

    src/ui/studioAppBarModel.ts:14:1

    +

    No description available.

    + +
    + + +