openpencil/src/components
Danila Poyarkov 492d9dfa75 Refactor LayerTree: Atlaskit DnD, split LayerRow, shared icons
Replace manual pointer-capture drag with @atlaskit/pragmatic-drag-and-drop:
- Tree-aware hitbox (reorder-above, reorder-below, make-child)
- Native drag preview via Atlaskit adapter
- No more manual DOM measurement for drop zones

Split into focused files:
- LayerTree.vue (164 lines) — tree data, expand, selection
- LayerRow.vue (175 lines) — per-row: icon, rename, lock/visibility, DnD setup
- utils/layer-icons.ts (43 lines) — icon maps shared across components
- use-layer-drag.ts (127 lines) — Atlaskit DnD composable in SDK

Add toggleNodeVisibility/toggleNodeLock per-node methods to editor.
2026-03-17 08:46:23 +03:00
..
chat Fix all 135 vue-tsc errors, promote to check gate 2026-03-16 22:21:21 +03:00
properties Remove re-export shims, import directly from @open-pencil/vue 2026-03-17 08:10:05 +03:00
ui Remove re-export shims, import directly from @open-pencil/vue 2026-03-17 08:10:05 +03:00
AppMenu.vue Remove re-export shims, import directly from @open-pencil/vue 2026-03-17 08:10:05 +03:00
AppSelect.vue Enable Tailwind CSS class sorting in oxfmt 2026-03-09 15:46:20 +03:00
AppToast.vue Remove re-export shims, import directly from @open-pencil/vue 2026-03-17 08:10:05 +03:00
ChatPanel.vue Clean up ACP branch: gate debug log, fix capitalizations, harden types 2026-03-15 18:24:37 +03:00
CodePanel.vue Add computeBounds/requireNode helpers, scope CodePanel style, dedupe snap/zip 2026-03-16 23:01:51 +03:00
CollabPanel.vue Remove re-export shims, import directly from @open-pencil/vue 2026-03-17 08:10:05 +03:00
ColorInput.vue Remove re-export shims and import types directly from core 2026-03-09 08:56:47 +03:00
ColorPicker.vue Remove re-export shims and import types directly from core 2026-03-09 08:56:47 +03:00
DesignPanel.vue Add random.ts helpers, replace all raw crypto.getRandomValues calls 2026-03-16 14:13:36 +03:00
EditorCanvas.vue Refactor LayerTree: Atlaskit DnD, split LayerRow, shared icons 2026-03-17 08:46:23 +03:00
FillPicker.vue Split FillPicker into focused components 2026-03-17 08:22:54 +03:00
FontPicker.vue Fix all 135 vue-tsc errors, promote to check gate 2026-03-16 22:21:21 +03:00
GradientEditor.vue Split FillPicker into focused components 2026-03-17 08:22:54 +03:00
HsvColorArea.vue Remove re-export shims and import types directly from core 2026-03-09 08:56:47 +03:00
ImageFillPicker.vue Split FillPicker into focused components 2026-03-17 08:22:54 +03:00
LayerRow.vue Refactor LayerTree: Atlaskit DnD, split LayerRow, shared icons 2026-03-17 08:46:23 +03:00
LayersPanel.vue Enable Tailwind CSS class sorting in oxfmt 2026-03-09 15:46:20 +03:00
LayerTree.vue Refactor LayerTree: Atlaskit DnD, split LayerRow, shared icons 2026-03-17 08:46:23 +03:00
MobileDrawer.vue Enable Tailwind CSS class sorting in oxfmt 2026-03-09 15:46:20 +03:00
MobileHud.vue Remove re-export shims, import directly from @open-pencil/vue 2026-03-17 08:10:05 +03:00
NodeContextMenuContent.vue Remove re-export shims, import directly from @open-pencil/vue 2026-03-17 08:10:05 +03:00
PagesPanel.vue Remove re-export shims, import directly from @open-pencil/vue 2026-03-17 08:10:05 +03:00
PropertiesPanel.vue Add data-test-id attributes to all Vue components (#41) 2026-03-04 17:18:26 +03:00
SafariBanner.vue Export IS_BROWSER from core, replace all raw typeof window checks 2026-03-16 14:05:24 +03:00
ScrubInput.vue Fix all 135 vue-tsc errors, promote to check gate 2026-03-16 22:21:21 +03:00
TabBar.vue Enable Tailwind CSS class sorting in oxfmt 2026-03-09 15:46:20 +03:00
Toolbar.vue Fix all 135 vue-tsc errors, promote to check gate 2026-03-16 22:21:21 +03:00
VariablesDialog.vue Wire editor actions, move kiwi-serialize, clean dead code 2026-03-16 22:30:56 +03:00