@codefast/ui 0.0.9 → 0.0.11
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/accordion.d.mts +7 -7
- package/dist/accordion.d.ts +7 -7
- package/dist/accordion.js +42 -32
- package/dist/accordion.js.map +1 -1
- package/dist/accordion.mjs +42 -32
- package/dist/accordion.mjs.map +1 -1
- package/dist/alert-dialog.d.mts +12 -12
- package/dist/alert-dialog.d.ts +12 -12
- package/dist/alert-dialog.js +47 -75
- package/dist/alert-dialog.js.map +1 -1
- package/dist/alert-dialog.mjs +47 -75
- package/dist/alert-dialog.mjs.map +1 -1
- package/dist/alert.js +5 -30
- package/dist/alert.js.map +1 -1
- package/dist/alert.mjs +5 -30
- package/dist/alert.mjs.map +1 -1
- package/dist/aspect-ratio.d.mts +1 -1
- package/dist/aspect-ratio.d.ts +1 -1
- package/dist/aspect-ratio.js.map +1 -1
- package/dist/aspect-ratio.mjs.map +1 -1
- package/dist/avatar.d.mts +6 -6
- package/dist/avatar.d.ts +6 -6
- package/dist/avatar.js +3 -16
- package/dist/avatar.js.map +1 -1
- package/dist/avatar.mjs +3 -16
- package/dist/avatar.mjs.map +1 -1
- package/dist/badge.js +1 -5
- package/dist/badge.js.map +1 -1
- package/dist/badge.mjs +1 -5
- package/dist/badge.mjs.map +1 -1
- package/dist/blockquote.js +4 -6
- package/dist/blockquote.js.map +1 -1
- package/dist/blockquote.mjs +4 -6
- package/dist/blockquote.mjs.map +1 -1
- package/dist/box.js +4 -6
- package/dist/box.js.map +1 -1
- package/dist/box.mjs +4 -6
- package/dist/box.mjs.map +1 -1
- package/dist/breadcrumb.js +30 -67
- package/dist/breadcrumb.js.map +1 -1
- package/dist/breadcrumb.mjs +30 -67
- package/dist/breadcrumb.mjs.map +1 -1
- package/dist/button.d.mts +1 -0
- package/dist/button.d.ts +1 -0
- package/dist/button.js +3 -2
- package/dist/button.mjs +2 -1
- package/dist/calendar.js +7 -19
- package/dist/calendar.js.map +1 -1
- package/dist/calendar.mjs +6 -18
- package/dist/calendar.mjs.map +1 -1
- package/dist/card.js +8 -55
- package/dist/card.js.map +1 -1
- package/dist/card.mjs +8 -55
- package/dist/card.mjs.map +1 -1
- package/dist/carousel.js +58 -64
- package/dist/carousel.js.map +1 -1
- package/dist/carousel.mjs +57 -63
- package/dist/carousel.mjs.map +1 -1
- package/dist/checkbox-cards.d.mts +15 -0
- package/dist/checkbox-cards.d.ts +15 -0
- package/dist/checkbox-cards.js +56 -0
- package/dist/checkbox-cards.js.map +1 -0
- package/dist/checkbox-cards.mjs +56 -0
- package/dist/checkbox-cards.mjs.map +1 -0
- package/dist/checkbox-group.d.mts +13 -0
- package/dist/checkbox-group.d.ts +13 -0
- package/dist/checkbox-group.js +44 -0
- package/dist/checkbox-group.js.map +1 -0
- package/dist/checkbox-group.mjs +44 -0
- package/dist/checkbox-group.mjs.map +1 -0
- package/dist/checkbox-group.primitive.d.mts +38 -0
- package/dist/checkbox-group.primitive.d.ts +38 -0
- package/dist/checkbox-group.primitive.js +19 -0
- package/dist/checkbox-group.primitive.js.map +1 -0
- package/dist/checkbox-group.primitive.mjs +19 -0
- package/dist/checkbox-group.primitive.mjs.map +1 -0
- package/dist/checkbox.d.mts +2 -2
- package/dist/checkbox.d.ts +2 -2
- package/dist/checkbox.js +5 -1
- package/dist/checkbox.js.map +1 -1
- package/dist/checkbox.mjs +5 -1
- package/dist/checkbox.mjs.map +1 -1
- package/dist/chunk-3ZZ3SRTJ.js +148 -0
- package/dist/chunk-3ZZ3SRTJ.js.map +1 -0
- package/dist/{chunk-MJDKD2K4.mjs → chunk-6J6VPUBP.mjs} +9 -10
- package/dist/chunk-6J6VPUBP.mjs.map +1 -0
- package/dist/{chunk-PKB2G726.js → chunk-7S4DOWLB.js} +9 -10
- package/dist/chunk-7S4DOWLB.js.map +1 -0
- package/dist/{chunk-JOJW7BBY.js → chunk-BWCO2ZQQ.js} +29 -8
- package/dist/chunk-BWCO2ZQQ.js.map +1 -0
- package/dist/chunk-EWS3N4OZ.mjs +148 -0
- package/dist/chunk-EWS3N4OZ.mjs.map +1 -0
- package/dist/{chunk-PIU627A3.mjs → chunk-FGI3JA75.mjs} +1 -1
- package/dist/chunk-FGI3JA75.mjs.map +1 -0
- package/dist/{chunk-GRKABVK4.js → chunk-IVYGBU4G.js} +1 -1
- package/dist/chunk-IVYGBU4G.js.map +1 -0
- package/dist/chunk-IXEJO7ZP.js +86 -0
- package/dist/chunk-IXEJO7ZP.js.map +1 -0
- package/dist/chunk-JULVZPCS.mjs +120 -0
- package/dist/chunk-JULVZPCS.mjs.map +1 -0
- package/dist/chunk-LNSEYAPJ.js +121 -0
- package/dist/chunk-LNSEYAPJ.js.map +1 -0
- package/dist/chunk-MDSPK3M6.js +54 -0
- package/dist/chunk-MDSPK3M6.js.map +1 -0
- package/dist/chunk-MOJNV3XZ.js +120 -0
- package/dist/chunk-MOJNV3XZ.js.map +1 -0
- package/dist/chunk-OK63Q6EJ.mjs +121 -0
- package/dist/chunk-OK63Q6EJ.mjs.map +1 -0
- package/dist/chunk-V2254PQL.mjs +54 -0
- package/dist/chunk-V2254PQL.mjs.map +1 -0
- package/dist/chunk-WFXEFJRB.mjs +77 -0
- package/dist/chunk-WFXEFJRB.mjs.map +1 -0
- package/dist/chunk-XCKLBP2V.mjs +86 -0
- package/dist/chunk-XCKLBP2V.mjs.map +1 -0
- package/dist/code.js +4 -6
- package/dist/code.js.map +1 -1
- package/dist/code.mjs +4 -6
- package/dist/code.mjs.map +1 -1
- package/dist/collapsible.d.mts +3 -3
- package/dist/collapsible.d.ts +3 -3
- package/dist/collapsible.js.map +1 -1
- package/dist/collapsible.mjs.map +1 -1
- package/dist/command.d.mts +11 -10
- package/dist/command.d.ts +11 -10
- package/dist/command.js +10 -44
- package/dist/command.js.map +1 -1
- package/dist/command.mjs +10 -44
- package/dist/command.mjs.map +1 -1
- package/dist/container.js +4 -6
- package/dist/container.js.map +1 -1
- package/dist/container.mjs +4 -6
- package/dist/container.mjs.map +1 -1
- package/dist/context-menu.d.mts +18 -18
- package/dist/context-menu.d.ts +18 -18
- package/dist/context-menu.js +108 -124
- package/dist/context-menu.js.map +1 -1
- package/dist/context-menu.mjs +109 -125
- package/dist/context-menu.mjs.map +1 -1
- package/dist/data-table.d.mts +1 -1
- package/dist/data-table.d.ts +1 -1
- package/dist/data-table.js +131 -149
- package/dist/data-table.js.map +1 -1
- package/dist/data-table.mjs +120 -138
- package/dist/data-table.mjs.map +1 -1
- package/dist/dialog.d.mts +9 -9
- package/dist/dialog.d.ts +9 -9
- package/dist/dialog.js +2 -2
- package/dist/dialog.mjs +1 -1
- package/dist/drawer.d.mts +2 -2
- package/dist/drawer.d.ts +2 -2
- package/dist/drawer.js +30 -63
- package/dist/drawer.js.map +1 -1
- package/dist/drawer.mjs +30 -63
- package/dist/drawer.mjs.map +1 -1
- package/dist/dropdown-menu.d.mts +16 -16
- package/dist/dropdown-menu.d.ts +16 -16
- package/dist/dropdown-menu.js +2 -2
- package/dist/dropdown-menu.mjs +1 -1
- package/dist/em.js +4 -6
- package/dist/em.js.map +1 -1
- package/dist/em.mjs +4 -6
- package/dist/em.mjs.map +1 -1
- package/dist/form.js +23 -54
- package/dist/form.js.map +1 -1
- package/dist/form.mjs +23 -54
- package/dist/form.mjs.map +1 -1
- package/dist/heading.js +4 -6
- package/dist/heading.js.map +1 -1
- package/dist/heading.mjs +4 -6
- package/dist/heading.mjs.map +1 -1
- package/dist/hover-card.d.mts +4 -4
- package/dist/hover-card.d.ts +4 -4
- package/dist/hover-card.js +15 -13
- package/dist/hover-card.js.map +1 -1
- package/dist/hover-card.mjs +15 -13
- package/dist/hover-card.mjs.map +1 -1
- package/dist/input-otp.js +32 -37
- package/dist/input-otp.js.map +1 -1
- package/dist/input-otp.mjs +32 -37
- package/dist/input-otp.mjs.map +1 -1
- package/dist/input.js +10 -14
- package/dist/input.js.map +1 -1
- package/dist/input.mjs +10 -14
- package/dist/input.mjs.map +1 -1
- package/dist/kbd.js +14 -16
- package/dist/kbd.js.map +1 -1
- package/dist/kbd.mjs +14 -16
- package/dist/kbd.mjs.map +1 -1
- package/dist/label.d.mts +2 -2
- package/dist/label.d.ts +2 -2
- package/dist/label.js +2 -2
- package/dist/label.mjs +1 -1
- package/dist/menubar.d.mts +21 -21
- package/dist/menubar.d.ts +21 -21
- package/dist/menubar.js +73 -93
- package/dist/menubar.js.map +1 -1
- package/dist/menubar.mjs +74 -94
- package/dist/menubar.mjs.map +1 -1
- package/dist/navigation-menu.d.mts +16 -16
- package/dist/navigation-menu.d.ts +16 -16
- package/dist/navigation-menu.js +89 -93
- package/dist/navigation-menu.js.map +1 -1
- package/dist/navigation-menu.mjs +89 -93
- package/dist/navigation-menu.mjs.map +1 -1
- package/dist/pagination.js +19 -58
- package/dist/pagination.js.map +1 -1
- package/dist/pagination.mjs +19 -58
- package/dist/pagination.mjs.map +1 -1
- package/dist/popover.d.mts +7 -7
- package/dist/popover.d.ts +7 -7
- package/dist/popover.js +16 -21
- package/dist/popover.js.map +1 -1
- package/dist/popover.mjs +16 -21
- package/dist/popover.mjs.map +1 -1
- package/dist/pre.js +4 -6
- package/dist/pre.js.map +1 -1
- package/dist/pre.mjs +4 -6
- package/dist/pre.mjs.map +1 -1
- package/dist/progress.d.mts +2 -2
- package/dist/progress.d.ts +2 -2
- package/dist/progress.js +1 -4
- package/dist/progress.js.map +1 -1
- package/dist/progress.mjs +1 -4
- package/dist/progress.mjs.map +1 -1
- package/dist/quote.js +4 -6
- package/dist/quote.js.map +1 -1
- package/dist/quote.mjs +4 -6
- package/dist/quote.mjs.map +1 -1
- package/dist/radio-cards.d.mts +9 -0
- package/dist/radio-cards.d.ts +9 -0
- package/dist/radio-cards.js +36 -0
- package/dist/radio-cards.js.map +1 -0
- package/dist/radio-cards.mjs +36 -0
- package/dist/radio-cards.mjs.map +1 -0
- package/dist/radio-group.d.mts +4 -4
- package/dist/radio-group.d.ts +4 -4
- package/dist/radio-group.js +3 -9
- package/dist/radio-group.js.map +1 -1
- package/dist/radio-group.mjs +3 -9
- package/dist/radio-group.mjs.map +1 -1
- package/dist/radio.d.mts +8 -0
- package/dist/radio.d.ts +8 -0
- package/dist/radio.js +35 -0
- package/dist/radio.js.map +1 -0
- package/dist/radio.mjs +35 -0
- package/dist/radio.mjs.map +1 -0
- package/dist/resizable.d.mts +2 -2
- package/dist/resizable.d.ts +2 -2
- package/dist/resizable.js +3 -5
- package/dist/resizable.js.map +1 -1
- package/dist/resizable.mjs +3 -5
- package/dist/resizable.mjs.map +1 -1
- package/dist/scroll-area.d.mts +4 -4
- package/dist/scroll-area.d.ts +4 -4
- package/dist/scroll-area.js +23 -29
- package/dist/scroll-area.js.map +1 -1
- package/dist/scroll-area.mjs +23 -29
- package/dist/scroll-area.mjs.map +1 -1
- package/dist/section.js +4 -6
- package/dist/section.js.map +1 -1
- package/dist/section.mjs +4 -6
- package/dist/section.mjs.map +1 -1
- package/dist/segmented.d.mts +22 -0
- package/dist/segmented.d.ts +22 -0
- package/dist/segmented.js +126 -0
- package/dist/segmented.js.map +1 -0
- package/dist/segmented.mjs +126 -0
- package/dist/segmented.mjs.map +1 -0
- package/dist/select.d.mts +17 -17
- package/dist/select.d.ts +17 -17
- package/dist/select.js +2 -2
- package/dist/select.mjs +1 -1
- package/dist/separator.d.mts +2 -2
- package/dist/separator.d.ts +2 -2
- package/dist/separator.js +1 -5
- package/dist/separator.js.map +1 -1
- package/dist/separator.mjs +1 -5
- package/dist/separator.mjs.map +1 -1
- package/dist/sheet.d.mts +9 -9
- package/dist/sheet.d.ts +9 -9
- package/dist/sheet.js +35 -76
- package/dist/sheet.js.map +1 -1
- package/dist/sheet.mjs +35 -76
- package/dist/sheet.mjs.map +1 -1
- package/dist/skeleton.js +1 -7
- package/dist/skeleton.js.map +1 -1
- package/dist/skeleton.mjs +1 -7
- package/dist/skeleton.mjs.map +1 -1
- package/dist/slider.d.mts +2 -2
- package/dist/slider.d.ts +2 -2
- package/dist/slider.js +10 -5
- package/dist/slider.js.map +1 -1
- package/dist/slider.mjs +10 -5
- package/dist/slider.mjs.map +1 -1
- package/dist/sonner.js +1 -6
- package/dist/sonner.js.map +1 -1
- package/dist/sonner.mjs +1 -6
- package/dist/sonner.mjs.map +1 -1
- package/dist/spinner.d.mts +8 -0
- package/dist/spinner.d.ts +8 -0
- package/dist/spinner.js +8 -0
- package/dist/spinner.js.map +1 -0
- package/dist/spinner.mjs +8 -0
- package/dist/spinner.mjs.map +1 -0
- package/dist/strong.js +4 -6
- package/dist/strong.js.map +1 -1
- package/dist/strong.mjs +4 -6
- package/dist/strong.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/dist/switch.d.mts +2 -2
- package/dist/switch.d.ts +2 -2
- package/dist/switch.js +2 -1
- package/dist/switch.js.map +1 -1
- package/dist/switch.mjs +2 -1
- package/dist/switch.mjs.map +1 -1
- package/dist/table.js +22 -80
- package/dist/table.js.map +1 -1
- package/dist/table.mjs +22 -80
- package/dist/table.mjs.map +1 -1
- package/dist/tabs.d.mts +7 -7
- package/dist/tabs.d.ts +7 -7
- package/dist/tabs.js +4 -2
- package/dist/tabs.js.map +1 -1
- package/dist/tabs.mjs +4 -2
- package/dist/tabs.mjs.map +1 -1
- package/dist/text.js +4 -6
- package/dist/text.js.map +1 -1
- package/dist/text.mjs +4 -6
- package/dist/text.mjs.map +1 -1
- package/dist/textarea.js +14 -15
- package/dist/textarea.js.map +1 -1
- package/dist/textarea.mjs +14 -15
- package/dist/textarea.mjs.map +1 -1
- package/dist/toggle-group.d.mts +2 -2
- package/dist/toggle-group.d.ts +2 -2
- package/dist/toggle-group.js +41 -34
- package/dist/toggle-group.js.map +1 -1
- package/dist/toggle-group.mjs +40 -33
- package/dist/toggle-group.mjs.map +1 -1
- package/dist/toggle.d.mts +2 -2
- package/dist/toggle.d.ts +2 -2
- package/dist/toggle.js +2 -2
- package/dist/toggle.mjs +1 -1
- package/dist/tooltip.d.mts +7 -7
- package/dist/tooltip.d.ts +7 -7
- package/dist/tooltip.js +15 -20
- package/dist/tooltip.js.map +1 -1
- package/dist/tooltip.mjs +15 -20
- package/dist/tooltip.mjs.map +1 -1
- package/package.json +43 -6
- package/src/accordion.tsx +53 -43
- package/src/alert-dialog.tsx +73 -92
- package/src/alert.tsx +24 -41
- package/src/aspect-ratio.tsx +2 -1
- package/src/avatar.tsx +19 -36
- package/src/badge.tsx +3 -7
- package/src/blockquote.tsx +9 -8
- package/src/box.tsx +7 -6
- package/src/breadcrumb.tsx +54 -63
- package/src/button.tsx +42 -16
- package/src/calendar.tsx +6 -22
- package/src/card.tsx +40 -56
- package/src/carousel.tsx +95 -81
- package/src/checkbox-cards.tsx +68 -0
- package/src/checkbox-group.primitive.tsx +199 -0
- package/src/checkbox-group.tsx +57 -0
- package/src/checkbox.tsx +10 -6
- package/src/code.tsx +8 -6
- package/src/collapsible.tsx +4 -3
- package/src/command.tsx +53 -90
- package/src/container.tsx +8 -6
- package/src/context-menu.tsx +163 -175
- package/src/data-table.tsx +26 -43
- package/src/dialog.tsx +58 -77
- package/src/drawer.tsx +48 -78
- package/src/dropdown-menu.tsx +143 -154
- package/src/em.tsx +8 -6
- package/src/form.tsx +61 -86
- package/src/heading.tsx +8 -6
- package/src/hover-card.tsx +22 -20
- package/src/input-otp.tsx +50 -48
- package/src/input.tsx +14 -15
- package/src/kbd.tsx +18 -16
- package/src/label.tsx +5 -5
- package/src/menubar.tsx +133 -149
- package/src/navigation-menu.tsx +110 -114
- package/src/pagination.tsx +26 -48
- package/src/popover.tsx +29 -31
- package/src/pre.tsx +8 -6
- package/src/progress.tsx +6 -9
- package/src/quote.tsx +8 -6
- package/src/radio-cards.tsx +50 -0
- package/src/radio-group.tsx +14 -24
- package/src/radio.tsx +44 -0
- package/src/resizable.tsx +5 -7
- package/src/scroll-area.tsx +29 -40
- package/src/section.tsx +8 -6
- package/src/segmented.tsx +176 -0
- package/src/select.tsx +106 -115
- package/src/separator.tsx +7 -14
- package/src/sheet.tsx +50 -76
- package/src/skeleton.tsx +2 -6
- package/src/slider.tsx +12 -10
- package/src/sonner.tsx +3 -7
- package/src/spinner.tsx +71 -0
- package/src/strong.tsx +8 -6
- package/src/switch.tsx +7 -6
- package/src/table.tsx +60 -82
- package/src/tabs.tsx +20 -18
- package/src/text.tsx +8 -8
- package/src/textarea.tsx +16 -14
- package/src/toggle-group.tsx +59 -58
- package/src/toggle.tsx +14 -13
- package/src/tooltip.tsx +28 -30
- package/dist/chunk-3BDLWZ3W.js +0 -158
- package/dist/chunk-3BDLWZ3W.js.map +0 -1
- package/dist/chunk-43YGVOCO.js +0 -135
- package/dist/chunk-43YGVOCO.js.map +0 -1
- package/dist/chunk-AJLEALVP.mjs +0 -112
- package/dist/chunk-AJLEALVP.mjs.map +0 -1
- package/dist/chunk-D6NQEMTJ.js +0 -112
- package/dist/chunk-D6NQEMTJ.js.map +0 -1
- package/dist/chunk-FATZHRHR.mjs +0 -56
- package/dist/chunk-FATZHRHR.mjs.map +0 -1
- package/dist/chunk-GRKABVK4.js.map +0 -1
- package/dist/chunk-JOJW7BBY.js.map +0 -1
- package/dist/chunk-KV4VL2ZF.mjs +0 -135
- package/dist/chunk-KV4VL2ZF.mjs.map +0 -1
- package/dist/chunk-MJDKD2K4.mjs.map +0 -1
- package/dist/chunk-NCEN3XBK.mjs +0 -158
- package/dist/chunk-NCEN3XBK.mjs.map +0 -1
- package/dist/chunk-PIU627A3.mjs.map +0 -1
- package/dist/chunk-PKB2G726.js.map +0 -1
package/src/context-menu.tsx
CHANGED
|
@@ -2,241 +2,241 @@
|
|
|
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 "./utils";
|
|
11
7
|
|
|
12
8
|
/* -----------------------------------------------------------------------------
|
|
13
9
|
* Component: ContextMenu
|
|
14
10
|
* -------------------------------------------------------------------------- */
|
|
15
11
|
|
|
16
|
-
type ContextMenuProps = ContextMenuPrimitive.
|
|
12
|
+
type ContextMenuProps = React.ComponentProps<typeof ContextMenuPrimitive.Root>;
|
|
17
13
|
const ContextMenu = ContextMenuPrimitive.Root;
|
|
18
14
|
|
|
19
15
|
/* -----------------------------------------------------------------------------
|
|
20
16
|
* Component: ContextMenuTrigger
|
|
21
17
|
* -------------------------------------------------------------------------- */
|
|
22
18
|
|
|
23
|
-
type ContextMenuTriggerProps = ContextMenuPrimitive.
|
|
19
|
+
type ContextMenuTriggerProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Trigger>;
|
|
24
20
|
const ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
25
21
|
|
|
26
22
|
/* -----------------------------------------------------------------------------
|
|
27
23
|
* Component: ContextMenuGroup
|
|
28
24
|
* -------------------------------------------------------------------------- */
|
|
29
25
|
|
|
30
|
-
type ContextMenuGroupProps = ContextMenuPrimitive.
|
|
26
|
+
type ContextMenuGroupProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Group>;
|
|
31
27
|
const ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
32
28
|
|
|
33
29
|
/* -----------------------------------------------------------------------------
|
|
34
30
|
* Component: ContextMenuSub
|
|
35
31
|
* -------------------------------------------------------------------------- */
|
|
36
32
|
|
|
37
|
-
type ContextMenuSubProps = ContextMenuPrimitive.
|
|
33
|
+
type ContextMenuSubProps = React.ComponentProps<typeof ContextMenuPrimitive.Sub>;
|
|
38
34
|
const ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
39
35
|
|
|
40
36
|
/* -----------------------------------------------------------------------------
|
|
41
37
|
* Component: ContextMenuRadioGroup
|
|
42
38
|
* -------------------------------------------------------------------------- */
|
|
43
39
|
|
|
44
|
-
type ContextMenuRadioGroupProps =
|
|
45
|
-
ContextMenuPrimitive.ContextMenuRadioGroupProps;
|
|
40
|
+
type ContextMenuRadioGroupProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioGroup>;
|
|
46
41
|
const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
47
42
|
|
|
48
43
|
/* -----------------------------------------------------------------------------
|
|
49
44
|
* Component: ContextMenuSubTrigger
|
|
50
45
|
* -------------------------------------------------------------------------- */
|
|
51
46
|
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
type ContextMenuSubTriggerElement = React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>;
|
|
48
|
+
|
|
49
|
+
interface ContextMenuSubTriggerProps extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> {
|
|
54
50
|
inset?: boolean;
|
|
55
51
|
}
|
|
56
|
-
const ContextMenuSubTrigger = React.forwardRef<
|
|
57
|
-
React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,
|
|
58
|
-
ContextMenuSubTriggerProps
|
|
59
|
-
>(({ className, inset, children, ...props }, ref) => (
|
|
60
|
-
<ContextMenuPrimitive.SubTrigger
|
|
61
|
-
ref={ref}
|
|
62
|
-
className={cn(
|
|
63
|
-
"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm focus:outline-none",
|
|
64
|
-
inset && "pl-8",
|
|
65
|
-
className,
|
|
66
|
-
)}
|
|
67
|
-
{...props}
|
|
68
|
-
>
|
|
69
|
-
{children}
|
|
70
|
-
<ChevronRightIcon className="ml-auto size-4" />
|
|
71
|
-
</ContextMenuPrimitive.SubTrigger>
|
|
72
|
-
));
|
|
73
|
-
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
74
|
-
|
|
75
|
-
/* -----------------------------------------------------------------------------
|
|
76
|
-
* Component: ContextMenuSubContent
|
|
77
|
-
* -------------------------------------------------------------------------- */
|
|
78
52
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
React.ElementRef<typeof ContextMenuPrimitive.SubContent>,
|
|
83
|
-
ContextMenuSubContentProps
|
|
84
|
-
>(({ className, ...props }, ref) => (
|
|
85
|
-
<ContextMenuPrimitive.Portal>
|
|
86
|
-
<ContextMenuPrimitive.SubContent
|
|
53
|
+
const ContextMenuSubTrigger = React.forwardRef<ContextMenuSubTriggerElement, ContextMenuSubTriggerProps>(
|
|
54
|
+
({ className, inset, children, ...props }, ref) => (
|
|
55
|
+
<ContextMenuPrimitive.SubTrigger
|
|
87
56
|
ref={ref}
|
|
88
57
|
className={cn(
|
|
89
|
-
"bg-
|
|
58
|
+
"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm focus:outline-none",
|
|
59
|
+
inset && "pl-8",
|
|
90
60
|
className,
|
|
91
61
|
)}
|
|
92
62
|
{...props}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
63
|
+
>
|
|
64
|
+
{children}
|
|
65
|
+
<ChevronRightIcon className="ml-auto size-4" />
|
|
66
|
+
</ContextMenuPrimitive.SubTrigger>
|
|
67
|
+
),
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
71
|
+
|
|
72
|
+
/* -----------------------------------------------------------------------------
|
|
73
|
+
* Component: ContextMenuSubContent
|
|
74
|
+
* -------------------------------------------------------------------------- */
|
|
75
|
+
|
|
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-0 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-0 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-[8rem] rounded-md border p-1 shadow-md focus:outline-none",
|
|
86
|
+
className,
|
|
87
|
+
)}
|
|
88
|
+
{...props}
|
|
89
|
+
/>
|
|
90
|
+
</ContextMenuPrimitive.Portal>
|
|
91
|
+
),
|
|
92
|
+
);
|
|
93
|
+
|
|
96
94
|
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
97
95
|
|
|
98
96
|
/* -----------------------------------------------------------------------------
|
|
99
97
|
* Component: ContextMenuContent
|
|
100
98
|
* -------------------------------------------------------------------------- */
|
|
101
99
|
|
|
102
|
-
type
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
)
|
|
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-0 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-[8rem] rounded-md border p-1 shadow-md focus:outline-none",
|
|
110
|
+
className,
|
|
111
|
+
)}
|
|
112
|
+
{...props}
|
|
113
|
+
/>
|
|
114
|
+
</ContextMenuPrimitive.Portal>
|
|
115
|
+
),
|
|
116
|
+
);
|
|
117
|
+
|
|
118
118
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
119
119
|
|
|
120
120
|
/* -----------------------------------------------------------------------------
|
|
121
121
|
* Component: ContextMenuItem
|
|
122
122
|
* -------------------------------------------------------------------------- */
|
|
123
123
|
|
|
124
|
-
|
|
125
|
-
|
|
124
|
+
type ContextMenuItemElement = React.ElementRef<typeof ContextMenuPrimitive.Item>;
|
|
125
|
+
|
|
126
|
+
interface ContextMenuItemProps extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> {
|
|
126
127
|
inset?: boolean;
|
|
127
128
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
)
|
|
129
|
+
|
|
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-default 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
|
+
);
|
|
143
|
+
|
|
142
144
|
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
143
145
|
|
|
144
146
|
/* -----------------------------------------------------------------------------
|
|
145
147
|
* Component: ContextMenuCheckboxItem
|
|
146
148
|
* -------------------------------------------------------------------------- */
|
|
147
149
|
|
|
148
|
-
type
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
</
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
)
|
|
171
|
-
|
|
172
|
-
|
|
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
|
+
({ className, children, checked, ...props }, ref) => (
|
|
155
|
+
<ContextMenuPrimitive.CheckboxItem
|
|
156
|
+
ref={ref}
|
|
157
|
+
className={cn(
|
|
158
|
+
"focus:bg-accent focus:text-accent-foreground relative flex cursor-default 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;
|
|
173
175
|
|
|
174
176
|
/* -----------------------------------------------------------------------------
|
|
175
177
|
* Component: ContextMenuRadioItem
|
|
176
178
|
* -------------------------------------------------------------------------- */
|
|
177
179
|
|
|
178
|
-
type
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
)
|
|
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
|
+
({ className, children, ...props }, ref) => (
|
|
185
|
+
<ContextMenuPrimitive.RadioItem
|
|
186
|
+
ref={ref}
|
|
187
|
+
className={cn(
|
|
188
|
+
"focus:bg-accent focus:text-accent-foreground relative flex cursor-default 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
|
+
);
|
|
202
|
+
|
|
199
203
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
200
204
|
|
|
201
205
|
/* -----------------------------------------------------------------------------
|
|
202
206
|
* Component: ContextMenuLabel
|
|
203
207
|
* -------------------------------------------------------------------------- */
|
|
204
208
|
|
|
205
|
-
|
|
206
|
-
|
|
209
|
+
type ContextMenuLabelElement = React.ElementRef<typeof ContextMenuPrimitive.Label>;
|
|
210
|
+
|
|
211
|
+
interface ContextMenuLabelProps extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> {
|
|
207
212
|
inset?: boolean;
|
|
208
213
|
}
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
{...props}
|
|
221
|
-
/>
|
|
222
|
-
));
|
|
214
|
+
|
|
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
|
+
);
|
|
224
|
+
|
|
223
225
|
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
224
226
|
|
|
225
227
|
/* -----------------------------------------------------------------------------
|
|
226
228
|
* Component: ContextMenuSeparator
|
|
227
229
|
* -------------------------------------------------------------------------- */
|
|
228
230
|
|
|
229
|
-
type
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
/>
|
|
239
|
-
));
|
|
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
|
+
);
|
|
239
|
+
|
|
240
240
|
ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
241
241
|
|
|
242
242
|
/* -----------------------------------------------------------------------------
|
|
@@ -244,36 +244,24 @@ ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
|
244
244
|
* -------------------------------------------------------------------------- */
|
|
245
245
|
|
|
246
246
|
type ContextMenuShortcutProps = React.HTMLAttributes<HTMLSpanElement>;
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
...props
|
|
250
|
-
}: ContextMenuShortcutProps): React.JSX.Element {
|
|
251
|
-
return (
|
|
252
|
-
<span
|
|
253
|
-
className={cn(
|
|
254
|
-
"text-muted-foreground ml-auto text-xs tracking-widest",
|
|
255
|
-
className,
|
|
256
|
-
)}
|
|
257
|
-
{...props}
|
|
258
|
-
/>
|
|
259
|
-
);
|
|
247
|
+
|
|
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} />;
|
|
260
250
|
}
|
|
261
251
|
|
|
262
252
|
/* -----------------------------------------------------------------------------
|
|
263
253
|
* Component: ContextMenuArrow
|
|
264
254
|
* -------------------------------------------------------------------------- */
|
|
265
255
|
|
|
256
|
+
type ContextMenuArrowElement = React.ElementRef<typeof ContextMenuPrimitive.Arrow>;
|
|
266
257
|
type ContextMenuArrowProps = ContextMenuPrimitive.ContextMenuArrowProps;
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
{...props}
|
|
275
|
-
/>
|
|
276
|
-
));
|
|
258
|
+
|
|
259
|
+
const ContextMenuArrow = React.forwardRef<ContextMenuArrowElement, ContextMenuArrowProps>(
|
|
260
|
+
({ className, ...props }, ref) => (
|
|
261
|
+
<ContextMenuPrimitive.Arrow ref={ref} className={cn("fill-popover", className)} {...props} />
|
|
262
|
+
),
|
|
263
|
+
);
|
|
264
|
+
|
|
277
265
|
ContextMenuArrow.displayName = ContextMenuPrimitive.Arrow.displayName;
|
|
278
266
|
|
|
279
267
|
/* -----------------------------------------------------------------------------
|
package/src/data-table.tsx
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import type * as ReactTable from "@tanstack/react-table";
|
|
5
|
+
import { type SortDirection } from "@tanstack/react-table";
|
|
5
6
|
import {
|
|
6
7
|
ArrowDownIcon,
|
|
7
8
|
ArrowUpIcon,
|
|
@@ -23,13 +24,7 @@ import {
|
|
|
23
24
|
DropdownMenuTrigger,
|
|
24
25
|
} from "./dropdown-menu";
|
|
25
26
|
import { Button } from "./button";
|
|
26
|
-
import {
|
|
27
|
-
Select,
|
|
28
|
-
SelectContent,
|
|
29
|
-
SelectItem,
|
|
30
|
-
SelectTrigger,
|
|
31
|
-
SelectValue,
|
|
32
|
-
} from "./select";
|
|
27
|
+
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "./select";
|
|
33
28
|
import { cn } from "./utils";
|
|
34
29
|
|
|
35
30
|
/* -----------------------------------------------------------------------------
|
|
@@ -39,17 +34,12 @@ import { cn } from "./utils";
|
|
|
39
34
|
interface DataTableViewOptionsProps<TData> {
|
|
40
35
|
table: ReactTable.Table<TData>;
|
|
41
36
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}: DataTableViewOptionsProps<TData>): React.JSX.Element {
|
|
37
|
+
|
|
38
|
+
function DataTableViewOptions<TData>({ table }: DataTableViewOptionsProps<TData>): React.JSX.Element {
|
|
45
39
|
return (
|
|
46
40
|
<DropdownMenu>
|
|
47
41
|
<DropdownMenuTrigger asChild>
|
|
48
|
-
<Button
|
|
49
|
-
variant="outline"
|
|
50
|
-
size="sm"
|
|
51
|
-
className="ml-auto hidden h-8 lg:flex"
|
|
52
|
-
>
|
|
42
|
+
<Button variant="outline" size="sm" className="ml-auto hidden h-8 lg:flex">
|
|
53
43
|
<MixerHorizontalIcon className="mr-2 size-4" />
|
|
54
44
|
View
|
|
55
45
|
</Button>
|
|
@@ -59,10 +49,7 @@ function DataTableViewOptions<TData>({
|
|
|
59
49
|
<DropdownMenuSeparator />
|
|
60
50
|
{table
|
|
61
51
|
.getAllColumns()
|
|
62
|
-
.filter(
|
|
63
|
-
(column) =>
|
|
64
|
-
typeof column.accessorFn !== "undefined" && column.getCanHide(),
|
|
65
|
-
)
|
|
52
|
+
.filter((column) => typeof column.accessorFn !== "undefined" && column.getCanHide())
|
|
66
53
|
.map((column) => {
|
|
67
54
|
return (
|
|
68
55
|
<DropdownMenuCheckboxItem
|
|
@@ -86,23 +73,19 @@ function DataTableViewOptions<TData>({
|
|
|
86
73
|
* Component: DataTablePagination
|
|
87
74
|
* -------------------------------------------------------------------------- */
|
|
88
75
|
|
|
89
|
-
interface DataTablePaginationProps<TData>
|
|
90
|
-
extends React.HTMLAttributes<HTMLDivElement> {
|
|
76
|
+
interface DataTablePaginationProps<TData> extends React.HTMLAttributes<HTMLDivElement> {
|
|
91
77
|
table: ReactTable.Table<TData>;
|
|
92
78
|
}
|
|
79
|
+
|
|
93
80
|
function DataTablePagination<TData>({
|
|
94
81
|
table,
|
|
95
82
|
className,
|
|
96
83
|
...props
|
|
97
84
|
}: DataTablePaginationProps<TData>): React.JSX.Element {
|
|
98
85
|
return (
|
|
99
|
-
<div
|
|
100
|
-
className={cn("flex items-center justify-between px-2", className)}
|
|
101
|
-
{...props}
|
|
102
|
-
>
|
|
86
|
+
<div className={cn("flex items-center justify-between px-2", className)} {...props}>
|
|
103
87
|
<div className="text-muted-foreground flex-1 text-sm">
|
|
104
|
-
{table.getFilteredSelectedRowModel().rows.length} of{
|
|
105
|
-
{table.getFilteredRowModel().rows.length} row(s) selected.
|
|
88
|
+
{table.getFilteredSelectedRowModel().rows.length} of {table.getFilteredRowModel().rows.length} row(s) selected.
|
|
106
89
|
</div>
|
|
107
90
|
<div className="flex items-center space-x-6 lg:space-x-8">
|
|
108
91
|
<div className="flex items-center space-x-2">
|
|
@@ -126,8 +109,7 @@ function DataTablePagination<TData>({
|
|
|
126
109
|
</Select>
|
|
127
110
|
</div>
|
|
128
111
|
<div className="flex w-[100px] items-center justify-center text-sm font-medium">
|
|
129
|
-
Page {table.getState().pagination.pageIndex + 1} of{
|
|
130
|
-
{table.getPageCount()}
|
|
112
|
+
Page {table.getState().pagination.pageIndex + 1} of {table.getPageCount()}
|
|
131
113
|
</div>
|
|
132
114
|
<div className="flex items-center space-x-2">
|
|
133
115
|
<Button
|
|
@@ -186,11 +168,11 @@ function DataTablePagination<TData>({
|
|
|
186
168
|
* Component: DataTableColumnHeader
|
|
187
169
|
* -------------------------------------------------------------------------- */
|
|
188
170
|
|
|
189
|
-
interface DataTableColumnHeaderProps<TData, TValue>
|
|
190
|
-
extends React.HTMLAttributes<HTMLDivElement> {
|
|
171
|
+
interface DataTableColumnHeaderProps<TData, TValue> extends React.HTMLAttributes<HTMLDivElement> {
|
|
191
172
|
column: ReactTable.Column<TData, TValue>;
|
|
192
173
|
title: string;
|
|
193
174
|
}
|
|
175
|
+
|
|
194
176
|
function DataTableColumnHeader<TData, TValue>({
|
|
195
177
|
column,
|
|
196
178
|
title,
|
|
@@ -204,19 +186,9 @@ function DataTableColumnHeader<TData, TValue>({
|
|
|
204
186
|
<div className={cn("flex items-center space-x-2", className)}>
|
|
205
187
|
<DropdownMenu>
|
|
206
188
|
<DropdownMenuTrigger asChild>
|
|
207
|
-
<Button
|
|
208
|
-
variant="ghost"
|
|
209
|
-
size="xs"
|
|
210
|
-
className="data-[state=open]:bg-accent -ml-3"
|
|
211
|
-
>
|
|
189
|
+
<Button variant="ghost" size="xs" className="data-[state=open]:bg-accent -ml-3">
|
|
212
190
|
<span>{title}</span>
|
|
213
|
-
{column.getIsSorted()
|
|
214
|
-
<ArrowDownIcon className="ml-2 size-4" />
|
|
215
|
-
) : column.getIsSorted() === "asc" ? (
|
|
216
|
-
<ArrowUpIcon className="ml-2 size-4" />
|
|
217
|
-
) : (
|
|
218
|
-
<CaretSortIcon className="ml-2 size-4" />
|
|
219
|
-
)}
|
|
191
|
+
<SortIcon sorted={column.getIsSorted()} />
|
|
220
192
|
</Button>
|
|
221
193
|
</DropdownMenuTrigger>
|
|
222
194
|
<DropdownMenuContent align="start">
|
|
@@ -251,6 +223,17 @@ function DataTableColumnHeader<TData, TValue>({
|
|
|
251
223
|
);
|
|
252
224
|
}
|
|
253
225
|
|
|
226
|
+
function SortIcon({ sorted }: { sorted: false | SortDirection }): React.JSX.Element {
|
|
227
|
+
switch (sorted) {
|
|
228
|
+
case "desc":
|
|
229
|
+
return <ArrowDownIcon className="ml-2 size-4" />;
|
|
230
|
+
case "asc":
|
|
231
|
+
return <ArrowUpIcon className="ml-2 size-4" />;
|
|
232
|
+
default:
|
|
233
|
+
return <CaretSortIcon className="ml-2 size-4" />;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
254
237
|
/* -----------------------------------------------------------------------------
|
|
255
238
|
* Exports
|
|
256
239
|
* -------------------------------------------------------------------------- */
|