openpencil/src
Danila Poyarkov 72876f8a3e Phase 4-5: LayerTree and EditorMenu headless primitives
LayerTree SDK components:
- LayerTreeRoot — tree data from editor graph, expand/collapse with
  auto-expand on selection, scroll-into-view, scope sync
- LayerTreeItem — per-node slot with isSelected, padLeft, select,
  toggleExpand, toggleVisibility, toggleLock, rename

App LayerTree.vue now composes LayerTreeRoot + LayerTreeItem + TreeRoot/
TreeItem from Reka UI. Deleted LayerRow.vue — its logic is in the SDK.

EditorMenu SDK component:
- EditorMenuRoot — selection-aware state (hasSelection, isInstance,
  isComponent, isGroup, canCreateComponentSet, otherPages, visibility,
  lock) + copyAsText/SVG/JSX via slots

App CanvasMenu.vue now composes EditorMenuRoot — pure template with
Reka UI ContextMenu + Tailwind styling, zero business logic.

Removed useSelectionState composable — EditorMenuRoot replaces it.
2026-03-17 10:06:24 +03:00
..
ai Clean up ACP branch: gate debug log, fix capitalizations, harden types 2026-03-15 18:24:37 +03:00
assets Fix per-character text fill colors and vector region loop direction (#95) 2026-03-12 18:28:04 +03:00
automation Add random.ts helpers, replace all raw crypto.getRandomValues calls 2026-03-16 14:13:36 +03:00
components Phase 4-5: LayerTree and EditorMenu headless primitives 2026-03-17 10:06:24 +03:00
composables Remove re-export shims, import directly from @open-pencil/vue 2026-03-17 08:10:05 +03:00
engine Remove re-export shims and import types directly from core 2026-03-09 08:56:47 +03:00
shims Remove shiki shim — handled by forked vue-stream-markdown 2026-03-15 16:40:38 +03:00
stores Remove re-export shims, import directly from @open-pencil/vue 2026-03-17 08:10:05 +03:00
utils Refactor LayerTree: Atlaskit DnD, split LayerRow, shared icons 2026-03-17 08:46:23 +03:00
views Use collab injection in MobileHud instead of prop drilling 2026-03-16 13:27:17 +03:00
app.css Add random.ts helpers, replace all raw crypto.getRandomValues calls 2026-03-16 14:13:36 +03:00
App.vue Remove re-export shims, import directly from @open-pencil/vue 2026-03-17 08:10:05 +03:00
constants.ts Extract createEditor() to packages/core/src/editor/ folder 2026-03-16 15:14:50 +03:00
demo.ts Delete re-export shims, import from @open-pencil/core directly 2026-03-06 21:42:56 +03:00
env.d.ts Eliminate as Record<string, unknown> casts 2026-03-06 21:43:32 +03:00
global.d.ts Fix all 135 vue-tsc errors, promote to check gate 2026-03-16 22:21:21 +03:00
main.ts Fix all type-aware lint warnings 2026-03-08 23:04:44 +03:00
router.d.ts Move demo to /demo route, add @unhead/vue for title management 2026-03-06 20:54:48 +03:00
router.ts Move demo to /demo route, add @unhead/vue for title management 2026-03-06 20:54:48 +03:00