feat(theme)!: migrate from heroicons to lucide (#2540)

Co-authored-by: Benjamin Canac <canacb1@gmail.com>
This commit is contained in:
Alex
2024-11-06 16:59:19 +05:00
committed by GitHub
parent e3092b6b40
commit a6c1a6c587
177 changed files with 2245 additions and 2245 deletions

View File

@@ -64,7 +64,7 @@ function onComponentLoaded() {
const tabs = computed(() => { const tabs = computed(() => {
if (!component.value) return if (!component.value) return
return [ return [
{ label: 'Props', slot: 'props', icon: 'i-heroicons-cog-6-tooth', disabled: !component.value.meta?.props?.length } { label: 'Props', slot: 'props', icon: 'i-lucide-settings', disabled: !component.value.meta?.props?.length }
] ]
}) })
@@ -93,7 +93,7 @@ const isDark = computed({
<div v-if="status === 'pending' || error || !component || !components?.length"> <div v-if="status === 'pending' || error || !component || !components?.length">
<div v-if="error" class="flex flex-col justify-center items-center h-screen w-screen text-center text-[var(--ui-color-error-500)]"> <div v-if="error" class="flex flex-col justify-center items-center h-screen w-screen text-center text-[var(--ui-color-error-500)]">
<UILogo class="h-8" /> <UILogo class="h-8" />
<UIcon name="i-heroicons-exclamation-circle" size="20" class="mt-2" /> <UIcon name="i-lucide-circle-alert" size="20" class="mt-2" />
<p> <p>
{{ (error.data as any)?.error ?? 'Unexpected error' }} {{ (error.data as any)?.error ?? 'Unexpected error' }}
</p> </p>
@@ -111,7 +111,7 @@ const isDark = computed({
:items="components" :items="components"
placeholder="Search component..." placeholder="Search component..."
class="top-0 translate-y-0 w-full mx-2" class="top-0 translate-y-0 w-full mx-2"
icon="i-heroicons-magnifying-glass" icon="i-lucide-search"
/> />
<div class="absolute top-[49px] bottom-0 inset-x-0 grid xl:grid-cols-8 grid-cols-4 bg-[var(--ui-bg)]"> <div class="absolute top-[49px] bottom-0 inset-x-0 grid xl:grid-cols-8 grid-cols-4 bg-[var(--ui-bg)]">
@@ -127,7 +127,7 @@ const isDark = computed({
<ComponentPreview :component="component" :props="componentProps" class="h-full" /> <ComponentPreview :component="component" :props="componentProps" class="h-full" />
<div class="flex gap-2 absolute top-1 right-2"> <div class="flex gap-2 absolute top-1 right-2">
<UButton <UButton
:icon="isDark ? 'i-heroicons-moon-20-solid' : 'i-heroicons-sun-20-solid'" :icon="isDark ? 'i-lucide-moon' : 'i-lucide-sun'"
variant="ghost" variant="ghost"
color="neutral" color="neutral"
@click="isDark = !isDark" @click="isDark = !isDark"
@@ -136,7 +136,7 @@ const isDark = computed({
v-if="component" v-if="component"
variant="ghost" variant="ghost"
color="neutral" color="neutral"
icon="i-heroicons-arrow-top-right-on-square" icon="i-lucide-external-link"
@click="openDocs()" @click="openDocs()"
> >
Open docs Open docs

View File

@@ -32,7 +32,7 @@ onMounted(() => {
class="bg-[var(--ui-bg)] group w-full flex justify-center my-1 border-t border-[var(--ui-border)] rounded-t-none" class="bg-[var(--ui-bg)] group w-full flex justify-center my-1 border-t border-[var(--ui-border)] rounded-t-none"
variant="link" variant="link"
color="neutral" color="neutral"
trailing-icon="i-heroicons-chevron-down" trailing-icon="i-lucide-chevron-down"
:data-state="collapsed ? 'closed' : 'open'" :data-state="collapsed ? 'closed' : 'open'"
:ui="{ trailingIcon: 'transition group-data-[state=open]:rotate-180' }" :ui="{ trailingIcon: 'transition group-data-[state=open]:rotate-180' }"
@click="collapsed = !collapsed" @click="collapsed = !collapsed"

View File

@@ -118,7 +118,7 @@ const previewUrl = computed(() => {
@load="onRendererReady" @load="onRendererReady"
/> />
<div v-if="!rendererVisible" class="grow w-full flex justify-center items-center px-8"> <div v-if="!rendererVisible" class="grow w-full flex justify-center items-center px-8">
<UAlert color="error" variant="subtle" title="Component preview not found" icon="i-heroicons-exclamation-circle"> <UAlert color="error" variant="subtle" title="Component preview not found" icon="i-lucide-circle-alert">
<template #description> <template #description>
<p>Ensure your <code>app.vue</code> file includes a <code>&lt;NuxtPage /&gt;</code> component, as the component preview is mounted as a page. </p> <p>Ensure your <code>app.vue</code> file includes a <code>&lt;NuxtPage /&gt;</code> component, as the component preview is mounted as a page. </p>
</template> </template>
@@ -130,7 +130,7 @@ const previewUrl = computed(() => {
<UButton <UButton
color="neutral" color="neutral"
variant="link" variant="link"
:icon="copied ? 'i-heroicons-clipboard-document-check' : 'i-heroicons-clipboard-document'" :icon="copied ? 'i-lucide-clipboard-check' : 'i-lucide-clipboard'"
class="absolute top-6 right-6" class="absolute top-6 right-6"
@click="copy(formattedCode)" @click="copy(formattedCode)"
/> />

View File

@@ -47,12 +47,12 @@ function addArrayItem() {
/> />
<UPopover> <UPopover>
<UButton variant="ghost" color="neutral" icon="i-heroicons-ellipsis-vertical" class="absolute top-4 right-1" /> <UButton variant="ghost" color="neutral" icon="i-lucide-ellipsis-vertical" class="absolute top-4 right-1" />
<template #content> <template #content>
<UButton <UButton
variant="ghost" variant="ghost"
color="error" color="error"
icon="i-heroicons-trash" icon="i-lucide-trash"
block block
@click="removeArrayItem(index)" @click="removeArrayItem(index)"
> >
@@ -63,7 +63,7 @@ function addArrayItem() {
</div> </div>
<UButton <UButton
icon="i-heroicons-plus" icon="i-lucide-plus"
color="neutral" color="neutral"
variant="ghost" variant="ghost"
block block

View File

@@ -23,27 +23,27 @@ const searchTerm = ref('')
const links = computed(() => { const links = computed(() => {
return [{ return [{
label: 'Docs', label: 'Docs',
icon: 'i-heroicons-book-open', icon: 'i-lucide-book-open',
to: '/getting-started', to: '/getting-started',
active: route.path.startsWith('/getting-started') || route.path.startsWith('/components') active: route.path.startsWith('/getting-started') || route.path.startsWith('/components')
}, ...(navigation.value?.find(item => item.path === '/pro') }, ...(navigation.value?.find(item => item.path === '/pro')
? [{ ? [{
label: 'Pro', label: 'Pro',
icon: 'i-heroicons-square-3-stack-3d', icon: 'i-lucide-layers-3',
to: '/pro', to: '/pro',
active: route.path.startsWith('/pro/getting-started') || route.path.startsWith('/pro/components') || route.path.startsWith('/pro/prose') active: route.path.startsWith('/pro/getting-started') || route.path.startsWith('/pro/components') || route.path.startsWith('/pro/prose')
}, { }, {
label: 'Pricing', label: 'Pricing',
icon: 'i-heroicons-credit-card', icon: 'i-lucide-credit-card',
to: '/pro/pricing' to: '/pro/pricing'
}, { }, {
label: 'Templates', label: 'Templates',
icon: 'i-heroicons-computer-desktop', icon: 'i-lucide-monitor',
to: '/pro/templates' to: '/pro/templates'
}] }]
: []), { : []), {
label: 'Releases', label: 'Releases',
icon: 'i-heroicons-rocket-launch', icon: 'i-lucide-rocket',
to: '/releases' to: '/releases'
}].filter(Boolean) }].filter(Boolean)
}) })

View File

@@ -1,5 +1,5 @@
<template> <template>
<UBanner icon="i-heroicons-wrench-screwdriver" :actions="[{ label: 'Go to Nuxt UI v2', to: 'https://ui.nuxt.com', trailingIcon: 'i-heroicons-arrow-right-20-solid' }]" :close="false"> <UBanner icon="i-lucide-wrench" :actions="[{ label: 'Go to Nuxt UI v2', to: 'https://ui.nuxt.com', trailingIcon: 'i-lucide-arrow-right' }]" :close="false">
<template #title> <template #title>
You're looking at the documentation for <span class="font-semibold">Nuxt UI v3</span>! You're looking at the documentation for <span class="font-semibold">Nuxt UI v3</span>!
</template> </template>

View File

@@ -2,15 +2,15 @@
const items = [ const items = [
{ {
label: 'Icons', label: 'Icons',
icon: 'i-heroicons-face-smile' icon: 'i-lucide-smile'
}, },
{ {
label: 'Colors', label: 'Colors',
icon: 'i-heroicons-swatch' icon: 'i-lucide-swatch-book'
}, },
{ {
label: 'Components', label: 'Components',
icon: 'i-heroicons-cube-transparent' icon: 'i-lucide-box'
} }
] ]
</script> </script>

View File

@@ -2,15 +2,15 @@
const items = [ const items = [
{ {
label: 'Icons', label: 'Icons',
icon: 'i-heroicons-face-smile' icon: 'i-lucide-smile'
}, },
{ {
label: 'Colors', label: 'Colors',
icon: 'i-heroicons-swatch' icon: 'i-lucide-swatch-book'
}, },
{ {
label: 'Components', label: 'Components',
icon: 'i-heroicons-cube-transparent' icon: 'i-lucide-box'
} }
] ]
</script> </script>

View File

@@ -2,18 +2,18 @@
const items = [ const items = [
{ {
label: 'Icons', label: 'Icons',
icon: 'i-heroicons-face-smile', icon: 'i-lucide-smile',
content: 'You have nothing to do, @nuxt/icon will handle it automatically.' content: 'You have nothing to do, @nuxt/icon will handle it automatically.'
}, },
{ {
label: 'Colors', label: 'Colors',
icon: 'i-heroicons-swatch', icon: 'i-lucide-swatch-book',
slot: 'colors', slot: 'colors',
content: 'Choose a primary and a neutral color from your Tailwind CSS theme.' content: 'Choose a primary and a neutral color from your Tailwind CSS theme.'
}, },
{ {
label: 'Components', label: 'Components',
icon: 'i-heroicons-cube-transparent', icon: 'i-lucide-box',
content: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.' content: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.'
} }
] ]

View File

@@ -2,17 +2,17 @@
const items = [ const items = [
{ {
label: 'Icons', label: 'Icons',
icon: 'i-heroicons-face-smile', icon: 'i-lucide-smile',
content: 'You have nothing to do, @nuxt/icon will handle it automatically.' content: 'You have nothing to do, @nuxt/icon will handle it automatically.'
}, },
{ {
label: 'Colors', label: 'Colors',
icon: 'i-heroicons-swatch', icon: 'i-lucide-swatch-book',
content: 'Choose a primary and a neutral color from your Tailwind CSS theme.' content: 'Choose a primary and a neutral color from your Tailwind CSS theme.'
}, },
{ {
label: 'Components', label: 'Components',
icon: 'i-heroicons-cube-transparent', icon: 'i-lucide-box',
content: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.' content: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.'
} }
] ]

View File

@@ -4,7 +4,7 @@ const items = [{
to: '/' to: '/'
}, { }, {
slot: 'dropdown', slot: 'dropdown',
icon: 'i-heroicons-ellipsis-horizontal', icon: 'i-lucide-ellipsis',
children: [{ children: [{
label: 'Documentation' label: 'Documentation'
}, { }, {

View File

@@ -1,20 +1,20 @@
<script setup lang="ts"> <script setup lang="ts">
const items = [{ const items = [{
label: 'Team', label: 'Team',
icon: 'i-heroicons-users' icon: 'i-lucide-users'
}, { }, {
label: 'Invite users', label: 'Invite users',
icon: 'i-heroicons-user-plus', icon: 'i-lucide-user-plus',
children: [{ children: [{
label: 'Invite by email', label: 'Invite by email',
icon: 'i-heroicons-paper-airplane' icon: 'i-lucide-send-horizontal'
}, { }, {
label: 'Invite by link', label: 'Invite by link',
icon: 'i-heroicons-link' icon: 'i-lucide-link'
}] }]
}, { }, {
label: 'New team', label: 'New team',
icon: 'i-heroicons-plus' icon: 'i-lucide-plus'
}] }]
</script> </script>
@@ -26,7 +26,7 @@ const items = [{
<UButton <UButton
color="neutral" color="neutral"
variant="outline" variant="outline"
icon="i-heroicons-chevron-down-20-solid" icon="i-lucide-chevron-down"
/> />
</UDropdownMenu> </UDropdownMenu>
</UButtonGroup> </UButtonGroup>

View File

@@ -6,7 +6,7 @@
<UButton <UButton
color="neutral" color="neutral"
variant="subtle" variant="subtle"
icon="i-heroicons-clipboard-document" icon="i-lucide-clipboard"
/> />
</UTooltip> </UTooltip>
</UButtonGroup> </UButtonGroup>

View File

@@ -5,7 +5,7 @@
label="Open" label="Open"
color="neutral" color="neutral"
variant="subtle" variant="subtle"
trailing-icon="i-heroicons-chevron-down-20-solid" trailing-icon="i-lucide-chevron-down"
:ui="{ :ui="{
trailingIcon: 'group-data-[state=open]:rotate-180 transition-transform duration-200' trailingIcon: 'group-data-[state=open]:rotate-180 transition-transform duration-200'
}" }"

View File

@@ -12,7 +12,7 @@ defineShortcuts({
label="Open" label="Open"
color="neutral" color="neutral"
variant="subtle" variant="subtle"
trailing-icon="i-heroicons-chevron-down-20-solid" trailing-icon="i-lucide-chevron-down"
block block
/> />

View File

@@ -4,22 +4,22 @@ const groups = [{
items: [ items: [
{ {
label: 'Profile', label: 'Profile',
icon: 'i-heroicons-user', icon: 'i-lucide-user',
kbds: ['meta', 'P'] kbds: ['meta', 'P']
}, },
{ {
label: 'Billing', label: 'Billing',
icon: 'i-heroicons-credit-card', icon: 'i-lucide-credit-card',
kbds: ['meta', 'B'], kbds: ['meta', 'B'],
slot: 'billing' slot: 'billing'
}, },
{ {
label: 'Notifications', label: 'Notifications',
icon: 'i-heroicons-bell' icon: 'i-lucide-bell'
}, },
{ {
label: 'Security', label: 'Security',
icon: 'i-heroicons-lock-closed' icon: 'i-lucide-lock'
} }
] ]
}, { }, {

View File

@@ -60,7 +60,7 @@ const users = [
label="Search users..." label="Search users..."
color="neutral" color="neutral"
variant="subtle" variant="subtle"
icon="i-heroicons-magnifying-glass" icon="i-lucide-search"
/> />
<template #content> <template #content>

View File

@@ -84,7 +84,7 @@ const groups = ref([
{ {
label: 'Add new file', label: 'Add new file',
suffix: 'Create a new file in the current directory or workspace.', suffix: 'Create a new file in the current directory or workspace.',
icon: 'i-heroicons-document-plus', icon: 'i-lucide-file-plus',
kbds: [ kbds: [
'meta', 'meta',
'N' 'N'
@@ -96,7 +96,7 @@ const groups = ref([
{ {
label: 'Add new folder', label: 'Add new folder',
suffix: 'Create a new folder in the current directory or workspace.', suffix: 'Create a new folder in the current directory or workspace.',
icon: 'i-heroicons-folder-plus', icon: 'i-lucide-folder-plus',
kbds: [ kbds: [
'meta', 'meta',
'F' 'F'
@@ -108,7 +108,7 @@ const groups = ref([
{ {
label: 'Add hashtag', label: 'Add hashtag',
suffix: 'Add a hashtag to the current item.', suffix: 'Add a hashtag to the current item.',
icon: 'i-heroicons-hashtag', icon: 'i-lucide-hash',
kbds: [ kbds: [
'meta', 'meta',
'H' 'H'
@@ -120,7 +120,7 @@ const groups = ref([
{ {
label: 'Add label', label: 'Add label',
suffix: 'Add a label to the current item.', suffix: 'Add a label to the current item.',
icon: 'i-heroicons-tag', icon: 'i-lucide-tag',
kbds: [ kbds: [
'meta', 'meta',
'L' 'L'

View File

@@ -3,22 +3,22 @@ const items = [
[ [
{ {
label: 'View', label: 'View',
icon: 'i-heroicons-eye' icon: 'i-lucide-eye'
}, },
{ {
label: 'Copy', label: 'Copy',
icon: 'i-heroicons-document-duplicate' icon: 'i-lucide-copy'
}, },
{ {
label: 'Edit', label: 'Edit',
icon: 'i-heroicons-pencil' icon: 'i-lucide-pencil'
} }
], ],
[ [
{ {
label: 'Delete', label: 'Delete',
color: 'error' as const, color: 'error' as const,
icon: 'i-heroicons-trash' icon: 'i-lucide-trash'
} }
] ]
] ]

View File

@@ -22,7 +22,7 @@ const items = [{
</template> </template>
<template #refresh-trailing> <template #refresh-trailing>
<UIcon v-if="loading" name="i-heroicons-arrow-path-20-solid" class="shrink-0 size-5 text-[var(--ui-primary)] animate-spin" /> <UIcon v-if="loading" name="i-lucide-refresh-ccw" class="shrink-0 size-5 text-[var(--ui-primary)] animate-spin" />
</template> </template>
</UContextMenu> </UContextMenu>
</template> </template>

View File

@@ -23,7 +23,7 @@ const groups = computed(() => [{
label="Search users..." label="Search users..."
color="neutral" color="neutral"
variant="subtle" variant="subtle"
icon="i-heroicons-magnifying-glass" icon="i-lucide-search"
/> />
<template #content> <template #content>

View File

@@ -4,7 +4,7 @@ const open = ref(false)
<template> <template>
<UDrawer v-model:open="open" title="Drawer with footer" description="This is useful when you want a form in a Drawer." :ui="{ container: 'max-w-xl mx-auto' }"> <UDrawer v-model:open="open" title="Drawer with footer" description="This is useful when you want a form in a Drawer." :ui="{ container: 'max-w-xl mx-auto' }">
<UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-up-20-solid" /> <UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-up" />
<template #body> <template #body>
<Placeholder class="h-48" /> <Placeholder class="h-48" />

View File

@@ -8,7 +8,7 @@ defineShortcuts({
<template> <template>
<UDrawer v-model:open="open"> <UDrawer v-model:open="open">
<UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-up-20-solid" /> <UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-up" />
<template #content> <template #content>
<Placeholder class="h-48 m-4" /> <Placeholder class="h-48 m-4" />

View File

@@ -5,13 +5,13 @@ const showDownloads = ref(false)
const items = computed(() => [{ const items = computed(() => [{
label: 'Interface', label: 'Interface',
icon: 'i-heroicons-window', icon: 'i-lucide-app-window',
type: 'label' as const type: 'label' as const
}, { }, {
type: 'separator' as const type: 'separator' as const
}, { }, {
label: 'Show Bookmarks', label: 'Show Bookmarks',
icon: 'i-heroicons-bookmark', icon: 'i-lucide-bookmark',
type: 'checkbox' as const, type: 'checkbox' as const,
checked: showBookmarks.value, checked: showBookmarks.value,
onUpdateChecked(checked: boolean) { onUpdateChecked(checked: boolean) {
@@ -22,7 +22,7 @@ const items = computed(() => [{
} }
}, { }, {
label: 'Show History', label: 'Show History',
icon: 'i-heroicons-clock', icon: 'i-lucide-clock',
type: 'checkbox' as const, type: 'checkbox' as const,
checked: showHistory.value, checked: showHistory.value,
onUpdateChecked(checked: boolean) { onUpdateChecked(checked: boolean) {
@@ -30,7 +30,7 @@ const items = computed(() => [{
} }
}, { }, {
label: 'Show Downloads', label: 'Show Downloads',
icon: 'i-heroicons-arrow-down-on-square', icon: 'i-lucide-download',
type: 'checkbox' as const, type: 'checkbox' as const,
checked: showDownloads.value, checked: showDownloads.value,
onUpdateChecked(checked: boolean) { onUpdateChecked(checked: boolean) {
@@ -41,6 +41,6 @@ const items = computed(() => [{
<template> <template>
<UDropdownMenu :items="items" :content="{ align: 'start' }" class="w-48"> <UDropdownMenu :items="items" :content="{ align: 'start' }" class="w-48">
<UButton label="Open" color="neutral" variant="outline" icon="i-heroicons-bars-3" /> <UButton label="Open" color="neutral" variant="outline" icon="i-lucide-menu" />
</UDropdownMenu> </UDropdownMenu>
</template> </template>

View File

@@ -3,22 +3,22 @@ const items = [
[ [
{ {
label: 'View', label: 'View',
icon: 'i-heroicons-eye' icon: 'i-lucide-eye'
}, },
{ {
label: 'Copy', label: 'Copy',
icon: 'i-heroicons-document-duplicate' icon: 'i-lucide-copy'
}, },
{ {
label: 'Edit', label: 'Edit',
icon: 'i-heroicons-pencil' icon: 'i-lucide-pencil'
} }
], ],
[ [
{ {
label: 'Delete', label: 'Delete',
color: 'error' as const, color: 'error' as const,
icon: 'i-heroicons-trash' icon: 'i-lucide-trash'
} }
] ]
] ]
@@ -26,10 +26,10 @@ const items = [
<template> <template>
<UDropdownMenu :items="items" class="w-48"> <UDropdownMenu :items="items" class="w-48">
<UButton label="Open" color="neutral" variant="outline" icon="i-heroicons-bars-3" /> <UButton label="Open" color="neutral" variant="outline" icon="i-lucide-menu" />
<template #profile-trailing> <template #profile-trailing>
<UIcon name="i-heroicons-check-badge" class="shrink-0 size-5 text-[var(--ui-primary)]" /> <UIcon name="i-lucide-badge-check" class="shrink-0 size-5 text-[var(--ui-primary)]" />
</template> </template>
</UDropdownMenu> </UDropdownMenu>
</template> </template>

View File

@@ -1,23 +1,23 @@
<script setup lang="ts"> <script setup lang="ts">
const items = [{ const items = [{
label: 'Profile', label: 'Profile',
icon: 'i-heroicons-user', icon: 'i-lucide-user',
slot: 'profile' slot: 'profile'
}, { }, {
label: 'Billing', label: 'Billing',
icon: 'i-heroicons-credit-card' icon: 'i-lucide-credit-card'
}, { }, {
label: 'Settings', label: 'Settings',
icon: 'i-heroicons-cog' icon: 'i-lucide-cog'
}] }]
</script> </script>
<template> <template>
<UDropdownMenu :items="items" class="w-48"> <UDropdownMenu :items="items" class="w-48">
<UButton label="Open" color="neutral" variant="outline" icon="i-heroicons-bars-3" /> <UButton label="Open" color="neutral" variant="outline" icon="i-lucide-menu" />
<template #profile-trailing> <template #profile-trailing>
<UIcon name="i-heroicons-check-badge" class="shrink-0 size-5 text-[var(--ui-primary)]" /> <UIcon name="i-lucide-badge-check" class="shrink-0 size-5 text-[var(--ui-primary)]" />
</template> </template>
</UDropdownMenu> </UDropdownMenu>
</template> </template>

View File

@@ -7,18 +7,18 @@ defineShortcuts({
const items = [{ const items = [{
label: 'Profile', label: 'Profile',
icon: 'i-heroicons-user' icon: 'i-lucide-user'
}, { }, {
label: 'Billing', label: 'Billing',
icon: 'i-heroicons-credit-card' icon: 'i-lucide-credit-card'
}, { }, {
label: 'Settings', label: 'Settings',
icon: 'i-heroicons-cog' icon: 'i-lucide-cog'
}] }]
</script> </script>
<template> <template>
<UDropdownMenu v-model:open="open" :items="items" class="w-48"> <UDropdownMenu v-model:open="open" :items="items" class="w-48">
<UButton label="Open" color="neutral" variant="outline" icon="i-heroicons-bars-3" /> <UButton label="Open" color="neutral" variant="outline" icon="i-lucide-menu" />
</UDropdownMenu> </UDropdownMenu>
</template> </template>

View File

@@ -15,7 +15,7 @@ const { data: users, status } = await useFetch('https://jsonplaceholder.typicode
<UInputMenu <UInputMenu
:items="users || []" :items="users || []"
:loading="status === 'pending'" :loading="status === 'pending'"
icon="i-heroicons-user" icon="i-lucide-user"
placeholder="Select user" placeholder="Select user"
> >
<template #leading="{ modelValue, ui }"> <template #leading="{ modelValue, ui }">

View File

@@ -21,7 +21,7 @@ const { data: users, status } = await useFetch('https://jsonplaceholder.typicode
:items="users || []" :items="users || []"
:loading="status === 'pending'" :loading="status === 'pending'"
:filter="false" :filter="false"
icon="i-heroicons-user" icon="i-lucide-user"
placeholder="Select user" placeholder="Select user"
> >
<template #leading="{ modelValue, ui }"> <template #leading="{ modelValue, ui }">

View File

@@ -17,7 +17,7 @@ const { data: users, status } = await useFetch('https://jsonplaceholder.typicode
:items="users || []" :items="users || []"
:loading="status === 'pending'" :loading="status === 'pending'"
:filter="['name', 'email']" :filter="['name', 'email']"
icon="i-heroicons-user" icon="i-lucide-user"
placeholder="Select user" placeholder="Select user"
class="w-80" class="w-80"
> >

View File

@@ -3,22 +3,22 @@ const items = ref([
{ {
label: 'Backlog', label: 'Backlog',
value: 'backlog', value: 'backlog',
icon: 'i-heroicons-question-mark-circle' icon: 'i-lucide-circle-help'
}, },
{ {
label: 'Todo', label: 'Todo',
value: 'todo', value: 'todo',
icon: 'i-heroicons-plus-circle' icon: 'i-lucide-circle-plus'
}, },
{ {
label: 'In Progress', label: 'In Progress',
value: 'in_progress', value: 'in_progress',
icon: 'i-heroicons-arrow-up-circle' icon: 'i-lucide-circle-arrow-up'
}, },
{ {
label: 'Done', label: 'Done',
value: 'done', value: 'done',
icon: 'i-heroicons-check-circle' icon: 'i-lucide-circle-check'
} }
]) ])
const value = ref(items.value[0]) const value = ref(items.value[0])

View File

@@ -13,7 +13,7 @@ const value = ref('Click to clear')
color="neutral" color="neutral"
variant="link" variant="link"
size="sm" size="sm"
icon="i-heroicons-x-circle" icon="i-lucide-circle-x"
aria-label="Clear input" aria-label="Clear input"
@click="value = ''" @click="value = ''"
/> />

View File

@@ -4,6 +4,6 @@ const email = ref('')
<template> <template>
<UFormField label="Email" help="We won't share your email." required> <UFormField label="Email" help="We won't share your email." required>
<UInput v-model="email" placeholder="Enter your email" icon="i-heroicons-at-symbol" /> <UInput v-model="email" placeholder="Enter your email" icon="i-lucide-at-sign" />
</UFormField> </UFormField>
</template> </template>

View File

@@ -50,7 +50,7 @@ const text = computed(() => {
color="neutral" color="neutral"
variant="link" variant="link"
size="sm" size="sm"
:icon="show ? 'i-heroicons-eye-slash' : 'i-heroicons-eye'" :icon="show ? 'i-lucide-eye-off' : 'i-lucide-eye'"
aria-label="show ? 'Hide password' : 'Show password'" aria-label="show ? 'Hide password' : 'Show password'"
:aria-pressed="show" :aria-pressed="show"
aria-controls="password" aria-controls="password"
@@ -79,7 +79,7 @@ const text = computed(() => {
class="flex items-center gap-0.5" class="flex items-center gap-0.5"
:class="req.met ? 'text-[var(--ui-success)]' : 'text-[var(--ui-text-muted)]'" :class="req.met ? 'text-[var(--ui-success)]' : 'text-[var(--ui-text-muted)]'"
> >
<UIcon :name="req.met ? 'i-heroicons-check-circle' : 'i-heroicons-x-circle'" class="size-4 shrink-0" /> <UIcon :name="req.met ? 'i-lucide-circle-check' : 'i-lucide-circle-x'" class="size-4 shrink-0" />
<span class="text-xs font-light"> <span class="text-xs font-light">
{{ req.text }} {{ req.text }}

View File

@@ -15,7 +15,7 @@ const password = ref('password')
color="neutral" color="neutral"
variant="link" variant="link"
size="sm" size="sm"
:icon="show ? 'i-heroicons-eye-slash' : 'i-heroicons-eye'" :icon="show ? 'i-lucide-eye-off' : 'i-lucide-eye'"
aria-label="show ? 'Hide password' : 'Show password'" aria-label="show ? 'Hide password' : 'Show password'"
:aria-pressed="show" :aria-pressed="show"
aria-controls="password" aria-controls="password"

View File

@@ -23,7 +23,7 @@ const groups = computed(() => [{
label="Search users..." label="Search users..."
color="neutral" color="neutral"
variant="subtle" variant="subtle"
icon="i-heroicons-magnifying-glass" icon="i-lucide-search"
/> />
<template #content> <template #content>

View File

@@ -2,7 +2,7 @@
const items = [ const items = [
{ {
label: 'Docs', label: 'Docs',
icon: 'i-heroicons-book-open', icon: 'i-lucide-book-open',
slot: 'docs', slot: 'docs',
children: [ children: [
{ {
@@ -21,7 +21,7 @@ const items = [
}, },
{ {
label: 'Components', label: 'Components',
icon: 'i-heroicons-cube-transparent', icon: 'i-lucide-box',
slot: 'components', slot: 'components',
children: [ children: [
{ {

View File

@@ -2,17 +2,17 @@
const items = [ const items = [
{ {
label: 'Guide', label: 'Guide',
icon: 'i-heroicons-book-open' icon: 'i-lucide-book-open'
}, },
{ {
label: 'Composables', label: 'Composables',
icon: 'i-heroicons-circle-stack' icon: 'i-lucide-database'
}, },
{ {
label: 'Components', label: 'Components',
icon: 'i-heroicons-cube-transparent', icon: 'i-lucide-box',
slot: 'components' slot: 'components'
} }
] ]

View File

@@ -2,93 +2,93 @@
const items = [ const items = [
{ {
label: 'Guide', label: 'Guide',
icon: 'i-heroicons-book-open', icon: 'i-lucide-book-open',
children: [ children: [
{ {
label: 'Introduction', label: 'Introduction',
description: 'Fully styled and customizable components for Nuxt.', description: 'Fully styled and customizable components for Nuxt.',
icon: 'i-heroicons-home' icon: 'i-lucide-house'
}, },
{ {
label: 'Installation', label: 'Installation',
description: 'Learn how to install and configure Nuxt UI in your application.', description: 'Learn how to install and configure Nuxt UI in your application.',
icon: 'i-heroicons-cloud-arrow-down' icon: 'i-lucide-cloud-download'
}, },
{ {
label: 'Icons', label: 'Icons',
icon: 'i-heroicons-face-smile', icon: 'i-lucide-smile',
description: 'You have nothing to do, @nuxt/icon will handle it automatically.' description: 'You have nothing to do, @nuxt/icon will handle it automatically.'
}, },
{ {
label: 'Colors', label: 'Colors',
icon: 'i-heroicons-swatch', icon: 'i-lucide-swatch-book',
description: 'Choose a primary and a neutral color from your Tailwind CSS theme.' description: 'Choose a primary and a neutral color from your Tailwind CSS theme.'
}, },
{ {
label: 'Theme', label: 'Theme',
icon: 'i-heroicons-cog', icon: 'i-lucide-cog',
description: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.' description: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.'
} }
] ]
}, },
{ {
label: 'Composables', label: 'Composables',
icon: 'i-heroicons-circle-stack', icon: 'i-lucide-database',
children: [ children: [
{ {
label: 'defineShortcuts', label: 'defineShortcuts',
icon: 'i-heroicons-document-text', icon: 'i-lucide-file-text',
description: 'Define shortcuts for your application.' description: 'Define shortcuts for your application.'
}, },
{ {
label: 'useModal', label: 'useModal',
icon: 'i-heroicons-document-text', icon: 'i-lucide-file-text',
description: 'Display a modal within your application.' description: 'Display a modal within your application.'
}, },
{ {
label: 'useSlideover', label: 'useSlideover',
icon: 'i-heroicons-document-text', icon: 'i-lucide-file-text',
description: 'Display a slideover within your application.' description: 'Display a slideover within your application.'
}, },
{ {
label: 'useToast', label: 'useToast',
icon: 'i-heroicons-document-text', icon: 'i-lucide-file-text',
description: 'Display a toast within your application.' description: 'Display a toast within your application.'
} }
] ]
}, },
{ {
label: 'Components', label: 'Components',
icon: 'i-heroicons-cube-transparent', icon: 'i-lucide-box',
children: [ children: [
{ {
label: 'Link', label: 'Link',
icon: 'i-heroicons-document-text', icon: 'i-lucide-file-text',
description: 'Use NuxtLink with superpowers.' description: 'Use NuxtLink with superpowers.'
}, },
{ {
label: 'Modal', label: 'Modal',
icon: 'i-heroicons-document-text', icon: 'i-lucide-file-text',
description: 'Display a modal within your application.' description: 'Display a modal within your application.'
}, },
{ {
label: 'NavigationMenu', label: 'NavigationMenu',
icon: 'i-heroicons-document-text', icon: 'i-lucide-file-text',
description: 'Display a list of links.' description: 'Display a list of links.'
}, },
{ {
label: 'Pagination', label: 'Pagination',
icon: 'i-heroicons-document-text', icon: 'i-lucide-file-text',
description: 'Display a list of pages.' description: 'Display a list of pages.'
}, },
{ {
label: 'Popover', label: 'Popover',
icon: 'i-heroicons-document-text', icon: 'i-lucide-file-text',
description: 'Display a non-modal dialog that floats around a trigger element.' description: 'Display a non-modal dialog that floats around a trigger element.'
}, },
{ {
label: 'Progress', label: 'Progress',
icon: 'i-heroicons-document-text', icon: 'i-lucide-file-text',
description: 'Show a horizontal bar to indicate task progression.' description: 'Show a horizontal bar to indicate task progression.'
} }
] ]

View File

@@ -28,7 +28,7 @@ const label = ref([])
<template> <template>
<UPopover :content="{ side: 'right', align: 'start' }"> <UPopover :content="{ side: 'right', align: 'start' }">
<UButton <UButton
icon="i-heroicons-tag" icon="i-lucide-tag"
label="Select labels" label="Select labels"
color="neutral" color="neutral"
variant="subtle" variant="subtle"

View File

@@ -15,7 +15,7 @@ const { data: users, status } = await useFetch('https://jsonplaceholder.typicode
<USelectMenu <USelectMenu
:items="users || []" :items="users || []"
:loading="status === 'pending'" :loading="status === 'pending'"
icon="i-heroicons-user" icon="i-lucide-user"
placeholder="Select user" placeholder="Select user"
class="w-48" class="w-48"
> >

View File

@@ -21,7 +21,7 @@ const { data: users, status } = await useFetch('https://jsonplaceholder.typicode
:items="users || []" :items="users || []"
:loading="status === 'pending'" :loading="status === 'pending'"
:filter="false" :filter="false"
icon="i-heroicons-user" icon="i-lucide-user"
placeholder="Select user" placeholder="Select user"
class="w-48" class="w-48"
> >

View File

@@ -17,7 +17,7 @@ const { data: users, status } = await useFetch('https://jsonplaceholder.typicode
:items="users || []" :items="users || []"
:loading="status === 'pending'" :loading="status === 'pending'"
:filter="['name', 'email']" :filter="['name', 'email']"
icon="i-heroicons-user" icon="i-lucide-user"
placeholder="Select user" placeholder="Select user"
class="w-80" class="w-80"
> >

View File

@@ -3,22 +3,22 @@ const items = ref([
{ {
label: 'Backlog', label: 'Backlog',
value: 'backlog', value: 'backlog',
icon: 'i-heroicons-question-mark-circle' icon: 'i-lucide-circle-help'
}, },
{ {
label: 'Todo', label: 'Todo',
value: 'todo', value: 'todo',
icon: 'i-heroicons-plus-circle' icon: 'i-lucide-circle-plus'
}, },
{ {
label: 'In Progress', label: 'In Progress',
value: 'in_progress', value: 'in_progress',
icon: 'i-heroicons-arrow-up-circle' icon: 'i-lucide-circle-arrow-up'
}, },
{ {
label: 'Done', label: 'Done',
value: 'done', value: 'done',
icon: 'i-heroicons-check-circle' icon: 'i-lucide-circle-check'
} }
]) ])
const value = ref(items.value[0]) const value = ref(items.value[0])

View File

@@ -19,7 +19,7 @@ function getUserAvatar(value: string) {
<USelect <USelect
:items="users || []" :items="users || []"
:loading="status === 'pending'" :loading="status === 'pending'"
icon="i-heroicons-user" icon="i-lucide-user"
placeholder="Select user" placeholder="Select user"
class="w-48" class="w-48"
> >

View File

@@ -3,22 +3,22 @@ const items = ref([
{ {
label: 'Backlog', label: 'Backlog',
value: 'backlog', value: 'backlog',
icon: 'i-heroicons-question-mark-circle' icon: 'i-lucide-circle-help'
}, },
{ {
label: 'Todo', label: 'Todo',
value: 'todo', value: 'todo',
icon: 'i-heroicons-plus-circle' icon: 'i-lucide-circle-plus'
}, },
{ {
label: 'In Progress', label: 'In Progress',
value: 'in_progress', value: 'in_progress',
icon: 'i-heroicons-arrow-up-circle' icon: 'i-lucide-circle-arrow-up'
}, },
{ {
label: 'Done', label: 'Done',
value: 'done', value: 'done',
icon: 'i-heroicons-check-circle' icon: 'i-lucide-circle-check'
} }
]) ])
const value = ref(items.value[0]?.value) const value = ref(items.value[0]?.value)

View File

@@ -90,7 +90,7 @@ function getHeader(column: Column<Payment>, label: string, position: 'left' | 'r
color: 'neutral', color: 'neutral',
variant: 'ghost', variant: 'ghost',
label, label,
icon: isPinned ? 'i-heroicons-star-20-solid' : 'i-heroicons-star', icon: isPinned ? 'i-lucide-pin-off' : 'i-lucide-pin',
class: '-mx-2.5', class: '-mx-2.5',
onClick() { onClick() {
column.pin(isPinned === position ? false : position) column.pin(isPinned === position ? false : position)

View File

@@ -82,7 +82,7 @@ const columns: TableColumn<Payment>[] = [{
color: 'neutral', color: 'neutral',
variant: 'ghost', variant: 'ghost',
label: 'Email', label: 'Email',
icon: isSorted ? (isSorted === 'asc' ? 'i-heroicons-bars-arrow-up-20-solid' : 'i-heroicons-bars-arrow-down-20-solid') : 'i-heroicons-arrows-up-down-20-solid', icon: isSorted ? (isSorted === 'asc' ? 'i-lucide-arrow-up-narrow-wide' : 'i-lucide-arrow-down-wide-narrow') : 'i-lucide-arrow-up-down',
class: '-mx-2.5', class: '-mx-2.5',
onClick: () => column.toggleSorting(column.getIsSorted() === 'asc') onClick: () => column.toggleSorting(column.getIsSorted() === 'asc')
}) })

View File

@@ -103,7 +103,7 @@ function getHeader(column: Column<Payment>, label: string) {
items: [{ items: [{
label: 'Asc', label: 'Asc',
type: 'checkbox', type: 'checkbox',
icon: 'i-heroicons-bars-arrow-up-20-solid', icon: 'i-lucide-arrow-up-narrow-wide',
checked: isSorted === 'asc', checked: isSorted === 'asc',
onSelect: () => { onSelect: () => {
if (isSorted === 'asc') { if (isSorted === 'asc') {
@@ -114,7 +114,7 @@ function getHeader(column: Column<Payment>, label: string) {
} }
}, { }, {
label: 'Desc', label: 'Desc',
icon: 'i-heroicons-bars-arrow-down-20-solid', icon: 'i-lucide-arrow-down-wide-narrow',
type: 'checkbox', type: 'checkbox',
checked: isSorted === 'desc', checked: isSorted === 'desc',
onSelect: () => { onSelect: () => {
@@ -129,7 +129,7 @@ function getHeader(column: Column<Payment>, label: string) {
color: 'neutral', color: 'neutral',
variant: 'ghost', variant: 'ghost',
label, label,
icon: isSorted ? (isSorted === 'asc' ? 'i-heroicons-bars-arrow-up-20-solid' : 'i-heroicons-bars-arrow-down-20-solid') : 'i-heroicons-arrows-up-down-20-solid', icon: isSorted ? (isSorted === 'asc' ? 'i-lucide-arrow-up-narrow-wide' : 'i-lucide-arrow-down-wide-narrow') : 'i-lucide-arrow-up-down',
class: '-mx-2.5 data-[state=open]:bg-[var(--ui-bg-elevated)]' class: '-mx-2.5 data-[state=open]:bg-[var(--ui-bg-elevated)]'
})) }))
} }

View File

@@ -119,7 +119,7 @@ const columnVisibility = ref({
label="Columns" label="Columns"
color="neutral" color="neutral"
variant="outline" variant="outline"
trailing-icon="i-heroicons-chevron-down-20-solid" trailing-icon="i-lucide-chevron-down"
/> />
</UDropdownMenu> </UDropdownMenu>
</div> </div>

View File

@@ -192,7 +192,7 @@ const columns: TableColumn<Payment>[] = [{
color: 'neutral', color: 'neutral',
variant: 'ghost', variant: 'ghost',
label: 'Email', label: 'Email',
icon: isSorted ? (isSorted === 'asc' ? 'i-heroicons-bars-arrow-up-20-solid' : 'i-heroicons-bars-arrow-down-20-solid') : 'i-heroicons-arrows-up-down-20-solid', icon: isSorted ? (isSorted === 'asc' ? 'i-lucide-arrow-up-narrow-wide' : 'i-lucide-arrow-down-wide-narrow') : 'i-lucide-arrow-up-down',
class: '-mx-2.5', class: '-mx-2.5',
onClick: () => column.toggleSorting(column.getIsSorted() === 'asc') onClick: () => column.toggleSorting(column.getIsSorted() === 'asc')
}) })
@@ -226,7 +226,7 @@ const columns: TableColumn<Payment>[] = [{
toast.add({ toast.add({
title: 'Payment ID copied to clipboard!', title: 'Payment ID copied to clipboard!',
color: 'success', color: 'success',
icon: 'i-heroicons-check-circle' icon: 'i-lucide-circle-check'
}) })
} }
}, { }, {
@@ -248,7 +248,7 @@ const columns: TableColumn<Payment>[] = [{
}, },
items items
}, () => h(UButton, { }, () => h(UButton, {
icon: 'i-heroicons-ellipsis-vertical-20-solid', icon: 'i-lucide-ellipsis-vertical',
color: 'neutral', color: 'neutral',
variant: 'ghost', variant: 'ghost',
class: 'ml-auto' class: 'ml-auto'
@@ -293,7 +293,7 @@ function randomize() {
label="Columns" label="Columns"
color="neutral" color="neutral"
variant="outline" variant="outline"
trailing-icon="i-heroicons-chevron-down-20-solid" trailing-icon="i-lucide-chevron-down"
class="ml-auto" class="ml-auto"
/> />
</UDropdownMenu> </UDropdownMenu>

View File

@@ -102,7 +102,7 @@ const columns: TableColumn<Payment>[] = [{
}, },
items: getRowItems(row) items: getRowItems(row)
}, () => h(UButton, { }, () => h(UButton, {
icon: 'i-heroicons-ellipsis-vertical-20-solid', icon: 'i-lucide-ellipsis-vertical',
color: 'neutral', color: 'neutral',
variant: 'ghost', variant: 'ghost',
class: 'ml-auto' class: 'ml-auto'
@@ -122,7 +122,7 @@ function getRowItems(row: Row<Payment>) {
toast.add({ toast.add({
title: 'Payment ID copied to clipboard!', title: 'Payment ID copied to clipboard!',
color: 'success', color: 'success',
icon: 'i-heroicons-check-circle' icon: 'i-lucide-circle-check'
}) })
} }
}, { }, {

View File

@@ -50,7 +50,7 @@ const columns: TableColumn<Payment>[] = [{
cell: ({ row }) => h(UButton, { cell: ({ row }) => h(UButton, {
color: 'neutral', color: 'neutral',
variant: 'ghost', variant: 'ghost',
icon: 'i-heroicons-chevron-down-20-solid', icon: 'i-lucide-chevron-down',
square: true, square: true,
ui: { ui: {
leadingIcon: ['transition-transform', row.getIsExpanded() ? 'duration-200 rotate-180' : ''] leadingIcon: ['transition-transform', row.getIsExpanded() ? 'duration-200 rotate-180' : '']

View File

@@ -2,11 +2,11 @@
const items = [ const items = [
{ {
label: 'Account', label: 'Account',
icon: 'i-heroicons-user' icon: 'i-lucide-user'
}, },
{ {
label: 'Password', label: 'Password',
icon: 'i-heroicons-lock-closed' icon: 'i-lucide-lock'
} }
] ]
</script> </script>

View File

@@ -3,13 +3,13 @@ const items = [
{ {
label: 'Account', label: 'Account',
description: 'Make changes to your account here. Click save when you\'re done.', description: 'Make changes to your account here. Click save when you\'re done.',
icon: 'i-heroicons-user', icon: 'i-lucide-user',
slot: 'account' slot: 'account'
}, },
{ {
label: 'Password', label: 'Password',
description: 'Change your password here. After saving, you\'ll be logged out.', description: 'Change your password here. After saving, you\'ll be logged out.',
icon: 'i-heroicons-lock-closed', icon: 'i-lucide-lock',
slot: 'password' slot: 'password'
} }
] ]

View File

@@ -10,7 +10,7 @@ function showToast() {
title: 'Uh oh! Something went wrong.', title: 'Uh oh! Something went wrong.',
description: props.description, description: props.description,
actions: [{ actions: [{
icon: 'i-heroicons-arrow-path-20-solid', icon: 'i-lucide-refresh-ccw',
label: 'Retry', label: 'Retry',
color: 'neutral', color: 'neutral',
variant: 'outline', variant: 'outline',

View File

@@ -5,7 +5,7 @@ function showToast() {
toast.add({ toast.add({
title: 'Uh oh! Something went wrong.', title: 'Uh oh! Something went wrong.',
description: 'There was a problem with your request.', description: 'There was a problem with your request.',
icon: 'i-heroicons-wifi', icon: 'i-lucide-wifi',
close: { close: {
color: 'primary', color: 'primary',
variant: 'outline', variant: 'outline',

View File

@@ -11,7 +11,7 @@ function showToast() {
toast.add({ toast.add({
title: 'Uh oh! Something went wrong.', title: 'Uh oh! Something went wrong.',
description: 'There was a problem with your request.', description: 'There was a problem with your request.',
icon: 'i-heroicons-wifi', icon: 'i-lucide-wifi',
color: props.color color: props.color
}) })
} }

View File

@@ -8,11 +8,11 @@ function addToCalendar() {
toast.add({ toast.add({
title: 'Event added to calendar', title: 'Event added to calendar',
description: `This event is scheduled for ${formattedDate}.`, description: `This event is scheduled for ${formattedDate}.`,
icon: 'i-heroicons-calendar-days' icon: 'i-lucide-calendar-days'
}) })
} }
</script> </script>
<template> <template>
<UButton label="Add to calendar" color="neutral" variant="outline" icon="i-heroicons-plus" @click="addToCalendar" /> <UButton label="Add to calendar" color="neutral" variant="outline" icon="i-lucide-plus" @click="addToCalendar" />
</template> </template>

View File

@@ -2,7 +2,7 @@
<UPopover :ui="{ content: 'w-72 px-6 py-4 flex flex-col gap-4' }"> <UPopover :ui="{ content: 'w-72 px-6 py-4 flex flex-col gap-4' }">
<template #default="{ open }"> <template #default="{ open }">
<UButton <UButton
icon="i-heroicons-swatch" icon="i-lucide-swatch-book"
color="neutral" color="neutral"
:variant="open ? 'soft' : 'ghost'" :variant="open ? 'soft' : 'ghost'"
square square

View File

@@ -16,27 +16,27 @@ const { data: files } = await useAsyncData('files', () => queryCollectionSearchS
const links = computed(() => { const links = computed(() => {
return [{ return [{
label: 'Docs', label: 'Docs',
icon: 'i-heroicons-book-open', icon: 'i-lucide-book-open',
to: '/getting-started', to: '/getting-started',
active: route.path.startsWith('/getting-started') || route.path.startsWith('/components') active: route.path.startsWith('/getting-started') || route.path.startsWith('/components')
}, ...(navigation.value?.find(item => item.path === '/pro') }, ...(navigation.value?.find(item => item.path === '/pro')
? [{ ? [{
label: 'Pro', label: 'Pro',
icon: 'i-heroicons-square-3-stack-3d', icon: 'i-lucide-layers-3',
to: '/pro', to: '/pro',
active: route.path.startsWith('/pro/getting-started') || route.path.startsWith('/pro/components') || route.path.startsWith('/pro/prose') active: route.path.startsWith('/pro/getting-started') || route.path.startsWith('/pro/components') || route.path.startsWith('/pro/prose')
}, { }, {
label: 'Pricing', label: 'Pricing',
icon: 'i-heroicons-credit-card', icon: 'i-lucide-credit-card',
to: '/pro/pricing' to: '/pro/pricing'
}, { }, {
label: 'Templates', label: 'Templates',
icon: 'i-heroicons-computer-desktop', icon: 'i-lucide-monitor',
to: '/pro/templates' to: '/pro/templates'
}] }]
: []), { : []), {
label: 'Releases', label: 'Releases',
icon: 'i-heroicons-rocket-launch', icon: 'i-lucide-rocket',
to: '/releases' to: '/releases'
}].filter(Boolean) }].filter(Boolean)
}) })

View File

@@ -34,18 +34,18 @@ defineOgImageComponent('Docs', {
}) })
const communityLinks = computed(() => [{ const communityLinks = computed(() => [{
icon: 'i-heroicons-pencil-square', icon: 'i-lucide-square-pen',
label: 'Edit this page', label: 'Edit this page',
to: `https://github.com/nuxt/ui/edit/v3/docs/content/${page?.value?.stem}.md`, to: `https://github.com/nuxt/ui/edit/v3/docs/content/${page?.value?.stem}.md`,
target: '_blank' target: '_blank'
}, { }, {
icon: 'i-heroicons-star', icon: 'i-lucide-star',
label: 'Star on GitHub', label: 'Star on GitHub',
to: 'https://github.com/nuxt/ui', to: 'https://github.com/nuxt/ui',
target: '_blank' target: '_blank'
}, { }, {
label: 'Roadmap', label: 'Roadmap',
icon: 'i-heroicons-map', icon: 'i-lucide-map',
to: '/roadmap' to: '/roadmap'
}]) }])
@@ -85,7 +85,7 @@ const communityLinks = computed(() => [{
variant="subtle" variant="subtle"
v-bind="page.select.items.find((item: any) => item.to === route.path)" v-bind="page.select.items.find((item: any) => item.to === route.path)"
block block
trailing-icon="i-heroicons-chevron-down-20-solid" trailing-icon="i-lucide-chevron-down"
:class="[open && 'bg-[var(--ui-bg-accented)]/75']" :class="[open && 'bg-[var(--ui-bg-accented)]/75']"
:ui="{ :ui="{
trailingIcon: ['transition-transform duration-200', open ? 'rotate-180' : undefined].filter(Boolean).join(' ') trailingIcon: ['transition-transform duration-200', open ? 'rotate-180' : undefined].filter(Boolean).join(' ')

View File

@@ -110,7 +110,7 @@ export default defineAppConfig({
``` ```
::note ::note
Try the :prose-icon{name="i-heroicons-swatch" class="text-[var(--ui-primary)]"} theme picker in the header above to change `primary` and `neutral` colors. Try the :prose-icon{name="i-lucide-swatch-book" class="text-[var(--ui-primary)]"} theme picker in the header above to change `primary` and `neutral` colors.
:: ::
These colors are used to style the components but also to generate the `color` variants: These colors are used to style the components but also to generate the `color` variants:
@@ -345,7 +345,7 @@ Nuxt UI uses a global `--ui-radius` CSS variable for consistent border rounding.
``` ```
::note ::note
Try the :prose-icon{name="i-heroicons-swatch" class="text-[var(--ui-primary)]"} theme picker in the header above to change the base radius value. Try the :prose-icon{name="i-lucide-swatch-book" class="text-[var(--ui-primary)]"} theme picker in the header above to change the base radius value.
:: ::
::tip ::tip
@@ -522,7 +522,7 @@ ignore:
- size - size
- icon - icon
props: props:
trailingIcon: i-heroicons-chevron-right trailingIcon: i-lucide-chevron-right
size: md size: md
color: neutral color: neutral
variant: outline variant: outline

View File

@@ -23,7 +23,7 @@ You can use the [Icon](/components/icon) component with a `name` prop to display
::component-code{slug="icon"} ::component-code{slug="icon"}
--- ---
props: props:
name: 'i-heroicons-light-bulb' name: 'i-lucide-lightbulb'
class: 'size-5' class: 'size-5'
--- ---
:: ::
@@ -38,7 +38,7 @@ ignore:
- color - color
- variant - variant
props: props:
icon: i-heroicons-sun icon: i-lucide-sun
variant: subtle variant: subtle
slots: slots:
default: Button default: Button

View File

@@ -121,14 +121,14 @@ The `extractShortcuts` utility can be used to automatically define shortcuts fro
<script setup lang="ts"> <script setup lang="ts">
const items = [{ const items = [{
label: 'Save', label: 'Save',
icon: 'i-heroicons-document-arrow-down', icon: 'i-lucide-file-down',
kbds: ['meta', 'S'], kbds: ['meta', 'S'],
onSelect() { onSelect() {
save() save()
} }
}, { }, {
label: 'Copy', label: 'Copy',
icon: 'i-heroicons-document-duplicate', icon: 'i-lucide-copy',
kbds: ['meta', 'C'], kbds: ['meta', 'C'],
onSelect() { onSelect() {
copy() copy()

View File

@@ -35,13 +35,13 @@ props:
class: 'px-4' class: 'px-4'
items: items:
- label: 'Icons' - label: 'Icons'
icon: 'i-heroicons-face-smile' icon: 'i-lucide-smile'
content: 'You have nothing to do, @nuxt/icon will handle it automatically.' content: 'You have nothing to do, @nuxt/icon will handle it automatically.'
- label: 'Colors' - label: 'Colors'
icon: 'i-heroicons-swatch' icon: 'i-lucide-swatch-book'
content: 'Choose a primary and a neutral color from your Tailwind CSS theme.' content: 'Choose a primary and a neutral color from your Tailwind CSS theme.'
- label: 'Components' - label: 'Components'
icon: 'i-heroicons-cube-transparent' icon: 'i-lucide-box'
content: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.' content: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.'
--- ---
:: ::
@@ -64,13 +64,13 @@ props:
type: 'multiple' type: 'multiple'
items: items:
- label: 'Icons' - label: 'Icons'
icon: 'i-heroicons-face-smile' icon: 'i-lucide-smile'
content: 'You have nothing to do, @nuxt/icon will handle it automatically.' content: 'You have nothing to do, @nuxt/icon will handle it automatically.'
- label: 'Colors' - label: 'Colors'
icon: 'i-heroicons-swatch' icon: 'i-lucide-swatch-book'
content: 'Choose a primary and a neutral color from your Tailwind CSS theme.' content: 'Choose a primary and a neutral color from your Tailwind CSS theme.'
- label: 'Components' - label: 'Components'
icon: 'i-heroicons-cube-transparent' icon: 'i-lucide-box'
content: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.' content: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.'
--- ---
:: ::
@@ -93,13 +93,13 @@ props:
collapsible: false collapsible: false
items: items:
- label: 'Icons' - label: 'Icons'
icon: 'i-heroicons-face-smile' icon: 'i-lucide-smile'
content: 'You have nothing to do, @nuxt/icon will handle it automatically.' content: 'You have nothing to do, @nuxt/icon will handle it automatically.'
- label: 'Colors' - label: 'Colors'
icon: 'i-heroicons-swatch' icon: 'i-lucide-swatch-book'
content: 'Choose a primary and a neutral color from your Tailwind CSS theme.' content: 'Choose a primary and a neutral color from your Tailwind CSS theme.'
- label: 'Components' - label: 'Components'
icon: 'i-heroicons-cube-transparent' icon: 'i-lucide-box'
content: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.' content: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.'
--- ---
:: ::
@@ -123,21 +123,21 @@ props:
disabled: true disabled: true
items: items:
- label: 'Icons' - label: 'Icons'
icon: 'i-heroicons-face-smile' icon: 'i-lucide-smile'
content: 'You have nothing to do, @nuxt/icon will handle it automatically.' content: 'You have nothing to do, @nuxt/icon will handle it automatically.'
- label: 'Colors' - label: 'Colors'
icon: 'i-heroicons-swatch' icon: 'i-lucide-swatch-book'
content: 'Choose a primary and a neutral color from your Tailwind CSS theme.' content: 'Choose a primary and a neutral color from your Tailwind CSS theme.'
disabled: true disabled: true
- label: 'Components' - label: 'Components'
icon: 'i-heroicons-cube-transparent' icon: 'i-lucide-box'
content: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.' content: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.'
--- ---
:: ::
### Trailing Icon ### Trailing Icon
Use the `trailing-icon` prop to customize the trailing [Icon](/components/icon) of each item. Defaults to `i-heroicons-chevron-down-20-solid`. Use the `trailing-icon` prop to customize the trailing [Icon](/components/icon) of each item. Defaults to `i-lucide-chevron-down`.
::tip ::tip
You can also set an icon for a specific item by using the `trailingIcon` property in the item object. You can also set an icon for a specific item by using the `trailingIcon` property in the item object.
@@ -153,17 +153,17 @@ hide:
- class - class
props: props:
class: 'px-4' class: 'px-4'
trailingIcon: 'i-heroicons-arrow-small-down-20-solid' trailingIcon: 'i-lucide-arrow-down'
items: items:
- label: 'Icons' - label: 'Icons'
icon: 'i-heroicons-face-smile' icon: 'i-lucide-smile'
content: 'You have nothing to do, @nuxt/icon will handle it automatically.' content: 'You have nothing to do, @nuxt/icon will handle it automatically.'
trailingIcon: 'i-heroicons-plus-20-solid' trailingIcon: 'i-lucide-plus'
- label: 'Colors' - label: 'Colors'
icon: 'i-heroicons-swatch' icon: 'i-lucide-swatch-book'
content: 'Choose a primary and a neutral color from your Tailwind CSS theme.' content: 'Choose a primary and a neutral color from your Tailwind CSS theme.'
- label: 'Components' - label: 'Components'
icon: 'i-heroicons-cube-transparent' icon: 'i-lucide-box'
content: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.' content: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.'
--- ---
:: ::

View File

@@ -45,7 +45,7 @@ ignore:
props: props:
title: 'Heads up!' title: 'Heads up!'
description: 'You can change the primary color in your app config.' description: 'You can change the primary color in your app config.'
icon: 'i-heroicons-command-line' icon: 'i-lucide-terminal'
--- ---
:: ::
@@ -81,7 +81,7 @@ props:
color: neutral color: neutral
title: 'Heads up!' title: 'Heads up!'
description: 'You can change the primary color in your app config.' description: 'You can change the primary color in your app config.'
icon: 'i-heroicons-command-line' icon: 'i-lucide-terminal'
--- ---
:: ::
@@ -101,7 +101,7 @@ props:
variant: subtle variant: subtle
title: 'Heads up!' title: 'Heads up!'
description: 'You can change the primary color in your app config.' description: 'You can change the primary color in your app config.'
icon: 'i-heroicons-command-line' icon: 'i-lucide-terminal'
--- ---
:: ::
@@ -157,7 +157,7 @@ props:
### Close Icon ### Close Icon
Use the `close-icon` prop to customize the close button [Icon](/components/icon). Defaults to `i-heroicons-x-mark-20-solid`. Use the `close-icon` prop to customize the close button [Icon](/components/icon). Defaults to `i-lucide-x`.
::component-code ::component-code
--- ---
@@ -174,7 +174,7 @@ props:
color: neutral color: neutral
variant: outline variant: outline
close: true close: true
closeIcon: 'i-heroicons-arrow-right' closeIcon: 'i-lucide-arrow-right'
--- ---
:: ::
@@ -245,7 +245,7 @@ ignore:
props: props:
title: 'Heads up!' title: 'Heads up!'
description: 'You can change the primary color in your app config.' description: 'You can change the primary color in your app config.'
icon: i-heroicons-rocket-launch icon: i-lucide-rocket
ui: ui:
icon: 'size-11' icon: 'size-11'
--- ---

View File

@@ -43,7 +43,7 @@ Use the `icon` prop to display a fallback [Icon](/components/icon).
::component-code ::component-code
--- ---
props: props:
icon: 'i-heroicons-photo' icon: 'i-lucide-image'
size: md size: md
--- ---
:: ::

View File

@@ -75,7 +75,7 @@ Use the `icon` prop to show an [Icon](/components/icon) inside the Badge.
::component-code ::component-code
--- ---
props: props:
icon: i-heroicons-rocket-launch icon: i-lucide-rocket
size: md size: md
color: primary color: primary
variant: solid variant: solid
@@ -89,7 +89,7 @@ Use the `leading` and `trailing` props to set the icon position or the `leading-
::component-code ::component-code
--- ---
props: props:
trailingIcon: i-heroicons-arrow-right trailingIcon: i-lucide-arrow-right
size: md size: md
slots: slots:
default: Badge default: Badge

View File

@@ -29,12 +29,12 @@ external:
props: props:
items: items:
- label: 'Home' - label: 'Home'
icon: 'i-heroicons-home' icon: 'i-lucide-house'
- label: 'Components' - label: 'Components'
icon: 'i-heroicons-cube-transparent' icon: 'i-lucide-box'
to: '/components' to: '/components'
- label: 'Breadcrumb' - label: 'Breadcrumb'
icon: 'i-heroicons-link' icon: 'i-lucide-link'
to: '/components/breadcrumb' to: '/components/breadcrumb'
--- ---
:: ::
@@ -45,7 +45,7 @@ A `span` is rendered instead of a link when the `to` property is not defined.
### Separator Icon ### Separator Icon
Use the `separator-icon` prop to customize the [Icon](/components/icon) between each item. Defaults to `i-heroicons-chevron-right-20-solid`. Use the `separator-icon` prop to customize the [Icon](/components/icon) between each item. Defaults to `i-lucide-chevron-right`.
::component-code ::component-code
--- ---
@@ -54,15 +54,15 @@ ignore:
external: external:
- items - items
props: props:
separatorIcon: 'i-heroicons-arrow-right-20-solid' separatorIcon: 'i-lucide-arrow-right'
items: items:
- label: 'Home' - label: 'Home'
icon: 'i-heroicons-home' icon: 'i-lucide-house'
- label: 'Components' - label: 'Components'
icon: 'i-heroicons-cube-transparent' icon: 'i-lucide-box'
to: '/components' to: '/components'
- label: 'Breadcrumb' - label: 'Breadcrumb'
icon: 'i-heroicons-link' icon: 'i-lucide-link'
to: '/components/breadcrumb' to: '/components/breadcrumb'
--- ---
:: ::

View File

@@ -18,10 +18,10 @@ slots:
default: | default: |
<UButton color="neutral" variant="subtle" label="Button" /> <UButton color="neutral" variant="subtle" label="Button" />
<UButton color="neutral" variant="outline" icon="i-heroicons-chevron-down-20-solid" /> <UButton color="neutral" variant="outline" icon="i-lucide-chevron-down" />
--- ---
:u-button{color="neutral" variant="subtle" label="Button"} :u-button{color="neutral" variant="subtle" label="Button"}
:u-button{color="neutral" variant="outline" icon="i-heroicons-chevron-down-20-solid"} :u-button{color="neutral" variant="outline" icon="i-lucide-chevron-down"}
:: ::
### Size ### Size
@@ -37,10 +37,10 @@ slots:
default: | default: |
<UButton color="neutral" variant="subtle" label="Button" /> <UButton color="neutral" variant="subtle" label="Button" />
<UButton color="neutral" variant="outline" icon="i-heroicons-chevron-down-20-solid" /> <UButton color="neutral" variant="outline" icon="i-lucide-chevron-down" />
--- ---
:u-button{color="neutral" variant="subtle" label="Button"} :u-button{color="neutral" variant="subtle" label="Button"}
:u-button{color="neutral" variant="outline" icon="i-heroicons-chevron-down-20-solid"} :u-button{color="neutral" variant="outline" icon="i-lucide-chevron-down"}
:: ::
### Orientation ### Orientation
@@ -76,10 +76,10 @@ slots:
<UInput color="neutral" variant="outline" placeholder="Enter token" /> <UInput color="neutral" variant="outline" placeholder="Enter token" />
<UButton color="neutral" variant="subtle" icon="i-heroicons-clipboard-document" /> <UButton color="neutral" variant="subtle" icon="i-lucide-clipboard" />
--- ---
:u-input{color="neutral" variant="outline" placeholder="Enter token"} :u-input{color="neutral" variant="outline" placeholder="Enter token"}
:u-button{color="neutral" variant="subtle" icon="i-heroicons-clipboard-document"} :u-button{color="neutral" variant="subtle" icon="i-lucide-clipboard"}
:: ::
### With tooltip ### With tooltip

View File

@@ -92,7 +92,7 @@ Use the `icon` prop to show an [Icon](/components/icon) inside the Button.
::component-code ::component-code
--- ---
props: props:
icon: i-heroicons-rocket-launch icon: i-lucide-rocket
size: md size: md
color: primary color: primary
variant: solid variant: solid
@@ -106,7 +106,7 @@ Use the `leading` and `trailing` props to set the icon position or the `leading-
::component-code ::component-code
--- ---
props: props:
trailingIcon: i-heroicons-arrow-right trailingIcon: i-lucide-arrow-right
size: md size: md
slots: slots:
default: Button default: Button
@@ -118,7 +118,7 @@ The `label` as prop or slot is optional so you can use the Button as an icon-onl
::component-code ::component-code
--- ---
props: props:
icon: i-heroicons-magnifying-glass icon: i-lucide-search
size: md size: md
color: primary color: primary
variant: solid variant: solid
@@ -184,13 +184,13 @@ This also works with the [Form](/components/form) component.
### Loading Icon ### Loading Icon
Use the `loading-icon` prop to customize the loading icon. Defaults to `i-heroicons-arrow-path-20-solid`. Use the `loading-icon` prop to customize the loading icon. Defaults to `i-lucide-refresh-ccw`.
::component-code ::component-code
--- ---
props: props:
loading: true loading: true
loadingIcon: 'i-heroicons-arrow-path-rounded-square' loadingIcon: 'i-lucide-repeat-2'
slots: slots:
default: Button default: Button
--- ---
@@ -244,7 +244,7 @@ ignore:
- variant - variant
- icon - icon
props: props:
icon: i-heroicons-rocket-launch icon: i-lucide-rocket
color: neutral color: neutral
variant: outline variant: outline
ui: ui:

View File

@@ -78,7 +78,7 @@ class: 'p-8'
### Prev Icon / Next Icon ### Prev Icon / Next Icon
Use the `prev-icon` and `next-icon` props to customize the buttons [Icon](/components/icon). Defaults to `i-heroicons-arrow-left-20-solid` / `i-heroicons-arrow-right-20-solid`. Use the `prev-icon` and `next-icon` props to customize the buttons [Icon](/components/icon). Defaults to `i-lucide-arrow-left` / `i-lucide-arrow-right`.
::component-example ::component-example
--- ---
@@ -87,10 +87,10 @@ class: 'p-8'
options: options:
- name: 'prevIcon' - name: 'prevIcon'
label: 'prevIcon' label: 'prevIcon'
default: 'i-heroicons-chevron-left' default: 'i-lucide-chevron-left'
- name: 'nextIcon' - name: 'nextIcon'
label: 'nextIcon' label: 'nextIcon'
default: 'i-heroicons-chevron-right' default: 'i-lucide-chevron-right'
--- ---
:: ::

View File

@@ -48,13 +48,13 @@ props:
### Indeterminate Icon ### Indeterminate Icon
Use the `indeterminate-icon` prop to customize the indeterminate icon. Defaults to `i-heroicons-minus-20-solid`. Use the `indeterminate-icon` prop to customize the indeterminate icon. Defaults to `i-lucide-minus`.
::component-code ::component-code
--- ---
props: props:
indeterminate: true indeterminate: true
indeterminateIcon: 'i-heroicons-plus-20-solid' indeterminateIcon: 'i-lucide-plus'
--- ---
:: ::
@@ -101,7 +101,7 @@ props:
### Icon ### Icon
Use the `icon` prop to set the icon of the Checkbox when it is checked. Defaults to `i-heroicons-check-20-solid`. Use the `icon` prop to set the icon of the Checkbox when it is checked. Defaults to `i-lucide-check`.
::component-code ::component-code
--- ---
@@ -109,7 +109,7 @@ ignore:
- label - label
- defaultValue - defaultValue
props: props:
icon: 'i-heroicons-heart' icon: 'i-lucide-heart'
defaultValue: true defaultValue: true
label: Check me label: Check me
--- ---

View File

@@ -16,9 +16,9 @@ prettier: true
slots: slots:
default: | default: |
<UButton icon="i-heroicons-envelope" color="neutral" variant="subtle" /> <UButton icon="i-lucide-mail" color="neutral" variant="subtle" />
--- ---
:u-button{icon="i-heroicons-envelope" color="neutral" variant="subtle"} :u-button{icon="i-lucide-mail" color="neutral" variant="subtle"}
:: ::
### Color ### Color
@@ -33,9 +33,9 @@ props:
slots: slots:
default: | default: |
<UButton icon="i-heroicons-envelope" color="neutral" variant="subtle" /> <UButton icon="i-lucide-mail" color="neutral" variant="subtle" />
--- ---
:u-button{icon="i-heroicons-envelope" color="neutral" variant="subtle"} :u-button{icon="i-lucide-mail" color="neutral" variant="subtle"}
:: ::
### Size ### Size
@@ -50,9 +50,9 @@ props:
slots: slots:
default: | default: |
<UButton icon="i-heroicons-envelope" color="neutral" variant="subtle" /> <UButton icon="i-lucide-mail" color="neutral" variant="subtle" />
--- ---
:u-button{icon="i-heroicons-envelope" color="neutral" variant="subtle"} :u-button{icon="i-lucide-mail" color="neutral" variant="subtle"}
:: ::
### Text ### Text
@@ -68,9 +68,9 @@ props:
slots: slots:
default: | default: |
<UButton icon="i-heroicons-envelope" color="neutral" variant="subtle" /> <UButton icon="i-lucide-mail" color="neutral" variant="subtle" />
--- ---
:u-button{icon="i-heroicons-envelope" color="neutral" variant="subtle"} :u-button{icon="i-lucide-mail" color="neutral" variant="subtle"}
:: ::
### Position ### Position
@@ -85,9 +85,9 @@ props:
slots: slots:
default: | default: |
<UButton icon="i-heroicons-envelope" color="neutral" variant="subtle" /> <UButton icon="i-lucide-mail" color="neutral" variant="subtle" />
--- ---
:u-button{icon="i-heroicons-envelope" color="neutral" variant="subtle"} :u-button{icon="i-lucide-mail" color="neutral" variant="subtle"}
:: ::
### Inset ### Inset

View File

@@ -25,14 +25,14 @@ props:
slots: slots:
default: | default: |
<UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-down-20-solid" block /> <UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-down" block />
content: | content: |
<Placeholder class="h-48" /> <Placeholder class="h-48" />
--- ---
:u-button{label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-down-20-solid" block} :u-button{label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-down" block}
#content #content
:placeholder{class="h-48"} :placeholder{class="h-48"}
@@ -53,14 +53,14 @@ props:
slots: slots:
default: | default: |
<UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-down-20-solid" block /> <UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-down" block />
content: | content: |
<Placeholder class="h-48" /> <Placeholder class="h-48" />
--- ---
:u-button{label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-down-20-solid" block} :u-button{label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-down" block}
#content #content
:placeholder{class="h-48"} :placeholder{class="h-48"}

View File

@@ -177,18 +177,18 @@ props:
- id: 'apps' - id: 'apps'
items: items:
- label: 'Calendar' - label: 'Calendar'
icon: 'i-heroicons-calendar' icon: 'i-lucide-calendar'
- label: 'Music' - label: 'Music'
icon: 'i-heroicons-musical-note' icon: 'i-lucide-music'
- label: 'Maps' - label: 'Maps'
icon: 'i-heroicons-map' icon: 'i-lucide-map'
class: 'flex-1' class: 'flex-1'
--- ---
:: ::
### Icon ### Icon
Use the `icon` prop to customize the input [Icon](/components/icon). Defaults to `i-heroicons-magnifying-glass-20-solid`. Use the `icon` prop to customize the input [Icon](/components/icon). Defaults to `i-lucide-search`.
::component-code ::component-code
--- ---
@@ -200,16 +200,16 @@ external:
- groups - groups
class: '!p-0' class: '!p-0'
props: props:
icon: 'i-heroicons-cube' icon: 'i-lucide-box'
groups: groups:
- id: 'apps' - id: 'apps'
items: items:
- label: 'Calendar' - label: 'Calendar'
icon: 'i-heroicons-calendar' icon: 'i-lucide-calendar'
- label: 'Music' - label: 'Music'
icon: 'i-heroicons-musical-note' icon: 'i-lucide-music'
- label: 'Maps' - label: 'Maps'
icon: 'i-heroicons-map' icon: 'i-lucide-map'
class: 'flex-1' class: 'flex-1'
--- ---
:: ::
@@ -237,18 +237,18 @@ props:
- id: 'apps' - id: 'apps'
items: items:
- label: 'Calendar' - label: 'Calendar'
icon: 'i-heroicons-calendar' icon: 'i-lucide-calendar'
- label: 'Music' - label: 'Music'
icon: 'i-heroicons-musical-note' icon: 'i-lucide-music'
- label: 'Maps' - label: 'Maps'
icon: 'i-heroicons-map' icon: 'i-lucide-map'
class: 'flex-1' class: 'flex-1'
--- ---
:: ::
### Loading Icon ### Loading Icon
Use the `loading-icon` prop to customize the loading icon. Defaults to `i-heroicons-arrow-path-20-solid`. Use the `loading-icon` prop to customize the loading icon. Defaults to `i-lucide-refresh-ccw`.
::component-code ::component-code
--- ---
@@ -261,16 +261,16 @@ external:
class: '!p-0' class: '!p-0'
props: props:
loading: true loading: true
loadingIcon: 'i-heroicons-arrow-path-rounded-square' loadingIcon: 'i-lucide-repeat-2'
groups: groups:
- id: 'apps' - id: 'apps'
items: items:
- label: 'Calendar' - label: 'Calendar'
icon: 'i-heroicons-calendar' icon: 'i-lucide-calendar'
- label: 'Music' - label: 'Music'
icon: 'i-heroicons-musical-note' icon: 'i-lucide-music'
- label: 'Maps' - label: 'Maps'
icon: 'i-heroicons-map' icon: 'i-lucide-map'
class: 'flex-1' class: 'flex-1'
--- ---
:: ::
@@ -298,11 +298,11 @@ props:
- id: 'apps' - id: 'apps'
items: items:
- label: 'Calendar' - label: 'Calendar'
icon: 'i-heroicons-calendar' icon: 'i-lucide-calendar'
- label: 'Music' - label: 'Music'
icon: 'i-heroicons-musical-note' icon: 'i-lucide-music'
- label: 'Maps' - label: 'Maps'
icon: 'i-heroicons-map' icon: 'i-lucide-map'
class: 'flex-1' class: 'flex-1'
--- ---
:: ::
@@ -331,11 +331,11 @@ props:
- id: 'apps' - id: 'apps'
items: items:
- label: 'Calendar' - label: 'Calendar'
icon: 'i-heroicons-calendar' icon: 'i-lucide-calendar'
- label: 'Music' - label: 'Music'
icon: 'i-heroicons-musical-note' icon: 'i-lucide-music'
- label: 'Maps' - label: 'Maps'
icon: 'i-heroicons-map' icon: 'i-lucide-map'
class: 'flex-1' class: 'flex-1'
--- ---
:: ::
@@ -363,18 +363,18 @@ props:
- id: 'apps' - id: 'apps'
items: items:
- label: 'Calendar' - label: 'Calendar'
icon: 'i-heroicons-calendar' icon: 'i-lucide-calendar'
- label: 'Music' - label: 'Music'
icon: 'i-heroicons-musical-note' icon: 'i-lucide-music'
- label: 'Maps' - label: 'Maps'
icon: 'i-heroicons-map' icon: 'i-lucide-map'
class: 'flex-1' class: 'flex-1'
--- ---
:: ::
### Close Icon ### Close Icon
Use the `close-icon` prop to customize the close button [Icon](/components/icon). Defaults to `i-heroicons-x-mark-20-solid`. Use the `close-icon` prop to customize the close button [Icon](/components/icon). Defaults to `i-lucide-x`.
::component-code ::component-code
--- ---
@@ -388,16 +388,16 @@ external:
class: '!p-0' class: '!p-0'
props: props:
close: true close: true
closeIcon: 'i-heroicons-arrow-right' closeIcon: 'i-lucide-arrow-right'
groups: groups:
- id: 'apps' - id: 'apps'
items: items:
- label: 'Calendar' - label: 'Calendar'
icon: 'i-heroicons-calendar' icon: 'i-lucide-calendar'
- label: 'Music' - label: 'Music'
icon: 'i-heroicons-musical-note' icon: 'i-lucide-music'
- label: 'Maps' - label: 'Maps'
icon: 'i-heroicons-map' icon: 'i-lucide-map'
class: 'flex-1' class: 'flex-1'
--- ---
:: ::

View File

@@ -48,11 +48,11 @@ props:
- - label: Appearance - - label: Appearance
children: children:
- label: System - label: System
icon: i-heroicons-computer-desktop icon: i-lucide-monitor
- label: Light - label: Light
icon: i-heroicons-sun icon: i-lucide-sun
- label: Dark - label: Dark
icon: i-heroicons-moon icon: i-lucide-moon
- - label: Show Sidebar - - label: Show Sidebar
kbds: kbds:
- meta - meta
@@ -126,11 +126,11 @@ props:
size: xl size: xl
items: items:
- label: System - label: System
icon: i-heroicons-computer-desktop icon: i-lucide-monitor
- label: Light - label: Light
icon: i-heroicons-sun icon: i-lucide-sun
- label: Dark - label: Dark
icon: i-heroicons-moon icon: i-lucide-moon
class: 'w-48' class: 'w-48'
slots: slots:
default: | default: |
@@ -159,11 +159,11 @@ props:
disabled: true disabled: true
items: items:
- label: System - label: System
icon: i-heroicons-computer-desktop icon: i-lucide-monitor
- label: Light - label: Light
icon: i-heroicons-sun icon: i-lucide-sun
- label: Dark - label: Dark
icon: i-heroicons-moon icon: i-lucide-moon
class: 'w-48' class: 'w-48'
slots: slots:
default: | default: |

View File

@@ -21,14 +21,14 @@ prettier: true
slots: slots:
default: | default: |
<UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-up-20-solid" /> <UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-up" />
content: | content: |
<Placeholder class="h-48 m-4" /> <Placeholder class="h-48 m-4" />
--- ---
:u-button{label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-up-20-solid"} :u-button{label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-up"}
#content #content
:placeholder{class="h-48 m-4"} :placeholder{class="h-48 m-4"}
@@ -48,14 +48,14 @@ props:
slots: slots:
default: | default: |
<UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-up-20-solid" /> <UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-up" />
body: | body: |
<Placeholder class="h-48" /> <Placeholder class="h-48" />
--- ---
:u-button{label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-up-20-solid"} :u-button{label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-up"}
#body #body
:placeholder{class="h-48"} :placeholder{class="h-48"}
@@ -76,14 +76,14 @@ props:
slots: slots:
default: | default: |
<UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-up-20-solid" /> <UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-up" />
body: | body: |
<Placeholder class="h-48" /> <Placeholder class="h-48" />
--- ---
:u-button{label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-up-20-solid"} :u-button{label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-up"}
#body #body
:placeholder{class="h-48"} :placeholder{class="h-48"}
@@ -105,14 +105,14 @@ props:
slots: slots:
default: | default: |
<UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-up-20-solid" /> <UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-up" />
content: | content: |
<Placeholder class="h-96 m-4" /> <Placeholder class="h-96 m-4" />
--- ---
:u-button{label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-up-20-solid"} :u-button{label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-up"}
#content #content
:placeholder{class="h-96 m-4"} :placeholder{class="h-96 m-4"}
@@ -130,14 +130,14 @@ props:
slots: slots:
default: | default: |
<UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-up-20-solid" /> <UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-up" />
content: | content: |
<Placeholder class="w-96 m-4" /> <Placeholder class="w-96 m-4" />
--- ---
:u-button{label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-up-20-solid"} :u-button{label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-up"}
#content #content
:placeholder{class="w-96 m-4"} :placeholder{class="w-96 m-4"}
@@ -155,14 +155,14 @@ props:
slots: slots:
default: | default: |
<UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-up-20-solid" /> <UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-up" />
content: | content: |
<Placeholder class="h-48 m-4" /> <Placeholder class="h-48 m-4" />
--- ---
:u-button{label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-up-20-solid"} :u-button{label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-up"}
#content #content
:placeholder{class="h-48 m-4"} :placeholder{class="h-48 m-4"}
@@ -180,14 +180,14 @@ props:
slots: slots:
default: | default: |
<UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-up-20-solid" /> <UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-up" />
content: | content: |
<Placeholder class="h-48 m-4" /> <Placeholder class="h-48 m-4" />
--- ---
:u-button{label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-up-20-solid"} :u-button{label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-up"}
#content #content
:placeholder{class="h-48 m-4"} :placeholder{class="h-48 m-4"}
@@ -205,14 +205,14 @@ props:
slots: slots:
default: | default: |
<UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-up-20-solid" /> <UButton label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-up" />
content: | content: |
<Placeholder class="h-48 m-4" /> <Placeholder class="h-48 m-4" />
--- ---
:u-button{label="Open" color="neutral" variant="subtle" trailing-icon="i-heroicons-chevron-up-20-solid"} :u-button{label="Open" color="neutral" variant="subtle" trailing-icon="i-lucide-chevron-up"}
#content #content
:placeholder{class="h-screen m-4"} :placeholder{class="h-screen m-4"}

View File

@@ -50,28 +50,28 @@ props:
src: 'https://github.com/benjamincanac.png' src: 'https://github.com/benjamincanac.png'
type: label type: label
- - label: Profile - - label: Profile
icon: i-heroicons-user icon: i-lucide-user
- label: Billing - label: Billing
icon: i-heroicons-credit-card icon: i-lucide-credit-card
- label: Settings - label: Settings
icon: i-heroicons-cog icon: i-lucide-cog
kbds: kbds:
- ',' - ','
- label: Keyboard shortcuts - label: Keyboard shortcuts
icon: i-heroicons-computer-desktop icon: i-lucide-monitor
- - label: Team - - label: Team
icon: i-heroicons-users icon: i-lucide-users
- label: Invite users - label: Invite users
icon: i-heroicons-user-plus icon: i-lucide-user-plus
children: children:
- - label: Email - - label: Email
icon: i-heroicons-envelope icon: i-lucide-mail
- label: Message - label: Message
icon: i-heroicons-chat-bubble-left icon: i-lucide-message-square
- - label: More - - label: More
icon: i-heroicons-plus-circle icon: i-lucide-circle-plus
- label: New team - label: New team
icon: i-heroicons-plus icon: i-lucide-plus
kbds: kbds:
- meta - meta
- n - n
@@ -80,13 +80,13 @@ props:
to: 'https://github.com/nuxt/ui' to: 'https://github.com/nuxt/ui'
target: _blank target: _blank
- label: Support - label: Support
icon: i-heroicons-lifebuoy icon: i-lucide-life-buoy
to: '/components/dropdown-menu' to: '/components/dropdown-menu'
- label: API - label: API
icon: i-heroicons-cloud icon: i-lucide-cloud
disabled: true disabled: true
- - label: Logout - - label: Logout
icon: i-heroicons-arrow-right-on-rectangle icon: i-lucide-log-out
kbds: kbds:
- shift - shift
- meta - meta
@@ -95,10 +95,10 @@ props:
slots: slots:
default: | default: |
<UButton icon="i-heroicons-bars-3" color="neutral" variant="outline" /> <UButton icon="i-lucide-menu" color="neutral" variant="outline" />
--- ---
:u-button{icon="i-heroicons-bars-3" color="neutral" variant="outline"} :u-button{icon="i-lucide-menu" color="neutral" variant="outline"}
:: ::
::note ::note
@@ -134,11 +134,11 @@ items:
props: props:
items: items:
- label: Profile - label: Profile
icon: i-heroicons-user icon: i-lucide-user
- label: Billing - label: Billing
icon: i-heroicons-credit-card icon: i-lucide-credit-card
- label: Settings - label: Settings
icon: i-heroicons-cog icon: i-lucide-cog
content: content:
align: start align: start
side: bottom side: bottom
@@ -147,10 +147,10 @@ props:
slots: slots:
default: | default: |
<UButton label="Open" icon="i-heroicons-bars-3" color="neutral" variant="outline" /> <UButton label="Open" icon="i-lucide-menu" color="neutral" variant="outline" />
--- ---
:u-button{label="Open" icon="i-heroicons-bars-3" color="neutral" variant="outline"} :u-button{label="Open" icon="i-lucide-menu" color="neutral" variant="outline"}
:: ::
### Arrow ### Arrow
@@ -170,19 +170,19 @@ props:
arrow: true arrow: true
items: items:
- label: Profile - label: Profile
icon: i-heroicons-user icon: i-lucide-user
- label: Billing - label: Billing
icon: i-heroicons-credit-card icon: i-lucide-credit-card
- label: Settings - label: Settings
icon: i-heroicons-cog icon: i-lucide-cog
class: 'w-48' class: 'w-48'
slots: slots:
default: | default: |
<UButton label="Open" icon="i-heroicons-bars-3" color="neutral" variant="outline" /> <UButton label="Open" icon="i-lucide-menu" color="neutral" variant="outline" />
--- ---
:u-button{label="Open" icon="i-heroicons-bars-3" color="neutral" variant="outline"} :u-button{label="Open" icon="i-lucide-menu" color="neutral" variant="outline"}
:: ::
### Size ### Size
@@ -202,21 +202,21 @@ props:
size: xl size: xl
items: items:
- label: Profile - label: Profile
icon: i-heroicons-user icon: i-lucide-user
- label: Billing - label: Billing
icon: i-heroicons-credit-card icon: i-lucide-credit-card
- label: Settings - label: Settings
icon: i-heroicons-cog icon: i-lucide-cog
content: content:
align: start align: start
class: 'w-48' class: 'w-48'
slots: slots:
default: | default: |
<UButton size="xl" label="Open" icon="i-heroicons-bars-3" color="neutral" variant="outline" /> <UButton size="xl" label="Open" icon="i-lucide-menu" color="neutral" variant="outline" />
--- ---
:u-button{size="xl" label="Open" icon="i-heroicons-bars-3" color="neutral" variant="outline"} :u-button{size="xl" label="Open" icon="i-lucide-menu" color="neutral" variant="outline"}
:: ::
::warning ::warning
@@ -243,19 +243,19 @@ props:
disabled: true disabled: true
items: items:
- label: Profile - label: Profile
icon: i-heroicons-user icon: i-lucide-user
- label: Billing - label: Billing
icon: i-heroicons-credit-card icon: i-lucide-credit-card
- label: Settings - label: Settings
icon: i-heroicons-cog icon: i-lucide-cog
class: 'w-48' class: 'w-48'
slots: slots:
default: | default: |
<UButton label="Open" icon="i-heroicons-bars-3" color="neutral" variant="outline" /> <UButton label="Open" icon="i-lucide-menu" color="neutral" variant="outline" />
--- ---
:u-button{label="Open" icon="i-heroicons-bars-3" color="neutral" variant="outline"} :u-button{label="Open" icon="i-lucide-menu" color="neutral" variant="outline"}
:: ::
## Examples ## Examples
@@ -330,17 +330,17 @@ Inside the `defineShortcuts` composable, there is an `extractShortcuts` utility
<script setup lang="ts"> <script setup lang="ts">
const items = [{ const items = [{
label: 'Invite users', label: 'Invite users',
icon: 'i-heroicons-user-plus', icon: 'i-lucide-user-plus',
children: [{ children: [{
label: 'Invite by email', label: 'Invite by email',
icon: 'i-heroicons-paper-airplane', icon: 'i-lucide-send-horizontal',
kbds: ['meta', 'e'], kbds: ['meta', 'e'],
onSelect() { onSelect() {
console.log('Invite by email clicked') console.log('Invite by email clicked')
} }
}, { }, {
label: 'Invite by link', label: 'Invite by link',
icon: 'i-heroicons-link', icon: 'i-lucide-link',
kbds: ['meta', 'i'], kbds: ['meta', 'i'],
onSelect() { onSelect() {
console.log('Invite by link clicked') console.log('Invite by link clicked')
@@ -348,7 +348,7 @@ const items = [{
}] }]
}, { }, {
label: 'New team', label: 'New team',
icon: 'i-heroicons-plus', icon: 'i-lucide-plus',
kbds: ['meta', 'n'], kbds: ['meta', 'n'],
onSelect() { onSelect() {
console.log('New team clicked') console.log('New team clicked')

View File

@@ -13,7 +13,7 @@ You can use any name from the https://icones.js.org collection:
::component-code ::component-code
--- ---
props: props:
name: 'i-heroicons-light-bulb' name: 'i-lucide-lightbulb'
class: 'size-5' class: 'size-5'
--- ---
:: ::

View File

@@ -163,7 +163,7 @@ Ensure to pass an array to the `default-value` prop or the `v-model` directive.
### Delete Icon ### Delete Icon
With `multiple`, use the `delete-icon` prop to customize the delete [Icon](/components/icon) in the badges. Defaults to `i-heroicons-x-mark-20-solid`. With `multiple`, use the `delete-icon` prop to customize the delete [Icon](/components/icon) in the badges. Defaults to `i-lucide-x`.
::component-code ::component-code
--- ---
@@ -180,7 +180,7 @@ props:
- Backlog - Backlog
- Todo - Todo
multiple: true multiple: true
deleteIcon: 'i-heroicons-trash' deleteIcon: 'i-lucide-trash'
items: items:
- Backlog - Backlog
- Todo - Todo
@@ -370,7 +370,7 @@ external:
- modelValue - modelValue
props: props:
modelValue: 'Backlog' modelValue: 'Backlog'
icon: 'i-heroicons-magnifying-glass' icon: 'i-lucide-search'
size: md size: md
items: items:
- Backlog - Backlog
@@ -382,7 +382,7 @@ props:
### Trailing Icon ### Trailing Icon
Use the `trailing-icon` prop to customize the trailing [Icon](/components/icon). Defaults to `i-heroicons-chevron-down-20-solid`. Use the `trailing-icon` prop to customize the trailing [Icon](/components/icon). Defaults to `i-lucide-chevron-down`.
::component-code ::component-code
--- ---
@@ -395,7 +395,7 @@ external:
- modelValue - modelValue
props: props:
modelValue: 'Backlog' modelValue: 'Backlog'
trailingIcon: 'i-heroicons-arrow-small-down-20-solid' trailingIcon: 'i-lucide-arrow-down'
size: md size: md
items: items:
- Backlog - Backlog
@@ -411,7 +411,7 @@ You can customize this icon globally in your `app.config.ts` under `ui.icons.che
### Selected Icon ### Selected Icon
Use the `selected-icon` prop to customize the icon when an item is selected. Defaults to `i-heroicons-check-20-solid`. Use the `selected-icon` prop to customize the icon when an item is selected. Defaults to `i-lucide-check`.
::component-code ::component-code
--- ---
@@ -424,7 +424,7 @@ external:
- modelValue - modelValue
props: props:
modelValue: 'Backlog' modelValue: 'Backlog'
selectedIcon: 'i-heroicons-fire' selectedIcon: 'i-lucide-flame'
size: md size: md
items: items:
- Backlog - Backlog
@@ -491,7 +491,7 @@ props:
### Loading Icon ### Loading Icon
Use the `loading-icon` prop to customize the loading icon. Defaults to `i-heroicons-arrow-path-20-solid`. Use the `loading-icon` prop to customize the loading icon. Defaults to `i-lucide-refresh-ccw`.
::component-code ::component-code
--- ---
@@ -505,7 +505,7 @@ external:
props: props:
modelValue: 'Backlog' modelValue: 'Backlog'
loading: true loading: true
loadingIcon: 'i-heroicons-arrow-path-rounded-square' loadingIcon: 'i-lucide-repeat-2'
items: items:
- Backlog - Backlog
- Todo - Todo

View File

@@ -115,7 +115,7 @@ prettier: true
ignore: ignore:
- placeholder - placeholder
props: props:
icon: 'i-heroicons-magnifying-glass' icon: 'i-lucide-search'
size: md size: md
variant: outline variant: outline
placeholder: 'Search...' placeholder: 'Search...'
@@ -130,7 +130,7 @@ prettier: true
ignore: ignore:
- placeholder - placeholder
props: props:
trailingIcon: i-heroicons-at-symbol trailingIcon: i-lucide-at-sign
placeholder: 'Enter your email' placeholder: 'Enter your email'
size: md size: md
--- ---
@@ -171,7 +171,7 @@ props:
### Loading Icon ### Loading Icon
Use the `loading-icon` prop to customize the loading icon. Defaults to `i-heroicons-arrow-path-20-solid`. Use the `loading-icon` prop to customize the loading icon. Defaults to `i-lucide-refresh-ccw`.
::component-code ::component-code
--- ---
@@ -179,7 +179,7 @@ ignore:
- placeholder - placeholder
props: props:
loading: true loading: true
loadingIcon: 'i-heroicons-arrow-path-rounded-square' loadingIcon: 'i-lucide-repeat-2'
placeholder: 'Search...' placeholder: 'Search...'
--- ---
:: ::

View File

@@ -130,7 +130,7 @@ The close button is not displayed if the `#content` slot is used as it's a part
### Close Icon ### Close Icon
Use the `close-icon` prop to customize the close button [Icon](/components/icon). Defaults to `i-heroicons-x-mark-20-solid`. Use the `close-icon` prop to customize the close button [Icon](/components/icon). Defaults to `i-lucide-x`.
::component-code ::component-code
--- ---
@@ -139,7 +139,7 @@ ignore:
- title - title
props: props:
title: 'Modal with close button' title: 'Modal with close button'
closeIcon: 'i-heroicons-arrow-right' closeIcon: 'i-lucide-arrow-right'
slots: slots:
default: | default: |

View File

@@ -40,71 +40,71 @@ external:
props: props:
items: items:
- label: Guide - label: Guide
icon: i-heroicons-book-open icon: i-lucide-book-open
to: /getting-started to: /getting-started
children: children:
- label: Introduction - label: Introduction
description: Fully styled and customizable components for Nuxt. description: Fully styled and customizable components for Nuxt.
icon: i-heroicons-home icon: i-lucide-house
- label: Installation - label: Installation
description: Learn how to install and configure Nuxt UI in your application. description: Learn how to install and configure Nuxt UI in your application.
icon: i-heroicons-cloud-arrow-down icon: i-lucide-cloud-download
- label: 'Icons' - label: 'Icons'
icon: 'i-heroicons-face-smile' icon: 'i-lucide-smile'
description: 'You have nothing to do, @nuxt/icon will handle it automatically.' description: 'You have nothing to do, @nuxt/icon will handle it automatically.'
- label: 'Colors' - label: 'Colors'
icon: 'i-heroicons-swatch' icon: 'i-lucide-swatch-book'
description: 'Choose a primary and a neutral color from your Tailwind CSS theme.' description: 'Choose a primary and a neutral color from your Tailwind CSS theme.'
- label: 'Theme' - label: 'Theme'
icon: 'i-heroicons-cog' icon: 'i-lucide-cog'
description: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.' description: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.'
- label: Composables - label: Composables
icon: i-heroicons-circle-stack icon: i-lucide-database
to: /composables to: /composables
children: children:
- label: defineShortcuts - label: defineShortcuts
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Define shortcuts for your application. description: Define shortcuts for your application.
to: /composables/define-shortcuts to: /composables/define-shortcuts
- label: useModal - label: useModal
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a modal within your application. description: Display a modal within your application.
to: /composables/use-modal to: /composables/use-modal
- label: useSlideover - label: useSlideover
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a slideover within your application. description: Display a slideover within your application.
to: /composables/use-slideover to: /composables/use-slideover
- label: useToast - label: useToast
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a toast within your application. description: Display a toast within your application.
to: /composables/use-toast to: /composables/use-toast
- label: Components - label: Components
icon: i-heroicons-cube-transparent icon: i-lucide-box
to: /components to: /components
active: true active: true
children: children:
- label: Link - label: Link
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Use NuxtLink with superpowers. description: Use NuxtLink with superpowers.
to: /components/link to: /components/link
- label: Modal - label: Modal
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a modal within your application. description: Display a modal within your application.
to: /components/modal to: /components/modal
- label: NavigationMenu - label: NavigationMenu
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a list of links. description: Display a list of links.
to: /components/navigation-menu to: /components/navigation-menu
- label: Pagination - label: Pagination
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a list of pages. description: Display a list of pages.
to: /components/pagination to: /components/pagination
- label: Popover - label: Popover
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a non-modal dialog that floats around a trigger element. description: Display a non-modal dialog that floats around a trigger element.
to: /components/popover to: /components/popover
- label: Progress - label: Progress
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Show a horizontal bar to indicate task progression. description: Show a horizontal bar to indicate task progression.
to: /components/progress to: /components/progress
- label: GitHub - label: GitHub
@@ -113,7 +113,7 @@ props:
to: https://github.com/nuxt/ui to: https://github.com/nuxt/ui
target: _blank target: _blank
- label: Help - label: Help
icon: i-heroicons-question-mark-circle icon: i-lucide-circle-help
disabled: true disabled: true
class: 'justify-center' class: 'justify-center'
--- ---
@@ -151,68 +151,68 @@ props:
orientation: 'vertical' orientation: 'vertical'
items: items:
- - label: Guide - - label: Guide
icon: i-heroicons-book-open icon: i-lucide-book-open
children: children:
- label: Introduction - label: Introduction
description: Fully styled and customizable components for Nuxt. description: Fully styled and customizable components for Nuxt.
icon: i-heroicons-home icon: i-lucide-house
- label: Installation - label: Installation
description: Learn how to install and configure Nuxt UI in your application. description: Learn how to install and configure Nuxt UI in your application.
icon: i-heroicons-cloud-arrow-down icon: i-lucide-cloud-download
- label: 'Icons' - label: 'Icons'
icon: 'i-heroicons-face-smile' icon: 'i-lucide-smile'
description: 'You have nothing to do, @nuxt/icon will handle it automatically.' description: 'You have nothing to do, @nuxt/icon will handle it automatically.'
- label: 'Colors' - label: 'Colors'
icon: 'i-heroicons-swatch' icon: 'i-lucide-swatch-book'
description: 'Choose a primary and a neutral color from your Tailwind CSS theme.' description: 'Choose a primary and a neutral color from your Tailwind CSS theme.'
- label: 'Theme' - label: 'Theme'
icon: 'i-heroicons-cog' icon: 'i-lucide-cog'
description: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.' description: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.'
- label: Composables - label: Composables
icon: i-heroicons-circle-stack icon: i-lucide-database
children: children:
- label: defineShortcuts - label: defineShortcuts
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Define shortcuts for your application. description: Define shortcuts for your application.
to: /composables/define-shortcuts to: /composables/define-shortcuts
- label: useModal - label: useModal
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a modal within your application. description: Display a modal within your application.
to: /composables/use-modal to: /composables/use-modal
- label: useSlideover - label: useSlideover
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a slideover within your application. description: Display a slideover within your application.
to: /composables/use-slideover to: /composables/use-slideover
- label: useToast - label: useToast
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a toast within your application. description: Display a toast within your application.
to: /composables/use-toast to: /composables/use-toast
- label: Components - label: Components
icon: i-heroicons-cube-transparent icon: i-lucide-box
active: true active: true
children: children:
- label: Link - label: Link
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Use NuxtLink with superpowers. description: Use NuxtLink with superpowers.
to: /components/link to: /components/link
- label: Modal - label: Modal
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a modal within your application. description: Display a modal within your application.
to: /components/modal to: /components/modal
- label: NavigationMenu - label: NavigationMenu
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a list of links. description: Display a list of links.
to: /components/navigation-menu to: /components/navigation-menu
- label: Pagination - label: Pagination
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a list of pages. description: Display a list of pages.
to: /components/pagination to: /components/pagination
- label: Popover - label: Popover
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a non-modal dialog that floats around a trigger element. description: Display a non-modal dialog that floats around a trigger element.
to: /components/popover to: /components/popover
- label: Progress - label: Progress
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Show a horizontal bar to indicate task progression. description: Show a horizontal bar to indicate task progression.
to: /components/progress to: /components/progress
- - label: GitHub - - label: GitHub
@@ -221,7 +221,7 @@ props:
to: https://github.com/nuxt/ui to: https://github.com/nuxt/ui
target: _blank target: _blank
- label: Help - label: Help
icon: i-heroicons-question-mark-circle icon: i-lucide-circle-help
disabled: true disabled: true
class: 'data-[orientation=vertical]:w-48' class: 'data-[orientation=vertical]:w-48'
--- ---
@@ -252,13 +252,13 @@ props:
orientation: 'horizontal' orientation: 'horizontal'
items: items:
- - label: Guide - - label: Guide
icon: i-heroicons-book-open icon: i-lucide-book-open
to: /getting-started to: /getting-started
- label: Composables - label: Composables
icon: i-heroicons-circle-stack icon: i-lucide-database
to: /composables to: /composables
- label: Components - label: Components
icon: i-heroicons-cube-transparent icon: i-lucide-box
to: /components to: /components
active: true active: true
- - label: GitHub - - label: GitHub
@@ -288,13 +288,13 @@ props:
color: neutral color: neutral
items: items:
- - label: Guide - - label: Guide
icon: i-heroicons-book-open icon: i-lucide-book-open
to: /getting-started to: /getting-started
- label: Composables - label: Composables
icon: i-heroicons-circle-stack icon: i-lucide-database
to: /composables to: /composables
- label: Components - label: Components
icon: i-heroicons-cube-transparent icon: i-lucide-box
to: /components to: /components
active: true active: true
- - label: GitHub - - label: GitHub
@@ -321,13 +321,13 @@ props:
highlight: false highlight: false
items: items:
- - label: Guide - - label: Guide
icon: i-heroicons-book-open icon: i-lucide-book-open
to: /getting-started to: /getting-started
- label: Composables - label: Composables
icon: i-heroicons-circle-stack icon: i-lucide-database
to: /composables to: /composables
- label: Components - label: Components
icon: i-heroicons-cube-transparent icon: i-lucide-box
to: /components to: /components
active: true active: true
- - label: GitHub - - label: GitHub
@@ -344,7 +344,7 @@ The `highlight` prop changes the `pill` variant active item style. Try it out to
### Trailing Icon ### Trailing Icon
Use the `trailing-icon` prop to customize the trailing [Icon](/components/icon) of each item. Defaults to `i-heroicons-chevron-down-20-solid`. This icon is only displayed when an item has children. Use the `trailing-icon` prop to customize the trailing [Icon](/components/icon) of each item. Defaults to `i-lucide-chevron-down`. This icon is only displayed when an item has children.
::tip ::tip
You can also set an icon for a specific item by using the `trailingIcon` property in the item object. You can also set an icon for a specific item by using the `trailingIcon` property in the item object.
@@ -359,74 +359,74 @@ ignore:
external: external:
- items - items
props: props:
trailingIcon: 'i-heroicons-arrow-small-down-20-solid' trailingIcon: 'i-lucide-arrow-down'
items: items:
- label: Guide - label: Guide
icon: i-heroicons-book-open icon: i-lucide-book-open
to: /getting-started to: /getting-started
children: children:
- label: Introduction - label: Introduction
description: Fully styled and customizable components for Nuxt. description: Fully styled and customizable components for Nuxt.
icon: i-heroicons-home icon: i-lucide-house
- label: Installation - label: Installation
description: Learn how to install and configure Nuxt UI in your application. description: Learn how to install and configure Nuxt UI in your application.
icon: i-heroicons-cloud-arrow-down icon: i-lucide-cloud-download
- label: 'Icons' - label: 'Icons'
icon: 'i-heroicons-face-smile' icon: 'i-lucide-smile'
description: 'You have nothing to do, @nuxt/icon will handle it automatically.' description: 'You have nothing to do, @nuxt/icon will handle it automatically.'
- label: 'Colors' - label: 'Colors'
icon: 'i-heroicons-swatch' icon: 'i-lucide-swatch-book'
description: 'Choose a primary and a neutral color from your Tailwind CSS theme.' description: 'Choose a primary and a neutral color from your Tailwind CSS theme.'
- label: 'Theme' - label: 'Theme'
icon: 'i-heroicons-cog' icon: 'i-lucide-cog'
description: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.' description: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.'
- label: Composables - label: Composables
icon: i-heroicons-circle-stack icon: i-lucide-database
to: /composables to: /composables
children: children:
- label: defineShortcuts - label: defineShortcuts
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Define shortcuts for your application. description: Define shortcuts for your application.
to: /composables/define-shortcuts to: /composables/define-shortcuts
- label: useModal - label: useModal
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a modal within your application. description: Display a modal within your application.
to: /composables/use-modal to: /composables/use-modal
- label: useSlideover - label: useSlideover
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a slideover within your application. description: Display a slideover within your application.
to: /composables/use-slideover to: /composables/use-slideover
- label: useToast - label: useToast
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a toast within your application. description: Display a toast within your application.
to: /composables/use-toast to: /composables/use-toast
- label: Components - label: Components
icon: i-heroicons-cube-transparent icon: i-lucide-box
to: /components to: /components
active: true active: true
children: children:
- label: Link - label: Link
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Use NuxtLink with superpowers. description: Use NuxtLink with superpowers.
to: /components/link to: /components/link
- label: Modal - label: Modal
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a modal within your application. description: Display a modal within your application.
to: /components/modal to: /components/modal
- label: NavigationMenu - label: NavigationMenu
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a list of links. description: Display a list of links.
to: /components/navigation-menu to: /components/navigation-menu
- label: Pagination - label: Pagination
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a list of pages. description: Display a list of pages.
to: /components/pagination to: /components/pagination
- label: Popover - label: Popover
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a non-modal dialog that floats around a trigger element. description: Display a non-modal dialog that floats around a trigger element.
to: /components/popover to: /components/popover
- label: Progress - label: Progress
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Show a horizontal bar to indicate task progression. description: Show a horizontal bar to indicate task progression.
to: /components/progress to: /components/progress
class: 'justify-center' class: 'justify-center'
@@ -454,71 +454,71 @@ props:
arrow: true arrow: true
items: items:
- label: Guide - label: Guide
icon: i-heroicons-book-open icon: i-lucide-book-open
to: /getting-started to: /getting-started
children: children:
- label: Introduction - label: Introduction
description: Fully styled and customizable components for Nuxt. description: Fully styled and customizable components for Nuxt.
icon: i-heroicons-home icon: i-lucide-house
- label: Installation - label: Installation
description: Learn how to install and configure Nuxt UI in your application. description: Learn how to install and configure Nuxt UI in your application.
icon: i-heroicons-cloud-arrow-down icon: i-lucide-cloud-download
- label: 'Icons' - label: 'Icons'
icon: 'i-heroicons-face-smile' icon: 'i-lucide-smile'
description: 'You have nothing to do, @nuxt/icon will handle it automatically.' description: 'You have nothing to do, @nuxt/icon will handle it automatically.'
- label: 'Colors' - label: 'Colors'
icon: 'i-heroicons-swatch' icon: 'i-lucide-swatch-book'
description: 'Choose a primary and a neutral color from your Tailwind CSS theme.' description: 'Choose a primary and a neutral color from your Tailwind CSS theme.'
- label: 'Theme' - label: 'Theme'
icon: 'i-heroicons-cog' icon: 'i-lucide-cog'
description: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.' description: 'You can customize components by using the `class` / `ui` props or in your app.config.ts.'
- label: Composables - label: Composables
icon: i-heroicons-circle-stack icon: i-lucide-database
to: /composables to: /composables
children: children:
- label: defineShortcuts - label: defineShortcuts
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Define shortcuts for your application. description: Define shortcuts for your application.
to: /composables/define-shortcuts to: /composables/define-shortcuts
- label: useModal - label: useModal
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a modal within your application. description: Display a modal within your application.
to: /composables/use-modal to: /composables/use-modal
- label: useSlideover - label: useSlideover
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a slideover within your application. description: Display a slideover within your application.
to: /composables/use-slideover to: /composables/use-slideover
- label: useToast - label: useToast
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a toast within your application. description: Display a toast within your application.
to: /composables/use-toast to: /composables/use-toast
- label: Components - label: Components
icon: i-heroicons-cube-transparent icon: i-lucide-box
to: /components to: /components
active: true active: true
children: children:
- label: Link - label: Link
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Use NuxtLink with superpowers. description: Use NuxtLink with superpowers.
to: /components/link to: /components/link
- label: Modal - label: Modal
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a modal within your application. description: Display a modal within your application.
to: /components/modal to: /components/modal
- label: NavigationMenu - label: NavigationMenu
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a list of links. description: Display a list of links.
to: /components/navigation-menu to: /components/navigation-menu
- label: Pagination - label: Pagination
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a list of pages. description: Display a list of pages.
to: /components/pagination to: /components/pagination
- label: Popover - label: Popover
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Display a non-modal dialog that floats around a trigger element. description: Display a non-modal dialog that floats around a trigger element.
to: /components/popover to: /components/popover
- label: Progress - label: Progress
icon: i-heroicons-document-text icon: i-lucide-file-text
description: Show a horizontal bar to indicate task progression. description: Show a horizontal bar to indicate task progression.
to: /components/progress to: /components/progress
class: 'justify-center' class: 'justify-center'

View File

@@ -216,18 +216,18 @@ external:
props: props:
modelValue: modelValue:
label: 'Backlog' label: 'Backlog'
icon: 'i-heroicons-question-mark-circle' icon: 'i-lucide-circle-help'
searchInput: searchInput:
placeholder: 'Filter...' placeholder: 'Filter...'
items: items:
- label: Backlog - label: Backlog
icon: 'i-heroicons-question-mark-circle' icon: 'i-lucide-circle-help'
- label: Todo - label: Todo
icon: 'i-heroicons-plus-circle' icon: 'i-lucide-circle-plus'
- label: In Progress - label: In Progress
icon: 'i-heroicons-arrow-up-circle' icon: 'i-lucide-circle-arrow-up'
- label: Done - label: Done
icon: 'i-heroicons-check-circle' icon: 'i-lucide-circle-check'
class: 'w-48' class: 'w-48'
--- ---
:: ::
@@ -403,7 +403,7 @@ external:
- modelValue - modelValue
props: props:
modelValue: 'Backlog' modelValue: 'Backlog'
icon: 'i-heroicons-magnifying-glass' icon: 'i-lucide-search'
size: md size: md
items: items:
- Backlog - Backlog
@@ -416,7 +416,7 @@ props:
### Trailing Icon ### Trailing Icon
Use the `trailing-icon` prop to customize the trailing [Icon](/components/icon). Defaults to `i-heroicons-chevron-down-20-solid`. Use the `trailing-icon` prop to customize the trailing [Icon](/components/icon). Defaults to `i-lucide-chevron-down`.
::component-code ::component-code
--- ---
@@ -430,7 +430,7 @@ external:
- modelValue - modelValue
props: props:
modelValue: 'Backlog' modelValue: 'Backlog'
trailingIcon: 'i-heroicons-arrow-small-down-20-solid' trailingIcon: 'i-lucide-arrow-down'
size: md size: md
items: items:
- Backlog - Backlog
@@ -447,7 +447,7 @@ You can customize this icon globally in your `app.config.ts` under `ui.icons.che
### Selected Icon ### Selected Icon
Use the `selected-icon` prop to customize the icon when an item is selected. Defaults to `i-heroicons-check-20-solid`. Use the `selected-icon` prop to customize the icon when an item is selected. Defaults to `i-lucide-check`.
::component-code ::component-code
--- ---
@@ -461,7 +461,7 @@ external:
- modelValue - modelValue
props: props:
modelValue: 'Backlog' modelValue: 'Backlog'
selectedIcon: 'i-heroicons-fire' selectedIcon: 'i-lucide-flame'
size: md size: md
items: items:
- Backlog - Backlog
@@ -533,7 +533,7 @@ props:
### Loading Icon ### Loading Icon
Use the `loading-icon` prop to customize the loading icon. Defaults to `i-heroicons-arrow-path-20-solid`. Use the `loading-icon` prop to customize the loading icon. Defaults to `i-lucide-refresh-ccw`.
::component-code ::component-code
--- ---
@@ -548,7 +548,7 @@ external:
props: props:
modelValue: 'Backlog' modelValue: 'Backlog'
loading: true loading: true
loadingIcon: 'i-heroicons-arrow-path-rounded-square' loadingIcon: 'i-lucide-repeat-2'
items: items:
- Backlog - Backlog
- Todo - Todo

View File

@@ -340,7 +340,7 @@ external:
- modelValue - modelValue
props: props:
modelValue: 'Backlog' modelValue: 'Backlog'
icon: 'i-heroicons-magnifying-glass' icon: 'i-lucide-search'
size: md size: md
items: items:
- Backlog - Backlog
@@ -353,7 +353,7 @@ props:
### Trailing Icon ### Trailing Icon
Use the `trailing-icon` prop to customize the trailing [Icon](/components/icon). Defaults to `i-heroicons-chevron-down-20-solid`. Use the `trailing-icon` prop to customize the trailing [Icon](/components/icon). Defaults to `i-lucide-chevron-down`.
::component-code ::component-code
--- ---
@@ -367,7 +367,7 @@ external:
- modelValue - modelValue
props: props:
modelValue: 'Backlog' modelValue: 'Backlog'
trailingIcon: 'i-heroicons-arrow-small-down-20-solid' trailingIcon: 'i-lucide-arrow-down'
size: md size: md
items: items:
- Backlog - Backlog
@@ -384,7 +384,7 @@ You can customize this icon globally in your `app.config.ts` under `ui.icons.che
### Selected Icon ### Selected Icon
Use the `selected-icon` prop to customize the icon when an item is selected. Defaults to `i-heroicons-check-20-solid`. Use the `selected-icon` prop to customize the icon when an item is selected. Defaults to `i-lucide-check`.
::component-code ::component-code
--- ---
@@ -398,7 +398,7 @@ external:
- modelValue - modelValue
props: props:
modelValue: 'Backlog' modelValue: 'Backlog'
selectedIcon: 'i-heroicons-fire' selectedIcon: 'i-lucide-flame'
size: md size: md
items: items:
- Backlog - Backlog
@@ -470,7 +470,7 @@ props:
### Loading Icon ### Loading Icon
Use the `loading-icon` prop to customize the loading icon. Defaults to `i-heroicons-arrow-path-20-solid`. Use the `loading-icon` prop to customize the loading icon. Defaults to `i-lucide-refresh-ccw`.
::component-code ::component-code
--- ---
@@ -485,7 +485,7 @@ external:
props: props:
modelValue: 'Backlog' modelValue: 'Backlog'
loading: true loading: true
loadingIcon: 'i-heroicons-arrow-path-rounded-square' loadingIcon: 'i-lucide-repeat-2'
items: items:
- Backlog - Backlog
- Todo - Todo

View File

@@ -130,7 +130,7 @@ The close button is not displayed if the `#content` slot is used as it's a part
### Close Icon ### Close Icon
Use the `close-icon` prop to customize the close button [Icon](/components/icon). Defaults to `i-heroicons-x-mark-20-solid`. Use the `close-icon` prop to customize the close button [Icon](/components/icon). Defaults to `i-lucide-x`.
::component-code ::component-code
--- ---
@@ -139,7 +139,7 @@ ignore:
- title - title
props: props:
title: 'Slideover with close button' title: 'Slideover with close button'
closeIcon: 'i-heroicons-arrow-right' closeIcon: 'i-lucide-arrow-right'
slots: slots:
default: | default: |

View File

@@ -83,8 +83,8 @@ ignore:
- label - label
- defaultValue - defaultValue
props: props:
uncheckedIcon: 'i-heroicons-x-mark' uncheckedIcon: 'i-lucide-x'
checkedIcon: 'i-heroicons-check' checkedIcon: 'i-lucide-check'
defaultValue: true defaultValue: true
label: Check me label: Check me
--- ---
@@ -108,7 +108,7 @@ props:
### Loading Icon ### Loading Icon
Use the `loading-icon` prop to customize the loading icon. Defaults to `i-heroicons-arrow-path-20-solid`. Use the `loading-icon` prop to customize the loading icon. Defaults to `i-lucide-refresh-ccw`.
::component-code ::component-code
--- ---
@@ -117,7 +117,7 @@ ignore:
- defaultValue - defaultValue
props: props:
loading: true loading: true
loadingIcon: 'i-heroicons-arrow-path-rounded-square' loadingIcon: 'i-lucide-repeat-2'
defaultValue: true defaultValue: true
label: Check me label: Check me
--- ---

View File

@@ -33,10 +33,10 @@ external:
props: props:
items: items:
- label: Account - label: Account
icon: 'i-heroicons-user' icon: 'i-lucide-user'
content: 'This is the account content.' content: 'This is the account content.'
- label: Password - label: Password
icon: 'i-heroicons-lock-closed' icon: 'i-lucide-lock'
content: 'This is the password content.' content: 'This is the password content.'
class: 'w-full' class: 'w-full'
--- ---
@@ -60,10 +60,10 @@ props:
content: false content: false
items: items:
- label: Account - label: Account
icon: 'i-heroicons-user' icon: 'i-lucide-user'
content: 'This is the account content.' content: 'This is the account content.'
- label: Password - label: Password
icon: 'i-heroicons-lock-closed' icon: 'i-lucide-lock'
content: 'This is the password content.' content: 'This is the password content.'
class: 'w-full' class: 'w-full'
--- ---
@@ -85,10 +85,10 @@ props:
forceMount: false forceMount: false
items: items:
- label: Account - label: Account
icon: 'i-heroicons-user' icon: 'i-lucide-user'
content: 'This is the account content.' content: 'This is the account content.'
- label: Password - label: Password
icon: 'i-heroicons-lock-closed' icon: 'i-lucide-lock'
content: 'This is the password content.' content: 'This is the password content.'
class: 'w-full' class: 'w-full'
--- ---

View File

@@ -61,7 +61,7 @@ Pass an `icon` field to the `toast.add` method to display an [Icon](/components/
options: options:
- name: 'icon' - name: 'icon'
label: 'icon' label: 'icon'
default: 'i-heroicons-wifi' default: 'i-lucide-wifi'
name: 'toast-icon-example' name: 'toast-icon-example'
--- ---
:: ::
@@ -116,14 +116,14 @@ name: 'toast-close-example'
### Close Icon ### Close Icon
Pass a `closeIcon` field to customize the close button [Icon](/components/icon). Default to `i-heroicons-x-mark-20-solid`. Pass a `closeIcon` field to customize the close button [Icon](/components/icon). Default to `i-lucide-x`.
::component-example ::component-example
--- ---
options: options:
- name: 'closeIcon' - name: 'closeIcon'
label: 'closeIcon' label: 'closeIcon'
default: 'i-heroicons-arrow-right' default: 'i-lucide-arrow-right'
name: 'toast-close-icon-example' name: 'toast-close-icon-example'
--- ---
:: ::

View File

@@ -3,7 +3,7 @@
"name": "@nuxt/ui-docs", "name": "@nuxt/ui-docs",
"type": "module", "type": "module",
"dependencies": { "dependencies": {
"@iconify-json/heroicons": "^1.2.1", "@iconify-json/lucide": "^1.2.11",
"@iconify-json/simple-icons": "^1.2.10", "@iconify-json/simple-icons": "^1.2.10",
"@iconify-json/vscode-icons": "^1.2.2", "@iconify-json/vscode-icons": "^1.2.2",
"@nuxt/content": "3.0.0-alpha.5", "@nuxt/content": "3.0.0-alpha.5",

View File

@@ -1,29 +1,29 @@
<script setup lang="ts"> <script setup lang="ts">
const items = [{ const items = [{
label: 'Getting Started', label: 'Getting Started',
icon: 'i-heroicons-information-circle', icon: 'i-lucide-info',
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.' 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', label: 'Installation',
icon: 'i-heroicons-arrow-down-tray', icon: 'i-lucide-download',
disabled: true, 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.' 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', label: 'Theming',
icon: 'i-heroicons-eye-dropper', icon: 'i-lucide-pipette',
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.' 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', label: 'Layouts',
icon: 'i-heroicons-rectangle-group', icon: 'i-lucide-layout-dashboard',
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.' 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', label: 'Components',
icon: 'i-heroicons-square-3-stack-3d', icon: 'i-lucide-layers-3',
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.' 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', label: 'Utilities',
slot: 'custom' as const, slot: 'custom' as const,
icon: 'i-heroicons-wrench-screwdriver', icon: 'i-lucide-wrench',
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.' 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> </script>

View File

@@ -14,7 +14,7 @@ const actions = (color: string) => [{
const data = { const data = {
title: 'Heads up!', title: 'Heads up!',
description: 'You can change the primary color in your app config.', description: 'You can change the primary color in your app config.',
icon: 'i-heroicons-command-line', icon: 'i-lucide-terminal',
close: true close: true
} }
</script> </script>

View File

@@ -10,7 +10,7 @@ const sizes = Object.keys(theme.variants.size) as Array<keyof typeof theme.varia
<UAvatar v-for="size in sizes" :key="size" src="https://github.com/benjamincanac.png" alt="Benjamin Canac" :size="size" /> <UAvatar v-for="size in sizes" :key="size" src="https://github.com/benjamincanac.png" alt="Benjamin Canac" :size="size" />
</div> </div>
<div class="flex items-center gap-1.5"> <div class="flex items-center gap-1.5">
<UAvatar v-for="size in sizes" :key="size" icon="i-heroicons-photo" :size="size" /> <UAvatar v-for="size in sizes" :key="size" icon="i-lucide-image" :size="size" />
</div> </div>
<div class="flex items-center gap-1.5"> <div class="flex items-center gap-1.5">
<UAvatar v-for="size in sizes" :key="size" alt="Benjamin Canac" :size="size" /> <UAvatar v-for="size in sizes" :key="size" alt="Benjamin Canac" :size="size" />

View File

@@ -14,13 +14,13 @@ const variants = Object.keys(theme.variants.variant) as Array<keyof typeof theme
</UBadge> </UBadge>
</div> </div>
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<UBadge v-for="variant in variants" :key="variant" icon="i-heroicons-rocket-launch" :label="upperFirst(variant)" :variant="variant" /> <UBadge v-for="variant in variants" :key="variant" icon="i-lucide-rocket" :label="upperFirst(variant)" :variant="variant" />
</div> </div>
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<UBadge <UBadge
v-for="variant in variants" v-for="variant in variants"
:key="variant" :key="variant"
icon="i-heroicons-rocket-launch" icon="i-lucide-rocket"
:label="upperFirst(variant)" :label="upperFirst(variant)"
:variant="variant" :variant="variant"
color="neutral" color="neutral"
@@ -40,7 +40,7 @@ const variants = Object.keys(theme.variants.variant) as Array<keyof typeof theme
<UBadge v-for="size in sizes" :key="size" label="Badge" :size="size" /> <UBadge v-for="size in sizes" :key="size" label="Badge" :size="size" />
</div> </div>
<div class="flex items-center gap-2 ms-[-86px]"> <div class="flex items-center gap-2 ms-[-86px]">
<UBadge v-for="size in sizes" :key="size" icon="i-heroicons-rocket-launch" label="Badge" :size="size" /> <UBadge v-for="size in sizes" :key="size" icon="i-lucide-rocket" label="Badge" :size="size" />
</div> </div>
<div class="flex items-center gap-2 ms-[-86px]"> <div class="flex items-center gap-2 ms-[-86px]">
<UBadge v-for="size in sizes" :key="size" :avatar="{ src: 'https://github.com/benjamincanac.png' }" label="Badge" :size="size" /> <UBadge v-for="size in sizes" :key="size" :avatar="{ src: 'https://github.com/benjamincanac.png' }" label="Badge" :size="size" />

View File

@@ -4,7 +4,7 @@ const items = [{
to: '/' to: '/'
}, { }, {
slot: 'dropdown' as const, slot: 'dropdown' as const,
icon: 'i-heroicons-ellipsis-horizontal', icon: 'i-lucide-ellipsis',
children: [{ children: [{
label: 'Documentation' label: 'Documentation'
}, { }, {

View File

@@ -47,13 +47,13 @@ function onClick() {
</UButton> </UButton>
</div> </div>
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<UButton v-for="variant in variants" :key="variant" icon="i-heroicons-rocket-launch" :label="upperFirst(variant)" :variant="variant" /> <UButton v-for="variant in variants" :key="variant" icon="i-lucide-rocket" :label="upperFirst(variant)" :variant="variant" />
</div> </div>
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<UButton <UButton
v-for="variant in variants" v-for="variant in variants"
:key="variant" :key="variant"
icon="i-heroicons-rocket-launch" icon="i-lucide-rocket"
:label="upperFirst(variant)" :label="upperFirst(variant)"
:variant="variant" :variant="variant"
color="neutral" color="neutral"
@@ -73,7 +73,7 @@ function onClick() {
<UButton v-for="size in sizes" :key="size" label="Button" :size="size" /> <UButton v-for="size in sizes" :key="size" label="Button" :size="size" />
</div> </div>
<div class="flex items-center gap-2 ms-[-171px]"> <div class="flex items-center gap-2 ms-[-171px]">
<UButton v-for="size in sizes" :key="size" icon="i-heroicons-rocket-launch" label="Button" :size="size" /> <UButton v-for="size in sizes" :key="size" icon="i-lucide-rocket" label="Button" :size="size" />
</div> </div>
<div class="flex items-center gap-2 ms-[-171px]"> <div class="flex items-center gap-2 ms-[-171px]">
<UButton v-for="size in sizes" :key="size" :avatar="{ src: 'https://github.com/benjamincanac.png' }" label="Button" :size="size" /> <UButton v-for="size in sizes" :key="size" :avatar="{ src: 'https://github.com/benjamincanac.png' }" label="Button" :size="size" />
@@ -82,7 +82,7 @@ function onClick() {
<UButton <UButton
v-for="size in sizes" v-for="size in sizes"
:key="size" :key="size"
icon="i-heroicons-rocket-launch" icon="i-lucide-rocket"
label="Square" label="Square"
square square
:size="size" :size="size"
@@ -99,7 +99,7 @@ function onClick() {
/> />
</div> </div>
<div class="flex items-center gap-2 ms-[-68px]"> <div class="flex items-center gap-2 ms-[-68px]">
<UButton v-for="size in sizes" :key="size" icon="i-heroicons-rocket-launch" :size="size" /> <UButton v-for="size in sizes" :key="size" icon="i-lucide-rocket" :size="size" />
</div> </div>
<div class="flex items-center gap-2 ms-[-68px]"> <div class="flex items-center gap-2 ms-[-68px]">
<UButton <UButton
@@ -112,10 +112,10 @@ function onClick() {
/> />
</div> </div>
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<UButton icon="i-heroicons-rocket-launch" trailing-icon="i-heroicons-chevron-down-20-solid" label="Block" block /> <UButton icon="i-lucide-rocket" trailing-icon="i-lucide-chevron-down" label="Block" block />
</div> </div>
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<UButton icon="i-heroicons-cloud-arrow-down" label="Button" class="group" :ui="{ leadingIcon: 'group-hover:animate-pulse' }" /> <UButton icon="i-lucide-cloud-download" label="Button" class="group" :ui="{ leadingIcon: 'group-hover:animate-pulse' }" />
</div> </div>
</div> </div>
</template> </template>

View File

@@ -12,7 +12,7 @@ const checked = ref(true)
<UCheckbox v-model="checked" label="Primary" /> <UCheckbox v-model="checked" label="Primary" />
<UCheckbox label="Neutral" color="neutral" :default-value="true" /> <UCheckbox label="Neutral" color="neutral" :default-value="true" />
<UCheckbox label="Error" color="error" :model-value="true" /> <UCheckbox label="Error" color="error" :model-value="true" />
<UCheckbox label="Icon" icon="i-heroicons-heart-solid" :model-value="true" /> <UCheckbox label="Icon" icon="i-lucide-heart" :model-value="true" />
<UCheckbox label="Default value" :default-value="true" /> <UCheckbox label="Default value" :default-value="true" />
<UCheckbox label="Indeterminate" indeterminate /> <UCheckbox label="Indeterminate" indeterminate />
<UCheckbox label="Required" required /> <UCheckbox label="Required" required />

View File

@@ -6,11 +6,11 @@ const positions = Object.keys(theme.variants.position) as Array<keyof typeof the
const items = [{ const items = [{
name: 'messages', name: 'messages',
icon: 'i-heroicons-chat-bubble-oval-left', icon: 'i-lucide-message-circle',
count: 3 count: 3
}, { }, {
name: 'notifications', name: 'notifications',
icon: 'i-heroicons-bell', icon: 'i-lucide-bell',
count: 0 count: 0
}] }]
</script> </script>
@@ -19,7 +19,7 @@ const items = [{
<div class="flex flex-col gap-4"> <div class="flex flex-col gap-4">
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<UChip v-for="position in positions" :key="position" :position="position"> <UChip v-for="position in positions" :key="position" :position="position">
<UButton icon="i-heroicons-inbox" color="neutral" variant="subtle" /> <UButton icon="i-lucide-inbox" color="neutral" variant="subtle" />
</UChip> </UChip>
</div> </div>

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