@docyrus/shadcn 1.2.0 → 1.3.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.
Files changed (52) hide show
  1. package/dist/data-table-DWI8FPWh.d.ts +209 -0
  2. package/dist/hooks/index.d.ts +5 -0
  3. package/dist/hooks/index.js +300 -16
  4. package/dist/hooks/index.js.map +1 -1
  5. package/dist/hooks/use-data-table.d.ts +29 -0
  6. package/dist/hooks/use-data-table.js +322 -0
  7. package/dist/hooks/use-data-table.js.map +1 -0
  8. package/dist/index.d.ts +87 -25
  9. package/dist/index.js +2504 -1151
  10. package/dist/index.js.map +1 -1
  11. package/dist/lib/data-table.d.ts +4 -0
  12. package/dist/lib/data-table.js +100 -0
  13. package/dist/lib/data-table.js.map +1 -0
  14. package/dist/lib/index.d.ts +4 -0
  15. package/dist/lib/index.js +155 -1
  16. package/dist/lib/index.js.map +1 -1
  17. package/dist/lib/parsers.d.ts +4 -0
  18. package/dist/lib/parsers.js +94 -0
  19. package/dist/lib/parsers.js.map +1 -0
  20. package/dist/radix-vega/data-table-column-header.d.ts +13 -0
  21. package/dist/radix-vega/data-table-column-header.js +178 -0
  22. package/dist/radix-vega/data-table-column-header.js.map +1 -0
  23. package/dist/radix-vega/data-table-date-filter.d.ts +11 -0
  24. package/dist/radix-vega/data-table-date-filter.js +470 -0
  25. package/dist/radix-vega/data-table-date-filter.js.map +1 -0
  26. package/dist/radix-vega/data-table-faceted-filter.d.ts +166 -0
  27. package/dist/radix-vega/data-table-faceted-filter.js +468 -0
  28. package/dist/radix-vega/data-table-faceted-filter.js.map +1 -0
  29. package/dist/radix-vega/data-table-pagination.d.ts +10 -0
  30. package/dist/radix-vega/data-table-pagination.js +286 -0
  31. package/dist/radix-vega/data-table-pagination.js.map +1 -0
  32. package/dist/radix-vega/data-table-skeleton.d.ts +14 -0
  33. package/dist/radix-vega/data-table-skeleton.js +151 -0
  34. package/dist/radix-vega/data-table-skeleton.js.map +1 -0
  35. package/dist/radix-vega/data-table-slider-filter.d.ts +10 -0
  36. package/dist/radix-vega/data-table-slider-filter.js +387 -0
  37. package/dist/radix-vega/data-table-slider-filter.js.map +1 -0
  38. package/dist/radix-vega/data-table-toolbar.d.ts +10 -0
  39. package/dist/radix-vega/data-table-toolbar.js +1272 -0
  40. package/dist/radix-vega/data-table-toolbar.js.map +1 -0
  41. package/dist/radix-vega/data-table-view-options.d.ts +13 -0
  42. package/dist/radix-vega/data-table-view-options.js +314 -0
  43. package/dist/radix-vega/data-table-view-options.js.map +1 -0
  44. package/dist/radix-vega/data-table.d.ts +11 -0
  45. package/dist/radix-vega/data-table.js +429 -0
  46. package/dist/radix-vega/data-table.js.map +1 -0
  47. package/dist/radix-vega/index.d.ts +10 -0
  48. package/dist/radix-vega/index.js +2170 -1156
  49. package/dist/radix-vega/index.js.map +1 -1
  50. package/dist/radix-vega/relative-time-card.d.ts +2 -7
  51. package/dist/radix-vega/relative-time-card.js.map +1 -1
  52. package/package.json +18 -12
@@ -0,0 +1,178 @@
1
+ import { ChevronDown, ChevronUp, ChevronsUpDown, X, EyeOff, CheckIcon } from 'lucide-react';
2
+ import { DropdownMenu as DropdownMenu$1 } from 'radix-ui';
3
+ import { clsx } from 'clsx';
4
+ import { twMerge } from 'tailwind-merge';
5
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
+
7
+ function cn(...inputs) {
8
+ return twMerge(clsx(inputs));
9
+ }
10
+ function DropdownMenu({
11
+ ...props
12
+ }) {
13
+ return /* @__PURE__ */ jsx(DropdownMenu$1.Root, { "data-slot": "dropdown-menu", ...props });
14
+ }
15
+ function DropdownMenuTrigger({
16
+ ...props
17
+ }) {
18
+ return /* @__PURE__ */ jsx(
19
+ DropdownMenu$1.Trigger,
20
+ {
21
+ "data-slot": "dropdown-menu-trigger",
22
+ ...props
23
+ }
24
+ );
25
+ }
26
+ function DropdownMenuContent({
27
+ className,
28
+ align = "start",
29
+ sideOffset = 4,
30
+ ...props
31
+ }) {
32
+ return /* @__PURE__ */ jsx(DropdownMenu$1.Portal, { children: /* @__PURE__ */ jsx(
33
+ DropdownMenu$1.Content,
34
+ {
35
+ "data-slot": "dropdown-menu-content",
36
+ sideOffset,
37
+ align,
38
+ className: cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-32 rounded-md p-1 shadow-md ring-1 duration-100 z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto data-[state=closed]:overflow-hidden", className),
39
+ ...props
40
+ }
41
+ ) });
42
+ }
43
+ function DropdownMenuItem({
44
+ className,
45
+ inset,
46
+ variant = "default",
47
+ ...props
48
+ }) {
49
+ return /* @__PURE__ */ jsx(
50
+ DropdownMenu$1.Item,
51
+ {
52
+ "data-slot": "dropdown-menu-item",
53
+ "data-inset": inset,
54
+ "data-variant": variant,
55
+ className: cn(
56
+ "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-sm px-2 py-1.5 text-sm data-inset:pl-8 [&_svg:not([class*='size-'])]:size-4 group/dropdown-menu-item relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
57
+ className
58
+ ),
59
+ ...props
60
+ }
61
+ );
62
+ }
63
+ function DropdownMenuCheckboxItem({
64
+ className,
65
+ children,
66
+ checked,
67
+ inset,
68
+ ...props
69
+ }) {
70
+ return /* @__PURE__ */ jsxs(
71
+ DropdownMenu$1.CheckboxItem,
72
+ {
73
+ "data-slot": "dropdown-menu-checkbox-item",
74
+ "data-inset": inset,
75
+ className: cn(
76
+ "focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm data-inset:pl-8 [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
77
+ className
78
+ ),
79
+ checked,
80
+ ...props,
81
+ children: [
82
+ /* @__PURE__ */ jsx(
83
+ "span",
84
+ {
85
+ className: "absolute right-2 flex items-center justify-center pointer-events-none",
86
+ "data-slot": "dropdown-menu-checkbox-item-indicator",
87
+ children: /* @__PURE__ */ jsx(DropdownMenu$1.ItemIndicator, { children: /* @__PURE__ */ jsx(
88
+ CheckIcon,
89
+ {}
90
+ ) })
91
+ }
92
+ ),
93
+ children
94
+ ]
95
+ }
96
+ );
97
+ }
98
+ function DataTableColumnHeader({
99
+ column,
100
+ label,
101
+ className,
102
+ ...props
103
+ }) {
104
+ if (!column.getCanSort() && !column.getCanHide()) {
105
+ return /* @__PURE__ */ jsx("div", { className: cn(className), children: label });
106
+ }
107
+ return /* @__PURE__ */ jsxs(DropdownMenu, { children: [
108
+ /* @__PURE__ */ jsxs(
109
+ DropdownMenuTrigger,
110
+ {
111
+ className: cn(
112
+ "-ml-1.5 flex h-8 items-center gap-1.5 rounded-md px-2 py-1.5 hover:bg-accent focus:outline-none focus:ring-1 focus:ring-ring data-[state=open]:bg-accent [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:text-muted-foreground",
113
+ className
114
+ ),
115
+ ...props,
116
+ children: [
117
+ label,
118
+ column.getCanSort() && (column.getIsSorted() === "desc" ? /* @__PURE__ */ jsx(ChevronDown, {}) : column.getIsSorted() === "asc" ? /* @__PURE__ */ jsx(ChevronUp, {}) : /* @__PURE__ */ jsx(ChevronsUpDown, {}))
119
+ ]
120
+ }
121
+ ),
122
+ /* @__PURE__ */ jsxs(DropdownMenuContent, { align: "start", className: "w-28", children: [
123
+ column.getCanSort() && /* @__PURE__ */ jsxs(Fragment, { children: [
124
+ /* @__PURE__ */ jsxs(
125
+ DropdownMenuCheckboxItem,
126
+ {
127
+ className: "relative pr-8 pl-2 [&>span:first-child]:right-2 [&>span:first-child]:left-auto [&_svg]:text-muted-foreground",
128
+ checked: column.getIsSorted() === "asc",
129
+ onClick: () => column.toggleSorting(false),
130
+ children: [
131
+ /* @__PURE__ */ jsx(ChevronUp, {}),
132
+ "Asc"
133
+ ]
134
+ }
135
+ ),
136
+ /* @__PURE__ */ jsxs(
137
+ DropdownMenuCheckboxItem,
138
+ {
139
+ className: "relative pr-8 pl-2 [&>span:first-child]:right-2 [&>span:first-child]:left-auto [&_svg]:text-muted-foreground",
140
+ checked: column.getIsSorted() === "desc",
141
+ onClick: () => column.toggleSorting(true),
142
+ children: [
143
+ /* @__PURE__ */ jsx(ChevronDown, {}),
144
+ "Desc"
145
+ ]
146
+ }
147
+ ),
148
+ column.getIsSorted() && /* @__PURE__ */ jsxs(
149
+ DropdownMenuItem,
150
+ {
151
+ className: "pl-2 [&_svg]:text-muted-foreground",
152
+ onClick: () => column.clearSorting(),
153
+ children: [
154
+ /* @__PURE__ */ jsx(X, {}),
155
+ "Reset"
156
+ ]
157
+ }
158
+ )
159
+ ] }),
160
+ column.getCanHide() && /* @__PURE__ */ jsxs(
161
+ DropdownMenuCheckboxItem,
162
+ {
163
+ className: "relative pr-8 pl-2 [&>span:first-child]:right-2 [&>span:first-child]:left-auto [&_svg]:text-muted-foreground",
164
+ checked: !column.getIsVisible(),
165
+ onClick: () => column.toggleVisibility(false),
166
+ children: [
167
+ /* @__PURE__ */ jsx(EyeOff, {}),
168
+ "Hide"
169
+ ]
170
+ }
171
+ )
172
+ ] })
173
+ ] });
174
+ }
175
+
176
+ export { DataTableColumnHeader };
177
+ //# sourceMappingURL=data-table-column-header.js.map
178
+ //# sourceMappingURL=data-table-column-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/utils.ts","../../src/radix-vega/dropdown-menu.tsx","../../src/radix-vega/data-table-column-header.tsx"],"names":["DropdownMenuPrimitive","jsx","jsxs"],"mappings":"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","file":"data-table-column-header.js","sourcesContent":["import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * Merges Tailwind class names, resolving any conflicts.\n *\n * @param inputs - An array of class names to merge.\n * @returns A string of merged and optimized class names.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\nimport { CheckIcon, ChevronRightIcon } from \"lucide-react\"\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return (\n <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n )\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n )\n}\n\nfunction DropdownMenuContent({\n className,\n align = \"start\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n align={align}\n className={cn(\"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-32 rounded-md p-1 shadow-md ring-1 duration-100 z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto data-[state=closed]:overflow-hidden\", className )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n )\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return (\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n )\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-sm px-2 py-1.5 text-sm data-inset:pl-8 [&_svg:not([class*='size-'])]:size-4 group/dropdown-menu-item relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm data-inset:pl-8 [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span\n className=\"absolute right-2 flex items-center justify-center pointer-events-none\"\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon\n />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n )\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n )\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm data-inset:pl-8 [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className\n )}\n {...props}\n >\n <span\n className=\"absolute right-2 flex items-center justify-center pointer-events-none\"\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon\n />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n )\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\"text-muted-foreground px-2 py-1.5 text-xs font-medium data-inset:pl-8\", className)}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"bg-border -mx-1 my-1 h-px\", className)}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\"text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground ml-auto text-xs tracking-widest\", className)}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-sm px-2 py-1.5 text-sm data-inset:pl-8 [&_svg:not([class*='size-'])]:size-4 flex cursor-default items-center outline-hidden select-none [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n )\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-[96px] rounded-md p-1 shadow-lg ring-1 duration-100 z-50 origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden\", className )}\n {...props}\n />\n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n}\n","\"use client\";\n\nimport type { Column } from \"@tanstack/react-table\";\nimport {\n ChevronDown,\n ChevronsUpDown,\n ChevronUp,\n EyeOff,\n X,\n} from \"lucide-react\";\n\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/radix-vega/dropdown-menu\";\nimport { cn } from \"@/lib/utils\";\n\ninterface DataTableColumnHeaderProps<TData, TValue>\n extends React.ComponentProps<typeof DropdownMenuTrigger> {\n column: Column<TData, TValue>;\n label: string;\n}\n\nexport function DataTableColumnHeader<TData, TValue>({\n column,\n label,\n className,\n ...props\n}: DataTableColumnHeaderProps<TData, TValue>) {\n if (!column.getCanSort() && !column.getCanHide()) {\n return <div className={cn(className)}>{label}</div>;\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger\n className={cn(\n \"-ml-1.5 flex h-8 items-center gap-1.5 rounded-md px-2 py-1.5 hover:bg-accent focus:outline-none focus:ring-1 focus:ring-ring data-[state=open]:bg-accent [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:text-muted-foreground\",\n className,\n )}\n {...props}\n >\n {label}\n {column.getCanSort() &&\n (column.getIsSorted() === \"desc\" ? (\n <ChevronDown />\n ) : column.getIsSorted() === \"asc\" ? (\n <ChevronUp />\n ) : (\n <ChevronsUpDown />\n ))}\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\" className=\"w-28\">\n {column.getCanSort() && (\n <>\n <DropdownMenuCheckboxItem\n className=\"relative pr-8 pl-2 [&>span:first-child]:right-2 [&>span:first-child]:left-auto [&_svg]:text-muted-foreground\"\n checked={column.getIsSorted() === \"asc\"}\n onClick={() => column.toggleSorting(false)}\n >\n <ChevronUp />\n Asc\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n className=\"relative pr-8 pl-2 [&>span:first-child]:right-2 [&>span:first-child]:left-auto [&_svg]:text-muted-foreground\"\n checked={column.getIsSorted() === \"desc\"}\n onClick={() => column.toggleSorting(true)}\n >\n <ChevronDown />\n Desc\n </DropdownMenuCheckboxItem>\n {column.getIsSorted() && (\n <DropdownMenuItem\n className=\"pl-2 [&_svg]:text-muted-foreground\"\n onClick={() => column.clearSorting()}\n >\n <X />\n Reset\n </DropdownMenuItem>\n )}\n </>\n )}\n {column.getCanHide() && (\n <DropdownMenuCheckboxItem\n className=\"relative pr-8 pl-2 [&>span:first-child]:right-2 [&>span:first-child]:left-auto [&_svg]:text-muted-foreground\"\n checked={!column.getIsVisible()}\n onClick={() => column.toggleVisibility(false)}\n >\n <EyeOff />\n Hide\n </DropdownMenuCheckboxItem>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { Column } from '@tanstack/react-table';
3
+
4
+ interface DataTableDateFilterProps<TData> {
5
+ column: Column<TData, unknown>;
6
+ title?: string;
7
+ multiple?: boolean;
8
+ }
9
+ declare function DataTableDateFilter<TData>({ column, title, multiple, }: DataTableDateFilterProps<TData>): react_jsx_runtime.JSX.Element;
10
+
11
+ export { DataTableDateFilter };