shadcn-vue/apps/www/src/lib/registry/registry.ts
2023-09-05 23:45:14 +08:00

865 lines
21 KiB
TypeScript

import type { Registry } from './schema'
const ui: Registry = [
{
name: 'accordion',
type: 'components:ui',
dependencies: ['@radix-ui/react-accordion'],
files: ['ui/accordion.tsx'],
},
{
name: 'alert',
type: 'components:ui',
files: ['ui/alert.tsx'],
},
{
name: 'alert-dialog',
type: 'components:ui',
dependencies: ['@radix-ui/react-alert-dialog'],
registryDependencies: ['button'],
files: ['ui/alert-dialog.tsx'],
},
{
name: 'aspect-ratio',
type: 'components:ui',
dependencies: ['@radix-ui/react-aspect-ratio'],
files: ['ui/aspect-ratio.tsx'],
},
{
name: 'avatar',
type: 'components:ui',
dependencies: ['@radix-ui/react-avatar'],
files: ['ui/avatar.tsx'],
},
{
name: 'badge',
type: 'components:ui',
files: ['ui/badge.tsx'],
},
{
name: 'button',
type: 'components:ui',
dependencies: ['@radix-ui/react-slot'],
files: ['ui/button.tsx'],
},
{
name: 'calendar',
type: 'components:ui',
dependencies: ['react-day-picker', 'date-fns'],
registryDependencies: ['button'],
files: ['ui/calendar.tsx'],
},
{
name: 'card',
type: 'components:ui',
files: ['ui/card.tsx'],
},
{
name: 'checkbox',
type: 'components:ui',
dependencies: ['@radix-ui/react-checkbox'],
files: ['ui/checkbox.tsx'],
},
{
name: 'collapsible',
type: 'components:ui',
dependencies: ['@radix-ui/react-collapsible'],
files: ['ui/collapsible.tsx'],
},
{
name: 'command',
type: 'components:ui',
dependencies: ['cmdk'],
registryDependencies: ['dialog'],
files: ['ui/command.tsx'],
},
{
name: 'context-menu',
type: 'components:ui',
dependencies: ['@radix-ui/react-context-menu'],
files: ['ui/context-menu.tsx'],
},
{
name: 'dialog',
type: 'components:ui',
dependencies: ['@radix-ui/react-dialog'],
files: ['ui/dialog.tsx'],
},
{
name: 'dropdown-menu',
type: 'components:ui',
dependencies: ['@radix-ui/react-dropdown-menu'],
files: ['ui/dropdown-menu.tsx'],
},
{
name: 'form',
type: 'components:ui',
dependencies: [
'@radix-ui/react-label',
'@radix-ui/react-slot',
'@hookform/resolvers',
'zod',
'react-hook-form',
],
registryDependencies: ['button', 'label'],
files: ['ui/form.tsx'],
},
{
name: 'hover-card',
type: 'components:ui',
dependencies: ['@radix-ui/react-hover-card'],
files: ['ui/hover-card.tsx'],
},
{
name: 'input',
type: 'components:ui',
files: ['ui/input.tsx'],
},
{
name: 'label',
type: 'components:ui',
dependencies: ['@radix-ui/react-label'],
files: ['ui/label.tsx'],
},
{
name: 'menubar',
type: 'components:ui',
dependencies: ['@radix-ui/react-menubar'],
files: ['ui/menubar.tsx'],
},
{
name: 'navigation-menu',
type: 'components:ui',
dependencies: ['@radix-ui/react-navigation-menu'],
files: ['ui/navigation-menu.tsx'],
},
{
name: 'popover',
type: 'components:ui',
dependencies: ['@radix-ui/react-popover'],
files: ['ui/popover.tsx'],
},
{
name: 'progress',
type: 'components:ui',
dependencies: ['@radix-ui/react-progress'],
files: ['ui/progress.tsx'],
},
{
name: 'radio-group',
type: 'components:ui',
dependencies: ['@radix-ui/react-radio-group'],
files: ['ui/radio-group.tsx'],
},
{
name: 'scroll-area',
type: 'components:ui',
dependencies: ['@radix-ui/react-scroll-area'],
files: ['ui/scroll-area.tsx'],
},
{
name: 'select',
type: 'components:ui',
dependencies: ['@radix-ui/react-select'],
files: ['ui/select.tsx'],
},
{
name: 'separator',
type: 'components:ui',
dependencies: ['@radix-ui/react-separator'],
files: ['ui/separator.tsx'],
},
{
name: 'sheet',
type: 'components:ui',
dependencies: ['@radix-ui/react-dialog'],
files: ['ui/sheet.tsx'],
},
{
name: 'skeleton',
type: 'components:ui',
files: ['ui/skeleton.tsx'],
},
{
name: 'slider',
type: 'components:ui',
dependencies: ['@radix-ui/react-slider'],
files: ['ui/slider.tsx'],
},
{
name: 'switch',
type: 'components:ui',
dependencies: ['@radix-ui/react-switch'],
files: ['ui/switch.tsx'],
},
{
name: 'table',
type: 'components:ui',
files: ['ui/table.tsx'],
},
{
name: 'tabs',
type: 'components:ui',
dependencies: ['@radix-ui/react-tabs'],
files: ['ui/tabs.tsx'],
},
{
name: 'textarea',
type: 'components:ui',
files: ['ui/textarea.tsx'],
},
{
name: 'toast',
type: 'components:ui',
dependencies: ['@radix-ui/react-toast'],
files: ['ui/toast.tsx', 'ui/use-toast.ts', 'ui/toaster.tsx'],
},
{
name: 'toggle',
type: 'components:ui',
dependencies: ['@radix-ui/react-toggle'],
files: ['ui/toggle.tsx'],
},
{
name: 'tooltip',
type: 'components:ui',
dependencies: ['@radix-ui/react-tooltip'],
files: ['ui/tooltip.tsx'],
},
]
const example: Registry = [
{
name: 'accordion-demo',
type: 'components:example',
registryDependencies: ['accordion'],
files: ['example/accordion-demo.tsx'],
},
{
name: 'alert-demo',
type: 'components:example',
registryDependencies: ['alert'],
files: ['example/alert-demo.tsx'],
},
{
name: 'alert-destructive',
type: 'components:example',
registryDependencies: ['alert'],
files: ['example/alert-destructive.tsx'],
},
{
name: 'alert-dialog-demo',
type: 'components:example',
registryDependencies: ['alert-dialog', 'button'],
files: ['example/alert-dialog-demo.tsx'],
},
{
name: 'aspect-ratio-demo',
type: 'components:example',
registryDependencies: ['aspect-ratio'],
files: ['example/aspect-ratio-demo.tsx'],
},
{
name: 'avatar-demo',
type: 'components:example',
registryDependencies: ['avatar'],
files: ['example/avatar-demo.tsx'],
},
{
name: 'badge-demo',
type: 'components:example',
registryDependencies: ['badge'],
files: ['example/badge-demo.tsx'],
},
{
name: 'badge-destructive',
type: 'components:example',
registryDependencies: ['badge'],
files: ['example/badge-destructive.tsx'],
},
{
name: 'badge-outline',
type: 'components:example',
registryDependencies: ['badge'],
files: ['example/badge-outline.tsx'],
},
{
name: 'badge-secondary',
type: 'components:example',
registryDependencies: ['badge'],
files: ['example/badge-secondary.tsx'],
},
{
name: 'button-demo',
type: 'components:example',
registryDependencies: ['button'],
files: ['example/button-demo.tsx'],
},
{
name: 'button-secondary',
type: 'components:example',
registryDependencies: ['button'],
files: ['example/button-secondary.tsx'],
},
{
name: 'button-destructive',
type: 'components:example',
registryDependencies: ['button'],
files: ['example/button-destructive.tsx'],
},
{
name: 'button-outline',
type: 'components:example',
registryDependencies: ['button'],
files: ['example/button-outline.tsx'],
},
{
name: 'button-ghost',
type: 'components:example',
registryDependencies: ['button'],
files: ['example/button-ghost.tsx'],
},
{
name: 'button-link',
type: 'components:example',
registryDependencies: ['button'],
files: ['example/button-link.tsx'],
},
{
name: 'button-with-icon',
type: 'components:example',
registryDependencies: ['button'],
files: ['example/button-with-icon.tsx'],
},
{
name: 'button-loading',
type: 'components:example',
registryDependencies: ['button'],
files: ['example/button-loading.tsx'],
},
{
name: 'button-icon',
type: 'components:example',
registryDependencies: ['button'],
files: ['example/button-icon.tsx'],
},
{
name: 'button-as-child',
type: 'components:example',
registryDependencies: ['button'],
files: ['example/button-as-child.tsx'],
},
{
name: 'calendar-demo',
type: 'components:example',
registryDependencies: ['calendar'],
files: ['example/calendar-demo.tsx'],
},
{
name: 'calendar-form',
type: 'components:example',
registryDependencies: ['calendar', 'form', 'popover'],
files: ['example/calendar-form.tsx'],
},
{
name: 'card-demo',
type: 'components:example',
registryDependencies: ['card', 'button', 'switch'],
files: ['example/card-demo.tsx'],
},
{
name: 'card-with-form',
type: 'components:example',
registryDependencies: ['button', 'card', 'input', 'label', 'select'],
files: ['example/card-with-form.tsx'],
},
{
name: 'checkbox-demo',
type: 'components:example',
registryDependencies: ['checkbox'],
files: ['example/checkbox-demo.tsx'],
},
{
name: 'checkbox-disabled',
type: 'components:example',
registryDependencies: ['checkbox'],
files: ['example/checkbox-disabled.tsx'],
},
{
name: 'checkbox-form-multiple',
type: 'components:example',
registryDependencies: ['checkbox', 'form'],
files: ['example/checkbox-form-multiple.tsx'],
},
{
name: 'checkbox-form-single',
type: 'components:example',
registryDependencies: ['checkbox', 'form'],
files: ['example/checkbox-form-single.tsx'],
},
{
name: 'checkbox-with-text',
type: 'components:example',
registryDependencies: ['checkbox'],
files: ['example/checkbox-with-text.tsx'],
},
{
name: 'collapsible-demo',
type: 'components:example',
registryDependencies: ['collapsible'],
files: ['example/collapsible-demo.tsx'],
},
{
name: 'combobox-demo',
type: 'components:example',
registryDependencies: ['command'],
files: ['example/combobox-demo.tsx'],
},
{
name: 'combobox-dropdown-menu',
type: 'components:example',
registryDependencies: ['command', 'dropdown-menu', 'button'],
files: ['example/combobox-dropdown-menu.tsx'],
},
{
name: 'combobox-form',
type: 'components:example',
registryDependencies: ['command', 'form'],
files: ['example/combobox-form.tsx'],
},
{
name: 'combobox-popover',
type: 'components:example',
registryDependencies: ['combobox', 'popover'],
files: ['example/combobox-popover.tsx'],
},
{
name: 'command-demo',
type: 'components:example',
registryDependencies: ['command'],
files: ['example/command-demo.tsx'],
},
{
name: 'command-dialog',
type: 'components:example',
registryDependencies: ['command', 'dialog'],
files: ['example/command-dialog.tsx'],
},
{
name: 'context-menu-demo',
type: 'components:example',
registryDependencies: ['context-menu'],
files: ['example/context-menu-demo.tsx'],
},
{
name: 'data-table-demo',
type: 'components:example',
registryDependencies: ['data-table'],
files: ['example/data-table-demo.tsx'],
},
{
name: 'date-picker-demo',
type: 'components:example',
registryDependencies: ['button', 'calendar', 'popover'],
files: ['example/date-picker-demo.tsx'],
dependencies: ['date-fns'],
},
{
name: 'date-picker-form',
type: 'components:example',
registryDependencies: ['button', 'calendar', 'form', 'popover'],
files: ['example/date-picker-form.tsx'],
dependencies: ['date-fns'],
},
{
name: 'date-picker-with-presets',
type: 'components:example',
registryDependencies: ['button', 'calendar', 'popover', 'select'],
files: ['example/date-picker-with-presets.tsx'],
dependencies: ['date-fns'],
},
{
name: 'date-picker-with-range',
type: 'components:example',
registryDependencies: ['button', 'calendar', 'popover'],
files: ['example/date-picker-with-range.tsx'],
dependencies: ['date-fns'],
},
{
name: 'dialog-demo',
type: 'components:example',
registryDependencies: ['dialog'],
files: ['example/dialog-demo.tsx'],
},
{
name: 'dropdown-menu-demo',
type: 'components:example',
registryDependencies: ['dropdown-menu'],
files: ['example/dropdown-menu-demo.tsx'],
},
{
name: 'dropdown-menu-checkboxes',
type: 'components:example',
registryDependencies: ['dropdown-menu', 'checkbox'],
files: ['example/dropdown-menu-checkboxes.tsx'],
},
{
name: 'dropdown-menu-radio-group',
type: 'components:example',
registryDependencies: ['dropdown-menu', 'radio-group'],
files: ['example/dropdown-menu-radio-group.tsx'],
},
{
name: 'hover-card-demo',
type: 'components:example',
registryDependencies: ['hover-card'],
files: ['example/hover-card-demo.tsx'],
},
{
name: 'input-demo',
type: 'components:example',
registryDependencies: ['input'],
files: ['example/input-demo.tsx'],
},
{
name: 'input-disabled',
type: 'components:example',
registryDependencies: ['input'],
files: ['example/input-disabled.tsx'],
},
{
name: 'input-file',
type: 'components:example',
registryDependencies: ['input'],
files: ['example/input-file.tsx'],
},
{
name: 'input-form',
type: 'components:example',
registryDependencies: ['input', 'button', 'form'],
files: ['example/input-form.tsx'],
},
{
name: 'input-with-button',
type: 'components:example',
registryDependencies: ['input', 'button'],
files: ['example/input-with-button.tsx'],
},
{
name: 'input-with-label',
type: 'components:example',
registryDependencies: ['input', 'button', 'label'],
files: ['example/input-with-label.tsx'],
},
{
name: 'input-with-text',
type: 'components:example',
registryDependencies: ['input', 'button', 'label'],
files: ['example/input-with-text.tsx'],
},
{
name: 'label-demo',
type: 'components:example',
registryDependencies: ['label'],
files: ['example/label-demo.tsx'],
},
{
name: 'menubar-demo',
type: 'components:example',
registryDependencies: ['menubar'],
files: ['example/menubar-demo.tsx'],
},
{
name: 'navigation-menu-demo',
type: 'components:example',
registryDependencies: ['navigation-menu'],
files: ['example/navigation-menu-demo.tsx'],
},
{
name: 'popover-demo',
type: 'components:example',
registryDependencies: ['popover'],
files: ['example/popover-demo.tsx'],
},
{
name: 'progress-demo',
type: 'components:example',
registryDependencies: ['progress'],
files: ['example/progress-demo.tsx'],
},
{
name: 'radio-group-demo',
type: 'components:example',
registryDependencies: ['radio-group'],
files: ['example/radio-group-demo.tsx'],
},
{
name: 'radio-group-form',
type: 'components:example',
registryDependencies: ['radio-group', 'form'],
files: ['example/radio-group-form.tsx'],
},
{
name: 'scroll-area-demo',
type: 'components:example',
registryDependencies: ['scroll-area'],
files: ['example/scroll-area-demo.tsx'],
},
{
name: 'select-demo',
type: 'components:example',
registryDependencies: ['select'],
files: ['example/select-demo.tsx'],
},
{
name: 'select-form',
type: 'components:example',
registryDependencies: ['select'],
files: ['example/select-form.tsx'],
},
{
name: 'separator-demo',
type: 'components:example',
registryDependencies: ['separator'],
files: ['example/separator-demo.tsx'],
},
{
name: 'sheet-demo',
type: 'components:example',
registryDependencies: ['sheet'],
files: ['example/sheet-demo.tsx'],
},
{
name: 'sheet-side',
type: 'components:example',
registryDependencies: ['sheet'],
files: ['example/sheet-side.tsx'],
},
{
name: 'skeleton-demo',
type: 'components:example',
registryDependencies: ['skeleton'],
files: ['example/skeleton-demo.tsx'],
},
{
name: 'slider-demo',
type: 'components:example',
registryDependencies: ['slider'],
files: ['example/slider-demo.tsx'],
},
{
name: 'switch-demo',
type: 'components:example',
registryDependencies: ['switch'],
files: ['example/switch-demo.tsx'],
},
{
name: 'switch-form',
type: 'components:example',
registryDependencies: ['switch', 'form'],
files: ['example/switch-form.tsx'],
},
{
name: 'table-demo',
type: 'components:example',
registryDependencies: ['table'],
files: ['example/table-demo.tsx'],
},
{
name: 'tabs-demo',
type: 'components:example',
registryDependencies: ['tabs'],
files: ['example/tabs-demo.tsx'],
},
{
name: 'textarea-demo',
type: 'components:example',
registryDependencies: ['textarea'],
files: ['example/textarea-demo.tsx'],
},
{
name: 'textarea-disabled',
type: 'components:example',
registryDependencies: ['textarea'],
files: ['example/textarea-disabled.tsx'],
},
{
name: 'textarea-form',
type: 'components:example',
registryDependencies: ['textarea', 'form'],
files: ['example/textarea-form.tsx'],
},
{
name: 'textarea-with-button',
type: 'components:example',
registryDependencies: ['textarea', 'button'],
files: ['example/textarea-with-button.tsx'],
},
{
name: 'textarea-with-label',
type: 'components:example',
registryDependencies: ['textarea', 'label'],
files: ['example/textarea-with-label.tsx'],
},
{
name: 'textarea-with-text',
type: 'components:example',
registryDependencies: ['textarea', 'label'],
files: ['example/textarea-with-text.tsx'],
},
{
name: 'toast-demo',
type: 'components:example',
registryDependencies: ['toast'],
files: ['example/toast-demo.tsx'],
},
{
name: 'toast-destructive',
type: 'components:example',
registryDependencies: ['toast'],
files: ['example/toast-destructive.tsx'],
},
{
name: 'toast-simple',
type: 'components:example',
registryDependencies: ['toast'],
files: ['example/toast-simple.tsx'],
},
{
name: 'toast-with-action',
type: 'components:example',
registryDependencies: ['toast'],
files: ['example/toast-with-action.tsx'],
},
{
name: 'toast-with-title',
type: 'components:example',
registryDependencies: ['toast'],
files: ['example/toast-with-title.tsx'],
},
{
name: 'toggle-demo',
type: 'components:example',
registryDependencies: ['toggle'],
files: ['example/toggle-demo.tsx'],
},
{
name: 'toggle-disabled',
type: 'components:example',
registryDependencies: ['toggle'],
files: ['example/toggle-disabled.tsx'],
},
{
name: 'toggle-lg',
type: 'components:example',
registryDependencies: ['toggle'],
files: ['example/toggle-lg.tsx'],
},
{
name: 'toggle-outline',
type: 'components:example',
registryDependencies: ['toggle'],
files: ['example/toggle-outline.tsx'],
},
{
name: 'toggle-sm',
type: 'components:example',
registryDependencies: ['toggle'],
files: ['example/toggle-sm.tsx'],
},
{
name: 'toggle-with-text',
type: 'components:example',
registryDependencies: ['toggle'],
files: ['example/toggle-with-text.tsx'],
},
{
name: 'tooltip-demo',
type: 'components:example',
registryDependencies: ['tooltip'],
files: ['example/tooltip-demo.tsx'],
},
{
name: 'typography-blockquote',
type: 'components:example',
files: ['example/typography-blockquote.tsx'],
},
{
name: 'typography-demo',
type: 'components:example',
files: ['example/typography-demo.tsx'],
},
{
name: 'typography-h1',
type: 'components:example',
files: ['example/typography-h1.tsx'],
},
{
name: 'typography-h2',
type: 'components:example',
files: ['example/typography-h2.tsx'],
},
{
name: 'typography-h3',
type: 'components:example',
files: ['example/typography-h3.tsx'],
},
{
name: 'typography-h4',
type: 'components:example',
files: ['example/typography-h4.tsx'],
},
{
name: 'typography-inline-code',
type: 'components:example',
files: ['example/typography-inline-code.tsx'],
},
{
name: 'typography-large',
type: 'components:example',
files: ['example/typography-large.tsx'],
},
{
name: 'typography-lead',
type: 'components:example',
files: ['example/typography-lead.tsx'],
},
{
name: 'typography-list',
type: 'components:example',
files: ['example/typography-list.tsx'],
},
{
name: 'typography-muted',
type: 'components:example',
files: ['example/typography-muted.tsx'],
},
{
name: 'typography-p',
type: 'components:example',
files: ['example/typography-p.tsx'],
},
{
name: 'typography-small',
type: 'components:example',
files: ['example/typography-small.tsx'],
},
{
name: 'typography-table',
type: 'components:example',
files: ['example/typography-table.tsx'],
},
{
name: 'mode-toggle',
type: 'components:example',
files: ['example/mode-toggle.tsx'],
},
{
name: 'cards',
type: 'components:example',
files: ['example/cards/cards.tsx'],
},
]
export const registry: Registry = [...ui, ...example]