Skip to content

Releases: nuxt/ui

v3.0.0-alpha.10

09 Dec 10:22
Compare
Choose a tag to compare
v3.0.0-alpha.10 Pre-release
Pre-release

✨ Highlights

Reka UI

With #2448, Nuxt UI v3 is now using Reka UI v1.0.0-alpha.6: the new major of Radix Vue which brings significant improvements.

However, there are a few breaking changes:

Checkbox

  • The indeterminate prop has been removed in favor of v-model / default-value: boolean | "indeterminate"

CommandPalette

  • The filter field on groups has been renamed to ignoreFilter for consistency

InputMenu/SelectMenu

  • The filter prop has been removed in favor of ignore-filter & filter-fields
  • The create-item prop no longer assign to v-model to provide more flexibility when working with objects. You have to do it yourself in the @create event which now receive only the typed string as argument.

Tabs

  • The content of inactive items is no longer rendered when unmounted by default, use :unmount-on-hide="false" to get the same result

You can read the Reka UI migration guide if you're interested: https://reka-ui.com/docs/guides/migration#form-component although most of the changes have been done internally.

Calendar

A new Calendar component has been introduced: https://ui3.nuxt.dev/components/calendar

CleanShot 2024-12-09 at 11 20 55@2x

ColorPicker

A new ColorPicker component has been introduced: https://ui3.nuxt.dev/components/color-picker
CleanShot 2024-12-09 at 11 21 05@2x

Stepper

A new Stepper component has been introduced: https://ui3.nuxt.dev/components/stepper

CleanShot 2024-12-09 at 11 21 20@2x

🚀 Features

🐛 Bug Fixes

  • Breadcrumb: missing aria-hidden on presentation items (a7a1227), closes #2725
  • Calendar: handle icons in RTL mode (#2770) (e7b69b7)
  • Calendar: omit as / asChild props (9478fc0)
  • ColorPicker: handle RTL mode (#2858) (f98b91c)
  • CommandPalette: keep ignoreFilter groups at their place (#2833) (3b9ca22)
  • components: apply class on trigger instead of content when present (a6ecef0), closes #2132
  • components: specify collisionPadding to all menus (148b024)
  • defineShortcuts: return useEventListener to unregister the listener (80befc1), closes #2031
  • devtools: error with renderer when colorMode is disabled (#2792) (f06fbaf)
  • Form: resolve async validation in yup & issue directly mutate state (#2702) (c9806da)
  • icons: make loading icon clockwise (#2797) (bc2bcb3)
  • Link: partial query match for Vue (#2787) (a6c2205)
  • locale: improve German translation (#2826) (c440c91)
  • Modal: prevent from going out of screen (b7ba2c7), closes #2711
  • NavigationMenu: wrong badge class (86f2b48), closes #2766
  • Progress: handle horizontal animation in RTL mode (#2723) (0baa3a0)
  • Stepper: handle RTL mode (#2844) (198d04d)
  • Stepper: missing import (816bb69)
  • Table: handle loading animation in RTL mode (#2771) (b1550d5)
  • Tabs: prevent hover on disabled (a938d24)
  • Tabs: truncate not working (c1ff978)
  • types: handle array of strings in AppConfig (#2854) (4b241ba)
  • useLocale: update locale import to enable tree shaking (#2735) (3bccb67)

👋 New Contributors

Full Changelog: v3.0.0-alpha.9...v3.0.0-alpha.10

v2.20.0

09 Dec 11:32
Compare
Choose a tag to compare

⚠️ Breaking Changes

  • Form: resolve async validation in yup & issue directly mutate state (#2701)

🚀 Features

🐛 Bug Fixes

  • AvatarGroup/ButtonGroup/MeterGroup: allow deeply partial ui config (#2542) (bf58086)
  • Carousel: wrong ui type with strategy (07ef771)
  • components: replace as const with correct type in config (#2652) (51c8b8e)
  • DatePicker: undefined dayIndex (#2545) (ce955d2)
  • Form: resolve async validation in yup & issue directly mutate state (#2701) (f3632dd)
  • Form: use parsed value from joi instead of original state (#2587) (acecff4)
  • InputMenu/SelectMenu: use by prop to compare objects & support dot notation in value-attribute (#2566) (7154254)
  • Link: exactQuery prop type (#2781) (4cde571)
  • Notification: element renders even when no notification is present (#2561) (d4e408c)
  • Table: data outdated when rows change (#2600) (b23f2de)
  • Table: missing type on props loadingState (#2551) (6e66990)
  • Table: prevent onClick while blocking element (#2592) (9703786)
  • types: improve DeepPartial type for App Config (#2621) (976b03f)

👋 New Contributors

Full Changelog: v2.19.2...v2.20.0

v3.0.0-alpha.9

19 Nov 15:13
Compare
Choose a tag to compare
v3.0.0-alpha.9 Pre-release
Pre-release

This release is based on latest [email protected] and [email protected].

✨ Highlights

Internationalization (i18n)

Nuxt UI v3 now supports internationalization for Nuxt and Vue with automatic direction (ltr / rtl) and already 12 locales translated.

You can read more on https://ui3.nuxt.dev/getting-started/i18n/nuxt

InputNumber

A new InputNumber component based on https://www.radix-vue.com/components/number-field.html.

You can read more on https://ui3.nuxt.dev/components/input-number

PinInput

A new PinInput component based on https://www.radix-vue.com/components/pin-input.html

You can read more on https://ui3.nuxt.dev/components/pin-input

🚀 Features

🐛 Bug Fixes

  • App: missing vue imports (ddb4690)
  • App: remove dir prop (#2630) (7cc26d0)
  • Breadcrumb/Carousel/Pagination: handle icons in RTL mode (#2633) (e5119a9)
  • Breadcrumb: render as nav (756f791), closes #2649
  • Button: improve neutral solid variant hover (8d85498)
  • Carousel: use dir from locale (#2647) (1fbbfe8)
  • ContextMenu/DropdownMenu: relative imports with prefix (47f58f5)
  • css: --font-family-sans renamed to --font-sans (#2680) (b2fa657)
  • css: remove useless spacing override (8d00265)
  • FormField: missing conditions to apply container classes (#2631) (9241ba1)
  • Form: match error-pattern on input validation (#2606) (3584a33)
  • InputMenu/SelectMenu: init filter with labelKey (18931ac)
  • InputMenu/SelectMenu: look in items only with value-attribute (0ceafe1), closes #2464
  • InputMenu/SelectMenu: multiple not working with generic boolean casting (503f701), closes #2541
  • InputMenu/SelectMenu: use isEqual from ohash (f943f88)
  • Link: missing relative import (#2588) (95a0bbc)
  • Modal/Slideover: prevent esc with prevent-close prop (9e2cc5b), closes #2501
  • module: remove fast-deep-equal in favor of custom isEqual (37a3597)
  • module: skip devtools renderer page injection if router integration is disabled (#2571) (afe4003)
  • Textarea: autoresize does not work when initializing modelValue (#2681) (d3a079a)
  • Toaster: teleport to body (b0be26d), closes #2404
  • Toast: unreachable behind overlays (#2650) (0daac5b)

👋 New Contributors

Full Changelog: v3.0.0-alpha.8...v3.0.0-alpha.9

v3.0.0-alpha.8

07 Nov 14:07
Compare
Choose a tag to compare
v3.0.0-alpha.8 Pre-release
Pre-release

✨ Highlights

Vue compatibility

In #2416 by @danielroe, you can now use Nuxt UI in any Vue project without Nuxt: https://ui3.nuxt.dev/getting-started/installation/vue

Nuxt Devtools

In #2196 by @romhml, you can now preview the Nuxt UI components in the Nuxt Devtools, edit their props and copy the code to use in your app.

Lucide Icons

We migrated from heroicons to lucide icons in #2540, you can configure all your icons at once if you want to switch back: https://ui3.nuxt.dev/getting-started/icons#theme

🚀 Features

  • Avatar: infer width / height on <img> based on size prop (c9adf33)
  • Avatar: use NuxtImg component when available (f1a14dd), closes nuxt/ui#2078
  • Badge: handle icon and avatar props (#2497) (2d52834)
  • components: improve RTL support (#2433) (94c4918)
  • DropdownMenu/ContextMenu: handle color field in items (#2510) (f66c96e)
  • InputMenu/Select/SelectMenu: arrow prop implementation (#2503) (f26f6c8)
  • Kbd: special keys for macOS and other systems (#2494) (332c6c0)
  • module: add support for vue using unplugin (#2416) (d4a943e)
  • module: devtools integration (#2196) (701c75a)
  • NavigationMenu: add item-content slot (b5ca0d9)
  • Table: customize header and cell through slots (#2457) (ef561e7)
  • theme: migrate from heroicons to lucide (#2540) (a6c1a6c)

🐛 Bug Fixes

👋 New Contributors

Full Changelog: v3.0.0-alpha.7...v3.0.0-alpha.8

v2.19.1

05 Nov 17:07
Compare
Choose a tag to compare

🐛 Bug Fixes

  • InputMenu/SelectMenu: regex breaks build (cb6f5f2)

Full Changelog: v2.19.0...v2.19.1

v2.19.0

05 Nov 16:02
Compare
Choose a tag to compare

Read our updated documentation on https://ui.nuxt.com/.

🚨 Breaking Changes

In #2485, the expandable feature of the Table component has changed. You should use v-model:expand to achieve the functionality that was previously implemented using the #expand slot.

🚀 Features

🐛 Bug Fixes

👋 New Contributors

Full Changelog: v2.18.7...v2.19.0

v3.0.0-alpha.7

23 Oct 19:28
Compare
Choose a tag to compare
v3.0.0-alpha.7 Pre-release
Pre-release

🚀 Features

  • Accordion/Breadcrumb/CommandPalette/ContextMenu/DropdownMenu/NavigationMenu/Tabs: add labelKey prop (acfc6ce)
  • Button: handle avatar prop (a54c3e4)
  • CommandPalette: handle loading field in items (49abad2)
  • ContextMenu/DropdownMenu: handle checkbox items type (8ef6e71), closes #2144
  • ContextMenu/DropdownMenu: handle loading field in items (b975235)
  • Form: add superstruct validation (#2363) (5385944)
  • Input/InputMenu/Select/SelectMenu: handle avatar prop (53a3796)
  • InputMenu/RadioGroup/Select/SelectMenu: handle labelKey and use get to support dot notation (f6f9823)
  • NavigationMenu: handle children on vertical orientation (#2384) (34bddd4)
  • Table: implement component (#2364) (b54950e)

🐛 Bug Fixes

  • AvatarGroup: wrong ring on big sizes (61b2323)
  • Button: invalid hover on link variant (df2013c)
  • Checkbox: indeterminate prop not working (f6631ff)
  • components: rename select to onSelect on items (b39c4d1)
  • css: font-sans already applied on (9e03da4)
  • css: make @theme default (a2bad2e)
  • Drawer/Modal/Slideover: no need for z-index since its isolated (bcfa4b7), closes nuxt/ui#2347
  • Input/InputMenu/Select/SelectMenu: uniformize placeholder color (f59844b)
  • InputMenu/SelectMenu: escape regexp before search (7c21dde)
  • InputMenu/SelectMenu: improve displayed value (0f9ac87), closes nuxt/ui#2353
  • InputMenu: emit focus event (#2386) (7802aac)
  • module: stop using tailwind's shorthand arbitrary variable syntax (#2366) (dcce571)
  • Slideover: set max height on top / bottom positions (a68016e), closes nuxt/ui#2388

New Contributors

Full Changelog: v3.0.0-alpha.6...v3.0.0-alpha.7

v3.0.0-alpha.6

09 Oct 14:34
Compare
Choose a tag to compare
v3.0.0-alpha.6 Pre-release
Pre-release

✨ Highlights

Introduced in #2298 , Nuxt UI v3 now embraces a full design system for its components. It brings more breaking changes but will let you customize your entire app at once through CSS variables.

I'd recommend reading the pull request and the updated documentation on https://ui3.nuxt.dev/getting-started/theme#design-system.

🚀 Features

  • Carousel: implement component (#2288) (68ee3f1)
  • Form: add Standard Schema support (#2303) (0955c07)
  • module: implement --ui-radius CSS variable (#2341) (057e86c)
  • module: implement design system with CSS variables (#2298)
  • module: set disableTransition option on @nuxtjs/color-mode (b82af02)

🐛 Bug Fixes

  • Accordion: use text-left break-words instead of truncate on label (6c7c2f0)
  • Alert: default variant to solid for consistency (3a7c5c2)
  • Button: center text with block prop (3cf5535), closes nuxt/ui#2317

👋 New Contributors

Full Changelog: v3.0.0-alpha.5...v3.0.0-alpha.6

v2.18.7

09 Oct 14:00
Compare
Choose a tag to compare

🚀 Enhancements

🐛 Bug Fixes

👋 New Contributors

Full Changelog: v2.18.6...v2.18.7

v3.0.0-alpha.5

03 Oct 12:25
Compare
Choose a tag to compare
v3.0.0-alpha.5 Pre-release
Pre-release

🚀 Features

  • module: enable @nuxtjs/color-mode (9dcf903)
  • module: override dark variant with class strategy (0f86b87)

🐛 Bug Fixes

  • Button: props specified more than once (66a04ad)

Full Changelog: v3.0.0-alpha.4...v3.0.0-alpha.5