@syscore/ui-library 1.1.12 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/client/components/icons/AchievementBadges.tsx +33 -0
  2. package/client/components/icons/ConceptIcons.tsx +169 -22
  3. package/client/components/icons/NavLogo.tsx +4 -4
  4. package/client/components/icons/ProviderBadges.tsx +28 -28
  5. package/client/components/icons/ProviderSeals.tsx +35 -35
  6. package/client/components/icons/StandardLogo.tsx +47 -0
  7. package/client/components/icons/UtilityChevronDown.tsx +1 -1
  8. package/client/components/icons/UtilityClearRegular.tsx +43 -0
  9. package/client/components/icons/UtilityCompare.tsx +71 -0
  10. package/client/components/icons/UtilityHome.tsx +26 -0
  11. package/client/components/icons/UtilityReset.tsx +7 -7
  12. package/client/components/icons/UtilitySave.tsx +35 -0
  13. package/client/components/icons/UtilityScopeLarge.tsx +86 -0
  14. package/client/components/icons/UtilityShow.tsx +41 -0
  15. package/client/components/icons/UtilityTarget.tsx +21 -0
  16. package/client/components/icons/UtilityTargetActive.tsx +34 -0
  17. package/client/components/icons/UtilityText.tsx +8 -8
  18. package/client/components/ui/accordion.tsx +6 -9
  19. package/client/components/ui/alert-dialog.tsx +6 -19
  20. package/client/components/ui/alert.tsx +5 -6
  21. package/client/components/ui/avatar.tsx +3 -9
  22. package/client/components/ui/badge.tsx +5 -8
  23. package/client/components/ui/breadcrumb.tsx +24 -11
  24. package/client/components/ui/button.tsx +40 -56
  25. package/client/components/ui/calendar.tsx +24 -28
  26. package/client/components/ui/card.tsx +6 -9
  27. package/client/components/ui/carousel.tsx +14 -14
  28. package/client/components/ui/chart.tsx +25 -28
  29. package/client/components/ui/checkbox.tsx +3 -8
  30. package/client/components/ui/code-badge.tsx +22 -0
  31. package/client/components/ui/command.tsx +12 -48
  32. package/client/components/ui/context-menu.tsx +17 -32
  33. package/client/components/ui/dialog.tsx +9 -18
  34. package/client/components/ui/drawer.tsx +7 -13
  35. package/client/components/ui/dropdown-menu.tsx +17 -29
  36. package/client/components/ui/form.tsx +4 -4
  37. package/client/components/ui/hover-card.tsx +1 -4
  38. package/client/components/ui/input-otp.tsx +7 -10
  39. package/client/components/ui/input.tsx +34 -9
  40. package/client/components/ui/label.tsx +2 -4
  41. package/client/components/ui/menubar.tsx +19 -40
  42. package/client/components/ui/navigation-menu.tsx +10 -27
  43. package/client/components/ui/navigation.tsx +861 -0
  44. package/client/components/ui/pagination.tsx +8 -8
  45. package/client/components/ui/popover.tsx +1 -4
  46. package/client/components/ui/progress.tsx +2 -5
  47. package/client/components/ui/radio-group.tsx +4 -7
  48. package/client/components/ui/resizable.tsx +4 -10
  49. package/client/components/ui/scroll-area.tsx +5 -8
  50. package/client/components/ui/{SearchField.tsx → search.tsx} +7 -10
  51. package/client/components/ui/select.tsx +19 -44
  52. package/client/components/ui/separator.tsx +2 -2
  53. package/client/components/ui/sheet.tsx +12 -23
  54. package/client/components/ui/sidebar.tsx +55 -82
  55. package/client/components/ui/skeleton.tsx +1 -1
  56. package/client/components/ui/slider.tsx +4 -7
  57. package/client/components/ui/sonner.tsx +5 -8
  58. package/client/components/ui/switch.tsx +2 -9
  59. package/client/components/ui/table.tsx +9 -18
  60. package/client/components/ui/tabs.tsx +43 -203
  61. package/client/components/ui/tag.tsx +68 -0
  62. package/client/components/ui/textarea.tsx +1 -4
  63. package/client/components/ui/toast.tsx +9 -19
  64. package/client/components/ui/toaster.tsx +1 -1
  65. package/client/components/ui/toggle-group.tsx +20 -3
  66. package/client/components/ui/toggle.tsx +13 -13
  67. package/client/components/ui/tooltip.tsx +147 -10
  68. package/client/global.css +5421 -1049
  69. package/client/storybook.css +1164 -0
  70. package/client/ui/AspectRatio.stories.tsx +1 -1
  71. package/client/ui/Button.stories.tsx +5 -5
  72. package/client/ui/Card.stories.tsx +223 -2
  73. package/client/ui/CodeBadge.stories.tsx +76 -0
  74. package/client/ui/Dialog.stories.tsx +52 -5
  75. package/client/ui/Icons.stories.tsx +31 -31
  76. package/client/ui/Input.stories.tsx +125 -0
  77. package/client/ui/Label.stories.tsx +8 -11
  78. package/client/ui/Navigation.stories.tsx +1 -1
  79. package/client/ui/RadioGroup/RadioGroup.stories.tsx +1 -1
  80. package/client/ui/SearchField.stories.tsx +1 -1
  81. package/client/ui/{Select/Select.stories.tsx → Select.stories.tsx} +2 -2
  82. package/client/ui/{Switch/Switch.stories.tsx → Switch.stories.tsx} +3 -3
  83. package/client/ui/Tabs.stories.tsx +174 -10
  84. package/client/ui/Tag.stories.tsx +48 -1
  85. package/client/ui/{Textarea/Textarea.stories.tsx → Textarea.stories.tsx} +9 -10
  86. package/client/ui/Toggle.stories.tsx +3 -3
  87. package/client/ui/Tooltip.stories.tsx +28 -4
  88. package/dist/ui/index.cjs.js +1 -1
  89. package/dist/ui/index.d.ts +4 -6
  90. package/dist/ui/index.es.js +1227 -2235
  91. package/dist/ui/ui-library.css +1 -0
  92. package/package.json +3 -3
  93. package/client/components/ui/Navigation.tsx +0 -958
  94. package/client/components/ui/StrategyTable.tsx +0 -303
  95. package/client/components/ui/Tag.tsx +0 -127
  96. package/client/ui/Input/Input.stories.tsx +0 -69
  97. package/client/ui/StrategyTable.stories.tsx +0 -138
  98. package/client/ui/WELLDashboard/WELLDashboard.stories.tsx +0 -115
  99. package/client/ui/WELLDashboard/index.tsx +0 -317
  100. /package/client/hooks/{UseTabs.tsx → use-tabs.tsx} +0 -0
@@ -8,7 +8,7 @@ const Pagination = ({ className, ...props }: React.ComponentProps<"nav">) => (
8
8
  <nav
9
9
  role="navigation"
10
10
  aria-label="pagination"
11
- className={cn("mx-auto flex w-full justify-center", className)}
11
+ className={cn("pagination", className)}
12
12
  {...props}
13
13
  />
14
14
  );
@@ -20,7 +20,7 @@ const PaginationContent = React.forwardRef<
20
20
  >(({ className, ...props }, ref) => (
21
21
  <ul
22
22
  ref={ref}
23
- className={cn("flex flex-row items-center gap-1", className)}
23
+ className={cn("pagination-content", className)}
24
24
  {...props}
25
25
  />
26
26
  ));
@@ -66,10 +66,10 @@ const PaginationPrevious = ({
66
66
  <PaginationLink
67
67
  aria-label="Go to previous page"
68
68
  size="utility"
69
- className={cn("gap-1 pl-2.5", className)}
69
+ className={cn("pagination-previous", className)}
70
70
  {...props}
71
71
  >
72
- <ChevronLeft className="h-4 w-4" />
72
+ <ChevronLeft className="icon-4" />
73
73
  <span>Previous</span>
74
74
  </PaginationLink>
75
75
  );
@@ -82,11 +82,11 @@ const PaginationNext = ({
82
82
  <PaginationLink
83
83
  aria-label="Go to next page"
84
84
  size="utility"
85
- className={cn("gap-1 pr-2.5", className)}
85
+ className={cn("pagination-next", className)}
86
86
  {...props}
87
87
  >
88
88
  <span>Next</span>
89
- <ChevronRight className="h-4 w-4" />
89
+ <ChevronRight className="icon-4" />
90
90
  </PaginationLink>
91
91
  );
92
92
  PaginationNext.displayName = "PaginationNext";
@@ -97,10 +97,10 @@ const PaginationEllipsis = ({
97
97
  }: React.ComponentProps<"span">) => (
98
98
  <span
99
99
  aria-hidden
100
- className={cn("flex h-9 w-9 items-center justify-center", className)}
100
+ className={cn("pagination-ellipsis", className)}
101
101
  {...props}
102
102
  >
103
- <MoreHorizontal className="h-4 w-4" />
103
+ <MoreHorizontal className="icon-4" />
104
104
  <span className="sr-only">More pages</span>
105
105
  </span>
106
106
  );
@@ -16,10 +16,7 @@ const PopoverContent = React.forwardRef<
16
16
  ref={ref}
17
17
  align={align}
18
18
  sideOffset={sideOffset}
19
- className={cn(
20
- "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden 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",
21
- className,
22
- )}
19
+ className={cn("popover-content", className)}
23
20
  {...props}
24
21
  />
25
22
  </PopoverPrimitive.Portal>
@@ -9,14 +9,11 @@ const Progress = React.forwardRef<
9
9
  >(({ className, value, ...props }, ref) => (
10
10
  <ProgressPrimitive.Root
11
11
  ref={ref}
12
- className={cn(
13
- "relative h-4 w-full overflow-hidden rounded-full bg-secondary",
14
- className,
15
- )}
12
+ className={cn("progress", className)}
16
13
  {...props}
17
14
  >
18
15
  <ProgressPrimitive.Indicator
19
- className="h-full w-full flex-1 bg-primary transition-all"
16
+ className="progress-indicator"
20
17
  style={{ transform: `translateX(-${100 - (value || 0)}%)` }}
21
18
  />
22
19
  </ProgressPrimitive.Root>
@@ -10,7 +10,7 @@ const RadioGroup = React.forwardRef<
10
10
  >(({ className, ...props }, ref) => {
11
11
  return (
12
12
  <RadioGroupPrimitive.Root
13
- className={cn("grid gap-2", className)}
13
+ className={cn("radio-group", className)}
14
14
  {...props}
15
15
  ref={ref}
16
16
  />
@@ -25,14 +25,11 @@ const RadioGroupItem = React.forwardRef<
25
25
  return (
26
26
  <RadioGroupPrimitive.Item
27
27
  ref={ref}
28
- className={cn(
29
- "aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
30
- className,
31
- )}
28
+ className={cn("radio-group-item", className)}
32
29
  {...props}
33
30
  >
34
- <RadioGroupPrimitive.Indicator className="flex items-center justify-center">
35
- <Circle className="h-2.5 w-2.5 fill-current text-current" />
31
+ <RadioGroupPrimitive.Indicator className="radio-group-indicator">
32
+ <Circle className="icon-2-5 fill-current text-current" />
36
33
  </RadioGroupPrimitive.Indicator>
37
34
  </RadioGroupPrimitive.Item>
38
35
  );
@@ -8,10 +8,7 @@ const ResizablePanelGroup = ({
8
8
  ...props
9
9
  }: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => (
10
10
  <ResizablePrimitive.PanelGroup
11
- className={cn(
12
- "flex h-full w-full data-[panel-group-direction=vertical]:flex-col",
13
- className,
14
- )}
11
+ className={cn("resizable-panel-group", className)}
15
12
  {...props}
16
13
  />
17
14
  );
@@ -26,15 +23,12 @@ const ResizableHandle = ({
26
23
  withHandle?: boolean;
27
24
  }) => (
28
25
  <ResizablePrimitive.PanelResizeHandle
29
- className={cn(
30
- "relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",
31
- className,
32
- )}
26
+ className={cn("resizable-handle", className)}
33
27
  {...props}
34
28
  >
35
29
  {withHandle && (
36
- <div className="z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border">
37
- <GripVertical className="h-2.5 w-2.5" />
30
+ <div className="resizable-handle-grip">
31
+ <GripVertical className="icon-2-5" />
38
32
  </div>
39
33
  )}
40
34
  </ResizablePrimitive.PanelResizeHandle>
@@ -9,10 +9,10 @@ const ScrollArea = React.forwardRef<
9
9
  >(({ className, children, ...props }, ref) => (
10
10
  <ScrollAreaPrimitive.Root
11
11
  ref={ref}
12
- className={cn("relative overflow-hidden", className)}
12
+ className={cn("scroll-area", className)}
13
13
  {...props}
14
14
  >
15
- <ScrollAreaPrimitive.Viewport className="h-full w-full rounded-[inherit]">
15
+ <ScrollAreaPrimitive.Viewport className="scroll-area-viewport">
16
16
  {children}
17
17
  </ScrollAreaPrimitive.Viewport>
18
18
  <ScrollBar />
@@ -29,16 +29,13 @@ const ScrollBar = React.forwardRef<
29
29
  ref={ref}
30
30
  orientation={orientation}
31
31
  className={cn(
32
- "flex touch-none select-none transition-colors",
33
- orientation === "vertical" &&
34
- "h-full w-2.5 border-l border-l-transparent p-px",
35
- orientation === "horizontal" &&
36
- "h-2.5 flex-col border-t border-t-transparent p-px",
32
+ "scroll-bar",
33
+ orientation === "vertical" ? "scroll-bar--vertical" : "scroll-bar--horizontal",
37
34
  className,
38
35
  )}
39
36
  {...props}
40
37
  >
41
- <ScrollAreaPrimitive.ScrollAreaThumb className="relative flex-1 rounded-full bg-border" />
38
+ <ScrollAreaPrimitive.ScrollAreaThumb className="scroll-bar-thumb" />
42
39
  </ScrollAreaPrimitive.ScrollAreaScrollbar>
43
40
  ));
44
41
  ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
@@ -102,22 +102,19 @@ export const SearchField = ({
102
102
  placeholder={placeholder}
103
103
  disabled={disabled}
104
104
  className={cn(
105
- "focus-within:border-cyan-300 focus:border-cyan-300",
106
- isOpen && "rounded-b-none",
105
+ "search-field-input--focused",
106
+ isOpen && "search-field-input--open",
107
107
  )}
108
108
  />
109
109
  </div>
110
110
  <div className="relative">
111
111
  <div
112
- className={cn(
113
- "animate-in fade-in-0 absolute top-0 z-10 w-full rounded-xl bg-white outline-none",
114
- isOpen ? "block" : "hidden",
115
- )}
112
+ className={cn("search-field-dropdown", isOpen ? "block" : "hidden")}
116
113
  >
117
- <CommandList className="border-b border-x border-cyan-300">
114
+ <CommandList className="search-field-list">
118
115
  {/* {isLoading ? (
119
116
  <Skeleton>
120
- <div className="p-1">
117
+ <div className="search-field-skeleton">
121
118
  </div>
122
119
  </Skeleton>
123
120
  ) : null} */}
@@ -136,7 +133,7 @@ export const SearchField = ({
136
133
  }}
137
134
  onSelect={() => handleSelectOption(option)}
138
135
  >
139
- {isSelected ? <Check className="w-4" /> : null}
136
+ {isSelected ? <Check className="icon-4" /> : null}
140
137
  {option.label}
141
138
  </CommandItem>
142
139
  );
@@ -145,7 +142,7 @@ export const SearchField = ({
145
142
  ) : null}
146
143
 
147
144
  {!isLoading ? (
148
- <CommandEmpty className="select-none rounded-sm px-2 py-3 text-center text-sm text-gray-200">
145
+ <CommandEmpty className="search-field-empty">
149
146
  {emptyMessage}
150
147
  </CommandEmpty>
151
148
  ) : null}
@@ -1,8 +1,8 @@
1
1
  import * as React from "react";
2
2
  import * as SelectPrimitive from "@radix-ui/react-select";
3
- import { Check, ChevronDown, ChevronUp } from "lucide-react";
4
3
 
5
4
  import { cn } from "@/lib/utils";
5
+ import { UtilityChevronDown } from "../icons/UtilityChevronDown";
6
6
 
7
7
  const Select = SelectPrimitive.Root;
8
8
 
@@ -16,16 +16,17 @@ const SelectTrigger = React.forwardRef<
16
16
  >(({ className, children, ...props }, ref) => (
17
17
  <SelectPrimitive.Trigger
18
18
  ref={ref}
19
- className={cn(
20
- "flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
21
- className,
22
- )}
19
+ className={cn("select-trigger", className)}
23
20
  {...props}
24
21
  >
25
- {children}
26
- <SelectPrimitive.Icon asChild>
27
- <ChevronDown className="h-4 w-4 opacity-50" />
28
- </SelectPrimitive.Icon>
22
+ <div className="select-trigger-inner">
23
+ <span className="select-trigger-text font-mazzard body-base">
24
+ {children}
25
+ </span>
26
+ <SelectPrimitive.Icon asChild>
27
+ <UtilityChevronDown className="select-icon" />
28
+ </SelectPrimitive.Icon>
29
+ </div>
29
30
  </SelectPrimitive.Trigger>
30
31
  ));
31
32
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
@@ -36,13 +37,10 @@ const SelectScrollUpButton = React.forwardRef<
36
37
  >(({ className, ...props }, ref) => (
37
38
  <SelectPrimitive.ScrollUpButton
38
39
  ref={ref}
39
- className={cn(
40
- "flex cursor-default items-center justify-center py-1",
41
- className,
42
- )}
40
+ className={cn("select-scroll-button", className)}
43
41
  {...props}
44
42
  >
45
- <ChevronUp className="h-4 w-4" />
43
+ <UtilityChevronDown />
46
44
  </SelectPrimitive.ScrollUpButton>
47
45
  ));
48
46
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
@@ -53,13 +51,10 @@ const SelectScrollDownButton = React.forwardRef<
53
51
  >(({ className, ...props }, ref) => (
54
52
  <SelectPrimitive.ScrollDownButton
55
53
  ref={ref}
56
- className={cn(
57
- "flex cursor-default items-center justify-center py-1",
58
- className,
59
- )}
54
+ className={cn("select-scroll-button", className)}
60
55
  {...props}
61
56
  >
62
- <ChevronDown className="h-4 w-4" />
57
+ <UtilityChevronDown />
63
58
  </SelectPrimitive.ScrollDownButton>
64
59
  ));
65
60
  SelectScrollDownButton.displayName =
@@ -72,23 +67,12 @@ const SelectContent = React.forwardRef<
72
67
  <SelectPrimitive.Portal>
73
68
  <SelectPrimitive.Content
74
69
  ref={ref}
75
- className={cn(
76
- "relative z-50 max-h-96 min-w-32 overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md 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",
77
- position === "popper" &&
78
- "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
79
- className,
80
- )}
70
+ className={cn("select-content", className)}
81
71
  position={position}
82
72
  {...props}
83
73
  >
84
74
  <SelectScrollUpButton />
85
- <SelectPrimitive.Viewport
86
- className={cn(
87
- "p-1",
88
- position === "popper" &&
89
- "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width)",
90
- )}
91
- >
75
+ <SelectPrimitive.Viewport className="select-viewport">
92
76
  {children}
93
77
  </SelectPrimitive.Viewport>
94
78
  <SelectScrollDownButton />
@@ -103,7 +87,7 @@ const SelectLabel = React.forwardRef<
103
87
  >(({ className, ...props }, ref) => (
104
88
  <SelectPrimitive.Label
105
89
  ref={ref}
106
- className={cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className)}
90
+ className={cn("select-label font-mazzard", className)}
107
91
  {...props}
108
92
  />
109
93
  ));
@@ -115,18 +99,9 @@ const SelectItem = React.forwardRef<
115
99
  >(({ className, children, ...props }, ref) => (
116
100
  <SelectPrimitive.Item
117
101
  ref={ref}
118
- className={cn(
119
- "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
120
- className,
121
- )}
102
+ className={cn("select-item", className)}
122
103
  {...props}
123
104
  >
124
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
125
- <SelectPrimitive.ItemIndicator>
126
- <Check className="h-4 w-4" />
127
- </SelectPrimitive.ItemIndicator>
128
- </span>
129
-
130
105
  <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>
131
106
  </SelectPrimitive.Item>
132
107
  ));
@@ -138,7 +113,7 @@ const SelectSeparator = React.forwardRef<
138
113
  >(({ className, ...props }, ref) => (
139
114
  <SelectPrimitive.Separator
140
115
  ref={ref}
141
- className={cn("-mx-1 my-1 h-px bg-muted", className)}
116
+ className={cn("select-separator", className)}
142
117
  {...props}
143
118
  />
144
119
  ));
@@ -16,8 +16,8 @@ const Separator = React.forwardRef<
16
16
  decorative={decorative}
17
17
  orientation={orientation}
18
18
  className={cn(
19
- "shrink-0 bg-border",
20
- orientation === "horizontal" ? "h-px w-full" : "h-full w-px",
19
+ "separator",
20
+ orientation === "horizontal" ? "separator--horizontal" : "separator--vertical",
21
21
  className,
22
22
  )}
23
23
  {...props}
@@ -18,10 +18,7 @@ const SheetOverlay = React.forwardRef<
18
18
  React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>
19
19
  >(({ className, ...props }, ref) => (
20
20
  <SheetPrimitive.Overlay
21
- className={cn(
22
- "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
23
- className,
24
- )}
21
+ className={cn("sheet-overlay", className)}
25
22
  {...props}
26
23
  ref={ref}
27
24
  />
@@ -29,16 +26,14 @@ const SheetOverlay = React.forwardRef<
29
26
  SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
30
27
 
31
28
  const sheetVariants = cva(
32
- "fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
29
+ "sheet-content",
33
30
  {
34
31
  variants: {
35
32
  side: {
36
- top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
37
- bottom:
38
- "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
39
- left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
40
- right:
41
- "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm",
33
+ top: "sheet-content--top",
34
+ bottom: "sheet-content--bottom",
35
+ left: "sheet-content--left",
36
+ right: "sheet-content--right",
42
37
  },
43
38
  },
44
39
  defaultVariants: {
@@ -63,8 +58,8 @@ const SheetContent = React.forwardRef<
63
58
  {...props}
64
59
  >
65
60
  {children}
66
- <SheetPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary">
67
- <X className="h-4 w-4" />
61
+ <SheetPrimitive.Close className="sheet-close">
62
+ <X className="icon-4" />
68
63
  <span className="sr-only">Close</span>
69
64
  </SheetPrimitive.Close>
70
65
  </SheetPrimitive.Content>
@@ -77,10 +72,7 @@ const SheetHeader = ({
77
72
  ...props
78
73
  }: React.HTMLAttributes<HTMLDivElement>) => (
79
74
  <div
80
- className={cn(
81
- "flex flex-col space-y-2 text-center sm:text-left",
82
- className,
83
- )}
75
+ className={cn("sheet-header", className)}
84
76
  {...props}
85
77
  />
86
78
  );
@@ -91,10 +83,7 @@ const SheetFooter = ({
91
83
  ...props
92
84
  }: React.HTMLAttributes<HTMLDivElement>) => (
93
85
  <div
94
- className={cn(
95
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
96
- className,
97
- )}
86
+ className={cn("sheet-footer", className)}
98
87
  {...props}
99
88
  />
100
89
  );
@@ -106,7 +95,7 @@ const SheetTitle = React.forwardRef<
106
95
  >(({ className, ...props }, ref) => (
107
96
  <SheetPrimitive.Title
108
97
  ref={ref}
109
- className={cn("text-lg font-semibold text-foreground", className)}
98
+ className={cn("sheet-title", className)}
110
99
  {...props}
111
100
  />
112
101
  ));
@@ -118,7 +107,7 @@ const SheetDescription = React.forwardRef<
118
107
  >(({ className, ...props }, ref) => (
119
108
  <SheetPrimitive.Description
120
109
  ref={ref}
121
- className={cn("text-sm text-muted-foreground", className)}
110
+ className={cn("sheet-description", className)}
122
111
  {...props}
123
112
  />
124
113
  ));