@arolariu/components 0.2.0 → 0.3.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/changelog.md +15 -0
- package/dist/components/ui/accordion.d.ts +4 -4
- package/dist/components/ui/accordion.d.ts.map +1 -1
- package/dist/components/ui/accordion.js +19 -27
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/alert-dialog.d.ts +17 -11
- package/dist/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/components/ui/alert-dialog.js +38 -61
- package/dist/components/ui/alert-dialog.js.map +1 -1
- package/dist/components/ui/alert.d.ts +4 -5
- package/dist/components/ui/alert.d.ts.map +1 -1
- package/dist/components/ui/alert.js +17 -20
- package/dist/components/ui/alert.js.map +1 -1
- package/dist/components/ui/aspect-ratio.d.ts +1 -2
- package/dist/components/ui/aspect-ratio.d.ts.map +1 -1
- package/dist/components/ui/aspect-ratio.js +1 -8
- package/dist/components/ui/aspect-ratio.js.map +1 -1
- package/dist/components/ui/avatar.d.ts +3 -3
- package/dist/components/ui/avatar.d.ts.map +1 -1
- package/dist/components/ui/avatar.js +16 -19
- package/dist/components/ui/avatar.js.map +1 -1
- package/dist/components/ui/badge.d.ts +3 -3
- package/dist/components/ui/badge.d.ts.map +1 -1
- package/dist/components/ui/badge.js +7 -10
- package/dist/components/ui/badge.js.map +1 -1
- package/dist/components/ui/breadcrumb.d.ts +16 -8
- package/dist/components/ui/breadcrumb.d.ts.map +1 -1
- package/dist/components/ui/breadcrumb.js +28 -35
- package/dist/components/ui/breadcrumb.js.map +1 -1
- package/dist/components/ui/button-group.d.ts +13 -0
- package/dist/components/ui/button-group.d.ts.map +1 -0
- package/dist/components/ui/button-group.js +47 -0
- package/dist/components/ui/button-group.js.map +1 -0
- package/dist/components/ui/button.d.ts +3 -2
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/button.js +15 -14
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/calendar.js +20 -20
- package/dist/components/ui/calendar.js.map +1 -1
- package/dist/components/ui/card.d.ts +7 -8
- package/dist/components/ui/card.d.ts.map +1 -1
- package/dist/components/ui/card.js +31 -44
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/carousel.d.ts +5 -6
- package/dist/components/ui/carousel.d.ts.map +1 -1
- package/dist/components/ui/carousel.js +29 -20
- package/dist/components/ui/carousel.js.map +1 -1
- package/dist/components/ui/chart.d.ts +35 -27
- package/dist/components/ui/chart.d.ts.map +1 -1
- package/dist/components/ui/chart.js +28 -26
- package/dist/components/ui/chart.js.map +1 -1
- package/dist/components/ui/checkbox.d.ts +1 -1
- package/dist/components/ui/checkbox.d.ts.map +1 -1
- package/dist/components/ui/checkbox.js +10 -12
- package/dist/components/ui/checkbox.js.map +1 -1
- package/dist/components/ui/collapsible.d.ts +2 -4
- package/dist/components/ui/collapsible.d.ts.map +1 -1
- package/dist/components/ui/collapsible.js +31 -20
- package/dist/components/ui/collapsible.js.map +1 -1
- package/dist/components/ui/command.d.ts +78 -16
- package/dist/components/ui/command.d.ts.map +1 -1
- package/dist/components/ui/command.js +47 -72
- package/dist/components/ui/command.js.map +1 -1
- package/dist/components/ui/context-menu.d.ts +21 -19
- package/dist/components/ui/context-menu.d.ts.map +1 -1
- package/dist/components/ui/context-menu.js +57 -101
- package/dist/components/ui/context-menu.js.map +1 -1
- package/dist/components/ui/dialog.d.ts +16 -12
- package/dist/components/ui/dialog.d.ts.map +1 -1
- package/dist/components/ui/dialog.js +36 -64
- package/dist/components/ui/dialog.js.map +1 -1
- package/dist/components/ui/drawer.d.ts +19 -10
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/drawer.js +32 -57
- package/dist/components/ui/drawer.js.map +1 -1
- package/dist/components/ui/dropdown-menu.d.ts +21 -19
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/components/ui/dropdown-menu.js +64 -108
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/dropdrawer.d.ts +1 -1
- package/dist/components/ui/dropdrawer.d.ts.map +1 -1
- package/dist/components/ui/dropdrawer.js +2 -5
- package/dist/components/ui/dropdrawer.js.map +1 -1
- package/dist/components/ui/empty.d.ts +13 -0
- package/dist/components/ui/empty.d.ts.map +1 -0
- package/dist/components/ui/empty.js +65 -0
- package/dist/components/ui/empty.js.map +1 -0
- package/dist/components/ui/field.d.ts +26 -0
- package/dist/components/ui/field.d.ts.map +1 -0
- package/dist/components/ui/field.js +135 -0
- package/dist/components/ui/field.js.map +1 -0
- package/dist/components/ui/form.d.ts +5 -6
- package/dist/components/ui/form.d.ts.map +1 -1
- package/dist/components/ui/form.js +29 -28
- package/dist/components/ui/form.js.map +1 -1
- package/dist/components/ui/hover-card.d.ts +3 -3
- package/dist/components/ui/hover-card.d.ts.map +1 -1
- package/dist/components/ui/hover-card.js +11 -25
- package/dist/components/ui/hover-card.js.map +1 -1
- package/dist/components/ui/input-group.d.ts +17 -0
- package/dist/components/ui/input-group.d.ts.map +1 -0
- package/dist/components/ui/input-group.js +91 -0
- package/dist/components/ui/input-group.js.map +1 -0
- package/dist/components/ui/input-otp.d.ts +30 -7
- package/dist/components/ui/input-otp.d.ts.map +1 -1
- package/dist/components/ui/input-otp.js +22 -25
- package/dist/components/ui/input-otp.js.map +1 -1
- package/dist/components/ui/input.d.ts +1 -1
- package/dist/components/ui/input.d.ts.map +1 -1
- package/dist/components/ui/input.js +6 -7
- package/dist/components/ui/input.js.map +1 -1
- package/dist/components/ui/item.d.ts +24 -0
- package/dist/components/ui/item.d.ts.map +1 -0
- package/dist/components/ui/item.js +122 -0
- package/dist/components/ui/item.js.map +1 -0
- package/dist/components/ui/kbd.d.ts +5 -0
- package/dist/components/ui/kbd.d.ts.map +1 -0
- package/dist/components/ui/kbd.js +21 -0
- package/dist/components/ui/kbd.js.map +1 -0
- package/dist/components/ui/label.d.ts +2 -1
- package/dist/components/ui/label.d.ts.map +1 -1
- package/dist/components/ui/label.js +8 -7
- package/dist/components/ui/label.js.map +1 -1
- package/dist/components/ui/menubar.d.ts +18 -16
- package/dist/components/ui/menubar.d.ts.map +1 -1
- package/dist/components/ui/menubar.js +73 -93
- package/dist/components/ui/menubar.js.map +1 -1
- package/dist/components/ui/navigation-menu.d.ts +8 -10
- package/dist/components/ui/navigation-menu.d.ts.map +1 -1
- package/dist/components/ui/navigation-menu.js +36 -55
- package/dist/components/ui/navigation-menu.js.map +1 -1
- package/dist/components/ui/pagination.d.ts +24 -9
- package/dist/components/ui/pagination.d.ts.map +1 -1
- package/dist/components/ui/pagination.js +33 -45
- package/dist/components/ui/pagination.js.map +1 -1
- package/dist/components/ui/popover.d.ts +4 -4
- package/dist/components/ui/popover.d.ts.map +1 -1
- package/dist/components/ui/popover.js +9 -25
- package/dist/components/ui/popover.js.map +1 -1
- package/dist/components/ui/progress.d.ts +1 -1
- package/dist/components/ui/progress.d.ts.map +1 -1
- package/dist/components/ui/progress.js +5 -7
- package/dist/components/ui/progress.js.map +1 -1
- package/dist/components/ui/radio-group.d.ts +2 -2
- package/dist/components/ui/radio-group.d.ts.map +1 -1
- package/dist/components/ui/radio-group.js +16 -19
- package/dist/components/ui/radio-group.js.map +1 -1
- package/dist/components/ui/resizable.d.ts +20 -4
- package/dist/components/ui/resizable.d.ts.map +1 -1
- package/dist/components/ui/resizable.js +8 -19
- package/dist/components/ui/resizable.js.map +1 -1
- package/dist/components/ui/scroll-area.d.ts +2 -2
- package/dist/components/ui/scroll-area.d.ts.map +1 -1
- package/dist/components/ui/scroll-area.js +12 -16
- package/dist/components/ui/scroll-area.js.map +1 -1
- package/dist/components/ui/select.d.ts +10 -12
- package/dist/components/ui/select.d.ts.map +1 -1
- package/dist/components/ui/select.js +54 -77
- package/dist/components/ui/select.js.map +1 -1
- package/dist/components/ui/separator.d.ts +1 -1
- package/dist/components/ui/separator.d.ts.map +1 -1
- package/dist/components/ui/separator.js +6 -7
- package/dist/components/ui/separator.js.map +1 -1
- package/dist/components/ui/sheet.d.ts +23 -11
- package/dist/components/ui/sheet.d.ts.map +1 -1
- package/dist/components/ui/sheet.js +54 -66
- package/dist/components/ui/sheet.js.map +1 -1
- package/dist/components/ui/sidebar.d.ts +34 -38
- package/dist/components/ui/sidebar.d.ts.map +1 -1
- package/dist/components/ui/sidebar.js +116 -124
- package/dist/components/ui/sidebar.js.map +1 -1
- package/dist/components/ui/skeleton.d.ts +1 -1
- package/dist/components/ui/skeleton.d.ts.map +1 -1
- package/dist/components/ui/skeleton.js +1 -2
- package/dist/components/ui/skeleton.js.map +1 -1
- package/dist/components/ui/slider.d.ts +1 -1
- package/dist/components/ui/slider.d.ts.map +1 -1
- package/dist/components/ui/slider.js +11 -30
- package/dist/components/ui/slider.js.map +1 -1
- package/dist/components/ui/sonner.d.ts +4 -2
- package/dist/components/ui/sonner.d.ts.map +1 -1
- package/dist/components/ui/sonner.js +7 -4
- package/dist/components/ui/sonner.js.map +1 -1
- package/dist/components/ui/spinner.d.ts +4 -0
- package/dist/components/ui/spinner.d.ts.map +1 -0
- package/dist/components/ui/spinner.js +16 -0
- package/dist/components/ui/spinner.js.map +1 -0
- package/dist/components/ui/switch.d.ts +2 -2
- package/dist/components/ui/switch.d.ts.map +1 -1
- package/dist/components/ui/switch.js +7 -9
- package/dist/components/ui/switch.js.map +1 -1
- package/dist/components/ui/table.d.ts +8 -8
- package/dist/components/ui/table.d.ts.map +1 -1
- package/dist/components/ui/table.js +36 -45
- package/dist/components/ui/table.js.map +1 -1
- package/dist/components/ui/tabs.d.ts +4 -4
- package/dist/components/ui/tabs.d.ts.map +1 -1
- package/dist/components/ui/tabs.js +17 -26
- package/dist/components/ui/tabs.js.map +1 -1
- package/dist/components/ui/textarea.d.ts +1 -1
- package/dist/components/ui/textarea.d.ts.map +1 -1
- package/dist/components/ui/textarea.js +6 -7
- package/dist/components/ui/textarea.js.map +1 -1
- package/dist/components/ui/toggle-group.d.ts +8 -3
- package/dist/components/ui/toggle-group.d.ts.map +1 -1
- package/dist/components/ui/toggle-group.js +11 -15
- package/dist/components/ui/toggle-group.js.map +1 -1
- package/dist/components/ui/toggle.d.ts +4 -1
- package/dist/components/ui/toggle.d.ts.map +1 -1
- package/dist/components/ui/toggle.js +7 -8
- package/dist/components/ui/toggle.js.map +1 -1
- package/dist/components/ui/tooltip.d.ts +4 -4
- package/dist/components/ui/tooltip.d.ts.map +1 -1
- package/dist/components/ui/tooltip.js +13 -38
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/components/ui/typewriter.d.ts.map +1 -1
- package/dist/components/ui/typewriter.js +2 -6
- package/dist/components/ui/typewriter.js.map +1 -1
- package/dist/index.css +839 -1126
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -3
- package/package.json +37 -2
- package/src/components/ui/accordion.tsx +43 -44
- package/src/components/ui/alert-dialog.tsx +88 -99
- package/src/components/ui/alert.tsx +24 -25
- package/src/components/ui/aspect-ratio.tsx +1 -9
- package/src/components/ui/avatar.tsx +33 -27
- package/src/components/ui/badge.tsx +8 -16
- package/src/components/ui/breadcrumb.tsx +70 -73
- package/src/components/ui/button-group.tsx +69 -0
- package/src/components/ui/button.tsx +18 -24
- package/src/components/ui/calendar.tsx +20 -20
- package/src/components/ui/card.tsx +52 -71
- package/src/components/ui/carousel.tsx +145 -133
- package/src/components/ui/chart.tsx +174 -182
- package/src/components/ui/checkbox.tsx +18 -18
- package/src/components/ui/collapsible.tsx +2 -26
- package/src/components/ui/command.tsx +101 -99
- package/src/components/ui/context-menu.tsx +150 -193
- package/src/components/ui/dialog.tsx +75 -110
- package/src/components/ui/drawer.tsx +74 -102
- package/src/components/ui/dropdown-menu.tsx +153 -200
- package/src/components/ui/dropdrawer.tsx +0 -5
- package/src/components/ui/empty.tsx +86 -0
- package/src/components/ui/field.tsx +199 -0
- package/src/components/ui/form.tsx +49 -50
- package/src/components/ui/hover-card.tsx +18 -37
- package/src/components/ui/input-group.tsx +145 -0
- package/src/components/ui/input-otp.tsx +49 -59
- package/src/components/ui/input.tsx +5 -6
- package/src/components/ui/item.tsx +163 -0
- package/src/components/ui/kbd.tsx +31 -0
- package/src/components/ui/label.tsx +14 -12
- package/src/components/ui/menubar.tsx +178 -201
- package/src/components/ui/navigation-menu.tsx +84 -100
- package/src/components/ui/pagination.tsx +75 -85
- package/src/components/ui/popover.tsx +19 -38
- package/src/components/ui/progress.tsx +15 -14
- package/src/components/ui/radio-group.tsx +19 -13
- package/src/components/ui/resizable.tsx +23 -36
- package/src/components/ui/scroll-area.tsx +32 -35
- package/src/components/ui/select.tsx +112 -127
- package/src/components/ui/separator.tsx +17 -19
- package/src/components/ui/sheet.tsx +87 -108
- package/src/components/ui/sidebar.tsx +276 -279
- package/src/components/ui/skeleton.tsx +2 -3
- package/src/components/ui/slider.tsx +15 -40
- package/src/components/ui/sonner.tsx +15 -9
- package/src/components/ui/spinner.tsx +18 -0
- package/src/components/ui/switch.tsx +18 -17
- package/src/components/ui/table.tsx +66 -71
- package/src/components/ui/tabs.tsx +36 -36
- package/src/components/ui/textarea.tsx +5 -4
- package/src/components/ui/toggle-group.tsx +21 -34
- package/src/components/ui/toggle.tsx +14 -16
- package/src/components/ui/tooltip.tsx +19 -43
- package/src/components/ui/typewriter.tsx +3 -4
- package/src/index.css +6 -6
- package/src/index.ts +43 -4
|
@@ -1,240 +1,217 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
import * as MenubarPrimitive from "@radix-ui/react-menubar";
|
|
4
|
-
import {
|
|
4
|
+
import {Check, ChevronRight, Circle} from "lucide-react";
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
|
|
7
7
|
import {cn} from "@/lib/utilities";
|
|
8
8
|
|
|
9
|
-
function Menubar({className, ...props}: React.ComponentProps<typeof MenubarPrimitive.Root>) {
|
|
10
|
-
return (
|
|
11
|
-
<MenubarPrimitive.Root
|
|
12
|
-
data-slot='menubar'
|
|
13
|
-
className={cn(
|
|
14
|
-
"flex h-9 items-center gap-1 rounded-md border border-neutral-200 bg-white p-1 shadow-xs dark:border-neutral-800 dark:bg-neutral-950",
|
|
15
|
-
className,
|
|
16
|
-
)}
|
|
17
|
-
{...props}
|
|
18
|
-
/>
|
|
19
|
-
);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
9
|
function MenubarMenu({...props}: React.ComponentProps<typeof MenubarPrimitive.Menu>) {
|
|
23
|
-
return
|
|
24
|
-
<MenubarPrimitive.Menu
|
|
25
|
-
data-slot='menubar-menu'
|
|
26
|
-
{...props}
|
|
27
|
-
/>
|
|
28
|
-
);
|
|
10
|
+
return <MenubarPrimitive.Menu {...props} />;
|
|
29
11
|
}
|
|
30
12
|
|
|
31
13
|
function MenubarGroup({...props}: React.ComponentProps<typeof MenubarPrimitive.Group>) {
|
|
32
|
-
return
|
|
33
|
-
<MenubarPrimitive.Group
|
|
34
|
-
data-slot='menubar-group'
|
|
35
|
-
{...props}
|
|
36
|
-
/>
|
|
37
|
-
);
|
|
14
|
+
return <MenubarPrimitive.Group {...props} />;
|
|
38
15
|
}
|
|
39
16
|
|
|
40
17
|
function MenubarPortal({...props}: React.ComponentProps<typeof MenubarPrimitive.Portal>) {
|
|
41
|
-
return
|
|
42
|
-
<MenubarPrimitive.Portal
|
|
43
|
-
data-slot='menubar-portal'
|
|
44
|
-
{...props}
|
|
45
|
-
/>
|
|
46
|
-
);
|
|
18
|
+
return <MenubarPrimitive.Portal {...props} />;
|
|
47
19
|
}
|
|
48
20
|
|
|
49
21
|
function MenubarRadioGroup({...props}: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>) {
|
|
50
|
-
return
|
|
51
|
-
<MenubarPrimitive.RadioGroup
|
|
52
|
-
data-slot='menubar-radio-group'
|
|
53
|
-
{...props}
|
|
54
|
-
/>
|
|
55
|
-
);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
function MenubarTrigger({className, ...props}: React.ComponentProps<typeof MenubarPrimitive.Trigger>) {
|
|
59
|
-
return (
|
|
60
|
-
<MenubarPrimitive.Trigger
|
|
61
|
-
data-slot='menubar-trigger'
|
|
62
|
-
className={cn(
|
|
63
|
-
"flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none focus:bg-neutral-100 focus:text-neutral-900 data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-900 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[state=open]:bg-neutral-800 dark:data-[state=open]:text-neutral-50",
|
|
64
|
-
className,
|
|
65
|
-
)}
|
|
66
|
-
{...props}
|
|
67
|
-
/>
|
|
68
|
-
);
|
|
22
|
+
return <MenubarPrimitive.RadioGroup {...props} />;
|
|
69
23
|
}
|
|
70
24
|
|
|
71
|
-
function
|
|
72
|
-
className,
|
|
73
|
-
align = "start",
|
|
74
|
-
alignOffset = -4,
|
|
75
|
-
sideOffset = 8,
|
|
76
|
-
...props
|
|
77
|
-
}: React.ComponentProps<typeof MenubarPrimitive.Content>) {
|
|
78
|
-
return (
|
|
79
|
-
<MenubarPortal>
|
|
80
|
-
<MenubarPrimitive.Content
|
|
81
|
-
data-slot='menubar-content'
|
|
82
|
-
align={align}
|
|
83
|
-
alignOffset={alignOffset}
|
|
84
|
-
sideOffset={sideOffset}
|
|
85
|
-
className={cn(
|
|
86
|
-
"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 z-50 min-w-[12rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border border-neutral-200 bg-white p-1 text-neutral-950 shadow-md dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",
|
|
87
|
-
className,
|
|
88
|
-
)}
|
|
89
|
-
{...props}
|
|
90
|
-
/>
|
|
91
|
-
</MenubarPortal>
|
|
92
|
-
);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
function MenubarItem({
|
|
96
|
-
className,
|
|
97
|
-
inset,
|
|
98
|
-
variant = "default",
|
|
99
|
-
...props
|
|
100
|
-
}: React.ComponentProps<typeof MenubarPrimitive.Item> & {
|
|
101
|
-
inset?: boolean;
|
|
102
|
-
variant?: "default" | "destructive";
|
|
103
|
-
}) {
|
|
25
|
+
function MenubarSub({...props}: React.ComponentProps<typeof MenubarPrimitive.Sub>) {
|
|
104
26
|
return (
|
|
105
|
-
<MenubarPrimitive.
|
|
106
|
-
data-slot='menubar-
|
|
107
|
-
data-inset={inset}
|
|
108
|
-
data-variant={variant}
|
|
109
|
-
className={cn(
|
|
110
|
-
"data-[variant=destructive]:*:[svg]:!text-destructive relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-neutral-100 focus:text-neutral-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-red-500 data-[variant=destructive]:focus:bg-red-500/10 data-[variant=destructive]:focus:text-red-500 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[variant=destructive]:text-red-900 dark:dark:data-[variant=destructive]:focus:bg-red-900/20 dark:data-[variant=destructive]:focus:bg-red-500/20 dark:data-[variant=destructive]:focus:bg-red-900/10 dark:data-[variant=destructive]:focus:text-red-900 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-neutral-500 dark:[&_svg:not([class*='text-'])]:text-neutral-400",
|
|
111
|
-
className,
|
|
112
|
-
)}
|
|
27
|
+
<MenubarPrimitive.Sub
|
|
28
|
+
data-slot='menubar-sub'
|
|
113
29
|
{...props}
|
|
114
30
|
/>
|
|
115
31
|
);
|
|
116
32
|
}
|
|
117
33
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
34
|
+
const Menubar = React.forwardRef<
|
|
35
|
+
React.ComponentRef<typeof MenubarPrimitive.Root>,
|
|
36
|
+
React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Root>
|
|
37
|
+
>(({className, ...props}, ref) => (
|
|
38
|
+
<MenubarPrimitive.Root
|
|
39
|
+
ref={ref}
|
|
40
|
+
className={cn(
|
|
41
|
+
"flex h-9 items-center space-x-1 rounded-md border border-neutral-200 bg-white p-1 shadow-sm dark:border-neutral-800 dark:bg-neutral-950",
|
|
42
|
+
className,
|
|
43
|
+
)}
|
|
44
|
+
{...props}
|
|
45
|
+
/>
|
|
46
|
+
));
|
|
47
|
+
Menubar.displayName = MenubarPrimitive.Root.displayName;
|
|
48
|
+
|
|
49
|
+
const MenubarTrigger = React.forwardRef<
|
|
50
|
+
React.ComponentRef<typeof MenubarPrimitive.Trigger>,
|
|
51
|
+
React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Trigger>
|
|
52
|
+
>(({className, ...props}, ref) => (
|
|
53
|
+
<MenubarPrimitive.Trigger
|
|
54
|
+
ref={ref}
|
|
55
|
+
className={cn(
|
|
56
|
+
"flex cursor-default items-center rounded-sm px-3 py-1 text-sm font-medium outline-none select-none focus:bg-neutral-100 focus:text-neutral-900 data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-900 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[state=open]:bg-neutral-800 dark:data-[state=open]:text-neutral-50",
|
|
57
|
+
className,
|
|
58
|
+
)}
|
|
59
|
+
{...props}
|
|
60
|
+
/>
|
|
61
|
+
));
|
|
62
|
+
MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
|
|
63
|
+
|
|
64
|
+
const MenubarSubTrigger = React.forwardRef<
|
|
65
|
+
React.ComponentRef<typeof MenubarPrimitive.SubTrigger>,
|
|
66
|
+
React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubTrigger> & {
|
|
67
|
+
inset?: boolean;
|
|
68
|
+
}
|
|
69
|
+
>(({className, inset, children, ...props}, ref) => (
|
|
70
|
+
<MenubarPrimitive.SubTrigger
|
|
71
|
+
ref={ref}
|
|
72
|
+
className={cn(
|
|
73
|
+
"flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none focus:bg-neutral-100 focus:text-neutral-900 data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-900 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[state=open]:bg-neutral-800 dark:data-[state=open]:text-neutral-50",
|
|
74
|
+
inset && "pl-8",
|
|
75
|
+
className,
|
|
76
|
+
)}
|
|
77
|
+
{...props}>
|
|
78
|
+
{children}
|
|
79
|
+
<ChevronRight className='ml-auto h-4 w-4' />
|
|
80
|
+
</MenubarPrimitive.SubTrigger>
|
|
81
|
+
));
|
|
82
|
+
MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
|
|
83
|
+
|
|
84
|
+
const MenubarSubContent = React.forwardRef<
|
|
85
|
+
React.ComponentRef<typeof MenubarPrimitive.SubContent>,
|
|
86
|
+
React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubContent>
|
|
87
|
+
>(({className, ...props}, ref) => (
|
|
88
|
+
<MenubarPrimitive.SubContent
|
|
89
|
+
ref={ref}
|
|
90
|
+
className={cn(
|
|
91
|
+
"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-50 min-w-[8rem] origin-[--radix-menubar-content-transform-origin] overflow-hidden rounded-md border border-neutral-200 bg-white p-1 text-neutral-950 shadow-lg dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",
|
|
92
|
+
className,
|
|
93
|
+
)}
|
|
94
|
+
{...props}
|
|
95
|
+
/>
|
|
96
|
+
));
|
|
97
|
+
MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
|
|
98
|
+
|
|
99
|
+
const MenubarContent = React.forwardRef<
|
|
100
|
+
React.ComponentRef<typeof MenubarPrimitive.Content>,
|
|
101
|
+
React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Content>
|
|
102
|
+
>(({className, align = "start", alignOffset = -4, sideOffset = 8, ...props}, ref) => (
|
|
103
|
+
<MenubarPrimitive.Portal>
|
|
104
|
+
<MenubarPrimitive.Content
|
|
105
|
+
ref={ref}
|
|
106
|
+
align={align}
|
|
107
|
+
alignOffset={alignOffset}
|
|
108
|
+
sideOffset={sideOffset}
|
|
142
109
|
className={cn(
|
|
143
|
-
"
|
|
110
|
+
"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 z-50 min-w-[12rem] origin-[--radix-menubar-content-transform-origin] overflow-hidden rounded-md border border-neutral-200 bg-white p-1 text-neutral-950 shadow-md dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",
|
|
144
111
|
className,
|
|
145
112
|
)}
|
|
146
|
-
{...props}>
|
|
147
|
-
<span className='pointer-events-none absolute left-2 flex size-3.5 items-center justify-center'>
|
|
148
|
-
<MenubarPrimitive.ItemIndicator>
|
|
149
|
-
<CircleIcon className='size-2 fill-current' />
|
|
150
|
-
</MenubarPrimitive.ItemIndicator>
|
|
151
|
-
</span>
|
|
152
|
-
{children}
|
|
153
|
-
</MenubarPrimitive.RadioItem>
|
|
154
|
-
);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
function MenubarLabel({
|
|
158
|
-
className,
|
|
159
|
-
inset,
|
|
160
|
-
...props
|
|
161
|
-
}: React.ComponentProps<typeof MenubarPrimitive.Label> & {
|
|
162
|
-
inset?: boolean;
|
|
163
|
-
}) {
|
|
164
|
-
return (
|
|
165
|
-
<MenubarPrimitive.Label
|
|
166
|
-
data-slot='menubar-label'
|
|
167
|
-
data-inset={inset}
|
|
168
|
-
className={cn("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", className)}
|
|
169
113
|
{...props}
|
|
170
114
|
/>
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
|
|
115
|
+
</MenubarPrimitive.Portal>
|
|
116
|
+
));
|
|
117
|
+
MenubarContent.displayName = MenubarPrimitive.Content.displayName;
|
|
118
|
+
|
|
119
|
+
const MenubarItem = React.forwardRef<
|
|
120
|
+
React.ComponentRef<typeof MenubarPrimitive.Item>,
|
|
121
|
+
React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Item> & {
|
|
122
|
+
inset?: boolean;
|
|
123
|
+
}
|
|
124
|
+
>(({className, inset, ...props}, ref) => (
|
|
125
|
+
<MenubarPrimitive.Item
|
|
126
|
+
ref={ref}
|
|
127
|
+
className={cn(
|
|
128
|
+
"relative flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none focus:bg-neutral-100 focus:text-neutral-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-neutral-800 dark:focus:text-neutral-50",
|
|
129
|
+
inset && "pl-8",
|
|
130
|
+
className,
|
|
131
|
+
)}
|
|
132
|
+
{...props}
|
|
133
|
+
/>
|
|
134
|
+
));
|
|
135
|
+
MenubarItem.displayName = MenubarPrimitive.Item.displayName;
|
|
136
|
+
|
|
137
|
+
const MenubarCheckboxItem = React.forwardRef<
|
|
138
|
+
React.ComponentRef<typeof MenubarPrimitive.CheckboxItem>,
|
|
139
|
+
React.ComponentPropsWithoutRef<typeof MenubarPrimitive.CheckboxItem>
|
|
140
|
+
>(({className, children, checked, ...props}, ref) => (
|
|
141
|
+
<MenubarPrimitive.CheckboxItem
|
|
142
|
+
ref={ref}
|
|
143
|
+
className={cn(
|
|
144
|
+
"relative flex cursor-default items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none select-none focus:bg-neutral-100 focus:text-neutral-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-neutral-800 dark:focus:text-neutral-50",
|
|
145
|
+
className,
|
|
146
|
+
)}
|
|
147
|
+
checked={checked}
|
|
148
|
+
{...props}>
|
|
149
|
+
<span className='absolute left-2 flex h-3.5 w-3.5 items-center justify-center'>
|
|
150
|
+
<MenubarPrimitive.ItemIndicator>
|
|
151
|
+
<Check className='h-4 w-4' />
|
|
152
|
+
</MenubarPrimitive.ItemIndicator>
|
|
153
|
+
</span>
|
|
154
|
+
{children}
|
|
155
|
+
</MenubarPrimitive.CheckboxItem>
|
|
156
|
+
));
|
|
157
|
+
MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
|
|
158
|
+
|
|
159
|
+
const MenubarRadioItem = React.forwardRef<
|
|
160
|
+
React.ComponentRef<typeof MenubarPrimitive.RadioItem>,
|
|
161
|
+
React.ComponentPropsWithoutRef<typeof MenubarPrimitive.RadioItem>
|
|
162
|
+
>(({className, children, ...props}, ref) => (
|
|
163
|
+
<MenubarPrimitive.RadioItem
|
|
164
|
+
ref={ref}
|
|
165
|
+
className={cn(
|
|
166
|
+
"relative flex cursor-default items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none select-none focus:bg-neutral-100 focus:text-neutral-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-neutral-800 dark:focus:text-neutral-50",
|
|
167
|
+
className,
|
|
168
|
+
)}
|
|
169
|
+
{...props}>
|
|
170
|
+
<span className='absolute left-2 flex h-3.5 w-3.5 items-center justify-center'>
|
|
171
|
+
<MenubarPrimitive.ItemIndicator>
|
|
172
|
+
<Circle className='h-4 w-4 fill-current' />
|
|
173
|
+
</MenubarPrimitive.ItemIndicator>
|
|
174
|
+
</span>
|
|
175
|
+
{children}
|
|
176
|
+
</MenubarPrimitive.RadioItem>
|
|
177
|
+
));
|
|
178
|
+
MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
|
|
179
|
+
|
|
180
|
+
const MenubarLabel = React.forwardRef<
|
|
181
|
+
React.ComponentRef<typeof MenubarPrimitive.Label>,
|
|
182
|
+
React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Label> & {
|
|
183
|
+
inset?: boolean;
|
|
184
|
+
}
|
|
185
|
+
>(({className, inset, ...props}, ref) => (
|
|
186
|
+
<MenubarPrimitive.Label
|
|
187
|
+
ref={ref}
|
|
188
|
+
className={cn("px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className)}
|
|
189
|
+
{...props}
|
|
190
|
+
/>
|
|
191
|
+
));
|
|
192
|
+
MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
|
|
193
|
+
|
|
194
|
+
const MenubarSeparator = React.forwardRef<
|
|
195
|
+
React.ComponentRef<typeof MenubarPrimitive.Separator>,
|
|
196
|
+
React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Separator>
|
|
197
|
+
>(({className, ...props}, ref) => (
|
|
198
|
+
<MenubarPrimitive.Separator
|
|
199
|
+
ref={ref}
|
|
200
|
+
className={cn("-mx-1 my-1 h-px bg-neutral-100 dark:bg-neutral-800", className)}
|
|
201
|
+
{...props}
|
|
202
|
+
/>
|
|
203
|
+
));
|
|
204
|
+
MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
|
|
205
|
+
|
|
206
|
+
const MenubarShortcut = ({className, ...props}: React.HTMLAttributes<HTMLSpanElement>) => {
|
|
185
207
|
return (
|
|
186
208
|
<span
|
|
187
|
-
data-slot='menubar-shortcut'
|
|
188
209
|
className={cn("ml-auto text-xs tracking-widest text-neutral-500 dark:text-neutral-400", className)}
|
|
189
210
|
{...props}
|
|
190
211
|
/>
|
|
191
212
|
);
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
function MenubarSub({...props}: React.ComponentProps<typeof MenubarPrimitive.Sub>) {
|
|
195
|
-
return (
|
|
196
|
-
<MenubarPrimitive.Sub
|
|
197
|
-
data-slot='menubar-sub'
|
|
198
|
-
{...props}
|
|
199
|
-
/>
|
|
200
|
-
);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
function MenubarSubTrigger({
|
|
204
|
-
className,
|
|
205
|
-
inset,
|
|
206
|
-
children,
|
|
207
|
-
...props
|
|
208
|
-
}: React.ComponentProps<typeof MenubarPrimitive.SubTrigger> & {
|
|
209
|
-
inset?: boolean;
|
|
210
|
-
}) {
|
|
211
|
-
return (
|
|
212
|
-
<MenubarPrimitive.SubTrigger
|
|
213
|
-
data-slot='menubar-sub-trigger'
|
|
214
|
-
data-inset={inset}
|
|
215
|
-
className={cn(
|
|
216
|
-
"flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none focus:bg-neutral-100 focus:text-neutral-900 data-[inset]:pl-8 data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-900 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[state=open]:bg-neutral-800 dark:data-[state=open]:text-neutral-50",
|
|
217
|
-
className,
|
|
218
|
-
)}
|
|
219
|
-
{...props}>
|
|
220
|
-
{children}
|
|
221
|
-
<ChevronRightIcon className='ml-auto h-4 w-4' />
|
|
222
|
-
</MenubarPrimitive.SubTrigger>
|
|
223
|
-
);
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
function MenubarSubContent({className, ...props}: React.ComponentProps<typeof MenubarPrimitive.SubContent>) {
|
|
227
|
-
return (
|
|
228
|
-
<MenubarPrimitive.SubContent
|
|
229
|
-
data-slot='menubar-sub-content'
|
|
230
|
-
className={cn(
|
|
231
|
-
"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-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border border-neutral-200 bg-white p-1 text-neutral-950 shadow-lg dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",
|
|
232
|
-
className,
|
|
233
|
-
)}
|
|
234
|
-
{...props}
|
|
235
|
-
/>
|
|
236
|
-
);
|
|
237
|
-
}
|
|
213
|
+
};
|
|
214
|
+
MenubarShortcut.displayname = "MenubarShortcut";
|
|
238
215
|
|
|
239
216
|
export {
|
|
240
217
|
Menubar,
|
|
@@ -2,125 +2,109 @@
|
|
|
2
2
|
|
|
3
3
|
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
|
|
4
4
|
import {cva} from "class-variance-authority";
|
|
5
|
-
import {
|
|
5
|
+
import {ChevronDown} from "lucide-react";
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
|
|
8
8
|
import {cn} from "@/lib/utilities";
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
<
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
{...props}>
|
|
24
|
-
{children}
|
|
25
|
-
{Boolean(viewport) && <NavigationMenuViewport />}
|
|
26
|
-
</NavigationMenuPrimitive.Root>
|
|
27
|
-
);
|
|
28
|
-
}
|
|
10
|
+
const NavigationMenu = React.forwardRef<
|
|
11
|
+
React.ComponentRef<typeof NavigationMenuPrimitive.Root>,
|
|
12
|
+
React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root>
|
|
13
|
+
>(({className, children, ...props}, ref) => (
|
|
14
|
+
<NavigationMenuPrimitive.Root
|
|
15
|
+
ref={ref}
|
|
16
|
+
className={cn("relative z-10 flex max-w-max flex-1 items-center justify-center", className)}
|
|
17
|
+
{...props}>
|
|
18
|
+
{children}
|
|
19
|
+
<NavigationMenuViewport />
|
|
20
|
+
</NavigationMenuPrimitive.Root>
|
|
21
|
+
));
|
|
22
|
+
NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
|
|
29
23
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
24
|
+
const NavigationMenuList = React.forwardRef<
|
|
25
|
+
React.ComponentRef<typeof NavigationMenuPrimitive.List>,
|
|
26
|
+
React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>
|
|
27
|
+
>(({className, ...props}, ref) => (
|
|
28
|
+
<NavigationMenuPrimitive.List
|
|
29
|
+
ref={ref}
|
|
30
|
+
className={cn("group flex flex-1 list-none items-center justify-center space-x-1", className)}
|
|
31
|
+
{...props}
|
|
32
|
+
/>
|
|
33
|
+
));
|
|
34
|
+
NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
|
|
39
35
|
|
|
40
|
-
|
|
41
|
-
return (
|
|
42
|
-
<NavigationMenuPrimitive.Item
|
|
43
|
-
data-slot='navigation-menu-item'
|
|
44
|
-
className={cn("relative", className)}
|
|
45
|
-
{...props}
|
|
46
|
-
/>
|
|
47
|
-
);
|
|
48
|
-
}
|
|
36
|
+
const NavigationMenuItem = NavigationMenuPrimitive.Item;
|
|
49
37
|
|
|
50
38
|
const navigationMenuTriggerStyle = cva(
|
|
51
|
-
"group inline-flex h-9 w-max items-center justify-center rounded-md bg-white px-4 py-2 text-sm font-medium hover:bg-neutral-100 hover:text-neutral-900 focus:bg-neutral-100 focus:text-neutral-900 disabled:pointer-events-none disabled:opacity-50 data-[state=open]:
|
|
39
|
+
"group inline-flex h-9 w-max items-center justify-center rounded-md bg-white px-4 py-2 text-sm font-medium transition-colors hover:bg-neutral-100 hover:text-neutral-900 focus:bg-neutral-100 focus:text-neutral-900 focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:text-neutral-900 data-[state=open]:bg-neutral-100/50 data-[state=open]:hover:bg-neutral-100 data-[state=open]:focus:bg-neutral-100 dark:bg-neutral-950 dark:hover:bg-neutral-800 dark:hover:text-neutral-50 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[state=open]:text-neutral-50 dark:data-[state=open]:bg-neutral-800/50 dark:data-[state=open]:hover:bg-neutral-800 dark:data-[state=open]:focus:bg-neutral-800",
|
|
52
40
|
);
|
|
53
41
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
function NavigationMenuContent({className, ...props}: React.ComponentProps<typeof NavigationMenuPrimitive.Content>) {
|
|
70
|
-
return (
|
|
71
|
-
<NavigationMenuPrimitive.Content
|
|
72
|
-
data-slot='navigation-menu-content'
|
|
73
|
-
className={cn(
|
|
74
|
-
"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 top-0 left-0 w-full p-2 pr-2.5 md:absolute md:w-auto",
|
|
75
|
-
"group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none",
|
|
76
|
-
className,
|
|
77
|
-
)}
|
|
78
|
-
{...props}
|
|
42
|
+
const NavigationMenuTrigger = React.forwardRef<
|
|
43
|
+
React.ComponentRef<typeof NavigationMenuPrimitive.Trigger>,
|
|
44
|
+
React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>
|
|
45
|
+
>(({className, children, ...props}, ref) => (
|
|
46
|
+
<NavigationMenuPrimitive.Trigger
|
|
47
|
+
ref={ref}
|
|
48
|
+
className={cn(navigationMenuTriggerStyle(), "group", className)}
|
|
49
|
+
{...props}>
|
|
50
|
+
{children}
|
|
51
|
+
<ChevronDown
|
|
52
|
+
className='relative top-[1px] ml-1 h-3 w-3 transition duration-300 group-data-[state=open]:rotate-180'
|
|
53
|
+
aria-hidden='true'
|
|
79
54
|
/>
|
|
80
|
-
|
|
81
|
-
|
|
55
|
+
</NavigationMenuPrimitive.Trigger>
|
|
56
|
+
));
|
|
57
|
+
NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
|
|
58
|
+
|
|
59
|
+
const NavigationMenuContent = React.forwardRef<
|
|
60
|
+
React.ComponentRef<typeof NavigationMenuPrimitive.Content>,
|
|
61
|
+
React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>
|
|
62
|
+
>(({className, ...props}, ref) => (
|
|
63
|
+
<NavigationMenuPrimitive.Content
|
|
64
|
+
ref={ref}
|
|
65
|
+
className={cn(
|
|
66
|
+
"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 top-0 left-0 w-full md:absolute md:w-auto",
|
|
67
|
+
className,
|
|
68
|
+
)}
|
|
69
|
+
{...props}
|
|
70
|
+
/>
|
|
71
|
+
));
|
|
72
|
+
NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
|
|
82
73
|
|
|
83
|
-
|
|
84
|
-
return (
|
|
85
|
-
<div className={cn("absolute top-full left-0 isolate z-50 flex justify-center")}>
|
|
86
|
-
<NavigationMenuPrimitive.Viewport
|
|
87
|
-
data-slot='navigation-menu-viewport'
|
|
88
|
-
className={cn(
|
|
89
|
-
"origin-top-center data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border border-neutral-200 bg-white text-neutral-950 shadow md:w-[var(--radix-navigation-menu-viewport-width)] dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",
|
|
90
|
-
className,
|
|
91
|
-
)}
|
|
92
|
-
{...props}
|
|
93
|
-
/>
|
|
94
|
-
</div>
|
|
95
|
-
);
|
|
96
|
-
}
|
|
74
|
+
const NavigationMenuLink = NavigationMenuPrimitive.Link;
|
|
97
75
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
76
|
+
const NavigationMenuViewport = React.forwardRef<
|
|
77
|
+
React.ComponentRef<typeof NavigationMenuPrimitive.Viewport>,
|
|
78
|
+
React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>
|
|
79
|
+
>(({className, ...props}, ref) => (
|
|
80
|
+
<div className={cn("absolute top-full left-0 flex justify-center")}>
|
|
81
|
+
<NavigationMenuPrimitive.Viewport
|
|
102
82
|
className={cn(
|
|
103
|
-
"
|
|
83
|
+
"origin-top-center data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border border-neutral-200 bg-white text-neutral-950 shadow md:w-[var(--radix-navigation-menu-viewport-width)] dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",
|
|
104
84
|
className,
|
|
105
85
|
)}
|
|
86
|
+
ref={ref}
|
|
106
87
|
{...props}
|
|
107
88
|
/>
|
|
108
|
-
|
|
109
|
-
|
|
89
|
+
</div>
|
|
90
|
+
));
|
|
91
|
+
NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
|
|
110
92
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
93
|
+
const NavigationMenuIndicator = React.forwardRef<
|
|
94
|
+
React.ComponentRef<typeof NavigationMenuPrimitive.Indicator>,
|
|
95
|
+
React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>
|
|
96
|
+
>(({className, ...props}, ref) => (
|
|
97
|
+
<NavigationMenuPrimitive.Indicator
|
|
98
|
+
ref={ref}
|
|
99
|
+
className={cn(
|
|
100
|
+
"data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden",
|
|
101
|
+
className,
|
|
102
|
+
)}
|
|
103
|
+
{...props}>
|
|
104
|
+
<div className='relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-neutral-200 shadow-md dark:bg-neutral-800' />
|
|
105
|
+
</NavigationMenuPrimitive.Indicator>
|
|
106
|
+
));
|
|
107
|
+
NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
|
|
124
108
|
|
|
125
109
|
export {
|
|
126
110
|
NavigationMenu,
|