Compare commits

...

1632 Commits
v1.2.9 ... main

Author SHA1 Message Date
Benjamin Canac
b830f63c89 chore(release): v2.21.1 2025-03-08 13:08:41 +01:00
renovate[bot]
71dac5e5b0 chore(deps): update devdependency eslint to ^9.22.0 (dev) (#3488)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-08 12:30:03 +01:00
Benjamin Canac
7b81bfa1ae docs(installation): use pkg.pr.new 2025-03-08 12:20:28 +01:00
Benjamin Canac
bf1c9e7c94 chore(github): use pkg.pr.new 2025-03-08 12:03:10 +01:00
Corey Shuman
23d9b51a58 fix(Table): revert #2600 to fix excessive column data slot re-renders (#3375) 2025-03-08 11:53:46 +01:00
renovate[bot]
2e6ba71e89 chore(deps): update nuxt framework to ^3.16.0 (dev) (#3483)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-07 18:49:41 +01:00
renovate[bot]
ea4007c62d chore(deps): update all non-major dependencies (dev) (#3472)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-07 14:42:35 +01:00
renovate[bot]
69d6997210 chore(deps): update all non-major dependencies (dev) (#3451)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-05 19:47:07 +01:00
renovate[bot]
6565472570 chore(deps): update dependency ohash to v2 (dev) (#3453)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
Co-authored-by: Sébastien Chopin <atinux@gmail.com>
2025-03-05 15:39:34 +01:00
renovate[bot]
ee408e522e chore(deps): lock file maintenance (dev) (#3434)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-03 12:05:17 +01:00
renovate[bot]
461e6173a9 chore(deps): update all non-major dependencies (dev) (#3422)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-03 11:50:12 +01:00
renovate[bot]
b824f0682e chore(deps): update all non-major dependencies (dev) (#3410)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-28 15:38:34 +01:00
renovate[bot]
7ce6af4870 chore(deps): lock file maintenance (dev) (#3387)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-26 12:13:06 +01:00
renovate[bot]
b4cc9a5ab4 chore(deps): update all non-major dependencies (dev) (#3366)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-26 11:56:16 +01:00
renovate[bot]
06eceff68b chore(deps): update all non-major dependencies (dev) (#3345)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-19 11:54:43 +01:00
renovate[bot]
40f3e3b486 chore(deps): lock file maintenance (dev) (#3335)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-17 11:00:23 +01:00
renovate[bot]
a5458765dc chore(deps): update all non-major dependencies (dev) (#3325)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-17 10:45:06 +01:00
Benjamin Canac
ac574b239b chore(deps): update happy-dom 2025-02-16 16:25:30 +01:00
Léonard PLOTON
feb716c941 feat(SelectMenu): add inputTargetForm prop to handle input validation (#3107) 2025-02-14 15:30:37 +01:00
Vann
15da5cf71e docs(input): add example for maxlength (#3110) 2025-02-14 15:30:01 +01:00
Benjamin Canac
125a28190b fix(Alert/Notification): allow description ui override
Resolves #2554
2025-02-14 14:25:59 +01:00
renovate[bot]
569fa7619b chore(deps): update pnpm to v10 (dev) (#3232)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-14 12:29:33 +01:00
renovate[bot]
0ff2448655 chore(deps): update all non-major dependencies (dev) (#3295)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-14 11:35:31 +01:00
renovate[bot]
a6c3daa363 chore(deps): update all non-major dependencies (dev) (#3260)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-11 21:20:39 +01:00
Nexos Creator
e16eeee8c1 docs(theming/shortcuts): improve (#3259)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2025-02-06 21:18:52 +01:00
renovate[bot]
53ac62eae5 chore(deps): update dependency @headlessui/tailwindcss to ^0.2.2 (dev) (#3252)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-06 17:12:02 +01:00
Gerben Mulder
9c36d37b84 feat(Form): add standard schema support (#2880) 2025-02-05 09:27:51 +01:00
renovate[bot]
0462edb84e chore(deps): update devdependency vitest to ^3.0.5 (dev) (#3230)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-04 14:59:35 +01:00
renovate[bot]
91e77bb09c chore(deps): lock file maintenance (dev) (#3228)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-03 10:59:26 +01:00
renovate[bot]
84e35d1a79 chore(deps): update all non-major dependencies (dev) (#3204)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-03 10:41:42 +01:00
renovate[bot]
28f29e98b8 chore(deps): update devdependency @nuxt/eslint-config to v1 (dev) (#3211)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-02 20:51:11 +01:00
renovate[bot]
81d7ca0cd1 chore(deps): update nuxt framework to ^3.15.4 (dev) (#3197)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-29 12:50:03 +01:00
renovate[bot]
89d3766835 chore(deps): lock file maintenance (dev) (#3182)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 17:52:23 +01:00
renovate[bot]
9104213d35 chore(deps): update nuxt framework to ^3.15.3 (dev) (#3175)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 17:37:59 +01:00
renovate[bot]
d699558e38 chore(deps): update all non-major dependencies (dev) (#3184)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 17:19:25 +01:00
Benjamin Canac
7cbc3913d9 chore(renovate): run pnpm dedupe post update 2025-01-25 12:22:45 +01:00
Benjamin Canac
d2ceeadae7 feat(module): add colorMode option
Resolves #3143
2025-01-24 12:30:31 +01:00
renovate[bot]
c7f64b64c7 chore(deps): lock file maintenance (dev) (#3144)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 15:53:54 +01:00
renovate[bot]
72ab47e77d chore(deps): update all non-major dependencies (dev) (#3088)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 14:37:17 +01:00
renovate[bot]
5b187d6fbd chore(deps): update devdependency vitest to v3 (dev) (#3116)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-20 18:29:36 +01:00
Benjamin Canac
f9e61fc422 chore(deps): dedupe 2025-01-20 18:11:15 +01:00
renovate[bot]
1291e95e1c chore(deps): update nuxt framework to ^3.15.2 (dev) (#3073)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-20 10:57:02 +01:00
Benjamin Canac
f943203770 docs(deps): update @nuxt/ui-pro 2025-01-14 11:51:14 +01:00
Benjamin Canac
f2d387622a chore(release): v2.21.0 2025-01-14 11:20:58 +01:00
Benjamin Canac
b02dc4d5b7 docs(deps): add missing @iconify-json/lucide 2025-01-14 11:03:53 +01:00
Benjamin Canac
6dddadc370 chore(deps): update @nuxtjs/tailwindcss 2025-01-14 11:01:46 +01:00
renovate[bot]
d89ecce472 chore(deps): lock file maintenance (dev) (#3080)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-13 11:02:11 +01:00
renovate[bot]
efb74668bd chore(deps): update all non-major dependencies (dev) (#3064)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-13 10:51:46 +01:00
Benjamin Canac
e065734d58 chore(deps): revert vue-tsc update 2025-01-09 15:45:18 +01:00
renovate[bot]
0c5bea5f11 chore(deps): update all non-major dependencies (dev) (#3038)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-09 15:16:42 +01:00
renovate[bot]
f6d4dd3b88 chore(deps): update devdependency @release-it/conventional-changelog to v10 (dev) (#3045)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-08 16:18:33 +01:00
kyyy
d9d4f1915a fix(Table): remove @select event on checkbox (#3042)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2025-01-08 11:23:26 +01:00
Benjamin Canac
c70d29702e chore(deps): revert typescript upgrade 2025-01-08 11:03:45 +01:00
Benjamin Canac
a0d8935f64 chore(deps): refresh lock 2025-01-06 17:33:54 +01:00
Benjamin Canac
04aefcf81f chore(deps): update 2025-01-06 17:29:49 +01:00
Benjamin Canac
e68b9795be chore(deps): remove unimport resolution 2025-01-06 17:24:30 +01:00
Benjamin Canac
b8c8718560 chore(deps): update typescript 2025-01-06 17:23:57 +01:00
Benjamin Canac
2a33a8171d chore(deps): dedupe 2025-01-06 17:21:04 +01:00
renovate[bot]
23cfc046e7 chore(deps): update dependency pathe to v2 (dev) (#3016)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 12:47:24 +01:00
renovate[bot]
e68cb53ab6 chore(deps): update devdependency release-it to v18 (dev) (#3026)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 12:46:44 +01:00
renovate[bot]
109b857472 chore(deps): update nuxt framework to ^3.15.1 (dev) (#3020)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 10:24:37 +01:00
Stijn Slats
ea15e21cdc feat(module): handle tailwindMerge config from app.config (#2902)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-12-26 11:11:02 +01:00
renovate[bot]
b7153cd879 chore(deps): update nuxt framework to ^3.15.0 (dev) (#2969)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-12-25 14:08:44 +01:00
renovate[bot]
5047d448ed chore(deps): update all non-major dependencies (dev) (#2960)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-23 19:07:37 +01:00
renovate[bot]
a0fee0fa73 chore(deps): update dependency nuxt-og-image to v4 (dev) (#2748)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-23 18:37:13 +01:00
renovate[bot]
b762d29220 chore(deps): lock file maintenance (dev) (#2957)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-23 10:58:54 +01:00
renovate[bot]
98c19be71a chore(deps): update all non-major dependencies (dev) (#2918)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-23 10:46:14 +01:00
Inesh Bose
8cf9f27d53 fix(tailwind): use mjs template (#2945) 2024-12-21 14:33:36 +01:00
Benjamin Canac
c0455c831f chore(deps): remove unbuild explicit dependency 2024-12-18 17:00:50 +01:00
renovate[bot]
0360ea7a3c chore(deps): update dependency tailwindcss to ^3.4.17 (dev) (#2927)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 09:50:13 +01:00
renovate[bot]
711539f3ce chore(deps): lock file maintenance (dev) (#2913)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 10:56:07 +01:00
renovate[bot]
80d6d89467 chore(deps): update all non-major dependencies (dev) (#2864)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 10:21:53 +01:00
kyyy
d573fb636f fix(Table): v-model causing first column missing (#2890) 2024-12-13 14:43:17 +01:00
Benjamin Canac
1d08d319a7 chore(deps): set unimport resolution 2024-12-12 14:45:41 +01:00
Benjamin Canac
b654c93e93 chore(release): v2.20.0 2024-12-09 12:30:42 +01:00
renovate[bot]
b7e04db645 chore(deps): lock file maintenance (dev) (#2862)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 10:18:14 +01:00
renovate[bot]
e6034a2765 chore(deps): update pnpm to v9.15.0 (dev) (#2847)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 10:17:34 +01:00
renovate[bot]
a8c38224c6 chore(deps): update devdependency @nuxt/test-utils to ^3.15.1 (dev) (#2838)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-07 00:55:49 +01:00
renovate[bot]
a9ef6406ea chore(deps): update all non-major dependencies (dev) (#2819)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-06 12:59:41 +01:00
renovate[bot]
96e846ddee chore(deps): update dependency tailwindcss to ^3.4.16 (dev) (#2830)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-04 13:41:45 +01:00
Benjamin Canac
16dbc1b536 docs(app): remove banner 2024-12-03 10:54:25 +01:00
Benjamin Canac
c6b2ae45e5 docs(Header): hide color mode button on mobile 2024-12-03 10:54:19 +01:00
renovate[bot]
547c657ee7 chore(deps): lock file maintenance (dev) (#2817)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-02 11:18:30 +01:00
renovate[bot]
b16b434041 chore(deps): update all non-major dependencies (dev) (#2756)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-12-02 10:56:20 +01:00
Benjamin Canac
fb12323304 docs(Header): move dropdown out of link 2024-11-30 11:48:03 +01:00
Benjamin Canac
0a404615ff docs(Header): replace badge by dropdown 2024-11-30 11:33:09 +01:00
renovate[bot]
cbf0f22efd chore(deps): update vueuse monorepo to v12 (dev) (major) (#2783)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-27 12:11:47 +01:00
Sandro Circi
4cde571e38 fix(Link): exactQuery prop type (#2781) 2024-11-27 09:47:39 +01:00
Benjamin Canac
023497d144 chore(README): update 2024-11-26 15:18:27 +01:00
Benjamin Canac
56d4ca3b74 docs(Header): update GitHub link 2024-11-26 15:09:10 +01:00
Harsh Patel
11b8c3d9db feat(Notification): add pauseTimeoutOnHover prop (#2661) 2024-11-25 22:09:40 +01:00
Hans Knöchel
419a24f703 feat(Accordion): add close event (#2750) 2024-11-25 14:58:30 +01:00
renovate[bot]
854bb81295 chore(deps): lock file maintenance (dev) (#2751)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-11-25 12:54:17 +01:00
Benjamin Canac
bf8e3954a4 docs(Banner): update for black friday 2024-11-25 12:26:31 +01:00
renovate[bot]
637ec4d27b chore(deps): update all non-major dependencies (dev) (#2704)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-25 11:27:00 +01:00
kyyy
f3632ddee5 fix(Form)!: resolve async validation in yup & issue directly mutate state (#2701) 2024-11-23 19:29:54 +01:00
Jevin
dbd2aed20b docs(table): columns select is obscured (#2714) 2024-11-21 11:19:37 +01:00
Giorgio Boa
51c8b8e3e5 fix(components): replace as const with correct type in config (#2652)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-11-20 10:54:37 +01:00
renovate[bot]
588a908358 chore(deps): update all non-major dependencies (dev) (#2693)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-20 10:21:06 +01:00
renovate[bot]
d692a81b1e chore(deps): update nuxt framework to ^3.14.1592 (dev) (#2699)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-20 09:52:12 +01:00
Daniel Roe
ec98d415b4 docs: remove local module from list (#2690) 2024-11-19 18:24:40 +01:00
renovate[bot]
c80d2e6c12 chore(deps): lock file maintenance (dev) (#2671)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-19 11:40:14 +01:00
renovate[bot]
ce61a2b6db chore(deps): update all non-major dependencies (dev) (#2641)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-19 10:50:58 +01:00
Benjamin Canac
eee5bb9939 chore(deps): set chokidar resolution 2024-11-18 09:35:35 +01:00
Benjamin Canac
d3804157ec docs(input): correct loading behavior
Resolves nuxt/ui#2669
2024-11-18 09:35:23 +01:00
Sandro Circi
03e24f4583 feat(Link): allow partial query match for activeClass (#2663) 2024-11-17 12:15:22 +01:00
jcahal
d0e626c551 docs(table): correct spelling of contextmenu right-clickable (#2653) 2024-11-15 17:32:37 +01:00
renovate[bot]
670d8bfbac chore(deps): update dependency tailwindcss to ^3.4.15 (dev) (#2648)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-15 09:47:28 +01:00
renovate[bot]
64b703df8d chore(deps): update dependency @nuxt/icon to ^1.7.5 (dev) (#2638)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-14 16:45:31 +01:00
Julien Blatecky
976b03f241 fix(types): improve DeepPartial type for App Config (#2621) 2024-11-14 10:33:26 +01:00
renovate[bot]
35e3b8c720 chore(deps): update all non-major dependencies (dev) (#2628)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-14 10:16:36 +01:00
Benjamin Canac
07ef771b17 fix(Carousel): wrong ui type with strategy 2024-11-13 21:02:00 +01:00
Maxime Pauvert
5c75b5c490 docs(Banner): wrong aria label (#2632) 2024-11-13 17:53:50 +01:00
kyyy
53df9d9a8c feat(InputMenu/SelectMenu): add support for dot notation in by prop (#2607) 2024-11-13 12:25:31 +01:00
Malik-Jouda
0d1a76e3c6 feat(Badge): handle icon prop (#2594)
Co-authored-by: malik jouda <m.jouda@approved.tech>
2024-11-12 16:16:20 +01:00
renovate[bot]
b2ed4662af chore(deps): update devdependency @release-it/conventional-changelog to ^9.0.3 (dev) (#2604)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-12 16:07:30 +01:00
Benjamin Canac
423c48879d chore(github): update issue templates 2024-11-12 13:11:09 +01:00
kyyy
acecff40ec fix(Form): use parsed value from joi instead of original state (#2587) 2024-11-11 19:29:46 +01:00
renovate[bot]
1fd5fac295 chore(deps): lock file maintenance (dev) (#2595)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-11 18:45:14 +01:00
kyyy
b23f2decfc fix(Table): data outdated when rows change (#2600) 2024-11-11 18:44:49 +01:00
kyyy
7154254ac2 fix(InputMenu/SelectMenu): use by prop to compare objects & support dot notation in value-attribute (#2566) 2024-11-10 19:44:20 +01:00
Benjamin Canac
49f85d55c5 chore(deps): set nuxt resolution to 3.13.2
Causes some `EMFILE: too many open files` errors
2024-11-10 18:19:48 +01:00
kyyy
97037864b3 fix(Table): prevent onClick while blocking element (#2592) 2024-11-10 16:59:34 +01:00
renovate[bot]
0abccabc26 chore(deps): update dependency @nuxt/icon to ^1.7.2 (dev) (#2591)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-10 14:45:02 +01:00
kyyy
ac323c4ccc feat(Table): add custom @select:all event (#2581) 2024-11-09 18:48:52 +01:00
kyyy
d4e408cfd8 fix(Notification): element renders even when no notification is present (#2561) 2024-11-09 11:24:13 +01:00
renovate[bot]
f3bf69c233 chore(deps): update dependency @nuxt/icon to ^1.7.0 (dev) (#2575)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-08 18:03:26 +01:00
kyyy
d6daf466ac feat(Table): allow dynamically render checkbox (#2549)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-11-08 17:24:41 +01:00
kyyy
6e66990372 fix(Table): missing type on props loadingState (#2551) 2024-11-08 09:46:00 +01:00
Benjamin Canac
56e28d80db docs: update figma links 2024-11-07 18:21:51 +01:00
renovate[bot]
24e61ccc8b chore(deps): update nuxt framework to ^3.14.159 (dev) (#2546)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-06 19:15:32 +01:00
Norman Feiß
c9e6256e7f feat(Table): add contextmenu handling to table rows (#2283) 2024-11-06 19:12:51 +01:00
Malik-Jouda
ce955d24f1 fix(date-picker): undefined dayIndex (#2545) 2024-11-06 12:25:27 +01:00
Snack
bf580863af fix(AvatarGroup/ButtonGroup/MeterGroup): allow deeply partial ui config (#2542) 2024-11-06 10:27:08 +01:00
Benjamin Canac
f38a217032 docs(deps): update @nuxt/ui-pro 2024-11-05 21:19:14 +01:00
Benjamin Canac
717a027bad docs: remove old badges 2024-11-05 21:18:09 +01:00
Benjamin Canac
159acd664c chore(release): v2.19.2 2024-11-05 19:36:54 +01:00
Benjamin Canac
212f7df35b fix(Button): put back target override 2024-11-05 19:26:37 +01:00
Benjamin Canac
d0d37a06d2 chore(release): v2.19.1 2024-11-05 18:06:03 +01:00
Benjamin Canac
cb6f5f2d71 fix(InputMenu/SelectMenu): regex breaks build 2024-11-05 17:57:49 +01:00
Benjamin Canac
22da1a839a docs(date-picker): improve component
Resolves #2082
2024-11-05 17:35:49 +01:00
Benjamin Canac
c5f76a25db chore(release): v2.19.0 2024-11-05 16:56:42 +01:00
kyyy
ceecb60c3b feat(Form): apply transformations (#2460) 2024-11-05 16:13:25 +01:00
CJBoy
23971efdb0 fix(module): missing types in ui config (#2467) 2024-11-05 16:08:54 +01:00
Ersan Karimi
1a94b55caa fix(InputMenu/SelectMenu): prevent unnecessary updates when modelValue is unchanged (#2507) 2024-11-05 16:08:36 +01:00
offich
c71fdc8795 feat(Pagination): improve slot props (#2522) 2024-11-05 16:06:49 +01:00
renovate[bot]
6844f7bbd9 chore(deps): update all non-major dependencies (dev) (#2525)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-05 16:06:36 +01:00
kyyy
1acd01a440 feat(Table): improve expanded row (#2485) 2024-11-05 15:52:10 +01:00
Benjamin Canac
0b2a3989a2 chore(deps): dedupe 2024-11-05 15:18:24 +01:00
renovate[bot]
5f8d645231 chore(deps): update nuxt framework to ^3.14.0 (dev) (#2526)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-04 19:39:53 +01:00
renovate[bot]
2cc838ea8b chore(deps): lock file maintenance (dev) (#2519)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-04 14:20:15 +01:00
Benjamin Canac
2e41e3f238 docs(table): fix expandable example responsive 2024-11-04 14:14:59 +01:00
renovate[bot]
7cb8218ed5 chore(deps): update devdependency eslint to ^9.14.0 (dev) (#2514)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-04 10:28:55 +01:00
Eder Soares
ddf67a060b feat(InputMenu): allows to customize labels (#2295) 2024-10-31 15:29:08 +01:00
Eder Soares
54e713d31a feat(SelectMenu): allows to customize labels (#2266) 2024-10-31 15:17:08 +01:00
renovate[bot]
09e232ed05 chore(deps): update dependency @nuxt/ui-pro to v1.4.4-28839576.e8eba4f (dev) (#2504)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-31 14:19:17 +01:00
renovate[bot]
1d455b092d chore(deps): update all non-major dependencies to ^11.2.0 (dev) (#2496)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-31 12:34:00 +01:00
Benjamin Canac
13957ba206 chore(deps): remove vue-tsc resolutions 2024-10-31 11:32:01 +01:00
kyyy
ff1806143c fix(InputMenu/SelectMenu): allow access nested object in option-attribute (#2465)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-10-30 17:33:06 +01:00
Nestor Vera
b6ed1c59ff fix(RadioGroup): rendering empty slots (#2456) 2024-10-30 12:42:56 +01:00
renovate[bot]
424efe783e chore(deps): lock file maintenance (dev) (#2473)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-30 12:08:56 +01:00
renovate[bot]
c3cd3c9940 chore(deps): update all non-major dependencies (dev) (#2453)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-10-30 11:51:25 +01:00
Benjamin Canac
8ab4a14394 fix(Button): wrong to type
Resolves #1253
2024-10-30 11:16:04 +01:00
Mateus Bellei
25378df1d8 fix(Accordion): improve items type (#2487) 2024-10-29 16:38:59 +01:00
kyyy
070d2f89b6 fix(Table): indeterminate checkbox with pagination (#2439)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-10-24 12:41:45 +02:00
renovate[bot]
8e413f0681 chore(deps): update dependency @nuxt/ui-pro to v1.4.4-28829363.bb3c738 (dev) (#2444)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-24 12:32:52 +02:00
Benjamin Canac
03ac697167 docs(deps): remove eslint dependency 2024-10-24 11:16:52 +02:00
renovate[bot]
c6a9b499e3 chore(deps): update dependency eslint to v9 (dev) (#2446)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-24 11:14:38 +02:00
Benjamin Canac
cae4f0c4a8 chore(deps): migrate to eslint 9 (#2443) 2024-10-24 10:30:37 +02:00
renovate[bot]
b29fcd2650 chore(deps): update all non-major dependencies (dev) (#2411)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-23 21:50:02 +02:00
Benjamin Canac
3671b2fbbe chore(renovate): ignore resolutions 2024-10-23 21:15:17 +02:00
renovate[bot]
2577eb2780 chore(deps): update devdependency @nuxt/test-utils to ^3.14.4 (dev) (#2422)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-21 18:21:53 +02:00
renovate[bot]
3d1be39221 chore(deps): lock file maintenance (dev) (#2427)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-21 18:13:04 +02:00
Benjamin Canac
49e04389fa chore(deps): set @nuxt/content & @nuxtjs/mdc resolutions 2024-10-21 11:37:48 +02:00
Benjamin Canac
ee364318d1 docs: use parseMarkdown instead of transformContent 2024-10-21 11:25:41 +02:00
Benjamin Canac
b14afbebe9 docs(prettier): update usage 2024-10-21 10:55:10 +02:00
Malik-Jouda
4bf81be364 fix(HorizontalNavigation/VerticalNavigation): handle badge in RTL mode (#2420) 2024-10-19 19:36:00 +02:00
Benjamin Canac
7846ca35b5 fix(Divider): default type from app config
Resolves nuxt/ui#2398
2024-10-19 14:19:17 +02:00
rizkyyy
b72d3434e9 fix(Table): handle dot nation with by prop (#2413)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-10-19 12:29:06 +02:00
Malik-Jouda
20fb46a3ba fix(Progress): handle carousel and carousel-inverse animations in RTL mode (#2400)
Co-authored-by: malik jouda <m.jouda@approved.tech>
2024-10-17 22:28:19 +02:00
rizkyyy
1b7e36cf70 fix(Table): checkbox not checked while using props by (#2401) 2024-10-17 22:21:19 +02:00
renovate[bot]
3768cd9803 chore(deps): update all non-major dependencies (dev) (#2394)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-17 22:15:05 +02:00
Halil Durak
3d0bba2e83 chore(module): call only a single await to install tailwind (#2397) 2024-10-17 14:46:49 +02:00
Benjamin Canac
494e73932b docs(deps): update @nuxt/ui-pro 2024-10-17 12:31:12 +02:00
renovate[bot]
38200aa392 chore(deps): update all non-major dependencies (dev) (#2381)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-10-15 17:24:07 +02:00
renovate[bot]
19b01f43f1 chore(deps): update dependency tailwindcss to ^3.4.14 (dev) (#2387)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-15 16:51:35 +02:00
Benjamin Canac
c36964b5ea fix(Table): export TableRow and TableColumn types
Resolves nuxt/ui#2373
2024-10-15 11:05:08 +02:00
renovate[bot]
4de8f2e2f7 chore(deps): update all non-major dependencies (dev) (#2380)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-14 17:25:41 +02:00
Benjamin Canac
3cf19ea5af fix(Tabs): allow aria-label on items
Related to nuxt/ui#1934
2024-10-14 16:18:33 +02:00
Gerben Mulder
9dd7e615e9 feat(Input/Textarea): nullify model modifier (#2309) 2024-10-14 12:45:15 +02:00
renovate[bot]
33b9a445c4 chore(deps): update devdependency @release-it/conventional-changelog to v9 (dev) (#2367)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-14 11:05:06 +02:00
renovate[bot]
46cec7ecd1 chore(deps): update all non-major dependencies (dev) (#2351)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-14 11:00:32 +02:00
renovate[bot]
f8e2c94375 chore(deps): lock file maintenance (dev) (#2375)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-14 10:44:13 +02:00
Benjamin Canac
71e0492179 chore(github): add version select 2024-10-12 19:12:14 +02:00
rizkyyy
3cda6c6478 feat(Form): add superstruct validation (#2357) 2024-10-11 11:02:51 +02:00
Benjamin Canac
428ee44fc0 docs(app): add v3-alpha banner 2024-10-10 18:08:39 +02:00
Benjamin Canac
c68ba76fd0 fix(InputMenu/SelectMenu): escape regexp before search
Resolves nuxt/ui#2308
2024-10-10 16:12:42 +02:00
Benjamin Canac
dd0d0551be docs(notification): improve position override example
nuxt/ui#2128
2024-10-10 11:45:19 +02:00
renovate[bot]
3efcf3026a chore(deps): update dependency @nuxt/ui-pro to ^1.4.4 (dev) (#2348)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-09 17:48:41 +02:00
Benjamin Canac
912ec15d08 chore(release): v2.18.7 2024-10-09 15:58:09 +02:00
EdmundChaplin
5cf24fa6e7 fix(Carousel): pages calculation (#2345)
Co-authored-by: Edmund Chaplin <edmund.chaplin@zaros.co.uk>
2024-10-09 15:54:38 +02:00
renovate[bot]
6895b5d443 chore(deps): update all non-major dependencies (dev) (#2343)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-09 15:51:16 +02:00
renovate[bot]
18db7c99a9 chore(deps): update all non-major dependencies (dev) (#2334)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-08 12:16:37 +02:00
renovate[bot]
ede7d7c2b7 chore(deps): update pnpm to v9.12.1 (dev) (#2327)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-07 16:54:09 +02:00
renovate[bot]
7cbe1983f7 chore(deps): update devdependency @nuxt/test-utils to ^3.14.3 (dev) (#2325)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-07 15:41:26 +02:00
renovate[bot]
773665050b chore(deps): update all non-major dependencies (dev) (#2310)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-07 15:19:04 +02:00
renovate[bot]
d581bd9ad0 chore(deps): lock file maintenance (dev) (#2315)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-07 12:24:25 +02:00
OrbisK
a6d106377e chore(github): add separate v3 issue template (#2307) 2024-10-06 13:58:35 +02:00
renovate[bot]
6dbd0e0932 chore(deps): update all non-major dependencies (dev) (#2289)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-05 23:14:15 +02:00
Asoka Wotulo
33467ad171 docs(form): specify component ref type (#2296) 2024-10-03 16:43:27 +02:00
Abolfazl
5ed5c57d0d fix(Tooltip): hide when text prop & slot are empty (#2232) 2024-10-02 11:51:26 +02:00
Malik-Jouda
db5e5c4907 fix(Carousel): arrows & indicators are broken in RTL (#2251) 2024-10-02 11:16:00 +02:00
Gerben Mulder
474accbefb feat(forms): allow null as initial value (#2275)
Co-authored-by: Romain Hamel <rom.hml@gmail.com>
2024-10-01 19:55:03 +02:00
Daniel Qolami
4ae9654062 fix(Dropdown/Popover): conflict in toggle for touch devices (#2272) 2024-10-01 15:00:58 +02:00
renovate[bot]
847ee4591a chore(deps): lock file maintenance (dev) (#2278)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-30 09:33:34 +02:00
renovate[bot]
f270c7b76e chore(deps): update all non-major dependencies (dev) (#2276)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-30 09:24:14 +02:00
Benjamin Canac
0aa3909e71 fix(Link): allow title field
Resolves #1439
2024-09-27 12:50:18 +02:00
Benjamin Canac
d324dee4f1 chore(renovate): update 2024-09-26 15:12:12 +02:00
renovate[bot]
29591e275c chore(deps): update all non-major dependencies (dev) (#2252)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-26 15:06:22 +02:00
Benjamin Canac
a9339ccf2a docs: remove /dev switch 2024-09-25 12:18:02 +02:00
Benjamin Canac
39b85f11d8 docs(deps): update @nuxt/ui-pro 2024-09-23 12:44:26 +02:00
Benjamin Canac
0430b34ca7 chore(package): put back docs typecheck 2024-09-23 12:35:23 +02:00
Benjamin Canac
345f396110 chore(release): v2.18.6 2024-09-23 12:29:24 +02:00
Benjamin Canac
1b4c178813 chore(package): disable docs typecheck to release 2024-09-23 12:20:10 +02:00
Benjamin Canac
820e93fd1e docs: types with latest vue 2024-09-23 11:56:37 +02:00
Benjamin Canac
417a6aeb37 chore(Table): types with latest vue 2024-09-23 11:56:27 +02:00
Benjamin Canac
32ba17f8e2 chore(deps): refresh lock 2024-09-23 11:46:00 +02:00
renovate[bot]
60c79453ef chore(deps): update all non-major dependencies (dev) (#2229)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 11:42:58 +02:00
Benjamin Canac
b728fc9cdb chore(useUI): accept partial ui config 2024-09-23 11:35:19 +02:00
Larry Williamson
e52a7bc01b docs(table): add additional custom sort details (#2234) 2024-09-23 10:58:15 +02:00
Daniel Roe
eecf4f7ed8 fix(components): accept partial config in ui prop (#2235) 2024-09-23 10:55:44 +02:00
Malik-Jouda
ea05414930 fix(Tabs): handle icon margin in RTL mode (#2233) 2024-09-23 10:54:53 +02:00
anthonyfranc
803c20ad92 fix(Modal/Slideover): bind transition class to TransitionChild for Vue 3.5 (#2227)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-09-20 16:03:46 +02:00
Romain Hamel
0a054a52b6 fix(useFormField): optional property access (#2226) 2024-09-20 15:23:59 +02:00
Alex
56118c4a79 fix(Table): colspan with expand (#2217) 2024-09-20 14:33:14 +02:00
Malik-Jouda
28ad5cf982 fix(SelectMenu): wrong placeholder color with multiple (#2218) 2024-09-20 14:24:25 +02:00
renovate[bot]
7835050cf4 chore(deps): update pnpm to v9.11.0 (dev) (#2225)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-20 14:17:33 +02:00
Benjamin Canac
98728f12ee chore(release): v2.18.5 2024-09-18 10:49:21 +02:00
renovate[bot]
ee908602ea chore(deps): update dependency tailwindcss to ^3.4.12 (dev) (#2214)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-18 10:34:42 +02:00
renovate[bot]
5d6b2d4ce1 chore(deps): update dependency date-fns to ^4.1.0 (dev) (#2212)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-17 16:48:56 +02:00
Benjamin Canac
3bfb659a65 chore(package): add missing description 2024-09-17 12:34:03 +02:00
renovate[bot]
439cadd629 chore(deps): update dependency date-fns to v4 (dev) (#2205)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-16 18:34:12 +02:00
Benjamin Canac
57d5203e6a docs(ComponentCard): put back selects after nuxt-component-meta update
Resolves nuxt/ui#2197
2024-09-16 15:26:22 +02:00
renovate[bot]
1488e20992 chore(deps): update all non-major dependencies to ^11.1.0 (dev) (#2206)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-16 15:15:36 +02:00
Dave Stewart
7f50c7031f fix(module): allow CSS variables in tailwind colors (#2014) 2024-09-16 15:15:04 +02:00
Hussam Mousa
68124de510 fix(Table): select all rows reactivity issue (#2200) 2024-09-16 12:54:43 +02:00
renovate[bot]
bae7f3f393 chore(deps): update nuxt framework to v3.13.2 (dev) (#2119)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-09-16 12:49:01 +02:00
renovate[bot]
5b16ccbce6 chore(deps): update all non-major dependencies (dev) (#2193)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-16 11:25:30 +02:00
Malik-Jouda
d22526c0c1 fix(Slideover): bind shadow class to panel (#2201) 2024-09-16 11:25:02 +02:00
Romain Hamel
67c6a74ed1 feat(Form): add errors slot prop (#2188) 2024-09-12 11:14:32 +02:00
Malik-Jouda
bf32baaab0 fix(Slideover): bind rounded class to panel (#2187)
Co-authored-by: malik jouda <m.jouda@approved.tech>
2024-09-12 10:42:22 +02:00
renovate[bot]
a0d94fabdf chore(deps): update all non-major dependencies (dev) (#2183)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-12 10:39:21 +02:00
Bernardo Oliveira
e8ea84a573 fix(Button): button link not showing disabled classes (#2185) 2024-09-11 18:00:45 +02:00
renovate[bot]
0274febbe7 chore(deps): update all non-major dependencies (dev) (#2175)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-11 16:39:40 +02:00
Benjamin Canac
af4df8a2c0 chore(renovate): update 2024-09-11 14:12:00 +02:00
Neil Richter
c850f85aaa fix(Pagination): use links on prev and next button (#2179) 2024-09-11 14:07:25 +02:00
Neil Richter
730cb4953e docs(modal): clarify file names and UModals purpose (#2178) 2024-09-11 14:07:15 +02:00
Benjamin Canac
b01f88fc47 docs(ComponentProps): remove log 2024-09-11 14:04:18 +02:00
Benjamin Canac
400c170d7b chore(renovate): update 2024-09-10 17:53:13 +02:00
Benjamin Canac
c99bd732fd chore(renovate): ignore deps only on dev branch 2024-09-10 17:45:28 +02:00
Daniel Roe
ead904fd2f fix(module): augment @nuxt/schema rather than nuxt/schema (#2171)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-09-10 17:40:48 +02:00
Benjamin Canac
3920dbc393 chore(renovate): add v3 label for v3 branch 2024-09-09 18:20:43 +02:00
renovate[bot]
9e7212287d chore(deps): update all non-major dependencies (dev) (#2160)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-09 18:13:20 +02:00
Benjamin Canac
686bede78b docs(deps): update nuxt-component-meta 2024-09-09 16:03:03 +02:00
Romain Hamel
7aec42ca15 fix(FormGroup): remove id when used with RadioGroup (#2152) 2024-09-06 18:59:17 +02:00
Emmanuel Ferdman
8d79eea19b fix(README): update license link (#2154)
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
2024-09-06 18:54:24 +02:00
Benjamin Canac
c7becccdfb chore(renovate): ignore happy-dom 2024-09-06 15:29:29 +02:00
Benjamin Canac
91e3c756a6 chore(package): remove engines 2024-09-06 15:18:15 +02:00
renovate[bot]
3036253b40 chore(deps): update dependency @tailwindcss/forms to ^0.5.9 (dev) (#2118)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-06 11:59:19 +02:00
Alex Liu
8210936f22 fix(Textarea): resolve row count calculation errors caused by scrollbar (#2040)
Co-authored-by: Romain Hamel <rom.hml@gmail.com>
2024-09-06 11:56:27 +02:00
Vann
b1f691f28c fix(Table): checkbox can emit the @select event (#2072) 2024-09-06 09:46:29 +02:00
Benjamin Canac
e495bbda94 chore(renovate): add v3 branch 2024-09-05 16:49:37 +02:00
renovate[bot]
8b4726d6d7 chore(deps): update all non-major dependencies (#2108)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-05 16:21:05 +02:00
Jonatan Wackström
82c4926c09 fix(Tabs): recalculate marker if items change (#2101) 2024-09-03 10:52:18 +02:00
Selemondev
1282a5f6c0 fix(Carousel): remove trailing space in next button icon (#2088)
Co-authored-by: selemondev-triply <selemon@triply.co>
2024-09-03 10:51:40 +02:00
renovate[bot]
5754ec565d chore(deps): update all non-major dependencies (#2079)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-09-03 10:50:26 +02:00
Ezra Ashenafi
82313e862c fix(Input): avoid binding value when type is file (#2047) 2024-09-03 10:49:24 +02:00
sam
0527f8db58 docs(table): use status instead of deprecated pending in useFetch and useAsyncData (#2084)
Co-authored-by: Samuel Belo <samuel.belo@devoteam.com>
2024-09-03 10:30:09 +02:00
renovate[bot]
f745550f45 chore(deps): update all non-major dependencies (#2067)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-08-22 23:49:03 +02:00
renovate[bot]
f5a490d98b chore(deps): update nuxt framework to ^3.13.0 (#2076)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-22 23:24:24 +02:00
kicaj
5abfc34f18 docs(radio-group): improve config section (#2046) 2024-08-22 11:13:04 +02:00
Inesh Bose
e4ba4f7c72 fix(module): consider user tailwind configPath for module as string (#2074) 2024-08-22 11:04:52 +02:00
Benjamin Canac
cff3671c2b chore(renovate): enable lockfile maintenance 2024-08-20 17:05:15 +02:00
Benjamin Canac
44e97da472 chore(renovate): ignore eslint dep 2024-08-20 12:41:34 +02:00
Benjamin Canac
79d42dd97b chore(deps): update @vueuse/* and fuse.js 2024-08-20 12:41:17 +02:00
renovate[bot]
a894a2f099 chore(deps): update devdependency @nuxt/test-utils to ^3.14.1 (#2038)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-20 12:25:47 +02:00
Benjamin Canac
b1e6d2294b docs(Footer): add link to /pro/terms 2024-08-20 11:58:16 +02:00
renovate[bot]
9ea724ea82 chore(deps): update all non-major dependencies (#2025)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-20 10:50:42 +02:00
Daniel Roe
d0d79e8a17 chore(deps): use latest versions of color-mode + router (#2056) 2024-08-16 16:36:18 +02:00
Benjamin Canac
8d9b89dec7 chore(github): put back labels in issue templates 2024-08-07 15:35:46 +02:00
renovate[bot]
c9fd1a2c7a chore(deps): update all non-major dependencies (#1997)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-07 10:23:47 +02:00
Benjamin Canac
c27124ab91 chore(renovate): ignore @nuxt/eslint-config 2024-08-06 17:40:48 +02:00
Benjamin Canac
d6658209b6 chore(release): v2.18.4 2024-08-05 14:35:54 +02:00
Hash Brown
9c04969022 fix(Tabs): use nextTick before marker calc (#2020) 2024-08-05 11:09:27 +02:00
Benjamin Canac
606c7b6567 docs: import $ui from useNuxtApp 2024-08-04 21:50:38 +02:00
Benjamin Canac
7e37668940 fix(module): suffix types imports with /index
Resolves #2018
2024-08-04 21:41:55 +02:00
Romain Hamel
4d61936e7e fix(Form): submit event data (#2012) 2024-08-04 09:49:56 +02:00
Yu Zhuohao
8ac9ca4978 fix(module): reduce css bundle size by fixing safelist regex (#2005)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-08-02 19:02:39 +02:00
Romain Hamel
3485092edb fix(useFormGroup): app config default input size (#2011) 2024-08-02 18:03:11 +02:00
Dave Stewart
1cc7e2a306 fix(module): handle nested colors from ui config (#2008) 2024-08-02 14:22:22 +02:00
Benjamin Canac
3411b89191 chore(renovate): remove @nuxt/module-builder and vue-tsc from ignore 2024-07-30 12:51:31 +02:00
Benjamin Canac
1b869dc1fb chore(release): v2.18.3 2024-07-30 12:36:44 +02:00
renovate[bot]
4ae6e31bd9 chore(deps): update devdependency @nuxt/test-utils to ^3.14.0 (#1989)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-30 12:27:13 +02:00
Benjamin Canac
69f605fa72 fix(Link): define rel as any 2024-07-30 12:26:39 +02:00
Benjamin Canac
93ddf1d60b fix(types): only use .ts for index 2024-07-30 11:14:43 +02:00
renovate[bot]
03c5820f5d chore(deps): update all non-major dependencies (#1975)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-30 11:03:34 +02:00
Benjamin Canac
c88bb8c56b chore(release): v2.18.2 2024-07-25 17:43:46 +02:00
Benjamin Canac
aaabf61c01 chore(deps): refresh lock 2024-07-25 16:29:16 +02:00
Benjamin Canac
4fd1be2892 fix(Tabs): add missing UIcon import 2024-07-25 15:10:51 +02:00
Benjamin Canac
e60911010a chore(release): v2.18.1 2024-07-25 14:25:56 +02:00
Benjamin Canac
ea721a3705 fix(components): use relative imports 2024-07-25 12:47:58 +02:00
Benjamin Canac
4614aca70e docs(deps): update @nuxt/ui-pro 2024-07-25 12:47:58 +02:00
Benjamin Canac
ec2c1162dd docs(slideover): clean example 2024-07-25 12:47:58 +02:00
Benjamin Canac
64c38cb35e chore(types): use (...args: any[]) => void instead of Function 2024-07-25 12:47:58 +02:00
Benjamin Canac
503885a5fe chore(deps): remove vue-tsc resolution 2024-07-25 12:42:55 +02:00
Benjamin Canac
635b0f41e2 chore(release): v2.18.0 2024-07-25 10:44:46 +02:00
Benjamin Canac
5db18c0056 fix(Accordion): truncate buttons
Resolves #1909
2024-07-23 16:23:14 +02:00
Benjamin Canac
c3122f776d feat(Checkbox/Radio/RadioGroup): add help slot
Resolves #1957
2024-07-23 16:16:57 +02:00
Maxime Pauvert
b264ad2ebd feat(CommandPalette): handle static groups (#1458)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-07-23 16:05:20 +02:00
Benjamin Canac
f374b14dba docs: update badges 2024-07-23 15:46:14 +02:00
Everton
7155318029 feat(Table): expand row (#1036)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-07-23 15:43:39 +02:00
Benjamin Canac
c39c770a70 chore(Table): columns types 2024-07-23 14:55:06 +02:00
Cardona Simon
d18477def5 feat(RadioGroup): add selected to label slot props (#1587) 2024-07-23 14:54:18 +02:00
Alexander Trost
748e49175d feat(Table): handle rowClass property in columns (#1632)
Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2024-07-23 14:44:33 +02:00
chenying
f74f1df6ca fix(Carousel): remove mix-blend-overlay on indicators (#1714)
Co-authored-by: chenying <chenying@addcn.com>
2024-07-23 14:39:16 +02:00
Benjamin Canac
d2d37e4093 playground(nuxt.config): add compatibilityDate 2024-07-23 14:36:58 +02:00
Benjamin Canac
b57676c1a5 docs(nuxt.config): add compatibilityDate 2024-07-23 14:36:31 +02:00
Abel Derderian
e8eb3941ad feat(Tabs): handle icon in items (#1798)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-07-23 14:36:03 +02:00
Benjamin Canac
839bf72c61 chore(deps): remove typescript 2024-07-23 14:19:30 +02:00
Benjamin Canac
fcf46d7171 chore(CommandPalette): improve fuse.js import types .ts file 2024-07-23 14:17:58 +02:00
Benjamin Canac
8c531615ef chore(types): rename .d.ts to .ts 2024-07-23 14:08:57 +02:00
Benjamin Canac
51e6cb8417 chore(deps): remove @nuxt/module-builder resolution 2024-07-23 14:08:37 +02:00
Benjamin Canac
2443fd70eb docs: typecheck 2024-07-23 13:22:25 +02:00
Benjamin Canac
4974280d82 docs(deps): update @nuxt/ui-pro 2024-07-23 12:14:07 +02:00
Benjamin Canac
b7d90f78b8 chore(deps): update vue-tsc resolution 2024-07-23 12:03:51 +02:00
Benjamin Canac
b2e0566c16 docs: typecheck 2024-07-23 11:51:02 +02:00
Thiago Petherson
64e8a87073 docs(notification): improve example (#1973) 2024-07-23 11:07:02 +02:00
Benjamin Canac
720c44dd5e fix(Link): allow ariaLabel to be picked
Resolves #1934
2024-07-22 12:24:09 +02:00
Matej Černý
6b216cab1b feat(SelectMenu): add selected to label / leading / trailing slots props (#1349)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-07-22 12:12:32 +02:00
Benjamin Canac
82c8717fbf chore(deps): dedupe 2024-07-22 11:15:06 +02:00
renovate[bot]
d1c80861a1 chore(deps): update all non-major dependencies (#1969)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-21 15:54:10 +02:00
renovate[bot]
2ac31c0173 chore(deps): update nuxt framework to ^3.12.4 (#1971)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-21 12:16:26 +02:00
renovate[bot]
77f0156b43 chore(deps): update dependency @octokit/rest to v21 (#1894)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-18 13:51:55 +02:00
Vincent Ratier
7e974b55d7 feat(SelectMenu): handle function in showCreateOptionWhen prop (#1853)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-07-18 13:51:01 +02:00
Benjamin Canac
6aaf12b9af chore(github): update stale workflow 2024-07-18 10:52:30 +02:00
Benjamin Canac
4b397c0f7e chore(github): add stale workflow 2024-07-17 14:58:49 +02:00
renovate[bot]
80b2a60718 chore(deps): update all non-major dependencies (#1967)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-17 14:37:48 +02:00
Benjamin Canac
6691311782 chore(github): update issue templates 2024-07-17 14:36:36 +02:00
Benjamin Canac
2c55fb6336 fix(Alert/Notification): missing margin on description
Resolves #1959
2024-07-16 17:10:09 +02:00
Benjamin Canac
e2881d3801 fix(InputMenu/SelectMenu): prevent double filter with async search
Resolves #1966
2024-07-16 15:10:37 +02:00
renovate[bot]
46e9b128da chore(deps): update all non-major dependencies (#1756)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-07-16 14:45:13 +02:00
Benjamin Canac
53003fcd07 fix(Breadcrumb): use rotate on rtl icon 2024-07-10 17:48:42 +02:00
Benjamin Canac
2bb8360223 docs(deps): add nuxt-component-meta resolution 2024-07-10 17:48:42 +02:00
Juho Rutila
bce94db9fd feat(Skeleton): add as prop (#1955) 2024-07-10 13:58:01 +02:00
Adrien Autricque
cf482581f4 docs(form): typo (#1953)
Co-authored-by: Adrien AUTRICQUE <adrien.autricque@exotec.com>
2024-07-10 11:19:29 +02:00
Benjamin Canac
19cab36d73 chore(deps): update 2024-07-09 14:25:30 +02:00
Benjamin Canac
df2b5e2419 chore(renovate): ignore @nuxt/module-builder 2024-07-09 14:20:41 +02:00
Benjamin Canac
1334ec59b1 chore(renovate): ignore vue-tsc 2024-07-09 12:35:19 +02:00
Dave Stewart
3f8ea5dbde feat(module): improve app config types autocomplete (#1870)
Co-authored-by: Dave Stewart <dev@davestewart.co.uk>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-07-09 12:23:57 +02:00
renovate[bot]
c0ef69d314 chore(deps): update devdependency vitest to v2 (#1951)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-09 11:08:40 +02:00
Rihan
567045211a chore(deps): update pnpm/action-setup action to v4 (#1942)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-07-09 11:08:11 +02:00
Benjamin Canac
9e12e9519e docs: update headlessui.com broken urls 2024-07-05 16:14:06 +02:00
Benjamin Canac
67e6a4a565 chore(renovate): ignore valibot30 / valibot31 deps 2024-07-03 19:29:31 +02:00
renovate[bot]
2dcf70cf3c chore(deps): update nuxt framework to ^3.12.3 (#1938)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-03 18:07:50 +02:00
Adrien Figueiredo
8eca5a0d62 fix(RadioGroup): allow boolean in modelValue prop (#1913)
Co-authored-by: Adrien Figueiredo <>
2024-07-01 11:02:36 +02:00
Daniel Roe
3e9c96bb7a docs: add site.url (#1924) 2024-06-28 15:24:00 +02:00
Christoph Biering
cb36094dbe chore(deps): update @nuxtjs/color-mode to v3.4.2 (#1922)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-06-27 12:31:34 +02:00
Fabian Hiller
839a6029e7 chore(deps): update valibot to v0.33.0 (#1914) 2024-06-27 11:57:34 +02:00
Benjamin Canac
4c0a3d8dc0 docs(icon): put back component page 2024-06-25 11:44:51 +02:00
Benjamin Canac
c904604c23 feat(Icon)!: migrate from @egoist/tailwindcss-icons to new @nuxt/icon (#1789) 2024-06-24 12:46:41 +02:00
Benjamin Canac
bfa2e707d8 chore(deps): update pnpm 2024-06-24 12:20:26 +02:00
Benjamin Canac
f16291d290 docs(deps): update @nuxt/content 2024-06-24 11:37:34 +02:00
Neil Richter
abd13f1f8f fix(Progress): pass down attrs to <progress> to improve accessibility (#1881) 2024-06-24 10:57:01 +02:00
John Tanzer
0a47a2b5f2 chore(eslint): add no-trailing-spaces rule (#1906) 2024-06-24 10:55:50 +02:00
Neil Richter
99c52e5008 fix(FormGroup): don't check for error slot so help slot can render (#1888) 2024-06-24 10:54:14 +02:00
Benjamin Canac
4d5f250902 fix(InputMenu/SelectMenu): invalid label with value-attribute and async search
Resolves #1780
2024-06-19 12:19:15 +02:00
Romain Hamel
6b6b03d59f fix(ButtonGroup/FormGroup): pass default sizes to children (#1875) 2024-06-19 12:08:13 +02:00
Benjamin Canac
4ad904f83d docs(home): improve contributors animation 2024-06-18 22:13:10 +02:00
Benjamin Canac
c28ef0abb8 docs(home): improve community section (#1891) 2024-06-18 17:29:52 +02:00
Benjamin Canac
9c3ed4b78f chore(github): remove pnpm version with packageManger 2024-06-18 17:27:58 +02:00
muri
a1c116de7b docs(form): improve validation references (#1877) 2024-06-18 14:02:51 +02:00
Benjamin Canac
755c4d32b3 docs(deps): update @nuxt/ui-pro 2024-06-18 13:11:24 +02:00
Benjamin Canac
05c7836387 docs(deps): update nuxt-og-image to v3 2024-06-18 11:55:28 +02:00
renovate[bot]
e9d801c52a chore(deps): update nuxt framework to ^3.12.2 (#1884)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-18 10:22:47 +02:00
Daniel Roe
7211e3a1eb chore: indicate compatibility with new v4 major (#1879)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-06-15 10:35:32 +02:00
Benjamin Canac
89d18f8f1d docs(deps): update @nuxt/ui-pro 2024-06-13 12:58:37 +02:00
Benjamin Canac
1e7470f531 docs: update badges 2024-06-13 11:29:39 +02:00
Benjamin Canac
b6736d1efd chore(release): v2.17.0 2024-06-13 11:24:50 +02:00
Benjamin Canac
f6e695ffc8 chore(deps): update 2024-06-13 11:15:33 +02:00
Benjamin Canac
e8898d15a6 fix(Alert/Notification): use div for description
Resolves #1551
2024-06-13 11:15:27 +02:00
Thibault Vlacich
f65aefb706 fix(Alert): base style not applied on icon (#1859)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-06-12 10:25:18 +02:00
Benjamin Canac
9b9ccdb59e fix(SelectMenu): wrong placeholder color when modelValue is an empty string
Resolves #1862
2024-06-12 10:11:16 +02:00
renovate[bot]
688232215d chore(deps): update nuxt framework to ^3.12.1 (#1861)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-11 17:13:37 +02:00
Benjamin Canac
ebfb835033 fix(Breadcrumb): allow aria-current to be overrideable
Related to #1856
2024-06-11 12:27:44 +02:00
renovate[bot]
838d6c832f chore(deps): update nuxt framework to ^3.12.0 (#1860)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-11 12:15:16 +02:00
eduardo-faith
e7c2f7856c fix(Input): hide wrapper when type is hidden (#1797)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-06-11 11:58:49 +02:00
Fabian Hiller
1d5bd89d58 feat(Form): update and migrate valibot to v0.31.0 (#1848)
Co-authored-by: Romain Hamel <romain@boilr.io>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-06-11 11:40:44 +02:00
Benjamin Canac
6c124bb1ac fix(Select): remove defaults for value and text
Resolves #1702
2024-06-06 10:51:34 +02:00
Benjamin Canac
49174b7628 chore(deps): update @​egoist/tailwindcss-icons
Resolves #1840
2024-06-06 10:44:50 +02:00
Vitta
50ad14f9df feat(Slideover): handle top and bottom side (#1834) 2024-06-05 10:30:45 +02:00
Vitta
6e2678d1d8 feat(Tabs): add content prop to avoid the render of the HTML markup (#1831)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-06-04 10:23:17 +02:00
Khaled Oghli
831c560a96 docs(slideover): add close button in some examples for mobile (#1827)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-06-03 15:30:45 +02:00
Romain Hamel
06990beabf fix(Form): maintain other errors when using setErrors with a path (#1818)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-06-03 13:59:26 +02:00
networdai
3ebff4d133 feat(Notification): allow ring customization with {color} (#1830)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-06-03 11:45:36 +02:00
Khaled Oghli
d66cfa9d7d docs(table): ensure scroll and pagination visibility on mobile (#1828)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-06-03 11:44:46 +02:00
Benjamin Canac
75c0d9e31f chore(deps): update 2024-06-03 11:40:39 +02:00
Benjamin Canac
6033872ef8 chore(deps): pin vue-tsc 2024-06-03 11:04:18 +02:00
Benjamin Canac
838cb7212a docs(alert): remove missing example 2024-06-03 11:00:42 +02:00
John Tanz
c8dd71c4f5 feat(Alert): add actions slot (#1785)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-05-28 12:29:10 +02:00
Mukund Shah
4f0d00f7a6 fix(Carousel): prevent mouse click when dragging (#1781) 2024-05-15 12:18:51 +02:00
Benjamin Canac
3b975634e8 chore(package): define packageManager 2024-05-14 15:13:11 +02:00
Benjamin Canac
249bbd49dc fix(CommandPalette): hide empty-state when null
Resolves #1787
2024-05-14 14:57:19 +02:00
Milos Dimitrijevic
3c1602af37 docs(form): fix link to /form-group (#1777) 2024-05-10 16:29:22 +02:00
Benjamin Canac
e1ca6e0cde chore(deps): update @headlessui/vue
Resolves #1760
2024-05-10 11:41:53 +02:00
Benjamin Canac
3b3bd16afe docs(deps): update @nuxt/ui-pro 2024-05-10 11:25:45 +02:00
Benjamin Canac
fab9cbebd8 docs(context-menu): add missing @vueuse/core imports
Resolves #1762
2024-05-10 11:10:00 +02:00
Benjamin Canac
581b470cc7 fix(Link): typo in exactHash type
Resolves #1767
2024-05-09 11:38:39 +02:00
Benjamin Canac
24d30cd1f3 chore(deps): pin @headlessui/vue to 1.7.20
Resolves #1760
2024-05-09 11:38:10 +02:00
Benjamin Canac
cc52bffccf chore(release): v2.16.0 2024-05-07 14:19:28 +02:00
renovate[bot]
eb2601d4da chore(deps): update all non-major dependencies (#1752)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-05-07 14:16:58 +02:00
renovate[bot]
f726b5f094 chore(deps): update all non-major dependencies (#1719)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-05-06 17:00:48 +02:00
guylil
37ce62acb9 docs(FormGroup): incorrect icon in description slot example (#1749) 2024-05-06 12:22:48 +02:00
Romain Hamel
f97b728968 docs(Form): clarify when the @error event is triggered (#1747) 2024-05-06 10:39:05 +02:00
chenying
7e6ba78681 feat(InputMenu/SelectMenu): allow lazy search (#1705)
Co-authored-by: chenying <chenying@addcn.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-04-26 15:43:29 +02:00
Benjamin Canac
ed5c74dc17 fix(Input)!: redesign file type without absolute positioning (#1712) 2024-04-25 17:12:06 +02:00
Benjamin Canac
bb3ea40218 chore(deps): remove resolutions + update 2024-04-25 13:00:16 +02:00
Inesh Bose
821e15b696 feat(module): HMR support with @nuxtjs/tailwindcss (#1665)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-04-24 12:20:10 +02:00
Eugen Istoc
bd3fa8658f fix(Slideover): export and clean types (#1692)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-04-22 11:13:34 +02:00
Moritz
82d619b2a7 feat(useToast): allow clearing all notifications (#1695) 2024-04-22 11:01:48 +02:00
Neil Richter
8d9d9736ba feat(Pagination): allow using links for pagination buttons (#1682) 2024-04-18 12:38:48 +02:00
Neil Richter
3fca66857d feat(Table): allow providing a <caption> (#1680) 2024-04-16 16:39:52 +02:00
renovate[bot]
4853520eb3 chore(deps): update devdependency @nuxt/test-utils to ^3.12.1 (#1677)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 11:11:35 +02:00
Benjamin Canac
5481dab53d fix(Breadcrumb): pass click event to ULink 2024-04-16 10:36:45 +02:00
Neil Richter
6f60fa9a98 fix(Table): provide aria-sort for sortable table headings (#1675) 2024-04-15 18:13:01 +02:00
Neil Richter
cba9ad78db fix(Notification): update timer when timeout prop changes (#1673) 2024-04-15 16:38:07 +02:00
Damian Głowala
bbc8f4e6ac chore(README): update installation section (#1659) 2024-04-15 10:28:51 +02:00
Neil Richter
ed3a3babdb feat(useToast): allow updating an existing notification (#1668) 2024-04-15 10:27:39 +02:00
renovate[bot]
4415d4111e chore(deps): update devdependency @nuxt/ui-pro to v1.1.0-28548740.d20325b (#1658)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-12 19:12:53 +02:00
Benjamin Canac
c75c0152ce chore(release): v2.15.2 2024-04-12 14:23:50 +02:00
renovate[bot]
993bb89e02 chore(deps): update all non-major dependencies (#1652)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-12 14:16:34 +02:00
Benjamin Canac
9f01145bc6 fix(Breadcrumb): missing min-w-0 on wrapper to truncate
Resolves #1650
2024-04-11 21:52:07 +02:00
renovate[bot]
c1d9e0ecd4 chore(deps): update all non-major dependencies (#1625)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-10 22:46:08 +02:00
gangan
f610c96a0b docs: use nuxi init -t ui command in installation (#1648) 2024-04-10 18:56:35 +02:00
Alex Thorwaldson
8b546600db feat(Table): add checkbox ui config (#1409)
Co-authored-by: gangan <44604921+shinGangan@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-10 17:54:16 +02:00
Daniel Roe
f08471ccda docs: use new nuxi module add command in installation (#1606)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-04-10 17:52:34 +02:00
Neil Richter
d19d7077e4 docs(modal): provide an example to bind event listeners (#1611) 2024-04-10 17:15:39 +02:00
Eugen Istoc
07a4d13c0f fix(Slideover): wait for transition to complete to reset state (#1624) 2024-04-05 19:31:29 +02:00
renovate[bot]
9e90d1768b chore(deps): update devdependency @nuxt/eslint-config to ^0.3.0 (#1623)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-05 17:51:40 +02:00
Neil Richter
91e5002050 feat(Accordion): add unmount prop to allow lazy mounting for heavy components (#1590) 2024-04-05 14:11:31 +02:00
renovate[bot]
eb68d0d453 chore(deps): update devdependency @nuxt/ui-pro to v1.1.0-28538540.a353e68 (#1622)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-05 14:08:08 +02:00
Neil Richter
2bdb5d2b42 fix(Modal): wait for transition to complete to reset state (#1618) 2024-04-05 14:07:51 +02:00
renovate[bot]
b62cd7905d chore(deps): update devdependency @nuxt/ui-pro to v1.1.0-28538504.d4106a4 (#1620)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-05 12:44:03 +02:00
Eugen Istoc
58faa1053b fix(Slideover): remove dynamic component when closing (#1615)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-04-05 12:43:50 +02:00
Kshitij Subedi
e909884d03 fix(Carousel): next and prev buttons disabled (#1619) 2024-04-05 12:20:50 +02:00
renovate[bot]
5e84fd0570 chore(deps): update devdependency @nuxtjs/plausible to v1 (#1610)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-05 12:18:39 +02:00
Benjamin Canac
98c0f567fc docs: replace i-heroicons-credit-card with i-heroicons-ticket 2024-04-05 11:57:47 +02:00
renovate[bot]
379d20fc3c chore(deps): update all non-major dependencies (#1602)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-05 11:28:22 +02:00
renovate[bot]
c12f94653e chore(deps): update nuxt framework to ^3.11.2 (#1613)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-05 11:06:04 +02:00
vahid bagheri
2392b4aa40 fix(Popover/Dropdown): prevent unintended closure on touchstart in mobile devices (#1609) 2024-04-04 00:18:40 +02:00
Benjamin Canac
36055ba978 chore(release): v2.15.1 2024-04-02 13:08:11 +02:00
renovate[bot]
73541f2d4f chore(deps): update all non-major dependencies (#1562)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-02 12:02:39 +02:00
Benjamin Canac
03030ab1db docs(nuxt.config): remove @nuxtjs/google-fonts and @nuxtjs/fontaine config 2024-03-29 10:57:31 +01:00
Cardona Simon
c98d6e31c0 fix(Checkbox): @change event value (#1580)
Co-authored-by: Romain Hamel <rom.hml@gmail.com>
2024-03-28 21:29:29 +01:00
Benjamin Canac
49b73aa024 feat(Avatar): add as prop to use NuxtImg underneath
Resolves #1577
2024-03-28 11:04:20 +01:00
Mahdi Shah Abbasian
bd8b737642 fix(Divider): add w-full only on horizontal wrapper (#1565) 2024-03-27 13:57:09 +01:00
Neil Richter
dd8a122933 docs(installation): update regex to match @nuxt/eslint rules (#1572) 2024-03-27 13:55:23 +01:00
Qin Guan
0b799e4300 docs(icon): add link to theming icons section (#1571)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-03-27 13:54:38 +01:00
Benjamin Canac
8517897c34 fix(Popover): missing mouseenter event on container
Resolves #1564
2024-03-27 12:04:49 +01:00
Benjamin Canac
72889535e7 fix(Dropdown): missing mouseenter event on container 2024-03-27 12:04:31 +01:00
Romain Hamel
878f7078a2 fix(Input/SelectMenu): handle file type and change events (#1570) 2024-03-27 11:57:31 +01:00
Benjamin Canac
bd8118c124 docs(deps): update @nuxt/ui-pro 2024-03-26 14:18:21 +01:00
Benjamin Canac
3d5ffe76ef chore(release): v2.15.0 2024-03-26 13:53:25 +01:00
chenying
c49f8999d3 fix(SelectMenu): handle Boolean type as model value (#1550)
Co-authored-by: chenying <chenying@addcn.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-03-26 12:15:25 +01:00
Daniel Roe
cc62e345eb fix: opt in to import.meta.* properties (#1561)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-03-25 17:57:58 +01:00
renovate[bot]
ae58d5c2b9 chore(deps): update all non-major dependencies (#1547)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-25 16:01:48 +01:00
Romain Hamel
92e736213b fix(forms)!: normalize input emits (#1560) 2024-03-25 15:36:36 +01:00
Benjamin Canac
7d6b5c358f docs(Slideover): missing New badge 2024-03-25 12:45:26 +01:00
Benjamin Canac
f854746bd8 docs(alert): missing New badges 2024-03-25 12:45:18 +01:00
Mohammad Amin Mokhtari
e1e05af0ba feat(Toggle): add loading prop (#1546)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-03-25 12:43:15 +01:00
Neil Richter
224ec3c1fb feat(Accordion): emit open event with index (#1559) 2024-03-25 12:27:06 +01:00
chenying
c3ac4badbf docs(DatePicker): add is-required prop (#1549)
Co-authored-by: chenying <chenying@addcn.com>
2024-03-25 12:09:19 +01:00
renovate[bot]
398c5d5dcd chore(deps): update all non-major dependencies (#1543)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-21 18:16:48 +01:00
Eugen Istoc
e7697595c8 feat(Slideover): open programmatically (#1465)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-03-21 17:48:35 +01:00
Stanley
b0ecac563c fix(SelectMenu): filteredOptions might be undefined (#1541)
Co-authored-by: Sedana Yoga <55230513+sedanayoga@users.noreply.github.com>
2024-03-20 10:55:13 +01:00
renovate[bot]
5cb45c52c2 chore(deps): update all non-major dependencies (#1537)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-19 18:05:32 +01:00
renovate[bot]
0453af65fa chore(deps): update devdependency ufo to ^1.5.2 (#1533)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-19 11:12:19 +01:00
renovate[bot]
53cfea40a4 chore(deps): update devdependency happy-dom to v14 (#1536)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-19 10:35:59 +01:00
renovate[bot]
386e51d159 chore(deps): update nuxt framework to ^3.11.1 (#1535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-19 10:28:55 +01:00
renovate[bot]
eb8eec09c5 chore(deps): update nuxt framework (#1528)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-18 11:45:57 +01:00
renovate[bot]
4a4ddbd5cb chore(deps): update all non-major dependencies (#1504)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-18 11:24:21 +01:00
Daniel Öhling
a563d8fed4 fix(Popover/Dropdown): use @touchstart.passive instead of @touchstart.prevent (#1520) 2024-03-17 18:48:00 +01:00
Conner Blanton
7658211537 fix(ButtonGroup): nested group elements (#1530) 2024-03-17 18:47:10 +01:00
Noah Gregory
e736ecafff fix(Carousel): add tab-based ARIA roles (#1516) 2024-03-14 10:32:39 +01:00
Alex Thorwaldson
cee3e126a4 feat(Alert): add icon & avatar slots (#1401)
Co-authored-by: gangan <44604921+shinGangan@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-13 21:49:57 +01:00
Benjamin Canac
f4a48f6016 fix(InputMenu): trigger alignement on safari
Resolves #1505
2024-03-12 22:39:14 +01:00
Benjamin Canac
877b22c294 docs: consistent icons and avatars across examples 2024-03-12 22:20:44 +01:00
renovate[bot]
8cc8e45b4f chore(deps): update all non-major dependencies (#1490)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-10 11:51:11 +01:00
Daniel Roe
3f67b9209c chore: check playground types separately (#1497) 2024-03-09 19:25:09 +01:00
Romain Hamel
a2b8b700df fix(Checkbox): bind data-n-ids to root element (#1495) 2024-03-09 15:58:54 +01:00
Daniel Roe
80cc59375f chore: remove auto-import override (#1492) 2024-03-09 14:36:05 +01:00
renovate[bot]
2bb911023c chore(deps): update all non-major dependencies (#1483)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-08 12:10:58 +01:00
renovate[bot]
ab355a3576 chore(deps): update all non-major dependencies (#1481)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-07 15:07:59 +01:00
Shoshana Connack
6c02d1c704 docs(getting-started): grammar correction (#1482) 2024-03-07 11:51:46 +01:00
renovate[bot]
66c3631b3d chore(deps): update all non-major dependencies (#1474)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-03-07 00:18:08 +01:00
Benjamin Canac
435ef30f26 chore(release-it): prefix version commit message 2024-03-05 12:48:45 +01:00
Benjamin Canac
17a96416f0 chore(release): 2.14.2 2024-03-05 12:21:34 +01:00
renovate[bot]
4378268117 chore(deps): update devdependency @nuxt/ui-pro to v1.0.1-28492961.4d49b9c (#1471)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-04 21:38:46 +01:00
Benjamin Canac
622aef5ffe docs: limit search results to 42 2024-03-04 19:27:09 +01:00
Benjamin Canac
174af36000 docs: switch to @nuxt/fonts 2024-03-04 18:21:41 +01:00
Benjamin Canac
2d64b50559 fix(RadioGroup): add missing fieldset config
Resolves #1472
2024-03-04 18:06:49 +01:00
Benjamin Canac
272c19de70 fix(Tooltip): arrow not hidden on mobile
Resolves #1470
2024-03-04 16:27:01 +01:00
Alex Thorwaldson
6a1142b403 fix(Dropdown): active/inactive dropdown links (#1407)
Co-authored-by: gangan <44604921+shinGangan@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-03-04 16:11:41 +01:00
renovate[bot]
9937951fb7 chore(deps): update all non-major dependencies (#1440)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-04 16:11:05 +01:00
kmilogp
002129c299 fix(Modal): remove overflow-hidden (#1460)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-03-04 12:58:56 +01:00
Benjamin Canac
0c2f655a27 docs(Range): revert example as it shows in the docs 2024-03-04 12:47:51 +01:00
renovate[bot]
fb16735dec chore(deps): update devdependency vue-tsc to v2 (#1454)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-04 12:33:38 +01:00
Mukund Shah
aa6e523780 docs(Notification): add Notifications props and config (#1449) 2024-03-04 11:56:18 +01:00
David Parys
bfd15c1818 docs(Link): add IntelliSense section (#1442) 2024-03-04 11:55:17 +01:00
Rodion
027d85402b docs(FormGroup): wrong icon name in #help slot (#1451) 2024-03-04 11:54:44 +01:00
roiLeo
99b9467dc2 docs(SelectMenu): invalid anchor to creatable (#1453) 2024-03-04 11:53:52 +01:00
Benjamin Canac
70bf4a7392 fix(Dropdown): improve hover mode on touch devices 2024-03-04 11:47:39 +01:00
Benjamin Canac
b50fbcf760 fix(Popover): improve hover mode on touch devices 2024-03-04 11:47:34 +01:00
Benjamin Canac
b74bf9f666 chore(Tooltip): use mouseenter instead of mouseover 2024-03-04 11:45:01 +01:00
renovate[bot]
c0feca136a chore(deps): update all non-major dependencies (#1430)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-28 17:21:00 +01:00
Benjamin Canac
0a4a9e3d2c fix(HorizontalNavigation): add relative class to icon 2024-02-28 16:26:16 +01:00
Benjamin Canac
0b29dd4ca5 fix(VerticalNavigation): add relative class to icon
Resolves #1245
2024-02-28 16:25:20 +01:00
Benjamin Canac
9cce4456d0 fix(Notification): improve description alignment when no title provided 2024-02-28 12:52:53 +01:00
Benjamin Canac
ca4f06a313 fix(Alert): improve description alignment when no title provided
Resolves #1408
2024-02-28 12:52:43 +01:00
Benjamin Canac
7dd9ee528e docs(date-picker): improve examples responsive 2024-02-28 11:25:59 +01:00
Shoshana Connack
cdf6ff7152 docs(date-picker): include date-fns in installation (#1434) 2024-02-27 14:26:25 +01:00
Benjamin Canac
9c2104d947 docs: remove banner on examples 2024-02-27 09:18:53 +01:00
Benjamin Canac
d1c8026a1e docs(deps): bump @nuxt/ui-pro 2024-02-27 09:18:53 +01:00
Benjamin Canac
14efa81986 chore(deps): refresh lock 2024-02-27 09:18:53 +01:00
renovate[bot]
b3314dc16b chore(deps): update all non-major dependencies (#1406)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-27 09:18:53 +01:00
Benjamin Canac
06135f38ae docs(home): improve lighthouse 2024-02-26 12:56:40 +01:00
Benjamin Canac
dbbab8ded0 chore(CommandPaletteGroup): remove useless role attributes 2024-02-26 12:56:40 +01:00
Romain Hamel
6e77f1d514 fix(Checkbox): label interaction without FormGroup (#1427) 2024-02-26 12:55:30 +01:00
Benjamin Canac
4b6e80e364 fix(SelectMenu): check null model value
Resolves #1421
2024-02-26 11:37:32 +01:00
Benjamin Canac
8a1b112727 docs(deps): bump @nuxt/ui-pro 2024-02-26 11:37:32 +01:00
Benjamin Canac
961f0ae27b docs: update banner 2024-02-26 11:37:32 +01:00
Benjamin Canac
e819656a34 docs: move headlessui links before github 2024-02-26 11:37:32 +01:00
Sébastien Chopin
024e03acc9 docs(breadcrumb): add link to github (#1414) 2024-02-26 11:37:32 +01:00
renovate[bot]
462d7729c9 chore(deps): update devdependency @nuxt/ui-pro to v1.0.0-28478433.ed477f1 (#1405)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-26 11:37:31 +01:00
gangan
df857fd541 chore(renovate): update extends (#1380) 2024-02-26 11:37:31 +01:00
sdezza
9b208bf297 docs(modal): mention how to programatically close (#1423) 2024-02-26 11:24:02 +01:00
Benjamin Canac
5af9da4d3c chore(release): 2.14.1 2024-02-23 17:25:52 +01:00
Benjamin Canac
1d995136a5 chore(release-it): remove pnpm test 2024-02-23 17:22:24 +01:00
Benjamin Canac
ba15add4db fix(module): revert tailwind config from #1272 (#1404) 2024-02-23 16:35:08 +01:00
Benjamin Canac
0aca478c57 chore(deps): remove ^ from @nuxt/kit resolution 2024-02-23 10:54:53 +01:00
Benjamin Canac
0ee4f2b75b chore(release-it): update config 2024-02-22 17:57:39 +01:00
Benjamin Canac
6e53cb6281 chore(deps): refresh lock 2024-02-22 15:40:12 +01:00
renovate[bot]
de715304dc chore(deps): update all non-major dependencies (#1399)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-02-22 15:31:59 +01:00
Benjamin Canac
81854112e3 docs: add pricing banner (#1391) 2024-02-22 15:30:38 +01:00
Benjamin Canac
87526b9ec5 docs: rename UDocs components to UContent 2024-02-22 15:28:44 +01:00
Benjamin Canac
f79187825f docs(deps): bump @nuxt/ui-pro 2024-02-22 15:28:31 +01:00
Benjamin Canac
0443ac2c9d chore(deps): remove ^ from resolutions 2024-02-22 15:28:11 +01:00
Benjamin Canac
d2c51e3667 docs(home): improve pro divider 2024-02-22 15:09:02 +01:00
Benjamin Canac
d15d7fa01d docs(home): improve pro section 2024-02-22 13:07:23 +01:00
Benjamin Canac
df32b3131b chore(release): 2.14.0 2024-02-22 12:06:52 +01:00
Benjamin Canac
d96d17d7e6 chore(readme): update 2024-02-22 11:42:06 +01:00
Benjamin Canac
b6c69441f5 docs(index): invalid component links 2024-02-21 23:11:59 +01:00
Benjamin Canac
33f3372c6b docs(nuxt.config): highlight mdc 2024-02-21 23:11:47 +01:00
renovate[bot]
613ba2db64 chore(deps): update devdependency @nuxt/ui-pro to v0.7.5-28475621.09eb8fa (#1394)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-21 20:02:36 +01:00
Benjamin Canac
9f352976ce fix(utils): prevent merge of popper key
Resolves #1393
2024-02-21 16:51:42 +01:00
Benjamin Canac
f83cff7095 chore(utils): prevent default prop merge for chip and badge 2024-02-21 16:34:34 +01:00
Benjamin Canac
433c09a9f3 docs(nuxt.config): highlight postcss lang 2024-02-21 16:34:34 +01:00
renovate[bot]
930337bf88 chore(deps): update all non-major dependencies (#1381)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-21 14:21:15 +01:00
Benjamin Canac
81e48ba9fd docs(home): add video 2024-02-21 12:24:30 +01:00
Benjamin Canac
cb2fd1e940 docs: consistent app.vue and error.vue 2024-02-20 10:47:50 +01:00
Benjamin Canac
6d4eac0dec docs: update figma link 2024-02-20 10:43:56 +01:00
Benjamin Canac
f4f6a8fcc1 chore(deps): refresh lock 2024-02-19 16:41:22 +01:00
renovate[bot]
920070cce0 chore(deps): update all non-major dependencies (#1347)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-19 16:23:10 +01:00
Benjamin Canac
d12b00c005 chore(useFormGroup): indentation 2024-02-19 12:23:25 +01:00
Benjamin Canac
3a142896c3 chore(useButtonGroup): indentation 2024-02-19 12:22:50 +01:00
Benjamin Canac
58682cec0c docs(theming): broken link for ui.config file
Resolves #1372
2024-02-18 20:01:21 +01:00
Romain Hamel
37ef7a4e4f docs(form): improve form documentation (#1373) 2024-02-18 18:30:20 +01:00
Amir Reza Dalir
5266591c88 fix(Form): improve validate path type (#1370)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-02-18 11:15:15 +01:00
Romain Hamel
d4b6147fcc fix(Form): return false when silent validation fails (#1371) 2024-02-18 11:11:07 +01:00
Benjamin Canac
31232d4d72 chore(Table): use px-4 in td and th for consistency 2024-02-15 15:29:52 +01:00
Benjamin Canac
3fe35217cb feat(Table): display progress bar when loading (#1362) 2024-02-15 12:37:44 +01:00
renovate[bot]
04ef47376d chore(deps): update dorny/paths-filter action to v3 (#1360)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-15 12:32:02 +01:00
Benjamin Canac
aa2b1cae88 fix(Notification): remove required title to prevent warning when using slot 2024-02-15 12:22:50 +01:00
Benjamin Canac
e545b6f0a1 fix(Alert): remove required title to prevent warning when using slot 2024-02-15 12:22:33 +01:00
Benjamin Canac
db42d9cab7 chore(Progress): define ProgressColor type 2024-02-15 12:14:00 +01:00
Benjamin Canac
b11c773f32 chore(Range): export RangeColor type 2024-02-15 12:14:00 +01:00
Benjamin Canac
c34df13e65 chore(Toggle): export ToggleColor type 2024-02-15 12:14:00 +01:00
Benjamin Canac
a55a08a91e fix(Progress): prevent NaN percent display when indeterminate 2024-02-15 12:13:37 +01:00
Benjamin Canac
c488b28c3c docs: use lang="ts" everywhere 2024-02-14 17:41:10 +01:00
Benjamin Canac
300861a49e docs(deps): remove @nuxthq/studio 2024-02-14 14:47:49 +01:00
Benjamin Canac
09a8e2d8c2 chore(deps): refresh lock 2024-02-12 12:00:48 +01:00
Benjamin Canac
7eba5b539a chore(FormGroup): wrap label & description to ease styling 2024-02-12 11:59:18 +01:00
renovate[bot]
19d15b42f0 chore(deps): update all non-major dependencies (#1334)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-12 11:37:32 +01:00
Richard van Driest
e23d4aaf53 docs(table): correct spelling (#1340) 2024-02-09 11:40:02 +01:00
Benjamin Canac
e1fb8e438d chore(Modals): ensure modalState exists 2024-02-08 17:18:48 +01:00
Benjamin Canac
f682905b26 fix(Card): prevent body padding without default slot 2024-02-08 12:49:38 +01:00
Benjamin Canac
f5fa9fe163 docs: add New badges on edge 2024-02-07 21:48:21 +01:00
Benjamin Canac
627a44bb1f docs: remove New badges on edge 2024-02-07 21:42:33 +01:00
Benjamin Canac
ade99a8f05 chore(Modals): client only component 2024-02-07 21:36:51 +01:00
Benjamin Canac
3295954247 docs(table): prevent overflow on mobile 2024-02-07 21:36:32 +01:00
Benjamin Canac
4f532dbb72 docs(vertical-navigation): improve example 2024-02-07 21:36:18 +01:00
Benjamin Canac
ee0a8f01af docs(carousel): improve examples 2024-02-07 21:31:48 +01:00
Benjamin Canac
b8936070f9 Revert "docs: add missing overflow-hidden on components"
This reverts commit 34adcc1c04.
2024-02-07 21:04:56 +01:00
Neil Richter
6f29c620ab feat(Modal): open programmatically (#1319) 2024-02-07 16:53:17 +01:00
renovate[bot]
98a2d0f1af chore(deps): update all non-major dependencies (#1216)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-02-07 16:03:42 +01:00
Benjamin Canac
e08601900e docs(DatePicker): wrong version of v-calendar
Fixes #1333
2024-02-07 14:40:21 +01:00
Benjamin Canac
cf818fba47 docs(home): improve pro animation start time 2024-02-07 14:31:57 +01:00
Benjamin Canac
0c8a649035 docs: add postcss shiki lang highlighter 2024-02-07 14:12:54 +01:00
Benjamin Canac
843a978644 feat(Tabs): add unmount prop as false by default
Resolves #663
2024-02-07 14:12:54 +01:00
adjabaev
cbeede66bb feat(Divider): handle size prop (#1307)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-02-07 13:48:11 +01:00
Benjamin Canac
a506cbbcb0 chore(package.json): add missing module type 2024-02-07 12:44:35 +01:00
Benjamin Canac
bb40c31031 fix(module): prevent tailwind warn with bun
Fixes #809
2024-02-07 12:43:56 +01:00
Benjamin Canac
34adcc1c04 docs: add missing overflow-hidden on components 2024-02-06 23:09:27 +01:00
Olusola Olawale
ac42ec106f fix(Link): check disabled prop before navigating (#1321) 2024-02-06 21:45:51 +01:00
Benjamin Canac
c3ed940ac2 docs(deps): bump @nuxt/ui-pro-edge 2024-02-06 19:51:38 +01:00
Benjamin Canac
7c74c2f22a docs: improve config display 2024-02-06 19:51:21 +01:00
Benjamin Canac
d0f4530e85 fix(SelectMenu): revert component is after #1199 2024-02-06 18:15:27 +01:00
Benjamin Canac
f8b296fc60 fix(Meter): missing import of Icon component
Fixes #1328
2024-02-06 18:03:16 +01:00
Benjamin Canac
882247e5f4 fix(Accordion): style disclosure div after #1199 2024-02-06 17:52:58 +01:00
Farnabaz
a297c3b41e docs: move shiki highlighter to composable (#1325) 2024-02-06 16:12:27 +01:00
Benjamin Canac
45121916d0 docs(releases): use head.title
Fixes #1323
2024-02-06 15:38:18 +01:00
Benjamin Canac
6b82429e30 chore(deps): bump 2024-02-06 14:21:11 +01:00
Farnabaz
707753a743 docs(deps): update @nuxt/content (#1310)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-02-06 13:06:20 +01:00
Benjamin Canac
10db14475f fix(components): hydration attribute mismatch with vue 3.4 (#1199) 2024-02-06 12:42:19 +01:00
Inesh Bose
4a5f7b06cf chore(tailwind): put empty object in quotes (#1306) 2024-02-05 16:46:31 +01:00
pierre golfier
f643e7b316 feat(Textarea): add maxrows prop to restrict autoresize (#1302)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-02-05 16:18:20 +01:00
Benjamin Canac
5a5b284e96 fix(RadioGroup): pass help prop to radio children
Resolves #1313
2024-02-05 15:32:36 +01:00
Benjamin Canac
6699a0519d docs(deps): bump @nuxt/ui-pro-edge 2024-02-05 12:24:54 +01:00
Benjamin Canac
8b08edeee7 chore(module): pass resolve and runtimeDir to installTailwind 2024-02-05 12:16:58 +01:00
Benjamin Canac
41ecd2a3d5 feat(Carousel): expose methods to allow autoplay
Resolves #1300
2024-02-01 18:07:39 +01:00
Benjamin Canac
f36158133e docs: bump @nuxt/ui-pro-edge 2024-02-01 16:55:02 +01:00
Inesh Bose
f0ee1893ee refactor(module): provide tailwind config through template (#1272)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-02-01 15:06:28 +01:00
Benjamin Canac
f455dbdd22 docs(releases): lint 2024-02-01 12:57:15 +01:00
Romain Hamel
27c71fa40e feat(Form): use nuxt useId to bind input labels (#1211) 2024-01-31 18:22:02 +01:00
Benjamin Canac
be37daec56 chore: ignore ts errors after nuxt 3.10 2024-01-31 15:05:31 +01:00
Benjamin Canac
9676f51512 chore(deps): update nuxt resolutions 2024-01-31 14:38:22 +01:00
Benjamin Canac
f8ada8042a docs(vercel.json): ignore _payload.json in redirects 2024-01-31 13:52:00 +01:00
Jake
89e15b90b1 docs(carousel): add draggable="false" to image elements (#1297) 2024-01-31 13:04:19 +01:00
Benjamin Canac
5b008b789b docs: put back prerender: false 2024-01-31 13:02:12 +01:00
Benjamin Canac
25d35cf465 docs: display Edge badge in header 2024-01-31 12:08:55 +01:00
Benjamin Canac
ee662986ab docs: remove prerender: false 2024-01-31 11:52:04 +01:00
Benjamin Canac
946a39c739 feat(Input): handle type file
Resolves #563
2024-01-31 11:50:34 +01:00
Benjamin Canac
412cd75edd fix(module): put back all option in icons plugin
Fixes #1237
2024-01-31 10:53:39 +01:00
Benjamin Canac
d0471f66ea chore(deps): update @egoist/tailwindcss-icons 2024-01-31 10:52:14 +01:00
Benjamin Canac
a12f37e4d2 chore(deps): update 2024-01-30 17:32:34 +01:00
Benjamin Canac
b741b42c64 docs: active pro link on /pro/prose 2024-01-30 15:07:44 +01:00
Benjamin Canac
7f8c625b0e docs: add /getting-started/examples redirect 2024-01-30 14:44:00 +01:00
Benjamin Canac
83b6b04eea docs: configure image provider to ipx 2024-01-30 14:26:20 +01:00
Benjamin Canac
aac6fb4334 docs(releases): improve page 2024-01-30 13:14:16 +01:00
Benjamin Canac
ca9f47d7c0 docs: move vercel.json in root dir 2024-01-30 12:37:53 +01:00
Benjamin Canac
e78a0350a5 chore(release): 2.13.0 2024-01-30 11:54:34 +01:00
Benjamin Canac
f42bb95f89 docs: import @nuxt/ui-pro package to display version 2024-01-30 11:51:33 +01:00
Benjamin Canac
f9042c4673 chore(deps): update 2024-01-30 11:51:20 +01:00
Benjamin Canac
e92be71749 docs: new structure (#1282)
Co-authored-by: Sébastien Chopin <seb@nuxt.com>
2024-01-30 11:24:02 +01:00
Anthony Sendra
20ac4b3332 feat(Form): handle multiple paths in validate (#1273) 2024-01-27 11:41:56 +01:00
Benjamin Canac
2e1ef557b5 chore(HorizontalNavigation): handle truncate 2024-01-25 18:02:28 +01:00
Benjamin Canac
8c568b1a29 chore(InputMenu/SelectMenu): harmonize config with buttons 2024-01-25 17:50:43 +01:00
Benjamin Canac
d2481a0f23 chore(CommandPalette): harmonize selected icon size 2024-01-25 17:50:17 +01:00
Benjamin Canac
a3f253f99a chore(Dropdown): harmonize config with buttons 2024-01-25 17:44:55 +01:00
Benjamin Canac
edf70b19eb chore(Breadcrumb): harmonize icon with buttons 2024-01-25 17:39:07 +01:00
Benjamin Canac
5d3a962782 fix(Breadrumb): handle truncate 2024-01-25 17:38:52 +01:00
Benjamin Canac
f640a30e13 chore(Breadcrumb): increase item line-height 2024-01-25 16:42:09 +01:00
Benjamin Canac
b8007bab5e feat(HorizontalNavigation): new component (#1279) 2024-01-25 10:21:06 +01:00
Benjamin Canac
b76e761bbb fix(Link): propagate active prop to slot as isActive 2024-01-24 18:20:25 +01:00
Benjamin Canac
b5b97f3467 chore(CommandPalette): harmonize config with buttons 2024-01-24 17:04:35 +01:00
Benjamin Canac
fc91e90958 chore(VerticalNavigation): harmonize config with buttons 2024-01-24 17:04:18 +01:00
Benjamin Canac
3e81eee6e6 feat(VerticalNavigation)!: use Badge component for consistency 2024-01-24 17:03:25 +01:00
Benjamin Canac
5ff566f0a4 chore(Toggle): missing default function in size prop 2024-01-24 14:52:12 +01:00
Benjamin Canac
3400b56d82 feat(Tooltip): default delay from config 2024-01-24 14:51:49 +01:00
Benjamin Canac
7f5711bc76 feat(Popover): default delay from config 2024-01-24 14:51:41 +01:00
Benjamin Canac
c4a1c04174 feat(Dropdown): default delay from config 2024-01-24 14:51:31 +01:00
Benjamin Canac
5e49fb8736 feat(InputMenu): handle nullable prop when clearing input 2024-01-24 12:45:39 +01:00
Benjamin Canac
2cb41db111 fix(Select): consistent placeholder with input and textarea
Resolves #1276
2024-01-24 11:55:05 +01:00
Benjamin Canac
6fafd78f5f docs(ComponentExample): fix code slot with latest @nuxt/content 2024-01-23 15:29:38 +01:00
Benjamin Canac
5b134b07ef docs(command-palette): add API section 2024-01-23 11:50:23 +01:00
Benjamin Canac
a47d9cc006 docs(form): improve API section 2024-01-23 11:50:09 +01:00
Benjamin Canac
ea9807f921 docs(theming): improve extraProperties examples
Resolves #1002
2024-01-23 10:50:01 +01:00
Matej Černý
f96eb5e8b7 feat(module): add option to disable global css styles (#1266) 2024-01-23 10:47:34 +01:00
Benjamin Canac
865c492616 chore(Select): move global style to sfc
Related to #1266
2024-01-22 22:08:44 +01:00
Benjamin Canac
a2ed3cc376 docs(carousel): hydration issue in one example 2024-01-22 18:41:45 +01:00
Benjamin Canac
d416432703 chore(deps): update 2024-01-22 18:41:29 +01:00
Michał Hanusek
f37b043138 feat(Carousel): new component (#927)
Co-authored-by: Michał Hanusek <m.hanusek@myfreak.pl>
Co-authored-by: Inesh Bose <dev@inesh.xyz>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-01-22 17:47:14 +01:00
Mohamed Fadl
ea58c88baa fix(Slideover): handle translate in RTL mode (#1259) 2024-01-22 17:01:38 +01:00
Benjamin Canac
0083ca276a docs: remove New badges on edge version 2024-01-22 16:58:10 +01:00
Alireza Jahandideh
6faf15bc74 feat(Modal/Slideover): emit close-prevented event (#1207) 2024-01-19 15:45:16 +01:00
Benjamin Canac
ac5224cbae chore(release): 2.12.3 2024-01-18 17:40:47 +01:00
Benjamin Canac
79ec3fd031 fix(link): import type from #vue-router
Resolves #1253
2024-01-18 17:34:41 +01:00
Benjamin Canac
91b27c8581 docs: bump @nuxt/ui-pro 2024-01-18 16:13:28 +01:00
Benjamin Canac
66c78c899c chore(release): 2.12.2 2024-01-18 15:38:59 +01:00
Benjamin Canac
05e90aa1d1 fix(link): improve nuxt link rel type 2024-01-18 15:30:14 +01:00
Benjamin Canac
d28bb0efa8 chore(release): 2.12.1 2024-01-18 15:04:10 +01:00
Benjamin Canac
d67c7482ac chore(deps): pin @headlessui/vue in dependencies instead of resolutions 2024-01-18 15:00:07 +01:00
Benjamin Canac
b8db18513d chore(deps): pin @headlessui/vue as it breaks command palette 2024-01-18 12:47:16 +01:00
Benjamin Canac
a3b33ac917 chore(deps): add missing resolutions update 2024-01-17 23:54:06 +01:00
Benjamin Canac
0f25f8563e chore(deps): update 2024-01-17 23:50:07 +01:00
renovate[bot]
81126b299a chore(deps): update actions/cache action to v4 (#1248)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-17 23:48:31 +01:00
Benjamin Canac
4ce8348a43 chore(Divider): clean code 2024-01-16 13:07:33 +01:00
Benjamin Canac
0776455a71 docs(accordion): add missing button colors 2024-01-16 13:07:13 +01:00
Benjamin Canac
1a937919a2 fix(InputMenu): take option-attribute into account to display label 2024-01-16 11:17:07 +01:00
Benjamin Canac
b9fe74bca5 fix(SelectMenu): take option-attribute into account to display label
Resolves #1151
2024-01-16 11:16:20 +01:00
Benjamin Canac
e116f931b2 docs(ComponentCard): wrap code in <template> 2024-01-16 11:07:08 +01:00
Benjamin Canac
393b992aeb docs(divider): remove useless color on example 2024-01-15 23:14:20 +01:00
Benjamin Canac
c187d367ff types(Link): add missing props 2024-01-15 16:05:39 +01:00
Benjamin Canac
d43fb835d8 chore(link): add missing props 2024-01-15 16:01:58 +01:00
Benjamin Canac
033fcfacd8 types(Tooltip): add interface 2024-01-15 14:47:20 +01:00
Benjamin Canac
e0977b2933 types(Chip): add missing fields 2024-01-15 14:47:20 +01:00
Benjamin Canac
4405d3239f fix(Tooltip): typo in kbd component 2024-01-15 14:47:20 +01:00
Mohamed Attia
a3a7201396 docs(installation): typo (#1235) 2024-01-14 17:51:47 +01:00
Benjamin Canac
29029ca8ae docs: bump @nuxt/ui-pro-edge 2024-01-12 11:52:25 +01:00
Benjamin Canac
2862741e5f docs(demo): add loading button 2024-01-12 11:50:49 +01:00
Benjamin Canac
e4fd20888b chore(Dropdown): use getNuxtLinkProps to bind items 2024-01-11 12:18:17 +01:00
Benjamin Canac
5c759c326d chore(Breadcrumb): chore(VerticalNavigation): use getULinkProps to bind links 2024-01-11 12:17:49 +01:00
Benjamin Canac
4c9c8d343a chore(VerticalNavigation): use getULinkProps to bind links 2024-01-11 12:17:29 +01:00
Benjamin Canac
28b736a703 chore(utils): improve link utils 2024-01-11 12:16:27 +01:00
Benjamin Canac
02d72df527 chore(Button): use utils to get link props 2024-01-11 11:25:00 +01:00
Benjamin Canac
a44bfc8511 fix(Button): pass-through nuxt link props to ULink 2024-01-11 11:15:27 +01:00
Benjamin Canac
b0df864379 fix(Link): prevent type bind on <a> 2024-01-11 11:15:08 +01:00
Benjamin Canac
969b02d936 docs(link): display props 2024-01-10 17:17:51 +01:00
Benjamin Canac
d3e19dc65a fix(Button): inherit nuxt link props without breaking nuxt-component-meta
Resolves #578
2024-01-10 16:58:47 +01:00
Benjamin Canac
cefa597664 test(Button): import from #components 2024-01-10 16:26:23 +01:00
Benjamin Canac
bad8a69a36 chore(github): improve pull request template 2024-01-10 12:52:17 +01:00
Benjamin Canac
6e4230fd63 chore(release): 2.12.0 2024-01-09 17:42:24 +01:00
Benjamin Canac
0be676a9ef docs: bump @nuxt/ui-pro-edge 2024-01-09 17:13:55 +01:00
Benjamin Canac
e48b61b5df docs(TableExampleAdvanced): improve sorting with v-model:sort and sort-mode props
Resolves #1177
2024-01-09 15:13:29 +01:00
Benjamin Canac
56e0c9a9a0 feat(Table): add sort-mode prop
Resolves #1149
2024-01-09 14:54:13 +01:00
Ivan Topolnjak
c6841d06a4 fix(Table): respect sort prop updates from parent component (#1208)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-01-09 13:03:02 +01:00
Benjamin Canac
8508e84958 chore(Table): rename columns sortFn to sort 2024-01-09 12:05:32 +01:00
Benjamin Canac
6154ae94a9 docs: bump @nuxt/ui-pro + @nuxt/image (required by BlogPost) 2024-01-08 17:29:19 +01:00
renovate[bot]
6384edf92a chore(deps): update all non-major dependencies (#1196)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-01-08 14:54:03 +01:00
Ragura
4f3af6cfdb feat(Table): add custom sort function to columns (#1075)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2024-01-08 12:28:19 +01:00
Daniel Roe
893b2466ff docs: ignore /pro when no token is provided (#1205) 2024-01-06 13:36:33 +01:00
Benjamin Canac
9807e58f8f docs(installation): add Modules and TypeScript section
Related to #1169, #1200, #571 and #1190
2024-01-05 18:54:29 +01:00
Benjamin Canac
4124406032 fix(Card)!: remove overflow-hidden on wrapper
Fixes #806, fixes #1034
2024-01-05 17:37:35 +01:00
Benjamin Canac
3258167a14 fix(forms): dont disable inputs and selects on loading
Resolves #1117
2024-01-05 17:35:18 +01:00
Benjamin Canac
520624bd64 chore(InputMenu): handle async search with search prop 2024-01-05 17:33:36 +01:00
Benjamin Canac
e4b8fffc32 docs(SelectMenu): improve async search example 2024-01-05 17:29:47 +01:00
Benjamin Canac
5d781112f1 fix(Alert): always pass a function to actions click events
Fixes #1197
2024-01-04 11:05:33 +01:00
Benjamin Canac
1c8122a00b chore(deps): pin vue to 3.3.13 2024-01-04 10:53:08 +01:00
Benjamin Canac
0976833753 feat(Pagination): add disabled prop
Resolves #1189
2024-01-03 18:18:01 +01:00
Benjamin Canac
bc00f9c4b2 fix(Popover): improve placement with hover mode
Improvement of #781
2024-01-03 17:21:35 +01:00
Benjamin Canac
c6aa4215d7 fix(Dropdown): improve placement with hover mode
Resolves #1179
2024-01-03 17:20:06 +01:00
Benjamin Canac
3334e2af3d fix(Popover): allow manual mode without blocking normal behaviour 2024-01-03 16:51:20 +01:00
Benjamin Canac
3844714644 feat(Dropdown): handle manual mode
Resolves #1143
2024-01-03 16:49:00 +01:00
Benjamin Canac
84e6392981 chore(deps): update lock 2024-01-03 15:44:33 +01:00
Benjamin Canac
c2ef6237d8 chore(InputMenu): allow control of search query 2024-01-03 15:13:34 +01:00
Benjamin Canac
f735db04d6 feat(SelectMenu): allow control of search query
Resolves #1174
2024-01-03 15:13:34 +01:00
Benjamin Canac
e8f573b6bb fix(SelectMenu): input border focus after tailwindcss 3.4 2024-01-03 15:13:34 +01:00
renovate[bot]
288abf239f chore(deps): update all non-major dependencies (#1184)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-03 14:54:34 +01:00
Daniel Roe
44d93a1cfd chore(Accordion): match event listener types (#1193) 2024-01-03 14:53:58 +01:00
Daniel Roe
217840bb41 docs: allow generating docs without github token (#1194) 2024-01-03 14:52:32 +01:00
Romain Hamel
ea2a24b5fe fix(Form): memory leak (#1185) 2024-01-02 16:36:35 +01:00
Romain Hamel
4a25a12390 feat(Form): expose submit function (#1186) 2024-01-02 16:28:38 +01:00
Sébastien Chopin
d64cb8a6fd chore: Update PULL_REQUEST_TEMPLATE.md 2024-01-02 14:57:32 +01:00
Benjamin Canac
00d0fd5919 fix(Table): display nothing instead of error when key is missing
Fixes #1173
2024-01-02 11:10:42 +01:00
Benjamin Canac
30e7a3ca20 chore(deps): update lock 2024-01-02 10:54:32 +01:00
renovate[bot]
7d572c81bb chore(deps): update all non-major dependencies (#1007)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-02 10:37:51 +01:00
John Puaoi
97a3975197 fix(Form): invalid errors when using clear by path (#1165) 2024-01-02 10:34:52 +01:00
Victor Akintunde
43b999c88e docs(notification): add default timeout value (#1181) 2024-01-02 10:33:08 +01:00
Benjamin Canac
7151b7b97d fix(Dropdown): merge item class
Fixes #1157
2023-12-28 13:14:17 +01:00
Conner Blanton
ffd20b3991 feat(VerticalNavigation): ability to add dividers (#963)
* feat(VerticalNavigation): ability to add sections with divider

* lint fix

* updating branch. resolving conflicts

* reverting app.vue

* removing unnecessary style

---------

Co-authored-by: Inesh Bose <dev@inesh.xyz>
2023-12-27 14:34:51 +01:00
Neil Mispelaar
29e64ca963 feat(VerticalNavigation): improve accessibility (#948)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-12-26 13:00:33 +01:00
Benjamin Canac
556ee0d9c4 docs: update dependencies 2023-12-26 12:19:24 +01:00
Benjamin Canac
debafef0fa chore(deps): update dependencies 2023-12-26 11:15:44 +01:00
Benjamin Canac
2d9038bcb0 chore(npmrc): ignore workspace root check 2023-12-26 11:06:36 +01:00
nathanjcollins
f7f8f06b91 chore(deps): update tailwindcss dependency to 3.4.0 (#1145)
* chore: update dependency for tailwindcss to 3.4

* refactor: change w-x h-x to size-x

* up

* up

* revert: h-x w-x to size-x

* fix: undo

* up

---------

Co-authored-by: Nathan Collins <nathancollins@Nathans-MacBook-Pro.local>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-12-26 10:56:57 +01:00
Benjamin Canac
56e1fed373 fix(useShortcuts): invalid code after #1159 2023-12-25 17:39:01 +01:00
Lukas
648eec31b9 fix(useShortcuts): include contenteditable="plaintext-only" elements in usingInput (#1159) 2023-12-25 17:34:24 +01:00
Benjamin Canac
d0ce8ee1c4 Revert "docs: pull nuxt/ui-pro docs from main branch"
This reverts commit 9d8f358139.
2023-12-21 16:19:31 +01:00
Benjamin Canac
9d8f358139 docs: pull nuxt/ui-pro docs from main branch 2023-12-21 11:18:14 +01:00
Jakub Chrobak
bc6474a9ad docs(installation): add bun command (#1141)
* docs: add bun installation command

* fix: add missing bracket
2023-12-20 12:28:14 +01:00
Benjamin Canac
31924e32f2 chore(deps): update 2023-12-19 18:16:39 +01:00
Benjamin Canac
c963ba688f docs(theming): improve Icons section 2023-12-19 17:51:27 +01:00
Benjamin Canac
4dee128524 chore(deps): update @egoist/tailwindcss-icons 2023-12-19 17:36:13 +01:00
Benjamin Canac
4c84839a01 fix(Toggle): add missing change event
Fixes #1113
2023-12-19 13:09:11 +01:00
renovate[bot]
fd30022550 chore(deps): update devdependency date-fns to v3 (#1127)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-19 11:40:59 +01:00
Daniel Roe
1a1c640220 chore: migrate to @nuxt/test-utils alpha (#1133)
* test: update snapshots to remove quotes

* chore: add alpha versions of test-utils

* chore: migrate to new test format

* test: slightly improve typing in suite

* test: improve safety of basic test
2023-12-19 11:37:57 +01:00
Daniel Roe
5c99ae131d fix: update vue and fix type issues (#1112)
* chore: bump vue version to show type errors

* fix: address type issues
2023-12-19 10:54:00 +01:00
Benjamin Canac
b22bd70d54 fix(config): prevent class merge of avatar size 2023-12-16 00:16:34 +01:00
Benjamin Canac
0c8ab9d98e fix(RadioGroup): pass option.disabled to children
Fixes #1109
2023-12-16 00:16:34 +01:00
Inesh Bose
0fdc8f70b6 feat(SelectMenu): allow creating option despite search (#1080)
* chore: initial

* chore: use reusable vnode

* fix: use component with vnode

* chore: option placement

* chore: finish

* up

* up

* up

* fix(selectmenu): non-object custom options

* up

---------

Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-12-15 15:04:06 +01:00
Benjamin Canac
23770d8cf0 chore(deps): update tailwind-merge 2023-12-15 14:42:57 +01:00
Benjamin Canac
84e75ad237 chore(playground): add tailwind.config.ts 2023-12-15 12:51:55 +01:00
Benjamin Canac
00dd8c27bd chore(playground): add app.config.ts 2023-12-15 12:50:58 +01:00
Benjamin Canac
5f81a79edf chore(Table): unused omit function 2023-12-15 11:37:08 +01:00
Benjamin Canac
1a02b3abe7 chore(Table): remove unused click attribute in rows 2023-12-14 17:17:43 +01:00
Benjamin Canac
83631ccbca fix(Link): handle active override when value is false 2023-12-14 14:32:31 +01:00
Benjamin Canac
0f9b5d47a6 docs(index): update components count 2023-12-13 15:20:48 +01:00
Benjamin Canac
f623ec1130 feat(Breadcrumb): handle labelClass and merge iconClass 2023-12-12 19:12:01 +01:00
Benjamin Canac
a79f7c0a34 feat(VerticalNavigation): handle labelClass and merge iconClass 2023-12-12 19:11:12 +01:00
Benjamin Canac
1c9835d7f1 feat(Dropdown): handle labelClass and merge iconClass
Resolves #716
2023-12-12 19:07:46 +01:00
Benjamin Canac
6d8d82a265 feat(InputMenu): new component (#1095) 2023-12-12 18:45:04 +01:00
Benjamin Canac
66a80c7486 docs(SelectMenu): add missing New badge on empty slot 2023-12-12 18:19:44 +01:00
Benjamin Canac
0546c7922c docs(ComponentPropsField): improve codeblocks line-height 2023-12-12 18:10:16 +01:00
Benjamin Canac
eafe707c7d docs(ComponentPropsField): wrong line-height on code blocks 2023-12-12 17:02:41 +01:00
Benjamin Canac
5d1919a538 feat(SelectMenu): add empty slot when no options
Resolves #1089
2023-12-12 16:27:42 +01:00
Benjamin Canac
781365a5ed docs(SelectMenu): improve 2023-12-12 16:27:42 +01:00
Benjamin Canac
0129e2db40 docs(SelectMenu): remove duplicate config 2023-12-12 16:27:22 +01:00
Benjamin Canac
45b1a4bd32 docs(releases): display pulls on release day too 2023-12-11 17:22:42 +01:00
Conner Blanton
f32f578125 feat(Popover): open and close events (#1038) 2023-12-11 17:19:19 +01:00
Benjamin Canac
4b044866a5 docs: add ads 2023-12-11 16:50:00 +01:00
Benjamin Canac
9b768ec12b docs: bump @nuxt/ui-pro-edge 2023-12-11 12:47:12 +01:00
Benjamin Canac
7584d72f42 chore(release): 2.11.1 2023-12-11 12:14:39 +01:00
Benjamin Canac
6b5ddc18bd docs: improve error page 2023-12-11 11:58:09 +01:00
Benjamin Canac
4dd92f7f36 chore(CommandPalette): filter not working after refactor 2023-12-08 18:40:40 +01:00
Benjamin Canac
cbc27422a4 docs: bump @nuxt/ui-pro-edge 2023-12-08 15:47:35 +01:00
Benjamin Canac
db508b218f fix(CommandPalette): improve performances and avoid multiple recompute 2023-12-08 15:28:53 +01:00
Benjamin Canac
ad33b26729 fix(CommandPalette): missing right padding on input with close button 2023-12-08 15:26:13 +01:00
Benjamin Canac
f07968afef fix(module): prevent class merging on default children
Fixes #1076
2023-12-07 17:29:36 +01:00
Benjamin Canac
a8dc9b216a docs: bump `@nuxt/ui-pro-edge 2023-12-07 17:15:05 +01:00
Benjamin Canac
32474e21f7 docs: bump `@nuxt/ui-pro-edge 2023-12-07 11:57:12 +01:00
Benjamin Canac
c023fb400c docs(ComponentCard): add ignoreVModel prop 2023-12-07 11:43:55 +01:00
Benjamin Canac
4548809ee5 docs(nuxt.config): add date-fns to vite.optimizeDeps 2023-12-06 22:33:45 +01:00
Benjamin Canac
6b52963339 docs(nuxt.config): typecheck with new nuxt-component-meta 2023-12-06 22:32:08 +01:00
Benjamin Canac
2c2ff0f473 chore(deps): update 2023-12-06 22:25:35 +01:00
Benjamin Canac
0b762d61e7 docs: bump @nuxt/ui-pro-edge 2023-12-06 22:13:21 +01:00
Benjamin Canac
9cbb68871c docs(SelectMenu): display config of ui and ui-menu props
Resolves  #1046
2023-12-06 22:13:10 +01:00
Benjamin Canac
7c5b47ea72 chore(Progress): remove useless cast 2023-12-06 18:43:47 +01:00
Romain Hamel
7196d81b4c fix(RadioGroup): props reactivity issues (#1065) 2023-12-06 17:15:05 +01:00
Benjamin Canac
1cb8df869f docs: bump @nuxt/ui-pro-edge 2023-12-06 16:11:24 +01:00
Benjamin Canac
67cc349c6c docs: bump @nuxt/ui-pro-edge 2023-12-06 16:02:40 +01:00
MiladHp
1f0f6181db fix(Notification): handle dynamic backgrounds (#1063)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-12-05 17:11:56 +01:00
Benjamin Canac
18b6133b11 docs: bump @nuxt/ui-pro-edge 2023-12-05 16:46:13 +01:00
Benjamin Canac
51bfb9a4e1 docs: use @nuxt/ui-pro-edge 2023-12-04 17:09:05 +01:00
Benjamin Canac
76e1cc84db chore(deps): update 2023-12-04 15:35:16 +01:00
Benjamin Canac
d539f2540b chore(deps): remove unused dev dependencies 2023-12-04 15:19:26 +01:00
Muhammad Mahmoud
e53cdeaf0b fix(Breadcrumb): handle divider in rtl (#1049) 2023-12-04 11:26:48 +01:00
Benjamin Canac
4d72a758fa fix(types): favor Record<string, any>> instead of object 2023-11-30 17:19:08 +01:00
Benjamin Canac
a2e9b7da07 chore(useUI): missing undefined in type 2023-11-30 16:54:54 +01:00
Benjamin Canac
e408eabd8b fix(components): move remaining classes to config (#1039) 2023-11-30 16:31:48 +01:00
Benjamin Canac
5718dfd69a fix(types): workaround for popper weak type
Fixes #644
2023-11-30 16:29:37 +01:00
Benjamin Canac
4a9b66aeb3 fix(types): improve with strict mode (#1041) 2023-11-30 12:02:37 +01:00
Benjamin Canac
464ff0b703 docs(OgImageDocs): handle when no description provided 2023-11-29 17:38:37 +01:00
Benjamin Canac
6984989a2c Revert "chore(deps): pin vitest"
This reverts commit 29efa99fb7.
2023-11-28 18:16:29 +01:00
Benjamin Canac
2dcc11ff89 chore(useUI): improve type 2023-11-28 16:38:00 +01:00
Benjamin Canac
29efa99fb7 chore(deps): pin vitest 2023-11-28 16:30:34 +01:00
Benjamin Canac
6c432028ae chore(useUI): improve type 2023-11-28 16:29:35 +01:00
Benjamin Canac
0270ce9251 docs(installation): remove duplicate codeblock on edge 2023-11-27 18:23:51 +01:00
Benjamin Canac
182e3b6e8f docs: bump @nuxt/ui-pro to stable 2023-11-23 12:39:14 +01:00
Benjamin Canac
26afa45fbf docs: remove New badges on edge version 2023-11-23 12:16:45 +01:00
Benjamin Canac
edd92d01a9 docs: fix invalid link 2023-11-23 11:22:45 +01:00
Benjamin Canac
e34c513b1a chore(release): 2.11.0 2023-11-23 11:15:23 +01:00
Conner Blanton
06d4510d1c feat(Popover): ability to add overlay (#1014) 2023-11-23 11:12:42 +01:00
Benjamin Canac
819b5f8a17 test: move Button to elements dir 2023-11-22 17:59:16 +01:00
Benjamin Canac
15a40f53f2 fix(Link): reactivity issue with active prop
Fixes nuxt/nuxt.com#1432
2023-11-22 15:24:36 +01:00
Benjamin Canac
dd55b4f602 docs: add missing New badges 2023-11-22 15:15:28 +01:00
Benjamin Canac
ec58948153 feat(module): allow options override of @egoist/tailwindcss-icons plugin (#1013) 2023-11-22 14:42:56 +01:00
Benjamin Canac
27db7fdd95 docs: bump @nuxt/ui-pro & @nuxtjs/mdc 2023-11-22 14:16:40 +01:00
renovate[bot]
2fc73ffafe chore(deps): update devdependency @release-it/conventional-changelog to v8 (#949)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-22 10:30:40 +01:00
renovate[bot]
5908d1a96b chore(deps): update devdependency release-it to v17 (#947)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-22 10:27:58 +01:00
Inesh Bose
d02858f6c4 refactor(config): break ui.config.ts into separate files (#930) 2023-11-22 10:26:31 +01:00
Levi (Nguyễn Lương Huy)
10ec3d533e docs(README): add and improve contributing guide, local development guide (#860) 2023-11-22 10:20:44 +01:00
Conner Blanton
d39e2de935 feat(FormGroup): add eager validation (#992) 2023-11-21 23:24:15 +01:00
Benjamin Canac
9df9b9a2df docs(releases): improve page 2023-11-21 23:02:35 +01:00
Italo
37fdf224c0 fix(SelectMenu): fixes non-strings and nested searchable attributes (#967)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-11-21 22:20:48 +01:00
renovate[bot]
73d0fa7273 chore(deps): update all non-major dependencies (#867)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-11-21 21:10:40 +01:00
Italo
11ccbbb24e feat(SelectMenu): allows to clear search query on close (#968)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-11-21 18:59:42 +01:00
renovate[bot]
ceb2ed36d4 chore(deps): update devdependency @testing-library/vue to v8 (#986)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-21 18:41:39 +01:00
Iván Máximiliano, Lo Giudice
83c3be716a feat(Notification): customize default timeout (#1003) 2023-11-21 18:34:08 +01:00
Daniel Roe
ca62ce13d3 fix(module): boolean types and bump nuxt to 3.8.2 (#1006) 2023-11-21 18:32:51 +01:00
Benjamin Canac
16663887ca docs(releases): display multiple pulls per day 2023-11-21 17:27:19 +01:00
Benjamin Canac
762c5ebba1 docs: add releases page (#1004) 2023-11-21 17:08:13 +01:00
Conner Blanton
f4be95dcf5 fix(ButtonGroup): handle components with children (#999)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-11-20 19:38:05 +01:00
Conner Blanton
c9b9bd6fb9 docs: sort component size prop (#956) 2023-11-20 17:00:16 +01:00
Benjamin Canac
55697e601e feat(Textarea): add default slot for complex usages
Resolves #971
2023-11-20 15:51:34 +01:00
Benjamin Canac
0cb5cc3947 docs: add pro section on landing 2023-11-20 14:22:04 +01:00
Pacman Doh
f245b4677c docs(VerticalNavigation): add truncate in icon slot example (#998) 2023-11-20 13:51:18 +01:00
Benjamin Canac
a1b38c4b66 feat(Checkbox): config label, required and help size 2023-11-19 13:17:52 +01:00
Conner Blanton
d4f1b5ef82 feat(Chip): new component (#886)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-11-19 13:04:07 +01:00
Benjamin Canac
6cc77a3e6c fix(Link): handle active state when to prop is not provided
Fixes #988
2023-11-17 18:56:54 +01:00
Benjamin Canac
7339324355 feat(types): support custom values from app.config.ts (#863) 2023-11-17 18:48:50 +01:00
Juho Rutila
bcc46b87f5 test: add initial component tests (#923)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-11-17 10:49:43 +01:00
Benjamin Canac
b666c4a1a8 docs(deps): bump @nuxt/ui-pro-edge 2023-11-16 18:14:00 +01:00
Haytham A. Salama
a35bfc7343 feat(Breadcrumb): new component (#506)
Co-authored-by: Eduard Aymerich <eduardaymerich@gmail.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-11-16 18:06:51 +01:00
Florian Zdrada
a97593985c fix(CommandPalette): activate first option after async search (#981) 2023-11-16 17:50:37 +01:00
Benjamin Canac
e1e5fa902b refactor(Dropdown): move item click logic to a proper function 2023-11-16 12:32:41 +01:00
Benjamin Canac
9b976a0b68 docs(ComponentCard): display model-value instead of value 2023-11-15 11:27:46 +01:00
Benjamin Canac
9952581d5b docs: remove useless label from RangeExample 2023-11-15 11:27:28 +01:00
Benjamin Canac
60e195ae60 docs(Toggle): put back lost v-model example
Resolves #916
2023-11-15 11:27:12 +01:00
Benjamin Canac
7c1052f3f7 docs(ComponentCard): add code prop to key to prevent duplicates 2023-11-15 11:11:25 +01:00
Benjamin Canac
60fa2beed0 fix(Dropdown): pass event to click function 2023-11-14 19:26:15 +01:00
Benjamin Canac
050c9c8db9 chore(deps): update lock 2023-11-14 17:42:44 +01:00
Benjamin Canac
9361d47cf7 docs: remove @iconify-json/logos 2023-11-14 17:42:14 +01:00
Benjamin Canac
b3caec3a7d docs: improve og image component 2023-11-14 17:37:56 +01:00
Benjamin Canac
4dbc6240c5 docs: prevent UNotifications slot #description override
Otherwise it alters the display of the Notification examples where actions moves under the title.
2023-11-14 17:21:39 +01:00
Benjamin Canac
7cb987de42 fix(Notification): improve config options 2023-11-14 17:19:59 +01:00
Benjamin Canac
91511b921d fix(Alert): improve config options
Resolves #760
2023-11-14 17:13:21 +01:00
Benjamin Canac
f323379909 fix(Dropdown): use NuxtLink with custom prop to close on select
Fixes #899
2023-11-14 16:26:24 +01:00
Benjamin Canac
ded6a7f73d fix(Notification): prevent gap when no close button or action 2023-11-14 15:55:57 +01:00
Benjamin Canac
9a1a1b8caf fix(Alert): prevent gap when no close button or action
Fixes #831
2023-11-14 15:55:57 +01:00
Sylvain Marroufin
de38afd97b fix(defineShortcuts): support minus - key (#962) 2023-11-14 14:24:46 +01:00
Romain Hamel
a3046aa256 fix(FormGroup): hydration mismatch on inputId (#942) 2023-11-14 14:23:51 +01:00
Conner Blanton
3c71bf36b0 feat(Toggle): add size prop (#950) 2023-11-11 22:42:05 +01:00
max
c55871b844 fix(Progress): percentage calculation (#939) 2023-11-11 17:11:11 +01:00
Benjamin Canac
0eb8d8f7ec docs: consistent usage of :component-example 2023-11-10 11:24:49 +01:00
max
68f6956d6e fix(Input/Textarea): add v-model modifiers (#856) 2023-11-10 11:05:58 +01:00
Benjamin Canac
6f0bfb5d89 chore(Icon): use computed for dynamic prop 2023-11-09 16:20:22 +01:00
Maxime Pauvert
4a62dac8a4 chore(package): add homepage (#929)
Co-authored-by: roiLeo <medina.leo42@gmail.com>
2023-11-08 17:43:07 +01:00
Benjamin Canac
042603a3c7 docs: use new prose component Tabs (#920) 2023-11-07 13:01:42 +01:00
Benjamin Canac
c601fc6c55 feat(Icon): switch to nuxt-icon with dynamic prop or app config (#862) 2023-11-06 18:27:14 +01:00
Benjamin Canac
196e9ac7d4 docs: remove Pricing from pro header 2023-11-06 15:48:18 +01:00
Sébastien Chopin
bfe418f614 docs: update nuxt-og-image 2023-11-06 14:54:33 +01:00
Benjamin Canac
3d205d0c8a docs: move pro navigation at the end on edge version 2023-11-06 11:56:12 +01:00
Benjamin Canac
f3c491a417 chore(release-it): improve github release name 2023-11-04 15:36:43 +01:00
Benjamin Canac
d7cbd05533 docs: bump @nuxt/ui-pro 2023-11-03 16:46:19 +01:00
Arash
8451f4d9bb fix(Notifications): teleport to body (#909) 2023-11-03 15:08:52 +01:00
Benjamin Canac
c153138db1 docs: prevent err on page not found 2023-11-03 14:38:02 +01:00
Daniel Roe
c73a2ab676 docs: don't add pro path if it doesn't exist (#917)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-11-03 14:37:54 +01:00
Romain Hamel
e81d5cf998 fix(FormGroup): remove inputId if the input is a fieldset (#914) 2023-11-03 14:31:15 +01:00
Benjamin Canac
7891ccb9ac test: lint 2023-11-03 11:45:41 +01:00
Daniel Roe
c84438f491 fix(module): use correct alias for #ui-colors (#913) 2023-11-03 11:40:26 +01:00
Benjamin Canac
844b3185e9 docs: integrate @nuxt/ui-pro (#739)
Co-authored-by: Pooya Parsa <pooya@pi0.io>
Co-authored-by: Florent Delerue <florentdelerue@hotmail.com>
Co-authored-by: Sébastien Chopin <seb@nuxt.com>
2023-11-02 16:44:44 +01:00
Juho Rutila
ed4b5e0077 test: add unit tests for the module (#892)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-11-02 11:00:20 +01:00
Conner Blanton
a2d70f04e9 fix(Radio): prevent help text from inlining with label (#894) 2023-10-31 14:29:48 +01:00
Benjamin Canac
1f9a063d98 docs: remove New badges for edge 2023-10-31 10:33:49 +01:00
Benjamin Canac
033910d90a docs: invalid radio links 2023-10-31 10:33:35 +01:00
Benjamin Canac
3e783277be chore(release): 2.10.0 2023-10-31 10:21:59 +01:00
Benjamin Canac
3ff4f0f8f5 chore(deps): update lock 2023-10-31 10:21:24 +01:00
Benjamin Canac
c37ad8b79a fix(Dropdown): use NuxtLink instead of ULink (#882) 2023-10-29 17:11:12 +01:00
Levy
f5f33882f9 fix(FormGroup): ensure size exists in config (#695)
Co-authored-by: Sma11X <540351143@qq.com>
Co-authored-by: saveliy <savelii.moshkota@ext.jumingo.com>
2023-10-28 17:59:51 +02:00
Conner
5a2644b329 feat(RadioGroup): configurable label size (#881) 2023-10-27 23:11:58 +02:00
Benjamin Canac
327c7769da chore(MeterGroup): unused import 2023-10-27 22:45:38 +02:00
Benjamin Canac
a0ffd3e334 docs(vertical-navigation): simplify default slot example
Resolves #813
2023-10-27 22:27:42 +02:00
Benjamin Canac
18e8d28272 chore(MeterGroup): consistency when multiple useUI 2023-10-27 22:08:29 +02:00
Benjamin Canac
339eaf69a5 chore(ui.config): rename popperArrow 2023-10-27 20:43:37 +02:00
Benjamin Canac
53b26b8194 docs: rename Preset title to Config 2023-10-27 20:43:23 +02:00
Italo
abbcc37fbb feat(Meter): new component (#827)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-10-27 20:40:39 +02:00
Benjamin Canac
5296cf2319 chore(Progress): add missing sizes for text 2023-10-27 17:33:28 +02:00
Benjamin Canac
3cb3914386 feat(Range): add 2xs, xs, xl and 2xl sizes to match progress component
Fixes #673
2023-10-27 16:36:11 +02:00
Benjamin Canac
5ce60f775d chore(progress): improve sizes 2023-10-27 16:36:00 +02:00
Benjamin Canac
8138814d71 docs(progress): default size to md for consistency 2023-10-27 16:15:58 +02:00
Benjamin Canac
56a19830b0 chore(progress): use .d.ts 2023-10-27 16:06:09 +02:00
Italo
2c5559b73e feat(Progress): new component (#697)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-10-27 16:01:47 +02:00
Benjamin Canac
f5f76cc77e docs(button): add group props & preset 2023-10-27 15:56:15 +02:00
Benjamin Canac
4005defb39 docs(avatar): add group props & preset 2023-10-27 15:56:05 +02:00
Romain Hamel
23d5dc7b98 feat(RadioGroup): new component (#730)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-10-27 15:47:24 +02:00
Conner
f785ecd46f feat(popper): arrow option & docs consistency across components (#875) 2023-10-27 15:03:06 +02:00
Conner
4ce23746da feat(Tooltip): adding option to show popper arrow (#868)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-10-26 15:41:42 +02:00
Benjamin Canac
8ba2a791e4 feat(CommandPalette): handle filter attribute in groups (#871) 2023-10-26 11:59:55 +02:00
Bryce
68f024f742 docs(shortcuts): add example usage for arrow keys (#859) 2023-10-26 10:49:58 +02:00
max
c5ce997ba9 feat(Pagination): add first and last page buttons (#842)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
Co-authored-by: Max Steinwand <msteinwand@kues.de>
2023-10-25 19:23:51 +02:00
renovate[bot]
9c05b3a317 chore(deps): update actions/setup-node action to v4 (#851)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-25 19:22:41 +02:00
renovate[bot]
a5d1661d66 chore(deps): update all non-major dependencies (#865)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-25 19:00:08 +02:00
renovate[bot]
0e116e6276 chore(deps): update devdependency @nuxt/devtools to v1 (#843)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-25 18:34:44 +02:00
renovate[bot]
d112808994 chore(deps): update all non-major dependencies (#810)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-10-25 18:31:50 +02:00
Benjamin Canac
f69024243e Revert "fix(types): take user app config into account"
This reverts commit ace8fc1c00.
2023-10-25 17:53:10 +02:00
Benjamin Canac
9023227cc0 docs(button): add ButtonGroup example with input
Resolves #804
2023-10-25 16:28:53 +02:00
Benjamin Canac
ace8fc1c00 fix(types): take user app config into account
Fixes #858
2023-10-25 12:17:13 +02:00
Benjamin Canac
7be2af7127 fix(types): handle sub-objects in app.config.ts (button colors)
Fixes #858
2023-10-25 11:43:36 +02:00
Benjamin Canac
2b7c5c575f docs(theming): improve colors customization with tailwind 2023-10-23 17:00:33 +02:00
renovate[bot]
4a18ff1da9 chore(deps): update devdependency @nuxthq/studio to v1 (#775)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-20 12:48:30 +02:00
mwohlan
51f4d54999 fix(Table): prevent @select event call when selecting all rows (#838) 2023-10-20 12:48:05 +02:00
Benjamin Canac
cca9dfbe22 docs(deps): bump @nuxt/ui-pro 2023-10-19 22:04:56 +02:00
Benjamin Canac
afbd47b7b0 docs(Link): fix code with prettier 2023-10-19 18:23:35 +02:00
Benjamin Canac
a735483381 docs(Link): add usage example
Resolves #749
2023-10-19 15:46:32 +02:00
mwohlan
b4f7b035f7 fix(Table): enable sorting for nested column keys (#835) 2023-10-19 11:23:32 +02:00
Benjamin Canac
0c36996adb docs: add pro link in header 2023-10-18 17:56:44 +02:00
Muhammad Mahmoud
40f3b16100 fix(Notification): add roles for accessibility (#724) 2023-10-18 17:49:27 +02:00
Daniel Roe
a8279d1c97 fix: use explicit type imports (#830) 2023-10-18 11:38:29 +02:00
Daniel Roe
360cfe663f chore: specify build command (#829) 2023-10-18 11:30:27 +02:00
Benjamin Canac
e5cbeac34b docs: improve pro page 2023-10-17 18:55:59 +02:00
Benjamin Canac
431a61c2b5 docs: add temporary pro page 2023-10-17 18:33:28 +02:00
KeJun
8867936e01 docs(ComponentCard): show all props for the code (#797)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-10-15 17:52:20 +02:00
Italo
9f4d88e0aa feat(Table): add v-model:sort prop (#803)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-10-14 19:18:49 +02:00
kevin olson
8bfd3591a6 feat(Input/Textarea): allow specifying autofocus delay for page transitions (#816) 2023-10-14 16:12:39 +02:00
Benjamin Canac
550ac10e49 fix(Modal): remove padding on mobile with fullscreen enabled
Resolves #811
2023-10-12 16:31:22 +02:00
Benjamin Canac
6137acad04 chore(github): edge release only when src/ changes 2023-10-12 15:30:08 +02:00
Benjamin Canac
0bd12fdf92 chore(useUI): add option to force appConfig merge 2023-10-12 15:27:22 +02:00
Sma11X
3ae78aadee docs(input): add type description (#794)
Co-authored-by: Haytham A. Salama <haythamasalama@gmail.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-10-12 14:48:37 +02:00
renovate[bot]
7a48e8c45d chore(deps): update all non-major dependencies (#762)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-12 14:46:27 +02:00
Benjamin Canac
ddbb431953 fix(Tabs): truncate buttons content
Resolves #796
2023-10-12 14:37:38 +02:00
Benjamin Canac
3697dbeda2 docs(popover): add New badge on manual section 2023-10-12 12:30:58 +02:00
Nils Olsson
92b86186e7 feat(Popover): manual mode & horizontal offset (#781)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
Co-authored-by: Lnunu <62177121+Lnunu@users.noreply.github.com>
2023-10-12 12:14:40 +02:00
Benjamin Canac
827f2f45d9 docs: add fatal on createError 2023-10-12 11:47:14 +02:00
Sma11X
96296c3d38 fix(Accordion): toggle correct element when keyboard press (#805)
Co-authored-by: Haytham Salama <haythamasalama@gmail.com>
2023-10-12 11:46:02 +02:00
Benjamin Canac
94cabca65a docs: add missing target _blank on callouts 2023-10-10 18:48:07 +02:00
Albert
e16379fdbd feat(Form): handle @error event (#718)
Co-authored-by: Albert <albert@Alberts-MacBook-Pro.local>
Co-authored-by: Romain Hamel <romain@boilr.io>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-10-10 17:47:22 +02:00
Benjamin Canac
1df07e2b4c chore(github): remove pull_request trigger on ci 2023-10-10 16:30:00 +02:00
Benjamin Canac
972618fac8 docs(header): add github link on mobile 2023-10-10 14:42:47 +02:00
Benjamin Canac
168ef018f1 docs: remove duplicate features from landing 2023-10-10 11:40:54 +02:00
Benjamin Canac
e4d500f7c7 docs(examples): fix color mode code-block 2023-10-09 18:22:48 +02:00
Sébastien Chopin
aa42c4a5d1 docs: enable CF analytics 2023-10-09 12:01:54 +02:00
KeJun
fe348b48c6 docs(ComponentExample): automatically read code (#789) 2023-10-09 10:44:47 +02:00
Clayton Chew
cf93d968af docs: update ui.notifications position configuration (#788)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
Co-authored-by: Clayton Chew <30117799+claytonchew@users.noreply.github.com>
2023-10-06 18:27:37 +02:00
Sébastien Chopin
3b8e014449 docs: improve form docs (#761)
Co-authored-by: Haytham A. Salama <haythamasalama@gmail.com>
2023-10-06 18:25:22 +02:00
Haytham A. Salama
f4a3479e7c docs: add link to the FormExampleElements (#787) 2023-10-06 17:33:24 +02:00
Benjamin Canac
ccb353d4bd docs: bump @nuxt/ui-pro 2023-10-05 15:22:54 +02:00
Benjamin Canac
3c5c3389f8 fix(Divider): display a single border when no content 2023-10-05 15:22:54 +02:00
Haytham A. Salama
eb9ce6a0dd feat(Divider): new component (#757)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-10-05 15:22:54 +02:00
Haytham A. Salama
0c807db005 docs: improve select options from types (#758)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-10-05 15:22:54 +02:00
Lnunu
49a753f80f docs(shortcuts): invalid dropdown items (#778) 2023-10-05 15:22:54 +02:00
Benjamin Canac
498db5ca21 docs(popover): add panel slot example
Resolves #763
2023-10-05 15:22:54 +02:00
Benjamin Canac
25ab781c14 docs: bump @nuxt/ui-pro 2023-10-05 15:22:54 +02:00
Benjamin Canac
af3db2a544 docs: remove New badges 2023-10-05 15:22:54 +02:00
Benjamin Canac
537bd08aaa docs(installation): invalid filename 2023-10-05 15:22:40 +02:00
Benjamin Canac
f3c7ad8470 docs: update badges 2023-10-02 18:07:17 +02:00
Benjamin Canac
64897a39bf chore(release): 2.9.0 2023-10-02 17:29:03 +02:00
Benjamin Canac
dfda33c1aa chore(deps): bump 2023-10-02 11:07:56 +02:00
Benjamin Canac
d46eafb248 chore(Badge): add type 2023-09-29 16:17:06 +02:00
Benjamin Canac
ee6f0d0c49 chore(deps): dedupe lock 2023-09-29 14:55:03 +02:00
Haytham A. Salama
b7b86bcc44 docs: add discord link to the section community (#759)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-09-29 11:34:00 +02:00
Haytham A. Salama
bbf3424933 docs: add contributing page (#729)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-09-29 11:10:03 +02:00
Levy
2fc938575d feat(FormGroup): add slots (#714)
Co-authored-by: Romain Hamel <rom.hml@gmail.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
Co-authored-by: saveliy <savelii.moshkota@ext.jumingo.com>
2023-09-28 18:30:41 +02:00
renovate[bot]
ff9d51863e chore(deps): update all non-major dependencies (#683)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-28 18:01:28 +02:00
Benjamin Canac
adb0a0fbe4 docs: bump @nuxt/content & @nuxt/ui-pro
Resolves #754
2023-09-28 17:42:42 +02:00
Haytham A. Salama
a071e4b875 fix(Pagination): handle max > 5 and max equal total pages (#728) 2023-09-28 17:01:44 +02:00
Benjamin Canac
a74de152d7 chore(deps): bump @nuxt/ui-pro 2023-09-28 14:24:15 +02:00
Aditio Pangestu
109ec52d50 fix(module): retain props reactivity through useUI (#745)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-09-28 14:06:57 +02:00
Haytham A. Salama
874447cb41 feat(Table): add ability to custom style for td and tr (#741)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-09-28 12:11:26 +02:00
KeJun
8b7a013319 docs(ComponentCard): fix inline highlighter (#750)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-09-28 11:28:43 +02:00
Benjamin Canac
3e647e4af1 fix(module): move @headlessui/tailwindcss to plugins on module install 2023-09-27 15:13:57 +02:00
Benjamin Canac
0da85e1463 docs: bump @nuxt/content 2023-09-27 14:52:44 +02:00
Benjamin Canac
dcf6e63471 docs: bump @nuxt/content to 2.8.3 2023-09-27 13:48:06 +02:00
Benjamin Canac
cbb2f28c3f fix(Tabs): prevent focus of TabPanel with tabindex="-1" 2023-09-27 13:47:48 +02:00
Horu
be734fc026 fix(Tabs): add visible focus indicator on active tabs (#690) 2023-09-27 13:38:58 +02:00
Sébastien Chopin
b306138574 docs: add figma kit 2023-09-26 16:41:09 +02:00
Benjamin Canac
1ebf456ffc docs: add figma kit community link 2023-09-26 15:10:53 +02:00
Benjamin Canac
8257a11dcb feat(Link): add active prop to override default behaviour (#732)
Co-authored-by: Sébastien Chopin <seb@nuxt.com>
2023-09-25 20:57:41 +02:00
Haytham A. Salama
6887f732ee fix(Accordion): close other items in circular order (#735) 2023-09-24 11:36:35 +02:00
Benjamin Canac
d088d8a7b8 chore(github): missing question form 2023-09-23 14:34:55 +02:00
Benjamin Canac
f60543a234 chore(github): update issue forms 2023-09-23 14:33:44 +02:00
Benjamin Canac
2531c8e66d chore(github): use issue forms 2023-09-23 14:26:18 +02:00
Benjamin Canac
4b68760f6a chore(github): improve issue templates 2023-09-23 12:04:43 +02:00
Benjamin Canac
568772382f playground: add missing .nuxtrc 2023-09-22 10:17:45 +02:00
Romain Hamel
46879dc1b7 chore(FormGroup): simplify bindings between input and form group p… (#704)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-09-21 23:22:55 +02:00
Benjamin Canac
a94782d94b docs: fetch select values from config 2023-09-21 22:16:34 +02:00
Benjamin Canac
853d58ad5f chore(module): add @ts-ignore on appConfig assign 2023-09-21 16:01:24 +02:00
Benjamin Canac
38b1eb6c5f docs: migrate to @nuxt/ui-pro 2023-09-21 15:00:08 +02:00
Benjamin Canac
f24ff9c47f chore: revert ui. prefix when using useUI composable 2023-09-21 14:30:34 +02:00
Benjamin Canac
60210aad75 chore(module): allow key extend in app.config 2023-09-21 14:26:21 +02:00
Benjamin Canac
67e85f98e2 docs: bump @nuxthq/elements 2023-09-21 13:14:20 +02:00
Benjamin Canac
b3a52482f2 docs: invalid Edit this page link on main branch 2023-09-21 12:53:42 +02:00
Benjamin Canac
86dc49ecc9 chore: use get in useUI 2023-09-21 12:50:18 +02:00
Benjamin Canac
c937736734 chore: rename prepare to dev:prepare 2023-09-21 11:29:14 +02:00
Benjamin Canac
d379c579c0 docs: fix preset display 2023-09-21 11:12:03 +02:00
Benjamin Canac
f983c974c4 chore(scripts): remove pnpm install 2023-09-20 18:51:29 +02:00
Benjamin Canac
b90b151588 chore(github): add pull request template 2023-09-20 18:11:08 +02:00
Benjamin Canac
34d2f57801 feat(module)!: use tailwind-merge for app.config & move config to components & type props (#692)
Co-authored-by: Pooya Parsa <pooya@pi0.io>
2023-09-20 18:07:51 +02:00
Benjamin Canac
2c98628f98 docs: add discord link in footer 2023-09-20 12:28:49 +02:00
Aditio Pangestu
681f0e5684 fix(FormGroup): use explicit label instead of implicit label (#638) 2023-09-20 11:06:23 +02:00
Haytham A. Salama
e40491208a feat(Link): add as prop (#535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-16 21:50:55 +02:00
Benjamin Canac
00594ea59b docs: improve plausible track event 2023-09-15 17:50:54 +02:00
Benjamin Canac
3ba95d3c4d docs: fix validation warns on color picker 2023-09-15 17:50:40 +02:00
Benjamin Canac
3424ce118d docs: fetch index page from dev source 2023-09-15 17:50:22 +02:00
Benjamin Canac
40b1d30f5c docs: bump @nuxthq/elements & nuxt-component-meta 2023-09-15 17:50:12 +02:00
Benjamin Canac
8ec23c042d docs: improve multi-source handling (#682) 2023-09-15 14:37:53 +02:00
Benjamin Canac
81463cd21d docs: lazy load images for performances 2023-09-14 22:55:55 +02:00
renovate[bot]
c44d363f62 chore(deps): update all non-major dependencies (#649)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-14 19:40:25 +02:00
Benjamin Canac
fbfa14a6a3 docs: track search 2023-09-14 19:30:26 +02:00
Benjamin Canac
4127caac76 docs: remove lodash (#678) 2023-09-14 19:19:20 +02:00
Younes Barrad
d6476d17f9 feat: remove lodash-es (#648)
Co-authored-by: Daniel Roe <daniel@roe.dev>
2023-09-14 18:47:09 +02:00
Benjamin Canac
5fc44b97c6 chore(CommandPalette): add search? function to types 2023-09-14 18:43:14 +02:00
Honza Pobořil
15e418e6c6 fix(Tabs): allow custom keys in TabItem (#671) 2023-09-13 17:39:29 +02:00
Benjamin Canac
3b8ca9886d docs: fix demo components z-index
Fixes #670
2023-09-13 15:28:58 +02:00
Romain Hamel
4c5833083f fix(FormGroup): prevent input click from propagating to label (#651) 2023-09-12 16:01:01 +02:00
Sma11X
83d609d530 fix(Table): select all rows without select listener (#652) 2023-09-12 15:55:50 +02:00
Farnabaz
1b34df15ac docs(ComponentCard): use inline highlighter (#664) 2023-09-12 15:49:44 +02:00
Benjamin Canac
0178ca9586 docs: hmr for tailwindcss classes in yml 2023-09-12 15:15:07 +02:00
Benjamin Canac
40ecb23d9a docs: add more padding on demo 2023-09-12 15:14:51 +02:00
Benjamin Canac
85734b8615 docs: accessibilty issue on range example 2023-09-12 15:14:43 +02:00
Benjamin Canac
ab26e4ba7d docs: embed playground 2023-09-12 14:50:35 +02:00
Benjamin Canac
edbbb33f69 docs: improve demo animation performances 2023-09-12 14:49:30 +02:00
Benjamin Canac
3de3aa006c chore(CommandPalette): add aria-label on input 2023-09-12 11:35:50 +02:00
Benjamin Canac
784f1f51dd docs: improve demo accessibility 2023-09-12 11:31:02 +02:00
Benjamin Canac
0787ec2d12 docs: bump @nuxthq/elements 2023-09-12 11:30:53 +02:00
Benjamin Canac
a8f643939e docs: improve notification in demo 2023-09-12 11:05:16 +02:00
Benjamin Canac
6f77ee80ce chore: add aria-label on close buttons 2023-09-12 10:59:26 +02:00
Florent Delerue
e2d4ba529d docs: improve landing demo animation (#661)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-09-12 10:50:05 +02:00
Benjamin Canac
1c707ca00d docs: remove pick usage 2023-09-11 19:08:40 +02:00
Benjamin Canac
00e951f708 docs(SelectMenu): improve default slot example 2023-09-11 14:48:56 +02:00
Benjamin Canac
0544a01c5b fix(SelectMenu): handle numbers
Resolves #574
2023-09-11 14:48:44 +02:00
Benjamin Canac
290ab1d9c5 chore: reactive attrs without class
Fixes #650
2023-09-11 12:55:24 +02:00
Benjamin Canac
254c4ed7d3 docs: lazy load DatePicker component 2023-09-11 11:51:01 +02:00
Benjamin Canac
a603ea56c1 fix(Table): add missing classes in app.config.ts
Fixes #655
2023-09-11 11:31:04 +02:00
Benjamin Canac
a90e95f7d1 docs: bump @nuxthq/elements 2023-09-11 11:30:32 +02:00
Benjamin Canac
bc2315b7d9 docs: improve accessibility 2023-09-11 11:25:23 +02:00
Benjamin Canac
87fd85ec3f chore(Table): improve accessibility 2023-09-11 11:25:06 +02:00
Benjamin Canac
3fef86834f chore(Pagination): improve accessibility 2023-09-11 11:24:57 +02:00
Benjamin Canac
b5e8685a2c docs: prevent code ast duplicate with slots
Fixes #654
2023-09-10 21:38:25 +02:00
renovate[bot]
15ee768729 chore(deps): update all non-major dependencies (#612)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-09 18:25:04 +02:00
jduartea
8955595dc6 fix(Range): fix track pseudo-elements for mozilla (#636) 2023-09-09 18:24:06 +02:00
Haytham A. Salama
fd6bcd3f84 docs: add examples link in header (#618) 2023-09-09 18:21:23 +02:00
Benjamin Canac
9d23b82d1d chore(release): 2.8.1 2023-09-09 13:59:54 +02:00
Benjamin Canac
511ed6a86c docs(Form): fix valibot example typecheck 2023-09-09 13:44:10 +02:00
jduartea
e8daf7f810 fix(Form): fix getValibotError to avoid importing safeParseAsync (#640) 2023-09-09 13:37:56 +02:00
Benjamin Canac
a43c68c501 docs: try to fix the ContentRenderer error when changing props 2023-09-08 17:58:37 +02:00
Benjamin Canac
ef7d3ce549 docs(footer): links contrast 2023-09-08 17:58:17 +02:00
Benjamin Canac
c2e561cfe4 docs: optimize landing images 2023-09-08 17:58:08 +02:00
Benjamin Canac
1d1c36b44c docs(examples): broken responsive 2023-09-08 12:55:20 +02:00
Benjamin Canac
95abc759b9 docs: prevent weird display in props 2023-09-08 12:55:20 +02:00
Benjamin Canac
700b2bb4d7 docs: bump @nuxthq/elements 2023-09-08 12:55:20 +02:00
Benjamin Canac
1d077c45d5 docs: tabs examples accessibility 2023-09-08 12:55:20 +02:00
Benjamin Canac
14cca48e96 docs: bump @nuxthq/elements 2023-09-08 12:55:20 +02:00
Eduard Aymerich
22430e168a docs: broken Edit this page link (#620) 2023-09-08 12:28:50 +02:00
hxp971130
c1e0654417 fix(Pagination): page numbers not clickable (#624) 2023-09-08 12:27:08 +02:00
Romain Hamel
1a7eb27cad fix(Form): fix valibot imports (#617) 2023-09-08 10:10:45 +02:00
Benjamin Canac
0d5f008168 docs(robots.txt): add user-agent 2023-09-07 17:51:42 +02:00
Benjamin Canac
ba2716a66a docs(favicon): set color to green 2023-09-07 17:51:42 +02:00
Benjamin Canac
5d66155885 docs: improve accessibility 2023-09-07 17:51:42 +02:00
Benjamin Canac
02f3164af3 docs: improve landing grid performances 2023-09-07 17:51:42 +02:00
Sébastien Chopin
240db8ee19 docs: fix pnpm command 2023-09-07 16:23:46 +02:00
Benjamin Canac
b905216a95 docs: improve search button on mobile 2023-09-07 16:16:22 +02:00
Benjamin Canac
c47d928f49 docs: update x.com url 2023-09-07 16:16:22 +02:00
Sébastien Chopin
7e0a655c64 docs: remove dev dependency 2023-09-07 16:14:42 +02:00
Benjamin Canac
02bbc9b9cf docs: display cta avatars client only 2023-09-07 15:56:51 +02:00
Benjamin Canac
98e1d1b90e docs: remove New badges from edge docs 2023-09-07 15:52:25 +02:00
Benjamin Canac
2b1e7bcc57 docs: update volta token 2023-09-07 15:21:04 +02:00
Benjamin Canac
52958af81a chore(release): 2.8.0 2023-09-07 15:17:32 +02:00
Benjamin Canac
de4416d5bf chore(release-it): preset name 2023-09-07 15:17:19 +02:00
Sébastien Chopin
9ae038489e docs: use new url for module stats 2023-09-07 15:13:48 +02:00
Benjamin Canac
6ad1afd308 docs: update badges 2023-09-07 15:13:48 +02:00
SevicheCC
ab5153ac19 feat(Form): add valibot supprt (#615)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-09-07 15:13:48 +02:00
Benjamin Canac
eebff72d01 docs: bump @nuxthq/elements 2023-09-07 15:13:48 +02:00
Benjamin Canac
c20aefdd91 chore(github): put back typecheck as @nuxthq/elements uses @nuxt/ui-edge 2023-09-07 15:13:48 +02:00
Benjamin Canac
0f252d0caf fix(module): missing useHead import 2023-09-07 15:13:48 +02:00
Benjamin Canac
888effea0a fix(module): missing useNuxtApp import 2023-09-07 15:13:48 +02:00
Benjamin Canac
3ed282df98 chore(github): disable typecheck to publish edge package 2023-09-07 15:13:48 +02:00
Benjamin Canac
22f7536154 chore: migrate to https://ui.nuxt.com and @nuxt/ui (#616) 2023-09-07 15:13:48 +02:00
Benjamin Canac
9f9d8f5cec docs: landing page (#611)
Co-authored-by: Sébastien Chopin <seb@nuxt.com>
2023-09-07 15:13:48 +02:00
Benjamin Canac
190378aaa9 chore(Alert): optional click function 2023-09-07 15:13:48 +02:00
Benjamin Canac
9b3a22ea14 fix(Radio): put back id for label selection 2023-09-07 15:13:48 +02:00
Benjamin Canac
7c157ce886 fix(Badge): allow label as number 2023-09-07 15:13:47 +02:00
Benjamin Canac
e49c673573 fix(AvatarGroup): pass default size to max avatar 2023-09-07 15:13:47 +02:00
Benjamin Canac
e578b0dd9e fix(AvatarGroup): add justify-end to wrapper to prevent right align 2023-09-07 15:13:47 +02:00
Eduard Aymerich
b3bc6e2e9e feat(ButtonGroup): add orientation prop (#603)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-09-07 15:13:47 +02:00
Kekeocha Justin Chetachukwu
e04c212d0d chore(Table): add overflow-x-auto to wrapper (#609) 2023-09-07 15:13:47 +02:00
renovate[bot]
92da3238eb chore(deps): update all non-major dependencies (#593)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-07 15:13:47 +02:00
Aditio Pangestu
d9363168b2 fix(Table): missing component imports (#608) 2023-09-07 15:13:47 +02:00
Benjamin Canac
53b2655ae5 docs: improve props types (#588) 2023-09-07 15:13:47 +02:00
Sébastien Chopin
f12c149e4e docs: remove concurrency to 1 2023-09-07 15:13:47 +02:00
Benjamin Canac
c4bcf0220b chore(deps): pin @nuxtjs/mdc 2023-09-07 15:13:47 +02:00
Benjamin Canac
73fc310e8d chore(deps): bump 2023-09-07 15:13:47 +02:00
Sébastien Chopin
7dff23912d docs: improve performances (#570)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-09-07 15:13:47 +02:00
Benjamin Canac
1145f88bca docs(deps): bump @nuxthq/elements 2023-09-07 15:13:47 +02:00
Sébastien Chopin
573c8a2f54 docs: fix social card link 2023-09-07 15:13:47 +02:00
Sébastien Chopin
7dbfe4ecd6 docs: update readme 2023-09-07 15:13:47 +02:00
Benjamin Canac
98b3c3550c docs: add missing component slots 2023-09-07 15:13:47 +02:00
Sébastien Chopin
791804b2fb fix: use head instance from plugin 2023-09-07 15:13:47 +02:00
Ling
f1ed0076e5 fix(Tooltip): hide on touch devices (#580) 2023-09-07 15:13:47 +02:00
Eduard Aymerich
11980a3c9c docs(ComponentCard): prevent label prop as select (#568) 2023-09-07 15:13:47 +02:00
Benjamin Canac
b901222c4b docs: specify multi-word component titles 2023-09-07 15:13:47 +02:00
Benjamin Canac
2e056fa3cf docs(SelectMenu): add slots examples
Resolves #557
2023-09-07 15:13:47 +02:00
renovate[bot]
b955f57084 chore(deps): update devdependency unbuild to v2 (#565)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-07 15:13:47 +02:00
rogepi
1435856586 docs: add colon before numeric props (#564)
Co-authored-by: rogepi <rogepi@outlook.com>
2023-09-07 15:13:47 +02:00
adjabaev
ce160c9a97 docs: dead links in Form and FormGroup pages (#544) 2023-09-07 15:13:47 +02:00
renovate[bot]
c88c8094a5 chore(deps): update all non-major dependencies (#530)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-07 15:13:47 +02:00
Benjamin Canac
7e7e9d0f85 docs: add version select (#532) 2023-09-07 15:13:47 +02:00
Benjamin Canac
ee663157b7 chore(Table): handle loading-state prop merge like empty-state 2023-09-07 15:13:47 +02:00
Eduard Aymerich
44ba758c0d fix(Table): empty state is displayed if null (#517) 2023-09-07 15:13:47 +02:00
Benjamin Canac
cb5484a603 docs: bump @nuxthq/elements 2023-09-07 15:13:47 +02:00
Benjamin Canac
998314e1cb fix(SelectMenu): invalid gap values 2023-09-07 15:13:47 +02:00
Benjamin Canac
d4e3ab606b fix(ButtonGroup): switch back to ui prop 2023-09-07 15:13:47 +02:00
Benjamin Canac
0a7c50ba98 chore(Popover): set default open-delay to 0 2023-09-07 15:13:47 +02:00
Benjamin Canac
88cc2e93af chore(Dropdown): set default open-delay to 0 2023-09-07 15:13:47 +02:00
Benjamin Canac
39042b3de1 fix(FormGroup): add missing ref import from vue 2023-09-07 15:13:47 +02:00
Benjamin Canac
8880bdc456 feat(module)!: use tailwind-merge for class merging (#509) 2023-09-07 15:13:47 +02:00
Romain Hamel
6d7973f6e1 feat(Form): improve form control and input validation trigger (#487)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-09-07 15:13:47 +02:00
renovate[bot]
60bb74675c chore(deps): update all non-major dependencies (#340)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-07 15:13:47 +02:00
Haytham A. Salama
a488b879f5 chore: add eslint rules for spacing (#526) 2023-09-07 15:13:47 +02:00
Benjamin Canac
fa1103b4ec docs: rebrand to Nuxt UI 2023-09-07 15:13:47 +02:00
Benjamin Canac
28ebfc2575 docs: @nuxt-themes/ui-kit is now @nuxthq/elements 2023-09-07 15:13:47 +02:00
Christian López C
fdce429b3e fix(Tabs): recompute marker position when v-model changes (#524) 2023-09-07 15:13:47 +02:00
Eduard Aymerich
7e2bebd3ef feat(Modal): add fullscreen prop (#523)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-09-07 15:13:47 +02:00
Benjamin Canac
ccb0f6207c chore(Table): typecheck 2023-09-07 15:13:47 +02:00
Benjamin Canac
f501460ebb docs: disable @nuxt/devtools 2023-09-07 15:13:47 +02:00
Vladyslav
858886a852 feat(Table): support nested keys in columns (#503)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-09-07 15:13:47 +02:00
Benjamin Canac
74f4903836 docs: bump @nuxt-themes/ui-kit 2023-09-07 15:13:47 +02:00
Benjamin Canac
16ac4a0533 docs: bump @nuxt-themes/ui-kit 2023-09-07 15:13:47 +02:00
Benjamin Canac
451e72a583 chore(app.config): revert -primary shortcuts after #493
Class priority issues in some cases when ring already defined on dark mode for example (input).
2023-09-07 15:13:47 +02:00
171H
a8a1c150a0 fix(Button): add missing prop types (#508) 2023-09-07 15:13:47 +02:00
171H
b243e8c946 fix(Alert): fix wrong type of actions (#507) 2023-09-07 15:13:47 +02:00
Benjamin Canac
a29877059e docs: improve icon sections of Alert, Avatar and Notification 2023-09-07 15:13:47 +02:00
Benjamin Canac
55daed0e5a feat(Avatar): handle icon default from app.config.ts 2023-09-07 15:13:47 +02:00
Benjamin Canac
1c00a366c2 chore(Link): use $route instead of useRoute() 2023-09-07 15:13:47 +02:00
Benjamin Canac
9866f051b2 chore(Avatar): add flex-shrink-0 to wrapper 2023-09-07 15:13:47 +02:00
Paul Grau
3d6839da97 fix(Form): fix wrong type of validate (#496)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-09-07 15:13:47 +02:00
Paul Grau
8b19b1880e fix(Form): use safeParseAsync for zod (#497) 2023-09-07 15:13:47 +02:00
Benjamin Canac
2d6badd4b0 docs(Avatar): add edge badge on icon 2023-09-07 15:13:47 +02:00
Benjamin Canac
df3b2028ed feat(Avatar): add icon prop as fallback 2023-09-07 15:13:47 +02:00
Benjamin Canac
eb609b13e4 fix(AvatarGroup): use ui.wrapper as inheritAttrs is not false 2023-09-07 15:13:47 +02:00
Benjamin Canac
aaf09ad555 feat(Tabs): control selected index (#490) 2023-09-07 15:13:47 +02:00
Benjamin Canac
ad0fe230ba docs(ui): also add the --color-primary-DEFAULT variable 2023-09-07 15:13:47 +02:00
Benjamin Canac
c6056ed133 feat(module): add DEFAULT shade to primary color (#493) 2023-09-07 15:13:47 +02:00
Benjamin Canac
7008df0988 fix(FormGroup): size were invalid since default has been removed
Bug introduced in c59595f2c6
2023-09-07 15:13:47 +02:00
Benjamin Canac
dc951ff69d fix(Popover): handle hover mode with padding like dropdown 2023-09-07 15:13:47 +02:00
Romain Hamel
e2146a5a58 docs(Form): fixed invalid state attributes in examples (#479) 2023-09-07 15:13:47 +02:00
Benjamin Canac
75d26e0c2b docs: improve dynamic page 2023-09-07 15:13:47 +02:00
Benjamin Canac
32a32d00ab docs: update badges 2023-08-12 22:26:02 +02:00
Benjamin Canac
189bd4cd3e chore(release): 2.7.0 2023-08-01 14:53:24 +02:00
Benjamin Canac
871d3b3a85 docs(tailwind.config): override green with nuxt one 2023-08-01 14:52:34 +02:00
Romain Hamel
248b0a68c6 fix(Form): return state on validate (#472) 2023-08-01 12:56:55 +02:00
Benjamin Canac
396aae7563 fix(Link): handle disabled prop
Fixes #473
2023-08-01 12:32:11 +02:00
Romain Hamel
dc1979cae1 fix(FormGroup): missing imports (#470) 2023-07-31 16:11:24 +02:00
Benjamin Canac
d51ad93f40 docs(Form): prevent duplicate ids 2023-07-31 15:43:20 +02:00
Benjamin Canac
c59595f2c6 fix(FormGroup): set size default to null
This prevents passing a `size` prop when not specified, especially when having a Checkbox, Radio, etc. underneath that don't support this prop.
2023-07-31 15:42:54 +02:00
Romain Hamel
a3aba1abad feat(Form): new component (#439)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-07-31 15:22:14 +02:00
Exotical
c37a927b4e docs(installation): fix incorrectly placed comma in array (#467) 2023-07-31 10:20:09 +02:00
Benjamin Canac
05ea5d2d78 chore(Link): add missing useRoute import 2023-07-30 21:11:46 +02:00
Benjamin Canac
963d81324c docs: bump @nuxt-themes/ui-kit 2023-07-30 20:04:17 +02:00
Benjamin Canac
927b63fa2e fix(module): omit colors defined as strings 2023-07-30 20:04:04 +02:00
Benjamin Canac
cefe5a76e0 feat(Link)!: rename from LinkCustom and add exact-query / exact-hash props 2023-07-30 19:46:27 +02:00
Haytham A. Salama
a9300db91e docs(examples): add advanced table example (#393)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-07-30 16:55:38 +02:00
KeJun
8e1aa2f1b6 docs(VerticalNavigation): add slots examples (#456)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-07-30 16:12:41 +02:00
Haytham A. Salama
5221294f78 chore: add eslint rules for spacing (#464)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-07-30 15:56:01 +02:00
Benjamin Canac
1bc055935e docs: update badges 2023-07-30 15:13:44 +02:00
Benjamin Canac
e25be118b7 fix(module): smart safelisting for components in snake case
Fixes #461
2023-07-30 14:56:48 +02:00
Benjamin Canac
93aebe6fc6 fix(FormGroup): err when no prop defined 2023-07-30 14:53:48 +02:00
Haytham A. Salama
2b3dc8d065 fix(Table): hide data when loading state is active (#460) 2023-07-29 23:31:29 +02:00
Benjamin Canac
5cf3bcf32d docs: fix after inject refactor 2023-07-29 20:30:32 +02:00
Benjamin Canac
3b183ac9cd feat(Range): increase narrowed surface (#459) 2023-07-29 20:15:46 +02:00
Benjamin Canac
3400e17d17 docs: bump @nuxt-themes/ui-kit 2023-07-29 20:14:18 +02:00
Benjamin Canac
4cd38ecc5a docs: lint example 2023-07-29 20:13:56 +02:00
Benjamin Canac
8380607a85 chore(github): run build before typecheck 2023-07-29 15:03:13 +02:00
Benjamin Canac
4561816b50 docs: add @nuxthq/ui dep to workspace 2023-07-29 15:00:05 +02:00
Benjamin Canac
e6d1106b83 docs: improve props and preset 2023-07-28 14:09:13 +02:00
Benjamin Canac
94f1c4e6a0 docs: bump @nuxt-themes/ui-kit & @nuxt/content 2023-07-28 13:47:29 +02:00
Benjamin Canac
09d0ea27ab feat(ui): apply primary bg on ::selection 2023-07-28 12:40:06 +02:00
Benjamin Canac
66ab95a2be chore(Tabs): add missing vue imports 2023-07-28 10:03:03 +02:00
Benjamin Canac
2cd620899f fix(module): safelist all colors for toast.add
Resolves #375, resolves #440
2023-07-27 18:28:25 +02:00
Benjamin Canac
0300be8539 docs(Alert): uniformize navigation badge 2023-07-27 18:22:49 +02:00
Benjamin Canac
5bd5dc2bca feat(Badge): rename outline to subtle + add soft variants 2023-07-27 18:22:21 +02:00
Benjamin Canac
572b7a5984 chore(deps): bump 2023-07-27 18:14:51 +02:00
Benjamin Canac
ab2abae48a feat(Alert): new component (#449) 2023-07-27 16:59:50 +02:00
Benjamin Canac
8298b62f21 feat(Tabs): new component (#450) 2023-07-27 16:22:49 +02:00
KeJun
10890e6704 fix(Popover): hover mode (#453) 2023-07-27 14:35:27 +02:00
Benjamin Canac
3af39cacf7 chore: remove prettierrc.json
Resolves #420
2023-07-27 12:51:00 +02:00
Larra Su
58e3958390 docs(Skeleton): fix usage example (#452) 2023-07-27 12:43:30 +02:00
Benjamin Canac
3dd0492f91 fix(FormGroup): required star display 2023-07-27 12:42:49 +02:00
Benjamin Canac
9a73c5fb64 docs(Badge): add Edge badges on new colors 2023-07-26 16:14:32 +02:00
Benjamin Canac
e7cfca2aa7 chore(Badge): add missing 500 color in safelist 2023-07-26 15:23:51 +02:00
Benjamin Canac
dc77cf292b docs(Button): add rounded section with ui prop 2023-07-26 15:01:48 +02:00
Benjamin Canac
05503e564c feat(Badge)!: add colors and variants (solid has changed) 2023-07-26 15:01:25 +02:00
Benjamin Canac
0420a17c1d docs: disable @nuxthq/studio 2023-07-26 13:00:03 +02:00
Benjamin Canac
a9578f8c50 chore(module): fix nuxt/schema augmentation 2023-07-25 18:59:22 +02:00
Benjamin Canac
d9ae1ee5b0 chore(deps): bump 2023-07-25 18:58:42 +02:00
Benjamin Canac
9e5f265f42 chore(CommandPalette): fix lint 2023-07-25 18:55:15 +02:00
Benjamin Canac
041f9e17de docs: fix lint 2023-07-25 18:55:05 +02:00
Benjamin Canac
df1e4a40ca chore(types): export accordion 2023-07-25 18:30:36 +02:00
MadDog4533
f005cbb95e docs(installation): add documentation for intellisense on SFC objects (#382)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-07-24 19:37:58 +02:00
henrycunh
d2a8a07a21 feat(FormGroup): add size prop and theme options (#391)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-07-24 19:36:58 +02:00
KeJun
b0440f81ce feat(CommandPalette): bind active and selected to scoped slot (#441) 2023-07-24 19:33:49 +02:00
Benjamin Canac
4f4a659ccc chore(types): remove partials 2023-07-20 18:11:11 +02:00
Benjamin Canac
beffde1849 docs(installation): move pnpm first 2023-07-20 13:06:00 +02:00
Marc-Olivier Castagnetti
959c968420 feat(SelectMenu): add value-attribute prop (#429)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-07-20 12:11:04 +02:00
Benjamin Canac
7cccbcfef8 fix(SelectMenu)!: invert ui and ui-select props (#432) 2023-07-20 12:00:23 +02:00
Benjamin Canac
df455db3ca feat(Notification): support html with title and description slots (#431) 2023-07-20 11:58:43 +02:00
Benjamin Canac
9fc786eda0 docs: and .env.example 2023-07-20 11:54:59 +02:00
Benjamin Canac
92a9ac0c85 docs: disabled payloadExtraction 2023-07-20 11:19:46 +02:00
Benjamin Canac
5a9910c2a3 docs: configure componentMeta with globalsOnly 2023-07-20 11:19:34 +02:00
Benjamin Canac
a0f485c49d docs(ComponentCard): improve boolean prop 2023-07-20 11:19:16 +02:00
Benjamin Canac
e92f341224 chore(Button): move some logic to LinkCustom 2023-07-20 11:19:03 +02:00
Benjamin Canac
c4e0e5a685 docs(deps): bump @nuxt-themes/ui-kit 2023-07-19 21:04:19 +02:00
Benjamin Canac
72ee359b73 chore(deps): bump nuxt to 3.6.5 2023-07-19 20:24:41 +02:00
Benjamin Canac
8a2b2604be chore(deps): fix @nuxt/content to 2.7.0 2023-07-19 18:39:47 +02:00
Benjamin Canac
d94c1b5b15 chore(deps): bump nuxt to 3.6.4 2023-07-19 18:29:30 +02:00
Benjamin Canac
b0486140e2 docs(SelectMenu): improve width of selects 2023-07-19 17:23:36 +02:00
Benjamin Canac
b7d9c08a1c docs(ComponentCard): fix booleans and padding 2023-07-19 17:23:25 +02:00
Benjamin Canac
dbcb02d0ea chore(playground): improve design 2023-07-19 16:56:52 +02:00
Benjamin Canac
208acca1e9 fix(module): ensure red color is safelisted for form elements
Resolves #423, resolves #373
2023-07-19 16:56:44 +02:00
Benjamin Canac
82e152be02 fix(LinkCustom): exact prop wasn't working
Resolves #417
2023-07-19 14:36:30 +02:00
Benjamin Canac
403899f11a chore: add playground 2023-07-19 13:21:39 +02:00
Benjamin Canac
914d156103 fix(LinkCustom): improve prop binding and prevent error with externals 2023-07-19 13:08:11 +02:00
Benjamin Canac
0f06b7c3fe chore(Button): use ULinkCustom with all NuxtLink props 2023-07-19 13:07:27 +02:00
Benjamin Canac
2c454b528a chore(Dropdown): extend types from NuxtLinkProps 2023-07-19 12:57:25 +02:00
Benjamin Canac
b28ae68945 chore(VerticalNavigation): extend types from NuxtLinkProps 2023-07-19 12:57:11 +02:00
Benjamin Canac
1171724791 chore(Dropdown): missing slot from link bind omit 2023-07-19 12:55:41 +02:00
Benjamin Canac
ad63c72d37 docs: add target="_blank" to social links 2023-07-19 12:49:48 +02:00
Benjamin Canac
d7f74d1868 docs: bump @nuxt-themes/ui-kit 2023-07-19 12:48:59 +02:00
Benjamin Canac
a0ffdce36c docs(VerticalNavigation): specify usage links 2023-07-19 12:48:46 +02:00
Benjamin Canac
a31e7dfa28 docs: add target: '_blank' to anchors 2023-07-18 17:51:34 +02:00
Benjamin Canac
c91ea60c84 docs: update Edge and New badges 2023-07-18 17:31:04 +02:00
Benjamin Canac
a11248fd33 chore(release): 2.6.0 2023-07-18 17:01:45 +02:00
Benjamin Canac
2fc579560e docs: update deps 2023-07-18 17:00:30 +02:00
Marc-Olivier Castagnetti
5f8fe8559f feat(SelectMenu): handle async search (#426)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-07-18 15:58:16 +02:00
John Puaoi Tech
46b444a3e0 fix(Table): fixed row deletion bug on deselect (#425)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-07-18 12:52:53 +02:00
Benjamin Canac
0ea1f310a9 docs: missing disabled in SelectExampleObjects 2023-07-18 12:51:55 +02:00
Benjamin Canac
b1825ffa7d chore(deps): bump 2023-07-17 20:24:34 +02:00
Benjamin Canac
7be48fd6f3 docs: enable experimental.payloadExtraction 2023-07-17 20:24:05 +02:00
9uenther
d292706967 feat(Table): add click event for the entire row (#353)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-07-17 14:51:57 +02:00
Benjamin Canac
31d571abb5 docs: migrate to @nuxthq/ui-kit (#405)
Co-authored-by: Sébastien Chopin <seb@nuxt.com>
2023-07-17 14:49:50 +02:00
Benjamin Canac
2ec28e7cbd chore(Accordion): type for items
Resolves #412
2023-07-17 11:25:59 +02:00
Benjamin Canac
908235e8dd chore(VerticalNavigation): rename Link to VerticalNavigationLink type 2023-07-17 11:18:05 +02:00
Benjamin Canac
5a4d0e1097 chore(Dropdown): rename Item to DropdownItem type 2023-07-17 11:17:39 +02:00
Beautus
773a23f969 feat(Avatar)!: bind component attributes to img element (#421) 2023-07-17 10:52:06 +02:00
Jose Salazar
7554a10206 docs: explicit settings.json path (#411)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-07-17 10:34:47 +02:00
Robin Ambrosius
914cb03a5d docs(Select): disable single select options (#422) 2023-07-17 10:33:16 +02:00
Benjamin Canac
4afdd3bd64 chore(Notification): optional action click type 2023-07-13 16:08:41 +02:00
Benjamin Canac
05b8a22eec chore(Dropdown): add Item type 2023-07-12 18:44:09 +02:00
Benjamin Canac
7e08e5b024 chore(VerticalNavigation): add Link type 2023-07-12 18:43:45 +02:00
Benjamin Canac
d15e8163e7 feat(Slideover): add prevent-close prop 2023-07-12 16:00:00 +02:00
Benjamin Canac
2cc5c0d810 feat(Modal): add prevent-close prop
Resolves #303
2023-07-12 15:44:17 +02:00
Haytham A. Salama
e08263ff38 docs(Dropdown): add an example item slot (#304)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-07-12 14:52:57 +02:00
David De Sloovere
57c3023909 docs: add nuxt.config.ts ui entry example (#407)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-07-12 14:12:20 +02:00
Benjamin Canac
b874bb5061 chore(deps): bump 2023-07-10 10:42:59 +02:00
Benjamin Canac
cbe2b1bfb8 fix(SelectMenu): missing appear on transition
Resolves #400
2023-07-10 10:40:15 +02:00
Benjamin Canac
3b432fde7a chore(Accordion): add transition to trailing icon 2023-07-05 11:43:15 +02:00
HylaruCoder
a79c165eee fix(Range): progress style (#385) 2023-07-04 20:03:12 +02:00
Benjamin Canac
cd2b671075 chore(deps): bump 2023-07-04 15:24:50 +02:00
Benjamin Canac
3de6b349d8 fix(Accordion): missing ref import from vue 2023-07-04 15:21:59 +02:00
Haytham A. Salama
eaf0043da6 fix(Accordion): solve the shift between buttons when they are opened (#379)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-07-03 17:20:08 +02:00
Dominik Opyd
b78fcf91a4 feat(Accordion): add multiple prop and close others by default (#364)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-07-03 14:38:13 +02:00
Benjamin Canac
e0f1798f07 docs(installation): add example for intellisense in ui prop 2023-07-03 12:35:43 +02:00
Benjamin Canac
e4233718a6 docs: improve mobile design 2023-06-29 18:01:21 +02:00
Benjamin Canac
a11abd6347 docs: disable search modal transition on mobile 2023-06-29 17:49:02 +02:00
Benjamin Canac
db346652b8 fix(Modal): disabling transition prop had no effect 2023-06-29 17:48:44 +02:00
Benjamin Canac
52b614fcb0 chore(Table): missing types 2023-06-29 17:42:49 +02:00
Benjamin Canac
5dffa868b1 feat(Table): allow columns class customization
Resolves #366
2023-06-29 17:42:34 +02:00
Benjamin Canac
cbd8cc49fb docs: fix toc on mobile 2023-06-29 16:55:30 +02:00
Benjamin Canac
f3c6f83232 chore(Accordion): transition on height 2023-06-29 16:48:46 +02:00
Benjamin Canac
80a9738490 fix(ButtonGroup): err when no props on buttons
Resolves #360
2023-06-28 15:10:46 +02:00
Benjamin Canac
54b6f734a3 docs(Accordion): headlessui label link as Disclosure 2023-06-28 12:19:21 +02:00
Benjamin Canac
41a5238579 fix(Button): missing disabled state on some variants 2023-06-28 11:04:11 +02:00
Benjamin Canac
c92dc980c9 fix(Range): disabled thumb opacity 2023-06-28 10:55:37 +02:00
Haytham A. Salama
2451541d7d chore: add lint:fix command (#347) 2023-06-27 22:20:25 +02:00
Benjamin Canac
103a20897c chore(README): docs link as https 2023-06-27 21:55:01 +02:00
Haytham A. Salama
e50f377b94 feat(Accordion): new component (#301)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-06-27 21:54:05 +02:00
Benjamin Canac
0bfe4b01bd docs(examples): add pagination rtl github link 2023-06-27 17:37:04 +02:00
Benjamin Canac
80e09df342 docs(examples): update rtl support 2023-06-27 17:36:15 +02:00
Benjamin Canac
7a2845d75e docs: update Edge and New badges 2023-06-27 17:29:00 +02:00
Benjamin Canac
10a9a3ea2b chore(release): 2.5.0 2023-06-27 17:05:34 +02:00
Benjamin Canac
1ff11ac1a3 feat(Table): reset sort on third click
Resolves #300
2023-06-27 15:32:19 +02:00
Benjamin Canac
07b27a228d fix(Table): default sortButton icon
Fixes 0f3fe0d54e
2023-06-27 15:31:31 +02:00
Benjamin Canac
6be9290f68 fix(FormGroup): prevent overriding color of children
Resolves #352
2023-06-27 15:17:53 +02:00
Benjamin Canac
0f3fe0d54e fix(Table): missing default sort icon when overriding sort-button prop 2023-06-27 15:11:32 +02:00
Benjamin Canac
0815f688ed chore(deps): bump 2023-06-27 14:34:07 +02:00
Benjamin Canac
8399ffe1f1 docs(installation): add IntelliSense section 2023-06-27 13:14:07 +02:00
Haytham A. Salama
91f6103719 docs: add support for RTL and LTR (#348) 2023-06-27 12:42:41 +02:00
Haytham A. Salama
278a1ea93c chore: improve RTL support (#334)
Co-authored-by: Hassan Kadhim <hassan57905@gmail.com>
2023-06-23 23:19:28 +02:00
Benjamin Canac
3f27c0ccae chore(deps): revert node engines bump 2023-06-23 22:43:37 +02:00
renovate[bot]
5a2f46683a chore(deps): update all non-major dependencies (#136)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-23 22:36:35 +02:00
Benjamin Canac
c8a0005253 chore(github): use pnpm 8 2023-06-23 21:35:18 +02:00
Haytham A. Salama
881f3547f2 docs(ComponentCard): preview component only (#302) 2023-06-22 18:38:04 +02:00
Benjamin Canac
8c99b871e2 docs(Avatar): add edge badge on chip-text prop 2023-06-22 14:53:45 +02:00
Benjamin Canac
41b85d50a8 fix(components): prefix @headlessui/vue components
Resolves #315
2023-06-22 13:01:58 +02:00
JPB
759af058df feat(Avatar): handle chipText (#306)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-06-22 12:24:56 +02:00
Benjamin Canac
48636363d1 chore(release-it): add header to changelog 2023-06-21 19:09:11 +02:00
Hassan Kadhim
4ea114a4d6 feat: RTL support (#320) 2023-06-21 19:09:11 +02:00
Benjamin Canac
ad2349e570 chore(deps): bump 2023-06-21 19:09:11 +02:00
Haytham A. Salama
ffb312d34d feat(Radio/Checkbox/Toggle)!: handle color prop for form elements (#323)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-06-21 19:09:11 +02:00
TomSmith27
97a1c86433 feat(Range): new component (#290)
Co-authored-by: Tom Smith <tom.smith2711@gmail.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
Co-authored-by: Tom Smith <tom.smith@qunifi.com>
2023-06-21 19:09:11 +02:00
Benjamin Canac
c2ebb0416e fix(Toggle): add opacity-50 when disabled 2023-06-21 19:09:01 +02:00
Alex Liu
e1548062c7 chore(utils): types (#321) 2023-06-21 19:09:01 +02:00
Benjamin Canac
9cd73aa49d fix(defineShortcuts): missing useDebounceFn import 2023-06-21 19:09:01 +02:00
Benjamin Canac
a880379480 fix(defineShortcuts): missing ref import 2023-06-21 19:09:01 +02:00
TomSmith27
71c2465d7b feat(Table): pass row index to table cell (#291)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-06-21 19:08:51 +02:00
Benjamin Canac
0272307f28 docs: improve notification page 2023-06-21 19:08:51 +02:00
Benjamin Canac
2ea358703e docs: fix focus on raycast command palette example 2023-06-21 19:08:51 +02:00
Benjamin Canac
c458f388bb docs: improve with examples 2023-06-21 19:08:51 +02:00
Benjamin Canac
1b03b8a531 fix(Tooltip): add color in config 2023-06-21 19:08:40 +02:00
Benjamin Canac
e2f7d82d62 docs: disable documentDriven mode 2023-06-21 19:08:40 +02:00
Benjamin Canac
c8e6ed8df9 chore(deps): bump 2023-06-21 19:08:40 +02:00
Sylvain Marroufin
a67f691a00 feat(defineShortcuts): chained shortcuts + docs update (#282)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-06-21 19:08:32 +02:00
Benjamin Canac
dfccbcf1a9 docs: add missing icons to override in theming 2023-06-21 17:59:30 +02:00
Benjamin Canac
38ecb088ec docs: improve theming dark mode section 2023-06-21 17:59:30 +02:00
Benjamin Canac
8236b18d0d docs: edge badges to new following 2.4.0 2023-06-21 17:59:30 +02:00
Benjamin Canac
1e05b0f072 chore(release): 2.4.1 2023-06-21 17:53:38 +02:00
Benjamin Canac
87e98f038a chore(deps): migrate from standard-version to release-it 2023-06-21 17:53:21 +02:00
Benjamin Canac
f7e2082983 fix(module): safelist regex when a : was present before color
Also prevents parsing colors already safelisted initially.
2023-06-21 17:42:02 +02:00
Benjamin Canac
f719111abb fix(module): safelist aliases for input
To make it work when doing `<USelect color="yellow" />` for example
2023-06-21 17:41:51 +02:00
Benjamin Canac
3bac0874f1 fix(Radio/Checkbox): remove legacy custom 2023-06-21 17:41:39 +02:00
Selemondev
457b7a9fb7 fix(forms): precise type assertion for onInput event handler (#293)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-06-21 17:41:15 +02:00
Benjamin Canac
4023fbec29 fix(module): let tailwindcss viewer enabled by default
Resolves #292
2023-06-21 17:40:54 +02:00
Benjamin Canac
a274a0cdbb chore(release): 2.4.0 2023-06-13 17:42:38 +02:00
Benjamin Canac
717a514451 fix(SelectMenu): input focus after be5f352 2023-06-13 17:34:34 +02:00
9uenther
786d7765f5 fix(Table): colspan of empty and loading is wrong when selection enabled (#284) 2023-06-13 17:06:06 +02:00
Benjamin Canac
a733c13866 fix(module): hardcode gray safelist instead of deduplicate complex logic 2023-06-13 16:31:13 +02:00
Benjamin Canac
88c1930845 fix(module): transform vue files to detect multi-line components 2023-06-13 15:53:02 +02:00
Benjamin Canac
c3f5c44461 docs: improve theming colors safelisting section 2023-06-13 15:51:05 +02:00
Benjamin Canac
2cfa1f8d03 fix(module): deduplicate default safelist as components may share same rules 2023-06-13 15:27:25 +02:00
Benjamin Canac
5f7de8e595 docs: only safelist valid colors 2023-06-13 15:26:45 +02:00
Benjamin Canac
cdce519742 fix(module): only safelist known colors 2023-06-13 14:52:56 +02:00
Benjamin Canac
ccd9ca5106 fix(module): prevent safelisting dynamic :color variables 2023-06-13 14:52:32 +02:00
Benjamin Canac
9031742acc chore(deps): bump 2023-06-13 14:52:04 +02:00
Benjamin Canac
9559d0b3bc fix(deps): move @tailwindcss/container-queries to dependencies 2023-06-13 12:27:17 +02:00
Benjamin Canac
0e6550ec45 chore(deps): bump 2023-06-13 12:25:37 +02:00
Benjamin Canac
20fa4d2317 feat(module): smart safelisting (#268)
Co-authored-by: Sébastien Chopin <seb@nuxtjs.com>
2023-06-13 12:18:38 +02:00
Benjamin Canac
e12e9740c9 fix(forms)!: bind $attrs to elements (#279) 2023-06-13 11:35:05 +02:00
Benjamin Canac
cbc8ef13cc fix(CommandPalette): input focus after be5f352 2023-06-12 14:56:13 +02:00
Haytham A. Salama
652af93f5c feat(CommandPalette): handle empty-state (#271)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-06-12 14:54:34 +02:00
Benjamin Canac
b4a96a8b01 chore(Select)!: rename text-attribute to option-attribute and defaults to label 2023-06-12 14:42:33 +02:00
Benjamin Canac
bc81d45b2b docs: improve forms usage with examples 2023-06-12 14:42:33 +02:00
Benjamin Canac
429791dab0 fix(Radio/Checkbox): split preset as indeterminate is checkbox only 2023-06-12 14:42:33 +02:00
Benjamin Canac
fe833eb2b2 fix(Toggle): missing disabled prop 2023-06-12 14:42:17 +02:00
Benjamin Canac
be5f352296 fix(module): use @tailwindcss/forms class strategy (#278) 2023-06-12 14:27:08 +02:00
Haytham A. Salama
47415322ea feat(table): add loading state (#259)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-06-12 14:26:29 +02:00
Benjamin Canac
d20983d355 docs: add Edge badge for next release features
Resolves #277
2023-06-12 10:53:06 +02:00
Sylvain Marroufin
f0b24ba25d feat(Pagination): new component (#257)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
Co-authored-by: Haytham A. Salama <haythamasalama@gmail.com>
2023-06-09 18:12:40 +02:00
Haytham A. Salama
f7a34c8fee feat(table): add slot for empty state (#260)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-06-09 17:06:42 +02:00
Benjamin Canac
4e5e614eb4 docs: notification color default to primary 2023-06-09 14:32:53 +02:00
Benjamin Canac
07f7855a26 fix(Notification): class priority for icon color 2023-06-09 11:40:46 +02:00
Benjamin Canac
57f95102e2 chore: add @tailwindcss/container-queries official plugin 2023-06-09 11:39:46 +02:00
Benjamin Canac
3f8d927438 chore(Dropdown): handle height for overflow 2023-06-08 12:55:38 +02:00
Benjamin Canac
d91c0bb894 fix(ButtonGroup): use -space-x-px on wrapper 2023-06-06 15:58:24 +02:00
Benjamin Canac
a6176720c7 fix(ButtonGroup): invalid size validator 2023-06-06 14:59:18 +02:00
Benjamin Canac
a6903df58f fix(Button): same size when no label + uniformize form elements 2023-06-06 12:30:03 +02:00
Benjamin Canac
19b149518e docs: add space between header icons 2023-06-06 12:26:34 +02:00
Benjamin Canac
c66a99a60f docs: only display links section in header when needed 2023-06-06 11:48:16 +02:00
Benjamin Canac
4a7c6035b6 chore(deps): bump 2023-06-06 10:33:17 +02:00
Benjamin Canac
207444fdea fix(forms): padded prop with p-0 class 2023-06-06 10:33:11 +02:00
Benjamin Canac
60eea0e46b chore(release): 2.3.0 2023-06-05 12:12:48 +02:00
Benjamin Canac
5e50eb9eb8 fix: use cloneVNode when altering props in render functions
Resolves #252

https://vuejs.org/api/render-function.html#clonevnode
2023-06-05 11:17:31 +02:00
Dominik Opyd
af65683123 docs(github): support for various file extensions (#250) 2023-06-02 11:35:31 +02:00
Benjamin Canac
2c673f5377 fix(CommandPalette): override of closeButton and emptyState props 2023-06-01 17:15:04 +02:00
Benjamin Canac
192b0e6301 fix(Table): override of sortButton and emptyState props 2023-06-01 17:14:45 +02:00
Benjamin Canac
71edb91c4f fix(Avatar): placeholder font size 2023-06-01 16:47:23 +02:00
Benjamin Canac
f9b935f5f5 fix(Badge): remove console.log in validator 2023-06-01 16:24:19 +02:00
Benjamin Canac
23833e92cb chore(Badge): handle color override like buttons 2023-06-01 16:06:07 +02:00
Benjamin Canac
241df7f05e docs: fix toc scroll when duplicated names 2023-06-01 15:41:23 +02:00
Benjamin Canac
130a1f2c54 docs: improve slots sections 2023-06-01 15:29:02 +02:00
Benjamin Canac
c63981e31c docs: :component-card now handle slots 2023-06-01 15:28:39 +02:00
Benjamin Canac
687f0c6f63 docs: improve inline code blocks inside Alert component 2023-06-01 15:28:12 +02:00
Benjamin Canac
f59a92ca15 chore(Input)!: move pointer class inside its own preset class 2023-06-01 15:27:53 +02:00
Benjamin Canac
01fa85c7a3 fix(defineShortcuts): err with input autocomplete that triggers keydown 2023-06-01 15:26:46 +02:00
Benjamin Canac
3434bc7f2b chore(deps): bump @nuxthq/studio 2023-06-01 11:43:47 +02:00
Benjamin Canac
9b1aacb1da docs: move slots sections as h2 2023-06-01 11:39:07 +02:00
Benjamin Canac
8951923a11 fix(SelectMenu): disable on loading 2023-06-01 11:08:16 +02:00
Benjamin Canac
e200d4cc74 chore(package): remove preinstall script 2023-06-01 10:49:36 +02:00
Benjamin Canac
e05619f8c8 chore: add leading and trailing slots
Resolves #246
2023-05-31 23:53:31 +02:00
Benjamin Canac
5ea43ab4e4 chore: uniformize icons in Button / Input / Select / SelectMenu
Also adds `loading` to `Select` and `SelectMenu`
2023-05-31 23:30:52 +02:00
Benjamin Canac
ba44c58a80 chore(SelectMenu)!: remove inline-flex from wrapper to behave like other form elements 2023-05-31 23:22:58 +02:00
Benjamin Canac
490025a981 docs: add Table icons in theming icons section 2023-05-31 18:31:15 +02:00
Benjamin Canac
2966373a86 chore(Table): handle empty-state
Resolves #243
2023-05-31 18:30:49 +02:00
Sylvain Marroufin
8bdb8c45f7 chore(Dropdown): hover mode with padding instead of offset + improve docs (#242)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-05-31 14:28:14 +02:00
Sylvain Marroufin
9827de0b58 docs(textarea): improve props documentation (#241) 2023-05-31 12:49:47 +02:00
Benjamin Canac
23f01fde41 chore(Table): rename preset container to base 2023-05-31 12:11:28 +02:00
Benjamin Canac
f680318e44 docs: fix overflow in table page
Fixes #244
2023-05-31 12:11:12 +02:00
Benjamin Canac
cd2d1eb1fa docs(table): add alert on sort prop without sortable 2023-05-30 18:06:03 +02:00
Benjamin Canac
3ba0aedcba fix(Table): type sort prop 2023-05-30 18:03:24 +02:00
Benjamin Canac
40b6884424 chore(Table): handle default sort and default column direction 2023-05-30 17:59:30 +02:00
Benjamin Canac
a2638c6057 chore(Table): split container divide 2023-05-30 16:23:17 +02:00
Benjamin Canac
6bd5142a37 fix(Table): add missing text-left in th.base 2023-05-30 16:21:54 +02:00
Benjamin Canac
bc1d653857 chore(Table): split preset for th and td 2023-05-30 16:17:17 +02:00
Benjamin Canac
6c215e07a6 chore(deps): bump 2023-05-30 12:18:05 +02:00
Benjamin Canac
272af9d24c fix(Table): missing ref import from vue 2023-05-30 12:17:59 +02:00
Benjamin Canac
cce000ab2b feat: add Table component (#237) 2023-05-30 12:13:57 +02:00
Benjamin Canac
4a99d6a7bb docs: fix notification preset for closeButton and actionButton 2023-05-29 22:45:33 +02:00
Benjamin Canac
4458656be5 chore(Notification)!: rename to closeButton and actionButton for consistency 2023-05-29 21:59:59 +02:00
Benjamin Canac
daca46371c chore(CommandPalette)!: rename props to emptyState and closeButton for consistency 2023-05-29 21:55:08 +02:00
Benjamin Canac
8ee2ac10e7 chore(Toggle)!: rename icons to onIcon / offIcon for consistency 2023-05-29 21:38:51 +02:00
Benjamin Canac
1ebaa5aa00 fix(Button): invalid padding when using square prop 2023-05-29 21:36:28 +02:00
Benjamin Canac
cb43548305 chore(SelectMenu): handle multiple default display + specific placeholder 2023-05-29 11:52:02 +02:00
Benjamin Canac
360084af7c chore(Toggle): improve component
- allow `iconOn` / `iconOff` default values from preset
- `bg-gray-900` on dark mode inside of `bg-white`
- added `name` prop for form control
2023-05-27 22:27:31 +02:00
Benjamin Canac
0af5184c70 chore(release): 2.2.1 2023-05-27 12:27:53 +02:00
Benjamin Canac
44c3e2c46a chore(forms): remove required on Input, Select and Textarea name
Resolves #236
2023-05-27 12:03:29 +02:00
Benjamin Canac
a96dc19215 fix(FormGroup): missing h import from vue
Resolves #236
2023-05-27 12:02:51 +02:00
Benjamin Canac
aa881a8d00 chore(release): 2.2.0 2023-05-26 23:19:53 +02:00
Benjamin Canac
08413f198b scripts: update to pnpm 2023-05-26 22:46:17 +02:00
Benjamin Canac
75ab1d2ed5 chore(deps): bump 2023-05-26 22:25:58 +02:00
Sumit Kolhe
2d6ce654f4 docs: add close button to Slideover example (#211)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-05-26 22:20:34 +02:00
Benjamin Canac
9ce531a06f feat!: handle color states on form elements (#234) 2023-05-26 22:07:49 +02:00
Benjamin Canac
1a9dc5c980 fix(Notification): remove default color on icon 2023-05-26 18:28:52 +02:00
Benjamin Canac
589f86ef1b chore(Avatar): dark variant for chip background color 2023-05-26 18:28:32 +02:00
Benjamin Canac
1b61ec72e2 chore(Notification)!: rename progressColor to color and style icon
This also removes `progressVariant` prop
2023-05-26 18:03:54 +02:00
Benjamin Canac
1f22f84360 chore(Avatar)!: remove chipVariant prop 2023-05-26 18:02:48 +02:00
Benjamin Canac
2c6db975f9 chore(deps): switch to pnpm (#228) 2023-05-26 17:41:07 +02:00
Benjamin Canac
b7099aa0d3 chore(SelectMenu): add searchablePlaceholder prop
Resolves #231
2023-05-26 15:02:21 +02:00
Benjamin Canac
36b0869bc2 docs: fix prev card gap on first page 2023-05-23 16:57:42 +02:00
Benjamin Canac
28167e41ff docs: add VerticalNavigation tailwind example 2023-05-23 15:27:13 +02:00
Benjamin Canac
19923cbf1e chore(VerticalNavigation)!: split preset 2023-05-23 15:26:47 +02:00
Benjamin Canac
1210e99ec1 chore(VerticalNavigation): improve types import 2023-05-23 15:25:28 +02:00
Benjamin Canac
fc894bc1ae chore(Dropdown): improve types import 2023-05-23 15:25:12 +02:00
Benjamin Canac
9491ac7172 chore(CommandPalette): improve types import 2023-05-23 15:25:00 +02:00
Benjamin Canac
32dc2264d8 chore(types): export button 2023-05-23 15:24:41 +02:00
Benjamin Canac
45ba3b26da chore(Notification): improve types 2023-05-23 15:24:32 +02:00
Benjamin Canac
6d3309c42d chore(Notification): move padding to app.config 2023-05-23 11:25:56 +02:00
Benjamin Canac
530b85136d docs: handle color mode in volta embed 2023-05-23 11:11:19 +02:00
Benjamin Canac
cb9ed9ad3f chore(Button): inject NuxtLink in components 2023-05-22 19:05:39 +02:00
Benjamin Canac
524e220914 chore(VerticalNavigation): improve binds & types 2023-05-22 19:05:17 +02:00
Benjamin Canac
e3e6ef27a2 docs: improve Dropdown example with click and disabled 2023-05-22 19:04:39 +02:00
Benjamin Canac
55f115f9fe chore(Dropdown): use ULinkCustom + improve item binds & types
Fixes #215
2023-05-22 19:04:18 +02:00
Benjamin Canac
bdaf2dbbd4 chore(CommandPalette): handle loading state (#221) 2023-05-22 16:00:31 +02:00
Benjamin Canac
e7eea067b2 chore(Notification): add progressColor and progressVariant props (#219)
Co-authored-by: Sébastien Chopin <seb@nuxtjs.com>
2023-05-22 15:01:19 +02:00
Benjamin Canac
a56dbeab35 fix(Radio/Checkbox): remove ring offset on focus 2023-05-22 13:41:56 +02:00
Benjamin Canac
570b82d1e7 chore(Avatar): allow default value for chipColor through app.config.ts 2023-05-22 12:24:17 +02:00
Harry Yep
b5189c0c07 docs: LogoLabs not shown (#216) 2023-05-21 23:01:08 +02:00
Sébastien Chopin
8a0a5d8ba0 docs: pre-render component-meta routes 2023-05-20 19:13:58 +02:00
Sébastien Chopin
d3e5f4e15d docs: remove console.log 2023-05-20 18:53:32 +02:00
Sébastien Chopin
5a592b7ee0 docs: use CF rules for redirect 2023-05-20 18:49:39 +02:00
Sébastien Chopin
43787eca74 docs: move vercel.json to public dir 2023-05-20 18:41:07 +02:00
Sébastien Chopin
595ed9fb46 docs: add vercel redirect 2023-05-20 18:38:19 +02:00
Sébastien Chopin
5c4ab26d25 docs: support ssg 2023-05-20 18:31:56 +02:00
Sébastien Chopin
2030f24a47 docs: update logo on aside on mobile 2023-05-20 13:18:19 +02:00
Benjamin Canac
6eda322496 chore(VerticalNavigation): links badge type as number
Resolves #206
2023-05-19 15:55:18 +02:00
Benjamin Canac
318f8b2f08 docs: improve theming colors section 2023-05-19 15:00:39 +02:00
Benjamin Canac
dfab900562 docs: add badge in VerticalNavigation example 2023-05-19 14:51:31 +02:00
Benjamin Canac
d2ee5058f8 fix(VerticalNavigation): badge display
Resolves #205
2023-05-19 14:51:16 +02:00
Benjamin Canac
e358183165 docs: getting started title on index 2023-05-19 13:01:34 +02:00
Benjamin Canac
26579538f5 docs: prevent Alert text hover without link 2023-05-19 13:00:50 +02:00
Benjamin Canac
f99b9e283a chore(release): 2.1.0 2023-05-19 12:25:37 +02:00
Benjamin Canac
246449b328 fix(module): add .mjs extension to tailwind content when builded
Resolves #172
2023-05-19 12:22:05 +02:00
Benjamin Canac
ea740bf10a fix(Textarea): expose ref 2023-05-19 12:15:40 +02:00
Benjamin Canac
2ded24bec9 fix(Input): expose ref 2023-05-19 12:15:33 +02:00
Benjamin Canac
180a1df374 chore(CommandPalette): remove useless ref 2023-05-19 12:13:32 +02:00
Benjamin Canac
b9edf31aed chore(Button): remove useless ref 2023-05-19 12:12:59 +02:00
Benjamin Canac
526f84692e docs: exclude label prop on button icon section 2023-05-19 11:56:29 +02:00
Benjamin Canac
d66f4c5e46 docs: reduce gap on prev next card 2023-05-19 11:56:17 +02:00
Benjamin Canac
ec3fd88472 docs: rename xxs to 2xs in button group section
Resolves #203
2023-05-19 11:50:21 +02:00
Benjamin Canac
0b097352b4 docs: theming icons with all param 2023-05-19 11:28:52 +02:00
Benjamin Canac
85b10ba4ee chore(module): handle icons as string 2023-05-19 11:28:24 +02:00
Benjamin Canac
4ac0e0c481 docs: update edit on github link icon 2023-05-19 11:22:02 +02:00
Benjamin Canac
617567d6e5 chore(SelectMenu): empty option shorter text 2023-05-19 11:20:30 +02:00
Sébastien Chopin
e59fe42cc9 docs: improve page descriptions and prev/next (#184)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-05-19 10:33:09 +02:00
Sébastien Chopin
1743ea91d5 chore(Notifications): simplify how to position them (#190)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-05-19 10:01:43 +02:00
BoBruce
fa59ea9d83 docs: fix copy button overlap code content (#194) 2023-05-18 17:57:35 +02:00
Benjamin Canac
efb9e8a263 docs: add _blank target on stackblitz link 2023-05-17 17:46:59 +02:00
Sébastien Chopin
0931372157 docs(footer): fix when page is not defined 2023-05-17 17:17:22 +02:00
Arash
7f00ec6c3d fix(DocsPageHeader): github component link (#182) 2023-05-17 17:00:36 +02:00
Benjamin Canac
2bdeb04f56 docs: add CommandPalette async search example 2023-05-17 15:13:34 +02:00
Benjamin Canac
c834f401cd docs: lint on page footer button 2023-05-17 15:03:48 +02:00
Benjamin Canac
421f3bd2be chore(github): add stackblitz link in bug report issue template 2023-05-17 15:00:50 +02:00
Benjamin Canac
e63d5b74fc docs: add stackblitz playground link in installation page 2023-05-17 14:57:07 +02:00
Benjamin Canac
9ffcef9cd0 docs: add footer with nuxtlabs and github edit links 2023-05-17 14:56:54 +02:00
Benjamin Canac
1aa8376d4f docs: add Select component description 2023-05-17 13:12:11 +02:00
Benjamin Canac
94f24da723 docs: volta embed url with gray and primary 2023-05-17 13:08:01 +02:00
Sébastien Chopin
44457a0530 chore: fix node engine version (#176)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-05-17 12:46:41 +02:00
ciaasteczkowy
3fa10aa4eb fix(ButtonGroup/AvatarGroup): allow v-for (#173)
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
2023-05-17 12:46:26 +02:00
Benjamin Canac
ead46f6798 chore(deps): use @nuxt/eslint-config 2023-05-17 12:30:03 +02:00
Benjamin Canac
1bfcf31964 docs: add roadmap page with volta board 2023-05-17 12:16:52 +02:00
Benjamin Canac
b795f0f65b docs: handle layout without toc 2023-05-17 12:13:24 +02:00
Benjamin Canac
d93e995298 chore(colors): prevent err and add warning when specific colors dont exist 2023-05-17 11:02:29 +02:00
Benjamin Canac
00641b1439 docs: add warning to prevent double module installation 2023-05-17 10:59:48 +02:00
Benjamin Canac
07197c531e chore(github): add issue templates 2023-05-17 10:05:23 +02:00
Žan Fras
4ac9a613e3 docs: update icon theming installation commands (#166) 2023-05-17 09:54:17 +02:00
Manaus
5336436da0 docs: use preferred naming for Tailwind CSS (#168) 2023-05-17 09:52:44 +02:00
Benjamin Canac
7588eca148 docs: use a single svg icon 2023-05-16 17:33:31 +02:00
Sébastien Chopin
c0a4b28f54 docs: add badges 2023-05-16 16:52:35 +02:00
Benjamin Canac
157e34f2c0 docs: put DocsSearch on client only 2023-05-16 16:48:49 +02:00
Benjamin Canac
6675bcf396 docs: add favicon 2023-05-16 16:48:48 +02:00
Sébastien Chopin
3d43fc7a32 docs: Update README.md 2023-05-16 16:47:00 +02:00
Benjamin Canac
b3b349aab7 docs: improve icons installations with all package managers 2023-05-16 16:15:55 +02:00
Benjamin Canac
ab67659412 docs: fix command palette examples links 2023-05-16 15:23:29 +02:00
Benjamin Canac
c090a9e9cd docs: improve seo 2023-05-16 15:20:58 +02:00
Benjamin Canac
5e3357b696 docs: add social-preview 2023-05-16 15:20:48 +02:00
Benjamin Canac
11941bd581 chore(module): default primary to green 2023-05-16 15:18:12 +02:00
Benjamin Canac
036658b6de chore(readme): update 2023-05-16 15:17:54 +02:00
Benjamin Canac
86dd6092f3 docs: add @nuxthq/studio and @nuxt/devtools 2023-05-16 15:17:04 +02:00
Benjamin Canac
cba95de72b chore(Container): add as prop 2023-05-16 12:57:35 +02:00
Benjamin Canac
4d8dbfb912 chore(Card): add as prop 2023-05-16 12:57:35 +02:00
Benjamin Canac
703fdef9bd fix(app.config): trailing space 2023-05-16 12:57:35 +02:00
Sylvain Marroufin
c78d5ab0d3 docs(shortcuts): add config details (#155) 2023-05-16 12:48:10 +02:00
Benjamin Canac
10f3c0c271 docs: improve index description 2023-05-16 12:07:05 +02:00
Benjamin Canac
370c31296a chore(license): rename to md 2023-05-16 12:03:05 +02:00
Benjamin Canac
f5b57bb3c8 chore(license): add 2023-05-16 12:02:04 +02:00
Benjamin Canac
8286d15d1e chore(readme): improve 2023-05-16 12:01:58 +02:00
Benjamin Canac
f528a5ebc0 docs: move dark mode in theming 2023-05-16 12:00:33 +02:00
Benjamin Canac
5fea0eb8d5 chore(deps): bump @nuxtjs/tailwindcss 2023-05-15 19:02:38 +02:00
Benjamin Canac
5ede417bd8 chore(deps): bump 2023-05-15 14:14:19 +02:00
Benjamin Canac
066b239299 chore(release): 2.0.4 2023-05-15 14:08:04 +02:00
Benjamin Canac
97da6c6343 chore(SelectMenu): add required input only when needed 2023-05-15 14:07:41 +02:00
Benjamin Canac
6d9e4d424b docs: improve alert code blocks on light mode 2023-05-15 14:07:23 +02:00
Benjamin Canac
52192a4ac0 docs: add input group section 2023-05-15 14:07:14 +02:00
Benjamin Canac
a6c53e4d20 chore(app.config): improve forms required 2023-05-15 14:07:02 +02:00
Benjamin Canac
e8b46540d8 fix(SelectMenu): add missing inline-flex on wrapper 2023-05-15 12:15:11 +02:00
Benjamin Canac
a01e0279a9 chore(release): 2.0.3 2023-05-15 11:22:09 +02:00
Benjamin Canac
ccbf3e78b1 docs: typo in button 2023-05-15 11:21:51 +02:00
Benjamin Canac
dcc0a6b3a9 docs: minor improvements 2023-05-14 17:07:11 +02:00
Benjamin Canac
bb4cd0b1b9 docs: add CommandPalette full-text search section 2023-05-14 17:06:31 +02:00
Benjamin Canac
ae02f23a8c chore(Kbd): usage with value prop 2023-05-14 17:06:08 +02:00
Benjamin Canac
8caa78819a chore(Skeleton): new component 2023-05-14 17:05:38 +02:00
Benjamin Canac
6fd5a70ac9 docs: improve ContextMenu example 2023-05-14 15:08:16 +02:00
Benjamin Canac
cfcd2f1371 docs: uniformize isOpen in examples 2023-05-14 15:05:33 +02:00
Benjamin Canac
c47f5e6a68 docs: improve forms cards 2023-05-14 15:04:56 +02:00
Benjamin Canac
37f1a1b5ad docs: lots of improvements 2023-05-13 23:22:07 +02:00
Benjamin Canac
0c2a5d98cf chore(SelectMenu): use trailingIcon default from Select for consistency 2023-05-13 23:21:32 +02:00
Benjamin Canac
aabf1dd9eb chore(release): 2.0.2 2023-05-11 17:12:50 +02:00
Benjamin Canac
c7c78cb47b fix(LinkCustom): handle button when no to prop 2023-05-11 17:03:02 +02:00
Benjamin Canac
3335a6a32c docs: put back router.options.ts 2023-05-11 16:51:30 +02:00
Benjamin Canac
15f9db9420 chore(release): 2.0.1 2023-05-11 16:26:11 +02:00
Benjamin Canac
aacb7e9841 fix(CommandPalette): put back searchable on v-show to input ref always exists 2023-05-11 15:45:33 +02:00
Benjamin Canac
3ded73194d docs: improve command palettes 2023-05-11 15:24:26 +02:00
Benjamin Canac
82adedf764 docs: improve search 2023-05-11 15:18:01 +02:00
Benjamin Canac
192bf4c375 fix(CommandPalette): expose input ref to template 2023-05-11 15:17:47 +02:00
Benjamin Canac
59fc14e93f chore(SelectMenu): add prop for trailingIcon and fix padding when selected 2023-05-11 14:28:58 +02:00
Benjamin Canac
0d83366427 chore(Select): add prop for trailingIcon 2023-05-11 14:21:30 +02:00
Benjamin Canac
cc65afafbd chore(CommandPaletteGroup): rename ui.group.command.selected.icon to ui.group.command.selectedIcon.base 2023-05-11 14:21:01 +02:00
Benjamin Canac
c7e0cb40e7 chore(CommandPaletteGroup): style <mark> with primary 2023-05-11 14:18:14 +02:00
Benjamin Canac
24434dc561 docs: default value in select menu basic example 2023-05-11 14:17:28 +02:00
Benjamin Canac
6c35ee9270 docs: typo in context-menu 2023-05-11 14:17:12 +02:00
Benjamin Canac
950b341696 docs: prevent aside to scroll up on page change 2023-05-11 14:17:01 +02:00
Benjamin Canac
24e7109959 chore(deps): bump 2023-05-10 18:35:24 +02:00
Benjamin Canac
be96824323 chore(SelectMenu): improve option.selected preset 2023-05-10 18:33:43 +02:00
Benjamin Canac
d5471f4d37 fix(Toggle): wrong icon-off positioning 2023-05-10 18:14:21 +02:00
Benjamin Canac
00b444b3eb chore: rename spacing to padding 2023-05-10 16:24:28 +02:00
Benjamin Canac
76a0d61a0f fix(colors): missing useNuxtApp import 2023-05-10 12:39:08 +02:00
Benjamin Canac
6d79548ee8 chore(Slideover): default side to right 2023-05-10 12:27:20 +02:00
Benjamin Canac
f48ead6faf fix(docs): sticky search button z-index 2023-05-10 11:59:30 +02:00
Benjamin Canac
fd4c80acd4 fix(Avatar): gray missing for chipColor 2023-05-10 11:59:16 +02:00
Benjamin Canac
3df917ae70 chore(deps): fix vue-tsc version to 1.6.3 2023-05-10 00:22:10 +02:00
Benjamin Canac
19a34c44da chore(plugins): move hexToRgb fn to utils 2023-05-10 00:19:27 +02:00
Benjamin Canac
365c843fc0 chore(SelectMenu): put back required input 2023-05-10 00:18:14 +02:00
Benjamin Canac
cd430a4cad fix(Icon): missing import 2023-05-10 00:17:20 +02:00
Benjamin Canac
32ada0b28b chore(deps): bump @nuxtjs/tailwindcss 2023-05-09 18:55:28 +02:00
Benjamin Canac
034a95d3c9 fix(VerticalNavigation): improve focus 2023-05-09 18:55:15 +02:00
Benjamin Canac
530d8a8c27 chore(Dropdown): improve preset 2023-05-09 17:58:07 +02:00
Benjamin Canac
939efba47c fix(app.config): remove old u- classes 2023-05-09 16:26:12 +02:00
Benjamin Canac
c43c212ae1 chore(Toggle): shrink size and move focus to focus-visible 2023-05-09 16:25:09 +02:00
Benjamin Canac
0404c871fb chore(Radio/Checkbox): change focus to focus-visible 2023-05-09 16:24:36 +02:00
Benjamin Canac
ebf5fd6aeb fix(Avatar): shrink chip ring 2023-05-09 16:23:51 +02:00
Benjamin Canac
d5d250b8cf chore(Badge): default size to sm and add lg 2023-05-09 14:30:43 +02:00
Benjamin Canac
410d2351d6 chore(Avatar): default size to sm 2023-05-09 14:30:43 +02:00
Benjamin Canac
949a476125 docs: add fallback on colorMode button 2023-05-09 14:30:43 +02:00
Benjamin Canac
4586eed90c chore(Kbd): new component 2023-05-09 14:30:43 +02:00
Benjamin Canac
b21c55f5c4 chore(Dropdown): move resolve class logic into template 2023-05-09 14:30:43 +02:00
Benjamin Canac
fc11612a49 chore(SelectMenu): move resolve class logic into template 2023-05-09 14:30:05 +02:00
Benjamin Canac
6de57aa1a0 chore(deps): bump 2023-05-09 11:50:28 +02:00
Benjamin Canac
6355b16156 chore(Button): add flex-shrink-0 by default 2023-05-05 18:17:43 +02:00
Benjamin Canac
26fc923ea4 chore(Input): add placeholder color to none appearance 2023-05-05 18:17:32 +02:00
Benjamin Canac
28ee9179f5 fix(VerticalNavigation): improve stacking context 2023-05-05 18:17:13 +02:00
Benjamin Canac
4665563e6f fix(CommandPalette): wrong type usage 2023-05-05 17:19:39 +02:00
Benjamin Canac
f221b890a9 chore(Card): update ring and divide colors 2023-05-05 17:17:46 +02:00
Benjamin Canac
d1d8ab3c64 fix(Button): variant validator takes color into account 2023-05-05 14:38:03 +02:00
Benjamin Canac
5b8ab168ba chore(app.config): remove commented button gray variant 2023-05-05 12:16:18 +02:00
Benjamin Canac
767a2bf3fc chore(app.config): improve modal and slideover overlay background 2023-05-05 12:15:59 +02:00
Benjamin Canac
0c69385771 fix: prefix imported components 2023-05-05 12:15:20 +02:00
Daniel Roe
97b1a85ea1 fix: revert back to runtime app for hmr (#153) 2023-05-04 18:18:36 +02:00
Benjamin Canac
9ce43ac68b fix(Notifications): missing computed from vue 2023-05-04 17:59:10 +02:00
Benjamin Canac
fa05653f23 fix(Select): move types from template 2023-05-04 17:51:23 +02:00
Benjamin Canac
626409e101 fix: put back app.config for hmr 2023-05-04 17:51:08 +02:00
Daniel Roe
f5c0030a19 fix: remove augmentation of app (#152) 2023-05-04 17:32:25 +02:00
Daniel Roe
11e00a10e4 fix: update to fix type issues (#151) 2023-05-04 17:24:22 +02:00
Benjamin Canac
b55a7c58f6 docs: improve installation description 2023-05-04 16:02:26 +02:00
Benjamin Canac
8c8bc0b751 docs: hide unfinished pages 2023-05-04 16:00:20 +02:00
Benjamin Canac
a076cae4bf fix(module): remove .ts ext from app.config 2023-05-04 15:38:32 +02:00
Benjamin Canac
5facfee76c Revert "chore(package): volta pin node 18"
This reverts commit a38ef00fb8.
2023-05-04 14:59:45 +02:00
Benjamin Canac
3c5256c462 chore(release): 2.0.0 2023-05-04 14:56:33 +02:00
Benjamin Canac
a38ef00fb8 chore(package): volta pin node 18 2023-05-04 14:55:18 +02:00
Benjamin Canac
6da0db0113 feat: rewrite to use app config and rework docs (#143)
Co-authored-by: Daniel Roe <daniel@roe.dev>
Co-authored-by: Sébastien Chopin <seb@nuxt.com>
2023-05-04 14:49:19 +02:00
Benjamin Canac
56230ea915 chore(release): 1.2.11 2023-05-04 11:01:28 +02:00
Benjamin Canac
126b5fcfd4 Revert "chore(github): add v1 branch to ci dev"
This reverts commit d3536d8768.
2023-05-04 11:00:12 +02:00
Benjamin Canac
d3536d8768 chore(github): add v1 branch to ci dev 2023-05-04 10:52:54 +02:00
Sylvain Marroufin
59f62d322f fix(defineShortcuts): use useEventListener (#150) 2023-05-04 10:50:10 +02:00
Sylvain Marroufin
b85a8e7203 chore(defineShortcuts): config prop whenever more flexible (#149) 2023-05-02 14:47:31 +02:00
Benjamin Canac
8830d848fd chore(release): 1.2.10 2023-04-07 19:23:36 +02:00
Benjamin Canac
cfce1524b2 fix(CommandPalette): typecheck 2023-04-07 19:23:25 +02:00
522 changed files with 47984 additions and 15045 deletions

View File

@@ -1,14 +0,0 @@
node_modules
dist
.nuxt
coverage
*.log*
.DS_Store
.code
*.iml
package-lock.json
templates/*
sw.js
# Templates
src/templates

View File

@@ -1,9 +0,0 @@
module.exports = {
root: true,
extends: [
'@nuxtjs/eslint-config-typescript'
],
rules: {
'vue/multi-word-component-names': 0
}
}

60
.github/ISSUE_TEMPLATE/bug-report.yml vendored Normal file
View File

@@ -0,0 +1,60 @@
name: "🐛 Bug report"
description: Report a bug to help us improve the module.
labels: ["triage", "bug"]
body:
- type: markdown
attributes:
value: |
Before reporting a bug, please make sure that you have read through our [documentation](https://ui.nuxt.com) and existing [issues](https://github.com/nuxt/ui/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc).
- type: textarea
id: env
attributes:
label: Environment
description: You can use `npx nuxi info` to fill this section
placeholder: |
- Operating System: `Darwin`
- Node Version: `v18.16.0`
- Nuxt Version: `3.7.3`
- CLI Version: `3.8.4`
- Nitro Version: `2.6.3`
- Package Manager: `pnpm@8.7.4`
- Builder: `-`
- User Config: `-`
- Runtime Modules: `-`
- Build Modules: `-`
validations:
required: true
- type: input
id: version
attributes:
label: Version
placeholder: v2.8.0
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Reproduction
description: Please provide a reproduction link using this template https://stackblitz.com/edit/nuxt-ui. A minimal [reproduction is required](https://antfu.me/posts/why-reproductions-are-required) unless you are absolutely sure that the issue is obvious and the provided information is enough to understand the problem. If a report is vague (e.g. just a generic error message) and has no reproduction, it will receive a "needs reproduction" label. If no reproduction is provided we might close it.
placeholder: https://stackblitz.com/edit/nuxt-ui
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: A clear and concise description of what the bug is. If you intend to submit a PR for this issue, tell us in the description.
validations:
required: true
- type: textarea
id: additonal
attributes:
label: Additional context
description: If applicable, add any other context or screenshots here.
- type: textarea
id: logs
attributes:
label: Logs
description: |
Optional if provided reproduction. Please try not to insert an image but copy paste the log text.
render: shell-script

74
.github/ISSUE_TEMPLATE/bug-v3.yml vendored Normal file
View File

@@ -0,0 +1,74 @@
name: "🐛 Bug report (v3)"
description: Report a bug to help us improve the module (v3 only).
labels: ["triage", "bug", "v3"]
body:
- type: markdown
attributes:
value: |
> [!IMPORTANT]
> As Nuxt UI v3 is currently in alpha, we recommend thorough testing before using it in production environments. We're actively working on stabilization and welcome feedback from early adopters to improve the library.
- type: markdown
attributes:
value: |
Before reporting a bug, please make sure that you have read through our [v3 documentation](https://ui3.nuxt.dev/) and existing [issues](https://github.com/nuxt/ui/issues?q=is%3Aissue%20is%3Aopen%20sort%3Aupdated-desc%20label%3Av3).
- type: textarea
id: env
attributes:
label: Environment
description: You can use `npx nuxi info` to fill this section
placeholder: |
- Operating System: `Darwin`
- Node Version: `v18.16.0`
- Nuxt Version: `3.7.3`
- CLI Version: `3.8.4`
- Nitro Version: `2.6.3`
- Package Manager: `pnpm@8.7.4`
- Builder: `-`
- User Config: `-`
- Runtime Modules: `-`
- Build Modules: `-`
validations:
required: true
- type: dropdown
id: package
attributes:
label: Is this bug related to Nuxt or Vue?
options:
- Nuxt
- Vue
validations:
required: true
- type: input
id: version
attributes:
label: Version
placeholder: v3.0.0-alpha.x
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Reproduction
description: Please provide a reproduction link. A minimal [reproduction is required](https://antfu.me/posts/why-reproductions-are-required) unless you are absolutely sure that the issue is obvious and the provided information is enough to understand the problem. If a report is vague (e.g. just a generic error message) and has no reproduction, it will receive a "needs reproduction" label. If no reproduction is provided we might close it.
placeholder: https://github.com/my/reproduction
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: A clear and concise description of what the bug is. If you intend to submit a PR for this issue, tell us in the description.
validations:
required: true
- type: textarea
id: additonal
attributes:
label: Additional context
description: If applicable, add any other context or screenshots here.
- type: textarea
id: logs
attributes:
label: Logs
description: |
Optional if provided reproduction. Please try not to insert an image but copy paste the log text.
render: shell-script

8
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: 📖 Documentation
url: https://ui.nuxt.com
about: Check the documentation for guides and examples.
- name: 📚 Discord
url: https://go.nuxt.com/discord
about: Consider asking questions in the help channel.

View File

@@ -0,0 +1,29 @@
name: "🚀 Feature request"
description: Suggest an idea or enhancement for the module.
labels: ["triage", "enhancement"]
body:
- type: markdown
attributes:
value: |
Before requesting a feature, please make sure that you have read through our [documentation](https://ui.nuxt.com) and existing [issues](https://github.com/nuxt/ui/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc).
- type: dropdown
id: version
attributes:
label: For what version of Nuxt UI are you suggesting this?
options:
- v2.x
- v3.0.0-alpha.x
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: A clear and concise description of what you think would be an helpful addition to the module, including the possible use cases and alternatives you have considered. If you have a working prototype or module that implements it, please include a link.
validations:
required: true
- type: textarea
id: additonal
attributes:
label: Additional context
description: If applicable, add any other context or screenshots here.

23
.github/ISSUE_TEMPLATE/question.yml vendored Normal file
View File

@@ -0,0 +1,23 @@
name: "💬 Question"
description: Ask a question about the module.
labels: ["question"]
body:
- type: markdown
attributes:
value: |
Before asking a question, please make sure that you have read through our [documentation](https://ui.nuxt.com) and existing [issues](https://github.com/nuxt/ui/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc).
- type: dropdown
id: version
attributes:
label: For what version of Nuxt UI are you asking this question?
options:
- v2.x
- v3.0.0-alpha.x
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
validations:
required: true

32
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,32 @@
<!---
☝️ PR title should follow conventional commits (https://conventionalcommits.org)
-->
### 🔗 Linked issue
<!-- If it resolves an open issue, please link the issue here. For example "Resolves #123" -->
### ❓ Type of change
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply. -->
- [ ] 📖 Documentation (updates to the documentation or readme)
- [ ] 🐞 Bug fix (a non-breaking change that fixes an issue)
- [ ] 👌 Enhancement (improving an existing functionality)
- [ ] ✨ New feature (a non-breaking change that adds functionality)
- [ ] 🧹 Chore (updates to the build process or auxiliary tools and libraries)
- [ ] ⚠️ Breaking change (fix or feature that would cause existing functionality to change)
### 📚 Description
<!-- Describe your changes in detail -->
<!-- Why is this change required? What problem does it solve? -->
### 📝 Checklist
<!-- Put an `x` in all the boxes that apply. -->
<!-- If your change requires a documentation PR, please link it appropriately -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [ ] I have linked an issue or discussion.
- [ ] I have updated the documentation accordingly.

View File

@@ -12,43 +12,48 @@ jobs:
ci:
runs-on: ${{ matrix.os }}
permissions:
contents: read
pull-requests: read
strategy:
matrix:
os: [ubuntu-latest] # macos-latest, windows-latest
node: [16]
node: [20]
env:
NUXT_GITHUB_TOKEN: ${{ secrets.NUXT_GITHUB_TOKEN }}
steps:
- uses: actions/setup-node@v2
- name: Checkout
uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Install node
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: pnpm
- name: Checkout
uses: actions/checkout@master
with:
persist-credentials: false
fetch-depth: 0
- name: Install dependencies
run: pnpm install
- name: Cache
uses: actions/cache@v2
with:
path: node_modules
key: ${{ matrix.os }}-node-v${{ matrix.node }}-deps-${{ hashFiles(format('{0}{1}', github.workspace, '/yarn.lock')) }}
- name: Dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: yarn
- name: Prepare
run: pnpm run dev:prepare
- name: Lint
run: yarn lint
run: pnpm run lint
- name: Typecheck
run: yarn typecheck
run: pnpm run typecheck
- name: Build
run: yarn build
run: pnpm run build
- name: Release Edge
if: github.event_name == 'push'
run: ./scripts/release-edge.sh
env:
NODE_AUTH_TOKEN: ${{secrets.NODE_AUTH_TOKEN}}
- name: Test
run: pnpm run test run
- name: Publish
run: pnpx pkg-pr-new publish --compact --no-template --pnpm

View File

@@ -4,9 +4,6 @@ on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
ci:
@@ -15,37 +12,41 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest] # macos-latest, windows-latest
node: [16]
node: [20]
env:
NUXT_GITHUB_TOKEN: ${{ secrets.NUXT_GITHUB_TOKEN }}
steps:
- uses: actions/setup-node@v2
- name: Checkout
uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Install node
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: pnpm
- name: Checkout
uses: actions/checkout@master
with:
persist-credentials: false
fetch-depth: 0
- name: Install dependencies
run: pnpm install
- name: Cache
uses: actions/cache@v2
with:
path: node_modules
key: ${{ matrix.os }}-node-v${{ matrix.node }}-deps-${{ hashFiles(format('{0}{1}', github.workspace, '/yarn.lock')) }}
- name: Dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: yarn
- name: Prepare
run: pnpm run dev:prepare
- name: Lint
run: yarn lint
run: pnpm run lint
- name: Typecheck
run: yarn typecheck
run: pnpm run typecheck
- name: Build
run: yarn build
run: pnpm run build
- name: Test
run: pnpm run test run
- name: Version Check
id: check

23
.github/workflows/stale.yml vendored Normal file
View File

@@ -0,0 +1,23 @@
name: stale
on:
schedule:
- cron: '30 1 * * *'
jobs:
stale:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v9
with:
exempt-issue-labels: triage,v3
stale-issue-message: 'This issue is stale because it has been open for 30 days with no activity.'
stale-issue-label: stale
stale-pr-label: stale
days-before-stale: 30
days-before-close: -1

4
.gitignore vendored
View File

@@ -6,3 +6,7 @@ nuxt.d.ts
dist
.DS_Store
.history
.vercel
.idea
.env
.data

3
.npmrc Normal file
View File

@@ -0,0 +1,3 @@
shamefully-hoist=true
auto-install-peers=true
ignore-workspace-root-check=true

1
.nuxtrc Normal file
View File

@@ -0,0 +1 @@
typescript.includeWorkspace=true

27
.release-it.json Normal file
View File

@@ -0,0 +1,27 @@
{
"git": {
"commitMessage": "chore(release): v${version}",
"tagName": "v${version}"
},
"npm": {
"publish": false
},
"github": {
"release": true,
"releaseName": "v${version}",
"web": true
},
"hooks": {
"before:init": ["pnpm lint", "pnpm typecheck"]
},
"plugins": {
"@release-it/conventional-changelog": {
"preset": {
"name": "conventionalcommits"
},
"infile": "CHANGELOG.md",
"header": "# Changelog",
"ignoreRecommendedBump": true
}
}
}

3
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"prettier.enable": false
}

View File

@@ -1,6 +1,993 @@
# Changelog
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
## [2.21.1](https://github.com/nuxt/ui/compare/v2.21.0...v2.21.1) (2025-03-08)
### Features
* **Form:** add standard schema support ([#2880](https://github.com/nuxt/ui/issues/2880)) ([9c36d37](https://github.com/nuxt/ui/commit/9c36d37b847468d1cbd76eea38ac00cbc22549ca))
* **module:** add `colorMode` option ([d2ceead](https://github.com/nuxt/ui/commit/d2ceeadae796254128697d94a3e317234bc2ecda)), closes [#3143](https://github.com/nuxt/ui/issues/3143)
* **SelectMenu:** add inputTargetForm prop to handle input validation ([#3107](https://github.com/nuxt/ui/issues/3107)) ([feb716c](https://github.com/nuxt/ui/commit/feb716c941f1e7315009b53861a4dc0c2f233052))
### Bug Fixes
* **Alert/Notification:** allow description ui override ([125a281](https://github.com/nuxt/ui/commit/125a28190b1a83e2456457e7a4ec618384b2446c)), closes [#2554](https://github.com/nuxt/ui/issues/2554)
* **Table:** revert [#2600](https://github.com/nuxt/ui/issues/2600) to fix excessive column data slot re-renders ([#3375](https://github.com/nuxt/ui/issues/3375)) ([23d9b51](https://github.com/nuxt/ui/commit/23d9b51a5861f5d1f32f68a3141a600655a0598a))
## [2.21.0](https://github.com/nuxt/ui/compare/v2.20.0...v2.21.0) (2025-01-14)
### Features
* **module:** handle `tailwindMerge` config from `app.config` ([#2902](https://github.com/nuxt/ui/issues/2902)) ([ea15e21](https://github.com/nuxt/ui/commit/ea15e21cdcba00e21302415829113e8c6def8a6e))
### Bug Fixes
* **Table:** `v-model` causing first column missing ([#2890](https://github.com/nuxt/ui/issues/2890)) ([d573fb6](https://github.com/nuxt/ui/commit/d573fb636f7f749ce95b93c5fb1ae2a053eeeeb0))
* **Table:** remove `[@select](https://github.com/select)` event on checkbox ([#3042](https://github.com/nuxt/ui/issues/3042)) ([d9d4f19](https://github.com/nuxt/ui/commit/d9d4f1915aac586ae1abf3ebe67ca9aff65b9be0))
* **tailwind:** use mjs template ([#2945](https://github.com/nuxt/ui/issues/2945)) ([8cf9f27](https://github.com/nuxt/ui/commit/8cf9f27d537bad5ffe4e136f52ff71548a451c5f))
## [2.20.0](https://github.com/nuxt/ui/compare/v2.19.2...v2.20.0) (2024-12-09)
### ⚠ BREAKING CHANGES
* **Form:** resolve async validation in yup & issue directly mutate state (#2701)
### Features
* **Accordion:** add `close` event ([#2750](https://github.com/nuxt/ui/issues/2750)) ([419a24f](https://github.com/nuxt/ui/commit/419a24f7034cefda2c6669f3c26742552e500f63))
* **Badge:** handle `icon` prop ([#2594](https://github.com/nuxt/ui/issues/2594)) ([0d1a76e](https://github.com/nuxt/ui/commit/0d1a76e3c69e08534abb295b96548e67cfbea00c))
* **InputMenu/SelectMenu:** add support for `dot notation` in `by` prop ([#2607](https://github.com/nuxt/ui/issues/2607)) ([53df9d9](https://github.com/nuxt/ui/commit/53df9d9a8cd6850803bdafc7ef6efe4e7404d334))
* **Link:** allow partial query match for `activeClass` ([#2663](https://github.com/nuxt/ui/issues/2663)) ([03e24f4](https://github.com/nuxt/ui/commit/03e24f45836bdddd94b30cbaecc2288a78b56b0b))
* **Notification:** add `pauseTimeoutOnHover` prop ([#2661](https://github.com/nuxt/ui/issues/2661)) ([11b8c3d](https://github.com/nuxt/ui/commit/11b8c3d9db1ec62b1c3557703c7ab5c99cb42df5))
* **Table:** add contextmenu handling to table rows ([#2283](https://github.com/nuxt/ui/issues/2283)) ([c9e6256](https://github.com/nuxt/ui/commit/c9e6256e7f2c06da8bfda13700f56f6994e76eab))
* **Table:** add custom `[@select](https://github.com/select):all` event ([#2581](https://github.com/nuxt/ui/issues/2581)) ([ac323c4](https://github.com/nuxt/ui/commit/ac323c4cccd930f2cd8c1f54b325bd509acd40bf))
* **Table:** allow dynamically render `checkbox` ([#2549](https://github.com/nuxt/ui/issues/2549)) ([d6daf46](https://github.com/nuxt/ui/commit/d6daf466ace42b828151c45b18cd47179e85d66d))
### Bug Fixes
* **AvatarGroup/ButtonGroup/MeterGroup:** allow deeply partial `ui` config ([#2542](https://github.com/nuxt/ui/issues/2542)) ([bf58086](https://github.com/nuxt/ui/commit/bf580863af11d6a1a4c6c6774b44ec37b082e933))
* **Carousel:** wrong `ui` type with `strategy` ([07ef771](https://github.com/nuxt/ui/commit/07ef771b17c72e275508a273371454a5e8a62257))
* **components:** replace `as const` with correct type in config ([#2652](https://github.com/nuxt/ui/issues/2652)) ([51c8b8e](https://github.com/nuxt/ui/commit/51c8b8e3e59d7eceff72625650a199fcf7c6feca))
* **date-picker:** undefined `dayIndex` ([#2545](https://github.com/nuxt/ui/issues/2545)) ([ce955d2](https://github.com/nuxt/ui/commit/ce955d24f1dfd222e87ce88428c0612c3f13cd50))
* **Form:** resolve async validation in yup & issue directly mutate state ([#2701](https://github.com/nuxt/ui/issues/2701)) ([f3632dd](https://github.com/nuxt/ui/commit/f3632ddee511f0fccb24d4fc37403421e84ffdae))
* **Form:** use parsed value from `joi` instead of original state ([#2587](https://github.com/nuxt/ui/issues/2587)) ([acecff4](https://github.com/nuxt/ui/commit/acecff40ec0156e45b4934c5d10c4dfa7c135f8e))
* **InputMenu/SelectMenu:** use `by` prop to compare objects & support dot notation in `value-attribute` ([#2566](https://github.com/nuxt/ui/issues/2566)) ([7154254](https://github.com/nuxt/ui/commit/7154254ac22830f651ec200f7f3af2f5577f2de0))
* **Link:** `exactQuery` prop type ([#2781](https://github.com/nuxt/ui/issues/2781)) ([4cde571](https://github.com/nuxt/ui/commit/4cde571e387775a9b12759f6f8c99117c84cbcff))
* **Notification:** element renders even when no `notification` is present ([#2561](https://github.com/nuxt/ui/issues/2561)) ([d4e408c](https://github.com/nuxt/ui/commit/d4e408cfd8e2ef26021519f2f30f57e9120e1939))
* **Table:** data outdated when rows change ([#2600](https://github.com/nuxt/ui/issues/2600)) ([b23f2de](https://github.com/nuxt/ui/commit/b23f2decfc9607555a315d0d087d0a042f03a938))
* **Table:** missing type on props `loadingState` ([#2551](https://github.com/nuxt/ui/issues/2551)) ([6e66990](https://github.com/nuxt/ui/commit/6e66990372ef6bd7c109a64c753d9b50e96a450b))
* **Table:** prevent `onClick` while blocking element ([#2592](https://github.com/nuxt/ui/issues/2592)) ([9703786](https://github.com/nuxt/ui/commit/97037864b39749db228fa5f51981f19e4a9c29dd))
* **types:** improve `DeepPartial` type for App Config ([#2621](https://github.com/nuxt/ui/issues/2621)) ([976b03f](https://github.com/nuxt/ui/commit/976b03f241ef9626a6338685e43c844a8b3953fd))
## [2.19.2](https://github.com/nuxt/ui/compare/v2.19.1...v2.19.2) (2024-11-05)
### Bug Fixes
* **Button:** put back `target` override ([212f7df](https://github.com/nuxt/ui/commit/212f7df35b9f81d189e1ee3e34f6fd2234cf52fe))
## [2.19.1](https://github.com/nuxt/ui/compare/v2.19.0...v2.19.1) (2024-11-05)
### Bug Fixes
* **InputMenu/SelectMenu:** regex breaks build ([cb6f5f2](https://github.com/nuxt/ui/commit/cb6f5f2d71ea8bb526a8f958daec8e9871469b63))
## [2.19.0](https://github.com/nuxt/ui/compare/v2.18.7...v2.19.0) (2024-11-05)
### Features
* **Form:** add `superstruct` validation ([#2357](https://github.com/nuxt/ui/issues/2357)) ([3cda6c6](https://github.com/nuxt/ui/commit/3cda6c6478d5284a3ffcb973270831601e8e5657))
* **Form:** apply transformations ([#2460](https://github.com/nuxt/ui/issues/2460)) ([ceecb60](https://github.com/nuxt/ui/commit/ceecb60c3bbd5507b1f54faed001818639d9269c))
* **Input/Textarea:** nullify model modifier ([#2309](https://github.com/nuxt/ui/issues/2309)) ([9dd7e61](https://github.com/nuxt/ui/commit/9dd7e615e97b6bf3c4c4096edd35a86ca3cfd53c))
* **InputMenu:** allows to customize labels ([#2295](https://github.com/nuxt/ui/issues/2295)) ([ddf67a0](https://github.com/nuxt/ui/commit/ddf67a060ba659f102673eff31eb2e30231c2d93))
* **Pagination:** improve slot props ([#2522](https://github.com/nuxt/ui/issues/2522)) ([c71fdc8](https://github.com/nuxt/ui/commit/c71fdc8795812bed779ab247451efd3db031e4cd))
* **SelectMenu:** allows to customize labels ([#2266](https://github.com/nuxt/ui/issues/2266)) ([54e713d](https://github.com/nuxt/ui/commit/54e713d31ae0b80b0f69dd507f71387100204ac3))
* **Table:** improve `expanded` row ([#2485](https://github.com/nuxt/ui/issues/2485)) ([1acd01a](https://github.com/nuxt/ui/commit/1acd01a440db7a7fa765189d8bde424ade9074e9))
### Bug Fixes
* **Accordion:** improve `items` type ([#2487](https://github.com/nuxt/ui/issues/2487)) ([25378df](https://github.com/nuxt/ui/commit/25378df1d894546c4b08eb43a58b02b40ab9649b))
* **Button:** wrong `to` type ([8ab4a14](https://github.com/nuxt/ui/commit/8ab4a14394e0890b33a610e6491d891e89386959)), closes [#1253](https://github.com/nuxt/ui/issues/1253)
* **Divider:** default `type` from app config ([7846ca3](https://github.com/nuxt/ui/commit/7846ca35b5332a9e70f9990059f6041d60770e79)), closes [nuxt/ui#2398](https://github.com/nuxt/ui/issues/2398)
* **HorizontalNavigation/VerticalNavigation:** handle `badge` in RTL mode ([#2420](https://github.com/nuxt/ui/issues/2420)) ([4bf81be](https://github.com/nuxt/ui/commit/4bf81be36463bf280f31099c97a751e65240dcf5))
* **InputMenu/SelectMenu:** allow access nested object in `option-attribute` ([#2465](https://github.com/nuxt/ui/issues/2465)) ([ff18061](https://github.com/nuxt/ui/commit/ff1806143c45a7d83b00e78bec979a8f412a2827))
* **InputMenu/SelectMenu:** escape regexp before search ([c68ba76](https://github.com/nuxt/ui/commit/c68ba76fd0eebf411ccd5f047ee9a01b8ec5f5de)), closes [nuxt/ui#2308](https://github.com/nuxt/ui/issues/2308)
* **InputMenu/SelectMenu:** prevent unnecessary updates when modelValue is unchanged ([#2507](https://github.com/nuxt/ui/issues/2507)) ([1a94b55](https://github.com/nuxt/ui/commit/1a94b55caac91685f518ae4c24ca8dcbee827f86))
* **module:** missing types in `ui` config ([#2467](https://github.com/nuxt/ui/issues/2467)) ([23971ef](https://github.com/nuxt/ui/commit/23971efdb007701352ce58412db597cd95b9996b))
* **Progress:** handle `carousel` and `carousel-inverse` animations in RTL mode ([#2400](https://github.com/nuxt/ui/issues/2400)) ([20fb46a](https://github.com/nuxt/ui/commit/20fb46a3ba8d74fcaa1407b23d65b117cc9d6802))
* **RadioGroup:** rendering empty slots ([#2456](https://github.com/nuxt/ui/issues/2456)) ([b6ed1c5](https://github.com/nuxt/ui/commit/b6ed1c59ffe8c8aaac78a34d8559ca793bb92eaa))
* **Table:** `checkbox` not checked while using props by ([#2401](https://github.com/nuxt/ui/issues/2401)) ([1b7e36c](https://github.com/nuxt/ui/commit/1b7e36cf70a7252915c58657bc878cb29c719a7f))
* **Table:** `indeterminate` checkbox with pagination ([#2439](https://github.com/nuxt/ui/issues/2439)) ([070d2f8](https://github.com/nuxt/ui/commit/070d2f89b6d1cb9c236eeb779cb3918ed5770434))
* **Table:** export `TableRow` and `TableColumn` types ([c36964b](https://github.com/nuxt/ui/commit/c36964b5eacbd61a661f02953f0297a390fd1d34)), closes [nuxt/ui#2373](https://github.com/nuxt/ui/issues/2373)
* **Table:** handle dot nation with `by` prop ([#2413](https://github.com/nuxt/ui/issues/2413)) ([b72d343](https://github.com/nuxt/ui/commit/b72d3434e9ab024e8622611d32b5a4467c8364b9))
* **Tabs:** allow `aria-label` on items ([3cf19ea](https://github.com/nuxt/ui/commit/3cf19ea5afcf97ef226d8be231d3b297c5f23b9f)), closes [nuxt/ui#1934](https://github.com/nuxt/ui/issues/1934)
## [2.18.7](https://github.com/nuxt/ui/compare/v2.18.6...v2.18.7) (2024-10-09)
### Features
* **forms:** allow `null` as initial value ([#2275](https://github.com/nuxt/ui/issues/2275)) ([474accb](https://github.com/nuxt/ui/commit/474accbefb36ead3b54406ee4ae0fdd2387fab61))
### Bug Fixes
* **Carousel:** arrows & indicators are broken in RTL ([#2251](https://github.com/nuxt/ui/issues/2251)) ([db5e5c4](https://github.com/nuxt/ui/commit/db5e5c49078a4faac3fb0c41b23b0dbd64efdd77))
* **Carousel:** pages calculation ([#2345](https://github.com/nuxt/ui/issues/2345)) ([5cf24fa](https://github.com/nuxt/ui/commit/5cf24fa6e7ba1508458dd5bc1319ac431d908cb0))
* **Dropdown/Popover:** conflict in toggle for touch devices ([#2272](https://github.com/nuxt/ui/issues/2272)) ([4ae9654](https://github.com/nuxt/ui/commit/4ae96540629faff1c3b5046cf7ce6a9315bb9bf4))
* **Link:** allow `title` field ([0aa3909](https://github.com/nuxt/ui/commit/0aa3909e715e34ac80565c0111d4378c828fb566)), closes [#1439](https://github.com/nuxt/ui/issues/1439)
* **Tooltip:** hide when `text` prop & slot are empty ([#2232](https://github.com/nuxt/ui/issues/2232)) ([5ed5c57](https://github.com/nuxt/ui/commit/5ed5c57d0d09ae39d623c963270bb0a894a97d29))
## [2.18.6](https://github.com/nuxt/ui/compare/v2.18.5...v2.18.6) (2024-09-23)
### Bug Fixes
* **components:** accept partial config in `ui` prop ([#2235](https://github.com/nuxt/ui/issues/2235)) ([eecf4f7](https://github.com/nuxt/ui/commit/eecf4f7ed8a32a874f00afd7bff2964a1366e0b5))
* **Modal/Slideover:** bind transition class to `TransitionChild` for Vue 3.5 ([#2227](https://github.com/nuxt/ui/issues/2227)) ([803c20a](https://github.com/nuxt/ui/commit/803c20ad92e8a31fefd6d300856735b0e9adbdf9))
* **SelectMenu:** wrong placeholder color with multiple ([#2218](https://github.com/nuxt/ui/issues/2218)) ([28ad5cf](https://github.com/nuxt/ui/commit/28ad5cf98251c6a8acec8d0bf4f0fd07ff6b7066))
* **Table:** colspan with expand ([#2217](https://github.com/nuxt/ui/issues/2217)) ([56118c4](https://github.com/nuxt/ui/commit/56118c4a794f3d763dad7b65e044814cf7ef11cf))
* **Tabs:** handle icon `margin` in RTL mode ([#2233](https://github.com/nuxt/ui/issues/2233)) ([ea05414](https://github.com/nuxt/ui/commit/ea05414930fe3f5e6805c8aa25bbe8f746bcc86e))
* **useFormField:** optional property access ([#2226](https://github.com/nuxt/ui/issues/2226)) ([0a054a5](https://github.com/nuxt/ui/commit/0a054a52b64b4f774041c40223e18e7e056cfd80))
## [2.18.5](https://github.com/nuxt/ui/compare/v2.18.4...v2.18.5) (2024-09-18)
### Features
* **Form:** add errors slot prop ([#2188](https://github.com/nuxt/ui/issues/2188)) ([67c6a74](https://github.com/nuxt/ui/commit/67c6a74ed15db1ee8a40e9c74ecfef0d3c3e374a))
### Bug Fixes
* **Button:** button link not showing disabled classes ([#2185](https://github.com/nuxt/ui/issues/2185)) ([e8ea84a](https://github.com/nuxt/ui/commit/e8ea84a5736759d953664f8f397a2339c212b294))
* **Carousel:** remove trailing space in next button icon ([#2088](https://github.com/nuxt/ui/issues/2088)) ([1282a5f](https://github.com/nuxt/ui/commit/1282a5f6c001aa05597d458800bafcf6b6419634))
* **FormGroup:** remove id when used with `RadioGroup` ([#2152](https://github.com/nuxt/ui/issues/2152)) ([7aec42c](https://github.com/nuxt/ui/commit/7aec42ca15aaa0ccc63c520b484cba203fd3232b))
* **Input:** avoid binding value when type is `file` ([#2047](https://github.com/nuxt/ui/issues/2047)) ([82313e8](https://github.com/nuxt/ui/commit/82313e862cbf21ae631156af4cd057f1383db634))
* **module:** allow CSS variables in tailwind colors ([#2014](https://github.com/nuxt/ui/issues/2014)) ([7f50c70](https://github.com/nuxt/ui/commit/7f50c7031fecb5ab26a6d0f58b576b2fd0860487))
* **module:** augment `@nuxt/schema` rather than `nuxt/schema` ([#2171](https://github.com/nuxt/ui/issues/2171)) ([ead904f](https://github.com/nuxt/ui/commit/ead904fd2f2bbb29fd60ccde063bf02daa2cbdbb))
* **module:** consider user tailwind `configPath` for module as string ([#2074](https://github.com/nuxt/ui/issues/2074)) ([e4ba4f7](https://github.com/nuxt/ui/commit/e4ba4f7c729f99dde51891636605793864812d30))
* **Pagination:** use links on prev and next button ([#2179](https://github.com/nuxt/ui/issues/2179)) ([c850f85](https://github.com/nuxt/ui/commit/c850f85aaa40c7abbe8cc4dc1bd4705bf7677390))
* **README:** update license link ([#2154](https://github.com/nuxt/ui/issues/2154)) ([8d79eea](https://github.com/nuxt/ui/commit/8d79eea19b3276b1f1e069d33b98b311e9b91cfd))
* **Slideover:** bind `rounded` class to panel ([#2187](https://github.com/nuxt/ui/issues/2187)) ([bf32baa](https://github.com/nuxt/ui/commit/bf32baaab01dc4150622f67b3b4a8d02d21b922c))
* **Slideover:** bind `shadow` class to panel ([#2201](https://github.com/nuxt/ui/issues/2201)) ([d22526c](https://github.com/nuxt/ui/commit/d22526c0c10735a92e63b7d086e7b8534a08d768))
* **Table:** checkbox can emit the `[@select](https://github.com/select)` event ([#2072](https://github.com/nuxt/ui/issues/2072)) ([b1f691f](https://github.com/nuxt/ui/commit/b1f691f28ca8c94f6b658dcb61eeff06951bd1d0))
* **Table:** select all rows reactivity issue ([#2200](https://github.com/nuxt/ui/issues/2200)) ([68124de](https://github.com/nuxt/ui/commit/68124de5106e55cb2987a6ba4ec1120d79b51788))
* **Tabs:** recalculate marker if items change ([#2101](https://github.com/nuxt/ui/issues/2101)) ([82c4926](https://github.com/nuxt/ui/commit/82c4926c090ce7fac48022a93b1b05b877bb48dd))
* **Textarea:** resolve row count calculation errors caused by scrollbar ([#2040](https://github.com/nuxt/ui/issues/2040)) ([8210936](https://github.com/nuxt/ui/commit/8210936f22fcf6b7eb5b9711e2c29be38956b8d6))
## [2.18.4](https://github.com/nuxt/ui/compare/v2.18.3...v2.18.4) (2024-08-05)
### Bug Fixes
* **Form:** submit event data ([#2012](https://github.com/nuxt/ui/issues/2012)) ([4d61936](https://github.com/nuxt/ui/commit/4d61936e7e90b664846a8f265825612c509511d7))
* **module:** handle nested colors from ui config ([#2008](https://github.com/nuxt/ui/issues/2008)) ([1cc7e2a](https://github.com/nuxt/ui/commit/1cc7e2a306e0f3f666b9a588f6ed02e7eabc0272))
* **module:** reduce css bundle size by fixing safelist regex ([#2005](https://github.com/nuxt/ui/issues/2005)) ([8ac9ca4](https://github.com/nuxt/ui/commit/8ac9ca49789a9a7281f7a40926e7e9a8068cc395))
* **module:** suffix types imports with `/index` ([7e37668](https://github.com/nuxt/ui/commit/7e37668940d06c5aa20b60d9bfd600d50a171014)), closes [#2018](https://github.com/nuxt/ui/issues/2018)
* **Tabs:** use `nextTick` before marker calc ([#2020](https://github.com/nuxt/ui/issues/2020)) ([9c04969](https://github.com/nuxt/ui/commit/9c049690227af8aba61a1f7c002b00c5dfeb63ff))
* **useFormGroup:** app config default input size ([#2011](https://github.com/nuxt/ui/issues/2011)) ([3485092](https://github.com/nuxt/ui/commit/3485092edb55f9ef2ca038a8c137431866d6c28a))
## [2.18.3](https://github.com/nuxt/ui/compare/v2.18.2...v2.18.3) (2024-07-30)
### Bug Fixes
* **Link:** define `rel` as any ([69f605f](https://github.com/nuxt/ui/commit/69f605fa724454e4be9e4cee9666a5d57f43a129))
* **types:** only use `.ts` for index ([93ddf1d](https://github.com/nuxt/ui/commit/93ddf1d60b0ea5f99f564f3d3969c397ad91cc72))
## [2.18.2](https://github.com/nuxt/ui/compare/v2.18.1...v2.18.2) (2024-07-25)
### Bug Fixes
* **Tabs:** add missing `UIcon` import ([4fd1be2](https://github.com/nuxt/ui/commit/4fd1be28922bf39584005c14982e5cd9a7d0c624))
## [2.18.1](https://github.com/nuxt/ui/compare/v2.18.0...v2.18.1) (2024-07-25)
### Bug Fixes
* **components:** use relative imports ([ea721a3](https://github.com/nuxt/ui/commit/ea721a3705cfbcef3075f8c9c1f4acf359974597))
## [2.18.0](https://github.com/nuxt/ui/compare/v2.17.0...v2.18.0) (2024-07-25)
### ⚠ BREAKING CHANGES
* **Icon:** migrate from `@egoist/tailwindcss-icons` to new `@nuxt/icon` (#1789)
### Features
* **Checkbox/Radio/RadioGroup:** add `help` slot ([c3122f7](https://github.com/nuxt/ui/commit/c3122f776daa6d68f201f22c37e0084aac37ed06)), closes [#1957](https://github.com/nuxt/ui/issues/1957)
* **CommandPalette:** handle `static` groups ([#1458](https://github.com/nuxt/ui/issues/1458)) ([b264ad2](https://github.com/nuxt/ui/commit/b264ad2ebdc8d4ee4aab5c994df968025207021f))
* **Icon:** migrate from `@egoist/tailwindcss-icons` to new `@nuxt/icon` ([#1789](https://github.com/nuxt/ui/issues/1789)) ([c904604](https://github.com/nuxt/ui/commit/c904604c23987c2535e0e91e9c4fec50477f6b34))
* **module:** improve app config types autocomplete ([#1870](https://github.com/nuxt/ui/issues/1870)) ([3f8ea5d](https://github.com/nuxt/ui/commit/3f8ea5dbded7b6836495103739688905ff26fe22))
* **RadioGroup:** add `selected` to label slot props ([#1587](https://github.com/nuxt/ui/issues/1587)) ([d18477d](https://github.com/nuxt/ui/commit/d18477def58171d51bdb7d00e31e2807b2e7015b))
* **SelectMenu:** add selected to `label` / `leading` / `trailing` slots props ([#1349](https://github.com/nuxt/ui/issues/1349)) ([6b216ca](https://github.com/nuxt/ui/commit/6b216cab1ba3bb69cb317254dfd562ab020c5e92))
* **SelectMenu:** handle function in `showCreateOptionWhen` prop ([#1853](https://github.com/nuxt/ui/issues/1853)) ([7e974b5](https://github.com/nuxt/ui/commit/7e974b55d72b8ac0ab42ef722a2d1904c3e4e091))
* **Skeleton:** add `as` prop ([#1955](https://github.com/nuxt/ui/issues/1955)) ([bce94db](https://github.com/nuxt/ui/commit/bce94db9fdb2c29a4f2e5981e5dce49a44a4ac8a))
* **Table:** expand row ([#1036](https://github.com/nuxt/ui/issues/1036)) ([7155318](https://github.com/nuxt/ui/commit/71553180294c53024c28de9bbebf4ea69f616da7))
* **Table:** handle `rowClass` property in `columns` ([#1632](https://github.com/nuxt/ui/issues/1632)) ([748e491](https://github.com/nuxt/ui/commit/748e49175da37b85bd18d62a8455875990866d5b))
* **Tabs:** handle `icon` in items ([#1798](https://github.com/nuxt/ui/issues/1798)) ([e8eb394](https://github.com/nuxt/ui/commit/e8eb3941ad4c1c306ccbe9e11d979d5f6c808330))
### Bug Fixes
* **Accordion:** truncate buttons ([5db18c0](https://github.com/nuxt/ui/commit/5db18c00565f9d2bb9f2768c2de2ab291a55bcae)), closes [#1909](https://github.com/nuxt/ui/issues/1909)
* **Alert/Notification:** missing margin on description ([2c55fb6](https://github.com/nuxt/ui/commit/2c55fb63365ee7cc1e993ebd5aa5f83ddadcd26a)), closes [#1959](https://github.com/nuxt/ui/issues/1959)
* **Breadcrumb:** use `rotate` on rtl icon ([53003fc](https://github.com/nuxt/ui/commit/53003fcd07d67d13ada0759ff6c5cd3635fba0e3))
* **ButtonGroup/FormGroup:** pass default sizes to children ([#1875](https://github.com/nuxt/ui/issues/1875)) ([6b6b03d](https://github.com/nuxt/ui/commit/6b6b03d59f5ab3096b731c59d18a1085d25b5e8e))
* **Carousel:** remove `mix-blend-overlay` on indicators ([#1714](https://github.com/nuxt/ui/issues/1714)) ([f74f1df](https://github.com/nuxt/ui/commit/f74f1df6ca5f93e11e542245b611c1aa7c4b8308))
* **FormGroup:** don't check for `error` slot so `help` slot can render ([#1888](https://github.com/nuxt/ui/issues/1888)) ([99c52e5](https://github.com/nuxt/ui/commit/99c52e50082d5e99440894c7a077a17510f0de50))
* **InputMenu/SelectMenu:** invalid `label` with `value-attribute` and async search ([4d5f250](https://github.com/nuxt/ui/commit/4d5f2509022e4fb74fc268d5479f7cc8f0415040)), closes [#1780](https://github.com/nuxt/ui/issues/1780)
* **InputMenu/SelectMenu:** prevent double filter with async search ([e2881d3](https://github.com/nuxt/ui/commit/e2881d3801c54c49d66d41d4f0ba312a7b3ebce7)), closes [#1966](https://github.com/nuxt/ui/issues/1966)
* **Link:** allow `ariaLabel` to be picked ([720c44d](https://github.com/nuxt/ui/commit/720c44dd5ee90bb3b30aef32f01ff6eae1397aa4)), closes [#1934](https://github.com/nuxt/ui/issues/1934)
* **Progress:** pass down attrs to `<progress>` to improve accessibility ([#1881](https://github.com/nuxt/ui/issues/1881)) ([abd13f1](https://github.com/nuxt/ui/commit/abd13f1f8fd4c8b10069174534c5fdec6c83576e))
* **RadioGroup:** allow boolean in `modelValue` prop ([#1913](https://github.com/nuxt/ui/issues/1913)) ([8eca5a0](https://github.com/nuxt/ui/commit/8eca5a0d627e22f42350a060f09c4e44b6de422f))
## [2.17.0](https://github.com/nuxt/ui/compare/v2.16.0...v2.17.0) (2024-06-13)
### Features
* **Alert:** add `actions` slot ([#1785](https://github.com/nuxt/ui/issues/1785)) ([c8dd71c](https://github.com/nuxt/ui/commit/c8dd71c4f5a5239811b07b50f1dc802101af07d5))
* **Form:** update and migrate `valibot` to v0.31.0 ([#1848](https://github.com/nuxt/ui/issues/1848)) ([1d5bd89](https://github.com/nuxt/ui/commit/1d5bd89d5881163fc6dc917e138b9d8304dff6c4))
* **Notification:** allow ring customization with `{color}` ([#1830](https://github.com/nuxt/ui/issues/1830)) ([3ebff4d](https://github.com/nuxt/ui/commit/3ebff4d133372e339e2c4c439576e9e192b29cc3))
* **Slideover:** handle `top` and `bottom` side ([#1834](https://github.com/nuxt/ui/issues/1834)) ([50ad14f](https://github.com/nuxt/ui/commit/50ad14f9dffe4f76bef888cd10d30b417c75bca5))
* **Tabs:** add `content` prop to avoid the render of the HTML markup ([#1831](https://github.com/nuxt/ui/issues/1831)) ([6e2678d](https://github.com/nuxt/ui/commit/6e2678d1d8a498322eb3eff909ccbba55e40a2b7))
### Bug Fixes
* **Alert/Notification:** use `div` for description ([e8898d1](https://github.com/nuxt/ui/commit/e8898d15a667ba66e78828315e3cc4e92845cd3f)), closes [#1551](https://github.com/nuxt/ui/issues/1551)
* **Alert:** base style not applied on icon ([#1859](https://github.com/nuxt/ui/issues/1859)) ([f65aefb](https://github.com/nuxt/ui/commit/f65aefb7067c1c64c1355b5d699129e716ef1281))
* **Breadcrumb:** allow `aria-current` to be overrideable ([ebfb835](https://github.com/nuxt/ui/commit/ebfb8350339725c0a6f88c73f16bff01d61538c2)), closes [#1856](https://github.com/nuxt/ui/issues/1856)
* **Carousel:** prevent mouse click when dragging ([#1781](https://github.com/nuxt/ui/issues/1781)) ([4f0d00f](https://github.com/nuxt/ui/commit/4f0d00f7a6eebf05adceaf1e7c2869ad91949cf3))
* **CommandPalette:** hide `empty-state` when `null` ([249bbd4](https://github.com/nuxt/ui/commit/249bbd49dc8420603e8d561543d237abeb400908)), closes [#1787](https://github.com/nuxt/ui/issues/1787)
* **Form:** maintain other errors when using `setErrors` with a path ([#1818](https://github.com/nuxt/ui/issues/1818)) ([06990be](https://github.com/nuxt/ui/commit/06990beabf67f668322b4d3fb2ec93cc4f3bdcd4))
* **Input:** hide wrapper when type is `hidden` ([#1797](https://github.com/nuxt/ui/issues/1797)) ([e7c2f78](https://github.com/nuxt/ui/commit/e7c2f7856c05ed96f48c83d64d8e1d3f41ab58fe))
* **Link:** typo in `exactHash` type ([581b470](https://github.com/nuxt/ui/commit/581b470cc79c2315bb2d56e02a7c134a7861c616)), closes [#1767](https://github.com/nuxt/ui/issues/1767)
* **SelectMenu:** wrong placeholder color when `modelValue` is an empty string ([9b9ccdb](https://github.com/nuxt/ui/commit/9b9ccdb59e98fed096dd18809af646b10de46b9f)), closes [#1862](https://github.com/nuxt/ui/issues/1862)
* **Select:** remove defaults for `value` and `text` ([6c124bb](https://github.com/nuxt/ui/commit/6c124bb1ac2fef116161da56a3a8e5f92144ce3a)), closes [#1702](https://github.com/nuxt/ui/issues/1702)
## [2.16.0](https://github.com/nuxt/ui/compare/v2.15.2...v2.16.0) (2024-05-07)
### ⚠ BREAKING CHANGES
* **Input:** redesign `file` type without absolute positioning (#1712)
### Features
* **InputMenu/SelectMenu:** allow lazy search ([#1705](https://github.com/nuxt/ui/issues/1705)) ([7e6ba78](https://github.com/nuxt/ui/commit/7e6ba786816516ab5007a2ff15fc974cfdd796ab))
* **module:** HMR support with `@nuxtjs/tailwindcss` ([#1665](https://github.com/nuxt/ui/issues/1665)) ([821e15b](https://github.com/nuxt/ui/commit/821e15b696b03d0f5e20e001d39f86a8b3cec426))
* **Table:** allow providing a `<caption>` ([#1680](https://github.com/nuxt/ui/issues/1680)) ([3fca668](https://github.com/nuxt/ui/commit/3fca66857d3616bf24a1b0579c90179a7883869d))
* **useToast:** allow clearing all notifications ([#1695](https://github.com/nuxt/ui/issues/1695)) ([82d619b](https://github.com/nuxt/ui/commit/82d619b2a75b9d08f3f5b314d37c30d77d8341e9))
### Bug Fixes
* **Breadcrumb:** pass `click` event to `ULink` ([5481dab](https://github.com/nuxt/ui/commit/5481dab53dbe0b28188b4a16811f3e8816d93edf))
* **Input:** redesign `file` type without absolute positioning ([#1712](https://github.com/nuxt/ui/issues/1712)) ([ed5c74d](https://github.com/nuxt/ui/commit/ed5c74dc17df784485eabc39c83e62ada9210a49))
* **Notification:** update timer when timeout prop changes ([#1673](https://github.com/nuxt/ui/issues/1673)) ([cba9ad7](https://github.com/nuxt/ui/commit/cba9ad78db58cb9228bb9c96f0469d43bde2bf3e))
* **Slideover:** export and clean types ([#1692](https://github.com/nuxt/ui/issues/1692)) ([bd3fa86](https://github.com/nuxt/ui/commit/bd3fa8658f84fb7bd96d322968462c5eaa987b86))
* **Table:** provide `aria-sort` for sortable table headings ([#1675](https://github.com/nuxt/ui/issues/1675)) ([6f60fa9](https://github.com/nuxt/ui/commit/6f60fa9a980020f6a5afc2916e699a7f9a47e8ce))
## [2.15.2](https://github.com/nuxt/ui/compare/v2.15.1...v2.15.2) (2024-04-12)
### Features
* **Accordion:** add `unmount` prop to allow lazy mounting for heavy components ([#1590](https://github.com/nuxt/ui/issues/1590)) ([91e5002](https://github.com/nuxt/ui/commit/91e50020507ac66992dfb52b3e0ad1a1ae5614b5))
* **Table:** add `checkbox` ui config ([#1409](https://github.com/nuxt/ui/issues/1409)) ([8b54660](https://github.com/nuxt/ui/commit/8b546600dbfbff187d9c5be1b35ea1772e94f83f))
### Bug Fixes
* **Breadcrumb:** missing `min-w-0` on wrapper to truncate ([9f01145](https://github.com/nuxt/ui/commit/9f01145bc674378371ff34d7110f3235b57d2459)), closes [#1650](https://github.com/nuxt/ui/issues/1650)
* **Carousel:** next and prev buttons disabled ([#1619](https://github.com/nuxt/ui/issues/1619)) ([e909884](https://github.com/nuxt/ui/commit/e909884d0327bfd7b4d5551382123f8998beff6a))
* **Popover/Dropdown:** prevent unintended closure on touchstart in mobile devices ([#1609](https://github.com/nuxt/ui/issues/1609)) ([2392b4a](https://github.com/nuxt/ui/commit/2392b4aa405430fc22766f130448a7cc5ced9a3a))
* **Slideover:** remove dynamic component when closing ([#1615](https://github.com/nuxt/ui/issues/1615)) ([58faa10](https://github.com/nuxt/ui/commit/58faa1053b9be3f627c3fcff1bcaa14850bb9e7f))
* **Slideover:** wait for transition to complete to reset state ([#1624](https://github.com/nuxt/ui/issues/1624)) ([07a4d13](https://github.com/nuxt/ui/commit/07a4d13c0fcb05c87fb42e02a3a2d6c5c52ccf09))
## [2.15.1](https://github.com/nuxt/ui/compare/v2.15.0...v2.15.1) (2024-04-02)
### Features
* **Avatar:** add `as` prop to use `NuxtImg` underneath ([49b73aa](https://github.com/nuxt/ui/commit/49b73aa024be14a9aa150a2804f4dcb18542fa49)), closes [#1577](https://github.com/nuxt/ui/issues/1577)
### Bug Fixes
* **Checkbox:** `[@change](https://github.com/change)` event value ([#1580](https://github.com/nuxt/ui/issues/1580)) ([c98d6e3](https://github.com/nuxt/ui/commit/c98d6e31c0e3f46b97957d5cf3de7f9da1f70c58))
* **Divider:** add `w-full` only on horizontal wrapper ([#1565](https://github.com/nuxt/ui/issues/1565)) ([bd8b737](https://github.com/nuxt/ui/commit/bd8b737642280e6a83b67f9a27dd7a823a77e963))
* **Dropdown:** missing `mouseenter` event on container ([7288953](https://github.com/nuxt/ui/commit/72889535e7e9763e7ebf59498f22c39bf09d6477))
* **Input/SelectMenu:** handle `file` type and `change` events ([#1570](https://github.com/nuxt/ui/issues/1570)) ([878f707](https://github.com/nuxt/ui/commit/878f7078a28c5e70a662682d1293db466d518c7d))
* **Popover:** missing `mouseenter` event on container ([8517897](https://github.com/nuxt/ui/commit/8517897c34adaa9e3624f867b43106deb59fcbe8)), closes [#1564](https://github.com/nuxt/ui/issues/1564)
## [2.15.0](https://github.com/nuxt/ui/compare/v2.14.2...v2.15.0) (2024-03-26)
### ⚠ BREAKING CHANGES
* **forms:** normalize input emits (#1560)
### Features
* **Accordion:** emit `open` event with index ([#1559](https://github.com/nuxt/ui/issues/1559)) ([224ec3c](https://github.com/nuxt/ui/commit/224ec3c1fbfb9875398d3af60e5fe49e47ce55b1))
* **Alert:** add `icon` & `avatar` slots ([#1401](https://github.com/nuxt/ui/issues/1401)) ([cee3e12](https://github.com/nuxt/ui/commit/cee3e126a472735c0e484de315868bb28287164f))
* **Slideover:** open programmatically ([#1465](https://github.com/nuxt/ui/issues/1465)) ([e769759](https://github.com/nuxt/ui/commit/e7697595c8769ceea61690f6c2f294206de50972))
* **Toggle:** add `loading` prop ([#1546](https://github.com/nuxt/ui/issues/1546)) ([e1e05af](https://github.com/nuxt/ui/commit/e1e05af0bafd1e5d1b91f374562ed8d389fb0cae))
### Bug Fixes
* **ButtonGroup:** nested group elements ([#1530](https://github.com/nuxt/ui/issues/1530)) ([7658211](https://github.com/nuxt/ui/commit/765821153753d1a49276421511224336aebcdd2f))
* **Carousel:** add tab-based ARIA roles ([#1516](https://github.com/nuxt/ui/issues/1516)) ([e736eca](https://github.com/nuxt/ui/commit/e736ecafff59f9d4eb88b366ef1e9d26449b8ca3))
* **Checkbox:** bind `data-n-ids` to root element ([#1495](https://github.com/nuxt/ui/issues/1495)) ([a2b8b70](https://github.com/nuxt/ui/commit/a2b8b700df6ad0907a5d4d622d178d1345b55b83))
* **forms:** normalize input emits ([#1560](https://github.com/nuxt/ui/issues/1560)) ([92e7362](https://github.com/nuxt/ui/commit/92e736213b221d5ec8cfb8881fda4fc65ce7dfa0))
* **InputMenu:** trigger alignement on safari ([f4a48f6](https://github.com/nuxt/ui/commit/f4a48f6016ede664e4f46741e7811b0dbe0acfbe)), closes [#1505](https://github.com/nuxt/ui/issues/1505)
* opt in to `import.meta.*` properties ([#1561](https://github.com/nuxt/ui/issues/1561)) ([cc62e34](https://github.com/nuxt/ui/commit/cc62e345eb96a632730bed796c77afe7ecdadf2a))
* **Popover/Dropdown:** use `[@touchstart](https://github.com/touchstart).passive` instead of `[@touchstart](https://github.com/touchstart).prevent` ([#1520](https://github.com/nuxt/ui/issues/1520)) ([a563d8f](https://github.com/nuxt/ui/commit/a563d8fed44535107080fee094995d87ca5dc2b6))
* **SelectMenu:** `filteredOptions` might be undefined ([#1541](https://github.com/nuxt/ui/issues/1541)) ([b0ecac5](https://github.com/nuxt/ui/commit/b0ecac563c5702fe40cf42a8861b1d2d1366d423))
* **SelectMenu:** handle `Boolean` type as model value ([#1550](https://github.com/nuxt/ui/issues/1550)) ([c49f899](https://github.com/nuxt/ui/commit/c49f8999d319ec487672ebd68e8b3f0031843cd6))
## [2.14.2](https://github.com/nuxt/ui/compare/v2.14.1...v2.14.2) (2024-03-05)
### Bug Fixes
* **Alert:** improve `description` alignment when no title provided ([ca4f06a](https://github.com/nuxt/ui/commit/ca4f06a313314af5813007878a9b6c8f1003c6d1)), closes [#1408](https://github.com/nuxt/ui/issues/1408)
* **Checkbox:** label interaction without `FormGroup` ([#1427](https://github.com/nuxt/ui/issues/1427)) ([6e77f1d](https://github.com/nuxt/ui/commit/6e77f1d5144d7d87b0c76b43ecf3d731166c808b))
* **Dropdown:** active/inactive dropdown links ([#1407](https://github.com/nuxt/ui/issues/1407)) ([6a1142b](https://github.com/nuxt/ui/commit/6a1142b4032150def78c69080df455f7d2a25e7b))
* **Dropdown:** improve `hover` mode on touch devices ([70bf4a7](https://github.com/nuxt/ui/commit/70bf4a73921f47fcd41599874b595a6eed947f5a))
* **HorizontalNavigation:** add `relative` class to icon ([0a4a9e3](https://github.com/nuxt/ui/commit/0a4a9e3d2c4a7584570e4ab7ae6fe8265c960a33))
* **Modal:** remove `overflow-hidden` ([#1460](https://github.com/nuxt/ui/issues/1460)) ([002129c](https://github.com/nuxt/ui/commit/002129c29926df5a816288b916194ab28cf4c8a4))
* **Notification:** improve `description` alignment when no title provided ([9cce445](https://github.com/nuxt/ui/commit/9cce4456d03c52daca4d7347e60cbcd7f501317a))
* **Popover:** improve `hover` mode on touch devices ([b50fbcf](https://github.com/nuxt/ui/commit/b50fbcf760e908579e81f6e57234f2080e2bf035))
* **RadioGroup:** add missing `fieldset` config ([2d64b50](https://github.com/nuxt/ui/commit/2d64b50559946b166c02cfe921e63d746cdc09d4)), closes [#1472](https://github.com/nuxt/ui/issues/1472)
* **SelectMenu:** check `null` model value ([4b6e80e](https://github.com/nuxt/ui/commit/4b6e80e3646e263a83614830d9ec6adb0edf2ede)), closes [#1421](https://github.com/nuxt/ui/issues/1421)
* **Tooltip:** arrow not hidden on mobile ([272c19d](https://github.com/nuxt/ui/commit/272c19de708144b1b132b98a7287254974f4e144)), closes [#1470](https://github.com/nuxt/ui/issues/1470)
* **VerticalNavigation:** add `relative` class to icon ([0b29dd4](https://github.com/nuxt/ui/commit/0b29dd4ca560cac7d151132e086eab17c0498a5c)), closes [#1245](https://github.com/nuxt/ui/issues/1245)
## [2.14.1](https://github.com/nuxt/ui/compare/v2.14.0...v2.14.1) (2024-02-23)
### Bug Fixes
* **module:** revert tailwind config from [#1272](https://github.com/nuxt/ui/issues/1272) ([#1404](https://github.com/nuxt/ui/issues/1404)) ([ba15add](https://github.com/nuxt/ui/commit/ba15add4db5d2f84e987819628cbbf88edcbad57))
## [2.14.0](https://github.com/nuxt/ui/compare/v2.13.0...v2.14.0) (2024-02-22)
### Features
* **Carousel:** expose methods to allow autoplay ([41ecd2a](https://github.com/nuxt/ui/commit/41ecd2a3d553886db3e32d9f48a477268d93f3c6)), closes [#1300](https://github.com/nuxt/ui/issues/1300)
* **Divider:** handle `size` prop ([#1307](https://github.com/nuxt/ui/issues/1307)) ([cbeede6](https://github.com/nuxt/ui/commit/cbeede66bb3bd7778e03c19ebbf55bf7bd753cb8))
* **Form:** use nuxt `useId` to bind input labels ([#1211](https://github.com/nuxt/ui/issues/1211)) ([27c71fa](https://github.com/nuxt/ui/commit/27c71fa40ecb9f8524fee7f3d17a384bc8812d25))
* **Input:** handle type `file` ([946a39c](https://github.com/nuxt/ui/commit/946a39c73990dc352cf7b9a77bfaec339cdcab34)), closes [#563](https://github.com/nuxt/ui/issues/563)
* **Modal:** open programmatically ([#1319](https://github.com/nuxt/ui/issues/1319)) ([6f29c62](https://github.com/nuxt/ui/commit/6f29c620ab758e27be63f8af53674828b59fb6ed))
* **Table:** display progress bar when `loading` ([#1362](https://github.com/nuxt/ui/issues/1362)) ([3fe3521](https://github.com/nuxt/ui/commit/3fe35217cbc0cef7f41550c175e4e7ea2cc939a8))
* **Tabs:** add `unmount` prop as `false` by default ([843a978](https://github.com/nuxt/ui/commit/843a9786445f6170c1380e3b404151da52b5a154)), closes [#663](https://github.com/nuxt/ui/issues/663)
* **Textarea:** add `maxrows` prop to restrict autoresize ([#1302](https://github.com/nuxt/ui/issues/1302)) ([f643e7b](https://github.com/nuxt/ui/commit/f643e7b316639a79cf03da25250ab0fa85f466d5))
### Bug Fixes
* **Accordion:** style disclosure `div` after [#1199](https://github.com/nuxt/ui/issues/1199) ([882247e](https://github.com/nuxt/ui/commit/882247e5f40bf41fdfdffea501de5c898a7fb0b2))
* **Alert:** remove `required` title to prevent warning when using slot ([e545b6f](https://github.com/nuxt/ui/commit/e545b6f0a128475166dcea3c1028798b106805f3))
* **Card:** prevent `body` padding without default slot ([f682905](https://github.com/nuxt/ui/commit/f682905b26a22546634e9adc4b838a7741dbd7c9))
* **components:** hydration attribute mismatch with vue `3.4` ([#1199](https://github.com/nuxt/ui/issues/1199)) ([10db144](https://github.com/nuxt/ui/commit/10db14475f7a527180be3fcf33cc5d3af52452c9))
* **Form:** improve `validate` path type ([#1370](https://github.com/nuxt/ui/issues/1370)) ([5266591](https://github.com/nuxt/ui/commit/5266591c886422d5265e46e08e1276913d12bed1))
* **Form:** return false when silent validation fails ([#1371](https://github.com/nuxt/ui/issues/1371)) ([d4b6147](https://github.com/nuxt/ui/commit/d4b6147fcceb7ff9cebe1586bb3094b10f50acb5))
* **Link:** check `disabled` prop before navigating ([#1321](https://github.com/nuxt/ui/issues/1321)) ([ac42ec1](https://github.com/nuxt/ui/commit/ac42ec106ff259e1d44515e5fb3b5236559ac713))
* **Meter:** missing import of `Icon` component ([f8b296f](https://github.com/nuxt/ui/commit/f8b296fc60b93c4656fd397f8eb6b06b4a1dcd93)), closes [#1328](https://github.com/nuxt/ui/issues/1328)
* **module:** prevent tailwind warn with `bun` ([bb40c31](https://github.com/nuxt/ui/commit/bb40c3103174a039f65b31c65fcc5d40cb29ce6b)), closes [#809](https://github.com/nuxt/ui/issues/809)
* **module:** put back `all` option in icons plugin ([412cd75](https://github.com/nuxt/ui/commit/412cd75eddb6140d7d9b3358b04df1e61f22b481)), closes [#1237](https://github.com/nuxt/ui/issues/1237)
* **Notification:** remove `required` title to prevent warning when using slot ([aa2b1ca](https://github.com/nuxt/ui/commit/aa2b1cae8881dece9a629dc95a8f9df88f9bbd27))
* **Progress:** prevent `NaN` percent display when indeterminate ([a55a08a](https://github.com/nuxt/ui/commit/a55a08a91eca6f4c7ff3ad40ee566b6445d2dfd0))
* **RadioGroup:** pass `help` prop to radio children ([5a5b284](https://github.com/nuxt/ui/commit/5a5b284e967ca9cdb6c7df9809ed4f4569a65cfa)), closes [#1313](https://github.com/nuxt/ui/issues/1313)
* **SelectMenu:** revert component `is` after [#1199](https://github.com/nuxt/ui/issues/1199) ([d0f4530](https://github.com/nuxt/ui/commit/d0f4530e8572a08d544041dec1f24a51bbc3b1e8))
* **utils:** prevent merge of `popper` key ([9f35297](https://github.com/nuxt/ui/commit/9f352976ced5845a5fad00a6630d0166941a8a13)), closes [#1393](https://github.com/nuxt/ui/issues/1393)
### Reverts
* Revert "docs: add missing `overflow-hidden` on components" ([b893607](https://github.com/nuxt/ui/commit/b8936070f9e1f866a21d39f6c45140f86efebec4))
## [2.13.0](https://github.com/nuxt/ui/compare/v2.12.3...v2.13.0) (2024-01-30)
### ⚠ BREAKING CHANGES
* **VerticalNavigation:** use `Badge` component for consistency
### Features
* **Carousel:** new component ([#927](https://github.com/nuxt/ui/issues/927)) ([f37b043](https://github.com/nuxt/ui/commit/f37b0431382867c24a0eff511ae151115cdfa2a2))
* **Dropdown:** default delay from config ([c4a1c04](https://github.com/nuxt/ui/commit/c4a1c04174d612e8c4cdd430067a3bdf3d69f4bf))
* **Form:** handle multiple paths in `validate` ([#1273](https://github.com/nuxt/ui/issues/1273)) ([20ac4b3](https://github.com/nuxt/ui/commit/20ac4b3332267491067f3a5a393ca97e3ec6bab5))
* **HorizontalNavigation:** new component ([#1279](https://github.com/nuxt/ui/issues/1279)) ([b8007ba](https://github.com/nuxt/ui/commit/b8007bab5efde70a375d6e3b9be91a0b698485b1))
* **InputMenu:** handle `nullable` prop when clearing input ([5e49fb8](https://github.com/nuxt/ui/commit/5e49fb8736e01889b8f7a60cf0edc420e49fe52c))
* **Modal/Slideover:** emit `close-prevented` event ([#1207](https://github.com/nuxt/ui/issues/1207)) ([6faf15b](https://github.com/nuxt/ui/commit/6faf15bc7460d7473ec47de48e407d45cf7d2e26))
* **module:** add option to disable global css styles ([#1266](https://github.com/nuxt/ui/issues/1266)) ([f96eb5e](https://github.com/nuxt/ui/commit/f96eb5e8b794af75303a98fa38e5285bcf928614))
* **Popover:** default delay from config ([7f5711b](https://github.com/nuxt/ui/commit/7f5711bc76cc509079934fd15ebbccb82bced064))
* **Tooltip:** default delay from config ([3400b56](https://github.com/nuxt/ui/commit/3400b56d82c1713e67838ba246bba687f3056fe6))
* **VerticalNavigation:** use `Badge` component for consistency ([3e81eee](https://github.com/nuxt/ui/commit/3e81eee6e6dc066dda9e2270e183a76bc8695996))
### Bug Fixes
* **Breadrumb:** handle truncate ([5d3a962](https://github.com/nuxt/ui/commit/5d3a962782781e4204d24a2f240974612912f7ee))
* **Link:** propagate `active` prop to slot as `isActive` ([b76e761](https://github.com/nuxt/ui/commit/b76e761bbb98fe7bbd19fba16220e26fd96e9731))
* **Select:** consistent placeholder with input and textarea ([2cb41db](https://github.com/nuxt/ui/commit/2cb41db111da79f4f3f8ccd825071820050ba885)), closes [#1276](https://github.com/nuxt/ui/issues/1276)
* **Slideover:** handle translate in RTL mode ([#1259](https://github.com/nuxt/ui/issues/1259)) ([ea58c88](https://github.com/nuxt/ui/commit/ea58c88baab3a0684e5b0140895ee630087ea044))
## [2.12.3](https://github.com/nuxt/ui/compare/v2.12.2...v2.12.3) (2024-01-18)
### Bug Fixes
* **link:** import type from `[#vue](https://github.com/nuxt/ui/issues/vue)-router` ([79ec3fd](https://github.com/nuxt/ui/commit/79ec3fd031e28d15854e2f0d4fb978df337e43d5)), closes [#1253](https://github.com/nuxt/ui/issues/1253)
## [2.12.2](https://github.com/nuxt/ui/compare/v2.12.1...v2.12.2) (2024-01-18)
### Bug Fixes
* **link:** improve nuxt link `rel` type ([05e90aa](https://github.com/nuxt/ui/commit/05e90aa1d13ab1772189d33278f482405ff88975))
## [2.12.1](https://github.com/nuxt/ui/compare/v2.12.0...v2.12.1) (2024-01-18)
### Bug Fixes
* **Button:** inherit nuxt link props without breaking `nuxt-component-meta` ([d3e19dc](https://github.com/nuxt/ui/commit/d3e19dc65a530201c3adc7738e95e5a09b0a9274)), closes [#578](https://github.com/nuxt/ui/issues/578)
* **Button:** pass-through nuxt link props to `ULink` ([a44bfc8](https://github.com/nuxt/ui/commit/a44bfc85114bed15ed25bb8c79d7ed52adc8d43c))
* **InputMenu:** take `option-attribute` into account to display label ([1a93791](https://github.com/nuxt/ui/commit/1a937919a26546cfd7edb3f6a11ef790d401999d))
* **Link:** prevent `type` bind on `<a>` ([b0df864](https://github.com/nuxt/ui/commit/b0df86437902696b594e5e7042601506a8bf4436))
* **SelectMenu:** take `option-attribute` into account to display label ([b9fe74b](https://github.com/nuxt/ui/commit/b9fe74bca5f48555e76c16237c2acc868f69e243)), closes [#1151](https://github.com/nuxt/ui/issues/1151)
* **Tooltip:** typo in kbd component ([4405d32](https://github.com/nuxt/ui/commit/4405d3239f7e19d399659347f079555318b3231b))
## [2.12.0](https://github.com/nuxt/ui/compare/v2.11.1...v2.12.0) (2024-01-09)
### ⚠ BREAKING CHANGES
* **Card:** remove `overflow-hidden` on wrapper
### Features
* **Breadcrumb:** handle `labelClass` and merge `iconClass` ([f623ec1](https://github.com/nuxt/ui/commit/f623ec1130edf448988784b36c15a850470685c4))
* **Dropdown:** handle `labelClass` and merge `iconClass` ([1c9835d](https://github.com/nuxt/ui/commit/1c9835d7f149231cf2e3e053e5ea08eceeaaa61d)), closes [#716](https://github.com/nuxt/ui/issues/716)
* **Dropdown:** handle manual mode ([3844714](https://github.com/nuxt/ui/commit/38447146445618a1310a6315c608f4cd21069e17)), closes [#1143](https://github.com/nuxt/ui/issues/1143)
* **Form:** expose submit function ([#1186](https://github.com/nuxt/ui/issues/1186)) ([4a25a12](https://github.com/nuxt/ui/commit/4a25a12390f8ecae83c1081c89eba99a8fda14f8))
* **InputMenu:** new component ([#1095](https://github.com/nuxt/ui/issues/1095)) ([6d8d82a](https://github.com/nuxt/ui/commit/6d8d82a265692aaee556e40b09e4b3048ae044da))
* **Pagination:** add `disabled` prop ([0976833](https://github.com/nuxt/ui/commit/0976833753cd2140649bc324f53a263d4e09ecff)), closes [#1189](https://github.com/nuxt/ui/issues/1189)
* **Popover:** open and close events ([#1038](https://github.com/nuxt/ui/issues/1038)) ([f32f578](https://github.com/nuxt/ui/commit/f32f578125c12b35e59db2f7981c8b1b5a146397))
* **SelectMenu:** add `empty` slot when no options ([5d1919a](https://github.com/nuxt/ui/commit/5d1919a5381b316637d50405d287428f67f2b9cc)), closes [#1089](https://github.com/nuxt/ui/issues/1089)
* **SelectMenu:** allow control of search query ([f735db0](https://github.com/nuxt/ui/commit/f735db04d62fca678ca30ecd565b32e70bcda3e0)), closes [#1174](https://github.com/nuxt/ui/issues/1174)
* **SelectMenu:** allow creating option despite search ([#1080](https://github.com/nuxt/ui/issues/1080)) ([0fdc8f7](https://github.com/nuxt/ui/commit/0fdc8f70b6a656114d30b07d682e4edcd61a23fb))
* **Table:** add `sort-mode` prop ([56e0c9a](https://github.com/nuxt/ui/commit/56e0c9a9a05e1e8491e2d460b8d51084bd2c1305)), closes [#1149](https://github.com/nuxt/ui/issues/1149)
* **Table:** add custom sort function to columns ([#1075](https://github.com/nuxt/ui/issues/1075)) ([4f3af6c](https://github.com/nuxt/ui/commit/4f3af6cfdb5213d1be3d2680fcf3a95f7b3bc0b3))
* **VerticalNavigation:** ability to add dividers ([#963](https://github.com/nuxt/ui/issues/963)) ([ffd20b3](https://github.com/nuxt/ui/commit/ffd20b3991a35ae7fa0e249fa009e330fd963705))
* **VerticalNavigation:** handle `labelClass` and merge `iconClass` ([a79f7c0](https://github.com/nuxt/ui/commit/a79f7c0a34c0414fe4feb95691e1f044b07ef087))
* **VerticalNavigation:** improve accessibility ([#948](https://github.com/nuxt/ui/issues/948)) ([29e64ca](https://github.com/nuxt/ui/commit/29e64ca963eeed1e82640957860f43391d8683ed))
### Bug Fixes
* **Alert:** always pass a function to actions click events ([5d78111](https://github.com/nuxt/ui/commit/5d781112f1eb464658c83047bf80c2ea7c9a2b05)), closes [#1197](https://github.com/nuxt/ui/issues/1197)
* **Card:** remove `overflow-hidden` on wrapper ([4124406](https://github.com/nuxt/ui/commit/412440603206151d63b04ffe6bed1bbc5b0e6615)), closes [#806](https://github.com/nuxt/ui/issues/806) [#1034](https://github.com/nuxt/ui/issues/1034)
* **config:** prevent class merge of `avatar` size ([b22bd70](https://github.com/nuxt/ui/commit/b22bd70d54e68c3217ba42690210084749fee656))
* **Dropdown:** improve placement with `hover` mode ([c6aa421](https://github.com/nuxt/ui/commit/c6aa4215d7f9003adeefa7cdff76c7a88715f20c)), closes [#1179](https://github.com/nuxt/ui/issues/1179)
* **Dropdown:** merge item `class` ([7151b7b](https://github.com/nuxt/ui/commit/7151b7b97d42f389506521044ebaffa8a299e7fb)), closes [#1157](https://github.com/nuxt/ui/issues/1157)
* **Form:** invalid errors when using `clear` by path ([#1165](https://github.com/nuxt/ui/issues/1165)) ([97a3975](https://github.com/nuxt/ui/commit/97a39751977bf1e942e2bafd5839141383b7af2f))
* **Form:** memory leak ([#1185](https://github.com/nuxt/ui/issues/1185)) ([ea2a24b](https://github.com/nuxt/ui/commit/ea2a24b5fe6ddc87e6eb951a662ce8b84b9d987f))
* **forms:** dont disable inputs and selects on `loading` ([3258167](https://github.com/nuxt/ui/commit/3258167a1431b664cd1dcc925a4b3fe06a996831)), closes [#1117](https://github.com/nuxt/ui/issues/1117)
* **Link:** handle `active` override when value is false ([83631cc](https://github.com/nuxt/ui/commit/83631ccbca1364f012b0c2899f97e2166dd1d360))
* **Popover:** allow manual mode without blocking normal behaviour ([3334e2a](https://github.com/nuxt/ui/commit/3334e2af3de2844de08ee530e62f2e4e2fd7ed24))
* **Popover:** improve placement with `hover` mode ([bc00f9c](https://github.com/nuxt/ui/commit/bc00f9c4b25dd4b99cb6e53014624f41ee929654)), closes [#781](https://github.com/nuxt/ui/issues/781)
* **RadioGroup:** pass `option.disabled` to children ([0c8ab9d](https://github.com/nuxt/ui/commit/0c8ab9d98e494c49cceac111edc0606ee4d63638)), closes [#1109](https://github.com/nuxt/ui/issues/1109)
* **SelectMenu:** input border focus after `tailwindcss` 3.4 ([e8f573b](https://github.com/nuxt/ui/commit/e8f573b6bb32a22873d9f93b40883ca12b481d7e))
* **Table:** display nothing instead of error when key is missing ([00d0fd5](https://github.com/nuxt/ui/commit/00d0fd59192cc171abb3d2ddaee46b2b9fa9422f)), closes [#1173](https://github.com/nuxt/ui/issues/1173)
* **Table:** respect sort prop updates from parent component ([#1208](https://github.com/nuxt/ui/issues/1208)) ([c6841d0](https://github.com/nuxt/ui/commit/c6841d06a48ffef95d238f94a4822a1e48b85422))
* **Toggle:** add missing `change` event ([4c84839](https://github.com/nuxt/ui/commit/4c84839a0183756b9f8df8674aace8cd40e44dcd)), closes [#1113](https://github.com/nuxt/ui/issues/1113)
* update vue and fix type issues ([#1112](https://github.com/nuxt/ui/issues/1112)) ([5c99ae1](https://github.com/nuxt/ui/commit/5c99ae131d1a50a8db21f1d5794a06080c515831))
* **useShortcuts:** include `contenteditable="plaintext-only"` elements in `usingInput` ([#1159](https://github.com/nuxt/ui/issues/1159)) ([648eec3](https://github.com/nuxt/ui/commit/648eec31b99fcffb65c042e0a5587da941c8e90f))
* **useShortcuts:** invalid code after [#1159](https://github.com/nuxt/ui/issues/1159) ([56e1fed](https://github.com/nuxt/ui/commit/56e1fed373786fc158ca9da9f02a9ec4e273afce))
### Reverts
* Revert "docs: pull `nuxt/ui-pro` docs from `main` branch" ([d0ce8ee](https://github.com/nuxt/ui/commit/d0ce8ee1c4a3d7b2285885d76e02e03168011110))
## [2.11.1](https://github.com/nuxt/ui/compare/v2.11.0...v2.11.1) (2023-12-11)
### Bug Fixes
* **Breadcrumb:** handle divider in rtl ([#1049](https://github.com/nuxt/ui/issues/1049)) ([e53cdea](https://github.com/nuxt/ui/commit/e53cdeaf0b3746da76cb6a658a5f71064d97fc9a))
* **CommandPalette:** improve performances and avoid multiple recompute ([db508b2](https://github.com/nuxt/ui/commit/db508b218f5277b2522566f790bd268eae2ee1e5))
* **CommandPalette:** missing right padding on input with close button ([ad33b26](https://github.com/nuxt/ui/commit/ad33b26729b1bf3d21f8d480e04c197f4fbb6119))
* **components:** move remaining classes to config ([#1039](https://github.com/nuxt/ui/issues/1039)) ([e408eab](https://github.com/nuxt/ui/commit/e408eabd8b841cdf8c71ce27c35c9675f2db8625))
* **module:** prevent class merging on `default` children ([f07968a](https://github.com/nuxt/ui/commit/f07968afef263d38183ce6c9cd9185ef7eee0494)), closes [#1076](https://github.com/nuxt/ui/issues/1076)
* **Notification:** handle dynamic backgrounds ([#1063](https://github.com/nuxt/ui/issues/1063)) ([1f0f618](https://github.com/nuxt/ui/commit/1f0f6181db7fa1ab45b8f7fec8df1cedccaec688))
* **RadioGroup:** props reactivity issues ([#1065](https://github.com/nuxt/ui/issues/1065)) ([7196d81](https://github.com/nuxt/ui/commit/7196d81b4cecf1711a01bed5fed1236ab3b2398b))
* **types:** favor `Record<string, any>>` instead of `object` ([4d72a75](https://github.com/nuxt/ui/commit/4d72a758fad5cffa09f3aaf6b3df9baf7edc2a9f))
* **types:** improve with strict mode ([#1041](https://github.com/nuxt/ui/issues/1041)) ([4a9b66a](https://github.com/nuxt/ui/commit/4a9b66aeb32a332e2d5be7e236e5d4567044b3e2))
* **types:** workaround for `popper` weak type ([5718dfd](https://github.com/nuxt/ui/commit/5718dfd69a7040987354485b30f7da7aee342abb)), closes [#644](https://github.com/nuxt/ui/issues/644)
### Reverts
* Revert "chore(deps): pin `vitest`" ([6984989](https://github.com/nuxt/ui/commit/6984989a2c20fbde177d1e64ea1a7cae07f03c4d))
## [2.11.0](https://github.com/nuxt/ui/compare/v2.10.0...v2.11.0) (2023-11-23)
### Features
* **Breadcrumb:** new component ([#506](https://github.com/nuxt/ui/issues/506)) ([a35bfc7](https://github.com/nuxt/ui/commit/a35bfc734372cd24a8f86fca7b69f091051ce918))
* **Checkbox:** config `label`, `required` and `help` size ([a1b38c4](https://github.com/nuxt/ui/commit/a1b38c4b66a16fefe8b514ec699a84309fcb7225))
* **Chip:** new component ([#886](https://github.com/nuxt/ui/issues/886)) ([d4f1b5e](https://github.com/nuxt/ui/commit/d4f1b5ef82f58c2df4dd9491ceb61b55da7ba4c3))
* **FormGroup:** add eager validation ([#992](https://github.com/nuxt/ui/issues/992)) ([d39e2de](https://github.com/nuxt/ui/commit/d39e2de935bcbbaf86c4b4b368e81bb08859b2e6))
* **Icon:** switch to `nuxt-icon` with `dynamic` prop or app config ([#862](https://github.com/nuxt/ui/issues/862)) ([c601fc6](https://github.com/nuxt/ui/commit/c601fc6c5583763a2cdf6c575dda55c46311612a))
* **module:** allow options override of `@egoist/tailwindcss-icons` plugin ([#1013](https://github.com/nuxt/ui/issues/1013)) ([ec58948](https://github.com/nuxt/ui/commit/ec58948153eb9c3048c41187ae505072a817b746))
* **Notification:** customize default timeout ([#1003](https://github.com/nuxt/ui/issues/1003)) ([83c3be7](https://github.com/nuxt/ui/commit/83c3be716aa42eee70a1bbc3b8a28b7fa483c9bf))
* **Popover:** ability to add overlay ([#1014](https://github.com/nuxt/ui/issues/1014)) ([06d4510](https://github.com/nuxt/ui/commit/06d4510d1c485ede49d1572454aeb8581384626e))
* **SelectMenu:** allows to clear search query on close ([#968](https://github.com/nuxt/ui/issues/968)) ([11ccbbb](https://github.com/nuxt/ui/commit/11ccbbb24ef61e6bd3bb703f950955dd21d6a3eb))
* **Textarea:** add default slot for complex usages ([55697e6](https://github.com/nuxt/ui/commit/55697e601e9b94e2159aa27613edd7265d5d06af)), closes [#971](https://github.com/nuxt/ui/issues/971)
* **Toggle:** add `size` prop ([#950](https://github.com/nuxt/ui/issues/950)) ([3c71bf3](https://github.com/nuxt/ui/commit/3c71bf36b0232745765c6860af2be7f44bf948a0))
* **types:** support custom values from `app.config.ts` ([#863](https://github.com/nuxt/ui/issues/863)) ([7339324](https://github.com/nuxt/ui/commit/7339324355362eebd30707fdd1944270e41525f4))
### Bug Fixes
* **Alert:** improve config options ([91511b9](https://github.com/nuxt/ui/commit/91511b921d65150f8da9c71e361d305477234f84)), closes [#760](https://github.com/nuxt/ui/issues/760)
* **Alert:** prevent `gap` when no close button or action ([9a1a1b8](https://github.com/nuxt/ui/commit/9a1a1b8caf1c040c458230458b9fa9cbfb32a1bb)), closes [#831](https://github.com/nuxt/ui/issues/831)
* **ButtonGroup:** handle components with children ([#999](https://github.com/nuxt/ui/issues/999)) ([f4be95d](https://github.com/nuxt/ui/commit/f4be95dcf5a07c964ae9f2555070d437e0388c13))
* **CommandPalette:** activate first option after async search ([#981](https://github.com/nuxt/ui/issues/981)) ([a975939](https://github.com/nuxt/ui/commit/a97593985c93d4cc30ceff0e3bdf8070f17b63f6))
* **defineShortcuts:** support minus `-` key ([#962](https://github.com/nuxt/ui/issues/962)) ([de38afd](https://github.com/nuxt/ui/commit/de38afd97b7bfd9af2619a17a42f27177abfec7e))
* **Dropdown:** pass event to `click` function ([60fa2be](https://github.com/nuxt/ui/commit/60fa2beed0ef0dbac6429033cc96803edf847120))
* **Dropdown:** use `NuxtLink` with `custom` prop to close on select ([f323379](https://github.com/nuxt/ui/commit/f3233799096b18b1d6c86391799a7c98a110fa4d)), closes [#899](https://github.com/nuxt/ui/issues/899)
* **FormGroup:** hydration mismatch on inputId ([#942](https://github.com/nuxt/ui/issues/942)) ([a3046aa](https://github.com/nuxt/ui/commit/a3046aa25626ca50e9d9fc6288321940445e88a1))
* **FormGroup:** remove inputId if the input is a fieldset ([#914](https://github.com/nuxt/ui/issues/914)) ([e81d5cf](https://github.com/nuxt/ui/commit/e81d5cf99831cfc320049051eeaf36f15951282b))
* **Input/Textarea:** add `v-model` modifiers ([#856](https://github.com/nuxt/ui/issues/856)) ([68f6956](https://github.com/nuxt/ui/commit/68f6956d6e0cb5155e19b8d464a42953b8e30475))
* **Link:** handle `active` state when `to` prop is not provided ([6cc77a3](https://github.com/nuxt/ui/commit/6cc77a3e6cbb263b649de0ea044894e0b7c4258a)), closes [#988](https://github.com/nuxt/ui/issues/988)
* **Link:** reactivity issue with `active` prop ([15a40f5](https://github.com/nuxt/ui/commit/15a40f53f218bbe768262efc03dd7eaaf147ed6e)), closes [nuxt/nuxt.com#1432](https://github.com/nuxt/nuxt.com/issues/1432)
* **module:** `boolean` types and bump nuxt to `3.8.2` ([#1006](https://github.com/nuxt/ui/issues/1006)) ([ca62ce1](https://github.com/nuxt/ui/commit/ca62ce13d3238819475528de0340416e6db9e5e6))
* **module:** use correct alias for `[#ui](https://github.com/nuxt/ui/issues/ui)-colors` ([#913](https://github.com/nuxt/ui/issues/913)) ([c84438f](https://github.com/nuxt/ui/commit/c84438f491e7e3f8af5c6d892a2141b9ada2c155))
* **Notification:** improve config options ([7cb987d](https://github.com/nuxt/ui/commit/7cb987de42ad89efc227eef47a8e06e7bc93206f))
* **Notification:** prevent `gap` when no close button or action ([ded6a7f](https://github.com/nuxt/ui/commit/ded6a7f73d9ea57b5e771ce192c9ee36e6f98bba))
* **Notifications:** teleport to `body` ([#909](https://github.com/nuxt/ui/issues/909)) ([8451f4d](https://github.com/nuxt/ui/commit/8451f4d9bbe51972688966f529cf0713060adb7a))
* **Progress:** percentage calculation ([#939](https://github.com/nuxt/ui/issues/939)) ([c55871b](https://github.com/nuxt/ui/commit/c55871b8449e9947e84ecb2f9667eea287b579e6))
* **Radio:** prevent `help` text from inlining with label ([#894](https://github.com/nuxt/ui/issues/894)) ([a2d70f0](https://github.com/nuxt/ui/commit/a2d70f04e98ce181ac217eaf6b66a8728af95805))
* **SelectMenu:** fixes non-strings and nested searchable attributes ([#967](https://github.com/nuxt/ui/issues/967)) ([37fdf22](https://github.com/nuxt/ui/commit/37fdf224c07e47312c731b20080533ad7d8d786c))
## [2.10.0](https://github.com/nuxt/ui/compare/v2.9.0...v2.10.0) (2023-10-31)
### Features
* **CommandPalette:** handle `filter` attribute in groups ([#871](https://github.com/nuxt/ui/issues/871)) ([8ba2a79](https://github.com/nuxt/ui/commit/8ba2a791e4877682705bd752d4ab6f9c52d0b37b))
* **Divider:** new component ([#757](https://github.com/nuxt/ui/issues/757)) ([eb9ce6a](https://github.com/nuxt/ui/commit/eb9ce6a0ddb7d73e3d3accee000ac71c20b96d1b))
* **Form:** handle `[@error](https://github.com/error)` event ([#718](https://github.com/nuxt/ui/issues/718)) ([e16379f](https://github.com/nuxt/ui/commit/e16379fdbdff6c98e96dc03cc67f3912f2f61075))
* **Input/Textarea:** allow specifying autofocus delay for page transitions ([#816](https://github.com/nuxt/ui/issues/816)) ([8bfd359](https://github.com/nuxt/ui/commit/8bfd3591a624ad7b77bcd9d3c38961a1ba59f23c))
* **Meter:** new component ([#827](https://github.com/nuxt/ui/issues/827)) ([abbcc37](https://github.com/nuxt/ui/commit/abbcc37fbb4b52b1503a69f8312cbecfe222f675))
* **Pagination:** add first and last page buttons ([#842](https://github.com/nuxt/ui/issues/842)) ([c5ce997](https://github.com/nuxt/ui/commit/c5ce997ba9d7abdb8282fcd34b88c380a7a4c592))
* **Popover:** manual mode & horizontal offset ([#781](https://github.com/nuxt/ui/issues/781)) ([92b8618](https://github.com/nuxt/ui/commit/92b86186e7b8a987eec1da9cf45a0ec378d421cf))
* **popper:** `arrow` option & docs consistency across components ([#875](https://github.com/nuxt/ui/issues/875)) ([f785ecd](https://github.com/nuxt/ui/commit/f785ecd46fdff77ecb8579d8a7edc463bcce2407))
* **Progress:** new component ([#697](https://github.com/nuxt/ui/issues/697)) ([2c5559b](https://github.com/nuxt/ui/commit/2c5559b73ea22f1021c18c2561de1e6cd6f9741f))
* **RadioGroup:** configurable label size ([#881](https://github.com/nuxt/ui/issues/881)) ([5a2644b](https://github.com/nuxt/ui/commit/5a2644b329dd1bb85a8ca70f849e108dbb93c776))
* **RadioGroup:** new component ([#730](https://github.com/nuxt/ui/issues/730)) ([23d5dc7](https://github.com/nuxt/ui/commit/23d5dc7b981d56127dd2bd3f03d752a76f36653c))
* **Range:** add `2xs`, `xs`, `xl` and `2xl` sizes to match progress component ([3cb3914](https://github.com/nuxt/ui/commit/3cb3914386e465180337ff8bf3f78e07a14bbafb)), closes [#673](https://github.com/nuxt/ui/issues/673)
* **Table:** add `v-model:sort` prop ([#803](https://github.com/nuxt/ui/issues/803)) ([9f4d88e](https://github.com/nuxt/ui/commit/9f4d88e0aa7ec8cbbdae3fccd372d8c5e81d7ad0))
* **Tooltip:** adding option to show popper arrow ([#868](https://github.com/nuxt/ui/issues/868)) ([4ce2374](https://github.com/nuxt/ui/commit/4ce23746da27ad0ef9b1833e41105165045f1cb8))
### Bug Fixes
* **Accordion:** toggle correct element when keyboard press ([#805](https://github.com/nuxt/ui/issues/805)) ([96296c3](https://github.com/nuxt/ui/commit/96296c3d388a4f65f08e4a062f720d37f2c84ebc))
* **Divider:** display a single border when no content ([3c5c338](https://github.com/nuxt/ui/commit/3c5c3389f8cdfcf9b70f1bb7d5553d0be55278a4))
* **Dropdown:** use `NuxtLink` instead of `ULink` ([#882](https://github.com/nuxt/ui/issues/882)) ([c37ad8b](https://github.com/nuxt/ui/commit/c37ad8b79a61ffccbb8959ca07fdf54923313e00))
* **FormGroup:** ensure size exists in config ([#695](https://github.com/nuxt/ui/issues/695)) ([f5f3388](https://github.com/nuxt/ui/commit/f5f33882f9ad48944e54f31cb784bedf26dccbd1))
* **Modal:** remove padding on mobile with `fullscreen` enabled ([550ac10](https://github.com/nuxt/ui/commit/550ac10e49d15e0b5435e031ec61f7defdaee445)), closes [#811](https://github.com/nuxt/ui/issues/811)
* **Notification:** add roles for accessibility ([#724](https://github.com/nuxt/ui/issues/724)) ([40f3b16](https://github.com/nuxt/ui/commit/40f3b161003f71ecacf57b9641de66acd14e3fab))
* **Table:** enable sorting for nested column keys ([#835](https://github.com/nuxt/ui/issues/835)) ([b4f7b03](https://github.com/nuxt/ui/commit/b4f7b035f7e802427e57fc7359020648a23eb71e))
* **Table:** prevent `[@select](https://github.com/select)` event call when selecting all rows ([#838](https://github.com/nuxt/ui/issues/838)) ([51f4d54](https://github.com/nuxt/ui/commit/51f4d549998c0d570adc843e1f3835cbd163ae69))
* **Tabs:** truncate buttons content ([ddbb431](https://github.com/nuxt/ui/commit/ddbb4319539e9e306ed9fc6f4f2145f20f13683a)), closes [#796](https://github.com/nuxt/ui/issues/796)
* **types:** handle sub-objects in `app.config.ts` (button colors) ([7be2af7](https://github.com/nuxt/ui/commit/7be2af7127acba2e1228b7994ecd8eb40e5c376b)), closes [#858](https://github.com/nuxt/ui/issues/858)
* use explicit type imports ([#830](https://github.com/nuxt/ui/issues/830)) ([a8279d1](https://github.com/nuxt/ui/commit/a8279d1c97c2f2c6a5d9fd971abb27767b5beb4c))
## [2.9.0](https://github.com/nuxt/ui/compare/v2.8.1...v2.9.0) (2023-10-02)
### ⚠ BREAKING CHANGES
* **module:** use `tailwind-merge` for `app.config` & move config to components & type props (#692)
### Features
* **FormGroup:** add slots ([#714](https://github.com/nuxt/ui/issues/714)) ([2fc9385](https://github.com/nuxt/ui/commit/2fc938575d2e409ba9df9fb2ddb8d51d021a1756))
* **Link:** add `active` prop to override default behaviour ([#732](https://github.com/nuxt/ui/issues/732)) ([8257a11](https://github.com/nuxt/ui/commit/8257a11dcba9c34053f8061ed1383894d06b2a6c))
* **Link:** add `as` prop ([#535](https://github.com/nuxt/ui/issues/535)) ([e404912](https://github.com/nuxt/ui/commit/e40491208ac1096e505803072df0d9e2e771008e))
* **module:** use `tailwind-merge` for `app.config` & move config to components & type props ([#692](https://github.com/nuxt/ui/issues/692)) ([34d2f57](https://github.com/nuxt/ui/commit/34d2f57801d08d26262fdff4398ec3d3329b4bb0))
* remove `lodash-es` ([#648](https://github.com/nuxt/ui/issues/648)) ([d6476d1](https://github.com/nuxt/ui/commit/d6476d17f9b17317a7160271dacdb854f30237ae))
* **Table:** add ability to custom style for `td` and `tr` ([#741](https://github.com/nuxt/ui/issues/741)) ([874447c](https://github.com/nuxt/ui/commit/874447cb41a77868513459eee5d3301fe8b8e9a1))
### Bug Fixes
* **Accordion:** close other items in circular order ([#735](https://github.com/nuxt/ui/issues/735)) ([6887f73](https://github.com/nuxt/ui/commit/6887f732ee8e14625459a0576460523845cb0a6d))
* **FormGroup:** prevent input click from propagating to label ([#651](https://github.com/nuxt/ui/issues/651)) ([4c58330](https://github.com/nuxt/ui/commit/4c5833083f0840add52f3c67efc42b8db5687d37))
* **FormGroup:** use explicit label instead of implicit label ([#638](https://github.com/nuxt/ui/issues/638)) ([681f0e5](https://github.com/nuxt/ui/commit/681f0e5684feaad0c711130404751f2fd65ddbe4))
* **module:** move `@headlessui/tailwindcss` to plugins on module install ([3e647e4](https://github.com/nuxt/ui/commit/3e647e4af154dad7fa186f062ce984e4d8d0e202))
* **module:** retain props reactivity through `useUI` ([#745](https://github.com/nuxt/ui/issues/745)) ([109ec52](https://github.com/nuxt/ui/commit/109ec52d50b0b32b0f0b24ece5b92cd7bbce29da))
* **Pagination:** handle `max > 5` and `max` equal total pages ([#728](https://github.com/nuxt/ui/issues/728)) ([a071e4b](https://github.com/nuxt/ui/commit/a071e4b8755f5dbbdfd05985c8fcb65c3cdab3ec))
* **Range:** fix track pseudo-elements for mozilla ([#636](https://github.com/nuxt/ui/issues/636)) ([8955595](https://github.com/nuxt/ui/commit/8955595dc6904d0090ad7f82ed8b376a15e51f94))
* **SelectMenu:** handle numbers ([0544a01](https://github.com/nuxt/ui/commit/0544a01c5b7ae534a595e6c91d2884a601ae3185)), closes [#574](https://github.com/nuxt/ui/issues/574)
* **Table:** add missing classes in `app.config.ts` ([a603ea5](https://github.com/nuxt/ui/commit/a603ea56c165e9ad01482d092460da3991f3e41d)), closes [#655](https://github.com/nuxt/ui/issues/655)
* **Table:** select all rows without select listener ([#652](https://github.com/nuxt/ui/issues/652)) ([83d609d](https://github.com/nuxt/ui/commit/83d609d53067b2639a55a0e367a5e7adbd8a22fc))
* **Tabs:** add visible focus indicator on active tabs ([#690](https://github.com/nuxt/ui/issues/690)) ([be734fc](https://github.com/nuxt/ui/commit/be734fc026b75bc8c921e9401ba6e97f65356cec))
* **Tabs:** allow custom keys in `TabItem` ([#671](https://github.com/nuxt/ui/issues/671)) ([15e418e](https://github.com/nuxt/ui/commit/15e418e6c6f981afd2c0e8f27dedb303b8cbad70))
* **Tabs:** prevent focus of `TabPanel` with `tabindex="-1"` ([cbb2f28](https://github.com/nuxt/ui/commit/cbb2f28c3fd96e45c7af20675b5b67576ddc0d63))
## [2.8.1](https://github.com/nuxt/ui/compare/v2.8.0...v2.8.1) (2023-09-09)
### Bug Fixes
* **Form:** fix `getValibotError` to avoid importing `safeParseAsync` ([#640](https://github.com/nuxt/ui/issues/640)) ([e8daf7f](https://github.com/nuxt/ui/commit/e8daf7f81018c01c28c2c38aed6ee57ef887f823))
* **Form:** fix valibot imports ([#617](https://github.com/nuxt/ui/issues/617)) ([1a7eb27](https://github.com/nuxt/ui/commit/1a7eb27cad9f3357c4dcde188530cdb0001d3ae6))
* **Pagination:** page numbers not clickable ([#624](https://github.com/nuxt/ui/issues/624)) ([c1e0654](https://github.com/nuxt/ui/commit/c1e0654417ad39df8be3f2172ab4e0af6dacb631))
## [2.8.0](https://github.com/nuxt/ui/compare/v2.7.0...v2.8.0) (2023-09-07)
### ⚠ BREAKING CHANGES
* **module:** use `tailwind-merge` for class merging (#509)
### Features
* **Avatar:** add `icon` prop as fallback ([df3b202](https://github.com/nuxt/ui/commit/df3b2028ed2a68178c41e136985500bc0e6f4608))
* **Avatar:** handle `icon` default from `app.config.ts` ([55daed0](https://github.com/nuxt/ui/commit/55daed0e5a220cc5f2abf1bf4a27bc86773b7939))
* **ButtonGroup:** add `orientation` prop ([#603](https://github.com/nuxt/ui/issues/603)) ([b3bc6e2](https://github.com/nuxt/ui/commit/b3bc6e2e9e9446ee3dab7ae02f939a9c01c4218b))
* **Form:** add valibot supprt ([#615](https://github.com/nuxt/ui/issues/615)) ([ab5153a](https://github.com/nuxt/ui/commit/ab5153ac19703c11b107825208e33d04e01a9be2))
* **Form:** improve form control and input validation trigger ([#487](https://github.com/nuxt/ui/issues/487)) ([6d7973f](https://github.com/nuxt/ui/commit/6d7973f6e1cc3552df45ac7ce2e2107d18061abf))
* **Modal:** add `fullscreen` prop ([#523](https://github.com/nuxt/ui/issues/523)) ([7e2bebd](https://github.com/nuxt/ui/commit/7e2bebd3ef88ea65a0dd03686e6a9d08b0d1edd7))
* **module:** add `DEFAULT` shade to `primary` color ([#493](https://github.com/nuxt/ui/issues/493)) ([c6056ed](https://github.com/nuxt/ui/commit/c6056ed13323f854a9ab4a07303b9e64cd0f563a))
* **module:** use `tailwind-merge` for class merging ([#509](https://github.com/nuxt/ui/issues/509)) ([8880bdc](https://github.com/nuxt/ui/commit/8880bdc45640103aea3e84a5410567bd87607738))
* **Table:** support nested keys in columns ([#503](https://github.com/nuxt/ui/issues/503)) ([858886a](https://github.com/nuxt/ui/commit/858886a85288370bfc7c0991e96929811f20f561))
* **Tabs:** control selected index ([#490](https://github.com/nuxt/ui/issues/490)) ([aaf09ad](https://github.com/nuxt/ui/commit/aaf09ad555f713738958b191e5649dc80bd3ba96))
### Bug Fixes
* **Alert:** fix wrong type of `actions` ([#507](https://github.com/nuxt/ui/issues/507)) ([b243e8c](https://github.com/nuxt/ui/commit/b243e8c94649a50358a5961d45b5f48c6c670383))
* **AvatarGroup:** add `justify-end` to wrapper to prevent right align ([e578b0d](https://github.com/nuxt/ui/commit/e578b0dd9e924cacf22ed541e4da54e558654254))
* **AvatarGroup:** pass default `size` to max avatar ([e49c673](https://github.com/nuxt/ui/commit/e49c67357364483d742bf9ccc7a94dc67edafe96))
* **AvatarGroup:** use `ui.wrapper` as `inheritAttrs` is not false ([eb609b1](https://github.com/nuxt/ui/commit/eb609b13e47da3e171351884f7fe6e7dcaa5ed77))
* **Badge:** allow `label` as number ([7c157ce](https://github.com/nuxt/ui/commit/7c157ce886fd6f35886255a5a2ee468c2b2089c3))
* **Button:** add missing prop types ([#508](https://github.com/nuxt/ui/issues/508)) ([a8a1c15](https://github.com/nuxt/ui/commit/a8a1c150a00212eeb8cde32ff06ee3b6c45fbedd))
* **ButtonGroup:** switch back to `ui` prop ([d4e3ab6](https://github.com/nuxt/ui/commit/d4e3ab606b19337c33e541ae399466ba8551e898))
* **Form:** fix wrong type of validate ([#496](https://github.com/nuxt/ui/issues/496)) ([3d6839d](https://github.com/nuxt/ui/commit/3d6839da97a09747b0090a3d5aa1ebe3d28b85fd))
* **FormGroup:** `size` were invalid since default has been removed ([7008df0](https://github.com/nuxt/ui/commit/7008df098887965f2ed3e43d2ccb64b3d32524b9))
* **FormGroup:** add missing `ref` import from vue ([39042b3](https://github.com/nuxt/ui/commit/39042b3de17efc26ee86b003a05e42e7a41f50bf))
* **Form:** use safeParseAsync for zod ([#497](https://github.com/nuxt/ui/issues/497)) ([8b19b18](https://github.com/nuxt/ui/commit/8b19b1880e744d81481b4e1f5b4e88d7f48f7bdb))
* **module:** missing `useHead` import ([0f252d0](https://github.com/nuxt/ui/commit/0f252d0caf550ba7ea4cfb24bed5f95a42e78970))
* **module:** missing `useNuxtApp` import ([888effe](https://github.com/nuxt/ui/commit/888effea0a66f5dd88cdd47d5d65da02bdec6ad6))
* **Popover:** handle `hover` mode with padding like dropdown ([dc951ff](https://github.com/nuxt/ui/commit/dc951ff69dd15dc942e5c61edb6bc0a5a516c89b))
* **Radio:** put back `id` for label selection ([9b3a22e](https://github.com/nuxt/ui/commit/9b3a22ea140e5a70c288c7b6241671e9d3542572))
* **SelectMenu:** invalid `gap` values ([998314e](https://github.com/nuxt/ui/commit/998314e1cbafced2844b06eac5f34fa3ddb8d1e5))
* **Table:** empty state is displayed if null ([#517](https://github.com/nuxt/ui/issues/517)) ([44ba758](https://github.com/nuxt/ui/commit/44ba758c0d50f2214554a477d661a914df2025ba))
* **Table:** missing component imports ([#608](https://github.com/nuxt/ui/issues/608)) ([d936316](https://github.com/nuxt/ui/commit/d9363168b282acc332a473340b77ee8f702e0e3f))
* **Tabs:** recompute marker position when `v-model` changes ([#524](https://github.com/nuxt/ui/issues/524)) ([fdce429](https://github.com/nuxt/ui/commit/fdce429b3ef1d203b2438299e46e57a010355fb0))
* **Tooltip:** hide on touch devices ([#580](https://github.com/nuxt/ui/issues/580)) ([f1ed007](https://github.com/nuxt/ui/commit/f1ed0076e5ada78ba6150745ce9d8459cc731b4e))
* use head instance from plugin ([791804b](https://github.com/nuxt/ui/commit/791804b2fba6493f07dc75b09f8b8ac95f71644d))
## [2.7.0](https://github.com/nuxtlabs/ui/compare/v2.6.0...v2.7.0) (2023-08-01)
### ⚠ BREAKING CHANGES
* **Link:** rename from `LinkCustom` and add `exact-query` / `exact-hash` props
* **Badge:** add colors and variants (solid has changed)
* **SelectMenu:** invert `ui` and `ui-select` props (#432)
### Features
* **Alert:** new component ([#449](https://github.com/nuxtlabs/ui/issues/449)) ([ab2abae](https://github.com/nuxtlabs/ui/commit/ab2abae48a03200d273b4f0cb3ce300fffcee64b))
* **Badge:** add colors and variants (solid has changed) ([05503e5](https://github.com/nuxtlabs/ui/commit/05503e564c3e8dfaee2e27e25b3409edb4c555a1))
* **Badge:** rename `outline` to `subtle` + add `soft` variants ([5bd5dc2](https://github.com/nuxtlabs/ui/commit/5bd5dc2bcaeb59d4b0a1aea802bd3e2b2160ad53))
* **CommandPalette:** bind active and selected to scoped slot ([#441](https://github.com/nuxtlabs/ui/issues/441)) ([b0440f8](https://github.com/nuxtlabs/ui/commit/b0440f81ce2960704ed7386ec069e52ecd7bb787))
* **FormGroup:** add `size` prop and theme options ([#391](https://github.com/nuxtlabs/ui/issues/391)) ([d2a8a07](https://github.com/nuxtlabs/ui/commit/d2a8a07a21a4943144bd990fdbfe645ea308ae7b))
* **Form:** new component ([#439](https://github.com/nuxtlabs/ui/issues/439)) ([a3aba1a](https://github.com/nuxtlabs/ui/commit/a3aba1abadd569b69f15697bcc5908b49e0a7f8a))
* **Link:** rename from `LinkCustom` and add `exact-query` / `exact-hash` props ([cefe5a7](https://github.com/nuxtlabs/ui/commit/cefe5a76e0a4820f648d23734228540e3010b233))
* **Notification:** support html with `title` and `description` slots ([#431](https://github.com/nuxtlabs/ui/issues/431)) ([df455db](https://github.com/nuxtlabs/ui/commit/df455db3caeb689ac1f24f224606183d4f5135ea))
* **Range:** increase narrowed surface ([#459](https://github.com/nuxtlabs/ui/issues/459)) ([3b183ac](https://github.com/nuxtlabs/ui/commit/3b183ac9cde86cf3ab6fbdc5dd124d66deec865d))
* **SelectMenu:** add `value-attribute` prop ([#429](https://github.com/nuxtlabs/ui/issues/429)) ([959c968](https://github.com/nuxtlabs/ui/commit/959c968420945fc0a143edb909c1289123fd62cb))
* **Tabs:** new component ([#450](https://github.com/nuxtlabs/ui/issues/450)) ([8298b62](https://github.com/nuxtlabs/ui/commit/8298b62f216712fc156ef1a114d6cff3a573efdb))
* **ui:** apply primary bg on `::selection` ([09d0ea2](https://github.com/nuxtlabs/ui/commit/09d0ea27ab36b0655106f0cf000f2c13c63b92bd))
### Bug Fixes
* **FormGroup:** `required` star display ([3dd0492](https://github.com/nuxtlabs/ui/commit/3dd0492f91422c8248691ac9d3f5de6d37278721))
* **FormGroup:** err when no prop defined ([93aebe6](https://github.com/nuxtlabs/ui/commit/93aebe6fc614bc2a78109f632297c3843f7a785a))
* **FormGroup:** missing imports ([#470](https://github.com/nuxtlabs/ui/issues/470)) ([dc1979c](https://github.com/nuxtlabs/ui/commit/dc1979cae1478cf864aab5ea573cc87d070185ce))
* **FormGroup:** set `size` default to null ([c59595f](https://github.com/nuxtlabs/ui/commit/c59595f2c6cf414bf04bb5995ba029a59ef8035b))
* **Form:** return state on validate ([#472](https://github.com/nuxtlabs/ui/issues/472)) ([248b0a6](https://github.com/nuxtlabs/ui/commit/248b0a68c675255a586d0ff61b0561f2f47b2682))
* **LinkCustom:** `exact` prop wasn't working ([82e152b](https://github.com/nuxtlabs/ui/commit/82e152be02ca7b8fc5d6e27ffd81ff3f0d8a8f80)), closes [#417](https://github.com/nuxtlabs/ui/issues/417)
* **LinkCustom:** improve prop binding and prevent error with externals ([914d156](https://github.com/nuxtlabs/ui/commit/914d156103d5ebca6b14ea705ed329508bf66d74))
* **Link:** handle `disabled` prop ([396aae7](https://github.com/nuxtlabs/ui/commit/396aae75638da88a736179f71324374d74a89d70)), closes [#473](https://github.com/nuxtlabs/ui/issues/473)
* **module:** ensure `red` color is safelisted for form elements ([208acca](https://github.com/nuxtlabs/ui/commit/208acca1e9269494310ff000104b21e999b66cf8)), closes [#423](https://github.com/nuxtlabs/ui/issues/423) [#373](https://github.com/nuxtlabs/ui/issues/373)
* **module:** omit colors defined as strings ([927b63f](https://github.com/nuxtlabs/ui/commit/927b63fa2e33cc5ee303554c0c43c9e89156b7c8))
* **module:** safelist all colors for `toast.add` ([2cd6208](https://github.com/nuxtlabs/ui/commit/2cd620899f3e997357f6274cc7a0bfc79a8277b6)), closes [#375](https://github.com/nuxtlabs/ui/issues/375) [#440](https://github.com/nuxtlabs/ui/issues/440)
* **module:** smart safelisting for components in snake case ([e25be11](https://github.com/nuxtlabs/ui/commit/e25be118b7fe4bfd4ec26be9aacfb0d87ee94d81)), closes [#461](https://github.com/nuxtlabs/ui/issues/461)
* **Popover:** hover mode ([#453](https://github.com/nuxtlabs/ui/issues/453)) ([10890e6](https://github.com/nuxtlabs/ui/commit/10890e6704e9884a7e86b37d0dc72e8f9c5177e7))
* **SelectMenu:** invert `ui` and `ui-select` props ([#432](https://github.com/nuxtlabs/ui/issues/432)) ([7cccbcf](https://github.com/nuxtlabs/ui/commit/7cccbcfef899a64d63c8d33639a2d0da155c46cb))
* **Table:** hide data when loading state is active ([#460](https://github.com/nuxtlabs/ui/issues/460)) ([2b3dc8d](https://github.com/nuxtlabs/ui/commit/2b3dc8d065c35671434975a07af4b2182a793b58))
## [2.6.0](https://github.com/nuxtlabs/ui/compare/v2.5.0...v2.6.0) (2023-07-18)
### ⚠ BREAKING CHANGES
* **Avatar:** bind component attributes to img element (#421)
### Features
* **Accordion:** add `multiple` prop and close others by default ([#364](https://github.com/nuxtlabs/ui/issues/364)) ([b78fcf9](https://github.com/nuxtlabs/ui/commit/b78fcf91a4b592a6ca83ca4333e1d6658ec6458d))
* **Accordion:** new component ([#301](https://github.com/nuxtlabs/ui/issues/301)) ([e50f377](https://github.com/nuxtlabs/ui/commit/e50f377b946996efd4546195e528fbed59dcb22f))
* **Avatar:** bind component attributes to img element ([#421](https://github.com/nuxtlabs/ui/issues/421)) ([773a23f](https://github.com/nuxtlabs/ui/commit/773a23f969d2dbbbcb01582f9e127e02f0248be9))
* **Modal:** add `prevent-close` prop ([2cc5c0d](https://github.com/nuxtlabs/ui/commit/2cc5c0d810e30b889081d1f457d725004bd0b933)), closes [#303](https://github.com/nuxtlabs/ui/issues/303)
* **SelectMenu:** handle async search ([#426](https://github.com/nuxtlabs/ui/issues/426)) ([5f8fe85](https://github.com/nuxtlabs/ui/commit/5f8fe8559f2eb12d3916387d5acf65a391bfa0eb))
* **Slideover:** add `prevent-close` prop ([d15e816](https://github.com/nuxtlabs/ui/commit/d15e8163e7d7eb3eb7624bb982c139581902d596))
* **Table:** add click event for the entire row ([#353](https://github.com/nuxtlabs/ui/issues/353)) ([d292706](https://github.com/nuxtlabs/ui/commit/d2927069673840dad58d388ab982b5488642edec))
* **Table:** allow columns `class` customization ([5dffa86](https://github.com/nuxtlabs/ui/commit/5dffa868b11760610ea0bf9f2ce37931cdac4eb9)), closes [#366](https://github.com/nuxtlabs/ui/issues/366)
### Bug Fixes
* **Accordion:** missing `ref` import from vue ([3de6b34](https://github.com/nuxtlabs/ui/commit/3de6b349d8b043ed2524bd6418f350ebb4557adb))
* **Accordion:** solve the shift between buttons when they are opened ([#379](https://github.com/nuxtlabs/ui/issues/379)) ([eaf0043](https://github.com/nuxtlabs/ui/commit/eaf0043da660dfb168a7d4f2312d4344598c2f86))
* **ButtonGroup:** err when no props on buttons ([80a9738](https://github.com/nuxtlabs/ui/commit/80a97384909891a14edca4ff760d5c81b26b3307)), closes [#360](https://github.com/nuxtlabs/ui/issues/360)
* **Button:** missing `disabled` state on some variants ([41a5238](https://github.com/nuxtlabs/ui/commit/41a523857902b1674ba7f6021938f68d66a2ddbd))
* **Modal:** disabling `transition` prop had no effect ([db34665](https://github.com/nuxtlabs/ui/commit/db346652b829ea02b8b1f5355f7080f5e530dcb2))
* **Range:** `disabled` thumb opacity ([c92dc98](https://github.com/nuxtlabs/ui/commit/c92dc980c984cff8e9f9c38eb9524d151523c16b))
* **Range:** progress style ([#385](https://github.com/nuxtlabs/ui/issues/385)) ([a79c165](https://github.com/nuxtlabs/ui/commit/a79c165eeeb3e8ea76cd3abc1b8f1218d02b446b))
* **SelectMenu:** missing `appear` on transition ([cbe2b1b](https://github.com/nuxtlabs/ui/commit/cbe2b1bfb802f8cb10dd4a0d36a8cefb215debb2)), closes [#400](https://github.com/nuxtlabs/ui/issues/400)
* **Table:** fixed row deletion bug on deselect ([#425](https://github.com/nuxtlabs/ui/issues/425)) ([46b444a](https://github.com/nuxtlabs/ui/commit/46b444a3e0cc988c89bfde7442b42b1e82095fc9))
## [2.5.0](https://github.com/nuxtlabs/ui/compare/v2.4.1...v2.5.0) (2023-06-27)
### ⚠ BREAKING CHANGES
* **Radio/Checkbox/Toggle:** handle `color` prop for form elements (#323)
### Features
* **Avatar:** handle `chipText` ([#306](https://github.com/nuxtlabs/ui/issues/306)) ([759af05](https://github.com/nuxtlabs/ui/commit/759af058df636f55a54326b21ebb1c315c73c26b))
* **defineShortcuts:** chained shortcuts + docs update ([#282](https://github.com/nuxtlabs/ui/issues/282)) ([a67f691](https://github.com/nuxtlabs/ui/commit/a67f691a0066e4d017f580388df31b22d1c45372))
* **Radio/Checkbox/Toggle:** handle `color` prop for form elements ([#323](https://github.com/nuxtlabs/ui/issues/323)) ([ffb312d](https://github.com/nuxtlabs/ui/commit/ffb312d34dfc2ac7a7aabdcbdf9ddb1d04d8a66f))
* **Range:** new component ([#290](https://github.com/nuxtlabs/ui/issues/290)) ([97a1c86](https://github.com/nuxtlabs/ui/commit/97a1c8643314d5ff950b122f46f31b206485cd50))
* RTL support ([#320](https://github.com/nuxtlabs/ui/issues/320)) ([4ea114a](https://github.com/nuxtlabs/ui/commit/4ea114a4d6b11277674c121130f746927045ade3))
* **Table:** pass row index to table cell ([#291](https://github.com/nuxtlabs/ui/issues/291)) ([71c2465](https://github.com/nuxtlabs/ui/commit/71c2465d7be78cfb0e274b107aceda9de5384fb7))
* **Table:** reset sort on third click ([1ff11ac](https://github.com/nuxtlabs/ui/commit/1ff11ac1a3eff537a4ee854a049668f312f1d415)), closes [#300](https://github.com/nuxtlabs/ui/issues/300)
### Bug Fixes
* **components:** prefix `@headlessui/vue` components ([41b85d5](https://github.com/nuxtlabs/ui/commit/41b85d50a865cfe4aa0f06a62f5209358422eaec)), closes [#315](https://github.com/nuxtlabs/ui/issues/315)
* **defineShortcuts:** missing `ref` import ([a880379](https://github.com/nuxtlabs/ui/commit/a8803794802c4032f703a0a0a6343a8204b19bc8))
* **defineShortcuts:** missing `useDebounceFn` import ([9cd73aa](https://github.com/nuxtlabs/ui/commit/9cd73aa49d1dd43bac8ec71932b850bdcb375fcf))
* **FormGroup:** prevent overriding `color` of children ([6be9290](https://github.com/nuxtlabs/ui/commit/6be9290f689c449b6a6435a3ef25e89a106e1c06)), closes [#352](https://github.com/nuxtlabs/ui/issues/352)
* **Table:** default `sortButton` icon ([07b27a2](https://github.com/nuxtlabs/ui/commit/07b27a228d293655368825979a6ca0bc1dd6e51a))
* **Table:** missing default sort icon when overriding `sort-button` prop ([0f3fe0d](https://github.com/nuxtlabs/ui/commit/0f3fe0d54ef8b45a046b84ceb31ae55a26e153fb))
* **Toggle:** add `opacity-50` when disabled ([c2ebb04](https://github.com/nuxtlabs/ui/commit/c2ebb0416eb2c92b759be5a4bf0d219031889b4b))
* **Tooltip:** add `color` in config ([1b03b8a](https://github.com/nuxtlabs/ui/commit/1b03b8a531d397871e0df4f8574d7f47ac4ec610))
### [2.4.1](https://github.com/nuxtlabs/ui/compare/v2.4.0...v2.4.1) (2023-06-21)
### Bug Fixes
* **forms:** precise type assertion for `onInput` event handler ([#293](https://github.com/nuxtlabs/ui/issues/293)) ([457b7a9](https://github.com/nuxtlabs/ui/commit/457b7a9fb72e6469014b6ca18e7034dd5c6f44b8))
* **module:** let `tailwindcss` viewer enabled by default ([4023fbe](https://github.com/nuxtlabs/ui/commit/4023fbec29e5b4d40fd23e8c2ae3d0cf23addc64)), closes [#292](https://github.com/nuxtlabs/ui/issues/292)
* **module:** safelist aliases for input ([f719111](https://github.com/nuxtlabs/ui/commit/f719111abb94c81f3932927a0154b3e1bed73a9a))
* **module:** safelist regex when a `:` was present before color ([f7e2082](https://github.com/nuxtlabs/ui/commit/f7e2082983c2eb650e95a9040aafde4ce2c88c54))
* **Radio/Checkbox:** remove legacy `custom` ([3bac087](https://github.com/nuxtlabs/ui/commit/3bac0874f106a8ff7436b541f9d064c1c7c27464))
## [2.4.0](https://github.com/nuxtlabs/ui/compare/v2.3.0...v2.4.0) (2023-06-13)
### ⚠ BREAKING CHANGES
* **forms:** bind `$attrs` to elements (#279)
* **Select:** rename `text-attribute` to `option-attribute` and defaults to `label`
### Features
* **CommandPalette:** handle `empty-state` ([#271](https://github.com/nuxtlabs/ui/issues/271)) ([652af93](https://github.com/nuxtlabs/ui/commit/652af93f5c7cd4b34044a5597f3c14441ed6d998))
* **module:** smart safelisting ([#268](https://github.com/nuxtlabs/ui/issues/268)) ([20fa4d2](https://github.com/nuxtlabs/ui/commit/20fa4d2317fc1e14fe87fa273957b92e63668945))
* **Pagination:** new component ([#257](https://github.com/nuxtlabs/ui/issues/257)) ([f0b24ba](https://github.com/nuxtlabs/ui/commit/f0b24ba25d52184b8683e364016ed8fb800fc96b))
* **table:** add loading state ([#259](https://github.com/nuxtlabs/ui/issues/259)) ([4741532](https://github.com/nuxtlabs/ui/commit/47415322ea56b5388e55c404c901531e807a9f00))
* **table:** add slot for empty state ([#260](https://github.com/nuxtlabs/ui/issues/260)) ([f7a34c8](https://github.com/nuxtlabs/ui/commit/f7a34c8feeda6a4e1e1daff87b37b375aaa0c90d))
### Bug Fixes
* **ButtonGroup:** invalid `size` validator ([a617672](https://github.com/nuxtlabs/ui/commit/a6176720c75b26768ba91efcab50689a932931ad))
* **ButtonGroup:** use `-space-x-px` on wrapper ([d91c0bb](https://github.com/nuxtlabs/ui/commit/d91c0bb8944224d4e8eb62f99a33a6be94e5cd92))
* **Button:** same size when no label + uniformize form elements ([a6903df](https://github.com/nuxtlabs/ui/commit/a6903df58fb91da44e6f83cc2bd9c963827fe5dd))
* **CommandPalette:** input focus after be5f352 ([cbc8ef1](https://github.com/nuxtlabs/ui/commit/cbc8ef13cc3253690c22c32d90ea9746970c345a))
* **deps:** move `@tailwindcss/container-queries` to dependencies ([9559d0b](https://github.com/nuxtlabs/ui/commit/9559d0b3bc09956d7fe17ee0deeef03599d02d45))
* **forms:** `padded` prop with `p-0` class ([207444f](https://github.com/nuxtlabs/ui/commit/207444fdea773b8ee64dd4f80b4f70b76462a9d6))
* **forms:** bind `$attrs` to elements ([#279](https://github.com/nuxtlabs/ui/issues/279)) ([e12e974](https://github.com/nuxtlabs/ui/commit/e12e9740c97b75d3b7b70c38978e249b5e26eead))
* **module:** deduplicate default safelist as components may share same rules ([2cfa1f8](https://github.com/nuxtlabs/ui/commit/2cfa1f8d0355d4c9cec5d4294d63e043d223cd64))
* **module:** hardcode `gray` safelist instead of deduplicate complex logic ([a733c13](https://github.com/nuxtlabs/ui/commit/a733c13866cdb74398f3e6f022cc63223e269e19))
* **module:** only safelist known colors ([cdce519](https://github.com/nuxtlabs/ui/commit/cdce519742b86ff29460aa50264d7bb34ad24bd0))
* **module:** prevent safelisting dynamic `:color` variables ([ccd9ca5](https://github.com/nuxtlabs/ui/commit/ccd9ca5106d0b81aed6591097f121eb81dcc9b47))
* **module:** transform `vue` files to detect multi-line components ([88c1930](https://github.com/nuxtlabs/ui/commit/88c1930845d26c66c2fbd32f99f52dbd23244341))
* **module:** use `@tailwindcss/forms` class strategy ([#278](https://github.com/nuxtlabs/ui/issues/278)) ([be5f352](https://github.com/nuxtlabs/ui/commit/be5f352296cf4e0c9099cf468ed905283b31007d))
* **Notification:** class priority for icon color ([07f7855](https://github.com/nuxtlabs/ui/commit/07f7855a263e516250f62d0730afc69753d0322c))
* **Radio/Checkbox:** split preset as `indeterminate` is checkbox only ([429791d](https://github.com/nuxtlabs/ui/commit/429791dab0fbb84bae1e1e13e7e688708f0b5c98))
* **SelectMenu:** input focus after `be5f352` ([717a514](https://github.com/nuxtlabs/ui/commit/717a5144511c4db013a57869ac06421accf51e38))
* **Table:** colspan of `empty` and `loading` is wrong when selection enabled ([#284](https://github.com/nuxtlabs/ui/issues/284)) ([786d776](https://github.com/nuxtlabs/ui/commit/786d7765f5517a7e8cdd718ce93fd9fecc427ba7))
* **Toggle:** missing `disabled` prop ([fe833eb](https://github.com/nuxtlabs/ui/commit/fe833eb2b2b4d1d32eb9e082b437a0259b6f75c6))
* **Select:** rename `text-attribute` to `option-attribute` and defaults to `label` ([b4a96a8](https://github.com/nuxtlabs/ui/commit/b4a96a8b01b52751c9a9c6609ed8cf7ccf516a04))
## [2.3.0](https://github.com/nuxtlabs/ui/compare/v2.2.1...v2.3.0) (2023-06-05)
### ⚠ BREAKING CHANGES
* **Input:** move pointer class inside its own preset class
* **SelectMenu:** remove `inline-flex` from wrapper to behave like other form elements
* **Notification:** rename to `closeButton` and `actionButton` for consistency
* **CommandPalette:** rename props to `emptyState` and `closeButton` for consistency
* **Toggle:** rename icons to `onIcon` / `offIcon` for consistency
### Features
* add `Table` component ([#237](https://github.com/nuxtlabs/ui/issues/237)) ([cce000a](https://github.com/nuxtlabs/ui/commit/cce000ab2b2af1079216e0e79769703fc4d9933e))
### Bug Fixes
* **Avatar:** placeholder font size ([71edb91](https://github.com/nuxtlabs/ui/commit/71edb91c4ff17a258d6229ed6c6fa6a4b54bdd53))
* **Badge:** remove `console.log` in validator ([f9b935f](https://github.com/nuxtlabs/ui/commit/f9b935f5f59b872fd952a2739d305d6574bf7cf8))
* **Button:** invalid padding when using `square` prop ([1ebaa5a](https://github.com/nuxtlabs/ui/commit/1ebaa5aa00752cd276f7c754d64ac7f85b14dc26))
* **CommandPalette:** override of `closeButton` and `emptyState` props ([2c673f5](https://github.com/nuxtlabs/ui/commit/2c673f5377dbbcdefa6b57eddba2c19d065d5f1f))
* **defineShortcuts:** err with input autocomplete that triggers `keydown` ([01fa85c](https://github.com/nuxtlabs/ui/commit/01fa85c7a3e476d4f710ed3a36c1e815fc986a94))
* **SelectMenu:** disable on loading ([8951923](https://github.com/nuxtlabs/ui/commit/8951923a11d533ebf53dbec5f852800555af253c))
* **Table:** add missing `text-left` in `th.base` ([6bd5142](https://github.com/nuxtlabs/ui/commit/6bd5142a377694599952e0f9b53fde0d0132b61b))
* **Table:** missing `ref` import from `vue` ([272af9d](https://github.com/nuxtlabs/ui/commit/272af9d24c7cda8341e66b57f76acdb9f46ea23e))
* **Table:** override of `sortButton` and `emptyState` props ([192b0e6](https://github.com/nuxtlabs/ui/commit/192b0e63018ae73e8acaa8b4b1771cda2b59bdb6))
* **Table:** type `sort` prop ([3ba0aed](https://github.com/nuxtlabs/ui/commit/3ba0aedcba578350e2fdd9c180505ed8920e0404))
* use `cloneVNode` when altering props in render functions ([5e50eb9](https://github.com/nuxtlabs/ui/commit/5e50eb9eb82571d22e0a2f1a2fe985addf7efe18)), closes [#252](https://github.com/nuxtlabs/ui/issues/252)
* **CommandPalette:** rename props to `emptyState` and `closeButton` for consistency ([daca463](https://github.com/nuxtlabs/ui/commit/daca46371cab1344bd87ffb0abe0f7e9cdb08609))
* **Input:** move pointer class inside its own preset class ([f59a92c](https://github.com/nuxtlabs/ui/commit/f59a92ca1533a44e17fbc8b7945bdaa9a83e805a))
* **Notification:** rename to `closeButton` and `actionButton` for consistency ([4458656](https://github.com/nuxtlabs/ui/commit/4458656be5547fc9505a5c4758bea4818ada408b))
* **SelectMenu:** remove `inline-flex` from wrapper to behave like other form elements ([ba44c58](https://github.com/nuxtlabs/ui/commit/ba44c58a80252a4394fcf2f84611ea2696883120))
* **Toggle:** rename icons to `onIcon` / `offIcon` for consistency ([8ee2ac1](https://github.com/nuxtlabs/ui/commit/8ee2ac10e7eda4c54418f613a5ef87dd89e1f7eb))
### [2.2.1](https://github.com/nuxtlabs/ui/compare/v2.2.0...v2.2.1) (2023-05-27)
### Bug Fixes
* **FormGroup:** missing `h` import from `vue` ([a96dc19](https://github.com/nuxtlabs/ui/commit/a96dc192157725143503b1a5e4b404cb48dc9d3f)), closes [#236](https://github.com/nuxtlabs/ui/issues/236)
## [2.2.0](https://github.com/nuxtlabs/ui/compare/v2.1.0...v2.2.0) (2023-05-26)
### ⚠ BREAKING CHANGES
* handle color states on form elements (#234)
* **Notification:** rename `progressColor` to `color` and style icon
* **Avatar:** remove `chipVariant` prop
* **VerticalNavigation:** split preset
### Features
* handle color states on form elements ([#234](https://github.com/nuxtlabs/ui/issues/234)) ([9ce531a](https://github.com/nuxtlabs/ui/commit/9ce531a06f1a972bc003876162e0503c1bbbdbd8))
### Bug Fixes
* **Notification:** remove default color on icon ([1a9dc5c](https://github.com/nuxtlabs/ui/commit/1a9dc5c980d8477cdf9386a17e20fc9fec0d883e))
* **Radio/Checkbox:** remove ring offset on focus ([a56dbea](https://github.com/nuxtlabs/ui/commit/a56dbeab351a5c58e5bb49f5762669e2884c6483))
* **VerticalNavigation:** badge display ([d2ee505](https://github.com/nuxtlabs/ui/commit/d2ee5058f819fc17f281f323dab2f0b3d80cf7bd)), closes [#205](https://github.com/nuxtlabs/ui/issues/205)
* **Avatar:** remove `chipVariant` prop ([1f22f84](https://github.com/nuxtlabs/ui/commit/1f22f84360c20498eea8971b21db9293a4c9c3dc))
* **Notification:** rename `progressColor` to `color` and style icon ([1b61ec7](https://github.com/nuxtlabs/ui/commit/1b61ec72e292325d7776a4719f14a75bdb18e110))
* **VerticalNavigation:** split preset ([19923cb](https://github.com/nuxtlabs/ui/commit/19923cbf1edc6c6d4aefb9ffab9f908b116e1c69))
## [2.1.0](https://github.com/nuxtlabs/ui/compare/v2.0.4...v2.1.0) (2023-05-19)
### Bug Fixes
* **app.config:** trailing space ([703fdef](https://github.com/nuxtlabs/ui/commit/703fdef9bd4c0e26b0e38a13c30aff5b1d9d19aa))
* **ButtonGroup/AvatarGroup:** allow `v-for` ([#173](https://github.com/nuxtlabs/ui/issues/173)) ([3fa10aa](https://github.com/nuxtlabs/ui/commit/3fa10aa4ebf9ff7d443f8f2564dcaf9b63ce1fa8))
* **DocsPageHeader:** github component link ([#182](https://github.com/nuxtlabs/ui/issues/182)) ([7f00ec6](https://github.com/nuxtlabs/ui/commit/7f00ec6c3d059e5e78172a8e4bab905a7f02fa63))
* **Input:** expose ref ([2ded24b](https://github.com/nuxtlabs/ui/commit/2ded24bec90a5ea6665ab6895ced15d9dd49e8ef))
* **module:** add `.mjs` extension to tailwind `content` when builded ([246449b](https://github.com/nuxtlabs/ui/commit/246449b32850db805c1133151b8449687e7c14be)), closes [#172](https://github.com/nuxtlabs/ui/issues/172)
* **Textarea:** expose ref ([ea740bf](https://github.com/nuxtlabs/ui/commit/ea740bf10a6090545ed58ff26322ee3a679b5452))
### [2.0.4](https://github.com/nuxtlabs/ui/compare/v2.0.3...v2.0.4) (2023-05-15)
### Bug Fixes
* **SelectMenu:** add missing `inline-flex` on wrapper ([e8b4654](https://github.com/nuxtlabs/ui/commit/e8b46540d8767c7a63c0ff8e28263615626916e7))
### [2.0.3](https://github.com/nuxtlabs/ui/compare/v2.0.2...v2.0.3) (2023-05-15)
### [2.0.2](https://github.com/nuxtlabs/ui/compare/v2.0.1...v2.0.2) (2023-05-11)
### Bug Fixes
* **LinkCustom:** handle `button` when no `to` prop ([c7c78cb](https://github.com/nuxtlabs/ui/commit/c7c78cb47b00963c8a9ea0c0599fbc7e128cff66))
### [2.0.1](https://github.com/nuxtlabs/ui/compare/v2.0.0...v2.0.1) (2023-05-11)
### Bug Fixes
* **app.config:** remove old `u-` classes ([939efba](https://github.com/nuxtlabs/ui/commit/939efba47ceb660e5448a3ea42f2acd71b9837ee))
* **Avatar:** `gray` missing for `chipColor` ([fd4c80a](https://github.com/nuxtlabs/ui/commit/fd4c80acd4c70c7d378ebf780cd843115d8f434d))
* **Avatar:** shrink chip ring ([ebf5fd6](https://github.com/nuxtlabs/ui/commit/ebf5fd6aeb2a5363e80457cf8245fbab5fbc17ca))
* **Button:** `variant` validator takes color into account ([d1d8ab3](https://github.com/nuxtlabs/ui/commit/d1d8ab3c647d50f37832d1ae531550944d5aa8e3))
* **colors:** missing `useNuxtApp` import ([76a0d61](https://github.com/nuxtlabs/ui/commit/76a0d61a0f7b3936b0eceff16e17bc6540fb946c))
* **CommandPalette:** expose input ref to template ([192bf4c](https://github.com/nuxtlabs/ui/commit/192bf4c375293b16d952b94cc098a0260f47996a))
* **CommandPalette:** put back searchable on `v-show` to input ref always exists ([aacb7e9](https://github.com/nuxtlabs/ui/commit/aacb7e98412d2973c6fc61d9cb3b6da9bd433eb0))
* **CommandPalette:** wrong type usage ([4665563](https://github.com/nuxtlabs/ui/commit/4665563e6f9c4054cb1c859991369fe2cc844047))
* **docs:** sticky search button `z-index` ([f48ead6](https://github.com/nuxtlabs/ui/commit/f48ead6faf6fd14deeff84ca7b25d6bb7fae6f12))
* **Icon:** missing import ([cd430a4](https://github.com/nuxtlabs/ui/commit/cd430a4cad5143c5bd45c003086091f769e4f015))
* **module:** remove `.ts` ext from app.config ([a076cae](https://github.com/nuxtlabs/ui/commit/a076cae4bfa387e1fd9800741b10702896c21ad2))
* **Notifications:** missing `computed` from vue ([9ce43ac](https://github.com/nuxtlabs/ui/commit/9ce43ac68bcef3fb7fff8a9e317ad6d4a5ac2cb9))
* prefix imported components ([0c69385](https://github.com/nuxtlabs/ui/commit/0c69385771ff1815cdcbff812962056da381a541))
* put back app.config for hmr ([626409e](https://github.com/nuxtlabs/ui/commit/626409e1014ddcacaf6ee155830bd9862b335058))
* remove augmentation of app ([#152](https://github.com/nuxtlabs/ui/issues/152)) ([f5c0030](https://github.com/nuxtlabs/ui/commit/f5c0030a198579e5929fd517b80e2e20c9bac769))
* revert back to runtime app for hmr ([#153](https://github.com/nuxtlabs/ui/issues/153)) ([97b1a85](https://github.com/nuxtlabs/ui/commit/97b1a85ea12499289866a6baf15661c1f15279ce))
* **Select:** move types from template ([fa05653](https://github.com/nuxtlabs/ui/commit/fa05653f23c4e9b1732eb4b9cd5e034f9bdca272))
* **Toggle:** wrong `icon-off` positioning ([d5471f4](https://github.com/nuxtlabs/ui/commit/d5471f4d371b72df0ca5fac36e698066aca3864e))
* update to fix type issues ([#151](https://github.com/nuxtlabs/ui/issues/151)) ([11e00a1](https://github.com/nuxtlabs/ui/commit/11e00a10e4781881e293e5fcd382331008c15346))
* **VerticalNavigation:** improve focus ([034a95d](https://github.com/nuxtlabs/ui/commit/034a95d3c92eee9a54bd266e02d7446f7792d051))
* **VerticalNavigation:** improve stacking context ([28ee917](https://github.com/nuxtlabs/ui/commit/28ee9179f5fbc006a47719ee632adf54f0e0ec4d))
## [2.0.0](https://github.com/nuxtlabs/ui/compare/v1.2.11...v2.0.0) (2023-05-04)
### Features
* rewrite to use app config and rework docs ([#143](https://github.com/nuxtlabs/ui/issues/143)) ([6da0db0](https://github.com/nuxtlabs/ui/commit/6da0db0113733df1a03220cb528bea862b553f37))
### [1.2.11](https://github.com/nuxtlabs/ui/compare/v1.2.10...v1.2.11) (2023-05-04)
### Bug Fixes
* **defineShortcuts:** use `useEventListener` ([#150](https://github.com/nuxtlabs/ui/issues/150)) ([59f62d3](https://github.com/nuxtlabs/ui/commit/59f62d322f07919d16a8d35340c3aa038cd09520))
### [1.2.10](https://github.com/nuxtlabs/ui/compare/v1.2.9...v1.2.10) (2023-04-07)
### Bug Fixes
* **CommandPalette:** typecheck ([cfce152](https://github.com/nuxtlabs/ui/commit/cfce1524b209212d9ce635b61376ff0d6bc3601b))
### [1.2.9](https://github.com/nuxtlabs/ui/compare/v1.2.8...v1.2.9) (2023-04-07)

9
LICENSE.md Normal file
View File

@@ -0,0 +1,9 @@
MIT License
Copyright (c) 2023 NuxtLabs
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

102
README.md
View File

@@ -1,71 +1,73 @@
# @nuxthq/ui
[![nuxt-ui.png](https://volta.s3.fr-par.scw.cloud/nuxt_ui_social_card_531d133fa2.png)](https://ui.nuxt.com)
Components library as a Nuxt module using [TailwindCSS](https://tailwindcss.com).
# Nuxt UI
[![npm version][npm-version-src]][npm-version-href]
[![npm downloads][npm-downloads-src]][npm-downloads-href]
[![License][license-src]][license-href]
[![Nuxt][nuxt-src]][nuxt-href]
Nuxt UI is a module that provides a set of Vue components and composables built with [Tailwind CSS](https://tailwindcss.com/) and [Headless UI](https://headlessui.dev/) to help you build beautiful and accessible user interfaces.
Its goal is to provide everything related to UI when building a Nuxt app. This includes components, icons, colors, dark mode but also keyboard shortcuts.
## Features
- Built with [Headless UI](https://headlessui.dev/) and [Tailwind CSS](https://tailwindcss.com/)
- HMR support through Nuxt App Config
- Dark mode support
- Support for LTR and RTL languages
- Keyboard shortcuts
- Bundled icons
- Fully typed
- [Figma Kit](https://www.figma.com/community/file/1436401057300493073)
Read more on [ui.nuxt.com](https://ui.nuxt.com)
## Installation
```bash
yarn add --dev @nuxthq/ui
npx nuxi@latest module add ui
```
Then, register the module in your `nuxt.config.js`:
## Documentation
```js
import { defineNuxtConfig } from 'nuxt'
Visit https://ui.nuxt.com to explore the documentation.
export default defineNuxtConfig({
buildModules: [
'@nuxthq/ui'
]
})
```
## Credits
If you want latest updates, please use `@nuxthq/ui-edge` in your `package.json`:
- [nuxt/nuxt](https://github.com/nuxt/nuxt)
- [nuxt-modules/color-mode](https://github.com/nuxt-modules/color-mode)
- [nuxt-modules/tailwindcss](https://github.com/nuxt-modules/tailwindcss)
- [tailwindlabs/tailwindcss](https://github.com/tailwindlabs/tailwindcss)
- [tailwindlabs/headlessui](https://github.com/tailwindlabs/headlessui)
- [vueuse/vueuse](https://github.com/vueuse/vueuse)
- [egoist/tailwindcss-icons](https://github.com/egoist/tailwindcss-icons)
```json
{
"devDependencies": {
"@nuxthq/ui": "npm:@nuxthq/ui-edge@latest"
}
}
```
## Contributing
## Options
Thank you for considering contributing to Nuxt UI. Here are a few ways you can get involved:
- `primary`
- Reporting Bugs: If you come across any bugs or issues, please check out the reporting bugs guide to learn how to submit a bug report.
- Suggestions: Have any thoughts to enhance Nuxt UI? We'd love to hear them! Check out the [contribution guide](https://ui.nuxt.com/getting-started/contributing) to share your suggestions.
Define the primary variant. Defaults to `indigo`. You can specify your own object of colors like here:
## Local Development
**Example:**
Follow the docs to [Set up your local development environment](https://ui.nuxt.com/getting-started/contributing#_2-local-development-setup) and contribute.
```js
import { defineNuxtConfig } from 'nuxt'
## License
export default defineNuxtConfig({
buildModules: [
'@nuxthq/ui'
],
ui: {
primary: 'blue'
}
})
```
Licensed under the [MIT license](https://github.com/nuxt/ui/blob/dev/LICENSE.md).
- `prefix`
<!-- Badges -->
[npm-version-src]: https://img.shields.io/npm/v/@nuxt/ui/latest.svg?style=flat&colorA=18181B&colorB=28CF8D
[npm-version-href]: https://npmjs.com/package/@nuxt/ui
Define the prefix of the imported components. Defaults to `u`.
[npm-downloads-src]: https://img.shields.io/npm/dm/@nuxt/ui.svg?style=flat&colorA=18181B&colorB=28CF8D
[npm-downloads-href]: https://npmjs.com/package/@nuxt/ui
**Example:**
[license-src]: https://img.shields.io/github/license/nuxt/ui.svg?style=flat&colorA=18181B&colorB=28CF8D
[license-href]: https://github.com/nuxt/ui/blob/main/LICENSE.md
```js
import { defineNuxtConfig } from 'nuxt'
export default defineNuxtConfig({
buildModules: [
'@nuxthq/ui'
],
ui: {
prefix: 'tw'
}
})
```
[nuxt-src]: https://img.shields.io/badge/Nuxt-18181B?logo=nuxt.js
[nuxt-href]: https://nuxt.com

View File

@@ -1,12 +0,0 @@
import fs from 'node:fs/promises'
import { join, resolve } from 'node:path'
import { defineBuildConfig } from 'unbuild'
export default defineBuildConfig({
hooks: {
'rollup:done': async (ctx) => {
// copy env.d.ts to dist
await fs.copyFile(resolve('src/env.d.ts'), join(ctx.options.outDir, 'env.d.ts'))
}
}
})

8
docs/.env.example Normal file
View File

@@ -0,0 +1,8 @@
# Specify the path of @nuxt/ui-pro locally
NUXT_UI_PRO_PATH=
# Production token for @nuxt/ui-pro, purchase on https://ui.nuxt.com/pro/purchase
NUXT_UI_PRO_LICENSE=
# Used when pre-rendering the docs for dynamic OG images
NUXT_PUBLIC_SITE_URL=
# Used to fetch `nuxt/ui-pro` docs content
NUXT_GITHUB_TOKEN=

6
docs/app.config.ts Normal file
View File

@@ -0,0 +1,6 @@
export default defineAppConfig({
ui: {
primary: 'green',
gray: 'slate'
}
})

View File

@@ -1,95 +1,110 @@
<!-- eslint-disable vue/no-v-html -->
<template>
<div>
<nav class="u-bg-white border-b u-border-gray-200 fixed top-0 inset-x-0 z-10">
<UContainer padded>
<div class="flex items-center justify-between h-16">
<div class="flex items-center">
<NuxtLink to="/" class="block font-bold text-lg u-text-gray-900">
@nuxthq/ui
</NuxtLink>
</div>
<NuxtLoadingIndicator />
<div class="flex items-center">
<ColorScheme placeholder="" tag="span">
<UButton variant="transparent" :icon="colorMode.value === 'dark' ? 'i-heroicons-moon' : 'i-heroicons-sun'" @click="toggleDark" />
</ColorScheme>
<UButton to="https://github.com/nuxtlabs/ui" target="_blank" variant="transparent" icon="i-mdi-github" />
</div>
</div>
</UContainer>
</nav>
<!-- <Banner v-if="!$route.path.startsWith('/examples')" /> -->
<UContainer class="mt-16">
<div class="lg:grid lg:grid-cols-10 lg:gap-10 lg:relative">
<aside class="lg:flex lg:flex-col pb-8 lg:pb-0 lg:sticky lg:top-0 px-4 sm:px-6 lg:px-0 lg:pt-16 lg:-mt-16 lg:self-start lg:col-span-2 lg:overflow-hidden lg:h-screen">
<nav class="overflow-y-auto h-auto pt-8 lg:py-12">
<ul class="space-y-6">
<li v-for="section of sections" :key="section">
<h5 class="mb-3 uppercase tracking-wide font-semibold text-xs u-text-gray-900">
{{ section.label }}
</h5>
<ul class="space-y-1.5">
<li v-for="(link, index) of section.links" :key="index">
<ULink
:to="link.to"
class="relative block text-sm rounded-md"
active-class="text-primary-600"
inactive-class="u-text-gray-500 hover:u-text-gray-700"
exact
>
{{ link.label }}
</ULink>
</li>
</ul>
</li>
</ul>
</nav>
</aside>
<Header v-if="!$route.path.startsWith('/examples')" :links="links" />
<div class="space-y-6 sm:px-6 lg:px-0 lg:col-span-8 lg:py-12">
<NuxtPage />
</div>
</div>
</UContainer>
<NuxtLayout>
<NuxtPage />
</NuxtLayout>
<Footer v-if="!$route.path.startsWith('/examples')" />
<ClientOnly>
<UNotifications />
<LazyUContentSearch ref="searchRef" :files="files" :navigation="navigation" :links="links" :fuse="{ resultLimit: 42 }" />
</ClientOnly>
<UNotifications>
<template #title="{ title }">
<span v-html="title" />
</template>
</UNotifications>
<UModals />
<USlideovers />
</div>
</template>
<script setup>
<script setup lang="ts">
import { withoutTrailingSlash } from 'ufo'
import { debounce } from 'perfect-debounce'
import type { ParsedContent } from '@nuxt/content'
const searchRef = ref()
const route = useRoute()
const colorMode = useColorMode()
const { data: navigation } = await useAsyncData('navigation', () => fetchContentNavigation())
const { data: files } = useLazyFetch<ParsedContent[]>('/api/search.json', { default: () => [], server: false })
// Computed
const color = computed(() => colorMode.value === 'dark' ? '#18181b' : 'white')
const links = computed(() => {
return [{
label: 'Docs',
icon: 'i-heroicons-book-open',
to: '/getting-started',
active: route.path.startsWith('/getting-started') || route.path.startsWith('/components')
}, ...(navigation.value.find(item => item._path === '/pro')
? [{
label: 'Pro',
icon: 'i-heroicons-square-3-stack-3d',
to: '/pro',
active: route.path.startsWith('/pro/getting-started') || route.path.startsWith('/pro/components') || route.path.startsWith('/pro/prose')
}, {
label: 'Pricing',
icon: 'i-heroicons-ticket',
to: '/pro/pricing'
}, {
label: 'Templates',
icon: 'i-heroicons-computer-desktop',
to: '/pro/templates'
}]
: []), {
label: 'Releases',
icon: 'i-heroicons-rocket-launch',
to: '/releases'
}].filter(Boolean)
})
// Watch
watch(() => searchRef.value?.commandPaletteRef?.query, debounce((query: string) => {
if (!query) {
return
}
useTrackEvent('Search', { props: { query: `${query} - ${searchRef.value?.commandPaletteRef.results.length} results` } })
}, 500))
// Head
useHead({
title: '@nuxthq/ui',
meta: [
{ name: 'viewport', content: 'width=device-width, initial-scale=1, maximum-scale=1' }
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ key: 'theme-color', name: 'theme-color', content: color }
],
link: [
{ rel: 'stylesheet', href: 'https://rsms.me/inter/inter.css' }
{ rel: 'icon', type: 'image/svg+xml', href: '/icon.svg' },
{ rel: 'canonical', href: `https://ui.nuxt.com${withoutTrailingSlash(route.path)}` }
],
bodyAttrs: {
class: 'antialiased font-sans text-gray-700 bg-gray-50 dark:bg-gray-900 dark:text-gray-200 bg-white dark:bg-black'
htmlAttrs: {
lang: 'en'
}
})
const colorMode = useColorMode()
const toggleDark = () => {
colorMode.preference = colorMode.value === 'dark' ? 'light' : 'dark'
}
useServerSeoMeta({
ogSiteName: 'Nuxt UI',
twitterCard: 'summary_large_image'
})
const sections = [
{ label: 'Getting Started', links: [{ label: 'Usage', to: '/' }, { label: 'Examples', to: '/examples' }, { label: 'Migration', to: '/migration' }, { label: 'Dark mode', to: '/dark' }] },
{ label: 'Elements', links: [{ label: 'Avatar', to: '/components/Avatar' }, { label: 'AvatarGroup', to: '/components/AvatarGroup' }, { label: 'Badge', to: '/components/Badge' }, { label: 'Button', to: '/components/Button' }, { label: 'Dropdown', to: '/components/Dropdown' }] },
{ label: 'Feedback', links: [{ label: 'Alert', to: '/components/Alert' }, { label: 'AlertDialog', to: '/components/AlertDialog' }] },
{ label: 'Forms', links: [{ label: 'Checkbox', to: '/components/Checkbox' }, { label: 'Input', to: '/components/Input' }, { label: 'FormGroup', to: '/components/FormGroup' }, { label: 'Radio', to: '/components/Radio' }, { label: 'Select', to: '/components/Select' }, { label: 'SelectCustom', to: '/components/SelectCustom' }, { label: 'Textarea', to: '/components/Textarea' }, { label: 'Toggle', to: '/components/Toggle' }] },
{ label: 'Layout', links: [{ label: 'Card', to: '/components/Card' }, { label: 'Container', to: '/components/Container' }] },
{ label: 'Navigation', links: [{ label: 'Pills', to: '/components/Pills' }, { label: 'Tabs', to: '/components/Tabs' }, { label: 'VerticalNavigation', to: '/components/VerticalNavigation' }, { label: 'CommandPalette', to: '/components/CommandPalette' }] },
{ label: 'Overlays', links: [{ label: 'ContextMenu', to: '/components/ContextMenu' }, { label: 'Modal', to: '/components/Modal' }, { label: 'Notification', to: '/components/Notification' }, { label: 'Popover', to: '/components/Popover' }, { label: 'Slideover', to: '/components/Slideover' }, { label: 'Tooltip', to: '/components/Tooltip' }] }
]
// Provide
provide('navigation', navigation)
provide('files', files)
</script>
<style>
html.dark {
@apply bg-black;
}
</style>

View File

@@ -0,0 +1,74 @@
<script setup lang="ts">
const id = 'nuxt-ui-banner-3'
const to = '/pro/pricing'
const hideBanner = () => {
localStorage.setItem(id, 'true')
document.querySelector('html')?.classList.add('hide-banner')
}
if (import.meta.server) {
useHead({
script: [{
key: 'prehydrate-template-banner',
innerHTML: `
if (localStorage.getItem('${id}') === 'true') {
document.querySelector('html').classList.add('hide-banner')
}`.replace(/\s+/g, ' '),
type: 'text/javascript'
}]
})
}
</script>
<template>
<div class="relative bg-primary hover:bg-primary/90 transition-[background] backdrop-blur z-50 app-banner">
<UContainer class="py-2">
<NuxtLink
v-if="to"
:to="to"
class="focus:outline-none"
aria-label="20% off on all Nuxt UI Pro products for Black Friday week"
tabindex="-1"
>
<span class="absolute inset-0 " aria-hidden="true" />
</NuxtLink>
<div class="flex items-center justify-between gap-2">
<div class="lg:flex-1 hidden lg:flex items-center" />
<p class="text-sm font-medium text-white dark:text-gray-900 truncate">
<UIcon name="i-ri-discount-percent-fill" class="size-5 align-top flex-shrink-0 pointer-events-none mr-2" />
<span class="font-bold">Black Friday Week</span>: <UBadge label="20% off" color="white" class="ring-0 font-semibold" /> on all Nuxt UI Pro products from <span class="font-semibold">Nov 25</span> to <span class="font-semibold">Dec 2</span>!
</p>
<!-- <UButton
:to="to"
target="_blank"
label="Buy now"
color="black"
variant="solid"
size="2xs"
trailing-icon="i-heroicons-arrow-right-20-solid"
/> -->
<div class="flex items-center justify-end lg:flex-1">
<button
class="p-1.5 rounded-md inline-flex hover:bg-primary/90"
aria-label="Close banner"
@click.prevent="hideBanner"
>
<UIcon name="i-heroicons-x-mark-20-solid" class="w-5 h-5 text-white dark:text-gray-900" />
</button>
</div>
</div>
</UContainer>
</div>
</template>
<style scoped>
.hide-banner .app-banner {
display: none;
}
</style>

View File

@@ -0,0 +1,52 @@
<template>
<div class="w-full h-px bg-gray-200 dark:bg-gray-800 flex items-center justify-center">
<div v-if="!['/playground', '/roadmap'].includes($route.path)" class="bg-white dark:bg-gray-900 px-4">
<LogoOnly class="w-5 h-5" />
</div>
</div>
<UFooter :links="links">
<template #left>
<NuxtLink v-if="$route.path.startsWith('/pro')" to="https://ui.nuxt.com/pro/purchase" target="_blank" class="text-sm text-gray-500 dark:text-gray-400">
Purchase <span class="text-gray-900 dark:text-white">Nuxt UI Pro</span>
</NuxtLink>
<NuxtLink v-else to="https://github.com/nuxt/ui" target="_blank" class="text-sm text-gray-500 dark:text-gray-400">
Published under <span class="text-gray-900 dark:text-white">MIT License</span>
</NuxtLink>
</template>
<template #right>
<UButton aria-label="Nuxt Website" icon="i-simple-icons-nuxtdotjs" to="https://nuxt.com" target="_blank" v-bind="($ui.button.secondary as any)" />
<UButton aria-label="Nuxt UI on Discord" icon="i-simple-icons-discord" to="https://chat.nuxt.dev" target="_blank" v-bind="($ui.button.secondary as any)" />
<UButton aria-label="Nuxt on X" icon="i-simple-icons-x" to="https://x.com/nuxt_js" target="_blank" v-bind="($ui.button.secondary as any)" />
<UButton aria-label="Nuxt UI on GitHub" icon="i-simple-icons-github" to="https://github.com/nuxt/ui" target="_blank" v-bind="($ui.button.secondary as any)" />
</template>
</UFooter>
</template>
<script setup lang="ts">
const { $ui } = useNuxtApp()
const links = [{
icon: 'i-simple-icons-figma',
label: 'Figma Kit',
to: 'https://www.figma.com/community/file/1436401057300493073',
target: '_blank'
}, {
label: 'Playground',
icon: 'i-simple-icons-stackblitz',
to: 'https://stackblitz.com/edit/nuxt-ui',
target: '_blank'
}, {
label: 'Roadmap',
icon: 'i-heroicons-map',
to: '/roadmap'
}, {
label: 'Releases',
icon: 'i-heroicons-rocket-launch',
to: '/releases'
}, {
label: 'Terms',
to: '/pro/terms'
}]
</script>

View File

@@ -0,0 +1,34 @@
<template>
<svg viewBox="0 0 1440 181" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="path-1-inside-1_1086_7239" fill="white">
<path d="M0 0H1440V181H0V0Z" />
</mask>
<path d="M0 0H1440V181H0V0Z" fill="url(#paint0_linear_1086_7239)" fill-opacity="0.22" />
<path d="M0 2H1440V-2H0V2Z" fill="url(#paint1_linear_1086_7239)" mask="url(#path-1-inside-1_1086_7239)" />
<defs>
<linearGradient
id="paint0_linear_1086_7239"
x1="720"
y1="0"
x2="720"
y2="181"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="rgb(var(--color-primary-DEFAULT))" />
<stop offset="1" stop-color="rgb(var(--color-primary-DEFAULT))" stop-opacity="0" />
</linearGradient>
<linearGradient
id="paint1_linear_1086_7239"
x1="0"
y1="90.5"
x2="1440"
y2="90.5"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="rgb(var(--color-primary-DEFAULT))" stop-opacity="0" />
<stop offset="0.395" stop-color="rgb(var(--color-primary-DEFAULT))" />
<stop offset="1" stop-color="rgb(var(--color-primary-DEFAULT))" stop-opacity="0" />
</linearGradient>
</defs>
</svg>
</template>

View File

@@ -0,0 +1,94 @@
<template>
<UHeader
:links="links"
:class="{
'border-primary-200/75 dark:border-primary-900/50': $route.path === '/',
'border-gray-200 dark:border-gray-800': $route.path !== '/'
}"
:ui="{
left: 'min-w-0'
}"
>
<template #left>
<NuxtLink to="/" class="flex items-end gap-2 text-xl text-gray-900 dark:text-white min-w-0 shrink-0" aria-label="Nuxt UI">
<LogoPro v-if="$route.path.startsWith('/pro')" class="w-auto h-6 shrink-0" />
<Logo v-else class="w-auto h-6 shrink-0" />
</NuxtLink>
<UDropdown
:items="[[{ label: $route.path.startsWith('/pro') ? `v${pkg.version.split('-')[0]}` : `v${config.version}`, class: 'text-primary-500 dark:text-primary-400' }, { label: 'v3.0.0-alpha.x', to: 'https://ui3.nuxt.dev' }]]"
:popper="{ strategy: 'absolute', offsetDistance: 11, placement: 'bottom-start' }"
:ui="{
background: 'dark:bg-gray-900',
ring: 'dark:ring-gray-800',
width: 'w-auto',
item: {
padding: 'p-1',
size: 'text-xs',
active: 'dark:bg-gray-800/50'
}
}"
>
<UButton
:label="$route.path.startsWith('/pro') ? `v${pkg.version.split('-')[0]}` : `v${config.version}`"
trailing-icon="i-lucide-chevron-down"
variant="outline"
size="2xs"
truncate
class="-mb-[6px] font-semibold rounded-full truncate ring-primary-500/25 dark:ring-primary-400/25 bg-primary-500/10 dark:bg-primary-400/10 hover:bg-primary-500/15 dark:hover:bg-primary-400/15 transition-colors"
/>
</UDropdown>
</template>
<template #right>
<ColorPicker />
<UTooltip text="Search" :shortcuts="[metaSymbol, 'K']" :popper="{ strategy: 'absolute' }">
<UContentSearchButton :label="null" />
</UTooltip>
<UColorModeButton class="hidden lg:inline-flex" />
<UButton
to="https://github.com/nuxt/ui/tree/dev"
target="_blank"
icon="i-simple-icons-github"
aria-label="GitHub"
v-bind="($ui.button.secondary as any)"
/>
</template>
<template #panel>
<UAsideLinks :links="links" />
<UDivider type="dashed" class="my-4" />
<UNavigationTree :links="mapContentNavigation(navigation)" :multiple="false" default-open />
</template>
</UHeader>
</template>
<script setup lang="ts">
import type { NavItem } from '@nuxt/content'
import pkg from '@nuxt/ui-pro/package.json'
import type { HeaderLink } from '#ui-pro/types'
defineProps<{
links: HeaderLink[]
}>()
const route = useRoute()
const { $ui } = useNuxtApp()
const { metaSymbol } = useShortcuts()
const config = useRuntimeConfig().public
const nav = inject<Ref<NavItem[]>>('navigation')
const navigation = computed(() => {
if (route.path.startsWith('/pro')) {
return nav.value.find(item => item._path === '/pro')?.children
}
return nav.value.filter(item => !item._path.startsWith('/pro'))
})
</script>

11
docs/components/Logo.vue Normal file
View File

@@ -0,0 +1,11 @@
<template>
<svg width="1020" height="200" viewBox="0 0 1020 200" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M377 200C379.16 200 381 198.209 381 196V103C381 103 386 112 395 127L434 194C435.785 197.74 439.744 200 443 200H470V50H443C441.202 50 439 51.4941 439 54V148L421 116L385 55C383.248 51.8912 379.479 50 376 50H350V200H377Z" fill="currentColor" />
<path d="M726 92H739C742.314 92 745 89.3137 745 86V60H773V92H800V116H773V159C773 169.5 778.057 174 787 174H800V200H783C759.948 200 745 185.071 745 160V116H726V92Z" fill="currentColor" />
<path d="M591 92V154C591 168.004 585.742 179.809 578 188C570.258 196.191 559.566 200 545 200C530.434 200 518.742 196.191 511 188C503.389 179.809 498 168.004 498 154V92H514C517.412 92 520.769 92.622 523 95C525.231 97.2459 526 98.5652 526 102V154C526 162.059 526.457 167.037 530 171C533.543 174.831 537.914 176 545 176C552.217 176 555.457 174.831 559 171C562.543 167.037 563 162.059 563 154V102C563 98.5652 563.769 96.378 566 94C567.96 91.9107 570.028 91.9599 573 92C573.411 92.0055 574.586 92 575 92H591Z" fill="currentColor" />
<path d="M676 144L710 92H684C680.723 92 677.812 93.1758 676 96L660 120L645 97C643.188 94.1758 639.277 92 636 92H611L645 143L608 200H634C637.25 200 640.182 196.787 642 194L660 167L679 195C680.818 197.787 683.75 200 687 200H713L676 144Z" fill="currentColor" />
<path d="M168 200H279C282.542 200 285.932 198.756 289 197C292.068 195.244 295.23 193.041 297 190C298.77 186.959 300.002 183.51 300 179.999C299.998 176.488 298.773 173.04 297 170.001L222 41C220.23 37.96 218.067 35.7552 215 34C211.933 32.2448 207.542 31 204 31C200.458 31 197.067 32.2448 194 34C190.933 35.7552 188.77 37.96 187 41L168 74L130 9.99764C128.228 6.95784 126.068 3.75491 123 2C119.932 0.245087 116.542 0 113 0C109.458 0 106.068 0.245087 103 2C99.9323 3.75491 96.7717 6.95784 95 9.99764L2 170.001C0.226979 173.04 0.00154312 176.488 1.90993e-06 179.999C-0.0015393 183.51 0.229648 186.959 2 190C3.77035 193.04 6.93245 195.244 10 197C13.0675 198.756 16.4578 200 20 200H90C117.737 200 137.925 187.558 152 164L186 105L204 74L259 168H186L168 200ZM89 168H40L113 42L150 105L125.491 147.725C116.144 163.01 105.488 168 89 168Z" fill="rgb(var(--color-primary-DEFAULT))" />
<path d="M958 60.0001H938C933.524 60.0001 929.926 59.9395 927 63C924.074 65.8905 925 67.5792 925 72V141C925 151.372 923.648 156.899 919 162C914.352 166.931 908.468 169 899 169C889.705 169 882.648 166.931 878 162C873.352 156.899 873 151.372 873 141V72.0001C873 67.5793 872.926 65.8906 870 63.0001C867.074 59.9396 863.476 60.0001 859 60.0001H840V141C840 159.023 845.016 173.458 855 184C865.156 194.542 879.893 200 899 200C918.107 200 932.844 194.542 943 184C953.156 173.458 958 159.023 958 141V60.0001Z" fill="rgb(var(--color-primary-DEFAULT))" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M1000 60.0233L1020 60V77L1020 128V156.007L1020 181L1020 189.004C1020 192.938 1019.98 194.429 1017 197.001C1014.02 199.725 1009.56 200 1005 200H986.001V181.006L986 130.012V70.0215C986 66.1576 986.016 64.5494 989 62.023C991.819 59.6358 995.437 60.0233 1000 60.0233Z" fill="rgb(var(--color-primary-DEFAULT))" />
</svg>
</template>

View File

@@ -0,0 +1,5 @@
<template>
<svg width="264" height="264" viewBox="0 0 264 264" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M146.496 211.2H234.822C237.627 211.2 240.383 210.468 242.813 209.078C245.242 207.688 247.259 205.688 248.662 203.279C250.064 200.871 250.801 198.139 250.8 195.359C250.799 192.579 250.059 189.847 248.655 187.44L189.337 85.612C187.935 83.2043 185.918 81.2049 183.489 79.8147C181.06 78.4246 178.305 77.6927 175.5 77.6927C172.695 77.6927 169.94 78.4246 167.511 79.8147C165.082 81.2049 163.065 83.2043 161.663 85.612L146.496 111.666L116.841 60.7179C115.438 58.3104 113.42 56.3113 110.991 54.9214C108.561 53.5315 105.805 52.7998 103 52.7998C100.195 52.7998 97.4386 53.5315 95.0089 54.9214C92.5793 56.3113 90.5615 58.3104 89.1583 60.7179L15.3453 187.44C13.9411 189.847 13.2012 192.579 13.2 195.359C13.1987 198.139 13.9363 200.871 15.3384 203.279C16.7405 205.688 18.7578 207.688 21.1873 209.078C23.6168 210.468 26.3728 211.2 29.1783 211.2H84.6219C106.589 211.2 122.789 201.636 133.937 182.979L161 136.526L175.496 111.666L219 186.34H161L146.496 211.2ZM83.7181 186.314L45.0255 186.306L103.026 86.7466L131.966 136.526L112.589 169.798C105.186 181.904 96.7763 186.314 83.7181 186.314Z" fill="currentColor" />
</svg>
</template>

View File

@@ -0,0 +1,14 @@
<template>
<svg width="1352" height="200" viewBox="0 0 1352 200" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M377 200C379.16 200 381 198.209 381 196V103C381 103 386 112 395 127L434 194C435.785 197.74 439.744 200 443 200H470V50H443C441.202 50 439 51.4941 439 54V148L421 116L385 55C383.248 51.8912 379.479 50 376 50H350V200H377Z" fill="currentColor" />
<path d="M726 92H739C742.314 92 745 89.3137 745 86V60H773V92H800V116H773V159C773 169.5 778.057 174 787 174H800V200H783C759.948 200 745 185.071 745 160V116H726V92Z" fill="currentColor" />
<path d="M591 92V154C591 168.004 585.742 179.809 578 188C570.258 196.191 559.566 200 545 200C530.434 200 518.742 196.191 511 188C503.389 179.809 498 168.004 498 154V92H514C517.412 92 520.769 92.622 523 95C525.231 97.2459 526 98.5652 526 102V154C526 162.059 526.457 167.037 530 171C533.543 174.831 537.914 176 545 176C552.217 176 555.457 174.831 559 171C562.543 167.037 563 162.059 563 154V102C563 98.5652 563.769 96.378 566 94C567.96 91.9107 570.028 91.9599 573 92C573.411 92.0055 574.586 92 575 92H591Z" fill="currentColor" />
<path d="M676 144L710 92H684C680.723 92 677.812 93.1758 676 96L660 120L645 97C643.188 94.1758 639.277 92 636 92H611L645 143L608 200H634C637.25 200 640.182 196.787 642 194L660 167L679 195C680.818 197.787 683.75 200 687 200H713L676 144Z" fill="currentColor" />
<path d="M168 200H279C282.542 200 285.932 198.756 289 197C292.068 195.244 295.23 193.041 297 190C298.77 186.959 300.002 183.51 300 179.999C299.998 176.488 298.773 173.04 297 170.001L222 41C220.23 37.96 218.067 35.7552 215 34C211.933 32.2448 207.542 31 204 31C200.458 31 197.067 32.2448 194 34C190.933 35.7552 188.77 37.96 187 41L168 74L130 9.99764C128.228 6.95784 126.068 3.75491 123 2C119.932 0.245087 116.542 0 113 0C109.458 0 106.068 0.245087 103 2C99.9323 3.75491 96.7717 6.95784 95 9.99764L2 170.001C0.226979 173.04 0.00154312 176.488 1.90993e-06 179.999C-0.0015393 183.51 0.229648 186.959 2 190C3.77035 193.04 6.93245 195.244 10 197C13.0675 198.756 16.4578 200 20 200H90C117.737 200 137.925 187.558 152 164L186 105L204 74L259 168H186L168 200ZM89 168H40L113 42L150 105L125.491 147.725C116.144 163.01 105.488 168 89 168Z" fill="rgb(var(--color-primary-DEFAULT))" />
<path d="M958 60.0001H938C933.524 60.0001 929.926 59.9395 927 63C924.074 65.8905 925 67.5792 925 72V141C925 151.372 923.648 156.899 919 162C914.352 166.931 908.468 169 899 169C889.705 169 882.648 166.931 878 162C873.352 156.899 873 151.372 873 141V72.0001C873 67.5793 872.926 65.8906 870 63.0001C867.074 59.9396 863.476 60.0001 859 60.0001H840V141C840 159.023 845.016 173.458 855 184C865.156 194.542 879.893 200 899 200C918.107 200 932.844 194.542 943 184C953.156 173.458 958 159.023 958 141V60.0001Z" fill="currentColor" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M1000 60.0233L1020 60V77L1020 128V156.007L1020 181L1020 189.004C1020 192.938 1019.98 194.429 1017 197.001C1014.02 199.725 1009.56 200 1005 200H986.001V181.006L986 130.012V70.0215C986 66.1576 986.016 64.5494 989 62.023C991.819 59.6358 995.437 60.0233 1000 60.0233Z" fill="currentColor" />
<path d="M1060 200V60H1117C1126.67 60 1134.98 61.2896 1142 65C1149.16 68.7104 1155.29 74.3744 1159 81C1162.71 87.6256 1164 95.3867 1164 104C1164 112.481 1162.71 120.374 1159 127C1155.29 133.626 1149.16 138.157 1142 142C1134.98 145.71 1126.67 148 1117 148H1090V200H1060ZM1115 123C1121.63 123 1126.69 121.578 1130 118C1133.31 114.29 1135 109.433 1135 104C1135 98.567 1133.31 93.5778 1130 90C1126.69 86.2896 1121.63 85 1115 85H1090V123H1115Z" fill="rgb(var(--color-primary-DEFAULT))" />
<path d="M1226 123C1219.37 123 1214.31 124.965 1211 130C1207.69 135.035 1206 142.122 1206 151V200H1178V100H1200C1203.31 100 1206 102.686 1206 106V116C1208.65 109.904 1211.16 106.518 1215 104C1218.98 101.482 1224.77 100 1231 100H1242V123H1226Z" fill="rgb(var(--color-primary-DEFAULT))" />
<path d="M1299 200C1288.93 200 1280.08 197.373 1272 193C1263.92 188.495 1257.51 182.818 1253 175C1248.49 167.049 1246 157.806 1246 148C1246 138.194 1248.49 129.818 1253 122C1257.51 114.049 1263.92 107.373 1272 103C1280.08 98.4946 1288.93 97 1299 97C1309.07 97 1318.92 98.4946 1327 103C1335.08 107.373 1340.49 114.049 1345 122C1349.51 129.818 1352 138.194 1352 148C1352 157.806 1349.51 167.049 1345 175C1340.49 182.818 1335.08 188.495 1327 193C1318.92 197.373 1309.07 200 1299 200ZM1299 176C1306.42 176 1312.36 173.168 1317 168C1321.64 162.832 1324 156.216 1324 148C1324 139.652 1321.64 133.168 1317 128C1312.36 122.832 1306.42 120 1299 120C1291.58 120 1285.64 122.832 1281 128C1276.36 133.168 1274 139.652 1274 148C1274 156.216 1276.36 162.832 1281 168C1285.64 173.168 1291.58 176 1299 176Z" fill="rgb(var(--color-primary-DEFAULT))" />
</svg>
</template>

View File

@@ -0,0 +1,186 @@
<script lang="ts" setup>
defineProps({
title: {
type: String,
required: true
},
description: {
type: String,
required: true
},
headline: {
type: String,
default: ''
}
})
</script>
<template>
<div class="w-full h-full flex flex-col justify-center bg-slate-900">
<svg
class="absolute right-0 top-0"
width="629"
height="593"
viewBox="0 0 629 593"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<g filter="url(#filter0_f_199_94966)">
<path d="M628.5 -578L639.334 -94.4223L806.598 -548.281L659.827 -87.387L965.396 -462.344L676.925 -74.0787L1087.69 -329.501L688.776 -55.9396L1160.22 -164.149L694.095 -34.9354L1175.13 15.7948L692.306 -13.3422L1130.8 190.83L683.602 6.50012L1032.04 341.989L668.927 22.4412L889.557 452.891L649.872 32.7537L718.78 511.519L628.5 36.32L538.22 511.519L607.128 32.7537L367.443 452.891L588.073 22.4412L224.955 341.989L573.398 6.50012L126.198 190.83L564.694 -13.3422L81.8734 15.7948L562.905 -34.9354L96.7839 -164.149L568.224 -55.9396L169.314 -329.501L580.075 -74.0787L291.604 -462.344L597.173 -87.387L450.402 -548.281L617.666 -94.4223L628.5 -578Z" fill="#00DC82" />
</g>
<defs>
<filter
id="filter0_f_199_94966"
x="0.873535"
y="-659"
width="1255.25"
height="1251.52"
filterUnits="userSpaceOnUse"
color-interpolation-filters="sRGB"
>
<feFlood flood-opacity="0" result="BackgroundImageFix" />
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape" />
<feGaussianBlur stdDeviation="40.5" result="effect1_foregroundBlur_199_94966" />
</filter>
</defs>
</svg>
<div class="w-[700px] pl-[100px]">
<p v-if="headline" class="uppercase text-[24px] text-[#00DC82] mb-4 font-semibold">
{{ headline }}
</p>
<h1 class="m-0 text-[75px] font-semibold mb-2 text-white flex items-center">
<span>{{ title }}</span>
</h1>
<p v-if="description" class="text-[32px] text-[#94a3b8] leading-tight">
{{ description.slice(0, 200) }}
</p>
</div>
<svg
class="absolute top-[160px] right-[90px]"
width="340"
height="340"
viewBox="0 0 340 340"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path d="M86.6286 103.106C88.2099 94.7477 94.7477 88.2099 103.106 86.6286L104.427 86.3788C146.343 78.4485 189.386 78.5576 231.262 86.7002L232.272 86.8967C239.615 88.3244 245.4 93.99 246.981 101.301L247.277 102.671C256.565 145.63 256.438 190.092 246.903 232.997C245.361 239.939 239.939 245.361 232.997 246.903C190.092 256.438 145.63 256.565 102.671 247.277L101.301 246.981C93.99 245.4 88.3244 239.615 86.8967 232.272L86.7002 231.262C78.5576 189.386 78.4485 146.343 86.3788 104.426L86.6286 103.106Z" fill="url(#paint0_linear_199_94959)" />
<path d="M86.6286 103.106C88.2099 94.7477 94.7477 88.2099 103.106 86.6286L104.427 86.3788C146.343 78.4485 189.386 78.5576 231.262 86.7002L232.272 86.8967C239.615 88.3244 245.4 93.99 246.981 101.301L247.277 102.671C256.565 145.63 256.438 190.092 246.903 232.997C245.361 239.939 239.939 245.361 232.997 246.903C190.092 256.438 145.63 256.565 102.671 247.277L101.301 246.981C93.99 245.4 88.3244 239.615 86.8967 232.272L86.7002 231.262C78.5576 189.386 78.4485 146.343 86.3788 104.426L86.6286 103.106Z" fill="url(#paint1_radial_199_94959)" fill-opacity="0.06" />
<path d="M103.028 86.2151C94.4994 87.8286 87.8286 94.4994 86.2151 103.028L85.9653 104.348C78.0252 146.318 78.1344 189.414 86.2872 231.342L86.4836 232.353C87.9434 239.86 93.7366 245.776 101.212 247.392L102.582 247.688C145.601 256.989 190.124 256.862 233.089 247.314C240.19 245.736 245.736 240.19 247.314 233.089C256.862 190.124 256.989 145.601 247.688 102.582L247.392 101.212C245.776 93.7366 239.86 87.9434 232.353 86.4836L231.342 86.2872C189.414 78.1344 146.318 78.0252 104.348 85.9653L103.028 86.2151Z" stroke="url(#paint2_linear_199_94959)" stroke-opacity="0.2" stroke-width="0.841584" />
<path d="M86.5693 66.0418C76.1888 68.0728 68.0728 76.1888 66.0418 86.5693L65.7807 87.9041C55.4495 140.708 55.5631 195.024 66.1151 247.784L66.3095 248.756C68.1871 258.144 75.4486 265.527 84.8039 267.561L86.1767 267.86C140.001 279.561 195.755 279.425 249.525 267.477C258.483 265.486 265.485 258.489 267.475 249.53C279.429 195.737 279.558 139.989 267.852 86.1413L267.553 84.7671C265.524 75.4341 258.158 68.19 248.793 66.3169L247.784 66.1151C195.024 55.5631 140.708 55.4495 87.904 65.7807L86.5693 66.0418Z" stroke="url(#paint3_linear_199_94959)" stroke-opacity="0.6" stroke-width="1.7" />
<path d="M66.1749 44.2983C55.2117 46.6476 46.6475 55.2117 44.2983 66.1749L43.1523 71.5228C29.5422 135.037 29.5422 200.713 43.1523 264.227L44.425 270.166C46.7026 280.795 54.917 289.15 65.5055 291.608C132.857 307.243 203.127 307.189 270.477 291.554C280.924 289.129 289.129 280.924 291.554 270.477C307.189 203.127 307.243 132.857 291.608 65.5055C289.15 54.917 280.795 46.7026 270.166 44.425L264.227 43.1523C200.713 29.5422 135.037 29.5422 71.5228 43.1523L66.1749 44.2983Z" stroke="url(#paint4_linear_199_94959)" stroke-opacity="0.4" stroke-width="1.7" />
<path d="M47.0949 24.9846C36.0029 27.3375 27.3375 36.0029 24.9846 47.0949L19.3193 73.8027C5.86738 137.219 5.96967 202.762 19.6195 266.137L25.0028 291.131C27.3518 302.037 35.8106 310.592 46.6894 313.064L67.2583 317.739C134.879 333.107 205.098 332.991 272.667 317.398L291.54 313.043C302.229 310.576 310.576 302.229 313.043 291.54L317.398 272.667C332.991 205.098 333.107 134.879 317.739 67.2583L313.064 46.6894C310.592 35.8106 302.037 27.3518 291.131 25.0028L266.137 19.6195C202.762 5.96966 137.219 5.86738 73.8027 19.3193L47.0949 24.9846Z" stroke="url(#paint5_linear_199_94959)" stroke-opacity="0.2" stroke-width="2.125" />
<path d="M174.667 190.325H203.105C204.009 190.325 204.896 190.084 205.678 189.626C206.461 189.168 207.11 188.509 207.561 187.715C208.013 186.921 208.25 186.021 208.25 185.105C208.25 184.188 208.011 183.288 207.559 182.495L188.461 148.938C188.009 148.145 187.36 147.486 186.578 147.028C185.796 146.57 184.909 146.328 184.006 146.328C183.103 146.328 182.215 146.57 181.433 147.028C180.651 147.486 180.002 148.145 179.551 148.938L174.667 157.524L165.119 140.734C164.668 139.941 164.018 139.282 163.236 138.824C162.453 138.366 161.566 138.125 160.663 138.125C159.76 138.125 158.872 138.366 158.09 138.824C157.308 139.282 156.658 139.941 156.206 140.734L132.441 182.495C131.989 183.288 131.75 184.188 131.75 185.105C131.75 186.021 131.987 186.921 132.439 187.715C132.89 188.509 133.539 189.168 134.322 189.626C135.104 190.084 135.991 190.325 136.895 190.325H154.746C161.819 190.325 167.035 187.173 170.624 181.025L179.337 165.717L184.004 157.524L198.011 182.133H179.337L174.667 190.325ZM154.455 182.124L141.997 182.121L160.671 149.312L169.989 165.717L163.75 176.681C161.367 180.671 158.659 182.124 154.455 182.124Z" fill="#00DC82" />
<path d="M176.761 189.109H203.105H203.106C203.792 189.109 204.467 188.926 205.064 188.576C205.66 188.227 206.158 187.723 206.504 187.113L207.561 187.715L206.504 187.113C206.851 186.504 207.034 185.811 207.034 185.105C207.033 184.399 206.85 183.707 206.502 183.098L206.502 183.097L187.404 149.54L187.404 149.54C187.057 148.93 186.56 148.427 185.963 148.077C185.367 147.728 184.692 147.545 184.006 147.545C183.32 147.545 182.645 147.728 182.048 148.077C181.452 148.427 180.954 148.93 180.608 149.539C180.608 149.539 180.608 149.54 180.608 149.54L175.725 158.126L174.667 159.985L173.61 158.125L164.062 141.336L176.761 189.109ZM176.761 189.109L180.044 183.349H198.011H200.103L199.069 181.531L185.061 156.922L184.005 155.066L182.947 156.922L178.28 165.115L178.28 165.115L169.57 180.417C166.187 186.208 161.362 189.109 154.746 189.109H136.895H136.894C136.208 189.109 135.533 188.926 134.936 188.576C134.34 188.227 133.842 187.723 133.496 187.113L132.44 187.714L133.496 187.113C133.149 186.504 132.966 185.811 132.966 185.105C132.967 184.399 133.15 183.707 133.498 183.098L133.498 183.097L157.263 141.336C157.263 141.336 157.263 141.336 157.263 141.336C157.61 140.727 158.108 140.223 158.705 139.874C159.301 139.525 159.976 139.341 160.663 139.341C161.349 139.341 162.025 139.525 162.621 139.874L163.236 138.824L162.621 139.874C163.218 140.223 163.715 140.727 164.062 141.336L176.761 189.109ZM154.454 183.34H154.455C156.699 183.34 158.653 182.952 160.391 181.953C162.126 180.957 163.533 179.417 164.794 177.305L164.801 177.294L164.807 177.283L171.046 166.318L171.388 165.717L171.047 165.116L161.729 148.711L160.672 146.851L159.614 148.71L140.94 181.52L139.905 183.337L141.997 183.338L154.454 183.34Z" stroke="url(#paint6_linear_199_94959)" stroke-opacity="0.2" stroke-width="2.43271" />
<g filter="url(#filter0_f_199_94959)">
<path d="M174.667 190.325H203.105C204.009 190.325 204.896 190.084 205.678 189.626C206.461 189.168 207.11 188.509 207.561 187.715C208.013 186.921 208.25 186.021 208.25 185.105C208.25 184.188 208.011 183.288 207.559 182.495L188.461 148.938C188.009 148.145 187.36 147.486 186.578 147.028C185.796 146.57 184.909 146.328 184.006 146.328C183.103 146.328 182.215 146.57 181.433 147.028C180.651 147.486 180.002 148.145 179.551 148.938L174.667 157.524L165.119 140.734C164.668 139.941 164.018 139.282 163.236 138.824C162.453 138.366 161.566 138.125 160.663 138.125C159.76 138.125 158.872 138.366 158.09 138.824C157.308 139.282 156.658 139.941 156.206 140.734L132.441 182.495C131.989 183.288 131.75 184.188 131.75 185.105C131.75 186.021 131.987 186.921 132.439 187.715C132.89 188.509 133.539 189.168 134.322 189.626C135.104 190.084 135.991 190.325 136.895 190.325H154.746C161.819 190.325 167.035 187.173 170.624 181.025L179.337 165.717L184.004 157.524L198.011 182.133H179.337L174.667 190.325ZM154.455 182.124L141.997 182.121L160.671 149.312L169.989 165.717L163.75 176.681C161.367 180.671 158.659 182.124 154.455 182.124Z" fill="#00DC82" />
<path d="M176.761 189.109H203.105H203.106C203.792 189.109 204.467 188.926 205.064 188.576C205.66 188.227 206.158 187.723 206.504 187.113L207.561 187.715L206.504 187.113C206.851 186.504 207.034 185.811 207.034 185.105C207.033 184.399 206.85 183.707 206.502 183.098L206.502 183.097L187.404 149.54L187.404 149.54C187.057 148.93 186.56 148.427 185.963 148.077C185.367 147.728 184.692 147.545 184.006 147.545C183.32 147.545 182.645 147.728 182.048 148.077C181.452 148.427 180.954 148.93 180.608 149.539C180.608 149.539 180.608 149.54 180.608 149.54L175.725 158.126L174.667 159.985L173.61 158.125L164.062 141.336L176.761 189.109ZM176.761 189.109L180.044 183.349H198.011H200.103L199.069 181.531L185.061 156.922L184.005 155.066L182.947 156.922L178.28 165.115L178.28 165.115L169.57 180.417C166.187 186.208 161.362 189.109 154.746 189.109H136.895H136.894C136.208 189.109 135.533 188.926 134.936 188.576C134.34 188.227 133.842 187.723 133.496 187.113L132.44 187.714L133.496 187.113C133.149 186.504 132.966 185.811 132.966 185.105C132.967 184.399 133.15 183.707 133.498 183.098L133.498 183.097L157.263 141.336C157.263 141.336 157.263 141.336 157.263 141.336C157.61 140.727 158.108 140.223 158.705 139.874C159.301 139.525 159.976 139.341 160.663 139.341C161.349 139.341 162.025 139.525 162.621 139.874L163.236 138.824L162.621 139.874C163.218 140.223 163.715 140.727 164.062 141.336L176.761 189.109ZM154.454 183.34H154.455C156.699 183.34 158.653 182.952 160.391 181.953C162.126 180.957 163.533 179.417 164.794 177.305L164.801 177.294L164.807 177.283L171.046 166.318L171.388 165.717L171.047 165.116L161.729 148.711L160.672 146.851L159.614 148.71L140.94 181.52L139.905 183.337L141.997 183.338L154.454 183.34Z" stroke="url(#paint7_linear_199_94959)" stroke-opacity="0.2" stroke-width="2.43271" />
</g>
<defs>
<filter
id="filter0_f_199_94959"
x="124.176"
y="130.551"
width="91.6485"
height="67.3485"
filterUnits="userSpaceOnUse"
color-interpolation-filters="sRGB"
>
<feFlood flood-opacity="0" result="BackgroundImageFix" />
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape" />
<feGaussianBlur stdDeviation="3.78713" result="effect1_foregroundBlur_199_94959" />
</filter>
<linearGradient
id="paint0_linear_199_94959"
x1="167.875"
y1="74.375"
x2="88"
y2="261"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="#0F172A" />
<stop offset="1" stop-color="#0F172A" stop-opacity="0" />
</linearGradient>
<radialGradient
id="paint1_radial_199_94959"
cx="0"
cy="0"
r="1"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(167.875 167.875) rotate(-90) scale(100.596 107.502)"
>
<stop stop-color="white" />
<stop offset="1" stop-opacity="0" />
</radialGradient>
<linearGradient
id="paint2_linear_199_94959"
x1="247.183"
y1="96.4978"
x2="194.172"
y2="229.234"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="white" />
<stop offset="1" stop-opacity="0" />
</linearGradient>
<linearGradient
id="paint3_linear_199_94959"
x1="267.01"
y1="78.6537"
x2="200.746"
y2="244.574"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="#00DC82" />
<stop offset="1" stop-opacity="0" />
<stop offset="1" stop-opacity="0" />
</linearGradient>
<linearGradient
id="paint4_linear_199_94959"
x1="292.405"
y1="57.8159"
x2="209.877"
y2="264.463"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="#00DC82" />
<stop offset="1" stop-opacity="0" />
</linearGradient>
<linearGradient
id="paint5_linear_199_94959"
x1="314.196"
y1="40.2232"
x2="217.813"
y2="281.562"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="#00DC82" />
<stop offset="1" stop-opacity="0" />
</linearGradient>
<linearGradient
id="paint6_linear_199_94959"
x1="202.444"
y1="144.3"
x2="191.546"
y2="184.293"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="white" />
<stop offset="1" stop-opacity="0" />
</linearGradient>
<linearGradient
id="paint7_linear_199_94959"
x1="202.444"
y1="144.3"
x2="191.546"
y2="184.293"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="white" />
<stop offset="1" stop-opacity="0" />
</linearGradient>
</defs>
</svg>
</div>
</template>

View File

@@ -0,0 +1,45 @@
<template>
<div ref="carbonads" class="carbon" />
</template>
<script setup lang="ts">
const carbonads = ref(null)
onMounted(() => {
if (carbonads.value) {
const script = document.createElement('script')
script.setAttribute('type', 'text/javascript')
script.setAttribute('src', 'https://cdn.carbonads.com/carbon.js?serve=CWYIVK3E&placement=uinuxtcom')
script.setAttribute('id', '_carbonads_js')
carbonads.value.appendChild(script)
}
})
</script>
<style lang="postcss">
.carbon > #carbonads {
@apply relative border border-gray-200 dark:border-gray-800 rounded-lg bg-white dark:bg-gray-800/50 hover:border-gray-300 dark:hover:border-gray-700 w-full transition-colors min-h-[220px];
&:hover {
.carbon-text {
@apply text-gray-700 dark:text-gray-200;
}
}
.carbon-img {
@apply flex justify-center p-2 w-full;
& > img {
@apply !max-w-full w-full rounded;
}
}
.carbon-text {
@apply flex px-2 text-sm text-gray-500 dark:text-gray-400 transition-colors text-center w-full;
}
.carbon-poweredby {
@apply block text-xs text-center text-gray-400 dark:text-gray-500 hover:text-gray-500 dark:hover:text-gray-400 pt-1 pb-2 px-2 transition-colors;
}
}
</style>

View File

@@ -0,0 +1,27 @@
<template>
<div class="relative group/ad border border-gray-200 dark:border-gray-800 rounded-lg bg-white dark:bg-gray-800/50 hover:border-gray-300 dark:hover:border-gray-700 p-2 w-full transition-colors">
<NuxtLink to="/pro" class="focus:outline-none" tabindex="-1">
<span class="absolute inset-0" aria-hidden="true" />
</NuxtLink>
<UColorModeImage
light="/illustrations/pro-light.svg"
dark="/illustrations/pro-dark.svg"
alt="Nuxt UI Pro"
loading="lazy"
class="w-full"
/>
<div class="flex flex-col items-center mt-2 text-center">
<div class="inline-flex gap-1.5">
<Logo class="h-4 w-auto" />
<UBadge variant="subtle" size="xs" label="Pro" class="font-semibold rounded" />
</div>
<p class="text-sm text-gray-500 dark:text-gray-400 group-hover/ad:text-gray-700 dark:group-hover/ad:text-gray-200 mt-1 transition-colors">
The Building Blocks for Modern Web Apps.
</p>
</div>
</div>
</template>

View File

@@ -0,0 +1,56 @@
<template>
<UPopover mode="hover" :popper="{ strategy: 'absolute' }" :ui="{ width: 'w-[156px]' }">
<template #default="{ open }">
<UButton color="gray" variant="ghost" square :class="[open && 'bg-gray-50 dark:bg-gray-800']" aria-label="Color picker">
<UIcon name="i-heroicons-swatch-20-solid" class="w-5 h-5 text-primary-500 dark:text-primary-400" />
</UButton>
</template>
<template #panel>
<div class="p-2">
<div class="grid grid-cols-5 gap-px">
<ColorPickerPill v-for="color in primaryColors" :key="color.value" :color="color" :selected="primary" @select="primary = color" />
</div>
<hr class="border-gray-200 dark:border-gray-800 my-2">
<div class="grid grid-cols-5 gap-px">
<ColorPickerPill v-for="color in grayColors" :key="color.value" :color="color" :selected="gray" @select="gray = color" />
</div>
</div>
</template>
</UPopover>
</template>
<script setup lang="ts">
import colors from '#tailwind-config/theme/colors'
const appConfig = useAppConfig()
const colorMode = useColorMode()
// Computed
const primaryColors = computed(() => appConfig.ui.colors.filter(color => color !== 'primary').map(color => ({ value: color, text: color, hex: colors[color][colorMode.value === 'dark' ? 400 : 500] })))
const primary = computed({
get() {
return primaryColors.value.find(option => option.value === appConfig.ui.primary)
},
set(option) {
appConfig.ui.primary = option.value
window.localStorage.setItem('nuxt-ui-primary', appConfig.ui.primary)
}
})
const grayColors = computed(() => ['slate', 'cool', 'zinc', 'neutral', 'stone'].map(color => ({ value: color, text: color, hex: colors[color][colorMode.value === 'dark' ? 400 : 500] })))
const gray = computed({
get() {
return grayColors.value.find(option => option.value === appConfig.ui.gray)
},
set(option) {
appConfig.ui.gray = option.value
window.localStorage.setItem('nuxt-ui-gray', appConfig.ui.gray)
}
})
</script>

View File

@@ -0,0 +1,25 @@
<template>
<UTooltip :text="color.value" class="capitalize" :open-delay="500">
<UButton
color="white"
square
:ui="{
color: {
white: {
solid: 'ring-0 bg-gray-100 dark:bg-gray-800 hover:bg-gray-100 dark:hover:bg-gray-800',
ghost: 'hover:bg-gray-50 dark:hover:bg-gray-800/50'
}
}
}"
:variant="color.value === selected.value ? 'solid' : 'ghost'"
@click.stop.prevent="$emit('select')"
>
<span class="inline-block w-3 h-3 rounded-full" :style="{ backgroundColor: color.hex }" />
</UButton>
</UTooltip>
</template>
<script setup lang="ts">
defineProps<{ color: { value: string, hex: string }, selected: { value: string } }>()
defineEmits(['select'])
</script>

View File

@@ -0,0 +1,28 @@
<template>
<ClientOnly>
<UButton
:icon="isDark ? 'i-heroicons-moon-20-solid' : 'i-heroicons-sun-20-solid'"
color="gray"
variant="ghost"
aria-label="Theme"
@click="isDark = !isDark"
/>
<template #fallback>
<div class="w-8 h-8" />
</template>
</ClientOnly>
</template>
<script setup lang="ts">
const colorMode = useColorMode()
const isDark = computed({
get() {
return colorMode.value === 'dark'
},
set() {
colorMode.preference = colorMode.value === 'dark' ? 'light' : 'dark'
}
})
</script>

View File

@@ -0,0 +1,293 @@
<template>
<div>
<div v-if="propsToSelect.length" class="relative flex border border-gray-200 dark:border-gray-700 rounded-t-md overflow-hidden not-prose">
<div v-for="prop in propsToSelect" :key="prop.name" class="flex flex-col gap-0.5 justify-between py-1.5 font-medium bg-gray-50 dark:bg-gray-800 border-r border-r-gray-200 dark:border-r-gray-700">
<label :for="`prop-${prop.name}`" class="block text-xs px-2.5 font-medium text-gray-400 dark:text-gray-500 -my-px">{{ prop.label }}</label>
<UCheckbox
v-if="prop.type.startsWith('boolean')"
v-model="componentProps[prop.name]"
:name="`prop-${prop.name}`"
tabindex="-1"
class="justify-center"
/>
<USelectMenu
v-else-if="prop.options.length && prop.name !== 'label'"
v-model="componentProps[prop.name]"
:options="prop.options"
:name="`prop-${prop.name}`"
variant="none"
class="inline-flex"
:ui-menu="{ width: 'w-32 !-mt-px', rounded: 'rounded-t-none' }"
select-class="py-0"
tabindex="-1"
:popper="{ strategy: 'fixed', placement: 'bottom-start' }"
/>
<UInput
v-else
:model-value="componentProps[prop.name]"
:type="prop.type === 'number' ? 'number' : 'text'"
:name="`prop-${prop.name}`"
variant="none"
autocomplete="off"
input-class="py-0"
tabindex="-1"
@update:model-value="val => componentProps[prop.name] = prop.type === 'number' ? Number(val) : val"
/>
</div>
</div>
<div class="flex border border-b-0 border-gray-200 dark:border-gray-700 relative not-prose" :class="[{ 'p-4': padding }, propsToSelect.length ? 'border-t-0' : 'rounded-t-md', backgroundClass, extraClass]">
<component :is="name" v-model="vModel" v-bind="fullProps" :class="componentClass">
<ContentSlot v-if="$slots.default" :use="$slots.default" />
<template v-for="slot in Object.keys(slots || {})" :key="slot" #[slot]>
<ContentSlot :name="slot" unwrap="p" />
</template>
</component>
</div>
<ContentRenderer v-if="!previewOnly" :value="ast" class="[&>div>pre]:!rounded-t-none [&>div>pre]:!mt-0" />
</div>
</template>
<script setup lang="ts">
import { upperFirst, camelCase, kebabCase } from 'scule'
import { useShikiHighlighter } from '~/composables/useShikiHighlighter'
const props = defineProps({
slug: {
type: String,
default: null
},
padding: {
type: Boolean,
default: true
},
props: {
type: Object,
default: () => ({})
},
code: {
type: String,
default: null
},
slots: {
type: Object,
default: null
},
baseProps: {
type: Object,
default: () => ({})
},
ui: {
type: Object,
default: () => ({})
},
excludedProps: {
type: Array,
default: () => []
},
options: {
type: Array as PropType<{ name: string, values: string[], restriction: 'expected' | 'included' | 'excluded' | 'only' }[]>,
default: () => []
},
backgroundClass: {
type: String,
default: 'bg-white dark:bg-gray-900'
},
extraClass: {
type: String,
default: ''
},
previewOnly: {
type: Boolean,
default: false
},
componentClass: {
type: String,
default: ''
},
ignoreVModel: {
type: Boolean,
default: false
}
})
const baseProps = reactive({ ...props.baseProps })
const componentProps = reactive({ ...props.props })
const { $prettier } = useNuxtApp()
const appConfig = useAppConfig()
const route = useRoute()
const highlighter = useShikiHighlighter()
let name = props.slug || `U${upperFirst(camelCase(route.params.slug[route.params.slug.length - 1]))}`
// TODO: Remove once merged on `main` branch
if (['AvatarGroup', 'ButtonGroup', 'MeterGroup'].includes(name)) {
name = `U${name}`
}
if (['avatar-group', 'button-group', 'radio'].includes(name)) {
name = `U${upperFirst(camelCase(name))}`
}
const meta = await fetchComponentMeta(name)
// Computed
const fullProps = computed(() => ({ ...componentProps, ...baseProps }))
const vModel = computed({
get: () => baseProps.modelValue,
set: (value) => {
baseProps.modelValue = value
}
})
const generateOptions = (key: string, schema: { kind: string, schema: [], type: string }) => {
let options = []
const optionItem = props?.options?.find(item => item?.name === key) || null
const types = schema?.type?.split('|')?.map(item => item.trim()?.replaceAll('"', '')) || []
const hasIgnoredTypes = types?.every(item => ['string', 'number', 'boolean', 'array', 'object', 'Function'].includes(item))
if (key.toLowerCase().endsWith('color')) {
options = [...appConfig.ui.colors]
}
const schemaOptions = Object.values(schema?.schema || {})
if (key.toLowerCase() === 'size' && schemaOptions?.length > 0) {
const baseSizeOrder = { xs: 1, sm: 2, md: 3, lg: 4, xl: 5 }
schemaOptions.sort((a: string, b: string) => {
const aBase = a.match(/[a-z]+/i)[0].toLowerCase()
const bBase = b.match(/[a-z]+/i)[0].toLowerCase()
const aNum = Number.parseInt(a.match(/\d+/)?.[0]) || 1
const bNum = Number.parseInt(b.match(/\d+/)?.[0]) || 1
if (aBase === bBase) {
return aBase === 'xs' ? bNum - aNum : aNum - bNum
}
return baseSizeOrder[aBase] - baseSizeOrder[bBase]
})
}
if (schemaOptions?.length > 0 && schema?.kind === 'enum' && !hasIgnoredTypes && optionItem?.restriction !== 'only') {
options = schemaOptions.filter(option => typeof option === 'string').map((option: string) => option.replaceAll('"', ''))
}
if (optionItem?.restriction === 'only') {
options = optionItem.values
}
if (optionItem?.restriction === 'expected') {
options = options.filter(item => optionItem.values.includes(item))
}
if (optionItem?.restriction === 'included') {
options = [...options, ...optionItem.values]
}
if (optionItem?.restriction === 'excluded') {
options = options.filter(item => !optionItem.values.includes(item))
}
return options
}
const propsToSelect = computed(() => Object.keys(componentProps).map((key) => {
if (props.excludedProps.includes(key)) {
return null
}
const prop = meta?.meta?.props?.find((prop: any) => prop.name === key)
const schema = prop?.schema || {}
const options = generateOptions(key, schema)
return {
type: prop?.type || 'string',
name: key,
label: key === 'modelValue' ? 'value' : camelCase(key),
options
}
}).filter(Boolean))
const code = computed(() => {
let code = `\`\`\`html
<template>
<${name}`
for (const [key, value] of Object.entries(fullProps.value)) {
if (value === 'undefined' || value === null) {
continue
}
if (key === 'modelValue' && props.ignoreVModel) {
continue
}
code += ` ${(typeof value === 'boolean' && (value !== true || key === 'modelValue')) || typeof value === 'object' || typeof value === 'number' ? ':' : ''}${key === 'modelValue' ? 'model-value' : kebabCase(key)}${typeof value === 'boolean' && !!value && key !== 'modelValue' ? '' : `="${typeof value === 'object' ? renderObject(value) : value}"`}`
}
if (props.slots) {
code += `>
${Object.entries(props.slots).map(([key, value]) => `<template #${key}>
${value}
</template>`).join('\n ')}
</${name}>`
} else if (props.code) {
const lineBreaks = (props.code.match(/\n/g) || []).length
if (lineBreaks > 1) {
code += `>
${props.code}</${name}>`
} else {
code += `>${props.code.endsWith('>') ? `${props.code}\n` : props.code}</${name}>`
}
} else {
code += ' />'
}
code += `\n</template>
\`\`\`
`
return code
})
function renderObject(obj: any) {
if (Array.isArray(obj)) {
return `[${obj.map(renderObject).join(', ')}]`
}
if (typeof obj === 'object') {
return `{ ${Object.entries(obj).map(([key, value]) => `${key}: ${renderObject(value)}`).join(', ')} }`
}
if (typeof obj === 'string') {
return `'${obj}'`
}
return obj
}
const { data: ast } = await useAsyncData(`${name}-ast-${JSON.stringify({ props: componentProps, slots: props.slots, code: props.code })}`, async () => {
let formatted = ''
try {
// @ts-ignore
formatted = await $prettier.format(code.value, {
trailingComma: 'none',
semi: false,
singleQuote: true
})
} catch {
formatted = code.value
}
return parseMarkdown(formatted, {
highlight: {
highlighter,
theme: {
light: 'material-theme-lighter',
default: 'material-theme',
dark: 'material-theme-palenight'
}
}
})
}, { watch: [code] })
</script>

View File

@@ -0,0 +1,94 @@
<template>
<div class="[&>div>pre]:!rounded-t-none [&>div>pre]:!mt-0">
<div v-if="hasPreview" class="flex border border-gray-200 dark:border-gray-700 relative rounded-t-md" :class="[{ 'p-4': padding, 'rounded-b-md': !hasCode, 'border-b-0': hasCode, 'not-prose': !prose }, backgroundClass, extraClass]">
<template v-if="component">
<iframe v-if="iframe" :src="`/examples/${component}`" v-bind="iframeProps" :class="backgroundClass" class="w-full" />
<component :is="camelName" v-else v-bind="componentProps" :class="componentClass" />
</template>
<ContentSlot v-if="$slots.default" :use="$slots.default" />
</div>
<template v-if="hasCode">
<slot v-if="$slots.code" name="code" />
<ContentRenderer v-else :value="ast" class="[&>div>pre]:!rounded-t-none [&>div>pre]:!mt-0" />
</template>
</div>
</template>
<script setup lang="ts">
import { camelCase } from 'scule'
import { fetchContentExampleCode } from '~/composables/useContentExamplesCode'
import { useShikiHighlighter } from '~/composables/useShikiHighlighter'
const props = defineProps({
component: {
type: String,
default: null
},
componentClass: {
type: String,
default: ''
},
componentProps: {
type: Object,
default: () => ({})
},
hiddenPreview: {
type: Boolean,
default: false
},
hiddenCode: {
type: Boolean,
default: false
},
padding: {
type: Boolean,
default: true
},
prose: {
type: Boolean,
default: false
},
iframe: {
type: Boolean,
default: false
},
iframeProps: {
type: Object,
default: () => ({})
},
backgroundClass: {
type: String,
default: 'bg-white dark:bg-gray-900'
},
extraClass: {
type: String,
default: ''
}
})
let component = props.component
// TODO: Remove once merged on `main` branch
if (['command-palette-theme-algolia', 'command-palette-theme-raycast', 'vertical-navigation-theme-tailwind', 'pagination-theme-rounded'].includes(component)) {
component = component.replace('-theme', '-example-theme')
}
const instance = getCurrentInstance()
const camelName = camelCase(component)
const data = await fetchContentExampleCode(camelName)
const highlighter = useShikiHighlighter()
const hasCode = computed(() => !props.hiddenCode && (data?.code || instance.slots.code))
const hasPreview = computed(() => !props.hiddenPreview && (props.component || instance.slots.default))
const { data: ast } = await useAsyncData(`content-example-${camelName}-ast`, () => parseMarkdown(`\`\`\`vue\n${data?.code ?? ''}\n\`\`\``, {
highlight: {
highlighter,
theme: {
light: 'material-theme-lighter',
default: 'material-theme',
dark: 'material-theme-palenight'
}
}
}))
</script>

View File

@@ -0,0 +1,41 @@
<template>
<ContentRenderer :value="ast" />
</template>
<script setup lang="ts">
import { upperFirst, camelCase } from 'scule'
import json5 from 'json5'
import * as config from '#ui/ui.config'
import { useShikiHighlighter } from '~/composables/useShikiHighlighter'
const props = defineProps({
slug: {
type: String,
default: null
}
})
const route = useRoute()
const highlighter = useShikiHighlighter()
const slug = props.slug || route.params.slug[route.params.slug.length - 1]
const camelName = camelCase(slug)
const name = `U${upperFirst(camelName)}`
const preset = config[camelName]
const { data: ast } = await useAsyncData(`${name}-preset`, () => parseMarkdown(`
\`\`\`yml
${json5.stringify(preset, null, 2).replace(/,([ |\t\n]+[}|\])])/g, '$1')}
\`\`\`\
`, {
highlight: {
highlighter,
theme: {
light: 'material-theme-lighter',
default: 'material-theme',
dark: 'material-theme-palenight'
}
}
}))
</script>

View File

@@ -0,0 +1,32 @@
<template>
<div>
<FieldGroup>
<ComponentPropsField v-for="prop in meta?.meta?.props" :key="prop.name" :prop="prop" />
</FieldGroup>
</div>
</template>
<script setup lang="ts">
import { upperFirst, camelCase } from 'scule'
const props = defineProps({
slug: {
type: String,
default: null
}
})
const route = useRoute()
let name = props.slug || `U${upperFirst(camelCase(route.params.slug[route.params.slug.length - 1]))}`
// TODO: Remove once merged on `main` branch
if (['AvatarGroup', 'ButtonGroup', 'MeterGroup'].includes(name)) {
name = `U${name}`
}
if (['avatar-group', 'button-group', 'radio'].includes(name)) {
name = `U${upperFirst(camelCase(name))}`
}
const meta = await fetchComponentMeta(name)
</script>

View File

@@ -0,0 +1,46 @@
<template>
<Field v-bind="prop">
<code v-if="prop.default" class="leading-6">{{ prop.default }}</code>
<p v-if="prop.description">
{{ prop.description }}
</p>
<Collapsible v-if="prop.schema?.kind === 'array' && Object.values(prop.schema?.schema)?.filter((schema: any) => schema.kind === 'object').length">
<FieldGroup v-for="schema in (Object.values(prop.schema.schema) as any[])" :key="schema.name">
<ComponentPropsField v-for="subProp in Object.values(schema.schema)" :key="(subProp as any).name" :prop="subProp" />
</FieldGroup>
</Collapsible>
<Collapsible v-else-if="(prop.schema?.kind === 'enum' || prop.schema?.kind === 'array') && Object.values(prop.schema?.schema)?.filter((schema: any) => schema.kind === 'array' && typeof schema.schema === 'object')?.length > 1">
<FieldGroup v-for="schema in (Object.values(prop.schema.schema) as any[])" :key="schema.name">
<template v-for="subSchema in schema.schema" :key="subSchema.name">
<ComponentPropsField v-for="subProp in subSchema.schema" :key="(subProp as any).name" :prop="subProp" />
</template>
</FieldGroup>
</Collapsible>
<Collapsible v-else-if="prop.schema?.kind === 'object' && prop.schema.type !== 'Function' && Object.values(prop.schema.schema)?.length">
<FieldGroup>
<ComponentPropsField v-for="subProp in Object.values(prop.schema.schema)" :key="(subProp as any).name" :prop="subProp" />
</FieldGroup>
</Collapsible>
<div v-else-if="prop.schema?.kind === 'enum' && prop.schema.type !== 'boolean' && startsWithCapital(prop.schema.type) && !prop.schema.type.startsWith(prop.schema.schema[0])" class="flex items-center flex-wrap gap-1 -my-1">
<code v-for="value in Object.values(prop.schema.schema).filter(value => typeof value === 'string')" :key="value" class="whitespace-pre-wrap break-words leading-6">{{ value }}</code>
</div>
</Field>
</template>
<script setup lang="ts">
defineProps({
prop: {
type: Object as PropType<any>,
default: () => ({})
}
})
function startsWithCapital(word) {
if (word.charAt(0).startsWith('"')) {
return false
}
return word.charAt(0) === word.charAt(0).toUpperCase()
}
</script>

View File

@@ -0,0 +1,24 @@
<template>
<div>
<FieldGroup>
<Field v-for="slot in meta?.meta.slots" :key="slot.name" v-bind="slot" />
</FieldGroup>
</div>
</template>
<script setup lang="ts">
import { upperFirst, camelCase } from 'scule'
const props = defineProps({
slug: {
type: String,
default: null
}
})
const route = useRoute()
const name = props.slug || `U${upperFirst(camelCase(route.params.slug[route.params.slug.length - 1]))}`
const meta = await fetchComponentMeta(name)
</script>

View File

@@ -0,0 +1,21 @@
<template>
<div class="relative overflow-hidden rounded border border-dashed border-gray-400 dark:border-gray-500 opacity-75 px-4 flex items-center justify-center">
<svg class="absolute inset-0 h-full w-full stroke-gray-900/10 dark:stroke-white/10" fill="none">
<defs>
<pattern
id="pattern-5c1e4f0e-62d5-498b-8ff0-cf77bb448c8e"
x="0"
y="0"
width="10"
height="10"
patternUnits="userSpaceOnUse"
>
<path d="M-3 13 15-5M-5 5l18-18M-1 21 17 3" />
</pattern>
</defs>
<rect stroke="none" fill="url(#pattern-5c1e4f0e-62d5-498b-8ff0-cf77bb448c8e)" width="100%" height="100%" />
</svg>
<slot />
</div>
</template>

View File

@@ -0,0 +1,33 @@
<script setup lang="ts">
const items = [{
label: 'Getting Started',
icon: 'i-heroicons-information-circle',
defaultOpen: true,
content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque elit, tristique placerat feugiat ac, facilisis vitae arcu. Proin eget egestas augue. Praesent ut sem nec arcu pellentesque aliquet. Duis dapibus diam vel metus tempus vulputate.'
}, {
label: 'Installation',
icon: 'i-heroicons-arrow-down-tray',
disabled: true,
content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque elit, tristique placerat feugiat ac, facilisis vitae arcu. Proin eget egestas augue. Praesent ut sem nec arcu pellentesque aliquet. Duis dapibus diam vel metus tempus vulputate.'
}, {
label: 'Theming',
icon: 'i-heroicons-eye-dropper',
content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque elit, tristique placerat feugiat ac, facilisis vitae arcu. Proin eget egestas augue. Praesent ut sem nec arcu pellentesque aliquet. Duis dapibus diam vel metus tempus vulputate.'
}, {
label: 'Layouts',
icon: 'i-heroicons-rectangle-group',
content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque elit, tristique placerat feugiat ac, facilisis vitae arcu. Proin eget egestas augue. Praesent ut sem nec arcu pellentesque aliquet. Duis dapibus diam vel metus tempus vulputate.'
}, {
label: 'Components',
icon: 'i-heroicons-square-3-stack-3d',
content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque elit, tristique placerat feugiat ac, facilisis vitae arcu. Proin eget egestas augue. Praesent ut sem nec arcu pellentesque aliquet. Duis dapibus diam vel metus tempus vulputate.'
}, {
label: 'Utilities',
icon: 'i-heroicons-wrench-screwdriver',
content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque elit, tristique placerat feugiat ac, facilisis vitae arcu. Proin eget egestas augue. Praesent ut sem nec arcu pellentesque aliquet. Duis dapibus diam vel metus tempus vulputate.'
}]
</script>
<template>
<UAccordion :items="items" />
</template>

View File

@@ -0,0 +1,52 @@
<script setup lang="ts">
const items = [{
label: 'Getting Started',
icon: 'i-heroicons-information-circle',
defaultOpen: true,
content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque elit, tristique placerat feugiat ac, facilisis vitae arcu. Proin eget egestas augue. Praesent ut sem nec arcu pellentesque aliquet. Duis dapibus diam vel metus tempus vulputate.'
}, {
label: 'Installation',
icon: 'i-heroicons-arrow-down-tray',
content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque elit, tristique placerat feugiat ac, facilisis vitae arcu. Proin eget egestas augue. Praesent ut sem nec arcu pellentesque aliquet. Duis dapibus diam vel metus tempus vulputate.'
}, {
label: 'Theming',
icon: 'i-heroicons-eye-dropper',
content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque elit, tristique placerat feugiat ac, facilisis vitae arcu. Proin eget egestas augue. Praesent ut sem nec arcu pellentesque aliquet. Duis dapibus diam vel metus tempus vulputate.'
}, {
label: 'Layouts',
icon: 'i-heroicons-rectangle-group',
content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque elit, tristique placerat feugiat ac, facilisis vitae arcu. Proin eget egestas augue. Praesent ut sem nec arcu pellentesque aliquet. Duis dapibus diam vel metus tempus vulputate.'
}, {
label: 'Components',
icon: 'i-heroicons-square-3-stack-3d',
content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque elit, tristique placerat feugiat ac, facilisis vitae arcu. Proin eget egestas augue. Praesent ut sem nec arcu pellentesque aliquet. Duis dapibus diam vel metus tempus vulputate.'
}, {
label: 'Utilities',
icon: 'i-heroicons-wrench-screwdriver',
content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque elit, tristique placerat feugiat ac, facilisis vitae arcu. Proin eget egestas augue. Praesent ut sem nec arcu pellentesque aliquet. Duis dapibus diam vel metus tempus vulputate.'
}]
</script>
<template>
<UAccordion :items="items" :ui="{ wrapper: 'flex flex-col w-full' }">
<template #default="{ item, index, open }">
<UButton color="gray" variant="ghost" class="border-b border-gray-200 dark:border-gray-700" :ui="{ rounded: 'rounded-none', padding: { sm: 'p-3' } }">
<template #leading>
<div class="w-6 h-6 rounded-full bg-primary-500 dark:bg-primary-400 flex items-center justify-center -my-1">
<UIcon :name="item.icon" class="w-4 h-4 text-white dark:text-gray-900" />
</div>
</template>
<span class="truncate">{{ index + 1 }}. {{ item.label }}</span>
<template #trailing>
<UIcon
name="i-heroicons-chevron-right-20-solid"
class="w-5 h-5 ms-auto transform transition-transform duration-200"
:class="[open && 'rotate-90']"
/>
</template>
</UButton>
</template>
</UAccordion>
</template>

View File

@@ -0,0 +1,68 @@
<script setup lang="ts">
const items = [{
label: 'Getting Started',
icon: 'i-heroicons-information-circle',
defaultOpen: true,
slot: 'getting-started'
}, {
label: 'Installation',
icon: 'i-heroicons-arrow-down-tray',
defaultOpen: true,
slot: 'installation'
}, {
label: 'Theming',
icon: 'i-heroicons-eye-dropper',
defaultOpen: true,
description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque elit, tristique placerat feugiat ac, facilisis vitae arcu. Proin eget egestas augue. Praesent ut sem nec arcu pellentesque aliquet. Duis dapibus diam vel metus tempus vulputate.'
}, {
label: 'Layouts',
icon: 'i-heroicons-rectangle-group',
description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque elit, tristique placerat feugiat ac, facilisis vitae arcu. Proin eget egestas augue. Praesent ut sem nec arcu pellentesque aliquet. Duis dapibus diam vel metus tempus vulputate.'
}, {
label: 'Components',
icon: 'i-heroicons-square-3-stack-3d',
description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque elit, tristique placerat feugiat ac, facilisis vitae arcu. Proin eget egestas augue. Praesent ut sem nec arcu pellentesque aliquet. Duis dapibus diam vel metus tempus vulputate.'
}, {
label: 'Utilities',
icon: 'i-heroicons-wrench-screwdriver',
description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque elit, tristique placerat feugiat ac, facilisis vitae arcu. Proin eget egestas augue. Praesent ut sem nec arcu pellentesque aliquet. Duis dapibus diam vel metus tempus vulputate.'
}]
</script>
<template>
<UAccordion :items="items">
<template #item="{ item }">
<p class="italic text-gray-900 dark:text-white text-center">
{{ item.description }}
</p>
</template>
<template #getting-started>
<div class="text-gray-900 dark:text-white text-center">
<Logo class="w-auto h-8 mx-auto" />
<p class="text-sm text-gray-500 dark:text-gray-400 mt-2">
Fully styled and customizable components for Nuxt.
</p>
</div>
</template>
<template #installation="{ description }">
<div class="flex flex-col justify-center items-center gap-1 mb-4">
<h3 class="text-xl font-bold text-gray-900 dark:text-white">
Installation
</h3>
<p class="text-sm text-gray-500 dark:text-gray-400">
Install <code>@nuxt/ui</code> dependency to your project:
</p>
<p>
{{ description }}
</p>
</div>
<div class="flex flex-col items-center">
<code>$ npx nuxi@latest module add ui</code>
</div>
</template>
</UAccordion>
</template>

View File

@@ -0,0 +1,19 @@
<template>
<UAlert
title="Customize Alert Avatar"
description="Insert custom content into the avatar slot!"
:avatar="{
src: 'https://avatars.githubusercontent.com/u/739984?v=4',
alt: 'Avatar'
}"
>
<template #avatar="{ avatar }">
<UAvatar
v-bind="avatar"
chip-color="primary"
chip-text=""
chip-position="top-right"
/>
</template>
</UAlert>
</template>

View File

@@ -0,0 +1,12 @@
<template>
<UAlert title="Heads <i>up</i>!" icon="i-heroicons-command-line">
<template #title="{ title }">
<!-- eslint-disable-next-line vue/no-v-html -->
<span v-html="title" />
</template>
<template #description>
You can add <b>components</b> to your app using the <u>cli</u>.
</template>
</UAlert>
</template>

View File

@@ -0,0 +1,9 @@
<template>
<UAlert title="Customize Alert Icon" description="Insert custom content into the icon slot!" icon="i-heroicons-command-line">
<template #icon="{ icon }">
<UBadge size="sm">
<UIcon :name="icon" />
</UBadge>
</template>
</UAlert>
</template>

View File

@@ -0,0 +1,17 @@
<script setup lang="ts">
const links = [{
label: 'Home',
icon: 'i-heroicons-home',
to: '/'
}, {
label: 'Navigation',
icon: 'i-heroicons-square-3-stack-3d'
}, {
label: 'Breadcrumb',
icon: 'i-heroicons-link'
}]
</script>
<template>
<UBreadcrumb :links="links" />
</template>

View File

@@ -0,0 +1,20 @@
<script setup lang="ts">
const links = [{
label: 'Home',
to: '/'
}, {
label: 'Navigation'
}, {
label: 'Breadcrumb'
}]
</script>
<template>
<UBreadcrumb :links="links">
<template #default="{ link, isActive, index }">
<UBadge :color="isActive ? 'primary' : 'gray'" class="rounded-full truncate">
{{ index + 1 }}. {{ link.label }}
</UBadge>
</template>
</UBreadcrumb>
</template>

View File

@@ -0,0 +1,21 @@
<script setup lang="ts">
const links = [{
label: 'Home',
icon: 'i-heroicons-home',
to: '/'
}, {
label: 'Navigation',
icon: 'i-heroicons-square-3-stack-3d'
}, {
label: 'Breadcrumb',
icon: 'i-heroicons-link'
}]
</script>
<template>
<UBreadcrumb :links="links" :ui="{ ol: 'gap-x-3', li: 'gap-x-3' }">
<template #divider>
<span class="w-8 h-1 rounded-full bg-gray-300 dark:bg-gray-700" />
</template>
</UBreadcrumb>
</template>

View File

@@ -0,0 +1,25 @@
<script setup lang="ts">
const links = [{
label: 'Home',
to: '/'
}, {
label: 'Navigation'
}, {
label: 'Breadcrumb'
}]
</script>
<template>
<UBreadcrumb :links="links" :divider="null" :ui="{ ol: 'gap-x-3' }">
<template #icon="{ link, index, isActive }">
<UAvatar
:alt="(index + 1).toString()"
:ui="{
background: isActive ? 'bg-primary-500 dark:bg-primary-400' : undefined,
placeholder: isActive ? 'text-white dark:text-gray-900' : !!link.to ? 'group-hover:text-gray-700 dark:group-hover:text-gray-200' : ''
}"
size="xs"
/>
</template>
</UBreadcrumb>
</template>

View File

@@ -0,0 +1,13 @@
<template>
<UCard>
<template #header>
<Placeholder class="h-8" />
</template>
<Placeholder class="h-32" />
<template #footer>
<Placeholder class="h-8" />
</template>
</UCard>
</template>

View File

@@ -0,0 +1,16 @@
<script setup lang="ts">
const items = [
'https://picsum.photos/600/800?random=1',
'https://picsum.photos/600/800?random=2',
'https://picsum.photos/600/800?random=3',
'https://picsum.photos/600/800?random=4',
'https://picsum.photos/600/800?random=5',
'https://picsum.photos/600/800?random=6'
]
</script>
<template>
<UCarousel v-slot="{ item }" :items="items">
<img :src="item" width="300" height="400" draggable="false">
</UCarousel>
</template>

View File

@@ -0,0 +1,16 @@
<script setup lang="ts">
const items = [
'https://picsum.photos/1920/1080?random=1',
'https://picsum.photos/1920/1080?random=2',
'https://picsum.photos/1920/1080?random=3',
'https://picsum.photos/1920/1080?random=4',
'https://picsum.photos/1920/1080?random=5',
'https://picsum.photos/1920/1080?random=6'
]
</script>
<template>
<UCarousel v-slot="{ item }" :items="items" :ui="{ item: 'basis-full' }" class="rounded-lg overflow-hidden" arrows>
<img :src="item" class="w-full" draggable="false">
</UCarousel>
</template>

View File

@@ -0,0 +1,35 @@
<script setup lang="ts">
const items = [
'https://picsum.photos/600/800?random=1',
'https://picsum.photos/600/800?random=2',
'https://picsum.photos/600/800?random=3',
'https://picsum.photos/600/800?random=4',
'https://picsum.photos/600/800?random=5',
'https://picsum.photos/600/800?random=6'
]
</script>
<template>
<UCarousel
v-slot="{ item }"
:items="items"
:ui="{
item: 'basis-full',
container: 'rounded-lg'
}"
:prev-button="{
color: 'gray',
icon: 'i-heroicons-arrow-left-20-solid',
class: '-start-12'
}"
:next-button="{
color: 'gray',
icon: 'i-heroicons-arrow-right-20-solid',
class: '-end-12'
}"
arrows
class="w-64 mx-auto"
>
<img :src="item" class="w-full" draggable="false">
</UCarousel>
</template>

View File

@@ -0,0 +1,37 @@
<script setup lang="ts">
const items = [
'https://picsum.photos/1920/1080?random=1',
'https://picsum.photos/1920/1080?random=2',
'https://picsum.photos/1920/1080?random=3',
'https://picsum.photos/1920/1080?random=4',
'https://picsum.photos/1920/1080?random=5',
'https://picsum.photos/1920/1080?random=6'
]
const carouselRef = ref()
onMounted(() => {
setInterval(() => {
if (!carouselRef.value) return
if (carouselRef.value.page === carouselRef.value.pages) {
return carouselRef.value.select(0)
}
carouselRef.value.next()
}, 3000)
})
</script>
<template>
<UCarousel
ref="carouselRef"
v-slot="{ item }"
:items="items"
:ui="{ item: 'basis-full' }"
class="rounded-lg overflow-hidden"
indicators
>
<img :src="item" class="w-full" draggable="false">
</UCarousel>
</template>

View File

@@ -0,0 +1,16 @@
<script setup lang="ts">
const items = [
'https://picsum.photos/1920/1080?random=1',
'https://picsum.photos/1920/1080?random=2',
'https://picsum.photos/1920/1080?random=3',
'https://picsum.photos/1920/1080?random=4',
'https://picsum.photos/1920/1080?random=5',
'https://picsum.photos/1920/1080?random=6'
]
</script>
<template>
<UCarousel v-slot="{ item }" :items="items" :ui="{ item: 'basis-full' }" class="rounded-lg overflow-hidden" indicators>
<img :src="item" class="w-full" draggable="false">
</UCarousel>
</template>

View File

@@ -0,0 +1,16 @@
<script setup lang="ts">
const items = [
'https://picsum.photos/600/600?random=1',
'https://picsum.photos/600/600?random=2',
'https://picsum.photos/600/600?random=3',
'https://picsum.photos/600/600?random=4',
'https://picsum.photos/600/600?random=5',
'https://picsum.photos/600/600?random=6'
]
</script>
<template>
<UCarousel v-slot="{ item }" :items="items" :ui="{ item: 'basis-full md:basis-1/2 lg:basis-1/3' }" indicators class="rounded-lg overflow-hidden">
<img :src="item" class="w-full" draggable="false">
</UCarousel>
</template>

View File

@@ -0,0 +1,16 @@
<script setup lang="ts">
const items = [
'https://picsum.photos/600/600?random=1',
'https://picsum.photos/600/600?random=2',
'https://picsum.photos/600/600?random=3',
'https://picsum.photos/600/600?random=4',
'https://picsum.photos/600/600?random=5',
'https://picsum.photos/600/600?random=6'
]
</script>
<template>
<UCarousel v-slot="{ item }" :items="items" :ui="{ item: 'basis-full md:basis-1/2 lg:basis-1/3' }">
<img :src="item" class="w-full" draggable="false">
</UCarousel>
</template>

View File

@@ -0,0 +1,16 @@
<script setup lang="ts">
const items = [
'https://picsum.photos/600/800?random=1',
'https://picsum.photos/600/800?random=2',
'https://picsum.photos/600/800?random=3',
'https://picsum.photos/600/800?random=4',
'https://picsum.photos/600/800?random=5',
'https://picsum.photos/600/800?random=6'
]
</script>
<template>
<UCarousel v-slot="{ item }" :items="items" :ui="{ item: 'basis-full' }" class="w-64 mx-auto rounded-lg overflow-hidden">
<img :src="item" class="w-full" draggable="false">
</UCarousel>
</template>

View File

@@ -0,0 +1,16 @@
<script setup lang="ts">
const items = [
'https://picsum.photos/1920/1080?random=1',
'https://picsum.photos/1920/1080?random=2',
'https://picsum.photos/1920/1080?random=3',
'https://picsum.photos/1920/1080?random=4',
'https://picsum.photos/1920/1080?random=5',
'https://picsum.photos/1920/1080?random=6'
]
</script>
<template>
<UCarousel v-slot="{ item }" :items="items" :ui="{ item: 'basis-full' }" class="rounded-lg overflow-hidden">
<img :src="item" class="w-full" draggable="false">
</UCarousel>
</template>

View File

@@ -0,0 +1,31 @@
<script setup lang="ts">
const items = [{
name: 'Sébastien Chopin',
to: 'https://github.com/Atinux',
avatar: { src: 'https://ipx.nuxt.com/f_auto,s_192x192/gh_avatar/atinux' }
}, {
name: 'Pooya Parsa',
to: 'https://github.com/pi0',
avatar: { src: 'https://ipx.nuxt.com/f_auto,s_192x192/gh_avatar/pi0' }
}, {
name: 'Daniel Roe',
to: 'https://github.com/danielroe',
avatar: { src: 'https://ipx.nuxt.com/f_auto,s_192x192/gh_avatar/danielroe' }
}, {
name: 'Anthony Fu',
to: 'https://github.com/antfu',
avatar: { src: 'https://ipx.nuxt.com/f_auto,s_192x192/gh_avatar/antfu' }
}]
</script>
<template>
<UCarousel v-slot="{ item, index }" :items="items" :ui="{ item: 'w-full' }">
<div class="text-center mx-auto">
<img :src="item.avatar.src" :alt="item.name" class="rounded-full w-48 h-48 mb-2" draggable="false">
<p class="font-semibold">
{{ index + 1 }}. {{ item.name }}
</p>
</div>
</UCarousel>
</template>

View File

@@ -0,0 +1,33 @@
<script setup lang="ts">
const items = [
'https://picsum.photos/600/800?random=1',
'https://picsum.photos/600/800?random=2',
'https://picsum.photos/600/800?random=3',
'https://picsum.photos/600/800?random=4',
'https://picsum.photos/600/800?random=5',
'https://picsum.photos/600/800?random=6'
]
</script>
<template>
<UCarousel
:items="items"
:ui="{
item: 'basis-full',
container: 'rounded-lg',
indicators: {
wrapper: 'relative bottom-0 mt-4'
}
}"
indicators
class="w-64 mx-auto"
>
<template #default="{ item }">
<img :src="item" class="w-full" draggable="false">
</template>
<template #indicator="{ onClick, page, active }">
<UButton :label="String(page)" :variant="active ? 'solid' : 'outline'" size="2xs" class="rounded-full min-w-6 justify-center" @click="onClick(page)" />
</template>
</UCarousel>
</template>

View File

@@ -0,0 +1,38 @@
<script setup lang="ts">
const items = [
'https://picsum.photos/600/800?random=1',
'https://picsum.photos/600/800?random=2',
'https://picsum.photos/600/800?random=3',
'https://picsum.photos/600/800?random=4',
'https://picsum.photos/600/800?random=5',
'https://picsum.photos/600/800?random=6'
]
</script>
<template>
<UCarousel
:items="items"
:ui="{
item: 'basis-full',
container: 'rounded-lg'
}"
arrows
class="w-64 mx-auto"
>
<template #default="{ item }">
<img :src="item" class="w-full" draggable="false">
</template>
<template #prev="{ onClick, disabled }">
<button :disabled="disabled" @click="onClick">
Prev
</button>
</template>
<template #next="{ onClick, disabled }">
<button :disabled="disabled" @click="onClick">
Next
</button>
</template>
</UCarousel>
</template>

View File

@@ -0,0 +1,16 @@
<script setup lang="ts">
const items = [
'https://picsum.photos/400/600?random=1',
'https://picsum.photos/400/600?random=2',
'https://picsum.photos/400/600?random=3',
'https://picsum.photos/400/600?random=4',
'https://picsum.photos/400/600?random=5',
'https://picsum.photos/400/600?random=6'
]
</script>
<template>
<UCarousel v-slot="{ item }" :items="items" :ui="{ item: 'snap-end' }">
<img :src="item" width="200" height="300" draggable="false">
</UCarousel>
</template>

View File

@@ -0,0 +1,16 @@
<script setup lang="ts">
const items = [
'https://picsum.photos/400/600?random=1',
'https://picsum.photos/400/600?random=2',
'https://picsum.photos/400/600?random=3',
'https://picsum.photos/400/600?random=4',
'https://picsum.photos/400/600?random=5',
'https://picsum.photos/400/600?random=6'
]
</script>
<template>
<UCarousel v-slot="{ item }" :items="items" :ui="{ item: 'snap-start' }">
<img :src="item" width="200" height="300" draggable="false">
</UCarousel>
</template>

View File

@@ -0,0 +1,7 @@
<script setup lang="ts">
const selected = ref(true)
</script>
<template>
<UCheckbox v-model="selected" name="notifications" label="Notifications" />
</template>

View File

@@ -0,0 +1,19 @@
<template>
<UChip size="md" position="bottom-right" inset :ui="{ base: '-mx-2 rounded-none ring-0', background: '' }">
<UAvatar
src="https://avatars.githubusercontent.com/u/739984?v=4"
alt="Avatar"
size="lg"
/>
<template #content>
<UAvatar
src="https://avatars.githubusercontent.com/in/80442?v=4"
alt="Avatar"
size="xs"
:ui="{ rounded: 'rounded-md' }"
class="shadow-md"
/>
</template>
</UChip>
</template>

View File

@@ -0,0 +1,19 @@
<script setup lang="ts">
const items = [{
name: 'messages',
icon: 'i-heroicons-chat-bubble-oval-left',
count: 3
}, {
name: 'notifications',
icon: 'i-heroicons-bell',
count: 0
}]
</script>
<template>
<div class="flex gap-3">
<UChip v-for="{ name, icon, count } in items" :key="name" :show="count > 0">
<UButton :icon="icon" color="gray" />
</UChip>
</div>
</template>

View File

@@ -0,0 +1,20 @@
<script setup lang="ts">
const groups = [{
key: 'users',
label: q => q && `Users matching “${q}”...`,
search: async (q) => {
if (!q) {
return []
}
// @ts-ignore
const users: any[] = await $fetch('https://jsonplaceholder.typicode.com/users', { params: { q } })
return users.map(user => ({ id: user.id, label: user.name, suffix: user.email }))
}
}]
</script>
<template>
<UCommandPalette :groups="groups" :autoselect="false" />
</template>

View File

@@ -0,0 +1,27 @@
<script setup lang="ts">
const people = [
{ id: 1, label: 'Wade Cooper' },
{ id: 2, label: 'Arlene Mccoy' },
{ id: 3, label: 'Devon Webb' },
{ id: 4, label: 'Tom Cook' },
{ id: 5, label: 'Tanya Fox' },
{ id: 6, label: 'Hellen Schmidt' },
{ id: 7, label: 'Caroline Schultz' },
{ id: 8, label: 'Mason Heaney' },
{ id: 9, label: 'Claudie Smitham' },
{ id: 10, label: 'Emil Schaefer' }
]
const selected = ref([people[3]])
</script>
<template>
<UCommandPalette
v-model="selected"
multiple
nullable
:autoselect="false"
:groups="[{ key: 'people', commands: people }]"
:fuse="{ resultLimit: 6, fuseOptions: { threshold: 0.1 } }"
/>
</template>

View File

@@ -0,0 +1,10 @@
<template>
<UCommandPalette>
<template #empty-state>
<div class="flex flex-col items-center justify-center py-6 gap-3">
<span class="italic text-sm">Nothing here!</span>
<UButton label="Add item" />
</div>
</template>
</UCommandPalette>
</template>

View File

@@ -0,0 +1,30 @@
<script setup lang="ts">
const people = [
{ id: 1, label: 'Wade Cooper', child: true },
{ id: 2, label: 'Arlene Mccoy' },
{ id: 3, label: 'Devon Webb', child: true },
{ id: 4, label: 'Tom Cook' },
{ id: 5, label: 'Tanya Fox', child: true },
{ id: 6, label: 'Hellen Schmidt' },
{ id: 7, label: 'Caroline Schultz', child: true },
{ id: 8, label: 'Mason Heaney' },
{ id: 9, label: 'Claudie Smitham', child: true },
{ id: 10, label: 'Emil Schaefer' }
]
const groups = [{
key: 'users',
commands: people,
filter: (q, commands) => {
if (!q) {
return commands?.filter(command => !command.child)
}
return commands
}
}]
</script>
<template>
<UCommandPalette :groups="groups" :autoselect="false" />
</template>

View File

@@ -0,0 +1,48 @@
<script setup lang="ts">
const router = useRouter()
const toast = useToast()
const commandPaletteRef = ref()
const users = [
{ id: 'benjamincanac', label: 'benjamincanac', href: 'https://github.com/benjamincanac', target: '_blank', avatar: { src: 'https://ipx.nuxt.com/s_16x16/gh_avatar/benjamincanac', srcset: 'https://ipx.nuxt.com/s_32x32/gh_avatar/benjamincanac 2x', loading: 'lazy' } },
{ id: 'Atinux', label: 'Atinux', href: 'https://github.com/Atinux', target: '_blank', avatar: { src: 'https://ipx.nuxt.com/s_16x16/gh_avatar/Atinux', srcset: 'https://ipx.nuxt.com/s_32x32/gh_avatar/Atinux 2x', loading: 'lazy' } },
{ id: 'smarroufin', label: 'smarroufin', href: 'https://github.com/smarroufin', target: '_blank', avatar: { src: 'https://ipx.nuxt.com/s_16x16/gh_avatar/smarroufin', srcset: 'https://ipx.nuxt.com/s_32x32/gh_avatar/smarroufin 2x', loading: 'lazy' } }
]
const actions = [
{ id: 'new-file', label: 'Add new file', icon: 'i-heroicons-document-plus', click: () => toast.add({ title: 'New file added!' }), shortcuts: ['⌘', 'N'] },
{ id: 'new-folder', label: 'Add new folder', icon: 'i-heroicons-folder-plus', click: () => toast.add({ title: 'New folder added!' }), shortcuts: ['⌘', 'F'] },
{ id: 'hashtag', label: 'Add hashtag', icon: 'i-heroicons-hashtag', click: () => toast.add({ title: 'Hashtag added!' }), shortcuts: ['⌘', 'H'] },
{ id: 'label', label: 'Add label', icon: 'i-heroicons-tag', click: () => toast.add({ title: 'Label added!' }), shortcuts: ['⌘', 'L'] }
]
const groups = computed(() =>
[commandPaletteRef.value?.query
? {
key: 'users',
commands: users
}
: {
key: 'recent',
label: 'Recent searches',
commands: users.slice(0, 1)
}, {
key: 'actions',
commands: actions
}].filter(Boolean))
function onSelect(option) {
if (option.click) {
option.click()
} else if (option.to) {
router.push(option.to)
} else if (option.href) {
window.open(option.href, '_blank')
}
}
</script>
<template>
<UCommandPalette ref="commandPaletteRef" :groups="groups" :autoselect="false" @update:model-value="onSelect" />
</template>

View File

@@ -0,0 +1,33 @@
<script setup lang="ts">
const isOpen = ref(false)
const people = [
{ id: 1, label: 'Wade Cooper' },
{ id: 2, label: 'Arlene Mccoy' },
{ id: 3, label: 'Devon Webb' },
{ id: 4, label: 'Tom Cook' },
{ id: 5, label: 'Tanya Fox' },
{ id: 6, label: 'Hellen Schmidt' },
{ id: 7, label: 'Caroline Schultz' },
{ id: 8, label: 'Mason Heaney' },
{ id: 9, label: 'Claudie Smitham' },
{ id: 10, label: 'Emil Schaefer' }
]
const selected = ref([])
</script>
<template>
<div>
<UButton label="Open" @click="isOpen = true" />
<UModal v-model="isOpen">
<UCommandPalette
v-model="selected"
multiple
nullable
:groups="[{ key: 'people', commands: people }]"
/>
</UModal>
</div>
</template>

View File

@@ -0,0 +1,78 @@
<script setup lang="ts">
import type { NavItem, ParsedContent } from '@nuxt/content'
import type { Button } from '#ui/types'
const commandPaletteRef = ref()
const navigation = inject<Ref<NavItem[]>>('navigation')
const files = inject<Ref<ParsedContent[]>>('files')
const groups = computed(() => navigation.value.map(item => ({
key: item._path,
label: item.label,
commands: files.value.filter(file => file._path.startsWith(item._path)).map(file => ({
id: file._id,
icon: 'i-heroicons-document',
title: file.navigation?.title || file.title,
category: item.title,
to: file._path
}))
})))
const closeButton = computed(() => commandPaletteRef.value?.query ? ({ icon: 'i-heroicons-x-mark', color: 'black', variant: 'ghost', size: 'lg', padded: false }) : null)
const emptyState = computed(() => commandPaletteRef.value?.query ? ({ icon: 'i-heroicons-magnifying-glass', queryLabel: 'No results' }) : ({ icon: '', label: 'No recent searches' }))
const ui = {
wrapper: 'flex flex-col flex-1 min-h-0 bg-gray-50 dark:bg-gray-800',
input: {
wrapper: 'relative flex items-center mx-3 py-3',
base: 'w-full rounded border-2 border-primary-500 placeholder-gray-400 dark:placeholder-gray-500 focus:border-primary-500 focus:outline-none focus:ring-0 bg-white dark:bg-gray-900',
padding: 'px-4',
height: 'h-14',
size: 'text-lg',
icon: {
base: 'pointer-events-none absolute left-3 text-primary-500 dark:text-primary-400',
size: 'h-6 w-6'
}
},
group: {
wrapper: 'p-3 relative',
label: '-mx-3 px-3 -mt-4 mb-2 py-1 text-sm font-semibold text-primary-500 dark:text-primary-400 font-semibold sticky top-0 bg-gray-50 dark:bg-gray-800 z-10',
container: 'space-y-1',
command: {
base: 'flex justify-between select-none items-center rounded px-2 py-4 gap-2 relative font-medium text-sm group shadow',
active: 'bg-primary-500 dark:bg-primary-400 text-white',
inactive: 'bg-white dark:bg-gray-900',
label: 'flex flex-col min-w-0',
suffix: 'text-xs',
icon: {
base: 'flex-shrink-0 w-6 h-6',
active: 'text-white',
inactive: 'text-gray-400 dark:text-gray-500'
}
}
},
emptyState: {
wrapper: 'flex flex-col items-center justify-center flex-1 py-9',
label: 'text-sm text-center text-gray-500 dark:text-gray-400',
queryLabel: 'text-lg text-center text-gray-900 dark:text-white',
icon: 'w-12 h-12 mx-auto text-gray-400 dark:text-gray-500 mb-4'
}
}
</script>
<template>
<UCommandPalette
ref="commandPaletteRef"
:groups="groups"
:ui="ui"
:close-button="(closeButton as Button)"
:empty-state="(emptyState as any)"
:autoselect="false"
command-attribute="title"
:fuse="{
fuseOptions: { keys: ['title', 'category'] }
}"
placeholder="Search docs"
/>
</template>

View File

@@ -0,0 +1,64 @@
<script setup lang="ts">
const commandPaletteRef = ref()
const suggestions = [
{ id: 'linear', label: 'Linear', icon: 'i-simple-icons-linear' },
{ id: 'figma', label: 'Figma', icon: 'i-simple-icons-figma' },
{ id: 'slack', label: 'Slack', icon: 'i-simple-icons-slack' },
{ id: 'youtube', label: 'YouTube', icon: 'i-simple-icons-youtube' },
{ id: 'github', label: 'GitHub', icon: 'i-simple-icons-github' }
]
const commands = [
{ id: 'clipboard-history', label: 'Clipboard History', icon: 'i-heroicons-clipboard', click: () => alert('New file') },
{ id: 'import-extension', label: 'Import Extension', icon: 'i-heroicons-wrench-screwdriver', click: () => alert('New folder') },
{ id: 'manage-extensions', label: 'Manage Extensions', icon: 'i-heroicons-wrench-screwdriver', click: () => alert('Add hashtag') }
]
const groups = [{
key: 'suggestions',
label: 'Suggestions',
inactive: 'Application',
commands: suggestions
}, {
key: 'commands',
label: 'Commands',
inactive: 'Command',
commands
}]
const ui = {
wrapper: 'flex flex-col flex-1 min-h-0 divide-y divide-gray-200 dark:divide-gray-700 bg-gray-50 dark:bg-gray-800',
container: 'relative flex-1 overflow-y-auto divide-y divide-gray-200 dark:divide-gray-700 scroll-py-2',
input: {
base: 'w-full h-14 px-4 placeholder-gray-400 dark:placeholder-gray-500 bg-transparent border-0 text-gray-900 dark:text-white focus:ring-0 focus:outline-none'
},
group: {
label: 'px-2 my-2 text-xs font-semibold text-gray-500 dark:text-gray-400',
command: {
base: 'flex justify-between select-none cursor-default items-center rounded-md px-2 py-2 gap-2 relative',
active: 'bg-gray-200 dark:bg-gray-700/50 text-gray-900 dark:text-white',
container: 'flex items-center gap-3 min-w-0',
icon: {
base: 'flex-shrink-0 w-5 h-5',
active: 'text-gray-900 dark:text-white',
inactive: 'text-gray-400 dark:text-gray-500'
},
avatar: {
size: '2xs'
}
}
}
}
</script>
<template>
<UCommandPalette
ref="commandPaletteRef"
:groups="groups"
icon=""
:ui="ui"
:autoselect="false"
placeholder="Search for apps and commands"
/>
</template>

View File

@@ -0,0 +1,5 @@
<template>
<UContainer>
<Placeholder class="h-32" />
</UContainer>
</template>

View File

@@ -0,0 +1,37 @@
<script setup lang="ts">
import { useMouse, useWindowScroll } from '@vueuse/core'
const { x, y } = useMouse()
const { y: windowY } = useWindowScroll()
const isOpen = ref(false)
const virtualElement = ref({ getBoundingClientRect: () => ({}) })
function onContextMenu() {
const top = unref(y) - unref(windowY)
const left = unref(x)
virtualElement.value.getBoundingClientRect = () => ({
width: 0,
height: 0,
top,
left
})
isOpen.value = true
}
</script>
<template>
<div class="w-full" @contextmenu.prevent="onContextMenu">
<Placeholder class="h-96 select-none w-full flex items-center justify-center">
Right click here
</Placeholder>
<UContextMenu v-model="isOpen" :virtual-element="virtualElement">
<div class="p-4">
Menu
</div>
</UContextMenu>
</div>
</template>

View File

@@ -0,0 +1,37 @@
<script setup lang="ts">
import { useMouse, useWindowScroll } from '@vueuse/core'
const { x, y } = useMouse()
const { y: windowY } = useWindowScroll()
const isOpen = ref(false)
const virtualElement = ref({ getBoundingClientRect: () => ({}) })
function onContextMenu() {
const top = unref(y) - unref(windowY)
const left = unref(x)
virtualElement.value.getBoundingClientRect = () => ({
width: 0,
height: 0,
top,
left
})
isOpen.value = true
}
</script>
<template>
<div class="w-full" @contextmenu.prevent="onContextMenu">
<Placeholder class="h-96 select-none w-full flex items-center justify-center">
Right click here
</Placeholder>
<UContextMenu v-model="isOpen" :virtual-element="virtualElement" :popper="{ arrow: true, placement: 'right' }">
<div class="p-4">
Menu
</div>
</UContextMenu>
</div>
</template>

View File

@@ -0,0 +1,37 @@
<script setup lang="ts">
import { useMouse, useWindowScroll } from '@vueuse/core'
const { x, y } = useMouse()
const { y: windowY } = useWindowScroll()
const isOpen = ref(false)
const virtualElement = ref({ getBoundingClientRect: () => ({}) })
function onContextMenu() {
const top = unref(y) - unref(windowY)
const left = unref(x)
virtualElement.value.getBoundingClientRect = () => ({
width: 0,
height: 0,
top,
left
})
isOpen.value = true
}
</script>
<template>
<div class="w-full" @contextmenu.prevent="onContextMenu">
<Placeholder class="h-96 select-none w-full flex items-center justify-center">
Right click here
</Placeholder>
<UContextMenu v-model="isOpen" :virtual-element="virtualElement" :popper="{ offset: 0 }">
<div class="p-4">
Menu
</div>
</UContextMenu>
</div>
</template>

View File

@@ -0,0 +1,37 @@
<script setup lang="ts">
import { useMouse, useWindowScroll } from '@vueuse/core'
const { x, y } = useMouse()
const { y: windowY } = useWindowScroll()
const isOpen = ref(false)
const virtualElement = ref({ getBoundingClientRect: () => ({}) })
function onContextMenu() {
const top = unref(y) - unref(windowY)
const left = unref(x)
virtualElement.value.getBoundingClientRect = () => ({
width: 0,
height: 0,
top,
left
})
isOpen.value = true
}
</script>
<template>
<div class="w-full" @contextmenu.prevent="onContextMenu">
<Placeholder class="h-96 select-none w-full flex items-center justify-center">
Right click here
</Placeholder>
<UContextMenu v-model="isOpen" :virtual-element="virtualElement" :popper="{ placement: 'right-start' }">
<div class="p-4">
Menu
</div>
</UContextMenu>
</div>
</template>

View File

@@ -0,0 +1,15 @@
<script setup lang="ts">
import { format } from 'date-fns'
const date = ref(new Date())
</script>
<template>
<UPopover :popper="{ placement: 'bottom-start' }">
<UButton icon="i-heroicons-calendar-days-20-solid" :label="format(date, 'd MMM, yyy')" />
<template #panel="{ close }">
<DatePicker v-model="date" is-required @close="close" />
</template>
</UPopover>
</template>

View File

@@ -0,0 +1,49 @@
<script setup lang="ts">
import { sub, format, isSameDay, type Duration } from 'date-fns'
const ranges = [
{ label: 'Last 7 days', duration: { days: 7 } },
{ label: 'Last 14 days', duration: { days: 14 } },
{ label: 'Last 30 days', duration: { days: 30 } },
{ label: 'Last 3 months', duration: { months: 3 } },
{ label: 'Last 6 months', duration: { months: 6 } },
{ label: 'Last year', duration: { years: 1 } }
]
const selected = ref({ start: sub(new Date(), { days: 14 }), end: new Date() })
function isRangeSelected(duration: Duration) {
return isSameDay(selected.value.start, sub(new Date(), duration)) && isSameDay(selected.value.end, new Date())
}
function selectRange(duration: Duration) {
selected.value = { start: sub(new Date(), duration), end: new Date() }
}
</script>
<template>
<UPopover :popper="{ placement: 'bottom-start' }">
<UButton icon="i-heroicons-calendar-days-20-solid">
{{ format(selected.start, 'd MMM, yyy') }} - {{ format(selected.end, 'd MMM, yyy') }}
</UButton>
<template #panel="{ close }">
<div class="flex items-center sm:divide-x divide-gray-200 dark:divide-gray-800">
<div class="hidden sm:flex flex-col py-4">
<UButton
v-for="(range, index) in ranges"
:key="index"
:label="range.label"
color="gray"
variant="ghost"
class="rounded-none px-6"
:class="[isRangeSelected(range.duration) ? 'bg-gray-100 dark:bg-gray-800' : 'hover:bg-gray-50 dark:hover:bg-gray-800/50']"
truncate
@click="selectRange(range.duration)"
/>
</div>
<DatePicker v-model="selected" @close="close" />
</div>
</template>
</UPopover>
</template>

View File

@@ -0,0 +1,5 @@
<template>
<UDivider>
<Logo class="w-28 h-6" />
</UDivider>
</template>

View File

@@ -0,0 +1,47 @@
<script setup lang="ts">
const form = reactive({ email: 'mail@example.com', password: 'password' })
</script>
<template>
<div class="w-full flex flex-col gap-y-4">
<UCard :ui="{ body: { base: 'grid grid-cols-3' } }">
<div class="space-y-4">
<UFormGroup label="Email" name="email">
<UInput v-model="form.email" />
</UFormGroup>
<UFormGroup label="Password" name="password">
<UInput v-model="form.password" type="password" />
</UFormGroup>
<UButton label="Login" color="gray" block />
</div>
<UDivider label="OR" orientation="vertical" />
<div class="space-y-4 flex flex-col justify-center">
<UButton color="black" label="Login with GitHub" icon="i-simple-icons-github" block />
<UButton color="black" label="Login with Google" icon="i-simple-icons-google" block />
</div>
</UCard>
<UCard>
<div class="space-y-4">
<UFormGroup label="Email" name="email">
<UInput v-model="form.email" />
</UFormGroup>
<UFormGroup label="Password" name="password">
<UInput v-model="form.password" type="password" />
</UFormGroup>
<UButton label="Login" color="gray" block />
<UDivider label="OR" />
<UButton color="black" label="Login with GitHub" icon="i-simple-icons-github" block />
<UButton color="black" label="Login with Google" icon="i-simple-icons-google" block />
</div>
</UCard>
</div>
</template>

View File

@@ -0,0 +1,16 @@
<script setup lang="ts">
const items = [
[{
label: 'Profile',
avatar: {
src: 'https://avatars.githubusercontent.com/u/739984?v=4'
}
}]
]
</script>
<template>
<UDropdown :items="items" :popper="{ arrow: true }">
<UButton color="white" label="Options" trailing-icon="i-heroicons-chevron-down-20-solid" />
</UDropdown>
</template>

View File

@@ -0,0 +1,38 @@
<script setup lang="ts">
const items = [
[{
label: 'Profile',
avatar: {
src: 'https://avatars.githubusercontent.com/u/739984?v=4'
}
}], [{
label: 'Edit',
icon: 'i-heroicons-pencil-square-20-solid',
shortcuts: ['E'],
click: () => {
console.log('Edit')
}
}, {
label: 'Duplicate',
icon: 'i-heroicons-document-duplicate-20-solid',
shortcuts: ['D'],
disabled: true
}], [{
label: 'Archive',
icon: 'i-heroicons-archive-box-20-solid'
}, {
label: 'Move',
icon: 'i-heroicons-arrow-right-circle-20-solid'
}], [{
label: 'Delete',
icon: 'i-heroicons-trash-20-solid',
shortcuts: ['⌘', 'D']
}]
]
</script>
<template>
<UDropdown :items="items" :popper="{ placement: 'bottom-start' }">
<UButton color="white" label="Options" trailing-icon="i-heroicons-chevron-down-20-solid" />
</UDropdown>
</template>

View File

@@ -0,0 +1,16 @@
<script setup lang="ts">
const items = [
[{
label: 'Profile',
avatar: {
src: 'https://avatars.githubusercontent.com/u/739984?v=4'
}
}]
]
</script>
<template>
<UDropdown :items="items" mode="hover" :popper="{ placement: 'bottom-start' }">
<UButton color="white" label="Options" trailing-icon="i-heroicons-chevron-down-20-solid" />
</UDropdown>
</template>

View File

@@ -0,0 +1,16 @@
<script setup lang="ts">
const items = [
[{
label: 'Profile',
avatar: {
src: 'https://avatars.githubusercontent.com/u/739984?v=4'
}
}]
]
</script>
<template>
<UDropdown :items="items" :popper="{ offsetDistance: 0, placement: 'right-start' }">
<UButton color="white" label="Options" trailing-icon="i-heroicons-chevron-down-20-solid" />
</UDropdown>
</template>

View File

@@ -0,0 +1,22 @@
<script setup lang="ts">
const items = [
[{
label: 'Profile',
avatar: {
src: 'https://avatars.githubusercontent.com/u/739984?v=4'
}
}]
]
const open = ref(true)
defineShortcuts({
o: () => open.value = !open.value
})
</script>
<template>
<UDropdown v-model:open="open" :items="items" :popper="{ placement: 'bottom-start' }">
<UButton color="white" label="Options" trailing-icon="i-heroicons-chevron-down-20-solid" />
</UDropdown>
</template>

View File

@@ -0,0 +1,16 @@
<script setup lang="ts">
const items = [
[{
label: 'Profile',
avatar: {
src: 'https://avatars.githubusercontent.com/u/739984?v=4'
}
}]
]
</script>
<template>
<UDropdown :items="items" :popper="{ placement: 'right-start' }">
<UButton color="white" label="Options" trailing-icon="i-heroicons-chevron-down-20-solid" />
</UDropdown>
</template>

View File

@@ -0,0 +1,47 @@
<script setup lang="ts">
const items = [
[{
label: 'ben@example.com',
slot: 'account',
disabled: true
}], [{
label: 'Settings',
icon: 'i-heroicons-cog-8-tooth'
}], [{
label: 'Documentation',
icon: 'i-heroicons-book-open'
}, {
label: 'Changelog',
icon: 'i-heroicons-megaphone'
}, {
label: 'Status',
icon: 'i-heroicons-signal'
}], [{
label: 'Sign out',
icon: 'i-heroicons-arrow-left-on-rectangle'
}]
]
</script>
<template>
<UDropdown :items="items" :ui="{ item: { disabled: 'cursor-text select-text' } }" :popper="{ placement: 'bottom-start' }">
<UAvatar src="https://avatars.githubusercontent.com/u/739984?v=4" />
<template #account="{ item }">
<div class="text-left">
<p>
Signed in as
</p>
<p class="truncate font-medium text-gray-900 dark:text-white">
{{ item.label }}
</p>
</div>
</template>
<template #item="{ item }">
<span class="truncate">{{ item.label }}</span>
<UIcon :name="item.icon" class="flex-shrink-0 h-4 w-4 text-gray-400 dark:text-gray-500 ms-auto" />
</template>
</UDropdown>
</template>

View File

@@ -0,0 +1,36 @@
<script setup lang="ts">
import type { FormError, FormSubmitEvent } from '#ui/types'
const state = reactive({
email: undefined,
password: undefined
})
const validate = (state: any): FormError[] => {
const errors = []
if (!state.email) errors.push({ path: 'email', message: 'Required' })
if (!state.password) errors.push({ path: 'password', message: 'Required' })
return errors
}
async function onSubmit(event: FormSubmitEvent<any>) {
// Do something with data
console.log(event.data)
}
</script>
<template>
<UForm :validate="validate" :state="state" class="space-y-4" @submit="onSubmit">
<UFormGroup label="Email" name="email">
<UInput v-model="state.email" />
</UFormGroup>
<UFormGroup label="Password" name="password">
<UInput v-model="state.password" type="password" />
</UFormGroup>
<UButton type="submit">
Submit
</UButton>
</UForm>
</template>

View File

@@ -0,0 +1,114 @@
<script setup lang="ts">
import { z } from 'zod'
import type { FormSubmitEvent } from '#ui/types'
const options = [
{ label: 'Option 1', value: 'option-1' },
{ label: 'Option 2', value: 'option-2' },
{ label: 'Option 3', value: 'option-3' }
]
const state = reactive({
input: undefined,
inputMenu: undefined,
textarea: undefined,
select: undefined,
selectMenu: undefined,
checkbox: undefined,
toggle: undefined,
radio: undefined,
radioGroup: undefined,
switch: undefined,
range: undefined
})
const schema = z.object({
input: z.string().min(10),
inputMenu: z.any().refine(option => option?.value === 'option-2', {
message: 'Select Option 2'
}),
textarea: z.string().min(10),
select: z.string().refine(value => value === 'option-2', {
message: 'Select Option 2'
}),
selectMenu: z.any().refine(option => option?.value === 'option-2', {
message: 'Select Option 2'
}),
toggle: z.boolean().refine(value => value === true, {
message: 'Toggle me'
}),
checkbox: z.boolean().refine(value => value === true, {
message: 'Check me'
}),
radio: z.string().refine(value => value === 'option-2', {
message: 'Select Option 2'
}),
radioGroup: z.string().refine(value => value === 'option-2', {
message: 'Select Option 2'
}),
range: z.number().max(20, { message: 'Must be less than 20' })
})
type Schema = z.infer<typeof schema>
const form = ref()
async function onSubmit(event: FormSubmitEvent<Schema>) {
// Do something with event.data
console.log(event.data)
}
</script>
<template>
<UForm ref="form" :schema="schema" :state="state" class="space-y-4" @submit="onSubmit">
<UFormGroup name="input" label="Input">
<UInput v-model="state.input" />
</UFormGroup>
<UFormGroup name="inputMenu" label="Input Menu">
<UInputMenu v-model="state.inputMenu" :options="options" />
</UFormGroup>
<UFormGroup name="textarea" label="Textarea">
<UTextarea v-model="state.textarea" />
</UFormGroup>
<UFormGroup name="select" label="Select">
<USelect v-model="state.select" placeholder="Select..." :options="options" />
</UFormGroup>
<UFormGroup name="selectMenu" label="Select Menu">
<USelectMenu v-model="state.selectMenu" placeholder="Select..." :options="options" />
</UFormGroup>
<UFormGroup name="toggle" label="Toggle">
<UToggle v-model="state.toggle" />
</UFormGroup>
<UFormGroup name="checkbox" label="Checkbox">
<UCheckbox v-model="state.checkbox" label="Check me" />
</UFormGroup>
<UFormGroup name="radioGroup" label="Radio Group">
<URadioGroup v-model="state.radioGroup" :options="options" />
</UFormGroup>
<UFormGroup name="radio" label="Radio">
<URadio v-for="option in options" :key="option.value" v-model="state.radio" v-bind="option">
{{ option.label }}
</URadio>
</UFormGroup>
<UFormGroup name="range" label="Range">
<URange v-model="state.range" />
</UFormGroup>
<UButton type="submit">
Submit
</UButton>
<UButton variant="outline" class="ml-2" @click="form.clear()">
Clear
</UButton>
</UForm>
</template>

View File

@@ -0,0 +1,37 @@
<script setup lang="ts">
import Joi from 'joi'
import type { FormSubmitEvent } from '#ui/types'
const schema = Joi.object({
email: Joi.string().required(),
password: Joi.string()
.min(8)
.required()
})
const state = reactive({
email: undefined,
password: undefined
})
async function onSubmit(event: FormSubmitEvent<any>) {
// Do something with event.data
console.log(event.data)
}
</script>
<template>
<UForm :schema="schema" :state="state" class="space-y-4" @submit="onSubmit">
<UFormGroup label="Email" name="email">
<UInput v-model="state.email" />
</UFormGroup>
<UFormGroup label="Password" name="password">
<UInput v-model="state.password" type="password" />
</UFormGroup>
<UButton type="submit">
Submit
</UButton>
</UForm>
</template>

View File

@@ -0,0 +1,42 @@
<script setup lang="ts">
import type { FormError, FormErrorEvent, FormSubmitEvent } from '#ui/types'
const state = reactive({
email: undefined,
password: undefined
})
const validate = (state: any): FormError[] => {
const errors = []
if (!state.email) errors.push({ path: 'email', message: 'Required' })
if (!state.password) errors.push({ path: 'password', message: 'Required' })
return errors
}
async function onSubmit(event: FormSubmitEvent<any>) {
// Do something with data
console.log(event.data)
}
async function onError(event: FormErrorEvent) {
const element = document.getElementById(event.errors[0].id)
element?.focus()
element?.scrollIntoView({ behavior: 'smooth', block: 'center' })
}
</script>
<template>
<UForm :validate="validate" :state="state" class="space-y-4" @submit="onSubmit" @error="onError">
<UFormGroup label="Email" name="email">
<UInput v-model="state.email" />
</UFormGroup>
<UFormGroup label="Password" name="password">
<UInput v-model="state.password" type="password" />
</UFormGroup>
<UButton type="submit">
Submit
</UButton>
</UForm>
</template>

View File

@@ -0,0 +1,36 @@
<script setup lang="ts">
import { object, string, nonempty, type Infer } from 'superstruct'
import type { FormSubmitEvent } from '#ui/types'
const schema = object({
email: nonempty(string()),
password: nonempty(string())
})
const state = reactive({
email: '',
password: ''
})
type Schema = Infer<typeof schema>
async function onSubmit(event: FormSubmitEvent<Schema>) {
console.log(event.data)
}
</script>
<template>
<UForm :schema="schema" :state="state" class="space-y-4" @submit="onSubmit">
<UFormGroup label="Email" name="email">
<UInput v-model="state.email" />
</UFormGroup>
<UFormGroup label="Password" name="password">
<UInput v-model="state.password" type="password" />
</UFormGroup>
<UButton type="submit">
Submit
</UButton>
</UForm>
</template>

Some files were not shown because too many files have changed in this diff Show More