Skip to content

Releases: vuetifyjs/0

v1.0.0-beta.1

09 Jun 20:39

Choose a tag to compare

v1.0.0-beta.1 Pre-release
Pre-release

🔧 Bug Fixes

  • harden composables against prototype pollution, CSS injection, and unbounded allocation (#271) (62c1a3e)
  • createForm: submit(0) validated all fields instead of field id 0 (#288) (2ca233e)
  • createNested: exclude disabled children from the ancestor all-selected test (#306) (75d7347)
  • createSingle: force single selection, ignore caller multiple:true (#291) (69c3458)
  • createSlider: enforce minStepsBetweenThumbs in apply() for 3+ thumbs (#309) (90df292)
  • createTokens: guard flatten against prototype pollution and unsafe keys (#300) (e029eff)
  • createValidation: no-rules validate must invalidate in-flight runs (#294) (9de152e)
  • Input,NumberField: eager validation must wait for the first error (#305) (61d8be8)
  • isElement: guard against ReferenceError when Element is undefined under SSR (#285) (cee6ea2)
  • overflow: isolate ResizeObserver mock per-instance (#275) (bd66ff0), closes #250
  • playground: replace calc(100% + 1px) with height: 100% on .editor-container (#277) (818b913)
  • useDragDrop: don't leak a zone's effect scope on duplicate-id registration (#302) (9dd92d5)

🔥 Performance Improvements

  • bench: fix 10K fixture isolation in createNested and createSortable (#272) (b4a4bf8)
  • createRegistry: replace Map-rebuild move with order-array splice + windowed reindex (#273) (176cabc)
  • useProxyRegistry: rebuild the snapshot lazily on read (#280) (3b3f781)

v1.0.0-beta.0

02 Jun 23:30

Choose a tag to compare

v1.0.0-beta.0 Pre-release
Pre-release

🚀 Features

  • Avatar: add Avatar.Group and Avatar.Indicator (#245) (437585f)
  • Tooltip: headless tooltip component with region coordination (#226) (dd1f0df)
  • createDataGrid: add new composable (#174) (f4dda67)
  • genesis: add @paper/genesis docs design system (#240) (a45b574)
  • useLogger: scoped key for per-caller message prefix (#255) (6964572)

🔧 Bug Fixes

  • remove duplicate type re-exports causing TS2308 (f550d72)
  • createOverflow: derive isOverflowing from registered count in uniform mode (2c2fc2e)
  • Overflow: guard element measurement against non-finite width (#264) (6126209)

🔬 Code Refactoring

  • attach structured cause to v0 throws (#247) (a8e7fe6)

v1.0.0-alpha.5

19 May 23:29

Choose a tag to compare

v1.0.0-alpha.5 Pre-release
Pre-release

🚀 Features

  • createOtp: add headless OTP / verification-code composable (#238) (9d66067)
  • toHighlight: add new utility (#222) (f7d5fd7)

🔧 Bug Fixes

  • createDataTable: reset previous column direction on single-sort switch (181762a)
  • packages/0: align with PHILOSOPHY.md (94f81b6)

🔬 Code Refactoring

  • createDataTable: drop items option for registry pattern (#236) (58df5fb)

v1.0.0-alpha.4

12 May 21:03

Choose a tag to compare

v1.0.0-alpha.4 Pre-release
Pre-release

🚀 Features

  • createKanban: add headless two-level sortable board primitive (#234) (0569e4f)
  • createRegistry: add reorder bulk primitive (51c1d13)
  • createRegistry: offboard returns removed inputs for cross-registry transfer (de40e30)
  • createSortable: add headless ordered-list primitive (#231) (7371c8c)
  • useDragDrop: add headless drag-and-drop primitive (#225) (748dc1c)
  • utilities: add isThenable type guard (b55ede7)

🔧 Bug Fixes

  • components: propagate reactive disabled/indeterminate to registry tickets (996c1e3)
  • components: propagate reactive mandatory/enroll/multiple to selection composables (67b991b)
  • createCombobox: re-export Client/ServerComboboxAdapter from barrel (4d8789c)
  • createOverflow: return false from isOverflowing when width is 0 (b45aa47)
  • createQueue: preserve remaining duration in resume() (fbd68a6)
  • createRegistry: reject duplicate ids in reorder (1f47dd6)
  • createRegistry: preserve ticket identity, fix lazy reindex hazards, tighten event payloads (509b117)
  • createSelection: respect mandatory in apply() multiple-mode (787de6f)
  • NumberField: stop spin-on-hold on document pointerup (c610754)
  • Progress: allow v-model with prop-driven segment values (a3a5e16)
  • SplitterRoot: emit layout exactly once per pointer drag (04634ac)
  • useStorage: always unwrap __v0 envelope on read (6ec7b70)

🔥 Performance Improvements

  • createSortable: use registry reorder, drop O(n²) per-id loop (9043be8)

🔬 Code Refactoring

  • createCombobox: remove legacy ComboboxClient/ServerAdapter aliases (6100ea0)
  • createCombobox: rename adapters with composition noun and promote interface to abstract (e25afa1)
  • createDataTable: rename mode adapters with composition noun, collapse interface (355f4cc)
  • useDate: rename Vuetify0DateAdapter to V0DateAdapter and promote interface to abstract class (e62d504)
  • useDragDrop: use isThenable for accept-predicate thenable check (6317698)
  • useFeatures: pluralize provider adapter classes, collapse interface into abstract base, flatten provider folders (f53ee7d)
  • useLocale: rename Vuetify0LocaleAdapter to V0LocaleAdapter, flatten vue-i18n adapter, promote interface to abstract (a24a5e9)
  • useLogger: rename Vuetify0LoggerAdapter to V0LoggerAdapter and promote interface to abstract class (e82db8b)
  • useNotifications: convert factory adapters to classes, add abstract NotificationsAdapter base (6befea5)
  • usePermissions: rename to plural PermissionsAdapter family with V0 prefix and collapse interface (bc8f097)
  • useRtl: rename Vuetify0RtlAdapter to V0RtlAdapter and promote interface to abstract (21a0a3e)
  • useStorage: rename MemoryAdapter to MemoryStorageAdapter and promote interface to abstract class (2f7f3c4)
  • useTheme: collapse ThemeAdapterInterface into abstract ThemeAdapter (50e80ee)

v1.0.0-alpha.3

05 May 19:10

Choose a tag to compare

v1.0.0-alpha.3 Pre-release
Pre-release

🚀 Features

🔧 Bug Fixes

  • ButtonRoot: always emit boolean aria-disabled covering both states (b09444c)
  • Checkbox: always emit boolean aria-disabled (a50a4b2)
  • clamp: return min for non-finite values (1ce67ff)
  • ComboboxControl: always emit boolean aria-disabled (741bf05)
  • ComboboxItem: always emit boolean aria-disabled (015aa86)
  • createNumberField: re-init when value is NaN or Infinity (1f038b3)
  • createSlider: preserve snap symmetry under inverted (68e95f4)
  • createValidation: return false from stale async results (4abcd85)
  • leonardo: guard extractColors against non-array values (bd34ec1)
  • PaginationStatus: clear pending live-region timer on unmount (949c0f0)
  • RadioRoot: always emit boolean aria-disabled (5051552)
  • SelectItem: always emit boolean aria-disabled (5ed8d2c)
  • SplitterHandle: always emit boolean aria-disabled (2c950e9)
  • Switch: always emit boolean aria-disabled (21f6476)
  • Tabs: always emit boolean aria-disabled (d5d45d4)
  • toElement: pass through raw Elements before ref-like checks (3c3c171)
  • ToggleGroup: always emit boolean aria-disabled (f6a5b3d)
  • ToggleRoot: always emit boolean aria-disabled (1523745)
  • Treeview: always emit boolean aria-disabled across the family (e4b1abf)
  • useClickOutside: resolve bounds at pointerdown to survive mid-gesture scroll (5b68b17)

🔬 Code Refactoring

  • Carousel: drop legacy HTMLElement casts on ticket el (6bc6865)
  • CarouselViewport: drop legacy HTMLElement cast on viewport el (27123f5)
  • Image: drop misleading HTMLElement cast on rootEl (3f8d004)
  • leonardo: use isObject guard over raw typeof check (e8da9dd)
  • Radio: drop legacy HTMLElement cast on ticket el (baafb5f)
  • Splitter: drop legacy HTMLElement cast on rootEl (7ed9e20)
  • Tabs: drop legacy HTMLElement cast on ticket el (f8d4e2c)
  • Treeview: drop legacy HTMLElement cast on ticket el (5b4f002)

v1.0.0-alpha.2

28 Apr 23:10

Choose a tag to compare

v1.0.0-alpha.2 Pre-release
Pre-release

🚀 Features

  • SplitterPanel: widen size props to number | string (#215) (e426ed7)
  • useLocale,useFeatures: enable reactive registry by default (#211) (e61744a)
  • useTheme: enable reactive registry by default (#210) (3785be9), closes #208

🔧 Bug Fixes

  • Carousel: auto-mirror viewport padding to scroll-padding (#201) (bdc1b02)
  • createRegistry: skip values/keys/entries cache when reactive (#209) (2b7cf9d)
  • SplitterPanel: restore overflow:hidden to prevent layout feedback loop (dd7fed8)

🔬 Code Refactoring

  • canonicalize data-open across activators (7c8eefc)
  • remove COMMON_ELEMENTS dead export (462d642)
  • mark pure exports with /* #NO_SIDE_EFFECTS */ (70c5da7)
  • createDataTable: rename enroll option to openAll (6006a7a)
  • createNested: drop stale // Factories import comment (4de550a)
  • helpers: hoist mid-file imports to top of file (8f958d9)
  • Locale: remove as-any casts for vue-i18n interop (4263c00)
  • notifications: barrel-export useNotifications (72a3782)
  • palettes/leonardo: swap as-never casts for ts-expect-error (7e6577f)
  • PopoverRoot: drop deprecated isSelected context field (df9d708)
  • SplitterPanel: remove overflow:hidden visual opinion (5f8cedd)
  • tests: remove unnecessary as-any casts (46766f2)
  • types: remove GenericObject duplicate alias (7ec0404)
  • useDate: use isFunction guard over raw typeof check (017517d)
  • useDate: replace double cast with typed interface (1cbd0cb)
  • useDate: rename DateAdapter.isNull to isNullish (6c7ae7c)

v1.0.0-alpha.1

21 Apr 23:16

Choose a tag to compare

v1.0.0-alpha.1 Pre-release
Pre-release

🚀 Features

  • Carousel: add new component (#190) (bab3f65)
  • createDataTable: support recursive column definitions with children (c6172b9)
  • createDataTable: add column tree utilities (extractLeaves, computeDepth, resolveHeaders) (fc6ddc0)
  • createImage/Image: create new composable and component (#191) (25ec8b7)

🔧 Bug Fixes

  • security audit fixes across foundational composables (30cc5e1)
  • Carousel: more responsive scroll for vertical orientation (#203) (6d72128)
  • Carousel: intercept shift+wheel for discrete slide navigation (#197) (fbfed3a), closes #193
  • createDataTable: remove unused App import (082a9a4)
  • createPlugin: stop passing fallback as inject default (b5cc848), closes #184
  • InputRoot: emit focused state via v-model:focused (#195) (25c378d)
  • NumberField: sync display text when value changes while focused (51882e1), closes #189
  • Portal: add close event, disabled passthrough, tune examples (#188) (84867f5)
  • useTheme: sanitize theme names and color values in CSS generation (cbf22d7)

🔬 Code Refactoring

  • annotate module-level allocations with /* @PURE */ (5fb19b5)
  • gate DOM probes behind IN_BROWSER (d45f7f3)
  • use isUndefined guard over raw === undefined (9018aec)
  • components: route aria labels through locale.t() (9823d09)
  • components: import useId from #v0/utilities (010cd2d)
  • components: merge attrs with mergeProps at compound boundaries (307b279)
  • components: use onBeforeUnmount for deregistration (92a81a6)
  • composables: stop exposing reactive:true registries to templates (8ca8557)
  • createDataTable: pattern compliance, performance, and naming (e630b78)
  • createNested: remove deprecated openStrategy API (b7b247d)
  • createSelection: remove redundant re-implementations (5f65593), closes #186
  • createTrinity: add string-key overload, simplify all callers (9d9818e), closes #185
  • createTrinity: remove redundant provideContext wrappers (591cfdc)
  • SplitterPanel: tighten expose types to Readonly<Ref> (71512b1)
  • useResizeObserver: wrap useElementSize width/height readonly (860dcdd)

v1.0.0-alpha.0

07 Apr 20:37

Choose a tag to compare

v0.2.1

07 Apr 19:45

Choose a tag to compare

v0.2.1 Pre-release
Pre-release

🚀 Features

  • AlertDialog: add confirmation dialog with deferred close pattern (1fb751d)
  • Collapsible: add Collapsible disclosure component (7cecf6c)
  • createNumeric/createInput: add new composables (#181) (e11bb01)
  • createRating: add rating composable and compound component (56867fe)
  • ExpansionPanel: add Cue and rename Root/Item to Group/Root (bc2058a)
  • NumberField: add new component/composables (#183) (193a2a5)
  • Portal: add renderless teleport wrapper with useStack integration (c62eefb)
  • Presence: add usePresence composable and Presence component (1888840)
  • Progress: add new component/composable (#180) (d8ec512)
  • Slider: expose createSlider methods via slot props (e88d4fb)
  • Toggle: add dual-mode toggle button with group support (52f280c)

🔧 Bug Fixes

  • alpha readiness review fixes (b0bc54a)
  • resolve 7 bugs from automated audit (699b083)
  • Button: conditionally render Content and Loading sub-components (e2113b3)
  • createModel, createGroup: restore generics used by downstream consumers (fa5c882)
  • createRating: rename RatingItem to RatingItemDescriptor to avoid export collision (47e0578)
  • createVirtual: guard cancelAnimationFrame in onScopeDispose for SSR (bec0fbc)
  • InputControl: include event handlers in controlAttrs for renderless mode (d82043c)
  • Selection: add onClick to attrs in item components (e2371c6)
  • useAsk: extend benchmark regex to match create* composable directories (37309f8)
  • useBreakpoints: correct SSR hydration, guard matchMedia, remove unsafe casts (066b700)
  • useBreakpoints, useHydration: replace app.mixin with app.mount wrapper (a355342), closes #177
  • useMediaQuery: read matchMedia synchronously to prevent FOUC (#175) (fd98517)
  • useProxyModel: sync model back when apply rejects (8e88a6e)
  • useProxyRegistry: update cleanup test for reindex:registry listener (7b055c9)
  • useStorage: prevent shared default mutation, preserve empty strings, fix has() (21f0f3c), closes #171

🔬 Code Refactoring

  • remove explicit any types, add ESLint enforcement (bf87611)
  • downgrade as unknown as to as where types overlap (910db18)
  • replace raw type checks with #v0/utilities type guards (1f9447a)
  • createGroup, createQueue, useStack, useFeatures, createValidation: remove unused generics (2c18ca6)
  • useLocale, useLogger, usePermissions, createForm, createModel: remove unused generics (901f9c8)
  • useTheme, useNotifications, createNested: remove unused generics (c7a85de), closes #176
  • utilities: add resolveIds and resolveIndexes helpers (7a5f9d5)

v0.2.0

31 Mar 15:26

Choose a tag to compare

v0.2.0 Pre-release
Pre-release

🚀 Features

  • Combobox/createCombobox: addnew composable/component (#172) (716a687)
  • createPlugin: add persist/restore lifecycle hooks (debbd99)
  • Theme: use Atom, optional theme prop, full context override (e601c19)
  • useTheme: split adapters into V0StyleSheetThemeAdapter and V0UnheadThemeAdapter (faf8b3b)

🔧 Bug Fixes

  • Button,Tabs,Slider,Splitter: use mergeProps to preserve user event handlers (4eec0a8)
  • createPlugin: cast unknown saved values in restore callbacks (9d05ff4)
  • date: add fallback minimalDays lookup for runtimes missing Intl data (942c644)
  • Select: show pending model value in SelectValue before items register (8e34ce6)
  • Splitter: smooth drag-expand and persist tree panel width (d3f991c)
  • Theme: set text color on scoped [data-theme] selectors (6715d76)
  • useTheme: use single atomic patch in V0UnheadThemeAdapter (ec5a2b2)
  • useTheme: ensure colors computed tracks selectedId for reactivity (a1ee13a)

🔥 Performance Improvements

🔬 Code Refactoring

  • Combobox: add Description, Error, rename Input to Control (3243543)