@nuxt/ui 3.0.1 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/.nuxt/ui/button.ts +36 -36
  2. package/.nuxt/ui/container.ts +1 -1
  3. package/.nuxt/ui/navigation-menu.ts +2 -2
  4. package/.nuxt/ui/switch.ts +1 -1
  5. package/.nuxt/ui/tabs.ts +1 -1
  6. package/dist/module.cjs +1 -1
  7. package/dist/module.d.cts +2 -1
  8. package/dist/module.d.mts +2 -1
  9. package/dist/module.d.ts +2 -1
  10. package/dist/module.json +1 -1
  11. package/dist/module.mjs +1 -1
  12. package/dist/runtime/components/Accordion.vue +9 -8
  13. package/dist/runtime/components/Alert.vue +1 -1
  14. package/dist/runtime/components/App.vue +1 -1
  15. package/dist/runtime/components/Avatar.vue +7 -5
  16. package/dist/runtime/components/Breadcrumb.vue +11 -10
  17. package/dist/runtime/components/Button.vue +1 -1
  18. package/dist/runtime/components/Calendar.vue +40 -11
  19. package/dist/runtime/components/Carousel.vue +7 -3
  20. package/dist/runtime/components/CommandPalette.vue +12 -11
  21. package/dist/runtime/components/ContextMenu.vue +24 -12
  22. package/dist/runtime/components/ContextMenuContent.vue +22 -15
  23. package/dist/runtime/components/Drawer.vue +1 -5
  24. package/dist/runtime/components/DropdownMenu.vue +23 -12
  25. package/dist/runtime/components/DropdownMenuContent.vue +22 -15
  26. package/dist/runtime/components/Form.vue +1 -0
  27. package/dist/runtime/components/FormField.vue +1 -0
  28. package/dist/runtime/components/InputMenu.vue +92 -54
  29. package/dist/runtime/components/Link.vue +3 -0
  30. package/dist/runtime/components/LinkBase.vue +1 -0
  31. package/dist/runtime/components/Modal.vue +1 -1
  32. package/dist/runtime/components/NavigationMenu.vue +49 -25
  33. package/dist/runtime/components/RadioGroup.vue +23 -12
  34. package/dist/runtime/components/Select.vue +69 -42
  35. package/dist/runtime/components/SelectMenu.vue +83 -48
  36. package/dist/runtime/components/Slideover.vue +1 -1
  37. package/dist/runtime/components/Stepper.vue +11 -10
  38. package/dist/runtime/components/Table.vue +7 -2
  39. package/dist/runtime/components/Tabs.vue +6 -5
  40. package/dist/runtime/components/Toast.vue +1 -1
  41. package/dist/runtime/components/Tree.vue +46 -32
  42. package/dist/runtime/composables/defineShortcuts.js +0 -1
  43. package/dist/runtime/composables/useFormField.js +1 -1
  44. package/dist/runtime/composables/useOverlay.d.ts +3 -2
  45. package/dist/runtime/locale/hy.d.ts +3 -0
  46. package/dist/runtime/locale/hy.js +54 -0
  47. package/dist/runtime/locale/index.d.ts +1 -0
  48. package/dist/runtime/locale/index.js +1 -0
  49. package/dist/runtime/types/form.d.ts +1 -0
  50. package/dist/runtime/types/index.d.ts +1 -0
  51. package/dist/runtime/types/index.js +1 -0
  52. package/dist/runtime/types/utils.d.ts +28 -8
  53. package/dist/runtime/utils/index.d.ts +1 -0
  54. package/dist/runtime/utils/index.js +3 -0
  55. package/dist/runtime/utils/link.d.ts +2 -25
  56. package/dist/runtime/utils/link.js +31 -1
  57. package/dist/runtime/vue/components/Link.vue +3 -0
  58. package/dist/runtime/vue/stubs.d.ts +7 -2
  59. package/dist/runtime/vue/stubs.js +11 -2
  60. package/dist/shared/{ui.C6uTSFTI.cjs → ui.BL-XB3u1.cjs} +16 -16
  61. package/dist/shared/{ui.BCaWD5Ek.mjs → ui.BkNUP964.mjs} +16 -16
  62. package/dist/types.d.mts +7 -1
  63. package/dist/types.d.ts +7 -1
  64. package/dist/unplugin.cjs +1 -1
  65. package/dist/unplugin.d.cts +2 -1
  66. package/dist/unplugin.d.mts +2 -1
  67. package/dist/unplugin.d.ts +2 -1
  68. package/dist/unplugin.mjs +1 -1
  69. package/dist/vite.cjs +1 -1
  70. package/dist/vite.mjs +1 -1
  71. package/package.json +39 -22
@@ -428,7 +428,7 @@ const breadcrumb = (options) => ({
428
428
 
429
429
  const button = (options) => ({
430
430
  slots: {
431
- base: ["rounded-[calc(var(--ui-radius)*1.5)] font-medium inline-flex items-center focus:outline-hidden disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:opacity-75 aria-disabled:opacity-75", options.theme.transitions && "transition-colors"],
431
+ base: ["rounded-[calc(var(--ui-radius)*1.5)] font-medium inline-flex items-center disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:opacity-75 aria-disabled:opacity-75", options.theme.transitions && "transition-colors"],
432
432
  label: "truncate",
433
433
  leadingIcon: "shrink-0",
434
434
  leadingAvatar: "shrink-0",
@@ -515,23 +515,23 @@ const button = (options) => ({
515
515
  })), ...(options.theme.colors || []).map((color) => ({
516
516
  color,
517
517
  variant: "outline",
518
- class: `ring ring-inset ring-(--ui-${color})/50 text-(--ui-${color}) hover:bg-(--ui-${color})/10 disabled:bg-transparent aria-disabled:bg-transparent dark:disabled:bg-transparent dark:aria-disabled:bg-transparent focus-visible:ring-2 focus-visible:ring-(--ui-${color})`
518
+ class: `ring ring-inset ring-(--ui-${color})/50 text-(--ui-${color}) hover:bg-(--ui-${color})/10 disabled:bg-transparent aria-disabled:bg-transparent dark:disabled:bg-transparent dark:aria-disabled:bg-transparent focus:outline-none focus-visible:ring-2 focus-visible:ring-(--ui-${color})`
519
519
  })), ...(options.theme.colors || []).map((color) => ({
520
520
  color,
521
521
  variant: "soft",
522
- class: `text-(--ui-${color}) bg-(--ui-${color})/10 hover:bg-(--ui-${color})/15 focus-visible:bg-(--ui-${color})/15 disabled:bg-(--ui-${color})/10 aria-disabled:bg-(--ui-${color})/10`
522
+ class: `text-(--ui-${color}) bg-(--ui-${color})/10 hover:bg-(--ui-${color})/15 focus:outline-none focus-visible:bg-(--ui-${color})/15 disabled:bg-(--ui-${color})/10 aria-disabled:bg-(--ui-${color})/10`
523
523
  })), ...(options.theme.colors || []).map((color) => ({
524
524
  color,
525
525
  variant: "subtle",
526
- class: `text-(--ui-${color}) ring ring-inset ring-(--ui-${color})/25 bg-(--ui-${color})/10 hover:bg-(--ui-${color})/15 disabled:bg-(--ui-${color})/10 aria-disabled:bg-(--ui-${color})/10 focus-visible:ring-2 focus-visible:ring-(--ui-${color})`
526
+ class: `text-(--ui-${color}) ring ring-inset ring-(--ui-${color})/25 bg-(--ui-${color})/10 hover:bg-(--ui-${color})/15 disabled:bg-(--ui-${color})/10 aria-disabled:bg-(--ui-${color})/10 focus:outline-none focus-visible:ring-2 focus-visible:ring-(--ui-${color})`
527
527
  })), ...(options.theme.colors || []).map((color) => ({
528
528
  color,
529
529
  variant: "ghost",
530
- class: `text-(--ui-${color}) hover:bg-(--ui-${color})/10 focus-visible:bg-(--ui-${color})/10 disabled:bg-transparent aria-disabled:bg-transparent dark:disabled:bg-transparent dark:aria-disabled:bg-transparent`
530
+ class: `text-(--ui-${color}) hover:bg-(--ui-${color})/10 focus:outline-none focus-visible:bg-(--ui-${color})/10 disabled:bg-transparent aria-disabled:bg-transparent dark:disabled:bg-transparent dark:aria-disabled:bg-transparent`
531
531
  })), ...(options.theme.colors || []).map((color) => ({
532
532
  color,
533
533
  variant: "link",
534
- class: `text-(--ui-${color}) hover:text-(--ui-${color})/75 disabled:text-(--ui-${color}) aria-disabled:text-(--ui-${color}) focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-(--ui-${color})`
534
+ class: `text-(--ui-${color}) hover:text-(--ui-${color})/75 disabled:text-(--ui-${color}) aria-disabled:text-(--ui-${color}) focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-(--ui-${color})`
535
535
  })), {
536
536
  color: "neutral",
537
537
  variant: "solid",
@@ -539,23 +539,23 @@ const button = (options) => ({
539
539
  }, {
540
540
  color: "neutral",
541
541
  variant: "outline",
542
- class: "ring ring-inset ring-(--ui-border-accented) text-(--ui-text) bg-(--ui-bg) hover:bg-(--ui-bg-elevated) disabled:bg-(--ui-bg) aria-disabled:bg-(--ui-bg) focus-visible:ring-2 focus-visible:ring-(--ui-border-inverted)"
542
+ class: "ring ring-inset ring-(--ui-border-accented) text-(--ui-text) bg-(--ui-bg) hover:bg-(--ui-bg-elevated) disabled:bg-(--ui-bg) aria-disabled:bg-(--ui-bg) focus:outline-none focus-visible:ring-2 focus-visible:ring-(--ui-border-inverted)"
543
543
  }, {
544
544
  color: "neutral",
545
545
  variant: "soft",
546
- class: "text-(--ui-text) bg-(--ui-bg-elevated) hover:bg-(--ui-bg-accented)/75 focus-visible:bg-(--ui-bg-accented)/75 disabled:bg-(--ui-bg-elevated) aria-disabled:bg-(--ui-bg-elevated)"
546
+ class: "text-(--ui-text) bg-(--ui-bg-elevated) hover:bg-(--ui-bg-accented)/75 focus:outline-none focus-visible:bg-(--ui-bg-accented)/75 disabled:bg-(--ui-bg-elevated) aria-disabled:bg-(--ui-bg-elevated)"
547
547
  }, {
548
548
  color: "neutral",
549
549
  variant: "subtle",
550
- class: "ring ring-inset ring-(--ui-border-accented) text-(--ui-text) bg-(--ui-bg-elevated) hover:bg-(--ui-bg-accented)/75 disabled:bg-(--ui-bg-elevated) aria-disabled:bg-(--ui-bg-elevated) focus-visible:ring-2 focus-visible:ring-(--ui-border-inverted)"
550
+ class: "ring ring-inset ring-(--ui-border-accented) text-(--ui-text) bg-(--ui-bg-elevated) hover:bg-(--ui-bg-accented)/75 disabled:bg-(--ui-bg-elevated) aria-disabled:bg-(--ui-bg-elevated) focus:outline-none focus-visible:ring-2 focus-visible:ring-(--ui-border-inverted)"
551
551
  }, {
552
552
  color: "neutral",
553
553
  variant: "ghost",
554
- class: "text-(--ui-text) hover:bg-(--ui-bg-elevated) focus-visible:bg-(--ui-bg-elevated) hover:disabled:bg-transparent dark:hover:disabled:bg-transparent hover:aria-disabled:bg-transparent dark:hover:aria-disabled:bg-transparent"
554
+ class: "text-(--ui-text) hover:bg-(--ui-bg-elevated) focus:outline-none focus-visible:bg-(--ui-bg-elevated) hover:disabled:bg-transparent dark:hover:disabled:bg-transparent hover:aria-disabled:bg-transparent dark:hover:aria-disabled:bg-transparent"
555
555
  }, {
556
556
  color: "neutral",
557
557
  variant: "link",
558
- class: "text-(--ui-text-muted) hover:text-(--ui-text) disabled:text-(--ui-text-muted) aria-disabled:text-(--ui-text-muted) focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-(--ui-border-inverted)"
558
+ class: "text-(--ui-text-muted) hover:text-(--ui-text) disabled:text-(--ui-text-muted) aria-disabled:text-(--ui-text-muted) focus:outline-none focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-(--ui-border-inverted)"
559
559
  }, {
560
560
  size: "xs",
561
561
  square: true,
@@ -948,7 +948,7 @@ const commandPalette = (options) => ({
948
948
  });
949
949
 
950
950
  const container = {
951
- base: "max-w-(--ui-container) mx-auto px-4 sm:px-6 lg:px-8"
951
+ base: "w-full max-w-(--ui-container) mx-auto px-4 sm:px-6 lg:px-8"
952
952
  };
953
953
 
954
954
  const contextMenu = (options) => ({
@@ -1764,9 +1764,9 @@ const navigationMenu = (options) => ({
1764
1764
  childLinkDescription: "text-sm text-(--ui-text-muted)",
1765
1765
  separator: "px-2 h-px bg-(--ui-border)",
1766
1766
  viewportWrapper: "absolute top-full left-0 flex w-full",
1767
- viewport: "relative overflow-hidden bg-(--ui-bg) shadow-lg rounded-[calc(var(--ui-radius)*1.5)] ring ring-(--ui-border) h-(--reka-navigation-menu-viewport-height) w-full transition-[width,height,left] duration-200 origin-[top_center] data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in]",
1767
+ viewport: "relative overflow-hidden bg-(--ui-bg) shadow-lg rounded-[calc(var(--ui-radius)*1.5)] ring ring-(--ui-border) h-(--reka-navigation-menu-viewport-height) w-full transition-[width,height,left] duration-200 origin-[top_center] data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] z-[1]",
1768
1768
  content: "absolute top-0 left-0 w-full",
1769
- indicator: "absolute data-[state=visible]:animate-[fade-in_100ms_ease-out] data-[state=hidden]:animate-[fade-out_100ms_ease-in] data-[state=hidden]:opacity-0 bottom-0 z-[1] w-(--reka-navigation-menu-indicator-size) translate-x-(--reka-navigation-menu-indicator-position) flex h-2.5 items-end justify-center overflow-hidden transition-[translate,width] duration-200",
1769
+ indicator: "absolute data-[state=visible]:animate-[fade-in_100ms_ease-out] data-[state=hidden]:animate-[fade-out_100ms_ease-in] data-[state=hidden]:opacity-0 bottom-0 z-[2] w-(--reka-navigation-menu-indicator-size) translate-x-(--reka-navigation-menu-indicator-position) flex h-2.5 items-end justify-center overflow-hidden transition-[translate,width] duration-200",
1770
1770
  arrow: "relative top-[50%] size-2.5 rotate-45 border border-(--ui-border) bg-(--ui-bg) z-[1] rounded-[calc(var(--ui-radius)/2)]"
1771
1771
  },
1772
1772
  variants: {
@@ -2878,7 +2878,7 @@ const stepper = (options) => ({
2878
2878
  const _switch = (options) => ({
2879
2879
  slots: {
2880
2880
  root: "relative flex items-start",
2881
- base: ["inline-flex items-center shrink-0 rounded-full border-2 border-transparent focus-visible:outline-2 focus-visible:outline-offset-2 data-[state=unchecked]:bg-(--ui-bg-accented)", options.theme.transitions && "transition-colors duration-200"],
2881
+ base: ["inline-flex items-center shrink-0 rounded-full border-2 border-transparent focus-visible:outline-2 focus-visible:outline-offset-2 data-[state=unchecked]:bg-(--ui-bg-accented)", options.theme.transitions && "transition-[background] duration-200"],
2882
2882
  container: "flex items-center",
2883
2883
  thumb: "group pointer-events-none rounded-full bg-(--ui-bg) shadow-lg ring-0 transition-transform duration-200 data-[state=unchecked]:translate-x-0 data-[state=unchecked]:rtl:-translate-x-0 flex items-center justify-center",
2884
2884
  icon: ["absolute shrink-0 group-data-[state=unchecked]:text-(--ui-text-dimmed) opacity-0 size-10/12", options.theme.transitions && "transition-[color,opacity] duration-200"],
@@ -3052,7 +3052,7 @@ const tabs = (options) => ({
3052
3052
  root: "flex items-center gap-2",
3053
3053
  list: "relative flex p-1 group",
3054
3054
  indicator: "absolute transition-[translate,width] duration-200",
3055
- trigger: ["group relative inline-flex items-center shrink-0 min-w-0 data-[state=inactive]:text-(--ui-text-muted) hover:data-[state=inactive]:not-disabled:text-(--ui-text) font-medium rounded-[calc(var(--ui-radius)*1.5)] disabled:cursor-not-allowed disabled:opacity-75 focus:outline-hidden", options.theme.transitions && "transition-colors"],
3055
+ trigger: ["group relative inline-flex items-center shrink-0 min-w-0 data-[state=inactive]:text-(--ui-text-muted) hover:data-[state=inactive]:not-disabled:text-(--ui-text) font-medium rounded-[calc(var(--ui-radius)*1.5)] disabled:cursor-not-allowed disabled:opacity-75", options.theme.transitions && "transition-colors"],
3056
3056
  content: "focus:outline-none w-full",
3057
3057
  leadingIcon: "shrink-0",
3058
3058
  leadingAvatar: "shrink-0",
@@ -422,7 +422,7 @@ const breadcrumb = (options) => ({
422
422
 
423
423
  const button = (options) => ({
424
424
  slots: {
425
- base: ["rounded-[calc(var(--ui-radius)*1.5)] font-medium inline-flex items-center focus:outline-hidden disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:opacity-75 aria-disabled:opacity-75", options.theme.transitions && "transition-colors"],
425
+ base: ["rounded-[calc(var(--ui-radius)*1.5)] font-medium inline-flex items-center disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:opacity-75 aria-disabled:opacity-75", options.theme.transitions && "transition-colors"],
426
426
  label: "truncate",
427
427
  leadingIcon: "shrink-0",
428
428
  leadingAvatar: "shrink-0",
@@ -509,23 +509,23 @@ const button = (options) => ({
509
509
  })), ...(options.theme.colors || []).map((color) => ({
510
510
  color,
511
511
  variant: "outline",
512
- class: `ring ring-inset ring-(--ui-${color})/50 text-(--ui-${color}) hover:bg-(--ui-${color})/10 disabled:bg-transparent aria-disabled:bg-transparent dark:disabled:bg-transparent dark:aria-disabled:bg-transparent focus-visible:ring-2 focus-visible:ring-(--ui-${color})`
512
+ class: `ring ring-inset ring-(--ui-${color})/50 text-(--ui-${color}) hover:bg-(--ui-${color})/10 disabled:bg-transparent aria-disabled:bg-transparent dark:disabled:bg-transparent dark:aria-disabled:bg-transparent focus:outline-none focus-visible:ring-2 focus-visible:ring-(--ui-${color})`
513
513
  })), ...(options.theme.colors || []).map((color) => ({
514
514
  color,
515
515
  variant: "soft",
516
- class: `text-(--ui-${color}) bg-(--ui-${color})/10 hover:bg-(--ui-${color})/15 focus-visible:bg-(--ui-${color})/15 disabled:bg-(--ui-${color})/10 aria-disabled:bg-(--ui-${color})/10`
516
+ class: `text-(--ui-${color}) bg-(--ui-${color})/10 hover:bg-(--ui-${color})/15 focus:outline-none focus-visible:bg-(--ui-${color})/15 disabled:bg-(--ui-${color})/10 aria-disabled:bg-(--ui-${color})/10`
517
517
  })), ...(options.theme.colors || []).map((color) => ({
518
518
  color,
519
519
  variant: "subtle",
520
- class: `text-(--ui-${color}) ring ring-inset ring-(--ui-${color})/25 bg-(--ui-${color})/10 hover:bg-(--ui-${color})/15 disabled:bg-(--ui-${color})/10 aria-disabled:bg-(--ui-${color})/10 focus-visible:ring-2 focus-visible:ring-(--ui-${color})`
520
+ class: `text-(--ui-${color}) ring ring-inset ring-(--ui-${color})/25 bg-(--ui-${color})/10 hover:bg-(--ui-${color})/15 disabled:bg-(--ui-${color})/10 aria-disabled:bg-(--ui-${color})/10 focus:outline-none focus-visible:ring-2 focus-visible:ring-(--ui-${color})`
521
521
  })), ...(options.theme.colors || []).map((color) => ({
522
522
  color,
523
523
  variant: "ghost",
524
- class: `text-(--ui-${color}) hover:bg-(--ui-${color})/10 focus-visible:bg-(--ui-${color})/10 disabled:bg-transparent aria-disabled:bg-transparent dark:disabled:bg-transparent dark:aria-disabled:bg-transparent`
524
+ class: `text-(--ui-${color}) hover:bg-(--ui-${color})/10 focus:outline-none focus-visible:bg-(--ui-${color})/10 disabled:bg-transparent aria-disabled:bg-transparent dark:disabled:bg-transparent dark:aria-disabled:bg-transparent`
525
525
  })), ...(options.theme.colors || []).map((color) => ({
526
526
  color,
527
527
  variant: "link",
528
- class: `text-(--ui-${color}) hover:text-(--ui-${color})/75 disabled:text-(--ui-${color}) aria-disabled:text-(--ui-${color}) focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-(--ui-${color})`
528
+ class: `text-(--ui-${color}) hover:text-(--ui-${color})/75 disabled:text-(--ui-${color}) aria-disabled:text-(--ui-${color}) focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-(--ui-${color})`
529
529
  })), {
530
530
  color: "neutral",
531
531
  variant: "solid",
@@ -533,23 +533,23 @@ const button = (options) => ({
533
533
  }, {
534
534
  color: "neutral",
535
535
  variant: "outline",
536
- class: "ring ring-inset ring-(--ui-border-accented) text-(--ui-text) bg-(--ui-bg) hover:bg-(--ui-bg-elevated) disabled:bg-(--ui-bg) aria-disabled:bg-(--ui-bg) focus-visible:ring-2 focus-visible:ring-(--ui-border-inverted)"
536
+ class: "ring ring-inset ring-(--ui-border-accented) text-(--ui-text) bg-(--ui-bg) hover:bg-(--ui-bg-elevated) disabled:bg-(--ui-bg) aria-disabled:bg-(--ui-bg) focus:outline-none focus-visible:ring-2 focus-visible:ring-(--ui-border-inverted)"
537
537
  }, {
538
538
  color: "neutral",
539
539
  variant: "soft",
540
- class: "text-(--ui-text) bg-(--ui-bg-elevated) hover:bg-(--ui-bg-accented)/75 focus-visible:bg-(--ui-bg-accented)/75 disabled:bg-(--ui-bg-elevated) aria-disabled:bg-(--ui-bg-elevated)"
540
+ class: "text-(--ui-text) bg-(--ui-bg-elevated) hover:bg-(--ui-bg-accented)/75 focus:outline-none focus-visible:bg-(--ui-bg-accented)/75 disabled:bg-(--ui-bg-elevated) aria-disabled:bg-(--ui-bg-elevated)"
541
541
  }, {
542
542
  color: "neutral",
543
543
  variant: "subtle",
544
- class: "ring ring-inset ring-(--ui-border-accented) text-(--ui-text) bg-(--ui-bg-elevated) hover:bg-(--ui-bg-accented)/75 disabled:bg-(--ui-bg-elevated) aria-disabled:bg-(--ui-bg-elevated) focus-visible:ring-2 focus-visible:ring-(--ui-border-inverted)"
544
+ class: "ring ring-inset ring-(--ui-border-accented) text-(--ui-text) bg-(--ui-bg-elevated) hover:bg-(--ui-bg-accented)/75 disabled:bg-(--ui-bg-elevated) aria-disabled:bg-(--ui-bg-elevated) focus:outline-none focus-visible:ring-2 focus-visible:ring-(--ui-border-inverted)"
545
545
  }, {
546
546
  color: "neutral",
547
547
  variant: "ghost",
548
- class: "text-(--ui-text) hover:bg-(--ui-bg-elevated) focus-visible:bg-(--ui-bg-elevated) hover:disabled:bg-transparent dark:hover:disabled:bg-transparent hover:aria-disabled:bg-transparent dark:hover:aria-disabled:bg-transparent"
548
+ class: "text-(--ui-text) hover:bg-(--ui-bg-elevated) focus:outline-none focus-visible:bg-(--ui-bg-elevated) hover:disabled:bg-transparent dark:hover:disabled:bg-transparent hover:aria-disabled:bg-transparent dark:hover:aria-disabled:bg-transparent"
549
549
  }, {
550
550
  color: "neutral",
551
551
  variant: "link",
552
- class: "text-(--ui-text-muted) hover:text-(--ui-text) disabled:text-(--ui-text-muted) aria-disabled:text-(--ui-text-muted) focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-(--ui-border-inverted)"
552
+ class: "text-(--ui-text-muted) hover:text-(--ui-text) disabled:text-(--ui-text-muted) aria-disabled:text-(--ui-text-muted) focus:outline-none focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-(--ui-border-inverted)"
553
553
  }, {
554
554
  size: "xs",
555
555
  square: true,
@@ -942,7 +942,7 @@ const commandPalette = (options) => ({
942
942
  });
943
943
 
944
944
  const container = {
945
- base: "max-w-(--ui-container) mx-auto px-4 sm:px-6 lg:px-8"
945
+ base: "w-full max-w-(--ui-container) mx-auto px-4 sm:px-6 lg:px-8"
946
946
  };
947
947
 
948
948
  const contextMenu = (options) => ({
@@ -1758,9 +1758,9 @@ const navigationMenu = (options) => ({
1758
1758
  childLinkDescription: "text-sm text-(--ui-text-muted)",
1759
1759
  separator: "px-2 h-px bg-(--ui-border)",
1760
1760
  viewportWrapper: "absolute top-full left-0 flex w-full",
1761
- viewport: "relative overflow-hidden bg-(--ui-bg) shadow-lg rounded-[calc(var(--ui-radius)*1.5)] ring ring-(--ui-border) h-(--reka-navigation-menu-viewport-height) w-full transition-[width,height,left] duration-200 origin-[top_center] data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in]",
1761
+ viewport: "relative overflow-hidden bg-(--ui-bg) shadow-lg rounded-[calc(var(--ui-radius)*1.5)] ring ring-(--ui-border) h-(--reka-navigation-menu-viewport-height) w-full transition-[width,height,left] duration-200 origin-[top_center] data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] z-[1]",
1762
1762
  content: "absolute top-0 left-0 w-full",
1763
- indicator: "absolute data-[state=visible]:animate-[fade-in_100ms_ease-out] data-[state=hidden]:animate-[fade-out_100ms_ease-in] data-[state=hidden]:opacity-0 bottom-0 z-[1] w-(--reka-navigation-menu-indicator-size) translate-x-(--reka-navigation-menu-indicator-position) flex h-2.5 items-end justify-center overflow-hidden transition-[translate,width] duration-200",
1763
+ indicator: "absolute data-[state=visible]:animate-[fade-in_100ms_ease-out] data-[state=hidden]:animate-[fade-out_100ms_ease-in] data-[state=hidden]:opacity-0 bottom-0 z-[2] w-(--reka-navigation-menu-indicator-size) translate-x-(--reka-navigation-menu-indicator-position) flex h-2.5 items-end justify-center overflow-hidden transition-[translate,width] duration-200",
1764
1764
  arrow: "relative top-[50%] size-2.5 rotate-45 border border-(--ui-border) bg-(--ui-bg) z-[1] rounded-[calc(var(--ui-radius)/2)]"
1765
1765
  },
1766
1766
  variants: {
@@ -2872,7 +2872,7 @@ const stepper = (options) => ({
2872
2872
  const _switch = (options) => ({
2873
2873
  slots: {
2874
2874
  root: "relative flex items-start",
2875
- base: ["inline-flex items-center shrink-0 rounded-full border-2 border-transparent focus-visible:outline-2 focus-visible:outline-offset-2 data-[state=unchecked]:bg-(--ui-bg-accented)", options.theme.transitions && "transition-colors duration-200"],
2875
+ base: ["inline-flex items-center shrink-0 rounded-full border-2 border-transparent focus-visible:outline-2 focus-visible:outline-offset-2 data-[state=unchecked]:bg-(--ui-bg-accented)", options.theme.transitions && "transition-[background] duration-200"],
2876
2876
  container: "flex items-center",
2877
2877
  thumb: "group pointer-events-none rounded-full bg-(--ui-bg) shadow-lg ring-0 transition-transform duration-200 data-[state=unchecked]:translate-x-0 data-[state=unchecked]:rtl:-translate-x-0 flex items-center justify-center",
2878
2878
  icon: ["absolute shrink-0 group-data-[state=unchecked]:text-(--ui-text-dimmed) opacity-0 size-10/12", options.theme.transitions && "transition-[color,opacity] duration-200"],
@@ -3046,7 +3046,7 @@ const tabs = (options) => ({
3046
3046
  root: "flex items-center gap-2",
3047
3047
  list: "relative flex p-1 group",
3048
3048
  indicator: "absolute transition-[translate,width] duration-200",
3049
- trigger: ["group relative inline-flex items-center shrink-0 min-w-0 data-[state=inactive]:text-(--ui-text-muted) hover:data-[state=inactive]:not-disabled:text-(--ui-text) font-medium rounded-[calc(var(--ui-radius)*1.5)] disabled:cursor-not-allowed disabled:opacity-75 focus:outline-hidden", options.theme.transitions && "transition-colors"],
3049
+ trigger: ["group relative inline-flex items-center shrink-0 min-w-0 data-[state=inactive]:text-(--ui-text-muted) hover:data-[state=inactive]:not-disabled:text-(--ui-text) font-medium rounded-[calc(var(--ui-radius)*1.5)] disabled:cursor-not-allowed disabled:opacity-75", options.theme.transitions && "transition-colors"],
3050
3050
  content: "focus:outline-none w-full",
3051
3051
  leadingIcon: "shrink-0",
3052
3052
  leadingAvatar: "shrink-0",
package/dist/types.d.mts CHANGED
@@ -1 +1,7 @@
1
- export { type ModuleOptions, default } from './module.js'
1
+ import type { NuxtModule } from '@nuxt/schema'
2
+
3
+ import type { default as Module } from './module.js'
4
+
5
+ export type ModuleOptions = typeof Module extends NuxtModule<infer O> ? Partial<O> : Record<string, any>
6
+
7
+ export { default } from './module.js'
package/dist/types.d.ts CHANGED
@@ -1 +1,7 @@
1
- export { type ModuleOptions, default } from './module'
1
+ import type { NuxtModule } from '@nuxt/schema'
2
+
3
+ import type { default as Module } from './module'
4
+
5
+ export type ModuleOptions = typeof Module extends NuxtModule<infer O> ? Partial<O> : Record<string, any>
6
+
7
+ export { default } from './module'
package/dist/unplugin.cjs CHANGED
@@ -5,7 +5,7 @@ const pathe = require('pathe');
5
5
  const unplugin = require('unplugin');
6
6
  const defu = require('defu');
7
7
  const tailwind = require('@tailwindcss/vite');
8
- const templates = require('./shared/ui.C6uTSFTI.cjs');
8
+ const templates = require('./shared/ui.BL-XB3u1.cjs');
9
9
  const tinyglobby = require('tinyglobby');
10
10
  const knitwork = require('knitwork');
11
11
  const MagicString = require('magic-string');
@@ -58,4 +58,5 @@ interface NuxtUIOptions extends Omit<ModuleOptions, 'fonts' | 'colorMode'> {
58
58
  declare const runtimeDir: string;
59
59
  declare const NuxtUIPlugin: unplugin.UnpluginInstance<NuxtUIOptions | undefined, boolean>;
60
60
 
61
- export { type NuxtUIOptions, NuxtUIPlugin, runtimeDir };
61
+ export { NuxtUIPlugin, runtimeDir };
62
+ export type { NuxtUIOptions };
@@ -58,4 +58,5 @@ interface NuxtUIOptions extends Omit<ModuleOptions, 'fonts' | 'colorMode'> {
58
58
  declare const runtimeDir: string;
59
59
  declare const NuxtUIPlugin: unplugin.UnpluginInstance<NuxtUIOptions | undefined, boolean>;
60
60
 
61
- export { type NuxtUIOptions, NuxtUIPlugin, runtimeDir };
61
+ export { NuxtUIPlugin, runtimeDir };
62
+ export type { NuxtUIOptions };
@@ -58,4 +58,5 @@ interface NuxtUIOptions extends Omit<ModuleOptions, 'fonts' | 'colorMode'> {
58
58
  declare const runtimeDir: string;
59
59
  declare const NuxtUIPlugin: unplugin.UnpluginInstance<NuxtUIOptions | undefined, boolean>;
60
60
 
61
- export { type NuxtUIOptions, NuxtUIPlugin, runtimeDir };
61
+ export { NuxtUIPlugin, runtimeDir };
62
+ export type { NuxtUIOptions };
package/dist/unplugin.mjs CHANGED
@@ -3,7 +3,7 @@ import { join, normalize } from 'pathe';
3
3
  import { createUnplugin } from 'unplugin';
4
4
  import { defu } from 'defu';
5
5
  import tailwind from '@tailwindcss/vite';
6
- import { g as getTemplates, d as defaultOptions, r as resolveColors, a as getDefaultUiConfig } from './shared/ui.BCaWD5Ek.mjs';
6
+ import { g as getTemplates, d as defaultOptions, r as resolveColors, a as getDefaultUiConfig } from './shared/ui.BkNUP964.mjs';
7
7
  import { globSync } from 'tinyglobby';
8
8
  import { genSafeVariableName } from 'knitwork';
9
9
  import MagicString from 'magic-string';
package/dist/vite.cjs CHANGED
@@ -6,7 +6,7 @@ require('pathe');
6
6
  require('unplugin');
7
7
  require('defu');
8
8
  require('@tailwindcss/vite');
9
- require('./shared/ui.C6uTSFTI.cjs');
9
+ require('./shared/ui.BL-XB3u1.cjs');
10
10
  require('../dist/runtime/utils/index.js');
11
11
  require('scule');
12
12
  require('@nuxt/kit');
package/dist/vite.mjs CHANGED
@@ -4,7 +4,7 @@ import 'pathe';
4
4
  import 'unplugin';
5
5
  import 'defu';
6
6
  import '@tailwindcss/vite';
7
- import './shared/ui.BCaWD5Ek.mjs';
7
+ import './shared/ui.BkNUP964.mjs';
8
8
  import '../dist/runtime/utils/index.js';
9
9
  import 'scule';
10
10
  import '@nuxt/kit';
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@nuxt/ui",
3
3
  "description": "A UI Library for Modern Web Apps, powered by Vue & Tailwind CSS.",
4
- "version": "3.0.1",
5
- "packageManager": "pnpm@10.6.5",
4
+ "version": "3.0.2",
5
+ "packageManager": "pnpm@10.7.0",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "git+https://github.com/nuxt/ui.git"
@@ -63,8 +63,9 @@
63
63
  "build": "nuxt-module-build build",
64
64
  "prepack": "pnpm build",
65
65
  "dev": "DEV=true nuxi dev playground",
66
- "dev:vue": "DEV=true vite playground-vue",
67
66
  "dev:build": "nuxi build playground",
67
+ "dev:vue": "DEV=true vite playground-vue",
68
+ "dev:vue:build": "vite build playground-vue",
68
69
  "dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare playground && nuxi prepare docs && vite build playground-vue",
69
70
  "docs": "DEV=true nuxi dev docs",
70
71
  "docs:build": "NODE_OPTIONS='--max-old-space-size=8192' nuxi build docs",
@@ -74,7 +75,6 @@
74
75
  "typecheck": "vue-tsc --noEmit && nuxi typecheck playground && nuxi typecheck docs && cd playground-vue && vue-tsc --noEmit",
75
76
  "test": "vitest",
76
77
  "test:vue": "vitest -c vitest.vue.config.ts",
77
- "test:vue:build": "vite build playground-vue",
78
78
  "release": "release-it"
79
79
  },
80
80
  "dependencies": {
@@ -86,10 +86,11 @@
86
86
  "@nuxt/kit": "^3.16.1",
87
87
  "@nuxt/schema": "^3.16.1",
88
88
  "@nuxtjs/color-mode": "^3.5.2",
89
- "@tailwindcss/postcss": "^4.0.15",
90
- "@tailwindcss/vite": "^4.0.15",
89
+ "@standard-schema/spec": "^1.0.0",
90
+ "@tailwindcss/postcss": "^4.0.17",
91
+ "@tailwindcss/vite": "^4.0.17",
91
92
  "@tanstack/vue-table": "^8.21.2",
92
- "@unhead/vue": "^2.0.0-rc.13",
93
+ "@unhead/vue": "^2.0.2",
93
94
  "@vueuse/core": "^13.0.0",
94
95
  "@vueuse/integrations": "^13.0.0",
95
96
  "colortranslator": "^4.1.0",
@@ -103,18 +104,19 @@
103
104
  "embla-carousel-vue": "^8.5.2",
104
105
  "embla-carousel-wheel-gestures": "^8.0.1",
105
106
  "fuse.js": "^7.1.0",
107
+ "hookable": "^5.5.3",
106
108
  "knitwork": "^1.2.0",
107
109
  "magic-string": "^0.30.17",
108
110
  "mlly": "^1.7.4",
109
111
  "ohash": "^2.0.11",
110
112
  "pathe": "^2.0.3",
111
- "reka-ui": "^2.1.0",
113
+ "reka-ui": "^2.1.1",
112
114
  "scule": "^1.3.0",
113
115
  "tailwind-variants": "^1.0.0",
114
- "tailwindcss": "^4.0.15",
116
+ "tailwindcss": "^4.0.17",
115
117
  "tinyglobby": "^0.2.12",
116
- "unplugin": "^2.2.1",
117
- "unplugin-auto-import": "^19.1.1",
118
+ "unplugin": "^2.2.2",
119
+ "unplugin-auto-import": "^19.1.2",
118
120
  "unplugin-vue-components": "^28.4.1",
119
121
  "vaul-vue": "^0.4.1",
120
122
  "vue": "^3.5.13",
@@ -125,32 +127,47 @@
125
127
  "@nuxt/module-builder": "^0.8.4",
126
128
  "@nuxt/test-utils": "^3.17.2",
127
129
  "@release-it/conventional-changelog": "^10.0.0",
128
- "@standard-schema/spec": "^1.0.0",
129
130
  "@vue/test-utils": "^2.4.6",
130
131
  "embla-carousel": "^8.5.2",
131
- "eslint": "^9.22.0",
132
+ "eslint": "^9.23.0",
132
133
  "happy-dom": "^17.4.4",
133
- "joi": "^17.13.3",
134
134
  "nuxt": "^3.16.1",
135
135
  "release-it": "^18.1.2",
136
- "superstruct": "^2.0.2",
137
- "valibot": "^1.0.0",
138
136
  "vitest": "^3.0.9",
139
137
  "vitest-environment-nuxt": "^1.0.1",
140
- "vue-tsc": "^2.2.0",
141
- "yup": "^1.6.1",
142
- "zod": "^3.24.2"
138
+ "vue-tsc": "^2.2.0"
143
139
  },
144
140
  "peerDependencies": {
145
- "typescript": "^5.6.3"
141
+ "joi": "^17.13.0",
142
+ "superstruct": "^2.0.0",
143
+ "typescript": "^5.6.3",
144
+ "valibot": "^1.0.0",
145
+ "yup": "^1.6.0",
146
+ "zod": "^3.24.0"
147
+ },
148
+ "peerDependenciesMeta": {
149
+ "joi": {
150
+ "optional": true
151
+ },
152
+ "valibot": {
153
+ "optional": true
154
+ },
155
+ "superstruct": {
156
+ "optional": true
157
+ },
158
+ "yup": {
159
+ "optional": true
160
+ },
161
+ "zod": {
162
+ "optional": true
163
+ }
146
164
  },
147
165
  "resolutions": {
148
166
  "@nuxt/ui": "workspace:*",
149
167
  "chokidar": "3.6.0",
150
168
  "debug": "4.3.7",
151
169
  "rollup": "4.34.9",
152
- "typescript": "5.6.3",
153
- "unplugin": "^2.2.1",
170
+ "unplugin": "^2.2.2",
154
171
  "vue-tsc": "2.2.0"
155
172
  },
156
173
  "pnpm": {