openpencil/src
Danila Poyarkov d30ab4c5d5 Add variables support: collections, modes, bindings, UI panel
Core:
- Variable, VariableCollection types on SceneGraph
- resolveVariable with alias chain resolution + cycle detection
- Mode switching (activeMode per collection)
- Bind/unbind variables to node properties (fills/strokes colors)
- Renderer resolves variable bindings before painting

Import:
- Parse VARIABLE type NodeChanges from .fig files
- Extract paint variable bindings (fills/strokes)

UI:
- VariablesPanel with reka-ui Tabs (collections) + Editable (names/values)
- FillSection: variable picker (reka-ui Popover + Combobox)
- Bound fills show purple variable name badge with detach button
- Toggle variables panel from bottom of layers sidebar

7 new unit tests (83 total)
2026-03-01 01:47:52 +03:00
..
components Add variables support: collections, modes, bindings, UI panel 2026-03-01 01:47:52 +03:00
composables Add minimalist splash loader during WASM initialization 2026-03-01 01:30:01 +03:00
engine Add variables support: collections, modes, bindings, UI panel 2026-03-01 01:47:52 +03:00
kiwi Extract @open-pencil/core package 2026-03-01 01:03:07 +03:00
stores Use sceneVersion instead of renderVersion for UI panels 2026-03-01 00:33:14 +03:00
app.css Format codebase with oxfmt 2026-02-28 22:41:34 +03:00
App.vue Add variables support: collections, modes, bindings, UI panel 2026-03-01 01:47:52 +03:00
constants.ts Extract @open-pencil/core package 2026-03-01 01:03:07 +03:00
demo.ts Fix all lint, typecheck, and formatting issues 2026-02-28 22:57:33 +03:00
env.d.ts Replace emoji icons with Lucide via Iconify (unplugin-icons) 2026-02-28 08:24:42 +03:00
global.d.ts Consolidate shared types and remove inline duplicates 2026-02-28 23:06:47 +03:00
main.ts Migrate to Tailwind CSS 4.2 2026-02-28 00:54:38 +03:00
types.ts Extract @open-pencil/core package 2026-03-01 01:03:07 +03:00