@modern-admin/ui 0.1.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/components/accordion.d.ts +7 -0
- package/dist/components/accordion.d.ts.map +1 -0
- package/dist/components/accordion.jsx +19 -0
- package/dist/components/accordion.jsx.map +1 -0
- package/dist/components/alert-dialog.d.ts +22 -0
- package/dist/components/alert-dialog.d.ts.map +1 -0
- package/dist/components/alert-dialog.jsx +27 -0
- package/dist/components/alert-dialog.jsx.map +1 -0
- package/dist/components/audit-timeline.d.ts +24 -0
- package/dist/components/audit-timeline.d.ts.map +1 -0
- package/dist/components/audit-timeline.jsx +60 -0
- package/dist/components/audit-timeline.jsx.map +1 -0
- package/dist/components/avatar.d.ts +6 -0
- package/dist/components/avatar.d.ts.map +1 -0
- package/dist/components/avatar.jsx +10 -0
- package/dist/components/avatar.jsx.map +1 -0
- package/dist/components/badge.d.ts +10 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/badge.jsx +19 -0
- package/dist/components/badge.jsx.map +1 -0
- package/dist/components/breadcrumb.d.ts +17 -0
- package/dist/components/breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumb.jsx +27 -0
- package/dist/components/breadcrumb.jsx.map +1 -0
- package/dist/components/button.d.ts +12 -0
- package/dist/components/button.d.ts.map +1 -0
- package/dist/components/button.jsx +37 -0
- package/dist/components/button.jsx.map +1 -0
- package/dist/components/calendar.d.ts +9 -0
- package/dist/components/calendar.d.ts.map +1 -0
- package/dist/components/calendar.jsx +102 -0
- package/dist/components/calendar.jsx.map +1 -0
- package/dist/components/card.d.ts +8 -0
- package/dist/components/card.d.ts.map +1 -0
- package/dist/components/card.jsx +18 -0
- package/dist/components/card.jsx.map +1 -0
- package/dist/components/chart.d.ts +97 -0
- package/dist/components/chart.d.ts.map +1 -0
- package/dist/components/chart.jsx +233 -0
- package/dist/components/chart.jsx.map +1 -0
- package/dist/components/checkbox.d.ts +4 -0
- package/dist/components/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox.jsx +11 -0
- package/dist/components/checkbox.jsx.map +1 -0
- package/dist/components/combobox.d.ts +46 -0
- package/dist/components/combobox.d.ts.map +1 -0
- package/dist/components/combobox.jsx +145 -0
- package/dist/components/combobox.jsx.map +1 -0
- package/dist/components/command.d.ts +80 -0
- package/dist/components/command.d.ts.map +1 -0
- package/dist/components/command.jsx +32 -0
- package/dist/components/command.jsx.map +1 -0
- package/dist/components/date-picker.d.ts +24 -0
- package/dist/components/date-picker.d.ts.map +1 -0
- package/dist/components/date-picker.jsx +149 -0
- package/dist/components/date-picker.jsx.map +1 -0
- package/dist/components/date-range-input.d.ts +22 -0
- package/dist/components/date-range-input.d.ts.map +1 -0
- package/dist/components/date-range-input.jsx +202 -0
- package/dist/components/date-range-input.jsx.map +1 -0
- package/dist/components/dialog.d.ts +19 -0
- package/dist/components/dialog.d.ts.map +1 -0
- package/dist/components/dialog.jsx +30 -0
- package/dist/components/dialog.jsx.map +1 -0
- package/dist/components/diff-view.d.ts +24 -0
- package/dist/components/diff-view.d.ts.map +1 -0
- package/dist/components/diff-view.jsx +69 -0
- package/dist/components/diff-view.jsx.map +1 -0
- package/dist/components/dropdown-menu.d.ts +27 -0
- package/dist/components/dropdown-menu.d.ts.map +1 -0
- package/dist/components/dropdown-menu.jsx +48 -0
- package/dist/components/dropdown-menu.jsx.map +1 -0
- package/dist/components/empty.d.ts +15 -0
- package/dist/components/empty.d.ts.map +1 -0
- package/dist/components/empty.jsx +27 -0
- package/dist/components/empty.jsx.map +1 -0
- package/dist/components/field.d.ts +23 -0
- package/dist/components/field.d.ts.map +1 -0
- package/dist/components/field.jsx +60 -0
- package/dist/components/field.jsx.map +1 -0
- package/dist/components/file-input.d.ts +50 -0
- package/dist/components/file-input.d.ts.map +1 -0
- package/dist/components/file-input.jsx +104 -0
- package/dist/components/file-input.jsx.map +1 -0
- package/dist/components/form.d.ts +20 -0
- package/dist/components/form.d.ts.map +1 -0
- package/dist/components/form.jsx +66 -0
- package/dist/components/form.jsx.map +1 -0
- package/dist/components/info-tooltip.d.ts +11 -0
- package/dist/components/info-tooltip.d.ts.map +1 -0
- package/dist/components/info-tooltip.jsx +17 -0
- package/dist/components/info-tooltip.jsx.map +1 -0
- package/dist/components/input.d.ts +13 -0
- package/dist/components/input.d.ts.map +1 -0
- package/dist/components/input.jsx +19 -0
- package/dist/components/input.jsx.map +1 -0
- package/dist/components/json-editor.d.ts +23 -0
- package/dist/components/json-editor.d.ts.map +1 -0
- package/dist/components/json-editor.jsx +143 -0
- package/dist/components/json-editor.jsx.map +1 -0
- package/dist/components/kbd.d.ts +15 -0
- package/dist/components/kbd.d.ts.map +1 -0
- package/dist/components/kbd.jsx +23 -0
- package/dist/components/kbd.jsx.map +1 -0
- package/dist/components/key-value-editor.d.ts +92 -0
- package/dist/components/key-value-editor.d.ts.map +1 -0
- package/dist/components/key-value-editor.jsx +187 -0
- package/dist/components/key-value-editor.jsx.map +1 -0
- package/dist/components/keyboard-shortcuts-help.d.ts +17 -0
- package/dist/components/keyboard-shortcuts-help.d.ts.map +1 -0
- package/dist/components/keyboard-shortcuts-help.jsx +97 -0
- package/dist/components/keyboard-shortcuts-help.jsx.map +1 -0
- package/dist/components/label.d.ts +5 -0
- package/dist/components/label.d.ts.map +1 -0
- package/dist/components/label.jsx +8 -0
- package/dist/components/label.jsx.map +1 -0
- package/dist/components/media-preview.d.ts +30 -0
- package/dist/components/media-preview.d.ts.map +1 -0
- package/dist/components/media-preview.jsx +189 -0
- package/dist/components/media-preview.jsx.map +1 -0
- package/dist/components/multi-file-input.d.ts +76 -0
- package/dist/components/multi-file-input.d.ts.map +1 -0
- package/dist/components/multi-file-input.jsx +131 -0
- package/dist/components/multi-file-input.jsx.map +1 -0
- package/dist/components/password-input.d.ts +10 -0
- package/dist/components/password-input.d.ts.map +1 -0
- package/dist/components/password-input.jsx +18 -0
- package/dist/components/password-input.jsx.map +1 -0
- package/dist/components/popover.d.ts +7 -0
- package/dist/components/popover.d.ts.map +1 -0
- package/dist/components/popover.jsx +11 -0
- package/dist/components/popover.jsx.map +1 -0
- package/dist/components/revision-timeline.d.ts +30 -0
- package/dist/components/revision-timeline.d.ts.map +1 -0
- package/dist/components/revision-timeline.jsx +42 -0
- package/dist/components/revision-timeline.jsx.map +1 -0
- package/dist/components/richtext-editor.d.ts +43 -0
- package/dist/components/richtext-editor.d.ts.map +1 -0
- package/dist/components/richtext-editor.jsx +319 -0
- package/dist/components/richtext-editor.jsx.map +1 -0
- package/dist/components/richtext-mode.d.ts +23 -0
- package/dist/components/richtext-mode.d.ts.map +1 -0
- package/dist/components/richtext-mode.js +36 -0
- package/dist/components/richtext-mode.js.map +1 -0
- package/dist/components/richtext-render.d.ts +8 -0
- package/dist/components/richtext-render.d.ts.map +1 -0
- package/dist/components/richtext-render.jsx +33 -0
- package/dist/components/richtext-render.jsx.map +1 -0
- package/dist/components/richtext-sync.d.ts +37 -0
- package/dist/components/richtext-sync.d.ts.map +1 -0
- package/dist/components/richtext-sync.js +46 -0
- package/dist/components/richtext-sync.js.map +1 -0
- package/dist/components/scroll-area.d.ts +5 -0
- package/dist/components/scroll-area.d.ts.map +1 -0
- package/dist/components/scroll-area.jsx +16 -0
- package/dist/components/scroll-area.jsx.map +1 -0
- package/dist/components/select.d.ts +36 -0
- package/dist/components/select.d.ts.map +1 -0
- package/dist/components/select.jsx +87 -0
- package/dist/components/select.jsx.map +1 -0
- package/dist/components/separator.d.ts +4 -0
- package/dist/components/separator.d.ts.map +1 -0
- package/dist/components/separator.jsx +6 -0
- package/dist/components/separator.jsx.map +1 -0
- package/dist/components/sheet.d.ts +29 -0
- package/dist/components/sheet.d.ts.map +1 -0
- package/dist/components/sheet.jsx +44 -0
- package/dist/components/sheet.jsx.map +1 -0
- package/dist/components/sidebar.d.ts +70 -0
- package/dist/components/sidebar.d.ts.map +1 -0
- package/dist/components/sidebar.jsx +245 -0
- package/dist/components/sidebar.jsx.map +1 -0
- package/dist/components/skeleton.d.ts +3 -0
- package/dist/components/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton.jsx +6 -0
- package/dist/components/skeleton.jsx.map +1 -0
- package/dist/components/sonner.d.ts +6 -0
- package/dist/components/sonner.d.ts.map +1 -0
- package/dist/components/sonner.jsx +29 -0
- package/dist/components/sonner.jsx.map +1 -0
- package/dist/components/switch.d.ts +4 -0
- package/dist/components/switch.d.ts.map +1 -0
- package/dist/components/switch.jsx +8 -0
- package/dist/components/switch.jsx.map +1 -0
- package/dist/components/table.d.ts +10 -0
- package/dist/components/table.d.ts.map +1 -0
- package/dist/components/table.jsx +21 -0
- package/dist/components/table.jsx.map +1 -0
- package/dist/components/tabs.d.ts +7 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.jsx +14 -0
- package/dist/components/tabs.jsx.map +1 -0
- package/dist/components/textarea.d.ts +4 -0
- package/dist/components/textarea.d.ts.map +1 -0
- package/dist/components/textarea.jsx +5 -0
- package/dist/components/textarea.jsx.map +1 -0
- package/dist/components/tooltip.d.ts +7 -0
- package/dist/components/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip.jsx +11 -0
- package/dist/components/tooltip.jsx.map +1 -0
- package/dist/index.d.ts +52 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +72 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/theme.d.ts +11 -0
- package/dist/lib/theme.d.ts.map +1 -0
- package/dist/lib/theme.js +44 -0
- package/dist/lib/theme.js.map +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +6 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/styles.css +242 -0
- package/package.json +85 -0
- package/src/components/accordion.tsx +48 -0
- package/src/components/alert-dialog.tsx +113 -0
- package/src/components/audit-timeline.tsx +102 -0
- package/src/components/avatar.tsx +42 -0
- package/src/components/badge.tsx +34 -0
- package/src/components/breadcrumb.tsx +99 -0
- package/src/components/button.tsx +58 -0
- package/src/components/calendar.tsx +176 -0
- package/src/components/card.tsx +60 -0
- package/src/components/chart.tsx +558 -0
- package/src/components/checkbox.tsx +23 -0
- package/src/components/combobox.tsx +264 -0
- package/src/components/command.tsx +120 -0
- package/src/components/date-picker.tsx +221 -0
- package/src/components/date-range-input.tsx +295 -0
- package/src/components/dialog.tsx +94 -0
- package/src/components/diff-view.tsx +182 -0
- package/src/components/dropdown-menu.tsx +165 -0
- package/src/components/empty.tsx +100 -0
- package/src/components/field.tsx +168 -0
- package/src/components/file-input.tsx +233 -0
- package/src/components/form.tsx +152 -0
- package/src/components/info-tooltip.tsx +40 -0
- package/src/components/input.tsx +55 -0
- package/src/components/json-editor.tsx +210 -0
- package/src/components/kbd.tsx +35 -0
- package/src/components/key-value-editor.tsx +423 -0
- package/src/components/keyboard-shortcuts-help.tsx +136 -0
- package/src/components/label.tsx +16 -0
- package/src/components/media-preview.tsx +278 -0
- package/src/components/multi-file-input.tsx +315 -0
- package/src/components/password-input.tsx +50 -0
- package/src/components/popover.tsx +26 -0
- package/src/components/revision-timeline.tsx +93 -0
- package/src/components/richtext-editor.tsx +624 -0
- package/src/components/richtext-mode.ts +39 -0
- package/src/components/richtext-render.tsx +51 -0
- package/src/components/richtext-sync.ts +57 -0
- package/src/components/scroll-area.tsx +41 -0
- package/src/components/select.tsx +200 -0
- package/src/components/separator.tsx +21 -0
- package/src/components/sheet.tsx +109 -0
- package/src/components/sidebar.tsx +660 -0
- package/src/components/skeleton.tsx +9 -0
- package/src/components/sonner.tsx +45 -0
- package/src/components/switch.tsx +24 -0
- package/src/components/table.tsx +93 -0
- package/src/components/tabs.tsx +57 -0
- package/src/components/textarea.tsx +18 -0
- package/src/components/tooltip.tsx +25 -0
- package/src/index.ts +342 -0
- package/src/lib/theme.ts +45 -0
- package/src/lib/utils.ts +6 -0
- package/src/styles.css +242 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
export declare const Accordion: React.ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & React.RefAttributes<HTMLDivElement>>;
|
|
4
|
+
export declare const AccordionItem: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
5
|
+
export declare const AccordionTrigger: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
6
|
+
export declare const AccordionContent: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
7
|
+
//# sourceMappingURL=accordion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../src/components/accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAA;AAE/D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,eAAO,MAAM,SAAS,8JAA0B,CAAA;AAEhD,eAAO,MAAM,aAAa,iKAKxB,CAAA;AAGF,eAAO,MAAM,gBAAgB,0KAiB3B,CAAA;AAGF,eAAO,MAAM,gBAAgB,oKAW3B,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
2
|
+
import { ChevronDown } from 'lucide-react';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { cn } from '../lib/utils.js';
|
|
5
|
+
export const Accordion = AccordionPrimitive.Root;
|
|
6
|
+
export const AccordionItem = React.forwardRef(({ className, ...props }, ref) => (<AccordionPrimitive.Item ref={ref} className={cn('border-b border-border', className)} {...props}/>));
|
|
7
|
+
AccordionItem.displayName = 'AccordionItem';
|
|
8
|
+
export const AccordionTrigger = React.forwardRef(({ className, children, ...props }, ref) => (<AccordionPrimitive.Header className="flex">
|
|
9
|
+
<AccordionPrimitive.Trigger ref={ref} className={cn('flex flex-1 cursor-pointer items-center justify-between py-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground transition-all hover:text-foreground [&[data-state=open]>svg]:rotate-180', className)} {...props}>
|
|
10
|
+
{children}
|
|
11
|
+
<ChevronDown className="size-3.5 shrink-0 transition-transform duration-200"/>
|
|
12
|
+
</AccordionPrimitive.Trigger>
|
|
13
|
+
</AccordionPrimitive.Header>));
|
|
14
|
+
AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
|
|
15
|
+
export const AccordionContent = React.forwardRef(({ className, children, ...props }, ref) => (<AccordionPrimitive.Content ref={ref} className="overflow-hidden data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" {...props}>
|
|
16
|
+
<div className={cn('pt-0.5 pb-1', className)}>{children}</div>
|
|
17
|
+
</AccordionPrimitive.Content>));
|
|
18
|
+
AccordionContent.displayName = AccordionPrimitive.Content.displayName;
|
|
19
|
+
//# sourceMappingURL=accordion.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordion.jsx","sourceRoot":"","sources":["../../src/components/accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC,MAAM,CAAC,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAA;AAEhD,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAG3C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAG,CACrG,CAAC,CAAA;AACF,aAAa,CAAC,WAAW,GAAG,eAAe,CAAA;AAE3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAG9C,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAC5C,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CACzC;IAAA,CAAC,kBAAkB,CAAC,OAAO,CACzB,GAAG,CAAC,CAAC,GAAG,CAAC,CACT,SAAS,CAAC,CAAC,EAAE,CACX,6MAA6M,EAC7M,SAAS,CACV,CAAC,CACF,IAAI,KAAK,CAAC,CAEV;MAAA,CAAC,QAAQ,CACT;MAAA,CAAC,WAAW,CAAC,SAAS,CAAC,qDAAqD,EAC9E;IAAA,EAAE,kBAAkB,CAAC,OAAO,CAC9B;EAAA,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAC7B,CAAC,CAAA;AACF,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAA;AAErE,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAG9C,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAC5C,CAAC,kBAAkB,CAAC,OAAO,CACzB,GAAG,CAAC,CAAC,GAAG,CAAC,CACT,SAAS,CAAC,mGAAmG,CAC7G,IAAI,KAAK,CAAC,CAEV;IAAA,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,CAC/D;EAAA,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAC9B,CAAC,CAAA;AACF,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
|
|
3
|
+
export declare const AlertDialog: React.FC<AlertDialogPrimitive.AlertDialogProps>;
|
|
4
|
+
export declare const AlertDialogTrigger: React.ForwardRefExoticComponent<AlertDialogPrimitive.AlertDialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
5
|
+
export declare const AlertDialogPortal: React.FC<AlertDialogPrimitive.AlertDialogPortalProps>;
|
|
6
|
+
export declare const AlertDialogOverlay: React.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
7
|
+
export declare const AlertDialogContent: React.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
8
|
+
export declare const AlertDialogHeader: {
|
|
9
|
+
({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.ReactElement;
|
|
10
|
+
displayName: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const AlertDialogFooter: {
|
|
13
|
+
({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.ReactElement;
|
|
14
|
+
displayName: string;
|
|
15
|
+
};
|
|
16
|
+
export declare const AlertDialogTitle: React.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
|
|
17
|
+
export declare const AlertDialogDescription: React.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
18
|
+
export declare const AlertDialogAction: React.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogActionProps & React.RefAttributes<HTMLButtonElement>, "ref"> & {
|
|
19
|
+
variant?: "default" | "destructive";
|
|
20
|
+
} & React.RefAttributes<HTMLButtonElement>>;
|
|
21
|
+
export declare const AlertDialogCancel: React.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogCancelProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
22
|
+
//# sourceMappingURL=alert-dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-dialog.d.ts","sourceRoot":"","sources":["../../src/components/alert-dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAIpE,eAAO,MAAM,WAAW,iDAA4B,CAAA;AACpD,eAAO,MAAM,kBAAkB,wHAA+B,CAAA;AAC9D,eAAO,MAAM,iBAAiB,uDAA8B,CAAA;AAE5D,eAAO,MAAM,kBAAkB,wKAY7B,CAAA;AAGF,eAAO,MAAM,kBAAkB,wKAe7B,CAAA;AAGF,eAAO,MAAM,iBAAiB;8BAG3B,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,YAAY;;CAK3D,CAAA;AAGD,eAAO,MAAM,iBAAiB;8BAG3B,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,YAAY;;CAK3D,CAAA;AAGD,eAAO,MAAM,gBAAgB,8KAS3B,CAAA;AAGF,eAAO,MAAM,sBAAsB,wLASjC,CAAA;AAGF,eAAO,MAAM,iBAAiB;cAGhB,SAAS,GAAG,aAAa;2CAQrC,CAAA;AAGF,eAAO,MAAM,iBAAiB,6KAS5B,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
|
|
3
|
+
import { buttonVariants } from './button.js';
|
|
4
|
+
import { cn } from '../lib/utils.js';
|
|
5
|
+
export const AlertDialog = AlertDialogPrimitive.Root;
|
|
6
|
+
export const AlertDialogTrigger = AlertDialogPrimitive.Trigger;
|
|
7
|
+
export const AlertDialogPortal = AlertDialogPrimitive.Portal;
|
|
8
|
+
export const AlertDialogOverlay = React.forwardRef(({ className, ...props }, ref) => (<AlertDialogPrimitive.Overlay ref={ref} className={cn('fixed inset-0 z-50 bg-black/60 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', className)} {...props}/>));
|
|
9
|
+
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
10
|
+
export const AlertDialogContent = React.forwardRef(({ className, ...props }, ref) => (<AlertDialogPortal>
|
|
11
|
+
<AlertDialogOverlay />
|
|
12
|
+
<AlertDialogPrimitive.Content ref={ref} className={cn('fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:rounded-lg', className)} {...props}/>
|
|
13
|
+
</AlertDialogPortal>));
|
|
14
|
+
AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
|
|
15
|
+
export const AlertDialogHeader = ({ className, ...props }) => (<div className={cn('flex flex-col gap-2 text-center sm:text-left', className)} {...props}/>);
|
|
16
|
+
AlertDialogHeader.displayName = 'AlertDialogHeader';
|
|
17
|
+
export const AlertDialogFooter = ({ className, ...props }) => (<div className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:gap-2', className)} {...props}/>);
|
|
18
|
+
AlertDialogFooter.displayName = 'AlertDialogFooter';
|
|
19
|
+
export const AlertDialogTitle = React.forwardRef(({ className, ...props }, ref) => (<AlertDialogPrimitive.Title ref={ref} className={cn('text-lg font-semibold', className)} {...props}/>));
|
|
20
|
+
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
|
|
21
|
+
export const AlertDialogDescription = React.forwardRef(({ className, ...props }, ref) => (<AlertDialogPrimitive.Description ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props}/>));
|
|
22
|
+
AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
|
|
23
|
+
export const AlertDialogAction = React.forwardRef(({ className, variant = 'default', ...props }, ref) => (<AlertDialogPrimitive.Action ref={ref} className={cn(buttonVariants({ variant }), className)} {...props}/>));
|
|
24
|
+
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
25
|
+
export const AlertDialogCancel = React.forwardRef(({ className, ...props }, ref) => (<AlertDialogPrimitive.Cancel ref={ref} className={cn(buttonVariants({ variant: 'outline' }), 'mt-2 sm:mt-0', className)} {...props}/>));
|
|
26
|
+
AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
|
|
27
|
+
//# sourceMappingURL=alert-dialog.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-dialog.jsx","sourceRoot":"","sources":["../../src/components/alert-dialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface AuditTimelineItem {
|
|
3
|
+
/** Stable id for React reconciliation; falls back to `at + index`. */
|
|
4
|
+
id?: string;
|
|
5
|
+
resourceId: string;
|
|
6
|
+
action: string;
|
|
7
|
+
recordId?: string;
|
|
8
|
+
recordIds?: string[];
|
|
9
|
+
userId?: string;
|
|
10
|
+
at: number;
|
|
11
|
+
}
|
|
12
|
+
export interface AuditTimelineLabels {
|
|
13
|
+
unknownUser?: string;
|
|
14
|
+
noEvents?: string;
|
|
15
|
+
records?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface AuditTimelineProps {
|
|
18
|
+
items: ReadonlyArray<AuditTimelineItem>;
|
|
19
|
+
labels?: AuditTimelineLabels;
|
|
20
|
+
className?: string;
|
|
21
|
+
formatDate?: (value: number) => string;
|
|
22
|
+
}
|
|
23
|
+
export declare function AuditTimeline({ items, labels, className, formatDate, }: AuditTimelineProps): React.ReactElement;
|
|
24
|
+
//# sourceMappingURL=audit-timeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit-timeline.d.ts","sourceRoot":"","sources":["../../src/components/audit-timeline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,EAAE,EAAE,MAAM,CAAA;CACX;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IACvC,MAAM,CAAC,EAAE,mBAAmB,CAAA;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;CACvC;AAQD,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,MAAM,EACN,SAAS,EACT,UAA6C,GAC9C,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAgDzC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { cn } from '../lib/utils.js';
|
|
3
|
+
const DEFAULT_LABELS = {
|
|
4
|
+
unknownUser: 'Unknown user',
|
|
5
|
+
noEvents: 'No events',
|
|
6
|
+
records: 'records',
|
|
7
|
+
};
|
|
8
|
+
export function AuditTimeline({ items, labels, className, formatDate = (v) => new Date(v).toISOString(), }) {
|
|
9
|
+
const l = { ...DEFAULT_LABELS, ...labels };
|
|
10
|
+
if (items.length === 0) {
|
|
11
|
+
return (<div className={cn('rounded-md border border-dashed p-6 text-center text-sm text-muted-foreground', className)}>
|
|
12
|
+
{l.noEvents}
|
|
13
|
+
</div>);
|
|
14
|
+
}
|
|
15
|
+
return (<ol className={cn('relative space-y-3', className)}>
|
|
16
|
+
{items.map((item, index) => (<li key={item.id ?? `${item.at}:${index}`} className="relative rounded-lg border bg-card p-4 shadow-sm">
|
|
17
|
+
<div className="flex flex-wrap items-start justify-between gap-3">
|
|
18
|
+
<div className="flex min-w-0 items-start gap-3">
|
|
19
|
+
<span className="flex size-9 shrink-0 items-center justify-center rounded-full bg-primary/10 text-xs font-semibold text-primary">
|
|
20
|
+
{initials(item.userId ?? l.unknownUser)}
|
|
21
|
+
</span>
|
|
22
|
+
<div className="min-w-0 space-y-1">
|
|
23
|
+
<p className="truncate text-sm font-medium">
|
|
24
|
+
{item.userId ?? l.unknownUser}
|
|
25
|
+
</p>
|
|
26
|
+
<p className="flex flex-wrap items-center gap-2 text-sm text-muted-foreground">
|
|
27
|
+
<ActionChip action={item.action}/>
|
|
28
|
+
<span className="rounded-full border bg-muted px-2 py-0.5 text-xs">
|
|
29
|
+
{item.resourceId}
|
|
30
|
+
</span>
|
|
31
|
+
{item.recordId && (<code className="rounded bg-muted px-1.5 py-0.5 text-xs">
|
|
32
|
+
#{item.recordId}
|
|
33
|
+
</code>)}
|
|
34
|
+
{!item.recordId && item.recordIds?.length ? (<span className="text-xs">
|
|
35
|
+
{item.recordIds.length} {l.records}
|
|
36
|
+
</span>) : null}
|
|
37
|
+
</p>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
<time className="shrink-0 text-xs text-muted-foreground">
|
|
41
|
+
{formatDate(item.at)}
|
|
42
|
+
</time>
|
|
43
|
+
</div>
|
|
44
|
+
</li>))}
|
|
45
|
+
</ol>);
|
|
46
|
+
}
|
|
47
|
+
function ActionChip({ action }) {
|
|
48
|
+
return (<span className="rounded-full border border-primary/20 bg-primary/10 px-2 py-0.5 text-xs font-medium text-primary">
|
|
49
|
+
{action}
|
|
50
|
+
</span>);
|
|
51
|
+
}
|
|
52
|
+
function initials(value) {
|
|
53
|
+
const parts = value.split(/\s+|[._@-]/).filter(Boolean);
|
|
54
|
+
if (parts.length === 0)
|
|
55
|
+
return '?';
|
|
56
|
+
if (parts.length === 1)
|
|
57
|
+
return parts[0].slice(0, 2).toUpperCase();
|
|
58
|
+
return (parts[0][0] + parts[1][0]).toUpperCase();
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=audit-timeline.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit-timeline.jsx","sourceRoot":"","sources":["../../src/components/audit-timeline.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
3
|
+
export declare const Avatar: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
4
|
+
export declare const AvatarImage: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarImageProps & React.RefAttributes<HTMLImageElement>, "ref"> & React.RefAttributes<HTMLImageElement>>;
|
|
5
|
+
export declare const AvatarFallback: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarFallbackProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
6
|
+
//# sourceMappingURL=avatar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../src/components/avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAA;AAGzD,eAAO,MAAM,MAAM,yJASjB,CAAA;AAGF,eAAO,MAAM,WAAW,gKAStB,CAAA;AAGF,eAAO,MAAM,cAAc,iKAYzB,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
3
|
+
import { cn } from '../lib/utils.js';
|
|
4
|
+
export const Avatar = React.forwardRef(({ className, ...props }, ref) => (<AvatarPrimitive.Root ref={ref} className={cn('relative flex h-9 w-9 shrink-0 overflow-hidden rounded-full', className)} {...props}/>));
|
|
5
|
+
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
6
|
+
export const AvatarImage = React.forwardRef(({ className, ...props }, ref) => (<AvatarPrimitive.Image ref={ref} className={cn('aspect-square h-full w-full', className)} {...props}/>));
|
|
7
|
+
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
8
|
+
export const AvatarFallback = React.forwardRef(({ className, ...props }, ref) => (<AvatarPrimitive.Fallback ref={ref} className={cn('flex h-full w-full items-center justify-center rounded-full bg-muted text-sm font-medium text-muted-foreground', className)} {...props}/>));
|
|
9
|
+
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
10
|
+
//# sourceMappingURL=avatar.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.jsx","sourceRoot":"","sources":["../../src/components/avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAGpC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,CAAC,eAAe,CAAC,IAAI,CACnB,GAAG,CAAC,CAAC,GAAG,CAAC,CACT,SAAS,CAAC,CAAC,EAAE,CAAC,6DAA6D,EAAE,SAAS,CAAC,CAAC,CACxF,IAAI,KAAK,CAAC,EACV,CACH,CAAC,CAAA;AACF,MAAM,CAAC,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,CAAA;AAErD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGzC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,CAAC,eAAe,CAAC,KAAK,CACpB,GAAG,CAAC,CAAC,GAAG,CAAC,CACT,SAAS,CAAC,CAAC,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAC,CACxD,IAAI,KAAK,CAAC,EACV,CACH,CAAC,CAAA;AACF,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,CAAA;AAE3D,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAG5C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,CAAC,eAAe,CAAC,QAAQ,CACvB,GAAG,CAAC,CAAC,GAAG,CAAC,CACT,SAAS,CAAC,CAAC,EAAE,CACX,gHAAgH,EAChH,SAAS,CACV,CAAC,CACF,IAAI,KAAK,CAAC,EACV,CACH,CAAC,CAAA;AACF,cAAc,CAAC,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
declare const badgeVariants: (props?: ({
|
|
4
|
+
variant?: "default" | "destructive" | "outline" | "secondary" | "success" | null | undefined;
|
|
5
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
|
+
export interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof badgeVariants> {
|
|
7
|
+
}
|
|
8
|
+
export declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
|
|
9
|
+
export { badgeVariants };
|
|
10
|
+
//# sourceMappingURL=badge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../src/components/badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGjE,QAAA,MAAM,aAAa;;8EAgBlB,CAAA;AAED,MAAM,WAAW,UACf,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,EAC3C,YAAY,CAAC,OAAO,aAAa,CAAC;CAAG;AAEzC,eAAO,MAAM,KAAK,oFAIjB,CAAA;AAGD,OAAO,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { cva } from 'class-variance-authority';
|
|
3
|
+
import { cn } from '../lib/utils.js';
|
|
4
|
+
const badgeVariants = cva('inline-flex items-center rounded-full border border-border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2', {
|
|
5
|
+
variants: {
|
|
6
|
+
variant: {
|
|
7
|
+
default: 'border-transparent bg-primary text-primary-foreground hover:bg-primary/80',
|
|
8
|
+
secondary: 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',
|
|
9
|
+
destructive: 'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80',
|
|
10
|
+
outline: 'text-foreground',
|
|
11
|
+
success: 'border-transparent bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-300',
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
defaultVariants: { variant: 'default' },
|
|
15
|
+
});
|
|
16
|
+
export const Badge = React.forwardRef(({ className, variant, ...props }, ref) => (<span ref={ref} className={cn(badgeVariants({ variant }), className)} {...props}/>));
|
|
17
|
+
Badge.displayName = 'Badge';
|
|
18
|
+
export { badgeVariants };
|
|
19
|
+
//# sourceMappingURL=badge.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.jsx","sourceRoot":"","sources":["../../src/components/badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC,MAAM,aAAa,GAAG,GAAG,CACvB,sLAAsL,EACtL;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,2EAA2E;YACpF,SAAS,EACP,iFAAiF;YACnF,WAAW,EACT,uFAAuF;YACzF,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE,iGAAiG;SAC3G;KACF;IACD,eAAe,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;CACxC,CACF,CAAA;AAMD,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CACnC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CACzC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAG,CACpF,CACF,CAAA;AACD,KAAK,CAAC,WAAW,GAAG,OAAO,CAAA;AAE3B,OAAO,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare const Breadcrumb: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
3
|
+
export declare const BreadcrumbList: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.OlHTMLAttributes<HTMLOListElement>, HTMLOListElement>, "ref"> & React.RefAttributes<HTMLOListElement>>;
|
|
4
|
+
export declare const BreadcrumbItem: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React.RefAttributes<HTMLLIElement>>;
|
|
5
|
+
export declare const BreadcrumbLink: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & {
|
|
6
|
+
asChild?: boolean;
|
|
7
|
+
} & React.RefAttributes<HTMLAnchorElement>>;
|
|
8
|
+
export declare const BreadcrumbPage: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
9
|
+
export declare const BreadcrumbSeparator: {
|
|
10
|
+
({ children, className, ...props }: React.ComponentPropsWithoutRef<"li">): React.ReactElement;
|
|
11
|
+
displayName: string;
|
|
12
|
+
};
|
|
13
|
+
export declare const BreadcrumbEllipsis: {
|
|
14
|
+
({ className, ...props }: React.ComponentPropsWithoutRef<"span">): React.ReactElement;
|
|
15
|
+
displayName: string;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=breadcrumb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breadcrumb.d.ts","sourceRoot":"","sources":["../../src/components/breadcrumb.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,eAAO,MAAM,UAAU,0JAGgD,CAAA;AAGvE,eAAO,MAAM,cAAc,2KAYzB,CAAA;AAGF,eAAO,MAAM,cAAc,kKASzB,CAAA;AAGF,eAAO,MAAM,cAAc;cAEyB,OAAO;2CAUzD,CAAA;AAGF,eAAO,MAAM,cAAc,sKAYzB,CAAA;AAGF,eAAO,MAAM,mBAAmB;wCAI7B,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,YAAY;;CAS3D,CAAA;AAGD,eAAO,MAAM,kBAAkB;8BAG5B,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,YAAY;;CAU7D,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Slot } from '@radix-ui/react-slot';
|
|
3
|
+
import { ChevronRight, MoreHorizontal } from 'lucide-react';
|
|
4
|
+
import { cn } from '../lib/utils.js';
|
|
5
|
+
export const Breadcrumb = React.forwardRef((props, ref) => <nav ref={ref} aria-label="breadcrumb" {...props}/>);
|
|
6
|
+
Breadcrumb.displayName = 'Breadcrumb';
|
|
7
|
+
export const BreadcrumbList = React.forwardRef(({ className, ...props }, ref) => (<ol ref={ref} className={cn('flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5', className)} {...props}/>));
|
|
8
|
+
BreadcrumbList.displayName = 'BreadcrumbList';
|
|
9
|
+
export const BreadcrumbItem = React.forwardRef(({ className, ...props }, ref) => (<li ref={ref} className={cn('inline-flex items-center gap-1.5', className)} {...props}/>));
|
|
10
|
+
BreadcrumbItem.displayName = 'BreadcrumbItem';
|
|
11
|
+
export const BreadcrumbLink = React.forwardRef(({ asChild, className, ...props }, ref) => {
|
|
12
|
+
const Comp = asChild ? Slot : 'a';
|
|
13
|
+
return (<Comp ref={ref} className={cn('transition-colors hover:text-foreground', className)} {...props}/>);
|
|
14
|
+
});
|
|
15
|
+
BreadcrumbLink.displayName = 'BreadcrumbLink';
|
|
16
|
+
export const BreadcrumbPage = React.forwardRef(({ className, ...props }, ref) => (<span ref={ref} role="link" aria-disabled="true" aria-current="page" className={cn('font-normal text-foreground', className)} {...props}/>));
|
|
17
|
+
BreadcrumbPage.displayName = 'BreadcrumbPage';
|
|
18
|
+
export const BreadcrumbSeparator = ({ children, className, ...props }) => (<li role="presentation" aria-hidden="true" className={cn('[&>svg]:size-3.5', className)} {...props}>
|
|
19
|
+
{children ?? <ChevronRight />}
|
|
20
|
+
</li>);
|
|
21
|
+
BreadcrumbSeparator.displayName = 'BreadcrumbSeparator';
|
|
22
|
+
export const BreadcrumbEllipsis = ({ className, ...props }) => (<span role="presentation" aria-hidden="true" className={cn('flex size-9 items-center justify-center', className)} {...props}>
|
|
23
|
+
<MoreHorizontal className="size-4"/>
|
|
24
|
+
<span className="sr-only">More</span>
|
|
25
|
+
</span>);
|
|
26
|
+
BreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis';
|
|
27
|
+
//# sourceMappingURL=breadcrumb.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breadcrumb.jsx","sourceRoot":"","sources":["../../src/components/breadcrumb.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
declare const buttonVariants: (props?: ({
|
|
4
|
+
variant?: "link" | "default" | "destructive" | "outline" | "outline-primary" | "outline-destructive" | "secondary" | "ghost" | null | undefined;
|
|
5
|
+
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
8
|
+
asChild?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
11
|
+
export { buttonVariants };
|
|
12
|
+
//# sourceMappingURL=button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,cAAc;;;8EA8BnB,CAAA;AAED,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,eAAO,MAAM,MAAM,uFAWlB,CAAA;AAGD,OAAO,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { cva } from 'class-variance-authority';
|
|
3
|
+
import { Slot } from '@radix-ui/react-slot';
|
|
4
|
+
import { cn } from '../lib/utils.js';
|
|
5
|
+
const buttonVariants = cva('inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', {
|
|
6
|
+
variants: {
|
|
7
|
+
variant: {
|
|
8
|
+
default: 'bg-primary text-primary-foreground hover:bg-primary/90',
|
|
9
|
+
destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',
|
|
10
|
+
outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',
|
|
11
|
+
// Colored outline variants — same chrome as `outline` (border +
|
|
12
|
+
// transparent background, height comes from the size token) but
|
|
13
|
+
// with a semantic tint applied to border, text and hover. Use
|
|
14
|
+
// when grouping a row of action buttons so they share a single
|
|
15
|
+
// visual silhouette while still encoding intent through color.
|
|
16
|
+
'outline-primary': 'border border-primary/40 bg-background text-primary hover:bg-primary/10 hover:border-primary/60',
|
|
17
|
+
'outline-destructive': 'border border-destructive/40 bg-background text-destructive hover:bg-destructive/10 hover:border-destructive/60',
|
|
18
|
+
secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',
|
|
19
|
+
ghost: 'hover:bg-accent hover:text-accent-foreground',
|
|
20
|
+
link: 'text-primary underline-offset-4 hover:underline',
|
|
21
|
+
},
|
|
22
|
+
size: {
|
|
23
|
+
default: 'h-9 px-4 py-2',
|
|
24
|
+
sm: 'h-8 rounded-md px-3 text-xs',
|
|
25
|
+
lg: 'h-10 rounded-md px-6',
|
|
26
|
+
icon: 'h-9 w-9',
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
defaultVariants: { variant: 'default', size: 'default' },
|
|
30
|
+
});
|
|
31
|
+
export const Button = React.forwardRef(({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
32
|
+
const Comp = asChild ? Slot : 'button';
|
|
33
|
+
return (<Comp ref={ref} className={cn(buttonVariants({ variant, size }), className)} {...props}/>);
|
|
34
|
+
});
|
|
35
|
+
Button.displayName = 'Button';
|
|
36
|
+
export { buttonVariants };
|
|
37
|
+
//# sourceMappingURL=button.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.jsx","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC,MAAM,cAAc,GAAG,GAAG,CACxB,uXAAuX,EACvX;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,wDAAwD;YACjE,WAAW,EAAE,oEAAoE;YACjF,OAAO,EAAE,gFAAgF;YACzF,gEAAgE;YAChE,gEAAgE;YAChE,8DAA8D;YAC9D,+DAA+D;YAC/D,+DAA+D;YAC/D,iBAAiB,EACf,iGAAiG;YACnG,qBAAqB,EACnB,iHAAiH;YACnH,SAAS,EAAE,8DAA8D;YACzE,KAAK,EAAE,8CAA8C;YACrD,IAAI,EAAE,iDAAiD;SACxD;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,eAAe;YACxB,EAAE,EAAE,6BAA6B;YACjC,EAAE,EAAE,sBAAsB;YAC1B,IAAI,EAAE,SAAS;SAChB;KACF;IACD,eAAe,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;CACzD,CACF,CAAA;AAQD,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CACpC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAC/D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAA;IACtC,OAAO,CACL,CAAC,IAAI,CACH,GAAG,CAAC,CAAC,GAAG,CAAC,CACT,SAAS,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAC5D,IAAI,KAAK,CAAC,EACV,CACH,CAAA;AACH,CAAC,CACF,CAAA;AACD,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAA;AAE7B,OAAO,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { type DayPickerProps } from 'react-day-picker';
|
|
3
|
+
import 'react-day-picker/style.css';
|
|
4
|
+
export type CalendarProps = DayPickerProps;
|
|
5
|
+
export declare function Calendar({ className, classNames, showOutsideDays, captionLayout, startMonth, endMonth, ...props }: CalendarProps): React.ReactElement;
|
|
6
|
+
export declare namespace Calendar {
|
|
7
|
+
var displayName: string;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=calendar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/components/calendar.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,kBAAkB,CAAA;AACzB,OAAO,4BAA4B,CAAA;AAoEnC,MAAM,MAAM,aAAa,GAAG,cAAc,CAAA;AAM1C,wBAAgB,QAAQ,CAAC,EACvB,SAAS,EACT,UAAU,EACV,eAAsB,EACtB,aAA0B,EAC1B,UAAgC,EAChC,QAA4B,EAC5B,GAAG,KAAK,EACT,EAAE,aAAa,GAAG,KAAK,CAAC,YAAY,CA+EpC;yBAvFe,QAAQ"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
// shadcn-style calendar built on react-day-picker 9. Tokens come from the
|
|
2
|
+
// project's semantic palette so light/dark themes work without overrides.
|
|
3
|
+
//
|
|
4
|
+
// Use directly for inline calendars, or wrap with `<DatePicker>` for the
|
|
5
|
+
// popover-based input pattern.
|
|
6
|
+
import * as React from 'react';
|
|
7
|
+
import { ChevronLeft, ChevronRight } from 'lucide-react';
|
|
8
|
+
import { DayPicker, } from 'react-day-picker';
|
|
9
|
+
import 'react-day-picker/style.css';
|
|
10
|
+
import { cn } from '../lib/utils.js';
|
|
11
|
+
import { buttonVariants } from './button.js';
|
|
12
|
+
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from './select.js';
|
|
13
|
+
/**
|
|
14
|
+
* Replacement for react-day-picker's native <select> dropdown. Uses the
|
|
15
|
+
* shadcn Select (Radix) so month/year pickers match the rest of the UI and
|
|
16
|
+
* pop above the popover instead of being clipped by it.
|
|
17
|
+
*/
|
|
18
|
+
function CalendarDropdown(props) {
|
|
19
|
+
const { options = [], value, onChange, disabled, className } = props;
|
|
20
|
+
const ariaLabel = props['aria-label'];
|
|
21
|
+
const handleChange = (next) => {
|
|
22
|
+
// react-day-picker's handlers read `e.target.value`, so synthesize the
|
|
23
|
+
// minimal shape they require.
|
|
24
|
+
onChange?.({
|
|
25
|
+
target: { value: next },
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
return (<Select value={value != null ? String(value) : undefined} onValueChange={handleChange} disabled={disabled}>
|
|
29
|
+
<SelectTrigger aria-label={ariaLabel} className={cn(
|
|
30
|
+
// Borderless ghost-style trigger: compact pill that highlights on
|
|
31
|
+
// hover, with a subtle chevron — matches the "Month ⌄ Year ⌄"
|
|
32
|
+
// reference design.
|
|
33
|
+
'h-7 w-auto gap-1 rounded-md border-transparent bg-transparent px-2 text-sm font-medium shadow-none hover:bg-accent hover:text-accent-foreground focus:ring-1 [&>svg]:size-3.5 [&>svg]:opacity-60', className)}>
|
|
34
|
+
<SelectValue />
|
|
35
|
+
</SelectTrigger>
|
|
36
|
+
<SelectContent className="max-h-[var(--radix-select-content-available-height)]">
|
|
37
|
+
{options.map((opt) => (<SelectItem key={opt.value} value={String(opt.value)} disabled={opt.disabled}>
|
|
38
|
+
{opt.label}
|
|
39
|
+
</SelectItem>))}
|
|
40
|
+
</SelectContent>
|
|
41
|
+
</Select>);
|
|
42
|
+
}
|
|
43
|
+
const CURRENT_YEAR = new Date().getFullYear();
|
|
44
|
+
const DEFAULT_START_MONTH = new Date(CURRENT_YEAR - 100, 0, 1);
|
|
45
|
+
const DEFAULT_END_MONTH = new Date(CURRENT_YEAR + 10, 11, 31);
|
|
46
|
+
export function Calendar({ className, classNames, showOutsideDays = true, captionLayout = 'dropdown', startMonth = DEFAULT_START_MONTH, endMonth = DEFAULT_END_MONTH, ...props }) {
|
|
47
|
+
return (<DayPicker showOutsideDays={showOutsideDays}
|
|
48
|
+
// Lock the grid to 6 weeks so navigating months never shifts the popover
|
|
49
|
+
// height (and thus never visually "jumps").
|
|
50
|
+
fixedWeeks captionLayout={captionLayout} startMonth={startMonth} endMonth={endMonth} className={cn('p-3', className)} classNames={{
|
|
51
|
+
months: 'flex flex-col gap-4 sm:flex-row sm:gap-6',
|
|
52
|
+
month: 'flex flex-col gap-3',
|
|
53
|
+
// Caption hosts the dropdowns centered; horizontal padding reserves
|
|
54
|
+
// room for the absolutely-positioned nav buttons so wide dropdowns
|
|
55
|
+
// never overlap (and steal clicks from) the next-month chevron.
|
|
56
|
+
month_caption: 'flex justify-center pt-1 relative items-center h-9 px-9',
|
|
57
|
+
caption_label: 'inline-flex items-center gap-1 text-sm font-medium [&>svg]:size-3.5 [&>svg]:opacity-60',
|
|
58
|
+
// Custom CalendarDropdown component renders shadcn Selects directly,
|
|
59
|
+
// so the rdp wrapper just needs a flex layout for the two pickers.
|
|
60
|
+
dropdowns: 'flex items-center gap-1',
|
|
61
|
+
dropdown_root: 'relative inline-flex',
|
|
62
|
+
dropdown: '',
|
|
63
|
+
months_dropdown: '',
|
|
64
|
+
years_dropdown: '',
|
|
65
|
+
// Nav row floats over the caption. The wrapper itself ignores
|
|
66
|
+
// pointer events so the gap between the buttons doesn't block clicks
|
|
67
|
+
// on the dropdowns underneath; only the buttons themselves are
|
|
68
|
+
// interactive (`pointer-events-auto`).
|
|
69
|
+
nav: 'absolute inset-x-1 top-1 flex items-center justify-between pointer-events-none z-10',
|
|
70
|
+
button_previous: cn(buttonVariants({ variant: 'ghost', size: 'icon' }), 'pointer-events-auto size-7 p-0 opacity-70 hover:opacity-100'),
|
|
71
|
+
button_next: cn(buttonVariants({ variant: 'ghost', size: 'icon' }), 'pointer-events-auto size-7 p-0 opacity-70 hover:opacity-100'),
|
|
72
|
+
month_grid: 'w-full border-collapse space-y-1',
|
|
73
|
+
weekdays: 'flex',
|
|
74
|
+
weekday: 'text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]',
|
|
75
|
+
week: 'flex w-full mt-2',
|
|
76
|
+
// Single rounded button per cell — no cell-level background hacks so
|
|
77
|
+
// hover/focus stays inside the rounded shape (no black corners).
|
|
78
|
+
day: 'relative p-0 text-center text-sm focus-within:relative focus-within:z-20',
|
|
79
|
+
day_button: cn(buttonVariants({ variant: 'ghost' }), 'size-9 rounded-md p-0 font-normal aria-selected:opacity-100'),
|
|
80
|
+
range_start: 'day-range-start',
|
|
81
|
+
range_end: 'day-range-end',
|
|
82
|
+
// Apply selected state to the inner button so its rounded shape wins
|
|
83
|
+
// over hover/focus rectangles.
|
|
84
|
+
selected: '[&>button]:bg-primary [&>button]:text-primary-foreground [&>button]:hover:bg-primary [&>button]:hover:text-primary-foreground [&>button]:focus:bg-primary [&>button]:focus:text-primary-foreground',
|
|
85
|
+
today: '[&>button]:bg-accent [&>button]:text-accent-foreground',
|
|
86
|
+
outside: 'day-outside text-muted-foreground aria-selected:text-muted-foreground',
|
|
87
|
+
disabled: 'text-muted-foreground opacity-50',
|
|
88
|
+
range_middle: '[&>button]:bg-accent [&>button]:text-accent-foreground',
|
|
89
|
+
hidden: 'invisible',
|
|
90
|
+
...classNames,
|
|
91
|
+
}} components={{
|
|
92
|
+
Chevron: ({ orientation, className: cls }) => {
|
|
93
|
+
const Icon = orientation === 'left' ? ChevronLeft : ChevronRight;
|
|
94
|
+
// pointer-events-none so clicks on the SVG bubble to the parent
|
|
95
|
+
// button (otherwise they're swallowed and nav doesn't fire).
|
|
96
|
+
return <Icon className={cn('size-4 pointer-events-none', cls)}/>;
|
|
97
|
+
},
|
|
98
|
+
Dropdown: CalendarDropdown,
|
|
99
|
+
}} {...props}/>);
|
|
100
|
+
}
|
|
101
|
+
Calendar.displayName = 'Calendar';
|
|
102
|
+
//# sourceMappingURL=calendar.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar.jsx","sourceRoot":"","sources":["../../src/components/calendar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare const Card: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
3
|
+
export declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
4
|
+
export declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLDivElement>>;
|
|
5
|
+
export declare const CardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLDivElement>>;
|
|
6
|
+
export declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
7
|
+
export declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
8
|
+
//# sourceMappingURL=card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../src/components/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,eAAO,MAAM,IAAI,6GAQhB,CAAA;AAGD,eAAO,MAAM,UAAU,6GAItB,CAAA;AAGD,eAAO,MAAM,SAAS,iHAQrB,CAAA;AAGD,eAAO,MAAM,eAAe,mHAS1B,CAAA;AAMF,eAAO,MAAM,WAAW,6GAIvB,CAAA;AAGD,eAAO,MAAM,UAAU,6GAItB,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { cn } from '../lib/utils.js';
|
|
3
|
+
export const Card = React.forwardRef(({ className, ...props }, ref) => (<div ref={ref} className={cn('rounded-lg border border-border bg-card text-card-foreground shadow-sm', className)} {...props}/>));
|
|
4
|
+
Card.displayName = 'Card';
|
|
5
|
+
export const CardHeader = React.forwardRef(({ className, ...props }, ref) => (<div ref={ref} className={cn('flex flex-col gap-1.5 p-3 sm:p-6', className)} {...props}/>));
|
|
6
|
+
CardHeader.displayName = 'CardHeader';
|
|
7
|
+
export const CardTitle = React.forwardRef(({ className, ...props }, ref) => (<h3 ref={ref} className={cn('text-lg font-semibold leading-none tracking-tight', className)} {...props}/>));
|
|
8
|
+
CardTitle.displayName = 'CardTitle';
|
|
9
|
+
export const CardDescription = React.forwardRef(({ className, ...props }, ref) => (<p ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props}/>));
|
|
10
|
+
CardDescription.displayName = 'CardDescription';
|
|
11
|
+
// `[&:not(:first-child)]:pt-0` collapses the top padding only when this content
|
|
12
|
+
// follows a sibling (typically a `CardHeader`), so a standalone `<Card><CardContent/>`
|
|
13
|
+
// keeps full top padding instead of inheriting the header-aware `pt-0`.
|
|
14
|
+
export const CardContent = React.forwardRef(({ className, ...props }, ref) => (<div ref={ref} className={cn('p-3 sm:p-6 [&:not(:first-child)]:pt-0', className)} {...props}/>));
|
|
15
|
+
CardContent.displayName = 'CardContent';
|
|
16
|
+
export const CardFooter = React.forwardRef(({ className, ...props }, ref) => (<div ref={ref} className={cn('flex items-center gap-2 p-3 pt-0 sm:p-6 sm:pt-0', className)} {...props}/>));
|
|
17
|
+
CardFooter.displayName = 'CardFooter';
|
|
18
|
+
//# sourceMappingURL=card.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.jsx","sourceRoot":"","sources":["../../src/components/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAClC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChC,CAAC,GAAG,CACF,GAAG,CAAC,CAAC,GAAG,CAAC,CACT,SAAS,CAAC,CAAC,EAAE,CAAC,wEAAwE,EAAE,SAAS,CAAC,CAAC,CACnG,IAAI,KAAK,CAAC,EACV,CACH,CACF,CAAA;AACD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAA;AAEzB,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CACxC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,kCAAkC,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAG,CAC3F,CACF,CAAA;AACD,UAAU,CAAC,WAAW,GAAG,YAAY,CAAA;AAErC,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CACvC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChC,CAAC,EAAE,CACD,GAAG,CAAC,CAAC,GAA+C,CAAC,CACrD,SAAS,CAAC,CAAC,EAAE,CAAC,mDAAmD,EAAE,SAAS,CAAC,CAAC,CAC9E,IAAI,KAAK,CAAC,EACV,CACH,CACF,CAAA;AACD,SAAS,CAAC,WAAW,GAAG,WAAW,CAAA;AAEnC,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAG7C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,CAAC,CAAC,CACA,GAAG,CAAC,CAAC,GAAiD,CAAC,CACvD,SAAS,CAAC,CAAC,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,CAAC,CAC1D,IAAI,KAAK,CAAC,EACV,CACH,CAAC,CAAA;AACF,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAA;AAE/C,gFAAgF;AAChF,uFAAuF;AACvF,wEAAwE;AACxE,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CACzC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,uCAAuC,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAG,CAChG,CACF,CAAA;AACD,WAAW,CAAC,WAAW,GAAG,aAAa,CAAA;AAEvC,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CACxC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,iDAAiD,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAG,CAC1G,CACF,CAAA;AACD,UAAU,CAAC,WAAW,GAAG,YAAY,CAAA"}
|