@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,64 @@
1
+ import { jsx as e, jsxs as a } from "react/jsx-runtime";
2
+ import * as n from "@radix-ui/react-accordion";
3
+ import { ChevronDownIcon as s } from "lucide-react";
4
+ import { cn as i } from "./utils.mjs";
5
+ function m({
6
+ ...t
7
+ }) {
8
+ return /* @__PURE__ */ e(n.Root, { "data-slot": "accordion", ...t });
9
+ }
10
+ function f({
11
+ className: t,
12
+ ...o
13
+ }) {
14
+ return /* @__PURE__ */ e(
15
+ n.Item,
16
+ {
17
+ "data-slot": "accordion-item",
18
+ className: i("border-b last:border-b-0", t),
19
+ ...o
20
+ }
21
+ );
22
+ }
23
+ function u({
24
+ className: t,
25
+ children: o,
26
+ ...r
27
+ }) {
28
+ return /* @__PURE__ */ e(n.Header, { className: "flex", children: /* @__PURE__ */ a(
29
+ n.Trigger,
30
+ {
31
+ "data-slot": "accordion-trigger",
32
+ className: i(
33
+ "focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",
34
+ t
35
+ ),
36
+ ...r,
37
+ children: [
38
+ o,
39
+ /* @__PURE__ */ e(s, { className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" })
40
+ ]
41
+ }
42
+ ) });
43
+ }
44
+ function p({
45
+ className: t,
46
+ children: o,
47
+ ...r
48
+ }) {
49
+ return /* @__PURE__ */ e(
50
+ n.Content,
51
+ {
52
+ "data-slot": "accordion-content",
53
+ className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",
54
+ ...r,
55
+ children: /* @__PURE__ */ e("div", { className: i("pt-0 pb-4", t), children: o })
56
+ }
57
+ );
58
+ }
59
+ export {
60
+ m as Accordion,
61
+ p as AccordionContent,
62
+ f as AccordionItem,
63
+ u as AccordionTrigger
64
+ };
@@ -0,0 +1,146 @@
1
+ import { jsx as e, jsxs as n } from "react/jsx-runtime";
2
+ import * as o from "@radix-ui/react-alert-dialog";
3
+ import { cn as l } from "./utils.mjs";
4
+ import { buttonVariants as r } from "./button.mjs";
5
+ function u({
6
+ ...t
7
+ }) {
8
+ return /* @__PURE__ */ e(o.Root, { "data-slot": "alert-dialog", ...t });
9
+ }
10
+ function f({
11
+ ...t
12
+ }) {
13
+ return /* @__PURE__ */ e(o.Trigger, { "data-slot": "alert-dialog-trigger", ...t });
14
+ }
15
+ function i({
16
+ ...t
17
+ }) {
18
+ return /* @__PURE__ */ e(o.Portal, { "data-slot": "alert-dialog-portal", ...t });
19
+ }
20
+ function s({
21
+ className: t,
22
+ ...a
23
+ }) {
24
+ return /* @__PURE__ */ e(
25
+ o.Overlay,
26
+ {
27
+ "data-slot": "alert-dialog-overlay",
28
+ className: l(
29
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
30
+ t
31
+ ),
32
+ ...a
33
+ }
34
+ );
35
+ }
36
+ function m({
37
+ className: t,
38
+ ...a
39
+ }) {
40
+ return /* @__PURE__ */ n(i, { children: [
41
+ /* @__PURE__ */ e(s, {}),
42
+ /* @__PURE__ */ e(
43
+ o.Content,
44
+ {
45
+ "data-slot": "alert-dialog-content",
46
+ className: l(
47
+ "bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
48
+ t
49
+ ),
50
+ ...a
51
+ }
52
+ )
53
+ ] });
54
+ }
55
+ function p({
56
+ className: t,
57
+ ...a
58
+ }) {
59
+ return /* @__PURE__ */ e(
60
+ "div",
61
+ {
62
+ "data-slot": "alert-dialog-header",
63
+ className: l("flex flex-col gap-2 text-center sm:text-left", t),
64
+ ...a
65
+ }
66
+ );
67
+ }
68
+ function x({
69
+ className: t,
70
+ ...a
71
+ }) {
72
+ return /* @__PURE__ */ e(
73
+ "div",
74
+ {
75
+ "data-slot": "alert-dialog-footer",
76
+ className: l(
77
+ "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
78
+ t
79
+ ),
80
+ ...a
81
+ }
82
+ );
83
+ }
84
+ function A({
85
+ className: t,
86
+ ...a
87
+ }) {
88
+ return /* @__PURE__ */ e(
89
+ o.Title,
90
+ {
91
+ "data-slot": "alert-dialog-title",
92
+ className: l("text-lg font-semibold", t),
93
+ ...a
94
+ }
95
+ );
96
+ }
97
+ function D({
98
+ className: t,
99
+ ...a
100
+ }) {
101
+ return /* @__PURE__ */ e(
102
+ o.Description,
103
+ {
104
+ "data-slot": "alert-dialog-description",
105
+ className: l("text-muted-foreground text-sm", t),
106
+ ...a
107
+ }
108
+ );
109
+ }
110
+ function v({
111
+ className: t,
112
+ ...a
113
+ }) {
114
+ return /* @__PURE__ */ e(
115
+ o.Action,
116
+ {
117
+ className: l(r(), t),
118
+ ...a
119
+ }
120
+ );
121
+ }
122
+ function N({
123
+ className: t,
124
+ ...a
125
+ }) {
126
+ return /* @__PURE__ */ e(
127
+ o.Cancel,
128
+ {
129
+ className: l(r({ variant: "outline" }), t),
130
+ ...a
131
+ }
132
+ );
133
+ }
134
+ export {
135
+ u as AlertDialog,
136
+ v as AlertDialogAction,
137
+ N as AlertDialogCancel,
138
+ m as AlertDialogContent,
139
+ D as AlertDialogDescription,
140
+ x as AlertDialogFooter,
141
+ p as AlertDialogHeader,
142
+ s as AlertDialogOverlay,
143
+ i as AlertDialogPortal,
144
+ A as AlertDialogTitle,
145
+ f as AlertDialogTrigger
146
+ };
@@ -0,0 +1,66 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { cva as i } from "class-variance-authority";
3
+ import { cn as a } from "./utils.mjs";
4
+ const l = i(
5
+ "relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
6
+ {
7
+ variants: {
8
+ variant: {
9
+ default: "bg-card text-card-foreground",
10
+ destructive: "text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90"
11
+ }
12
+ },
13
+ defaultVariants: {
14
+ variant: "default"
15
+ }
16
+ }
17
+ );
18
+ function c({
19
+ className: t,
20
+ variant: r,
21
+ ...s
22
+ }) {
23
+ return /* @__PURE__ */ e(
24
+ "div",
25
+ {
26
+ "data-slot": "alert",
27
+ role: "alert",
28
+ className: a(l({ variant: r }), t),
29
+ ...s
30
+ }
31
+ );
32
+ }
33
+ function g({ className: t, ...r }) {
34
+ return /* @__PURE__ */ e(
35
+ "div",
36
+ {
37
+ "data-slot": "alert-title",
38
+ className: a(
39
+ "col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",
40
+ t
41
+ ),
42
+ ...r
43
+ }
44
+ );
45
+ }
46
+ function u({
47
+ className: t,
48
+ ...r
49
+ }) {
50
+ return /* @__PURE__ */ e(
51
+ "div",
52
+ {
53
+ "data-slot": "alert-description",
54
+ className: a(
55
+ "text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",
56
+ t
57
+ ),
58
+ ...r
59
+ }
60
+ );
61
+ }
62
+ export {
63
+ c as Alert,
64
+ u as AlertDescription,
65
+ g as AlertTitle
66
+ };
@@ -0,0 +1,10 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import * as i from "@radix-ui/react-aspect-ratio";
3
+ function a({
4
+ ...t
5
+ }) {
6
+ return /* @__PURE__ */ o(i.Root, { "data-slot": "aspect-ratio", ...t });
7
+ }
8
+ export {
9
+ a as AspectRatio
10
+ };
@@ -0,0 +1,53 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import * as r from "@radix-ui/react-avatar";
3
+ import { cn as l } from "./utils.mjs";
4
+ function i({
5
+ className: a,
6
+ ...t
7
+ }) {
8
+ return /* @__PURE__ */ e(
9
+ r.Root,
10
+ {
11
+ "data-slot": "avatar",
12
+ className: l(
13
+ "relative flex size-10 shrink-0 overflow-hidden rounded-full",
14
+ a
15
+ ),
16
+ ...t
17
+ }
18
+ );
19
+ }
20
+ function n({
21
+ className: a,
22
+ ...t
23
+ }) {
24
+ return /* @__PURE__ */ e(
25
+ r.Image,
26
+ {
27
+ "data-slot": "avatar-image",
28
+ className: l("aspect-square size-full", a),
29
+ ...t
30
+ }
31
+ );
32
+ }
33
+ function f({
34
+ className: a,
35
+ ...t
36
+ }) {
37
+ return /* @__PURE__ */ e(
38
+ r.Fallback,
39
+ {
40
+ "data-slot": "avatar-fallback",
41
+ className: l(
42
+ "bg-muted flex size-full items-center justify-center rounded-full",
43
+ a
44
+ ),
45
+ ...t
46
+ }
47
+ );
48
+ }
49
+ export {
50
+ i as Avatar,
51
+ f as AvatarFallback,
52
+ n as AvatarImage
53
+ };
@@ -0,0 +1,39 @@
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import { Slot as o } from "@radix-ui/react-slot";
3
+ import { cva as n } from "class-variance-authority";
4
+ import { cn as s } from "./utils.mjs";
5
+ const d = n(
6
+ "inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
7
+ {
8
+ variants: {
9
+ variant: {
10
+ default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
11
+ secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
12
+ destructive: "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
13
+ outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
14
+ }
15
+ },
16
+ defaultVariants: {
17
+ variant: "default"
18
+ }
19
+ }
20
+ );
21
+ function b({
22
+ className: r,
23
+ variant: e,
24
+ asChild: t = !1,
25
+ ...i
26
+ }) {
27
+ return /* @__PURE__ */ a(
28
+ t ? o : "span",
29
+ {
30
+ "data-slot": "badge",
31
+ className: s(d({ variant: e }), r),
32
+ ...i
33
+ }
34
+ );
35
+ }
36
+ export {
37
+ b as Badge,
38
+ d as badgeVariants
39
+ };
@@ -0,0 +1,102 @@
1
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
2
+ import { Slot as s } from "@radix-ui/react-slot";
3
+ import { MoreHorizontal as i, ChevronRight as l } from "lucide-react";
4
+ import { cn as t } from "./utils.mjs";
5
+ function p({ ...r }) {
6
+ return /* @__PURE__ */ a("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...r });
7
+ }
8
+ function f({ className: r, ...e }) {
9
+ return /* @__PURE__ */ a(
10
+ "ol",
11
+ {
12
+ "data-slot": "breadcrumb-list",
13
+ className: t(
14
+ "text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5",
15
+ r
16
+ ),
17
+ ...e
18
+ }
19
+ );
20
+ }
21
+ function g({ className: r, ...e }) {
22
+ return /* @__PURE__ */ a(
23
+ "li",
24
+ {
25
+ "data-slot": "breadcrumb-item",
26
+ className: t("inline-flex items-center gap-1.5", r),
27
+ ...e
28
+ }
29
+ );
30
+ }
31
+ function x({
32
+ asChild: r,
33
+ className: e,
34
+ ...n
35
+ }) {
36
+ return /* @__PURE__ */ a(
37
+ r ? s : "a",
38
+ {
39
+ "data-slot": "breadcrumb-link",
40
+ className: t("hover:text-foreground transition-colors", e),
41
+ ...n
42
+ }
43
+ );
44
+ }
45
+ function h({ className: r, ...e }) {
46
+ return /* @__PURE__ */ a(
47
+ "span",
48
+ {
49
+ "data-slot": "breadcrumb-page",
50
+ role: "link",
51
+ "aria-disabled": "true",
52
+ "aria-current": "page",
53
+ className: t("text-foreground font-normal", r),
54
+ ...e
55
+ }
56
+ );
57
+ }
58
+ function N({
59
+ children: r,
60
+ className: e,
61
+ ...n
62
+ }) {
63
+ return /* @__PURE__ */ a(
64
+ "li",
65
+ {
66
+ "data-slot": "breadcrumb-separator",
67
+ role: "presentation",
68
+ "aria-hidden": "true",
69
+ className: t("[&>svg]:size-3.5", e),
70
+ ...n,
71
+ children: r ?? /* @__PURE__ */ a(l, {})
72
+ }
73
+ );
74
+ }
75
+ function B({
76
+ className: r,
77
+ ...e
78
+ }) {
79
+ return /* @__PURE__ */ o(
80
+ "span",
81
+ {
82
+ "data-slot": "breadcrumb-ellipsis",
83
+ role: "presentation",
84
+ "aria-hidden": "true",
85
+ className: t("flex size-9 items-center justify-center", r),
86
+ ...e,
87
+ children: [
88
+ /* @__PURE__ */ a(i, { className: "size-4" }),
89
+ /* @__PURE__ */ a("span", { className: "sr-only", children: "More" })
90
+ ]
91
+ }
92
+ );
93
+ }
94
+ export {
95
+ p as Breadcrumb,
96
+ B as BreadcrumbEllipsis,
97
+ g as BreadcrumbItem,
98
+ x as BreadcrumbLink,
99
+ f as BreadcrumbList,
100
+ h as BreadcrumbPage,
101
+ N as BreadcrumbSeparator
102
+ };
@@ -0,0 +1,49 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { Slot as a } from "@radix-ui/react-slot";
3
+ import { cva as s } from "class-variance-authority";
4
+ import { cn as d } from "./utils.mjs";
5
+ const u = s(
6
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
7
+ {
8
+ variants: {
9
+ variant: {
10
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
11
+ destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
12
+ outline: "border bg-background text-foreground hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
13
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
14
+ ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
15
+ link: "text-primary underline-offset-4 hover:underline"
16
+ },
17
+ size: {
18
+ default: "h-9 px-4 py-2 has-[>svg]:px-3",
19
+ sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
20
+ lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
21
+ icon: "size-9 rounded-md"
22
+ }
23
+ },
24
+ defaultVariants: {
25
+ variant: "default",
26
+ size: "default"
27
+ }
28
+ }
29
+ );
30
+ function b({
31
+ className: e,
32
+ variant: r,
33
+ size: t,
34
+ asChild: i = !1,
35
+ ...n
36
+ }) {
37
+ return /* @__PURE__ */ o(
38
+ i ? a : "button",
39
+ {
40
+ "data-slot": "button",
41
+ className: d(u({ variant: r, size: t, className: e })),
42
+ ...n
43
+ }
44
+ );
45
+ }
46
+ export {
47
+ b as Button,
48
+ u as buttonVariants
49
+ };
@@ -0,0 +1,61 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { ChevronRight as l, ChevronLeft as c } from "lucide-react";
3
+ import { DayPicker as m } from "react-day-picker";
4
+ import { cn as e } from "./utils.mjs";
5
+ import { buttonVariants as d } from "./button.mjs";
6
+ function x({
7
+ className: n,
8
+ classNames: i,
9
+ showOutsideDays: s = !0,
10
+ ...o
11
+ }) {
12
+ return /* @__PURE__ */ r(
13
+ m,
14
+ {
15
+ showOutsideDays: s,
16
+ className: e("p-3", n),
17
+ classNames: {
18
+ months: "flex flex-col sm:flex-row gap-2",
19
+ month: "flex flex-col gap-4",
20
+ caption: "flex justify-center pt-1 relative items-center w-full",
21
+ caption_label: "text-sm font-medium",
22
+ nav: "flex items-center gap-1",
23
+ nav_button: e(
24
+ d({ variant: "outline" }),
25
+ "size-7 bg-transparent p-0 opacity-50 hover:opacity-100"
26
+ ),
27
+ nav_button_previous: "absolute left-1",
28
+ nav_button_next: "absolute right-1",
29
+ table: "w-full border-collapse space-x-1",
30
+ head_row: "flex",
31
+ head_cell: "text-muted-foreground rounded-md w-8 font-normal text-[0.8rem]",
32
+ row: "flex w-full mt-2",
33
+ cell: e(
34
+ "relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-range-end)]:rounded-r-md",
35
+ o.mode === "range" ? "[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md" : "[&:has([aria-selected])]:rounded-md"
36
+ ),
37
+ day: e(
38
+ d({ variant: "ghost" }),
39
+ "size-8 p-0 font-normal aria-selected:opacity-100"
40
+ ),
41
+ day_range_start: "day-range-start aria-selected:bg-primary aria-selected:text-primary-foreground",
42
+ day_range_end: "day-range-end aria-selected:bg-primary aria-selected:text-primary-foreground",
43
+ day_selected: "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",
44
+ day_today: "bg-accent text-accent-foreground",
45
+ day_outside: "day-outside text-muted-foreground aria-selected:text-muted-foreground",
46
+ day_disabled: "text-muted-foreground opacity-50",
47
+ day_range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground",
48
+ day_hidden: "invisible",
49
+ ...i
50
+ },
51
+ components: {
52
+ IconLeft: ({ className: a, ...t }) => /* @__PURE__ */ r(c, { className: e("size-4", a), ...t }),
53
+ IconRight: ({ className: a, ...t }) => /* @__PURE__ */ r(l, { className: e("size-4", a), ...t })
54
+ },
55
+ ...o
56
+ }
57
+ );
58
+ }
59
+ export {
60
+ x as Calendar
61
+ };
@@ -0,0 +1,90 @@
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import { cn as o } from "./utils.mjs";
3
+ function n({ className: t, ...r }) {
4
+ return /* @__PURE__ */ a(
5
+ "div",
6
+ {
7
+ "data-slot": "card",
8
+ className: o(
9
+ "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border",
10
+ t
11
+ ),
12
+ ...r
13
+ }
14
+ );
15
+ }
16
+ function s({ className: t, ...r }) {
17
+ return /* @__PURE__ */ a(
18
+ "div",
19
+ {
20
+ "data-slot": "card-header",
21
+ className: o(
22
+ "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 pt-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
23
+ t
24
+ ),
25
+ ...r
26
+ }
27
+ );
28
+ }
29
+ function c({ className: t, ...r }) {
30
+ return /* @__PURE__ */ a(
31
+ "h4",
32
+ {
33
+ "data-slot": "card-title",
34
+ className: o("leading-none", t),
35
+ ...r
36
+ }
37
+ );
38
+ }
39
+ function i({ className: t, ...r }) {
40
+ return /* @__PURE__ */ a(
41
+ "p",
42
+ {
43
+ "data-slot": "card-description",
44
+ className: o("text-muted-foreground", t),
45
+ ...r
46
+ }
47
+ );
48
+ }
49
+ function l({ className: t, ...r }) {
50
+ return /* @__PURE__ */ a(
51
+ "div",
52
+ {
53
+ "data-slot": "card-action",
54
+ className: o(
55
+ "col-start-2 row-span-2 row-start-1 self-start justify-self-end",
56
+ t
57
+ ),
58
+ ...r
59
+ }
60
+ );
61
+ }
62
+ function u({ className: t, ...r }) {
63
+ return /* @__PURE__ */ a(
64
+ "div",
65
+ {
66
+ "data-slot": "card-content",
67
+ className: o("px-6 [&:last-child]:pb-6", t),
68
+ ...r
69
+ }
70
+ );
71
+ }
72
+ function f({ className: t, ...r }) {
73
+ return /* @__PURE__ */ a(
74
+ "div",
75
+ {
76
+ "data-slot": "card-footer",
77
+ className: o("flex items-center px-6 pb-6 [.border-t]:pt-6", t),
78
+ ...r
79
+ }
80
+ );
81
+ }
82
+ export {
83
+ n as Card,
84
+ l as CardAction,
85
+ u as CardContent,
86
+ i as CardDescription,
87
+ f as CardFooter,
88
+ s as CardHeader,
89
+ c as CardTitle
90
+ };