The variables dialog now uses the tokens panel, so useVariablesEditor, useVariablesTable, useVariablesDialogState, and the table-only formatModeValue, parseVariableValue, and shortName helpers have no users. Removing them drops the @tanstack/vue-table dependency; their SDK pages redirect to useVariables.
1.5 KiB
1.5 KiB
@open-pencil/vue architecture
Folder conventions
Canvas/,ColorPicker/,FillPicker/,FontPicker/,GradientEditor/,LayerTree/,PageList/,PropertyList/,NumberField/,Toolbar/— component families and colocated helpers for structural/headless primitivescontrols/— editor control composables used by app property panels (useAppearance,useLayout,usePosition,useTypography,useFillControls,useStrokeControls,useEffectsControls,useExport,useNodeProps,usePropScrub)variables/— variables domain composablesselection/— selection-focused composables (useSelectionState,useSelectionCapabilities)context/— dependency injection helpers (editorContext,createContext)internal/— cross-cutting internals not intended as primary public primitives (useSceneComputed,toolCursor)shared/— remaining cross-domain helpers that are still generic and not yet better served by a domain folder
Naming conventions
- Composable filenames match export names:
useFillControls.ts - Structural primitives follow Reka-style anatomy naming:
XxxRoot,XxxItem,XxxTrigger - Prefer composables over thin root wrappers when there is no meaningful structural UI coordination
Public API guidance
- Export stable, intentional entry points from
src/index.ts - Prefer composables for property-panel/editor logic
- Prefer component families for true headless UI primitives with internal coordination