diff --git a/docs/app/components/FrameworkSelect.vue b/docs/app/components/FrameworkSelect.vue index e94df09a..6fba120b 100644 --- a/docs/app/components/FrameworkSelect.vue +++ b/docs/app/components/FrameworkSelect.vue @@ -22,7 +22,7 @@ watch(framework, () => { indicator: 'bg-(--ui-bg)', trigger: 'px-1 data-[state=active]:text-(--ui-text-highlighted)' }" - size="sm" + size="xs" @update:model-value="(framework = $event as string)" /> diff --git a/docs/app/components/ModuleSelect.vue b/docs/app/components/ModuleSelect.vue index 04ef1373..39e2e68c 100644 --- a/docs/app/components/ModuleSelect.vue +++ b/docs/app/components/ModuleSelect.vue @@ -22,7 +22,7 @@ watch(module, () => { indicator: 'bg-(--ui-bg)', trigger: 'px-1 data-[state=active]:text-(--ui-text-highlighted)' }" - size="sm" + size="xs" @update:model-value="(module = $event as string)" /> diff --git a/docs/app/composables/useContentNavigation.ts b/docs/app/composables/useContentNavigation.ts index 59c0e921..df0c0ebe 100644 --- a/docs/app/composables/useContentNavigation.ts +++ b/docs/app/composables/useContentNavigation.ts @@ -14,10 +14,25 @@ function processNavigationItem(item: ContentNavigationItem, parent?: ContentNavi } } +function processNavigationItemIcon(item: ContentNavigationItem) { + let icon = item.icon + if (item.path.startsWith('/components')) { + icon = item.module === 'ui-pro' ? 'i-lucide-panels-top-left' : 'i-lucide-box' + } + if (item.path.startsWith('/composables')) { + icon = 'i-lucide-square-function' + } + return { + ...item, + icon + } +} + export const useContentNavigation = (navigation: Ref) => { const { framework, module } = useSharedData() const mappedNavigation = computed(() => navigation.value?.map(item => processNavigationItem(item))) + const filteredNavigation = computed(() => mappedNavigation.value?.map((item) => { return { ...item, @@ -29,12 +44,15 @@ export const useContentNavigation = (navigation: Ref mappedNavigation.value?.map(item => ({ + ...item, + children: item.children?.map((child: any) => ({ ...child, icon: undefined })) + }))), filteredNavigation } } diff --git a/docs/app/pages/pro/activate.vue b/docs/app/pages/pro/activate.vue index 3695c6f2..a0877a26 100644 --- a/docs/app/pages/pro/activate.vue +++ b/docs/app/pages/pro/activate.vue @@ -72,7 +72,7 @@ onMounted(() => { @@ -103,7 +103,7 @@ defineOgImageComponent('Docs', { variant="naked" class="overflow-hidden" > -
+
diff --git a/docs/app/pages/pro/pricing.vue b/docs/app/pages/pro/pricing.vue index 53da6c17..457ae033 100644 --- a/docs/app/pages/pro/pricing.vue +++ b/docs/app/pages/pro/pricing.vue @@ -23,7 +23,7 @@ defineOgImageComponent('Docs', { @@ -98,7 +98,7 @@ defineOgImageComponent('Docs', { diff --git a/docs/content/1.getting-started/1.index.md b/docs/content/1.getting-started/1.index.md index 2b694db9..169eba27 100644 --- a/docs/content/1.getting-started/1.index.md +++ b/docs/content/1.getting-started/1.index.md @@ -2,6 +2,7 @@ navigation.title: Introduction title: Nuxt UI v3 description: 'A comprehensive, Nuxt-integrated UI library providing a rich set of fully-styled, accessible and highly customizable components for building modern web applications.' +navigation.icon: i-lucide-house --- We're thrilled to introduce this major update to our UI library, bringing significant improvements and powerful new features. Nuxt UI v3 represents a leap forward in creating robust, accessible, and highly customizable user interfaces for Nuxt applications. diff --git a/docs/content/1.getting-started/2.installation/1.nuxt.md b/docs/content/1.getting-started/2.installation/1.nuxt.md index 71e415c2..28dc9e59 100644 --- a/docs/content/1.getting-started/2.installation/1.nuxt.md +++ b/docs/content/1.getting-started/2.installation/1.nuxt.md @@ -7,6 +7,7 @@ links: - label: Playground to: https://codesandbox.io/p/devbox/nuxt-ui3-n3sxks icon: i-lucide-codesandbox +navigation.icon: i-lucide-square-play --- ::callout{to="/getting-started/installation/vue" icon="i-logos-vue" class="hidden"} diff --git a/docs/content/1.getting-started/2.installation/2.vue.md b/docs/content/1.getting-started/2.installation/2.vue.md index af743b6f..cd7481f5 100644 --- a/docs/content/1.getting-started/2.installation/2.vue.md +++ b/docs/content/1.getting-started/2.installation/2.vue.md @@ -7,6 +7,7 @@ links: - label: Playground to: https://codesandbox.io/p/devbox/nuxt-ui3-vue-4h5gqn icon: i-lucide-codesandbox +navigation.icon: i-lucide-square-play --- ::callout{to="/getting-started/installation/nuxt" icon="i-logos-nuxt-icon" class="hidden"} diff --git a/docs/content/1.getting-started/3.theme.md b/docs/content/1.getting-started/3.theme.md index 30bf491f..c6208fd7 100644 --- a/docs/content/1.getting-started/3.theme.md +++ b/docs/content/1.getting-started/3.theme.md @@ -1,6 +1,7 @@ --- title: Theme description: 'Learn how to customize Nuxt UI components using Tailwind CSS v4, CSS variables and the Tailwind Variants API for powerful and flexible theming.' +navigation.icon: i-lucide-palette --- ## Tailwind CSS diff --git a/docs/content/1.getting-started/4.icons/1.nuxt.md b/docs/content/1.getting-started/4.icons/1.nuxt.md index bfc10539..a2157008 100644 --- a/docs/content/1.getting-started/4.icons/1.nuxt.md +++ b/docs/content/1.getting-started/4.icons/1.nuxt.md @@ -11,6 +11,7 @@ links: to: https://github.com/nuxt/icon target: _blank icon: i-simple-icons-github +navigation.icon: i-lucide-smile --- ::callout{to="/getting-started/icons/vue" icon="i-logos-vue" class="hidden"} diff --git a/docs/content/1.getting-started/4.icons/2.vue.md b/docs/content/1.getting-started/4.icons/2.vue.md index a23011b4..3c3071d6 100644 --- a/docs/content/1.getting-started/4.icons/2.vue.md +++ b/docs/content/1.getting-started/4.icons/2.vue.md @@ -7,6 +7,7 @@ links: to: https://iconify.design/ target: _blank icon: i-simple-icons-iconify +navigation.icon: i-lucide-smile --- ::callout{to="/getting-started/icons/nuxt" icon="i-logos-nuxt-icon" class="hidden"} diff --git a/docs/content/1.getting-started/5.fonts.md b/docs/content/1.getting-started/5.fonts.md index 43182d29..25f6ea57 100644 --- a/docs/content/1.getting-started/5.fonts.md +++ b/docs/content/1.getting-started/5.fonts.md @@ -7,6 +7,7 @@ links: to: https://github.com/nuxt/fonts target: _blank icon: i-simple-icons-github +navigation.icon: i-lucide-a-large-small --- ## Usage diff --git a/docs/content/1.getting-started/6.color-mode/1.nuxt.md b/docs/content/1.getting-started/6.color-mode/1.nuxt.md index 94d97fc1..b58bc52b 100644 --- a/docs/content/1.getting-started/6.color-mode/1.nuxt.md +++ b/docs/content/1.getting-started/6.color-mode/1.nuxt.md @@ -7,6 +7,7 @@ links: to: https://github.com/nuxt-modules/color-mode target: _blank icon: i-simple-icons-github +navigation.icon: i-lucide-sun-moon --- ::callout{to="/getting-started/color-mode/vue" icon="i-logos-vue" class="hidden"} diff --git a/docs/content/1.getting-started/6.color-mode/2.vue.md b/docs/content/1.getting-started/6.color-mode/2.vue.md index 6c7a96a1..6c0c1ca8 100644 --- a/docs/content/1.getting-started/6.color-mode/2.vue.md +++ b/docs/content/1.getting-started/6.color-mode/2.vue.md @@ -2,6 +2,7 @@ title: Color Mode description: 'Nuxt UI integrates with VueUse to allow for easy switching between light and dark themes.' framework: vue +navigation.icon: i-lucide-sun-moon --- ::callout{to="/getting-started/color-mode/nuxt" icon="i-logos-nuxt-icon" class="hidden"} diff --git a/docs/content/1.getting-started/7.i18n/1.nuxt.md b/docs/content/1.getting-started/7.i18n/1.nuxt.md index ace5b212..39b6f9b7 100644 --- a/docs/content/1.getting-started/7.i18n/1.nuxt.md +++ b/docs/content/1.getting-started/7.i18n/1.nuxt.md @@ -2,6 +2,7 @@ title: Internationalization (i18n) description: 'Learn how to internationalize your Nuxt app with multi-directional support (LTR/RTL).' framework: nuxt +navigation.icon: i-lucide-languages --- ::callout{to="/getting-started/i18n/vue" icon="i-logos-vue" class="hidden"} diff --git a/docs/content/1.getting-started/7.i18n/2.vue.md b/docs/content/1.getting-started/7.i18n/2.vue.md index e1440d6f..4b462033 100644 --- a/docs/content/1.getting-started/7.i18n/2.vue.md +++ b/docs/content/1.getting-started/7.i18n/2.vue.md @@ -2,6 +2,7 @@ title: Internationalization (i18n) description: 'Learn how to internationalize your Vue app with multi-directional support (LTR/RTL).' framework: vue +navigation.icon: i-lucide-languages --- ::callout{to="/getting-started/i18n/nuxt" icon="i-logos-nuxt-icon" class="hidden"} diff --git a/playground-vue/src/app.vue b/playground-vue/src/app.vue index 6a679efe..e43a65d2 100644 --- a/playground-vue/src/app.vue +++ b/playground-vue/src/app.vue @@ -28,10 +28,12 @@ const components = [ 'button', 'button-group', 'card', + 'calendar', 'carousel', 'checkbox', 'chip', 'collapsible', + 'color-picker', 'context-menu', 'command-palette', 'drawer', @@ -40,6 +42,7 @@ const components = [ 'form-field', 'input', 'input-menu', + 'input-number', 'kbd', 'link', 'modal', @@ -56,8 +59,10 @@ const components = [ 'skeleton', 'slideover', 'slider', + 'stepper', 'switch', 'tabs', + 'table', 'textarea', 'toast', 'tooltip' diff --git a/playground/app/pages/components/modal.vue b/playground/app/pages/components/modal.vue index 3ca517ce..a1195993 100644 --- a/playground/app/pages/components/modal.vue +++ b/playground/app/pages/components/modal.vue @@ -54,7 +54,7 @@ function openModal() { - + diff --git a/playground/app/pages/components/slideover.vue b/playground/app/pages/components/slideover.vue index 44c1a9aa..3fc79848 100644 --- a/playground/app/pages/components/slideover.vue +++ b/playground/app/pages/components/slideover.vue @@ -98,7 +98,7 @@ function openSlideover() { - +