@accounter/client 0.0.7-alpha-20250821153628-4d6eb29b129830a7fde5b659fd301c9119a8ecde → 0.0.7-alpha-20250821153812-03cbf41f6d049dc4fec6c6e7c47a0f17144b7d6a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/assets/index-BERPxH5K.css +1 -0
  3. package/dist/assets/{index-CVDLjegj.js → index-C3Jzs8px.js} +287 -287
  4. package/dist/assets/{index.es-DtgSrhIW.js → index.es-CP2tkYw-.js} +1 -1
  5. package/dist/index.html +2 -2
  6. package/package.json +1 -1
  7. package/src/components/common/inputs/index.ts +1 -1
  8. package/src/components/{ui → common/inputs}/select-with-search.tsx +4 -13
  9. package/src/components/layout/dashboard-layout.tsx +1 -1
  10. package/src/components/layout/page-layout.tsx +2 -2
  11. package/src/components/transactions-table/cells/counterparty.tsx +1 -2
  12. package/src/components/transactions-table/cells-legacy/counterparty.tsx +1 -2
  13. package/src/components/ui/accordion.tsx +1 -1
  14. package/src/components/ui/avatar.tsx +1 -1
  15. package/src/components/ui/badge.tsx +2 -2
  16. package/src/components/ui/button.tsx +5 -5
  17. package/src/components/ui/calendar.tsx +6 -3
  18. package/src/components/ui/card.tsx +1 -1
  19. package/src/components/ui/chart.tsx +3 -1
  20. package/src/components/ui/checkbox.tsx +2 -2
  21. package/src/components/ui/collapsible.tsx +19 -0
  22. package/src/components/ui/command.tsx +18 -3
  23. package/src/components/ui/dialog.tsx +15 -7
  24. package/src/components/ui/drawer.tsx +7 -2
  25. package/src/components/ui/dropdown-menu.tsx +4 -4
  26. package/src/components/ui/form.tsx +4 -4
  27. package/src/components/ui/input.tsx +2 -2
  28. package/src/components/ui/label.tsx +3 -1
  29. package/src/components/ui/popover.tsx +2 -2
  30. package/src/components/ui/scroll-area.tsx +4 -2
  31. package/src/components/ui/select.tsx +9 -5
  32. package/src/components/ui/separator.tsx +2 -2
  33. package/src/components/ui/sheet.tsx +4 -2
  34. package/src/components/ui/sonner.tsx +1 -1
  35. package/src/components/ui/switch.tsx +5 -3
  36. package/src/components/ui/table.tsx +2 -2
  37. package/src/components/ui/tabs.tsx +5 -3
  38. package/src/components/ui/textarea.tsx +1 -1
  39. package/src/components/ui/toggle.tsx +1 -1
  40. package/src/components/ui/tooltip.tsx +5 -3
  41. package/dist/assets/index-waSKKwJo.css +0 -1
  42. package/src/components/common/inputs/select-input.tsx +0 -39
  43. package/src/components/ui/collapsible.ts +0 -9
  44. package/src/components/ui/heading.tsx +0 -15
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { XIcon } from 'lucide-react';
3
+ import { cn } from '@/lib/utils.js';
3
4
  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/80',
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/50',
31
31
  className,
32
32
  )}
33
33
  {...props}
@@ -38,8 +38,11 @@ function DialogOverlay({
38
38
  function DialogContent({
39
39
  className,
40
40
  children,
41
+ showCloseButton = true,
41
42
  ...props
42
- }: React.ComponentProps<typeof DialogPrimitive.Content>) {
43
+ }: React.ComponentProps<typeof DialogPrimitive.Content> & {
44
+ showCloseButton?: boolean;
45
+ }) {
43
46
  return (
44
47
  <DialogPortal data-slot="dialog-portal">
45
48
  <DialogOverlay />
@@ -52,10 +55,15 @@ function DialogContent({
52
55
  {...props}
53
56
  >
54
57
  {children}
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>
58
+ {showCloseButton && (
59
+ <DialogPrimitive.Close
60
+ data-slot="dialog-close"
61
+ 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"
62
+ >
63
+ <XIcon />
64
+ <span className="sr-only">Close</span>
65
+ </DialogPrimitive.Close>
66
+ )}
59
67
  </DialogPrimitive.Content>
60
68
  </DialogPortal>
61
69
  );
@@ -1,6 +1,8 @@
1
+ 'use client';
2
+
1
3
  import React from 'react';
2
4
  import { Drawer as DrawerPrimitive } from 'vaul';
3
- import { cn } from '../../lib/utils.js';
5
+ import { cn } from '@/lib/utils.js';
4
6
 
5
7
  function Drawer({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Root>) {
6
8
  return <DrawerPrimitive.Root data-slot="drawer" {...props} />;
@@ -65,7 +67,10 @@ function DrawerHeader({ className, ...props }: React.ComponentProps<'div'>) {
65
67
  return (
66
68
  <div
67
69
  data-slot="drawer-header"
68
- className={cn('flex flex-col gap-1.5 p-4', className)}
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
+ )}
69
74
  {...props}
70
75
  />
71
76
  );
@@ -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';
3
4
  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] 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',
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] origin-(--radix-dropdown-menu-content-transform-origin) 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-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",
61
+ "focus:bg-gray-100 focus:text-gray-900 data-[variant=destructive]:text-red-500 data-[variant=destructive]:focus:bg-red-500/10 dark:data-[variant=destructive]:focus:bg-red-500/20 data-[variant=destructive]:focus:text-red-500 data-[variant=destructive]:*:[svg]:!text-destructive [&_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-red-900 dark:data-[variant=destructive]:focus:bg-red-900/10 dark:dark:data-[variant=destructive]:focus:bg-red-900/20 dark:data-[variant=destructive]:focus:text-red-900 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] overflow-hidden rounded-md border border-gray-200 p-1 shadow-lg dark:bg-gray-950 dark:text-gray-50 dark:border-gray-800',
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] origin-(--radix-dropdown-menu-content-transform-origin) 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';
11
13
  import * as LabelPrimitive from '@radix-ui/react-label';
12
14
  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-gray-50 dark:data-[error=true]:text-gray-50',
87
+ 'data-[error=true]:text-red-500 dark:data-[error=true]:text-red-900',
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-500', className)}
135
+ className={cn('text-red-500 text-sm dark:text-red-900', className)}
136
136
  {...props}
137
137
  >
138
138
  {body}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { cn } from '../../lib/utils.js';
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
- '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',
10
+ 'file:text-gray-950 placeholder:text-gray-500 selection:bg-gray-900 selection:text-gray-50 dark:bg-gray-200/30 border-gray-200 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:file:text-gray-50 dark:placeholder:text-gray-400 dark:selection:bg-gray-50 dark:selection:text-gray-900 dark:dark:bg-gray-800/30 dark:border-gray-800',
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,6 +1,8 @@
1
+ 'use client';
2
+
1
3
  import React from 'react';
4
+ import { cn } from '@/lib/utils.js';
2
5
  import * as LabelPrimitive from '@radix-ui/react-label';
3
- import { cn } from '../../lib/utils.js';
4
6
 
5
7
  function Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {
6
8
  return (
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
+ import { cn } from '@/lib/utils.js';
2
3
  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 rounded-md border border-gray-200 p-4 shadow-md outline-hidden dark:bg-gray-950 dark:text-gray-50 dark:border-gray-800',
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 origin-(--radix-popover-content-transform-origin) 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,6 +1,8 @@
1
+ 'use client';
2
+
1
3
  import React from 'react';
4
+ import { cn } from '@/lib/utils.js';
2
5
  import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
3
- import { cn } from '../../lib/utils.js';
4
6
 
5
7
  function ScrollArea({
6
8
  className,
@@ -15,7 +17,7 @@ function ScrollArea({
15
17
  >
16
18
  <ScrollAreaPrimitive.Viewport
17
19
  data-slot="scroll-area-viewport"
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"
20
+ className="focus-visible:ring-gray-950/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1 dark:focus-visible:ring-gray-300/50"
19
21
  >
20
22
  {children}
21
23
  </ScrollAreaPrimitive.Viewport>
@@ -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';
3
4
  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,14 +17,18 @@ function SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.V
17
17
 
18
18
  function SelectTrigger({
19
19
  className,
20
+ size = 'default',
20
21
  children,
21
22
  ...props
22
- }: React.ComponentProps<typeof SelectPrimitive.Trigger>) {
23
+ }: React.ComponentProps<typeof SelectPrimitive.Trigger> & {
24
+ size?: 'sm' | 'default';
25
+ }) {
23
26
  return (
24
27
  <SelectPrimitive.Trigger
25
28
  data-slot="select-trigger"
29
+ data-size={size}
26
30
  className={cn(
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%]",
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 dark:bg-gray-200/30 dark:hover:bg-gray-200/50 flex 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-[size=default]:h-9 data-[size=sm]:h-8 *: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 dark:dark:bg-gray-800/30 dark:dark:hover:bg-gray-800/50",
28
32
  className,
29
33
  )}
30
34
  {...props}
@@ -48,7 +52,7 @@ function SelectContent({
48
52
  <SelectPrimitive.Content
49
53
  data-slot="select-content"
50
54
  className={cn(
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',
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-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-gray-200 shadow-md dark:bg-gray-950 dark:text-gray-50 dark:border-gray-800',
52
56
  position === 'popper' &&
53
57
  'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',
54
58
  className,
@@ -76,7 +80,7 @@ function SelectLabel({ className, ...props }: React.ComponentProps<typeof Select
76
80
  return (
77
81
  <SelectPrimitive.Label
78
82
  data-slot="select-label"
79
- className={cn('px-2 py-1.5 text-sm font-medium', className)}
83
+ className={cn('text-gray-500 px-2 py-1.5 text-xs dark:text-gray-400', className)}
80
84
  {...props}
81
85
  />
82
86
  );
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
+ import { cn } from '@/lib/utils.js';
2
3
  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-root"
13
+ data-slot="separator"
14
14
  decorative={decorative}
15
15
  orientation={orientation}
16
16
  className={cn(
@@ -1,7 +1,9 @@
1
+ 'use client';
2
+
1
3
  import React from 'react';
2
4
  import { XIcon } from 'lucide-react';
5
+ import { cn } from '@/lib/utils.js';
3
6
  import * as SheetPrimitive from '@radix-ui/react-dialog';
4
- import { cn } from '../../lib/utils.js';
5
7
 
6
8
  function Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {
7
9
  return <SheetPrimitive.Root data-slot="sheet" {...props} />;
@@ -27,7 +29,7 @@ function SheetOverlay({
27
29
  <SheetPrimitive.Overlay
28
30
  data-slot="sheet-overlay"
29
31
  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/80',
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/50',
31
33
  className,
32
34
  )}
33
35
  {...props}
@@ -2,7 +2,7 @@ import { useTheme } from 'next-themes';
2
2
  import { Toaster as Sonner, type ToasterProps } from 'sonner';
3
3
 
4
4
  const Toaster = ({ ...props }: ToasterProps) => {
5
- const { theme = 'light' } = useTheme();
5
+ const { theme = 'system' } = useTheme();
6
6
 
7
7
  return (
8
8
  <Sonner
@@ -1,13 +1,15 @@
1
+ 'use client';
2
+
1
3
  import React from 'react';
4
+ import { cn } from '@/lib/utils.js';
2
5
  import * as SwitchPrimitive from '@radix-ui/react-switch';
3
- import { cn } from '../../lib/utils.js';
4
6
 
5
7
  function Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>) {
6
8
  return (
7
9
  <SwitchPrimitive.Root
8
10
  data-slot="switch"
9
11
  className={cn(
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',
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 dark:data-[state=unchecked]:bg-gray-200/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-gray-200 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 dark:dark:data-[state=unchecked]:bg-gray-800/80 dark:border-gray-800',
11
13
  className,
12
14
  )}
13
15
  {...props}
@@ -15,7 +17,7 @@ function Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimi
15
17
  <SwitchPrimitive.Thumb
16
18
  data-slot="switch-thumb"
17
19
  className={cn(
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',
20
+ 'bg-white dark:data-[state=unchecked]:bg-gray-950 dark:data-[state=checked]:bg-gray-50 pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 dark:bg-gray-950 dark:dark:data-[state=unchecked]:bg-gray-50 dark:dark:data-[state=checked]:bg-gray-900',
19
21
  )}
20
22
  />
21
23
  </SwitchPrimitive.Root>
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { cn } from '../../lib/utils.js';
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-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',
61
+ 'text-gray-950 h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px] dark:text-gray-50',
62
62
  className,
63
63
  )}
64
64
  {...props}
@@ -1,6 +1,8 @@
1
+ 'use client';
2
+
1
3
  import React from 'react';
4
+ import { cn } from '@/lib/utils.js';
2
5
  import * as TabsPrimitive from '@radix-ui/react-tabs';
3
- import { cn } from '../../lib/utils.js';
4
6
 
5
7
  function Tabs({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Root>) {
6
8
  return (
@@ -17,7 +19,7 @@ function TabsList({ className, ...props }: React.ComponentProps<typeof TabsPrimi
17
19
  <TabsPrimitive.List
18
20
  data-slot="tabs-list"
19
21
  className={cn(
20
- 'bg-gray-100 text-gray-500 inline-flex h-9 w-fit items-center justify-center rounded-lg p-1 dark:bg-gray-800 dark:text-gray-400',
22
+ 'bg-gray-100 text-gray-500 inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px] dark:bg-gray-800 dark:text-gray-400',
21
23
  className,
22
24
  )}
23
25
  {...props}
@@ -30,7 +32,7 @@ function TabsTrigger({ className, ...props }: React.ComponentProps<typeof TabsPr
30
32
  <TabsPrimitive.Trigger
31
33
  data-slot="tabs-trigger"
32
34
  className={cn(
33
- "data-[state=active]:bg-white data-[state=active]:text-gray-950 focus-visible:border-gray-950 focus-visible:ring-gray-950/50 focus-visible:outline-ring inline-flex flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 dark:data-[state=active]:bg-gray-950 dark:data-[state=active]:text-gray-50 dark:focus-visible:border-gray-300 dark:focus-visible:ring-gray-300/50",
35
+ "data-[state=active]:bg-white dark:data-[state=active]:text-gray-950 focus-visible:border-gray-950 focus-visible:ring-gray-950/50 focus-visible:outline-ring dark:data-[state=active]:border-gray-200 dark:data-[state=active]:bg-gray-200/30 text-gray-950 dark:text-gray-500 inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-gray-200 border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 dark:data-[state=active]:bg-gray-950 dark:dark:data-[state=active]:text-gray-50 dark:focus-visible:border-gray-300 dark:focus-visible:ring-gray-300/50 dark:dark:data-[state=active]:border-gray-800 dark:dark:data-[state=active]:bg-gray-800/30 dark:text-gray-50 dark:dark:text-gray-400 dark:border-gray-800",
34
36
  className,
35
37
  )}
36
38
  {...props}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { cn } from '../../lib/utils.js';
2
+ import { cn } from '@/lib/utils.js';
3
3
 
4
4
  function Textarea({ className, ...props }: React.ComponentProps<'textarea'>) {
5
5
  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';
3
4
  import * as TogglePrimitive from '@radix-ui/react-toggle';
4
- import { cn } from '../../lib/utils.js';
5
5
 
6
6
  const toggleVariants = cva(
7
7
  "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-gray-100 hover:text-gray-500 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-gray-100 data-[state=on]:text-gray-900 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-gray-950 focus-visible:ring-gray-950/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 whitespace-nowrap dark:hover:bg-gray-800 dark:hover:text-gray-400 dark:data-[state=on]:bg-gray-800 dark:data-[state=on]:text-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",
@@ -1,6 +1,8 @@
1
+ 'use client';
2
+
1
3
  import React from 'react';
4
+ import { cn } from '@/lib/utils.js';
2
5
  import * as TooltipPrimitive from '@radix-ui/react-tooltip';
3
- import { cn } from '../../lib/utils.js';
4
6
 
5
7
  function TooltipProvider({
6
8
  delayDuration = 0,
@@ -39,13 +41,13 @@ function TooltipContent({
39
41
  data-slot="tooltip-content"
40
42
  sideOffset={sideOffset}
41
43
  className={cn(
42
- 'bg-gray-900 text-gray-50 animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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-fit rounded-md px-3 py-1.5 text-xs text-balance dark:bg-gray-50 dark:text-gray-900',
44
+ 'bg-gray-900 text-gray-50 animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance dark:bg-gray-50 dark:text-gray-900',
43
45
  className,
44
46
  )}
45
47
  {...props}
46
48
  >
47
49
  {children}
48
- <TooltipPrimitive.Arrow className="bg-gray-900 fill-primary z-1001 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] dark:bg-gray-50" />
50
+ <TooltipPrimitive.Arrow className="bg-gray-900 fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] dark:bg-gray-50" />
49
51
  </TooltipPrimitive.Content>
50
52
  </TooltipPrimitive.Portal>
51
53
  );