shadcn-ui-react 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +126 -0
- package/dist/index.d.cts +49 -1
- package/dist/index.d.ts +49 -1
- package/dist/index.js +122 -0
- package/dist/style.css +303 -0
- package/package.json +11 -6
package/dist/index.cjs
CHANGED
|
@@ -64,6 +64,7 @@ __export(index_exports, {
|
|
|
64
64
|
AccordionTrigger: () => AccordionTrigger,
|
|
65
65
|
Alert: () => Alert,
|
|
66
66
|
AlertDescription: () => AlertDescription,
|
|
67
|
+
AlertModal: () => AlertModal,
|
|
67
68
|
AlertTitle: () => AlertTitle,
|
|
68
69
|
AspectRatio: () => AspectRatio,
|
|
69
70
|
Avatar: () => Avatar,
|
|
@@ -77,6 +78,7 @@ __export(index_exports, {
|
|
|
77
78
|
BreadcrumbList: () => BreadcrumbList,
|
|
78
79
|
BreadcrumbPage: () => BreadcrumbPage,
|
|
79
80
|
BreadcrumbSeparator: () => BreadcrumbSeparator,
|
|
81
|
+
Breadcrumbs: () => Breadcrumbs,
|
|
80
82
|
Button: () => Button,
|
|
81
83
|
Calendar: () => Calendar,
|
|
82
84
|
Card: () => Card,
|
|
@@ -118,6 +120,7 @@ __export(index_exports, {
|
|
|
118
120
|
ContextMenuSubContent: () => ContextMenuSubContent,
|
|
119
121
|
ContextMenuSubTrigger: () => ContextMenuSubTrigger,
|
|
120
122
|
ContextMenuTrigger: () => ContextMenuTrigger,
|
|
123
|
+
DataTableSkeleton: () => DataTableSkeleton,
|
|
121
124
|
Dialog: () => Dialog,
|
|
122
125
|
DialogClose: () => DialogClose,
|
|
123
126
|
DialogContent: () => DialogContent,
|
|
@@ -187,6 +190,7 @@ __export(index_exports, {
|
|
|
187
190
|
MenubarSubTrigger: () => MenubarSubTrigger,
|
|
188
191
|
MenubarTrigger: () => MenubarTrigger,
|
|
189
192
|
Modal: () => Modal,
|
|
193
|
+
ModeToggle: () => ModeToggle,
|
|
190
194
|
NavigationMenu: () => NavigationMenu,
|
|
191
195
|
NavigationMenuContent: () => NavigationMenuContent,
|
|
192
196
|
NavigationMenuIndicator: () => NavigationMenuIndicator,
|
|
@@ -8991,6 +8995,124 @@ function useToast() {
|
|
|
8991
8995
|
dismiss: (toastId) => dispatch({ type: "DISMISS_TOAST", toastId })
|
|
8992
8996
|
});
|
|
8993
8997
|
}
|
|
8998
|
+
|
|
8999
|
+
// src/shared/alert-modal.tsx
|
|
9000
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
9001
|
+
var AlertModal = ({
|
|
9002
|
+
isOpen,
|
|
9003
|
+
onClose,
|
|
9004
|
+
onConfirm,
|
|
9005
|
+
loading,
|
|
9006
|
+
title = "Are you sure?",
|
|
9007
|
+
description = "Are you sure you want to continue?",
|
|
9008
|
+
cancelText = "Cancel",
|
|
9009
|
+
confirmText = "Confirm",
|
|
9010
|
+
className,
|
|
9011
|
+
children
|
|
9012
|
+
}) => {
|
|
9013
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
9014
|
+
Modal,
|
|
9015
|
+
{
|
|
9016
|
+
title,
|
|
9017
|
+
description,
|
|
9018
|
+
isOpen,
|
|
9019
|
+
onClose,
|
|
9020
|
+
className,
|
|
9021
|
+
children: children ? children : /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex w-full items-center justify-end space-x-2 pt-6", children: [
|
|
9022
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Button, { disabled: loading, variant: "outline", onClick: onClose, children: cancelText }),
|
|
9023
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Button, { disabled: loading, variant: "destructive", onClick: onConfirm, children: confirmText })
|
|
9024
|
+
] })
|
|
9025
|
+
}
|
|
9026
|
+
);
|
|
9027
|
+
};
|
|
9028
|
+
|
|
9029
|
+
// src/shared/breadcrumbs.tsx
|
|
9030
|
+
var import_lucide_react3 = require("lucide-react");
|
|
9031
|
+
var import_react34 = require("react");
|
|
9032
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
9033
|
+
function Breadcrumbs({ items, className, classNameList }) {
|
|
9034
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Breadcrumb, { className, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(BreadcrumbList, { className: classNameList, children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_react34.Fragment, { children: [
|
|
9035
|
+
index !== items.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(BreadcrumbItem, { className: item.className, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(BreadcrumbLink, { href: item.link, children: item.title }) }),
|
|
9036
|
+
index < items.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(BreadcrumbSeparator, { children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react3.Slash, {}) }),
|
|
9037
|
+
index === items.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(BreadcrumbPage, { children: item.title })
|
|
9038
|
+
] }, item.title)) }) });
|
|
9039
|
+
}
|
|
9040
|
+
|
|
9041
|
+
// src/shared/data-table-skeleton.tsx
|
|
9042
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
9043
|
+
function DataTableSkeleton({
|
|
9044
|
+
columnCount,
|
|
9045
|
+
rowCount = 10,
|
|
9046
|
+
searchableColumnCount = 0,
|
|
9047
|
+
filterableColumnCount = 0,
|
|
9048
|
+
showViewOptions = true
|
|
9049
|
+
}) {
|
|
9050
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "w-full space-y-3 overflow-auto", children: [
|
|
9051
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex w-full items-center justify-between space-x-2 overflow-auto p-1", children: [
|
|
9052
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex flex-1 items-center space-x-2 space-y-4", children: [
|
|
9053
|
+
searchableColumnCount > 0 ? Array.from({ length: searchableColumnCount }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Skeleton, { className: "h-10 w-[150px] lg:w-[250px]" }, i)) : null,
|
|
9054
|
+
filterableColumnCount > 0 ? Array.from({ length: filterableColumnCount }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Skeleton, { className: "h-10 w-[70px] border-dashed" }, i)) : null
|
|
9055
|
+
] }),
|
|
9056
|
+
showViewOptions ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Skeleton, { className: "ml-auto hidden h-7 w-[70px] lg:flex" }) : null
|
|
9057
|
+
] }),
|
|
9058
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "rounded-md border", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Table, { children: [
|
|
9059
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(TableHeader, { children: Array.from({ length: 1 }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(TableRow, { className: "hover:bg-transparent", children: Array.from({ length: columnCount }).map((_2, i2) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(TableHead, { children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Skeleton, { className: "h-6 w-full" }) }, i2)) }, i)) }),
|
|
9060
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(TableBody, { children: Array.from({ length: rowCount }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(TableRow, { className: "hover:bg-transparent", children: Array.from({ length: columnCount }).map((_2, i2) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(TableCell, { children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Skeleton, { className: "h-6 w-full" }) }, i2)) }, i)) })
|
|
9061
|
+
] }) }),
|
|
9062
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex w-full flex-col items-center justify-between gap-4 overflow-auto px-2 py-1 sm:flex-row sm:gap-8", children: [
|
|
9063
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Skeleton, { className: "h-8 w-40" }) }),
|
|
9064
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex flex-col items-center gap-4 sm:flex-row sm:gap-6 lg:gap-8", children: [
|
|
9065
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex items-center space-x-2", children: [
|
|
9066
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Skeleton, { className: "h-8 w-24" }),
|
|
9067
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Skeleton, { className: "h-8 w-[70px]" })
|
|
9068
|
+
] }),
|
|
9069
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "flex w-[100px] items-center justify-center text-sm font-medium", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Skeleton, { className: "h-8 w-20" }) }),
|
|
9070
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex items-center space-x-2", children: [
|
|
9071
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Skeleton, { className: "hidden size-8 lg:block" }),
|
|
9072
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Skeleton, { className: "size-8" }),
|
|
9073
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Skeleton, { className: "size-8" }),
|
|
9074
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Skeleton, { className: "hidden size-8 lg:block" })
|
|
9075
|
+
] })
|
|
9076
|
+
] })
|
|
9077
|
+
] })
|
|
9078
|
+
] });
|
|
9079
|
+
}
|
|
9080
|
+
|
|
9081
|
+
// src/shared/theme-toggle.tsx
|
|
9082
|
+
var import_lucide_react4 = require("lucide-react");
|
|
9083
|
+
|
|
9084
|
+
// src/providers/theme-provider.tsx
|
|
9085
|
+
var import_react35 = require("react");
|
|
9086
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
9087
|
+
var initialState = {
|
|
9088
|
+
theme: "system",
|
|
9089
|
+
setTheme: () => null
|
|
9090
|
+
};
|
|
9091
|
+
var ThemeProviderContext = (0, import_react35.createContext)(initialState);
|
|
9092
|
+
var useTheme2 = () => {
|
|
9093
|
+
const context = (0, import_react35.useContext)(ThemeProviderContext);
|
|
9094
|
+
if (context === void 0)
|
|
9095
|
+
throw new Error("useTheme must be used within a ThemeProvider");
|
|
9096
|
+
return context;
|
|
9097
|
+
};
|
|
9098
|
+
|
|
9099
|
+
// src/shared/theme-toggle.tsx
|
|
9100
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
9101
|
+
function ModeToggle() {
|
|
9102
|
+
const { setTheme } = useTheme2();
|
|
9103
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(DropdownMenu, { children: [
|
|
9104
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Button, { variant: "outline", size: "icon", children: [
|
|
9105
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react4.Sun, { className: "h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" }),
|
|
9106
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react4.Moon, { className: "absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" }),
|
|
9107
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "sr-only", children: "Toggle theme" })
|
|
9108
|
+
] }) }),
|
|
9109
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(DropdownMenuContent, { align: "end", children: [
|
|
9110
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(DropdownMenuItem, { onClick: () => setTheme("light"), children: "Light" }),
|
|
9111
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(DropdownMenuItem, { onClick: () => setTheme("dark"), children: "Dark" }),
|
|
9112
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(DropdownMenuItem, { onClick: () => setTheme("system"), children: "System" })
|
|
9113
|
+
] })
|
|
9114
|
+
] });
|
|
9115
|
+
}
|
|
8994
9116
|
// Annotate the CommonJS export names for ESM import in node:
|
|
8995
9117
|
0 && (module.exports = {
|
|
8996
9118
|
Accordion,
|
|
@@ -8999,6 +9121,7 @@ function useToast() {
|
|
|
8999
9121
|
AccordionTrigger,
|
|
9000
9122
|
Alert,
|
|
9001
9123
|
AlertDescription,
|
|
9124
|
+
AlertModal,
|
|
9002
9125
|
AlertTitle,
|
|
9003
9126
|
AspectRatio,
|
|
9004
9127
|
Avatar,
|
|
@@ -9012,6 +9135,7 @@ function useToast() {
|
|
|
9012
9135
|
BreadcrumbList,
|
|
9013
9136
|
BreadcrumbPage,
|
|
9014
9137
|
BreadcrumbSeparator,
|
|
9138
|
+
Breadcrumbs,
|
|
9015
9139
|
Button,
|
|
9016
9140
|
Calendar,
|
|
9017
9141
|
Card,
|
|
@@ -9053,6 +9177,7 @@ function useToast() {
|
|
|
9053
9177
|
ContextMenuSubContent,
|
|
9054
9178
|
ContextMenuSubTrigger,
|
|
9055
9179
|
ContextMenuTrigger,
|
|
9180
|
+
DataTableSkeleton,
|
|
9056
9181
|
Dialog,
|
|
9057
9182
|
DialogClose,
|
|
9058
9183
|
DialogContent,
|
|
@@ -9122,6 +9247,7 @@ function useToast() {
|
|
|
9122
9247
|
MenubarSubTrigger,
|
|
9123
9248
|
MenubarTrigger,
|
|
9124
9249
|
Modal,
|
|
9250
|
+
ModeToggle,
|
|
9125
9251
|
NavigationMenu,
|
|
9126
9252
|
NavigationMenuContent,
|
|
9127
9253
|
NavigationMenuIndicator,
|
package/dist/index.d.cts
CHANGED
|
@@ -649,6 +649,54 @@ declare function useToast(): {
|
|
|
649
649
|
toasts: ToasterToast[];
|
|
650
650
|
};
|
|
651
651
|
|
|
652
|
+
type TAlertModalProps = {
|
|
653
|
+
isOpen: boolean;
|
|
654
|
+
onClose: () => void;
|
|
655
|
+
onConfirm: () => void;
|
|
656
|
+
loading: boolean;
|
|
657
|
+
title?: string;
|
|
658
|
+
description?: string;
|
|
659
|
+
className?: string;
|
|
660
|
+
cancelText?: string;
|
|
661
|
+
confirmText?: string;
|
|
662
|
+
children?: React.ReactNode;
|
|
663
|
+
};
|
|
664
|
+
declare const AlertModal: ({ isOpen, onClose, onConfirm, loading, title, description, cancelText, confirmText, className, children, }: TAlertModalProps) => react_jsx_runtime.JSX.Element;
|
|
665
|
+
|
|
666
|
+
type BreadcrumbItemProps = {
|
|
667
|
+
title: string;
|
|
668
|
+
link: string;
|
|
669
|
+
className?: string;
|
|
670
|
+
};
|
|
671
|
+
type BreadcrumbsProps = {
|
|
672
|
+
items: BreadcrumbItemProps[];
|
|
673
|
+
className?: string;
|
|
674
|
+
classNameList?: string;
|
|
675
|
+
separator?: React.ReactNode;
|
|
676
|
+
};
|
|
677
|
+
declare function Breadcrumbs({ items, className, classNameList }: BreadcrumbsProps): react_jsx_runtime.JSX.Element;
|
|
678
|
+
|
|
679
|
+
interface NavItem {
|
|
680
|
+
title: string;
|
|
681
|
+
href: string;
|
|
682
|
+
disabled?: boolean;
|
|
683
|
+
external?: boolean;
|
|
684
|
+
icon?: keyof typeof Icons;
|
|
685
|
+
label?: string;
|
|
686
|
+
description?: string;
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
type DataTableSkeletonProps = {
|
|
690
|
+
columnCount: number;
|
|
691
|
+
rowCount?: number;
|
|
692
|
+
searchableColumnCount?: number;
|
|
693
|
+
filterableColumnCount?: number;
|
|
694
|
+
showViewOptions?: boolean;
|
|
695
|
+
};
|
|
696
|
+
declare function DataTableSkeleton({ columnCount, rowCount, searchableColumnCount, filterableColumnCount, showViewOptions }: DataTableSkeletonProps): react_jsx_runtime.JSX.Element;
|
|
697
|
+
|
|
698
|
+
declare function ModeToggle(): react_jsx_runtime.JSX.Element;
|
|
699
|
+
|
|
652
700
|
declare function cn(...inputs: ClassValue[]): string;
|
|
653
701
|
|
|
654
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, type ButtonProps, Calendar, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Icons, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Modal, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationNextLast, PaginationPrevious, PaginationPreviousLast, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Slider, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type TextareaProps, Toast$1 as Toast, ToastAction, type ToastActionElement, ToastClose, ToastDescription, type ToastProps, ToastProvider, ToastTitle, ToastViewport, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, navigationMenuTriggerStyle, reducer, toast, toggleVariants, useFormField, useToast };
|
|
702
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertModal, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Breadcrumbs, Button, type ButtonProps, Calendar, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DataTableSkeleton, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Icons, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Modal, ModeToggle, type NavItem, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationNextLast, PaginationPrevious, PaginationPreviousLast, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Slider, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type TextareaProps, Toast$1 as Toast, ToastAction, type ToastActionElement, ToastClose, ToastDescription, type ToastProps, ToastProvider, ToastTitle, ToastViewport, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, navigationMenuTriggerStyle, reducer, toast, toggleVariants, useFormField, useToast };
|
package/dist/index.d.ts
CHANGED
|
@@ -649,6 +649,54 @@ declare function useToast(): {
|
|
|
649
649
|
toasts: ToasterToast[];
|
|
650
650
|
};
|
|
651
651
|
|
|
652
|
+
type TAlertModalProps = {
|
|
653
|
+
isOpen: boolean;
|
|
654
|
+
onClose: () => void;
|
|
655
|
+
onConfirm: () => void;
|
|
656
|
+
loading: boolean;
|
|
657
|
+
title?: string;
|
|
658
|
+
description?: string;
|
|
659
|
+
className?: string;
|
|
660
|
+
cancelText?: string;
|
|
661
|
+
confirmText?: string;
|
|
662
|
+
children?: React.ReactNode;
|
|
663
|
+
};
|
|
664
|
+
declare const AlertModal: ({ isOpen, onClose, onConfirm, loading, title, description, cancelText, confirmText, className, children, }: TAlertModalProps) => react_jsx_runtime.JSX.Element;
|
|
665
|
+
|
|
666
|
+
type BreadcrumbItemProps = {
|
|
667
|
+
title: string;
|
|
668
|
+
link: string;
|
|
669
|
+
className?: string;
|
|
670
|
+
};
|
|
671
|
+
type BreadcrumbsProps = {
|
|
672
|
+
items: BreadcrumbItemProps[];
|
|
673
|
+
className?: string;
|
|
674
|
+
classNameList?: string;
|
|
675
|
+
separator?: React.ReactNode;
|
|
676
|
+
};
|
|
677
|
+
declare function Breadcrumbs({ items, className, classNameList }: BreadcrumbsProps): react_jsx_runtime.JSX.Element;
|
|
678
|
+
|
|
679
|
+
interface NavItem {
|
|
680
|
+
title: string;
|
|
681
|
+
href: string;
|
|
682
|
+
disabled?: boolean;
|
|
683
|
+
external?: boolean;
|
|
684
|
+
icon?: keyof typeof Icons;
|
|
685
|
+
label?: string;
|
|
686
|
+
description?: string;
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
type DataTableSkeletonProps = {
|
|
690
|
+
columnCount: number;
|
|
691
|
+
rowCount?: number;
|
|
692
|
+
searchableColumnCount?: number;
|
|
693
|
+
filterableColumnCount?: number;
|
|
694
|
+
showViewOptions?: boolean;
|
|
695
|
+
};
|
|
696
|
+
declare function DataTableSkeleton({ columnCount, rowCount, searchableColumnCount, filterableColumnCount, showViewOptions }: DataTableSkeletonProps): react_jsx_runtime.JSX.Element;
|
|
697
|
+
|
|
698
|
+
declare function ModeToggle(): react_jsx_runtime.JSX.Element;
|
|
699
|
+
|
|
652
700
|
declare function cn(...inputs: ClassValue[]): string;
|
|
653
701
|
|
|
654
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, type ButtonProps, Calendar, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Icons, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Modal, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationNextLast, PaginationPrevious, PaginationPreviousLast, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Slider, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type TextareaProps, Toast$1 as Toast, ToastAction, type ToastActionElement, ToastClose, ToastDescription, type ToastProps, ToastProvider, ToastTitle, ToastViewport, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, navigationMenuTriggerStyle, reducer, toast, toggleVariants, useFormField, useToast };
|
|
702
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertModal, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Breadcrumbs, Button, type ButtonProps, Calendar, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DataTableSkeleton, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Icons, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Modal, ModeToggle, type NavItem, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationNextLast, PaginationPrevious, PaginationPreviousLast, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Slider, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type TextareaProps, Toast$1 as Toast, ToastAction, type ToastActionElement, ToastClose, ToastDescription, type ToastProps, ToastProvider, ToastTitle, ToastViewport, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, navigationMenuTriggerStyle, reducer, toast, toggleVariants, useFormField, useToast };
|
package/dist/index.js
CHANGED
|
@@ -8794,6 +8794,124 @@ function useToast() {
|
|
|
8794
8794
|
dismiss: (toastId) => dispatch({ type: "DISMISS_TOAST", toastId })
|
|
8795
8795
|
});
|
|
8796
8796
|
}
|
|
8797
|
+
|
|
8798
|
+
// src/shared/alert-modal.tsx
|
|
8799
|
+
import { jsx as jsx44, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
8800
|
+
var AlertModal = ({
|
|
8801
|
+
isOpen,
|
|
8802
|
+
onClose,
|
|
8803
|
+
onConfirm,
|
|
8804
|
+
loading,
|
|
8805
|
+
title = "Are you sure?",
|
|
8806
|
+
description = "Are you sure you want to continue?",
|
|
8807
|
+
cancelText = "Cancel",
|
|
8808
|
+
confirmText = "Confirm",
|
|
8809
|
+
className,
|
|
8810
|
+
children
|
|
8811
|
+
}) => {
|
|
8812
|
+
return /* @__PURE__ */ jsx44(
|
|
8813
|
+
Modal,
|
|
8814
|
+
{
|
|
8815
|
+
title,
|
|
8816
|
+
description,
|
|
8817
|
+
isOpen,
|
|
8818
|
+
onClose,
|
|
8819
|
+
className,
|
|
8820
|
+
children: children ? children : /* @__PURE__ */ jsxs18("div", { className: "flex w-full items-center justify-end space-x-2 pt-6", children: [
|
|
8821
|
+
/* @__PURE__ */ jsx44(Button, { disabled: loading, variant: "outline", onClick: onClose, children: cancelText }),
|
|
8822
|
+
/* @__PURE__ */ jsx44(Button, { disabled: loading, variant: "destructive", onClick: onConfirm, children: confirmText })
|
|
8823
|
+
] })
|
|
8824
|
+
}
|
|
8825
|
+
);
|
|
8826
|
+
};
|
|
8827
|
+
|
|
8828
|
+
// src/shared/breadcrumbs.tsx
|
|
8829
|
+
import { Slash } from "lucide-react";
|
|
8830
|
+
import { Fragment } from "react";
|
|
8831
|
+
import { jsx as jsx45, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
8832
|
+
function Breadcrumbs({ items, className, classNameList }) {
|
|
8833
|
+
return /* @__PURE__ */ jsx45(Breadcrumb, { className, children: /* @__PURE__ */ jsx45(BreadcrumbList, { className: classNameList, children: items.map((item, index) => /* @__PURE__ */ jsxs19(Fragment, { children: [
|
|
8834
|
+
index !== items.length - 1 && /* @__PURE__ */ jsx45(BreadcrumbItem, { className: item.className, children: /* @__PURE__ */ jsx45(BreadcrumbLink, { href: item.link, children: item.title }) }),
|
|
8835
|
+
index < items.length - 1 && /* @__PURE__ */ jsx45(BreadcrumbSeparator, { children: /* @__PURE__ */ jsx45(Slash, {}) }),
|
|
8836
|
+
index === items.length - 1 && /* @__PURE__ */ jsx45(BreadcrumbPage, { children: item.title })
|
|
8837
|
+
] }, item.title)) }) });
|
|
8838
|
+
}
|
|
8839
|
+
|
|
8840
|
+
// src/shared/data-table-skeleton.tsx
|
|
8841
|
+
import { jsx as jsx46, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
8842
|
+
function DataTableSkeleton({
|
|
8843
|
+
columnCount,
|
|
8844
|
+
rowCount = 10,
|
|
8845
|
+
searchableColumnCount = 0,
|
|
8846
|
+
filterableColumnCount = 0,
|
|
8847
|
+
showViewOptions = true
|
|
8848
|
+
}) {
|
|
8849
|
+
return /* @__PURE__ */ jsxs20("div", { className: "w-full space-y-3 overflow-auto", children: [
|
|
8850
|
+
/* @__PURE__ */ jsxs20("div", { className: "flex w-full items-center justify-between space-x-2 overflow-auto p-1", children: [
|
|
8851
|
+
/* @__PURE__ */ jsxs20("div", { className: "flex flex-1 items-center space-x-2 space-y-4", children: [
|
|
8852
|
+
searchableColumnCount > 0 ? Array.from({ length: searchableColumnCount }).map((_, i) => /* @__PURE__ */ jsx46(Skeleton, { className: "h-10 w-[150px] lg:w-[250px]" }, i)) : null,
|
|
8853
|
+
filterableColumnCount > 0 ? Array.from({ length: filterableColumnCount }).map((_, i) => /* @__PURE__ */ jsx46(Skeleton, { className: "h-10 w-[70px] border-dashed" }, i)) : null
|
|
8854
|
+
] }),
|
|
8855
|
+
showViewOptions ? /* @__PURE__ */ jsx46(Skeleton, { className: "ml-auto hidden h-7 w-[70px] lg:flex" }) : null
|
|
8856
|
+
] }),
|
|
8857
|
+
/* @__PURE__ */ jsx46("div", { className: "rounded-md border", children: /* @__PURE__ */ jsxs20(Table, { children: [
|
|
8858
|
+
/* @__PURE__ */ jsx46(TableHeader, { children: Array.from({ length: 1 }).map((_, i) => /* @__PURE__ */ jsx46(TableRow, { className: "hover:bg-transparent", children: Array.from({ length: columnCount }).map((_2, i2) => /* @__PURE__ */ jsx46(TableHead, { children: /* @__PURE__ */ jsx46(Skeleton, { className: "h-6 w-full" }) }, i2)) }, i)) }),
|
|
8859
|
+
/* @__PURE__ */ jsx46(TableBody, { children: Array.from({ length: rowCount }).map((_, i) => /* @__PURE__ */ jsx46(TableRow, { className: "hover:bg-transparent", children: Array.from({ length: columnCount }).map((_2, i2) => /* @__PURE__ */ jsx46(TableCell, { children: /* @__PURE__ */ jsx46(Skeleton, { className: "h-6 w-full" }) }, i2)) }, i)) })
|
|
8860
|
+
] }) }),
|
|
8861
|
+
/* @__PURE__ */ jsxs20("div", { className: "flex w-full flex-col items-center justify-between gap-4 overflow-auto px-2 py-1 sm:flex-row sm:gap-8", children: [
|
|
8862
|
+
/* @__PURE__ */ jsx46("div", { className: "flex-1", children: /* @__PURE__ */ jsx46(Skeleton, { className: "h-8 w-40" }) }),
|
|
8863
|
+
/* @__PURE__ */ jsxs20("div", { className: "flex flex-col items-center gap-4 sm:flex-row sm:gap-6 lg:gap-8", children: [
|
|
8864
|
+
/* @__PURE__ */ jsxs20("div", { className: "flex items-center space-x-2", children: [
|
|
8865
|
+
/* @__PURE__ */ jsx46(Skeleton, { className: "h-8 w-24" }),
|
|
8866
|
+
/* @__PURE__ */ jsx46(Skeleton, { className: "h-8 w-[70px]" })
|
|
8867
|
+
] }),
|
|
8868
|
+
/* @__PURE__ */ jsx46("div", { className: "flex w-[100px] items-center justify-center text-sm font-medium", children: /* @__PURE__ */ jsx46(Skeleton, { className: "h-8 w-20" }) }),
|
|
8869
|
+
/* @__PURE__ */ jsxs20("div", { className: "flex items-center space-x-2", children: [
|
|
8870
|
+
/* @__PURE__ */ jsx46(Skeleton, { className: "hidden size-8 lg:block" }),
|
|
8871
|
+
/* @__PURE__ */ jsx46(Skeleton, { className: "size-8" }),
|
|
8872
|
+
/* @__PURE__ */ jsx46(Skeleton, { className: "size-8" }),
|
|
8873
|
+
/* @__PURE__ */ jsx46(Skeleton, { className: "hidden size-8 lg:block" })
|
|
8874
|
+
] })
|
|
8875
|
+
] })
|
|
8876
|
+
] })
|
|
8877
|
+
] });
|
|
8878
|
+
}
|
|
8879
|
+
|
|
8880
|
+
// src/shared/theme-toggle.tsx
|
|
8881
|
+
import { Moon as Moon2, Sun } from "lucide-react";
|
|
8882
|
+
|
|
8883
|
+
// src/providers/theme-provider.tsx
|
|
8884
|
+
import { createContext as createContext5, useContext as useContext6, useEffect as useEffect5, useState as useState5 } from "react";
|
|
8885
|
+
import { jsx as jsx47 } from "react/jsx-runtime";
|
|
8886
|
+
var initialState = {
|
|
8887
|
+
theme: "system",
|
|
8888
|
+
setTheme: () => null
|
|
8889
|
+
};
|
|
8890
|
+
var ThemeProviderContext = createContext5(initialState);
|
|
8891
|
+
var useTheme2 = () => {
|
|
8892
|
+
const context = useContext6(ThemeProviderContext);
|
|
8893
|
+
if (context === void 0)
|
|
8894
|
+
throw new Error("useTheme must be used within a ThemeProvider");
|
|
8895
|
+
return context;
|
|
8896
|
+
};
|
|
8897
|
+
|
|
8898
|
+
// src/shared/theme-toggle.tsx
|
|
8899
|
+
import { jsx as jsx48, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
8900
|
+
function ModeToggle() {
|
|
8901
|
+
const { setTheme } = useTheme2();
|
|
8902
|
+
return /* @__PURE__ */ jsxs21(DropdownMenu, { children: [
|
|
8903
|
+
/* @__PURE__ */ jsx48(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs21(Button, { variant: "outline", size: "icon", children: [
|
|
8904
|
+
/* @__PURE__ */ jsx48(Sun, { className: "h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" }),
|
|
8905
|
+
/* @__PURE__ */ jsx48(Moon2, { className: "absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" }),
|
|
8906
|
+
/* @__PURE__ */ jsx48("span", { className: "sr-only", children: "Toggle theme" })
|
|
8907
|
+
] }) }),
|
|
8908
|
+
/* @__PURE__ */ jsxs21(DropdownMenuContent, { align: "end", children: [
|
|
8909
|
+
/* @__PURE__ */ jsx48(DropdownMenuItem, { onClick: () => setTheme("light"), children: "Light" }),
|
|
8910
|
+
/* @__PURE__ */ jsx48(DropdownMenuItem, { onClick: () => setTheme("dark"), children: "Dark" }),
|
|
8911
|
+
/* @__PURE__ */ jsx48(DropdownMenuItem, { onClick: () => setTheme("system"), children: "System" })
|
|
8912
|
+
] })
|
|
8913
|
+
] });
|
|
8914
|
+
}
|
|
8797
8915
|
export {
|
|
8798
8916
|
Accordion,
|
|
8799
8917
|
AccordionContent,
|
|
@@ -8801,6 +8919,7 @@ export {
|
|
|
8801
8919
|
AccordionTrigger,
|
|
8802
8920
|
Alert,
|
|
8803
8921
|
AlertDescription,
|
|
8922
|
+
AlertModal,
|
|
8804
8923
|
AlertTitle,
|
|
8805
8924
|
AspectRatio,
|
|
8806
8925
|
Avatar,
|
|
@@ -8814,6 +8933,7 @@ export {
|
|
|
8814
8933
|
BreadcrumbList,
|
|
8815
8934
|
BreadcrumbPage,
|
|
8816
8935
|
BreadcrumbSeparator,
|
|
8936
|
+
Breadcrumbs,
|
|
8817
8937
|
Button,
|
|
8818
8938
|
Calendar,
|
|
8819
8939
|
Card,
|
|
@@ -8855,6 +8975,7 @@ export {
|
|
|
8855
8975
|
ContextMenuSubContent,
|
|
8856
8976
|
ContextMenuSubTrigger,
|
|
8857
8977
|
ContextMenuTrigger,
|
|
8978
|
+
DataTableSkeleton,
|
|
8858
8979
|
Dialog,
|
|
8859
8980
|
DialogClose,
|
|
8860
8981
|
DialogContent,
|
|
@@ -8924,6 +9045,7 @@ export {
|
|
|
8924
9045
|
MenubarSubTrigger,
|
|
8925
9046
|
MenubarTrigger,
|
|
8926
9047
|
Modal,
|
|
9048
|
+
ModeToggle,
|
|
8927
9049
|
NavigationMenu,
|
|
8928
9050
|
NavigationMenuContent,
|
|
8929
9051
|
NavigationMenuIndicator,
|
package/dist/style.css
CHANGED
|
@@ -24,7 +24,11 @@
|
|
|
24
24
|
--color-red-300: oklch(0.808 0.114 19.571);
|
|
25
25
|
--color-red-400: oklch(0.704 0.191 22.216);
|
|
26
26
|
--color-red-600: oklch(0.577 0.245 27.325);
|
|
27
|
+
--color-gray-100: oklch(0.967 0.003 264.542);
|
|
28
|
+
--color-gray-200: oklch(0.928 0.006 264.531);
|
|
29
|
+
--color-gray-300: oklch(0.872 0.01 258.338);
|
|
27
30
|
--color-black: #000;
|
|
31
|
+
--color-white: #fff;
|
|
28
32
|
--spacing: 0.25rem;
|
|
29
33
|
--container-sm: 24rem;
|
|
30
34
|
--container-lg: 32rem;
|
|
@@ -34,9 +38,16 @@
|
|
|
34
38
|
--text-sm--line-height: calc(1.25 / 0.875);
|
|
35
39
|
--text-lg: 1.125rem;
|
|
36
40
|
--text-lg--line-height: calc(1.75 / 1.125);
|
|
41
|
+
--text-xl: 1.25rem;
|
|
42
|
+
--text-xl--line-height: calc(1.75 / 1.25);
|
|
43
|
+
--text-2xl: 1.5rem;
|
|
44
|
+
--text-2xl--line-height: calc(2 / 1.5);
|
|
45
|
+
--text-3xl: 1.875rem;
|
|
46
|
+
--text-3xl--line-height: calc(2.25 / 1.875);
|
|
37
47
|
--font-weight-normal: 400;
|
|
38
48
|
--font-weight-medium: 500;
|
|
39
49
|
--font-weight-semibold: 600;
|
|
50
|
+
--font-weight-bold: 700;
|
|
40
51
|
--tracking-tight: -0.025em;
|
|
41
52
|
--tracking-widest: 0.1em;
|
|
42
53
|
--leading-relaxed: 1.625;
|
|
@@ -324,6 +335,9 @@
|
|
|
324
335
|
.right-4 {
|
|
325
336
|
right: calc(var(--spacing) * 4);
|
|
326
337
|
}
|
|
338
|
+
.-bottom-5 {
|
|
339
|
+
bottom: calc(var(--spacing) * -5);
|
|
340
|
+
}
|
|
327
341
|
.-bottom-12 {
|
|
328
342
|
bottom: calc(var(--spacing) * -12);
|
|
329
343
|
}
|
|
@@ -396,6 +410,9 @@
|
|
|
396
410
|
.mt-2 {
|
|
397
411
|
margin-top: calc(var(--spacing) * 2);
|
|
398
412
|
}
|
|
413
|
+
.mt-3 {
|
|
414
|
+
margin-top: calc(var(--spacing) * 3);
|
|
415
|
+
}
|
|
399
416
|
.mt-4 {
|
|
400
417
|
margin-top: calc(var(--spacing) * 4);
|
|
401
418
|
}
|
|
@@ -417,6 +434,12 @@
|
|
|
417
434
|
.ml-1 {
|
|
418
435
|
margin-left: calc(var(--spacing) * 1);
|
|
419
436
|
}
|
|
437
|
+
.ml-2\.5 {
|
|
438
|
+
margin-left: calc(var(--spacing) * 2.5);
|
|
439
|
+
}
|
|
440
|
+
.ml-4 {
|
|
441
|
+
margin-left: calc(var(--spacing) * 4);
|
|
442
|
+
}
|
|
420
443
|
.ml-auto {
|
|
421
444
|
margin-left: auto;
|
|
422
445
|
}
|
|
@@ -429,6 +452,12 @@
|
|
|
429
452
|
.grid {
|
|
430
453
|
display: grid;
|
|
431
454
|
}
|
|
455
|
+
.hidden {
|
|
456
|
+
display: none;
|
|
457
|
+
}
|
|
458
|
+
.inline-block {
|
|
459
|
+
display: inline-block;
|
|
460
|
+
}
|
|
432
461
|
.inline-flex {
|
|
433
462
|
display: inline-flex;
|
|
434
463
|
}
|
|
@@ -438,6 +467,14 @@
|
|
|
438
467
|
.aspect-square {
|
|
439
468
|
aspect-ratio: 1 / 1;
|
|
440
469
|
}
|
|
470
|
+
.size-5 {
|
|
471
|
+
width: calc(var(--spacing) * 5);
|
|
472
|
+
height: calc(var(--spacing) * 5);
|
|
473
|
+
}
|
|
474
|
+
.size-8 {
|
|
475
|
+
width: calc(var(--spacing) * 8);
|
|
476
|
+
height: calc(var(--spacing) * 8);
|
|
477
|
+
}
|
|
441
478
|
.h-1\.5 {
|
|
442
479
|
height: calc(var(--spacing) * 1.5);
|
|
443
480
|
}
|
|
@@ -459,6 +496,9 @@
|
|
|
459
496
|
.h-5 {
|
|
460
497
|
height: calc(var(--spacing) * 5);
|
|
461
498
|
}
|
|
499
|
+
.h-6 {
|
|
500
|
+
height: calc(var(--spacing) * 6);
|
|
501
|
+
}
|
|
462
502
|
.h-7 {
|
|
463
503
|
height: calc(var(--spacing) * 7);
|
|
464
504
|
}
|
|
@@ -471,9 +511,24 @@
|
|
|
471
511
|
.h-10 {
|
|
472
512
|
height: calc(var(--spacing) * 10);
|
|
473
513
|
}
|
|
514
|
+
.h-14 {
|
|
515
|
+
height: calc(var(--spacing) * 14);
|
|
516
|
+
}
|
|
517
|
+
.h-24 {
|
|
518
|
+
height: calc(var(--spacing) * 24);
|
|
519
|
+
}
|
|
520
|
+
.h-36 {
|
|
521
|
+
height: calc(var(--spacing) * 36);
|
|
522
|
+
}
|
|
523
|
+
.h-\[1\.2rem\] {
|
|
524
|
+
height: 1.2rem;
|
|
525
|
+
}
|
|
474
526
|
.h-\[1px\] {
|
|
475
527
|
height: 1px;
|
|
476
528
|
}
|
|
529
|
+
.h-\[calc\(80vh-220px\)\] {
|
|
530
|
+
height: calc(80vh - 220px);
|
|
531
|
+
}
|
|
477
532
|
.h-\[var\(--radix-navigation-menu-viewport-height\)\] {
|
|
478
533
|
height: var(--radix-navigation-menu-viewport-height);
|
|
479
534
|
}
|
|
@@ -489,6 +544,9 @@
|
|
|
489
544
|
.h-px {
|
|
490
545
|
height: 1px;
|
|
491
546
|
}
|
|
547
|
+
.h-screen {
|
|
548
|
+
height: 100vh;
|
|
549
|
+
}
|
|
492
550
|
.max-h-96 {
|
|
493
551
|
max-height: calc(var(--spacing) * 96);
|
|
494
552
|
}
|
|
@@ -531,18 +589,48 @@
|
|
|
531
589
|
.w-10 {
|
|
532
590
|
width: calc(var(--spacing) * 10);
|
|
533
591
|
}
|
|
592
|
+
.w-14 {
|
|
593
|
+
width: calc(var(--spacing) * 14);
|
|
594
|
+
}
|
|
595
|
+
.w-20 {
|
|
596
|
+
width: calc(var(--spacing) * 20);
|
|
597
|
+
}
|
|
598
|
+
.w-24 {
|
|
599
|
+
width: calc(var(--spacing) * 24);
|
|
600
|
+
}
|
|
601
|
+
.w-36 {
|
|
602
|
+
width: calc(var(--spacing) * 36);
|
|
603
|
+
}
|
|
604
|
+
.w-40 {
|
|
605
|
+
width: calc(var(--spacing) * 40);
|
|
606
|
+
}
|
|
607
|
+
.w-56 {
|
|
608
|
+
width: calc(var(--spacing) * 56);
|
|
609
|
+
}
|
|
534
610
|
.w-64 {
|
|
535
611
|
width: calc(var(--spacing) * 64);
|
|
536
612
|
}
|
|
537
613
|
.w-72 {
|
|
538
614
|
width: calc(var(--spacing) * 72);
|
|
539
615
|
}
|
|
616
|
+
.w-\[1\.2rem\] {
|
|
617
|
+
width: 1.2rem;
|
|
618
|
+
}
|
|
540
619
|
.w-\[1px\] {
|
|
541
620
|
width: 1px;
|
|
542
621
|
}
|
|
622
|
+
.w-\[70px\] {
|
|
623
|
+
width: 70px;
|
|
624
|
+
}
|
|
625
|
+
.w-\[80px\] {
|
|
626
|
+
width: 80px;
|
|
627
|
+
}
|
|
543
628
|
.w-\[100px\] {
|
|
544
629
|
width: 100px;
|
|
545
630
|
}
|
|
631
|
+
.w-\[150px\] {
|
|
632
|
+
width: 150px;
|
|
633
|
+
}
|
|
546
634
|
.w-full {
|
|
547
635
|
width: 100%;
|
|
548
636
|
}
|
|
@@ -575,6 +663,9 @@
|
|
|
575
663
|
.flex-1 {
|
|
576
664
|
flex: 1;
|
|
577
665
|
}
|
|
666
|
+
.flex-none {
|
|
667
|
+
flex: none;
|
|
668
|
+
}
|
|
578
669
|
.shrink-0 {
|
|
579
670
|
flex-shrink: 0;
|
|
580
671
|
}
|
|
@@ -609,12 +700,30 @@
|
|
|
609
700
|
--tw-translate-y: -50%;
|
|
610
701
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
611
702
|
}
|
|
703
|
+
.scale-0 {
|
|
704
|
+
--tw-scale-x: 0%;
|
|
705
|
+
--tw-scale-y: 0%;
|
|
706
|
+
--tw-scale-z: 0%;
|
|
707
|
+
scale: var(--tw-scale-x) var(--tw-scale-y);
|
|
708
|
+
}
|
|
709
|
+
.scale-100 {
|
|
710
|
+
--tw-scale-x: 100%;
|
|
711
|
+
--tw-scale-y: 100%;
|
|
712
|
+
--tw-scale-z: 100%;
|
|
713
|
+
scale: var(--tw-scale-x) var(--tw-scale-y);
|
|
714
|
+
}
|
|
715
|
+
.rotate-0 {
|
|
716
|
+
rotate: 0deg;
|
|
717
|
+
}
|
|
612
718
|
.rotate-45 {
|
|
613
719
|
rotate: 45deg;
|
|
614
720
|
}
|
|
615
721
|
.rotate-90 {
|
|
616
722
|
rotate: 90deg;
|
|
617
723
|
}
|
|
724
|
+
.rotate-180 {
|
|
725
|
+
rotate: 180deg;
|
|
726
|
+
}
|
|
618
727
|
.transform {
|
|
619
728
|
transform: var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y);
|
|
620
729
|
}
|
|
@@ -624,6 +733,9 @@
|
|
|
624
733
|
.cursor-default {
|
|
625
734
|
cursor: default;
|
|
626
735
|
}
|
|
736
|
+
.cursor-not-allowed {
|
|
737
|
+
cursor: not-allowed;
|
|
738
|
+
}
|
|
627
739
|
.cursor-pointer {
|
|
628
740
|
cursor: pointer;
|
|
629
741
|
}
|
|
@@ -651,12 +763,18 @@
|
|
|
651
763
|
.items-end {
|
|
652
764
|
align-items: flex-end;
|
|
653
765
|
}
|
|
766
|
+
.items-start {
|
|
767
|
+
align-items: flex-start;
|
|
768
|
+
}
|
|
654
769
|
.justify-between {
|
|
655
770
|
justify-content: space-between;
|
|
656
771
|
}
|
|
657
772
|
.justify-center {
|
|
658
773
|
justify-content: center;
|
|
659
774
|
}
|
|
775
|
+
.justify-end {
|
|
776
|
+
justify-content: flex-end;
|
|
777
|
+
}
|
|
660
778
|
.gap-1 {
|
|
661
779
|
gap: calc(var(--spacing) * 1);
|
|
662
780
|
}
|
|
@@ -690,6 +808,13 @@
|
|
|
690
808
|
margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
|
|
691
809
|
}
|
|
692
810
|
}
|
|
811
|
+
.space-y-3 {
|
|
812
|
+
:where(& > :not(:last-child)) {
|
|
813
|
+
--tw-space-y-reverse: 0;
|
|
814
|
+
margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));
|
|
815
|
+
margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));
|
|
816
|
+
}
|
|
817
|
+
}
|
|
693
818
|
.space-y-4 {
|
|
694
819
|
:where(& > :not(:last-child)) {
|
|
695
820
|
--tw-space-y-reverse: 0;
|
|
@@ -711,6 +836,11 @@
|
|
|
711
836
|
margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)));
|
|
712
837
|
}
|
|
713
838
|
}
|
|
839
|
+
.truncate {
|
|
840
|
+
overflow: hidden;
|
|
841
|
+
text-overflow: ellipsis;
|
|
842
|
+
white-space: nowrap;
|
|
843
|
+
}
|
|
714
844
|
.overflow-auto {
|
|
715
845
|
overflow: auto;
|
|
716
846
|
}
|
|
@@ -776,6 +906,10 @@
|
|
|
776
906
|
border-left-style: var(--tw-border-style);
|
|
777
907
|
border-left-width: 1px;
|
|
778
908
|
}
|
|
909
|
+
.border-dashed {
|
|
910
|
+
--tw-border-style: dashed;
|
|
911
|
+
border-style: dashed;
|
|
912
|
+
}
|
|
779
913
|
.border-destructive {
|
|
780
914
|
border-color: var(--destructive);
|
|
781
915
|
}
|
|
@@ -821,6 +955,12 @@
|
|
|
821
955
|
.bg-foreground {
|
|
822
956
|
background-color: var(--foreground);
|
|
823
957
|
}
|
|
958
|
+
.bg-gray-200 {
|
|
959
|
+
background-color: var(--color-gray-200);
|
|
960
|
+
}
|
|
961
|
+
.bg-gray-300 {
|
|
962
|
+
background-color: var(--color-gray-300);
|
|
963
|
+
}
|
|
824
964
|
.bg-muted {
|
|
825
965
|
background-color: var(--muted);
|
|
826
966
|
}
|
|
@@ -845,12 +985,19 @@
|
|
|
845
985
|
.bg-transparent {
|
|
846
986
|
background-color: transparent;
|
|
847
987
|
}
|
|
988
|
+
.bg-white {
|
|
989
|
+
background-color: var(--color-white);
|
|
990
|
+
}
|
|
848
991
|
.fill-current {
|
|
849
992
|
fill: currentColor;
|
|
850
993
|
}
|
|
851
994
|
.fill-primary {
|
|
852
995
|
fill: var(--primary);
|
|
853
996
|
}
|
|
997
|
+
.object-cover {
|
|
998
|
+
-o-object-fit: cover;
|
|
999
|
+
object-fit: cover;
|
|
1000
|
+
}
|
|
854
1001
|
.p-0 {
|
|
855
1002
|
padding: calc(var(--spacing) * 0);
|
|
856
1003
|
}
|
|
@@ -872,6 +1019,12 @@
|
|
|
872
1019
|
.p-\[1px\] {
|
|
873
1020
|
padding: 1px;
|
|
874
1021
|
}
|
|
1022
|
+
.\!px-0 {
|
|
1023
|
+
padding-inline: calc(var(--spacing) * 0) !important;
|
|
1024
|
+
}
|
|
1025
|
+
.px-0 {
|
|
1026
|
+
padding-inline: calc(var(--spacing) * 0);
|
|
1027
|
+
}
|
|
875
1028
|
.px-2 {
|
|
876
1029
|
padding-inline: calc(var(--spacing) * 2);
|
|
877
1030
|
}
|
|
@@ -905,6 +1058,9 @@
|
|
|
905
1058
|
.py-4 {
|
|
906
1059
|
padding-block: calc(var(--spacing) * 4);
|
|
907
1060
|
}
|
|
1061
|
+
.py-5 {
|
|
1062
|
+
padding-block: calc(var(--spacing) * 5);
|
|
1063
|
+
}
|
|
908
1064
|
.py-6 {
|
|
909
1065
|
padding-block: calc(var(--spacing) * 6);
|
|
910
1066
|
}
|
|
@@ -917,6 +1073,9 @@
|
|
|
917
1073
|
.pt-4 {
|
|
918
1074
|
padding-top: calc(var(--spacing) * 4);
|
|
919
1075
|
}
|
|
1076
|
+
.pt-6 {
|
|
1077
|
+
padding-top: calc(var(--spacing) * 6);
|
|
1078
|
+
}
|
|
920
1079
|
.pr-2 {
|
|
921
1080
|
padding-right: calc(var(--spacing) * 2);
|
|
922
1081
|
}
|
|
@@ -953,6 +1112,10 @@
|
|
|
953
1112
|
.align-middle {
|
|
954
1113
|
vertical-align: middle;
|
|
955
1114
|
}
|
|
1115
|
+
.text-2xl {
|
|
1116
|
+
font-size: var(--text-2xl);
|
|
1117
|
+
line-height: var(--tw-leading, var(--text-2xl--line-height));
|
|
1118
|
+
}
|
|
956
1119
|
.text-lg {
|
|
957
1120
|
font-size: var(--text-lg);
|
|
958
1121
|
line-height: var(--tw-leading, var(--text-lg--line-height));
|
|
@@ -961,6 +1124,10 @@
|
|
|
961
1124
|
font-size: var(--text-sm);
|
|
962
1125
|
line-height: var(--tw-leading, var(--text-sm--line-height));
|
|
963
1126
|
}
|
|
1127
|
+
.text-xl {
|
|
1128
|
+
font-size: var(--text-xl);
|
|
1129
|
+
line-height: var(--tw-leading, var(--text-xl--line-height));
|
|
1130
|
+
}
|
|
964
1131
|
.text-xs {
|
|
965
1132
|
font-size: var(--text-xs);
|
|
966
1133
|
line-height: var(--tw-leading, var(--text-xs--line-height));
|
|
@@ -972,6 +1139,10 @@
|
|
|
972
1139
|
--tw-leading: 1;
|
|
973
1140
|
line-height: 1;
|
|
974
1141
|
}
|
|
1142
|
+
.font-bold {
|
|
1143
|
+
--tw-font-weight: var(--font-weight-bold);
|
|
1144
|
+
font-weight: var(--font-weight-bold);
|
|
1145
|
+
}
|
|
975
1146
|
.font-medium {
|
|
976
1147
|
--tw-font-weight: var(--font-weight-medium);
|
|
977
1148
|
font-weight: var(--font-weight-medium);
|
|
@@ -1001,6 +1172,9 @@
|
|
|
1001
1172
|
.text-accent-foreground {
|
|
1002
1173
|
color: var(--accent-foreground);
|
|
1003
1174
|
}
|
|
1175
|
+
.text-black {
|
|
1176
|
+
color: var(--color-black);
|
|
1177
|
+
}
|
|
1004
1178
|
.text-card-foreground {
|
|
1005
1179
|
color: var(--card-foreground);
|
|
1006
1180
|
}
|
|
@@ -1019,6 +1193,9 @@
|
|
|
1019
1193
|
.text-foreground\/50 {
|
|
1020
1194
|
color: color-mix(in oklab, var(--foreground) 50%, transparent);
|
|
1021
1195
|
}
|
|
1196
|
+
.text-gray-100 {
|
|
1197
|
+
color: var(--color-gray-100);
|
|
1198
|
+
}
|
|
1022
1199
|
.text-muted-foreground {
|
|
1023
1200
|
color: var(--muted-foreground);
|
|
1024
1201
|
}
|
|
@@ -1034,6 +1211,9 @@
|
|
|
1034
1211
|
.text-secondary-foreground {
|
|
1035
1212
|
color: var(--secondary-foreground);
|
|
1036
1213
|
}
|
|
1214
|
+
.text-white {
|
|
1215
|
+
color: var(--color-white);
|
|
1216
|
+
}
|
|
1037
1217
|
.underline-offset-4 {
|
|
1038
1218
|
text-underline-offset: 4px;
|
|
1039
1219
|
}
|
|
@@ -1049,6 +1229,9 @@
|
|
|
1049
1229
|
.opacity-70 {
|
|
1050
1230
|
opacity: 70%;
|
|
1051
1231
|
}
|
|
1232
|
+
.opacity-80 {
|
|
1233
|
+
opacity: 80%;
|
|
1234
|
+
}
|
|
1052
1235
|
.opacity-90 {
|
|
1053
1236
|
opacity: 90%;
|
|
1054
1237
|
}
|
|
@@ -1061,6 +1244,15 @@
|
|
|
1061
1244
|
var(--tw-ring-shadow),
|
|
1062
1245
|
var(--tw-shadow);
|
|
1063
1246
|
}
|
|
1247
|
+
.shadow-2xl {
|
|
1248
|
+
--tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));
|
|
1249
|
+
box-shadow:
|
|
1250
|
+
var(--tw-inset-shadow),
|
|
1251
|
+
var(--tw-inset-ring-shadow),
|
|
1252
|
+
var(--tw-ring-offset-shadow),
|
|
1253
|
+
var(--tw-ring-shadow),
|
|
1254
|
+
var(--tw-shadow);
|
|
1255
|
+
}
|
|
1064
1256
|
.shadow-lg {
|
|
1065
1257
|
--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
1066
1258
|
box-shadow:
|
|
@@ -1185,6 +1377,10 @@
|
|
|
1185
1377
|
--tw-duration: 300ms;
|
|
1186
1378
|
transition-duration: 300ms;
|
|
1187
1379
|
}
|
|
1380
|
+
.duration-500 {
|
|
1381
|
+
--tw-duration: 500ms;
|
|
1382
|
+
transition-duration: 500ms;
|
|
1383
|
+
}
|
|
1188
1384
|
.duration-1000 {
|
|
1189
1385
|
--tw-duration: 1000ms;
|
|
1190
1386
|
transition-duration: 1000ms;
|
|
@@ -1221,6 +1417,9 @@
|
|
|
1221
1417
|
.duration-300 {
|
|
1222
1418
|
animation-duration: 300ms;
|
|
1223
1419
|
}
|
|
1420
|
+
.duration-500 {
|
|
1421
|
+
animation-duration: 500ms;
|
|
1422
|
+
}
|
|
1224
1423
|
.duration-1000 {
|
|
1225
1424
|
animation-duration: 1000ms;
|
|
1226
1425
|
}
|
|
@@ -1474,6 +1673,13 @@
|
|
|
1474
1673
|
}
|
|
1475
1674
|
}
|
|
1476
1675
|
}
|
|
1676
|
+
.hover\:bg-transparent {
|
|
1677
|
+
&:hover {
|
|
1678
|
+
@media (hover: hover) {
|
|
1679
|
+
background-color: transparent;
|
|
1680
|
+
}
|
|
1681
|
+
}
|
|
1682
|
+
}
|
|
1477
1683
|
.hover\:text-accent-foreground {
|
|
1478
1684
|
&:hover {
|
|
1479
1685
|
@media (hover: hover) {
|
|
@@ -1481,6 +1687,13 @@
|
|
|
1481
1687
|
}
|
|
1482
1688
|
}
|
|
1483
1689
|
}
|
|
1690
|
+
.hover\:text-black {
|
|
1691
|
+
&:hover {
|
|
1692
|
+
@media (hover: hover) {
|
|
1693
|
+
color: var(--color-black);
|
|
1694
|
+
}
|
|
1695
|
+
}
|
|
1696
|
+
}
|
|
1484
1697
|
.hover\:text-foreground {
|
|
1485
1698
|
&:hover {
|
|
1486
1699
|
@media (hover: hover) {
|
|
@@ -2248,6 +2461,16 @@
|
|
|
2248
2461
|
gap: calc(var(--spacing) * 2.5);
|
|
2249
2462
|
}
|
|
2250
2463
|
}
|
|
2464
|
+
.sm\:gap-6 {
|
|
2465
|
+
@media (width >= 40rem) {
|
|
2466
|
+
gap: calc(var(--spacing) * 6);
|
|
2467
|
+
}
|
|
2468
|
+
}
|
|
2469
|
+
.sm\:gap-8 {
|
|
2470
|
+
@media (width >= 40rem) {
|
|
2471
|
+
gap: calc(var(--spacing) * 8);
|
|
2472
|
+
}
|
|
2473
|
+
}
|
|
2251
2474
|
.sm\:space-y-0 {
|
|
2252
2475
|
@media (width >= 40rem) {
|
|
2253
2476
|
:where(& > :not(:last-child)) {
|
|
@@ -2285,6 +2508,12 @@
|
|
|
2285
2508
|
text-align: left;
|
|
2286
2509
|
}
|
|
2287
2510
|
}
|
|
2511
|
+
.sm\:text-3xl {
|
|
2512
|
+
@media (width >= 40rem) {
|
|
2513
|
+
font-size: var(--text-3xl);
|
|
2514
|
+
line-height: var(--tw-leading, var(--text-3xl--line-height));
|
|
2515
|
+
}
|
|
2516
|
+
}
|
|
2288
2517
|
.data-\[state\=open\]\:sm\:slide-in-from-bottom-full {
|
|
2289
2518
|
&[data-state=open] {
|
|
2290
2519
|
@media (width >= 40rem) {
|
|
@@ -2297,6 +2526,21 @@
|
|
|
2297
2526
|
position: absolute;
|
|
2298
2527
|
}
|
|
2299
2528
|
}
|
|
2529
|
+
.md\:ml-6 {
|
|
2530
|
+
@media (width >= 48rem) {
|
|
2531
|
+
margin-left: calc(var(--spacing) * 6);
|
|
2532
|
+
}
|
|
2533
|
+
}
|
|
2534
|
+
.md\:block {
|
|
2535
|
+
@media (width >= 48rem) {
|
|
2536
|
+
display: block;
|
|
2537
|
+
}
|
|
2538
|
+
}
|
|
2539
|
+
.md\:h-\[calc\(80dvh-80px\)\] {
|
|
2540
|
+
@media (width >= 48rem) {
|
|
2541
|
+
height: calc(80dvh - 80px);
|
|
2542
|
+
}
|
|
2543
|
+
}
|
|
2300
2544
|
.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\] {
|
|
2301
2545
|
@media (width >= 48rem) {
|
|
2302
2546
|
width: var(--radix-navigation-menu-viewport-width);
|
|
@@ -2312,6 +2556,62 @@
|
|
|
2312
2556
|
max-width: 420px;
|
|
2313
2557
|
}
|
|
2314
2558
|
}
|
|
2559
|
+
.md\:max-w-sm {
|
|
2560
|
+
@media (width >= 48rem) {
|
|
2561
|
+
max-width: var(--container-sm);
|
|
2562
|
+
}
|
|
2563
|
+
}
|
|
2564
|
+
.md\:px-2 {
|
|
2565
|
+
@media (width >= 48rem) {
|
|
2566
|
+
padding-inline: calc(var(--spacing) * 2);
|
|
2567
|
+
}
|
|
2568
|
+
}
|
|
2569
|
+
.lg\:block {
|
|
2570
|
+
@media (width >= 64rem) {
|
|
2571
|
+
display: block;
|
|
2572
|
+
}
|
|
2573
|
+
}
|
|
2574
|
+
.lg\:flex {
|
|
2575
|
+
@media (width >= 64rem) {
|
|
2576
|
+
display: flex;
|
|
2577
|
+
}
|
|
2578
|
+
}
|
|
2579
|
+
.lg\:w-\[250px\] {
|
|
2580
|
+
@media (width >= 64rem) {
|
|
2581
|
+
width: 250px;
|
|
2582
|
+
}
|
|
2583
|
+
}
|
|
2584
|
+
.lg\:gap-8 {
|
|
2585
|
+
@media (width >= 64rem) {
|
|
2586
|
+
gap: calc(var(--spacing) * 8);
|
|
2587
|
+
}
|
|
2588
|
+
}
|
|
2589
|
+
.dark\:scale-0 {
|
|
2590
|
+
&:is(.dark *) {
|
|
2591
|
+
--tw-scale-x: 0%;
|
|
2592
|
+
--tw-scale-y: 0%;
|
|
2593
|
+
--tw-scale-z: 0%;
|
|
2594
|
+
scale: var(--tw-scale-x) var(--tw-scale-y);
|
|
2595
|
+
}
|
|
2596
|
+
}
|
|
2597
|
+
.dark\:scale-100 {
|
|
2598
|
+
&:is(.dark *) {
|
|
2599
|
+
--tw-scale-x: 100%;
|
|
2600
|
+
--tw-scale-y: 100%;
|
|
2601
|
+
--tw-scale-z: 100%;
|
|
2602
|
+
scale: var(--tw-scale-x) var(--tw-scale-y);
|
|
2603
|
+
}
|
|
2604
|
+
}
|
|
2605
|
+
.dark\:-rotate-90 {
|
|
2606
|
+
&:is(.dark *) {
|
|
2607
|
+
rotate: calc(90deg * -1);
|
|
2608
|
+
}
|
|
2609
|
+
}
|
|
2610
|
+
.dark\:rotate-0 {
|
|
2611
|
+
&:is(.dark *) {
|
|
2612
|
+
rotate: 0deg;
|
|
2613
|
+
}
|
|
2614
|
+
}
|
|
2315
2615
|
.dark\:border-destructive {
|
|
2316
2616
|
&:is(.dark *) {
|
|
2317
2617
|
border-color: var(--destructive);
|
|
@@ -2636,6 +2936,9 @@
|
|
|
2636
2936
|
@property --tw-translate-x { syntax: "*"; inherits: false; initial-value: 0; }
|
|
2637
2937
|
@property --tw-translate-y { syntax: "*"; inherits: false; initial-value: 0; }
|
|
2638
2938
|
@property --tw-translate-z { syntax: "*"; inherits: false; initial-value: 0; }
|
|
2939
|
+
@property --tw-scale-x { syntax: "*"; inherits: false; initial-value: 1; }
|
|
2940
|
+
@property --tw-scale-y { syntax: "*"; inherits: false; initial-value: 1; }
|
|
2941
|
+
@property --tw-scale-z { syntax: "*"; inherits: false; initial-value: 1; }
|
|
2639
2942
|
@property --tw-rotate-x { syntax: "*"; inherits: false; initial-value: rotateX(0); }
|
|
2640
2943
|
@property --tw-rotate-y { syntax: "*"; inherits: false; initial-value: rotateY(0); }
|
|
2641
2944
|
@property --tw-rotate-z { syntax: "*"; inherits: false; initial-value: rotateZ(0); }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shadcn-ui-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "Bleker Cordova <bleker@gliyen.com>",
|
|
6
6
|
"description": "React UI library for ShadCN",
|
|
@@ -55,20 +55,21 @@
|
|
|
55
55
|
"@types/react-dom": "^19.0.4",
|
|
56
56
|
"autoprefixer": "^10.4.20",
|
|
57
57
|
"cross-env": "^7.0.3",
|
|
58
|
+
"jest": "^29.7.0",
|
|
58
59
|
"react": "^19.0.0",
|
|
59
60
|
"react-day-picker": "^9.5.1",
|
|
60
61
|
"react-dom": "^19.0.0",
|
|
62
|
+
"react-router-dom": "^7.2.0",
|
|
61
63
|
"react-test-renderer": "^19.0.0",
|
|
62
64
|
"rimraf": "^6.0.1",
|
|
63
65
|
"tailwindcss": "^4.0.9",
|
|
64
66
|
"tailwindcss-animate": "^1.0.7",
|
|
65
67
|
"tsup": "^8.4.0",
|
|
66
|
-
"vite-plugin-dts": "^4.5.3",
|
|
67
|
-
"vite-plugin-ts-alias": "^0.1.1",
|
|
68
68
|
"typescript": "^5.8.2",
|
|
69
69
|
"vaul": "^1.1.2",
|
|
70
|
-
"
|
|
71
|
-
"vite": "^
|
|
70
|
+
"vite": "^6.2.0",
|
|
71
|
+
"vite-plugin-dts": "^4.5.3",
|
|
72
|
+
"vite-plugin-ts-alias": "^0.1.1"
|
|
72
73
|
},
|
|
73
74
|
"peerDependencies": {
|
|
74
75
|
"react": "^17.0.0 || ^18.3.1 || ^19.0.0 || ^20.0.0",
|
|
@@ -107,6 +108,7 @@
|
|
|
107
108
|
"@radix-ui/react-toggle": "^1.1.2",
|
|
108
109
|
"@radix-ui/react-toggle-group": "^1.1.2",
|
|
109
110
|
"@radix-ui/react-tooltip": "^1.1.8",
|
|
111
|
+
"@tanstack/react-table": "^8.21.2",
|
|
110
112
|
"@vitejs/plugin-react": "^4.3.4",
|
|
111
113
|
"@vitejs/plugin-react-swc": "^3.8.0",
|
|
112
114
|
"class-variance-authority": "^0.7.1",
|
|
@@ -116,9 +118,12 @@
|
|
|
116
118
|
"input-otp": "^1.4.2",
|
|
117
119
|
"lucide-react": "^0.477.0",
|
|
118
120
|
"next-themes": "^0.4.4",
|
|
121
|
+
"react-dropzone": "^14.3.8",
|
|
122
|
+
"react-helmet-next": "^0.0.1",
|
|
119
123
|
"react-resizable-panels": "^2.1.7",
|
|
120
124
|
"sonner": "^2.0.1",
|
|
121
125
|
"tailwind-merge": "^3.0.2",
|
|
122
|
-
"tailwind-variants": "^0.3.1"
|
|
126
|
+
"tailwind-variants": "^0.3.1",
|
|
127
|
+
"use-debounce": "^10.0.4"
|
|
123
128
|
}
|
|
124
129
|
}
|