@codefast/ui 0.0.50 → 0.0.52
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/{chunk-ZTEJNUH6.js → chunk-46W6RAYD.js} +1 -1
- package/dist/chunk-46W6RAYD.js.map +1 -0
- package/dist/{chunk-CERSQE5J.js → chunk-4JHGPRLG.js} +1 -1
- package/dist/chunk-4JHGPRLG.js.map +1 -0
- package/dist/{chunk-I6QCJDIF.mjs → chunk-5RENVAXH.mjs} +1 -1
- package/dist/chunk-5RENVAXH.mjs.map +1 -0
- package/dist/{chunk-47CSACCM.mjs → chunk-7ABWX5CF.mjs} +2 -2
- package/dist/chunk-7ABWX5CF.mjs.map +1 -0
- package/dist/{chunk-XHNT6PVI.mjs → chunk-BM5KYF6Y.mjs} +1 -1
- package/dist/chunk-BM5KYF6Y.mjs.map +1 -0
- package/dist/{chunk-P5AV3QU7.mjs → chunk-BNKSZEF2.mjs} +1 -1
- package/dist/chunk-BNKSZEF2.mjs.map +1 -0
- package/dist/{chunk-SDGUDONZ.js → chunk-DCDB56BO.js} +1 -1
- package/dist/chunk-DCDB56BO.js.map +1 -0
- package/dist/{chunk-6FL3EBDQ.mjs → chunk-HMD2ZU33.mjs} +1 -1
- package/dist/chunk-HMD2ZU33.mjs.map +1 -0
- package/dist/{chunk-JOBEKA4M.mjs → chunk-K63K4LTH.mjs} +2 -2
- package/dist/chunk-K63K4LTH.mjs.map +1 -0
- package/dist/{chunk-VXPAGNPJ.js → chunk-LJSD47ZL.js} +1 -1
- package/dist/chunk-LJSD47ZL.js.map +1 -0
- package/dist/{chunk-GDMHMSJ2.mjs → chunk-MFYACCZV.mjs} +1 -1
- package/dist/chunk-MFYACCZV.mjs.map +1 -0
- package/dist/{chunk-LG7ACTRE.js → chunk-PRCS3RWN.js} +1 -1
- package/dist/chunk-PRCS3RWN.js.map +1 -0
- package/dist/{chunk-OP6Q7VT5.js → chunk-RHFF4JNH.js} +1 -1
- package/dist/chunk-RHFF4JNH.js.map +1 -0
- package/dist/{chunk-SCPFGC2X.js → chunk-SCXRD727.js} +1 -1
- package/dist/chunk-SCXRD727.js.map +1 -0
- package/dist/{chunk-X3LRJQM3.js → chunk-VZVI3OHH.js} +2 -2
- package/dist/chunk-VZVI3OHH.js.map +1 -0
- package/dist/{chunk-UYRRHPPH.js → chunk-X4BEEJEW.js} +2 -2
- package/dist/chunk-X4BEEJEW.js.map +1 -0
- package/dist/{chunk-PWF46YXQ.mjs → chunk-Y2GMHG3Z.mjs} +1 -1
- package/dist/chunk-Y2GMHG3Z.mjs.map +1 -0
- package/dist/{chunk-MU2MZ434.mjs → chunk-ZIB4ZTST.mjs} +1 -1
- package/dist/chunk-ZIB4ZTST.mjs.map +1 -0
- package/dist/plugin/animate.plugin.js +1 -1
- package/dist/plugin/animate.plugin.mjs +1 -1
- package/dist/react/accordion.js.map +1 -1
- package/dist/react/accordion.mjs.map +1 -1
- package/dist/react/alert-dialog.js +1 -1
- package/dist/react/alert-dialog.js.map +1 -1
- package/dist/react/alert-dialog.mjs +1 -1
- package/dist/react/alert-dialog.mjs.map +1 -1
- package/dist/react/alert.js.map +1 -1
- package/dist/react/alert.mjs.map +1 -1
- package/dist/react/aspect-ratio.d.mts +1 -1
- package/dist/react/aspect-ratio.d.ts +1 -1
- package/dist/react/aspect-ratio.js.map +1 -1
- package/dist/react/aspect-ratio.mjs.map +1 -1
- package/dist/react/avatar.js.map +1 -1
- package/dist/react/avatar.mjs.map +1 -1
- package/dist/react/badge.js.map +1 -1
- package/dist/react/badge.mjs.map +1 -1
- package/dist/react/blockquote.js.map +1 -1
- package/dist/react/blockquote.mjs.map +1 -1
- package/dist/react/box.js.map +1 -1
- package/dist/react/box.mjs.map +1 -1
- package/dist/react/breadcrumb.js.map +1 -1
- package/dist/react/breadcrumb.mjs.map +1 -1
- package/dist/react/button.js +1 -1
- package/dist/react/button.mjs +1 -1
- package/dist/react/calendar.js +1 -1
- package/dist/react/calendar.js.map +1 -1
- package/dist/react/calendar.mjs +1 -1
- package/dist/react/calendar.mjs.map +1 -1
- package/dist/react/card.js.map +1 -1
- package/dist/react/card.mjs.map +1 -1
- package/dist/react/carousel.js +1 -1
- package/dist/react/carousel.js.map +1 -1
- package/dist/react/carousel.mjs +1 -1
- package/dist/react/carousel.mjs.map +1 -1
- package/dist/react/checkbox-cards.js +1 -1
- package/dist/react/checkbox-cards.js.map +1 -1
- package/dist/react/checkbox-cards.mjs +1 -1
- package/dist/react/checkbox-cards.mjs.map +1 -1
- package/dist/react/checkbox-group.js +1 -1
- package/dist/react/checkbox-group.js.map +1 -1
- package/dist/react/checkbox-group.mjs +1 -1
- package/dist/react/checkbox-group.mjs.map +1 -1
- package/dist/react/checkbox-group.primitive.js +1 -1
- package/dist/react/checkbox-group.primitive.mjs +1 -1
- package/dist/react/checkbox.js.map +1 -1
- package/dist/react/checkbox.mjs.map +1 -1
- package/dist/react/code.js.map +1 -1
- package/dist/react/code.mjs.map +1 -1
- package/dist/react/collapsible.js.map +1 -1
- package/dist/react/collapsible.mjs.map +1 -1
- package/dist/react/command.d.mts +8 -8
- package/dist/react/command.d.ts +8 -8
- package/dist/react/command.js +1 -1
- package/dist/react/command.js.map +1 -1
- package/dist/react/command.mjs +1 -1
- package/dist/react/command.mjs.map +1 -1
- package/dist/react/container.js.map +1 -1
- package/dist/react/container.mjs.map +1 -1
- package/dist/react/context-menu.js.map +1 -1
- package/dist/react/context-menu.mjs.map +1 -1
- package/dist/react/data-table.d.mts +1 -1
- package/dist/react/data-table.d.ts +1 -1
- package/dist/react/data-table.js +1 -1
- package/dist/react/data-table.js.map +1 -1
- package/dist/react/data-table.mjs +1 -1
- package/dist/react/data-table.mjs.map +1 -1
- package/dist/react/dialog.js +1 -1
- package/dist/react/dialog.mjs +1 -1
- package/dist/react/drawer.js.map +1 -1
- package/dist/react/drawer.mjs.map +1 -1
- package/dist/react/dropdown-menu.js +1 -1
- package/dist/react/dropdown-menu.mjs +1 -1
- package/dist/react/em.js.map +1 -1
- package/dist/react/em.mjs.map +1 -1
- package/dist/react/form.js +1 -1
- package/dist/react/form.js.map +1 -1
- package/dist/react/form.mjs +1 -1
- package/dist/react/form.mjs.map +1 -1
- package/dist/react/heading.js.map +1 -1
- package/dist/react/heading.mjs.map +1 -1
- package/dist/react/hover-card.js.map +1 -1
- package/dist/react/hover-card.mjs.map +1 -1
- package/dist/react/input-otp.js.map +1 -1
- package/dist/react/input-otp.mjs.map +1 -1
- package/dist/react/input.js.map +1 -1
- package/dist/react/input.mjs.map +1 -1
- package/dist/react/kbd.js.map +1 -1
- package/dist/react/kbd.mjs.map +1 -1
- package/dist/react/label.js +1 -1
- package/dist/react/label.mjs +1 -1
- package/dist/react/menubar.js.map +1 -1
- package/dist/react/menubar.mjs.map +1 -1
- package/dist/react/navigation-menu.js.map +1 -1
- package/dist/react/navigation-menu.mjs.map +1 -1
- package/dist/react/pagination.js +1 -1
- package/dist/react/pagination.js.map +1 -1
- package/dist/react/pagination.mjs +1 -1
- package/dist/react/pagination.mjs.map +1 -1
- package/dist/react/popover.js.map +1 -1
- package/dist/react/popover.mjs.map +1 -1
- package/dist/react/pre.js.map +1 -1
- package/dist/react/pre.mjs.map +1 -1
- package/dist/react/progress.js.map +1 -1
- package/dist/react/progress.mjs.map +1 -1
- package/dist/react/quote.js.map +1 -1
- package/dist/react/quote.mjs.map +1 -1
- package/dist/react/radio-cards.js.map +1 -1
- package/dist/react/radio-cards.mjs.map +1 -1
- package/dist/react/radio-group.js.map +1 -1
- package/dist/react/radio-group.mjs.map +1 -1
- package/dist/react/radio.js.map +1 -1
- package/dist/react/radio.mjs.map +1 -1
- package/dist/react/resizable.js.map +1 -1
- package/dist/react/resizable.mjs.map +1 -1
- package/dist/react/scroll-area.js.map +1 -1
- package/dist/react/scroll-area.mjs.map +1 -1
- package/dist/react/section.js.map +1 -1
- package/dist/react/section.mjs.map +1 -1
- package/dist/react/select.js +1 -1
- package/dist/react/select.mjs +1 -1
- package/dist/react/separator.js.map +1 -1
- package/dist/react/separator.mjs.map +1 -1
- package/dist/react/sheet.js +1 -1
- package/dist/react/sheet.js.map +1 -1
- package/dist/react/sheet.mjs +1 -1
- package/dist/react/sheet.mjs.map +1 -1
- package/dist/react/skeleton.js.map +1 -1
- package/dist/react/skeleton.mjs.map +1 -1
- package/dist/react/slider.js.map +1 -1
- package/dist/react/slider.mjs.map +1 -1
- package/dist/react/sonner.js.map +1 -1
- package/dist/react/sonner.mjs.map +1 -1
- package/dist/react/spinner.js +1 -1
- package/dist/react/spinner.mjs +1 -1
- package/dist/react/strong.js.map +1 -1
- package/dist/react/strong.mjs.map +1 -1
- package/dist/react/switch.js.map +1 -1
- package/dist/react/switch.mjs.map +1 -1
- package/dist/react/table.js.map +1 -1
- package/dist/react/table.mjs.map +1 -1
- package/dist/react/tabs.js.map +1 -1
- package/dist/react/tabs.mjs.map +1 -1
- package/dist/react/text.js.map +1 -1
- package/dist/react/text.mjs.map +1 -1
- package/dist/react/textarea.js.map +1 -1
- package/dist/react/textarea.mjs.map +1 -1
- package/dist/react/toggle-group.js +1 -1
- package/dist/react/toggle-group.js.map +1 -1
- package/dist/react/toggle-group.mjs +1 -1
- package/dist/react/toggle-group.mjs.map +1 -1
- package/dist/react/toggle.js +1 -1
- package/dist/react/toggle.mjs +1 -1
- package/dist/react/tooltip.js.map +1 -1
- package/dist/react/tooltip.mjs.map +1 -1
- package/dist/styles.css.map +1 -1
- package/dist/tailwind.config.js +1 -1
- package/dist/tailwind.config.js.map +1 -1
- package/dist/tailwind.config.mjs +1 -1
- package/dist/tailwind.config.mjs.map +1 -1
- package/package.json +6 -6
- package/plugin/animate.plugin.ts +2 -5
- package/src/react/accordion.tsx +36 -60
- package/src/react/alert-dialog.tsx +57 -125
- package/src/react/alert.tsx +16 -42
- package/src/react/aspect-ratio.tsx +2 -4
- package/src/react/avatar.tsx +15 -43
- package/src/react/badge.tsx +3 -8
- package/src/react/blockquote.tsx +5 -8
- package/src/react/box.tsx +4 -6
- package/src/react/breadcrumb.tsx +17 -50
- package/src/react/button.tsx +5 -20
- package/src/react/calendar.tsx +5 -22
- package/src/react/card.tsx +22 -56
- package/src/react/carousel.tsx +20 -76
- package/src/react/checkbox-cards.tsx +28 -55
- package/src/react/checkbox-group.primitive.tsx +24 -78
- package/src/react/checkbox-group.tsx +26 -49
- package/src/react/checkbox.tsx +15 -19
- package/src/react/code.tsx +4 -6
- package/src/react/collapsible.tsx +19 -29
- package/src/react/command.tsx +69 -134
- package/src/react/container.tsx +5 -9
- package/src/react/context-menu.tsx +146 -224
- package/src/react/data-table.tsx +16 -44
- package/src/react/dialog.tsx +45 -90
- package/src/react/drawer.tsx +44 -91
- package/src/react/dropdown-menu.tsx +126 -194
- package/src/react/em.tsx +4 -6
- package/src/react/form.tsx +49 -84
- package/src/react/heading.tsx +4 -6
- package/src/react/hover-card.tsx +22 -38
- package/src/react/input-otp.tsx +26 -37
- package/src/react/input.tsx +6 -16
- package/src/react/kbd.tsx +14 -16
- package/src/react/label.tsx +11 -12
- package/src/react/menubar.tsx +129 -208
- package/src/react/navigation-menu.tsx +105 -147
- package/src/react/pagination.tsx +18 -50
- package/src/react/popover.tsx +25 -40
- package/src/react/pre.tsx +4 -6
- package/src/react/progress.tsx +15 -22
- package/src/react/quote.tsx +4 -6
- package/src/react/radio-cards.tsx +7 -27
- package/src/react/radio-group.tsx +7 -27
- package/src/react/radio.tsx +14 -18
- package/src/react/resizable.tsx +2 -7
- package/src/react/scroll-area.tsx +30 -52
- package/src/react/section.tsx +4 -6
- package/src/react/select.tsx +108 -161
- package/src/react/separator.tsx +3 -12
- package/src/react/sheet.tsx +21 -71
- package/src/react/skeleton.tsx +1 -6
- package/src/react/slider.tsx +20 -27
- package/src/react/sonner.tsx +2 -4
- package/src/react/spinner.tsx +2 -7
- package/src/react/strong.tsx +4 -6
- package/src/react/switch.tsx +12 -14
- package/src/react/table.tsx +37 -82
- package/src/react/tabs.tsx +34 -44
- package/src/react/text.tsx +5 -8
- package/src/react/textarea.tsx +12 -14
- package/src/react/toggle-group.tsx +16 -57
- package/src/react/toggle.tsx +8 -15
- package/src/react/tooltip.tsx +24 -39
- package/tailwind.config.ts +2 -2
- package/dist/chunk-47CSACCM.mjs.map +0 -1
- package/dist/chunk-6FL3EBDQ.mjs.map +0 -1
- package/dist/chunk-CERSQE5J.js.map +0 -1
- package/dist/chunk-GDMHMSJ2.mjs.map +0 -1
- package/dist/chunk-I6QCJDIF.mjs.map +0 -1
- package/dist/chunk-JOBEKA4M.mjs.map +0 -1
- package/dist/chunk-LG7ACTRE.js.map +0 -1
- package/dist/chunk-MU2MZ434.mjs.map +0 -1
- package/dist/chunk-OP6Q7VT5.js.map +0 -1
- package/dist/chunk-P5AV3QU7.mjs.map +0 -1
- package/dist/chunk-PWF46YXQ.mjs.map +0 -1
- package/dist/chunk-SCPFGC2X.js.map +0 -1
- package/dist/chunk-SDGUDONZ.js.map +0 -1
- package/dist/chunk-UYRRHPPH.js.map +0 -1
- package/dist/chunk-VXPAGNPJ.js.map +0 -1
- package/dist/chunk-X3LRJQM3.js.map +0 -1
- package/dist/chunk-XHNT6PVI.mjs.map +0 -1
- package/dist/chunk-ZTEJNUH6.js.map +0 -1
|
@@ -2,11 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
|
|
5
|
-
import {
|
|
6
|
-
CheckIcon,
|
|
7
|
-
ChevronRightIcon,
|
|
8
|
-
DotFilledIcon,
|
|
9
|
-
} from '@radix-ui/react-icons';
|
|
5
|
+
import { CheckIcon, ChevronRightIcon, DotFilledIcon } from '@radix-ui/react-icons';
|
|
10
6
|
import { cn } from '../lib/utils';
|
|
11
7
|
|
|
12
8
|
/* -----------------------------------------------------------------------------
|
|
@@ -20,70 +16,56 @@ const ContextMenu = ContextMenuPrimitive.Root;
|
|
|
20
16
|
* Component: ContextMenuTrigger
|
|
21
17
|
* -------------------------------------------------------------------------- */
|
|
22
18
|
|
|
23
|
-
type ContextMenuTriggerProps = React.ComponentPropsWithoutRef<
|
|
24
|
-
typeof ContextMenuPrimitive.Trigger
|
|
25
|
-
>;
|
|
19
|
+
type ContextMenuTriggerProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Trigger>;
|
|
26
20
|
const ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
27
21
|
|
|
28
22
|
/* -----------------------------------------------------------------------------
|
|
29
23
|
* Component: ContextMenuGroup
|
|
30
24
|
* -------------------------------------------------------------------------- */
|
|
31
25
|
|
|
32
|
-
type ContextMenuGroupProps = React.ComponentPropsWithoutRef<
|
|
33
|
-
typeof ContextMenuPrimitive.Group
|
|
34
|
-
>;
|
|
26
|
+
type ContextMenuGroupProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Group>;
|
|
35
27
|
const ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
36
28
|
|
|
37
29
|
/* -----------------------------------------------------------------------------
|
|
38
30
|
* Component: ContextMenuSub
|
|
39
31
|
* -------------------------------------------------------------------------- */
|
|
40
32
|
|
|
41
|
-
type ContextMenuSubProps = React.ComponentProps<
|
|
42
|
-
typeof ContextMenuPrimitive.Sub
|
|
43
|
-
>;
|
|
33
|
+
type ContextMenuSubProps = React.ComponentProps<typeof ContextMenuPrimitive.Sub>;
|
|
44
34
|
const ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
45
35
|
|
|
46
36
|
/* -----------------------------------------------------------------------------
|
|
47
37
|
* Component: ContextMenuRadioGroup
|
|
48
38
|
* -------------------------------------------------------------------------- */
|
|
49
39
|
|
|
50
|
-
type ContextMenuRadioGroupProps = React.ComponentPropsWithoutRef<
|
|
51
|
-
typeof ContextMenuPrimitive.RadioGroup
|
|
52
|
-
>;
|
|
40
|
+
type ContextMenuRadioGroupProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioGroup>;
|
|
53
41
|
const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
54
42
|
|
|
55
43
|
/* -----------------------------------------------------------------------------
|
|
56
44
|
* Component: ContextMenuSubTrigger
|
|
57
45
|
* -------------------------------------------------------------------------- */
|
|
58
46
|
|
|
59
|
-
type ContextMenuSubTriggerElement = React.ElementRef<
|
|
60
|
-
typeof ContextMenuPrimitive.SubTrigger
|
|
61
|
-
>;
|
|
47
|
+
type ContextMenuSubTriggerElement = React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>;
|
|
62
48
|
|
|
63
|
-
interface ContextMenuSubTriggerProps
|
|
64
|
-
extends React.ComponentPropsWithoutRef<
|
|
65
|
-
typeof ContextMenuPrimitive.SubTrigger
|
|
66
|
-
> {
|
|
49
|
+
interface ContextMenuSubTriggerProps extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> {
|
|
67
50
|
inset?: boolean;
|
|
68
51
|
}
|
|
69
52
|
|
|
70
|
-
const ContextMenuSubTrigger = React.forwardRef<
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
));
|
|
53
|
+
const ContextMenuSubTrigger = React.forwardRef<ContextMenuSubTriggerElement, ContextMenuSubTriggerProps>(
|
|
54
|
+
({ children, className, inset, ...props }, ref) => (
|
|
55
|
+
<ContextMenuPrimitive.SubTrigger
|
|
56
|
+
ref={ref}
|
|
57
|
+
className={cn(
|
|
58
|
+
'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm focus:outline-none',
|
|
59
|
+
inset && 'pl-8',
|
|
60
|
+
className,
|
|
61
|
+
)}
|
|
62
|
+
{...props}
|
|
63
|
+
>
|
|
64
|
+
{children}
|
|
65
|
+
<ChevronRightIcon className="ml-auto size-4" />
|
|
66
|
+
</ContextMenuPrimitive.SubTrigger>
|
|
67
|
+
),
|
|
68
|
+
);
|
|
87
69
|
|
|
88
70
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
89
71
|
|
|
@@ -91,28 +73,23 @@ ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
|
91
73
|
* Component: ContextMenuSubContent
|
|
92
74
|
* -------------------------------------------------------------------------- */
|
|
93
75
|
|
|
94
|
-
type ContextMenuSubContentElement = React.ElementRef<
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
)}
|
|
112
|
-
{...props}
|
|
113
|
-
/>
|
|
114
|
-
</ContextMenuPrimitive.Portal>
|
|
115
|
-
));
|
|
76
|
+
type ContextMenuSubContentElement = React.ElementRef<typeof ContextMenuPrimitive.SubContent>;
|
|
77
|
+
type ContextMenuSubContentProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>;
|
|
78
|
+
|
|
79
|
+
const ContextMenuSubContent = React.forwardRef<ContextMenuSubContentElement, ContextMenuSubContentProps>(
|
|
80
|
+
({ className, ...props }, ref) => (
|
|
81
|
+
<ContextMenuPrimitive.Portal>
|
|
82
|
+
<ContextMenuPrimitive.SubContent
|
|
83
|
+
ref={ref}
|
|
84
|
+
className={cn(
|
|
85
|
+
'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=open]:fade-in data-[state=open]:zoom-in-95 data-[state=open]:data-[side=top]:slide-in-from-bottom-2 data-[state=open]:data-[side=right]:slide-in-from-left-2 data-[state=open]:data-[side=bottom]:slide-in-from-top-2 data-[state=open]:data-[side=left]:slide-in-from-right-2 data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=closed]:zoom-out-95 data-[state=closed]:data-[side=top]:slide-out-to-bottom-2 data-[state=closed]:data-[side=right]:slide-out-to-left-2 data-[state=closed]:data-[side=bottom]:slide-out-to-top-2 data-[state=closed]:data-[side=left]:slide-out-to-right-2 z-50 min-w-32 rounded-md border p-1 shadow-md',
|
|
86
|
+
className,
|
|
87
|
+
)}
|
|
88
|
+
{...props}
|
|
89
|
+
/>
|
|
90
|
+
</ContextMenuPrimitive.Portal>
|
|
91
|
+
),
|
|
92
|
+
);
|
|
116
93
|
|
|
117
94
|
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
118
95
|
|
|
@@ -120,28 +97,23 @@ ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
|
120
97
|
* Component: ContextMenuContent
|
|
121
98
|
* -------------------------------------------------------------------------- */
|
|
122
99
|
|
|
123
|
-
type ContextMenuContentElement = React.ElementRef<
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
)}
|
|
141
|
-
{...props}
|
|
142
|
-
/>
|
|
143
|
-
</ContextMenuPrimitive.Portal>
|
|
144
|
-
));
|
|
100
|
+
type ContextMenuContentElement = React.ElementRef<typeof ContextMenuPrimitive.Content>;
|
|
101
|
+
type ContextMenuContentProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>;
|
|
102
|
+
|
|
103
|
+
const ContextMenuContent = React.forwardRef<ContextMenuContentElement, ContextMenuContentProps>(
|
|
104
|
+
({ className, ...props }, ref) => (
|
|
105
|
+
<ContextMenuPrimitive.Portal>
|
|
106
|
+
<ContextMenuPrimitive.Content
|
|
107
|
+
ref={ref}
|
|
108
|
+
className={cn(
|
|
109
|
+
'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=open]:fade-in data-[state=open]:zoom-in-95 data-[state=open]:data-[side=top]:slide-in-from-bottom-2 data-[state=open]:data-[side=right]:slide-in-from-left-2 data-[state=open]:data-[side=bottom]:slide-in-from-top-2 data-[state=open]:data-[side=left]:slide-in-from-right-2 z-50 min-w-32 rounded-md border p-1 shadow-md',
|
|
110
|
+
className,
|
|
111
|
+
)}
|
|
112
|
+
{...props}
|
|
113
|
+
/>
|
|
114
|
+
</ContextMenuPrimitive.Portal>
|
|
115
|
+
),
|
|
116
|
+
);
|
|
145
117
|
|
|
146
118
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
147
119
|
|
|
@@ -149,29 +121,25 @@ ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
|
149
121
|
* Component: ContextMenuItem
|
|
150
122
|
* -------------------------------------------------------------------------- */
|
|
151
123
|
|
|
152
|
-
type ContextMenuItemElement = React.ElementRef<
|
|
153
|
-
typeof ContextMenuPrimitive.Item
|
|
154
|
-
>;
|
|
124
|
+
type ContextMenuItemElement = React.ElementRef<typeof ContextMenuPrimitive.Item>;
|
|
155
125
|
|
|
156
|
-
interface ContextMenuItemProps
|
|
157
|
-
extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> {
|
|
126
|
+
interface ContextMenuItemProps extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> {
|
|
158
127
|
inset?: boolean;
|
|
159
128
|
}
|
|
160
129
|
|
|
161
|
-
const ContextMenuItem = React.forwardRef<
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
));
|
|
130
|
+
const ContextMenuItem = React.forwardRef<ContextMenuItemElement, ContextMenuItemProps>(
|
|
131
|
+
({ className, inset, ...props }, ref) => (
|
|
132
|
+
<ContextMenuPrimitive.Item
|
|
133
|
+
ref={ref}
|
|
134
|
+
className={cn(
|
|
135
|
+
'focus:bg-accent focus:text-accent-foreground relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm focus:outline-none aria-disabled:pointer-events-none aria-disabled:opacity-50',
|
|
136
|
+
inset && 'pl-8',
|
|
137
|
+
className,
|
|
138
|
+
)}
|
|
139
|
+
{...props}
|
|
140
|
+
/>
|
|
141
|
+
),
|
|
142
|
+
);
|
|
175
143
|
|
|
176
144
|
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
177
145
|
|
|
@@ -179,69 +147,58 @@ ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
|
179
147
|
* Component: ContextMenuCheckboxItem
|
|
180
148
|
* -------------------------------------------------------------------------- */
|
|
181
149
|
|
|
182
|
-
type ContextMenuCheckboxItemElement = React.ElementRef<
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
{children}
|
|
208
|
-
</ContextMenuPrimitive.CheckboxItem>
|
|
209
|
-
));
|
|
210
|
-
|
|
211
|
-
ContextMenuCheckboxItem.displayName =
|
|
212
|
-
ContextMenuPrimitive.CheckboxItem.displayName;
|
|
150
|
+
type ContextMenuCheckboxItemElement = React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>;
|
|
151
|
+
type ContextMenuCheckboxItemProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>;
|
|
152
|
+
|
|
153
|
+
const ContextMenuCheckboxItem = React.forwardRef<ContextMenuCheckboxItemElement, ContextMenuCheckboxItemProps>(
|
|
154
|
+
({ children, className, checked, ...props }, ref) => (
|
|
155
|
+
<ContextMenuPrimitive.CheckboxItem
|
|
156
|
+
ref={ref}
|
|
157
|
+
className={cn(
|
|
158
|
+
'focus:bg-accent focus:text-accent-foreground relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm focus:outline-none aria-disabled:pointer-events-none aria-disabled:opacity-50',
|
|
159
|
+
className,
|
|
160
|
+
)}
|
|
161
|
+
checked={checked}
|
|
162
|
+
{...props}
|
|
163
|
+
>
|
|
164
|
+
<span className="absolute left-2 flex size-3.5 items-center justify-center">
|
|
165
|
+
<ContextMenuPrimitive.ItemIndicator>
|
|
166
|
+
<CheckIcon className="size-4" />
|
|
167
|
+
</ContextMenuPrimitive.ItemIndicator>
|
|
168
|
+
</span>
|
|
169
|
+
{children}
|
|
170
|
+
</ContextMenuPrimitive.CheckboxItem>
|
|
171
|
+
),
|
|
172
|
+
);
|
|
173
|
+
|
|
174
|
+
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
213
175
|
|
|
214
176
|
/* -----------------------------------------------------------------------------
|
|
215
177
|
* Component: ContextMenuRadioItem
|
|
216
178
|
* -------------------------------------------------------------------------- */
|
|
217
179
|
|
|
218
|
-
type ContextMenuRadioItemElement = React.ElementRef<
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
</ContextMenuPrimitive.ItemIndicator>
|
|
241
|
-
</span>
|
|
242
|
-
{children}
|
|
243
|
-
</ContextMenuPrimitive.RadioItem>
|
|
244
|
-
));
|
|
180
|
+
type ContextMenuRadioItemElement = React.ElementRef<typeof ContextMenuPrimitive.RadioItem>;
|
|
181
|
+
type ContextMenuRadioItemProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>;
|
|
182
|
+
|
|
183
|
+
const ContextMenuRadioItem = React.forwardRef<ContextMenuRadioItemElement, ContextMenuRadioItemProps>(
|
|
184
|
+
({ children, className, ...props }, ref) => (
|
|
185
|
+
<ContextMenuPrimitive.RadioItem
|
|
186
|
+
ref={ref}
|
|
187
|
+
className={cn(
|
|
188
|
+
'focus:bg-accent focus:text-accent-foreground relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm focus:outline-none aria-disabled:pointer-events-none aria-disabled:opacity-50',
|
|
189
|
+
className,
|
|
190
|
+
)}
|
|
191
|
+
{...props}
|
|
192
|
+
>
|
|
193
|
+
<span className="absolute left-2 flex size-3.5 items-center justify-center">
|
|
194
|
+
<ContextMenuPrimitive.ItemIndicator>
|
|
195
|
+
<DotFilledIcon className="size-4 fill-current" />
|
|
196
|
+
</ContextMenuPrimitive.ItemIndicator>
|
|
197
|
+
</span>
|
|
198
|
+
{children}
|
|
199
|
+
</ContextMenuPrimitive.RadioItem>
|
|
200
|
+
),
|
|
201
|
+
);
|
|
245
202
|
|
|
246
203
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
247
204
|
|
|
@@ -249,29 +206,21 @@ ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
|
249
206
|
* Component: ContextMenuLabel
|
|
250
207
|
* -------------------------------------------------------------------------- */
|
|
251
208
|
|
|
252
|
-
type ContextMenuLabelElement = React.ElementRef<
|
|
253
|
-
typeof ContextMenuPrimitive.Label
|
|
254
|
-
>;
|
|
209
|
+
type ContextMenuLabelElement = React.ElementRef<typeof ContextMenuPrimitive.Label>;
|
|
255
210
|
|
|
256
|
-
interface ContextMenuLabelProps
|
|
257
|
-
extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> {
|
|
211
|
+
interface ContextMenuLabelProps extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> {
|
|
258
212
|
inset?: boolean;
|
|
259
213
|
}
|
|
260
214
|
|
|
261
|
-
const ContextMenuLabel = React.forwardRef<
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
className,
|
|
271
|
-
)}
|
|
272
|
-
{...props}
|
|
273
|
-
/>
|
|
274
|
-
));
|
|
215
|
+
const ContextMenuLabel = React.forwardRef<ContextMenuLabelElement, ContextMenuLabelProps>(
|
|
216
|
+
({ className, inset, ...props }, ref) => (
|
|
217
|
+
<ContextMenuPrimitive.Label
|
|
218
|
+
ref={ref}
|
|
219
|
+
className={cn('text-foreground px-2 py-1.5 text-sm font-semibold', inset && 'pl-8', className)}
|
|
220
|
+
{...props}
|
|
221
|
+
/>
|
|
222
|
+
),
|
|
223
|
+
);
|
|
275
224
|
|
|
276
225
|
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
277
226
|
|
|
@@ -279,23 +228,14 @@ ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
|
279
228
|
* Component: ContextMenuSeparator
|
|
280
229
|
* -------------------------------------------------------------------------- */
|
|
281
230
|
|
|
282
|
-
type ContextMenuSeparatorElement = React.ElementRef<
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
ContextMenuSeparatorElement,
|
|
291
|
-
ContextMenuSeparatorProps
|
|
292
|
-
>(({ className, ...props }, ref) => (
|
|
293
|
-
<ContextMenuPrimitive.Separator
|
|
294
|
-
ref={ref}
|
|
295
|
-
className={cn('bg-border -mx-1 my-1 h-px', className)}
|
|
296
|
-
{...props}
|
|
297
|
-
/>
|
|
298
|
-
));
|
|
231
|
+
type ContextMenuSeparatorElement = React.ElementRef<typeof ContextMenuPrimitive.Separator>;
|
|
232
|
+
type ContextMenuSeparatorProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>;
|
|
233
|
+
|
|
234
|
+
const ContextMenuSeparator = React.forwardRef<ContextMenuSeparatorElement, ContextMenuSeparatorProps>(
|
|
235
|
+
({ className, ...props }, ref) => (
|
|
236
|
+
<ContextMenuPrimitive.Separator ref={ref} className={cn('bg-border -mx-1 my-1 h-px', className)} {...props} />
|
|
237
|
+
),
|
|
238
|
+
);
|
|
299
239
|
|
|
300
240
|
ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
301
241
|
|
|
@@ -305,40 +245,22 @@ ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
|
305
245
|
|
|
306
246
|
type ContextMenuShortcutProps = React.HTMLAttributes<HTMLSpanElement>;
|
|
307
247
|
|
|
308
|
-
function ContextMenuShortcut({
|
|
309
|
-
className,
|
|
310
|
-
...props
|
|
311
|
-
}: ContextMenuShortcutProps): React.JSX.Element {
|
|
312
|
-
return (
|
|
313
|
-
<span
|
|
314
|
-
className={cn(
|
|
315
|
-
'text-muted-foreground ml-auto text-xs tracking-widest',
|
|
316
|
-
className,
|
|
317
|
-
)}
|
|
318
|
-
{...props}
|
|
319
|
-
/>
|
|
320
|
-
);
|
|
248
|
+
function ContextMenuShortcut({ className, ...props }: ContextMenuShortcutProps): React.JSX.Element {
|
|
249
|
+
return <span className={cn('text-muted-foreground ml-auto text-xs tracking-widest', className)} {...props} />;
|
|
321
250
|
}
|
|
322
251
|
|
|
323
252
|
/* -----------------------------------------------------------------------------
|
|
324
253
|
* Component: ContextMenuArrow
|
|
325
254
|
* -------------------------------------------------------------------------- */
|
|
326
255
|
|
|
327
|
-
type ContextMenuArrowElement = React.ElementRef<
|
|
328
|
-
typeof ContextMenuPrimitive.Arrow
|
|
329
|
-
>;
|
|
256
|
+
type ContextMenuArrowElement = React.ElementRef<typeof ContextMenuPrimitive.Arrow>;
|
|
330
257
|
type ContextMenuArrowProps = ContextMenuPrimitive.ContextMenuArrowProps;
|
|
331
258
|
|
|
332
|
-
const ContextMenuArrow = React.forwardRef<
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
ref={ref}
|
|
338
|
-
className={cn('fill-popover', className)}
|
|
339
|
-
{...props}
|
|
340
|
-
/>
|
|
341
|
-
));
|
|
259
|
+
const ContextMenuArrow = React.forwardRef<ContextMenuArrowElement, ContextMenuArrowProps>(
|
|
260
|
+
({ className, ...props }, ref) => (
|
|
261
|
+
<ContextMenuPrimitive.Arrow ref={ref} className={cn('fill-popover', className)} {...props} />
|
|
262
|
+
),
|
|
263
|
+
);
|
|
342
264
|
|
|
343
265
|
ContextMenuArrow.displayName = ContextMenuPrimitive.Arrow.displayName;
|
|
344
266
|
|
package/src/react/data-table.tsx
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import type * as ReactTable from '@tanstack/react-table';
|
|
5
4
|
import {
|
|
6
5
|
ArrowDownIcon,
|
|
7
6
|
ArrowUpIcon,
|
|
@@ -24,13 +23,8 @@ import {
|
|
|
24
23
|
DropdownMenuTrigger,
|
|
25
24
|
} from './dropdown-menu';
|
|
26
25
|
import { Button } from './button';
|
|
27
|
-
import {
|
|
28
|
-
|
|
29
|
-
SelectContent,
|
|
30
|
-
SelectItem,
|
|
31
|
-
SelectTrigger,
|
|
32
|
-
SelectValue,
|
|
33
|
-
} from './select';
|
|
26
|
+
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from './select';
|
|
27
|
+
import type * as ReactTable from '@tanstack/react-table';
|
|
34
28
|
|
|
35
29
|
/* -----------------------------------------------------------------------------
|
|
36
30
|
* Component: DataTableViewOptions
|
|
@@ -40,17 +34,11 @@ interface DataTableViewOptionsProps<TData> {
|
|
|
40
34
|
table: ReactTable.Table<TData>;
|
|
41
35
|
}
|
|
42
36
|
|
|
43
|
-
function DataTableViewOptions<TData>({
|
|
44
|
-
table,
|
|
45
|
-
}: DataTableViewOptionsProps<TData>): React.JSX.Element {
|
|
37
|
+
function DataTableViewOptions<TData>({ table }: DataTableViewOptionsProps<TData>): React.JSX.Element {
|
|
46
38
|
return (
|
|
47
39
|
<DropdownMenu>
|
|
48
40
|
<DropdownMenuTrigger asChild>
|
|
49
|
-
<Button
|
|
50
|
-
variant="outline"
|
|
51
|
-
size="sm"
|
|
52
|
-
className="ml-auto hidden h-8 lg:flex"
|
|
53
|
-
>
|
|
41
|
+
<Button variant="outline" size="sm" className="ml-auto hidden h-8 lg:flex">
|
|
54
42
|
<MixerHorizontalIcon className="mr-2 size-4" />
|
|
55
43
|
View
|
|
56
44
|
</Button>
|
|
@@ -60,10 +48,7 @@ function DataTableViewOptions<TData>({
|
|
|
60
48
|
<DropdownMenuSeparator />
|
|
61
49
|
{table
|
|
62
50
|
.getAllColumns()
|
|
63
|
-
.filter(
|
|
64
|
-
(column) =>
|
|
65
|
-
typeof column.accessorFn !== 'undefined' && column.getCanHide(),
|
|
66
|
-
)
|
|
51
|
+
.filter((column) => typeof column.accessorFn !== 'undefined' && column.getCanHide())
|
|
67
52
|
.map((column) => {
|
|
68
53
|
return (
|
|
69
54
|
<DropdownMenuCheckboxItem
|
|
@@ -87,8 +72,7 @@ function DataTableViewOptions<TData>({
|
|
|
87
72
|
* Component: DataTablePagination
|
|
88
73
|
* -------------------------------------------------------------------------- */
|
|
89
74
|
|
|
90
|
-
interface DataTablePaginationProps<TData>
|
|
91
|
-
extends React.HTMLAttributes<HTMLDivElement> {
|
|
75
|
+
interface DataTablePaginationProps<TData> extends React.HTMLAttributes<HTMLDivElement> {
|
|
92
76
|
table: ReactTable.Table<TData>;
|
|
93
77
|
}
|
|
94
78
|
|
|
@@ -98,13 +82,9 @@ function DataTablePagination<TData>({
|
|
|
98
82
|
...props
|
|
99
83
|
}: DataTablePaginationProps<TData>): React.JSX.Element {
|
|
100
84
|
return (
|
|
101
|
-
<div
|
|
102
|
-
className={cn('flex items-center justify-between px-2', className)}
|
|
103
|
-
{...props}
|
|
104
|
-
>
|
|
85
|
+
<div className={cn('flex items-center justify-between px-2', className)} {...props}>
|
|
105
86
|
<div className="text-muted-foreground flex-1 text-sm">
|
|
106
|
-
{table.getFilteredSelectedRowModel().rows.length} of{
|
|
107
|
-
{table.getFilteredRowModel().rows.length} row(s) selected.
|
|
87
|
+
{table.getFilteredSelectedRowModel().rows.length} of {table.getFilteredRowModel().rows.length} row(s) selected.
|
|
108
88
|
</div>
|
|
109
89
|
<div className="flex items-center space-x-6 lg:space-x-8">
|
|
110
90
|
<div className="flex items-center space-x-2">
|
|
@@ -128,14 +108,13 @@ function DataTablePagination<TData>({
|
|
|
128
108
|
</Select>
|
|
129
109
|
</div>
|
|
130
110
|
<div className="flex w-28 items-center justify-center text-sm font-medium">
|
|
131
|
-
Page {table.getState().pagination.pageIndex + 1} of{
|
|
132
|
-
{table.getPageCount()}
|
|
111
|
+
Page {table.getState().pagination.pageIndex + 1} of {table.getPageCount()}
|
|
133
112
|
</div>
|
|
134
113
|
<div className="flex items-center space-x-2">
|
|
135
114
|
<Button
|
|
136
115
|
variant="outline"
|
|
137
116
|
size="icon-xs"
|
|
138
|
-
className="hidden
|
|
117
|
+
className="hidden lg:flex"
|
|
139
118
|
onClick={() => {
|
|
140
119
|
table.setPageIndex(0);
|
|
141
120
|
}}
|
|
@@ -169,7 +148,7 @@ function DataTablePagination<TData>({
|
|
|
169
148
|
<Button
|
|
170
149
|
variant="outline"
|
|
171
150
|
size="icon-xs"
|
|
172
|
-
className="hidden
|
|
151
|
+
className="hidden lg:flex"
|
|
173
152
|
onClick={() => {
|
|
174
153
|
table.setPageIndex(table.getPageCount() - 1);
|
|
175
154
|
}}
|
|
@@ -188,8 +167,7 @@ function DataTablePagination<TData>({
|
|
|
188
167
|
* Component: DataTableColumnHeader
|
|
189
168
|
* -------------------------------------------------------------------------- */
|
|
190
169
|
|
|
191
|
-
interface DataTableColumnHeaderProps<TData, TValue>
|
|
192
|
-
extends React.HTMLAttributes<HTMLDivElement> {
|
|
170
|
+
interface DataTableColumnHeaderProps<TData, TValue> extends React.HTMLAttributes<HTMLDivElement> {
|
|
193
171
|
column: ReactTable.Column<TData, TValue>;
|
|
194
172
|
title: string;
|
|
195
173
|
}
|
|
@@ -207,11 +185,7 @@ function DataTableColumnHeader<TData, TValue>({
|
|
|
207
185
|
<div className={cn('flex items-center space-x-2', className)}>
|
|
208
186
|
<DropdownMenu>
|
|
209
187
|
<DropdownMenuTrigger asChild>
|
|
210
|
-
<Button
|
|
211
|
-
variant="ghost"
|
|
212
|
-
size="xs"
|
|
213
|
-
className="data-[state=open]:bg-accent -ml-3"
|
|
214
|
-
>
|
|
188
|
+
<Button variant="ghost" size="xs" className="data-[state=open]:bg-accent -ml-3">
|
|
215
189
|
<span>{title}</span>
|
|
216
190
|
<SortIcon sorted={column.getIsSorted()} />
|
|
217
191
|
</Button>
|
|
@@ -248,16 +222,14 @@ function DataTableColumnHeader<TData, TValue>({
|
|
|
248
222
|
);
|
|
249
223
|
}
|
|
250
224
|
|
|
251
|
-
function SortIcon({
|
|
252
|
-
sorted,
|
|
253
|
-
}: {
|
|
254
|
-
sorted: false | ReactTable.SortDirection;
|
|
255
|
-
}): React.JSX.Element {
|
|
225
|
+
function SortIcon({ sorted }: { sorted: false | ReactTable.SortDirection }): React.JSX.Element {
|
|
256
226
|
switch (sorted) {
|
|
257
227
|
case 'desc':
|
|
258
228
|
return <ArrowDownIcon className="ml-2 size-4" />;
|
|
229
|
+
|
|
259
230
|
case 'asc':
|
|
260
231
|
return <ArrowUpIcon className="ml-2 size-4" />;
|
|
232
|
+
|
|
261
233
|
default:
|
|
262
234
|
return <CaretSortIcon className="ml-2 size-4" />;
|
|
263
235
|
}
|