@syscore/ui-library 1.1.13 → 1.2.1
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/client/components/ui/accordion.tsx +6 -9
- package/client/components/ui/alert-dialog.tsx +6 -19
- package/client/components/ui/alert.tsx +5 -6
- package/client/components/ui/avatar.tsx +3 -9
- package/client/components/ui/badge.tsx +5 -8
- package/client/components/ui/breadcrumb.tsx +7 -16
- package/client/components/ui/button.tsx +17 -45
- package/client/components/ui/calendar.tsx +24 -28
- package/client/components/ui/card.tsx +6 -9
- package/client/components/ui/carousel.tsx +14 -14
- package/client/components/ui/chart.tsx +25 -28
- package/client/components/ui/checkbox.tsx +3 -8
- package/client/components/ui/code-badge.tsx +1 -4
- package/client/components/ui/command.tsx +12 -48
- package/client/components/ui/context-menu.tsx +17 -32
- package/client/components/ui/dialog.tsx +9 -18
- package/client/components/ui/drawer.tsx +7 -13
- package/client/components/ui/dropdown-menu.tsx +17 -29
- package/client/components/ui/form.tsx +4 -4
- package/client/components/ui/hover-card.tsx +1 -4
- package/client/components/ui/input-otp.tsx +7 -10
- package/client/components/ui/input.tsx +4 -23
- package/client/components/ui/label.tsx +1 -3
- package/client/components/ui/menubar.tsx +19 -40
- package/client/components/ui/navigation-menu.tsx +10 -27
- package/client/components/ui/navigation.tsx +193 -331
- package/client/components/ui/pagination.tsx +8 -8
- package/client/components/ui/popover.tsx +1 -4
- package/client/components/ui/progress.tsx +2 -5
- package/client/components/ui/radio-group.tsx +4 -7
- package/client/components/ui/resizable.tsx +4 -10
- package/client/components/ui/scroll-area.tsx +5 -8
- package/client/components/ui/search.tsx +7 -10
- package/client/components/ui/select.tsx +11 -36
- package/client/components/ui/separator.tsx +2 -2
- package/client/components/ui/sheet.tsx +12 -23
- package/client/components/ui/sidebar.tsx +55 -82
- package/client/components/ui/skeleton.tsx +1 -1
- package/client/components/ui/slider.tsx +4 -7
- package/client/components/ui/sonner.tsx +5 -8
- package/client/components/ui/switch.tsx +2 -9
- package/client/components/ui/table.tsx +9 -18
- package/client/components/ui/tabs.tsx +19 -28
- package/client/components/ui/tag.tsx +6 -66
- package/client/components/ui/textarea.tsx +1 -4
- package/client/components/ui/toast.tsx +9 -19
- package/client/components/ui/toaster.tsx +1 -1
- package/client/components/ui/toggle-group.tsx +4 -4
- package/client/components/ui/toggle.tsx +13 -13
- package/client/components/ui/tooltip.tsx +12 -15
- package/client/global.css +5419 -1054
- package/client/storybook.css +1164 -0
- package/dist/index.cjs.js +1 -0
- package/dist/{ui/index.d.ts → index.d.ts} +0 -1
- package/dist/index.es.js +4552 -0
- package/dist/ui-library.css +1 -0
- package/package.json +9 -12
- package/client/ui/WELLDashboard/WELLDashboard.stories.tsx +0 -115
- package/client/ui/WELLDashboard/index.tsx +0 -317
- package/dist/ui/index.cjs.js +0 -1
- package/dist/ui/index.es.js +0 -5502
- package/tailwind.preset.ts +0 -151
- /package/dist/{ui/favicon.ico → favicon.ico} +0 -0
- /package/dist/{ui/fonts → fonts}/FT-Made/FTMade-Regular.otf +0 -0
- /package/dist/{ui/fonts → fonts}/FT-Made/FTMade-Regular.ttf +0 -0
- /package/dist/{ui/fonts → fonts}/FT-Made/FTMade-Regular.woff +0 -0
- /package/dist/{ui/fonts → fonts}/FT-Made/FTMade-Regular.woff2 +0 -0
- /package/dist/{ui/fonts → fonts}/Mazzard-M/mazzardsoftm-black.otf +0 -0
- /package/dist/{ui/fonts → fonts}/Mazzard-M/mazzardsoftm-blackitalic.otf +0 -0
- /package/dist/{ui/fonts → fonts}/Mazzard-M/mazzardsoftm-bold.otf +0 -0
- /package/dist/{ui/fonts → fonts}/Mazzard-M/mazzardsoftm-bolditalic.otf +0 -0
- /package/dist/{ui/fonts → fonts}/Mazzard-M/mazzardsoftm-extrabold.otf +0 -0
- /package/dist/{ui/fonts → fonts}/Mazzard-M/mazzardsoftm-extrabolditalic.otf +0 -0
- /package/dist/{ui/fonts → fonts}/Mazzard-M/mazzardsoftm-extralight.otf +0 -0
- /package/dist/{ui/fonts → fonts}/Mazzard-M/mazzardsoftm-extralightitalic.otf +0 -0
- /package/dist/{ui/fonts → fonts}/Mazzard-M/mazzardsoftm-italic.otf +0 -0
- /package/dist/{ui/fonts → fonts}/Mazzard-M/mazzardsoftm-light.otf +0 -0
- /package/dist/{ui/fonts → fonts}/Mazzard-M/mazzardsoftm-lightitalic.otf +0 -0
- /package/dist/{ui/fonts → fonts}/Mazzard-M/mazzardsoftm-medium.otf +0 -0
- /package/dist/{ui/fonts → fonts}/Mazzard-M/mazzardsoftm-mediumitalic.otf +0 -0
- /package/dist/{ui/fonts → fonts}/Mazzard-M/mazzardsoftm-regular.otf +0 -0
- /package/dist/{ui/fonts → fonts}/Mazzard-M/mazzardsoftm-semibold.otf +0 -0
- /package/dist/{ui/fonts → fonts}/Mazzard-M/mazzardsoftm-semibolditalic.otf +0 -0
- /package/dist/{ui/fonts → fonts}/Mazzard-M/mazzardsoftm-thin.otf +0 -0
- /package/dist/{ui/fonts → fonts}/Mazzard-M/mazzardsoftm-thinitalic.otf +0 -0
- /package/dist/{ui/placeholder.svg → placeholder.svg} +0 -0
- /package/dist/{ui/robots.txt → robots.txt} +0 -0
|
@@ -78,7 +78,7 @@ const FormItem = React.forwardRef<
|
|
|
78
78
|
|
|
79
79
|
return (
|
|
80
80
|
<FormItemContext.Provider value={{ id }}>
|
|
81
|
-
<div ref={ref} className={cn("
|
|
81
|
+
<div ref={ref} className={cn("form-item", className)} {...props} />
|
|
82
82
|
</FormItemContext.Provider>
|
|
83
83
|
);
|
|
84
84
|
});
|
|
@@ -93,7 +93,7 @@ const FormLabel = React.forwardRef<
|
|
|
93
93
|
return (
|
|
94
94
|
<Label
|
|
95
95
|
ref={ref}
|
|
96
|
-
className={cn(error && "
|
|
96
|
+
className={cn(error && "form-label--error", className)}
|
|
97
97
|
htmlFor={formItemId}
|
|
98
98
|
{...props}
|
|
99
99
|
/>
|
|
@@ -134,7 +134,7 @@ const FormDescription = React.forwardRef<
|
|
|
134
134
|
<p
|
|
135
135
|
ref={ref}
|
|
136
136
|
id={formDescriptionId}
|
|
137
|
-
className={cn("
|
|
137
|
+
className={cn("form-description", className)}
|
|
138
138
|
{...props}
|
|
139
139
|
/>
|
|
140
140
|
);
|
|
@@ -156,7 +156,7 @@ const FormMessage = React.forwardRef<
|
|
|
156
156
|
<p
|
|
157
157
|
ref={ref}
|
|
158
158
|
id={formMessageId}
|
|
159
|
-
className={cn("
|
|
159
|
+
className={cn("form-message", className)}
|
|
160
160
|
{...props}
|
|
161
161
|
>
|
|
162
162
|
{body}
|
|
@@ -15,10 +15,7 @@ const HoverCardContent = React.forwardRef<
|
|
|
15
15
|
ref={ref}
|
|
16
16
|
align={align}
|
|
17
17
|
sideOffset={sideOffset}
|
|
18
|
-
|
|
19
|
-
"z-50 w-64 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",
|
|
20
|
-
className,
|
|
21
|
-
)}
|
|
18
|
+
className={cn("hover-card-content", className)}
|
|
22
19
|
{...props}
|
|
23
20
|
/>
|
|
24
21
|
));
|
|
@@ -10,11 +10,8 @@ const InputOTP = React.forwardRef<
|
|
|
10
10
|
>(({ className, containerClassName, ...props }, ref) => (
|
|
11
11
|
<OTPInput
|
|
12
12
|
ref={ref}
|
|
13
|
-
containerClassName={cn(
|
|
14
|
-
|
|
15
|
-
containerClassName,
|
|
16
|
-
)}
|
|
17
|
-
className={cn("disabled:cursor-not-allowed", className)}
|
|
13
|
+
containerClassName={cn("input-otp-container", containerClassName)}
|
|
14
|
+
className={cn("input-otp", className)}
|
|
18
15
|
{...props}
|
|
19
16
|
/>
|
|
20
17
|
));
|
|
@@ -24,7 +21,7 @@ const InputOTPGroup = React.forwardRef<
|
|
|
24
21
|
React.ElementRef<"div">,
|
|
25
22
|
React.ComponentPropsWithoutRef<"div">
|
|
26
23
|
>(({ className, ...props }, ref) => (
|
|
27
|
-
<div ref={ref} className={cn("
|
|
24
|
+
<div ref={ref} className={cn("input-otp-group", className)} {...props} />
|
|
28
25
|
));
|
|
29
26
|
InputOTPGroup.displayName = "InputOTPGroup";
|
|
30
27
|
|
|
@@ -39,16 +36,16 @@ const InputOTPSlot = React.forwardRef<
|
|
|
39
36
|
<div
|
|
40
37
|
ref={ref}
|
|
41
38
|
className={cn(
|
|
42
|
-
"
|
|
43
|
-
isActive && "
|
|
39
|
+
"input-otp-slot",
|
|
40
|
+
isActive && "input-otp-slot--active",
|
|
44
41
|
className,
|
|
45
42
|
)}
|
|
46
43
|
{...props}
|
|
47
44
|
>
|
|
48
45
|
{char}
|
|
49
46
|
{hasFakeCaret && (
|
|
50
|
-
<div className="
|
|
51
|
-
<div className="
|
|
47
|
+
<div className="input-otp-caret">
|
|
48
|
+
<div className="input-otp-caret-line" />
|
|
52
49
|
</div>
|
|
53
50
|
)}
|
|
54
51
|
</div>
|
|
@@ -14,38 +14,19 @@ const Input = React.forwardRef<HTMLInputElement, InputProps>(
|
|
|
14
14
|
return (
|
|
15
15
|
<div
|
|
16
16
|
className={cn(
|
|
17
|
-
|
|
18
|
-
"flex h-12 w-full items-center rounded-[6px] border border-gray-200 bg-white px-4 transition-shadow",
|
|
19
|
-
// Typography inheritance
|
|
20
|
-
"body-base font-medium font-mazzard text-gray-800",
|
|
21
|
-
// Focus states (focus-within matches input focus)
|
|
22
|
-
"focus-within:border-cyan-300",
|
|
23
|
-
// Disabled states
|
|
24
|
-
isDisabled && "opacity-50 cursor-not-allowed",
|
|
25
|
-
// Read-only states
|
|
26
|
-
isReadOnly &&
|
|
27
|
-
"bg-gray-50 border-blue-200 text-gray-600 focus-within:border-blue-200 cursor-default",
|
|
17
|
+
"input-wrapper body-base font-mazzard",
|
|
28
18
|
className,
|
|
29
19
|
)}
|
|
30
20
|
>
|
|
31
21
|
{startIcon ? (
|
|
32
|
-
<div className="
|
|
22
|
+
<div className="input-icon-start">
|
|
33
23
|
{startIcon}
|
|
34
24
|
</div>
|
|
35
25
|
) : null}
|
|
36
26
|
|
|
37
27
|
<input
|
|
38
28
|
type={type}
|
|
39
|
-
className=
|
|
40
|
-
// Reset styles to be transparent inside wrapper
|
|
41
|
-
"flex-1 w-full bg-transparent outline-none placeholder:text-gray-500",
|
|
42
|
-
// File input specific overrides
|
|
43
|
-
type === "file" &&
|
|
44
|
-
"p-0 italic text-muted-foreground/70 file:me-3 file:h-full file:border-0 file:border-r file:border-solid file:border-gray-200 file:bg-transparent file:px-3 file:text-base file:font-medium file:not-italic file:text-gray-800",
|
|
45
|
-
// Search input specific overrides
|
|
46
|
-
type === "search" &&
|
|
47
|
-
"[&::-webkit-search-cancel-button]:appearance-none [&::-webkit-search-decoration]:appearance-none [&::-webkit-search-results-button]:appearance-none [&::-webkit-search-results-decoration]:appearance-none",
|
|
48
|
-
)}
|
|
29
|
+
className="input"
|
|
49
30
|
ref={ref}
|
|
50
31
|
disabled={isDisabled}
|
|
51
32
|
readOnly={isReadOnly}
|
|
@@ -53,7 +34,7 @@ const Input = React.forwardRef<HTMLInputElement, InputProps>(
|
|
|
53
34
|
/>
|
|
54
35
|
|
|
55
36
|
{endIcon ? (
|
|
56
|
-
<div className="
|
|
37
|
+
<div className="input-icon-end">
|
|
57
38
|
{endIcon}
|
|
58
39
|
</div>
|
|
59
40
|
) : null}
|
|
@@ -4,9 +4,7 @@ import { cva, type VariantProps } from "class-variance-authority";
|
|
|
4
4
|
|
|
5
5
|
import { cn } from "@/lib/utils";
|
|
6
6
|
|
|
7
|
-
const labelVariants = cva(
|
|
8
|
-
"peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-gray-600 px-2",
|
|
9
|
-
);
|
|
7
|
+
const labelVariants = cva("label");
|
|
10
8
|
|
|
11
9
|
const Label = React.forwardRef<
|
|
12
10
|
React.ElementRef<typeof LabelPrimitive.Root>,
|
|
@@ -20,10 +20,7 @@ const Menubar = React.forwardRef<
|
|
|
20
20
|
>(({ className, ...props }, ref) => (
|
|
21
21
|
<MenubarPrimitive.Root
|
|
22
22
|
ref={ref}
|
|
23
|
-
className={cn(
|
|
24
|
-
"flex h-10 items-center space-x-1 rounded-md border bg-background p-1",
|
|
25
|
-
className,
|
|
26
|
-
)}
|
|
23
|
+
className={cn("menubar", className)}
|
|
27
24
|
{...props}
|
|
28
25
|
/>
|
|
29
26
|
));
|
|
@@ -35,10 +32,7 @@ const MenubarTrigger = React.forwardRef<
|
|
|
35
32
|
>(({ className, ...props }, ref) => (
|
|
36
33
|
<MenubarPrimitive.Trigger
|
|
37
34
|
ref={ref}
|
|
38
|
-
className={cn(
|
|
39
|
-
"flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-hidden focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
|
|
40
|
-
className,
|
|
41
|
-
)}
|
|
35
|
+
className={cn("menubar-trigger", className)}
|
|
42
36
|
{...props}
|
|
43
37
|
/>
|
|
44
38
|
));
|
|
@@ -53,14 +47,14 @@ const MenubarSubTrigger = React.forwardRef<
|
|
|
53
47
|
<MenubarPrimitive.SubTrigger
|
|
54
48
|
ref={ref}
|
|
55
49
|
className={cn(
|
|
56
|
-
"
|
|
57
|
-
inset && "
|
|
50
|
+
"menubar-sub-trigger",
|
|
51
|
+
inset && "menubar-sub-trigger--inset",
|
|
58
52
|
className,
|
|
59
53
|
)}
|
|
60
54
|
{...props}
|
|
61
55
|
>
|
|
62
56
|
{children}
|
|
63
|
-
<ChevronRight className="
|
|
57
|
+
<ChevronRight className="icon-4" />
|
|
64
58
|
</MenubarPrimitive.SubTrigger>
|
|
65
59
|
));
|
|
66
60
|
MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
|
|
@@ -71,10 +65,7 @@ const MenubarSubContent = React.forwardRef<
|
|
|
71
65
|
>(({ className, ...props }, ref) => (
|
|
72
66
|
<MenubarPrimitive.SubContent
|
|
73
67
|
ref={ref}
|
|
74
|
-
className={cn(
|
|
75
|
-
"z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground 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",
|
|
76
|
-
className,
|
|
77
|
-
)}
|
|
68
|
+
className={cn("menubar-sub-content", className)}
|
|
78
69
|
{...props}
|
|
79
70
|
/>
|
|
80
71
|
));
|
|
@@ -94,10 +85,7 @@ const MenubarContent = React.forwardRef<
|
|
|
94
85
|
align={align}
|
|
95
86
|
alignOffset={alignOffset}
|
|
96
87
|
sideOffset={sideOffset}
|
|
97
|
-
className={cn(
|
|
98
|
-
"z-50 min-w-48 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in 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",
|
|
99
|
-
className,
|
|
100
|
-
)}
|
|
88
|
+
className={cn("menubar-content", className)}
|
|
101
89
|
{...props}
|
|
102
90
|
/>
|
|
103
91
|
</MenubarPrimitive.Portal>
|
|
@@ -114,8 +102,8 @@ const MenubarItem = React.forwardRef<
|
|
|
114
102
|
<MenubarPrimitive.Item
|
|
115
103
|
ref={ref}
|
|
116
104
|
className={cn(
|
|
117
|
-
"
|
|
118
|
-
inset && "
|
|
105
|
+
"menubar-item",
|
|
106
|
+
inset && "menubar-item--inset",
|
|
119
107
|
className,
|
|
120
108
|
)}
|
|
121
109
|
{...props}
|
|
@@ -129,16 +117,13 @@ const MenubarCheckboxItem = React.forwardRef<
|
|
|
129
117
|
>(({ className, children, checked, ...props }, ref) => (
|
|
130
118
|
<MenubarPrimitive.CheckboxItem
|
|
131
119
|
ref={ref}
|
|
132
|
-
className={cn(
|
|
133
|
-
"relative flex 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",
|
|
134
|
-
className,
|
|
135
|
-
)}
|
|
120
|
+
className={cn("menubar-checkbox-item", className)}
|
|
136
121
|
checked={checked}
|
|
137
122
|
{...props}
|
|
138
123
|
>
|
|
139
|
-
<span className="
|
|
124
|
+
<span className="menubar-item-indicator">
|
|
140
125
|
<MenubarPrimitive.ItemIndicator>
|
|
141
|
-
<Check className="
|
|
126
|
+
<Check className="icon-4" />
|
|
142
127
|
</MenubarPrimitive.ItemIndicator>
|
|
143
128
|
</span>
|
|
144
129
|
{children}
|
|
@@ -152,15 +137,12 @@ const MenubarRadioItem = React.forwardRef<
|
|
|
152
137
|
>(({ className, children, ...props }, ref) => (
|
|
153
138
|
<MenubarPrimitive.RadioItem
|
|
154
139
|
ref={ref}
|
|
155
|
-
className={cn(
|
|
156
|
-
"relative flex 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",
|
|
157
|
-
className,
|
|
158
|
-
)}
|
|
140
|
+
className={cn("menubar-radio-item", className)}
|
|
159
141
|
{...props}
|
|
160
142
|
>
|
|
161
|
-
<span className="
|
|
143
|
+
<span className="menubar-item-indicator">
|
|
162
144
|
<MenubarPrimitive.ItemIndicator>
|
|
163
|
-
<Circle className="
|
|
145
|
+
<Circle className="icon-2 fill-current" />
|
|
164
146
|
</MenubarPrimitive.ItemIndicator>
|
|
165
147
|
</span>
|
|
166
148
|
{children}
|
|
@@ -177,8 +159,8 @@ const MenubarLabel = React.forwardRef<
|
|
|
177
159
|
<MenubarPrimitive.Label
|
|
178
160
|
ref={ref}
|
|
179
161
|
className={cn(
|
|
180
|
-
"
|
|
181
|
-
inset && "
|
|
162
|
+
"menubar-label",
|
|
163
|
+
inset && "menubar-label--inset",
|
|
182
164
|
className,
|
|
183
165
|
)}
|
|
184
166
|
{...props}
|
|
@@ -192,7 +174,7 @@ const MenubarSeparator = React.forwardRef<
|
|
|
192
174
|
>(({ className, ...props }, ref) => (
|
|
193
175
|
<MenubarPrimitive.Separator
|
|
194
176
|
ref={ref}
|
|
195
|
-
className={cn("-
|
|
177
|
+
className={cn("menubar-separator", className)}
|
|
196
178
|
{...props}
|
|
197
179
|
/>
|
|
198
180
|
));
|
|
@@ -204,10 +186,7 @@ const MenubarShortcut = ({
|
|
|
204
186
|
}: React.HTMLAttributes<HTMLSpanElement>) => {
|
|
205
187
|
return (
|
|
206
188
|
<span
|
|
207
|
-
className={cn(
|
|
208
|
-
"ml-auto text-xs tracking-widest text-muted-foreground",
|
|
209
|
-
className,
|
|
210
|
-
)}
|
|
189
|
+
className={cn("menubar-shortcut", className)}
|
|
211
190
|
{...props}
|
|
212
191
|
/>
|
|
213
192
|
);
|
|
@@ -11,10 +11,7 @@ const NavigationMenu = React.forwardRef<
|
|
|
11
11
|
>(({ className, children, ...props }, ref) => (
|
|
12
12
|
<NavigationMenuPrimitive.Root
|
|
13
13
|
ref={ref}
|
|
14
|
-
className={cn(
|
|
15
|
-
"relative z-10 flex max-w-max flex-1 items-center justify-center",
|
|
16
|
-
className,
|
|
17
|
-
)}
|
|
14
|
+
className={cn("navigation-menu", className)}
|
|
18
15
|
{...props}
|
|
19
16
|
>
|
|
20
17
|
{children}
|
|
@@ -29,10 +26,7 @@ const NavigationMenuList = React.forwardRef<
|
|
|
29
26
|
>(({ className, ...props }, ref) => (
|
|
30
27
|
<NavigationMenuPrimitive.List
|
|
31
28
|
ref={ref}
|
|
32
|
-
className={cn(
|
|
33
|
-
"group flex flex-1 list-none items-center justify-center space-x-1",
|
|
34
|
-
className,
|
|
35
|
-
)}
|
|
29
|
+
className={cn("navigation-menu-list", className)}
|
|
36
30
|
{...props}
|
|
37
31
|
/>
|
|
38
32
|
));
|
|
@@ -40,9 +34,7 @@ NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
|
|
|
40
34
|
|
|
41
35
|
const NavigationMenuItem = NavigationMenuPrimitive.Item;
|
|
42
36
|
|
|
43
|
-
const navigationMenuTriggerStyle = cva(
|
|
44
|
-
"group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-hidden disabled:pointer-events-none disabled:opacity-50 data-active:bg-accent/50 data-[state=open]:bg-accent/50",
|
|
45
|
-
);
|
|
37
|
+
const navigationMenuTriggerStyle = cva("navigation-menu-trigger");
|
|
46
38
|
|
|
47
39
|
const NavigationMenuTrigger = React.forwardRef<
|
|
48
40
|
React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,
|
|
@@ -50,12 +42,12 @@ const NavigationMenuTrigger = React.forwardRef<
|
|
|
50
42
|
>(({ className, children, ...props }, ref) => (
|
|
51
43
|
<NavigationMenuPrimitive.Trigger
|
|
52
44
|
ref={ref}
|
|
53
|
-
className={cn(navigationMenuTriggerStyle(),
|
|
45
|
+
className={cn(navigationMenuTriggerStyle(), className)}
|
|
54
46
|
{...props}
|
|
55
47
|
>
|
|
56
48
|
{children}{" "}
|
|
57
49
|
<ChevronDown
|
|
58
|
-
className="
|
|
50
|
+
className="navigation-menu-trigger-icon"
|
|
59
51
|
aria-hidden="true"
|
|
60
52
|
/>
|
|
61
53
|
</NavigationMenuPrimitive.Trigger>
|
|
@@ -68,10 +60,7 @@ const NavigationMenuContent = React.forwardRef<
|
|
|
68
60
|
>(({ className, ...props }, ref) => (
|
|
69
61
|
<NavigationMenuPrimitive.Content
|
|
70
62
|
ref={ref}
|
|
71
|
-
className={cn(
|
|
72
|
-
"left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto ",
|
|
73
|
-
className,
|
|
74
|
-
)}
|
|
63
|
+
className={cn("navigation-menu-content", className)}
|
|
75
64
|
{...props}
|
|
76
65
|
/>
|
|
77
66
|
));
|
|
@@ -83,12 +72,9 @@ const NavigationMenuViewport = React.forwardRef<
|
|
|
83
72
|
React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,
|
|
84
73
|
React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>
|
|
85
74
|
>(({ className, ...props }, ref) => (
|
|
86
|
-
<div className=
|
|
75
|
+
<div className="navigation-menu-viewport-wrapper">
|
|
87
76
|
<NavigationMenuPrimitive.Viewport
|
|
88
|
-
className={cn(
|
|
89
|
-
"origin-top-center relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-(--radix-navigation-menu-viewport-width)",
|
|
90
|
-
className,
|
|
91
|
-
)}
|
|
77
|
+
className={cn("navigation-menu-viewport", className)}
|
|
92
78
|
ref={ref}
|
|
93
79
|
{...props}
|
|
94
80
|
/>
|
|
@@ -103,13 +89,10 @@ const NavigationMenuIndicator = React.forwardRef<
|
|
|
103
89
|
>(({ className, ...props }, ref) => (
|
|
104
90
|
<NavigationMenuPrimitive.Indicator
|
|
105
91
|
ref={ref}
|
|
106
|
-
className={cn(
|
|
107
|
-
"top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in",
|
|
108
|
-
className,
|
|
109
|
-
)}
|
|
92
|
+
className={cn("navigation-menu-indicator", className)}
|
|
110
93
|
{...props}
|
|
111
94
|
>
|
|
112
|
-
|
|
95
|
+
{/* Indicator arrow is handled by CSS ::after pseudo-element */}
|
|
113
96
|
</NavigationMenuPrimitive.Indicator>
|
|
114
97
|
));
|
|
115
98
|
NavigationMenuIndicator.displayName =
|