Compare commits

...

14 Commits

Author SHA1 Message Date
941f5d183b 准备投入生产环节 2025-07-28 21:11:37 +08:00
c1d4963395 更改图标 2025-07-28 20:16:21 +08:00
a9a6659d78 替换所有simple-icons 2025-07-28 20:10:07 +08:00
c40cf6ea42 替换所有 simple-icons 2025-07-28 20:09:54 +08:00
d30e76c41a 将i-lucide都改为lucide本地库 2025-07-28 13:38:45 +08:00
29a41504d0 修改ETabs样式,增加icon组件 2025-07-28 13:36:06 +08:00
35d7e8aa8b 添加ETabs 2025-07-28 13:21:18 +08:00
e4d75038b9 完成标签头设置 2025-07-28 13:07:27 +08:00
bc16414c69 修复RM组件警告 2025-07-28 12:19:33 +08:00
378c5f3658 修改文件树插件 添加代码游乐场插件 2025-07-28 12:13:42 +08:00
abc2800b31 新增组件 2025-07-28 11:09:56 +08:00
4daea5dfdd 完成ButtonLink 2025-07-27 18:41:50 +08:00
3f99fec396 修改首页目录表格样式 2025-07-27 17:24:02 +08:00
e3707dab5c 初步添加FileTree功能 2025-07-27 01:41:14 +08:00
66 changed files with 1844 additions and 328 deletions

View File

@@ -1,5 +0,0 @@
# Production license for @nuxt/ui-pro, get one at https://ui.nuxt.com/pro/purchase
NUXT_UI_PRO_LICENSE=
# Public URL, used for OG Image when running nuxt generate
NUXT_PUBLIC_SITE_URL=

View File

@@ -262,7 +262,7 @@ export default defineAppConfig({
search: true,
colorMode: true,
links: [{
'icon': 'i-simple-icons-github',
'icon': 'simple-icons-github',
'to': 'https://github.com/nuxt-ui-pro/docs',
'target': '_blank',
'aria-label': 'GitHub'
@@ -272,22 +272,22 @@ export default defineAppConfig({
credits: `Copyright © ${new Date().getFullYear()} Estel. All rights reserved.`,
colorMode: false,
links: [{
'icon': 'i-simple-icons-nuxtdotjs',
'icon': 'simple-icons-nuxtdotjs',
'to': 'https://nuxt.com',
'target': '_blank',
'aria-label': 'Nuxt Website'
}, {
'icon': 'i-simple-icons-discord',
'icon': 'simple-icons-discord',
'to': 'https://discord.com/invite/ps2h6QT',
'target': '_blank',
'aria-label': 'Nuxt UI on Discord'
}, {
'icon': 'i-simple-icons-x',
'icon': 'simple-icons-x',
'to': 'https://x.com/nuxt_js',
'target': '_blank',
'aria-label': 'Nuxt on X'
}, {
'icon': 'i-simple-icons-github',
'icon': 'simple-icons-github',
'to': 'https://github.com/nuxt/ui',
'target': '_blank',
'aria-label': 'Nuxt UI on GitHub'
@@ -299,17 +299,17 @@ export default defineAppConfig({
title: 'Community',
edit: 'https://github.com/nuxt-ui-pro/docs/edit/main/content',
links: [{
icon: 'i-lucide-star',
icon: 'lucide-star',
label: 'GitHub',
to: 'https://github.com/estel-li',
target: '_blank'
}, {
icon: 'i-lucide-home',
icon: 'lucide-home',
label: '稷维科技',
to: 'https://www.xajiwei.com',
target: '_blank'
}, {
icon: 'i-simple-icons-nuxtdotjs',
icon: 'simple-icons-nuxtdotjs',
label: '个人博客',
to: 'https://lijue.me',
target: '_blank'

View File

@@ -48,7 +48,7 @@ const handleLoginRegister = (type: "login" | "register") => {
<template #right>
<UContentSearchButton class="lg:hidden" />
<UColorModeSwitch />
<UColorModeButton />
<button
class=" p-2 rounded-md text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors"
title="页面设置" @click="isSettingsOpen = !isSettingsOpen">
@@ -64,9 +64,9 @@ const handleLoginRegister = (type: "login" | "register") => {
<UButton
color="neutral"
variant="ghost"
to="https://github.com/nuxt/ui"
to="https://github.com/estel-li"
target="_blank"
icon="i-simple-icons-github"
icon="simple-icons-github"
aria-label="GitHub"
/>
</UTooltip>

View File

@@ -25,7 +25,7 @@ const directoryNavigation = computed(() => {
return {
title: item.title,
path: item.path,
icon: (item.icon as string) || 'i-lucide-file-text',
icon: (item.icon as string) || 'lucide-file-text',
active: Boolean(item.active)
}
}
@@ -34,7 +34,7 @@ const directoryNavigation = computed(() => {
return {
title: item.title,
path: item.path,
icon: (item.icon as string) || 'i-lucide-folder',
icon: (item.icon as string) || 'lucide-folder',
active: Boolean(item.active),
// 不包含 children这样就不会展开显示子项
children: []

View File

@@ -1,18 +1,28 @@
<template>
<div class="w-full bg-gray-50 dark:bg-gray-900 min-h-screen mt-4">
<!-- 响应式卡片网格 -->
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 max-w-8xl mx-auto">
<!--
这个div使用了Tailwind CSS的类来实现响应式的卡片网格布局
- grid将容器设置为网格布局
- grid-cols-1在小屏幕下每行显示1列
- sm:grid-cols-2在中等屏幕sm及以上每行显示2列
- lg:grid-cols-3在大屏幕lg及以上每行显示3列
- gap-4网格项之间有统一的间距
- max-w-8xl设置最大宽度为8xl防止内容过宽
- mx-auto左右自动外边距使网格居中显示
-->
<div class="grid grid-cols-1 xs:grid-cols-2 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-3 xl:grid-cols-3 2xl:grid-cols-4 gap-4 w-full mx-auto">
<div v-for="item in firstLevelItems" :key="item.path"
class="bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-5 sm:p-6 shadow-sm hover:shadow-md transition-all duration-200 cursor-pointer"
@click="navigateTo(item.path)">
<!-- 卡片头部 -->
<div class="flex items-center justify-between mb-1">
<h2 class="text-xl sm:text-xl lg:text-2xl font-bold text-gray-900 dark:text-white leading-tight">
<h2 class="font-sans text-xl sm:text-xl lg:text-2xl font-bold text-gray-900 dark:text-white leading-tight">
{{ item.title }}
</h2>
<span class="text-sm sm:text-base lg:text-lg text-gray-600 dark:text-gray-400 font-normal">
<sum class="text-primary mr-0.3">{{ getChildrenCount(item) }}</sum>
<span class="text-primary mr-0.3">{{ getChildrenCount(item) }}</span>
</span>
</div>
@@ -26,10 +36,10 @@
border-b border-gray-200 dark:border-gray-700 pt-2">
<div class="flex items-center flex-1 min-w-0 pl-1 ">
<Icon :name="child.icon || 'i-lucide-file-text'" class="mr-2 text-gray-400" size="14" />
<span class="text-base font-sans">{{ child.title }}</span>
<UIcon :name="(typeof child.icon === 'string' ? child.icon : 'lucide-file-text')" class="mr-2 text-gray-400" size="14" />
<span class="text-base font-medium font-sans">{{ child.title }}</span>
</div>
<Icon name="i-lucide-chevron-right" class="text-gray-400 flex-shrink-0 ml-2" size="16" />
<UIcon name="lucide-chevron-right" class="text-gray-400 flex-shrink-0 ml-2" size="16" />
</div>
</div>
</div>
@@ -50,7 +60,7 @@ const firstLevelItems = computed(() => {
.map(item => ({
...item,
description: item.description,
icon: item.icon || 'i-lucide-book-open'
icon: item.icon || 'lucide-book-open'
}));
});

View File

@@ -30,7 +30,7 @@
<UButton
label="Docs"
variant="subtle"
trailing-icon="i-lucide-chevron-down"
trailing-icon="lucide-chevron-down"
size="xs"
class="-mb-[6px] font-semibold rounded-full truncate"
:class="[open && 'bg-primary/15']"

View File

@@ -19,7 +19,7 @@
<UButton
color="neutral"
variant="ghost"
icon="i-lucide-x"
icon="lucide-x"
square
@click="$emit('close')"
/>

View File

@@ -2,13 +2,13 @@
const providers = ref([
{
label: 'Google',
icon: 'i-simple-icons-google',
icon: 'simple-icons-google',
color: 'neutral',
variant: 'subtle'
},
{
label: 'GitHub',
icon: 'i-simple-icons-github',
icon: 'simple-icons-github',
color: 'neutral',
variant: 'subtle'
}
@@ -33,11 +33,11 @@ const fields = ref([
class="max-w-md"
title="登录"
description="使用社交账号或邮箱登录"
icon="i-lucide-user"
icon="lucide-user"
:fields="fields"
:providers="providers"
:separator="{
icon: 'i-lucide-user'
icon: 'lucide-user'
}"
/>
</template>

View File

@@ -2,13 +2,13 @@
const providers = ref([
{
label: 'Google',
icon: 'i-simple-icons-google',
icon: 'simple-icons-google',
color: 'neutral',
variant: 'subtle'
},
{
label: 'GitHub',
icon: 'i-simple-icons-github',
icon: 'simple-icons-github',
color: 'neutral',
variant: 'subtle'
}
@@ -32,11 +32,11 @@ const fields = ref([
class="max-w-md"
title="Login"
description="Enter your credentials to access your account."
icon="i-lucide-user"
icon="lucide-user"
:fields="fields"
:providers="providers"
:separator="{
icon: 'i-lucide-user'
icon: 'lucide-user'
}"
/>
</template>

View File

@@ -1,22 +1,25 @@
<template>
<div class="flex flex-row items-center mt-2 mb-2">
<NuxtLink :to="to || href" :target="(blank && '_blank') || target">
<UButton :variant="variant" :size="size">
<Icon v-if="leftIcon" :name="leftIcon" class="mr-1" />
<ContentSlot unwrap="p" />
<Icon v-if="rightIcon" :name="rightIcon" class="ml-1" />
<UButton :variant="variant" :size="size" :icon="icon" :trailing-icon="trailingIcon" class="min-h-10 max-h-12">
<slot/>
</UButton>
</NuxtLink>
</div>
</template>
<script setup lang="ts">
type Target = '_blank' | '_parent' | '_self' | '_top' | (string & object) | null | undefined;
defineProps<{
variant?: 'solid' | 'outline' | 'ghost' | 'link' | 'soft';
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
leftIcon?: string;
rightIcon?: string;
color?: 'gray' | 'red' | 'orange' | 'amber' | 'yellow' | 'lime' | 'green' | 'emerald' | 'teal' | 'cyan' | 'sky' | 'blue' | 'indigo' | 'violet' | 'purple' | 'fuchsia' | 'pink' | 'rose' | 'white' | 'black';
icon?: string;
to?: string;
href?: string;
target?: string;
target?: Target;
trailingIcon?: string;
blank?: boolean;
}>();
</script>

View File

@@ -0,0 +1,33 @@
<script setup>
const colorMode = useColorMode()
const isLight = computed({
get() {
return colorMode.value === 'light'
},
set(_isLight) {
colorMode.preference = _isLight ? 'light' : 'dark'
},
})
</script>
<template>
<ClientOnly>
<div class="flex-1 flex items-center justify-center">
<USwitch
v-model="isLight"
unchecked-icon="lucide-moon"
checked-icon="lucide-sun"
aria-label="Toggle color mode"
size="xl"
color="neutral"
:ui="{
base: 'w-70 h-35 rounded-lg rotate-90 data-[state=checked]:bg-[var(--ui-color-neutral-200)]',
thumb: 'data-[state=checked]:translate-x-35 data-[state=checked]:rtl:-translate-x-35 rounded-lg size-34',
icon: 'rotate-270 size-8',
}"
@click="isDark = !isDark"
/>
</div>
</ClientOnly>
</template>

View File

@@ -0,0 +1,40 @@
<template>
<UPageCard :title="title" :description="description" :spotlight="spotlight" :icon="icon" class="">
<slot/>
<NuxtImg
v-if="img"
:src="img"
class="w-full"
/>
<span> {{ content }} </span>
</UPageCard>
</template>
<!-- ::card
---
img: https://lijue-me.oss-cn-chengdu.aliyuncs.com/20250727184358217.png
---
#title
Image Card
#content
Beautifully designed **Nuxt Content** template with **shadcn-vue**. _Customizable. Compatible. Open Source._
:: -->
<script setup lang="ts">
const {
content="",
} =defineProps<{
title?: string;
content?: string;
img?: string;
icon?: string;
description?: string;
spotlight?:boolean;
slot?:string;
}>();
</script>

View File

@@ -0,0 +1,41 @@
<template>
<UTabs :items="tabItems" class="w-full" :unmount-on-hide="false" variant="link">
<template v-for="item in tabItems" #[item.slot]="{ item: slotItem }">
<div class="mt-4">
<component :is="getSlotContent(slotItem)" />
</div>
</template>
</UTabs>
</template>
<script setup lang="ts">
import type { TabsItem } from '@nuxt/ui'
const slots = useSlots()
const slotContents = ref<Record<string, any>>({})
const tabItems = computed(() => {
const defaultSlots = slots.default?.() || []
return defaultSlots
.filter(slot => slot.type === 'div' && slot.props)
.map((slot, index) => {
const label = slot.props?.label || `Tab ${index + 1}`
const icon = slot.props?.icon
const slotName = `tab-${index}`
slotContents.value[slotName] = slot
return {
label,
icon,
slot: slotName
} satisfies TabsItem
})
})
function getSlotContent(item: TabsItem) {
if (!item.slot) return null
return slotContents.value[item.slot]
}
</script>

View File

@@ -0,0 +1,186 @@
<template>
<UPage class="mt-4 mb-4 bg-white dark:bg-gray-900 rounded-xl border border-gray-300 dark:border-gray-700">
<div v-if="title" class="flex items-center font-mono text-base m-3 text-gray-700 dark:text-gray-300 rounded-xl ">
<Icon v-if="icon" :name="icon" class="mr-2" size="20" />
<span>{{ title }}</span>
</div>
<div class="bg-gray-50 dark:bg-gray-800 rounded border-t border-gray-200 dark:border-gray-700 p-3">
<ClientOnly>
<div class="space-y-1">
<div
v-for="item in parsedTree"
:key="item.title"
class="file-tree-item"
>
<FileTreeItem
:item="item"
:level="0"
:show-arrow="showArrow"
:show-icon="showIcon"
/>
</div>
</div>
<!-- 服务端渲染时的占位符 -->
<template #fallback>
<div class="space-y-1">
<div
v-for="item in parsedTree"
:key="item.title"
class="file-tree-item"
>
<div class="flex items-center py-1 px-2">
<div class="flex items-center" :style="{ marginLeft: '0px' }">
<Icon
v-if="showIcon"
:name="item.icon || 'lucide-file'"
class="mr-2 text-gray-500 w-4 h-4"
:class="{
'text-green-500': item.icon?.includes('vue'),
'text-blue-500': item.icon?.includes('typescript') || item.icon?.includes('javascript'),
'text-orange-500': item.icon?.includes('markdown'),
'text-yellow-500': item.icon?.includes('json')
}"
/>
<span
class="text-sm font-mono"
:class="{
'font-semibold': item.isFolder,
'underline': item.highlighted
}"
>
{{ item.title }}
</span>
</div>
</div>
</div>
</div>
</template>
</ClientOnly>
</div>
</UPage>
</template>
<script setup lang="ts">
type InputTreeItem = string | {
[key: string]: InputTreeItem[];
};
type FileTreeItemDiff = 'none' | 'addition' | 'deletion';
interface FileTreeItem {
title: string;
icon?: string;
children?: FileTreeItem[];
highlighted?: boolean;
diff?: FileTreeItemDiff;
isFolder?: boolean;
}
const {
tree,
autoSlash = true,
showArrow = false,
showIcon = true,
} = defineProps<{
title?: string;
icon?: string;
autoSlash?: boolean;
showArrow?: boolean;
showIcon?: boolean;
tree: InputTreeItem[];
}>();
// 默认图标映射
const defaultIcons = {
vue: 'simple-icons-vuedotjs',
ts: 'simple-icons-typescript',
js: 'simple-icons-javascript',
md: 'simple-icons-markdown',
json: 'simple-icons-json',
folder: 'lucide-folder',
file: 'lucide-file'
};
function getIcon(filename: string, type: 'folder' | 'file'): string {
if (filename === '...') return 'lucide-more-horizontal';
if (filename.endsWith('/')) return defaultIcons.folder;
const parts = filename.split('.');
const extension = parts.length > 1 ? parts[parts.length - 1]?.toLowerCase() || '' : '';
// 根据扩展名返回对应图标
switch (extension) {
case 'vue': return defaultIcons.vue;
case 'ts': return defaultIcons.ts;
case 'js': return defaultIcons.js;
case 'md': return defaultIcons.md;
case 'json': return defaultIcons.json;
default: return type === 'file' ? defaultIcons.file : defaultIcons.folder;
}
}
function getItem(key: string, type: 'folder' | 'file', children?: InputTreeItem[]): FileTreeItem {
let title = key;
let highlighted = false;
if (title.startsWith('^') && title.endsWith('^')) {
title = title.substring(1, title.length - 1);
highlighted = true;
}
let diff: FileTreeItemDiff = 'none';
if (title.startsWith('+')) diff = 'addition';
else if (title.startsWith('-')) diff = 'deletion';
if (type === 'file') {
return {
title,
icon: getIcon(title, 'file'),
highlighted,
diff,
isFolder: false
};
} else {
return {
title: `${title}${autoSlash ? '/' : ''}`,
icon: getIcon(title, 'folder'),
children: children ? getTree(children) : undefined,
highlighted,
diff,
isFolder: true
};
}
}
function getTree(tree: InputTreeItem[]): FileTreeItem[] {
const res: FileTreeItem[] = [];
for (const item of tree) {
if (typeof item === 'string') {
res.push(getItem(item, 'file'));
} else if (typeof item === 'object' && item !== null) {
for (const key of Object.keys(item)) {
const children = (item as Record<string, InputTreeItem[]>)[key];
if (children) {
res.push(getItem(key, 'folder', children));
}
}
}
}
return res;
}
const parsedTree = computed(() => {
return getTree(tree);
});
// 使用 provide/inject 来管理展开状态
const expandedState = ref(new Set<string>());
provide('expandedState', expandedState);
</script>

View File

@@ -0,0 +1,108 @@
<template>
<div class="file-tree-item">
<div
class="flex items-center py-1 px-2 rounded hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer transition-colors"
:class="{
'bg-blue-50 dark:bg-blue-900/20': item.highlighted,
'text-green-600 dark:text-green-400': item.diff === 'addition',
'text-red-600 dark:text-red-400': item.diff === 'deletion'
}"
@click="toggleFolder"
>
<!-- 缩进 -->
<div class="flex items-center" :style="{ marginLeft: level * 16 + 'px' }">
<!-- 箭头仅文件夹且有子项时显示 -->
<Icon
v-if="showArrow && item.isFolder && item.children && item.children.length > 0"
:name="isExpanded ? 'lucide-chevron-down' : 'lucide-chevron-right'"
class="mr-1 text-gray-400 w-4 h-4 transition-transform"
:class="{ 'rotate-90': isExpanded }"
/>
<div v-else-if="showArrow" class="w-4 mr-1"></div>
<!-- 图标 -->
<Icon
v-if="showIcon"
:name="item.icon || 'lucide-file'"
class="mr-2 text-gray-500 w-4 h-4"
:class="{
'text-green-500': item.icon?.includes('vue'),
'text-blue-500': item.icon?.includes('typescript') || item.icon?.includes('javascript'),
'text-orange-500': item.icon?.includes('markdown'),
'text-yellow-500': item.icon?.includes('json')
}"
/>
<!-- 标题 -->
<span
class="text-sm font-mono"
:class="{
'font-semibold': item.isFolder,
'underline': item.highlighted
}"
>
{{ item.title }}
</span>
</div>
</div>
<!-- 子项 -->
<div v-if="item.children && item.children.length > 0 && isExpanded" class="ml-4">
<FileTreeItem
v-for="child in item.children"
:key="child.title"
:item="child"
:level="level + 1"
:show-arrow="showArrow"
:show-icon="showIcon"
/>
</div>
</div>
</template>
<script setup lang="ts">
type FileTreeItemDiff = 'none' | 'addition' | 'deletion';
interface FileTreeItem {
title: string;
icon?: string;
children?: FileTreeItem[];
highlighted?: boolean;
diff?: FileTreeItemDiff;
isFolder?: boolean;
}
const props = defineProps<{
item: FileTreeItem;
level: number;
showArrow: boolean;
showIcon: boolean;
}>();
const expandedState = inject('expandedState', ref(new Set<string>()));
const itemKey = computed(() => `${props.item.title}-${props.level}`);
const isExpanded = computed({
get: () => expandedState.value.has(itemKey.value),
set: (value: boolean) => {
if (value) {
expandedState.value.add(itemKey.value);
} else {
expandedState.value.delete(itemKey.value);
}
}
});
// 初始化时展开所有文件夹
onMounted(() => {
if (props.item.isFolder && props.item.children && props.item.children.length > 0) {
isExpanded.value = true;
}
});
function toggleFolder() {
if (props.item.isFolder && props.item.children && props.item.children.length > 0) {
isExpanded.value = !isExpanded.value;
}
}
</script>

View File

@@ -0,0 +1,49 @@
<template>
<div class=" w-full mt-6 mb-6">
<iframe
v-if="url"
:src="url"
:title
sandbox="allow-modals allow-forms allow-popups allow-scripts allow-same-origin"
class="w-full h-full min-h-[600px] overflow-hidden rounded-md"
/>
<USkeleton v-else class="w-full min-h-[600px] rounded-md" />
</div>
</template>
<script setup lang="ts">
const {
provider,
id,
repo,
branch = 'main',
dir = '',
file,
title = 'Playground',
} = defineProps<{
provider: 'stackblitz' | 'codesandbox';
id?: string;
repo?: string;
branch?: string;
dir?: string;
file: string;
title?: string;
}>();
const url = ref('');
const colorMode = useColorMode();
onMounted(() => {
if (provider === 'stackblitz') {
if (repo)
url.value = `https://stackblitz.com/github/${repo}/tree/${branch}/${dir}?embed=1&file=${file}&theme=${colorMode.value}`;
else if (id)
url.value = `https://stackblitz.com/edit/${id}?embed=1&file=${file}&theme=${colorMode.value}`;
} else if (provider === 'codesandbox') {
if (repo)
url.value = `https://codesandbox.io/p/sandbox/github/${repo}/tree/${branch}/${dir}?embed=1&file=${file}`;
else if (id)
url.value = `https://codesandbox.io/embed/${id}?view=editor+%2B+preview&module=${file}`;
}
});
</script>

View File

@@ -0,0 +1,31 @@
<template>
<UPage>
<NuxtLink v-if="to" :to="to">
<UAlert :icon :title :color="color" :variant="variant" :description="to"
class="mt-2 mb-3 text-black dark:text-white" :ui="{
icon: iconSize
}">
<slot />
</UAlert>
</NuxtLink>
</UPage>
</template>
<script setup lang="ts">
const {
variant = 'subtle',
title,
icon = 'lucide:bookmark',
color = 'primary',
} = defineProps<{
color?: 'primary' | 'error' | 'secondary' | 'success' | 'info' | 'warning' | 'neutral';
description?: string;
title?: string;
to?: string;
icon?: string;
iconSize?: string;
variant?: 'subtle' | 'solid' | 'outline' | 'soft';
}>();
</script>

View File

@@ -1,9 +1,9 @@
<template>
<!-- Iconify Icons -->
<Icon v-if="isIconName(name)" :name="name" :size="size" />
<Icon v-if="checkIcon(name)" :name :size />
<!-- Emojis -->
<span
v-else-if="isEmoji(name)"
v-else-if="/(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/g.test(name)"
:style="`font-size: ${size}px;`"
>{{ name }}</span>
<!-- Link -->
@@ -16,23 +16,17 @@
</template>
<script setup lang="ts">
import { stringToIcon, validateIconName } from '@iconify/utils';
const { size = 16 } = defineProps<{
name: string;
size?: number;
}>();
function isIconName(name: string): boolean {
function checkIcon(name: string): boolean {
if (name.includes('http'))
return false;
// 简单的图标名称检查,以 i- 开头或包含常见图标集
return name.startsWith('i-') ||
name.includes('lucide') ||
name.includes('heroicons') ||
name.includes('simple-icons');
}
function isEmoji(name: string): boolean {
return /(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/g.test(name);
return validateIconName(stringToIcon(name));
}
</script>

View File

@@ -0,0 +1,24 @@
<template>
<UPageCard class="divide-y overflow-hidden rounded-xl [&:not(:first-child)]:mt-4 dark:divide-gray-700 shadow-sm ">
<div
v-for="(slot, i) in slotItems"
:key="i"
class=""
>
<component :is="slot" />
</div>
</UPageCard>
</template>
<script setup lang="ts">
const slots = useSlots()
// Process slots to create stack items
const slotItems = computed(() => {
const defaultSlots = slots.default?.() || []
return defaultSlots.filter(slot => slot)
})
defineSlots()
</script>

View File

@@ -5,72 +5,72 @@ const items = ref<NavigationMenuItem[][]>([
[
{
label: 'Guide',
icon: 'i-lucide-book-open',
icon: 'lucide-book-open',
},
{
label: 'Composables',
icon: 'i-lucide-database',
icon: 'lucide-database',
children: [
{
label: 'defineShortcuts',
icon: 'i-lucide-file-text',
icon: 'lucide-file-text',
description: 'Define shortcuts for your application.',
to: '/composables/define-shortcuts'
to: '/'
},
{
label: 'useOverlay',
icon: 'i-lucide-file-text',
icon: 'lucide-file-text',
description: 'Display a modal/slideover within your application.',
to: '/composables/use-overlay'
to: '/'
},
{
label: 'useToast',
icon: 'i-lucide-file-text',
icon: 'lucide-file-text',
description: 'Display a toast within your application.',
to: '/composables/use-toast'
to: '/'
}
]
},
{
label: 'Components',
icon: 'i-lucide-box',
to: '/components',
icon: 'lucide-box',
to: '',
children: [
{
label: 'Link',
icon: 'i-lucide-file-text',
icon: 'lucide-file-text',
description: 'Use NuxtLink with superpowers.',
to: '/components/link'
to: '/'
},
{
label: 'Modal',
icon: 'i-lucide-file-text',
icon: 'lucide-file-text',
description: 'Display a modal within your application.',
to: '/components/modal'
to: '/'
},
{
label: 'NavigationMenu',
icon: 'i-lucide-file-text',
icon: 'lucide-file-text',
description: 'Display a list of links.',
to: '/components/navigation-menu'
to: '/'
},
{
label: 'Pagination',
icon: 'i-lucide-file-text',
icon: 'lucide-file-text',
description: 'Display a list of pages.',
to: '/components/pagination'
to: ''
},
{
label: 'Popover',
icon: 'i-lucide-file-text',
icon: 'lucide-file-text',
description: 'Display a non-modal dialog that floats around a trigger element.',
to: '/components/popover'
to: '/'
},
{
label: 'Progress',
icon: 'i-lucide-file-text',
icon: 'lucide-file-text',
description: 'Show a horizontal bar to indicate task progression.',
to: '/components/progress'
to: '/'
}
]
}
@@ -78,14 +78,14 @@ const items = ref<NavigationMenuItem[][]>([
// [
// {
// label: 'GitHub',
// icon: 'i-simple-icons-github',
// icon: 'simple-icons-github',
// badge: '3.8k',
// to: 'https://github.com/nuxt/ui',
// target: '_blank',
// },
// {
// label: 'Help',
// icon: 'i-lucide-circle-help',
// icon: 'lucide-circle-help',
// badge: '3.8k',
// disabled: true
// }

View File

@@ -10,32 +10,32 @@ const markdownLink = computed(() => `${window?.location?.origin}/raw${route.path
const items = [
{
label: 'Copy Markdown link',
icon: 'i-lucide-link',
icon: 'lucide-link',
onSelect() {
copy(markdownLink.value)
toast.add({
title: 'Markdown link copied to clipboard',
icon: 'i-lucide-check-circle',
icon: 'lucide-check-circle',
color: 'success',
})
},
},
{
label: 'View as Markdown',
icon: 'i-simple-icons:markdown',
icon: 'simple-icons:markdown',
target: '_blank',
to: markdownLink.value,
},
{
label: 'Open in ChatGPT',
icon: 'i-simple-icons:openai',
icon: 'simple-icons:openai',
target: '_blank',
to: `https://chatgpt.com/?hints=search&q=${encodeURIComponent(`Read ${markdownLink.value} so I can ask questions about it.`)}`,
},
{
label: 'Open in Claude',
icon: 'i-simple-icons:anthropic',
icon: 'simple-icons:anthropic',
target: '_blank',
to: `https://claude.ai/new?q=${encodeURIComponent(`Read ${markdownLink.value} so I can ask questions about it.`)}`,
},
@@ -46,7 +46,7 @@ const items = [
<UButtonGroup size="sm">
<UButton
label="Copy page"
:icon="copied ? 'i-lucide-copy-check' : 'i-lucide-copy'"
:icon="copied ? 'lucide-copy-check' : 'lucide-copy'"
color="neutral"
variant="outline"
:ui="{
@@ -68,7 +68,7 @@ const items = [
}"
>
<UButton
icon="i-lucide-chevron-down"
icon="lucide-chevron-down"
color="neutral"
variant="outline"
/>

View File

@@ -42,7 +42,7 @@ provide("navigation", navigation);
:error="error"
:clear="{
size: 'xl',
icon: 'i-lucide-arrow-left',
icon: 'lucide-arrow-left',
class: 'rounded-full',
}"
redirect="/"

View File

@@ -105,7 +105,7 @@ const links = computed(() => {
const links = []
if (appConfig.toc?.bottom?.edit) {
links.push({
icon: 'i-lucide-external-link',
icon: 'lucide-external-link',
label: '编辑页面',
to: `${appConfig.toc.bottom.edit}/${page?.value?.stem}.${page?.value?.extension}`,
target: '_blank'
@@ -133,13 +133,13 @@ const links = computed(() => {
<USeparator>
<div v-if="editLink" class="flex items-center gap-2 text-sm text-muted">
<UButton variant="link" color="neutral" :to="editLink" target="_blank" icon="i-lucide-pen"
<UButton variant="link" color="neutral" :to="editLink" target="_blank" icon="lucide-pen"
:ui="{ leadingIcon: 'size-4' }">
编辑页面
</UButton>
or
<UButton variant="link" color="neutral" :to="`${appConfig.github.url}/issues/new/choose`" target="_blank"
icon="i-lucide-alert-circle" :ui="{ leadingIcon: 'size-4' }">
icon="lucide-alert-circle" :ui="{ leadingIcon: 'size-4' }">
提交问题
</UButton>
</div>

View File

@@ -1,3 +1,3 @@
title: 简单文档
description: 一个简约但功能强大的开源文档系统
icon: i-lucide-rocket
icon: lucide-rocket

View File

@@ -2,42 +2,139 @@
title: 入门指南
description: 欢迎使用简单文档
navigation:
icon: i-lucide-house
icon: lucide-house
---
This template is a ready-to-use documentation template made with [Nuxt UI Pro](https://ui.nuxt.com/pro), a collection of premium components built on top of [Nuxt UI](https://ui.nuxt.com) to create beautiful & responsive Nuxt applications in minutes.
There are already many websites based on this template:
::::code-group
::UPageCard
```bash [pnpm]
pnpm add @nuxt/ui-pro@next
```
```bash [yarn]
yarn add @nuxt/ui-pro@next
```
```bash [npm]
npm install @nuxt/ui-pro@next
```
```bash [bun]
bun add @nuxt/ui-pro@next
```
::::
## Usage
::note
You can pass any property from the HTML `<img>` element such as `alt`, `loading`, etc.
::
::stack
::div{class="p-4 space-x-2"}
:icon{name="lucide:box" class="size-6"}
:icon{name="vscode-icons:file-type-js-official" class="size-6"}
:icon{name="vscode-icons:file-type-vue" class="size-6"}
:icon{name="vscode-icons:file-type-nuxt" class="size-6"}
::
```mdc
:icon{name="lucide:box"}
:icon{name="vscode-icons:file-type-js-official"}
:icon{name="vscode-icons:file-type-vue"}
:icon{name="vscode-icons:file-type-nuxt" :size="30"}
```
::
::ETabs
::div{label="PostgreSQL" icon="lucide:database"}
### PostgreSQL column types
```ts
import { integer, pgTable } from 'drizzle-orm/pg-core';
export const table = pgTable('table', {
int: integer('int')
});
```
::
::div{label="MySQL"}
### MySQL column types
```ts
import { int, mysqlTable } from 'drizzle-orm/mysql-core';
const table = mysqlTable('table', {
int: int('int')
});
```
::
::div{label="SQLite"}
### SQLite column types
```ts
import { integer, sqliteTable } from 'drizzle-orm/sqlite-core';
const table = sqliteTable('table', {
id: integer('id')
});
// you can customize integer mode to be number, boolean, timestamp, timestamp_ms
integer('id', { mode: 'number' });
integer('id', { mode: 'boolean' });
integer('id', { mode: 'timestamp_ms' });
integer('id', { mode: 'timestamp' }); // Date
```
::
::
::ECard
---
icon: lucide:rocket
img: https://lijue-me.oss-cn-chengdu.aliyuncs.com/20250727184358217.png
icon: simple-icons-tailwindcss
spotlight: true
title: Image Card
description: Beautifully designed **Nuxt Content** template with **shadcn-vue**. _Customizable. Compatible. Open Source._
---
#title
Card Title
#description
Description
#content
Beautifully designed **Nuxt Content** template with **shadcn-vue**. _Customizable. Compatible. Open Source._
wow
#highlight
Tailwind CSS
::
#highlight-color
primary
title="Tailwind CSS"
description="Nuxt UI v3 integrates with latest Tailwind CSS v4, bringing significant improvements."
icon="i-simple-icons-tailwindcss"
orientation="horizontal"
highlight
highlight-color="primary"
::button-link{icon="lucide:arrow-up-right" variant="outline" to="/getting-started" target="_blank" size="md"}
Get Started
::
::button-link{trailing-icon="lucide:github" variant="outline" to="https://github.com/ZTL-UwU/shadcn-docs-nuxt" target="_blank"}
GitHub
::
::button-link{icon="lucide:ghost" variant="ghost" href="https://github.com/ZTL-UwU/shadcn-docs-nuxt" blank}
Ghost
::
#footer
Footer
::FileTree
---
title: File Tree
icon: lucide:folder-tree
tree:
- app:
- components:
- Header.vue
- Footer.vue
- composables:
- useErrorHandler.ts
- app.vue # This is highlighted
- docs:
- ^index.md^
---
::
::steps{level="4"}
@@ -58,7 +155,7 @@ Footer
::card-group
:::card
---
icon: i-simple-icons-nuxtdotjs
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt
to: https://nuxt.com
@@ -68,7 +165,7 @@ Footer
:::card
---
icon: i-simple-icons-nuxtdotjs
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt UI
to: https://ui.nuxt.com
@@ -78,7 +175,7 @@ Footer
:::card
---
icon: i-simple-icons-nuxtdotjs
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt Image
to: https://image.nuxt.com
@@ -88,7 +185,7 @@ Footer
:::card
---
icon: i-simple-icons-nuxtdotjs
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt Content
to: https://content.nuxt.com
@@ -98,7 +195,7 @@ Footer
:::card
---
icon: i-simple-icons-nuxtdotjs
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt Devtools
to: https://devtools.nuxt.com
@@ -108,7 +205,7 @@ Footer
:::card
---
icon: i-simple-icons-nuxtdotjs
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt Hub
to: https://hub.nuxt.com

View File

@@ -2,9 +2,210 @@
title: Installation
description: Get started with Nuxt UI Pro documentation template.
navigation:
icon: i-lucide-download
icon: lucide-download
---
::ProseImg{src="https://lijue-me.oss-cn-chengdu.aliyuncs.com/20250727184358217.png"}
::
::stack
::div{class="p-6 text-3xl font-bold"}
✨ shadcn-docs-nuxt
::
```mdc
---
title: Installation
description: How to install shadcn-docs-nuxt in your app.
icon: lucide:play
---
## Using the starter template
```
:read-more{title="Installation" to="/getting-started/installation"}
::card
---
title: Components
icon: lucide:box
---
See MDC components provided by **shadcn-docs-nuxt**.
::
::
::field-group
::field{name="withDefault" type="boolean" defaultValue="true"}
A field with a default value.
::
::field{name="requiredField" type="boolean" required}
A required field.
::
::field{name="clear (path?: string)" type="void"}
Clears form errors associated with a specific path. If no path is provided, clears all form errors.
::
::field{name="getErrors (path?: string)" type="FormError[]"}
Retrieves form errors associated with a specific path. If no path is provided, returns all form errors.
::
::field{name="setErrors (errors: FormError[], path?: string)" type="void"}
Sets form errors for a given path. If no path is provided, overrides all errors.
::
::field{name="errors" type="Ref<FormError[]>"}
A reference to the array containing validation errors. Use this to access or manipulate the error information.
::
::
::code-tree{defaultValue="nuxt.config.ts"}
```css [app/assets/main.css]
@import "tailwindcss" theme(static);
@import "@nuxt/ui-pro";
```
```ts [app/app.config.ts]
export default defineAppConfig({
ui: {
colors: {
primary: 'sky',
colors: 'slate'
}
}
});
```
```vue [app/app.vue]
<template>
<UApp>
<NuxtPage />
</UApp>
</template>
```
```json [package.json]
{
"name": "nuxt-app",
"private": true,
"type": "module",
"scripts": {
"build": "nuxt build",
"dev": "nuxt dev",
"generate": "nuxt generate",
"preview": "nuxt preview",
"postinstall": "nuxt prepare",
"typecheck": "nuxt typecheck"
},
"dependencies": {
"@iconify-json/lucide": "^1.2.18",
"@nuxt/ui-pro": "3.0.0-alpha.10",
"nuxt": "^3.15.1"
},
"devDependencies": {
"typescript": "^5.7.2",
"vue-tsc": "^2.2.0"
}
}
```
```json [tsconfig.json]
{
"extends": "./.nuxt/tsconfig.json"
}
```
```ts [nuxt.config.ts]
export default defineNuxtConfig({
modules: ['@nuxt/ui-pro'],
future: {
compatibilityVersion: 4
},
css: ['~/assets/main.css']
});
```
````md [README.md]
# Nuxt 3 Minimal Starter
Look at the [Nuxt 3 documentation](https://nuxt.com/docs/getting-started/introduction) to learn more.
## Setup
Make sure to install the dependencies:
```bash
# npm
npm install
# pnpm
pnpm install
# yarn
yarn install
# bun
bun install
```
## Development Server
Start the development server on `http://localhost:3000`:
```bash
# npm
npm run dev
# pnpm
pnpm run dev
# yarn
yarn dev
# bun
bun run dev
```
## Production
Build the application for production:
```bash
# npm
npm run build
# pnpm
pnpm run build
# yarn
yarn build
# bun
bun run build
```
Locally preview production build:
```bash
# npm
npm run preview
# pnpm
pnpm run preview
# yarn
yarn preview
# bun
bun run preview
```
Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.
````
::
::tip{target="_blank" to="https://content.nuxt.com/templates/docs"}
Use this template on Nuxt Studio and start your documentation in seconds.
::

View File

@@ -2,9 +2,17 @@
title: 进行测试
description: Learn how to write and customize your documentation.
navigation:
icon: i-lucide-sliders
icon: lucide-sliders
---
::playground
---
provider: stackblitz
repo: nuxt/starter
branch: v3
file: app.vue
---
::
# 这是一个H1标签

View File

@@ -1,2 +1,2 @@
title: Essentials
icon: i-lucide-book-open
icon: lucide-book-open

View File

@@ -2,7 +2,7 @@
title: Markdown Syntax
description: Text, title, and styling in standard markdown.
navigation:
icon: i-lucide-heading-1
icon: lucide-heading-1
---
## Titles

View File

@@ -2,7 +2,7 @@
title: Markdown Syntax
description: Text, title, and styling in standard markdown.
navigation:
icon: i-lucide-heading-1
icon: lucide-heading-1
---
## Titles

View File

@@ -2,7 +2,7 @@
title: Markdown Syntax
description: Text, title, and styling in standard markdown.
navigation:
icon: i-lucide-heading-1
icon: lucide-heading-1
---
## Titles

View File

@@ -2,7 +2,7 @@
title: Markdown Syntax
description: Text, title, and styling in standard markdown.
navigation:
icon: i-lucide-heading-1
icon: lucide-heading-1
---
## Titles

View File

@@ -2,7 +2,7 @@
title: Code Blocks
description: Display inline code and code blocks
navigation:
icon: i-lucide-code-xml
icon: lucide-code-xml
---
## Basic
@@ -95,8 +95,8 @@ You can change the icon in your `app.config.ts` through the `ui.icons.copy` and
export default defineAppConfig({
ui: {
icons: {
copy: 'i-lucide-copy',
copyCheck: 'i-lucide-copy-check'
copy: 'lucide-copy',
copyCheck: 'lucide-copy-check'
}
}
})
@@ -116,8 +116,8 @@ class: "[&>div]:*:my-0 [&>div]:*:w-full"
export default defineAppConfig({
ui: {
icons: {
copy: 'i-lucide-copy',
copyCheck: 'i-lucide-copy-check'
copy: 'lucide-copy',
copyCheck: 'lucide-copy-check'
}
}
})
@@ -129,8 +129,8 @@ export default defineAppConfig({
export default defineAppConfig({
ui: {
icons: {
copy: 'i-lucide-copy',
copyCheck: 'i-lucide-copy-check'
copy: 'lucide-copy',
copyCheck: 'lucide-copy-check'
}
}
})

View File

@@ -2,7 +2,7 @@
title: Code Blocks
description: Display inline code and code blocks
navigation:
icon: i-lucide-code-xml
icon: lucide-code-xml
---
## Basic
@@ -95,8 +95,8 @@ You can change the icon in your `app.config.ts` through the `ui.icons.copy` and
export default defineAppConfig({
ui: {
icons: {
copy: 'i-lucide-copy',
copyCheck: 'i-lucide-copy-check'
copy: 'lucide-copy',
copyCheck: 'lucide-copy-check'
}
}
})
@@ -116,8 +116,8 @@ class: "[&>div]:*:my-0 [&>div]:*:w-full"
export default defineAppConfig({
ui: {
icons: {
copy: 'i-lucide-copy',
copyCheck: 'i-lucide-copy-check'
copy: 'lucide-copy',
copyCheck: 'lucide-copy-check'
}
}
})
@@ -129,8 +129,8 @@ export default defineAppConfig({
export default defineAppConfig({
ui: {
icons: {
copy: 'i-lucide-copy',
copyCheck: 'i-lucide-copy-check'
copy: 'lucide-copy',
copyCheck: 'lucide-copy-check'
}
}
})

View File

@@ -2,7 +2,7 @@
title: Code Blocks
description: Display inline code and code blocks
navigation:
icon: i-lucide-code-xml
icon: lucide-code-xml
---
## Basic
@@ -95,8 +95,8 @@ You can change the icon in your `app.config.ts` through the `ui.icons.copy` and
export default defineAppConfig({
ui: {
icons: {
copy: 'i-lucide-copy',
copyCheck: 'i-lucide-copy-check'
copy: 'lucide-copy',
copyCheck: 'lucide-copy-check'
}
}
})
@@ -116,8 +116,8 @@ class: "[&>div]:*:my-0 [&>div]:*:w-full"
export default defineAppConfig({
ui: {
icons: {
copy: 'i-lucide-copy',
copyCheck: 'i-lucide-copy-check'
copy: 'lucide-copy',
copyCheck: 'lucide-copy-check'
}
}
})
@@ -129,8 +129,8 @@ export default defineAppConfig({
export default defineAppConfig({
ui: {
icons: {
copy: 'i-lucide-copy',
copyCheck: 'i-lucide-copy-check'
copy: 'lucide-copy',
copyCheck: 'lucide-copy-check'
}
}
})

View File

@@ -2,7 +2,7 @@
title: Code Blocks
description: Display inline code and code blocks
navigation:
icon: i-lucide-code-xml
icon: lucide-code-xml
---
## Basic
@@ -95,8 +95,8 @@ You can change the icon in your `app.config.ts` through the `ui.icons.copy` and
export default defineAppConfig({
ui: {
icons: {
copy: 'i-lucide-copy',
copyCheck: 'i-lucide-copy-check'
copy: 'lucide-copy',
copyCheck: 'lucide-copy-check'
}
}
})
@@ -116,8 +116,8 @@ class: "[&>div]:*:my-0 [&>div]:*:w-full"
export default defineAppConfig({
ui: {
icons: {
copy: 'i-lucide-copy',
copyCheck: 'i-lucide-copy-check'
copy: 'lucide-copy',
copyCheck: 'lucide-copy-check'
}
}
})
@@ -129,8 +129,8 @@ export default defineAppConfig({
export default defineAppConfig({
ui: {
icons: {
copy: 'i-lucide-copy',
copyCheck: 'i-lucide-copy-check'
copy: 'lucide-copy',
copyCheck: 'lucide-copy-check'
}
}
})

View File

@@ -2,7 +2,7 @@
title: Prose Components
description: Components to help you structure your content.
navigation:
icon: i-lucide-component
icon: lucide-component
---
### Accordion
@@ -16,7 +16,7 @@ class: "[&>div]:*:my-0"
:::accordion
::::accordion-item
---
icon: i-lucide-circle-help
icon: lucide-circle-help
label: What are the main considerations when upgrading to Nuxt UI v3?
---
The transition to v3 involves significant changes, including new component structures, updated theming approaches, and revised TypeScript definitions. We recommend a careful, incremental upgrade process, starting with thorough testing in a development environment.
@@ -24,13 +24,13 @@ class: "[&>div]:*:my-0"
::::accordion-item
---
icon: i-lucide-circle-help
icon: lucide-circle-help
label: Is Nuxt UI v3 compatible with standalone Vue projects?
---
Nuxt UI is now compatible with Vue! You can follow the [installation guide](/getting-started/installation) to get started.
::::
::::accordion-item{icon="i-lucide-circle-help" label="What about Nuxt UI Pro?"}
::::accordion-item{icon="lucide-circle-help" label="What about Nuxt UI Pro?"}
We've also rebuilt Nuxt UI Pro from scratch and released a `v3.0.0-alpha.x` package but it only contains the components to build this documentation yet. This will be a free update, so the license you buy now will be valid for v3. We're actively working to finish the rewrite of all Nuxt UI Pro components.
::::
:::
@@ -39,15 +39,15 @@ class: "[&>div]:*:my-0"
```mdc
::accordion
:::accordion-item{label="What are the main considerations when upgrading to Nuxt UI v3?" icon="i-lucide-circle-help"}
:::accordion-item{label="What are the main considerations when upgrading to Nuxt UI v3?" icon="lucide-circle-help"}
The transition to v3 involves significant changes, including new component structures, updated theming approaches, and revised TypeScript definitions. We recommend a careful, incremental upgrade process, starting with thorough testing in a development environment.
:::
:::accordion-item{label="Is Nuxt UI v3 compatible with standalone Vue projects?" icon="i-lucide-circle-help"}
:::accordion-item{label="Is Nuxt UI v3 compatible with standalone Vue projects?" icon="lucide-circle-help"}
Nuxt UI is now compatible with Vue! You can follow the [installation guide](/getting-started/installation) to get started.
:::
:::accordion-item{label="What about Nuxt UI Pro?" icon="i-lucide-circle-help"}
:::accordion-item{label="What about Nuxt UI Pro?" icon="lucide-circle-help"}
We've also rebuilt Nuxt UI Pro from scratch and released a `v3.0.0-alpha.x` package but it only contains the components to build this documentation yet. This will be a free update, so the license you buy now will be valid for v3. We're actively working to finish the rewrite of all Nuxt UI Pro components.
:::
@@ -148,7 +148,7 @@ class: "[&>div]:*:my-0 [&>div]:*:w-full"
---
:::card
---
icon: i-simple-icons-github
icon: simple-icons-github
target: _blank
title: Dashboard
to: https://github.com/nuxt-ui-pro/dashboard
@@ -161,7 +161,7 @@ class: "[&>div]:*:my-0 [&>div]:*:w-full"
::card
---
title: Dashboard
icon: i-simple-icons-github
icon: simple-icons-github
to: https://github.com/nuxt-ui-pro/dashboard
target: _blank
---
@@ -178,7 +178,7 @@ Use `card-group` to arrange cards in a grid layout. `card-group` is ideal for di
:::card-group{.w-full}
::::card
---
icon: i-simple-icons-github
icon: simple-icons-github
target: _blank
title: Dashboard
to: https://github.com/nuxt-ui-pro/dashboard
@@ -188,7 +188,7 @@ Use `card-group` to arrange cards in a grid layout. `card-group` is ideal for di
::::card
---
icon: i-simple-icons-github
icon: simple-icons-github
target: _blank
title: SaaS
to: https://github.com/nuxt-ui-pro/saas
@@ -198,7 +198,7 @@ Use `card-group` to arrange cards in a grid layout. `card-group` is ideal for di
::::card
---
icon: i-simple-icons-github
icon: simple-icons-github
target: _blank
title: Docs
to: https://github.com/nuxt-ui-pro/docs
@@ -208,7 +208,7 @@ Use `card-group` to arrange cards in a grid layout. `card-group` is ideal for di
::::card
---
icon: i-simple-icons-github
icon: simple-icons-github
target: _blank
title: Landing
to: https://github.com/nuxt-ui-pro/landing
@@ -224,7 +224,7 @@ Use `card-group` to arrange cards in a grid layout. `card-group` is ideal for di
::card
---
title: Dashboard
icon: i-simple-icons-github
icon: simple-icons-github
to: https://github.com/nuxt-ui-pro/dashboard
target: _blank
---
@@ -234,7 +234,7 @@ A dashboard with multi-column layout.
::card
---
title: SaaS
icon: i-simple-icons-github
icon: simple-icons-github
to: https://github.com/nuxt-ui-pro/saas
target: _blank
---
@@ -244,7 +244,7 @@ A template with landing, pricing, docs and blog.
::card
---
title: Docs
icon: i-simple-icons-github
icon: simple-icons-github
to: https://github.com/nuxt-ui-pro/docs
target: _blank
---
@@ -254,7 +254,7 @@ A documentation with `@nuxt/content`.
::card
---
title: Landing
icon: i-simple-icons-github
icon: simple-icons-github
to: https://github.com/nuxt-ui-pro/landing
target: _blank
---
@@ -362,13 +362,13 @@ Use `field-group` to group related fields together in a list. `field-group` help
Use `icon` to insert icons from icon libraries. Icons provide visual cues and enhance the user interface of your documentation.
::code-preview
:icon{name="i-simple-icons-nuxtdotjs"}
:icon{name="simple-icons-nuxtdotjs"}
#code
```mdc
:icon{name="i-simple-icons-nuxtdotjs"}
:icon{name="simple-icons-nuxtdotjs"}
```
::
@@ -397,7 +397,7 @@ Use `tabs` and `tabs-item` to organize content into tabbed interfaces. Tabs are
class: "[&>div]:*:my-0"
---
:::tabs{.w-full}
::::tabs-item{icon="i-lucide-code" label="Code"}
::::tabs-item{icon="lucide-code" label="Code"}
```mdc
::callout
Lorem velit voluptate ex reprehenderit ullamco et culpa.
@@ -405,7 +405,7 @@ class: "[&>div]:*:my-0"
```
::::
::::tabs-item{icon="i-lucide-eye" label="Preview"}
::::tabs-item{icon="lucide-eye" label="Preview"}
:::::callout
Lorem velit voluptate ex reprehenderit ullamco et culpa.
:::::
@@ -416,7 +416,7 @@ class: "[&>div]:*:my-0"
````mdc
::tabs
:::tabs-item{label="Code" icon="i-lucide-code"}
:::tabs-item{label="Code" icon="lucide-code"}
```mdc
::callout
@@ -426,7 +426,7 @@ Lorem velit voluptate ex reprehenderit ullamco et culpa.
:::
:::tabs-item{label="Preview" icon="i-lucide-eye"}
:::tabs-item{label="Preview" icon="lucide-eye"}
::::callout
Lorem velit voluptate ex reprehenderit ullamco et culpa.

View File

@@ -2,7 +2,7 @@
title: Prose Components
description: Components to help you structure your content.
navigation:
icon: i-lucide-component
icon: lucide-component
---
### Accordion
@@ -16,7 +16,7 @@ class: "[&>div]:*:my-0"
:::accordion
::::accordion-item
---
icon: i-lucide-circle-help
icon: lucide-circle-help
label: What are the main considerations when upgrading to Nuxt UI v3?
---
The transition to v3 involves significant changes, including new component structures, updated theming approaches, and revised TypeScript definitions. We recommend a careful, incremental upgrade process, starting with thorough testing in a development environment.
@@ -24,13 +24,13 @@ class: "[&>div]:*:my-0"
::::accordion-item
---
icon: i-lucide-circle-help
icon: lucide-circle-help
label: Is Nuxt UI v3 compatible with standalone Vue projects?
---
Nuxt UI is now compatible with Vue! You can follow the [installation guide](/getting-started/installation) to get started.
::::
::::accordion-item{icon="i-lucide-circle-help" label="What about Nuxt UI Pro?"}
::::accordion-item{icon="lucide-circle-help" label="What about Nuxt UI Pro?"}
We've also rebuilt Nuxt UI Pro from scratch and released a `v3.0.0-alpha.x` package but it only contains the components to build this documentation yet. This will be a free update, so the license you buy now will be valid for v3. We're actively working to finish the rewrite of all Nuxt UI Pro components.
::::
:::
@@ -39,15 +39,15 @@ class: "[&>div]:*:my-0"
```mdc
::accordion
:::accordion-item{label="What are the main considerations when upgrading to Nuxt UI v3?" icon="i-lucide-circle-help"}
:::accordion-item{label="What are the main considerations when upgrading to Nuxt UI v3?" icon="lucide-circle-help"}
The transition to v3 involves significant changes, including new component structures, updated theming approaches, and revised TypeScript definitions. We recommend a careful, incremental upgrade process, starting with thorough testing in a development environment.
:::
:::accordion-item{label="Is Nuxt UI v3 compatible with standalone Vue projects?" icon="i-lucide-circle-help"}
:::accordion-item{label="Is Nuxt UI v3 compatible with standalone Vue projects?" icon="lucide-circle-help"}
Nuxt UI is now compatible with Vue! You can follow the [installation guide](/getting-started/installation) to get started.
:::
:::accordion-item{label="What about Nuxt UI Pro?" icon="i-lucide-circle-help"}
:::accordion-item{label="What about Nuxt UI Pro?" icon="lucide-circle-help"}
We've also rebuilt Nuxt UI Pro from scratch and released a `v3.0.0-alpha.x` package but it only contains the components to build this documentation yet. This will be a free update, so the license you buy now will be valid for v3. We're actively working to finish the rewrite of all Nuxt UI Pro components.
:::
@@ -148,7 +148,7 @@ class: "[&>div]:*:my-0 [&>div]:*:w-full"
---
:::card
---
icon: i-simple-icons-github
icon: simple-icons-github
target: _blank
title: Dashboard
to: https://github.com/nuxt-ui-pro/dashboard
@@ -161,7 +161,7 @@ class: "[&>div]:*:my-0 [&>div]:*:w-full"
::card
---
title: Dashboard
icon: i-simple-icons-github
icon: simple-icons-github
to: https://github.com/nuxt-ui-pro/dashboard
target: _blank
---
@@ -178,7 +178,7 @@ Use `card-group` to arrange cards in a grid layout. `card-group` is ideal for di
:::card-group{.w-full}
::::card
---
icon: i-simple-icons-github
icon: simple-icons-github
target: _blank
title: Dashboard
to: https://github.com/nuxt-ui-pro/dashboard
@@ -188,7 +188,7 @@ Use `card-group` to arrange cards in a grid layout. `card-group` is ideal for di
::::card
---
icon: i-simple-icons-github
icon: simple-icons-github
target: _blank
title: SaaS
to: https://github.com/nuxt-ui-pro/saas
@@ -198,7 +198,7 @@ Use `card-group` to arrange cards in a grid layout. `card-group` is ideal for di
::::card
---
icon: i-simple-icons-github
icon: simple-icons-github
target: _blank
title: Docs
to: https://github.com/nuxt-ui-pro/docs
@@ -208,7 +208,7 @@ Use `card-group` to arrange cards in a grid layout. `card-group` is ideal for di
::::card
---
icon: i-simple-icons-github
icon: simple-icons-github
target: _blank
title: Landing
to: https://github.com/nuxt-ui-pro/landing
@@ -224,7 +224,7 @@ Use `card-group` to arrange cards in a grid layout. `card-group` is ideal for di
::card
---
title: Dashboard
icon: i-simple-icons-github
icon: simple-icons-github
to: https://github.com/nuxt-ui-pro/dashboard
target: _blank
---
@@ -234,7 +234,7 @@ A dashboard with multi-column layout.
::card
---
title: SaaS
icon: i-simple-icons-github
icon: simple-icons-github
to: https://github.com/nuxt-ui-pro/saas
target: _blank
---
@@ -244,7 +244,7 @@ A template with landing, pricing, docs and blog.
::card
---
title: Docs
icon: i-simple-icons-github
icon: simple-icons-github
to: https://github.com/nuxt-ui-pro/docs
target: _blank
---
@@ -254,7 +254,7 @@ A documentation with `@nuxt/content`.
::card
---
title: Landing
icon: i-simple-icons-github
icon: simple-icons-github
to: https://github.com/nuxt-ui-pro/landing
target: _blank
---
@@ -362,13 +362,13 @@ Use `field-group` to group related fields together in a list. `field-group` help
Use `icon` to insert icons from icon libraries. Icons provide visual cues and enhance the user interface of your documentation.
::code-preview
:icon{name="i-simple-icons-nuxtdotjs"}
:icon{name="simple-icons-nuxtdotjs"}
#code
```mdc
:icon{name="i-simple-icons-nuxtdotjs"}
:icon{name="simple-icons-nuxtdotjs"}
```
::
@@ -397,7 +397,7 @@ Use `tabs` and `tabs-item` to organize content into tabbed interfaces. Tabs are
class: "[&>div]:*:my-0"
---
:::tabs{.w-full}
::::tabs-item{icon="i-lucide-code" label="Code"}
::::tabs-item{icon="lucide-code" label="Code"}
```mdc
::callout
Lorem velit voluptate ex reprehenderit ullamco et culpa.
@@ -405,7 +405,7 @@ class: "[&>div]:*:my-0"
```
::::
::::tabs-item{icon="i-lucide-eye" label="Preview"}
::::tabs-item{icon="lucide-eye" label="Preview"}
:::::callout
Lorem velit voluptate ex reprehenderit ullamco et culpa.
:::::
@@ -416,7 +416,7 @@ class: "[&>div]:*:my-0"
````mdc
::tabs
:::tabs-item{label="Code" icon="i-lucide-code"}
:::tabs-item{label="Code" icon="lucide-code"}
```mdc
::callout
@@ -426,7 +426,7 @@ Lorem velit voluptate ex reprehenderit ullamco et culpa.
:::
:::tabs-item{label="Preview" icon="i-lucide-eye"}
:::tabs-item{label="Preview" icon="lucide-eye"}
::::callout
Lorem velit voluptate ex reprehenderit ullamco et culpa.

View File

@@ -2,7 +2,7 @@
title: Prose Components
description: Components to help you structure your content.
navigation:
icon: i-lucide-component
icon: lucide-component
---
### Accordion
@@ -16,7 +16,7 @@ class: "[&>div]:*:my-0"
:::accordion
::::accordion-item
---
icon: i-lucide-circle-help
icon: lucide-circle-help
label: What are the main considerations when upgrading to Nuxt UI v3?
---
The transition to v3 involves significant changes, including new component structures, updated theming approaches, and revised TypeScript definitions. We recommend a careful, incremental upgrade process, starting with thorough testing in a development environment.
@@ -24,13 +24,13 @@ class: "[&>div]:*:my-0"
::::accordion-item
---
icon: i-lucide-circle-help
icon: lucide-circle-help
label: Is Nuxt UI v3 compatible with standalone Vue projects?
---
Nuxt UI is now compatible with Vue! You can follow the [installation guide](/getting-started/installation) to get started.
::::
::::accordion-item{icon="i-lucide-circle-help" label="What about Nuxt UI Pro?"}
::::accordion-item{icon="lucide-circle-help" label="What about Nuxt UI Pro?"}
We've also rebuilt Nuxt UI Pro from scratch and released a `v3.0.0-alpha.x` package but it only contains the components to build this documentation yet. This will be a free update, so the license you buy now will be valid for v3. We're actively working to finish the rewrite of all Nuxt UI Pro components.
::::
:::
@@ -39,15 +39,15 @@ class: "[&>div]:*:my-0"
```mdc
::accordion
:::accordion-item{label="What are the main considerations when upgrading to Nuxt UI v3?" icon="i-lucide-circle-help"}
:::accordion-item{label="What are the main considerations when upgrading to Nuxt UI v3?" icon="lucide-circle-help"}
The transition to v3 involves significant changes, including new component structures, updated theming approaches, and revised TypeScript definitions. We recommend a careful, incremental upgrade process, starting with thorough testing in a development environment.
:::
:::accordion-item{label="Is Nuxt UI v3 compatible with standalone Vue projects?" icon="i-lucide-circle-help"}
:::accordion-item{label="Is Nuxt UI v3 compatible with standalone Vue projects?" icon="lucide-circle-help"}
Nuxt UI is now compatible with Vue! You can follow the [installation guide](/getting-started/installation) to get started.
:::
:::accordion-item{label="What about Nuxt UI Pro?" icon="i-lucide-circle-help"}
:::accordion-item{label="What about Nuxt UI Pro?" icon="lucide-circle-help"}
We've also rebuilt Nuxt UI Pro from scratch and released a `v3.0.0-alpha.x` package but it only contains the components to build this documentation yet. This will be a free update, so the license you buy now will be valid for v3. We're actively working to finish the rewrite of all Nuxt UI Pro components.
:::
@@ -148,7 +148,7 @@ class: "[&>div]:*:my-0 [&>div]:*:w-full"
---
:::card
---
icon: i-simple-icons-github
icon: simple-icons-github
target: _blank
title: Dashboard
to: https://github.com/nuxt-ui-pro/dashboard
@@ -161,7 +161,7 @@ class: "[&>div]:*:my-0 [&>div]:*:w-full"
::card
---
title: Dashboard
icon: i-simple-icons-github
icon: simple-icons-github
to: https://github.com/nuxt-ui-pro/dashboard
target: _blank
---
@@ -178,7 +178,7 @@ Use `card-group` to arrange cards in a grid layout. `card-group` is ideal for di
:::card-group{.w-full}
::::card
---
icon: i-simple-icons-github
icon: simple-icons-github
target: _blank
title: Dashboard
to: https://github.com/nuxt-ui-pro/dashboard
@@ -188,7 +188,7 @@ Use `card-group` to arrange cards in a grid layout. `card-group` is ideal for di
::::card
---
icon: i-simple-icons-github
icon: simple-icons-github
target: _blank
title: SaaS
to: https://github.com/nuxt-ui-pro/saas
@@ -198,7 +198,7 @@ Use `card-group` to arrange cards in a grid layout. `card-group` is ideal for di
::::card
---
icon: i-simple-icons-github
icon: simple-icons-github
target: _blank
title: Docs
to: https://github.com/nuxt-ui-pro/docs
@@ -208,7 +208,7 @@ Use `card-group` to arrange cards in a grid layout. `card-group` is ideal for di
::::card
---
icon: i-simple-icons-github
icon: simple-icons-github
target: _blank
title: Landing
to: https://github.com/nuxt-ui-pro/landing
@@ -224,7 +224,7 @@ Use `card-group` to arrange cards in a grid layout. `card-group` is ideal for di
::card
---
title: Dashboard
icon: i-simple-icons-github
icon: simple-icons-github
to: https://github.com/nuxt-ui-pro/dashboard
target: _blank
---
@@ -234,7 +234,7 @@ A dashboard with multi-column layout.
::card
---
title: SaaS
icon: i-simple-icons-github
icon: simple-icons-github
to: https://github.com/nuxt-ui-pro/saas
target: _blank
---
@@ -244,7 +244,7 @@ A template with landing, pricing, docs and blog.
::card
---
title: Docs
icon: i-simple-icons-github
icon: simple-icons-github
to: https://github.com/nuxt-ui-pro/docs
target: _blank
---
@@ -254,7 +254,7 @@ A documentation with `@nuxt/content`.
::card
---
title: Landing
icon: i-simple-icons-github
icon: simple-icons-github
to: https://github.com/nuxt-ui-pro/landing
target: _blank
---
@@ -362,13 +362,13 @@ Use `field-group` to group related fields together in a list. `field-group` help
Use `icon` to insert icons from icon libraries. Icons provide visual cues and enhance the user interface of your documentation.
::code-preview
:icon{name="i-simple-icons-nuxtdotjs"}
:icon{name="simple-icons-nuxtdotjs"}
#code
```mdc
:icon{name="i-simple-icons-nuxtdotjs"}
:icon{name="simple-icons-nuxtdotjs"}
```
::
@@ -397,7 +397,7 @@ Use `tabs` and `tabs-item` to organize content into tabbed interfaces. Tabs are
class: "[&>div]:*:my-0"
---
:::tabs{.w-full}
::::tabs-item{icon="i-lucide-code" label="Code"}
::::tabs-item{icon="lucide-code" label="Code"}
```mdc
::callout
Lorem velit voluptate ex reprehenderit ullamco et culpa.
@@ -405,7 +405,7 @@ class: "[&>div]:*:my-0"
```
::::
::::tabs-item{icon="i-lucide-eye" label="Preview"}
::::tabs-item{icon="lucide-eye" label="Preview"}
:::::callout
Lorem velit voluptate ex reprehenderit ullamco et culpa.
:::::
@@ -416,7 +416,7 @@ class: "[&>div]:*:my-0"
````mdc
::tabs
:::tabs-item{label="Code" icon="i-lucide-code"}
:::tabs-item{label="Code" icon="lucide-code"}
```mdc
::callout
@@ -426,7 +426,7 @@ Lorem velit voluptate ex reprehenderit ullamco et culpa.
:::
:::tabs-item{label="Preview" icon="i-lucide-eye"}
:::tabs-item{label="Preview" icon="lucide-eye"}
::::callout
Lorem velit voluptate ex reprehenderit ullamco et culpa.

View File

@@ -2,7 +2,7 @@
title: Prose Components
description: Components to help you structure your content.
navigation:
icon: i-lucide-component
icon: lucide-component
---
### Accordion
@@ -16,7 +16,7 @@ class: "[&>div]:*:my-0"
:::accordion
::::accordion-item
---
icon: i-lucide-circle-help
icon: lucide-circle-help
label: What are the main considerations when upgrading to Nuxt UI v3?
---
The transition to v3 involves significant changes, including new component structures, updated theming approaches, and revised TypeScript definitions. We recommend a careful, incremental upgrade process, starting with thorough testing in a development environment.
@@ -24,13 +24,13 @@ class: "[&>div]:*:my-0"
::::accordion-item
---
icon: i-lucide-circle-help
icon: lucide-circle-help
label: Is Nuxt UI v3 compatible with standalone Vue projects?
---
Nuxt UI is now compatible with Vue! You can follow the [installation guide](/getting-started/installation) to get started.
::::
::::accordion-item{icon="i-lucide-circle-help" label="What about Nuxt UI Pro?"}
::::accordion-item{icon="lucide-circle-help" label="What about Nuxt UI Pro?"}
We've also rebuilt Nuxt UI Pro from scratch and released a `v3.0.0-alpha.x` package but it only contains the components to build this documentation yet. This will be a free update, so the license you buy now will be valid for v3. We're actively working to finish the rewrite of all Nuxt UI Pro components.
::::
:::
@@ -39,15 +39,15 @@ class: "[&>div]:*:my-0"
```mdc
::accordion
:::accordion-item{label="What are the main considerations when upgrading to Nuxt UI v3?" icon="i-lucide-circle-help"}
:::accordion-item{label="What are the main considerations when upgrading to Nuxt UI v3?" icon="lucide-circle-help"}
The transition to v3 involves significant changes, including new component structures, updated theming approaches, and revised TypeScript definitions. We recommend a careful, incremental upgrade process, starting with thorough testing in a development environment.
:::
:::accordion-item{label="Is Nuxt UI v3 compatible with standalone Vue projects?" icon="i-lucide-circle-help"}
:::accordion-item{label="Is Nuxt UI v3 compatible with standalone Vue projects?" icon="lucide-circle-help"}
Nuxt UI is now compatible with Vue! You can follow the [installation guide](/getting-started/installation) to get started.
:::
:::accordion-item{label="What about Nuxt UI Pro?" icon="i-lucide-circle-help"}
:::accordion-item{label="What about Nuxt UI Pro?" icon="lucide-circle-help"}
We've also rebuilt Nuxt UI Pro from scratch and released a `v3.0.0-alpha.x` package but it only contains the components to build this documentation yet. This will be a free update, so the license you buy now will be valid for v3. We're actively working to finish the rewrite of all Nuxt UI Pro components.
:::
@@ -148,7 +148,7 @@ class: "[&>div]:*:my-0 [&>div]:*:w-full"
---
:::card
---
icon: i-simple-icons-github
icon: simple-icons-github
target: _blank
title: Dashboard
to: https://github.com/nuxt-ui-pro/dashboard
@@ -161,7 +161,7 @@ class: "[&>div]:*:my-0 [&>div]:*:w-full"
::card
---
title: Dashboard
icon: i-simple-icons-github
icon: simple-icons-github
to: https://github.com/nuxt-ui-pro/dashboard
target: _blank
---
@@ -178,7 +178,7 @@ Use `card-group` to arrange cards in a grid layout. `card-group` is ideal for di
:::card-group{.w-full}
::::card
---
icon: i-simple-icons-github
icon: simple-icons-github
target: _blank
title: Dashboard
to: https://github.com/nuxt-ui-pro/dashboard
@@ -188,7 +188,7 @@ Use `card-group` to arrange cards in a grid layout. `card-group` is ideal for di
::::card
---
icon: i-simple-icons-github
icon: simple-icons-github
target: _blank
title: SaaS
to: https://github.com/nuxt-ui-pro/saas
@@ -198,7 +198,7 @@ Use `card-group` to arrange cards in a grid layout. `card-group` is ideal for di
::::card
---
icon: i-simple-icons-github
icon: simple-icons-github
target: _blank
title: Docs
to: https://github.com/nuxt-ui-pro/docs
@@ -208,7 +208,7 @@ Use `card-group` to arrange cards in a grid layout. `card-group` is ideal for di
::::card
---
icon: i-simple-icons-github
icon: simple-icons-github
target: _blank
title: Landing
to: https://github.com/nuxt-ui-pro/landing
@@ -224,7 +224,7 @@ Use `card-group` to arrange cards in a grid layout. `card-group` is ideal for di
::card
---
title: Dashboard
icon: i-simple-icons-github
icon: simple-icons-github
to: https://github.com/nuxt-ui-pro/dashboard
target: _blank
---
@@ -234,7 +234,7 @@ A dashboard with multi-column layout.
::card
---
title: SaaS
icon: i-simple-icons-github
icon: simple-icons-github
to: https://github.com/nuxt-ui-pro/saas
target: _blank
---
@@ -244,7 +244,7 @@ A template with landing, pricing, docs and blog.
::card
---
title: Docs
icon: i-simple-icons-github
icon: simple-icons-github
to: https://github.com/nuxt-ui-pro/docs
target: _blank
---
@@ -254,7 +254,7 @@ A documentation with `@nuxt/content`.
::card
---
title: Landing
icon: i-simple-icons-github
icon: simple-icons-github
to: https://github.com/nuxt-ui-pro/landing
target: _blank
---
@@ -362,13 +362,13 @@ Use `field-group` to group related fields together in a list. `field-group` help
Use `icon` to insert icons from icon libraries. Icons provide visual cues and enhance the user interface of your documentation.
::code-preview
:icon{name="i-simple-icons-nuxtdotjs"}
:icon{name="simple-icons-nuxtdotjs"}
#code
```mdc
:icon{name="i-simple-icons-nuxtdotjs"}
:icon{name="simple-icons-nuxtdotjs"}
```
::
@@ -397,7 +397,7 @@ Use `tabs` and `tabs-item` to organize content into tabbed interfaces. Tabs are
class: "[&>div]:*:my-0"
---
:::tabs{.w-full}
::::tabs-item{icon="i-lucide-code" label="Code"}
::::tabs-item{icon="lucide-code" label="Code"}
```mdc
::callout
Lorem velit voluptate ex reprehenderit ullamco et culpa.
@@ -405,7 +405,7 @@ class: "[&>div]:*:my-0"
```
::::
::::tabs-item{icon="i-lucide-eye" label="Preview"}
::::tabs-item{icon="lucide-eye" label="Preview"}
:::::callout
Lorem velit voluptate ex reprehenderit ullamco et culpa.
:::::
@@ -416,7 +416,7 @@ class: "[&>div]:*:my-0"
````mdc
::tabs
:::tabs-item{label="Code" icon="i-lucide-code"}
:::tabs-item{label="Code" icon="lucide-code"}
```mdc
::callout
@@ -426,7 +426,7 @@ Lorem velit voluptate ex reprehenderit ullamco et culpa.
:::
:::tabs-item{label="Preview" icon="i-lucide-eye"}
:::tabs-item{label="Preview" icon="lucide-eye"}
::::callout
Lorem velit voluptate ex reprehenderit ullamco et culpa.

View File

@@ -2,7 +2,7 @@
title: Images and Embeds
description: Add image, video, and other HTML elements
navigation:
icon: i-lucide-image
icon: lucide-image
---
## Image

View File

@@ -2,7 +2,7 @@
title: Images and Embeds
description: Add image, video, and other HTML elements
navigation:
icon: i-lucide-image
icon: lucide-image
---
## Image

View File

@@ -2,7 +2,7 @@
title: Images and Embeds
description: Add image, video, and other HTML elements
navigation:
icon: i-lucide-image
icon: lucide-image
---
## Image

View File

@@ -2,7 +2,7 @@
title: Images and Embeds
description: Add image, video, and other HTML elements
navigation:
icon: i-lucide-image
icon: lucide-image
---
## Image

View File

@@ -1,2 +1,2 @@
title: Getting Started
icon: i-lucide-book-open
icon: lucide-book-open

View File

@@ -2,7 +2,7 @@
title: Introduction
description: Welcome to Nuxt UI Pro documentation template.
navigation:
icon: i-lucide-house
icon: lucide-house
---
This template is a ready-to-use documentation template made with [Nuxt UI Pro](https://ui.nuxt.com/pro), a collection of premium components built on top of [Nuxt UI](https://ui.nuxt.com) to create beautiful & responsive Nuxt applications in minutes.
@@ -12,7 +12,7 @@ There are already many websites based on this template:
::card-group
:::card
---
icon: i-simple-icons-nuxtdotjs
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt
to: https://nuxt.com
@@ -22,7 +22,7 @@ There are already many websites based on this template:
:::card
---
icon: i-simple-icons-nuxtdotjs
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt UI
to: https://ui.nuxt.com
@@ -32,7 +32,7 @@ There are already many websites based on this template:
:::card
---
icon: i-simple-icons-nuxtdotjs
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt Image
to: https://image.nuxt.com
@@ -42,7 +42,7 @@ There are already many websites based on this template:
:::card
---
icon: i-simple-icons-nuxtdotjs
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt Content
to: https://content.nuxt.com
@@ -52,7 +52,7 @@ There are already many websites based on this template:
:::card
---
icon: i-simple-icons-nuxtdotjs
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt Devtools
to: https://devtools.nuxt.com
@@ -62,7 +62,7 @@ There are already many websites based on this template:
:::card
---
icon: i-simple-icons-nuxtdotjs
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt Hub
to: https://hub.nuxt.com

View File

@@ -2,7 +2,7 @@
title: Installation
description: Get started with Nuxt UI Pro documentation template.
navigation:
icon: i-lucide-download
icon: lucide-download
---
::tip{target="_blank" to="https://content.nuxt.com/templates/docs"}

View File

@@ -2,7 +2,7 @@
title: Usage
description: Learn how to write and customize your documentation.
navigation:
icon: i-lucide-sliders
icon: lucide-sliders
---
This is only a basic example of what you can achieve with [Nuxt UI Pro](https://ui.nuxt.com/pro/guide), you can tweak it to match your needs. The template uses several Nuxt modules underneath like [`@nuxt/content`](https://content.nuxt.com) for the content and [`nuxt-og-image`](https://nuxtseo.com/og-image/getting-started/installation) for social previews.
@@ -44,7 +44,7 @@ export default defineAppConfig({
colorMode: true,
// Customize links
links: [{
'icon': 'i-simple-icons-github',
'icon': 'simple-icons-github',
'to': 'https://github.com/nuxt-ui-pro/docs',
'target': '_blank',
'aria-label': 'GitHub'
@@ -64,22 +64,22 @@ export default defineAppConfig({
colorMode: false,
// Customize links
links: [{
'icon': 'i-simple-icons-nuxtdotjs',
'icon': 'simple-icons-nuxtdotjs',
'to': 'https://nuxt.com',
'target': '_blank',
'aria-label': 'Nuxt Website'
}, {
'icon': 'i-simple-icons-discord',
'icon': 'simple-icons-discord',
'to': 'https://discord.com/invite/ps2h6QT',
'target': '_blank',
'aria-label': 'Nuxt UI on Discord'
}, {
'icon': 'i-simple-icons-x',
'icon': 'simple-icons-x',
'to': 'https://x.com/nuxt_js',
'target': '_blank',
'aria-label': 'Nuxt on X'
}, {
'icon': 'i-simple-icons-github',
'icon': 'simple-icons-github',
'to': 'https://github.com/nuxt/ui',
'target': '_blank',
'aria-label': 'Nuxt UI on GitHub'
@@ -102,17 +102,17 @@ export default defineAppConfig({
// URL of your repository content folder
edit: 'https://github.com/nuxt-ui-pro/docs/edit/main/content',
links: [{
icon: 'i-lucide-star',
icon: 'lucide-star',
label: 'Star on GitHub',
to: 'https://github.com/nuxt/ui',
target: '_blank'
}, {
icon: 'i-lucide-book-open',
icon: 'lucide-book-open',
label: 'Nuxt UI Pro docs',
to: 'https://ui.nuxt.com/getting-started/installation/pro/nuxt',
target: '_blank'
}, {
icon: 'i-simple-icons-nuxtdotjs',
icon: 'simple-icons-nuxtdotjs',
label: 'Purchase a license',
to: 'https://ui.nuxt.com/pro/purchase',
target: '_blank'

View File

@@ -0,0 +1,3 @@
title: 无人自助系统
description: 一个简约但功能强大的开源文档系统
icon: lucide-rocket

View File

@@ -0,0 +1,126 @@
---
title: 入门指南
description: 欢迎使用简单文档
navigation:
icon: lucide-house
---
This template is a ready-to-use documentation template made with [Nuxt UI Pro](https://ui.nuxt.com/pro), a collection of premium components built on top of [Nuxt UI](https://ui.nuxt.com) to create beautiful & responsive Nuxt applications in minutes.
There are already many websites based on this template:
::button-link{right-icon="lucide:arrow-up-right" to="/getting-started" target="_blank"}
Get Started
::
::button-link{left-icon="lucide:github" variant="outline" to="https://github.com/ZTL-UwU/shadcn-docs-nuxt" target="_blank"}
GitHub
::
::button-link{left-icon="lucide:ghost" variant="ghost" href="https://github.com/ZTL-UwU/shadcn-docs-nuxt" blank}
Ghost
::
::FileTree
---
tree:
- app:
- components:
- Header.vue
- Footer.vue
- composables:
- useErrorHandler.ts
- ^app.vue^ # This is highlighted
- docs:
- index.md
---
::
::steps{level="4"}
#### Start a fresh new project
```bash [Terminal]
npx nuxi init -t github:nuxt-ui-pro/docus
```
#### Run docus CLI to run your dev server
```bash [Terminal]
docus dev
```
::
::card-group
:::card
---
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt
to: https://nuxt.com
---
The Nuxt website
:::
:::card
---
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt UI
to: https://ui.nuxt.com
---
The documentation of `@nuxt/ui` and `@nuxt/ui-pro`
:::
:::card
---
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt Image
to: https://image.nuxt.com
---
The documentation of `@nuxt/image`
:::
:::card
---
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt Content
to: https://content.nuxt.com
---
The documentation of `@nuxt/content`
:::
:::card
---
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt Devtools
to: https://devtools.nuxt.com
---
The documentation of `@nuxt/devtools`
:::
:::card
---
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt Hub
to: https://hub.nuxt.com
---
The best place to manage your projects, environments and variables.
:::
::
## Key Features
This template includes a range of features designed to streamline documentation management:
- **Powered by** [**Nuxt 3**](https://nuxt.com): Utilizes the latest Nuxt framework for optimal performance.
- **Built with** [**Nuxt UI**](https://ui.nuxt.com) **and** [**Nuxt UI Pro**](https://ui.nuxt.com/pro): Integrates a comprehensive suite of UI components.
- [**MDC Syntax**](https://content.nuxt.com/usage/markdown) **via** [**Nuxt Content**](https://content.nuxt.com): Supports Markdown with component integration for dynamic content.
- [**Nuxt Studio**](https://content.nuxt.com/docs/studio) **Compatible**: Offers integration with Nuxt Studio for content editing.
- **Auto-generated Sidebar Navigation**: Automatically generates navigation from content structure.
- **Full-Text Search**: Includes built-in search functionality for content discovery.
- **Optimized Typography**: Features refined typography for enhanced readability.
- **Dark Mode**: Offers dark mode support for user preference.
- **Extensive Functionality**: Explore the template to fully appreciate its capabilities.

View File

@@ -0,0 +1,29 @@
---
title: Installation
description: Get started with Nuxt UI Pro documentation template.
navigation:
icon: lucide-download
---
::tip{target="_blank" to="https://content.nuxt.com/templates/docs"}
Use this template on Nuxt Studio and start your documentation in seconds.
::
## Quick Start
You can start a fresh new project with:
```bash [Terminal]
npx nuxi init -t github:nuxt-ui-pro/docs
```
or create a new repository from GitHub:
1. Open <https://github.com/nuxt-ui-pro/docs>
2. Click on `Use this template` button
3. Enter repository name and click on `Create repository from template` button
4. Clone your new repository
5. Install dependencies with your favorite package manager
6. Start development server
That's it! You can now start writing your documentation in the [`content/`](https://content.nuxt.com/usage/content-directory) directory 🚀

View File

@@ -0,0 +1,35 @@
---
title: 进行测试
description: Learn how to write and customize your documentation.
navigation:
icon: lucide-sliders
---
# 这是一个H1标签
## 这是一个H2标签
### 这是一个H3标签
#### 这是一个H4标签
##### 这是一个H5标签
###### 这是一个H6标签
::field{name="Field" type="string" defaultValue="'default'" required}
The _description_ can be set as prop or in the default slot with full **markdown** support.
::

View File

@@ -0,0 +1,3 @@
title: 智慧物业系统
description: 一个简约但功能强大的开源文档系统
icon: lucide-rocket

View File

@@ -0,0 +1,126 @@
---
title: 入门指南
description: 欢迎使用简单文档
navigation:
icon: lucide-house
---
This template is a ready-to-use documentation template made with [Nuxt UI Pro](https://ui.nuxt.com/pro), a collection of premium components built on top of [Nuxt UI](https://ui.nuxt.com) to create beautiful & responsive Nuxt applications in minutes.
There are already many websites based on this template:
::button-link{right-icon="lucide:arrow-up-right" to="/getting-started" target="_blank"}
Get Started
::
::button-link{left-icon="lucide:github" variant="outline" to="https://github.com/ZTL-UwU/shadcn-docs-nuxt" target="_blank"}
GitHub
::
::button-link{left-icon="lucide:ghost" variant="ghost" href="https://github.com/ZTL-UwU/shadcn-docs-nuxt" blank}
Ghost
::
::FileTree
---
tree:
- app:
- components:
- Header.vue
- Footer.vue
- composables:
- useErrorHandler.ts
- ^app.vue^ # This is highlighted
- docs:
- index.md
---
::
::steps{level="4"}
#### Start a fresh new project
```bash [Terminal]
npx nuxi init -t github:nuxt-ui-pro/docus
```
#### Run docus CLI to run your dev server
```bash [Terminal]
docus dev
```
::
::card-group
:::card
---
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt
to: https://nuxt.com
---
The Nuxt website
:::
:::card
---
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt UI
to: https://ui.nuxt.com
---
The documentation of `@nuxt/ui` and `@nuxt/ui-pro`
:::
:::card
---
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt Image
to: https://image.nuxt.com
---
The documentation of `@nuxt/image`
:::
:::card
---
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt Content
to: https://content.nuxt.com
---
The documentation of `@nuxt/content`
:::
:::card
---
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt Devtools
to: https://devtools.nuxt.com
---
The documentation of `@nuxt/devtools`
:::
:::card
---
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt Hub
to: https://hub.nuxt.com
---
The best place to manage your projects, environments and variables.
:::
::
## Key Features
This template includes a range of features designed to streamline documentation management:
- **Powered by** [**Nuxt 3**](https://nuxt.com): Utilizes the latest Nuxt framework for optimal performance.
- **Built with** [**Nuxt UI**](https://ui.nuxt.com) **and** [**Nuxt UI Pro**](https://ui.nuxt.com/pro): Integrates a comprehensive suite of UI components.
- [**MDC Syntax**](https://content.nuxt.com/usage/markdown) **via** [**Nuxt Content**](https://content.nuxt.com): Supports Markdown with component integration for dynamic content.
- [**Nuxt Studio**](https://content.nuxt.com/docs/studio) **Compatible**: Offers integration with Nuxt Studio for content editing.
- **Auto-generated Sidebar Navigation**: Automatically generates navigation from content structure.
- **Full-Text Search**: Includes built-in search functionality for content discovery.
- **Optimized Typography**: Features refined typography for enhanced readability.
- **Dark Mode**: Offers dark mode support for user preference.
- **Extensive Functionality**: Explore the template to fully appreciate its capabilities.

View File

@@ -0,0 +1,29 @@
---
title: Installation
description: Get started with Nuxt UI Pro documentation template.
navigation:
icon: lucide-download
---
::tip{target="_blank" to="https://content.nuxt.com/templates/docs"}
Use this template on Nuxt Studio and start your documentation in seconds.
::
## Quick Start
You can start a fresh new project with:
```bash [Terminal]
npx nuxi init -t github:nuxt-ui-pro/docs
```
or create a new repository from GitHub:
1. Open <https://github.com/nuxt-ui-pro/docs>
2. Click on `Use this template` button
3. Enter repository name and click on `Create repository from template` button
4. Clone your new repository
5. Install dependencies with your favorite package manager
6. Start development server
That's it! You can now start writing your documentation in the [`content/`](https://content.nuxt.com/usage/content-directory) directory 🚀

View File

@@ -0,0 +1,35 @@
---
title: 进行测试
description: Learn how to write and customize your documentation.
navigation:
icon: lucide-sliders
---
# 这是一个H1标签
## 这是一个H2标签
### 这是一个H3标签
#### 这是一个H4标签
##### 这是一个H5标签
###### 这是一个H6标签
::field{name="Field" type="string" defaultValue="'default'" required}
The _description_ can be set as prop or in the default slot with full **markdown** support.
::

View File

@@ -0,0 +1,3 @@
title: 简约博客
description: 一个简约但功能强大的开源文档系统
icon: lucide-rocket

View File

@@ -0,0 +1,126 @@
---
title: 入门指南
description: 欢迎使用简单文档
navigation:
icon: lucide-house
---
This template is a ready-to-use documentation template made with [Nuxt UI Pro](https://ui.nuxt.com/pro), a collection of premium components built on top of [Nuxt UI](https://ui.nuxt.com) to create beautiful & responsive Nuxt applications in minutes.
There are already many websites based on this template:
::button-link{right-icon="lucide:arrow-up-right" to="/getting-started" target="_blank"}
Get Started
::
::button-link{left-icon="lucide:github" variant="outline" to="https://github.com/ZTL-UwU/shadcn-docs-nuxt" target="_blank"}
GitHub
::
::button-link{left-icon="lucide:ghost" variant="ghost" href="https://github.com/ZTL-UwU/shadcn-docs-nuxt" blank}
Ghost
::
::FileTree
---
tree:
- app:
- components:
- Header.vue
- Footer.vue
- composables:
- useErrorHandler.ts
- ^app.vue^ # This is highlighted
- docs:
- index.md
---
::
::steps{level="4"}
#### Start a fresh new project
```bash [Terminal]
npx nuxi init -t github:nuxt-ui-pro/docus
```
#### Run docus CLI to run your dev server
```bash [Terminal]
docus dev
```
::
::card-group
:::card
---
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt
to: https://nuxt.com
---
The Nuxt website
:::
:::card
---
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt UI
to: https://ui.nuxt.com
---
The documentation of `@nuxt/ui` and `@nuxt/ui-pro`
:::
:::card
---
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt Image
to: https://image.nuxt.com
---
The documentation of `@nuxt/image`
:::
:::card
---
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt Content
to: https://content.nuxt.com
---
The documentation of `@nuxt/content`
:::
:::card
---
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt Devtools
to: https://devtools.nuxt.com
---
The documentation of `@nuxt/devtools`
:::
:::card
---
icon: simple-icons-nuxtdotjs
target: _blank
title: Nuxt Hub
to: https://hub.nuxt.com
---
The best place to manage your projects, environments and variables.
:::
::
## Key Features
This template includes a range of features designed to streamline documentation management:
- **Powered by** [**Nuxt 3**](https://nuxt.com): Utilizes the latest Nuxt framework for optimal performance.
- **Built with** [**Nuxt UI**](https://ui.nuxt.com) **and** [**Nuxt UI Pro**](https://ui.nuxt.com/pro): Integrates a comprehensive suite of UI components.
- [**MDC Syntax**](https://content.nuxt.com/usage/markdown) **via** [**Nuxt Content**](https://content.nuxt.com): Supports Markdown with component integration for dynamic content.
- [**Nuxt Studio**](https://content.nuxt.com/docs/studio) **Compatible**: Offers integration with Nuxt Studio for content editing.
- **Auto-generated Sidebar Navigation**: Automatically generates navigation from content structure.
- **Full-Text Search**: Includes built-in search functionality for content discovery.
- **Optimized Typography**: Features refined typography for enhanced readability.
- **Dark Mode**: Offers dark mode support for user preference.
- **Extensive Functionality**: Explore the template to fully appreciate its capabilities.

View File

@@ -0,0 +1,29 @@
---
title: Installation
description: Get started with Nuxt UI Pro documentation template.
navigation:
icon: lucide-download
---
::tip{target="_blank" to="https://content.nuxt.com/templates/docs"}
Use this template on Nuxt Studio and start your documentation in seconds.
::
## Quick Start
You can start a fresh new project with:
```bash [Terminal]
npx nuxi init -t github:nuxt-ui-pro/docs
```
or create a new repository from GitHub:
1. Open <https://github.com/nuxt-ui-pro/docs>
2. Click on `Use this template` button
3. Enter repository name and click on `Create repository from template` button
4. Clone your new repository
5. Install dependencies with your favorite package manager
6. Start development server
That's it! You can now start writing your documentation in the [`content/`](https://content.nuxt.com/usage/content-directory) directory 🚀

View File

@@ -0,0 +1,35 @@
---
title: 进行测试
description: Learn how to write and customize your documentation.
navigation:
icon: lucide-sliders
---
# 这是一个H1标签
## 这是一个H2标签
### 这是一个H3标签
#### 这是一个H4标签
##### 这是一个H5标签
###### 这是一个H6标签
::field{name="Field" type="string" defaultValue="'default'" required}
The _description_ can be set as prop or in the default slot with full **markdown** support.
::

View File

@@ -30,7 +30,7 @@ Nuxt UI Pro is a collection of premium components built on top of Nuxt UI to cre
---
size: xl
to: /getting-started
trailing-icon: i-lucide-arrow-right
trailing-icon: lucide-arrow-right
---
Get started
:::
@@ -38,7 +38,7 @@ Nuxt UI Pro is a collection of premium components built on top of Nuxt UI to cre
:::u-button
---
color: neutral
icon: i-simple-icons-github
icon: simple-icons-github
size: xl
target: _blank
to: https://github.com/nuxt-ui-pro/docs
@@ -59,7 +59,7 @@ All-in-one documentation template
size: lg
target: _blank
to: https://ui.nuxt.com/getting-started/installation/pro/nuxt
trailingIcon: i-lucide-arrow-right
trailingIcon: lucide-arrow-right
variant: subtle
---
Discover Nuxt UI Pro v3
@@ -68,7 +68,7 @@ All-in-one documentation template
#features
:::u-page-feature
---
icon: i-simple-icons-nuxt
icon: simple-icons-nuxt
target: _blank
to: https://nuxt.com
---
@@ -81,7 +81,7 @@ All-in-one documentation template
:::u-page-feature
---
icon: i-simple-icons-markdown
icon: simple-icons-markdown
target: _blank
to: https://content.nuxt.com
---
@@ -94,7 +94,7 @@ All-in-one documentation template
:::u-page-feature
---
icon: i-lucide-sparkles
icon: lucide-sparkles
target: _blank
to: https://ui.nuxt.com
---
@@ -107,7 +107,7 @@ All-in-one documentation template
:::u-page-feature
---
icon: i-simple-icons-typescript
icon: simple-icons-typescript
target: _blank
to: https://www.typescriptlang.org
---
@@ -120,7 +120,7 @@ All-in-one documentation template
:::u-page-feature
---
icon: i-simple-icons-nuxtdotjs
icon: simple-icons-nuxtdotjs
target: _blank
to: https://content.nuxt.com/docs/studio
---
@@ -133,7 +133,7 @@ All-in-one documentation template
:::u-page-feature
---
icon: i-lucide-search
icon: lucide-search
target: _blank
to: https://ui.nuxt.com/components/content-search
---
@@ -152,11 +152,11 @@ All-in-one documentation template
- label: Buy now
to: https://ui.nuxt.com/pro/purchase
target: _blank
icon: i-lucide-shopping-cart
icon: lucide-shopping-cart
color: neutral
- label: License
to: https://ui.nuxt.com/getting-started/license
trailingIcon: i-lucide-circle-help
trailingIcon: lucide-circle-help
target: _blank
color: neutral
variant: subtle

View File

@@ -54,32 +54,9 @@ export default defineNuxtConfig({
},
icon: {
provider: 'iconify'
},
llms: {
domain: 'https://docs-template.nuxt.dev/',
title: 'Nuxt Docs Template',
description: 'A template for building documentation with Nuxt UI Pro and Nuxt Content.',
full: {
title: 'Nuxt Docs Template - Full Documentation',
description: 'This is the full documentation for the Nuxt Docs Template.'
clientBundle: {
scan: true,
sizeLimitKb: 512,
},
sections: [
{
title: 'Getting Started',
contentCollection: 'docs',
contentFilters: [
{ field: 'path', operator: 'LIKE', value: '/getting-started%' }
]
},
{
title: 'Essentials',
contentCollection: 'docs',
contentFilters: [
{ field: 'path', operator: 'LIKE', value: '/essentials%' }
]
}
]
}
},
})

View File

@@ -40,42 +40,42 @@ export default defineNuxtSchema({
title: 'Search Bar',
description: 'Icon to display in the search bar.',
icon: 'i-mdi-magnify',
default: 'i-lucide-search'
default: 'lucide-search'
}),
dark: field({
type: 'icon',
title: 'Dark mode',
description: 'Icon of color mode button for dark mode.',
icon: 'i-mdi-moon-waning-crescent',
default: 'i-lucide-moon'
default: 'lucide-moon'
}),
light: field({
type: 'icon',
title: 'Light mode',
description: 'Icon of color mode button for light mode.',
icon: 'i-mdi-white-balance-sunny',
default: 'i-lucide-sun'
default: 'lucide-sun'
}),
external: field({
type: 'icon',
title: 'External Link',
description: 'Icon for external link.',
icon: 'i-mdi-arrow-top-right',
default: 'i-lucide-external-link'
default: 'lucide-external-link'
}),
chevron: field({
type: 'icon',
title: 'Chevron',
description: 'Icon for chevron.',
icon: 'i-mdi-chevron-down',
default: 'i-lucide-chevron-down'
default: 'lucide-chevron-down'
}),
hash: field({
type: 'icon',
title: 'Hash',
description: 'Icon for hash anchors.',
icon: 'i-ph-hash',
default: 'i-lucide-hash'
default: 'lucide-hash'
})
}
})

View File

@@ -1,8 +1,28 @@
{
"name": "nuxt-ui-pro-template-docs",
"name": "Estel Docs",
"private": true,
"type": "module",
"scripts": {
"description": "简约文档,但功能强大",
"packageManager": "pnpm@10.13.1",
"author": "Estel",
"license": "MIT",
"version": "1.0.0",
"homepage": "https://lijue.me",
"repository": {
"type": "git",
"url": "https://github.com/estel-li/estel-docs"
},
"keywords": [
"markdown",
"docs",
"vue",
"nuxt",
"documentation-tool",
"nuxt-content",
"shadcn-vue"
],
"main": "./nuxt.config.ts",
"scripts": {
"build": "nuxt build",
"dev": "nuxt dev",
"generate": "nuxt generate",
@@ -12,21 +32,28 @@
"typecheck": "nuxt typecheck"
},
"dependencies": {
"@iconify-json/lucide": "^1.2.57",
"@iconify-json/simple-icons": "^1.2.43",
"@iconify-json/vscode-icons": "^1.2.23",
"@iconify/utils": "^2.3.0",
"@nuxt/content": "^3.6.3",
"@nuxt/image": "^1.10.0",
"@nuxt/ui-pro": "^3.2.0",
"better-sqlite3": "^12.2.0",
"nuxt": "^4.0.1",
"nuxt-llms": "0.1.3",
"nuxt-og-image": "^5.1.9"
"nuxt-og-image": "^5.1.9",
"{collection_name}": "link:@iconify-json/{collection_name}"
},
"devDependencies": {
"@iconify-json/lucide": "^1.2.57",
"@iconify-json/simple-icons": "^1.2.43",
"@nuxt/eslint": "^1.5.2",
"@nuxt/fonts": "^0.11.4",
"@nuxt/icon": "^1.15.0",
"@vueuse/core": "^13.5.0",
"eslint": "^9.31.0",
"lucide": "^0.526.0",
"typescript": "^5.8.3",
"vue": "^3.5.17",
"vue-tsc": "^3.0.1"
},
"resolutions": {
@@ -39,6 +66,5 @@
"ignoredBuiltDependencies": [
"vue-demi"
]
},
"packageManager": "pnpm@10.13.1"
}
}

33
patch-ui-pro.zsh Executable file
View File

@@ -0,0 +1,33 @@
# 绕过 UI Pro 的 License 验证
set -euo pipefail
# 1. 禁用 module.mjs 的调用
MODULE="node_modules/@nuxt/ui-pro/dist/module.mjs"
if [[ -f $MODULE ]]; then
sed -i.bak '/await validateLicense({.*rootDir })/s/^/\/\//; /^await validateLicense({.*rootDir })/s/^/\/\//' "$MODULE"
rm -f "$MODULE.bak"
echo "✅ module.mjs 已屏蔽"
fi
# 2. 直接“替换函数” fake 200
SHARED="node_modules/@nuxt/ui-pro/dist/shared"
JS=$(find "$SHARED" -maxdepth 1 -name 'ui-pro.*.mjs' | head -n1)
[[ -z $JS || ! -f $JS ]] && { echo "⚠️ ui-pro.*.mjs 未找到"; exit 0; }
cat <<'EOF' > tmp_func.mjs
async function validateLicense(opts) {
/* --- patched --- */
return { status: 200 }
}
EOF
sed -i.bak '/^async function validateLicense[^(]*(/,/^\}$/c\
async function validateLicense(opts) {\
/* --- patched --- */\
return { status: 200 }\
}\
' "$JS"
rm -f "$JS.bak" tmp_func.mjs
echo "$JS 已 mock 完成"
echo "🎉 License ⛔ Done!"

95
pnpm-lock.yaml generated
View File

@@ -11,15 +11,12 @@ importers:
.:
dependencies:
'@iconify-json/lucide':
specifier: ^1.2.57
version: 1.2.57
'@iconify-json/simple-icons':
specifier: ^1.2.43
version: 1.2.43
'@iconify-json/vscode-icons':
specifier: ^1.2.23
version: 1.2.23
'@iconify/utils':
specifier: ^2.3.0
version: 2.3.0
'@nuxt/content':
specifier: ^3.6.3
version: 3.6.3(better-sqlite3@12.2.0)(magicast@0.3.5)(vue-component-type-helpers@2.2.10)
@@ -41,16 +38,40 @@ importers:
nuxt-og-image:
specifier: ^5.1.9
version: 5.1.9(@unhead/vue@2.0.12(vue@3.5.17(typescript@5.8.3)))(magicast@0.3.5)(unstorage@1.16.1(@netlify/blobs@9.1.2)(db0@0.3.2(better-sqlite3@12.2.0))(ioredis@5.6.1))(vite@7.0.6(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))
'{collection_name}':
specifier: link:@iconify-json/{collection_name}
version: link:@iconify-json/{collection_name}
devDependencies:
'@iconify-json/lucide':
specifier: ^1.2.57
version: 1.2.57
'@iconify-json/simple-icons':
specifier: ^1.2.43
version: 1.2.43
'@nuxt/eslint':
specifier: ^1.5.2
version: 1.5.2(@vue/compiler-sfc@3.5.17)(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2)))(eslint@9.31.0(jiti@2.4.2))(magicast@0.3.5)(typescript@5.8.3)(vite@7.0.6(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))
'@nuxt/fonts':
specifier: ^0.11.4
version: 0.11.4(@netlify/blobs@9.1.2)(db0@0.3.2(better-sqlite3@12.2.0))(ioredis@5.6.1)(magicast@0.3.5)(vite@7.0.6(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))
'@nuxt/icon':
specifier: ^1.15.0
version: 1.15.0(magicast@0.3.5)(vite@7.0.6(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))
'@vueuse/core':
specifier: ^13.5.0
version: 13.5.0(vue@3.5.17(typescript@5.8.3))
eslint:
specifier: ^9.31.0
version: 9.31.0(jiti@2.4.2)
lucide:
specifier: ^0.526.0
version: 0.526.0
typescript:
specifier: ^5.8.3
version: 5.8.3
vue:
specifier: ^3.5.17
version: 3.5.17(typescript@5.8.3)
vue-tsc:
specifier: ^3.0.1
version: 3.0.1(typescript@5.8.3)
@@ -1165,36 +1186,42 @@ packages:
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@oxc-minify/binding-linux-arm64-musl@0.77.3':
resolution: {integrity: sha512-GWa6MyEIwrDfEruj9SmIi/eG0XyEPSSupbltCL2k/cYgb+aUl1lT3sJLbOlKZqBbTzpuouAd+CkDqz+8UH/0qA==}
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [linux]
libc: [musl]
'@oxc-minify/binding-linux-riscv64-gnu@0.77.3':
resolution: {integrity: sha512-Wj1h95rGfMMVu0NMBNzo56WaB+z/mBVFRF4ij4Dbf2oBy4o3qDe2Q5Doa5U5c1k/uJbsM1X/mV7vqqgkHdORBA==}
engines: {node: '>=14.0.0'}
cpu: [riscv64]
os: [linux]
libc: [glibc]
'@oxc-minify/binding-linux-s390x-gnu@0.77.3':
resolution: {integrity: sha512-xTIGeZZoOfa7c4FU+1OcZTk73W/0YD2m3Zwg4p0Wtch+0Z6VRyu/7CENjBXpCRkWF4C8sgvl6d8ZKOzF5wU+Dw==}
engines: {node: '>=14.0.0'}
cpu: [s390x]
os: [linux]
libc: [glibc]
'@oxc-minify/binding-linux-x64-gnu@0.77.3':
resolution: {integrity: sha512-YkgfAVmdtPMqJO/elfYBstnwGjD2P0SJwAs02c84/1JKRemrjSKqSewg3ETFIpo43c6b0g9OtoWj47Wwpnka7A==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [linux]
libc: [glibc]
'@oxc-minify/binding-linux-x64-musl@0.77.3':
resolution: {integrity: sha512-//A5mBFmxvV+JzqI2/94SFpEF+nev0I/urXwhYPe8qzCYTlnzwxodH0Yb6js+BgebqiPdYs6YEp5Q2C/6OgsbA==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [linux]
libc: [musl]
'@oxc-minify/binding-wasm32-wasi@0.77.3':
resolution: {integrity: sha512-4RCG1ZZyEyKIaZE2vXyFnVocDF1jIbfE/f5qbb1l0Wql2s4K5m1QDkKqPAVPuCmYiJ6+X2HyWus5QGqgnUKrXA==}
@@ -1254,36 +1281,42 @@ packages:
engines: {node: '>=20.0.0'}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@oxc-parser/binding-linux-arm64-musl@0.77.3':
resolution: {integrity: sha512-1DNLBoJ6fsEdymD8Q4bo5zXkK0gw3ZMkEZ+F5w+7OrJOiQqzp8JzCQ6HRmSsJgjvaXzBvy95nCH2RegoeSN9JQ==}
engines: {node: '>=20.0.0'}
cpu: [arm64]
os: [linux]
libc: [musl]
'@oxc-parser/binding-linux-riscv64-gnu@0.77.3':
resolution: {integrity: sha512-Lv0RQCHRKezkDzNPXoPuB7KTnK7ktw3OgyuZmNJKFGmZRFjlm8w+sEhAiE8XaCGqoOA6ivNIRSheUYeFNpAANA==}
engines: {node: '>=20.0.0'}
cpu: [riscv64]
os: [linux]
libc: [glibc]
'@oxc-parser/binding-linux-s390x-gnu@0.77.3':
resolution: {integrity: sha512-Q0sOdRzyhhUaATgtSR7lG23SvalRI9/7oVAWArU/8fEXCU9NsfKnpeuXsgT/N5lG4mgcbhUrnGzKaOzYcaatdQ==}
engines: {node: '>=20.0.0'}
cpu: [s390x]
os: [linux]
libc: [glibc]
'@oxc-parser/binding-linux-x64-gnu@0.77.3':
resolution: {integrity: sha512-ckcntxRTyPE+4nnCDnc9t4kiO1CSs5jOR7Qe7KLStkU9SPQkUZyjNP2aSaHre+iQha5xXABag9pamqb0dOY/PQ==}
engines: {node: '>=20.0.0'}
cpu: [x64]
os: [linux]
libc: [glibc]
'@oxc-parser/binding-linux-x64-musl@0.77.3':
resolution: {integrity: sha512-jrKtGQrjcocnWpUIxJ3qzb0WpLGcDZoQTen/CZ5QtuwFA5EudM5rAJMt+SQpYYL4UPK0CPm8G5ZWJXqernLe1A==}
engines: {node: '>=20.0.0'}
cpu: [x64]
os: [linux]
libc: [musl]
'@oxc-parser/binding-wasm32-wasi@0.77.3':
resolution: {integrity: sha512-76f53rr4Dz7A/FdUaM1NegHsQqT2w8CDBnRCptzapVA8humKA/tlJ24XfLvvr76JeT/OSKXorPyJ5xyGCa+yQg==}
@@ -1346,36 +1379,42 @@ packages:
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@oxc-transform/binding-linux-arm64-musl@0.77.3':
resolution: {integrity: sha512-Fq72ARLt8iriotueGp7zaWjFpfYBpRS5WElmAtpZLIy/p1dNwBEDhVUIjAl+sU14y0odp+yaTRHM7ULnMYGZhQ==}
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [linux]
libc: [musl]
'@oxc-transform/binding-linux-riscv64-gnu@0.77.3':
resolution: {integrity: sha512-jtq6JREdyZ6xdTFJGM5Gm068WCkoMwh3Fkm08rZ2TAu4qjISdkJvTQ1wiEDDz2F8sqAdmASDqxnE/2DJ6Z6Clg==}
engines: {node: '>=14.0.0'}
cpu: [riscv64]
os: [linux]
libc: [glibc]
'@oxc-transform/binding-linux-s390x-gnu@0.77.3':
resolution: {integrity: sha512-HQz++ZmT9xWU9KS24DE+8oVTeUPd/JQkbjL2uvr0+SWY3loPnLG3kFAOLE/xXgYG/0D24mZylbZUwhzYND4snw==}
engines: {node: '>=14.0.0'}
cpu: [s390x]
os: [linux]
libc: [glibc]
'@oxc-transform/binding-linux-x64-gnu@0.77.3':
resolution: {integrity: sha512-GcuFDJf/pxrfd2hq+gBytlnr/hiPn36JxuPXP0nToNG4SNa1gHT8K0bDxZuN2UjmZlWmIC8ELDdpVcNeZON+lQ==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [linux]
libc: [glibc]
'@oxc-transform/binding-linux-x64-musl@0.77.3':
resolution: {integrity: sha512-unhkqVg/jb/kghmiMCto8AGKm3uBwH2P5/GwR8jZkBjSFX7ekNu6/8P5IuIs5KDiZXzcjww84vCzQVBlql6WkA==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [linux]
libc: [musl]
'@oxc-transform/binding-wasm32-wasi@0.77.3':
resolution: {integrity: sha512-FOGQzHLYpf1Yx0KpaqRz9cuXwvlTu8RprjL1NLpuUKT/D7O3SThm+qhFX3El9RFj67jrSCcHhlElYCJB2p794g==}
@@ -1423,36 +1462,42 @@ packages:
engines: {node: '>= 10.0.0'}
cpu: [arm]
os: [linux]
libc: [glibc]
'@parcel/watcher-linux-arm-musl@2.5.1':
resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==}
engines: {node: '>= 10.0.0'}
cpu: [arm]
os: [linux]
libc: [musl]
'@parcel/watcher-linux-arm64-glibc@2.5.1':
resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@parcel/watcher-linux-arm64-musl@2.5.1':
resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [linux]
libc: [musl]
'@parcel/watcher-linux-x64-glibc@2.5.1':
resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [linux]
libc: [glibc]
'@parcel/watcher-linux-x64-musl@2.5.1':
resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [linux]
libc: [musl]
'@parcel/watcher-wasm@2.5.1':
resolution: {integrity: sha512-RJxlQQLkaMMIuWRozy+z2vEqbaQlCuaCgVZIUCzQLYggY22LZbP5Y1+ia+FD724Ids9e+XIyOLXLrLgQSHIthw==}
@@ -1533,24 +1578,28 @@ packages:
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@resvg/resvg-js-linux-arm64-musl@2.6.2':
resolution: {integrity: sha512-3h3dLPWNgSsD4lQBJPb4f+kvdOSJHa5PjTYVsWHxLUzH4IFTJUAnmuWpw4KqyQ3NA5QCyhw4TWgxk3jRkQxEKg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
libc: [musl]
'@resvg/resvg-js-linux-x64-gnu@2.6.2':
resolution: {integrity: sha512-IVUe+ckIerA7xMZ50duAZzwf1U7khQe2E0QpUxu5MBJNao5RqC0zwV/Zm965vw6D3gGFUl7j4m+oJjubBVoftw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
libc: [glibc]
'@resvg/resvg-js-linux-x64-musl@2.6.2':
resolution: {integrity: sha512-UOf83vqTzoYQO9SZ0fPl2ZIFtNIz/Rr/y+7X8XRX1ZnBYsQ/tTb+cj9TE+KHOdmlTFBxhYzVkP2lRByCzqi4jQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
libc: [musl]
'@resvg/resvg-js-win32-arm64-msvc@2.6.2':
resolution: {integrity: sha512-7C/RSgCa+7vqZ7qAbItfiaAWhyRSoD4l4BQAbVDqRRsRgY+S+hgS3in0Rxr7IorKUpGE69X48q6/nOAuTJQxeQ==}
@@ -1690,56 +1739,67 @@ packages:
resolution: {integrity: sha512-RkdOTu2jK7brlu+ZwjMIZfdV2sSYHK2qR08FUWcIoqJC2eywHbXr0L8T/pONFwkGukQqERDheaGTeedG+rra6Q==}
cpu: [arm]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-arm-musleabihf@4.45.1':
resolution: {integrity: sha512-3kJ8pgfBt6CIIr1o+HQA7OZ9mp/zDk3ctekGl9qn/pRBgrRgfwiffaUmqioUGN9hv0OHv2gxmvdKOkARCtRb8Q==}
cpu: [arm]
os: [linux]
libc: [musl]
'@rollup/rollup-linux-arm64-gnu@4.45.1':
resolution: {integrity: sha512-k3dOKCfIVixWjG7OXTCOmDfJj3vbdhN0QYEqB+OuGArOChek22hn7Uy5A/gTDNAcCy5v2YcXRJ/Qcnm4/ma1xw==}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-arm64-musl@4.45.1':
resolution: {integrity: sha512-PmI1vxQetnM58ZmDFl9/Uk2lpBBby6B6rF4muJc65uZbxCs0EA7hhKCk2PKlmZKuyVSHAyIw3+/SiuMLxKxWog==}
cpu: [arm64]
os: [linux]
libc: [musl]
'@rollup/rollup-linux-loongarch64-gnu@4.45.1':
resolution: {integrity: sha512-9UmI0VzGmNJ28ibHW2GpE2nF0PBQqsyiS4kcJ5vK+wuwGnV5RlqdczVocDSUfGX/Na7/XINRVoUgJyFIgipoRg==}
cpu: [loong64]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-powerpc64le-gnu@4.45.1':
resolution: {integrity: sha512-7nR2KY8oEOUTD3pBAxIBBbZr0U7U+R9HDTPNy+5nVVHDXI4ikYniH1oxQz9VoB5PbBU1CZuDGHkLJkd3zLMWsg==}
cpu: [ppc64]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-riscv64-gnu@4.45.1':
resolution: {integrity: sha512-nlcl3jgUultKROfZijKjRQLUu9Ma0PeNv/VFHkZiKbXTBQXhpytS8CIj5/NfBeECZtY2FJQubm6ltIxm/ftxpw==}
cpu: [riscv64]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-riscv64-musl@4.45.1':
resolution: {integrity: sha512-HJV65KLS51rW0VY6rvZkiieiBnurSzpzore1bMKAhunQiECPuxsROvyeaot/tcK3A3aGnI+qTHqisrpSgQrpgA==}
cpu: [riscv64]
os: [linux]
libc: [musl]
'@rollup/rollup-linux-s390x-gnu@4.45.1':
resolution: {integrity: sha512-NITBOCv3Qqc6hhwFt7jLV78VEO/il4YcBzoMGGNxznLgRQf43VQDae0aAzKiBeEPIxnDrACiMgbqjuihx08OOw==}
cpu: [s390x]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-x64-gnu@4.45.1':
resolution: {integrity: sha512-+E/lYl6qu1zqgPEnTrs4WysQtvc/Sh4fC2nByfFExqgYrqkKWp1tWIbe+ELhixnenSpBbLXNi6vbEEJ8M7fiHw==}
cpu: [x64]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-x64-musl@4.45.1':
resolution: {integrity: sha512-a6WIAp89p3kpNoYStITT9RbTbTnqarU7D8N8F2CV+4Cl9fwCOZraLVuVFvlpsW0SbIiYtEnhCZBPLoNdRkjQFw==}
cpu: [x64]
os: [linux]
libc: [musl]
'@rollup/rollup-win32-arm64-msvc@4.45.1':
resolution: {integrity: sha512-T5Bi/NS3fQiJeYdGvRpTAP5P02kqSOpqiopwhj0uaXB6nzs5JVi2XMJb18JUSKhCOX8+UE1UKQufyD6Or48dJg==}
@@ -1864,24 +1924,28 @@ packages:
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@tailwindcss/oxide-linux-arm64-musl@4.1.11':
resolution: {integrity: sha512-m/NVRFNGlEHJrNVk3O6I9ggVuNjXHIPoD6bqay/pubtYC9QIdAMpS+cswZQPBLvVvEF6GtSNONbDkZrjWZXYNQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
libc: [musl]
'@tailwindcss/oxide-linux-x64-gnu@4.1.11':
resolution: {integrity: sha512-YW6sblI7xukSD2TdbbaeQVDysIm/UPJtObHJHKxDEcW2exAtY47j52f8jZXkqE1krdnkhCMGqP3dbniu1Te2Fg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
libc: [glibc]
'@tailwindcss/oxide-linux-x64-musl@4.1.11':
resolution: {integrity: sha512-e3C/RRhGunWYNC3aSF7exsQkdXzQ/M+aYuZHKnw4U7KQwTJotnWsGOIVih0s2qQzmEzOFIJ3+xt7iq67K/p56Q==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
libc: [musl]
'@tailwindcss/oxide-wasm32-wasi@4.1.11':
resolution: {integrity: sha512-Xo1+/GU0JEN/C/dvcammKHzeM6NqKovG+6921MR6oadee5XPBaKOumrJCXvopJ/Qb5TH7LX/UAywbqrP4lax0g==}
@@ -2118,41 +2182,49 @@ packages:
resolution: {integrity: sha512-UYA0MA8ajkEDCFRQdng/FVx3F6szBvk3EPnkTTQuuO9lV1kPGuTB+V9TmbDxy5ikaEgyWKxa4CI3ySjklZ9lFA==}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@unrs/resolver-binding-linux-arm64-musl@1.9.2':
resolution: {integrity: sha512-P/CO3ODU9YJIHFqAkHbquKtFst0COxdphc8TKGL5yCX75GOiVpGqd1d15ahpqu8xXVsqP4MGFP2C3LRZnnL5MA==}
cpu: [arm64]
os: [linux]
libc: [musl]
'@unrs/resolver-binding-linux-ppc64-gnu@1.9.2':
resolution: {integrity: sha512-uKStFlOELBxBum2s1hODPtgJhY4NxYJE9pAeyBgNEzHgTqTiVBPjfTlPFJkfxyTjQEuxZbbJlJnMCrRgD7ubzw==}
cpu: [ppc64]
os: [linux]
libc: [glibc]
'@unrs/resolver-binding-linux-riscv64-gnu@1.9.2':
resolution: {integrity: sha512-LkbNnZlhINfY9gK30AHs26IIVEZ9PEl9qOScYdmY2o81imJYI4IMnJiW0vJVtXaDHvBvxeAgEy5CflwJFIl3tQ==}
cpu: [riscv64]
os: [linux]
libc: [glibc]
'@unrs/resolver-binding-linux-riscv64-musl@1.9.2':
resolution: {integrity: sha512-vI+e6FzLyZHSLFNomPi+nT+qUWN4YSj8pFtQZSFTtmgFoxqB6NyjxSjAxEC1m93qn6hUXhIsh8WMp+fGgxCoRg==}
cpu: [riscv64]
os: [linux]
libc: [musl]
'@unrs/resolver-binding-linux-s390x-gnu@1.9.2':
resolution: {integrity: sha512-sSO4AlAYhSM2RAzBsRpahcJB1msc6uYLAtP6pesPbZtptF8OU/CbCPhSRW6cnYOGuVmEmWVW5xVboAqCnWTeHQ==}
cpu: [s390x]
os: [linux]
libc: [glibc]
'@unrs/resolver-binding-linux-x64-gnu@1.9.2':
resolution: {integrity: sha512-jkSkwch0uPFva20Mdu8orbQjv2A3G88NExTN2oPTI1AJ+7mZfYW3cDCTyoH6OnctBKbBVeJCEqh0U02lTkqD5w==}
cpu: [x64]
os: [linux]
libc: [glibc]
'@unrs/resolver-binding-linux-x64-musl@1.9.2':
resolution: {integrity: sha512-Uk64NoiTpQbkpl+bXsbeyOPRpUoMdcUqa+hDC1KhMW7aN1lfW8PBlBH4mJ3n3Y47dYE8qi0XTxy1mBACruYBaw==}
cpu: [x64]
os: [linux]
libc: [musl]
'@unrs/resolver-binding-wasm32-wasi@1.9.2':
resolution: {integrity: sha512-EpBGwkcjDicjR/ybC0g8wO5adPNdVuMrNalVgYcWi+gYtC1XYNuxe3rufcO7dA76OHGeVabcO6cSkPJKVcbCXQ==}
@@ -4168,24 +4240,28 @@ packages:
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
libc: [glibc]
lightningcss-linux-arm64-musl@1.30.1:
resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
libc: [musl]
lightningcss-linux-x64-gnu@1.30.1:
resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
libc: [glibc]
lightningcss-linux-x64-musl@1.30.1:
resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
libc: [musl]
lightningcss-win32-arm64-msvc@1.30.1:
resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==}
@@ -4267,6 +4343,9 @@ packages:
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
lucide@0.526.0:
resolution: {integrity: sha512-qcefehq2iyryHABeJNDRPxHRtdzWYxB0XVyWnxNjpmO9FtTupLBBc0Q3PFHGyjlmZUxDWr4q1nNepBIkjHeIbA==}
luxon@3.6.1:
resolution: {integrity: sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ==}
engines: {node: '>=12'}
@@ -7429,7 +7508,7 @@ snapshots:
consola: 3.4.2
css-tree: 3.1.0
defu: 6.1.4
esbuild: 0.25.6
esbuild: 0.25.8
fontaine: 0.6.0
h3: 1.15.3
jiti: 2.4.2
@@ -10994,6 +11073,8 @@ snapshots:
dependencies:
yallist: 3.1.1
lucide@0.526.0: {}
luxon@3.6.1: {}
magic-regexp@0.10.0: