From 770f363c60a1911c52357a6bde6995ccc3b3e8ae Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Wed, 7 Jan 2026 10:59:12 +0700 Subject: [PATCH] feat: add figma make components --- src/figma-make/components/base/accordion.tsx | 66 + .../components/base/alert-dialog.tsx | 157 ++ src/figma-make/components/base/alert.tsx | 66 + .../components/base/aspect-ratio.tsx | 11 + src/figma-make/components/base/avatar.tsx | 53 + src/figma-make/components/base/badge.tsx | 27 + src/figma-make/components/base/breadcrumb.tsx | 109 ++ src/figma-make/components/base/button.tsx | 58 + src/figma-make/components/base/card.tsx | 92 + src/figma-make/components/base/carousel.tsx | 241 +++ src/figma-make/components/base/checkbox.tsx | 32 + .../components/base/collapsible.tsx | 33 + src/figma-make/components/base/command.tsx | 177 ++ .../components/base/context-menu.tsx | 252 +++ .../components/base/date-picker.tsx | 190 ++ .../components/base/date-range-picker.tsx | 352 ++++ src/figma-make/components/base/dialog.tsx | 140 ++ src/figma-make/components/base/drawer.tsx | 132 ++ .../components/base/dropdown-menu.tsx | 257 +++ src/figma-make/components/base/form.tsx | 168 ++ src/figma-make/components/base/hover-card.tsx | 44 + src/figma-make/components/base/input-otp.tsx | 77 + src/figma-make/components/base/input.tsx | 21 + src/figma-make/components/base/label.tsx | 24 + src/figma-make/components/base/menubar.tsx | 276 +++ .../components/base/multi-select.tsx | 143 ++ .../components/base/navigation-menu.tsx | 168 ++ src/figma-make/components/base/pagination.tsx | 127 ++ src/figma-make/components/base/popover.tsx | 48 + src/figma-make/components/base/progress.tsx | 31 + .../components/base/radio-group.tsx | 45 + src/figma-make/components/base/resizable.tsx | 56 + .../components/base/scroll-area.tsx | 58 + src/figma-make/components/base/select.tsx | 185 ++ src/figma-make/components/base/separator.tsx | 28 + src/figma-make/components/base/sheet.tsx | 139 ++ src/figma-make/components/base/sidebar.tsx | 726 ++++++++ src/figma-make/components/base/skeleton.tsx | 13 + src/figma-make/components/base/slider.tsx | 63 + src/figma-make/components/base/sonner.tsx | 25 + .../components/base/status-badge.tsx | 49 + src/figma-make/components/base/switch.tsx | 31 + src/figma-make/components/base/table.tsx | 116 ++ src/figma-make/components/base/tabs.tsx | 66 + src/figma-make/components/base/textarea.tsx | 18 + .../components/base/toggle-group.tsx | 73 + src/figma-make/components/base/toggle.tsx | 47 + src/figma-make/components/base/tooltip.tsx | 61 + src/figma-make/components/base/use-mobile.ts | 21 + .../daily-checklist/DailyChecklistContent.tsx | 1581 +++++++++++++++++ .../components/pages/dashboard/Dashboard.tsx | 712 ++++++++ .../ListDailyChecklistContent.tsx | 938 ++++++++++ .../detail/DetailDailyChecklistContent.tsx | 1040 +++++++++++ .../activity/MasterAktivitasContent.tsx | 1002 +++++++++++ .../employee/MasterEmployeeContent.tsx | 633 +++++++ .../reports/DailyChecklistReportsContent.tsx | 589 ++++++ 56 files changed, 11887 insertions(+) create mode 100644 src/figma-make/components/base/accordion.tsx create mode 100644 src/figma-make/components/base/alert-dialog.tsx create mode 100644 src/figma-make/components/base/alert.tsx create mode 100644 src/figma-make/components/base/aspect-ratio.tsx create mode 100644 src/figma-make/components/base/avatar.tsx create mode 100644 src/figma-make/components/base/badge.tsx create mode 100644 src/figma-make/components/base/breadcrumb.tsx create mode 100644 src/figma-make/components/base/button.tsx create mode 100644 src/figma-make/components/base/card.tsx create mode 100644 src/figma-make/components/base/carousel.tsx create mode 100644 src/figma-make/components/base/checkbox.tsx create mode 100644 src/figma-make/components/base/collapsible.tsx create mode 100644 src/figma-make/components/base/command.tsx create mode 100644 src/figma-make/components/base/context-menu.tsx create mode 100644 src/figma-make/components/base/date-picker.tsx create mode 100644 src/figma-make/components/base/date-range-picker.tsx create mode 100644 src/figma-make/components/base/dialog.tsx create mode 100644 src/figma-make/components/base/drawer.tsx create mode 100644 src/figma-make/components/base/dropdown-menu.tsx create mode 100644 src/figma-make/components/base/form.tsx create mode 100644 src/figma-make/components/base/hover-card.tsx create mode 100644 src/figma-make/components/base/input-otp.tsx create mode 100644 src/figma-make/components/base/input.tsx create mode 100644 src/figma-make/components/base/label.tsx create mode 100644 src/figma-make/components/base/menubar.tsx create mode 100644 src/figma-make/components/base/multi-select.tsx create mode 100644 src/figma-make/components/base/navigation-menu.tsx create mode 100644 src/figma-make/components/base/pagination.tsx create mode 100644 src/figma-make/components/base/popover.tsx create mode 100644 src/figma-make/components/base/progress.tsx create mode 100644 src/figma-make/components/base/radio-group.tsx create mode 100644 src/figma-make/components/base/resizable.tsx create mode 100644 src/figma-make/components/base/scroll-area.tsx create mode 100644 src/figma-make/components/base/select.tsx create mode 100644 src/figma-make/components/base/separator.tsx create mode 100644 src/figma-make/components/base/sheet.tsx create mode 100644 src/figma-make/components/base/sidebar.tsx create mode 100644 src/figma-make/components/base/skeleton.tsx create mode 100644 src/figma-make/components/base/slider.tsx create mode 100644 src/figma-make/components/base/sonner.tsx create mode 100644 src/figma-make/components/base/status-badge.tsx create mode 100644 src/figma-make/components/base/switch.tsx create mode 100644 src/figma-make/components/base/table.tsx create mode 100644 src/figma-make/components/base/tabs.tsx create mode 100644 src/figma-make/components/base/textarea.tsx create mode 100644 src/figma-make/components/base/toggle-group.tsx create mode 100644 src/figma-make/components/base/toggle.tsx create mode 100644 src/figma-make/components/base/tooltip.tsx create mode 100644 src/figma-make/components/base/use-mobile.ts create mode 100644 src/figma-make/components/pages/daily-checklist/DailyChecklistContent.tsx create mode 100644 src/figma-make/components/pages/dashboard/Dashboard.tsx create mode 100644 src/figma-make/components/pages/list-daily-checklist/ListDailyChecklistContent.tsx create mode 100644 src/figma-make/components/pages/list-daily-checklist/detail/DetailDailyChecklistContent.tsx create mode 100644 src/figma-make/components/pages/master-data/activity/MasterAktivitasContent.tsx create mode 100644 src/figma-make/components/pages/master-data/employee/MasterEmployeeContent.tsx create mode 100644 src/figma-make/components/pages/reports/DailyChecklistReportsContent.tsx diff --git a/src/figma-make/components/base/accordion.tsx b/src/figma-make/components/base/accordion.tsx new file mode 100644 index 00000000..8ee5962e --- /dev/null +++ b/src/figma-make/components/base/accordion.tsx @@ -0,0 +1,66 @@ +'use client'; + +import * as React from 'react'; +import * as AccordionPrimitive from '@radix-ui/react-accordion'; +import { ChevronDownIcon } from 'lucide-react'; + +import { cn } from '@/lib/helper'; + +function Accordion({ + ...props +}: React.ComponentProps) { + return ; +} + +function AccordionItem({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function AccordionTrigger({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + + svg]:rotate-180', + className + )} + {...props} + > + {children} + + + + ); +} + +function AccordionContent({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + +
{children}
+
+ ); +} + +export { Accordion, AccordionItem, AccordionTrigger, AccordionContent }; diff --git a/src/figma-make/components/base/alert-dialog.tsx b/src/figma-make/components/base/alert-dialog.tsx new file mode 100644 index 00000000..57cb4888 --- /dev/null +++ b/src/figma-make/components/base/alert-dialog.tsx @@ -0,0 +1,157 @@ +'use client'; + +import * as React from 'react'; +import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog'; + +import { cn } from '@/lib/helper'; +import { buttonVariants } from '@/figma-make/components/base/button'; + +function AlertDialog({ + ...props +}: React.ComponentProps) { + return ; +} + +function AlertDialogTrigger({ + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function AlertDialogPortal({ + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function AlertDialogOverlay({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function AlertDialogContent({ + className, + ...props +}: React.ComponentProps) { + return ( + + + + + ); +} + +function AlertDialogHeader({ + className, + ...props +}: React.ComponentProps<'div'>) { + return ( +
+ ); +} + +function AlertDialogFooter({ + className, + ...props +}: React.ComponentProps<'div'>) { + return ( +
+ ); +} + +function AlertDialogTitle({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function AlertDialogDescription({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function AlertDialogAction({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function AlertDialogCancel({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +export { + AlertDialog, + AlertDialogPortal, + AlertDialogOverlay, + AlertDialogTrigger, + AlertDialogContent, + AlertDialogHeader, + AlertDialogFooter, + AlertDialogTitle, + AlertDialogDescription, + AlertDialogAction, + AlertDialogCancel, +}; diff --git a/src/figma-make/components/base/alert.tsx b/src/figma-make/components/base/alert.tsx new file mode 100644 index 00000000..0bf997df --- /dev/null +++ b/src/figma-make/components/base/alert.tsx @@ -0,0 +1,66 @@ +import * as React from 'react'; +import { cva, type VariantProps } from 'class-variance-authority'; + +import { cn } from '@/lib/helper'; + +const alertVariants = cva( + 'relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current', + { + variants: { + variant: { + default: 'bg-card text-card-foreground', + destructive: + 'text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90', + }, + }, + defaultVariants: { + variant: 'default', + }, + } +); + +function Alert({ + className, + variant, + ...props +}: React.ComponentProps<'div'> & VariantProps) { + return ( +
+ ); +} + +function AlertTitle({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ); +} + +function AlertDescription({ + className, + ...props +}: React.ComponentProps<'div'>) { + return ( +
+ ); +} + +export { Alert, AlertTitle, AlertDescription }; diff --git a/src/figma-make/components/base/aspect-ratio.tsx b/src/figma-make/components/base/aspect-ratio.tsx new file mode 100644 index 00000000..f43071bd --- /dev/null +++ b/src/figma-make/components/base/aspect-ratio.tsx @@ -0,0 +1,11 @@ +'use client'; + +import * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio'; + +function AspectRatio({ + ...props +}: React.ComponentProps) { + return ; +} + +export { AspectRatio }; diff --git a/src/figma-make/components/base/avatar.tsx b/src/figma-make/components/base/avatar.tsx new file mode 100644 index 00000000..3f3be511 --- /dev/null +++ b/src/figma-make/components/base/avatar.tsx @@ -0,0 +1,53 @@ +'use client'; + +import * as React from 'react'; +import * as AvatarPrimitive from '@radix-ui/react-avatar'; + +import { cn } from '@/lib/helper'; + +function Avatar({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function AvatarImage({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function AvatarFallback({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +export { Avatar, AvatarImage, AvatarFallback }; diff --git a/src/figma-make/components/base/badge.tsx b/src/figma-make/components/base/badge.tsx new file mode 100644 index 00000000..32aad05e --- /dev/null +++ b/src/figma-make/components/base/badge.tsx @@ -0,0 +1,27 @@ +import * as React from 'react'; +import { cn } from '@/lib/helper'; + +export interface BadgeProps extends React.HTMLAttributes { + variant?: 'default' | 'success' | 'secondary' | 'destructive' | 'outline'; +} + +function Badge({ className, variant = 'default', ...props }: BadgeProps) { + return ( +
+ ); +} + +export { Badge }; diff --git a/src/figma-make/components/base/breadcrumb.tsx b/src/figma-make/components/base/breadcrumb.tsx new file mode 100644 index 00000000..f1837b8d --- /dev/null +++ b/src/figma-make/components/base/breadcrumb.tsx @@ -0,0 +1,109 @@ +import * as React from 'react'; +import { Slot } from '@radix-ui/react-slot'; +import { ChevronRight, MoreHorizontal } from 'lucide-react'; + +import { cn } from '@/lib/helper'; + +function Breadcrumb({ ...props }: React.ComponentProps<'nav'>) { + return