diff --git a/CHANGELOG.md b/CHANGELOG.md index 77440eb56..1e4974f91 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ - Add saved per-node export settings for repeat exports. - Add Design panel controls for layer blend modes and alpha, vector, and luminance masks. - Refine Design panel foundations with 26px controls, consistently aligned action rails, shared Tailwind themes, and Storybook component states. +- Scale the Layers panel to 5,000-node documents with virtualized rows, indexed updates, scroll-to-selection, range selection, and focus-aware themed states. - Standardize Vue SDK and app override type names on the `UI` acronym, including `FontPickerUI`. - Add a headless Vue SDK NumberField with pointer scrubbing, keyboard stepping, safe arithmetic expressions, and mixed/bound states; remove the superseded ScrubInput API. - Add provider-driven BindableValue primitives for variable and token binding, including detach-on-edit, read-only, edit-variable, mixed-value, and undo-batched interactions. diff --git a/packages/vue/src/index.ts b/packages/vue/src/index.ts index 06d4a2783..68a9a1a9a 100644 --- a/packages/vue/src/index.ts +++ b/packages/vue/src/index.ts @@ -161,8 +161,24 @@ export type { GradientEditorStopSlotProps, GradientEditorStopSlots } from '#vue/primitives/GradientEditor' -export { LayerTreeRoot, LayerTreeItem, useLayerTree } from '#vue/primitives/LayerTree' -export type { LayerDragInstruction, LayerTreeContext, LayerNode } from '#vue/primitives/LayerTree' +export { + buildLayerTreeModel, + indexLayerNodes, + layerSelectionForTarget, + LayerTreeItem, + LayerTreeRoot, + patchLayerNode, + useLayerTree, + visibleLayerRows +} from '#vue/primitives/LayerTree' +export type { + LayerDragInstruction, + LayerNode, + LayerRow, + LayerSelectionMode, + LayerTreeContext, + LayerTreeVirtualizer +} from '#vue/primitives/LayerTree' export { LayoutControlsRoot, useLayoutControlsContext } from '#vue/primitives/LayoutControls' export type { LayoutControlsContext, diff --git a/packages/vue/src/primitives/LayerTree/LayerTreeItem.vue b/packages/vue/src/primitives/LayerTree/LayerTreeItem.vue index 58af65a29..13ee4a11a 100644 --- a/packages/vue/src/primitives/LayerTree/LayerTreeItem.vue +++ b/packages/vue/src/primitives/LayerTree/LayerTreeItem.vue @@ -74,6 +74,7 @@ defineExpose({ rowEl }) :has-children="hasChildren" :is-selected="isSelected" :is-dragging="isDragging" + :focused="ctx.focused.value" :pad-left="padLeft" :actions="actions" /> diff --git a/packages/vue/src/primitives/LayerTree/LayerTreeRoot.vue b/packages/vue/src/primitives/LayerTree/LayerTreeRoot.vue index 2ba21d2e5..42bc596f8 100644 --- a/packages/vue/src/primitives/LayerTree/LayerTreeRoot.vue +++ b/packages/vue/src/primitives/LayerTree/LayerTreeRoot.vue @@ -1,13 +1,25 @@