diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index 2005df39..6a2af8cf 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -1,5 +1,4 @@
-const process = require('node:process')
-
+// const process = require('node:process')
// process.env.ESLINT_TSCONFIG = 'tsconfig.json'
module.exports = {
@@ -8,6 +7,7 @@ module.exports = {
rules: {
'vue/one-component-per-file': 'off',
'vue/no-reserved-component-names': 'off',
+ 'vue/no-useless-v-bind': 'off',
'symbol-description': 'off',
'no-console': 'warn',
'no-tabs': 'off',
diff --git a/apps/www/.vitepress/config.mts b/apps/www/.vitepress/config.mts
index 5673e83a..78e6b8e1 100644
--- a/apps/www/.vitepress/config.mts
+++ b/apps/www/.vitepress/config.mts
@@ -1,15 +1,22 @@
import path from 'node:path'
import { defineConfig } from 'vitepress'
+import Icons from 'unplugin-icons/vite'
// https://vitepress.dev/reference/site-config
export default defineConfig({
title: 'shadcn-vue',
description: 'A VitePress Site',
srcDir: path.resolve(__dirname, '../src/content'),
+ markdown: {
+ theme: 'css-variables',
+ },
vite: {
+ plugins: [
+ Icons({ compiler: 'vue3', autoInstall: true }) as any,
+ ],
resolve: {
alias: {
- '@': path.resolve(__dirname, '../src/lib'),
+ '@': path.resolve(__dirname, '../src'),
},
},
},
diff --git a/apps/www/.vitepress/theme/components/ComponentPreview.vue b/apps/www/.vitepress/theme/components/ComponentPreview.vue
new file mode 100644
index 00000000..2ff0ea80
--- /dev/null
+++ b/apps/www/.vitepress/theme/components/ComponentPreview.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+ Preview
+
+
+ Code
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/.vitepress/theme/components/ManualInstall.vue b/apps/www/.vitepress/theme/components/ManualInstall.vue
new file mode 100644
index 00000000..b6c276ca
--- /dev/null
+++ b/apps/www/.vitepress/theme/components/ManualInstall.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ Manual Installation
+
+
+
+
+
+
+
diff --git a/apps/www/.vitepress/theme/components/TableOfContent.vue b/apps/www/.vitepress/theme/components/TableOfContent.vue
new file mode 100644
index 00000000..36ceb6dd
--- /dev/null
+++ b/apps/www/.vitepress/theme/components/TableOfContent.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
diff --git a/apps/www/.vitepress/theme/components/TableOfContentTree.vue b/apps/www/.vitepress/theme/components/TableOfContentTree.vue
new file mode 100644
index 00000000..7e07e8fd
--- /dev/null
+++ b/apps/www/.vitepress/theme/components/TableOfContentTree.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
diff --git a/apps/www/.vitepress/theme/components/index.ts b/apps/www/.vitepress/theme/components/index.ts
new file mode 100644
index 00000000..b42f16d0
--- /dev/null
+++ b/apps/www/.vitepress/theme/components/index.ts
@@ -0,0 +1,2 @@
+export { default as ComponentPreview } from './ComponentPreview.vue'
+export { default as ManualInstall } from './ManualInstall.vue'
diff --git a/apps/www/.vitepress/theme/config/docs.ts b/apps/www/.vitepress/theme/config/docs.ts
new file mode 100644
index 00000000..1a28cbea
--- /dev/null
+++ b/apps/www/.vitepress/theme/config/docs.ts
@@ -0,0 +1,365 @@
+export interface NavItem {
+ title: string
+ href?: string
+ disabled?: boolean
+ external?: boolean
+ icon?: string
+ label?: string
+}
+
+export type SidebarNavItem = NavItem & {
+ items: SidebarNavItem[]
+}
+
+export type NavItemWithChildren = NavItem & {
+ items: NavItemWithChildren[]
+}
+
+interface DocsConfig {
+ mainNav: NavItem[]
+ sidebarNav: SidebarNavItem[]
+}
+
+export const docsConfig: DocsConfig = {
+ mainNav: [
+ {
+ title: 'Documentation',
+ href: '/docs',
+ },
+ {
+ title: 'Components',
+ href: '/docs/components/accordion',
+ },
+ {
+ title: 'Themes',
+ href: '/themes',
+ },
+ {
+ title: 'Examples',
+ href: '/examples/dashboard',
+ },
+ {
+ title: 'GitHub',
+ href: 'https://github.com/huntabyte/shadcn-svelte',
+ external: true,
+ },
+ ],
+ sidebarNav: [
+ {
+ title: 'Getting Started',
+ items: [
+ {
+ title: 'Introduction',
+ href: '/docs',
+ items: [],
+ },
+ {
+ title: 'Installation',
+ href: '/docs/installation',
+ items: [],
+ },
+ {
+ title: 'components.json',
+ href: '/docs/components-json',
+ items: [],
+ },
+ {
+ title: 'Theming',
+ href: '/docs/theming',
+ items: [],
+ },
+ {
+ title: 'CLI',
+ href: '/docs/cli',
+ items: [],
+ },
+ {
+ title: 'Typography',
+ href: '/docs/typography',
+ items: [],
+ },
+ {
+ title: 'Figma',
+ href: '/docs/figma',
+ items: [],
+ },
+ {
+ title: 'Changelog',
+ href: '/docs/changelog',
+ items: [],
+ },
+ {
+ title: 'About',
+ href: '/docs/about',
+ items: [],
+ },
+ ],
+ },
+ {
+ title: 'Components',
+ items: [
+ {
+ title: 'Accordion',
+ href: '/docs/components/accordion',
+ items: [],
+ },
+ {
+ title: 'Alert',
+ href: '/docs/components/alert',
+ items: [],
+ },
+ {
+ title: 'Alert Dialog',
+ href: '/docs/components/alert-dialog',
+ items: [],
+ },
+ {
+ title: 'Aspect Ratio',
+ href: '/docs/components/aspect-ratio',
+ items: [],
+ },
+ {
+ title: 'Avatar',
+ href: '/docs/components/avatar',
+ items: [],
+ },
+ {
+ title: 'Badge',
+ href: '/docs/components/badge',
+ items: [],
+ },
+ {
+ title: 'Button',
+ href: '/docs/components/button',
+ items: [],
+ },
+ // {
+ // title: "Calendar",
+ // href: "#",
+ // label: "Soon",
+ // disabled: true,
+ // items: []
+ // },
+ {
+ title: 'Card',
+ href: '/docs/components/card',
+ items: [],
+ },
+ {
+ title: 'Checkbox',
+ href: '/docs/components/checkbox',
+ items: [],
+ },
+ {
+ title: 'Collapsible',
+ href: '/docs/components/collapsible',
+ items: [],
+ },
+ {
+ title: 'Combobox',
+ disabled: true,
+ label: 'Soon',
+ href: '#',
+ items: [],
+ },
+ // {
+ // title: "Command",
+ // href: "#",
+ // label: "Soon",
+ // disabled: true,
+ // items: []
+ // },
+ {
+ title: 'Context Menu',
+ href: '/docs/components/context-menu',
+ items: [],
+ },
+ {
+ title: 'Data Table',
+ href: '/docs/components/data-table',
+ items: [],
+ },
+ // {
+ // title: "Date Picker",
+ // href: "#",
+ // label: "Soon",
+ // disabled: true,
+ // items: []
+ // },
+ {
+ title: 'Dialog',
+ href: '/docs/components/dialog',
+ items: [],
+ },
+ {
+ title: 'Dropdown Menu',
+ href: '/docs/components/dropdown-menu',
+ items: [],
+ },
+ {
+ title: 'Form',
+ href: '#',
+ label: 'Soon',
+ disabled: true,
+ items: [],
+ },
+ {
+ title: 'Hover Card',
+ href: '/docs/components/hover-card',
+ items: [],
+ },
+ {
+ title: 'Input',
+ href: '/docs/components/input',
+ items: [],
+ },
+ {
+ title: 'Label',
+ href: '/docs/components/label',
+ items: [],
+ },
+ {
+ title: 'Menubar',
+ href: '/docs/components/menubar',
+ items: [],
+ },
+ // {
+ // title: "Navigation Menu",
+ // href: "#",
+ // label: "Soon",
+ // disabled: true,
+ // items: []
+ // },
+ {
+ title: 'Popover',
+ href: '/docs/components/popover',
+ items: [],
+ },
+ {
+ title: 'Progress',
+ href: '/docs/components/progress',
+ items: [],
+ },
+ {
+ title: 'Radio Group',
+ href: '/docs/components/radio-group',
+ items: [],
+ },
+ // {
+ // title: "Scroll Area",
+ // href: "#",
+ // label: "Soon",
+ // disabled: true,
+ // items: []
+ // },
+ {
+ title: 'Select',
+ href: '/docs/components/select',
+ items: [],
+ },
+ {
+ title: 'Separator',
+ href: '/docs/components/separator',
+ items: [],
+ },
+ {
+ title: 'Sheet',
+ href: '/docs/components/sheet',
+ items: [],
+ },
+ {
+ title: 'Skeleton',
+ href: '/docs/components/skeleton',
+ items: [],
+ },
+ {
+ title: 'Slider',
+ href: '/docs/components/slider',
+ items: [],
+ },
+ {
+ title: 'Switch',
+ href: '/docs/components/switch',
+ items: [],
+ },
+ {
+ title: 'Table',
+ href: '/docs/components/table',
+ items: [],
+ },
+ {
+ title: 'Tabs',
+ href: '/docs/components/tabs',
+ items: [],
+ },
+ {
+ title: 'Textarea',
+ href: '/docs/components/textarea',
+ items: [],
+ },
+ // {
+ // title: "Toast",
+ // href: "#",
+ // label: "Soon",
+ // disabled: true,
+ // items: []
+ // },
+ {
+ title: 'Toggle',
+ href: '/docs/components/toggle',
+ items: [],
+ },
+ {
+ title: 'Tooltip',
+ href: '/docs/components/tooltip',
+ items: [],
+ },
+ ],
+ },
+ ],
+}
+
+interface Example {
+ name: string
+ href: string
+ label?: string
+ code: string
+}
+export const examples: Example[] = [
+ {
+ name: 'Dashboard',
+ href: '/examples/dashboard',
+ code: 'https://github.com/huntabyte/shadcn-svelte/tree/main/apps/www/src/lib/components/docs/dashboard',
+ },
+ {
+ name: 'Cards',
+ href: '/examples/cards',
+ code: 'https://github.com/huntabyte/shadcn-svelte/tree/main/apps/www/src/routes/examples/cards',
+ },
+ // {
+ // name: "Tasks",
+ // href: "/examples/tasks",
+ // label: "New",
+ // code: "https://github.com/huntabyte/shadcn-svelte/tree/main/apps/www/apps/www/app/examples/tasks"
+ // },
+ {
+ name: 'Playground',
+ href: '/examples/playground',
+ code: 'https://github.com/huntabyte/shadcn-svelte/tree/main/apps/www/apps/www/app/examples/playground',
+ },
+ {
+ name: 'Music',
+ href: '/examples/music',
+ code: 'https://github.com/huntabyte/shadcn-svelte/tree/main/apps/www/apps/www/app/examples/music',
+ },
+ {
+ name: 'Authentication',
+ href: '/examples/authentication',
+ code: 'https://github.com/huntabyte/shadcn-svelte/tree/main/apps/www/src/routes/examples/authentication',
+ },
+ {
+ name: 'Forms',
+ href: '/examples/forms',
+ code: 'https://github.com/huntabyte/shadcn-svelte/tree/main/apps/www/src/routes/examples/forms',
+ },
+]
diff --git a/apps/www/.vitepress/theme/config/site.ts b/apps/www/.vitepress/theme/config/site.ts
new file mode 100644
index 00000000..b4ce6775
--- /dev/null
+++ b/apps/www/.vitepress/theme/config/site.ts
@@ -0,0 +1,14 @@
+export const siteConfig = {
+ name: 'shadcn-vue',
+ url: 'https://shadcn-vue.com',
+ ogImage: 'https://shadcn-vue.com/og.png',
+ description:
+ 'Beautifully designed components built with Radix Vue and Tailwind CSS.',
+ links: {
+ twitter: 'https://twitter.com/huntabyte',
+ github: 'https://github.com/huntabyte/shadcn-vue',
+ shadTwitter: 'https://twitter.com/shadcn',
+ shadGithub: 'https://github.com/shadcn/ui',
+ },
+ keywords: 'shadcn,Vue,Nuxt,Vue Components,TailwindCSS,Radix Vue',
+}
diff --git a/apps/www/.vitepress/theme/index.ts b/apps/www/.vitepress/theme/index.ts
index 4fda16cd..52335bb9 100644
--- a/apps/www/.vitepress/theme/index.ts
+++ b/apps/www/.vitepress/theme/index.ts
@@ -1,10 +1,19 @@
+/* eslint-disable vue/component-definition-name-casing */
// https://vitepress.dev/guide/custom-theme
-import Layout from './Layout.vue'
+import Layout from './layout/MainLayout.vue'
+import DocsLayout from './layout/DocsLayout.vue'
+import * as components from './components'
import './style.css'
+import './styles/vp-doc.css'
+import './styles/shiki.css'
export default {
Layout,
- enhanceApp({ app, router, siteData }) {
+ enhanceApp({ app }) {
// ...
+ app.component('docs', DocsLayout)
+
+ for (const component of Object.keys(components))
+ app.component(component, components[component])
},
}
diff --git a/apps/www/.vitepress/theme/layout/DocsLayout.vue b/apps/www/.vitepress/theme/layout/DocsLayout.vue
new file mode 100644
index 00000000..30117124
--- /dev/null
+++ b/apps/www/.vitepress/theme/layout/DocsLayout.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+ {{ frontmatter.title }}
+
+
+ {{ frontmatter.description }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/.vitepress/theme/layout/MainLayout.vue b/apps/www/.vitepress/theme/layout/MainLayout.vue
new file mode 100644
index 00000000..12b6cb83
--- /dev/null
+++ b/apps/www/.vitepress/theme/layout/MainLayout.vue
@@ -0,0 +1,182 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/.vitepress/theme/style.css b/apps/www/.vitepress/theme/style.css
index b57f839e..3efcf01d 100644
--- a/apps/www/.vitepress/theme/style.css
+++ b/apps/www/.vitepress/theme/style.css
@@ -1,5 +1,160 @@
+@import url("https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap");
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
-html {
- font-family: Arial, Helvetica;
+@layer base {
+ :root {
+ --background: 0 0% 100%;
+ --foreground: 240 10% 3.9%;
+
+ --muted: 240 4.8% 95.9%;
+ --muted-foreground: 240 3.8% 46.1%;
+
+ --popover: 0 0% 100%;
+ --popover-foreground: 240 10% 3.9%;
+
+ --card: 0 0% 100%;
+ --card-foreground: 240 10% 3.9%;
+
+ --border: 240 5.9% 90%;
+ --input: 240 5.9% 90%;
+
+ --primary: 240 5.9% 10%;
+ --primary-foreground: 0 0% 98%;
+
+ --secondary: 240 4.8% 95.9%;
+ --secondary-foreground: 240 5.9% 10%;
+
+ --accent: 240 4.8% 95.9%;
+ --accent-foreground: 240 5.9% 10%;
+
+ --destructive: 0 84.2% 60.2%;
+ --destructive-foreground: 0 0% 98%;
+
+ --ring: 240 5% 64.9%;
+
+ --radius: 0.5rem;
+ }
+
+ .dark {
+ --background: 240 10% 3.9%;
+ --foreground: 0 0% 98%;
+
+ --muted: 240 3.7% 15.9%;
+ --muted-foreground: 240 5% 64.9%;
+
+ --popover: 240 10% 3.9%;
+ --popover-foreground: 0 0% 98%;
+
+ --card: 240 10% 3.9%;
+ --card-foreground: 0 0% 98%;
+
+ --border: 240 3.7% 15.9%;
+ --input: 240 3.7% 15.9%;
+
+ --primary: 0 0% 98%;
+ --primary-foreground: 240 5.9% 10%;
+
+ --secondary: 240 3.7% 15.9%;
+ --secondary-foreground: 0 0% 98%;
+
+ --accent: 240 3.7% 15.9%;
+ --accent-foreground: 0 0% 98%;
+
+ --destructive: 0 62.8% 30.6%;
+ --destructive-foreground: 0 85.7% 97.3%;
+
+ --ring: 240 3.7% 15.9%;
+ }
+}
+@layer base {
+ * {
+ @apply border-border;
+ }
+ html {
+ -webkit-text-size-adjust: 100%;
+ font-variation-settings: normal;
+ }
+ body {
+ @apply bg-background text-foreground min-h-screen antialiased font-sans;
+ font-feature-settings: "rlig" 1, "calt" 1;
+ }
+
+ /* Mobile tap highlight */
+ /* https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-tap-highlight-color */
+ html {
+ -webkit-tap-highlight-color: rgba(128, 128, 128, 0.5);
+ }
+
+ /* === Scrollbars === */
+
+ ::-webkit-scrollbar {
+ @apply w-2;
+ @apply h-2;
+ }
+
+ ::-webkit-scrollbar-track {
+ @apply !bg-muted;
+ }
+ ::-webkit-scrollbar-thumb {
+ @apply rounded-sm !bg-muted-foreground/30;
+ }
+
+ /* Firefox */
+ /* https://developer.mozilla.org/en-US/docs/Web/CSS/scrollbar-color#browser_compatibility */
+ html {
+ scrollbar-color: hsl(215.4 16.3% 46.9% / 0.3);
+ }
+
+ html.dark {
+ scrollbar-color: hsl(215.4 16.3% 56.9% / 0.3);
+ }
+
+ .hide-scrollbar::-webkit-scrollbar {
+ display: none;
+ }
+
+ .hide-scrollbar {
+ -ms-overflow-style: none;
+ scrollbar-width: none;
+ }
+
+ .antialised {
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ }
+
+ pre {
+ @apply mb-4 mt-6 max-h-[650px] overflow-x-auto rounded-lg border !bg-zinc-950 py-4 dark:!bg-zinc-900
+
+ }
+ pre code {
+ @apply relative rounded font-mono text-sm ;
+ }
+ pre code .line {
+ @apply px-4 min-h-[1.5rem] py-0.5 w-full inline-block;
+ }
+
}
+@layer utilities {
+ .step {
+ counter-increment: step;
+ }
+
+ .step:before {
+ @apply absolute w-9 h-9 bg-muted rounded-full font-mono font-medium text-center text-base inline-flex items-center justify-center -indent-px border-4 border-background;
+ @apply ml-[-50px] mt-[-4px];
+ content: counter(step);
+ }
+}
+
+@media (max-width: 640px) {
+ .container {
+ @apply px-4;
+ }
+}
+
+
+
diff --git a/apps/www/.vitepress/theme/styles/shiki.css b/apps/www/.vitepress/theme/styles/shiki.css
new file mode 100644
index 00000000..a35beff2
--- /dev/null
+++ b/apps/www/.vitepress/theme/styles/shiki.css
@@ -0,0 +1,13 @@
+:root {
+ --shiki-color-text: #EEEEEE;
+ --shiki-color-background: #ffffff;
+ --shiki-token-constant: #ffffff;
+ --shiki-token-string: #ffffff88;
+ --shiki-token-comment: #880000;
+ --shiki-token-keyword: #ffffff88;
+ --shiki-token-parameter: #AA0000;
+ --shiki-token-function: #ffffff;
+ --shiki-token-string-expression: #ffffff88;
+ --shiki-token-punctuation: #ffffff;
+ --shiki-token-link: #EE0000;
+}
\ No newline at end of file
diff --git a/apps/www/.vitepress/theme/styles/vp-doc.css b/apps/www/.vitepress/theme/styles/vp-doc.css
new file mode 100644
index 00000000..e38d6893
--- /dev/null
+++ b/apps/www/.vitepress/theme/styles/vp-doc.css
@@ -0,0 +1,570 @@
+:root {
+ --vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E");
+ --vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E");
+ --vp-code-bg: hsl(240 3.7% 15.9%);
+ --vp-c-divider: hsl(240 3.7% 15.9%);
+}
+
+
+/**
+ * Headings
+ * -------------------------------------------------------------------------- */
+
+.vp-doc h1,
+.vp-doc h2,
+.vp-doc h3,
+.vp-doc h4,
+.vp-doc h5,
+.vp-doc h6 {
+ position: relative;
+ font-weight: 600;
+ outline: none;
+}
+
+.vp-doc h1 {
+ letter-spacing: -0.02em;
+ line-height: 40px;
+ font-size: 28px;
+}
+
+.vp-doc h2 {
+ /* margin: 48px 0 16px; */
+ margin: 16px 0 16px;
+ border-top: 1px solid var(--vp-c-divider);
+ padding-top: 24px;
+ letter-spacing: -0.02em;
+ line-height: 32px;
+ font-size: 24px;
+}
+
+.vp-doc h3 {
+ margin: 32px 0 0;
+ letter-spacing: -0.01em;
+ line-height: 28px;
+ font-size: 20px;
+}
+
+.vp-doc .header-anchor {
+ position: absolute;
+ top: 0;
+ left: 0;
+ margin-left: -0.87em;
+ font-weight: 500;
+ user-select: none;
+ opacity: 0;
+ text-decoration: none;
+ transition:
+ color 0.25s,
+ opacity 0.25s;
+}
+
+.vp-doc .header-anchor:before {
+ content: var(--vp-header-anchor-symbol);
+}
+
+.vp-doc h1:hover .header-anchor,
+.vp-doc h1 .header-anchor:focus,
+.vp-doc h2:hover .header-anchor,
+.vp-doc h2 .header-anchor:focus,
+.vp-doc h3:hover .header-anchor,
+.vp-doc h3 .header-anchor:focus,
+.vp-doc h4:hover .header-anchor,
+.vp-doc h4 .header-anchor:focus,
+.vp-doc h5:hover .header-anchor,
+.vp-doc h5 .header-anchor:focus,
+.vp-doc h6:hover .header-anchor,
+.vp-doc h6 .header-anchor:focus {
+ opacity: 1;
+}
+
+@media (min-width: 768px) {
+ .vp-doc h1 {
+ letter-spacing: -0.02em;
+ line-height: 40px;
+ font-size: 32px;
+ }
+}
+
+.vp-doc h2 .header-anchor {
+ top: 24px;
+}
+
+/**
+ * Paragraph and inline elements
+ * -------------------------------------------------------------------------- */
+
+/* .vp-doc p,
+.vp-doc summary {
+ margin: 16px 0;
+}
+
+.vp-doc p {
+ line-height: 28px;
+}
+
+.vp-doc blockquote {
+ margin: 16px 0;
+ border-left: 2px solid var(--vp-c-divider);
+ padding-left: 16px;
+ transition: border-color 0.5s;
+}
+
+.vp-doc blockquote > p {
+ margin: 0;
+ font-size: 16px;
+ color: var(--vp-c-text-2);
+ transition: color 0.5s;
+}
+
+.vp-doc a {
+ font-weight: 500;
+ color: var(--vp-c-brand-1);
+ text-decoration: underline;
+ text-underline-offset: 2px;
+ transition:
+ color 0.25s,
+ opacity 0.25s;
+}
+
+.vp-doc a:hover {
+ color: var(--vp-c-brand-2);
+}
+
+.vp-doc strong {
+ font-weight: 600;
+} */
+
+/**
+ * Lists
+ * -------------------------------------------------------------------------- */
+
+.vp-doc ul,
+.vp-doc ol {
+ padding-left: 1.25rem;
+ margin: 16px 0;
+}
+
+.vp-doc ul {
+ list-style: disc;
+}
+
+.vp-doc ol {
+ list-style: decimal;
+}
+
+.vp-doc li + li {
+ margin-top: 8px;
+}
+
+.vp-doc li > ol,
+.vp-doc li > ul {
+ margin: 8px 0 0;
+}
+
+/**
+ * Table
+ * -------------------------------------------------------------------------- */
+
+.vp-doc table {
+ display: block;
+ border-collapse: collapse;
+ margin: 20px 0;
+ overflow-x: auto;
+}
+
+.vp-doc tr {
+ border-top: 1px solid var(--vp-c-divider);
+ transition: background-color 0.5s;
+}
+
+.vp-doc tr:nth-child(2n) {
+ background-color: var(--vp-c-bg-soft);
+}
+
+.vp-doc th,
+.vp-doc td {
+ border: 1px solid var(--vp-c-divider);
+ padding: 8px 16px;
+}
+
+.vp-doc th {
+ text-align: left;
+ font-size: 14px;
+ font-weight: 600;
+ color: var(--vp-c-text-2);
+ background-color: var(--vp-c-bg-soft);
+}
+
+.vp-doc td {
+ font-size: 14px;
+}
+
+/**
+ * Decorational elements
+ * -------------------------------------------------------------------------- */
+
+.vp-doc hr {
+ margin: 16px 0;
+ border: none;
+ border-top: 1px solid var(--vp-c-divider);
+}
+
+/**
+ * Custom Block
+ * -------------------------------------------------------------------------- */
+
+.vp-doc .custom-block {
+ margin: 16px 0;
+}
+
+.vp-doc .custom-block p {
+ margin: 8px 0;
+ line-height: 24px;
+}
+
+.vp-doc .custom-block p:first-child {
+ margin: 0;
+}
+
+.vp-doc .custom-block div[class*='language-'] {
+ margin: 8px 0;
+ border-radius: 8px;
+}
+
+.vp-doc .custom-block div[class*='language-'] code {
+ font-weight: 400;
+ background-color: transparent;
+}
+
+.vp-doc .custom-block .vp-code-group .tabs {
+ margin: 0;
+ border-radius: 8px 8px 0 0;
+}
+
+/**
+ * Code
+ * -------------------------------------------------------------------------- */
+
+/* inline code */
+.vp-doc :not(pre, h1, h2, h3, h4, h5, h6) > code {
+ font-size: var(--vp-code-font-size);
+ color: var(--vp-code-color);
+}
+
+.vp-doc :not(pre) > code {
+ border-radius: 4px;
+ padding: 3px 6px;
+ background-color: var(--vp-code-bg);
+ transition:
+ color 0.25s,
+ background-color 0.5s;
+}
+
+.vp-doc a > code {
+ color: var(--vp-code-link-color);
+}
+
+.vp-doc a:hover > code {
+ color: var(--vp-code-link-hover-color);
+}
+
+.vp-doc h1 > code,
+.vp-doc h2 > code,
+.vp-doc h3 > code {
+ font-size: 0.9em;
+}
+
+.vp-doc div[class*='language-'],
+.vp-block {
+ position: relative;
+ margin: 16px -24px;
+ background-color: var(--vp-code-block-bg);
+ overflow-x: auto;
+ transition: background-color 0.5s;
+}
+
+@media (min-width: 640px) {
+ .vp-doc div[class*='language-'],
+ .vp-block {
+ border-radius: 8px;
+ margin: 16px 0;
+ }
+}
+
+@media (max-width: 639px) {
+ .vp-doc li div[class*='language-'] {
+ border-radius: 8px 0 0 8px;
+ }
+}
+
+.vp-doc div[class*='language-'] + div[class*='language-'],
+.vp-doc div[class$='-api'] + div[class*='language-'],
+.vp-doc div[class*='language-'] + div[class$='-api'] > div[class*='language-'] {
+ margin-top: -8px;
+}
+
+.vp-doc [class*='language-'] pre,
+.vp-doc [class*='language-'] code {
+ /*rtl:ignore*/
+ direction: ltr;
+ /*rtl:ignore*/
+ text-align: left;
+ white-space: pre;
+ word-spacing: normal;
+ word-break: normal;
+ word-wrap: normal;
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
+ -webkit-hyphens: none;
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+}
+
+.vp-doc [class*='language-'] pre {
+ position: relative;
+ z-index: 1;
+ margin: 0;
+ /* padding: 20px 0; */
+ background: transparent;
+ overflow-x: auto;
+}
+
+.vp-doc [class*='language-'] code {
+ display: block;
+ /* padding: 0 24px; */
+ width: fit-content;
+ min-width: 100%;
+ line-height: var(--vp-code-line-height);
+ /* font-size: var(--vp-code-font-size); */
+ color: var(--vp-code-block-color);
+ transition: color 0.5s;
+}
+
+.vp-doc [class*='language-'] code .highlighted {
+ background-color: var(--vp-code-line-highlight-color);
+ transition: background-color 0.5s;
+ margin: 0 -24px;
+ padding: 0 24px;
+ width: calc(100% + 2 * 24px);
+ display: inline-block;
+}
+
+.vp-doc [class*='language-'] code .highlighted.error {
+ background-color: var(--vp-code-line-error-color);
+}
+
+.vp-doc [class*='language-'] code .highlighted.warning {
+ background-color: var(--vp-code-line-warning-color);
+}
+
+.vp-doc [class*='language-'] code .diff {
+ transition: background-color 0.5s;
+ margin: 0 -24px;
+ padding: 0 24px;
+ width: calc(100% + 2 * 24px);
+ display: inline-block;
+}
+
+.vp-doc [class*='language-'] code .diff::before {
+ position: absolute;
+ left: 10px;
+}
+
+.vp-doc [class*='language-'] .has-focused-lines .line:not(.has-focus) {
+ filter: blur(0.095rem);
+ opacity: 0.4;
+ transition:
+ filter 0.35s,
+ opacity 0.35s;
+}
+
+.vp-doc [class*='language-'] .has-focused-lines .line:not(.has-focus) {
+ opacity: 0.7;
+ transition:
+ filter 0.35s,
+ opacity 0.35s;
+}
+
+.vp-doc [class*='language-']:hover .has-focused-lines .line:not(.has-focus) {
+ filter: blur(0);
+ opacity: 1;
+}
+
+.vp-doc [class*='language-'] code .diff.remove {
+ background-color: var(--vp-code-line-diff-remove-color);
+ opacity: 0.7;
+}
+
+.vp-doc [class*='language-'] code .diff.remove::before {
+ content: '-';
+ color: var(--vp-code-line-diff-remove-symbol-color);
+}
+
+.vp-doc [class*='language-'] code .diff.add {
+ background-color: var(--vp-code-line-diff-add-color);
+}
+
+.vp-doc [class*='language-'] code .diff.add::before {
+ content: '+';
+ color: var(--vp-code-line-diff-add-symbol-color);
+}
+
+.vp-doc div[class*='language-'].line-numbers-mode {
+ /*rtl:ignore*/
+ padding-left: 32px;
+}
+
+.vp-doc .line-numbers-wrapper {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ /*rtl:ignore*/
+ left: 0;
+ z-index: 3;
+ /*rtl:ignore*/
+ border-right: 1px solid var(--vp-code-block-divider-color);
+ padding-top: 20px;
+ width: 32px;
+ text-align: center;
+ font-family: var(--vp-font-family-mono);
+ line-height: var(--vp-code-line-height);
+ font-size: var(--vp-code-font-size);
+ color: var(--vp-code-line-number-color);
+ transition:
+ border-color 0.5s,
+ color 0.5s;
+}
+
+.vp-doc [class*='language-'] > button.copy {
+ /*rtl:ignore*/
+ direction: ltr;
+ position: absolute;
+ top: 12px;
+ /*rtl:ignore*/
+ right: 12px;
+ z-index: 3;
+ border: 1px solid var(--vp-code-copy-code-border-color);
+ border-radius: 4px;
+ width: 40px;
+ height: 40px;
+ background-color: var(--vp-code-copy-code-bg);
+ opacity: 0;
+ cursor: pointer;
+ background-image: var(--vp-icon-copy);
+ background-position: 50%;
+ background-size: 20px;
+ background-repeat: no-repeat;
+ transition:
+ border-color 0.25s,
+ background-color 0.25s,
+ opacity 0.25s;
+}
+
+.vp-doc [class*='language-']:hover > button.copy,
+.vp-doc [class*='language-'] > button.copy:focus {
+ opacity: 1;
+}
+
+.vp-doc [class*='language-'] > button.copy:hover,
+.vp-doc [class*='language-'] > button.copy.copied {
+ border-color: var(--vp-code-copy-code-hover-border-color);
+ background-color: var(--vp-code-copy-code-hover-bg);
+}
+
+.vp-doc [class*='language-'] > button.copy.copied,
+.vp-doc [class*='language-'] > button.copy:hover.copied {
+ /*rtl:ignore*/
+ border-radius: 0 4px 4px 0;
+ background-color: var(--vp-code-copy-code-hover-bg);
+ background-image: var(--vp-icon-copied);
+}
+
+.vp-doc [class*='language-'] > button.copy.copied::before,
+.vp-doc [class*='language-'] > button.copy:hover.copied::before {
+ position: relative;
+ top: -1px;
+ /*rtl:ignore*/
+ transform: translateX(calc(-100% - 1px));
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border: 1px solid var(--vp-code-copy-code-hover-border-color);
+ /*rtl:ignore*/
+ border-right: 0;
+ border-radius: 4px 0 0 4px;
+ padding: 0 10px;
+ width: fit-content;
+ height: 40px;
+ text-align: center;
+ font-size: 12px;
+ font-weight: 500;
+ color: var(--vp-code-copy-code-active-text);
+ background-color: var(--vp-code-copy-code-hover-bg);
+ white-space: nowrap;
+ content: var(--vp-code-copy-copied-text-content);
+}
+
+.vp-doc [class*='language-'] > span.lang {
+ position: absolute;
+ top: 2px;
+ /*rtl:ignore*/
+ right: 8px;
+ z-index: 2;
+ font-size: 12px;
+ font-weight: 500;
+ color: var(--vp-code-lang-color);
+ transition:
+ color 0.4s,
+ opacity 0.4s;
+
+ @apply text-gray-600;
+}
+
+.vp-doc [class*='language-']:hover > button.copy + span.lang,
+.vp-doc [class*='language-'] > button.copy:focus + span.lang {
+ opacity: 0;
+}
+
+/**
+ * Component: Team
+ * -------------------------------------------------------------------------- */
+
+.vp-doc .VPTeamMembers {
+ margin-top: 24px;
+}
+
+.vp-doc .VPTeamMembers.small.count-1 .container {
+ margin: 0 !important;
+ max-width: calc((100% - 24px) / 2) !important;
+}
+
+.vp-doc .VPTeamMembers.small.count-2 .container,
+.vp-doc .VPTeamMembers.small.count-3 .container {
+ max-width: 100% !important;
+}
+
+.vp-doc .VPTeamMembers.medium.count-1 .container {
+ margin: 0 !important;
+ max-width: calc((100% - 24px) / 2) !important;
+}
+
+/* prettier-ignore */
+:is(.vp-external-link-icon, .vp-doc a[href*='://'], .vp-doc a[target='_blank']):not(.no-icon)::after {
+ display: inline-block;
+ margin-top: -1px;
+ margin-left: 4px;
+ width: 11px;
+ height: 11px;
+ background: currentColor;
+ color: var(--vp-c-text-3);
+ flex-shrink: 0;
+ --icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");
+ -webkit-mask-image: var(--icon);
+ mask-image: var(--icon);
+}
+
+.vp-external-link-icon::after {
+ content: '';
+}
\ No newline at end of file
diff --git a/apps/www/.vitepress/theme/types/docs.ts b/apps/www/.vitepress/theme/types/docs.ts
new file mode 100644
index 00000000..e54f3bfb
--- /dev/null
+++ b/apps/www/.vitepress/theme/types/docs.ts
@@ -0,0 +1,9 @@
+export interface TableOfContentsItem {
+ title?: string
+ url?: string
+ items?: TableOfContentsItem[]
+}
+
+export interface TableOfContents {
+ items: TableOfContentsItem[]
+}
diff --git a/apps/www/index.html b/apps/www/index.html
deleted file mode 100644
index 143557b5..00000000
--- a/apps/www/index.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
- Vite + Vue + TS
-
-
-
-
-
-
diff --git a/apps/www/package.json b/apps/www/package.json
index 49dd817e..169aae71 100644
--- a/apps/www/package.json
+++ b/apps/www/package.json
@@ -23,6 +23,8 @@
"vue": "^3.3.4"
},
"devDependencies": {
+ "@iconify-json/radix-icons": "^1.1.11",
+ "@iconify-json/tabler": "^1.1.89",
"@iconify/vue": "^4.1.1",
"@vitejs/plugin-vue": "^4.1.0",
"autoprefixer": "^10.4.14",
@@ -30,6 +32,7 @@
"tailwind-merge": "^1.14.0",
"tailwindcss": "^3.3.2",
"typescript": "^5.0.2",
+ "unplugin-icons": "^0.16.6",
"vite": "^4.3.9",
"vue-tsc": "^1.4.2"
}
diff --git a/apps/www/src/App.vue b/apps/www/src/App.vue
deleted file mode 100644
index 7b0960d1..00000000
--- a/apps/www/src/App.vue
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
diff --git a/apps/www/src/components/Internal/Docs/Card/Card.vue b/apps/www/src/components/Internal/Docs/Card/Card.vue
deleted file mode 100644
index 4db9c47a..00000000
--- a/apps/www/src/components/Internal/Docs/Card/Card.vue
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- {{ props.title }}
-
-
-
-
-
-
diff --git a/apps/www/src/components/Internal/Docs/Card/index.ts b/apps/www/src/components/Internal/Docs/Card/index.ts
deleted file mode 100644
index 579ebc76..00000000
--- a/apps/www/src/components/Internal/Docs/Card/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { default as Card } from './Card.vue'
diff --git a/apps/www/src/content/docs.md b/apps/www/src/content/docs.md
new file mode 100644
index 00000000..2fee20d7
--- /dev/null
+++ b/apps/www/src/content/docs.md
@@ -0,0 +1,5 @@
+---
+layout: docs
+---
+
+docs laytou please?
\ No newline at end of file
diff --git a/apps/www/src/content/docs/components/accordion.md b/apps/www/src/content/docs/components/accordion.md
new file mode 100644
index 00000000..384c5eff
--- /dev/null
+++ b/apps/www/src/content/docs/components/accordion.md
@@ -0,0 +1,49 @@
+---
+title: Accordion
+description: A vertically stacked set of interactive headings that each reveal a section of content.
+source: https://github.com/radix-vue/shadcn-vue/tree/main/apps/www/src/lib/registry/default/ui/accordion
+primitive: https://www.radix-vue.com/components/accordion.html
+---
+
+
+
+
+<<< ../../../lib/registry/default/examples/AccordionDemo.vue
+
+
+
+
+
+## Installation
+
+```bash
+npx shadcn-vue@latest add accordion
+```
+
+
+
+1. Install `radix-vue`:
+
+```bash
+npm install radix-vue
+```
+
+2. Copy and paste the component source files linked at the top of this page into your project.
+
+
+## Usage
+
+```vue
+
+
+
+
+ Is it accessible?
+
+ Yes. It adheres to the WAI-ARIA design pattern.
+
+
+
+```
\ No newline at end of file
diff --git a/apps/www/src/content/example/dashboard.md b/apps/www/src/content/example/dashboard.md
new file mode 100644
index 00000000..32f95c0d
--- /dev/null
+++ b/apps/www/src/content/example/dashboard.md
@@ -0,0 +1 @@
+hi
\ No newline at end of file
diff --git a/apps/www/src/content/index.md b/apps/www/src/content/index.md
index b1c72f40..bd40584d 100644
--- a/apps/www/src/content/index.md
+++ b/apps/www/src/content/index.md
@@ -2,3 +2,4 @@
home: true
---
+this is main content
\ No newline at end of file
diff --git a/apps/www/src/content/themes.md b/apps/www/src/content/themes.md
new file mode 100644
index 00000000..e69de29b
diff --git a/apps/www/src/lib/registry/default/examples/AccordionDemo.vue b/apps/www/src/lib/registry/default/examples/AccordionDemo.vue
index 3dc961aa..7a99ad50 100644
--- a/apps/www/src/lib/registry/default/examples/AccordionDemo.vue
+++ b/apps/www/src/lib/registry/default/examples/AccordionDemo.vue
@@ -1,24 +1,12 @@
-
diff --git a/apps/www/src/lib/registry/default/examples/index.ts b/apps/www/src/lib/registry/default/examples/index.ts
new file mode 100644
index 00000000..f414dfd1
--- /dev/null
+++ b/apps/www/src/lib/registry/default/examples/index.ts
@@ -0,0 +1 @@
+export { default as AccordionDemo } from './AccordionDemo.vue'
diff --git a/apps/www/src/lib/registry/default/ui/accordion.ts b/apps/www/src/lib/registry/default/ui/accordion.ts
deleted file mode 100644
index 052a7f43..00000000
--- a/apps/www/src/lib/registry/default/ui/accordion.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-import { defineComponent, h } from 'vue'
-import {
- AccordionContent as AccordionContentPrimitive,
- type AccordionContentProps, AccordionHeader as AccordionHeaderPrimitive,
- type AccordionHeaderProps, AccordionItem as AccordionItemPrimitive,
- type AccordionItemProps, AccordionRoot as AccordionRootPrimitive,
- AccordionTrigger as AccordionTriggerPrimitive, type AccordionTriggerProps,
-} from 'radix-vue'
-import { ChevronDown } from 'lucide-vue-next'
-import { cn } from '@/utils'
-
-export const Accordion = AccordionRootPrimitive
-
-export const AccordionContent = defineComponent(
- (props, { attrs, slots }) => {
- return () => h(AccordionContentPrimitive,
- { class: cn('overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down', attrs.class), ...props },
- () => h('div', { class: 'pb-4 pt-0' }, slots),
- )
- },
-)
-
-export const AccordionTrigger = defineComponent(
- (_props, { attrs, slots }) => {
- return () => h(AccordionHeaderPrimitive, { class: 'flex' },
- () => h(AccordionTriggerPrimitive,
- { class: cn('flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180', attrs.class) },
- () => [slots.default(), h(ChevronDown, { class: 'h-4 w-4 shrink-0 transition-transform duration-200' })],
- ),
- )
- },
-)
-
-export const AccordionItem = defineComponent(
- (props, { attrs, slots }) => {
- return () => h(AccordionItemPrimitive,
- { class: cn('border-b', attrs.class), ...props }, slots)
- },
-)
-
-export const AccordionHeader = defineComponent(
- (props, { attrs, slots }) => {
- return () => h(AccordionHeaderPrimitive, { class: cn('flex', attrs.class), ...props }, slots)
- },
-)
diff --git a/apps/www/src/lib/registry/default/ui/accordion/Accordion.vue b/apps/www/src/lib/registry/default/ui/accordion/Accordion.vue
new file mode 100644
index 00000000..da4a4305
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/accordion/Accordion.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/accordion/AccordionContent.vue b/apps/www/src/lib/registry/default/ui/accordion/AccordionContent.vue
new file mode 100644
index 00000000..06f7adb6
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/accordion/AccordionContent.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/accordion/AccordionItem.vue b/apps/www/src/lib/registry/default/ui/accordion/AccordionItem.vue
new file mode 100644
index 00000000..067d5da0
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/accordion/AccordionItem.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/accordion/AccordionTrigger.vue b/apps/www/src/lib/registry/default/ui/accordion/AccordionTrigger.vue
new file mode 100644
index 00000000..0e971519
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/accordion/AccordionTrigger.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/accordion/index.ts b/apps/www/src/lib/registry/default/ui/accordion/index.ts
new file mode 100644
index 00000000..9340ac06
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/accordion/index.ts
@@ -0,0 +1,4 @@
+export { default as Accordion } from './Accordion.vue'
+export { default as AccordionContent } from './AccordionContent.vue'
+export { default as AccordionItem } from './AccordionItem.vue'
+export { default as AccordionTrigger } from './AccordionTrigger.vue'
diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog.ts b/apps/www/src/lib/registry/default/ui/alert-dialog.ts
deleted file mode 100644
index a8c4b63d..00000000
--- a/apps/www/src/lib/registry/default/ui/alert-dialog.ts
+++ /dev/null
@@ -1,97 +0,0 @@
-import { defineComponent, h } from 'vue'
-import {
- AlertDialogAction as AlertDialogActionPrimitive, type AlertDialogActionProps,
- AlertDialogCancel as AlertDialogCancelPrimitive, type AlertDialogCancelProps,
- type AlertDialogContentEmits, AlertDialogContent as AlertDialogContentPrimitive, type AlertDialogContentProps,
- AlertDialogDescription as AlertDialogDescriptionPrimitive, type AlertDialogDescriptionProps,
- AlertDialogOverlay as AlertDialogOverlayPrimitive, type AlertDialogOverlayProps,
- AlertDialogPortal as AlertDialogPortalPrimitive,
- AlertDialogRoot, AlertDialogTitle as AlertDialogTitlePrimitive,
- type AlertDialogTitleProps, AlertDialogTrigger as AlertDialogTriggerPrimitive,
-
-} from 'radix-vue'
-import type { ParseEmits } from '@/utils'
-import { cn, useEmitAsProps } from '@/utils'
-import { buttonVariants } from '@/registry/default/ui/button'
-
-export const AlertDialog = AlertDialogRoot
-export const AlertDialogTrigger = AlertDialogTriggerPrimitive
-export const AlertDialogPortal = AlertDialogPortalPrimitive
-
-export const AlertDialogOverlay = defineComponent(
- (props, { attrs, slots }) => {
- return () => h(AlertDialogOverlayPrimitive,
- { class: cn('fixed inset-0 z-50 bg-background/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', attrs.class), ...props },
- slots,
- )
- }, { name: 'AlertDialogOverlay' },
-)
-
-export const AlertDialogContent = defineComponent>(
- (props, { emit, attrs, slots }) => {
- const emitsAsProps = useEmitAsProps(emit)
-
- return () => h(AlertDialogPortal, () => [
- h(AlertDialogOverlay),
- h(AlertDialogContentPrimitive, {
- class: cn('fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg md:w-full', attrs.class ?? ''),
- ...props,
- ...emitsAsProps,
- }, slots),
- ])
- }, { name: 'AlertDialogContent', emits: AlertDialogContentPrimitive.emits },
-)
-
-export const AlertDialogHeader = defineComponent(
- (_props, { attrs, slots }) => {
- return () => h('div',
- { class: cn('flex flex-col space-y-2 text-center sm:text-left', attrs.class) },
- slots,
- )
- }, { name: 'AlertDialogHeader' },
-)
-
-export const AlertDialogFooter = defineComponent(
- (_props, { attrs, slots }) => {
- return () => h('div',
- { class: cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', attrs.class) },
- slots,
- )
- }, { name: 'AlertDialogFooter' },
-)
-
-export const AlertDialogTitle = defineComponent(
- (props, { attrs, slots }) => {
- return () => h(AlertDialogTitlePrimitive,
- { class: cn('text-lg font-semibold', attrs.class), ...props },
- slots,
- )
- }, { name: 'AlertDialogTitle' },
-)
-
-export const AlertDialogDescription = defineComponent(
- (props, { attrs, slots }) => {
- return () => h(AlertDialogDescriptionPrimitive,
- { class: cn('text-sm text-muted-foreground', attrs.class), ...props },
- slots,
- )
- }, { name: 'AlertDialogDescription' },
-)
-
-export const AlertDialogAction = defineComponent(
- (props, { attrs, slots }) => {
- return () => h(AlertDialogActionPrimitive,
- { class: cn(buttonVariants(), attrs.class), ...props },
- slots,
- )
- }, { name: 'AlertDialogAction' },
-)
-
-export const AlertDialogCancel = defineComponent(
- (props, { attrs, slots }) => {
- return () => h(AlertDialogCancelPrimitive,
- { class: cn(buttonVariants({ variant: 'outline' }), 'mt-2 sm:mt-0', attrs.class), ...props },
- slots,
- )
- }, { name: 'AlertDialogCancel' },
-)
diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialog.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialog.vue
new file mode 100644
index 00000000..aa77199c
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialog.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogAction.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogAction.vue
new file mode 100644
index 00000000..8faa0471
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogAction.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogCancel.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogCancel.vue
new file mode 100644
index 00000000..b1e91389
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogCancel.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogContent.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogContent.vue
new file mode 100644
index 00000000..99685897
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogContent.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogDescription.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogDescription.vue
new file mode 100644
index 00000000..53975a87
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogDescription.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogFooter.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogFooter.vue
new file mode 100644
index 00000000..de4af93b
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogFooter.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogHeader.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogHeader.vue
new file mode 100644
index 00000000..a350b718
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogHeader.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogTitle.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogTitle.vue
new file mode 100644
index 00000000..9b6491f2
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogTitle.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogTrigger.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogTrigger.vue
new file mode 100644
index 00000000..4f5e2fd0
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogTrigger.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/index.ts b/apps/www/src/lib/registry/default/ui/alert-dialog/index.ts
new file mode 100644
index 00000000..91d138ae
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/alert-dialog/index.ts
@@ -0,0 +1,9 @@
+export { default as AlertDialog } from './AlertDialog.vue'
+export { default as AlertDialogTrigger } from './AlertDialogTrigger.vue'
+export { default as AlertDialogContent } from './AlertDialogContent.vue'
+export { default as AlertDialogHeader } from './AlertDialogHeader.vue'
+export { default as AlertDialogTitle } from './AlertDialogTitle.vue'
+export { default as AlertDialogDescription } from './AlertDialogDescription.vue'
+export { default as AlertDialogFooter } from './AlertDialogFooter.vue'
+export { default as AlertDialogAction } from './AlertDialogAction.vue'
+export { default as AlertDialogCancel } from './AlertDialogCancel.vue'
diff --git a/apps/www/src/lib/registry/default/ui/alert/Alert.vue b/apps/www/src/lib/registry/default/ui/alert/Alert.vue
new file mode 100644
index 00000000..641e150d
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/alert/Alert.vue
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/alert/AlertDescription.vue b/apps/www/src/lib/registry/default/ui/alert/AlertDescription.vue
new file mode 100644
index 00000000..fe3f9670
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/alert/AlertDescription.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/alert/AlertTitle.vue b/apps/www/src/lib/registry/default/ui/alert/AlertTitle.vue
new file mode 100644
index 00000000..9821e45c
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/alert/AlertTitle.vue
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/alert/index.ts b/apps/www/src/lib/registry/default/ui/alert/index.ts
new file mode 100644
index 00000000..2b4f31b2
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/alert/index.ts
@@ -0,0 +1,3 @@
+export { default as Alert } from './Alert.vue'
+export { default as AlertTitle } from './AlertTitle.vue'
+export { default as AlertDescription } from './AlertDescription.vue'
diff --git a/apps/www/src/lib/registry/default/ui/aspect-ratio/AspectRatio.vue b/apps/www/src/lib/registry/default/ui/aspect-ratio/AspectRatio.vue
new file mode 100644
index 00000000..65291818
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/aspect-ratio/AspectRatio.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/aspect-ratio/index.ts b/apps/www/src/lib/registry/default/ui/aspect-ratio/index.ts
new file mode 100644
index 00000000..3faf121c
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/aspect-ratio/index.ts
@@ -0,0 +1 @@
+export { default as AspectRatio } from './AspectRatio.vue'
diff --git a/apps/www/src/lib/registry/default/ui/avatar/Avatar.vue b/apps/www/src/lib/registry/default/ui/avatar/Avatar.vue
new file mode 100644
index 00000000..f3b10881
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/avatar/Avatar.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/avatar/AvatarFallback.vue b/apps/www/src/lib/registry/default/ui/avatar/AvatarFallback.vue
new file mode 100644
index 00000000..a671a219
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/avatar/AvatarFallback.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/avatar/AvatarImage.vue b/apps/www/src/lib/registry/default/ui/avatar/AvatarImage.vue
new file mode 100644
index 00000000..43499fa2
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/avatar/AvatarImage.vue
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/avatar/index.ts b/apps/www/src/lib/registry/default/ui/avatar/index.ts
new file mode 100644
index 00000000..49741211
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/avatar/index.ts
@@ -0,0 +1,3 @@
+export { default as Avatar } from './Avatar.vue'
+export { default as AvatarImage } from './AvatarImage.vue'
+export { default as AvatarFallback } from './AvatarFallback.vue'
diff --git a/apps/www/src/lib/registry/default/ui/badge/Badge.vue b/apps/www/src/lib/registry/default/ui/badge/Badge.vue
new file mode 100644
index 00000000..e0ec600b
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/badge/Badge.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/badge/index.ts b/apps/www/src/lib/registry/default/ui/badge/index.ts
new file mode 100644
index 00000000..1734c2d4
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/badge/index.ts
@@ -0,0 +1 @@
+export { default as Badge } from './Badge.vue'
diff --git a/apps/www/src/lib/registry/default/ui/breadcrumb/BreadCrumb.vue b/apps/www/src/lib/registry/default/ui/breadcrumb/BreadCrumb.vue
new file mode 100644
index 00000000..0f8f3026
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/breadcrumb/BreadCrumb.vue
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/breadcrumb/BreadCrumbItem.vue b/apps/www/src/lib/registry/default/ui/breadcrumb/BreadCrumbItem.vue
new file mode 100644
index 00000000..0df72ec5
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/breadcrumb/BreadCrumbItem.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/breadcrumb/index.ts b/apps/www/src/lib/registry/default/ui/breadcrumb/index.ts
new file mode 100644
index 00000000..61292a15
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/breadcrumb/index.ts
@@ -0,0 +1,2 @@
+export { default as BreadCrumb } from './BreadCrumb.vue'
+export { default as BreadCrumbItem } from './BreadCrumbItem.vue'
diff --git a/apps/www/src/lib/registry/default/ui/button.ts b/apps/www/src/lib/registry/default/ui/button.ts
deleted file mode 100644
index c4741cc1..00000000
--- a/apps/www/src/lib/registry/default/ui/button.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import { defineComponent, h } from 'vue'
-import { type VariantProps, cva } from 'class-variance-authority'
-import { cn } from '@/utils'
-
-export const buttonVariants = cva(
- 'inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',
- {
- variants: {
- variant: {
- default: 'bg-primary text-primary-foreground hover:bg-primary/90',
- destructive:
- 'bg-destructive text-destructive-foreground hover:bg-destructive/90',
- outline:
- 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',
- secondary:
- 'bg-secondary text-secondary-foreground hover:bg-secondary/80',
- ghost: 'hover:bg-accent hover:text-accent-foreground',
- link: 'text-primary underline-offset-4 hover:underline',
- },
- size: {
- default: 'h-10 px-4 py-2',
- sm: 'h-9 rounded-md px-3',
- lg: 'h-11 rounded-md px-8',
- icon: 'h-10 w-10',
- },
- },
- defaultVariants: {
- variant: 'default',
- size: 'default',
- },
- },
-)
-
-interface ButtonProps extends VariantProps {}
-
-export const Button = defineComponent(
- (props, { attrs, slots }) => {
- return () => h('button', { class: cn(buttonVariants(props), attrs.class ?? '') }, slots)
- },
- { name: 'Button', props: ['size', 'variant'] },
-)
diff --git a/apps/www/src/lib/registry/default/ui/button/Button.vue b/apps/www/src/lib/registry/default/ui/button/Button.vue
new file mode 100644
index 00000000..fc7a7176
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/button/Button.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/button/index.ts b/apps/www/src/lib/registry/default/ui/button/index.ts
new file mode 100644
index 00000000..ead8085f
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/button/index.ts
@@ -0,0 +1 @@
+export { default as Button } from './Button.vue'
diff --git a/apps/www/src/lib/registry/default/ui/calendar/Calendar.vue b/apps/www/src/lib/registry/default/ui/calendar/Calendar.vue
new file mode 100644
index 00000000..07711513
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/calendar/Calendar.vue
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/calendar/index.ts b/apps/www/src/lib/registry/default/ui/calendar/index.ts
new file mode 100644
index 00000000..50f21114
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/calendar/index.ts
@@ -0,0 +1 @@
+export { default as Calendar } from './Calendar.vue'
diff --git a/apps/www/src/lib/registry/default/ui/card/Card.vue b/apps/www/src/lib/registry/default/ui/card/Card.vue
new file mode 100644
index 00000000..399c74b5
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/card/Card.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/card/CardContent.vue b/apps/www/src/lib/registry/default/ui/card/CardContent.vue
new file mode 100644
index 00000000..9dc5a661
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/card/CardContent.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/card/CardDescription.vue b/apps/www/src/lib/registry/default/ui/card/CardDescription.vue
new file mode 100644
index 00000000..9b55c53c
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/card/CardDescription.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/card/CardFooter.vue b/apps/www/src/lib/registry/default/ui/card/CardFooter.vue
new file mode 100644
index 00000000..9dc5a661
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/card/CardFooter.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/card/CardHeader.vue b/apps/www/src/lib/registry/default/ui/card/CardHeader.vue
new file mode 100644
index 00000000..7422a5ad
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/card/CardHeader.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/card/CardTitle.vue b/apps/www/src/lib/registry/default/ui/card/CardTitle.vue
new file mode 100644
index 00000000..34f898d6
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/card/CardTitle.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/card/index.ts b/apps/www/src/lib/registry/default/ui/card/index.ts
new file mode 100644
index 00000000..8170483c
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/card/index.ts
@@ -0,0 +1,6 @@
+export { default as Card } from './Card.vue'
+export { default as CardHeader } from './CardHeader.vue'
+export { default as CardTitle } from './CardTitle.vue'
+export { default as CardDescription } from './CardDescription.vue'
+export { default as CardContent } from './CardContent.vue'
+export { default as CardFooter } from './CardFooter.vue'
diff --git a/apps/www/src/lib/registry/default/ui/checkbox/Checkbox.vue b/apps/www/src/lib/registry/default/ui/checkbox/Checkbox.vue
new file mode 100644
index 00000000..b088c599
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/checkbox/Checkbox.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+ emit('update:modelValue', ($event.target as HTMLInputElement).checked)
+ "
+ >
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/checkbox/index.ts b/apps/www/src/lib/registry/default/ui/checkbox/index.ts
new file mode 100644
index 00000000..8c28c286
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/checkbox/index.ts
@@ -0,0 +1 @@
+export { default as Checkbox } from './Checkbox.vue'
diff --git a/apps/www/src/lib/registry/default/ui/collapsible/Collapsible.vue b/apps/www/src/lib/registry/default/ui/collapsible/Collapsible.vue
new file mode 100644
index 00000000..f3b1ef78
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/collapsible/Collapsible.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/collapsible/CollapsibleContent.vue b/apps/www/src/lib/registry/default/ui/collapsible/CollapsibleContent.vue
new file mode 100644
index 00000000..c4827a9e
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/collapsible/CollapsibleContent.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/collapsible/CollapsibleTrigger.vue b/apps/www/src/lib/registry/default/ui/collapsible/CollapsibleTrigger.vue
new file mode 100644
index 00000000..4a434639
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/collapsible/CollapsibleTrigger.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/collapsible/index.ts b/apps/www/src/lib/registry/default/ui/collapsible/index.ts
new file mode 100644
index 00000000..4930f4c6
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/collapsible/index.ts
@@ -0,0 +1,3 @@
+export { default as Collapsible } from './Collapsible.vue'
+export { default as CollapsibleTrigger } from './CollapsibleTrigger.vue'
+export { default as CollapsibleContent } from './CollapsibleContent.vue'
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenu.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenu.vue
new file mode 100644
index 00000000..7a587b5f
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenu.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuCheckboxItem.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuCheckboxItem.vue
new file mode 100644
index 00000000..24b06561
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuCheckboxItem.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuContent.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuContent.vue
new file mode 100644
index 00000000..e659c603
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuContent.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuGroup.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuGroup.vue
new file mode 100644
index 00000000..b7458d77
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuGroup.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuItem.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuItem.vue
new file mode 100644
index 00000000..3eac857b
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuItem.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuLabel.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuLabel.vue
new file mode 100644
index 00000000..972088a3
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuLabel.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioGroup.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioGroup.vue
new file mode 100644
index 00000000..bb0b173d
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioGroup.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioItem.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioItem.vue
new file mode 100644
index 00000000..0ed025cc
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioItem.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSeparator.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSeparator.vue
new file mode 100644
index 00000000..d7fe1aec
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSeparator.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuShortcut.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuShortcut.vue
new file mode 100644
index 00000000..5be2acac
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuShortcut.vue
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSub.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSub.vue
new file mode 100644
index 00000000..80471807
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSub.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubContent.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubContent.vue
new file mode 100644
index 00000000..c7a4cdd2
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubContent.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubTrigger.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubTrigger.vue
new file mode 100644
index 00000000..2145acbb
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubTrigger.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuTrigger.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuTrigger.vue
new file mode 100644
index 00000000..9747cc1a
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuTrigger.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/index.ts b/apps/www/src/lib/registry/default/ui/context-menu/index.ts
new file mode 100644
index 00000000..157f7b1d
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/context-menu/index.ts
@@ -0,0 +1,14 @@
+export { default as ContextMenu } from './ContextMenu.vue'
+export { default as ContextMenuTrigger } from './ContextMenuTrigger.vue'
+export { default as ContextMenuContent } from './ContextMenuContent.vue'
+export { default as ContextMenuGroup } from './ContextMenuGroup.vue'
+export { default as ContextMenuRadioGroup } from './ContextMenuRadioGroup.vue'
+export { default as ContextMenuItem } from './ContextMenuItem.vue'
+export { default as ContextMenuCheckboxItem } from './ContextMenuCheckboxItem.vue'
+export { default as ContextMenuRadioItem } from './ContextMenuRadioItem.vue'
+export { default as ContextMenuShortcut } from './ContextMenuShortcut.vue'
+export { default as ContextMenuSeparator } from './ContextMenuSeparator.vue'
+export { default as ContextMenuLabel } from './ContextMenuLabel.vue'
+export { default as ContextMenuSub } from './ContextMenuSub.vue'
+export { default as ContextMenuSubTrigger } from './ContextMenuSubTrigger.vue'
+export { default as ContextMenuSubContent } from './ContextMenuSubContent.vue'
diff --git a/apps/www/src/lib/registry/default/ui/data-table/DataTable.vue b/apps/www/src/lib/registry/default/ui/data-table/DataTable.vue
new file mode 100644
index 00000000..33622dec
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/data-table/DataTable.vue
@@ -0,0 +1,327 @@
+
+
+
+
+
+
+
+
+
+
+ Toggle Columns
+
+
+
+ {{ column.columnDef.header }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No data available.
+
+
+
+
+
+
+
+ {{ table.getFilteredSelectedRowModel().rows.length }} of {{ " " }}
+ {{ table.getFilteredRowModel().rows.length }} row(s) selected
+
+
+
+
+
+ Rows per page:
+
+
+
+
+
+ Page {{ table.getState().pagination.pageIndex + 1 }} of
+ {{ table.getPageCount() }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/data-table/index.ts b/apps/www/src/lib/registry/default/ui/data-table/index.ts
new file mode 100644
index 00000000..4336ee8b
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/data-table/index.ts
@@ -0,0 +1 @@
+export { default as DataTable } from './DataTable.vue'
diff --git a/apps/www/src/lib/registry/default/ui/date-picker/DatePicker.vue b/apps/www/src/lib/registry/default/ui/date-picker/DatePicker.vue
new file mode 100644
index 00000000..b83b3837
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/date-picker/DatePicker.vue
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/date-picker/index.ts b/apps/www/src/lib/registry/default/ui/date-picker/index.ts
new file mode 100644
index 00000000..82ac2dc4
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/date-picker/index.ts
@@ -0,0 +1 @@
+export { default as DatePicker } from './DatePicker.vue'
diff --git a/apps/www/src/lib/registry/default/ui/dialog.ts b/apps/www/src/lib/registry/default/ui/dialog.ts
deleted file mode 100644
index 35ee5ad3..00000000
--- a/apps/www/src/lib/registry/default/ui/dialog.ts
+++ /dev/null
@@ -1,82 +0,0 @@
-import { defineComponent, h } from 'vue'
-import {
- DialogClose, type DialogContentEmits, DialogContent as DialogContentPrimitive, type DialogContentProps,
- DialogDescription as DialogDescriptionPrimitive, type DialogDescriptionProps,
- DialogOverlay as DialogOverlayPrimitive, type DialogOverlayProps,
- DialogPortal as DialogPortalPrimitive, DialogRoot,
- DialogTitle as DialogTitlePrimitive, type DialogTitleProps,
- DialogTrigger as DialogTriggerPrimitive,
-} from 'radix-vue'
-import { X } from 'lucide-vue-next'
-import type { ParseEmits } from '@/utils'
-import { cn, useEmitAsProps } from '@/utils'
-
-export const Dialog = DialogRoot
-export const DialogTrigger = DialogTriggerPrimitive
-export const DialogPortal = DialogPortalPrimitive
-
-export const DialogOverlay = defineComponent(
- (props, { attrs, slots }) => {
- return () => h(DialogOverlayPrimitive,
- { class: cn('fixed inset-0 z-50 bg-background/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', attrs.class), ...props },
- slots,
- )
- }, { name: 'DialogOverlay' },
-)
-
-export const DialogContent = defineComponent>(
- (props, { emit, attrs, slots }) => {
- const emitsAsProps = useEmitAsProps(emit)
-
- return () => h(DialogPortal, () => [
- h(DialogOverlay),
- h(DialogContentPrimitive, {
- class: cn('fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg md:w-full', attrs.class ?? ''),
- ...props,
- ...emitsAsProps,
- }, () => [
- slots.default(),
- h(DialogClose,
- { class: 'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground' },
- () => [h(X, { class: 'h-4 w-4' }), h('span', { class: 'sr-only' }, 'Close')],
- ),
- ]),
- ])
- }, { name: 'DialogContent', emits: DialogContentPrimitive.emits },
-)
-
-export const DialogHeader = defineComponent(
- (_props, { attrs, slots }) => {
- return () => h('div',
- { class: cn('flex flex-col space-y-1.5 text-center sm:text-left', attrs.class) },
- slots,
- )
- }, { name: 'DialogHeader' },
-)
-
-export const DialogFooter = defineComponent(
- (_props, { attrs, slots }) => {
- return () => h('div',
- { class: cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', attrs.class) },
- slots,
- )
- }, { name: 'DialogFooter' },
-)
-
-export const DialogTitle = defineComponent(
- (props, { attrs, slots }) => {
- return () => h(DialogTitlePrimitive,
- { class: cn('text-lg font-semibold leading-none tracking-tight', attrs.class), ...props },
- slots,
- )
- }, { name: 'DialogTitle' },
-)
-
-export const DialogDescription = defineComponent(
- (props, { attrs, slots }) => {
- return () => h(DialogDescriptionPrimitive,
- { class: cn('text-lg font-semibold leading-none tracking-tight', attrs.class), ...props },
- slots,
- )
- }, { name: 'DialogDescription' },
-)
diff --git a/apps/www/src/lib/registry/default/ui/dialog/Dialog.vue b/apps/www/src/lib/registry/default/ui/dialog/Dialog.vue
new file mode 100644
index 00000000..65d92c86
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dialog/Dialog.vue
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dialog/DialogContent.vue b/apps/www/src/lib/registry/default/ui/dialog/DialogContent.vue
new file mode 100644
index 00000000..74372fba
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dialog/DialogContent.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dialog/DialogDescription.vue b/apps/www/src/lib/registry/default/ui/dialog/DialogDescription.vue
new file mode 100644
index 00000000..6bf85cfa
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dialog/DialogDescription.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dialog/DialogFooter.vue b/apps/www/src/lib/registry/default/ui/dialog/DialogFooter.vue
new file mode 100644
index 00000000..734623f2
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dialog/DialogFooter.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dialog/DialogHeader.vue b/apps/www/src/lib/registry/default/ui/dialog/DialogHeader.vue
new file mode 100644
index 00000000..ad3340bd
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dialog/DialogHeader.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dialog/DialogTitle.vue b/apps/www/src/lib/registry/default/ui/dialog/DialogTitle.vue
new file mode 100644
index 00000000..5e748aae
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dialog/DialogTitle.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dialog/DialogTrigger.vue b/apps/www/src/lib/registry/default/ui/dialog/DialogTrigger.vue
new file mode 100644
index 00000000..ee0c12ff
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dialog/DialogTrigger.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dialog/index.ts b/apps/www/src/lib/registry/default/ui/dialog/index.ts
new file mode 100644
index 00000000..5cffe9e9
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dialog/index.ts
@@ -0,0 +1,7 @@
+export { default as Dialog } from './Dialog.vue'
+export { default as DialogTrigger } from './DialogTrigger.vue'
+export { default as DialogHeader } from './DialogHeader.vue'
+export { default as DialogTitle } from './DialogTitle.vue'
+export { default as DialogDescription } from './DialogDescription.vue'
+export { default as DialogContent } from './DialogContent.vue'
+export { default as DialogFooter } from './DialogFooter.vue'
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenu.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenu.vue
new file mode 100644
index 00000000..b2b57f0e
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenu.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuCheckboxItem.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuCheckboxItem.vue
new file mode 100644
index 00000000..55fb1f76
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuCheckboxItem.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuContent.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuContent.vue
new file mode 100644
index 00000000..fb2e5941
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuContent.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuGroup.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuGroup.vue
new file mode 100644
index 00000000..3f201352
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuGroup.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuItem.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuItem.vue
new file mode 100644
index 00000000..ed2a845b
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuItem.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuLabel.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuLabel.vue
new file mode 100644
index 00000000..e176e081
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuLabel.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioGroup.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioGroup.vue
new file mode 100644
index 00000000..5bdc41f7
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioGroup.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioItem.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioItem.vue
new file mode 100644
index 00000000..41e5ae3c
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioItem.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSeparator.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSeparator.vue
new file mode 100644
index 00000000..73829446
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSeparator.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuShortcut.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuShortcut.vue
new file mode 100644
index 00000000..5be2acac
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuShortcut.vue
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSub.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSub.vue
new file mode 100644
index 00000000..7589389f
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSub.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubContent.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubContent.vue
new file mode 100644
index 00000000..cac40f96
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubContent.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubTrigger.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubTrigger.vue
new file mode 100644
index 00000000..7679296d
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubTrigger.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuTrigger.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuTrigger.vue
new file mode 100644
index 00000000..73d88670
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuTrigger.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/index.ts b/apps/www/src/lib/registry/default/ui/dropdown-menu/index.ts
new file mode 100644
index 00000000..b069c39b
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/index.ts
@@ -0,0 +1,14 @@
+export { default as DropdownMenu } from './DropdownMenu.vue'
+export { default as DropdownMenuTrigger } from './DropdownMenuTrigger.vue'
+export { default as DropdownMenuContent } from './DropdownMenuContent.vue'
+export { default as DropdownMenuGroup } from './DropdownMenuGroup.vue'
+export { default as DropdownMenuRadioGroup } from './DropdownMenuRadioGroup.vue'
+export { default as DropdownMenuItem } from './DropdownMenuItem.vue'
+export { default as DropdownMenuCheckboxItem } from './DropdownMenuCheckboxItem.vue'
+export { default as DropdownMenuRadioItem } from './DropdownMenuRadioItem.vue'
+export { default as DropdownMenuShortcut } from './DropdownMenuShortcut.vue'
+export { default as DropdownMenuSeparator } from './DropdownMenuSeparator.vue'
+export { default as DropdownMenuLabel } from './DropdownMenuLabel.vue'
+export { default as DropdownMenuSub } from './DropdownMenuSub.vue'
+export { default as DropdownMenuSubTrigger } from './DropdownMenuSubTrigger.vue'
+export { default as DropdownMenuSubContent } from './DropdownMenuSubContent.vue'
diff --git a/apps/www/src/lib/registry/default/ui/hover-card/HoverCard.vue b/apps/www/src/lib/registry/default/ui/hover-card/HoverCard.vue
new file mode 100644
index 00000000..00fb9c04
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/hover-card/HoverCard.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/hover-card/HoverCardContent.vue b/apps/www/src/lib/registry/default/ui/hover-card/HoverCardContent.vue
new file mode 100644
index 00000000..eef7d526
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/hover-card/HoverCardContent.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/hover-card/HoverCardTrigger.vue b/apps/www/src/lib/registry/default/ui/hover-card/HoverCardTrigger.vue
new file mode 100644
index 00000000..3e300b95
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/hover-card/HoverCardTrigger.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/hover-card/index.ts b/apps/www/src/lib/registry/default/ui/hover-card/index.ts
new file mode 100644
index 00000000..c7bfd32d
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/hover-card/index.ts
@@ -0,0 +1,3 @@
+export { default as HoverCard } from './HoverCard.vue'
+export { default as HoverCardTrigger } from './HoverCardTrigger.vue'
+export { default as HoverCardContent } from './HoverCardContent.vue'
diff --git a/apps/www/src/lib/registry/default/ui/input.ts b/apps/www/src/lib/registry/default/ui/input.ts
deleted file mode 100644
index 9f3b58dc..00000000
--- a/apps/www/src/lib/registry/default/ui/input.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { defineComponent, h } from 'vue'
-import { cn } from '@/utils'
-
-export const Input = defineComponent(
- (_props, { attrs, slots }) => {
- return () => h('input',
- { class: cn('flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50', attrs.class ?? '') },
- slots)
- },
- { name: 'Input' },
-)
diff --git a/apps/www/src/lib/registry/default/ui/input/Input.vue b/apps/www/src/lib/registry/default/ui/input/Input.vue
new file mode 100644
index 00000000..f0e2b0f7
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/input/Input.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
+ {{ props.helperText }}
+
+
diff --git a/apps/www/src/lib/registry/default/ui/input/index.ts b/apps/www/src/lib/registry/default/ui/input/index.ts
new file mode 100644
index 00000000..a691dd6c
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/input/index.ts
@@ -0,0 +1 @@
+export { default as Input } from './Input.vue'
diff --git a/apps/www/src/lib/registry/default/ui/kbd/Kbd.vue b/apps/www/src/lib/registry/default/ui/kbd/Kbd.vue
new file mode 100644
index 00000000..856e8529
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/kbd/Kbd.vue
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/kbd/index.ts b/apps/www/src/lib/registry/default/ui/kbd/index.ts
new file mode 100644
index 00000000..0a7d6d2a
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/kbd/index.ts
@@ -0,0 +1 @@
+export { default as Kbd } from './Kbd.vue'
diff --git a/apps/www/src/lib/registry/default/ui/label.ts b/apps/www/src/lib/registry/default/ui/label.ts
deleted file mode 100644
index 8df77c27..00000000
--- a/apps/www/src/lib/registry/default/ui/label.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { defineComponent, h } from 'vue'
-import { type VariantProps, cva } from 'class-variance-authority'
-import { type LabelProps } from 'radix-vue'
-import { cn } from '@/utils'
-
-export const labelVariants = cva(
- 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',
-)
-
-interface Props extends LabelProps, VariantProps {}
-
-export const Label = defineComponent(
- (props, { attrs, slots }) => {
- return () => h('label', { class: cn(labelVariants(), attrs.class ?? ''), ...props }, slots)
- },
- { name: 'Label' },
-)
diff --git a/apps/www/src/lib/registry/default/ui/label/Label.vue b/apps/www/src/lib/registry/default/ui/label/Label.vue
new file mode 100644
index 00000000..e44d139e
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/label/Label.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/label/index.ts b/apps/www/src/lib/registry/default/ui/label/index.ts
new file mode 100644
index 00000000..572c2f01
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/label/index.ts
@@ -0,0 +1 @@
+export { default as Label } from './Label.vue'
diff --git a/apps/www/src/lib/registry/default/ui/menubar/Menubar.vue b/apps/www/src/lib/registry/default/ui/menubar/Menubar.vue
new file mode 100644
index 00000000..fec5208e
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/menubar/Menubar.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarCheckboxItem.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarCheckboxItem.vue
new file mode 100644
index 00000000..55a0e27e
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarCheckboxItem.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarContent.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarContent.vue
new file mode 100644
index 00000000..add8ae13
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarContent.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarGroup.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarGroup.vue
new file mode 100644
index 00000000..853976b5
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarGroup.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarItem.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarItem.vue
new file mode 100644
index 00000000..8b1b93fd
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarItem.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarLabel.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarLabel.vue
new file mode 100644
index 00000000..3a234c1a
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarLabel.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarMenu.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarMenu.vue
new file mode 100644
index 00000000..fec5ee55
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarMenu.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarRadioGroup.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarRadioGroup.vue
new file mode 100644
index 00000000..29ec574a
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarRadioGroup.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarRadioItem.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarRadioItem.vue
new file mode 100644
index 00000000..7c58baed
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarRadioItem.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarSeparator.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarSeparator.vue
new file mode 100644
index 00000000..7646448e
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarSeparator.vue
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarShortcut.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarShortcut.vue
new file mode 100644
index 00000000..5be2acac
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarShortcut.vue
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarSub.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarSub.vue
new file mode 100644
index 00000000..4adcc356
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarSub.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarSubContent.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarSubContent.vue
new file mode 100644
index 00000000..a2d11ad1
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarSubContent.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarSubTrigger.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarSubTrigger.vue
new file mode 100644
index 00000000..42c0391e
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarSubTrigger.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarTrigger.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarTrigger.vue
new file mode 100644
index 00000000..25c6d1a6
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarTrigger.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/menubar/index.ts b/apps/www/src/lib/registry/default/ui/menubar/index.ts
new file mode 100644
index 00000000..808ec4d3
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/menubar/index.ts
@@ -0,0 +1,15 @@
+export { default as Menubar } from './Menubar.vue'
+export { default as MenubarItem } from './MenubarItem.vue'
+export { default as MenubarContent } from './MenubarContent.vue'
+export { default as MenubarGroup } from './MenubarGroup.vue'
+export { default as MenubarMenu } from './MenubarMenu.vue'
+export { default as MenubarRadioGroup } from './MenubarRadioGroup.vue'
+export { default as MenubarRadioItem } from './MenubarRadioItem.vue'
+export { default as MenubarCheckboxItem } from './MenubarCheckboxItem.vue'
+export { default as MenubarSeparator } from './MenubarSeparator.vue'
+export { default as MenubarSub } from './MenubarSub.vue'
+export { default as MenubarSubContent } from './MenubarSubContent.vue'
+export { default as MenubarSubTrigger } from './MenubarSubTrigger.vue'
+export { default as MenubarTrigger } from './MenubarTrigger.vue'
+export { default as MenubarShortcut } from './MenubarShortcut.vue'
+export { default as MenubarLabel } from './MenubarLabel.vue'
diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenu.vue b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenu.vue
new file mode 100644
index 00000000..74a65c7a
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenu.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuContent.vue b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuContent.vue
new file mode 100644
index 00000000..e2a48c49
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuContent.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuItem.vue b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuItem.vue
new file mode 100644
index 00000000..50e1565f
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuItem.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuLink.vue b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuLink.vue
new file mode 100644
index 00000000..19e5812e
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuLink.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuList.vue b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuList.vue
new file mode 100644
index 00000000..c30dcde3
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuList.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuListItem.vue b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuListItem.vue
new file mode 100644
index 00000000..356aaaa9
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuListItem.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+ {{ props.title }}
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuTrigger.vue b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuTrigger.vue
new file mode 100644
index 00000000..3a7f514c
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuTrigger.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
+ {{ " " }}
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/index.ts b/apps/www/src/lib/registry/default/ui/navigation-menu/index.ts
new file mode 100644
index 00000000..38f20da2
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/navigation-menu/index.ts
@@ -0,0 +1,7 @@
+export { default as NavigationMenu } from './NavigationMenu.vue'
+export { default as NavigationMenuList } from './NavigationMenuList.vue'
+export { default as NavigationMenuItem } from './NavigationMenuItem.vue'
+export { default as NavigationMenuTrigger } from './NavigationMenuTrigger.vue'
+export { default as NavigationMenuContent } from './NavigationMenuContent.vue'
+export { default as NavigationMenuLink } from './NavigationMenuLink.vue'
+export { default as NavigationMenuListItem } from './NavigationMenuListItem.vue'
diff --git a/apps/www/src/lib/registry/default/ui/popover.ts b/apps/www/src/lib/registry/default/ui/popover.ts
deleted file mode 100644
index 14eb19fc..00000000
--- a/apps/www/src/lib/registry/default/ui/popover.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { defineComponent, h } from 'vue'
-import {
- type PopoverContentEmits, PopoverContent as PopoverContentPrimitive, type PopoverContentProps,
- PopoverPortal,
- PopoverRoot,
- PopoverTrigger as PopoverTriggerPrimitive,
-} from 'radix-vue'
-import { type ParseEmits, cn } from '@/utils'
-
-export const Popover = PopoverRoot
-export const PopoverTrigger = PopoverTriggerPrimitive
-
-export const PopoverContent = defineComponent>(
- (props, { attrs, slots }) => {
- return () => h(PopoverPortal,
- () => h(PopoverContentPrimitive,
- {
- align: 'center',
- sideOffset: 20, // set default value
-
- ...attrs,
- ...props,
- class: cn('z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', attrs.class),
- }, slots),
- )
- }, {
- name: 'PopoverContent',
- },
-)
diff --git a/apps/www/src/lib/registry/default/ui/popover/Popover.vue b/apps/www/src/lib/registry/default/ui/popover/Popover.vue
new file mode 100644
index 00000000..76b0071f
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/popover/Popover.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/popover/PopoverContent.vue b/apps/www/src/lib/registry/default/ui/popover/PopoverContent.vue
new file mode 100644
index 00000000..3b5a2cd0
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/popover/PopoverContent.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/popover/PopoverTrigger.vue b/apps/www/src/lib/registry/default/ui/popover/PopoverTrigger.vue
new file mode 100644
index 00000000..22f4772a
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/popover/PopoverTrigger.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/popover/index.ts b/apps/www/src/lib/registry/default/ui/popover/index.ts
new file mode 100644
index 00000000..495d55a8
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/popover/index.ts
@@ -0,0 +1,3 @@
+export { default as Popover } from './Popover.vue'
+export { default as PopoverTrigger } from './PopoverTrigger.vue'
+export { default as PopoverContent } from './PopoverContent.vue'
diff --git a/apps/www/src/lib/registry/default/ui/progress/Progress.vue b/apps/www/src/lib/registry/default/ui/progress/Progress.vue
new file mode 100644
index 00000000..37df7e6c
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/progress/Progress.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/progress/index.ts b/apps/www/src/lib/registry/default/ui/progress/index.ts
new file mode 100644
index 00000000..eace9893
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/progress/index.ts
@@ -0,0 +1 @@
+export { default as Progress } from './Progress.vue'
diff --git a/apps/www/src/lib/registry/default/ui/radio-group/RadioGroup.vue b/apps/www/src/lib/registry/default/ui/radio-group/RadioGroup.vue
new file mode 100644
index 00000000..1eff3f58
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/radio-group/RadioGroup.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/radio-group/RadioGroupItem.vue b/apps/www/src/lib/registry/default/ui/radio-group/RadioGroupItem.vue
new file mode 100644
index 00000000..6d74489d
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/radio-group/RadioGroupItem.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/radio-group/index.ts b/apps/www/src/lib/registry/default/ui/radio-group/index.ts
new file mode 100644
index 00000000..fa1da9c2
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/radio-group/index.ts
@@ -0,0 +1,2 @@
+export { default as RadioGroup } from './RadioGroup.vue'
+export { default as RadioGroupItem } from './RadioGroupItem.vue'
diff --git a/apps/www/src/lib/registry/default/ui/scroll-area/ScrollArea.vue b/apps/www/src/lib/registry/default/ui/scroll-area/ScrollArea.vue
new file mode 100644
index 00000000..f0c7fc61
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/scroll-area/ScrollArea.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/scroll-area/index.ts b/apps/www/src/lib/registry/default/ui/scroll-area/index.ts
new file mode 100644
index 00000000..82a7ce7d
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/scroll-area/index.ts
@@ -0,0 +1 @@
+export { default as ScrollArea } from './ScrollArea.vue'
diff --git a/apps/www/src/lib/registry/default/ui/select.tsx b/apps/www/src/lib/registry/default/ui/select.tsx
deleted file mode 100644
index 7f4534ce..00000000
--- a/apps/www/src/lib/registry/default/ui/select.tsx
+++ /dev/null
@@ -1,112 +0,0 @@
-import { defineComponent } from 'vue'
-import {
- type SelectContentEmits, SelectContent as SelectContentPrimitive, type SelectContentProps,
- SelectGroup as SelectGroupPrimitive,
- SelectIcon, SelectItemIndicator,
- SelectItem as SelectItemPrimitive, type SelectItemProps,
- SelectItemText,
- SelectLabel as SelectLabelPrimitive, type SelectLabelProps,
- SelectPortal, SelectRoot,
- SelectSeparator as SelectSeparatorPrimitive, type SelectSeparatorProps,
- SelectTrigger as SelectTriggerPrimitive, type SelectTriggerProps,
- SelectValue as SelectValuePrimitive, SelectViewport,
-} from 'radix-vue'
-import { Check, ChevronDown } from 'lucide-vue-next'
-import type { ParseEmits } from '@/utils'
-import { cn, convertToComponent, useEmitAsProps } from '@/utils'
-
-export const Select = SelectRoot
-export const SelectGroup = SelectGroupPrimitive
-export const SelectValue = SelectValuePrimitive
-
-// Convert Functional component to valid VNode to be use in JSX
-const IChevrondown = convertToComponent(ChevronDown)
-const ICheck = convertToComponent(Check)
-
-export const SelectTrigger = defineComponent(
- (props, { attrs, slots }) => {
- return () => (
-
- { slots.default?.() }
-
-
-
-
-
- )
- }, {
- name: 'SelectTrigger',
- },
-)
-
-export const SelectContent = defineComponent>(
- (props, { emit, attrs, slots }) => {
- const position = props.position ?? 'popper'
- const emitsAsProps = useEmitAsProps(emit)
- return () => (
-
-
-
- { slots.default?.()}
-
-
-
- )
- }, { name: 'SelectContent', emits: SelectContentPrimitive.emits },
-)
-
-export const SelectLabel = defineComponent(
- (props, { attrs, slots }) => {
- return () => (
-
- { slots.default?.() }
-
- )
- }, { name: 'SelectLabel' },
-)
-
-export const SelectItem = defineComponent(
- (props, { attrs, slots }) => {
- return () => (
-
-
-
-
-
-
-
-
- { slots.default?.() }
-
-
- )
- }, { name: 'SelectItem' },
-)
-
-export const SelectSeparator = defineComponent(
- (props, { attrs, slots }) => {
- return () => (
-
- { slots.default?.() }
-
- )
- }, { name: 'SelectSeparator' },
-)
diff --git a/apps/www/src/lib/registry/default/ui/select/Select.vue b/apps/www/src/lib/registry/default/ui/select/Select.vue
new file mode 100644
index 00000000..4c8d371a
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/select/Select.vue
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/select/SelectContent.vue b/apps/www/src/lib/registry/default/ui/select/SelectContent.vue
new file mode 100644
index 00000000..a5b0e342
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/select/SelectContent.vue
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/select/SelectGroup.vue b/apps/www/src/lib/registry/default/ui/select/SelectGroup.vue
new file mode 100644
index 00000000..e31301c7
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/select/SelectGroup.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/select/SelectItem.vue b/apps/www/src/lib/registry/default/ui/select/SelectItem.vue
new file mode 100644
index 00000000..9504f962
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/select/SelectItem.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/select/SelectItemText.vue b/apps/www/src/lib/registry/default/ui/select/SelectItemText.vue
new file mode 100644
index 00000000..a0bb5c24
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/select/SelectItemText.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/select/SelectLabel.vue b/apps/www/src/lib/registry/default/ui/select/SelectLabel.vue
new file mode 100644
index 00000000..d917d1ec
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/select/SelectLabel.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/select/SelectSeparator.vue b/apps/www/src/lib/registry/default/ui/select/SelectSeparator.vue
new file mode 100644
index 00000000..81bb86c7
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/select/SelectSeparator.vue
@@ -0,0 +1,10 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/select/SelectTrigger.vue b/apps/www/src/lib/registry/default/ui/select/SelectTrigger.vue
new file mode 100644
index 00000000..607e9010
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/select/SelectTrigger.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/select/SelectValue.vue b/apps/www/src/lib/registry/default/ui/select/SelectValue.vue
new file mode 100644
index 00000000..4bc37dd8
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/select/SelectValue.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/select/index.ts b/apps/www/src/lib/registry/default/ui/select/index.ts
new file mode 100644
index 00000000..f188cc49
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/select/index.ts
@@ -0,0 +1,9 @@
+export { default as Select } from './Select.vue'
+export { default as SelectValue } from './SelectValue.vue'
+export { default as SelectTrigger } from './SelectTrigger.vue'
+export { default as SelectContent } from './SelectContent.vue'
+export { default as SelectGroup } from './SelectGroup.vue'
+export { default as SelectItem } from './SelectItem.vue'
+export { default as SelectItemText } from './SelectItemText.vue'
+export { default as SelectLabel } from './SelectLabel.vue'
+export { default as SelectSeparator } from './SelectSeparator.vue'
diff --git a/apps/www/src/lib/registry/default/ui/separator/Separator.vue b/apps/www/src/lib/registry/default/ui/separator/Separator.vue
new file mode 100644
index 00000000..1e6b3f3f
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/separator/Separator.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/separator/index.ts b/apps/www/src/lib/registry/default/ui/separator/index.ts
new file mode 100644
index 00000000..2287bcb9
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/separator/index.ts
@@ -0,0 +1 @@
+export { default as Separator } from './Separator.vue'
diff --git a/apps/www/src/lib/registry/default/ui/skeleton/Skeleton.vue b/apps/www/src/lib/registry/default/ui/skeleton/Skeleton.vue
new file mode 100644
index 00000000..bf3b943a
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/skeleton/Skeleton.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/skeleton/index.ts b/apps/www/src/lib/registry/default/ui/skeleton/index.ts
new file mode 100644
index 00000000..be21fad3
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/skeleton/index.ts
@@ -0,0 +1 @@
+export { default as Skeleton } from './Skeleton.vue'
diff --git a/apps/www/src/lib/registry/default/ui/slider/Slider.vue b/apps/www/src/lib/registry/default/ui/slider/Slider.vue
new file mode 100644
index 00000000..4888201e
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/slider/Slider.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+ emit(
+ 'update:modelValue',
+ ($event.target as HTMLInputElement).valueAsNumber,
+ )
+ "
+ >
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/slider/index.ts b/apps/www/src/lib/registry/default/ui/slider/index.ts
new file mode 100644
index 00000000..1c945deb
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/slider/index.ts
@@ -0,0 +1 @@
+export { default as Slider } from './Slider.vue'
diff --git a/apps/www/src/lib/registry/default/ui/switch/Switch.vue b/apps/www/src/lib/registry/default/ui/switch/Switch.vue
new file mode 100644
index 00000000..7983d1ae
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/switch/Switch.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/switch/index.ts b/apps/www/src/lib/registry/default/ui/switch/index.ts
new file mode 100644
index 00000000..87b4b17d
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/switch/index.ts
@@ -0,0 +1 @@
+export { default as Switch } from './Switch.vue'
diff --git a/apps/www/src/lib/registry/default/ui/table/Table.vue b/apps/www/src/lib/registry/default/ui/table/Table.vue
new file mode 100644
index 00000000..cf275445
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/table/Table.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/table/TableBody.vue b/apps/www/src/lib/registry/default/ui/table/TableBody.vue
new file mode 100644
index 00000000..09d61910
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/table/TableBody.vue
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/table/TableCaption.vue b/apps/www/src/lib/registry/default/ui/table/TableCaption.vue
new file mode 100644
index 00000000..315514af
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/table/TableCaption.vue
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/table/TableCell.vue b/apps/www/src/lib/registry/default/ui/table/TableCell.vue
new file mode 100644
index 00000000..c7d8eb34
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/table/TableCell.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+ |
+
diff --git a/apps/www/src/lib/registry/default/ui/table/TableEmpty.vue b/apps/www/src/lib/registry/default/ui/table/TableEmpty.vue
new file mode 100644
index 00000000..7e60756f
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/table/TableEmpty.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/table/TableHead.vue b/apps/www/src/lib/registry/default/ui/table/TableHead.vue
new file mode 100644
index 00000000..86515076
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/table/TableHead.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+ |
+
diff --git a/apps/www/src/lib/registry/default/ui/table/TableHeader.vue b/apps/www/src/lib/registry/default/ui/table/TableHeader.vue
new file mode 100644
index 00000000..5051e7de
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/table/TableHeader.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/table/TableRow.vue b/apps/www/src/lib/registry/default/ui/table/TableRow.vue
new file mode 100644
index 00000000..b4bc54a6
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/table/TableRow.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/table/index.ts b/apps/www/src/lib/registry/default/ui/table/index.ts
new file mode 100644
index 00000000..44582d35
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/table/index.ts
@@ -0,0 +1,8 @@
+export { default as Table } from './Table.vue'
+export { default as TableBody } from './TableBody.vue'
+export { default as TableCell } from './TableCell.vue'
+export { default as TableHead } from './TableHead.vue'
+export { default as TableHeader } from './TableHeader.vue'
+export { default as TableRow } from './TableRow.vue'
+export { default as TableCaption } from './TableCaption.vue'
+export { default as TableEmpty } from './TableEmpty.vue'
diff --git a/apps/www/src/lib/registry/default/ui/tabs/Tabs.vue b/apps/www/src/lib/registry/default/ui/tabs/Tabs.vue
new file mode 100644
index 00000000..808fe019
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/tabs/Tabs.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/tabs/TabsContent.vue b/apps/www/src/lib/registry/default/ui/tabs/TabsContent.vue
new file mode 100644
index 00000000..223ac760
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/tabs/TabsContent.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/tabs/TabsList.vue b/apps/www/src/lib/registry/default/ui/tabs/TabsList.vue
new file mode 100644
index 00000000..e0b479d9
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/tabs/TabsList.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/tabs/TabsTrigger.vue b/apps/www/src/lib/registry/default/ui/tabs/TabsTrigger.vue
new file mode 100644
index 00000000..84a9d66f
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/tabs/TabsTrigger.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/tabs/index.ts b/apps/www/src/lib/registry/default/ui/tabs/index.ts
new file mode 100644
index 00000000..fbea0c68
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/tabs/index.ts
@@ -0,0 +1,4 @@
+export { default as Tabs } from './Tabs.vue'
+export { default as TabsTrigger } from './TabsTrigger.vue'
+export { default as TabsList } from './TabsList.vue'
+export { default as TabsContent } from './TabsContent.vue'
diff --git a/apps/www/src/lib/registry/default/ui/textarea/Input.vue b/apps/www/src/lib/registry/default/ui/textarea/Input.vue
new file mode 100644
index 00000000..f0e2b0f7
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/textarea/Input.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
+ {{ props.helperText }}
+
+
diff --git a/apps/www/src/lib/registry/default/ui/textarea/Textarea.vue b/apps/www/src/lib/registry/default/ui/textarea/Textarea.vue
new file mode 100644
index 00000000..79a7718d
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/textarea/Textarea.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+ {{ props.helperText }}
+
+
diff --git a/apps/www/src/lib/registry/default/ui/textarea/index.ts b/apps/www/src/lib/registry/default/ui/textarea/index.ts
new file mode 100644
index 00000000..6a7ab2a7
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/textarea/index.ts
@@ -0,0 +1 @@
+export { default as Textarea } from './Textarea.vue'
diff --git a/apps/www/src/lib/registry/default/ui/toggle/Toggle.vue b/apps/www/src/lib/registry/default/ui/toggle/Toggle.vue
new file mode 100644
index 00000000..fb4bdd64
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/toggle/Toggle.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/toggle/index.ts b/apps/www/src/lib/registry/default/ui/toggle/index.ts
new file mode 100644
index 00000000..6bfe49c1
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/toggle/index.ts
@@ -0,0 +1 @@
+export { default as Toggle } from './Toggle.vue'
diff --git a/apps/www/src/main.ts b/apps/www/src/main.ts
deleted file mode 100644
index 2425c0f7..00000000
--- a/apps/www/src/main.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { createApp } from 'vue'
-import './style.css'
-import App from './App.vue'
-
-createApp(App).mount('#app')
diff --git a/apps/www/src/style.css b/apps/www/src/style.css
deleted file mode 100644
index 92b44093..00000000
--- a/apps/www/src/style.css
+++ /dev/null
@@ -1,82 +0,0 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
-
-@layer base {
- :root {
- --background: 0 0% 100%;
- --foreground: 222.2 47.4% 11.2%;
-
- --muted: 210 40% 96.1%;
- --muted-foreground: 215.4 16.3% 46.9%;
-
- --popover: 0 0% 100%;
- --popover-foreground: 222.2 47.4% 11.2%;
-
- --card: 0 0% 100%;
- --card-foreground: 222.2 47.4% 11.2%;
-
- --border: 214.3 31.8% 91.4%;
- --input: 214.3 31.8% 91.4%;
-
- --primary: 222.2 47.4% 11.2%;
- --primary-foreground: 210 40% 98%;
-
- --secondary: 210 40% 96.1%;
- --secondary-foreground: 222.2 47.4% 11.2%;
-
- --accent: 210 40% 96.1%;
- --accent-foreground: 222.2 47.4% 11.2%;
-
- --destructive: 0 100% 50%;
- --destructive-foreground: 210 40% 98%;
-
- --ring: 215 20.2% 65.1%;
-
- --radius: 0.5rem;
- }
-
- .dark {
- --background: 224 71% 4%;
- --foreground: 213 31% 91%;
-
- --muted: 223 47% 11%;
- --muted-foreground: 215.4 16.3% 56.9%;
-
- --popover: 224 71% 4%;
- --popover-foreground: 215 20.2% 65.1%;
-
- --card: 224 71% 4%;
- --card-foreground: 213 31% 91%;
-
- --border: 216 34% 17%;
- --input: 216 34% 17%;
-
- --primary: 210 40% 98%;
- --primary-foreground: 222.2 47.4% 1.2%;
-
- --secondary: 222.2 47.4% 11.2%;
- --secondary-foreground: 210 40% 98%;
-
- --accent: 216 34% 17%;
- --accent-foreground: 210 40% 98%;
-
- --destructive: 0 63% 31%;
- --destructive-foreground: 210 40% 98%;
-
- --ring: 216 34% 17%;
-
- --radius: 0.5rem;
- }
-}
-
-@layer base {
- * {
- @apply border-border;
- }
- body {
- @apply bg-background text-foreground;
- font-feature-settings: "rlig" 1, "calt" 1;
- }
-}
-
diff --git a/apps/www/tailwind.config.js b/apps/www/tailwind.config.js
index 034358cb..68075402 100644
--- a/apps/www/tailwind.config.js
+++ b/apps/www/tailwind.config.js
@@ -2,8 +2,8 @@ import tailwindcssAnimate from 'tailwindcss-animate'
/** @type {import('tailwindcss').Config} */
export default {
- darkMode: ['class'],
- content: ['./index.html', './src/**/*.{vue,js,ts,jsx,tsx,md}', './vitepress/**/*.{vue,js,ts,jsx,tsx}'],
+ darkMode: 'class',
+ content: ['./index.html', './src/**/*.{vue,js,ts,jsx,tsx,md}', './.vitepress/**/*.{vue,js,ts,jsx,tsx}'],
theme: {
container: {
center: true,
@@ -68,8 +68,8 @@ export default {
},
},
animation: {
- 'accordion-down': 'accordion-down 0.2s ease-out',
- 'accordion-up': 'accordion-up 0.2s ease-out',
+ 'accordion-down': 'accordion-down 0.2s ease-in-out',
+ 'accordion-up': 'accordion-up 0.2s ease-in-out',
},
},
},
diff --git a/apps/www/tsconfig.json b/apps/www/tsconfig.json
index 2b4d6e1e..879c6bc0 100644
--- a/apps/www/tsconfig.json
+++ b/apps/www/tsconfig.json
@@ -13,6 +13,10 @@
"lib": ["esnext", "dom"],
"baseUrl": ".",
"skipLibCheck": true,
- "outDir": "dist"
+ "outDir": "dist",
+ "types": ["unplugin-icons/types/vue", "node"],
+ "paths": {
+ "@/*": ["./src/*"]
+ }
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2ef2bcc9..93d4b568 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -72,6 +72,12 @@ importers:
specifier: ^3.3.4
version: 3.3.4
devDependencies:
+ '@iconify-json/radix-icons':
+ specifier: ^1.1.11
+ version: 1.1.11
+ '@iconify-json/tabler':
+ specifier: ^1.1.89
+ version: 1.1.89
'@iconify/vue':
specifier: ^4.1.1
version: 4.1.1(vue@3.3.4)
@@ -93,6 +99,9 @@ importers:
typescript:
specifier: ^5.0.2
version: 5.0.2
+ unplugin-icons:
+ specifier: ^0.16.6
+ version: 0.16.6
vite:
specifier: ^4.3.9
version: 4.3.9(@types/node@20.4.7)
@@ -440,11 +449,22 @@ packages:
- typescript
dev: true
+ /@antfu/install-pkg@0.1.1:
+ resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==}
+ dependencies:
+ execa: 5.1.1
+ find-up: 5.0.0
+ dev: true
+
/@antfu/ni@0.21.6:
resolution: {integrity: sha512-Hj0BKIOspbo+OsPT5mjONeqpuVb4bxp9jdJ4p/b5GxgYNIqJjBcJdp0DEON7CJflKoWuHf7I52wO5kOJJ4DveQ==}
hasBin: true
dev: false
+ /@antfu/utils@0.7.6:
+ resolution: {integrity: sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==}
+ dev: true
+
/@babel/code-frame@7.22.10:
resolution: {integrity: sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==}
engines: {node: '>=6.9.0'}
@@ -1511,10 +1531,35 @@ packages:
resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
dev: true
+ /@iconify-json/radix-icons@1.1.11:
+ resolution: {integrity: sha512-0FkllP6ghJakWHC0oQb+Jwg4W52mCDkV3JvVrXoyCPjG4kxX4wNhl8Ilk1dfT1EM+YvEXxrR2Mv63ySzVeYr9w==}
+ dependencies:
+ '@iconify/types': 2.0.0
+ dev: true
+
+ /@iconify-json/tabler@1.1.89:
+ resolution: {integrity: sha512-G2NFjRcmAeMO08I+6uJh05NmMrL74kU+tbbd4DSmlAfnkcCZg9ugojOPCRkT33IBlPSr7pXAO2EXHJwrAKP2lg==}
+ dependencies:
+ '@iconify/types': 2.0.0
+ dev: true
+
/@iconify/types@2.0.0:
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
dev: true
+ /@iconify/utils@2.1.9:
+ resolution: {integrity: sha512-mo+A4n3MwLlWlg1SoSO+Dt6pOPWKElk9sSJ6ZpuzbB9OcjxN8RUWxU3ulPwB1nglErWKRam2x4BAohbYF7FiFA==}
+ dependencies:
+ '@antfu/install-pkg': 0.1.1
+ '@antfu/utils': 0.7.6
+ '@iconify/types': 2.0.0
+ debug: 4.3.4
+ kolorist: 1.8.0
+ local-pkg: 0.4.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@iconify/vue@4.1.1(vue@3.3.4):
resolution: {integrity: sha512-RL85Bm/DAe8y6rT6pux7D2FJSiUEM/TPfyK7GrbAOfTSwrhvwJW+S5yijdGcmtXouA8MtuH9C7l4hiSE4mLMjg==}
peerDependencies:
@@ -2823,7 +2868,7 @@ packages:
dev: true
/concat-map@0.0.1:
- resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+ resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
/consola@3.2.3:
resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==}
@@ -4524,6 +4569,10 @@ packages:
resolution: {integrity: sha512-dWl0Dbjm6Xm+kDxhPQJsCBTxrJzuGl0aP9rhr+TG8D3l+GL90N8O8lYUi7dTSAN2uuDqCtNgb6aEuQH5wsiV8Q==}
dev: false
+ /kolorist@1.8.0:
+ resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==}
+ dev: true
+
/levn@0.4.1:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
@@ -6349,6 +6398,37 @@ packages:
resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==}
engines: {node: '>= 10.0.0'}
+ /unplugin-icons@0.16.6:
+ resolution: {integrity: sha512-jL70sAC7twp4hI/MTfm+vyvTRtHqiEIzf3XOjJz7yzhMEEQnk5Ey5YIXRAU03Mc4BF99ITvvnBzfyRZee86OeA==}
+ peerDependencies:
+ '@svgr/core': '>=7.0.0'
+ '@svgx/core': ^1.0.1
+ '@vue/compiler-sfc': ^3.0.2 || ^2.7.0
+ vue-template-compiler: ^2.6.12
+ vue-template-es2015-compiler: ^1.9.0
+ peerDependenciesMeta:
+ '@svgr/core':
+ optional: true
+ '@svgx/core':
+ optional: true
+ '@vue/compiler-sfc':
+ optional: true
+ vue-template-compiler:
+ optional: true
+ vue-template-es2015-compiler:
+ optional: true
+ dependencies:
+ '@antfu/install-pkg': 0.1.1
+ '@antfu/utils': 0.7.6
+ '@iconify/utils': 2.1.9
+ debug: 4.3.4
+ kolorist: 1.8.0
+ local-pkg: 0.4.3
+ unplugin: 1.4.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/unplugin@1.4.0:
resolution: {integrity: sha512-5x4eIEL6WgbzqGtF9UV8VEC/ehKptPXDS6L2b0mv4FRMkJxRtjaJfOWDd6a8+kYbqsjklix7yWP0N3SUepjXcg==}
dependencies:
@@ -6356,7 +6436,6 @@ packages:
chokidar: 3.5.3
webpack-sources: 3.2.3
webpack-virtual-modules: 0.5.0
- dev: false
/untyped@1.4.0:
resolution: {integrity: sha512-Egkr/s4zcMTEuulcIb7dgURS6QpN7DyqQYdf+jBtiaJvQ+eRsrtWUoX84SbvQWuLkXsOjM+8sJC9u6KoMK/U7Q==}
@@ -6690,11 +6769,9 @@ packages:
/webpack-sources@3.2.3:
resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
engines: {node: '>=10.13.0'}
- dev: false
/webpack-virtual-modules@0.5.0:
resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==}
- dev: false
/whatwg-url@7.1.0:
resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==}