<script setup lang="ts">
{cursor}
</script>
<template>
  <Html lang="en">
    <Body>
      <NuxtLayout>
        <NuxtPage />
      </NuxtLayout>
    </Body>
  </Html>
</template>
<style scoped>
</style>
const title = 'Your Page Title'
const description = 'Your page description'
const image = 'https://yoursite.com/og.png'
const url = 'https://yoursite.com'
useHead({
  titleTemplate: '%s | Your Site Name',
  meta: [
    { name: 'viewport', content: 'width=device-width, initial-scale=1.0' },
    { name: 'charset', content: 'utf-8' },
    { name: 'color-scheme', content: 'light dark' },
  ],
  link: [
    { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' },
    { rel: 'canonical', href: url },
  ],
})
useSeoMeta({
  title,
  description,
  ogTitle: title,
  ogDescription: description,
  ogImage: image,
  ogUrl: url,
  ogType: 'website',
  twitterCard: 'summary_large_image',
  twitterTitle: title,
  twitterDescription: description,
  twitterImage: image,
})
::component-code{pro}
---
hide:
  - class
props:
  class: ''
---
::
export function use{clipboard}() {
  const {clipboard} = ref(null);
  return {
   {clipboard}
  };
}
const route = useRoute()
const { data: page } = await useAsyncData(route.path, () => {
  return queryCollection('content').path(route.path).first()
})
icon: {
  customCollections: [
    {
      prefix: 'custom',
      dir: './app/assets/icons',
    },
  ],
  clientBundle: {
    scan: true,
    includeCustomCollections: true,
  }
},
const modelValue = defineModel({ required: true })
---
title: New Article
description:
image:
date: {date}
tags:
  - announcement
authors:
  - name:
    description:
    to:
    target: _blank
    avatar:
      src:
      alt:
---
# New Article
npx nuxi module add {cursor}
@import "tailwindcss";
@import "@nuxt/ui";
import { H3Event } from "h3";
export default defineEventHandler(async (event: H3Event) => {
  const body = await readBody(event);
  {cursor}
});
<script setup lang="ts">
defineProps<{
  test: string
}>()
</script>
<template>
  <div>
    Hello {{ test }}{cursor}
  </div>
</template>
<style scoped>
</style>
npx nuxi init {cursor} --template v4-compat
<script setup lang="ts">
const items = ref([
  {
    label: 'Profile',
    icon: 'i-lucide-user'
  },
  {
    label: 'Billing',
    icon: 'i-lucide-credit-card'
  },
  {
    label: 'Settings',
    icon: 'i-lucide-cog'
  }
])
</script>
<template>
  <UDropdownMenu
    :items="items"
    :content="{
      align: 'start',
      side: 'bottom',
      sideOffset: 8
    }"
    :ui="{
      content: 'w-48'
    }"
  >
    <UButton label="Open" icon="i-lucide-menu" color="neutral" variant="outline" />
  </UDropdownMenu>
</template>
<script setup lang="ts">
const value = ref(null)
</script>
<template>
  <UFileUpload v-model="value" class="w-96 min-h-48" />
</template>
<script setup lang="ts">
import * as z from 'zod'
import type { FormSubmitEvent } from '@nuxt/ui'
const schema = z.object({
  email: z.string().email('Invalid email'),
  password: z.string().min(8, 'Must be at least 8 characters')
})
type Schema = z.output<typeof schema>
const state = reactive<Partial<Schema>>({
  email: undefined,
  password: undefined
})
const toast = useToast()
async function onSubmit(event: FormSubmitEvent<Schema>) {
  toast.add({ title: 'Success', description: 'The form has been submitted.', color: 'success' })
  console.log(event.data)
}
</script>
<template>
  <UForm :schema="schema" :state="state" class="space-y-4" @submit="onSubmit">
    <UFormField label="Email" name="email">
      <UInput v-model="state.email" />
    </UFormField>
    <UFormField label="Password" name="password">
      <UInput v-model="state.password" type="password" />
    </UFormField>
    <UButton type="submit">
      Submit
    </UButton>
  </UForm>
</template>
export default defineAppConfig({
  ui: {
    colors: {
      primary: 'green',
      neutral: 'neutral'
    }
  }
})
<UModal>
  <UButton label="Open" color="neutral" variant="subtle" />
  <template #content>
    <UCard>
      <p>Hello World</p>
    </UCard>
  </template>
</UModal>
<script setup lang="ts">
const items = [
  {
    label: 'Guide',
    icon: 'i-lucide-book-open'
    },
  {
    label: 'Composables',
    icon: 'i-lucide-database'
  },
  {
    label: 'Components',
    icon: 'i-lucide-box',
    slot: 'components'
  }
]
</script>
<template>
  <UNavigationMenu :items="items" class="w-full justify-center">
    <template #components-trailing>
      <UBadge label="44" variant="subtle" size="sm" />
    </template>
  </UNavigationMenu>
</template>
<script setup lang="ts">
const items = ref([
  {
    label: 'Backlog',
    value: 'backlog'
  },
  {
    label: 'Todo',
    value: 'todo'
  },
  {
    label: 'In Progress',
    value: 'in_progress'
  },
  {
    label: 'Done',
    value: 'done'
  }
])
const value = ref('backlog')
</script>
<template>
  <USelect v-model="value" :items="items" class="w-48" />
</template>
<script setup lang="ts">
const items = ref([
  {
    label: 'Backlog'
  },
  {
    label: 'Todo'
  },
  {
    label: 'In Progress'
  },
  {
    label: 'Done'
  }
])
const value = ref({
  label: 'Todo'
})
</script>
<template>
  <USelectMenu v-model="value" :items="items" class="w-48" />
</template>
<UTooltip text="Open on GitHub">
  <UButton label="Open" color="neutral" variant="subtle" />
</UTooltip>