diff --git a/apps/ui-layout/components/website/ui/button.tsx b/apps/ui-layout/components/website/ui/button.tsx index 6257456d..359dd845 100644 --- a/apps/ui-layout/components/website/ui/button.tsx +++ b/apps/ui-layout/components/website/ui/button.tsx @@ -1,59 +1,2 @@ -import * as React from 'react'; -import { Slot } from '@radix-ui/react-slot'; -import { cva, type VariantProps } from 'class-variance-authority'; - -import { cn } from '@/lib/utils'; - -const buttonVariants = cva( - 'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-hidden 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 dark:bg-neutral-800 bg-neutral-50 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', - uilayouts: - 'dark:bg-zinc-900 bg-neutral-200 dark:text-white text-black border dark:border-neutral-800', - }, - 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', - }, - } -); - -export interface ButtonProps - extends - React.ButtonHTMLAttributes, - VariantProps { - asChild?: boolean; -} - -const Button = React.forwardRef( - ({ className, variant, size, asChild = false, ...props }, ref) => { - const Comp = asChild ? Slot : 'button'; - return ( - - ); - } -); -Button.displayName = 'Button'; - -export { Button, buttonVariants }; +export { Button, buttonVariants } from '@repo/shadcn' +export type { ButtonProps } from '@repo/shadcn' diff --git a/apps/ui-layout/package.json b/apps/ui-layout/package.json index 446301f7..3ab6f74f 100644 --- a/apps/ui-layout/package.json +++ b/apps/ui-layout/package.json @@ -77,7 +77,11 @@ "unist-util-visit": "^5.1.0", "vaul": "^1.0.0", "zod": "^3.23.8", - "zustand": "5.0.0-rc.2" + "zustand": "5.0.0-rc.2", + "@base-ui-components/react": "^1.0.0-beta.3", + "@radix-ui/react-accordion": "^1.2.4", + "@radix-ui/react-collapsible": "^1.1.4", + "@radix-ui/react-separator": "^1.1.4" }, "devDependencies": { "@tailwindcss/postcss": "^4.1.14", diff --git a/packages/shadcn/package.json b/packages/shadcn/package.json index 2a363e3a..68eb3101 100644 --- a/packages/shadcn/package.json +++ b/packages/shadcn/package.json @@ -21,7 +21,18 @@ "clsx": "^2.1.1", "lucide-react": "^0.344.0", "react-day-picker": "^8.10.1", - "tailwind-merge": "^2.6.0" + "tailwind-merge": "^2.6.0", + "@base-ui-components/react": "^1.0.0-beta.3", + "@radix-ui/react-accordion": "^1.2.4", + "@radix-ui/react-collapsible": "^1.1.4", + "@radix-ui/react-separator": "^1.1.4", + "@radix-ui/react-checkbox": "^1.3.3", + "@radix-ui/react-context-menu": "^2.2.16", + "@radix-ui/react-menubar": "^1.1.16", + "@radix-ui/react-progress": "^1.1.7", + "@radix-ui/react-radio-group": "^1.3.7", + "@radix-ui/react-toggle": "^1.1.11", + "@radix-ui/react-toggle-group": "^1.1.12" }, "peerDependencies": { "react": "^19.1.4", diff --git a/packages/shadcn/src/base-ui/accordion.tsx b/packages/shadcn/src/base-ui/accordion.tsx new file mode 100644 index 00000000..87957f36 --- /dev/null +++ b/packages/shadcn/src/base-ui/accordion.tsx @@ -0,0 +1,39 @@ +'use client' + +import * as React from 'react' +import { Accordion as BaseAccordion } from '@base-ui-components/react/accordion' +import { ChevronDown } from 'lucide-react' + +const cx = (...classes: Array) => classes.filter(Boolean).join(' ') + +function Root({ className, ...props }: React.ComponentProps & { className?: string }) { + return +} + +function Item({ className, ...props }: React.ComponentProps & { className?: string }) { + return +} + +function Trigger({ className, children, ...props }: React.ComponentProps & { className?: string }) { + return ( + + + {children} + + + + ) +} + +function Content({ className, children, ...props }: React.ComponentProps & { className?: string }) { + return ( + +
{children}
+
+ ) +} + +export const BaseUiAccordion = { Root, Item, Trigger, Content } diff --git a/packages/shadcn/src/base-ui/alert-dialog.tsx b/packages/shadcn/src/base-ui/alert-dialog.tsx new file mode 100644 index 00000000..140b99d6 --- /dev/null +++ b/packages/shadcn/src/base-ui/alert-dialog.tsx @@ -0,0 +1 @@ +export * from '../ui/alert-dialog' diff --git a/packages/shadcn/src/base-ui/alert.tsx b/packages/shadcn/src/base-ui/alert.tsx new file mode 100644 index 00000000..299aa04e --- /dev/null +++ b/packages/shadcn/src/base-ui/alert.tsx @@ -0,0 +1 @@ +export * from '../ui/alert' diff --git a/packages/shadcn/src/base-ui/aspect-ratio.tsx b/packages/shadcn/src/base-ui/aspect-ratio.tsx new file mode 100644 index 00000000..e168c550 --- /dev/null +++ b/packages/shadcn/src/base-ui/aspect-ratio.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `aspect-ratio`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/aspect-ratio' diff --git a/packages/shadcn/src/base-ui/badge.tsx b/packages/shadcn/src/base-ui/badge.tsx new file mode 100644 index 00000000..a64a4131 --- /dev/null +++ b/packages/shadcn/src/base-ui/badge.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `badge`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/badge' diff --git a/packages/shadcn/src/base-ui/button.tsx b/packages/shadcn/src/base-ui/button.tsx new file mode 100644 index 00000000..8085abf1 --- /dev/null +++ b/packages/shadcn/src/base-ui/button.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `button`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/button' diff --git a/packages/shadcn/src/base-ui/calendar.tsx b/packages/shadcn/src/base-ui/calendar.tsx new file mode 100644 index 00000000..25ccdfa6 --- /dev/null +++ b/packages/shadcn/src/base-ui/calendar.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `calendar`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/calendar' diff --git a/packages/shadcn/src/base-ui/card.tsx b/packages/shadcn/src/base-ui/card.tsx new file mode 100644 index 00000000..af2e0b3f --- /dev/null +++ b/packages/shadcn/src/base-ui/card.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `card`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/card' diff --git a/packages/shadcn/src/base-ui/charts.tsx b/packages/shadcn/src/base-ui/charts.tsx new file mode 100644 index 00000000..ebfc61a4 --- /dev/null +++ b/packages/shadcn/src/base-ui/charts.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `charts`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/charts' diff --git a/packages/shadcn/src/base-ui/checkbox.tsx b/packages/shadcn/src/base-ui/checkbox.tsx new file mode 100644 index 00000000..03ee5592 --- /dev/null +++ b/packages/shadcn/src/base-ui/checkbox.tsx @@ -0,0 +1 @@ +export * from '../ui/checkbox' diff --git a/packages/shadcn/src/base-ui/collapsible.tsx b/packages/shadcn/src/base-ui/collapsible.tsx new file mode 100644 index 00000000..751a3a89 --- /dev/null +++ b/packages/shadcn/src/base-ui/collapsible.tsx @@ -0,0 +1 @@ +export * from '../ui/collapsible' diff --git a/packages/shadcn/src/base-ui/combobox.tsx b/packages/shadcn/src/base-ui/combobox.tsx new file mode 100644 index 00000000..b7c145f4 --- /dev/null +++ b/packages/shadcn/src/base-ui/combobox.tsx @@ -0,0 +1 @@ +export * from '../ui/combobox' diff --git a/packages/shadcn/src/base-ui/command.tsx b/packages/shadcn/src/base-ui/command.tsx new file mode 100644 index 00000000..a2b22844 --- /dev/null +++ b/packages/shadcn/src/base-ui/command.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `command`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/command' diff --git a/packages/shadcn/src/base-ui/context-menu.tsx b/packages/shadcn/src/base-ui/context-menu.tsx new file mode 100644 index 00000000..b86a58b4 --- /dev/null +++ b/packages/shadcn/src/base-ui/context-menu.tsx @@ -0,0 +1 @@ +export * from '../ui/context-menu' diff --git a/packages/shadcn/src/base-ui/date-picker.tsx b/packages/shadcn/src/base-ui/date-picker.tsx new file mode 100644 index 00000000..5f533797 --- /dev/null +++ b/packages/shadcn/src/base-ui/date-picker.tsx @@ -0,0 +1 @@ +export * from '../ui/date-picker' diff --git a/packages/shadcn/src/base-ui/dialog.tsx b/packages/shadcn/src/base-ui/dialog.tsx new file mode 100644 index 00000000..d0bb31bb --- /dev/null +++ b/packages/shadcn/src/base-ui/dialog.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `dialog`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/dialog' diff --git a/packages/shadcn/src/base-ui/drawer.tsx b/packages/shadcn/src/base-ui/drawer.tsx new file mode 100644 index 00000000..3c49dd64 --- /dev/null +++ b/packages/shadcn/src/base-ui/drawer.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `drawer`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/drawer' diff --git a/packages/shadcn/src/base-ui/dropdown.tsx b/packages/shadcn/src/base-ui/dropdown.tsx new file mode 100644 index 00000000..8a9c5f03 --- /dev/null +++ b/packages/shadcn/src/base-ui/dropdown.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `dropdown`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/dropdown' diff --git a/packages/shadcn/src/base-ui/form.tsx b/packages/shadcn/src/base-ui/form.tsx new file mode 100644 index 00000000..f64782b5 --- /dev/null +++ b/packages/shadcn/src/base-ui/form.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `form`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/form' diff --git a/packages/shadcn/src/base-ui/hover-card.tsx b/packages/shadcn/src/base-ui/hover-card.tsx new file mode 100644 index 00000000..4f5e4154 --- /dev/null +++ b/packages/shadcn/src/base-ui/hover-card.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `hover-card`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/hover-card' diff --git a/packages/shadcn/src/base-ui/index.tsx b/packages/shadcn/src/base-ui/index.tsx new file mode 100644 index 00000000..ca2d753f --- /dev/null +++ b/packages/shadcn/src/base-ui/index.tsx @@ -0,0 +1,42 @@ +export * from './accordion' +export * from './aspect-ratio' +export * from './badge' +export * from './button' +export * from './calendar' +export * from './card' +export * from './charts' +export * from './command' +export * from './dialog' +export * from './drawer' +export * from './dropdown' +export * from './form' +export * from './hover-card' +export * from './input' +export * from './label' +export * from './navigation-menu' +export * from './plastic-button' +export * from './popover' +export * from './scroll-area' +export * from './slider' +export * from './switch' +export * from './tabs' +export * from './toast' +export * from './tooltip' +export * from './alert' +export * from './alert-dialog' +export * from './checkbox' +export * from './collapsible' +export * from './context-menu' +export * from './date-picker' +export * from './menubar' +export * from './progress' +export * from './radio-group' +export * from './select' +export * from './separator' +export * from './sheet' +export * from './skeleton' +export * from './sonner' +export * from './textarea' +export * from './toggle' +export * from './toggle-group' +export * from './combobox' diff --git a/packages/shadcn/src/base-ui/input.tsx b/packages/shadcn/src/base-ui/input.tsx new file mode 100644 index 00000000..363f4d16 --- /dev/null +++ b/packages/shadcn/src/base-ui/input.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `input`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/input' diff --git a/packages/shadcn/src/base-ui/label.tsx b/packages/shadcn/src/base-ui/label.tsx new file mode 100644 index 00000000..2f81a363 --- /dev/null +++ b/packages/shadcn/src/base-ui/label.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `label`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/label' diff --git a/packages/shadcn/src/base-ui/menubar.tsx b/packages/shadcn/src/base-ui/menubar.tsx new file mode 100644 index 00000000..ac47b8d3 --- /dev/null +++ b/packages/shadcn/src/base-ui/menubar.tsx @@ -0,0 +1 @@ +export * from '../ui/menubar' diff --git a/packages/shadcn/src/base-ui/navigation-menu.tsx b/packages/shadcn/src/base-ui/navigation-menu.tsx new file mode 100644 index 00000000..78908c85 --- /dev/null +++ b/packages/shadcn/src/base-ui/navigation-menu.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `navigation-menu`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/navigation-menu' diff --git a/packages/shadcn/src/base-ui/plastic-button.tsx b/packages/shadcn/src/base-ui/plastic-button.tsx new file mode 100644 index 00000000..10adf51f --- /dev/null +++ b/packages/shadcn/src/base-ui/plastic-button.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `plastic-button`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/plastic-button' diff --git a/packages/shadcn/src/base-ui/popover.tsx b/packages/shadcn/src/base-ui/popover.tsx new file mode 100644 index 00000000..0d1e2e7f --- /dev/null +++ b/packages/shadcn/src/base-ui/popover.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `popover`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/popover' diff --git a/packages/shadcn/src/base-ui/progress.tsx b/packages/shadcn/src/base-ui/progress.tsx new file mode 100644 index 00000000..db356b03 --- /dev/null +++ b/packages/shadcn/src/base-ui/progress.tsx @@ -0,0 +1 @@ +export * from '../ui/progress' diff --git a/packages/shadcn/src/base-ui/radio-group.tsx b/packages/shadcn/src/base-ui/radio-group.tsx new file mode 100644 index 00000000..c746e0c6 --- /dev/null +++ b/packages/shadcn/src/base-ui/radio-group.tsx @@ -0,0 +1 @@ +export * from '../ui/radio-group' diff --git a/packages/shadcn/src/base-ui/scroll-area.tsx b/packages/shadcn/src/base-ui/scroll-area.tsx new file mode 100644 index 00000000..e3282a5c --- /dev/null +++ b/packages/shadcn/src/base-ui/scroll-area.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `scroll-area`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/scroll-area' diff --git a/packages/shadcn/src/base-ui/select.tsx b/packages/shadcn/src/base-ui/select.tsx new file mode 100644 index 00000000..921c9dca --- /dev/null +++ b/packages/shadcn/src/base-ui/select.tsx @@ -0,0 +1 @@ +export * from '../ui/select' diff --git a/packages/shadcn/src/base-ui/separator.tsx b/packages/shadcn/src/base-ui/separator.tsx new file mode 100644 index 00000000..a51284c7 --- /dev/null +++ b/packages/shadcn/src/base-ui/separator.tsx @@ -0,0 +1 @@ +export * from '../ui/separator' diff --git a/packages/shadcn/src/base-ui/sheet.tsx b/packages/shadcn/src/base-ui/sheet.tsx new file mode 100644 index 00000000..f5b2f882 --- /dev/null +++ b/packages/shadcn/src/base-ui/sheet.tsx @@ -0,0 +1 @@ +export * from '../ui/sheet' diff --git a/packages/shadcn/src/base-ui/skeleton.tsx b/packages/shadcn/src/base-ui/skeleton.tsx new file mode 100644 index 00000000..89c08518 --- /dev/null +++ b/packages/shadcn/src/base-ui/skeleton.tsx @@ -0,0 +1 @@ +export * from '../ui/skeleton' diff --git a/packages/shadcn/src/base-ui/slider.tsx b/packages/shadcn/src/base-ui/slider.tsx new file mode 100644 index 00000000..0bf9b9ed --- /dev/null +++ b/packages/shadcn/src/base-ui/slider.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `slider`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/slider' diff --git a/packages/shadcn/src/base-ui/sonner.tsx b/packages/shadcn/src/base-ui/sonner.tsx new file mode 100644 index 00000000..6458cd2e --- /dev/null +++ b/packages/shadcn/src/base-ui/sonner.tsx @@ -0,0 +1 @@ +export * from '../ui/sonner' diff --git a/packages/shadcn/src/base-ui/switch.tsx b/packages/shadcn/src/base-ui/switch.tsx new file mode 100644 index 00000000..2acdca46 --- /dev/null +++ b/packages/shadcn/src/base-ui/switch.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `switch`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/switch' diff --git a/packages/shadcn/src/base-ui/tabs.tsx b/packages/shadcn/src/base-ui/tabs.tsx new file mode 100644 index 00000000..4bbde5a1 --- /dev/null +++ b/packages/shadcn/src/base-ui/tabs.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `tabs`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/tabs' diff --git a/packages/shadcn/src/base-ui/textarea.tsx b/packages/shadcn/src/base-ui/textarea.tsx new file mode 100644 index 00000000..403c9134 --- /dev/null +++ b/packages/shadcn/src/base-ui/textarea.tsx @@ -0,0 +1 @@ +export * from '../ui/textarea' diff --git a/packages/shadcn/src/base-ui/toast.tsx b/packages/shadcn/src/base-ui/toast.tsx new file mode 100644 index 00000000..ca2479bf --- /dev/null +++ b/packages/shadcn/src/base-ui/toast.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `toast`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/toast' diff --git a/packages/shadcn/src/base-ui/toggle-group.tsx b/packages/shadcn/src/base-ui/toggle-group.tsx new file mode 100644 index 00000000..f26d5247 --- /dev/null +++ b/packages/shadcn/src/base-ui/toggle-group.tsx @@ -0,0 +1 @@ +export * from '../ui/toggle-group' diff --git a/packages/shadcn/src/base-ui/toggle.tsx b/packages/shadcn/src/base-ui/toggle.tsx new file mode 100644 index 00000000..4f5cff6a --- /dev/null +++ b/packages/shadcn/src/base-ui/toggle.tsx @@ -0,0 +1 @@ +export * from '../ui/toggle' diff --git a/packages/shadcn/src/base-ui/tooltip.tsx b/packages/shadcn/src/base-ui/tooltip.tsx new file mode 100644 index 00000000..15453eea --- /dev/null +++ b/packages/shadcn/src/base-ui/tooltip.tsx @@ -0,0 +1,3 @@ +// Base UI variant placeholder for `tooltip`. +// This currently re-exports the Radix/shadcn implementation to keep API parity. +export * from '../ui/tooltip' diff --git a/packages/shadcn/src/index.tsx b/packages/shadcn/src/index.tsx index ed584959..75a77c8e 100644 --- a/packages/shadcn/src/index.tsx +++ b/packages/shadcn/src/index.tsx @@ -1 +1,4 @@ export * from './ui' + +export * from './base-ui/accordion' +export * from './base-ui' diff --git a/packages/shadcn/src/ui/accordion.tsx b/packages/shadcn/src/ui/accordion.tsx new file mode 100644 index 00000000..2fb6b07d --- /dev/null +++ b/packages/shadcn/src/ui/accordion.tsx @@ -0,0 +1,53 @@ +'use client' + +import * as React from 'react' +import * as AccordionPrimitive from '@radix-ui/react-accordion' +import { ChevronDown } from 'lucide-react' + +import { cn } from '@/lib/utils' + +const Accordion = AccordionPrimitive.Root + +const AccordionItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AccordionItem.displayName = 'AccordionItem' + +const AccordionTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + svg]:rotate-180', + className + )} + {...props} + > + {children} + + + +)) +AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName + +const AccordionContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + +
{children}
+
+)) +AccordionContent.displayName = AccordionPrimitive.Content.displayName + +export { Accordion, AccordionItem, AccordionTrigger, AccordionContent } diff --git a/packages/shadcn/src/ui/alert-dialog.tsx b/packages/shadcn/src/ui/alert-dialog.tsx new file mode 100644 index 00000000..ba2769ac --- /dev/null +++ b/packages/shadcn/src/ui/alert-dialog.tsx @@ -0,0 +1,11 @@ +import { Dialog, DialogTrigger, DialogContent, DialogTitle, DialogDescription, DialogClose } from './dialog' + +const AlertDialog = Dialog +const AlertDialogTrigger = DialogTrigger +const AlertDialogContent = DialogContent +const AlertDialogTitle = DialogTitle +const AlertDialogDescription = DialogDescription +const AlertDialogCancel = DialogClose +const AlertDialogAction = DialogClose + +export { AlertDialog, AlertDialogTrigger, AlertDialogContent, AlertDialogTitle, AlertDialogDescription, AlertDialogCancel, AlertDialogAction } diff --git a/packages/shadcn/src/ui/alert.tsx b/packages/shadcn/src/ui/alert.tsx new file mode 100644 index 00000000..67af7d2d --- /dev/null +++ b/packages/shadcn/src/ui/alert.tsx @@ -0,0 +1,11 @@ +import { cva, type VariantProps } from 'class-variance-authority' +import * as React from 'react' +import { cn } from '@/lib/utils' + +const alertVariants = cva('relative w-full rounded-lg border p-4', { variants: { variant: { default: 'bg-background text-foreground', destructive: 'border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive' } }, defaultVariants: { variant: 'default' } }) +export const Alert = React.forwardRef & VariantProps>(({ className, variant, ...props }, ref) =>
) +Alert.displayName = 'Alert' +export const AlertTitle = React.forwardRef>(({ className, ...props }, ref) =>
) +AlertTitle.displayName='AlertTitle' +export const AlertDescription = React.forwardRef>(({ className, ...props }, ref) =>
) +AlertDescription.displayName='AlertDescription' diff --git a/packages/shadcn/src/ui/checkbox.tsx b/packages/shadcn/src/ui/checkbox.tsx new file mode 100644 index 00000000..1e58ad72 --- /dev/null +++ b/packages/shadcn/src/ui/checkbox.tsx @@ -0,0 +1,7 @@ +'use client' +import * as React from 'react' +import * as CheckboxPrimitive from '@radix-ui/react-checkbox' +import { Check } from 'lucide-react' +import { cn } from '@/lib/utils' +export const Checkbox = React.forwardRef, React.ComponentPropsWithoutRef>(({ className, ...props }, ref)=>) +Checkbox.displayName=CheckboxPrimitive.Root.displayName diff --git a/packages/shadcn/src/ui/collapsible.tsx b/packages/shadcn/src/ui/collapsible.tsx new file mode 100644 index 00000000..ca91b32c --- /dev/null +++ b/packages/shadcn/src/ui/collapsible.tsx @@ -0,0 +1,2 @@ +'use client' +export * from '@radix-ui/react-collapsible' diff --git a/packages/shadcn/src/ui/combobox.tsx b/packages/shadcn/src/ui/combobox.tsx new file mode 100644 index 00000000..c0e95c86 --- /dev/null +++ b/packages/shadcn/src/ui/combobox.tsx @@ -0,0 +1 @@ +export { Command as Combobox, CommandInput as ComboboxInput, CommandList as ComboboxList, CommandItem as ComboboxItem } from './command' diff --git a/packages/shadcn/src/ui/context-menu.tsx b/packages/shadcn/src/ui/context-menu.tsx new file mode 100644 index 00000000..a168e9db --- /dev/null +++ b/packages/shadcn/src/ui/context-menu.tsx @@ -0,0 +1,2 @@ +'use client' +export * from '@radix-ui/react-context-menu' diff --git a/packages/shadcn/src/ui/date-picker.tsx b/packages/shadcn/src/ui/date-picker.tsx new file mode 100644 index 00000000..7cf4f066 --- /dev/null +++ b/packages/shadcn/src/ui/date-picker.tsx @@ -0,0 +1 @@ +export { Calendar as DatePicker } from './calendar' diff --git a/packages/shadcn/src/ui/index.tsx b/packages/shadcn/src/ui/index.tsx index 583ffb34..e36128e2 100644 --- a/packages/shadcn/src/ui/index.tsx +++ b/packages/shadcn/src/ui/index.tsx @@ -8,3 +8,23 @@ export * from './badge' export * from './tooltip' export * from './command' export * from './popover' + +export * from './accordion' +export * from './alert' +export * from './alert-dialog' +export * from './checkbox' +export * from './collapsible' +export * from './context-menu' +export * from './date-picker' +export * from './menubar' +export * from './progress' +export * from './radio-group' +export * from './select' +export * from './separator' +export * from './sheet' +export * from './skeleton' +export * from './sonner' +export * from './textarea' +export * from './toggle' +export * from './toggle-group' +export * from './combobox' diff --git a/packages/shadcn/src/ui/menubar.tsx b/packages/shadcn/src/ui/menubar.tsx new file mode 100644 index 00000000..94d43216 --- /dev/null +++ b/packages/shadcn/src/ui/menubar.tsx @@ -0,0 +1,2 @@ +'use client' +export * from '@radix-ui/react-menubar' diff --git a/packages/shadcn/src/ui/progress.tsx b/packages/shadcn/src/ui/progress.tsx new file mode 100644 index 00000000..9a85dc72 --- /dev/null +++ b/packages/shadcn/src/ui/progress.tsx @@ -0,0 +1,2 @@ +'use client' +export * from '@radix-ui/react-progress' diff --git a/packages/shadcn/src/ui/radio-group.tsx b/packages/shadcn/src/ui/radio-group.tsx new file mode 100644 index 00000000..750e32d7 --- /dev/null +++ b/packages/shadcn/src/ui/radio-group.tsx @@ -0,0 +1,2 @@ +'use client' +export * from '@radix-ui/react-radio-group' diff --git a/packages/shadcn/src/ui/select.tsx b/packages/shadcn/src/ui/select.tsx new file mode 100644 index 00000000..93e78c1b --- /dev/null +++ b/packages/shadcn/src/ui/select.tsx @@ -0,0 +1,2 @@ +'use client' +export * from '@radix-ui/react-select' diff --git a/packages/shadcn/src/ui/separator.tsx b/packages/shadcn/src/ui/separator.tsx new file mode 100644 index 00000000..15a03cad --- /dev/null +++ b/packages/shadcn/src/ui/separator.tsx @@ -0,0 +1,6 @@ +'use client' +import * as React from 'react' +import * as SeparatorPrimitive from '@radix-ui/react-separator' +import { cn } from '@/lib/utils' +export const Separator = React.forwardRef, React.ComponentPropsWithoutRef>(({ className, orientation='horizontal', decorative=true, ...props }, ref)=> ) +Separator.displayName=SeparatorPrimitive.Root.displayName diff --git a/packages/shadcn/src/ui/sheet.tsx b/packages/shadcn/src/ui/sheet.tsx new file mode 100644 index 00000000..46a0644c --- /dev/null +++ b/packages/shadcn/src/ui/sheet.tsx @@ -0,0 +1 @@ +export { Dialog as Sheet, DialogTrigger as SheetTrigger, DialogContent as SheetContent, DialogTitle as SheetTitle, DialogDescription as SheetDescription, DialogClose as SheetClose } from './dialog' diff --git a/packages/shadcn/src/ui/skeleton.tsx b/packages/shadcn/src/ui/skeleton.tsx new file mode 100644 index 00000000..0125782b --- /dev/null +++ b/packages/shadcn/src/ui/skeleton.tsx @@ -0,0 +1,2 @@ +import { cn } from '@/lib/utils' +export function Skeleton({ className, ...props }: React.HTMLAttributes) { return
} diff --git a/packages/shadcn/src/ui/sonner.tsx b/packages/shadcn/src/ui/sonner.tsx new file mode 100644 index 00000000..4e26bd0d --- /dev/null +++ b/packages/shadcn/src/ui/sonner.tsx @@ -0,0 +1 @@ +export { Toaster as Sonner } from './toast' diff --git a/packages/shadcn/src/ui/textarea.tsx b/packages/shadcn/src/ui/textarea.tsx new file mode 100644 index 00000000..d26a1f14 --- /dev/null +++ b/packages/shadcn/src/ui/textarea.tsx @@ -0,0 +1,4 @@ +import * as React from 'react' +import { cn } from '@/lib/utils' +export const Textarea = React.forwardRef>(({ className, ...props }, ref)=>