@accounter/client 0.0.7-alpha-20250821152900-10d226ddb9282dab646439fa323daab0b61c6033 → 0.0.7-alpha-20250821153628-4d6eb29b129830a7fde5b659fd301c9119a8ecde
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- package/dist/assets/{index-CabjtfX2.js → index-CVDLjegj.js} +287 -287
- package/dist/assets/index-waSKKwJo.css +1 -0
- package/dist/assets/{index.es-C1DDb-T2.js → index.es-DtgSrhIW.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +1 -1
- package/src/components/common/inputs/index.ts +1 -1
- package/src/components/common/inputs/select-input.tsx +39 -0
- package/src/components/layout/dashboard-layout.tsx +1 -1
- package/src/components/layout/page-layout.tsx +2 -2
- package/src/components/transactions-table/cells/counterparty.tsx +2 -1
- package/src/components/transactions-table/cells-legacy/counterparty.tsx +2 -1
- package/src/components/ui/accordion.tsx +1 -1
- package/src/components/ui/avatar.tsx +1 -1
- package/src/components/ui/badge.tsx +2 -2
- package/src/components/ui/button.tsx +5 -5
- package/src/components/ui/calendar.tsx +3 -6
- package/src/components/ui/card.tsx +2 -2
- package/src/components/ui/chart.tsx +1 -3
- package/src/components/ui/checkbox.tsx +2 -2
- package/src/components/ui/collapsible.ts +9 -0
- package/src/components/ui/command.tsx +3 -18
- package/src/components/ui/dialog.tsx +7 -15
- package/src/components/ui/drawer.tsx +2 -7
- package/src/components/ui/dropdown-menu.tsx +4 -4
- package/src/components/ui/form.tsx +4 -4
- package/src/components/ui/heading.tsx +15 -0
- package/src/components/ui/input.tsx +2 -2
- package/src/components/ui/label.tsx +1 -3
- package/src/components/ui/popover.tsx +2 -2
- package/src/components/ui/scroll-area.tsx +2 -4
- package/src/components/{common/inputs → ui}/select-with-search.tsx +13 -4
- package/src/components/ui/select.tsx +5 -9
- package/src/components/ui/separator.tsx +2 -2
- package/src/components/ui/sheet.tsx +2 -4
- package/src/components/ui/sonner.tsx +1 -1
- package/src/components/ui/switch.tsx +3 -5
- package/src/components/ui/table.tsx +2 -2
- package/src/components/ui/tabs.tsx +3 -5
- package/src/components/ui/textarea.tsx +1 -1
- package/src/components/ui/toggle.tsx +1 -1
- package/src/components/ui/tooltip.tsx +3 -5
- package/dist/assets/index-p-KPWm08.css +0 -1
- package/src/components/ui/collapsible.tsx +0 -19
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { cn } from '@/lib/utils.js';
|
|
3
2
|
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
3
|
+
import { cn } from '../../lib/utils.js';
|
|
4
4
|
|
|
5
5
|
function Avatar({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Root>) {
|
|
6
6
|
return (
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { cva, type VariantProps } from 'class-variance-authority';
|
|
3
|
-
import { cn } from '@/lib/utils.js';
|
|
4
3
|
import { Slot } from '@radix-ui/react-slot';
|
|
4
|
+
import { cn } from '../../lib/utils.js';
|
|
5
5
|
|
|
6
6
|
const badgeVariants = cva(
|
|
7
7
|
'inline-flex items-center justify-center rounded-md border border-gray-200 px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-gray-950 focus-visible:ring-gray-950/50 focus-visible:ring-[3px] aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 transition-[color,box-shadow] overflow-hidden dark:border-gray-800 dark:focus-visible:border-gray-300 dark:focus-visible:ring-gray-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900',
|
|
@@ -13,7 +13,7 @@ const badgeVariants = cva(
|
|
|
13
13
|
secondary:
|
|
14
14
|
'border-transparent bg-gray-100 text-gray-900 [a&]:hover:bg-gray-100/90 dark:bg-gray-800 dark:text-gray-50 dark:[a&]:hover:bg-gray-800/90',
|
|
15
15
|
destructive:
|
|
16
|
-
'border-transparent bg-red-500 text-white [a&]:hover:bg-red-500/90 focus-visible:ring-red-500/20 dark:focus-visible:ring-red-500/40 dark:bg-red-
|
|
16
|
+
'border-transparent bg-red-500 text-white [a&]:hover:bg-red-500/90 focus-visible:ring-red-500/20 dark:focus-visible:ring-red-500/40 dark:bg-red-900 dark:[a&]:hover:bg-red-900/90 dark:focus-visible:ring-red-900/20 dark:dark:focus-visible:ring-red-900/40',
|
|
17
17
|
outline:
|
|
18
18
|
'text-gray-950 [a&]:hover:bg-gray-100 [a&]:hover:text-gray-900 dark:text-gray-50 dark:[a&]:hover:bg-gray-800 dark:[a&]:hover:text-gray-50',
|
|
19
19
|
},
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { cva, type VariantProps } from 'class-variance-authority';
|
|
3
|
-
import { cn } from '@/lib/utils.js';
|
|
4
3
|
import { Slot } from '@radix-ui/react-slot';
|
|
4
|
+
import { cn } from '../../lib/utils.js';
|
|
5
5
|
|
|
6
6
|
const buttonVariants = cva(
|
|
7
|
-
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-gray-950 focus-visible:ring-gray-950/50 focus-visible:ring-[3px] aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 dark:focus-visible:border-gray-300 dark:focus-visible:ring-gray-300/50 dark:aria-invalid:ring-red-900/20 dark:
|
|
7
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-gray-950 focus-visible:ring-gray-950/50 focus-visible:ring-[3px] aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 dark:focus-visible:border-gray-300 dark:focus-visible:ring-gray-300/50 dark:aria-invalid:ring-red-900/20 dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900",
|
|
8
8
|
{
|
|
9
9
|
variants: {
|
|
10
10
|
variant: {
|
|
11
11
|
default:
|
|
12
12
|
'bg-gray-900 text-gray-50 shadow-xs hover:bg-gray-900/90 dark:bg-gray-50 dark:text-gray-900 dark:hover:bg-gray-50/90',
|
|
13
13
|
destructive:
|
|
14
|
-
'bg-red-500 text-white shadow-xs hover:bg-red-500/90 focus-visible:ring-red-500/20 dark:focus-visible:ring-red-500/40 dark:bg-red-500/60 dark:bg-red-900 dark:hover:bg-red-900/90 dark:focus-visible:ring-red-900/20 dark:
|
|
14
|
+
'bg-red-500 text-white shadow-xs hover:bg-red-500/90 focus-visible:ring-red-500/20 dark:focus-visible:ring-red-500/40 dark:bg-red-500/60 dark:bg-red-900 dark:hover:bg-red-900/90 dark:focus-visible:ring-red-900/20 dark:focus-visible:ring-red-900/40 dark:bg-red-900/60',
|
|
15
15
|
outline:
|
|
16
|
-
'border bg-white shadow-xs hover:bg-gray-100 hover:text-gray-900 dark:bg-gray-200/30 dark:border-gray-200 dark:hover:bg-gray-200/50 dark:bg-gray-950 dark:hover:bg-gray-800 dark:hover:text-gray-50 dark:
|
|
16
|
+
'border bg-white shadow-xs hover:bg-gray-100 hover:text-gray-900 dark:bg-gray-200/30 dark:border-gray-200 dark:hover:bg-gray-200/50 dark:bg-gray-950 dark:hover:bg-gray-800 dark:hover:text-gray-50 dark:bg-gray-800/30 dark:border-gray-800 dark:hover:bg-gray-800/50',
|
|
17
17
|
secondary:
|
|
18
18
|
'bg-gray-100 text-gray-900 shadow-xs hover:bg-gray-100/80 dark:bg-gray-800 dark:text-gray-50 dark:hover:bg-gray-800/80',
|
|
19
19
|
ghost:
|
|
20
|
-
'hover:bg-gray-100 hover:text-gray-900 dark:hover:bg-gray-100/50 dark:hover:bg-gray-800 dark:hover:text-gray-50 dark:
|
|
20
|
+
'hover:bg-gray-100 hover:text-gray-900 dark:hover:bg-gray-100/50 dark:hover:bg-gray-800 dark:hover:text-gray-50 dark:hover:bg-gray-800/50',
|
|
21
21
|
link: 'text-gray-900 underline-offset-4 hover:underline dark:text-gray-50',
|
|
22
22
|
},
|
|
23
23
|
size: {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';
|
|
3
3
|
import { DayButton, DayPicker, getDefaultClassNames } from 'react-day-picker';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { cn } from '../../lib/utils.js';
|
|
5
|
+
import { Button, buttonVariants } from './button.js';
|
|
6
6
|
|
|
7
7
|
function Calendar({
|
|
8
8
|
className,
|
|
@@ -62,10 +62,7 @@ function Calendar({
|
|
|
62
62
|
'relative has-focus:border-gray-950 border border-gray-200 shadow-xs has-focus:ring-gray-950/50 has-focus:ring-[3px] rounded-md dark:has-focus:border-gray-300 dark:border-gray-800 dark:has-focus:ring-gray-300/50',
|
|
63
63
|
defaultClassNames.dropdown_root,
|
|
64
64
|
),
|
|
65
|
-
dropdown: cn(
|
|
66
|
-
'absolute bg-white inset-0 opacity-0 dark:bg-gray-950',
|
|
67
|
-
defaultClassNames.dropdown,
|
|
68
|
-
),
|
|
65
|
+
dropdown: cn('absolute inset-0 opacity-0', defaultClassNames.dropdown),
|
|
69
66
|
caption_label: cn(
|
|
70
67
|
'select-none font-medium',
|
|
71
68
|
captionLayout === 'label'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { cn } from '
|
|
2
|
+
import { cn } from '../../lib/utils.js';
|
|
3
3
|
|
|
4
4
|
function Card({ className, ...props }: React.ComponentProps<'div'>) {
|
|
5
5
|
return (
|
|
@@ -19,7 +19,7 @@ function CardHeader({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
19
19
|
<div
|
|
20
20
|
data-slot="card-header"
|
|
21
21
|
className={cn(
|
|
22
|
-
'@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-
|
|
22
|
+
'@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-[data-slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6',
|
|
23
23
|
className,
|
|
24
24
|
)}
|
|
25
25
|
{...props}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
1
|
import React from 'react';
|
|
4
2
|
import * as RechartsPrimitive from 'recharts';
|
|
5
|
-
import { cn } from '
|
|
3
|
+
import { cn } from '../../lib/utils.js';
|
|
6
4
|
|
|
7
5
|
// Format: { THEME_NAME: CSS_SELECTOR }
|
|
8
6
|
const THEMES = { light: '', dark: '.dark' } as const;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { CheckIcon } from 'lucide-react';
|
|
3
|
-
import { cn } from '@/lib/utils.js';
|
|
4
3
|
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
4
|
+
import { cn } from '../../lib/utils.js';
|
|
5
5
|
|
|
6
6
|
function Checkbox({ className, ...props }: React.ComponentProps<typeof CheckboxPrimitive.Root>) {
|
|
7
7
|
return (
|
|
8
8
|
<CheckboxPrimitive.Root
|
|
9
9
|
data-slot="checkbox"
|
|
10
10
|
className={cn(
|
|
11
|
-
'peer border-gray-200
|
|
11
|
+
'peer border-gray-200 data-[state=checked]:bg-gray-900 data-[state=checked]:text-gray-50 data-[state=checked]:border-gray-900 focus-visible:border-gray-950 focus-visible:ring-gray-950/50 aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:border-gray-800 dark:data-[state=checked]:bg-gray-50 dark:data-[state=checked]:text-gray-900 dark:data-[state=checked]:border-gray-50 dark:focus-visible:border-gray-300 dark:focus-visible:ring-gray-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900',
|
|
12
12
|
className,
|
|
13
13
|
)}
|
|
14
14
|
{...props}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
|
|
2
|
+
|
|
3
|
+
const Collapsible = CollapsiblePrimitive.Root;
|
|
4
|
+
|
|
5
|
+
const { CollapsibleTrigger } = CollapsiblePrimitive;
|
|
6
|
+
|
|
7
|
+
const { CollapsibleContent } = CollapsiblePrimitive;
|
|
8
|
+
|
|
9
|
+
export { Collapsible, CollapsibleTrigger, CollapsibleContent };
|
|
@@ -1,16 +1,8 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
1
|
import React from 'react';
|
|
4
2
|
import { Command as CommandPrimitive } from 'cmdk';
|
|
5
3
|
import { SearchIcon } from 'lucide-react';
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
DialogContent,
|
|
9
|
-
DialogDescription,
|
|
10
|
-
DialogHeader,
|
|
11
|
-
DialogTitle,
|
|
12
|
-
} from '@/components/ui/dialog.js';
|
|
13
|
-
import { cn } from '@/lib/utils.js';
|
|
4
|
+
import { cn } from '../../lib/utils.js';
|
|
5
|
+
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from './dialog.js';
|
|
14
6
|
|
|
15
7
|
function Command({ className, ...props }: React.ComponentProps<typeof CommandPrimitive>) {
|
|
16
8
|
return (
|
|
@@ -29,14 +21,10 @@ function CommandDialog({
|
|
|
29
21
|
title = 'Command Palette',
|
|
30
22
|
description = 'Search for a command to run...',
|
|
31
23
|
children,
|
|
32
|
-
className,
|
|
33
|
-
showCloseButton = true,
|
|
34
24
|
...props
|
|
35
25
|
}: React.ComponentProps<typeof Dialog> & {
|
|
36
26
|
title?: string;
|
|
37
27
|
description?: string;
|
|
38
|
-
className?: string;
|
|
39
|
-
showCloseButton?: boolean;
|
|
40
28
|
}) {
|
|
41
29
|
return (
|
|
42
30
|
<Dialog {...props}>
|
|
@@ -44,10 +32,7 @@ function CommandDialog({
|
|
|
44
32
|
<DialogTitle>{title}</DialogTitle>
|
|
45
33
|
<DialogDescription>{description}</DialogDescription>
|
|
46
34
|
</DialogHeader>
|
|
47
|
-
<DialogContent
|
|
48
|
-
className={cn('overflow-hidden p-0', className)}
|
|
49
|
-
showCloseButton={showCloseButton}
|
|
50
|
-
>
|
|
35
|
+
<DialogContent className="overflow-hidden p-0">
|
|
51
36
|
<Command className="[&_[cmdk-group-heading]]:text-gray-500 **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5 dark:[&_[cmdk-group-heading]]:text-gray-400">
|
|
52
37
|
{children}
|
|
53
38
|
</Command>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { XIcon } from 'lucide-react';
|
|
3
|
-
import { cn } from '@/lib/utils.js';
|
|
4
3
|
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
4
|
+
import { cn } from '../../lib/utils.js';
|
|
5
5
|
|
|
6
6
|
function Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {
|
|
7
7
|
return <DialogPrimitive.Root data-slot="dialog" {...props} />;
|
|
@@ -27,7 +27,7 @@ function DialogOverlay({
|
|
|
27
27
|
<DialogPrimitive.Overlay
|
|
28
28
|
data-slot="dialog-overlay"
|
|
29
29
|
className={cn(
|
|
30
|
-
'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-1001 bg-black/
|
|
30
|
+
'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-1001 bg-black/80',
|
|
31
31
|
className,
|
|
32
32
|
)}
|
|
33
33
|
{...props}
|
|
@@ -38,11 +38,8 @@ function DialogOverlay({
|
|
|
38
38
|
function DialogContent({
|
|
39
39
|
className,
|
|
40
40
|
children,
|
|
41
|
-
showCloseButton = true,
|
|
42
41
|
...props
|
|
43
|
-
}: React.ComponentProps<typeof DialogPrimitive.Content>
|
|
44
|
-
showCloseButton?: boolean;
|
|
45
|
-
}) {
|
|
42
|
+
}: React.ComponentProps<typeof DialogPrimitive.Content>) {
|
|
46
43
|
return (
|
|
47
44
|
<DialogPortal data-slot="dialog-portal">
|
|
48
45
|
<DialogOverlay />
|
|
@@ -55,15 +52,10 @@ function DialogContent({
|
|
|
55
52
|
{...props}
|
|
56
53
|
>
|
|
57
54
|
{children}
|
|
58
|
-
|
|
59
|
-
<
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
>
|
|
63
|
-
<XIcon />
|
|
64
|
-
<span className="sr-only">Close</span>
|
|
65
|
-
</DialogPrimitive.Close>
|
|
66
|
-
)}
|
|
55
|
+
<DialogPrimitive.Close className="ring-offset-white focus:ring-gray-950 data-[state=open]:bg-gray-100 data-[state=open]:text-gray-500 absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 dark:ring-offset-gray-950 dark:focus:ring-gray-300 dark:data-[state=open]:bg-gray-800 dark:data-[state=open]:text-gray-400">
|
|
56
|
+
<XIcon />
|
|
57
|
+
<span className="sr-only">Close</span>
|
|
58
|
+
</DialogPrimitive.Close>
|
|
67
59
|
</DialogPrimitive.Content>
|
|
68
60
|
</DialogPortal>
|
|
69
61
|
);
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
1
|
import React from 'react';
|
|
4
2
|
import { Drawer as DrawerPrimitive } from 'vaul';
|
|
5
|
-
import { cn } from '
|
|
3
|
+
import { cn } from '../../lib/utils.js';
|
|
6
4
|
|
|
7
5
|
function Drawer({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Root>) {
|
|
8
6
|
return <DrawerPrimitive.Root data-slot="drawer" {...props} />;
|
|
@@ -67,10 +65,7 @@ function DrawerHeader({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
67
65
|
return (
|
|
68
66
|
<div
|
|
69
67
|
data-slot="drawer-header"
|
|
70
|
-
className={cn(
|
|
71
|
-
'flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left',
|
|
72
|
-
className,
|
|
73
|
-
)}
|
|
68
|
+
className={cn('flex flex-col gap-1.5 p-4', className)}
|
|
74
69
|
{...props}
|
|
75
70
|
/>
|
|
76
71
|
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react';
|
|
3
|
-
import { cn } from '@/lib/utils.js';
|
|
4
3
|
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
4
|
+
import { cn } from '../../lib/utils.js';
|
|
5
5
|
|
|
6
6
|
function DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {
|
|
7
7
|
return <DropdownMenuPrimitive.Root data-slot="dropdown-menu" {...props} />;
|
|
@@ -30,7 +30,7 @@ function DropdownMenuContent({
|
|
|
30
30
|
data-slot="dropdown-menu-content"
|
|
31
31
|
sideOffset={sideOffset}
|
|
32
32
|
className={cn(
|
|
33
|
-
'bg-white text-gray-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-1001 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem]
|
|
33
|
+
'bg-white text-gray-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-1001 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border border-gray-200 p-1 shadow-md dark:bg-gray-950 dark:text-gray-50 dark:border-gray-800',
|
|
34
34
|
className,
|
|
35
35
|
)}
|
|
36
36
|
{...props}
|
|
@@ -58,7 +58,7 @@ function DropdownMenuItem({
|
|
|
58
58
|
data-inset={inset}
|
|
59
59
|
data-variant={variant}
|
|
60
60
|
className={cn(
|
|
61
|
-
"focus:bg-gray-100 focus:text-gray-900 data-[variant=destructive]:text-
|
|
61
|
+
"focus:bg-gray-100 focus:text-gray-900 data-[variant=destructive]:text-gray-50 data-[variant=destructive]:focus:bg-red-500/10 dark:data-[variant=destructive]:focus:bg-red-500/40 data-[variant=destructive]:focus:text-gray-50 data-[variant=destructive]:*:[svg]:!text-destructive-foreground [&_svg:not([class*='text-'])]:text-gray-500 relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 dark:focus:bg-gray-800 dark:focus:text-gray-50 dark:data-[variant=destructive]:text-gray-50 dark:data-[variant=destructive]:focus:bg-red-900/10 dark:dark:data-[variant=destructive]:focus:bg-red-900/40 dark:data-[variant=destructive]:focus:text-gray-50 dark:[&_svg:not([class*='text-'])]:text-gray-400",
|
|
62
62
|
className,
|
|
63
63
|
)}
|
|
64
64
|
{...props}
|
|
@@ -198,7 +198,7 @@ function DropdownMenuSubContent({
|
|
|
198
198
|
<DropdownMenuPrimitive.SubContent
|
|
199
199
|
data-slot="dropdown-menu-sub-content"
|
|
200
200
|
className={cn(
|
|
201
|
-
'bg-white text-gray-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-1001 min-w-[8rem]
|
|
201
|
+
'bg-white text-gray-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-1001 min-w-[8rem] overflow-hidden rounded-md border border-gray-200 p-1 shadow-lg dark:bg-gray-950 dark:text-gray-50 dark:border-gray-800',
|
|
202
202
|
className,
|
|
203
203
|
)}
|
|
204
204
|
{...props}
|
|
@@ -8,10 +8,10 @@ import {
|
|
|
8
8
|
type FieldPath,
|
|
9
9
|
type FieldValues,
|
|
10
10
|
} from 'react-hook-form';
|
|
11
|
-
import { Label } from '@/components/ui/label.js';
|
|
12
|
-
import { cn } from '@/lib/utils.js';
|
|
13
11
|
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
14
12
|
import { Slot } from '@radix-ui/react-slot';
|
|
13
|
+
import { cn } from '../../lib/utils.js';
|
|
14
|
+
import { Label } from './label.js';
|
|
15
15
|
|
|
16
16
|
const Form = FormProvider;
|
|
17
17
|
|
|
@@ -84,7 +84,7 @@ function FormLabel({ className, ...props }: React.ComponentProps<typeof LabelPri
|
|
|
84
84
|
data-slot="form-label"
|
|
85
85
|
data-error={!!error}
|
|
86
86
|
className={cn(
|
|
87
|
-
'data-[error=true]:text-
|
|
87
|
+
'data-[error=true]:text-gray-50 dark:data-[error=true]:text-gray-50',
|
|
88
88
|
className,
|
|
89
89
|
)}
|
|
90
90
|
htmlFor={formItemId}
|
|
@@ -132,7 +132,7 @@ function FormMessage({ className, ...props }: React.ComponentProps<'p'>) {
|
|
|
132
132
|
<p
|
|
133
133
|
data-slot="form-message"
|
|
134
134
|
id={formMessageId}
|
|
135
|
-
className={cn('text-red-500 text-sm dark:text-red-
|
|
135
|
+
className={cn('text-red-500 text-sm dark:text-red-500', className)}
|
|
136
136
|
{...props}
|
|
137
137
|
>
|
|
138
138
|
{body}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React, { type JSX } from 'react';
|
|
2
|
+
|
|
3
|
+
interface HeadingProps {
|
|
4
|
+
title: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export const Heading: React.FC<HeadingProps> = ({ title, description }): JSX.Element => {
|
|
9
|
+
return (
|
|
10
|
+
<div>
|
|
11
|
+
<h2 className="w-full text-2xl font-bold tracking-tight md:text-3xl">{title}</h2>
|
|
12
|
+
{description && <p className="mt-2 text-gray-500">{description}</p>}
|
|
13
|
+
</div>
|
|
14
|
+
);
|
|
15
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { cn } from '
|
|
2
|
+
import { cn } from '../../lib/utils.js';
|
|
3
3
|
|
|
4
4
|
function Input({ className, type, ...props }: React.ComponentProps<'input'>) {
|
|
5
5
|
return (
|
|
@@ -7,7 +7,7 @@ function Input({ className, type, ...props }: React.ComponentProps<'input'>) {
|
|
|
7
7
|
type={type}
|
|
8
8
|
data-slot="input"
|
|
9
9
|
className={cn(
|
|
10
|
-
'file:text-gray-950 placeholder:text-gray-500 selection:bg-gray-900 selection:text-gray-50
|
|
10
|
+
'border-gray-200 file:text-gray-950 placeholder:text-gray-500 selection:bg-gray-900 selection:text-gray-50 flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:border-gray-800 dark:file:text-gray-50 dark:placeholder:text-gray-400 dark:selection:bg-gray-50 dark:selection:text-gray-900',
|
|
11
11
|
'focus-visible:border-gray-950 focus-visible:ring-gray-950/50 focus-visible:ring-[3px] dark:focus-visible:border-gray-300 dark:focus-visible:ring-gray-300/50',
|
|
12
12
|
'aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900',
|
|
13
13
|
className,
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
1
|
import React from 'react';
|
|
4
|
-
import { cn } from '@/lib/utils.js';
|
|
5
2
|
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
3
|
+
import { cn } from '../../lib/utils.js';
|
|
6
4
|
|
|
7
5
|
function Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {
|
|
8
6
|
return (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { cn } from '@/lib/utils.js';
|
|
3
2
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
3
|
+
import { cn } from '../../lib/utils.js';
|
|
4
4
|
|
|
5
5
|
function Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>) {
|
|
6
6
|
return <PopoverPrimitive.Root data-slot="popover" {...props} />;
|
|
@@ -23,7 +23,7 @@ function PopoverContent({
|
|
|
23
23
|
align={align}
|
|
24
24
|
sideOffset={sideOffset}
|
|
25
25
|
className={cn(
|
|
26
|
-
'bg-white text-gray-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-1001 w-72
|
|
26
|
+
'bg-white text-gray-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-1001 w-72 rounded-md border border-gray-200 p-4 shadow-md outline-hidden dark:bg-gray-950 dark:text-gray-50 dark:border-gray-800',
|
|
27
27
|
className,
|
|
28
28
|
)}
|
|
29
29
|
{...props}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
1
|
import React from 'react';
|
|
4
|
-
import { cn } from '@/lib/utils.js';
|
|
5
2
|
import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
|
|
3
|
+
import { cn } from '../../lib/utils.js';
|
|
6
4
|
|
|
7
5
|
function ScrollArea({
|
|
8
6
|
className,
|
|
@@ -17,7 +15,7 @@ function ScrollArea({
|
|
|
17
15
|
>
|
|
18
16
|
<ScrollAreaPrimitive.Viewport
|
|
19
17
|
data-slot="scroll-area-viewport"
|
|
20
|
-
className="
|
|
18
|
+
className="ring-gray-950/10 dark:ring-gray-950/20 dark:outline-ring/40 outline-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] focus-visible:ring-4 focus-visible:outline-1 dark:ring-gray-300/10 dark:dark:ring-gray-300/20"
|
|
21
19
|
>
|
|
22
20
|
{children}
|
|
23
21
|
</ScrollAreaPrimitive.Viewport>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useMemo, useState } from 'react';
|
|
2
2
|
import { CheckIcon, ChevronDownIcon } from '@radix-ui/react-icons';
|
|
3
|
-
import { cn } from '
|
|
4
|
-
import { Button } from '
|
|
3
|
+
import { cn } from '../../lib/utils.js';
|
|
4
|
+
import { Button } from '../ui/button.js';
|
|
5
5
|
import {
|
|
6
6
|
Command,
|
|
7
7
|
CommandEmpty,
|
|
@@ -9,8 +9,9 @@ import {
|
|
|
9
9
|
CommandInput,
|
|
10
10
|
CommandItem,
|
|
11
11
|
CommandList,
|
|
12
|
-
} from '
|
|
13
|
-
import {
|
|
12
|
+
} from '../ui/command.js';
|
|
13
|
+
import { Label } from '../ui/label.js';
|
|
14
|
+
import { Popover, PopoverContent, PopoverTrigger } from '../ui/popover.js';
|
|
14
15
|
|
|
15
16
|
function SelectWithSearch({
|
|
16
17
|
options,
|
|
@@ -18,19 +19,25 @@ function SelectWithSearch({
|
|
|
18
19
|
onChange,
|
|
19
20
|
search,
|
|
20
21
|
onSearchChange,
|
|
22
|
+
label,
|
|
21
23
|
placeholder,
|
|
22
24
|
empty,
|
|
25
|
+
id,
|
|
23
26
|
}: {
|
|
24
27
|
options: Array<{ value: string; label: string }>;
|
|
25
28
|
value: string | null;
|
|
26
29
|
onChange: (value: string | null) => void;
|
|
27
30
|
search: string | null;
|
|
28
31
|
onSearchChange: (value: string | null) => void;
|
|
32
|
+
label?: string;
|
|
29
33
|
placeholder?: string;
|
|
30
34
|
empty: React.ReactNode;
|
|
35
|
+
id?: string;
|
|
31
36
|
}) {
|
|
32
37
|
const [open, setOpen] = useState<boolean>(false);
|
|
33
38
|
|
|
39
|
+
const selectId = id || 'select-with-search';
|
|
40
|
+
|
|
34
41
|
const labelMap = useMemo(
|
|
35
42
|
() => Object.fromEntries(options.map(option => [option.value, option.label.toLowerCase()])),
|
|
36
43
|
[options],
|
|
@@ -38,9 +45,11 @@ function SelectWithSearch({
|
|
|
38
45
|
|
|
39
46
|
return (
|
|
40
47
|
<div className="space-y-2 w-[300px]">
|
|
48
|
+
{label && <Label htmlFor={selectId}>{label}</Label>}
|
|
41
49
|
<Popover open={open} onOpenChange={setOpen}>
|
|
42
50
|
<PopoverTrigger asChild>
|
|
43
51
|
<Button
|
|
52
|
+
id={selectId}
|
|
44
53
|
variant="outline"
|
|
45
54
|
role="combobox"
|
|
46
55
|
aria-expanded={open}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react';
|
|
3
|
-
import { cn } from '@/lib/utils.js';
|
|
4
3
|
import * as SelectPrimitive from '@radix-ui/react-select';
|
|
4
|
+
import { cn } from '../../lib/utils.js';
|
|
5
5
|
|
|
6
6
|
function Select({ ...props }: React.ComponentProps<typeof SelectPrimitive.Root>) {
|
|
7
7
|
return <SelectPrimitive.Root data-slot="select" {...props} />;
|
|
@@ -17,18 +17,14 @@ function SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.V
|
|
|
17
17
|
|
|
18
18
|
function SelectTrigger({
|
|
19
19
|
className,
|
|
20
|
-
size = 'default',
|
|
21
20
|
children,
|
|
22
21
|
...props
|
|
23
|
-
}: React.ComponentProps<typeof SelectPrimitive.Trigger>
|
|
24
|
-
size?: 'sm' | 'default';
|
|
25
|
-
}) {
|
|
22
|
+
}: React.ComponentProps<typeof SelectPrimitive.Trigger>) {
|
|
26
23
|
return (
|
|
27
24
|
<SelectPrimitive.Trigger
|
|
28
25
|
data-slot="select-trigger"
|
|
29
|
-
data-size={size}
|
|
30
26
|
className={cn(
|
|
31
|
-
"border-gray-200 data-[placeholder]:text-gray-500 [&_svg:not([class*='text-'])]:text-gray-500 focus-visible:border-gray-950 focus-visible:ring-gray-950/50 aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500
|
|
27
|
+
"border-gray-200 data-[placeholder]:text-gray-500 [&_svg:not([class*='text-'])]:text-gray-500 focus-visible:border-gray-950 focus-visible:ring-gray-950/50 aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 flex h-9 w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 dark:border-gray-800 dark:data-[placeholder]:text-gray-400 dark:[&_svg:not([class*='text-'])]:text-gray-400 dark:focus-visible:border-gray-300 dark:focus-visible:ring-gray-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900 max-w-[100%]",
|
|
32
28
|
className,
|
|
33
29
|
)}
|
|
34
30
|
{...props}
|
|
@@ -52,7 +48,7 @@ function SelectContent({
|
|
|
52
48
|
<SelectPrimitive.Content
|
|
53
49
|
data-slot="select-content"
|
|
54
50
|
className={cn(
|
|
55
|
-
'bg-white text-gray-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-
|
|
51
|
+
'bg-white text-gray-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-1001 max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-gray-200 shadow-md dark:bg-gray-950 dark:text-gray-50 dark:border-gray-800',
|
|
56
52
|
position === 'popper' &&
|
|
57
53
|
'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',
|
|
58
54
|
className,
|
|
@@ -80,7 +76,7 @@ function SelectLabel({ className, ...props }: React.ComponentProps<typeof Select
|
|
|
80
76
|
return (
|
|
81
77
|
<SelectPrimitive.Label
|
|
82
78
|
data-slot="select-label"
|
|
83
|
-
className={cn('
|
|
79
|
+
className={cn('px-2 py-1.5 text-sm font-medium', className)}
|
|
84
80
|
{...props}
|
|
85
81
|
/>
|
|
86
82
|
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { cn } from '@/lib/utils.js';
|
|
3
2
|
import * as SeparatorPrimitive from '@radix-ui/react-separator';
|
|
3
|
+
import { cn } from '../../lib/utils.js';
|
|
4
4
|
|
|
5
5
|
function Separator({
|
|
6
6
|
className,
|
|
@@ -10,7 +10,7 @@ function Separator({
|
|
|
10
10
|
}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {
|
|
11
11
|
return (
|
|
12
12
|
<SeparatorPrimitive.Root
|
|
13
|
-
data-slot="separator"
|
|
13
|
+
data-slot="separator-root"
|
|
14
14
|
decorative={decorative}
|
|
15
15
|
orientation={orientation}
|
|
16
16
|
className={cn(
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
1
|
import React from 'react';
|
|
4
2
|
import { XIcon } from 'lucide-react';
|
|
5
|
-
import { cn } from '@/lib/utils.js';
|
|
6
3
|
import * as SheetPrimitive from '@radix-ui/react-dialog';
|
|
4
|
+
import { cn } from '../../lib/utils.js';
|
|
7
5
|
|
|
8
6
|
function Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {
|
|
9
7
|
return <SheetPrimitive.Root data-slot="sheet" {...props} />;
|
|
@@ -29,7 +27,7 @@ function SheetOverlay({
|
|
|
29
27
|
<SheetPrimitive.Overlay
|
|
30
28
|
data-slot="sheet-overlay"
|
|
31
29
|
className={cn(
|
|
32
|
-
'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-1001 bg-black/
|
|
30
|
+
'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-1001 bg-black/80',
|
|
33
31
|
className,
|
|
34
32
|
)}
|
|
35
33
|
{...props}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
1
|
import React from 'react';
|
|
4
|
-
import { cn } from '@/lib/utils.js';
|
|
5
2
|
import * as SwitchPrimitive from '@radix-ui/react-switch';
|
|
3
|
+
import { cn } from '../../lib/utils.js';
|
|
6
4
|
|
|
7
5
|
function Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>) {
|
|
8
6
|
return (
|
|
9
7
|
<SwitchPrimitive.Root
|
|
10
8
|
data-slot="switch"
|
|
11
9
|
className={cn(
|
|
12
|
-
'peer data-[state=checked]:bg-gray-900 data-[state=unchecked]:bg-gray-200 focus-visible:border-gray-950 focus-visible:ring-gray-950/50
|
|
10
|
+
'peer data-[state=checked]:bg-gray-900 data-[state=unchecked]:bg-gray-200 focus-visible:border-gray-950 focus-visible:ring-gray-950/50 inline-flex h-5 w-9 shrink-0 items-center rounded-full border-2 border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:data-[state=checked]:bg-gray-50 dark:data-[state=unchecked]:bg-gray-800 dark:focus-visible:border-gray-300 dark:focus-visible:ring-gray-300/50',
|
|
13
11
|
className,
|
|
14
12
|
)}
|
|
15
13
|
{...props}
|
|
@@ -17,7 +15,7 @@ function Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimi
|
|
|
17
15
|
<SwitchPrimitive.Thumb
|
|
18
16
|
data-slot="switch-thumb"
|
|
19
17
|
className={cn(
|
|
20
|
-
'bg-white
|
|
18
|
+
'bg-white pointer-events-none block size-4 rounded-full ring-0 shadow-lg transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0 dark:bg-gray-950',
|
|
21
19
|
)}
|
|
22
20
|
/>
|
|
23
21
|
</SwitchPrimitive.Root>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { cn } from '
|
|
2
|
+
import { cn } from '../../lib/utils.js';
|
|
3
3
|
|
|
4
4
|
function Table({ className, ...props }: React.ComponentProps<'table'>) {
|
|
5
5
|
return (
|
|
@@ -58,7 +58,7 @@ function TableHead({ className, ...props }: React.ComponentProps<'th'>) {
|
|
|
58
58
|
<th
|
|
59
59
|
data-slot="table-head"
|
|
60
60
|
className={cn(
|
|
61
|
-
'text-gray-
|
|
61
|
+
'text-gray-500 h-10 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px] dark:text-gray-400',
|
|
62
62
|
className,
|
|
63
63
|
)}
|
|
64
64
|
{...props}
|