Skip to content

Conversation

nerdy-tech-com-gitub
Copy link
Owner

@nerdy-tech-com-gitub nerdy-tech-com-gitub commented Apr 19, 2025

snyk-top-banner

Snyk has created this PR to upgrade @nuxt/ui from 2.21.1 to 3.0.2.

ℹ️ Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


⚠️ Warning: This PR contains major version upgrade(s), and may be a breaking change.

  • The recommended version is 21 versions ahead of your current version.

  • The recommended version was released 22 days ago.

Release notes
Package name: @nuxt/ui
  • 3.0.2 - 2025-03-28

    🚀 Features

    • Calendar: allow year and month buttons styling (#3672) (4a2b77d)
    • Table: add empty prop (afff54f)

    🐛 Bug Fixes

    • Avatar: proxy $attrs to default slot (#3712) (88f349d)
    • Button: use focus:outline-none instead of focus:outline-hidden (c231fe5), closes #3658
    • CommandPalette: use group.id as key (bc61d29)
    • components: improve generic types (#3331) (b998354)
    • Container: add w-full class (df00149)
    • defineShortcuts: remove @ __NO_SIDE_EFFECTS__ (82e2665)
    • Drawer: remove fadeFromIndex prop proxy (f7604e5)
    • Form: clear dirty state after submit (#3692) (3dd88ba)
    • FormField: add help to aria-describedby attribute (#3691) (20c3392)
    • InputMenu/SelectMenu: empty search results (94b6e52)
    • InputMenu: reset searchTerm on update:open (3074632), closes #3620
    • Link: handle aria-current like NuxtLink / RouterLink (c531d02)
    • Link: prevent active="true" binding on html (d73768b)
    • Link: properly pick all aria-* & data-* attrs (ade16b7)
    • Link: proxy onClick (370054b), closes #3631
    • NavigationMenu: add z-index on viewport (0095d89), closes #3654
    • Switch: prevent transition on focus outline (68787b2)
    • Table: wrong condition on caption slot (4ebb94c)
    • Tabs: remove focus:outline-hidden class (1769d5e)
    • types: add missing export for ButtonGroup (#3709) (e7e6745)
    • useOverlay: refine open method type to infer close emit return type (#3716) (bd99c2d)
    • vue: mock nuxtApp.hooks & useRuntimeHook (23bfeb9)

    🌐 Locale

    👋 New Contributors

    Full Changelog: v3.0.1...v3.0.2

  • 3.0.1 - 2025-03-21

    ✨ Highlights

    • module: handle tailwindcss import without theme(static) (#3630) (ecff9ab)

    You no longer need to use theme(static) when importing tailwindcss! 🎉

    - @ import "tailwindcss" theme(static);
    + @ import "tailwindcss";

    However, you might still need this when using Tailwind CSS variables in your code explicitly like this for example:

    <span
      :class="`bg-(--color-light) dark:bg-(--color-dark)`"
      :style="{
        '--color-light': `var(--color-${chip}-500)`,
        '--color-dark': `var(--color-${chip}-400)`
      }"
    />

    🚨 Breaking Changes

    • Form: drop explicit support for zod and valibot (#3617) (9a4bb34)

    We now rely on standard-schema for Form validation with valibot and zod. Make sure to upgrade to [email protected] / [email protected] if you use them in your app.

    We've updated to [email protected] which powers the Drawer component. There's no longer a handle slot, the theme handle slot has changed a bit with some important values but you have access to a handle-only prop now: https://ui.nuxt.com/components/drawer#handle-only

    🚀 Features

    • components: handle events in content prop (5dec0e1)

    🐛 Bug Fixes

    • Calendar: grey out days outside of displayed month (#3639) (a516866)
    • ContextMenu/DropdownMenu: remove any from proxySlots (#3623) (764c41a)
    • Modal/Slideover/Toast: prevent unnecessary close instantiation (f4c417d)
    • module: handle tailwindcss import without theme(static) (#3630) (ecff9ab)
    • module: mark functions used in exports as pure (#3604) (57efc78)
    • RadioGroup: handle disabled on items (fe0bd83), closes nuxt/ui-pro#911
    • Table: allow links to be opened when @ select is used (#3580) (e80cc15)
    • types: add missing export for Icon (#3568) (5e62493)
    • unplugin: include @ compodium/examples in auto-imports paths (#3585) (cc504b8)
    • useLocale: unique symbol to use in @ nuxt/ui-pro (#3603) (dec2730)
    • vue: missing unhead context (#3589) (0897e9e)

    🌐 Locale

    👋 New Contributors

    Full Changelog: v3.0.0...v3.0.1

  • 3.0.0 - 2025-03-12

    We are thrilled to introduce Nuxt UI v3, a comprehensive redesign of our UI library that delivers significant improvements in accessibility, performance, and developer experience. This major update represents over 1,500 commits of dedicated work, collaboration, and innovation from our team and the community.

    Read the blog post announcement: https://nuxt.com/blog/nuxt-ui-v3

    Get started with Nuxt UI v3 →

    ✨ Highlights

    🧩 Reka UI: A New Foundation

    We've transitioned from Headless UI to Reka UI as our core component foundation, bringing:

    • Expanded Component Library: Access to 55+ primitives, significantly expanding our component offerings
    • Future-Proof Development: Benefit from Reka UI's growing popularity and continuous improvements
    • First-Class Accessibility: Built-in accessibility features aligned with our commitment to inclusive design

    🚀 Tailwind CSS v4 Integration

    Nuxt UI now leverages the latest Tailwind CSS v4, delivering:

    • Exceptional Performance: Full builds up to 5× faster, with incremental builds over 100× faster
    • Streamlined Toolchain: Built-in import handling, vendor prefixing, and syntax transforms with zero additional tooling
    • CSS-First Configuration: Customize and extend the framework directly in CSS instead of JavaScript configuration

    🎨 Tailwind Variants

    We've adopted Tailwind Variants to power our design system, offering:

    • Dynamic Styling: Create flexible component variants with a powerful, intuitive API
    • Type Safety: Full TypeScript support with intelligent auto-completion
    • Smart Conflict Resolution: Efficiently merge conflicting styles with predictable results

    📝 Enhanced TypeScript Integration

    Nuxt UI provides significantly improved TypeScript support:

    • Intelligent Auto-completion for component props based on your theme configuration
    • Generic-based Components built using Vue 3 Generics with improved type inference for slots and events
    • Type-safe Theming leveraging Tailwind Variants with customizable types for extended configurations

    🔄 Vue Compatibility

    Use Nuxt UI in any Vue project without Nuxt by adding the Vite and Vue plugins to your configuration:

    • Auto-imports: Components and composables automatically imported and available globally
    • Complete Theming: Full theming support with customizable colors, sizes, variants, and more
    • Superior Developer Experience: Comprehensive TypeScript support with IntelliSense and auto-completion

    Get started with Nuxt UI for Vue →

    Migration from v2

    We want to be transparent: migrating from Nuxt UI v2 to v3 requires significant effort. While we've maintained core concepts and components, Nuxt UI v3 has been rebuilt from the ground up to provide enhanced capabilities.

    To upgrade your project:

    1. Read our detailed migration guide
    2. Review the new documentation and components before attempting to upgrade
    3. Report any issues on our GitHub repository

    🙏 Acknowledgements

    This release represents thousands of hours of work from our team and the community. We'd like to thank everyone who contributed to making Nuxt UI v3 a reality, especially @ romhml, @ sandros94, and @ hywax for their tremendous work.

  • 3.0.0-beta.4 - 2025-03-12

    🚨 Breaking Changes

    Nuxt UI v3.0.0-beta.4 requires Nuxt v3.16 to work, please upgrade your Nuxt to continue using @ nuxt/ui:

    nuxi upgrade --force
    

    🚀 Features

    🐛 Bug Fixes

    👋 New Contributors

    Full Changelog: v3.0.0-beta.3...v3.0.0-beta.4

  • 3.0.0-beta.3 - 2025-03-07

    🚀 Features

    🐛 Bug Fixes

    • InputMenu/SelectMenu: proxy required in root props (60b7e2d)
    • InputMenu: wrong required in multiple mode (01fa230), closes #2741
    • Pagination: add missing slots (a47c5ff), closes #3441
    • Pagination: wrong next link (e823022), closes #3008
    • templates: prevent overriding existing colors (ccbd89c), closes #3426

    👋 New Contributors

    Full Changelog: v3.0.0-beta.2...v3.0.0-beta.3

  • 3.0.0-beta.2 - 2025-02-28

    🐛 Bug Fixes

    • OverlayProvider: missing import (c555c16)
    • useOverlay: missing imports (0e3c63e)

    Full Changelog: v3.0.0-beta.1...v3.0.0-beta.2

  • 3.0.0-beta.1 - 2025-02-28

    ✨ Highlights

    • Tree: new component (#3180)

    https://ui3.nuxt.dev/components/tree

    🚨 Breaking Changes

    • deps: update tailwindcss to ^4.0.8 (#3373)

    Tailwind CSS made some breaking changes in 4.0.8 where they don't rely on the module graph to discover classes anymore and where they remove unused CSS variables.

    The first issue has been fixed internally in #3373 but for the second you now need to use theme(static) when importing tailwindcss: https://ui3.nuxt.dev/getting-started/theme#theme

    @ import "tailwindcss" theme(static);
    @ import "@ nuxt/ui";

    @ theme static {
    --color-green-50: #EFFDF5;
    --color-green-100: #D9FBE8;
    --color-green-200: #B3F5D1;
    --color-green-300: #75EDAE;
    --color-green-400: #00DC82;
    --color-green-500: #00C16A;
    --color-green-600: #00A155;
    --color-green-700: #007F45;
    --color-green-800: #016538;
    --color-green-900: #0A5331;
    --color-green-950: #052E16;
    }

    You can read more about this in #3374

    • module: remove devtools in favor of compodium (#3380)

    @ romhml who initially created the Nuxt UI devtools, moved all the logic into a separate compodium module in #3380 to avoid polluting the @ nuxt/ui package with 7MB+ of component metas.

    This module now works for any component in your app, not just Nuxt UI ones which gives way more flexibility.

    You can install the module in your Nuxt application with one command:

    npx nuxi module add compodium
    
    • useOverlay: handle programmatic modals and slideovers (#3279)

    @ genu who initially created the useModal and useSlideover composables in Nuxt UI v2 made a significant refactor in #3279 which merges the two composables into a single useOverlay composable. This is a big breaking change but brings lots of improvements as you can read in the PR.

    🚀 Features

    🐛 Bug Fixes

    • Avatar: render on SSR (67e5465)
    • CommandPalette: wrong ellipsis color (ada04f6)
    • components: missing $attrs bind (#3152) (fb36df5)
    • Drawer/Modal/Slideover: disable close autofocus (ae30f94), closes #3227
    • Form: ensure loading state resets to false after an error (#3359) (19d76c8)
    • Link: improve external links handling in vue (b53f77b)
    • Modal/Slideover: add wrapper around title & description (bc01136)
    • Modal/Slideover: fixed header height (d33a83e), closes #3333
    • Modal: use dvh unit (aefa09c)
    • module: use key when merging modules options (9821894)
    • Tooltip: bind $attrs on trigger (637f5d3), closes #3339 #2897
    • vite: exclude @ nuxt/ui from vite pre-optimization (#3352) (09492f7)

    👋 New Contributors

    Full Changelog: v3.0.0-alpha.13...v3.0.0-beta.1

  • 3.0.0-alpha.13 - 2025-02-17

    ✨ Highlights

    🎨 Tailwind CSS classes

    Thanks to #2967, you can now use classes like text-primary dark:text-primary-400 like in Nuxt UI v2. We dynamically write into the @ theme directive of Tailwind CSS to define the Nuxt UI design system colors (theme.colors) as Tailwind CSS colors.

    🚨 Breaking Changes

    • useToast: don't return a promise on add
    • Toast: rename click to onClick for consistency
    • Alert/Toast: add orientation prop

    🚀 Features

    • Alert/Toast: add orientation prop (2c192ac)
    • Badge: add support within button groups (#3224) (10fb843)
    • Card: add variant prop (847d4aa)
    • CommandPalette: support link props in items (e2b78a7), closes #3190
    • ContextMenu/DropdownMenu/NavigationMenu: add external-icon prop (5846c1e), closes #2996
    • Drawer: add inset prop (6d9b9ed), closes #2994
    • locale: add Azerbaijani language (#3209) (0fb6753)
    • locale: add Bengali (বাংলা) language (#3321) (1d09a2a)
    • module: generate tailwindcss theme colors (#2967) (443a0be)
    • Table: extends core options and support other options like pagination (#3177) (4aa3179)
    • Toast: handle vnodes in title and description (abd2be1), closes #3226
    • unplugin: expose options for embedded plugins, throw warnings for duplication (#3207) (6c20f8a)
    • useToast: proxy emits (089185f)

    🐛 Bug Fixes

    • App: wrap ModalProvider / SlideoverProvider inside TooltipProvider (cd0a9d3), closes #3236
    • Badge: missing UAvatar import (49dd088), closes #3203
    • Calendar/InputMenu/Textarea: add missing PartialString type on ui prop (9d29e0b), closes #3299
    • Card: remove shadow-sm for consistency (8097fff)
    • Link: allow usage without vue-router in vue (f55e869), closes #3001
    • locale: export km (#3201) (995e07d)
    • Modal/Slideover: improve title & description accessibility (e419dcb), closes #3267 #3215
    • Modal: always fullscreen on mobile (#2637) (7641d89)
    • NavigationMenu: disable collapsible with collapsed prop (07e1b4f)
    • NavigationMenu: remove negative mb causing overflow issues (0e46c3e)
    • NavigationMenu: wrong level compute on vertical orientation (c1c9da4)
    • SelectMenu: wrap content with FocusScope (e7e7585), closes #2657
    • Table: proxy props without useForwardProps (f0553eb)
    • Toast: rename click to onClick for consistency (533e889)
    • useToast: don't return a promise on add (153f341)

    👋 New Contributors

    Full Changelog: v3.0.0-alpha.12...v3.0.0-alpha.13

  • 3.0.0-alpha.12 - 20...

    Summary by Sourcery

    Upgrade @nuxt/ui from version 2.21.1 to 3.0.2, a major version upgrade that introduces significant changes and improvements to the Nuxt UI library

    New Features:

    • Upgrade to Nuxt UI v3 with enhanced component library, improved TypeScript support, and new features like the Tree component

    Enhancements:

    • Improved TypeScript integration with intelligent auto-completion
    • Transition to Reka UI as the core component foundation
    • Enhanced Tailwind CSS v4 integration

Snyk has created this PR to upgrade @nuxt/ui from 2.21.1 to 3.0.2.

See this package in npm:
@nuxt/ui

See this project in Snyk:
https://app.snyk.io/org/nerds-github/project/8b4160ff-3510-4d06-a27b-7930a5e75719?utm_source=github&utm_medium=referral&page=upgrade-pr
Copy link

sourcery-ai bot commented Apr 19, 2025

Reviewer's Guide by Sourcery

This pull request upgrades the @nuxt/ui dependency from version 2.21.1 to 3.0.2. This brings in numerous new features, bug fixes, and improvements to the UI library. It's important to review the release notes for breaking changes and migration steps.

Updated class diagram for the Form component

classDiagram
  class Form {
    + drop explicit support for zod and valibot
    + rely on standard-schema for validation
    + global errors
    + prop to disable state transformation
    + input blur validation on submit
    + ensure loading state resets to false after an error
  }
Loading

Updated class diagram for the useOverlay composable

classDiagram
  class useOverlay {
    + handle programmatic modals and slideovers
  }
Loading

Updated class diagram for the Toast component

classDiagram
  class Toast {
    + rename `click` to `onClick` for consistency
    + handle vnodes in `title` and `description`
  }
Loading

Updated class diagram for the Link component

classDiagram
  class Link {
    + handle `aria-current` like `NuxtLink` / `RouterLink`
    + prevent `active="true"` binding on html
    + properly pick all `aria-*` & `data-*` attrs
    + proxy `onClick`
    + improve external links handling in vue
    + allow usage without `vue-router` in vue
  }
Loading

Updated class diagram for the Drawer component

classDiagram
  class Drawer {
    + remove `fadeFromIndex` prop proxy
    + add `inset` prop
  }
Loading

File-Level Changes

Change Details Files
Upgrade the @nuxt/ui dependency from version 2.21.1 to 3.0.2.
  • Updated the @nuxt/ui dependency to the latest version.
lyx-ui/package.json

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!
  • Generate a plan of action for an issue: Comment @sourcery-ai plan on
    an issue to generate a plan of action for it.

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have skipped reviewing this pull request. Here's why:

  • It seems to have been created by a bot ('[Snyk]' found in title). We assume it knows what it's doing!
  • We don't review packaging changes - Let us know if you'd like us to change this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants