From 5cfb15886fa19049499c5dd1373692e0ad750d73 Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Thu, 10 Oct 2024 22:05:15 +0200 Subject: [PATCH] feat(ui): add new components - calendar - date-picker - popover - select --- bun.lockb | Bin 485776 -> 486632 bytes packages/ui/package.json | 4 + packages/ui/src/calendar.tsx | 64 +++++++++++++ packages/ui/src/date-picker.tsx | 37 ++++++++ packages/ui/src/index.ts | 4 + packages/ui/src/popover.tsx | 29 ++++++ packages/ui/src/select.tsx | 158 ++++++++++++++++++++++++++++++++ 7 files changed, 296 insertions(+) create mode 100644 packages/ui/src/calendar.tsx create mode 100644 packages/ui/src/date-picker.tsx create mode 100644 packages/ui/src/popover.tsx create mode 100644 packages/ui/src/select.tsx diff --git a/bun.lockb b/bun.lockb index 89ddb2f48270e7a971304fc107a532f7ef41e15a..1e9e72c2da2b6fc21d82e5d74e69751dd23080b1 100755 GIT binary patch delta 44953 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 + +function Calendar({ + className, + classNames, + showOutsideDays = true, + ...props +}: CalendarProps) { + return ( + , + IconRight: ({ ...props }) => , + }} + {...props} + /> + ) +} +Calendar.displayName = 'Calendar' + +export { Calendar } diff --git a/packages/ui/src/date-picker.tsx b/packages/ui/src/date-picker.tsx new file mode 100644 index 0000000..630ea5b --- /dev/null +++ b/packages/ui/src/date-picker.tsx @@ -0,0 +1,37 @@ +import { format } from 'date-fns' +import { Calendar as CalendarIcon } from 'lucide-react' +import * as React from 'react' + +import { Button } from './button' +import { Calendar } from './calendar' +import { cn } from './lib/cn' +import { Popover, PopoverContent, PopoverTrigger } from './popover' + +export function DatePickerDemo() { + const [date, setDate] = React.useState() + + return ( + + + + + + + + + ) +} diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts index 193565b..027bc64 100644 --- a/packages/ui/src/index.ts +++ b/packages/ui/src/index.ts @@ -14,3 +14,7 @@ export * from './checkbox' export * from './textarea' export * from './tooltip' export * from './alert-dialog' +export * from './select' +export * from './popover' +export * from './calendar' +export * from './date-picker' diff --git a/packages/ui/src/popover.tsx b/packages/ui/src/popover.tsx new file mode 100644 index 0000000..c7cfd1d --- /dev/null +++ b/packages/ui/src/popover.tsx @@ -0,0 +1,29 @@ +import * as PopoverPrimitive from '@radix-ui/react-popover' +import * as React from 'react' + +import { cn } from './lib/cn' + +const Popover = PopoverPrimitive.Root + +const PopoverTrigger = PopoverPrimitive.Trigger + +const PopoverContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => ( + + + +)) +PopoverContent.displayName = PopoverPrimitive.Content.displayName + +export { Popover, PopoverTrigger, PopoverContent } diff --git a/packages/ui/src/select.tsx b/packages/ui/src/select.tsx new file mode 100644 index 0000000..cd9dcae --- /dev/null +++ b/packages/ui/src/select.tsx @@ -0,0 +1,158 @@ +import * as SelectPrimitive from '@radix-ui/react-select' +import { Check, ChevronDown, ChevronUp } from 'lucide-react' +import * as React from 'react' + +import { cn } from './lib/cn' + +const Select = SelectPrimitive.Root + +const SelectGroup = SelectPrimitive.Group + +const SelectValue = SelectPrimitive.Value + +const SelectTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + span]:line-clamp-1', + className, + )} + {...props} + > + {children} + + + + +)) +SelectTrigger.displayName = SelectPrimitive.Trigger.displayName + +const SelectScrollUpButton = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)) +SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName + +const SelectScrollDownButton = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)) +SelectScrollDownButton.displayName = + SelectPrimitive.ScrollDownButton.displayName + +const SelectContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, position = 'popper', ...props }, ref) => ( + + + + + {children} + + + + +)) +SelectContent.displayName = SelectPrimitive.Content.displayName + +const SelectLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +SelectLabel.displayName = SelectPrimitive.Label.displayName + +const SelectItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + + + + + {children} + +)) +SelectItem.displayName = SelectPrimitive.Item.displayName + +const SelectSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +SelectSeparator.displayName = SelectPrimitive.Separator.displayName + +export { + Select, + SelectGroup, + SelectValue, + SelectTrigger, + SelectContent, + SelectLabel, + SelectItem, + SelectSeparator, + SelectScrollUpButton, + SelectScrollDownButton, +}