@deankwan/ui 0.1.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 (95) hide show
  1. package/dist/app/components/ui/accordion.mjs +64 -0
  2. package/dist/app/components/ui/alert-dialog.mjs +146 -0
  3. package/dist/app/components/ui/alert.mjs +66 -0
  4. package/dist/app/components/ui/aspect-ratio.mjs +10 -0
  5. package/dist/app/components/ui/avatar.mjs +53 -0
  6. package/dist/app/components/ui/badge.mjs +39 -0
  7. package/dist/app/components/ui/breadcrumb.mjs +102 -0
  8. package/dist/app/components/ui/button.mjs +49 -0
  9. package/dist/app/components/ui/calendar.mjs +61 -0
  10. package/dist/app/components/ui/card.mjs +90 -0
  11. package/dist/app/components/ui/carousel.mjs +177 -0
  12. package/dist/app/components/ui/chart.mjs +215 -0
  13. package/dist/app/components/ui/checkbox.mjs +31 -0
  14. package/dist/app/components/ui/collapsible.mjs +34 -0
  15. package/dist/app/components/ui/command.mjs +161 -0
  16. package/dist/app/components/ui/context-menu.mjs +223 -0
  17. package/dist/app/components/ui/dialog.mjs +128 -0
  18. package/dist/app/components/ui/drawer.mjs +125 -0
  19. package/dist/app/components/ui/dropdown-menu.mjs +231 -0
  20. package/dist/app/components/ui/form.mjs +101 -0
  21. package/dist/app/components/ui/hover-card.mjs +38 -0
  22. package/dist/app/components/ui/input-otp.mjs +65 -0
  23. package/dist/app/components/ui/input.mjs +21 -0
  24. package/dist/app/components/ui/label.mjs +22 -0
  25. package/dist/app/components/ui/menubar.mjs +251 -0
  26. package/dist/app/components/ui/navigation-menu.mjs +170 -0
  27. package/dist/app/components/ui/pagination.mjs +118 -0
  28. package/dist/app/components/ui/popover.mjs +44 -0
  29. package/dist/app/components/ui/progress.mjs +31 -0
  30. package/dist/app/components/ui/radio-group.mjs +45 -0
  31. package/dist/app/components/ui/resizable.mjs +48 -0
  32. package/dist/app/components/ui/scroll-area.mjs +60 -0
  33. package/dist/app/components/ui/select.mjs +169 -0
  34. package/dist/app/components/ui/separator.mjs +26 -0
  35. package/dist/app/components/ui/sheet.mjs +126 -0
  36. package/dist/app/components/ui/sidebar.mjs +593 -0
  37. package/dist/app/components/ui/skeleton.mjs +15 -0
  38. package/dist/app/components/ui/slider.mjs +63 -0
  39. package/dist/app/components/ui/sonner.mjs +22 -0
  40. package/dist/app/components/ui/switch.mjs +31 -0
  41. package/dist/app/components/ui/table.mjs +114 -0
  42. package/dist/app/components/ui/tabs.mjs +67 -0
  43. package/dist/app/components/ui/textarea.mjs +18 -0
  44. package/dist/app/components/ui/toggle-group.mjs +62 -0
  45. package/dist/app/components/ui/toggle.mjs +43 -0
  46. package/dist/app/components/ui/tooltip.mjs +55 -0
  47. package/dist/app/components/ui/use-mobile.mjs +16 -0
  48. package/dist/app/components/ui/utils.mjs +8 -0
  49. package/dist/index.mjs +297 -0
  50. package/dist/src/app/components/ui/accordion.d.ts +7 -0
  51. package/dist/src/app/components/ui/alert-dialog.d.ts +14 -0
  52. package/dist/src/app/components/ui/alert.d.ts +9 -0
  53. package/dist/src/app/components/ui/avatar.d.ts +6 -0
  54. package/dist/src/app/components/ui/badge.d.ts +9 -0
  55. package/dist/src/app/components/ui/breadcrumb.d.ts +11 -0
  56. package/dist/src/app/components/ui/button.d.ts +10 -0
  57. package/dist/src/app/components/ui/calendar.d.ts +4 -0
  58. package/dist/src/app/components/ui/card.d.ts +9 -0
  59. package/dist/src/app/components/ui/carousel.d.ts +19 -0
  60. package/dist/src/app/components/ui/chart.d.ts +40 -0
  61. package/dist/src/app/components/ui/checkbox.d.ts +4 -0
  62. package/dist/src/app/components/ui/command.d.ts +16 -0
  63. package/dist/src/app/components/ui/context-menu.d.ts +25 -0
  64. package/dist/src/app/components/ui/dialog.d.ts +13 -0
  65. package/dist/src/app/components/ui/drawer.d.ts +13 -0
  66. package/dist/src/app/components/ui/dropdown-menu.d.ts +25 -0
  67. package/dist/src/app/components/ui/hover-card.d.ts +6 -0
  68. package/dist/src/app/components/ui/input-otp.d.ts +11 -0
  69. package/dist/src/app/components/ui/input.d.ts +3 -0
  70. package/dist/src/app/components/ui/label.d.ts +4 -0
  71. package/dist/src/app/components/ui/menubar.d.ts +26 -0
  72. package/dist/src/app/components/ui/navigation-menu.d.ts +14 -0
  73. package/dist/src/app/components/ui/pagination.d.ts +13 -0
  74. package/dist/src/app/components/ui/popover.d.ts +7 -0
  75. package/dist/src/app/components/ui/progress.d.ts +4 -0
  76. package/dist/src/app/components/ui/radio-group.d.ts +5 -0
  77. package/dist/src/app/components/ui/resizable.d.ts +8 -0
  78. package/dist/src/app/components/ui/scroll-area.d.ts +5 -0
  79. package/dist/src/app/components/ui/select.d.ts +15 -0
  80. package/dist/src/app/components/ui/separator.d.ts +4 -0
  81. package/dist/src/app/components/ui/sheet.d.ts +13 -0
  82. package/dist/src/app/components/ui/sidebar.d.ts +60 -0
  83. package/dist/src/app/components/ui/slider.d.ts +4 -0
  84. package/dist/src/app/components/ui/switch.d.ts +4 -0
  85. package/dist/src/app/components/ui/table.d.ts +10 -0
  86. package/dist/src/app/components/ui/tabs.d.ts +7 -0
  87. package/dist/src/app/components/ui/textarea.d.ts +3 -0
  88. package/dist/src/app/components/ui/toggle-group.d.ts +7 -0
  89. package/dist/src/app/components/ui/toggle.d.ts +9 -0
  90. package/dist/src/app/components/ui/tooltip.d.ts +7 -0
  91. package/dist/src/app/components/ui/use-mobile.d.ts +1 -0
  92. package/dist/src/app/components/ui/utils.d.ts +2 -0
  93. package/dist/src/index.d.ts +48 -0
  94. package/dist/style.css +1 -0
  95. package/package.json +166 -0
@@ -0,0 +1,101 @@
1
+ import { jsx as m } from "react/jsx-runtime";
2
+ import * as s from "react";
3
+ import { Slot as f } from "@radix-ui/react-slot";
4
+ import { FormProvider as u, Controller as F, useFormContext as x, useFormState as I } from "react-hook-form";
5
+ import { cn as a } from "./utils.mjs";
6
+ import { Label as g } from "./label.mjs";
7
+ const S = u, c = s.createContext(
8
+ {}
9
+ ), $ = ({
10
+ ...t
11
+ }) => /* @__PURE__ */ m(c.Provider, { value: { name: t.name }, children: /* @__PURE__ */ m(F, { ...t }) }), d = () => {
12
+ const t = s.useContext(c), o = s.useContext(l), { getFieldState: e } = x(), r = I({ name: t.name }), n = e(t.name, r);
13
+ if (!t)
14
+ throw new Error("useFormField should be used within <FormField>");
15
+ const { id: i } = o;
16
+ return {
17
+ id: i,
18
+ name: t.name,
19
+ formItemId: `${i}-form-item`,
20
+ formDescriptionId: `${i}-form-item-description`,
21
+ formMessageId: `${i}-form-item-message`,
22
+ ...n
23
+ };
24
+ }, l = s.createContext(
25
+ {}
26
+ );
27
+ function D({ className: t, ...o }) {
28
+ const e = s.useId();
29
+ return /* @__PURE__ */ m(l.Provider, { value: { id: e }, children: /* @__PURE__ */ m(
30
+ "div",
31
+ {
32
+ "data-slot": "form-item",
33
+ className: a("grid gap-2", t),
34
+ ...o
35
+ }
36
+ ) });
37
+ }
38
+ function M({
39
+ className: t,
40
+ ...o
41
+ }) {
42
+ const { error: e, formItemId: r } = d();
43
+ return /* @__PURE__ */ m(
44
+ g,
45
+ {
46
+ "data-slot": "form-label",
47
+ "data-error": !!e,
48
+ className: a("data-[error=true]:text-destructive", t),
49
+ htmlFor: r,
50
+ ...o
51
+ }
52
+ );
53
+ }
54
+ function N({ ...t }) {
55
+ const { error: o, formItemId: e, formDescriptionId: r, formMessageId: n } = d();
56
+ return /* @__PURE__ */ m(
57
+ f,
58
+ {
59
+ "data-slot": "form-control",
60
+ id: e,
61
+ "aria-describedby": o ? `${r} ${n}` : `${r}`,
62
+ "aria-invalid": !!o,
63
+ ...t
64
+ }
65
+ );
66
+ }
67
+ function w({ className: t, ...o }) {
68
+ const { formDescriptionId: e } = d();
69
+ return /* @__PURE__ */ m(
70
+ "p",
71
+ {
72
+ "data-slot": "form-description",
73
+ id: e,
74
+ className: a("text-muted-foreground text-sm", t),
75
+ ...o
76
+ }
77
+ );
78
+ }
79
+ function P({ className: t, ...o }) {
80
+ const { error: e, formMessageId: r } = d(), n = e ? String((e == null ? void 0 : e.message) ?? "") : o.children;
81
+ return n ? /* @__PURE__ */ m(
82
+ "p",
83
+ {
84
+ "data-slot": "form-message",
85
+ id: r,
86
+ className: a("text-destructive text-sm", t),
87
+ ...o,
88
+ children: n
89
+ }
90
+ ) : null;
91
+ }
92
+ export {
93
+ S as Form,
94
+ N as FormControl,
95
+ w as FormDescription,
96
+ $ as FormField,
97
+ D as FormItem,
98
+ M as FormLabel,
99
+ P as FormMessage,
100
+ d as useFormField
101
+ };
@@ -0,0 +1,38 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import * as r from "@radix-ui/react-hover-card";
3
+ import { cn as i } from "./utils.mjs";
4
+ function m({
5
+ ...t
6
+ }) {
7
+ return /* @__PURE__ */ o(r.Root, { "data-slot": "hover-card", ...t });
8
+ }
9
+ function l({
10
+ ...t
11
+ }) {
12
+ return /* @__PURE__ */ o(r.Trigger, { "data-slot": "hover-card-trigger", ...t });
13
+ }
14
+ function c({
15
+ className: t,
16
+ align: e = "center",
17
+ sideOffset: a = 4,
18
+ ...d
19
+ }) {
20
+ return /* @__PURE__ */ o(r.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ o(
21
+ r.Content,
22
+ {
23
+ "data-slot": "hover-card-content",
24
+ align: e,
25
+ sideOffset: a,
26
+ className: i(
27
+ "bg-popover 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 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
28
+ t
29
+ ),
30
+ ...d
31
+ }
32
+ ) });
33
+ }
34
+ export {
35
+ m as HoverCard,
36
+ c as HoverCardContent,
37
+ l as HoverCardTrigger
38
+ };
@@ -0,0 +1,65 @@
1
+ import { jsx as e, jsxs as u } from "react/jsx-runtime";
2
+ import * as c from "react";
3
+ import { OTPInput as l, OTPInputContext as p } from "input-otp";
4
+ import { MinusIcon as m } from "lucide-react";
5
+ import { cn as a } from "./utils.mjs";
6
+ function x({
7
+ className: t,
8
+ containerClassName: r,
9
+ ...i
10
+ }) {
11
+ return /* @__PURE__ */ e(
12
+ l,
13
+ {
14
+ "data-slot": "input-otp",
15
+ containerClassName: a(
16
+ "flex items-center gap-2 has-disabled:opacity-50",
17
+ r
18
+ ),
19
+ className: a("disabled:cursor-not-allowed", t),
20
+ ...i
21
+ }
22
+ );
23
+ }
24
+ function h({ className: t, ...r }) {
25
+ return /* @__PURE__ */ e(
26
+ "div",
27
+ {
28
+ "data-slot": "input-otp-group",
29
+ className: a("flex items-center gap-1", t),
30
+ ...r
31
+ }
32
+ );
33
+ }
34
+ function I({
35
+ index: t,
36
+ className: r,
37
+ ...i
38
+ }) {
39
+ const n = c.useContext(p), { char: o, hasFakeCaret: s, isActive: d } = (n == null ? void 0 : n.slots[t]) ?? {};
40
+ return /* @__PURE__ */ u(
41
+ "div",
42
+ {
43
+ "data-slot": "input-otp-slot",
44
+ "data-active": d,
45
+ className: a(
46
+ "data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm bg-input-background transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]",
47
+ r
48
+ ),
49
+ ...i,
50
+ children: [
51
+ o,
52
+ s && /* @__PURE__ */ e("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ e("div", { className: "animate-caret-blink bg-foreground h-4 w-px duration-1000" }) })
53
+ ]
54
+ }
55
+ );
56
+ }
57
+ function N({ ...t }) {
58
+ return /* @__PURE__ */ e("div", { "data-slot": "input-otp-separator", role: "separator", ...t, children: /* @__PURE__ */ e(m, {}) });
59
+ }
60
+ export {
61
+ x as InputOTP,
62
+ h as InputOTPGroup,
63
+ N as InputOTPSeparator,
64
+ I as InputOTPSlot
65
+ };
@@ -0,0 +1,21 @@
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { cn as n } from "./utils.mjs";
3
+ function l({ className: e, type: i, ...r }) {
4
+ return /* @__PURE__ */ t(
5
+ "input",
6
+ {
7
+ type: i,
8
+ "data-slot": "input",
9
+ className: n(
10
+ "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border px-3 py-1 text-base bg-input-background 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",
11
+ "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
12
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
13
+ e
14
+ ),
15
+ ...r
16
+ }
17
+ );
18
+ }
19
+ export {
20
+ l as Input
21
+ };
@@ -0,0 +1,22 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import * as a from "@radix-ui/react-label";
3
+ import { cn as r } from "./utils.mjs";
4
+ function l({
5
+ className: e,
6
+ ...t
7
+ }) {
8
+ return /* @__PURE__ */ o(
9
+ a.Root,
10
+ {
11
+ "data-slot": "label",
12
+ className: r(
13
+ "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
14
+ e
15
+ ),
16
+ ...t
17
+ }
18
+ );
19
+ }
20
+ export {
21
+ l as Label
22
+ };
@@ -0,0 +1,251 @@
1
+ import { jsx as a, jsxs as d } from "react/jsx-runtime";
2
+ import * as n from "@radix-ui/react-menubar";
3
+ import { CheckIcon as u, CircleIcon as c, ChevronRightIcon as l } from "lucide-react";
4
+ import { cn as o } from "./utils.mjs";
5
+ function g({
6
+ className: e,
7
+ ...t
8
+ }) {
9
+ return /* @__PURE__ */ a(
10
+ n.Root,
11
+ {
12
+ "data-slot": "menubar",
13
+ className: o(
14
+ "bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs",
15
+ e
16
+ ),
17
+ ...t
18
+ }
19
+ );
20
+ }
21
+ function x({
22
+ ...e
23
+ }) {
24
+ return /* @__PURE__ */ a(n.Menu, { "data-slot": "menubar-menu", ...e });
25
+ }
26
+ function v({
27
+ ...e
28
+ }) {
29
+ return /* @__PURE__ */ a(n.Group, { "data-slot": "menubar-group", ...e });
30
+ }
31
+ function m({
32
+ ...e
33
+ }) {
34
+ return /* @__PURE__ */ a(n.Portal, { "data-slot": "menubar-portal", ...e });
35
+ }
36
+ function h({
37
+ ...e
38
+ }) {
39
+ return /* @__PURE__ */ a(n.RadioGroup, { "data-slot": "menubar-radio-group", ...e });
40
+ }
41
+ function M({
42
+ className: e,
43
+ ...t
44
+ }) {
45
+ return /* @__PURE__ */ a(
46
+ n.Trigger,
47
+ {
48
+ "data-slot": "menubar-trigger",
49
+ className: o(
50
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none",
51
+ e
52
+ ),
53
+ ...t
54
+ }
55
+ );
56
+ }
57
+ function z({
58
+ className: e,
59
+ align: t = "start",
60
+ alignOffset: r = -4,
61
+ sideOffset: s = 8,
62
+ ...i
63
+ }) {
64
+ return /* @__PURE__ */ a(m, { children: /* @__PURE__ */ a(
65
+ n.Content,
66
+ {
67
+ "data-slot": "menubar-content",
68
+ align: t,
69
+ alignOffset: r,
70
+ sideOffset: s,
71
+ className: o(
72
+ "bg-popover text-popover-foreground 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 p-1 shadow-md",
73
+ e
74
+ ),
75
+ ...i
76
+ }
77
+ ) });
78
+ }
79
+ function N({
80
+ className: e,
81
+ inset: t,
82
+ variant: r = "default",
83
+ ...s
84
+ }) {
85
+ return /* @__PURE__ */ a(
86
+ n.Item,
87
+ {
88
+ "data-slot": "menubar-item",
89
+ "data-inset": t,
90
+ "data-variant": r,
91
+ className: o(
92
+ "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground 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",
93
+ e
94
+ ),
95
+ ...s
96
+ }
97
+ );
98
+ }
99
+ function I({
100
+ className: e,
101
+ children: t,
102
+ checked: r,
103
+ ...s
104
+ }) {
105
+ return /* @__PURE__ */ d(
106
+ n.CheckboxItem,
107
+ {
108
+ "data-slot": "menubar-checkbox-item",
109
+ className: o(
110
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
111
+ e
112
+ ),
113
+ checked: r,
114
+ ...s,
115
+ children: [
116
+ /* @__PURE__ */ a("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ a(n.ItemIndicator, { children: /* @__PURE__ */ a(u, { className: "size-4" }) }) }),
117
+ t
118
+ ]
119
+ }
120
+ );
121
+ }
122
+ function y({
123
+ className: e,
124
+ children: t,
125
+ ...r
126
+ }) {
127
+ return /* @__PURE__ */ d(
128
+ n.RadioItem,
129
+ {
130
+ "data-slot": "menubar-radio-item",
131
+ className: o(
132
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
133
+ e
134
+ ),
135
+ ...r,
136
+ children: [
137
+ /* @__PURE__ */ a("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ a(n.ItemIndicator, { children: /* @__PURE__ */ a(c, { className: "size-2 fill-current" }) }) }),
138
+ t
139
+ ]
140
+ }
141
+ );
142
+ }
143
+ function k({
144
+ className: e,
145
+ inset: t,
146
+ ...r
147
+ }) {
148
+ return /* @__PURE__ */ a(
149
+ n.Label,
150
+ {
151
+ "data-slot": "menubar-label",
152
+ "data-inset": t,
153
+ className: o(
154
+ "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
155
+ e
156
+ ),
157
+ ...r
158
+ }
159
+ );
160
+ }
161
+ function _({
162
+ className: e,
163
+ ...t
164
+ }) {
165
+ return /* @__PURE__ */ a(
166
+ n.Separator,
167
+ {
168
+ "data-slot": "menubar-separator",
169
+ className: o("bg-border -mx-1 my-1 h-px", e),
170
+ ...t
171
+ }
172
+ );
173
+ }
174
+ function w({
175
+ className: e,
176
+ ...t
177
+ }) {
178
+ return /* @__PURE__ */ a(
179
+ "span",
180
+ {
181
+ "data-slot": "menubar-shortcut",
182
+ className: o(
183
+ "text-muted-foreground ml-auto text-xs tracking-widest",
184
+ e
185
+ ),
186
+ ...t
187
+ }
188
+ );
189
+ }
190
+ function C({
191
+ ...e
192
+ }) {
193
+ return /* @__PURE__ */ a(n.Sub, { "data-slot": "menubar-sub", ...e });
194
+ }
195
+ function S({
196
+ className: e,
197
+ inset: t,
198
+ children: r,
199
+ ...s
200
+ }) {
201
+ return /* @__PURE__ */ d(
202
+ n.SubTrigger,
203
+ {
204
+ "data-slot": "menubar-sub-trigger",
205
+ "data-inset": t,
206
+ className: o(
207
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[inset]:pl-8",
208
+ e
209
+ ),
210
+ ...s,
211
+ children: [
212
+ r,
213
+ /* @__PURE__ */ a(l, { className: "ml-auto h-4 w-4" })
214
+ ]
215
+ }
216
+ );
217
+ }
218
+ function R({
219
+ className: e,
220
+ ...t
221
+ }) {
222
+ return /* @__PURE__ */ a(
223
+ n.SubContent,
224
+ {
225
+ "data-slot": "menubar-sub-content",
226
+ className: o(
227
+ "bg-popover 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 z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
228
+ e
229
+ ),
230
+ ...t
231
+ }
232
+ );
233
+ }
234
+ export {
235
+ g as Menubar,
236
+ I as MenubarCheckboxItem,
237
+ z as MenubarContent,
238
+ v as MenubarGroup,
239
+ N as MenubarItem,
240
+ k as MenubarLabel,
241
+ x as MenubarMenu,
242
+ m as MenubarPortal,
243
+ h as MenubarRadioGroup,
244
+ y as MenubarRadioItem,
245
+ _ as MenubarSeparator,
246
+ w as MenubarShortcut,
247
+ C as MenubarSub,
248
+ R as MenubarSubContent,
249
+ S as MenubarSubTrigger,
250
+ M as MenubarTrigger
251
+ };
@@ -0,0 +1,170 @@
1
+ import { jsxs as r, jsx as e } from "react/jsx-runtime";
2
+ import * as n from "@radix-ui/react-navigation-menu";
3
+ import { cva as u } from "class-variance-authority";
4
+ import { ChevronDownIcon as d } from "lucide-react";
5
+ import { cn as o } from "./utils.mjs";
6
+ function p({
7
+ className: t,
8
+ children: a,
9
+ viewport: i = !0,
10
+ ...s
11
+ }) {
12
+ return /* @__PURE__ */ r(
13
+ n.Root,
14
+ {
15
+ "data-slot": "navigation-menu",
16
+ "data-viewport": i,
17
+ className: o(
18
+ "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
19
+ t
20
+ ),
21
+ ...s,
22
+ children: [
23
+ a,
24
+ i && /* @__PURE__ */ e(g, {})
25
+ ]
26
+ }
27
+ );
28
+ }
29
+ function w({
30
+ className: t,
31
+ ...a
32
+ }) {
33
+ return /* @__PURE__ */ e(
34
+ n.List,
35
+ {
36
+ "data-slot": "navigation-menu-list",
37
+ className: o(
38
+ "group flex flex-1 list-none items-center justify-center gap-1",
39
+ t
40
+ ),
41
+ ...a
42
+ }
43
+ );
44
+ }
45
+ function x({
46
+ className: t,
47
+ ...a
48
+ }) {
49
+ return /* @__PURE__ */ e(
50
+ n.Item,
51
+ {
52
+ "data-slot": "navigation-menu-item",
53
+ className: o("relative", t),
54
+ ...a
55
+ }
56
+ );
57
+ }
58
+ const l = u(
59
+ "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-accent data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:bg-accent/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
60
+ );
61
+ function b({
62
+ className: t,
63
+ children: a,
64
+ ...i
65
+ }) {
66
+ return /* @__PURE__ */ r(
67
+ n.Trigger,
68
+ {
69
+ "data-slot": "navigation-menu-trigger",
70
+ className: o(l(), "group", t),
71
+ ...i,
72
+ children: [
73
+ a,
74
+ " ",
75
+ /* @__PURE__ */ e(
76
+ d,
77
+ {
78
+ className: "relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180",
79
+ "aria-hidden": "true"
80
+ }
81
+ )
82
+ ]
83
+ }
84
+ );
85
+ }
86
+ function h({
87
+ className: t,
88
+ ...a
89
+ }) {
90
+ return /* @__PURE__ */ e(
91
+ n.Content,
92
+ {
93
+ "data-slot": "navigation-menu-content",
94
+ className: o(
95
+ "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",
96
+ "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",
97
+ t
98
+ ),
99
+ ...a
100
+ }
101
+ );
102
+ }
103
+ function g({
104
+ className: t,
105
+ ...a
106
+ }) {
107
+ return /* @__PURE__ */ e(
108
+ "div",
109
+ {
110
+ className: o(
111
+ "absolute top-full left-0 isolate z-50 flex justify-center"
112
+ ),
113
+ children: /* @__PURE__ */ e(
114
+ n.Viewport,
115
+ {
116
+ "data-slot": "navigation-menu-viewport",
117
+ className: o(
118
+ "origin-top-center bg-popover text-popover-foreground 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 shadow md:w-[var(--radix-navigation-menu-viewport-width)]",
119
+ t
120
+ ),
121
+ ...a
122
+ }
123
+ )
124
+ }
125
+ );
126
+ }
127
+ function N({
128
+ className: t,
129
+ ...a
130
+ }) {
131
+ return /* @__PURE__ */ e(
132
+ n.Link,
133
+ {
134
+ "data-slot": "navigation-menu-link",
135
+ className: o(
136
+ "data-[active=true]:focus:bg-accent data-[active=true]:hover:bg-accent data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-ring/50 [&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4",
137
+ t
138
+ ),
139
+ ...a
140
+ }
141
+ );
142
+ }
143
+ function M({
144
+ className: t,
145
+ ...a
146
+ }) {
147
+ return /* @__PURE__ */ e(
148
+ n.Indicator,
149
+ {
150
+ "data-slot": "navigation-menu-indicator",
151
+ className: o(
152
+ "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",
153
+ t
154
+ ),
155
+ ...a,
156
+ children: /* @__PURE__ */ e("div", { className: "bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" })
157
+ }
158
+ );
159
+ }
160
+ export {
161
+ p as NavigationMenu,
162
+ h as NavigationMenuContent,
163
+ M as NavigationMenuIndicator,
164
+ x as NavigationMenuItem,
165
+ N as NavigationMenuLink,
166
+ w as NavigationMenuList,
167
+ b as NavigationMenuTrigger,
168
+ g as NavigationMenuViewport,
169
+ l as navigationMenuTriggerStyle
170
+ };