<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://vega-ui.dev/changelog/feed.xml</id>
  <title>Vega UI Changelog</title>
  <subtitle>Every release of the Vega UI packages, newest first.</subtitle>
  <updated>2026-11-06T01:36:08.000Z</updated>
  <author><name>Vega UI</name></author>
  <link rel="self" type="application/atom+xml" href="https://vega-ui.dev/changelog/feed.xml"/>
  <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/"/>
  <entry>
    <id>https://vega-ui.dev/changelog/#v2-5-0</id>
    <title>@vega-ui/react 2.5.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v2-5-0"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Remove React from &lt;code&gt;dependencies&lt;/code&gt;, keep it only in &lt;code&gt;peerDependencies&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;react&lt;/code&gt; (and &lt;code&gt;react-dom&lt;/code&gt; in &lt;code&gt;@vega-ui/react&lt;/code&gt;) were declared in both &lt;code&gt;dependencies&lt;/code&gt; and &lt;code&gt;peerDependencies&lt;/code&gt;. With strict resolution (Yarn PnP, pnpm with &lt;code&gt;shamefully-hoist=false&lt;/code&gt;, strict npm) consumers ended up with two copies of React — &lt;code&gt;Invalid hook call&lt;/code&gt;, contexts not matching, rendering breaking with no clear error.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;removed &lt;code&gt;react&lt;/code&gt;/&lt;code&gt;react-dom&lt;/code&gt; from &lt;code&gt;dependencies&lt;/code&gt; in &lt;code&gt;@vega-ui/react&lt;/code&gt;, &lt;code&gt;@vega-ui/hooks&lt;/code&gt; and &lt;code&gt;@vega-ui/icons&lt;/code&gt;; they stay in &lt;code&gt;peerDependencies&lt;/code&gt; and were added to &lt;code&gt;devDependencies&lt;/code&gt; for local development&lt;/li&gt;
&lt;li&gt;&lt;code&gt;vite.config.ts&lt;/code&gt; of &lt;code&gt;@vega-ui/react&lt;/code&gt; and &lt;code&gt;@vega-ui/hooks&lt;/code&gt; derived rollup &lt;code&gt;external&lt;/code&gt; from &lt;code&gt;Object.keys(dependencies)&lt;/code&gt; only, so React would have been bundled into &lt;code&gt;dist&lt;/code&gt; after this change — externals now include &lt;code&gt;peerDependencies&lt;/code&gt; as well&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/9834a4c&quot;&gt;9834a4c&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;useSelection&lt;/code&gt;: optional &lt;code&gt;compare&lt;/code&gt; no longer crashes; new &lt;code&gt;compare&lt;/code&gt; util&lt;/p&gt;
&lt;p&gt;&lt;code&gt;compare?&lt;/code&gt; was declared optional but invoked unconditionally in &lt;code&gt;edges&lt;/code&gt;, &lt;code&gt;isSelected&lt;/code&gt; and &lt;code&gt;isDisabled&lt;/code&gt; — range selection or &lt;code&gt;min&lt;/code&gt;/&lt;code&gt;max&lt;/code&gt; clamping without a user-provided comparator threw &lt;code&gt;compare is not a function&lt;/code&gt; (while &lt;code&gt;expand&lt;/code&gt; had a guard, confirming the option was meant to be optional).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;@vega-ui/utils&lt;/code&gt; now exports &lt;code&gt;compare&lt;/code&gt; — a three-way comparator constrained to the new &lt;code&gt;Comparable&lt;/code&gt; type (&lt;code&gt;number | string | bigint | Date&lt;/code&gt;), so types with no universal ordering (objects, symbols) are rejected at compile time; covered with unit tests&lt;/li&gt;
&lt;li&gt;&lt;code&gt;useSelection&lt;/code&gt; falls back to it when no &lt;code&gt;compare&lt;/code&gt; is passed, mirroring the existing &lt;code&gt;equals ?? Object.is&lt;/code&gt; pattern; pass an explicit &lt;code&gt;compare&lt;/code&gt; for non-primitive key types&lt;/li&gt;
&lt;li&gt;&lt;code&gt;expand&lt;/code&gt; no longer silently no-ops without a user comparator&lt;/li&gt;
&lt;li&gt;empty or &lt;code&gt;undefined&lt;/code&gt; &lt;code&gt;selected&lt;/code&gt; no longer produces &lt;code&gt;undefined&lt;/code&gt; range edges: &lt;code&gt;edges()&lt;/code&gt; returns &lt;code&gt;[]&lt;/code&gt;, &lt;code&gt;isSelected&lt;/code&gt; returns &lt;code&gt;false&lt;/code&gt; instead of comparing &lt;code&gt;undefined&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DataGridSelectable&lt;/code&gt; reuses the shared &lt;code&gt;compare&lt;/code&gt; instead of its own inline duplicate of the same fallback (no behavior change)&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/0ffc52f&quot;&gt;0ffc52f&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Fix stale closure in Slider's &lt;code&gt;changeValue&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;changeValue&lt;/code&gt; was wrapped in &lt;code&gt;useCallback&lt;/code&gt; with empty deps, freezing &lt;code&gt;value&lt;/code&gt; and &lt;code&gt;disabled&lt;/code&gt; at their first-render values. Consequences: the slider could never return to its initial value (keyboard stepping got stuck one step away from it, clicking the initial track position was ignored); the same-value dedup guard compared against the initial value instead of the current one, so &lt;code&gt;onChangeValue&lt;/code&gt; fired repeatedly with identical values during drags; toggling &lt;code&gt;disabled&lt;/code&gt; after mount had no effect on interactions (an initially enabled slider stayed interactive when disabled, an initially disabled one stayed dead when enabled).&lt;/p&gt;
&lt;p&gt;The memoization served no purpose — &lt;code&gt;changeValue&lt;/code&gt; is only used by handlers that are recreated on every render — so it is now a plain function reading fresh props. Covered with regression tests for all three symptoms.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/25c721b&quot;&gt;25c721b&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v2-4-0</id>
    <title>@vega-ui/react 2.4.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v2-4-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed xs, sm, md, lg, xl sizes of all components&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/a77ab19&quot;&gt;a77ab19&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Fixed select listbox background&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/47f3ced&quot;&gt;47f3ced&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v2-3-1</id>
    <title>@vega-ui/react 2.3.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v2-3-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Refactored color system and semantic tokens&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updated color palette in &lt;code&gt;@vega-ui/tokens-core&lt;/code&gt;: revised oklch values across all color scales for better perceptual uniformity&lt;/li&gt;
&lt;li&gt;Replaced static surface tokens (&lt;code&gt;surface-ultrathin&lt;/code&gt; … &lt;code&gt;surface-ultrathick&lt;/code&gt;) with &lt;code&gt;surface-primary&lt;/code&gt; / &lt;code&gt;surface-secondary&lt;/code&gt; in both light and dark themes&lt;/li&gt;
&lt;li&gt;Tweaked fill token chroma/lightness values in light and dark themes for improved contrast&lt;/li&gt;
&lt;li&gt;Button ghost/transparent hover and active backgrounds now use &lt;code&gt;oklch(from …)&lt;/code&gt; relative color syntax instead of hardcoded palette steps, making them automatically adapt to any primary/secondary accent color&lt;/li&gt;
&lt;li&gt;Added Playground story showcasing Badge, Button, Alert, Checkbox, Radio, Avatar, SegmentedControl and Slider in a single view&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/3858f99&quot;&gt;3858f99&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v2-3-0</id>
    <title>@vega-ui/react 2.3.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v2-3-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;@vega-ui/tokens-core&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Complete overhaul of the color palette:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Colors migrated from &lt;code&gt;color-mix(in oklch, var(--color-red) X%, white/black)&lt;/code&gt; to direct &lt;code&gt;oklch()&lt;/code&gt; values for more predictable perceptual color space&lt;/li&gt;
&lt;li&gt;Removed intermediate steps (50, 150, 250, 350, 450, 550, 650, 750, 850, 950) — scale simplified to 11 steps: 0–100–200–…–1000&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;@vega-ui/theme-core&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Complete overhaul of semantic tokens in &lt;code&gt;light.css&lt;/code&gt; / &lt;code&gt;dark.css&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added fill tokens: &lt;code&gt;--fills-primary/secondary/tertiary/quaternary&lt;/code&gt; with hover/active states&lt;/li&gt;
&lt;li&gt;Added label tokens: &lt;code&gt;--label-primary/secondary/tertiary/quaternary&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Added surface tokens: &lt;code&gt;--surface-ultrathin/thin/regular/thick/ultrathick&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Added separator tokens: &lt;code&gt;--separator-opaque/non-opaque&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Added border tokens: &lt;code&gt;--border-color&lt;/code&gt; with hover/active states&lt;/li&gt;
&lt;li&gt;Added disabled state tokens: &lt;code&gt;--disable-*&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Added color accent tokens: &lt;code&gt;--color-*-accent-*&lt;/code&gt; — palette is automatically inverted in dark mode&lt;/li&gt;
&lt;li&gt;Renamed: &lt;code&gt;--text-inverce-color&lt;/code&gt; → &lt;code&gt;--text-color-inverce&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;@vega-ui/react&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All components migrated to new semantic tokens from the theme&lt;/li&gt;
&lt;li&gt;Removed direct color token references in components, replaced with semantic variables&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/064d8c0&quot;&gt;064d8c0&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v2-2-1</id>
    <title>@vega-ui/react 2.2.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v2-2-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed switch colors&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/66317ef&quot;&gt;66317ef&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v2-2-0</id>
    <title>@vega-ui/react 2.2.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v2-2-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Adding New Components&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DateField&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A date input field with masking and format validation.&lt;/li&gt;
&lt;li&gt;Uses &lt;code&gt;useControlledState&lt;/code&gt; for controlled/uncontrolled values.&lt;/li&gt;
&lt;li&gt;Composed of the following components:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DateFieldInput&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DateFieldCalendar&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Supports date formats (e.g., &amp;quot;dd.MM.yyyy&amp;quot;, &amp;quot;MM/dd/yyyy&amp;quot;).&lt;/li&gt;
&lt;li&gt;Supports minimum and maximum date restrictions (&lt;code&gt;minDate&lt;/code&gt;, &lt;code&gt;maxDate&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;DateTimeField&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A date and time input field.&lt;/li&gt;
&lt;li&gt;Combines the logic of &lt;code&gt;DateField&lt;/code&gt; and &lt;code&gt;TimeField&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Composed of the following components:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DateTimeFieldInput&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DateTimeFieldCalendar&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TimeSelector&lt;/code&gt; (for selecting time)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Uses &lt;code&gt;useControlledState&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;DateRangeField&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A field for selecting a date range.&lt;/li&gt;
&lt;li&gt;Composed of the following components:
&lt;ul&gt;
&lt;li&gt;Two &lt;code&gt;DateField&lt;/code&gt;s (start and end dates)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DateRangeCalendar&lt;/code&gt; (calendar for selecting the range)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Handles range validation (start date ≤ end date).&lt;/li&gt;
&lt;li&gt;Uses &lt;code&gt;useControlledState&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;TimeField&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A time input field.&lt;/li&gt;
&lt;li&gt;Supports masking and time format (e.g., &amp;quot;HH:mm&amp;quot;).&lt;/li&gt;
&lt;li&gt;Uses &lt;code&gt;useControlledState&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Composed of the following components:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;TimeFieldInput&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Additional controls (arrows, time selector)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/798d27c&quot;&gt;798d27c&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Fixed date time field cahnge date&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/bac86b3&quot;&gt;bac86b3&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v2-1-1</id>
    <title>@vega-ui/react 2.1.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v2-1-1"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v2-1-0</id>
    <title>@vega-ui/react 2.1.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v2-1-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Refactor Calendar stack to scroll-snap scrollers (DataGridPickerScroller) and remove react-store based state.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;@vega-ui/ui&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SnapScroller&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; &lt;code&gt;initialIndex&lt;/code&gt; renamed to &lt;code&gt;defaultIndex&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; removed &lt;code&gt;preserveScroll&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; removed &lt;code&gt;onOffset&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Added scroll-snap callbacks:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;onScrollSnapChanging?(element, index)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;onScrollSnapChange?(element, index)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;IndexedSnapScroller&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Keeps offset-based infinite behavior (window &lt;code&gt;shift()&lt;/code&gt; / &lt;code&gt;push()&lt;/code&gt;) and optional &lt;code&gt;preserveScroll&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Supports controlled &lt;code&gt;index&lt;/code&gt; (scrolls to it when in window; rebuilds window when outside).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;DataGrid&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; &lt;code&gt;onMove(e, node, axis, dir)&lt;/code&gt; replaced with &lt;code&gt;onArrow(e, nextNode, prevNode)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; &lt;code&gt;DataGridApiRef&lt;/code&gt; changed:
&lt;ul&gt;
&lt;li&gt;removed &lt;code&gt;keyMap&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;added &lt;code&gt;scopes: Map&amp;lt;DataGridScope, DataGridCellKey[]&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DataGridRowGroup&lt;/code&gt; now supports &lt;code&gt;scope?: DataGridScope&lt;/code&gt; and provides it via context.&lt;/li&gt;
&lt;li&gt;Cells unregister from the grid on unmount (node cleanup).&lt;/li&gt;
&lt;li&gt;Active/selection focus flow updated to sync active cell on focus changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;DataGridPicker&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added &lt;code&gt;DataGridPickerScroller&lt;/code&gt; and &lt;code&gt;DataGridPickerScrollerContent&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DataGridPickerScroller&lt;/code&gt; integrates with scroll-snap events to restore/adjust active focus for the current scope.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;DayPicker&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; DayPicker scrolling is now driven by &lt;code&gt;DataGridPickerScroller&lt;/code&gt; (instead of IndexedSnapScroller directly).&lt;/li&gt;
&lt;li&gt;Added period-to-index mapping via reference anchor:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;referenceDate?: Date&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;getIndexByDate?(year, month)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;getDateByIndex?(index)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Period changes are emitted during scroll via &lt;code&gt;onScrollSnapChanging&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;YearPicker&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; YearPicker scrolling is now driven by &lt;code&gt;DataGridPickerScroller&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Added year-to-index mapping via reference anchor:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;referenceYear?: number&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;getIndexByYear?(year, referenceYear)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Layout derives offset from &lt;code&gt;year&lt;/code&gt; when &lt;code&gt;offset&lt;/code&gt; is not provided.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Calendar / CalendarBase&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; &lt;code&gt;onYearChange&lt;/code&gt; -&amp;gt; &lt;code&gt;onChangeYear&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; &lt;code&gt;onMonthChange&lt;/code&gt; -&amp;gt; &lt;code&gt;onChangeMonth&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Added controlled/uncontrolled view state for navigation:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;year&lt;/code&gt; / &lt;code&gt;defaultYear&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;month&lt;/code&gt; / &lt;code&gt;defaultMonth&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;activeDay&lt;/code&gt; / &lt;code&gt;defaultActiveDay&lt;/code&gt; + &lt;code&gt;onChangeActiveDay&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;activeMonth&lt;/code&gt; / &lt;code&gt;defaultActiveMonth&lt;/code&gt; + &lt;code&gt;onChangeActiveMonth&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;activeYear&lt;/code&gt; / &lt;code&gt;defaultActiveYear&lt;/code&gt; + &lt;code&gt;onChangeActiveYear&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Added &lt;code&gt;referenceDate?: Date&lt;/code&gt; as an anchor for indexed/virtualized navigation.&lt;/li&gt;
&lt;li&gt;Added year-group navigation controls:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CalendarNextYearGroupButton&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CalendarPrevYearGroupButton&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Picker/ESC handling updated (Escape now stops propagation).&lt;/li&gt;
&lt;li&gt;Period navigation split into:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;nextPeriod&lt;/code&gt; / &lt;code&gt;prevPeriod&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nextYearGroup&lt;/code&gt; / &lt;code&gt;prevYearGroup&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;@vega-ui/hooks&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; removed &lt;code&gt;useStore&lt;/code&gt;, &lt;code&gt;useControlledStore&lt;/code&gt; (react-store dependency removed).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; removed &lt;code&gt;useIntersectionObserver&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Added:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;useScrollSnap&lt;/code&gt; (snap measurement + &lt;code&gt;onSnapChanging/onSnapChange&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;useMutationObserver&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;useBiMap&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;useRefMap&lt;/code&gt; now exposes &lt;code&gt;removeItemRef&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;useIndexes&lt;/code&gt; updated to support new shifting semantics safely.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;@vega-ui/react-store&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; package removed / no longer used in the monorepo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;@vega-ui/utils&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added &lt;code&gt;BiMap&lt;/code&gt; and &lt;code&gt;nearest&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Reorganized data helpers under &lt;code&gt;utils/data/*&lt;/code&gt; with re-exports.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/8380d3b&quot;&gt;8380d3b&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v2-0-1</id>
    <title>@vega-ui/react 2.0.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v2-0-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Improved a11y - accordion&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/697ebd5&quot;&gt;697ebd5&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v2-0-0</id>
    <title>@vega-ui/react 2.0.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v2-0-0"/>
    <content type="html">&lt;h3&gt;Major changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;ul&gt;
&lt;li&gt;Add new &lt;code&gt;Tooltip&lt;/code&gt; building blocks: - &lt;code&gt;TooltipArrow&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/357ab44&quot;&gt;357ab44&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The &lt;code&gt;Drawer&lt;/code&gt; component has been refactored to support a fully composable architecture.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Added the following subcomponents to allow flexible composition and advanced customization:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DrawerTrigger&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DrawerPortal&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DrawerOverlay&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DrawerContent&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DrawerHeader&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DrawerTitle&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DrawerCloseButton&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These additions enable fine-grained control over drawer structure, layout, focus management, and visual presentation, while preserving accessibility, focus trapping, and native interaction patterns&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/95b6ae7&quot;&gt;95b6ae7&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Refactor form controls architecture and remove deprecated components.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Removed (breaking)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Remove &lt;code&gt;FlagIcon&lt;/code&gt; package exports and implementation.&lt;/li&gt;
&lt;li&gt;Remove &lt;code&gt;PhoneSelectField&lt;/code&gt; and related subcomponents/contexts/styles.&lt;/li&gt;
&lt;li&gt;Remove legacy &lt;code&gt;SelectArrow&lt;/code&gt; and &lt;code&gt;SelectPlaceholder&lt;/code&gt; components.&lt;/li&gt;
&lt;li&gt;Remove legacy &lt;code&gt;NumberFieldIncrement&lt;/code&gt;/&lt;code&gt;NumberFieldDecrement&lt;/code&gt; components.&lt;/li&gt;
&lt;li&gt;Remove legacy &lt;code&gt;PinFieldInput&lt;/code&gt; component.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Added&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add new &lt;code&gt;NumberField&lt;/code&gt; building blocks:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;NumberFieldInput&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NumberFieldIncrementButton&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NumberFieldDecrementButton&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NumberFieldContext&lt;/code&gt; (new contexts structure)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NumberField&lt;/code&gt; types module&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add new &lt;code&gt;PasswordField&lt;/code&gt; building blocks:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PasswordFieldInput&lt;/code&gt;, &lt;code&gt;PasswordFieldToggleIconButton&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PasswordFieldShownIcon&lt;/code&gt;, &lt;code&gt;PasswordFieldHiddenIcon&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PasswordFieldContext&lt;/code&gt; and component index exports&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add new &lt;code&gt;PhoneField&lt;/code&gt; composition:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PhoneFieldInput&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PhoneFieldSelect&lt;/code&gt; + subcomponents (&lt;code&gt;Combobox&lt;/code&gt;, &lt;code&gt;HiddenSelect&lt;/code&gt;, &lt;code&gt;Icon&lt;/code&gt;, &lt;code&gt;Listbox&lt;/code&gt;, &lt;code&gt;Option&lt;/code&gt;, &lt;code&gt;Portal&lt;/code&gt;, &lt;code&gt;Value&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PhoneFieldContext&lt;/code&gt; and component index exports&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;PinFieldHiddenInput&lt;/code&gt; component (single visually hidden input backing the slots).&lt;/li&gt;
&lt;li&gt;Add new &lt;code&gt;Select&lt;/code&gt; building blocks:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;SelectHiddenSelect&lt;/code&gt;, &lt;code&gt;SelectIcon&lt;/code&gt;, &lt;code&gt;SelectPortal&lt;/code&gt;, &lt;code&gt;SelectValue&lt;/code&gt; helpers&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SelectOptionsContext&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add new &lt;code&gt;TextFieldInput&lt;/code&gt; component and &lt;code&gt;TextFieldContext&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Changed&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Update &lt;code&gt;PinField&lt;/code&gt; internals, contexts, slots, separator, styles and tests.&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;Select&lt;/code&gt;, &lt;code&gt;NumberField&lt;/code&gt;, &lt;code&gt;PasswordField&lt;/code&gt;, &lt;code&gt;PhoneField&lt;/code&gt;, &lt;code&gt;TextField&lt;/code&gt; internals, styles, stories and tests.&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;Option&lt;/code&gt; component and related types/styles.&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;Drawer&lt;/code&gt; internals and context, plus stories.&lt;/li&gt;
&lt;li&gt;Update library root exports (&lt;code&gt;packages/ui/src/index.ts&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Tests&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Update existing tests for refactored components.&lt;/li&gt;
&lt;li&gt;Add/adjust stories for new subcomponents.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/50bc30f&quot;&gt;50bc30f&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The Accordion component has become more composable: the AccordionIcon and the AccordionHeader have been added.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/ca0cb2b&quot;&gt;ca0cb2b&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The Popover component has become more composable: the PopoverBackdrop have been added&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/35a056a&quot;&gt;35a056a&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Made Alert more composable: added the elements alertTitle, AlertIcon, AlertMain, AlertContent&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/21e1d64&quot;&gt;21e1d64&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Added Backdrop component&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/e58908c&quot;&gt;e58908c&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The Checkbox component has become more composable: the CheckboxHiddenInput, CheckboxIndicator, CheckboxCheckedIcon and the CheckboxIndeterminateIcon have been added.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/7ef3f1b&quot;&gt;7ef3f1b&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The loading property in the button has been removed to better match the component to the overall architecture and approach&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/9489f2e&quot;&gt;9489f2e&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The Meter component has become more composable: MeterTrack component has been renamed AvatarGroupStackItem
The Progress component has become more composable: ProgressTrack component has been renamed AvatarGroupStackItem
The PartialTrack component has been renamed (MeterStack), PartialMeterItem is now MeterStackSegment&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/4072edd&quot;&gt;4072edd&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The AvatarGroup component has become more composable: AvatarGroupPopover, AvatarGroupPopoverIcon, AvatarGroupPopoverTrigger, AvatarGroupPopoverContent, AvatarGroupCount, AvatarGroupStack components have been added, AvatarGroupItem component has been renamed AvatarGroupStackItem&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/0023797&quot;&gt;0023797&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The AvatarGroup component is now AvatarStack, which more reflects its spirit; Moreover, the AvatarGroupPopover and related components, as well as AvatarGroupCount, have been removed due to the fact that they inflate the codebase and can be implemented with existing primitives&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/acaabbc&quot;&gt;acaabbc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The CheckboxCard component has become more composable: CheckboxCardContent, CheckboxCardTitle, CheckboxCardDescription, CheckboxCardControl, CheckboxCardControlHiddenInput, CheckboxCardControlIndicator, CheckboxCardControlCheckedIcon, CheckboxCardControlIndeterminateIcon components have been added&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/5c33866&quot;&gt;5c33866&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Unified TextArea sizes&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/d4d1a53&quot;&gt;d4d1a53&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The Modal component has been renamed Dialog due to the greater consistency with the naming of native web elements&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/f9dacd3&quot;&gt;f9dacd3&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The Fieldset component has become more composable: the FieldsetHeader and FieldsetLegend components have been added&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/6fae7e6&quot;&gt;6fae7e6&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The Switch component has become more composable: SwitchIndicator and SwitchHiddenInput components have been added&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/bd99cb1&quot;&gt;bd99cb1&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;Sheet&lt;/code&gt; component has been refactored to support a fully composable architecture&lt;/li&gt;
&lt;li&gt;Added the following subcomponents to allow flexible composition and advanced customization:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;SheetPortal&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SheetBackdrop&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/82d11c9&quot;&gt;82d11c9&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Composable Slider&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/7b2c7fe&quot;&gt;7b2c7fe&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The &lt;code&gt;Dialog&lt;/code&gt; component has been refactored to support a fully composable architecture.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Added the following subcomponents to allow flexible composition and advanced customization:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DialogTrigger&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DialogPortal&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DialogOverlay&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DialogContent&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DialogHeader&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DialogTitle&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DialogCloseButton&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These additions enable fine-grained control over drawer structure, layout, focus management, and visual presentation, while preserving accessibility, focus trapping, and native interaction patterns&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/d2a2c5a&quot;&gt;d2a2c5a&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The SegmentedControl component has become more composable: the SegmentedControlItemHiddenInput and SegmentedControlIndicator have been added.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/e0a38ab&quot;&gt;e0a38ab&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Improved backdrop animations&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/31b2b94&quot;&gt;31b2b94&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The responsive-ui package is no longer supported due to inconsistencies in the overall component design approach&lt;/p&gt;
&lt;p&gt;The components that the responsive ui package contained are easily implemented using the composition of existing ones and do not require the support and development of a separate package&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/eab55a8&quot;&gt;eab55a8&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Unified all sizes&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/cfb207b&quot;&gt;cfb207b&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed DrawerOverlay to Backdrop inside&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/afe89b4&quot;&gt;afe89b4&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Removed unsued wrapper from CollapsibleContent&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/f121fa6&quot;&gt;f121fa6&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Fixed ts problems&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/9fcad60&quot;&gt;9fcad60&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Changed PageControl handler. Removed onProgressEnd (replaced by onAnimatedEnd)&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/f5fae54&quot;&gt;f5fae54&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-14-3</id>
    <title>@vega-ui/react 1.14.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-14-3"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Fixed active day into calendar&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/e5fcee3&quot;&gt;e5fcee3&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Changed dirs&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/5fbc32c&quot;&gt;5fbc32c&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Renamed BaseCalendar to CalendarBase&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/7711364&quot;&gt;7711364&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-14-2</id>
    <title>@vega-ui/react 1.14.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-14-2"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed deps&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/55809c0&quot;&gt;55809c0&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-14-1</id>
    <title>@vega-ui/react 1.14.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-14-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Refactored contexts, they are unified in style&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/9bb4a3b&quot;&gt;9bb4a3b&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Changed types&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/21bd47a&quot;&gt;21bd47a&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Flat helpers to one level&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/d595467&quot;&gt;d595467&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Deleted unused dependencies&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/d76eea5&quot;&gt;d76eea5&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-14-0</id>
    <title>@vega-ui/react 1.14.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-14-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added new calendar primitives:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CalendarBase&lt;/strong&gt; — foundational layout and styling provider for all calendar components (size, variant, compact mode).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Calendar&lt;/strong&gt; — high-level fully interactive calendar with day/month/year pickers, scroll-based navigation, controlled/uncontrolled selection modes, and full provider-based state management.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These components form the new core of the calendar system and enable building flexible, Radix-style declarative/imperative calendar interfaces.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/a387fda&quot;&gt;a387fda&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-13-0</id>
    <title>@vega-ui/react 1.13.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-13-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Add composable calendar picker primitives and index-based snap scroller utilities.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;New pickers&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;YearPicker&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;High-level year selection component built on top of &lt;code&gt;DataGridPicker&amp;lt;number&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Supports &lt;code&gt;single&lt;/code&gt;, &lt;code&gt;multiple&lt;/code&gt;, and &lt;code&gt;range&lt;/code&gt; selection modes with &lt;code&gt;from&lt;/code&gt; / &lt;code&gt;to&lt;/code&gt; bounds.&lt;/li&gt;
&lt;li&gt;Provides a default &lt;code&gt;YearPickerLayout&lt;/code&gt; (configurable &lt;code&gt;rows&lt;/code&gt;, &lt;code&gt;cols&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, &lt;code&gt;offset&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Adds composable primitives:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;YearPickerItem&lt;/code&gt;, &lt;code&gt;YearPickerRow&lt;/code&gt;, &lt;code&gt;YearPickerRowGroup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;YearPickerScroller&lt;/code&gt;, &lt;code&gt;YearPickerScrollerContent&lt;/code&gt;, &lt;code&gt;YearPickerScrollerLayout&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Includes helpers like &lt;code&gt;createYearPickerGrid&lt;/code&gt; for generating year grids.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;MonthPicker&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Wrapper over &lt;code&gt;DataGridPicker&amp;lt;number&amp;gt;&lt;/code&gt; specialized for month selection.&lt;/li&gt;
&lt;li&gt;Default active value resolves to the current month.&lt;/li&gt;
&lt;li&gt;Provides:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;MonthPickerLayout&lt;/code&gt; with configurable &lt;code&gt;rows&lt;/code&gt;, &lt;code&gt;cols&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, &lt;code&gt;locale&lt;/code&gt;, &lt;code&gt;format&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MonthPickerItem&lt;/code&gt;, &lt;code&gt;MonthPickerRow&lt;/code&gt;, &lt;code&gt;MonthPickerRowGroup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MonthPickerScroller&lt;/code&gt;, &lt;code&gt;MonthPickerScrollerContent&lt;/code&gt;, &lt;code&gt;MonthPickerScrollerLayout&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Adds &lt;code&gt;createMonthPickerGrid&lt;/code&gt; for building month matrices (e.g. 3×4 year views).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;DayPicker&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Day-level calendar picker built on &lt;code&gt;DataGridPicker&amp;lt;number&amp;gt;&lt;/code&gt; with default active set to “today” (timestamp).&lt;/li&gt;
&lt;li&gt;Supports &lt;code&gt;single&lt;/code&gt; / &lt;code&gt;multiple&lt;/code&gt; / &lt;code&gt;range&lt;/code&gt; selection and can respect min/max via &lt;code&gt;DataGridPicker&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Provides:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DayPickerLayout&lt;/code&gt; with &lt;code&gt;year&lt;/code&gt;, &lt;code&gt;month&lt;/code&gt;, &lt;code&gt;offset&lt;/code&gt;, &lt;code&gt;includeOverflowDays&lt;/code&gt;, &lt;code&gt;weekStartsOn&lt;/code&gt;, &lt;code&gt;rows&lt;/code&gt;, &lt;code&gt;cols&lt;/code&gt;, &lt;code&gt;locale&lt;/code&gt;, &lt;code&gt;format&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DayPickerItem&lt;/code&gt;, &lt;code&gt;DayPickerRow&lt;/code&gt;, &lt;code&gt;DayPickerRowGroup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DayPickerScroller&lt;/code&gt;, &lt;code&gt;DayPickerScrollerContent&lt;/code&gt;, &lt;code&gt;DayPickerScrollerLayout&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Adds &lt;code&gt;createDayPickerGrid&lt;/code&gt; to generate month views with optional overflow days and arbitrary week starts.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;New scroller utilities&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;IndexedSnapScroller&lt;/code&gt;&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Extends &lt;code&gt;SnapScroller&lt;/code&gt; with virtual, index-based paging.&lt;/li&gt;
&lt;li&gt;Maintains a sliding window of logical page indexes via &lt;code&gt;useIndexes({ start, startDir, size, shift })&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Automatically shifts the window when scroll reaches edges (&lt;code&gt;onOffset(-1|1)&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Exposes:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;IndexedSnapScroller&lt;/code&gt; component&lt;/li&gt;
&lt;li&gt;&lt;code&gt;IndexedSnapScrollerContent&lt;/code&gt; (injects &lt;code&gt;index&lt;/code&gt; via context)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;IndexedSnapScrollerProvider&lt;/code&gt; / &lt;code&gt;useIndexesSnapScrollerContext&lt;/code&gt; for consuming the current index in custom layouts.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Formatting helpers&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add small date-format helpers, suitable for use inside picker layouts:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;formatDay(day, month, year, locale?, format?)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;formatMonth(month, locale?, format?)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;formatYear(year, locale?, format?)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These additions provide a fully composable calendar system (years, months, days) on top of &lt;code&gt;DataGridPicker&lt;/code&gt; and &lt;code&gt;SnapScroller&lt;/code&gt;, while keeping layout and rendering customizable through small, focused primitives.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/abbdcdc&quot;&gt;abbdcdc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-12-4</id>
    <title>@vega-ui/react 1.12.4</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-12-4"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-12-3</id>
    <title>@vega-ui/react 1.12.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-12-3"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Fixed RangeSlider performance&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/b433cff&quot;&gt;b433cff&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-12-2</id>
    <title>@vega-ui/react 1.12.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-12-2"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Fixed SnapScrolle onSnap call&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/919f735&quot;&gt;919f735&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Changed requestIdleCallback to rAF due to unsupport into Safari&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/709d532&quot;&gt;709d532&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Fixed SnapScroller onScroll left&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/e5ab56d&quot;&gt;e5ab56d&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-12-1</id>
    <title>@vega-ui/react 1.12.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-12-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;A bug was fixed in which it was impossible to expand the selected range on mobile devices and scroll in SnapScroller, as well as minor edits were made: when changing the range to the beginning and end, reset is not triggered.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/22dea95&quot;&gt;22dea95&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Added selected and default selected as a prop for DataGridSelectable&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/3b2c885&quot;&gt;3b2c885&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-12-0</id>
    <title>@vega-ui/react 1.12.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-12-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;This release introduces a complete grid, selection, and scroll system for structured, interactive UIs.
It combines efficient keyboard navigation, flexible selection logic, and smooth snap scrolling —
forming the foundation for advanced table, calendar, and picker interfaces.&lt;/p&gt;
&lt;p&gt;📊 &lt;code&gt;DataGrid&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DataGrid&lt;/code&gt; is a focusable, navigable grid that manages keyboard movement and active-cell focus.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Supports navigation with Arrow, Home/End, and PageUp/PageDown keys&lt;/li&gt;
&lt;li&gt;Optional wrap navigation (horizontal, vertical, or both)&lt;/li&gt;
&lt;li&gt;Configurable rowDelta for page jumps&lt;/li&gt;
&lt;li&gt;Provides an imperative API (grid, keyMap) for advanced logic&lt;/li&gt;
&lt;li&gt;Supports excluded or disabled cells that are skipped during traversal&lt;/li&gt;
&lt;li&gt;Emits onMove events describing direction and axis of movement&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Used as the base for all higher-level grid-based components.&lt;/p&gt;
&lt;p&gt;🧭 &lt;code&gt;DataGridSelectable&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DataGridSelectable&lt;/code&gt; extends DataGrid with a full selection model.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Selection modes: &amp;quot;single&amp;quot;, &amp;quot;multiple&amp;quot;, &amp;quot;range&amp;quot;&lt;/li&gt;
&lt;li&gt;Keyboard (Shift + Arrows) and pointer-based range selection&lt;/li&gt;
&lt;li&gt;Optional disabled and bounded ranges (from / to)&lt;/li&gt;
&lt;li&gt;Fully integrated with the useSelection hook&lt;/li&gt;
&lt;li&gt;Provides consistent accessibility and state behavior&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ideal for building interactive tables, lists, and date selectors.&lt;/p&gt;
&lt;p&gt;🎯 &lt;code&gt;DataGridPicker&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;DataGridPicker builds on DataGridSelectable to enable picking and highlighting items within a grid.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Automatically computes rectangular ranges between selected cells&lt;/li&gt;
&lt;li&gt;Supports highlighting of continuous intervals (start → end)&lt;/li&gt;
&lt;li&gt;Can be customized with a user-defined resolveRange function&lt;/li&gt;
&lt;li&gt;Commonly used for date pickers, emoji selectors, or option matrices&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;🧱 &lt;code&gt;SnapScroller&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;SnapScroller&lt;/code&gt; provides smooth, scroll-snap navigation with full control and callbacks.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Optimized for CSS scroll-snap-align behavior&lt;/li&gt;
&lt;li&gt;Exposes imperative API: next(), prev(), element&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Triggers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;onSnap(index) — when snapped item changes&lt;/li&gt;
&lt;li&gt;onOffset(direction) — when scroll reaches start or end&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Optional preserveScroll restores snapped position after content updates&lt;/p&gt;
&lt;p&gt;Perfect for carousels, paginated lists, or horizontally scrolling pickers.&lt;/p&gt;
&lt;p&gt;🪝 &lt;code&gt;useSelection&lt;/code&gt; Hook&lt;/p&gt;
&lt;p&gt;&lt;code&gt;useSelection&lt;/code&gt; is a composable hook for declarative selection management.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Supports &amp;quot;single&amp;quot;, &amp;quot;multiple&amp;quot;, and &amp;quot;range&amp;quot; modes&lt;/li&gt;
&lt;li&gt;Provides helpers: toggle, expand, isSelected, edges, and more&lt;/li&gt;
&lt;li&gt;Accepts custom equals, compare, and resolveRange logic&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Used internally by DataGridSelectable and DataGridPicker&lt;/p&gt;
&lt;p&gt;⚙️ &lt;code&gt;Grid &amp;amp; Matrix Utilities&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;These low-level utilities power the core grid logic and ensure efficient traversal.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;grid&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;A high-level controller for navigating 2D layouts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Provides directional movement (before, after, above, below)&lt;/li&gt;
&lt;li&gt;Handles row and column wrapping&lt;/li&gt;
&lt;li&gt;Uses Matrix internally for structure and lookup&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;matrix&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;A modular 2D data engine with the following components:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Matrix&lt;/code&gt; — manages all rows and cells
&lt;code&gt;MatrixRow&lt;/code&gt; — ordered row container with iterable access
&lt;code&gt;MatrixNode&lt;/code&gt; — represents a single cell ([row, col], key, payload)
&lt;code&gt;MatrixIndexes&lt;/code&gt; — maintains sorted indices with binary search&lt;/p&gt;
&lt;p&gt;Together, they ensure fast lookups and navigation across sparse grids.&lt;/p&gt;
&lt;p&gt;This release establishes the foundation for interactive, accessible, and performant grid-based interfaces in Vega UI —
enabling developers to build pickers, calendars, tables, and carousels with minimal boilerplate and maximum control.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/30e9724&quot;&gt;30e9724&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-11-4</id>
    <title>@vega-ui/react 1.11.4</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-11-4"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Fixed buttons docs&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/8f89ab1&quot;&gt;8f89ab1&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Fixed avatar icon size&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/2740436&quot;&gt;2740436&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Fixed pagination icon button size&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/9c8d951&quot;&gt;9c8d951&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-11-3</id>
    <title>@vega-ui/react 1.11.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-11-3"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Made graphite color more contrast than gray&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/0392555&quot;&gt;0392555&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-11-2</id>
    <title>@vega-ui/react 1.11.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-11-2"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;The gray colors have been changed, the surface has been added, and the fields styles have also been changed&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/61a382b&quot;&gt;61a382b&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-11-1</id>
    <title>@vega-ui/react 1.11.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-11-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Fixed sheet paddings&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/eef91ab&quot;&gt;eef91ab&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-11-0</id>
    <title>@vega-ui/react 1.11.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-11-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;SheetContent will now contain SheetMain, SheetHandle, and SheetHeader inside&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/a4c6339&quot;&gt;a4c6339&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-10-1</id>
    <title>@vega-ui/react 1.10.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-10-1"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-10-0</id>
    <title>@vega-ui/react 1.10.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-10-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added new sizes (xs, xl) for button, icon button and segmented control&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/d5538a5&quot;&gt;d5538a5&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-9-0</id>
    <title>@vega-ui/react 1.9.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-9-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added new packages - tokens and theme&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/c90a0c1&quot;&gt;c90a0c1&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-8-1</id>
    <title>@vega-ui/react 1.8.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-8-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added Size prop to PageControl, added hook useRefMap, improved accessability, added mergeEventHandlers util&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/c98c982&quot;&gt;c98c982&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-8-0</id>
    <title>@vega-ui/react 1.8.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-8-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added new component - PageControl&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/83bafaa&quot;&gt;83bafaa&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-7-4</id>
    <title>@vega-ui/react 1.7.4</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-7-4"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;NumberField separated to components&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/7031b78&quot;&gt;7031b78&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-7-3</id>
    <title>@vega-ui/react 1.7.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-7-3"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed measure of padding and br into the Badge&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/9bd2b72&quot;&gt;9bd2b72&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Fixed style for pin field&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/ff9b743&quot;&gt;ff9b743&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-7-2</id>
    <title>@vega-ui/react 1.7.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-7-2"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added new badge appearance&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/ec3ec3a&quot;&gt;ec3ec3a&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Changed spelling&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/272ce51&quot;&gt;272ce51&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-7-1</id>
    <title>@vega-ui/react 1.7.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-7-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed Badge display to inline-flex&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/bc29e3e&quot;&gt;bc29e3e&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Separated inner components in Alert&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/a4f52d3&quot;&gt;a4f52d3&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-7-0</id>
    <title>@vega-ui/react 1.7.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-7-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added custom size, appearance and variant to elements&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/3941d2c&quot;&gt;3941d2c&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Changed default icon size to null&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/5cb45a4&quot;&gt;5cb45a4&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-6-0</id>
    <title>@vega-ui/react 1.6.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-6-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added accordion item provider&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/c672c1e&quot;&gt;c672c1e&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-5-0</id>
    <title>@vega-ui/react 1.5.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-5-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added new compoents - AccordionTrigger, AccordionContent, that brings new flexibility for styling elements&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/89c9898&quot;&gt;89c9898&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-4-2</id>
    <title>@vega-ui/react 1.4.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-4-2"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Removed default props in Icon &amp;amp; added new types to Slot (generic type)&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/7002513&quot;&gt;7002513&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Deleted utils for size map spinner&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/e731538&quot;&gt;e731538&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-4-1</id>
    <title>@vega-ui/react 1.4.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-4-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Deleted @property css&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/a136ce0&quot;&gt;a136ce0&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-4-0</id>
    <title>@vega-ui/react 1.4.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-4-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added new utilities&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/e022b3c&quot;&gt;e022b3c&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-3-0</id>
    <title>@vega-ui/react 1.3.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-3-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed providers of icons - lucide&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/279075a&quot;&gt;279075a&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-2-2</id>
    <title>@vega-ui/react 1.2.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-2-2"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed Alert styles accorded to Figma&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/a80dac4&quot;&gt;a80dac4&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-2-1</id>
    <title>@vega-ui/react 1.2.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-2-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed slider styles&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/3bdf4de&quot;&gt;3bdf4de&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-2-0</id>
    <title>@vega-ui/react 1.2.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-2-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added new component - RangeSlider, Slider and SliderBase&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/6224045&quot;&gt;6224045&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-1-1</id>
    <title>@vega-ui/react 1.1.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-1-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Fixed exports&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/ffa6cc4&quot;&gt;ffa6cc4&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-1-0</id>
    <title>@vega-ui/react 1.1.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-1-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added new components - Meter, MeterStack and Progress&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/c226a32&quot;&gt;c226a32&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#v1-0-1</id>
    <title>@vega-ui/react 1.0.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#v1-0-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed logo&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/fb2ec42&quot;&gt;fb2ec42&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v2-5-0</id>
    <title>@vega-ui/hooks 2.5.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v2-5-0"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Fix broken &lt;code&gt;main&lt;/code&gt; field in hooks, utils and react-context&lt;/p&gt;
&lt;p&gt;In &lt;code&gt;@vega-ui/hooks&lt;/code&gt;, &lt;code&gt;@vega-ui/utils&lt;/code&gt; and &lt;code&gt;@vega-ui/react-context&lt;/code&gt; the &lt;code&gt;main&lt;/code&gt; field pointed to &lt;code&gt;./dist/index.ts&lt;/code&gt; — a file that doesn't exist in &lt;code&gt;dist/&lt;/code&gt; (the build only outputs &lt;code&gt;.js&lt;/code&gt; and &lt;code&gt;.d.ts&lt;/code&gt;). Modern bundlers masked the problem by resolving through the &lt;code&gt;exports&lt;/code&gt; map, but environments that rely on &lt;code&gt;main&lt;/code&gt; (Node without conditional exports support, Jest with legacy resolution, ts-node, CDNs like esm.sh) got &lt;code&gt;MODULE_NOT_FOUND&lt;/code&gt; or tried to parse TypeScript as JS.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;main&lt;/code&gt; now points to &lt;code&gt;./dist/index.js&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;added &lt;code&gt;module: &amp;quot;./dist/index.js&amp;quot;&lt;/code&gt; (consistent with &lt;code&gt;@vega-ui/react&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;added the missing top-level &lt;code&gt;types: &amp;quot;./dist/index.d.ts&amp;quot;&lt;/code&gt; to utils and react-context so resolvers that don't support &lt;code&gt;exports&lt;/code&gt; can find the type declarations&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/1007aae&quot;&gt;1007aae&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Remove React from &lt;code&gt;dependencies&lt;/code&gt;, keep it only in &lt;code&gt;peerDependencies&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;react&lt;/code&gt; (and &lt;code&gt;react-dom&lt;/code&gt; in &lt;code&gt;@vega-ui/react&lt;/code&gt;) were declared in both &lt;code&gt;dependencies&lt;/code&gt; and &lt;code&gt;peerDependencies&lt;/code&gt;. With strict resolution (Yarn PnP, pnpm with &lt;code&gt;shamefully-hoist=false&lt;/code&gt;, strict npm) consumers ended up with two copies of React — &lt;code&gt;Invalid hook call&lt;/code&gt;, contexts not matching, rendering breaking with no clear error.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;removed &lt;code&gt;react&lt;/code&gt;/&lt;code&gt;react-dom&lt;/code&gt; from &lt;code&gt;dependencies&lt;/code&gt; in &lt;code&gt;@vega-ui/react&lt;/code&gt;, &lt;code&gt;@vega-ui/hooks&lt;/code&gt; and &lt;code&gt;@vega-ui/icons&lt;/code&gt;; they stay in &lt;code&gt;peerDependencies&lt;/code&gt; and were added to &lt;code&gt;devDependencies&lt;/code&gt; for local development&lt;/li&gt;
&lt;li&gt;&lt;code&gt;vite.config.ts&lt;/code&gt; of &lt;code&gt;@vega-ui/react&lt;/code&gt; and &lt;code&gt;@vega-ui/hooks&lt;/code&gt; derived rollup &lt;code&gt;external&lt;/code&gt; from &lt;code&gt;Object.keys(dependencies)&lt;/code&gt; only, so React would have been bundled into &lt;code&gt;dist&lt;/code&gt; after this change — externals now include &lt;code&gt;peerDependencies&lt;/code&gt; as well&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/9834a4c&quot;&gt;9834a4c&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Fix inverted &lt;code&gt;useIsomorphicLayoutEffect&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The ternary picked &lt;code&gt;useLayoutEffect&lt;/code&gt; on the server and &lt;code&gt;useEffect&lt;/code&gt; in the browser — exactly backwards. On SSR this triggered React's &amp;quot;useLayoutEffect does nothing on the server&amp;quot; warning; in the browser, everything built on the hook (&lt;code&gt;useLatest&lt;/code&gt;, and through it layout measurements in &lt;code&gt;useResize&lt;/code&gt;/&lt;code&gt;useScrollSnap&lt;/code&gt; consumers) ran after paint instead of before it, allowing a frame of stale layout.&lt;/p&gt;
&lt;p&gt;Also renamed the file to fix the typo: &lt;code&gt;useIsomophicLayoutEffect.ts&lt;/code&gt; → &lt;code&gt;useIsomorphicLayoutEffect.ts&lt;/code&gt; (internal only — the exported name was always spelled correctly).&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/5ebae4b&quot;&gt;5ebae4b&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Fix crash paths and null/undefined confusion in &lt;code&gt;useScrollSnap&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;getPointed()&lt;/code&gt; returns &lt;code&gt;undefined&lt;/code&gt; when the scroller ref is not attached, but &lt;code&gt;measure()&lt;/code&gt; dereferenced its result unconditionally (TypeError on mount when the scroller renders later, or when calling the public &lt;code&gt;measure()&lt;/code&gt; too early), and &lt;code&gt;commit()&lt;/code&gt; destructured it unconditionally (TypeError when the scroller leaves the DOM while a debounced commit is pending). With an empty scroller (no registered items) &lt;code&gt;onSnapChange&lt;/code&gt;/&lt;code&gt;onSnapChanging&lt;/code&gt; fired with &lt;code&gt;(undefined, undefined)&lt;/code&gt; despite their &lt;code&gt;(el: HTMLElement, key: K)&lt;/code&gt; signatures, and the &lt;code&gt;key !== null&lt;/code&gt; guard in &lt;code&gt;commit&lt;/code&gt; never worked because &lt;code&gt;key&lt;/code&gt; was &lt;code&gt;K | undefined&lt;/code&gt;, never &lt;code&gt;null&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Now: &lt;code&gt;getPointed&lt;/code&gt; normalizes misses to &lt;code&gt;null&lt;/code&gt; and all callers guard against an absent scroller; snap callbacks only fire with a real element and key; &lt;code&gt;measure()&lt;/code&gt; skips items whose snap point cannot be computed instead of storing &lt;code&gt;undefined&lt;/code&gt; in the points map; &lt;code&gt;scrollToElement&lt;/code&gt; no longer looks up points with an &lt;code&gt;undefined&lt;/code&gt; key.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/c652925&quot;&gt;c652925&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;useSelection&lt;/code&gt;: optional &lt;code&gt;compare&lt;/code&gt; no longer crashes; new &lt;code&gt;compare&lt;/code&gt; util&lt;/p&gt;
&lt;p&gt;&lt;code&gt;compare?&lt;/code&gt; was declared optional but invoked unconditionally in &lt;code&gt;edges&lt;/code&gt;, &lt;code&gt;isSelected&lt;/code&gt; and &lt;code&gt;isDisabled&lt;/code&gt; — range selection or &lt;code&gt;min&lt;/code&gt;/&lt;code&gt;max&lt;/code&gt; clamping without a user-provided comparator threw &lt;code&gt;compare is not a function&lt;/code&gt; (while &lt;code&gt;expand&lt;/code&gt; had a guard, confirming the option was meant to be optional).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;@vega-ui/utils&lt;/code&gt; now exports &lt;code&gt;compare&lt;/code&gt; — a three-way comparator constrained to the new &lt;code&gt;Comparable&lt;/code&gt; type (&lt;code&gt;number | string | bigint | Date&lt;/code&gt;), so types with no universal ordering (objects, symbols) are rejected at compile time; covered with unit tests&lt;/li&gt;
&lt;li&gt;&lt;code&gt;useSelection&lt;/code&gt; falls back to it when no &lt;code&gt;compare&lt;/code&gt; is passed, mirroring the existing &lt;code&gt;equals ?? Object.is&lt;/code&gt; pattern; pass an explicit &lt;code&gt;compare&lt;/code&gt; for non-primitive key types&lt;/li&gt;
&lt;li&gt;&lt;code&gt;expand&lt;/code&gt; no longer silently no-ops without a user comparator&lt;/li&gt;
&lt;li&gt;empty or &lt;code&gt;undefined&lt;/code&gt; &lt;code&gt;selected&lt;/code&gt; no longer produces &lt;code&gt;undefined&lt;/code&gt; range edges: &lt;code&gt;edges()&lt;/code&gt; returns &lt;code&gt;[]&lt;/code&gt;, &lt;code&gt;isSelected&lt;/code&gt; returns &lt;code&gt;false&lt;/code&gt; instead of comparing &lt;code&gt;undefined&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DataGridSelectable&lt;/code&gt; reuses the shared &lt;code&gt;compare&lt;/code&gt; instead of its own inline duplicate of the same fallback (no behavior change)&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/0ffc52f&quot;&gt;0ffc52f&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v2-4-0</id>
    <title>@vega-ui/hooks 2.4.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v2-4-0"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v2-3-1</id>
    <title>@vega-ui/hooks 2.3.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v2-3-1"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v2-3-0</id>
    <title>@vega-ui/hooks 2.3.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v2-3-0"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v2-2-1</id>
    <title>@vega-ui/hooks 2.2.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v2-2-1"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v2-2-0</id>
    <title>@vega-ui/hooks 2.2.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v2-2-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Adding New Components&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DateField&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A date input field with masking and format validation.&lt;/li&gt;
&lt;li&gt;Uses &lt;code&gt;useControlledState&lt;/code&gt; for controlled/uncontrolled values.&lt;/li&gt;
&lt;li&gt;Composed of the following components:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DateFieldInput&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DateFieldCalendar&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Supports date formats (e.g., &amp;quot;dd.MM.yyyy&amp;quot;, &amp;quot;MM/dd/yyyy&amp;quot;).&lt;/li&gt;
&lt;li&gt;Supports minimum and maximum date restrictions (&lt;code&gt;minDate&lt;/code&gt;, &lt;code&gt;maxDate&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;DateTimeField&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A date and time input field.&lt;/li&gt;
&lt;li&gt;Combines the logic of &lt;code&gt;DateField&lt;/code&gt; and &lt;code&gt;TimeField&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Composed of the following components:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DateTimeFieldInput&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DateTimeFieldCalendar&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TimeSelector&lt;/code&gt; (for selecting time)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Uses &lt;code&gt;useControlledState&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;DateRangeField&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A field for selecting a date range.&lt;/li&gt;
&lt;li&gt;Composed of the following components:
&lt;ul&gt;
&lt;li&gt;Two &lt;code&gt;DateField&lt;/code&gt;s (start and end dates)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DateRangeCalendar&lt;/code&gt; (calendar for selecting the range)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Handles range validation (start date ≤ end date).&lt;/li&gt;
&lt;li&gt;Uses &lt;code&gt;useControlledState&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;TimeField&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A time input field.&lt;/li&gt;
&lt;li&gt;Supports masking and time format (e.g., &amp;quot;HH:mm&amp;quot;).&lt;/li&gt;
&lt;li&gt;Uses &lt;code&gt;useControlledState&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Composed of the following components:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;TimeFieldInput&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Additional controls (arrows, time selector)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/798d27c&quot;&gt;798d27c&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v2-1-1</id>
    <title>@vega-ui/hooks 2.1.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v2-1-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Removed unused hook - useMediaQuery&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/60ef267&quot;&gt;60ef267&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v2-1-0</id>
    <title>@vega-ui/hooks 2.1.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v2-1-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Refactor Calendar stack to scroll-snap scrollers (DataGridPickerScroller) and remove react-store based state.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;@vega-ui/ui&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SnapScroller&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; &lt;code&gt;initialIndex&lt;/code&gt; renamed to &lt;code&gt;defaultIndex&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; removed &lt;code&gt;preserveScroll&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; removed &lt;code&gt;onOffset&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Added scroll-snap callbacks:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;onScrollSnapChanging?(element, index)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;onScrollSnapChange?(element, index)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;IndexedSnapScroller&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Keeps offset-based infinite behavior (window &lt;code&gt;shift()&lt;/code&gt; / &lt;code&gt;push()&lt;/code&gt;) and optional &lt;code&gt;preserveScroll&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Supports controlled &lt;code&gt;index&lt;/code&gt; (scrolls to it when in window; rebuilds window when outside).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;DataGrid&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; &lt;code&gt;onMove(e, node, axis, dir)&lt;/code&gt; replaced with &lt;code&gt;onArrow(e, nextNode, prevNode)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; &lt;code&gt;DataGridApiRef&lt;/code&gt; changed:
&lt;ul&gt;
&lt;li&gt;removed &lt;code&gt;keyMap&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;added &lt;code&gt;scopes: Map&amp;lt;DataGridScope, DataGridCellKey[]&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DataGridRowGroup&lt;/code&gt; now supports &lt;code&gt;scope?: DataGridScope&lt;/code&gt; and provides it via context.&lt;/li&gt;
&lt;li&gt;Cells unregister from the grid on unmount (node cleanup).&lt;/li&gt;
&lt;li&gt;Active/selection focus flow updated to sync active cell on focus changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;DataGridPicker&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added &lt;code&gt;DataGridPickerScroller&lt;/code&gt; and &lt;code&gt;DataGridPickerScrollerContent&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DataGridPickerScroller&lt;/code&gt; integrates with scroll-snap events to restore/adjust active focus for the current scope.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;DayPicker&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; DayPicker scrolling is now driven by &lt;code&gt;DataGridPickerScroller&lt;/code&gt; (instead of IndexedSnapScroller directly).&lt;/li&gt;
&lt;li&gt;Added period-to-index mapping via reference anchor:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;referenceDate?: Date&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;getIndexByDate?(year, month)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;getDateByIndex?(index)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Period changes are emitted during scroll via &lt;code&gt;onScrollSnapChanging&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;YearPicker&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; YearPicker scrolling is now driven by &lt;code&gt;DataGridPickerScroller&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Added year-to-index mapping via reference anchor:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;referenceYear?: number&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;getIndexByYear?(year, referenceYear)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Layout derives offset from &lt;code&gt;year&lt;/code&gt; when &lt;code&gt;offset&lt;/code&gt; is not provided.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Calendar / CalendarBase&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; &lt;code&gt;onYearChange&lt;/code&gt; -&amp;gt; &lt;code&gt;onChangeYear&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; &lt;code&gt;onMonthChange&lt;/code&gt; -&amp;gt; &lt;code&gt;onChangeMonth&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Added controlled/uncontrolled view state for navigation:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;year&lt;/code&gt; / &lt;code&gt;defaultYear&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;month&lt;/code&gt; / &lt;code&gt;defaultMonth&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;activeDay&lt;/code&gt; / &lt;code&gt;defaultActiveDay&lt;/code&gt; + &lt;code&gt;onChangeActiveDay&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;activeMonth&lt;/code&gt; / &lt;code&gt;defaultActiveMonth&lt;/code&gt; + &lt;code&gt;onChangeActiveMonth&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;activeYear&lt;/code&gt; / &lt;code&gt;defaultActiveYear&lt;/code&gt; + &lt;code&gt;onChangeActiveYear&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Added &lt;code&gt;referenceDate?: Date&lt;/code&gt; as an anchor for indexed/virtualized navigation.&lt;/li&gt;
&lt;li&gt;Added year-group navigation controls:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CalendarNextYearGroupButton&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CalendarPrevYearGroupButton&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Picker/ESC handling updated (Escape now stops propagation).&lt;/li&gt;
&lt;li&gt;Period navigation split into:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;nextPeriod&lt;/code&gt; / &lt;code&gt;prevPeriod&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nextYearGroup&lt;/code&gt; / &lt;code&gt;prevYearGroup&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;@vega-ui/hooks&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; removed &lt;code&gt;useStore&lt;/code&gt;, &lt;code&gt;useControlledStore&lt;/code&gt; (react-store dependency removed).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; removed &lt;code&gt;useIntersectionObserver&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Added:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;useScrollSnap&lt;/code&gt; (snap measurement + &lt;code&gt;onSnapChanging/onSnapChange&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;useMutationObserver&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;useBiMap&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;useRefMap&lt;/code&gt; now exposes &lt;code&gt;removeItemRef&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;useIndexes&lt;/code&gt; updated to support new shifting semantics safely.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;@vega-ui/react-store&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; package removed / no longer used in the monorepo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;@vega-ui/utils&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added &lt;code&gt;BiMap&lt;/code&gt; and &lt;code&gt;nearest&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Reorganized data helpers under &lt;code&gt;utils/data/*&lt;/code&gt; with re-exports.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/8380d3b&quot;&gt;8380d3b&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v2-0-1</id>
    <title>@vega-ui/hooks 2.0.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v2-0-1"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v2-0-0</id>
    <title>@vega-ui/hooks 2.0.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v2-0-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Refactor form controls architecture and remove deprecated components.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Removed (breaking)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Remove &lt;code&gt;FlagIcon&lt;/code&gt; package exports and implementation.&lt;/li&gt;
&lt;li&gt;Remove &lt;code&gt;PhoneSelectField&lt;/code&gt; and related subcomponents/contexts/styles.&lt;/li&gt;
&lt;li&gt;Remove legacy &lt;code&gt;SelectArrow&lt;/code&gt; and &lt;code&gt;SelectPlaceholder&lt;/code&gt; components.&lt;/li&gt;
&lt;li&gt;Remove legacy &lt;code&gt;NumberFieldIncrement&lt;/code&gt;/&lt;code&gt;NumberFieldDecrement&lt;/code&gt; components.&lt;/li&gt;
&lt;li&gt;Remove legacy &lt;code&gt;PinFieldInput&lt;/code&gt; component.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Added&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add new &lt;code&gt;NumberField&lt;/code&gt; building blocks:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;NumberFieldInput&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NumberFieldIncrementButton&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NumberFieldDecrementButton&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NumberFieldContext&lt;/code&gt; (new contexts structure)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NumberField&lt;/code&gt; types module&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add new &lt;code&gt;PasswordField&lt;/code&gt; building blocks:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PasswordFieldInput&lt;/code&gt;, &lt;code&gt;PasswordFieldToggleIconButton&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PasswordFieldShownIcon&lt;/code&gt;, &lt;code&gt;PasswordFieldHiddenIcon&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PasswordFieldContext&lt;/code&gt; and component index exports&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add new &lt;code&gt;PhoneField&lt;/code&gt; composition:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PhoneFieldInput&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PhoneFieldSelect&lt;/code&gt; + subcomponents (&lt;code&gt;Combobox&lt;/code&gt;, &lt;code&gt;HiddenSelect&lt;/code&gt;, &lt;code&gt;Icon&lt;/code&gt;, &lt;code&gt;Listbox&lt;/code&gt;, &lt;code&gt;Option&lt;/code&gt;, &lt;code&gt;Portal&lt;/code&gt;, &lt;code&gt;Value&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PhoneFieldContext&lt;/code&gt; and component index exports&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;PinFieldHiddenInput&lt;/code&gt; component (single visually hidden input backing the slots).&lt;/li&gt;
&lt;li&gt;Add new &lt;code&gt;Select&lt;/code&gt; building blocks:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;SelectHiddenSelect&lt;/code&gt;, &lt;code&gt;SelectIcon&lt;/code&gt;, &lt;code&gt;SelectPortal&lt;/code&gt;, &lt;code&gt;SelectValue&lt;/code&gt; helpers&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SelectOptionsContext&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add new &lt;code&gt;TextFieldInput&lt;/code&gt; component and &lt;code&gt;TextFieldContext&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Changed&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Update &lt;code&gt;PinField&lt;/code&gt; internals, contexts, slots, separator, styles and tests.&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;Select&lt;/code&gt;, &lt;code&gt;NumberField&lt;/code&gt;, &lt;code&gt;PasswordField&lt;/code&gt;, &lt;code&gt;PhoneField&lt;/code&gt;, &lt;code&gt;TextField&lt;/code&gt; internals, styles, stories and tests.&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;Option&lt;/code&gt; component and related types/styles.&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;Drawer&lt;/code&gt; internals and context, plus stories.&lt;/li&gt;
&lt;li&gt;Update library root exports (&lt;code&gt;packages/ui/src/index.ts&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Tests&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Update existing tests for refactored components.&lt;/li&gt;
&lt;li&gt;Add/adjust stories for new subcomponents.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/50bc30f&quot;&gt;50bc30f&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The SegmentedControl component has become more composable: the SegmentedControlItemHiddenInput and SegmentedControlIndicator have been added.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/e0a38ab&quot;&gt;e0a38ab&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The responsive-ui package is no longer supported due to inconsistencies in the overall component design approach&lt;/p&gt;
&lt;p&gt;The components that the responsive ui package contained are easily implemented using the composition of existing ones and do not require the support and development of a separate package&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/eab55a8&quot;&gt;eab55a8&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Fixed ts problems&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/9fcad60&quot;&gt;9fcad60&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-14-3</id>
    <title>@vega-ui/hooks 1.14.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-14-3"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Renamed BaseCalendar to CalendarBase&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/7711364&quot;&gt;7711364&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-14-2</id>
    <title>@vega-ui/hooks 1.14.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-14-2"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed deps&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/55809c0&quot;&gt;55809c0&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-14-1</id>
    <title>@vega-ui/hooks 1.14.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-14-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Deleted unused dependencies&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/d76eea5&quot;&gt;d76eea5&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-14-0</id>
    <title>@vega-ui/hooks 1.14.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-14-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added new calendar primitives:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CalendarBase&lt;/strong&gt; — foundational layout and styling provider for all calendar components (size, variant, compact mode).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Calendar&lt;/strong&gt; — high-level fully interactive calendar with day/month/year pickers, scroll-based navigation, controlled/uncontrolled selection modes, and full provider-based state management.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These components form the new core of the calendar system and enable building flexible, Radix-style declarative/imperative calendar interfaces.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/a387fda&quot;&gt;a387fda&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-13-0</id>
    <title>@vega-ui/hooks 1.13.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-13-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Add composable calendar picker primitives and index-based snap scroller utilities.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;New pickers&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;YearPicker&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;High-level year selection component built on top of &lt;code&gt;DataGridPicker&amp;lt;number&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Supports &lt;code&gt;single&lt;/code&gt;, &lt;code&gt;multiple&lt;/code&gt;, and &lt;code&gt;range&lt;/code&gt; selection modes with &lt;code&gt;from&lt;/code&gt; / &lt;code&gt;to&lt;/code&gt; bounds.&lt;/li&gt;
&lt;li&gt;Provides a default &lt;code&gt;YearPickerLayout&lt;/code&gt; (configurable &lt;code&gt;rows&lt;/code&gt;, &lt;code&gt;cols&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, &lt;code&gt;offset&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Adds composable primitives:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;YearPickerItem&lt;/code&gt;, &lt;code&gt;YearPickerRow&lt;/code&gt;, &lt;code&gt;YearPickerRowGroup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;YearPickerScroller&lt;/code&gt;, &lt;code&gt;YearPickerScrollerContent&lt;/code&gt;, &lt;code&gt;YearPickerScrollerLayout&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Includes helpers like &lt;code&gt;createYearPickerGrid&lt;/code&gt; for generating year grids.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;MonthPicker&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Wrapper over &lt;code&gt;DataGridPicker&amp;lt;number&amp;gt;&lt;/code&gt; specialized for month selection.&lt;/li&gt;
&lt;li&gt;Default active value resolves to the current month.&lt;/li&gt;
&lt;li&gt;Provides:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;MonthPickerLayout&lt;/code&gt; with configurable &lt;code&gt;rows&lt;/code&gt;, &lt;code&gt;cols&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, &lt;code&gt;locale&lt;/code&gt;, &lt;code&gt;format&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MonthPickerItem&lt;/code&gt;, &lt;code&gt;MonthPickerRow&lt;/code&gt;, &lt;code&gt;MonthPickerRowGroup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MonthPickerScroller&lt;/code&gt;, &lt;code&gt;MonthPickerScrollerContent&lt;/code&gt;, &lt;code&gt;MonthPickerScrollerLayout&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Adds &lt;code&gt;createMonthPickerGrid&lt;/code&gt; for building month matrices (e.g. 3×4 year views).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;DayPicker&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Day-level calendar picker built on &lt;code&gt;DataGridPicker&amp;lt;number&amp;gt;&lt;/code&gt; with default active set to “today” (timestamp).&lt;/li&gt;
&lt;li&gt;Supports &lt;code&gt;single&lt;/code&gt; / &lt;code&gt;multiple&lt;/code&gt; / &lt;code&gt;range&lt;/code&gt; selection and can respect min/max via &lt;code&gt;DataGridPicker&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Provides:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DayPickerLayout&lt;/code&gt; with &lt;code&gt;year&lt;/code&gt;, &lt;code&gt;month&lt;/code&gt;, &lt;code&gt;offset&lt;/code&gt;, &lt;code&gt;includeOverflowDays&lt;/code&gt;, &lt;code&gt;weekStartsOn&lt;/code&gt;, &lt;code&gt;rows&lt;/code&gt;, &lt;code&gt;cols&lt;/code&gt;, &lt;code&gt;locale&lt;/code&gt;, &lt;code&gt;format&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DayPickerItem&lt;/code&gt;, &lt;code&gt;DayPickerRow&lt;/code&gt;, &lt;code&gt;DayPickerRowGroup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DayPickerScroller&lt;/code&gt;, &lt;code&gt;DayPickerScrollerContent&lt;/code&gt;, &lt;code&gt;DayPickerScrollerLayout&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Adds &lt;code&gt;createDayPickerGrid&lt;/code&gt; to generate month views with optional overflow days and arbitrary week starts.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;New scroller utilities&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;IndexedSnapScroller&lt;/code&gt;&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Extends &lt;code&gt;SnapScroller&lt;/code&gt; with virtual, index-based paging.&lt;/li&gt;
&lt;li&gt;Maintains a sliding window of logical page indexes via &lt;code&gt;useIndexes({ start, startDir, size, shift })&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Automatically shifts the window when scroll reaches edges (&lt;code&gt;onOffset(-1|1)&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Exposes:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;IndexedSnapScroller&lt;/code&gt; component&lt;/li&gt;
&lt;li&gt;&lt;code&gt;IndexedSnapScrollerContent&lt;/code&gt; (injects &lt;code&gt;index&lt;/code&gt; via context)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;IndexedSnapScrollerProvider&lt;/code&gt; / &lt;code&gt;useIndexesSnapScrollerContext&lt;/code&gt; for consuming the current index in custom layouts.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Formatting helpers&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add small date-format helpers, suitable for use inside picker layouts:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;formatDay(day, month, year, locale?, format?)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;formatMonth(month, locale?, format?)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;formatYear(year, locale?, format?)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These additions provide a fully composable calendar system (years, months, days) on top of &lt;code&gt;DataGridPicker&lt;/code&gt; and &lt;code&gt;SnapScroller&lt;/code&gt;, while keeping layout and rendering customizable through small, focused primitives.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/abbdcdc&quot;&gt;abbdcdc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-12-4</id>
    <title>@vega-ui/hooks 1.12.4</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-12-4"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-12-3</id>
    <title>@vega-ui/hooks 1.12.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-12-3"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-12-2</id>
    <title>@vega-ui/hooks 1.12.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-12-2"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-12-1</id>
    <title>@vega-ui/hooks 1.12.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-12-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;A bug was fixed in which it was impossible to expand the selected range on mobile devices and scroll in SnapScroller, as well as minor edits were made: when changing the range to the beginning and end, reset is not triggered.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/22dea95&quot;&gt;22dea95&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-12-0</id>
    <title>@vega-ui/hooks 1.12.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-12-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;This release introduces a complete grid, selection, and scroll system for structured, interactive UIs.
It combines efficient keyboard navigation, flexible selection logic, and smooth snap scrolling —
forming the foundation for advanced table, calendar, and picker interfaces.&lt;/p&gt;
&lt;p&gt;📊 &lt;code&gt;DataGrid&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DataGrid&lt;/code&gt; is a focusable, navigable grid that manages keyboard movement and active-cell focus.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Supports navigation with Arrow, Home/End, and PageUp/PageDown keys&lt;/li&gt;
&lt;li&gt;Optional wrap navigation (horizontal, vertical, or both)&lt;/li&gt;
&lt;li&gt;Configurable rowDelta for page jumps&lt;/li&gt;
&lt;li&gt;Provides an imperative API (grid, keyMap) for advanced logic&lt;/li&gt;
&lt;li&gt;Supports excluded or disabled cells that are skipped during traversal&lt;/li&gt;
&lt;li&gt;Emits onMove events describing direction and axis of movement&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Used as the base for all higher-level grid-based components.&lt;/p&gt;
&lt;p&gt;🧭 &lt;code&gt;DataGridSelectable&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DataGridSelectable&lt;/code&gt; extends DataGrid with a full selection model.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Selection modes: &amp;quot;single&amp;quot;, &amp;quot;multiple&amp;quot;, &amp;quot;range&amp;quot;&lt;/li&gt;
&lt;li&gt;Keyboard (Shift + Arrows) and pointer-based range selection&lt;/li&gt;
&lt;li&gt;Optional disabled and bounded ranges (from / to)&lt;/li&gt;
&lt;li&gt;Fully integrated with the useSelection hook&lt;/li&gt;
&lt;li&gt;Provides consistent accessibility and state behavior&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ideal for building interactive tables, lists, and date selectors.&lt;/p&gt;
&lt;p&gt;🎯 &lt;code&gt;DataGridPicker&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;DataGridPicker builds on DataGridSelectable to enable picking and highlighting items within a grid.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Automatically computes rectangular ranges between selected cells&lt;/li&gt;
&lt;li&gt;Supports highlighting of continuous intervals (start → end)&lt;/li&gt;
&lt;li&gt;Can be customized with a user-defined resolveRange function&lt;/li&gt;
&lt;li&gt;Commonly used for date pickers, emoji selectors, or option matrices&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;🧱 &lt;code&gt;SnapScroller&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;SnapScroller&lt;/code&gt; provides smooth, scroll-snap navigation with full control and callbacks.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Optimized for CSS scroll-snap-align behavior&lt;/li&gt;
&lt;li&gt;Exposes imperative API: next(), prev(), element&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Triggers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;onSnap(index) — when snapped item changes&lt;/li&gt;
&lt;li&gt;onOffset(direction) — when scroll reaches start or end&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Optional preserveScroll restores snapped position after content updates&lt;/p&gt;
&lt;p&gt;Perfect for carousels, paginated lists, or horizontally scrolling pickers.&lt;/p&gt;
&lt;p&gt;🪝 &lt;code&gt;useSelection&lt;/code&gt; Hook&lt;/p&gt;
&lt;p&gt;&lt;code&gt;useSelection&lt;/code&gt; is a composable hook for declarative selection management.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Supports &amp;quot;single&amp;quot;, &amp;quot;multiple&amp;quot;, and &amp;quot;range&amp;quot; modes&lt;/li&gt;
&lt;li&gt;Provides helpers: toggle, expand, isSelected, edges, and more&lt;/li&gt;
&lt;li&gt;Accepts custom equals, compare, and resolveRange logic&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Used internally by DataGridSelectable and DataGridPicker&lt;/p&gt;
&lt;p&gt;⚙️ &lt;code&gt;Grid &amp;amp; Matrix Utilities&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;These low-level utilities power the core grid logic and ensure efficient traversal.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;grid&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;A high-level controller for navigating 2D layouts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Provides directional movement (before, after, above, below)&lt;/li&gt;
&lt;li&gt;Handles row and column wrapping&lt;/li&gt;
&lt;li&gt;Uses Matrix internally for structure and lookup&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;matrix&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;A modular 2D data engine with the following components:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Matrix&lt;/code&gt; — manages all rows and cells
&lt;code&gt;MatrixRow&lt;/code&gt; — ordered row container with iterable access
&lt;code&gt;MatrixNode&lt;/code&gt; — represents a single cell ([row, col], key, payload)
&lt;code&gt;MatrixIndexes&lt;/code&gt; — maintains sorted indices with binary search&lt;/p&gt;
&lt;p&gt;Together, they ensure fast lookups and navigation across sparse grids.&lt;/p&gt;
&lt;p&gt;This release establishes the foundation for interactive, accessible, and performant grid-based interfaces in Vega UI —
enabling developers to build pickers, calendars, tables, and carousels with minimal boilerplate and maximum control.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/30e9724&quot;&gt;30e9724&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-11-4</id>
    <title>@vega-ui/hooks 1.11.4</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-11-4"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-11-3</id>
    <title>@vega-ui/hooks 1.11.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-11-3"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-11-2</id>
    <title>@vega-ui/hooks 1.11.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-11-2"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-11-1</id>
    <title>@vega-ui/hooks 1.11.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-11-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-11-0</id>
    <title>@vega-ui/hooks 1.11.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-11-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-10-1</id>
    <title>@vega-ui/hooks 1.10.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-10-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-10-0</id>
    <title>@vega-ui/hooks 1.10.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-10-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-9-0</id>
    <title>@vega-ui/hooks 1.9.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-9-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-8-1</id>
    <title>@vega-ui/hooks 1.8.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-8-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added Size prop to PageControl, added hook useRefMap, improved accessability, added mergeEventHandlers util&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/c98c982&quot;&gt;c98c982&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-8-0</id>
    <title>@vega-ui/hooks 1.8.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-8-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-7-4</id>
    <title>@vega-ui/hooks 1.7.4</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-7-4"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-7-3</id>
    <title>@vega-ui/hooks 1.7.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-7-3"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-7-2</id>
    <title>@vega-ui/hooks 1.7.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-7-2"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-7-1</id>
    <title>@vega-ui/hooks 1.7.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-7-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-7-0</id>
    <title>@vega-ui/hooks 1.7.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-7-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-6-0</id>
    <title>@vega-ui/hooks 1.6.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-6-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-5-0</id>
    <title>@vega-ui/hooks 1.5.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-5-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-4-2</id>
    <title>@vega-ui/hooks 1.4.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-4-2"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-4-1</id>
    <title>@vega-ui/hooks 1.4.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-4-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-4-0</id>
    <title>@vega-ui/hooks 1.4.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-4-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-3-0</id>
    <title>@vega-ui/hooks 1.3.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-3-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-2-2</id>
    <title>@vega-ui/hooks 1.2.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-2-2"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-2-1</id>
    <title>@vega-ui/hooks 1.2.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-2-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-2-0</id>
    <title>@vega-ui/hooks 1.2.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-2-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-1-1</id>
    <title>@vega-ui/hooks 1.1.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-1-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-1-0</id>
    <title>@vega-ui/hooks 1.1.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-1-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#hooks-v1-0-1</id>
    <title>@vega-ui/hooks 1.0.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#hooks-v1-0-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed logo&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/fb2ec42&quot;&gt;fb2ec42&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v2-5-0</id>
    <title>@vega-ui/utils 2.5.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v2-5-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;useSelection&lt;/code&gt;: optional &lt;code&gt;compare&lt;/code&gt; no longer crashes; new &lt;code&gt;compare&lt;/code&gt; util&lt;/p&gt;
&lt;p&gt;&lt;code&gt;compare?&lt;/code&gt; was declared optional but invoked unconditionally in &lt;code&gt;edges&lt;/code&gt;, &lt;code&gt;isSelected&lt;/code&gt; and &lt;code&gt;isDisabled&lt;/code&gt; — range selection or &lt;code&gt;min&lt;/code&gt;/&lt;code&gt;max&lt;/code&gt; clamping without a user-provided comparator threw &lt;code&gt;compare is not a function&lt;/code&gt; (while &lt;code&gt;expand&lt;/code&gt; had a guard, confirming the option was meant to be optional).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;@vega-ui/utils&lt;/code&gt; now exports &lt;code&gt;compare&lt;/code&gt; — a three-way comparator constrained to the new &lt;code&gt;Comparable&lt;/code&gt; type (&lt;code&gt;number | string | bigint | Date&lt;/code&gt;), so types with no universal ordering (objects, symbols) are rejected at compile time; covered with unit tests&lt;/li&gt;
&lt;li&gt;&lt;code&gt;useSelection&lt;/code&gt; falls back to it when no &lt;code&gt;compare&lt;/code&gt; is passed, mirroring the existing &lt;code&gt;equals ?? Object.is&lt;/code&gt; pattern; pass an explicit &lt;code&gt;compare&lt;/code&gt; for non-primitive key types&lt;/li&gt;
&lt;li&gt;&lt;code&gt;expand&lt;/code&gt; no longer silently no-ops without a user comparator&lt;/li&gt;
&lt;li&gt;empty or &lt;code&gt;undefined&lt;/code&gt; &lt;code&gt;selected&lt;/code&gt; no longer produces &lt;code&gt;undefined&lt;/code&gt; range edges: &lt;code&gt;edges()&lt;/code&gt; returns &lt;code&gt;[]&lt;/code&gt;, &lt;code&gt;isSelected&lt;/code&gt; returns &lt;code&gt;false&lt;/code&gt; instead of comparing &lt;code&gt;undefined&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DataGridSelectable&lt;/code&gt; reuses the shared &lt;code&gt;compare&lt;/code&gt; instead of its own inline duplicate of the same fallback (no behavior change)&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/0ffc52f&quot;&gt;0ffc52f&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Fix broken &lt;code&gt;main&lt;/code&gt; field in hooks, utils and react-context&lt;/p&gt;
&lt;p&gt;In &lt;code&gt;@vega-ui/hooks&lt;/code&gt;, &lt;code&gt;@vega-ui/utils&lt;/code&gt; and &lt;code&gt;@vega-ui/react-context&lt;/code&gt; the &lt;code&gt;main&lt;/code&gt; field pointed to &lt;code&gt;./dist/index.ts&lt;/code&gt; — a file that doesn't exist in &lt;code&gt;dist/&lt;/code&gt; (the build only outputs &lt;code&gt;.js&lt;/code&gt; and &lt;code&gt;.d.ts&lt;/code&gt;). Modern bundlers masked the problem by resolving through the &lt;code&gt;exports&lt;/code&gt; map, but environments that rely on &lt;code&gt;main&lt;/code&gt; (Node without conditional exports support, Jest with legacy resolution, ts-node, CDNs like esm.sh) got &lt;code&gt;MODULE_NOT_FOUND&lt;/code&gt; or tried to parse TypeScript as JS.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;main&lt;/code&gt; now points to &lt;code&gt;./dist/index.js&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;added &lt;code&gt;module: &amp;quot;./dist/index.js&amp;quot;&lt;/code&gt; (consistent with &lt;code&gt;@vega-ui/react&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;added the missing top-level &lt;code&gt;types: &amp;quot;./dist/index.d.ts&amp;quot;&lt;/code&gt; to utils and react-context so resolvers that don't support &lt;code&gt;exports&lt;/code&gt; can find the type declarations&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/1007aae&quot;&gt;1007aae&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Sync rollup externals with real dependencies&lt;/p&gt;
&lt;p&gt;&lt;code&gt;vite.config.ts&lt;/code&gt; of icons and utils listed externals manually, including &lt;code&gt;@vega-ui/helpers&lt;/code&gt; — a package that doesn't exist in the monorepo — plus entries these packages never import (&lt;code&gt;@floating-ui/react&lt;/code&gt;, &lt;code&gt;react-remove-scroll&lt;/code&gt;, &lt;code&gt;@vega-ui/hooks&lt;/code&gt;). Hand-written lists drift from real dependencies; a stray module matching a dead entry would silently produce a broken bundle.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;icons&lt;/strong&gt;: externals are now derived from &lt;code&gt;Object.keys(packageJson.dependencies)&lt;/code&gt; + &lt;code&gt;Object.keys(packageJson.peerDependencies)&lt;/code&gt; (same pattern as &lt;code&gt;@vega-ui/react&lt;/code&gt; and &lt;code&gt;@vega-ui/hooks&lt;/code&gt;), so the &amp;quot;don't bundle this&amp;quot; contract always matches the declared dependencies.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;utils&lt;/strong&gt;: the package has no runtime dependencies at all (React appears only in type imports), so the list is trimmed to the explicit &lt;code&gt;['react', 'react-dom', 'react/jsx-runtime']&lt;/code&gt; safety net.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;resolveJsonModule: true&lt;/code&gt; added to &lt;code&gt;tsconfig.node.json&lt;/code&gt; of ui/hooks/icons (their vite configs import &lt;code&gt;package.json&lt;/code&gt;); the empty &lt;code&gt;tsconfig.node.json&lt;/code&gt; of utils filled in to match the other packages.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/55a8c44&quot;&gt;55a8c44&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v2-4-0</id>
    <title>@vega-ui/utils 2.4.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v2-4-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v2-3-1</id>
    <title>@vega-ui/utils 2.3.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v2-3-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v2-3-0</id>
    <title>@vega-ui/utils 2.3.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v2-3-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v2-2-1</id>
    <title>@vega-ui/utils 2.2.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v2-2-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v2-2-0</id>
    <title>@vega-ui/utils 2.2.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v2-2-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Adding New Components&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DateField&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A date input field with masking and format validation.&lt;/li&gt;
&lt;li&gt;Uses &lt;code&gt;useControlledState&lt;/code&gt; for controlled/uncontrolled values.&lt;/li&gt;
&lt;li&gt;Composed of the following components:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DateFieldInput&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DateFieldCalendar&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Supports date formats (e.g., &amp;quot;dd.MM.yyyy&amp;quot;, &amp;quot;MM/dd/yyyy&amp;quot;).&lt;/li&gt;
&lt;li&gt;Supports minimum and maximum date restrictions (&lt;code&gt;minDate&lt;/code&gt;, &lt;code&gt;maxDate&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;DateTimeField&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A date and time input field.&lt;/li&gt;
&lt;li&gt;Combines the logic of &lt;code&gt;DateField&lt;/code&gt; and &lt;code&gt;TimeField&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Composed of the following components:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DateTimeFieldInput&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DateTimeFieldCalendar&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TimeSelector&lt;/code&gt; (for selecting time)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Uses &lt;code&gt;useControlledState&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;DateRangeField&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A field for selecting a date range.&lt;/li&gt;
&lt;li&gt;Composed of the following components:
&lt;ul&gt;
&lt;li&gt;Two &lt;code&gt;DateField&lt;/code&gt;s (start and end dates)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DateRangeCalendar&lt;/code&gt; (calendar for selecting the range)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Handles range validation (start date ≤ end date).&lt;/li&gt;
&lt;li&gt;Uses &lt;code&gt;useControlledState&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;TimeField&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A time input field.&lt;/li&gt;
&lt;li&gt;Supports masking and time format (e.g., &amp;quot;HH:mm&amp;quot;).&lt;/li&gt;
&lt;li&gt;Uses &lt;code&gt;useControlledState&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Composed of the following components:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;TimeFieldInput&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Additional controls (arrows, time selector)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/798d27c&quot;&gt;798d27c&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v2-1-1</id>
    <title>@vega-ui/utils 2.1.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v2-1-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v2-1-0</id>
    <title>@vega-ui/utils 2.1.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v2-1-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Refactor Calendar stack to scroll-snap scrollers (DataGridPickerScroller) and remove react-store based state.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;@vega-ui/ui&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SnapScroller&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; &lt;code&gt;initialIndex&lt;/code&gt; renamed to &lt;code&gt;defaultIndex&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; removed &lt;code&gt;preserveScroll&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; removed &lt;code&gt;onOffset&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Added scroll-snap callbacks:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;onScrollSnapChanging?(element, index)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;onScrollSnapChange?(element, index)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;IndexedSnapScroller&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Keeps offset-based infinite behavior (window &lt;code&gt;shift()&lt;/code&gt; / &lt;code&gt;push()&lt;/code&gt;) and optional &lt;code&gt;preserveScroll&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Supports controlled &lt;code&gt;index&lt;/code&gt; (scrolls to it when in window; rebuilds window when outside).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;DataGrid&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; &lt;code&gt;onMove(e, node, axis, dir)&lt;/code&gt; replaced with &lt;code&gt;onArrow(e, nextNode, prevNode)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; &lt;code&gt;DataGridApiRef&lt;/code&gt; changed:
&lt;ul&gt;
&lt;li&gt;removed &lt;code&gt;keyMap&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;added &lt;code&gt;scopes: Map&amp;lt;DataGridScope, DataGridCellKey[]&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DataGridRowGroup&lt;/code&gt; now supports &lt;code&gt;scope?: DataGridScope&lt;/code&gt; and provides it via context.&lt;/li&gt;
&lt;li&gt;Cells unregister from the grid on unmount (node cleanup).&lt;/li&gt;
&lt;li&gt;Active/selection focus flow updated to sync active cell on focus changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;DataGridPicker&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added &lt;code&gt;DataGridPickerScroller&lt;/code&gt; and &lt;code&gt;DataGridPickerScrollerContent&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DataGridPickerScroller&lt;/code&gt; integrates with scroll-snap events to restore/adjust active focus for the current scope.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;DayPicker&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; DayPicker scrolling is now driven by &lt;code&gt;DataGridPickerScroller&lt;/code&gt; (instead of IndexedSnapScroller directly).&lt;/li&gt;
&lt;li&gt;Added period-to-index mapping via reference anchor:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;referenceDate?: Date&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;getIndexByDate?(year, month)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;getDateByIndex?(index)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Period changes are emitted during scroll via &lt;code&gt;onScrollSnapChanging&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;YearPicker&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; YearPicker scrolling is now driven by &lt;code&gt;DataGridPickerScroller&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Added year-to-index mapping via reference anchor:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;referenceYear?: number&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;getIndexByYear?(year, referenceYear)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Layout derives offset from &lt;code&gt;year&lt;/code&gt; when &lt;code&gt;offset&lt;/code&gt; is not provided.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Calendar / CalendarBase&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; &lt;code&gt;onYearChange&lt;/code&gt; -&amp;gt; &lt;code&gt;onChangeYear&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; &lt;code&gt;onMonthChange&lt;/code&gt; -&amp;gt; &lt;code&gt;onChangeMonth&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Added controlled/uncontrolled view state for navigation:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;year&lt;/code&gt; / &lt;code&gt;defaultYear&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;month&lt;/code&gt; / &lt;code&gt;defaultMonth&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;activeDay&lt;/code&gt; / &lt;code&gt;defaultActiveDay&lt;/code&gt; + &lt;code&gt;onChangeActiveDay&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;activeMonth&lt;/code&gt; / &lt;code&gt;defaultActiveMonth&lt;/code&gt; + &lt;code&gt;onChangeActiveMonth&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;activeYear&lt;/code&gt; / &lt;code&gt;defaultActiveYear&lt;/code&gt; + &lt;code&gt;onChangeActiveYear&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Added &lt;code&gt;referenceDate?: Date&lt;/code&gt; as an anchor for indexed/virtualized navigation.&lt;/li&gt;
&lt;li&gt;Added year-group navigation controls:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CalendarNextYearGroupButton&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CalendarPrevYearGroupButton&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Picker/ESC handling updated (Escape now stops propagation).&lt;/li&gt;
&lt;li&gt;Period navigation split into:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;nextPeriod&lt;/code&gt; / &lt;code&gt;prevPeriod&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nextYearGroup&lt;/code&gt; / &lt;code&gt;prevYearGroup&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;@vega-ui/hooks&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; removed &lt;code&gt;useStore&lt;/code&gt;, &lt;code&gt;useControlledStore&lt;/code&gt; (react-store dependency removed).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; removed &lt;code&gt;useIntersectionObserver&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Added:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;useScrollSnap&lt;/code&gt; (snap measurement + &lt;code&gt;onSnapChanging/onSnapChange&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;useMutationObserver&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;useBiMap&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;useRefMap&lt;/code&gt; now exposes &lt;code&gt;removeItemRef&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;useIndexes&lt;/code&gt; updated to support new shifting semantics safely.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;@vega-ui/react-store&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BREAKING:&lt;/strong&gt; package removed / no longer used in the monorepo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;@vega-ui/utils&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added &lt;code&gt;BiMap&lt;/code&gt; and &lt;code&gt;nearest&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Reorganized data helpers under &lt;code&gt;utils/data/*&lt;/code&gt; with re-exports.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/8380d3b&quot;&gt;8380d3b&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v2-0-1</id>
    <title>@vega-ui/utils 2.0.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v2-0-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v2-0-0</id>
    <title>@vega-ui/utils 2.0.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v2-0-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Refactor form controls architecture and remove deprecated components.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Removed (breaking)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Remove &lt;code&gt;FlagIcon&lt;/code&gt; package exports and implementation.&lt;/li&gt;
&lt;li&gt;Remove &lt;code&gt;PhoneSelectField&lt;/code&gt; and related subcomponents/contexts/styles.&lt;/li&gt;
&lt;li&gt;Remove legacy &lt;code&gt;SelectArrow&lt;/code&gt; and &lt;code&gt;SelectPlaceholder&lt;/code&gt; components.&lt;/li&gt;
&lt;li&gt;Remove legacy &lt;code&gt;NumberFieldIncrement&lt;/code&gt;/&lt;code&gt;NumberFieldDecrement&lt;/code&gt; components.&lt;/li&gt;
&lt;li&gt;Remove legacy &lt;code&gt;PinFieldInput&lt;/code&gt; component.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Added&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add new &lt;code&gt;NumberField&lt;/code&gt; building blocks:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;NumberFieldInput&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NumberFieldIncrementButton&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NumberFieldDecrementButton&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NumberFieldContext&lt;/code&gt; (new contexts structure)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NumberField&lt;/code&gt; types module&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add new &lt;code&gt;PasswordField&lt;/code&gt; building blocks:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PasswordFieldInput&lt;/code&gt;, &lt;code&gt;PasswordFieldToggleIconButton&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PasswordFieldShownIcon&lt;/code&gt;, &lt;code&gt;PasswordFieldHiddenIcon&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PasswordFieldContext&lt;/code&gt; and component index exports&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add new &lt;code&gt;PhoneField&lt;/code&gt; composition:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PhoneFieldInput&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PhoneFieldSelect&lt;/code&gt; + subcomponents (&lt;code&gt;Combobox&lt;/code&gt;, &lt;code&gt;HiddenSelect&lt;/code&gt;, &lt;code&gt;Icon&lt;/code&gt;, &lt;code&gt;Listbox&lt;/code&gt;, &lt;code&gt;Option&lt;/code&gt;, &lt;code&gt;Portal&lt;/code&gt;, &lt;code&gt;Value&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PhoneFieldContext&lt;/code&gt; and component index exports&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;PinFieldHiddenInput&lt;/code&gt; component (single visually hidden input backing the slots).&lt;/li&gt;
&lt;li&gt;Add new &lt;code&gt;Select&lt;/code&gt; building blocks:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;SelectHiddenSelect&lt;/code&gt;, &lt;code&gt;SelectIcon&lt;/code&gt;, &lt;code&gt;SelectPortal&lt;/code&gt;, &lt;code&gt;SelectValue&lt;/code&gt; helpers&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SelectOptionsContext&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add new &lt;code&gt;TextFieldInput&lt;/code&gt; component and &lt;code&gt;TextFieldContext&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Changed&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Update &lt;code&gt;PinField&lt;/code&gt; internals, contexts, slots, separator, styles and tests.&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;Select&lt;/code&gt;, &lt;code&gt;NumberField&lt;/code&gt;, &lt;code&gt;PasswordField&lt;/code&gt;, &lt;code&gt;PhoneField&lt;/code&gt;, &lt;code&gt;TextField&lt;/code&gt; internals, styles, stories and tests.&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;Option&lt;/code&gt; component and related types/styles.&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;Drawer&lt;/code&gt; internals and context, plus stories.&lt;/li&gt;
&lt;li&gt;Update library root exports (&lt;code&gt;packages/ui/src/index.ts&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Tests&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Update existing tests for refactored components.&lt;/li&gt;
&lt;li&gt;Add/adjust stories for new subcomponents.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/50bc30f&quot;&gt;50bc30f&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The responsive-ui package is no longer supported due to inconsistencies in the overall component design approach&lt;/p&gt;
&lt;p&gt;The components that the responsive ui package contained are easily implemented using the composition of existing ones and do not require the support and development of a separate package&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/eab55a8&quot;&gt;eab55a8&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-14-3</id>
    <title>@vega-ui/utils 1.14.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-14-3"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Renamed BaseCalendar to CalendarBase&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/7711364&quot;&gt;7711364&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-14-2</id>
    <title>@vega-ui/utils 1.14.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-14-2"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed deps&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/55809c0&quot;&gt;55809c0&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-14-1</id>
    <title>@vega-ui/utils 1.14.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-14-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Refactored contexts, they are unified in style&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/9bb4a3b&quot;&gt;9bb4a3b&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Deleted unused dependencies&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/d76eea5&quot;&gt;d76eea5&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-14-0</id>
    <title>@vega-ui/utils 1.14.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-14-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added new calendar primitives:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CalendarBase&lt;/strong&gt; — foundational layout and styling provider for all calendar components (size, variant, compact mode).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Calendar&lt;/strong&gt; — high-level fully interactive calendar with day/month/year pickers, scroll-based navigation, controlled/uncontrolled selection modes, and full provider-based state management.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These components form the new core of the calendar system and enable building flexible, Radix-style declarative/imperative calendar interfaces.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/a387fda&quot;&gt;a387fda&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-13-0</id>
    <title>@vega-ui/utils 1.13.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-13-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Add composable calendar picker primitives and index-based snap scroller utilities.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;New pickers&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;YearPicker&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;High-level year selection component built on top of &lt;code&gt;DataGridPicker&amp;lt;number&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Supports &lt;code&gt;single&lt;/code&gt;, &lt;code&gt;multiple&lt;/code&gt;, and &lt;code&gt;range&lt;/code&gt; selection modes with &lt;code&gt;from&lt;/code&gt; / &lt;code&gt;to&lt;/code&gt; bounds.&lt;/li&gt;
&lt;li&gt;Provides a default &lt;code&gt;YearPickerLayout&lt;/code&gt; (configurable &lt;code&gt;rows&lt;/code&gt;, &lt;code&gt;cols&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, &lt;code&gt;offset&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Adds composable primitives:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;YearPickerItem&lt;/code&gt;, &lt;code&gt;YearPickerRow&lt;/code&gt;, &lt;code&gt;YearPickerRowGroup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;YearPickerScroller&lt;/code&gt;, &lt;code&gt;YearPickerScrollerContent&lt;/code&gt;, &lt;code&gt;YearPickerScrollerLayout&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Includes helpers like &lt;code&gt;createYearPickerGrid&lt;/code&gt; for generating year grids.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;MonthPicker&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Wrapper over &lt;code&gt;DataGridPicker&amp;lt;number&amp;gt;&lt;/code&gt; specialized for month selection.&lt;/li&gt;
&lt;li&gt;Default active value resolves to the current month.&lt;/li&gt;
&lt;li&gt;Provides:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;MonthPickerLayout&lt;/code&gt; with configurable &lt;code&gt;rows&lt;/code&gt;, &lt;code&gt;cols&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, &lt;code&gt;locale&lt;/code&gt;, &lt;code&gt;format&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MonthPickerItem&lt;/code&gt;, &lt;code&gt;MonthPickerRow&lt;/code&gt;, &lt;code&gt;MonthPickerRowGroup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MonthPickerScroller&lt;/code&gt;, &lt;code&gt;MonthPickerScrollerContent&lt;/code&gt;, &lt;code&gt;MonthPickerScrollerLayout&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Adds &lt;code&gt;createMonthPickerGrid&lt;/code&gt; for building month matrices (e.g. 3×4 year views).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;DayPicker&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Day-level calendar picker built on &lt;code&gt;DataGridPicker&amp;lt;number&amp;gt;&lt;/code&gt; with default active set to “today” (timestamp).&lt;/li&gt;
&lt;li&gt;Supports &lt;code&gt;single&lt;/code&gt; / &lt;code&gt;multiple&lt;/code&gt; / &lt;code&gt;range&lt;/code&gt; selection and can respect min/max via &lt;code&gt;DataGridPicker&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Provides:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DayPickerLayout&lt;/code&gt; with &lt;code&gt;year&lt;/code&gt;, &lt;code&gt;month&lt;/code&gt;, &lt;code&gt;offset&lt;/code&gt;, &lt;code&gt;includeOverflowDays&lt;/code&gt;, &lt;code&gt;weekStartsOn&lt;/code&gt;, &lt;code&gt;rows&lt;/code&gt;, &lt;code&gt;cols&lt;/code&gt;, &lt;code&gt;locale&lt;/code&gt;, &lt;code&gt;format&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DayPickerItem&lt;/code&gt;, &lt;code&gt;DayPickerRow&lt;/code&gt;, &lt;code&gt;DayPickerRowGroup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DayPickerScroller&lt;/code&gt;, &lt;code&gt;DayPickerScrollerContent&lt;/code&gt;, &lt;code&gt;DayPickerScrollerLayout&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Adds &lt;code&gt;createDayPickerGrid&lt;/code&gt; to generate month views with optional overflow days and arbitrary week starts.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;New scroller utilities&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;IndexedSnapScroller&lt;/code&gt;&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Extends &lt;code&gt;SnapScroller&lt;/code&gt; with virtual, index-based paging.&lt;/li&gt;
&lt;li&gt;Maintains a sliding window of logical page indexes via &lt;code&gt;useIndexes({ start, startDir, size, shift })&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Automatically shifts the window when scroll reaches edges (&lt;code&gt;onOffset(-1|1)&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Exposes:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;IndexedSnapScroller&lt;/code&gt; component&lt;/li&gt;
&lt;li&gt;&lt;code&gt;IndexedSnapScrollerContent&lt;/code&gt; (injects &lt;code&gt;index&lt;/code&gt; via context)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;IndexedSnapScrollerProvider&lt;/code&gt; / &lt;code&gt;useIndexesSnapScrollerContext&lt;/code&gt; for consuming the current index in custom layouts.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Formatting helpers&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add small date-format helpers, suitable for use inside picker layouts:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;formatDay(day, month, year, locale?, format?)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;formatMonth(month, locale?, format?)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;formatYear(year, locale?, format?)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These additions provide a fully composable calendar system (years, months, days) on top of &lt;code&gt;DataGridPicker&lt;/code&gt; and &lt;code&gt;SnapScroller&lt;/code&gt;, while keeping layout and rendering customizable through small, focused primitives.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/abbdcdc&quot;&gt;abbdcdc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-12-4</id>
    <title>@vega-ui/utils 1.12.4</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-12-4"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-12-3</id>
    <title>@vega-ui/utils 1.12.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-12-3"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-12-2</id>
    <title>@vega-ui/utils 1.12.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-12-2"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-12-1</id>
    <title>@vega-ui/utils 1.12.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-12-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-12-0</id>
    <title>@vega-ui/utils 1.12.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-12-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;This release introduces a complete grid, selection, and scroll system for structured, interactive UIs.
It combines efficient keyboard navigation, flexible selection logic, and smooth snap scrolling —
forming the foundation for advanced table, calendar, and picker interfaces.&lt;/p&gt;
&lt;p&gt;📊 &lt;code&gt;DataGrid&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DataGrid&lt;/code&gt; is a focusable, navigable grid that manages keyboard movement and active-cell focus.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Supports navigation with Arrow, Home/End, and PageUp/PageDown keys&lt;/li&gt;
&lt;li&gt;Optional wrap navigation (horizontal, vertical, or both)&lt;/li&gt;
&lt;li&gt;Configurable rowDelta for page jumps&lt;/li&gt;
&lt;li&gt;Provides an imperative API (grid, keyMap) for advanced logic&lt;/li&gt;
&lt;li&gt;Supports excluded or disabled cells that are skipped during traversal&lt;/li&gt;
&lt;li&gt;Emits onMove events describing direction and axis of movement&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Used as the base for all higher-level grid-based components.&lt;/p&gt;
&lt;p&gt;🧭 &lt;code&gt;DataGridSelectable&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DataGridSelectable&lt;/code&gt; extends DataGrid with a full selection model.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Selection modes: &amp;quot;single&amp;quot;, &amp;quot;multiple&amp;quot;, &amp;quot;range&amp;quot;&lt;/li&gt;
&lt;li&gt;Keyboard (Shift + Arrows) and pointer-based range selection&lt;/li&gt;
&lt;li&gt;Optional disabled and bounded ranges (from / to)&lt;/li&gt;
&lt;li&gt;Fully integrated with the useSelection hook&lt;/li&gt;
&lt;li&gt;Provides consistent accessibility and state behavior&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ideal for building interactive tables, lists, and date selectors.&lt;/p&gt;
&lt;p&gt;🎯 &lt;code&gt;DataGridPicker&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;DataGridPicker builds on DataGridSelectable to enable picking and highlighting items within a grid.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Automatically computes rectangular ranges between selected cells&lt;/li&gt;
&lt;li&gt;Supports highlighting of continuous intervals (start → end)&lt;/li&gt;
&lt;li&gt;Can be customized with a user-defined resolveRange function&lt;/li&gt;
&lt;li&gt;Commonly used for date pickers, emoji selectors, or option matrices&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;🧱 &lt;code&gt;SnapScroller&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;SnapScroller&lt;/code&gt; provides smooth, scroll-snap navigation with full control and callbacks.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Optimized for CSS scroll-snap-align behavior&lt;/li&gt;
&lt;li&gt;Exposes imperative API: next(), prev(), element&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Triggers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;onSnap(index) — when snapped item changes&lt;/li&gt;
&lt;li&gt;onOffset(direction) — when scroll reaches start or end&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Optional preserveScroll restores snapped position after content updates&lt;/p&gt;
&lt;p&gt;Perfect for carousels, paginated lists, or horizontally scrolling pickers.&lt;/p&gt;
&lt;p&gt;🪝 &lt;code&gt;useSelection&lt;/code&gt; Hook&lt;/p&gt;
&lt;p&gt;&lt;code&gt;useSelection&lt;/code&gt; is a composable hook for declarative selection management.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Supports &amp;quot;single&amp;quot;, &amp;quot;multiple&amp;quot;, and &amp;quot;range&amp;quot; modes&lt;/li&gt;
&lt;li&gt;Provides helpers: toggle, expand, isSelected, edges, and more&lt;/li&gt;
&lt;li&gt;Accepts custom equals, compare, and resolveRange logic&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Used internally by DataGridSelectable and DataGridPicker&lt;/p&gt;
&lt;p&gt;⚙️ &lt;code&gt;Grid &amp;amp; Matrix Utilities&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;These low-level utilities power the core grid logic and ensure efficient traversal.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;grid&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;A high-level controller for navigating 2D layouts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Provides directional movement (before, after, above, below)&lt;/li&gt;
&lt;li&gt;Handles row and column wrapping&lt;/li&gt;
&lt;li&gt;Uses Matrix internally for structure and lookup&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;matrix&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;A modular 2D data engine with the following components:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Matrix&lt;/code&gt; — manages all rows and cells
&lt;code&gt;MatrixRow&lt;/code&gt; — ordered row container with iterable access
&lt;code&gt;MatrixNode&lt;/code&gt; — represents a single cell ([row, col], key, payload)
&lt;code&gt;MatrixIndexes&lt;/code&gt; — maintains sorted indices with binary search&lt;/p&gt;
&lt;p&gt;Together, they ensure fast lookups and navigation across sparse grids.&lt;/p&gt;
&lt;p&gt;This release establishes the foundation for interactive, accessible, and performant grid-based interfaces in Vega UI —
enabling developers to build pickers, calendars, tables, and carousels with minimal boilerplate and maximum control.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/30e9724&quot;&gt;30e9724&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-11-4</id>
    <title>@vega-ui/utils 1.11.4</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-11-4"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-11-3</id>
    <title>@vega-ui/utils 1.11.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-11-3"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-11-2</id>
    <title>@vega-ui/utils 1.11.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-11-2"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-11-1</id>
    <title>@vega-ui/utils 1.11.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-11-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-11-0</id>
    <title>@vega-ui/utils 1.11.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-11-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-10-1</id>
    <title>@vega-ui/utils 1.10.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-10-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-10-0</id>
    <title>@vega-ui/utils 1.10.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-10-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-9-0</id>
    <title>@vega-ui/utils 1.9.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-9-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-8-1</id>
    <title>@vega-ui/utils 1.8.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-8-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added Size prop to PageControl, added hook useRefMap, improved accessability, added mergeEventHandlers util&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/c98c982&quot;&gt;c98c982&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-8-0</id>
    <title>@vega-ui/utils 1.8.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-8-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-7-4</id>
    <title>@vega-ui/utils 1.7.4</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-7-4"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-7-3</id>
    <title>@vega-ui/utils 1.7.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-7-3"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-7-2</id>
    <title>@vega-ui/utils 1.7.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-7-2"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-7-1</id>
    <title>@vega-ui/utils 1.7.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-7-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-7-0</id>
    <title>@vega-ui/utils 1.7.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-7-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-6-0</id>
    <title>@vega-ui/utils 1.6.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-6-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-5-0</id>
    <title>@vega-ui/utils 1.5.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-5-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-4-2</id>
    <title>@vega-ui/utils 1.4.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-4-2"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-4-1</id>
    <title>@vega-ui/utils 1.4.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-4-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-4-0</id>
    <title>@vega-ui/utils 1.4.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-4-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added new utilities&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/e022b3c&quot;&gt;e022b3c&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-3-0</id>
    <title>@vega-ui/utils 1.3.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-3-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-2-2</id>
    <title>@vega-ui/utils 1.2.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-2-2"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-2-1</id>
    <title>@vega-ui/utils 1.2.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-2-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-2-0</id>
    <title>@vega-ui/utils 1.2.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-2-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added new component - RangeSlider, Slider and SliderBase&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/6224045&quot;&gt;6224045&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-1-1</id>
    <title>@vega-ui/utils 1.1.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-1-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-1-0</id>
    <title>@vega-ui/utils 1.1.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-1-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#utils-v1-0-1</id>
    <title>@vega-ui/utils 1.0.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#utils-v1-0-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed logo&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/fb2ec42&quot;&gt;fb2ec42&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v2-5-0</id>
    <title>@vega-ui/icons 2.5.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v2-5-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Exports map, generated barrel, statically tree-shakeable icon modules&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;exports&lt;/code&gt; map with wildcard subpaths.&lt;/strong&gt; &lt;code&gt;@vega-ui/icons&lt;/code&gt; was the only package without an &lt;code&gt;exports&lt;/code&gt; map — just &lt;code&gt;main&lt;/code&gt;/&lt;code&gt;types&lt;/code&gt;/&lt;code&gt;files&lt;/code&gt;. That loses the ESM-only guarantee, leaves module-format behavior ambiguous in Node 20+, and gives consumers no way to import a single icon without pulling the whole barrel (which re-exports all of lucide-react plus 250+ flags).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;added &lt;code&gt;exports&lt;/code&gt; with the same &lt;code&gt;.&lt;/code&gt; entry shape as the other packages (&lt;code&gt;source&lt;/code&gt; + &lt;code&gt;import.types&lt;/code&gt;/&lt;code&gt;import.default&lt;/code&gt;), plus &lt;code&gt;module&lt;/code&gt; field&lt;/li&gt;
&lt;li&gt;added wildcard subpath exports mirroring the barrel names: &lt;code&gt;@vega-ui/icons/FlagUS&lt;/code&gt; (&lt;code&gt;./Flag*&lt;/code&gt; → &lt;code&gt;dist/assets/flags/&lt;/code&gt;), and &lt;code&gt;./*&lt;/code&gt; for custom icons (&lt;code&gt;@vega-ui/icons/double-arrow-left&lt;/code&gt; → &lt;code&gt;dist/assets/icons/&lt;/code&gt;) — each resolves to its own module in &lt;code&gt;dist&lt;/code&gt;, bypassing the barrel entirely for guaranteed tree-shaking; new custom icons get a subpath automatically, no &lt;code&gt;exports&lt;/code&gt; edit needed&lt;/li&gt;
&lt;li&gt;subpath imports are typed via a shipped &lt;code&gt;svg.d.ts&lt;/code&gt; (&lt;code&gt;FC&amp;lt;SVGProps&amp;lt;SVGSVGElement&amp;gt;&amp;gt;&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;note: an &lt;code&gt;exports&lt;/code&gt; map locks down undocumented deep imports like &lt;code&gt;@vega-ui/icons/dist/index.js&lt;/code&gt; — anyone relying on those must switch to the documented entry points&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Generated barrel; new &lt;code&gt;TrainsSideIcon&lt;/code&gt; export.&lt;/strong&gt; &lt;code&gt;src/index.ts&lt;/code&gt; is now generated by &lt;code&gt;scripts/generate-icons.mts&lt;/code&gt; from the SVG files in &lt;code&gt;src/assets/{icons,flags}&lt;/code&gt; (runs on every build, or manually via &lt;code&gt;pnpm generate&lt;/code&gt;). Adding a new icon or flag is now just dropping an SVG into the right folder — no manual barrel or &lt;code&gt;exports&lt;/code&gt; edits. As a side effect the generator picked up &lt;code&gt;trains-side.svg&lt;/code&gt;, which existed in assets but was never wired into the barrel — &lt;code&gt;TrainsSideIcon&lt;/code&gt; (and the &lt;code&gt;@vega-ui/icons/trains-side&lt;/code&gt; subpath) is now exported.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dropped &lt;code&gt;forwardRef&lt;/code&gt; from generated icon components — modules are now statically tree-shakeable.&lt;/strong&gt; svgr-generated flag/icon modules ended with a bare &lt;code&gt;forwardRef(SvgComponent)&lt;/code&gt; call, which statement-level tree-shaking must treat as a potential side effect. Module-level shaking already worked (&lt;code&gt;sideEffects: false&lt;/code&gt; + &lt;code&gt;preserveModules&lt;/code&gt; — verified with esbuild and rollup: importing one icon from the barrel pulls only that icon), but pipelines that ignore the &lt;code&gt;sideEffects&lt;/code&gt; field would retain every flag.&lt;/p&gt;
&lt;p&gt;Since the package requires React 19 (&lt;code&gt;peerDependencies&lt;/code&gt;), &lt;code&gt;forwardRef&lt;/code&gt; is unnecessary: &lt;code&gt;ref&lt;/code&gt; arrives as a regular prop and reaches the &lt;code&gt;&amp;lt;svg&amp;gt;&lt;/code&gt; element through the props spread. svgr's &lt;code&gt;ref: true&lt;/code&gt; option was removed, so each module is now a single arrow-function declaration with no top-level calls — side-effect free by construction, no &lt;code&gt;/*#__PURE__*/&lt;/code&gt; annotations needed.&lt;/p&gt;
&lt;p&gt;Verified: ref attaches to &lt;code&gt;SVGSVGElement&lt;/code&gt; in Chromium/Firefox/WebKit (browser test), SSR render unchanged, barrel imports stay fully shaken (single lucide icon ≈ 2–3.5 kB, single flag ≈ 7 kB), 57 Icon/IconButton browser tests pass.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/df6f7c1&quot;&gt;df6f7c1&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Replace &lt;code&gt;lucide-react: &amp;quot;latest&amp;quot;&lt;/code&gt; with a semver range and upgrade to 1.x&lt;/p&gt;
&lt;p&gt;&lt;code&gt;latest&lt;/code&gt; is an npm dist-tag, not a semver range: every clean install could resolve a different version, and a breaking lucide release would hit consumers immediately with no way to protect themselves. The lockfile also masked a real drift — local/CI installs resolved &lt;code&gt;0.577.0&lt;/code&gt; while a fresh consumer install of &lt;code&gt;latest&lt;/code&gt; already got &lt;code&gt;1.23.0&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Changed to &lt;code&gt;&amp;quot;lucide-react&amp;quot;: &amp;quot;^1.23.0&amp;quot;&lt;/code&gt;: new 1.x minors (which is how lucide ships new icons) keep flowing in on install, but a future breaking 2.0 won't be picked up silently. Verified against 1.23.0: icons and ui packages build and typecheck, Icon/IconButton browser tests pass in Chromium, Firefox and WebKit.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/d6954e8&quot;&gt;d6954e8&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Sync rollup externals with real dependencies&lt;/p&gt;
&lt;p&gt;&lt;code&gt;vite.config.ts&lt;/code&gt; of icons and utils listed externals manually, including &lt;code&gt;@vega-ui/helpers&lt;/code&gt; — a package that doesn't exist in the monorepo — plus entries these packages never import (&lt;code&gt;@floating-ui/react&lt;/code&gt;, &lt;code&gt;react-remove-scroll&lt;/code&gt;, &lt;code&gt;@vega-ui/hooks&lt;/code&gt;). Hand-written lists drift from real dependencies; a stray module matching a dead entry would silently produce a broken bundle.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;icons&lt;/strong&gt;: externals are now derived from &lt;code&gt;Object.keys(packageJson.dependencies)&lt;/code&gt; + &lt;code&gt;Object.keys(packageJson.peerDependencies)&lt;/code&gt; (same pattern as &lt;code&gt;@vega-ui/react&lt;/code&gt; and &lt;code&gt;@vega-ui/hooks&lt;/code&gt;), so the &amp;quot;don't bundle this&amp;quot; contract always matches the declared dependencies.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;utils&lt;/strong&gt;: the package has no runtime dependencies at all (React appears only in type imports), so the list is trimmed to the explicit &lt;code&gt;['react', 'react-dom', 'react/jsx-runtime']&lt;/code&gt; safety net.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;resolveJsonModule: true&lt;/code&gt; added to &lt;code&gt;tsconfig.node.json&lt;/code&gt; of ui/hooks/icons (their vite configs import &lt;code&gt;package.json&lt;/code&gt;); the empty &lt;code&gt;tsconfig.node.json&lt;/code&gt; of utils filled in to match the other packages.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/55a8c44&quot;&gt;55a8c44&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Remove React from &lt;code&gt;dependencies&lt;/code&gt;, keep it only in &lt;code&gt;peerDependencies&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;react&lt;/code&gt; (and &lt;code&gt;react-dom&lt;/code&gt; in &lt;code&gt;@vega-ui/react&lt;/code&gt;) were declared in both &lt;code&gt;dependencies&lt;/code&gt; and &lt;code&gt;peerDependencies&lt;/code&gt;. With strict resolution (Yarn PnP, pnpm with &lt;code&gt;shamefully-hoist=false&lt;/code&gt;, strict npm) consumers ended up with two copies of React — &lt;code&gt;Invalid hook call&lt;/code&gt;, contexts not matching, rendering breaking with no clear error.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;removed &lt;code&gt;react&lt;/code&gt;/&lt;code&gt;react-dom&lt;/code&gt; from &lt;code&gt;dependencies&lt;/code&gt; in &lt;code&gt;@vega-ui/react&lt;/code&gt;, &lt;code&gt;@vega-ui/hooks&lt;/code&gt; and &lt;code&gt;@vega-ui/icons&lt;/code&gt;; they stay in &lt;code&gt;peerDependencies&lt;/code&gt; and were added to &lt;code&gt;devDependencies&lt;/code&gt; for local development&lt;/li&gt;
&lt;li&gt;&lt;code&gt;vite.config.ts&lt;/code&gt; of &lt;code&gt;@vega-ui/react&lt;/code&gt; and &lt;code&gt;@vega-ui/hooks&lt;/code&gt; derived rollup &lt;code&gt;external&lt;/code&gt; from &lt;code&gt;Object.keys(dependencies)&lt;/code&gt; only, so React would have been bundled into &lt;code&gt;dist&lt;/code&gt; after this change — externals now include &lt;code&gt;peerDependencies&lt;/code&gt; as well&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/9834a4c&quot;&gt;9834a4c&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v2-4-0</id>
    <title>@vega-ui/icons 2.4.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v2-4-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v2-3-1</id>
    <title>@vega-ui/icons 2.3.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v2-3-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v2-3-0</id>
    <title>@vega-ui/icons 2.3.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v2-3-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v2-2-1</id>
    <title>@vega-ui/icons 2.2.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v2-2-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v2-2-0</id>
    <title>@vega-ui/icons 2.2.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v2-2-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v2-1-1</id>
    <title>@vega-ui/icons 2.1.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v2-1-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v2-1-0</id>
    <title>@vega-ui/icons 2.1.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v2-1-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v2-0-1</id>
    <title>@vega-ui/icons 2.0.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v2-0-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v2-0-0</id>
    <title>@vega-ui/icons 2.0.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v2-0-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;The responsive-ui package is no longer supported due to inconsistencies in the overall component design approach&lt;/p&gt;
&lt;p&gt;The components that the responsive ui package contained are easily implemented using the composition of existing ones and do not require the support and development of a separate package&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/eab55a8&quot;&gt;eab55a8&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Fixed ts problems&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/9fcad60&quot;&gt;9fcad60&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-14-3</id>
    <title>@vega-ui/icons 1.14.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-14-3"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-14-2</id>
    <title>@vega-ui/icons 1.14.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-14-2"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed deps&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/55809c0&quot;&gt;55809c0&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-14-1</id>
    <title>@vega-ui/icons 1.14.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-14-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Refactored contexts, they are unified in style&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/9bb4a3b&quot;&gt;9bb4a3b&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-14-0</id>
    <title>@vega-ui/icons 1.14.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-14-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-13-0</id>
    <title>@vega-ui/icons 1.13.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-13-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-12-4</id>
    <title>@vega-ui/icons 1.12.4</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-12-4"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added side effects to icon&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/a18e86e&quot;&gt;a18e86e&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-12-3</id>
    <title>@vega-ui/icons 1.12.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-12-3"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-12-2</id>
    <title>@vega-ui/icons 1.12.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-12-2"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-12-1</id>
    <title>@vega-ui/icons 1.12.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-12-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-12-0</id>
    <title>@vega-ui/icons 1.12.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-12-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-11-4</id>
    <title>@vega-ui/icons 1.11.4</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-11-4"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Upped icon ver&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/0124d94&quot;&gt;0124d94&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-11-3</id>
    <title>@vega-ui/icons 1.11.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-11-3"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-11-2</id>
    <title>@vega-ui/icons 1.11.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-11-2"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-11-1</id>
    <title>@vega-ui/icons 1.11.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-11-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-11-0</id>
    <title>@vega-ui/icons 1.11.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-11-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-10-1</id>
    <title>@vega-ui/icons 1.10.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-10-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-10-0</id>
    <title>@vega-ui/icons 1.10.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-10-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-9-0</id>
    <title>@vega-ui/icons 1.9.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-9-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-8-1</id>
    <title>@vega-ui/icons 1.8.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-8-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-8-0</id>
    <title>@vega-ui/icons 1.8.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-8-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-7-4</id>
    <title>@vega-ui/icons 1.7.4</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-7-4"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-7-3</id>
    <title>@vega-ui/icons 1.7.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-7-3"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-7-2</id>
    <title>@vega-ui/icons 1.7.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-7-2"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-7-1</id>
    <title>@vega-ui/icons 1.7.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-7-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-7-0</id>
    <title>@vega-ui/icons 1.7.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-7-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-6-0</id>
    <title>@vega-ui/icons 1.6.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-6-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-5-0</id>
    <title>@vega-ui/icons 1.5.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-5-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-4-2</id>
    <title>@vega-ui/icons 1.4.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-4-2"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-4-1</id>
    <title>@vega-ui/icons 1.4.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-4-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-4-0</id>
    <title>@vega-ui/icons 1.4.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-4-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-3-0</id>
    <title>@vega-ui/icons 1.3.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-3-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed providers of icons - lucide&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/279075a&quot;&gt;279075a&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-2-2</id>
    <title>@vega-ui/icons 1.2.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-2-2"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-2-1</id>
    <title>@vega-ui/icons 1.2.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-2-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-2-0</id>
    <title>@vega-ui/icons 1.2.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-2-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-1-1</id>
    <title>@vega-ui/icons 1.1.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-1-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-1-0</id>
    <title>@vega-ui/icons 1.1.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-1-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#icons-v1-0-1</id>
    <title>@vega-ui/icons 1.0.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#icons-v1-0-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed logo&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/fb2ec42&quot;&gt;fb2ec42&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v2-5-0</id>
    <title>@vega-ui/tokens-core 2.5.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v2-5-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v2-4-0</id>
    <title>@vega-ui/tokens-core 2.4.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v2-4-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed xs, sm, md, lg, xl sizes of all components&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/a77ab19&quot;&gt;a77ab19&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v2-3-1</id>
    <title>@vega-ui/tokens-core 2.3.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v2-3-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Refactored color system and semantic tokens&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updated color palette in &lt;code&gt;@vega-ui/tokens-core&lt;/code&gt;: revised oklch values across all color scales for better perceptual uniformity&lt;/li&gt;
&lt;li&gt;Replaced static surface tokens (&lt;code&gt;surface-ultrathin&lt;/code&gt; … &lt;code&gt;surface-ultrathick&lt;/code&gt;) with &lt;code&gt;surface-primary&lt;/code&gt; / &lt;code&gt;surface-secondary&lt;/code&gt; in both light and dark themes&lt;/li&gt;
&lt;li&gt;Tweaked fill token chroma/lightness values in light and dark themes for improved contrast&lt;/li&gt;
&lt;li&gt;Button ghost/transparent hover and active backgrounds now use &lt;code&gt;oklch(from …)&lt;/code&gt; relative color syntax instead of hardcoded palette steps, making them automatically adapt to any primary/secondary accent color&lt;/li&gt;
&lt;li&gt;Added Playground story showcasing Badge, Button, Alert, Checkbox, Radio, Avatar, SegmentedControl and Slider in a single view&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/3858f99&quot;&gt;3858f99&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Fixed colors&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/2fe1a01&quot;&gt;2fe1a01&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v2-3-0</id>
    <title>@vega-ui/tokens-core 2.3.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v2-3-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed hex to oklch + color-mix&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/f5dd762&quot;&gt;f5dd762&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;@vega-ui/tokens-core&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Complete overhaul of the color palette:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Colors migrated from &lt;code&gt;color-mix(in oklch, var(--color-red) X%, white/black)&lt;/code&gt; to direct &lt;code&gt;oklch()&lt;/code&gt; values for more predictable perceptual color space&lt;/li&gt;
&lt;li&gt;Removed intermediate steps (50, 150, 250, 350, 450, 550, 650, 750, 850, 950) — scale simplified to 11 steps: 0–100–200–…–1000&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;@vega-ui/theme-core&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Complete overhaul of semantic tokens in &lt;code&gt;light.css&lt;/code&gt; / &lt;code&gt;dark.css&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added fill tokens: &lt;code&gt;--fills-primary/secondary/tertiary/quaternary&lt;/code&gt; with hover/active states&lt;/li&gt;
&lt;li&gt;Added label tokens: &lt;code&gt;--label-primary/secondary/tertiary/quaternary&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Added surface tokens: &lt;code&gt;--surface-ultrathin/thin/regular/thick/ultrathick&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Added separator tokens: &lt;code&gt;--separator-opaque/non-opaque&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Added border tokens: &lt;code&gt;--border-color&lt;/code&gt; with hover/active states&lt;/li&gt;
&lt;li&gt;Added disabled state tokens: &lt;code&gt;--disable-*&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Added color accent tokens: &lt;code&gt;--color-*-accent-*&lt;/code&gt; — palette is automatically inverted in dark mode&lt;/li&gt;
&lt;li&gt;Renamed: &lt;code&gt;--text-inverce-color&lt;/code&gt; → &lt;code&gt;--text-color-inverce&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;@vega-ui/react&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All components migrated to new semantic tokens from the theme&lt;/li&gt;
&lt;li&gt;Removed direct color token references in components, replaced with semantic variables&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/064d8c0&quot;&gt;064d8c0&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Change gray color (1000)&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/1dc9de6&quot;&gt;1dc9de6&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v2-2-1</id>
    <title>@vega-ui/tokens-core 2.2.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v2-2-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v2-2-0</id>
    <title>@vega-ui/tokens-core 2.2.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v2-2-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v2-1-1</id>
    <title>@vega-ui/tokens-core 2.1.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v2-1-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v2-1-0</id>
    <title>@vega-ui/tokens-core 2.1.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v2-1-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v2-0-1</id>
    <title>@vega-ui/tokens-core 2.0.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v2-0-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v2-0-0</id>
    <title>@vega-ui/tokens-core 2.0.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v2-0-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Improved backdrop animations&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/31b2b94&quot;&gt;31b2b94&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The responsive-ui package is no longer supported due to inconsistencies in the overall component design approach&lt;/p&gt;
&lt;p&gt;The components that the responsive ui package contained are easily implemented using the composition of existing ones and do not require the support and development of a separate package&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/eab55a8&quot;&gt;eab55a8&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v1-14-3</id>
    <title>@vega-ui/tokens-core 1.14.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v1-14-3"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v1-14-2</id>
    <title>@vega-ui/tokens-core 1.14.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v1-14-2"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed deps&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/55809c0&quot;&gt;55809c0&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v1-14-1</id>
    <title>@vega-ui/tokens-core 1.14.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v1-14-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v1-14-0</id>
    <title>@vega-ui/tokens-core 1.14.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v1-14-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v1-13-0</id>
    <title>@vega-ui/tokens-core 1.13.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v1-13-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v1-12-4</id>
    <title>@vega-ui/tokens-core 1.12.4</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v1-12-4"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v1-12-3</id>
    <title>@vega-ui/tokens-core 1.12.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v1-12-3"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v1-12-2</id>
    <title>@vega-ui/tokens-core 1.12.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v1-12-2"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v1-12-1</id>
    <title>@vega-ui/tokens-core 1.12.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v1-12-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v1-12-0</id>
    <title>@vega-ui/tokens-core 1.12.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v1-12-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;This release introduces a complete grid, selection, and scroll system for structured, interactive UIs.
It combines efficient keyboard navigation, flexible selection logic, and smooth snap scrolling —
forming the foundation for advanced table, calendar, and picker interfaces.&lt;/p&gt;
&lt;p&gt;📊 &lt;code&gt;DataGrid&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DataGrid&lt;/code&gt; is a focusable, navigable grid that manages keyboard movement and active-cell focus.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Supports navigation with Arrow, Home/End, and PageUp/PageDown keys&lt;/li&gt;
&lt;li&gt;Optional wrap navigation (horizontal, vertical, or both)&lt;/li&gt;
&lt;li&gt;Configurable rowDelta for page jumps&lt;/li&gt;
&lt;li&gt;Provides an imperative API (grid, keyMap) for advanced logic&lt;/li&gt;
&lt;li&gt;Supports excluded or disabled cells that are skipped during traversal&lt;/li&gt;
&lt;li&gt;Emits onMove events describing direction and axis of movement&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Used as the base for all higher-level grid-based components.&lt;/p&gt;
&lt;p&gt;🧭 &lt;code&gt;DataGridSelectable&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DataGridSelectable&lt;/code&gt; extends DataGrid with a full selection model.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Selection modes: &amp;quot;single&amp;quot;, &amp;quot;multiple&amp;quot;, &amp;quot;range&amp;quot;&lt;/li&gt;
&lt;li&gt;Keyboard (Shift + Arrows) and pointer-based range selection&lt;/li&gt;
&lt;li&gt;Optional disabled and bounded ranges (from / to)&lt;/li&gt;
&lt;li&gt;Fully integrated with the useSelection hook&lt;/li&gt;
&lt;li&gt;Provides consistent accessibility and state behavior&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ideal for building interactive tables, lists, and date selectors.&lt;/p&gt;
&lt;p&gt;🎯 &lt;code&gt;DataGridPicker&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;DataGridPicker builds on DataGridSelectable to enable picking and highlighting items within a grid.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Automatically computes rectangular ranges between selected cells&lt;/li&gt;
&lt;li&gt;Supports highlighting of continuous intervals (start → end)&lt;/li&gt;
&lt;li&gt;Can be customized with a user-defined resolveRange function&lt;/li&gt;
&lt;li&gt;Commonly used for date pickers, emoji selectors, or option matrices&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;🧱 &lt;code&gt;SnapScroller&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;SnapScroller&lt;/code&gt; provides smooth, scroll-snap navigation with full control and callbacks.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Optimized for CSS scroll-snap-align behavior&lt;/li&gt;
&lt;li&gt;Exposes imperative API: next(), prev(), element&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Triggers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;onSnap(index) — when snapped item changes&lt;/li&gt;
&lt;li&gt;onOffset(direction) — when scroll reaches start or end&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Optional preserveScroll restores snapped position after content updates&lt;/p&gt;
&lt;p&gt;Perfect for carousels, paginated lists, or horizontally scrolling pickers.&lt;/p&gt;
&lt;p&gt;🪝 &lt;code&gt;useSelection&lt;/code&gt; Hook&lt;/p&gt;
&lt;p&gt;&lt;code&gt;useSelection&lt;/code&gt; is a composable hook for declarative selection management.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Supports &amp;quot;single&amp;quot;, &amp;quot;multiple&amp;quot;, and &amp;quot;range&amp;quot; modes&lt;/li&gt;
&lt;li&gt;Provides helpers: toggle, expand, isSelected, edges, and more&lt;/li&gt;
&lt;li&gt;Accepts custom equals, compare, and resolveRange logic&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Used internally by DataGridSelectable and DataGridPicker&lt;/p&gt;
&lt;p&gt;⚙️ &lt;code&gt;Grid &amp;amp; Matrix Utilities&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;These low-level utilities power the core grid logic and ensure efficient traversal.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;grid&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;A high-level controller for navigating 2D layouts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Provides directional movement (before, after, above, below)&lt;/li&gt;
&lt;li&gt;Handles row and column wrapping&lt;/li&gt;
&lt;li&gt;Uses Matrix internally for structure and lookup&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;matrix&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;A modular 2D data engine with the following components:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Matrix&lt;/code&gt; — manages all rows and cells
&lt;code&gt;MatrixRow&lt;/code&gt; — ordered row container with iterable access
&lt;code&gt;MatrixNode&lt;/code&gt; — represents a single cell ([row, col], key, payload)
&lt;code&gt;MatrixIndexes&lt;/code&gt; — maintains sorted indices with binary search&lt;/p&gt;
&lt;p&gt;Together, they ensure fast lookups and navigation across sparse grids.&lt;/p&gt;
&lt;p&gt;This release establishes the foundation for interactive, accessible, and performant grid-based interfaces in Vega UI —
enabling developers to build pickers, calendars, tables, and carousels with minimal boilerplate and maximum control.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/30e9724&quot;&gt;30e9724&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v1-11-4</id>
    <title>@vega-ui/tokens-core 1.11.4</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v1-11-4"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v1-11-3</id>
    <title>@vega-ui/tokens-core 1.11.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v1-11-3"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Made graphite color more contrast than gray&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/0392555&quot;&gt;0392555&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v1-11-2</id>
    <title>@vega-ui/tokens-core 1.11.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v1-11-2"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;The gray colors have been changed, the surface has been added, and the fields styles have also been changed&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/61a382b&quot;&gt;61a382b&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v1-11-1</id>
    <title>@vega-ui/tokens-core 1.11.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v1-11-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v1-11-0</id>
    <title>@vega-ui/tokens-core 1.11.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v1-11-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v1-10-1</id>
    <title>@vega-ui/tokens-core 1.10.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v1-10-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v1-10-0</id>
    <title>@vega-ui/tokens-core 1.10.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v1-10-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#tokens-v1-9-0</id>
    <title>@vega-ui/tokens-core 1.9.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#tokens-v1-9-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added new packages - tokens and theme&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/c90a0c1&quot;&gt;c90a0c1&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v2-5-0</id>
    <title>@vega-ui/theme-core 2.5.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v2-5-0"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v2-4-0</id>
    <title>@vega-ui/theme-core 2.4.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v2-4-0"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Fixed separator color&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/0bd6953&quot;&gt;0bd6953&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v2-3-1</id>
    <title>@vega-ui/theme-core 2.3.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v2-3-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Refactored color system and semantic tokens&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updated color palette in &lt;code&gt;@vega-ui/tokens-core&lt;/code&gt;: revised oklch values across all color scales for better perceptual uniformity&lt;/li&gt;
&lt;li&gt;Replaced static surface tokens (&lt;code&gt;surface-ultrathin&lt;/code&gt; … &lt;code&gt;surface-ultrathick&lt;/code&gt;) with &lt;code&gt;surface-primary&lt;/code&gt; / &lt;code&gt;surface-secondary&lt;/code&gt; in both light and dark themes&lt;/li&gt;
&lt;li&gt;Tweaked fill token chroma/lightness values in light and dark themes for improved contrast&lt;/li&gt;
&lt;li&gt;Button ghost/transparent hover and active backgrounds now use &lt;code&gt;oklch(from …)&lt;/code&gt; relative color syntax instead of hardcoded palette steps, making them automatically adapt to any primary/secondary accent color&lt;/li&gt;
&lt;li&gt;Added Playground story showcasing Badge, Button, Alert, Checkbox, Radio, Avatar, SegmentedControl and Slider in a single view&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/3858f99&quot;&gt;3858f99&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v2-3-0</id>
    <title>@vega-ui/theme-core 2.3.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v2-3-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;@vega-ui/tokens-core&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Complete overhaul of the color palette:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Colors migrated from &lt;code&gt;color-mix(in oklch, var(--color-red) X%, white/black)&lt;/code&gt; to direct &lt;code&gt;oklch()&lt;/code&gt; values for more predictable perceptual color space&lt;/li&gt;
&lt;li&gt;Removed intermediate steps (50, 150, 250, 350, 450, 550, 650, 750, 850, 950) — scale simplified to 11 steps: 0–100–200–…–1000&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;@vega-ui/theme-core&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Complete overhaul of semantic tokens in &lt;code&gt;light.css&lt;/code&gt; / &lt;code&gt;dark.css&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added fill tokens: &lt;code&gt;--fills-primary/secondary/tertiary/quaternary&lt;/code&gt; with hover/active states&lt;/li&gt;
&lt;li&gt;Added label tokens: &lt;code&gt;--label-primary/secondary/tertiary/quaternary&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Added surface tokens: &lt;code&gt;--surface-ultrathin/thin/regular/thick/ultrathick&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Added separator tokens: &lt;code&gt;--separator-opaque/non-opaque&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Added border tokens: &lt;code&gt;--border-color&lt;/code&gt; with hover/active states&lt;/li&gt;
&lt;li&gt;Added disabled state tokens: &lt;code&gt;--disable-*&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Added color accent tokens: &lt;code&gt;--color-*-accent-*&lt;/code&gt; — palette is automatically inverted in dark mode&lt;/li&gt;
&lt;li&gt;Renamed: &lt;code&gt;--text-inverce-color&lt;/code&gt; → &lt;code&gt;--text-color-inverce&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;@vega-ui/react&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All components migrated to new semantic tokens from the theme&lt;/li&gt;
&lt;li&gt;Removed direct color token references in components, replaced with semantic variables&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/064d8c0&quot;&gt;064d8c0&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v2-2-1</id>
    <title>@vega-ui/theme-core 2.2.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v2-2-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed surface ultrathin color&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/160db7b&quot;&gt;160db7b&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Changed surface thin color&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/0260c02&quot;&gt;0260c02&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v2-2-0</id>
    <title>@vega-ui/theme-core 2.2.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v2-2-0"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v2-1-1</id>
    <title>@vega-ui/theme-core 2.1.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v2-1-1"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v2-1-0</id>
    <title>@vega-ui/theme-core 2.1.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v2-1-0"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v2-0-1</id>
    <title>@vega-ui/theme-core 2.0.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v2-0-1"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v2-0-0</id>
    <title>@vega-ui/theme-core 2.0.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v2-0-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;The responsive-ui package is no longer supported due to inconsistencies in the overall component design approach&lt;/p&gt;
&lt;p&gt;The components that the responsive ui package contained are easily implemented using the composition of existing ones and do not require the support and development of a separate package&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/eab55a8&quot;&gt;eab55a8&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v1-14-3</id>
    <title>@vega-ui/theme-core 1.14.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v1-14-3"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v1-14-2</id>
    <title>@vega-ui/theme-core 1.14.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v1-14-2"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed deps&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/55809c0&quot;&gt;55809c0&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v1-14-1</id>
    <title>@vega-ui/theme-core 1.14.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v1-14-1"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v1-14-0</id>
    <title>@vega-ui/theme-core 1.14.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v1-14-0"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v1-13-0</id>
    <title>@vega-ui/theme-core 1.13.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v1-13-0"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v1-12-4</id>
    <title>@vega-ui/theme-core 1.12.4</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v1-12-4"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v1-12-3</id>
    <title>@vega-ui/theme-core 1.12.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v1-12-3"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v1-12-2</id>
    <title>@vega-ui/theme-core 1.12.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v1-12-2"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v1-12-1</id>
    <title>@vega-ui/theme-core 1.12.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v1-12-1"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v1-12-0</id>
    <title>@vega-ui/theme-core 1.12.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v1-12-0"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v1-11-4</id>
    <title>@vega-ui/theme-core 1.11.4</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v1-11-4"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v1-11-3</id>
    <title>@vega-ui/theme-core 1.11.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v1-11-3"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v1-11-2</id>
    <title>@vega-ui/theme-core 1.11.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v1-11-2"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;The gray colors have been changed, the surface has been added, and the fields styles have also been changed&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/61a382b&quot;&gt;61a382b&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v1-11-1</id>
    <title>@vega-ui/theme-core 1.11.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v1-11-1"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v1-11-0</id>
    <title>@vega-ui/theme-core 1.11.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v1-11-0"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v1-10-1</id>
    <title>@vega-ui/theme-core 1.10.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v1-10-1"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Made surface color (dark theme) more contrast&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/458fc95&quot;&gt;458fc95&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v1-10-0</id>
    <title>@vega-ui/theme-core 1.10.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v1-10-0"/>
    <content type="html">&lt;p&gt;Dependency updates only.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#theme-v1-9-0</id>
    <title>@vega-ui/theme-core 1.9.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#theme-v1-9-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Added new packages - tokens and theme&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/c90a0c1&quot;&gt;c90a0c1&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#context-v2-5-0</id>
    <title>@vega-ui/react-context 2.5.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#context-v2-5-0"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Fix broken &lt;code&gt;main&lt;/code&gt; field in hooks, utils and react-context&lt;/p&gt;
&lt;p&gt;In &lt;code&gt;@vega-ui/hooks&lt;/code&gt;, &lt;code&gt;@vega-ui/utils&lt;/code&gt; and &lt;code&gt;@vega-ui/react-context&lt;/code&gt; the &lt;code&gt;main&lt;/code&gt; field pointed to &lt;code&gt;./dist/index.ts&lt;/code&gt; — a file that doesn't exist in &lt;code&gt;dist/&lt;/code&gt; (the build only outputs &lt;code&gt;.js&lt;/code&gt; and &lt;code&gt;.d.ts&lt;/code&gt;). Modern bundlers masked the problem by resolving through the &lt;code&gt;exports&lt;/code&gt; map, but environments that rely on &lt;code&gt;main&lt;/code&gt; (Node without conditional exports support, Jest with legacy resolution, ts-node, CDNs like esm.sh) got &lt;code&gt;MODULE_NOT_FOUND&lt;/code&gt; or tried to parse TypeScript as JS.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;main&lt;/code&gt; now points to &lt;code&gt;./dist/index.js&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;added &lt;code&gt;module: &amp;quot;./dist/index.js&amp;quot;&lt;/code&gt; (consistent with &lt;code&gt;@vega-ui/react&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;added the missing top-level &lt;code&gt;types: &amp;quot;./dist/index.d.ts&amp;quot;&lt;/code&gt; to utils and react-context so resolvers that don't support &lt;code&gt;exports&lt;/code&gt; can find the type declarations&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/1007aae&quot;&gt;1007aae&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Declare &lt;code&gt;react&lt;/code&gt; as a peer dependency&lt;/p&gt;
&lt;p&gt;&lt;code&gt;@vega-ui/react-context&lt;/code&gt; uses React but did not declare it as a dependency of any kind — only &lt;code&gt;devDependencies&lt;/code&gt;. A consumer installing just &lt;code&gt;@vega-ui/react-context&lt;/code&gt; got no hint about the required React version, and with Yarn PnP / strict resolution React could not be resolved at all.&lt;/p&gt;
&lt;p&gt;Added &lt;code&gt;&amp;quot;peerDependencies&amp;quot;: { &amp;quot;react&amp;quot;: &amp;quot;^19.0.0&amp;quot; }&lt;/code&gt; (only &lt;code&gt;react&lt;/code&gt; — the package does not use &lt;code&gt;react-dom&lt;/code&gt;).&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/77c7685&quot;&gt;77c7685&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#context-v2-4-0</id>
    <title>@vega-ui/react-context 2.4.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#context-v2-4-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#context-v2-3-1</id>
    <title>@vega-ui/react-context 2.3.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#context-v2-3-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#context-v2-3-0</id>
    <title>@vega-ui/react-context 2.3.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#context-v2-3-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#context-v2-2-1</id>
    <title>@vega-ui/react-context 2.2.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#context-v2-2-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#context-v2-2-0</id>
    <title>@vega-ui/react-context 2.2.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#context-v2-2-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#context-v2-1-1</id>
    <title>@vega-ui/react-context 2.1.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#context-v2-1-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#context-v2-1-0</id>
    <title>@vega-ui/react-context 2.1.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#context-v2-1-0"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#context-v2-0-1</id>
    <title>@vega-ui/react-context 2.0.1</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#context-v2-0-1"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#context-v2-0-0</id>
    <title>@vega-ui/react-context 2.0.0</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#context-v2-0-0"/>
    <content type="html">&lt;h3&gt;Minor changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;The responsive-ui package is no longer supported due to inconsistencies in the overall component design approach&lt;/p&gt;
&lt;p&gt;The components that the responsive ui package contained are easily implemented using the composition of existing ones and do not require the support and development of a separate package&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/eab55a8&quot;&gt;eab55a8&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Fixed ts problems&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/9fcad60&quot;&gt;9fcad60&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#context-v1-14-3</id>
    <title>@vega-ui/react-context 1.14.3</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#context-v1-14-3"/>
    <content type="html">&lt;p&gt;No changes in this package. Released to keep versions in sync.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://vega-ui.dev/changelog/#context-v1-14-2</id>
    <title>@vega-ui/react-context 1.14.2</title>
    <updated>2026-11-06T01:36:08.000Z</updated>
    <link rel="alternate" type="text/html" href="https://vega-ui.dev/changelog/#context-v1-14-2"/>
    <content type="html">&lt;h3&gt;Patch changes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Changed deps&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/vega-ui/ui/commit/55809c0&quot;&gt;55809c0&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
</feed>
