- Add SDK-owned mixed constraint state, pin controls, and undo-aware updates
- Apply Figma constraint modes recursively during frame resize previews and commits
- Document and test the control, multi-selection behavior, and resize geometry
- Remove FillPickerRoot and useFillPicker from source, exports, and localized docs
- Replace the final PanelRow consumer with accessible auto-layout controls
- Document the canonical panel and fill composition contracts
- Share compact item-row and paint-field anatomy across Fill, Stroke, Effects, and Export
- Add COLOR binding transactions with picker rollback and one-step undo
- Replace bespoke panel test hooks with semantic selectors and visual coverage
- Add accessible OkHCL channel sliders and use Reka ColorSlider for standard color channels
- Split fill state and binding-aware swatches from application popover composition
- Add keyboard-operable gradient stops, shared demos, generated docs, and focused coverage
- Replace duplicated width and height binding branches with shared semantic fields
- Switch edited Hug and Fill dimensions to Fixed in one reversible transaction
- Add typed LayoutControls actions, documentation, and visual coverage
- Move independent-corner presentation and batched mutations into AppearanceControls
- Rebuild Position and Appearance with aligned panel grids and semantic locators
- Replace type text headers with compact node icons and add visual coverage
- Show one variable picker affordance with a quiet identity pill and accessible combobox
- Keep bound NumberField focus non-destructive until the first value mutation
- Prefer accessible and semantic test selectors over compound test IDs
- Add headless PropertySection and accessible SegmentedControl anatomy
- Make PropertyList controlled and exactly typed with an undo-aware editor adapter
- Consolidate SDK metadata loaders and link untranslated docs to canonical pages
- Add provider-driven binding state, picker composition, and edit policies
- Integrate NumberField interactions with binding transactions and cancellation
- Migrate numeric variable fields and document the public API
- Remove ScrubInput aliases, app wrappers, test hooks, and translated legacy references
- Share a Tailwind NumberField demo between Storybook and VitePress
- Generate component API tables from Vue metadata and type-check examples with Twoslash
- Upgrade the docs stack to VitePress 2
- Add pointer scrubbing, keyboard stepping, mixed and bound state contracts
- Parse safe numeric expressions and preserve deprecated ScrubInput aliases
- Cover the primitive with Storybook, SDK docs, unit tests, and E2E tests