@codefast/ui 0.0.24 → 0.0.26

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.
@@ -0,0 +1,293 @@
1
+ import plugin from "tailwindcss/plugin";
2
+ import { type Config } from "tailwindcss/types/config";
3
+
4
+ type Theme = <TDefaultValue = Config["theme"]>(path?: string, defaultValue?: TDefaultValue) => TDefaultValue;
5
+
6
+ const animate = plugin(
7
+ ({ addUtilities, matchUtilities, theme }) => {
8
+ addUtilities({
9
+ "@keyframes enter": {
10
+ from: {
11
+ opacity: "var(--animate-enter-opacity, 1)",
12
+ transform: [
13
+ "translate3d(var(--animate-enter-translate-x, 0), var(--animate-enter-translate-y, 0), 0)",
14
+ "scale3d(var(--animate-enter-scale, 1), var(--animate-enter-scale, 1), var(--animate-enter-scale, 1))",
15
+ "rotate(var(--animate-enter-rotate, 0))",
16
+ ].join(" "),
17
+ },
18
+ },
19
+
20
+ "@keyframes exit": {
21
+ to: {
22
+ opacity: "var(--animate-exit-opacity, 1)",
23
+ transform: [
24
+ "translate3d(var(--animate-exit-translate-x, 0), var(--animate-exit-translate-y, 0), 0)",
25
+ "scale3d(var(--animate-exit-scale, 1), var(--animate-exit-scale, 1), var(--animate-exit-scale, 1))",
26
+ "rotate(var(--animate-exit-rotate, 0))",
27
+ ].join(" "),
28
+ },
29
+ },
30
+
31
+ ".animate-in": {
32
+ animationName: "enter",
33
+ animationDuration: theme("animationDuration.DEFAULT"),
34
+ "--animate-enter-opacity": "initial",
35
+ "--animate-enter-scale": "initial",
36
+ "--animate-enter-rotate": "initial",
37
+ "--animate-enter-translate-x": "initial",
38
+ "--animate-enter-translate-y": "initial",
39
+ },
40
+
41
+ ".animate-out": {
42
+ animationName: "exit",
43
+ animationDuration: theme("animationDuration.DEFAULT"),
44
+ "--animate-exit-opacity": "initial",
45
+ "--animate-exit-scale": "initial",
46
+ "--animate-exit-rotate": "initial",
47
+ "--animate-exit-translate-x": "initial",
48
+ "--animate-exit-translate-y": "initial",
49
+ },
50
+ });
51
+
52
+ addUtilities({
53
+ ".animation-running": {
54
+ animationPlayState: "running",
55
+ },
56
+ ".animation-paused": {
57
+ animationPlayState: "paused",
58
+ },
59
+ });
60
+
61
+ // Delay
62
+ matchUtilities(
63
+ {
64
+ "animation-delay": (value) => ({
65
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
66
+ animationDelay: value,
67
+ }),
68
+ },
69
+ {
70
+ values: theme("animationDelay"),
71
+ },
72
+ );
73
+
74
+ // Direction
75
+ matchUtilities(
76
+ {
77
+ "animation-direction": (value) => ({
78
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
79
+ animationDirection: value,
80
+ }),
81
+ },
82
+ {
83
+ values: theme("animationDirection"),
84
+ },
85
+ );
86
+
87
+ // Duration
88
+ matchUtilities(
89
+ {
90
+ "animation-duration": (value) => ({
91
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
92
+ animationDuration: value,
93
+ }),
94
+ },
95
+ {
96
+ values: theme("animationDuration"),
97
+ },
98
+ );
99
+
100
+ // Fill mode
101
+ matchUtilities(
102
+ {
103
+ "animation-fill-mode": (value) => ({
104
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
105
+ animationFillMode: value,
106
+ }),
107
+ },
108
+ {
109
+ values: theme("animationFillMode"),
110
+ },
111
+ );
112
+
113
+ // Opacity
114
+ matchUtilities(
115
+ {
116
+ "fade-in": (value) => ({
117
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
118
+ "--animate-enter-opacity": value,
119
+ }),
120
+ "fade-out": (value) => ({
121
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
122
+ "--animate-exit-opacity": value,
123
+ }),
124
+ },
125
+ {
126
+ values: theme("animationOpacity"),
127
+ },
128
+ );
129
+
130
+ // Repeat
131
+ matchUtilities(
132
+ {
133
+ "animation-repeat": (value) => ({
134
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
135
+ animationIterationCount: value,
136
+ }),
137
+ },
138
+ {
139
+ values: theme("animationRepeat"),
140
+ },
141
+ );
142
+
143
+ // Rotate
144
+ matchUtilities(
145
+ {
146
+ "spin-in": (value) => ({
147
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
148
+ "--animate-enter-rotate": value,
149
+ }),
150
+ "spin-out": (value) => ({
151
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
152
+ "--animate-exit-rotate": value,
153
+ }),
154
+ },
155
+ {
156
+ values: theme("animationRotate"),
157
+ },
158
+ );
159
+
160
+ // Scale - Zoom
161
+ matchUtilities(
162
+ {
163
+ "zoom-in": (value) => ({
164
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
165
+ "--animate-enter-scale": value,
166
+ }),
167
+ "zoom-out": (value) => ({
168
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
169
+ "--animate-exit-scale": value,
170
+ }),
171
+ },
172
+ {
173
+ values: theme("animationScale"),
174
+ },
175
+ );
176
+
177
+ // Timing function
178
+ matchUtilities(
179
+ {
180
+ "animation-ease": (value) => ({
181
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
182
+ animationTimingFunction: value,
183
+ }),
184
+ },
185
+ {
186
+ values: theme("animationTimingFunction"),
187
+ },
188
+ );
189
+
190
+ // Translate - Slide
191
+ matchUtilities(
192
+ {
193
+ "slide-in-from-top": (value) => ({
194
+ "--animate-enter-translate-y": `-${value}`,
195
+ }),
196
+
197
+ "slide-in-from-bottom": (value) => ({
198
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
199
+ "--animate-enter-translate-y": value,
200
+ }),
201
+
202
+ "slide-in-from-left": (value) => ({
203
+ "--animate-enter-translate-x": `-${value}`,
204
+ }),
205
+
206
+ "slide-in-from-right": (value) => ({
207
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
208
+ "--animate-enter-translate-x": value,
209
+ }),
210
+
211
+ "slide-out-to-top": (value) => ({
212
+ "--animate-exit-translate-y": `-${value}`,
213
+ }),
214
+
215
+ "slide-out-to-bottom": (value) => ({
216
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
217
+ "--animate-exit-translate-y": value,
218
+ }),
219
+
220
+ "slide-out-to-left": (value) => ({
221
+ "--animate-exit-translate-x": `-${value}`,
222
+ }),
223
+
224
+ "slide-out-to-right": (value) => ({
225
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
226
+ "--animate-exit-translate-x": value,
227
+ }),
228
+ },
229
+ {
230
+ values: theme("animationTranslate"),
231
+ },
232
+ );
233
+ },
234
+ {
235
+ theme: {
236
+ extend: {
237
+ animationDelay: ({ theme }: { theme: Theme }) => ({
238
+ ...theme("transitionDelay"),
239
+ }),
240
+
241
+ animationDirection: {
242
+ normal: "normal",
243
+ reverse: "reverse",
244
+ alternate: "alternate",
245
+ "alternate-reverse": "alternate-reverse",
246
+ },
247
+
248
+ animationDuration: ({ theme }: { theme: Theme }) => ({
249
+ ...theme("transitionDuration"),
250
+ }),
251
+
252
+ animationFillMode: {
253
+ none: "none",
254
+ forwards: "forwards",
255
+ backwards: "backwards",
256
+ both: "both",
257
+ },
258
+
259
+ animationOpacity: ({ theme }: { theme: Theme }) => ({
260
+ DEFAULT: 0,
261
+ ...theme("opacity"),
262
+ }),
263
+
264
+ animationRepeat: {
265
+ 0: "0",
266
+ 1: "1",
267
+ infinite: "infinite",
268
+ },
269
+
270
+ animationRotate: ({ theme }: { theme: Theme }) => ({
271
+ DEFAULT: "30deg",
272
+ ...theme("rotate"),
273
+ }),
274
+
275
+ animationScale: ({ theme }: { theme: Theme }) => ({
276
+ DEFAULT: 0,
277
+ ...theme("scale"),
278
+ }),
279
+
280
+ animationTimingFunction: ({ theme }: { theme: Theme }) => ({
281
+ ...theme("transitionTimingFunction"),
282
+ }),
283
+
284
+ animationTranslate: ({ theme }: { theme: Theme }) => ({
285
+ DEFAULT: "100%",
286
+ ...theme("translate"),
287
+ }),
288
+ },
289
+ },
290
+ },
291
+ );
292
+
293
+ export default animate;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/data-table.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport type * as ReactTable from \"@tanstack/react-table\";\nimport { type SortDirection } from \"@tanstack/react-table\";\nimport {\n ArrowDownIcon,\n ArrowUpIcon,\n CaretSortIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n DoubleArrowLeftIcon,\n DoubleArrowRightIcon,\n EyeNoneIcon,\n MixerHorizontalIcon,\n} from \"@radix-ui/react-icons\";\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"./dropdown-menu\";\nimport { Button } from \"./button\";\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"./select\";\nimport { cn } from \"./utils\";\n\n/* -----------------------------------------------------------------------------\n * Component: DataTableViewOptions\n * -------------------------------------------------------------------------- */\n\ninterface DataTableViewOptionsProps<TData> {\n table: ReactTable.Table<TData>;\n}\n\nfunction DataTableViewOptions<TData>({ table }: DataTableViewOptionsProps<TData>): React.JSX.Element {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\" size=\"sm\" className=\"ml-auto hidden h-8 lg:flex\">\n <MixerHorizontalIcon className=\"mr-2 size-4\" />\n View\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-36\">\n <DropdownMenuLabel>Toggle columns</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {table\n .getAllColumns()\n .filter((column) => typeof column.accessorFn !== \"undefined\" && column.getCanHide())\n .map((column) => {\n return (\n <DropdownMenuCheckboxItem\n key={column.id}\n className=\"capitalize\"\n checked={column.getIsVisible()}\n onCheckedChange={(value) => {\n column.toggleVisibility(Boolean(value));\n }}\n >\n {column.id}\n </DropdownMenuCheckboxItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DataTablePagination\n * -------------------------------------------------------------------------- */\n\ninterface DataTablePaginationProps<TData> extends React.HTMLAttributes<HTMLDivElement> {\n table: ReactTable.Table<TData>;\n}\n\nfunction DataTablePagination<TData>({\n table,\n className,\n ...props\n}: DataTablePaginationProps<TData>): React.JSX.Element {\n return (\n <div className={cn(\"flex items-center justify-between px-2\", className)} {...props}>\n <div className=\"text-muted-foreground flex-1 text-sm\">\n {table.getFilteredSelectedRowModel().rows.length} of {table.getFilteredRowModel().rows.length} row(s) selected.\n </div>\n <div className=\"flex items-center space-x-6 lg:space-x-8\">\n <div className=\"flex items-center space-x-2\">\n <p className=\"text-sm font-medium\">Rows per page</p>\n <Select\n value={String(table.getState().pagination.pageSize)}\n onValueChange={(value) => {\n table.setPageSize(Number(value));\n }}\n >\n <SelectTrigger className=\"h-8 w-16\">\n <SelectValue placeholder={table.getState().pagination.pageSize} />\n </SelectTrigger>\n <SelectContent side=\"top\">\n {[10, 20, 30, 40, 50].map((pageSize) => (\n <SelectItem key={pageSize} value={String(pageSize)}>\n {pageSize}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"flex w-28 items-center justify-center text-sm font-medium\">\n Page {table.getState().pagination.pageIndex + 1} of {table.getPageCount()}\n </div>\n <div className=\"flex items-center space-x-2\">\n <Button\n variant=\"outline\"\n size=\"icon-xs\"\n className=\"hidden lg:flex\"\n onClick={() => {\n table.setPageIndex(0);\n }}\n disabled={!table.getCanPreviousPage()}\n >\n <span className=\"sr-only\">Go to first page</span>\n <DoubleArrowLeftIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon-xs\"\n onClick={() => {\n table.previousPage();\n }}\n disabled={!table.getCanPreviousPage()}\n >\n <span className=\"sr-only\">Go to previous page</span>\n <ChevronLeftIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon-xs\"\n onClick={() => {\n table.nextPage();\n }}\n disabled={!table.getCanNextPage()}\n >\n <span className=\"sr-only\">Go to next page</span>\n <ChevronRightIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon-xs\"\n className=\"hidden lg:flex\"\n onClick={() => {\n table.setPageIndex(table.getPageCount() - 1);\n }}\n disabled={!table.getCanNextPage()}\n >\n <span className=\"sr-only\">Go to last page</span>\n <DoubleArrowRightIcon className=\"size-4\" />\n </Button>\n </div>\n </div>\n </div>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DataTableColumnHeader\n * -------------------------------------------------------------------------- */\n\ninterface DataTableColumnHeaderProps<TData, TValue> extends React.HTMLAttributes<HTMLDivElement> {\n column: ReactTable.Column<TData, TValue>;\n title: string;\n}\n\nfunction DataTableColumnHeader<TData, TValue>({\n column,\n title,\n className,\n}: DataTableColumnHeaderProps<TData, TValue>): React.JSX.Element {\n if (!column.getCanSort()) {\n return <div className={className}>{title}</div>;\n }\n\n return (\n <div className={cn(\"flex items-center space-x-2\", className)}>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\" size=\"xs\" className=\"data-[state=open]:bg-accent -ml-3\">\n <span>{title}</span>\n <SortIcon sorted={column.getIsSorted()} />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\">\n <DropdownMenuItem\n onClick={() => {\n column.toggleSorting(false);\n }}\n >\n <ArrowUpIcon className=\"text-muted-foreground/70 mr-2 size-3.5\" />\n Asc\n </DropdownMenuItem>\n <DropdownMenuItem\n onClick={() => {\n column.toggleSorting(true);\n }}\n >\n <ArrowDownIcon className=\"text-muted-foreground/70 mr-2 size-3.5\" />\n Desc\n </DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem\n onClick={() => {\n column.toggleVisibility(false);\n }}\n >\n <EyeNoneIcon className=\"text-muted-foreground/70 mr-2 size-3.5\" />\n Hide\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n );\n}\n\nfunction SortIcon({ sorted }: { sorted: false | SortDirection }): React.JSX.Element {\n switch (sorted) {\n case \"desc\":\n return <ArrowDownIcon className=\"ml-2 size-4\" />;\n case \"asc\":\n return <ArrowUpIcon className=\"ml-2 size-4\" />;\n default:\n return <CaretSortIcon className=\"ml-2 size-4\" />;\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport {\n DataTableViewOptions,\n DataTablePagination,\n DataTableColumnHeader,\n type DataTableViewOptionsProps,\n type DataTablePaginationProps,\n type DataTableColumnHeaderProps,\n};\n"]}
1
+ {"version":3,"sources":["../src/data-table.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport type * as ReactTable from \"@tanstack/react-table\";\nimport {\n ArrowDownIcon,\n ArrowUpIcon,\n CaretSortIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n DoubleArrowLeftIcon,\n DoubleArrowRightIcon,\n EyeNoneIcon,\n MixerHorizontalIcon,\n} from \"@radix-ui/react-icons\";\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"./dropdown-menu\";\nimport { Button } from \"./button\";\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"./select\";\nimport { cn } from \"./utils\";\n\n/* -----------------------------------------------------------------------------\n * Component: DataTableViewOptions\n * -------------------------------------------------------------------------- */\n\ninterface DataTableViewOptionsProps<TData> {\n table: ReactTable.Table<TData>;\n}\n\nfunction DataTableViewOptions<TData>({ table }: DataTableViewOptionsProps<TData>): React.JSX.Element {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\" size=\"sm\" className=\"ml-auto hidden h-8 lg:flex\">\n <MixerHorizontalIcon className=\"mr-2 size-4\" />\n View\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-36\">\n <DropdownMenuLabel>Toggle columns</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {table\n .getAllColumns()\n .filter((column) => typeof column.accessorFn !== \"undefined\" && column.getCanHide())\n .map((column) => {\n return (\n <DropdownMenuCheckboxItem\n key={column.id}\n className=\"capitalize\"\n checked={column.getIsVisible()}\n onCheckedChange={(value) => {\n column.toggleVisibility(Boolean(value));\n }}\n >\n {column.id}\n </DropdownMenuCheckboxItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DataTablePagination\n * -------------------------------------------------------------------------- */\n\ninterface DataTablePaginationProps<TData> extends React.HTMLAttributes<HTMLDivElement> {\n table: ReactTable.Table<TData>;\n}\n\nfunction DataTablePagination<TData>({\n table,\n className,\n ...props\n}: DataTablePaginationProps<TData>): React.JSX.Element {\n return (\n <div className={cn(\"flex items-center justify-between px-2\", className)} {...props}>\n <div className=\"text-muted-foreground flex-1 text-sm\">\n {table.getFilteredSelectedRowModel().rows.length} of {table.getFilteredRowModel().rows.length} row(s) selected.\n </div>\n <div className=\"flex items-center space-x-6 lg:space-x-8\">\n <div className=\"flex items-center space-x-2\">\n <p className=\"text-sm font-medium\">Rows per page</p>\n <Select\n value={String(table.getState().pagination.pageSize)}\n onValueChange={(value) => {\n table.setPageSize(Number(value));\n }}\n >\n <SelectTrigger className=\"h-8 w-16\">\n <SelectValue placeholder={table.getState().pagination.pageSize} />\n </SelectTrigger>\n <SelectContent side=\"top\">\n {[10, 20, 30, 40, 50].map((pageSize) => (\n <SelectItem key={pageSize} value={String(pageSize)}>\n {pageSize}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"flex w-28 items-center justify-center text-sm font-medium\">\n Page {table.getState().pagination.pageIndex + 1} of {table.getPageCount()}\n </div>\n <div className=\"flex items-center space-x-2\">\n <Button\n variant=\"outline\"\n size=\"icon-xs\"\n className=\"hidden lg:flex\"\n onClick={() => {\n table.setPageIndex(0);\n }}\n disabled={!table.getCanPreviousPage()}\n >\n <span className=\"sr-only\">Go to first page</span>\n <DoubleArrowLeftIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon-xs\"\n onClick={() => {\n table.previousPage();\n }}\n disabled={!table.getCanPreviousPage()}\n >\n <span className=\"sr-only\">Go to previous page</span>\n <ChevronLeftIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon-xs\"\n onClick={() => {\n table.nextPage();\n }}\n disabled={!table.getCanNextPage()}\n >\n <span className=\"sr-only\">Go to next page</span>\n <ChevronRightIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon-xs\"\n className=\"hidden lg:flex\"\n onClick={() => {\n table.setPageIndex(table.getPageCount() - 1);\n }}\n disabled={!table.getCanNextPage()}\n >\n <span className=\"sr-only\">Go to last page</span>\n <DoubleArrowRightIcon className=\"size-4\" />\n </Button>\n </div>\n </div>\n </div>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DataTableColumnHeader\n * -------------------------------------------------------------------------- */\n\ninterface DataTableColumnHeaderProps<TData, TValue> extends React.HTMLAttributes<HTMLDivElement> {\n column: ReactTable.Column<TData, TValue>;\n title: string;\n}\n\nfunction DataTableColumnHeader<TData, TValue>({\n column,\n title,\n className,\n}: DataTableColumnHeaderProps<TData, TValue>): React.JSX.Element {\n if (!column.getCanSort()) {\n return <div className={className}>{title}</div>;\n }\n\n return (\n <div className={cn(\"flex items-center space-x-2\", className)}>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\" size=\"xs\" className=\"data-[state=open]:bg-accent -ml-3\">\n <span>{title}</span>\n <SortIcon sorted={column.getIsSorted()} />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\">\n <DropdownMenuItem\n onClick={() => {\n column.toggleSorting(false);\n }}\n >\n <ArrowUpIcon className=\"text-muted-foreground/70 mr-2 size-3.5\" />\n Asc\n </DropdownMenuItem>\n <DropdownMenuItem\n onClick={() => {\n column.toggleSorting(true);\n }}\n >\n <ArrowDownIcon className=\"text-muted-foreground/70 mr-2 size-3.5\" />\n Desc\n </DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem\n onClick={() => {\n column.toggleVisibility(false);\n }}\n >\n <EyeNoneIcon className=\"text-muted-foreground/70 mr-2 size-3.5\" />\n Hide\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n );\n}\n\nfunction SortIcon({ sorted }: { sorted: false | ReactTable.SortDirection }): React.JSX.Element {\n switch (sorted) {\n case \"desc\":\n return <ArrowDownIcon className=\"ml-2 size-4\" />;\n case \"asc\":\n return <ArrowUpIcon className=\"ml-2 size-4\" />;\n default:\n return <CaretSortIcon className=\"ml-2 size-4\" />;\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport {\n DataTableViewOptions,\n DataTablePagination,\n DataTableColumnHeader,\n type DataTableViewOptionsProps,\n type DataTablePaginationProps,\n type DataTableColumnHeaderProps,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/data-table.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport type * as ReactTable from \"@tanstack/react-table\";\nimport { type SortDirection } from \"@tanstack/react-table\";\nimport {\n ArrowDownIcon,\n ArrowUpIcon,\n CaretSortIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n DoubleArrowLeftIcon,\n DoubleArrowRightIcon,\n EyeNoneIcon,\n MixerHorizontalIcon,\n} from \"@radix-ui/react-icons\";\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"./dropdown-menu\";\nimport { Button } from \"./button\";\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"./select\";\nimport { cn } from \"./utils\";\n\n/* -----------------------------------------------------------------------------\n * Component: DataTableViewOptions\n * -------------------------------------------------------------------------- */\n\ninterface DataTableViewOptionsProps<TData> {\n table: ReactTable.Table<TData>;\n}\n\nfunction DataTableViewOptions<TData>({ table }: DataTableViewOptionsProps<TData>): React.JSX.Element {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\" size=\"sm\" className=\"ml-auto hidden h-8 lg:flex\">\n <MixerHorizontalIcon className=\"mr-2 size-4\" />\n View\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-36\">\n <DropdownMenuLabel>Toggle columns</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {table\n .getAllColumns()\n .filter((column) => typeof column.accessorFn !== \"undefined\" && column.getCanHide())\n .map((column) => {\n return (\n <DropdownMenuCheckboxItem\n key={column.id}\n className=\"capitalize\"\n checked={column.getIsVisible()}\n onCheckedChange={(value) => {\n column.toggleVisibility(Boolean(value));\n }}\n >\n {column.id}\n </DropdownMenuCheckboxItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DataTablePagination\n * -------------------------------------------------------------------------- */\n\ninterface DataTablePaginationProps<TData> extends React.HTMLAttributes<HTMLDivElement> {\n table: ReactTable.Table<TData>;\n}\n\nfunction DataTablePagination<TData>({\n table,\n className,\n ...props\n}: DataTablePaginationProps<TData>): React.JSX.Element {\n return (\n <div className={cn(\"flex items-center justify-between px-2\", className)} {...props}>\n <div className=\"text-muted-foreground flex-1 text-sm\">\n {table.getFilteredSelectedRowModel().rows.length} of {table.getFilteredRowModel().rows.length} row(s) selected.\n </div>\n <div className=\"flex items-center space-x-6 lg:space-x-8\">\n <div className=\"flex items-center space-x-2\">\n <p className=\"text-sm font-medium\">Rows per page</p>\n <Select\n value={String(table.getState().pagination.pageSize)}\n onValueChange={(value) => {\n table.setPageSize(Number(value));\n }}\n >\n <SelectTrigger className=\"h-8 w-16\">\n <SelectValue placeholder={table.getState().pagination.pageSize} />\n </SelectTrigger>\n <SelectContent side=\"top\">\n {[10, 20, 30, 40, 50].map((pageSize) => (\n <SelectItem key={pageSize} value={String(pageSize)}>\n {pageSize}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"flex w-28 items-center justify-center text-sm font-medium\">\n Page {table.getState().pagination.pageIndex + 1} of {table.getPageCount()}\n </div>\n <div className=\"flex items-center space-x-2\">\n <Button\n variant=\"outline\"\n size=\"icon-xs\"\n className=\"hidden lg:flex\"\n onClick={() => {\n table.setPageIndex(0);\n }}\n disabled={!table.getCanPreviousPage()}\n >\n <span className=\"sr-only\">Go to first page</span>\n <DoubleArrowLeftIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon-xs\"\n onClick={() => {\n table.previousPage();\n }}\n disabled={!table.getCanPreviousPage()}\n >\n <span className=\"sr-only\">Go to previous page</span>\n <ChevronLeftIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon-xs\"\n onClick={() => {\n table.nextPage();\n }}\n disabled={!table.getCanNextPage()}\n >\n <span className=\"sr-only\">Go to next page</span>\n <ChevronRightIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon-xs\"\n className=\"hidden lg:flex\"\n onClick={() => {\n table.setPageIndex(table.getPageCount() - 1);\n }}\n disabled={!table.getCanNextPage()}\n >\n <span className=\"sr-only\">Go to last page</span>\n <DoubleArrowRightIcon className=\"size-4\" />\n </Button>\n </div>\n </div>\n </div>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DataTableColumnHeader\n * -------------------------------------------------------------------------- */\n\ninterface DataTableColumnHeaderProps<TData, TValue> extends React.HTMLAttributes<HTMLDivElement> {\n column: ReactTable.Column<TData, TValue>;\n title: string;\n}\n\nfunction DataTableColumnHeader<TData, TValue>({\n column,\n title,\n className,\n}: DataTableColumnHeaderProps<TData, TValue>): React.JSX.Element {\n if (!column.getCanSort()) {\n return <div className={className}>{title}</div>;\n }\n\n return (\n <div className={cn(\"flex items-center space-x-2\", className)}>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\" size=\"xs\" className=\"data-[state=open]:bg-accent -ml-3\">\n <span>{title}</span>\n <SortIcon sorted={column.getIsSorted()} />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\">\n <DropdownMenuItem\n onClick={() => {\n column.toggleSorting(false);\n }}\n >\n <ArrowUpIcon className=\"text-muted-foreground/70 mr-2 size-3.5\" />\n Asc\n </DropdownMenuItem>\n <DropdownMenuItem\n onClick={() => {\n column.toggleSorting(true);\n }}\n >\n <ArrowDownIcon className=\"text-muted-foreground/70 mr-2 size-3.5\" />\n Desc\n </DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem\n onClick={() => {\n column.toggleVisibility(false);\n }}\n >\n <EyeNoneIcon className=\"text-muted-foreground/70 mr-2 size-3.5\" />\n Hide\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n );\n}\n\nfunction SortIcon({ sorted }: { sorted: false | SortDirection }): React.JSX.Element {\n switch (sorted) {\n case \"desc\":\n return <ArrowDownIcon className=\"ml-2 size-4\" />;\n case \"asc\":\n return <ArrowUpIcon className=\"ml-2 size-4\" />;\n default:\n return <CaretSortIcon className=\"ml-2 size-4\" />;\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport {\n DataTableViewOptions,\n DataTablePagination,\n DataTableColumnHeader,\n type DataTableViewOptionsProps,\n type DataTablePaginationProps,\n type DataTableColumnHeaderProps,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAKA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AA0BC,SACE,KADF;AAJR,SAAS,qBAA4B,EAAE,MAAM,GAAwD;AACnG,SACE,qBAAC,gBACC;AAAA,wBAAC,uBAAoB,SAAO,MAC1B,+BAAC,UAAO,SAAQ,WAAU,MAAK,MAAK,WAAU,8BAC5C;AAAA,0BAAC,uBAAoB,WAAU,eAAc;AAAA,MAAE;AAAA,OAEjD,GACF;AAAA,IACA,qBAAC,uBAAoB,OAAM,OAAM,WAAU,QACzC;AAAA,0BAAC,qBAAkB,4BAAc;AAAA,MACjC,oBAAC,yBAAsB;AAAA,MACtB,MACE,cAAc,EACd,OAAO,CAAC,WAAW,OAAO,OAAO,eAAe,eAAe,OAAO,WAAW,CAAC,EAClF,IAAI,CAAC,WAAW;AACf,eACE;AAAA,UAAC;AAAA;AAAA,YAEC,WAAU;AAAA,YACV,SAAS,OAAO,aAAa;AAAA,YAC7B,iBAAiB,CAAC,UAAU;AAC1B,qBAAO,iBAAiB,QAAQ,KAAK,CAAC;AAAA,YACxC;AAAA,YAEC,iBAAO;AAAA;AAAA,UAPH,OAAO;AAAA,QAQd;AAAA,MAEJ,CAAC;AAAA,OACL;AAAA,KACF;AAEJ;AAUA,SAAS,oBAA2B;AAAA,EAClC;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAuD;AACrD,SACE,qBAAC,SAAI,WAAW,GAAG,0CAA0C,SAAS,GAAI,GAAG,OAC3E;AAAA,yBAAC,SAAI,WAAU,wCACZ;AAAA,YAAM,4BAA4B,EAAE,KAAK;AAAA,MAAO;AAAA,MAAK,MAAM,oBAAoB,EAAE,KAAK;AAAA,MAAO;AAAA,OAChG;AAAA,IACA,qBAAC,SAAI,WAAU,4CACb;AAAA,2BAAC,SAAI,WAAU,+BACb;AAAA,4BAAC,OAAE,WAAU,uBAAsB,2BAAa;AAAA,QAChD;AAAA,UAAC;AAAA;AAAA,YACC,OAAO,OAAO,MAAM,SAAS,EAAE,WAAW,QAAQ;AAAA,YAClD,eAAe,CAAC,UAAU;AACxB,oBAAM,YAAY,OAAO,KAAK,CAAC;AAAA,YACjC;AAAA,YAEA;AAAA,kCAAC,iBAAc,WAAU,YACvB,8BAAC,eAAY,aAAa,MAAM,SAAS,EAAE,WAAW,UAAU,GAClE;AAAA,cACA,oBAAC,iBAAc,MAAK,OACjB,WAAC,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,aACzB,oBAAC,cAA0B,OAAO,OAAO,QAAQ,GAC9C,sBADc,QAEjB,CACD,GACH;AAAA;AAAA;AAAA,QACF;AAAA,SACF;AAAA,MACA,qBAAC,SAAI,WAAU,6DAA4D;AAAA;AAAA,QACnE,MAAM,SAAS,EAAE,WAAW,YAAY;AAAA,QAAE;AAAA,QAAK,MAAM,aAAa;AAAA,SAC1E;AAAA,MACA,qBAAC,SAAI,WAAU,+BACb;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,WAAU;AAAA,YACV,SAAS,MAAM;AACb,oBAAM,aAAa,CAAC;AAAA,YACtB;AAAA,YACA,UAAU,CAAC,MAAM,mBAAmB;AAAA,YAEpC;AAAA,kCAAC,UAAK,WAAU,WAAU,8BAAgB;AAAA,cAC1C,oBAAC,uBAAoB,WAAU,UAAS;AAAA;AAAA;AAAA,QAC1C;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,SAAS,MAAM;AACb,oBAAM,aAAa;AAAA,YACrB;AAAA,YACA,UAAU,CAAC,MAAM,mBAAmB;AAAA,YAEpC;AAAA,kCAAC,UAAK,WAAU,WAAU,iCAAmB;AAAA,cAC7C,oBAAC,mBAAgB,WAAU,UAAS;AAAA;AAAA;AAAA,QACtC;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,SAAS,MAAM;AACb,oBAAM,SAAS;AAAA,YACjB;AAAA,YACA,UAAU,CAAC,MAAM,eAAe;AAAA,YAEhC;AAAA,kCAAC,UAAK,WAAU,WAAU,6BAAe;AAAA,cACzC,oBAAC,oBAAiB,WAAU,UAAS;AAAA;AAAA;AAAA,QACvC;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,WAAU;AAAA,YACV,SAAS,MAAM;AACb,oBAAM,aAAa,MAAM,aAAa,IAAI,CAAC;AAAA,YAC7C;AAAA,YACA,UAAU,CAAC,MAAM,eAAe;AAAA,YAEhC;AAAA,kCAAC,UAAK,WAAU,WAAU,6BAAe;AAAA,cACzC,oBAAC,wBAAqB,WAAU,UAAS;AAAA;AAAA;AAAA,QAC3C;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEJ;AAWA,SAAS,sBAAqC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AACF,GAAiE;AAC/D,MAAI,CAAC,OAAO,WAAW,GAAG;AACxB,WAAO,oBAAC,SAAI,WAAuB,iBAAM;AAAA,EAC3C;AAEA,SACE,oBAAC,SAAI,WAAW,GAAG,+BAA+B,SAAS,GACzD,+BAAC,gBACC;AAAA,wBAAC,uBAAoB,SAAO,MAC1B,+BAAC,UAAO,SAAQ,SAAQ,MAAK,MAAK,WAAU,qCAC1C;AAAA,0BAAC,UAAM,iBAAM;AAAA,MACb,oBAAC,YAAS,QAAQ,OAAO,YAAY,GAAG;AAAA,OAC1C,GACF;AAAA,IACA,qBAAC,uBAAoB,OAAM,SACzB;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,SAAS,MAAM;AACb,mBAAO,cAAc,KAAK;AAAA,UAC5B;AAAA,UAEA;AAAA,gCAAC,eAAY,WAAU,0CAAyC;AAAA,YAAE;AAAA;AAAA;AAAA,MAEpE;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,SAAS,MAAM;AACb,mBAAO,cAAc,IAAI;AAAA,UAC3B;AAAA,UAEA;AAAA,gCAAC,iBAAc,WAAU,0CAAyC;AAAA,YAAE;AAAA;AAAA;AAAA,MAEtE;AAAA,MACA,oBAAC,yBAAsB;AAAA,MACvB;AAAA,QAAC;AAAA;AAAA,UACC,SAAS,MAAM;AACb,mBAAO,iBAAiB,KAAK;AAAA,UAC/B;AAAA,UAEA;AAAA,gCAAC,eAAY,WAAU,0CAAyC;AAAA,YAAE;AAAA;AAAA;AAAA,MAEpE;AAAA,OACF;AAAA,KACF,GACF;AAEJ;AAEA,SAAS,SAAS,EAAE,OAAO,GAAyD;AAClF,UAAQ,QAAQ;AAAA,IACd,KAAK;AACH,aAAO,oBAAC,iBAAc,WAAU,eAAc;AAAA,IAChD,KAAK;AACH,aAAO,oBAAC,eAAY,WAAU,eAAc;AAAA,IAC9C;AACE,aAAO,oBAAC,iBAAc,WAAU,eAAc;AAAA,EAClD;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/data-table.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport type * as ReactTable from \"@tanstack/react-table\";\nimport {\n ArrowDownIcon,\n ArrowUpIcon,\n CaretSortIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n DoubleArrowLeftIcon,\n DoubleArrowRightIcon,\n EyeNoneIcon,\n MixerHorizontalIcon,\n} from \"@radix-ui/react-icons\";\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"./dropdown-menu\";\nimport { Button } from \"./button\";\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"./select\";\nimport { cn } from \"./utils\";\n\n/* -----------------------------------------------------------------------------\n * Component: DataTableViewOptions\n * -------------------------------------------------------------------------- */\n\ninterface DataTableViewOptionsProps<TData> {\n table: ReactTable.Table<TData>;\n}\n\nfunction DataTableViewOptions<TData>({ table }: DataTableViewOptionsProps<TData>): React.JSX.Element {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\" size=\"sm\" className=\"ml-auto hidden h-8 lg:flex\">\n <MixerHorizontalIcon className=\"mr-2 size-4\" />\n View\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-36\">\n <DropdownMenuLabel>Toggle columns</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {table\n .getAllColumns()\n .filter((column) => typeof column.accessorFn !== \"undefined\" && column.getCanHide())\n .map((column) => {\n return (\n <DropdownMenuCheckboxItem\n key={column.id}\n className=\"capitalize\"\n checked={column.getIsVisible()}\n onCheckedChange={(value) => {\n column.toggleVisibility(Boolean(value));\n }}\n >\n {column.id}\n </DropdownMenuCheckboxItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DataTablePagination\n * -------------------------------------------------------------------------- */\n\ninterface DataTablePaginationProps<TData> extends React.HTMLAttributes<HTMLDivElement> {\n table: ReactTable.Table<TData>;\n}\n\nfunction DataTablePagination<TData>({\n table,\n className,\n ...props\n}: DataTablePaginationProps<TData>): React.JSX.Element {\n return (\n <div className={cn(\"flex items-center justify-between px-2\", className)} {...props}>\n <div className=\"text-muted-foreground flex-1 text-sm\">\n {table.getFilteredSelectedRowModel().rows.length} of {table.getFilteredRowModel().rows.length} row(s) selected.\n </div>\n <div className=\"flex items-center space-x-6 lg:space-x-8\">\n <div className=\"flex items-center space-x-2\">\n <p className=\"text-sm font-medium\">Rows per page</p>\n <Select\n value={String(table.getState().pagination.pageSize)}\n onValueChange={(value) => {\n table.setPageSize(Number(value));\n }}\n >\n <SelectTrigger className=\"h-8 w-16\">\n <SelectValue placeholder={table.getState().pagination.pageSize} />\n </SelectTrigger>\n <SelectContent side=\"top\">\n {[10, 20, 30, 40, 50].map((pageSize) => (\n <SelectItem key={pageSize} value={String(pageSize)}>\n {pageSize}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"flex w-28 items-center justify-center text-sm font-medium\">\n Page {table.getState().pagination.pageIndex + 1} of {table.getPageCount()}\n </div>\n <div className=\"flex items-center space-x-2\">\n <Button\n variant=\"outline\"\n size=\"icon-xs\"\n className=\"hidden lg:flex\"\n onClick={() => {\n table.setPageIndex(0);\n }}\n disabled={!table.getCanPreviousPage()}\n >\n <span className=\"sr-only\">Go to first page</span>\n <DoubleArrowLeftIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon-xs\"\n onClick={() => {\n table.previousPage();\n }}\n disabled={!table.getCanPreviousPage()}\n >\n <span className=\"sr-only\">Go to previous page</span>\n <ChevronLeftIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon-xs\"\n onClick={() => {\n table.nextPage();\n }}\n disabled={!table.getCanNextPage()}\n >\n <span className=\"sr-only\">Go to next page</span>\n <ChevronRightIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon-xs\"\n className=\"hidden lg:flex\"\n onClick={() => {\n table.setPageIndex(table.getPageCount() - 1);\n }}\n disabled={!table.getCanNextPage()}\n >\n <span className=\"sr-only\">Go to last page</span>\n <DoubleArrowRightIcon className=\"size-4\" />\n </Button>\n </div>\n </div>\n </div>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DataTableColumnHeader\n * -------------------------------------------------------------------------- */\n\ninterface DataTableColumnHeaderProps<TData, TValue> extends React.HTMLAttributes<HTMLDivElement> {\n column: ReactTable.Column<TData, TValue>;\n title: string;\n}\n\nfunction DataTableColumnHeader<TData, TValue>({\n column,\n title,\n className,\n}: DataTableColumnHeaderProps<TData, TValue>): React.JSX.Element {\n if (!column.getCanSort()) {\n return <div className={className}>{title}</div>;\n }\n\n return (\n <div className={cn(\"flex items-center space-x-2\", className)}>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\" size=\"xs\" className=\"data-[state=open]:bg-accent -ml-3\">\n <span>{title}</span>\n <SortIcon sorted={column.getIsSorted()} />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\">\n <DropdownMenuItem\n onClick={() => {\n column.toggleSorting(false);\n }}\n >\n <ArrowUpIcon className=\"text-muted-foreground/70 mr-2 size-3.5\" />\n Asc\n </DropdownMenuItem>\n <DropdownMenuItem\n onClick={() => {\n column.toggleSorting(true);\n }}\n >\n <ArrowDownIcon className=\"text-muted-foreground/70 mr-2 size-3.5\" />\n Desc\n </DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem\n onClick={() => {\n column.toggleVisibility(false);\n }}\n >\n <EyeNoneIcon className=\"text-muted-foreground/70 mr-2 size-3.5\" />\n Hide\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n );\n}\n\nfunction SortIcon({ sorted }: { sorted: false | ReactTable.SortDirection }): React.JSX.Element {\n switch (sorted) {\n case \"desc\":\n return <ArrowDownIcon className=\"ml-2 size-4\" />;\n case \"asc\":\n return <ArrowUpIcon className=\"ml-2 size-4\" />;\n default:\n return <CaretSortIcon className=\"ml-2 size-4\" />;\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport {\n DataTableViewOptions,\n DataTablePagination,\n DataTableColumnHeader,\n type DataTableViewOptionsProps,\n type DataTablePaginationProps,\n type DataTableColumnHeaderProps,\n};\n"],"mappings":"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","names":[]}
@@ -56,6 +56,7 @@ var animate = _plugin2.default.call(void 0,
56
56
  matchUtilities(
57
57
  {
58
58
  "animation-delay": (value) => ({
59
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
59
60
  animationDelay: value
60
61
  })
61
62
  },
@@ -66,6 +67,7 @@ var animate = _plugin2.default.call(void 0,
66
67
  matchUtilities(
67
68
  {
68
69
  "animation-direction": (value) => ({
70
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
69
71
  animationDirection: value
70
72
  })
71
73
  },
@@ -76,6 +78,7 @@ var animate = _plugin2.default.call(void 0,
76
78
  matchUtilities(
77
79
  {
78
80
  "animation-duration": (value) => ({
81
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
79
82
  animationDuration: value
80
83
  })
81
84
  },
@@ -86,6 +89,7 @@ var animate = _plugin2.default.call(void 0,
86
89
  matchUtilities(
87
90
  {
88
91
  "animation-fill-mode": (value) => ({
92
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
89
93
  animationFillMode: value
90
94
  })
91
95
  },
@@ -96,9 +100,11 @@ var animate = _plugin2.default.call(void 0,
96
100
  matchUtilities(
97
101
  {
98
102
  "fade-in": (value) => ({
103
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
99
104
  "--animate-enter-opacity": value
100
105
  }),
101
106
  "fade-out": (value) => ({
107
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
102
108
  "--animate-exit-opacity": value
103
109
  })
104
110
  },
@@ -109,6 +115,7 @@ var animate = _plugin2.default.call(void 0,
109
115
  matchUtilities(
110
116
  {
111
117
  "animation-repeat": (value) => ({
118
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
112
119
  animationIterationCount: value
113
120
  })
114
121
  },
@@ -119,9 +126,11 @@ var animate = _plugin2.default.call(void 0,
119
126
  matchUtilities(
120
127
  {
121
128
  "spin-in": (value) => ({
129
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
122
130
  "--animate-enter-rotate": value
123
131
  }),
124
132
  "spin-out": (value) => ({
133
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
125
134
  "--animate-exit-rotate": value
126
135
  })
127
136
  },
@@ -132,9 +141,11 @@ var animate = _plugin2.default.call(void 0,
132
141
  matchUtilities(
133
142
  {
134
143
  "zoom-in": (value) => ({
144
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
135
145
  "--animate-enter-scale": value
136
146
  }),
137
147
  "zoom-out": (value) => ({
148
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
138
149
  "--animate-exit-scale": value
139
150
  })
140
151
  },
@@ -145,6 +156,7 @@ var animate = _plugin2.default.call(void 0,
145
156
  matchUtilities(
146
157
  {
147
158
  "animation-ease": (value) => ({
159
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
148
160
  animationTimingFunction: value
149
161
  })
150
162
  },
@@ -158,24 +170,28 @@ var animate = _plugin2.default.call(void 0,
158
170
  "--animate-enter-translate-y": `-${value}`
159
171
  }),
160
172
  "slide-in-from-bottom": (value) => ({
173
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
161
174
  "--animate-enter-translate-y": value
162
175
  }),
163
176
  "slide-in-from-left": (value) => ({
164
177
  "--animate-enter-translate-x": `-${value}`
165
178
  }),
166
179
  "slide-in-from-right": (value) => ({
180
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
167
181
  "--animate-enter-translate-x": value
168
182
  }),
169
183
  "slide-out-to-top": (value) => ({
170
184
  "--animate-exit-translate-y": `-${value}`
171
185
  }),
172
186
  "slide-out-to-bottom": (value) => ({
187
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
173
188
  "--animate-exit-translate-y": value
174
189
  }),
175
190
  "slide-out-to-left": (value) => ({
176
191
  "--animate-exit-translate-x": `-${value}`
177
192
  }),
178
193
  "slide-out-to-right": (value) => ({
194
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
179
195
  "--animate-exit-translate-x": value
180
196
  })
181
197
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../tailwind.config.ts","../animate.plugin.ts","../perspective.plugin.ts"],"names":["plugin"],"mappings":";AACA,SAAS,kBAAkB;;;ACD3B,OAAO,YAAY;AAKnB,IAAM,UAAU;AAAA,EACd,CAAC,EAAE,cAAc,gBAAgB,MAAM,MAAM;AAC3C,iBAAa;AAAA,MACX,oBAAoB;AAAA,QAClB,MAAM;AAAA,UACJ,SAAS;AAAA,UACT,WAAW;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,UACF,EAAE,KAAK,GAAG;AAAA,QACZ;AAAA,MACF;AAAA,MAEA,mBAAmB;AAAA,QACjB,IAAI;AAAA,UACF,SAAS;AAAA,UACT,WAAW;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,UACF,EAAE,KAAK,GAAG;AAAA,QACZ;AAAA,MACF;AAAA,MAEA,eAAe;AAAA,QACb,eAAe;AAAA,QACf,mBAAmB,MAAM,2BAA2B;AAAA,QACpD,2BAA2B;AAAA,QAC3B,yBAAyB;AAAA,QACzB,0BAA0B;AAAA,QAC1B,+BAA+B;AAAA,QAC/B,+BAA+B;AAAA,MACjC;AAAA,MAEA,gBAAgB;AAAA,QACd,eAAe;AAAA,QACf,mBAAmB,MAAM,2BAA2B;AAAA,QACpD,0BAA0B;AAAA,QAC1B,wBAAwB;AAAA,QACxB,yBAAyB;AAAA,QACzB,8BAA8B;AAAA,QAC9B,8BAA8B;AAAA,MAChC;AAAA,IACF,CAAC;AAED,iBAAa;AAAA,MACX,sBAAsB;AAAA,QACpB,oBAAoB;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,oBAAoB;AAAA,MACtB;AAAA,IACF,CAAC;AAGD;AAAA,MACE;AAAA,QACE,mBAAmB,CAAC,WAAW;AAAA,UAC7B,gBAAgB;AAAA,QAClB;AAAA,MACF;AAAA,MACA;AAAA,QACE,QAAQ,MAAM,gBAAgB;AAAA,MAChC;AAAA,IACF;AAGA;AAAA,MACE;AAAA,QACE,uBAAuB,CAAC,WAAW;AAAA,UACjC,oBAAoB;AAAA,QACtB;AAAA,MACF;AAAA,MACA;AAAA,QACE,QAAQ,MAAM,oBAAoB;AAAA,MACpC;AAAA,IACF;AAGA;AAAA,MACE;AAAA,QACE,sBAAsB,CAAC,WAAW;AAAA,UAChC,mBAAmB;AAAA,QACrB;AAAA,MACF;AAAA,MACA;AAAA,QACE,QAAQ,MAAM,mBAAmB;AAAA,MACnC;AAAA,IACF;AAGA;AAAA,MACE;AAAA,QACE,uBAAuB,CAAC,WAAW;AAAA,UACjC,mBAAmB;AAAA,QACrB;AAAA,MACF;AAAA,MACA;AAAA,QACE,QAAQ,MAAM,mBAAmB;AAAA,MACnC;AAAA,IACF;AAGA;AAAA,MACE;AAAA,QACE,WAAW,CAAC,WAAW;AAAA,UACrB,2BAA2B;AAAA,QAC7B;AAAA,QACA,YAAY,CAAC,WAAW;AAAA,UACtB,0BAA0B;AAAA,QAC5B;AAAA,MACF;AAAA,MACA;AAAA,QACE,QAAQ,MAAM,kBAAkB;AAAA,MAClC;AAAA,IACF;AAGA;AAAA,MACE;AAAA,QACE,oBAAoB,CAAC,WAAW;AAAA,UAC9B,yBAAyB;AAAA,QAC3B;AAAA,MACF;AAAA,MACA;AAAA,QACE,QAAQ,MAAM,iBAAiB;AAAA,MACjC;AAAA,IACF;AAGA;AAAA,MACE;AAAA,QACE,WAAW,CAAC,WAAW;AAAA,UACrB,0BAA0B;AAAA,QAC5B;AAAA,QACA,YAAY,CAAC,WAAW;AAAA,UACtB,yBAAyB;AAAA,QAC3B;AAAA,MACF;AAAA,MACA;AAAA,QACE,QAAQ,MAAM,iBAAiB;AAAA,MACjC;AAAA,IACF;AAGA;AAAA,MACE;AAAA,QACE,WAAW,CAAC,WAAW;AAAA,UACrB,yBAAyB;AAAA,QAC3B;AAAA,QACA,YAAY,CAAC,WAAW;AAAA,UACtB,wBAAwB;AAAA,QAC1B;AAAA,MACF;AAAA,MACA;AAAA,QACE,QAAQ,MAAM,gBAAgB;AAAA,MAChC;AAAA,IACF;AAGA;AAAA,MACE;AAAA,QACE,kBAAkB,CAAC,WAAW;AAAA,UAC5B,yBAAyB;AAAA,QAC3B;AAAA,MACF;AAAA,MACA;AAAA,QACE,QAAQ,MAAM,yBAAyB;AAAA,MACzC;AAAA,IACF;AAGA;AAAA,MACE;AAAA,QACE,qBAAqB,CAAC,WAAW;AAAA,UAC/B,+BAA+B,IAAI,KAAK;AAAA,QAC1C;AAAA,QAEA,wBAAwB,CAAC,WAAW;AAAA,UAClC,+BAA+B;AAAA,QACjC;AAAA,QAEA,sBAAsB,CAAC,WAAW;AAAA,UAChC,+BAA+B,IAAI,KAAK;AAAA,QAC1C;AAAA,QAEA,uBAAuB,CAAC,WAAW;AAAA,UACjC,+BAA+B;AAAA,QACjC;AAAA,QAEA,oBAAoB,CAAC,WAAW;AAAA,UAC9B,8BAA8B,IAAI,KAAK;AAAA,QACzC;AAAA,QAEA,uBAAuB,CAAC,WAAW;AAAA,UACjC,8BAA8B;AAAA,QAChC;AAAA,QAEA,qBAAqB,CAAC,WAAW;AAAA,UAC/B,8BAA8B,IAAI,KAAK;AAAA,QACzC;AAAA,QAEA,sBAAsB,CAAC,WAAW;AAAA,UAChC,8BAA8B;AAAA,QAChC;AAAA,MACF;AAAA,MACA;AAAA,QACE,QAAQ,MAAM,oBAAoB;AAAA,MACpC;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,QAAQ;AAAA,QACN,gBAAgB,CAAC,EAAE,MAAM,OAAyB;AAAA,UAChD,GAAG,MAAM,iBAAiB;AAAA,QAC5B;AAAA,QAEA,oBAAoB;AAAA,UAClB,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,WAAW;AAAA,UACX,qBAAqB;AAAA,QACvB;AAAA,QAEA,mBAAmB,CAAC,EAAE,MAAM,OAAyB;AAAA,UACnD,GAAG,MAAM,oBAAoB;AAAA,QAC/B;AAAA,QAEA,mBAAmB;AAAA,UACjB,MAAM;AAAA,UACN,UAAU;AAAA,UACV,WAAW;AAAA,UACX,MAAM;AAAA,QACR;AAAA,QAEA,kBAAkB,CAAC,EAAE,MAAM,OAAyB;AAAA,UAClD,SAAS;AAAA,UACT,GAAG,MAAM,SAAS;AAAA,QACpB;AAAA,QAEA,iBAAiB;AAAA,UACf,GAAG;AAAA,UACH,GAAG;AAAA,UACH,UAAU;AAAA,QACZ;AAAA,QAEA,iBAAiB,CAAC,EAAE,MAAM,OAAyB;AAAA,UACjD,SAAS;AAAA,UACT,GAAG,MAAM,QAAQ;AAAA,QACnB;AAAA,QAEA,gBAAgB,CAAC,EAAE,MAAM,OAAyB;AAAA,UAChD,SAAS;AAAA,UACT,GAAG,MAAM,OAAO;AAAA,QAClB;AAAA,QAEA,yBAAyB,CAAC,EAAE,MAAM,OAAyB;AAAA,UACzD,GAAG,MAAM,0BAA0B;AAAA,QACrC;AAAA,QAEA,oBAAoB,CAAC,EAAE,MAAM,OAAyB;AAAA,UACpD,SAAS;AAAA,UACT,GAAG,MAAM,WAAW;AAAA,QACtB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,yBAAQ;;;ACpRf,OAAOA,aAAY;AAEnB,IAAM,cAAcA,QAAO,CAAC,EAAE,eAAe,MAAM;AACjD,iBAAe;AAAA,IACb,aAAa,CAAC,WAAW;AAAA,MACvB,aAAa;AAAA,IACf;AAAA,EACF,CAAC;AACH,CAAC;AAED,IAAO,6BAAQ;;;AFLf,IAAM,SAAiB;AAAA,EACrB,SAAS,CAAC,gCAAgC;AAAA,EAC1C,UAAU,CAAC,OAAO;AAAA,EAClB,SAAS,CAAC,wBAAS,0BAAW;AAAA,EAC9B,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,WAAW;AAAA,QACT,kBAAkB;AAAA,QAClB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,MACA,cAAc;AAAA,QACZ,IAAI;AAAA;AAAA,QACJ,SAAS;AAAA;AAAA,QACT,IAAI;AAAA;AAAA,QACJ,IAAI;AAAA;AAAA,QACJ,IAAI;AAAA;AAAA,QACJ,OAAO;AAAA;AAAA,QACP,OAAO;AAAA;AAAA,MACT;AAAA,MACA,QAAQ;AAAA,QACN,QAAQ;AAAA,UACN,SAAS;AAAA,UACT,YAAY;AAAA,QACd;AAAA,QACA,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,SAAS;AAAA,UACT,YAAY;AAAA,QACd;AAAA,QACA,UAAU;AAAA,QACV,aAAa;AAAA,UACX,SAAS;AAAA,UACT,YAAY;AAAA,QACd;AAAA,QACA,YAAY;AAAA,QACZ,MAAM;AAAA,UACJ,SAAS;AAAA,UACT,YAAY;AAAA,QACd;AAAA,QACA,OAAO;AAAA,QACP,OAAO;AAAA,UACL,SAAS;AAAA,UACT,YAAY;AAAA,QACd;AAAA,QACA,SAAS;AAAA,UACP,SAAS;AAAA,UACT,YAAY;AAAA,QACd;AAAA,QACA,SAAS;AAAA,UACP,SAAS;AAAA,UACT,YAAY;AAAA,QACd;AAAA,QACA,MAAM;AAAA,QACN,WAAW;AAAA,UACT,SAAS;AAAA,UACT,YAAY;AAAA,QACd;AAAA,QACA,SAAS;AAAA,UACP,SAAS;AAAA,UACT,YAAY;AAAA,QACd;AAAA,QACA,SAAS;AAAA,UACP,SAAS;AAAA,UACT,YAAY;AAAA,QACd;AAAA,MACF;AAAA,MACA,YAAY;AAAA,QACV,MAAM,oBAAoB,WAAW,KAAK,KAAK,IAAI,CAAC;AAAA,MACtD;AAAA,MACA,WAAW;AAAA,QACT,kBAAkB;AAAA,UAChB,MAAM;AAAA,YACJ,QAAQ;AAAA,UACV;AAAA,UACA,IAAI;AAAA,YACF,QAAQ;AAAA,UACV;AAAA,QACF;AAAA,QACA,gBAAgB;AAAA,UACd,MAAM;AAAA,YACJ,QAAQ;AAAA,UACV;AAAA,UACA,IAAI;AAAA,YACF,QAAQ;AAAA,UACV;AAAA,QACF;AAAA,QACA,eAAe;AAAA,UACb,eAAe;AAAA,YACb,SAAS;AAAA,UACX;AAAA,UACA,WAAW;AAAA,YACT,SAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF;AAAA,MACA,SAAS;AAAA,QACP,MAAM;AAAA;AAAA,MACR;AAAA,MACA,oBAAoB;AAAA,QAClB,KAAK;AAAA,MACP;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,0BAAQ","sourcesContent":["import type { Config } from \"tailwindcss\";\nimport { fontFamily } from \"tailwindcss/defaultTheme\";\nimport animate from \"./animate.plugin\";\nimport perspective from \"./perspective.plugin\";\n\nconst config: Config = {\n content: [\"./src/**/*.{js,ts,jsx,tsx,mdx}\"],\n darkMode: [\"class\"],\n plugins: [animate, perspective],\n theme: {\n extend: {\n animation: {\n \"accordion-down\": \"accordion-down 0.2s ease-out\",\n \"accordion-up\": \"accordion-up 0.2s ease-out\",\n \"caret-blink\": \"caret-blink 1.25s ease-out infinite\",\n },\n borderRadius: {\n sm: \"calc(var(--radius, 0.25rem) - 0.125px)\", // 2px\n DEFAULT: \"var(--radius, 0.25rem)\", // 4px\n md: \"calc(var(--radius, 0.25rem) + 0.125rem)\", // 6px\n lg: \"calc(var(--radius, 0.25rem) + 0.25rem)\", // 8px\n xl: \"calc(var(--radius, 0.25rem) + 0.5rem)\", // 12px\n \"2xl\": \"calc(var(--radius, 0.25rem) + 0.75rem)\", // 16px\n \"3xl\": \"calc(var(--radius, 0.25rem) + 1.25rem)\", // 24px\n },\n colors: {\n accent: {\n DEFAULT: \"hsl(var(--accent))\",\n foreground: \"hsl(var(--accent-foreground))\",\n },\n background: \"hsl(var(--background))\",\n border: \"hsl(var(--border))\",\n card: {\n DEFAULT: \"hsl(var(--card))\",\n foreground: \"hsl(var(--card-foreground))\",\n },\n compound: \"hsl(var(--compound))\",\n destructive: {\n DEFAULT: \"hsl(var(--destructive))\",\n foreground: \"hsl(var(--destructive-foreground))\",\n },\n foreground: \"hsl(var(--foreground))\",\n info: {\n DEFAULT: \"hsl(var(--info))\",\n foreground: \"hsl(var(--info-foreground))\",\n },\n input: \"hsl(var(--input))\",\n muted: {\n DEFAULT: \"hsl(var(--muted))\",\n foreground: \"hsl(var(--muted-foreground))\",\n },\n popover: {\n DEFAULT: \"hsl(var(--popover))\",\n foreground: \"hsl(var(--popover-foreground))\",\n },\n primary: {\n DEFAULT: \"hsl(var(--primary))\",\n foreground: \"hsl(var(--primary-foreground))\",\n },\n ring: \"hsl(var(--ring))\",\n secondary: {\n DEFAULT: \"hsl(var(--secondary))\",\n foreground: \"hsl(var(--secondary-foreground))\",\n },\n success: {\n DEFAULT: \"hsl(var(--success))\",\n foreground: \"hsl(var(--success-foreground))\",\n },\n warning: {\n DEFAULT: \"hsl(var(--warning))\",\n foreground: \"hsl(var(--warning-foreground))\",\n },\n },\n fontFamily: {\n sans: `var(--font-sans, ${fontFamily.sans.join(\", \")})`,\n },\n keyframes: {\n \"accordion-down\": {\n from: {\n height: \"0\",\n },\n to: {\n height: \"var(--radix-accordion-content-height)\",\n },\n },\n \"accordion-up\": {\n from: {\n height: \"var(--radix-accordion-content-height)\",\n },\n to: {\n height: \"0\",\n },\n },\n \"caret-blink\": {\n \"0%,70%,100%\": {\n opacity: \"1\",\n },\n \"20%,50%\": {\n opacity: \"0\",\n },\n },\n },\n spacing: {\n 0.75: \"0.1875rem\", // 3px\n },\n transitionDuration: {\n 250: \"250ms\",\n },\n },\n },\n};\n\nexport default config;\n","import plugin from \"tailwindcss/plugin\";\nimport { type Config } from \"tailwindcss/types/config\";\n\ntype Theme = <TDefaultValue = Config[\"theme\"]>(path?: string, defaultValue?: TDefaultValue) => TDefaultValue;\n\nconst animate = plugin(\n ({ addUtilities, matchUtilities, theme }) => {\n addUtilities({\n \"@keyframes enter\": {\n from: {\n opacity: \"var(--animate-enter-opacity, 1)\",\n transform: [\n \"translate3d(var(--animate-enter-translate-x, 0), var(--animate-enter-translate-y, 0), 0)\",\n \"scale3d(var(--animate-enter-scale, 1), var(--animate-enter-scale, 1), var(--animate-enter-scale, 1))\",\n \"rotate(var(--animate-enter-rotate, 0))\",\n ].join(\" \"),\n },\n },\n\n \"@keyframes exit\": {\n to: {\n opacity: \"var(--animate-exit-opacity, 1)\",\n transform: [\n \"translate3d(var(--animate-exit-translate-x, 0), var(--animate-exit-translate-y, 0), 0)\",\n \"scale3d(var(--animate-exit-scale, 1), var(--animate-exit-scale, 1), var(--animate-exit-scale, 1))\",\n \"rotate(var(--animate-exit-rotate, 0))\",\n ].join(\" \"),\n },\n },\n\n \".animate-in\": {\n animationName: \"enter\",\n animationDuration: theme(\"animationDuration.DEFAULT\"),\n \"--animate-enter-opacity\": \"initial\",\n \"--animate-enter-scale\": \"initial\",\n \"--animate-enter-rotate\": \"initial\",\n \"--animate-enter-translate-x\": \"initial\",\n \"--animate-enter-translate-y\": \"initial\",\n },\n\n \".animate-out\": {\n animationName: \"exit\",\n animationDuration: theme(\"animationDuration.DEFAULT\"),\n \"--animate-exit-opacity\": \"initial\",\n \"--animate-exit-scale\": \"initial\",\n \"--animate-exit-rotate\": \"initial\",\n \"--animate-exit-translate-x\": \"initial\",\n \"--animate-exit-translate-y\": \"initial\",\n },\n });\n\n addUtilities({\n \".animation-running\": {\n animationPlayState: \"running\",\n },\n \".animation-paused\": {\n animationPlayState: \"paused\",\n },\n });\n\n // Delay\n matchUtilities(\n {\n \"animation-delay\": (value) => ({\n animationDelay: value,\n }),\n },\n {\n values: theme(\"animationDelay\"),\n },\n );\n\n // Direction\n matchUtilities(\n {\n \"animation-direction\": (value) => ({\n animationDirection: value,\n }),\n },\n {\n values: theme(\"animationDirection\"),\n },\n );\n\n // Duration\n matchUtilities(\n {\n \"animation-duration\": (value) => ({\n animationDuration: value,\n }),\n },\n {\n values: theme(\"animationDuration\"),\n },\n );\n\n // Fill mode\n matchUtilities(\n {\n \"animation-fill-mode\": (value) => ({\n animationFillMode: value,\n }),\n },\n {\n values: theme(\"animationFillMode\"),\n },\n );\n\n // Opacity\n matchUtilities(\n {\n \"fade-in\": (value) => ({\n \"--animate-enter-opacity\": value,\n }),\n \"fade-out\": (value) => ({\n \"--animate-exit-opacity\": value,\n }),\n },\n {\n values: theme(\"animationOpacity\"),\n },\n );\n\n // Repeat\n matchUtilities(\n {\n \"animation-repeat\": (value) => ({\n animationIterationCount: value,\n }),\n },\n {\n values: theme(\"animationRepeat\"),\n },\n );\n\n // Rotate\n matchUtilities(\n {\n \"spin-in\": (value) => ({\n \"--animate-enter-rotate\": value,\n }),\n \"spin-out\": (value) => ({\n \"--animate-exit-rotate\": value,\n }),\n },\n {\n values: theme(\"animationRotate\"),\n },\n );\n\n // Scale - Zoom\n matchUtilities(\n {\n \"zoom-in\": (value) => ({\n \"--animate-enter-scale\": value,\n }),\n \"zoom-out\": (value) => ({\n \"--animate-exit-scale\": value,\n }),\n },\n {\n values: theme(\"animationScale\"),\n },\n );\n\n // Timing function\n matchUtilities(\n {\n \"animation-ease\": (value) => ({\n animationTimingFunction: value,\n }),\n },\n {\n values: theme(\"animationTimingFunction\"),\n },\n );\n\n // Translate - Slide\n matchUtilities(\n {\n \"slide-in-from-top\": (value) => ({\n \"--animate-enter-translate-y\": `-${value}`,\n }),\n\n \"slide-in-from-bottom\": (value) => ({\n \"--animate-enter-translate-y\": value,\n }),\n\n \"slide-in-from-left\": (value) => ({\n \"--animate-enter-translate-x\": `-${value}`,\n }),\n\n \"slide-in-from-right\": (value) => ({\n \"--animate-enter-translate-x\": value,\n }),\n\n \"slide-out-to-top\": (value) => ({\n \"--animate-exit-translate-y\": `-${value}`,\n }),\n\n \"slide-out-to-bottom\": (value) => ({\n \"--animate-exit-translate-y\": value,\n }),\n\n \"slide-out-to-left\": (value) => ({\n \"--animate-exit-translate-x\": `-${value}`,\n }),\n\n \"slide-out-to-right\": (value) => ({\n \"--animate-exit-translate-x\": value,\n }),\n },\n {\n values: theme(\"animationTranslate\"),\n },\n );\n },\n {\n theme: {\n extend: {\n animationDelay: ({ theme }: { theme: Theme }) => ({\n ...theme(\"transitionDelay\"),\n }),\n\n animationDirection: {\n normal: \"normal\",\n reverse: \"reverse\",\n alternate: \"alternate\",\n \"alternate-reverse\": \"alternate-reverse\",\n },\n\n animationDuration: ({ theme }: { theme: Theme }) => ({\n ...theme(\"transitionDuration\"),\n }),\n\n animationFillMode: {\n none: \"none\",\n forwards: \"forwards\",\n backwards: \"backwards\",\n both: \"both\",\n },\n\n animationOpacity: ({ theme }: { theme: Theme }) => ({\n DEFAULT: 0,\n ...theme(\"opacity\"),\n }),\n\n animationRepeat: {\n 0: \"0\",\n 1: \"1\",\n infinite: \"infinite\",\n },\n\n animationRotate: ({ theme }: { theme: Theme }) => ({\n DEFAULT: \"30deg\",\n ...theme(\"rotate\"),\n }),\n\n animationScale: ({ theme }: { theme: Theme }) => ({\n DEFAULT: 0,\n ...theme(\"scale\"),\n }),\n\n animationTimingFunction: ({ theme }: { theme: Theme }) => ({\n ...theme(\"transitionTimingFunction\"),\n }),\n\n animationTranslate: ({ theme }: { theme: Theme }) => ({\n DEFAULT: \"100%\",\n ...theme(\"translate\"),\n }),\n },\n },\n },\n);\n\nexport default animate;\n","import plugin from \"tailwindcss/plugin\";\n\nconst perspective = plugin(({ matchUtilities }) => {\n matchUtilities({\n perspective: (value) => ({\n perspective: value,\n }),\n });\n});\n\nexport default perspective;\n"]}
1
+ {"version":3,"sources":["../tailwind.config.ts","../animate.plugin.ts","../perspective.plugin.ts"],"names":["plugin"],"mappings":"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","sourcesContent":["import type { Config } from \"tailwindcss\";\nimport { fontFamily } from \"tailwindcss/defaultTheme\";\nimport animate from \"./animate.plugin\";\nimport perspective from \"./perspective.plugin\";\n\nconst config: Config = {\n content: [\"./src/**/*.{js,ts,jsx,tsx,mdx}\"],\n darkMode: [\"class\"],\n plugins: [animate, perspective],\n theme: {\n extend: {\n animation: {\n \"accordion-down\": \"accordion-down 0.2s ease-out\",\n \"accordion-up\": \"accordion-up 0.2s ease-out\",\n \"caret-blink\": \"caret-blink 1.25s ease-out infinite\",\n },\n borderRadius: {\n sm: \"calc(var(--radius, 0.25rem) - 0.125px)\", // 2px\n DEFAULT: \"var(--radius, 0.25rem)\", // 4px\n md: \"calc(var(--radius, 0.25rem) + 0.125rem)\", // 6px\n lg: \"calc(var(--radius, 0.25rem) + 0.25rem)\", // 8px\n xl: \"calc(var(--radius, 0.25rem) + 0.5rem)\", // 12px\n \"2xl\": \"calc(var(--radius, 0.25rem) + 0.75rem)\", // 16px\n \"3xl\": \"calc(var(--radius, 0.25rem) + 1.25rem)\", // 24px\n },\n colors: {\n accent: {\n DEFAULT: \"hsl(var(--accent))\",\n foreground: \"hsl(var(--accent-foreground))\",\n },\n background: \"hsl(var(--background))\",\n border: \"hsl(var(--border))\",\n card: {\n DEFAULT: \"hsl(var(--card))\",\n foreground: \"hsl(var(--card-foreground))\",\n },\n compound: \"hsl(var(--compound))\",\n destructive: {\n DEFAULT: \"hsl(var(--destructive))\",\n foreground: \"hsl(var(--destructive-foreground))\",\n },\n foreground: \"hsl(var(--foreground))\",\n info: {\n DEFAULT: \"hsl(var(--info))\",\n foreground: \"hsl(var(--info-foreground))\",\n },\n input: \"hsl(var(--input))\",\n muted: {\n DEFAULT: \"hsl(var(--muted))\",\n foreground: \"hsl(var(--muted-foreground))\",\n },\n popover: {\n DEFAULT: \"hsl(var(--popover))\",\n foreground: \"hsl(var(--popover-foreground))\",\n },\n primary: {\n DEFAULT: \"hsl(var(--primary))\",\n foreground: \"hsl(var(--primary-foreground))\",\n },\n ring: \"hsl(var(--ring))\",\n secondary: {\n DEFAULT: \"hsl(var(--secondary))\",\n foreground: \"hsl(var(--secondary-foreground))\",\n },\n success: {\n DEFAULT: \"hsl(var(--success))\",\n foreground: \"hsl(var(--success-foreground))\",\n },\n warning: {\n DEFAULT: \"hsl(var(--warning))\",\n foreground: \"hsl(var(--warning-foreground))\",\n },\n },\n fontFamily: {\n sans: `var(--font-sans, ${fontFamily.sans.join(\", \")})`,\n },\n keyframes: {\n \"accordion-down\": {\n from: {\n height: \"0\",\n },\n to: {\n height: \"var(--radix-accordion-content-height)\",\n },\n },\n \"accordion-up\": {\n from: {\n height: \"var(--radix-accordion-content-height)\",\n },\n to: {\n height: \"0\",\n },\n },\n \"caret-blink\": {\n \"0%,70%,100%\": {\n opacity: \"1\",\n },\n \"20%,50%\": {\n opacity: \"0\",\n },\n },\n },\n spacing: {\n 0.75: \"0.1875rem\", // 3px\n },\n transitionDuration: {\n 250: \"250ms\",\n },\n },\n },\n};\n\nexport default config;\n","import plugin from \"tailwindcss/plugin\";\nimport { type Config } from \"tailwindcss/types/config\";\n\ntype Theme = <TDefaultValue = Config[\"theme\"]>(path?: string, defaultValue?: TDefaultValue) => TDefaultValue;\n\nconst animate = plugin(\n ({ addUtilities, matchUtilities, theme }) => {\n addUtilities({\n \"@keyframes enter\": {\n from: {\n opacity: \"var(--animate-enter-opacity, 1)\",\n transform: [\n \"translate3d(var(--animate-enter-translate-x, 0), var(--animate-enter-translate-y, 0), 0)\",\n \"scale3d(var(--animate-enter-scale, 1), var(--animate-enter-scale, 1), var(--animate-enter-scale, 1))\",\n \"rotate(var(--animate-enter-rotate, 0))\",\n ].join(\" \"),\n },\n },\n\n \"@keyframes exit\": {\n to: {\n opacity: \"var(--animate-exit-opacity, 1)\",\n transform: [\n \"translate3d(var(--animate-exit-translate-x, 0), var(--animate-exit-translate-y, 0), 0)\",\n \"scale3d(var(--animate-exit-scale, 1), var(--animate-exit-scale, 1), var(--animate-exit-scale, 1))\",\n \"rotate(var(--animate-exit-rotate, 0))\",\n ].join(\" \"),\n },\n },\n\n \".animate-in\": {\n animationName: \"enter\",\n animationDuration: theme(\"animationDuration.DEFAULT\"),\n \"--animate-enter-opacity\": \"initial\",\n \"--animate-enter-scale\": \"initial\",\n \"--animate-enter-rotate\": \"initial\",\n \"--animate-enter-translate-x\": \"initial\",\n \"--animate-enter-translate-y\": \"initial\",\n },\n\n \".animate-out\": {\n animationName: \"exit\",\n animationDuration: theme(\"animationDuration.DEFAULT\"),\n \"--animate-exit-opacity\": \"initial\",\n \"--animate-exit-scale\": \"initial\",\n \"--animate-exit-rotate\": \"initial\",\n \"--animate-exit-translate-x\": \"initial\",\n \"--animate-exit-translate-y\": \"initial\",\n },\n });\n\n addUtilities({\n \".animation-running\": {\n animationPlayState: \"running\",\n },\n \".animation-paused\": {\n animationPlayState: \"paused\",\n },\n });\n\n // Delay\n matchUtilities(\n {\n \"animation-delay\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n animationDelay: value,\n }),\n },\n {\n values: theme(\"animationDelay\"),\n },\n );\n\n // Direction\n matchUtilities(\n {\n \"animation-direction\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n animationDirection: value,\n }),\n },\n {\n values: theme(\"animationDirection\"),\n },\n );\n\n // Duration\n matchUtilities(\n {\n \"animation-duration\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n animationDuration: value,\n }),\n },\n {\n values: theme(\"animationDuration\"),\n },\n );\n\n // Fill mode\n matchUtilities(\n {\n \"animation-fill-mode\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n animationFillMode: value,\n }),\n },\n {\n values: theme(\"animationFillMode\"),\n },\n );\n\n // Opacity\n matchUtilities(\n {\n \"fade-in\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n \"--animate-enter-opacity\": value,\n }),\n \"fade-out\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n \"--animate-exit-opacity\": value,\n }),\n },\n {\n values: theme(\"animationOpacity\"),\n },\n );\n\n // Repeat\n matchUtilities(\n {\n \"animation-repeat\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n animationIterationCount: value,\n }),\n },\n {\n values: theme(\"animationRepeat\"),\n },\n );\n\n // Rotate\n matchUtilities(\n {\n \"spin-in\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n \"--animate-enter-rotate\": value,\n }),\n \"spin-out\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n \"--animate-exit-rotate\": value,\n }),\n },\n {\n values: theme(\"animationRotate\"),\n },\n );\n\n // Scale - Zoom\n matchUtilities(\n {\n \"zoom-in\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n \"--animate-enter-scale\": value,\n }),\n \"zoom-out\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n \"--animate-exit-scale\": value,\n }),\n },\n {\n values: theme(\"animationScale\"),\n },\n );\n\n // Timing function\n matchUtilities(\n {\n \"animation-ease\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n animationTimingFunction: value,\n }),\n },\n {\n values: theme(\"animationTimingFunction\"),\n },\n );\n\n // Translate - Slide\n matchUtilities(\n {\n \"slide-in-from-top\": (value) => ({\n \"--animate-enter-translate-y\": `-${value}`,\n }),\n\n \"slide-in-from-bottom\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n \"--animate-enter-translate-y\": value,\n }),\n\n \"slide-in-from-left\": (value) => ({\n \"--animate-enter-translate-x\": `-${value}`,\n }),\n\n \"slide-in-from-right\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n \"--animate-enter-translate-x\": value,\n }),\n\n \"slide-out-to-top\": (value) => ({\n \"--animate-exit-translate-y\": `-${value}`,\n }),\n\n \"slide-out-to-bottom\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n \"--animate-exit-translate-y\": value,\n }),\n\n \"slide-out-to-left\": (value) => ({\n \"--animate-exit-translate-x\": `-${value}`,\n }),\n\n \"slide-out-to-right\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n \"--animate-exit-translate-x\": value,\n }),\n },\n {\n values: theme(\"animationTranslate\"),\n },\n );\n },\n {\n theme: {\n extend: {\n animationDelay: ({ theme }: { theme: Theme }) => ({\n ...theme(\"transitionDelay\"),\n }),\n\n animationDirection: {\n normal: \"normal\",\n reverse: \"reverse\",\n alternate: \"alternate\",\n \"alternate-reverse\": \"alternate-reverse\",\n },\n\n animationDuration: ({ theme }: { theme: Theme }) => ({\n ...theme(\"transitionDuration\"),\n }),\n\n animationFillMode: {\n none: \"none\",\n forwards: \"forwards\",\n backwards: \"backwards\",\n both: \"both\",\n },\n\n animationOpacity: ({ theme }: { theme: Theme }) => ({\n DEFAULT: 0,\n ...theme(\"opacity\"),\n }),\n\n animationRepeat: {\n 0: \"0\",\n 1: \"1\",\n infinite: \"infinite\",\n },\n\n animationRotate: ({ theme }: { theme: Theme }) => ({\n DEFAULT: \"30deg\",\n ...theme(\"rotate\"),\n }),\n\n animationScale: ({ theme }: { theme: Theme }) => ({\n DEFAULT: 0,\n ...theme(\"scale\"),\n }),\n\n animationTimingFunction: ({ theme }: { theme: Theme }) => ({\n ...theme(\"transitionTimingFunction\"),\n }),\n\n animationTranslate: ({ theme }: { theme: Theme }) => ({\n DEFAULT: \"100%\",\n ...theme(\"translate\"),\n }),\n },\n },\n },\n);\n\nexport default animate;\n","import plugin from \"tailwindcss/plugin\";\n\nconst perspective = plugin(({ matchUtilities }) => {\n matchUtilities({\n perspective: (value) => ({\n perspective: value,\n }),\n });\n});\n\nexport default perspective;\n"]}
@@ -56,6 +56,7 @@ var animate = plugin(
56
56
  matchUtilities(
57
57
  {
58
58
  "animation-delay": (value) => ({
59
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
59
60
  animationDelay: value
60
61
  })
61
62
  },
@@ -66,6 +67,7 @@ var animate = plugin(
66
67
  matchUtilities(
67
68
  {
68
69
  "animation-direction": (value) => ({
70
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
69
71
  animationDirection: value
70
72
  })
71
73
  },
@@ -76,6 +78,7 @@ var animate = plugin(
76
78
  matchUtilities(
77
79
  {
78
80
  "animation-duration": (value) => ({
81
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
79
82
  animationDuration: value
80
83
  })
81
84
  },
@@ -86,6 +89,7 @@ var animate = plugin(
86
89
  matchUtilities(
87
90
  {
88
91
  "animation-fill-mode": (value) => ({
92
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
89
93
  animationFillMode: value
90
94
  })
91
95
  },
@@ -96,9 +100,11 @@ var animate = plugin(
96
100
  matchUtilities(
97
101
  {
98
102
  "fade-in": (value) => ({
103
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
99
104
  "--animate-enter-opacity": value
100
105
  }),
101
106
  "fade-out": (value) => ({
107
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
102
108
  "--animate-exit-opacity": value
103
109
  })
104
110
  },
@@ -109,6 +115,7 @@ var animate = plugin(
109
115
  matchUtilities(
110
116
  {
111
117
  "animation-repeat": (value) => ({
118
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
112
119
  animationIterationCount: value
113
120
  })
114
121
  },
@@ -119,9 +126,11 @@ var animate = plugin(
119
126
  matchUtilities(
120
127
  {
121
128
  "spin-in": (value) => ({
129
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
122
130
  "--animate-enter-rotate": value
123
131
  }),
124
132
  "spin-out": (value) => ({
133
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
125
134
  "--animate-exit-rotate": value
126
135
  })
127
136
  },
@@ -132,9 +141,11 @@ var animate = plugin(
132
141
  matchUtilities(
133
142
  {
134
143
  "zoom-in": (value) => ({
144
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
135
145
  "--animate-enter-scale": value
136
146
  }),
137
147
  "zoom-out": (value) => ({
148
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
138
149
  "--animate-exit-scale": value
139
150
  })
140
151
  },
@@ -145,6 +156,7 @@ var animate = plugin(
145
156
  matchUtilities(
146
157
  {
147
158
  "animation-ease": (value) => ({
159
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
148
160
  animationTimingFunction: value
149
161
  })
150
162
  },
@@ -158,24 +170,28 @@ var animate = plugin(
158
170
  "--animate-enter-translate-y": `-${value}`
159
171
  }),
160
172
  "slide-in-from-bottom": (value) => ({
173
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
161
174
  "--animate-enter-translate-y": value
162
175
  }),
163
176
  "slide-in-from-left": (value) => ({
164
177
  "--animate-enter-translate-x": `-${value}`
165
178
  }),
166
179
  "slide-in-from-right": (value) => ({
180
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
167
181
  "--animate-enter-translate-x": value
168
182
  }),
169
183
  "slide-out-to-top": (value) => ({
170
184
  "--animate-exit-translate-y": `-${value}`
171
185
  }),
172
186
  "slide-out-to-bottom": (value) => ({
187
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
173
188
  "--animate-exit-translate-y": value
174
189
  }),
175
190
  "slide-out-to-left": (value) => ({
176
191
  "--animate-exit-translate-x": `-${value}`
177
192
  }),
178
193
  "slide-out-to-right": (value) => ({
194
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe
179
195
  "--animate-exit-translate-x": value
180
196
  })
181
197
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../tailwind.config.ts","../animate.plugin.ts","../perspective.plugin.ts"],"sourcesContent":["import type { Config } from \"tailwindcss\";\nimport { fontFamily } from \"tailwindcss/defaultTheme\";\nimport animate from \"./animate.plugin\";\nimport perspective from \"./perspective.plugin\";\n\nconst config: Config = {\n content: [\"./src/**/*.{js,ts,jsx,tsx,mdx}\"],\n darkMode: [\"class\"],\n plugins: [animate, perspective],\n theme: {\n extend: {\n animation: {\n \"accordion-down\": \"accordion-down 0.2s ease-out\",\n \"accordion-up\": \"accordion-up 0.2s ease-out\",\n \"caret-blink\": \"caret-blink 1.25s ease-out infinite\",\n },\n borderRadius: {\n sm: \"calc(var(--radius, 0.25rem) - 0.125px)\", // 2px\n DEFAULT: \"var(--radius, 0.25rem)\", // 4px\n md: \"calc(var(--radius, 0.25rem) + 0.125rem)\", // 6px\n lg: \"calc(var(--radius, 0.25rem) + 0.25rem)\", // 8px\n xl: \"calc(var(--radius, 0.25rem) + 0.5rem)\", // 12px\n \"2xl\": \"calc(var(--radius, 0.25rem) + 0.75rem)\", // 16px\n \"3xl\": \"calc(var(--radius, 0.25rem) + 1.25rem)\", // 24px\n },\n colors: {\n accent: {\n DEFAULT: \"hsl(var(--accent))\",\n foreground: \"hsl(var(--accent-foreground))\",\n },\n background: \"hsl(var(--background))\",\n border: \"hsl(var(--border))\",\n card: {\n DEFAULT: \"hsl(var(--card))\",\n foreground: \"hsl(var(--card-foreground))\",\n },\n compound: \"hsl(var(--compound))\",\n destructive: {\n DEFAULT: \"hsl(var(--destructive))\",\n foreground: \"hsl(var(--destructive-foreground))\",\n },\n foreground: \"hsl(var(--foreground))\",\n info: {\n DEFAULT: \"hsl(var(--info))\",\n foreground: \"hsl(var(--info-foreground))\",\n },\n input: \"hsl(var(--input))\",\n muted: {\n DEFAULT: \"hsl(var(--muted))\",\n foreground: \"hsl(var(--muted-foreground))\",\n },\n popover: {\n DEFAULT: \"hsl(var(--popover))\",\n foreground: \"hsl(var(--popover-foreground))\",\n },\n primary: {\n DEFAULT: \"hsl(var(--primary))\",\n foreground: \"hsl(var(--primary-foreground))\",\n },\n ring: \"hsl(var(--ring))\",\n secondary: {\n DEFAULT: \"hsl(var(--secondary))\",\n foreground: \"hsl(var(--secondary-foreground))\",\n },\n success: {\n DEFAULT: \"hsl(var(--success))\",\n foreground: \"hsl(var(--success-foreground))\",\n },\n warning: {\n DEFAULT: \"hsl(var(--warning))\",\n foreground: \"hsl(var(--warning-foreground))\",\n },\n },\n fontFamily: {\n sans: `var(--font-sans, ${fontFamily.sans.join(\", \")})`,\n },\n keyframes: {\n \"accordion-down\": {\n from: {\n height: \"0\",\n },\n to: {\n height: \"var(--radix-accordion-content-height)\",\n },\n },\n \"accordion-up\": {\n from: {\n height: \"var(--radix-accordion-content-height)\",\n },\n to: {\n height: \"0\",\n },\n },\n \"caret-blink\": {\n \"0%,70%,100%\": {\n opacity: \"1\",\n },\n \"20%,50%\": {\n opacity: \"0\",\n },\n },\n },\n spacing: {\n 0.75: \"0.1875rem\", // 3px\n },\n transitionDuration: {\n 250: \"250ms\",\n },\n },\n },\n};\n\nexport default config;\n","import plugin from \"tailwindcss/plugin\";\nimport { type Config } from \"tailwindcss/types/config\";\n\ntype Theme = <TDefaultValue = Config[\"theme\"]>(path?: string, defaultValue?: TDefaultValue) => TDefaultValue;\n\nconst animate = plugin(\n ({ addUtilities, matchUtilities, theme }) => {\n addUtilities({\n \"@keyframes enter\": {\n from: {\n opacity: \"var(--animate-enter-opacity, 1)\",\n transform: [\n \"translate3d(var(--animate-enter-translate-x, 0), var(--animate-enter-translate-y, 0), 0)\",\n \"scale3d(var(--animate-enter-scale, 1), var(--animate-enter-scale, 1), var(--animate-enter-scale, 1))\",\n \"rotate(var(--animate-enter-rotate, 0))\",\n ].join(\" \"),\n },\n },\n\n \"@keyframes exit\": {\n to: {\n opacity: \"var(--animate-exit-opacity, 1)\",\n transform: [\n \"translate3d(var(--animate-exit-translate-x, 0), var(--animate-exit-translate-y, 0), 0)\",\n \"scale3d(var(--animate-exit-scale, 1), var(--animate-exit-scale, 1), var(--animate-exit-scale, 1))\",\n \"rotate(var(--animate-exit-rotate, 0))\",\n ].join(\" \"),\n },\n },\n\n \".animate-in\": {\n animationName: \"enter\",\n animationDuration: theme(\"animationDuration.DEFAULT\"),\n \"--animate-enter-opacity\": \"initial\",\n \"--animate-enter-scale\": \"initial\",\n \"--animate-enter-rotate\": \"initial\",\n \"--animate-enter-translate-x\": \"initial\",\n \"--animate-enter-translate-y\": \"initial\",\n },\n\n \".animate-out\": {\n animationName: \"exit\",\n animationDuration: theme(\"animationDuration.DEFAULT\"),\n \"--animate-exit-opacity\": \"initial\",\n \"--animate-exit-scale\": \"initial\",\n \"--animate-exit-rotate\": \"initial\",\n \"--animate-exit-translate-x\": \"initial\",\n \"--animate-exit-translate-y\": \"initial\",\n },\n });\n\n addUtilities({\n \".animation-running\": {\n animationPlayState: \"running\",\n },\n \".animation-paused\": {\n animationPlayState: \"paused\",\n },\n });\n\n // Delay\n matchUtilities(\n {\n \"animation-delay\": (value) => ({\n animationDelay: value,\n }),\n },\n {\n values: theme(\"animationDelay\"),\n },\n );\n\n // Direction\n matchUtilities(\n {\n \"animation-direction\": (value) => ({\n animationDirection: value,\n }),\n },\n {\n values: theme(\"animationDirection\"),\n },\n );\n\n // Duration\n matchUtilities(\n {\n \"animation-duration\": (value) => ({\n animationDuration: value,\n }),\n },\n {\n values: theme(\"animationDuration\"),\n },\n );\n\n // Fill mode\n matchUtilities(\n {\n \"animation-fill-mode\": (value) => ({\n animationFillMode: value,\n }),\n },\n {\n values: theme(\"animationFillMode\"),\n },\n );\n\n // Opacity\n matchUtilities(\n {\n \"fade-in\": (value) => ({\n \"--animate-enter-opacity\": value,\n }),\n \"fade-out\": (value) => ({\n \"--animate-exit-opacity\": value,\n }),\n },\n {\n values: theme(\"animationOpacity\"),\n },\n );\n\n // Repeat\n matchUtilities(\n {\n \"animation-repeat\": (value) => ({\n animationIterationCount: value,\n }),\n },\n {\n values: theme(\"animationRepeat\"),\n },\n );\n\n // Rotate\n matchUtilities(\n {\n \"spin-in\": (value) => ({\n \"--animate-enter-rotate\": value,\n }),\n \"spin-out\": (value) => ({\n \"--animate-exit-rotate\": value,\n }),\n },\n {\n values: theme(\"animationRotate\"),\n },\n );\n\n // Scale - Zoom\n matchUtilities(\n {\n \"zoom-in\": (value) => ({\n \"--animate-enter-scale\": value,\n }),\n \"zoom-out\": (value) => ({\n \"--animate-exit-scale\": value,\n }),\n },\n {\n values: theme(\"animationScale\"),\n },\n );\n\n // Timing function\n matchUtilities(\n {\n \"animation-ease\": (value) => ({\n animationTimingFunction: value,\n }),\n },\n {\n values: theme(\"animationTimingFunction\"),\n },\n );\n\n // Translate - Slide\n matchUtilities(\n {\n \"slide-in-from-top\": (value) => ({\n \"--animate-enter-translate-y\": `-${value}`,\n }),\n\n \"slide-in-from-bottom\": (value) => ({\n \"--animate-enter-translate-y\": value,\n }),\n\n \"slide-in-from-left\": (value) => ({\n \"--animate-enter-translate-x\": `-${value}`,\n }),\n\n \"slide-in-from-right\": (value) => ({\n \"--animate-enter-translate-x\": value,\n }),\n\n \"slide-out-to-top\": (value) => ({\n \"--animate-exit-translate-y\": `-${value}`,\n }),\n\n \"slide-out-to-bottom\": (value) => ({\n \"--animate-exit-translate-y\": value,\n }),\n\n \"slide-out-to-left\": (value) => ({\n \"--animate-exit-translate-x\": `-${value}`,\n }),\n\n \"slide-out-to-right\": (value) => ({\n \"--animate-exit-translate-x\": value,\n }),\n },\n {\n values: theme(\"animationTranslate\"),\n },\n );\n },\n {\n theme: {\n extend: {\n animationDelay: ({ theme }: { theme: Theme }) => ({\n ...theme(\"transitionDelay\"),\n }),\n\n animationDirection: {\n normal: \"normal\",\n reverse: \"reverse\",\n alternate: \"alternate\",\n \"alternate-reverse\": \"alternate-reverse\",\n },\n\n animationDuration: ({ theme }: { theme: Theme }) => ({\n ...theme(\"transitionDuration\"),\n }),\n\n animationFillMode: {\n none: \"none\",\n forwards: \"forwards\",\n backwards: \"backwards\",\n both: \"both\",\n },\n\n animationOpacity: ({ theme }: { theme: Theme }) => ({\n DEFAULT: 0,\n ...theme(\"opacity\"),\n }),\n\n animationRepeat: {\n 0: \"0\",\n 1: \"1\",\n infinite: \"infinite\",\n },\n\n animationRotate: ({ theme }: { theme: Theme }) => ({\n DEFAULT: \"30deg\",\n ...theme(\"rotate\"),\n }),\n\n animationScale: ({ theme }: { theme: Theme }) => ({\n DEFAULT: 0,\n ...theme(\"scale\"),\n }),\n\n animationTimingFunction: ({ theme }: { theme: Theme }) => ({\n ...theme(\"transitionTimingFunction\"),\n }),\n\n animationTranslate: ({ theme }: { theme: Theme }) => ({\n DEFAULT: \"100%\",\n ...theme(\"translate\"),\n }),\n },\n },\n },\n);\n\nexport default animate;\n","import plugin from \"tailwindcss/plugin\";\n\nconst perspective = plugin(({ matchUtilities }) => {\n matchUtilities({\n perspective: (value) => ({\n perspective: value,\n }),\n });\n});\n\nexport default perspective;\n"],"mappings":"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","names":["plugin"]}
1
+ {"version":3,"sources":["../tailwind.config.ts","../animate.plugin.ts","../perspective.plugin.ts"],"sourcesContent":["import type { Config } from \"tailwindcss\";\nimport { fontFamily } from \"tailwindcss/defaultTheme\";\nimport animate from \"./animate.plugin\";\nimport perspective from \"./perspective.plugin\";\n\nconst config: Config = {\n content: [\"./src/**/*.{js,ts,jsx,tsx,mdx}\"],\n darkMode: [\"class\"],\n plugins: [animate, perspective],\n theme: {\n extend: {\n animation: {\n \"accordion-down\": \"accordion-down 0.2s ease-out\",\n \"accordion-up\": \"accordion-up 0.2s ease-out\",\n \"caret-blink\": \"caret-blink 1.25s ease-out infinite\",\n },\n borderRadius: {\n sm: \"calc(var(--radius, 0.25rem) - 0.125px)\", // 2px\n DEFAULT: \"var(--radius, 0.25rem)\", // 4px\n md: \"calc(var(--radius, 0.25rem) + 0.125rem)\", // 6px\n lg: \"calc(var(--radius, 0.25rem) + 0.25rem)\", // 8px\n xl: \"calc(var(--radius, 0.25rem) + 0.5rem)\", // 12px\n \"2xl\": \"calc(var(--radius, 0.25rem) + 0.75rem)\", // 16px\n \"3xl\": \"calc(var(--radius, 0.25rem) + 1.25rem)\", // 24px\n },\n colors: {\n accent: {\n DEFAULT: \"hsl(var(--accent))\",\n foreground: \"hsl(var(--accent-foreground))\",\n },\n background: \"hsl(var(--background))\",\n border: \"hsl(var(--border))\",\n card: {\n DEFAULT: \"hsl(var(--card))\",\n foreground: \"hsl(var(--card-foreground))\",\n },\n compound: \"hsl(var(--compound))\",\n destructive: {\n DEFAULT: \"hsl(var(--destructive))\",\n foreground: \"hsl(var(--destructive-foreground))\",\n },\n foreground: \"hsl(var(--foreground))\",\n info: {\n DEFAULT: \"hsl(var(--info))\",\n foreground: \"hsl(var(--info-foreground))\",\n },\n input: \"hsl(var(--input))\",\n muted: {\n DEFAULT: \"hsl(var(--muted))\",\n foreground: \"hsl(var(--muted-foreground))\",\n },\n popover: {\n DEFAULT: \"hsl(var(--popover))\",\n foreground: \"hsl(var(--popover-foreground))\",\n },\n primary: {\n DEFAULT: \"hsl(var(--primary))\",\n foreground: \"hsl(var(--primary-foreground))\",\n },\n ring: \"hsl(var(--ring))\",\n secondary: {\n DEFAULT: \"hsl(var(--secondary))\",\n foreground: \"hsl(var(--secondary-foreground))\",\n },\n success: {\n DEFAULT: \"hsl(var(--success))\",\n foreground: \"hsl(var(--success-foreground))\",\n },\n warning: {\n DEFAULT: \"hsl(var(--warning))\",\n foreground: \"hsl(var(--warning-foreground))\",\n },\n },\n fontFamily: {\n sans: `var(--font-sans, ${fontFamily.sans.join(\", \")})`,\n },\n keyframes: {\n \"accordion-down\": {\n from: {\n height: \"0\",\n },\n to: {\n height: \"var(--radix-accordion-content-height)\",\n },\n },\n \"accordion-up\": {\n from: {\n height: \"var(--radix-accordion-content-height)\",\n },\n to: {\n height: \"0\",\n },\n },\n \"caret-blink\": {\n \"0%,70%,100%\": {\n opacity: \"1\",\n },\n \"20%,50%\": {\n opacity: \"0\",\n },\n },\n },\n spacing: {\n 0.75: \"0.1875rem\", // 3px\n },\n transitionDuration: {\n 250: \"250ms\",\n },\n },\n },\n};\n\nexport default config;\n","import plugin from \"tailwindcss/plugin\";\nimport { type Config } from \"tailwindcss/types/config\";\n\ntype Theme = <TDefaultValue = Config[\"theme\"]>(path?: string, defaultValue?: TDefaultValue) => TDefaultValue;\n\nconst animate = plugin(\n ({ addUtilities, matchUtilities, theme }) => {\n addUtilities({\n \"@keyframes enter\": {\n from: {\n opacity: \"var(--animate-enter-opacity, 1)\",\n transform: [\n \"translate3d(var(--animate-enter-translate-x, 0), var(--animate-enter-translate-y, 0), 0)\",\n \"scale3d(var(--animate-enter-scale, 1), var(--animate-enter-scale, 1), var(--animate-enter-scale, 1))\",\n \"rotate(var(--animate-enter-rotate, 0))\",\n ].join(\" \"),\n },\n },\n\n \"@keyframes exit\": {\n to: {\n opacity: \"var(--animate-exit-opacity, 1)\",\n transform: [\n \"translate3d(var(--animate-exit-translate-x, 0), var(--animate-exit-translate-y, 0), 0)\",\n \"scale3d(var(--animate-exit-scale, 1), var(--animate-exit-scale, 1), var(--animate-exit-scale, 1))\",\n \"rotate(var(--animate-exit-rotate, 0))\",\n ].join(\" \"),\n },\n },\n\n \".animate-in\": {\n animationName: \"enter\",\n animationDuration: theme(\"animationDuration.DEFAULT\"),\n \"--animate-enter-opacity\": \"initial\",\n \"--animate-enter-scale\": \"initial\",\n \"--animate-enter-rotate\": \"initial\",\n \"--animate-enter-translate-x\": \"initial\",\n \"--animate-enter-translate-y\": \"initial\",\n },\n\n \".animate-out\": {\n animationName: \"exit\",\n animationDuration: theme(\"animationDuration.DEFAULT\"),\n \"--animate-exit-opacity\": \"initial\",\n \"--animate-exit-scale\": \"initial\",\n \"--animate-exit-rotate\": \"initial\",\n \"--animate-exit-translate-x\": \"initial\",\n \"--animate-exit-translate-y\": \"initial\",\n },\n });\n\n addUtilities({\n \".animation-running\": {\n animationPlayState: \"running\",\n },\n \".animation-paused\": {\n animationPlayState: \"paused\",\n },\n });\n\n // Delay\n matchUtilities(\n {\n \"animation-delay\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n animationDelay: value,\n }),\n },\n {\n values: theme(\"animationDelay\"),\n },\n );\n\n // Direction\n matchUtilities(\n {\n \"animation-direction\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n animationDirection: value,\n }),\n },\n {\n values: theme(\"animationDirection\"),\n },\n );\n\n // Duration\n matchUtilities(\n {\n \"animation-duration\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n animationDuration: value,\n }),\n },\n {\n values: theme(\"animationDuration\"),\n },\n );\n\n // Fill mode\n matchUtilities(\n {\n \"animation-fill-mode\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n animationFillMode: value,\n }),\n },\n {\n values: theme(\"animationFillMode\"),\n },\n );\n\n // Opacity\n matchUtilities(\n {\n \"fade-in\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n \"--animate-enter-opacity\": value,\n }),\n \"fade-out\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n \"--animate-exit-opacity\": value,\n }),\n },\n {\n values: theme(\"animationOpacity\"),\n },\n );\n\n // Repeat\n matchUtilities(\n {\n \"animation-repeat\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n animationIterationCount: value,\n }),\n },\n {\n values: theme(\"animationRepeat\"),\n },\n );\n\n // Rotate\n matchUtilities(\n {\n \"spin-in\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n \"--animate-enter-rotate\": value,\n }),\n \"spin-out\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n \"--animate-exit-rotate\": value,\n }),\n },\n {\n values: theme(\"animationRotate\"),\n },\n );\n\n // Scale - Zoom\n matchUtilities(\n {\n \"zoom-in\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n \"--animate-enter-scale\": value,\n }),\n \"zoom-out\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n \"--animate-exit-scale\": value,\n }),\n },\n {\n values: theme(\"animationScale\"),\n },\n );\n\n // Timing function\n matchUtilities(\n {\n \"animation-ease\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n animationTimingFunction: value,\n }),\n },\n {\n values: theme(\"animationTimingFunction\"),\n },\n );\n\n // Translate - Slide\n matchUtilities(\n {\n \"slide-in-from-top\": (value) => ({\n \"--animate-enter-translate-y\": `-${value}`,\n }),\n\n \"slide-in-from-bottom\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n \"--animate-enter-translate-y\": value,\n }),\n\n \"slide-in-from-left\": (value) => ({\n \"--animate-enter-translate-x\": `-${value}`,\n }),\n\n \"slide-in-from-right\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n \"--animate-enter-translate-x\": value,\n }),\n\n \"slide-out-to-top\": (value) => ({\n \"--animate-exit-translate-y\": `-${value}`,\n }),\n\n \"slide-out-to-bottom\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n \"--animate-exit-translate-y\": value,\n }),\n\n \"slide-out-to-left\": (value) => ({\n \"--animate-exit-translate-x\": `-${value}`,\n }),\n\n \"slide-out-to-right\": (value) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe\n \"--animate-exit-translate-x\": value,\n }),\n },\n {\n values: theme(\"animationTranslate\"),\n },\n );\n },\n {\n theme: {\n extend: {\n animationDelay: ({ theme }: { theme: Theme }) => ({\n ...theme(\"transitionDelay\"),\n }),\n\n animationDirection: {\n normal: \"normal\",\n reverse: \"reverse\",\n alternate: \"alternate\",\n \"alternate-reverse\": \"alternate-reverse\",\n },\n\n animationDuration: ({ theme }: { theme: Theme }) => ({\n ...theme(\"transitionDuration\"),\n }),\n\n animationFillMode: {\n none: \"none\",\n forwards: \"forwards\",\n backwards: \"backwards\",\n both: \"both\",\n },\n\n animationOpacity: ({ theme }: { theme: Theme }) => ({\n DEFAULT: 0,\n ...theme(\"opacity\"),\n }),\n\n animationRepeat: {\n 0: \"0\",\n 1: \"1\",\n infinite: \"infinite\",\n },\n\n animationRotate: ({ theme }: { theme: Theme }) => ({\n DEFAULT: \"30deg\",\n ...theme(\"rotate\"),\n }),\n\n animationScale: ({ theme }: { theme: Theme }) => ({\n DEFAULT: 0,\n ...theme(\"scale\"),\n }),\n\n animationTimingFunction: ({ theme }: { theme: Theme }) => ({\n ...theme(\"transitionTimingFunction\"),\n }),\n\n animationTranslate: ({ theme }: { theme: Theme }) => ({\n DEFAULT: \"100%\",\n ...theme(\"translate\"),\n }),\n },\n },\n },\n);\n\nexport default animate;\n","import plugin from \"tailwindcss/plugin\";\n\nconst perspective = plugin(({ matchUtilities }) => {\n matchUtilities({\n perspective: (value) => ({\n perspective: value,\n }),\n });\n});\n\nexport default perspective;\n"],"mappings":"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","names":["plugin"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codefast/ui",
3
- "version": "0.0.24",
3
+ "version": "0.0.26",
4
4
  "license": "MIT",
5
5
  "sideEffects": [
6
6
  "**/*.css"
@@ -330,7 +330,10 @@
330
330
  },
331
331
  "files": [
332
332
  "dist",
333
- "src"
333
+ "src",
334
+ "animate.plugin.ts",
335
+ "perspective.plugin.ts",
336
+ "tailwind.config.ts"
334
337
  ],
335
338
  "dependencies": {
336
339
  "@radix-ui/primitive": "^1.0.1",
@@ -391,8 +394,8 @@
391
394
  "tailwindcss": "^3.4.3",
392
395
  "tsup": "^8.0.2",
393
396
  "typescript": "^5.4.5",
394
- "@codefast/eslint-config": "0.0.17",
395
- "@codefast/typescript-config": "0.0.2"
397
+ "@codefast/typescript-config": "0.0.2",
398
+ "@codefast/eslint-config": "0.0.18"
396
399
  },
397
400
  "peerDependencies": {
398
401
  "@types/react": "*",
@@ -0,0 +1,11 @@
1
+ import plugin from "tailwindcss/plugin";
2
+
3
+ const perspective = plugin(({ matchUtilities }) => {
4
+ matchUtilities({
5
+ perspective: (value) => ({
6
+ perspective: value,
7
+ }),
8
+ });
9
+ });
10
+
11
+ export default perspective;
@@ -2,7 +2,6 @@
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";
6
5
  import {
7
6
  ArrowDownIcon,
8
7
  ArrowUpIcon,
@@ -223,7 +222,7 @@ function DataTableColumnHeader<TData, TValue>({
223
222
  );
224
223
  }
225
224
 
226
- function SortIcon({ sorted }: { sorted: false | SortDirection }): React.JSX.Element {
225
+ function SortIcon({ sorted }: { sorted: false | ReactTable.SortDirection }): React.JSX.Element {
227
226
  switch (sorted) {
228
227
  case "desc":
229
228
  return <ArrowDownIcon className="ml-2 size-4" />;
@@ -0,0 +1,113 @@
1
+ import type { Config } from "tailwindcss";
2
+ import { fontFamily } from "tailwindcss/defaultTheme";
3
+ import animate from "./animate.plugin";
4
+ import perspective from "./perspective.plugin";
5
+
6
+ const config: Config = {
7
+ content: ["./src/**/*.{js,ts,jsx,tsx,mdx}"],
8
+ darkMode: ["class"],
9
+ plugins: [animate, perspective],
10
+ theme: {
11
+ extend: {
12
+ animation: {
13
+ "accordion-down": "accordion-down 0.2s ease-out",
14
+ "accordion-up": "accordion-up 0.2s ease-out",
15
+ "caret-blink": "caret-blink 1.25s ease-out infinite",
16
+ },
17
+ borderRadius: {
18
+ sm: "calc(var(--radius, 0.25rem) - 0.125px)", // 2px
19
+ DEFAULT: "var(--radius, 0.25rem)", // 4px
20
+ md: "calc(var(--radius, 0.25rem) + 0.125rem)", // 6px
21
+ lg: "calc(var(--radius, 0.25rem) + 0.25rem)", // 8px
22
+ xl: "calc(var(--radius, 0.25rem) + 0.5rem)", // 12px
23
+ "2xl": "calc(var(--radius, 0.25rem) + 0.75rem)", // 16px
24
+ "3xl": "calc(var(--radius, 0.25rem) + 1.25rem)", // 24px
25
+ },
26
+ colors: {
27
+ accent: {
28
+ DEFAULT: "hsl(var(--accent))",
29
+ foreground: "hsl(var(--accent-foreground))",
30
+ },
31
+ background: "hsl(var(--background))",
32
+ border: "hsl(var(--border))",
33
+ card: {
34
+ DEFAULT: "hsl(var(--card))",
35
+ foreground: "hsl(var(--card-foreground))",
36
+ },
37
+ compound: "hsl(var(--compound))",
38
+ destructive: {
39
+ DEFAULT: "hsl(var(--destructive))",
40
+ foreground: "hsl(var(--destructive-foreground))",
41
+ },
42
+ foreground: "hsl(var(--foreground))",
43
+ info: {
44
+ DEFAULT: "hsl(var(--info))",
45
+ foreground: "hsl(var(--info-foreground))",
46
+ },
47
+ input: "hsl(var(--input))",
48
+ muted: {
49
+ DEFAULT: "hsl(var(--muted))",
50
+ foreground: "hsl(var(--muted-foreground))",
51
+ },
52
+ popover: {
53
+ DEFAULT: "hsl(var(--popover))",
54
+ foreground: "hsl(var(--popover-foreground))",
55
+ },
56
+ primary: {
57
+ DEFAULT: "hsl(var(--primary))",
58
+ foreground: "hsl(var(--primary-foreground))",
59
+ },
60
+ ring: "hsl(var(--ring))",
61
+ secondary: {
62
+ DEFAULT: "hsl(var(--secondary))",
63
+ foreground: "hsl(var(--secondary-foreground))",
64
+ },
65
+ success: {
66
+ DEFAULT: "hsl(var(--success))",
67
+ foreground: "hsl(var(--success-foreground))",
68
+ },
69
+ warning: {
70
+ DEFAULT: "hsl(var(--warning))",
71
+ foreground: "hsl(var(--warning-foreground))",
72
+ },
73
+ },
74
+ fontFamily: {
75
+ sans: `var(--font-sans, ${fontFamily.sans.join(", ")})`,
76
+ },
77
+ keyframes: {
78
+ "accordion-down": {
79
+ from: {
80
+ height: "0",
81
+ },
82
+ to: {
83
+ height: "var(--radix-accordion-content-height)",
84
+ },
85
+ },
86
+ "accordion-up": {
87
+ from: {
88
+ height: "var(--radix-accordion-content-height)",
89
+ },
90
+ to: {
91
+ height: "0",
92
+ },
93
+ },
94
+ "caret-blink": {
95
+ "0%,70%,100%": {
96
+ opacity: "1",
97
+ },
98
+ "20%,50%": {
99
+ opacity: "0",
100
+ },
101
+ },
102
+ },
103
+ spacing: {
104
+ 0.75: "0.1875rem", // 3px
105
+ },
106
+ transitionDuration: {
107
+ 250: "250ms",
108
+ },
109
+ },
110
+ },
111
+ };
112
+
113
+ export default config;