@vlrc-fe/components 1.0.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 (219) hide show
  1. package/README.md +193 -0
  2. package/dist/index.cjs +1 -0
  3. package/dist/index.js +42 -0
  4. package/dist/index10.cjs +1 -0
  5. package/dist/index10.js +85 -0
  6. package/dist/index100.cjs +1 -0
  7. package/dist/index100.js +65 -0
  8. package/dist/index101.cjs +1 -0
  9. package/dist/index101.js +48 -0
  10. package/dist/index102.cjs +1 -0
  11. package/dist/index102.js +67 -0
  12. package/dist/index103.cjs +1 -0
  13. package/dist/index103.js +151 -0
  14. package/dist/index104.cjs +1 -0
  15. package/dist/index104.js +23 -0
  16. package/dist/index105.cjs +1 -0
  17. package/dist/index105.js +27 -0
  18. package/dist/index106.cjs +1 -0
  19. package/dist/index106.js +53 -0
  20. package/dist/index107.cjs +1 -0
  21. package/dist/index107.js +161 -0
  22. package/dist/index108.cjs +1 -0
  23. package/dist/index108.js +16 -0
  24. package/dist/index109.cjs +1 -0
  25. package/dist/index11.cjs +1 -0
  26. package/dist/index11.js +86 -0
  27. package/dist/index12.cjs +1 -0
  28. package/dist/index12.js +122 -0
  29. package/dist/index13.cjs +1 -0
  30. package/dist/index13.js +14 -0
  31. package/dist/index14.cjs +1 -0
  32. package/dist/index14.js +16 -0
  33. package/dist/index15.cjs +1 -0
  34. package/dist/index15.js +115 -0
  35. package/dist/index16.cjs +1 -0
  36. package/dist/index16.js +727 -0
  37. package/dist/index17.cjs +1 -0
  38. package/dist/index17.js +348 -0
  39. package/dist/index18.cjs +1 -0
  40. package/dist/index18.js +76 -0
  41. package/dist/index19.cjs +1 -0
  42. package/dist/index19.js +14 -0
  43. package/dist/index2.cjs +1 -0
  44. package/dist/index2.js +122 -0
  45. package/dist/index20.cjs +1 -0
  46. package/dist/index20.js +116 -0
  47. package/dist/index21.cjs +1 -0
  48. package/dist/index21.js +35 -0
  49. package/dist/index22.cjs +1 -0
  50. package/dist/index22.js +18 -0
  51. package/dist/index23.cjs +1 -0
  52. package/dist/index23.js +27 -0
  53. package/dist/index24.cjs +1 -0
  54. package/dist/index24.js +35 -0
  55. package/dist/index25.cjs +1 -0
  56. package/dist/index25.js +97 -0
  57. package/dist/index26.cjs +1 -0
  58. package/dist/index26.js +28 -0
  59. package/dist/index27.cjs +1 -0
  60. package/dist/index27.js +14 -0
  61. package/dist/index28.cjs +1 -0
  62. package/dist/index28.js +67 -0
  63. package/dist/index29.cjs +1 -0
  64. package/dist/index29.js +13 -0
  65. package/dist/index3.cjs +1 -0
  66. package/dist/index3.js +8 -0
  67. package/dist/index30.cjs +1 -0
  68. package/dist/index30.js +35 -0
  69. package/dist/index31.cjs +1 -0
  70. package/dist/index31.js +43 -0
  71. package/dist/index32.cjs +1 -0
  72. package/dist/index32.js +14 -0
  73. package/dist/index33.cjs +1 -0
  74. package/dist/index33.js +64 -0
  75. package/dist/index34.cjs +1 -0
  76. package/dist/index34.js +23 -0
  77. package/dist/index35.cjs +1 -0
  78. package/dist/index35.js +34 -0
  79. package/dist/index36.cjs +1 -0
  80. package/dist/index36.js +27 -0
  81. package/dist/index37.cjs +1 -0
  82. package/dist/index37.js +26 -0
  83. package/dist/index38.cjs +1 -0
  84. package/dist/index38.js +157 -0
  85. package/dist/index39.cjs +1 -0
  86. package/dist/index39.js +34 -0
  87. package/dist/index4.cjs +1 -0
  88. package/dist/index4.js +43 -0
  89. package/dist/index40.cjs +1 -0
  90. package/dist/index40.js +46 -0
  91. package/dist/index41.cjs +1 -0
  92. package/dist/index41.js +118 -0
  93. package/dist/index42.cjs +1 -0
  94. package/dist/index42.js +125 -0
  95. package/dist/index43.cjs +1 -0
  96. package/dist/index43.js +26 -0
  97. package/dist/index44.cjs +1 -0
  98. package/dist/index44.js +88 -0
  99. package/dist/index45.cjs +1 -0
  100. package/dist/index45.js +221 -0
  101. package/dist/index46.cjs +1 -0
  102. package/dist/index46.js +166 -0
  103. package/dist/index47.cjs +1 -0
  104. package/dist/index47.js +126 -0
  105. package/dist/index48.cjs +1 -0
  106. package/dist/index48.js +15 -0
  107. package/dist/index49.cjs +1 -0
  108. package/dist/index49.js +9 -0
  109. package/dist/index5.cjs +1 -0
  110. package/dist/index5.js +24 -0
  111. package/dist/index50.cjs +1 -0
  112. package/dist/index50.js +17 -0
  113. package/dist/index51.cjs +1 -0
  114. package/dist/index51.js +22 -0
  115. package/dist/index52.cjs +1 -0
  116. package/dist/index52.js +18 -0
  117. package/dist/index53.cjs +1 -0
  118. package/dist/index53.js +6 -0
  119. package/dist/index54.cjs +1 -0
  120. package/dist/index54.js +7 -0
  121. package/dist/index55.cjs +1 -0
  122. package/dist/index55.js +8 -0
  123. package/dist/index56.cjs +1 -0
  124. package/dist/index56.js +7 -0
  125. package/dist/index57.cjs +1 -0
  126. package/dist/index57.js +7 -0
  127. package/dist/index58.cjs +1 -0
  128. package/dist/index58.js +9 -0
  129. package/dist/index59.cjs +1 -0
  130. package/dist/index59.js +69 -0
  131. package/dist/index6.cjs +1 -0
  132. package/dist/index6.js +51 -0
  133. package/dist/index60.cjs +1 -0
  134. package/dist/index60.js +11 -0
  135. package/dist/index61.cjs +1 -0
  136. package/dist/index61.js +202 -0
  137. package/dist/index62.cjs +1 -0
  138. package/dist/index62.js +124 -0
  139. package/dist/index63.cjs +1 -0
  140. package/dist/index63.js +32 -0
  141. package/dist/index64.cjs +1 -0
  142. package/dist/index64.js +20 -0
  143. package/dist/index65.cjs +1 -0
  144. package/dist/index65.js +69 -0
  145. package/dist/index66.cjs +1 -0
  146. package/dist/index66.js +32 -0
  147. package/dist/index67.cjs +1 -0
  148. package/dist/index67.js +11 -0
  149. package/dist/index68.cjs +1 -0
  150. package/dist/index68.js +280 -0
  151. package/dist/index69.cjs +1 -0
  152. package/dist/index69.js +157 -0
  153. package/dist/index7.cjs +1 -0
  154. package/dist/index7.js +88 -0
  155. package/dist/index70.cjs +1 -0
  156. package/dist/index70.js +20 -0
  157. package/dist/index71.cjs +1 -0
  158. package/dist/index71.js +10 -0
  159. package/dist/index72.cjs +1 -0
  160. package/dist/index72.js +14 -0
  161. package/dist/index73.cjs +1 -0
  162. package/dist/index73.js +8 -0
  163. package/dist/index74.cjs +1 -0
  164. package/dist/index74.js +8 -0
  165. package/dist/index75.cjs +1 -0
  166. package/dist/index75.js +11 -0
  167. package/dist/index76.cjs +1 -0
  168. package/dist/index76.js +10 -0
  169. package/dist/index77.cjs +1 -0
  170. package/dist/index77.js +6 -0
  171. package/dist/index78.cjs +1 -0
  172. package/dist/index78.js +8 -0
  173. package/dist/index79.cjs +1 -0
  174. package/dist/index79.js +8 -0
  175. package/dist/index8.cjs +1 -0
  176. package/dist/index8.js +68 -0
  177. package/dist/index80.cjs +1 -0
  178. package/dist/index80.js +10 -0
  179. package/dist/index81.cjs +1 -0
  180. package/dist/index81.js +11 -0
  181. package/dist/index82.cjs +1 -0
  182. package/dist/index82.js +15 -0
  183. package/dist/index83.cjs +1 -0
  184. package/dist/index83.js +11 -0
  185. package/dist/index84.cjs +1 -0
  186. package/dist/index84.js +11 -0
  187. package/dist/index85.cjs +1 -0
  188. package/dist/index85.js +6 -0
  189. package/dist/index86.cjs +1 -0
  190. package/dist/index86.js +43 -0
  191. package/dist/index87.cjs +1 -0
  192. package/dist/index87.js +382 -0
  193. package/dist/index88.cjs +1 -0
  194. package/dist/index88.js +40 -0
  195. package/dist/index89.cjs +1 -0
  196. package/dist/index89.js +23 -0
  197. package/dist/index9.cjs +1 -0
  198. package/dist/index9.js +20 -0
  199. package/dist/index90.cjs +1 -0
  200. package/dist/index90.js +59 -0
  201. package/dist/index91.cjs +1 -0
  202. package/dist/index91.js +55 -0
  203. package/dist/index92.cjs +1 -0
  204. package/dist/index92.js +54 -0
  205. package/dist/index93.cjs +1 -0
  206. package/dist/index93.js +57 -0
  207. package/dist/index94.cjs +1 -0
  208. package/dist/index94.js +57 -0
  209. package/dist/index95.cjs +1 -0
  210. package/dist/index95.js +88 -0
  211. package/dist/index96.cjs +1 -0
  212. package/dist/index96.js +66 -0
  213. package/dist/index97.cjs +1 -0
  214. package/dist/index97.js +594 -0
  215. package/dist/index98.cjs +9 -0
  216. package/dist/index98.js +30 -0
  217. package/dist/index99.cjs +1 -0
  218. package/dist/index99.js +50 -0
  219. package/package.json +82 -0
@@ -0,0 +1,116 @@
1
+ import { cn as e } from "./index3.js";
2
+ import { Separator as t } from "./index14.js";
3
+ import "react";
4
+ import { jsx as n } from "react/jsx-runtime";
5
+ import { Slot as r } from "@radix-ui/react-slot";
6
+ import { cva as i } from "class-variance-authority";
7
+ //#region src/ui/item.tsx
8
+ function a({ className: t, ...r }) {
9
+ return /* @__PURE__ */ n("div", {
10
+ role: "list",
11
+ "data-slot": "item-group",
12
+ className: e("group/item-group flex flex-col", t),
13
+ ...r
14
+ });
15
+ }
16
+ function o({ className: r, ...i }) {
17
+ return /* @__PURE__ */ n(t, {
18
+ "data-slot": "item-separator",
19
+ orientation: "horizontal",
20
+ className: e("my-0", r),
21
+ ...i
22
+ });
23
+ }
24
+ var s = i("group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", {
25
+ variants: {
26
+ variant: {
27
+ default: "bg-transparent",
28
+ outline: "border-border",
29
+ muted: "bg-muted/50"
30
+ },
31
+ size: {
32
+ default: "p-4 gap-4 ",
33
+ sm: "py-3 px-4 gap-2.5"
34
+ }
35
+ },
36
+ defaultVariants: {
37
+ variant: "default",
38
+ size: "default"
39
+ }
40
+ });
41
+ function c({ className: t, variant: i = "default", size: a = "default", asChild: o = !1, ...c }) {
42
+ return /* @__PURE__ */ n(o ? r : "div", {
43
+ "data-slot": "item",
44
+ "data-variant": i,
45
+ "data-size": a,
46
+ className: e(s({
47
+ variant: i,
48
+ size: a,
49
+ className: t
50
+ })),
51
+ ...c
52
+ });
53
+ }
54
+ var l = i("flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5", {
55
+ variants: { variant: {
56
+ default: "bg-transparent",
57
+ icon: "size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4",
58
+ image: "size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover"
59
+ } },
60
+ defaultVariants: { variant: "default" }
61
+ });
62
+ function u({ className: t, variant: r = "default", ...i }) {
63
+ return /* @__PURE__ */ n("div", {
64
+ "data-slot": "item-media",
65
+ "data-variant": r,
66
+ className: e(l({
67
+ variant: r,
68
+ className: t
69
+ })),
70
+ ...i
71
+ });
72
+ }
73
+ function d({ className: t, ...r }) {
74
+ return /* @__PURE__ */ n("div", {
75
+ "data-slot": "item-content",
76
+ className: e("flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none", t),
77
+ ...r
78
+ });
79
+ }
80
+ function f({ className: t, ...r }) {
81
+ return /* @__PURE__ */ n("div", {
82
+ "data-slot": "item-title",
83
+ className: e("flex w-fit items-center gap-2 text-sm leading-snug font-medium", t),
84
+ ...r
85
+ });
86
+ }
87
+ function p({ className: t, ...r }) {
88
+ return /* @__PURE__ */ n("p", {
89
+ "data-slot": "item-description",
90
+ className: e("text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance", "[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4", t),
91
+ ...r
92
+ });
93
+ }
94
+ function m({ className: t, ...r }) {
95
+ return /* @__PURE__ */ n("div", {
96
+ "data-slot": "item-actions",
97
+ className: e("flex items-center gap-2", t),
98
+ ...r
99
+ });
100
+ }
101
+ function h({ className: t, ...r }) {
102
+ return /* @__PURE__ */ n("div", {
103
+ "data-slot": "item-header",
104
+ className: e("flex basis-full items-center justify-between gap-2", t),
105
+ ...r
106
+ });
107
+ }
108
+ function g({ className: t, ...r }) {
109
+ return /* @__PURE__ */ n("div", {
110
+ "data-slot": "item-footer",
111
+ className: e("flex basis-full items-center justify-between gap-2", t),
112
+ ...r
113
+ });
114
+ }
115
+ //#endregion
116
+ export { c as Item, m as ItemActions, d as ItemContent, p as ItemDescription, g as ItemFooter, a as ItemGroup, h as ItemHeader, u as ItemMedia, o as ItemSeparator, f as ItemTitle };
@@ -0,0 +1 @@
1
+ const e=require("./index2.cjs"),t=require("./index4.cjs"),n=require("./index15.cjs");let r=require("react");r=e.__toESM(r,1);let i=require("react/jsx-runtime"),a=require("@radix-ui/react-slot"),o=require("class-variance-authority");function s({className:e,...n}){return(0,i.jsx)(`div`,{role:`list`,"data-slot":`item-group`,className:t.cn(`group/item-group flex flex-col`,e),...n})}function c({className:e,...r}){return(0,i.jsx)(n.Separator,{"data-slot":`item-separator`,orientation:`horizontal`,className:t.cn(`my-0`,e),...r})}var l=(0,o.cva)(`group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,{variants:{variant:{default:`bg-transparent`,outline:`border-border`,muted:`bg-muted/50`},size:{default:`p-4 gap-4 `,sm:`py-3 px-4 gap-2.5`}},defaultVariants:{variant:`default`,size:`default`}});function u({className:e,variant:n=`default`,size:r=`default`,asChild:o=!1,...s}){return(0,i.jsx)(o?a.Slot:`div`,{"data-slot":`item`,"data-variant":n,"data-size":r,className:t.cn(l({variant:n,size:r,className:e})),...s})}var d=(0,o.cva)(`flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5`,{variants:{variant:{default:`bg-transparent`,icon:`size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4`,image:`size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover`}},defaultVariants:{variant:`default`}});function f({className:e,variant:n=`default`,...r}){return(0,i.jsx)(`div`,{"data-slot":`item-media`,"data-variant":n,className:t.cn(d({variant:n,className:e})),...r})}function p({className:e,...n}){return(0,i.jsx)(`div`,{"data-slot":`item-content`,className:t.cn(`flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none`,e),...n})}function m({className:e,...n}){return(0,i.jsx)(`div`,{"data-slot":`item-title`,className:t.cn(`flex w-fit items-center gap-2 text-sm leading-snug font-medium`,e),...n})}function h({className:e,...n}){return(0,i.jsx)(`p`,{"data-slot":`item-description`,className:t.cn(`text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance`,`[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4`,e),...n})}function g({className:e,...n}){return(0,i.jsx)(`div`,{"data-slot":`item-actions`,className:t.cn(`flex items-center gap-2`,e),...n})}function _({className:e,...n}){return(0,i.jsx)(`div`,{"data-slot":`item-header`,className:t.cn(`flex basis-full items-center justify-between gap-2`,e),...n})}function v({className:e,...n}){return(0,i.jsx)(`div`,{"data-slot":`item-footer`,className:t.cn(`flex basis-full items-center justify-between gap-2`,e),...n})}exports.Item=u,exports.ItemActions=g,exports.ItemContent=p,exports.ItemDescription=h,exports.ItemFooter=v,exports.ItemGroup=s,exports.ItemHeader=_,exports.ItemMedia=f,exports.ItemSeparator=c,exports.ItemTitle=m;
@@ -0,0 +1,35 @@
1
+ "use client";
2
+ import { cn as e } from "./index3.js";
3
+ import "react";
4
+ import { jsx as t } from "react/jsx-runtime";
5
+ import * as n from "@radix-ui/react-popover";
6
+ //#region src/ui/popover.tsx
7
+ function r({ ...e }) {
8
+ return /* @__PURE__ */ t(n.Root, {
9
+ "data-slot": "popover",
10
+ ...e
11
+ });
12
+ }
13
+ function i({ ...e }) {
14
+ return /* @__PURE__ */ t(n.Trigger, {
15
+ "data-slot": "popover-trigger",
16
+ ...e
17
+ });
18
+ }
19
+ function a({ className: r, align: i = "center", sideOffset: a = 4, ...o }) {
20
+ return /* @__PURE__ */ t(n.Portal, { children: /* @__PURE__ */ t(n.Content, {
21
+ "data-slot": "popover-content",
22
+ align: i,
23
+ sideOffset: a,
24
+ className: e("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-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden", r),
25
+ ...o
26
+ }) });
27
+ }
28
+ function o({ ...e }) {
29
+ return /* @__PURE__ */ t(n.Anchor, {
30
+ "data-slot": "popover-anchor",
31
+ ...e
32
+ });
33
+ }
34
+ //#endregion
35
+ export { r as Popover, o as PopoverAnchor, a as PopoverContent, i as PopoverTrigger };
@@ -0,0 +1 @@
1
+ "use client";const e=require("./index2.cjs"),t=require("./index4.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("react/jsx-runtime"),i=require("@radix-ui/react-popover");i=e.__toESM(i,1);function a({...e}){return(0,r.jsx)(i.Root,{"data-slot":`popover`,...e})}function o({...e}){return(0,r.jsx)(i.Trigger,{"data-slot":`popover-trigger`,...e})}function s({className:e,align:n=`center`,sideOffset:a=4,...o}){return(0,r.jsx)(i.Portal,{children:(0,r.jsx)(i.Content,{"data-slot":`popover-content`,align:n,sideOffset:a,className:t.cn(`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-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden`,e),...o})})}function c({...e}){return(0,r.jsx)(i.Anchor,{"data-slot":`popover-anchor`,...e})}exports.Popover=a,exports.PopoverAnchor=c,exports.PopoverContent=s,exports.PopoverTrigger=o;
@@ -0,0 +1,18 @@
1
+ import * as e from "react";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ //#region src/ui/progress.tsx
4
+ var n = e.forwardRef(({ className: e = "", value: n = 0, ...r }, i) => {
5
+ let a = Math.min(Math.max(n, 0), 100);
6
+ return /* @__PURE__ */ t("div", {
7
+ ref: i,
8
+ className: `relative h-4 w-full overflow-hidden rounded-full bg-slate-200 dark:bg-slate-700 ${e}`,
9
+ ...r,
10
+ children: /* @__PURE__ */ t("div", {
11
+ className: "h-full w-full bg-blue-500 dark:bg-blue-600 transition-all",
12
+ style: { width: `${a}%` }
13
+ })
14
+ });
15
+ });
16
+ n.displayName = "Progress";
17
+ //#endregion
18
+ export { n as Progress };
@@ -0,0 +1 @@
1
+ const e=require("./index2.cjs");let t=require("react");t=e.__toESM(t,1);let n=require("react/jsx-runtime");var r=t.forwardRef(({className:e=``,value:t=0,...r},i)=>{let a=Math.min(Math.max(t,0),100);return(0,n.jsx)(`div`,{ref:i,className:`relative h-4 w-full overflow-hidden rounded-full bg-slate-200 dark:bg-slate-700 ${e}`,...r,children:(0,n.jsx)(`div`,{className:`h-full w-full bg-blue-500 dark:bg-blue-600 transition-all`,style:{width:`${a}%`}})})});r.displayName=`Progress`,exports.Progress=r;
@@ -0,0 +1,27 @@
1
+ import { cn as e } from "./index3.js";
2
+ import { CircleIcon as t } from "lucide-react";
3
+ import "react";
4
+ import { jsx as n } from "react/jsx-runtime";
5
+ import * as r from "@radix-ui/react-radio-group";
6
+ //#region src/ui/radio-group.tsx
7
+ function i({ className: t, ...i }) {
8
+ return /* @__PURE__ */ n(r.Root, {
9
+ "data-slot": "radio-group",
10
+ className: e("grid gap-3", t),
11
+ ...i
12
+ });
13
+ }
14
+ function a({ className: i, ...a }) {
15
+ return /* @__PURE__ */ n(r.Item, {
16
+ "data-slot": "radio-group-item",
17
+ className: e("border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50", i),
18
+ ...a,
19
+ children: /* @__PURE__ */ n(r.Indicator, {
20
+ "data-slot": "radio-group-indicator",
21
+ className: "relative flex items-center justify-center",
22
+ children: /* @__PURE__ */ n(t, { className: "fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2" })
23
+ })
24
+ });
25
+ }
26
+ //#endregion
27
+ export { i as RadioGroup, a as RadioGroupItem };
@@ -0,0 +1 @@
1
+ const e=require("./index2.cjs"),t=require("./index4.cjs");let n=require("lucide-react"),r=require("react");r=e.__toESM(r,1);let i=require("react/jsx-runtime"),a=require("@radix-ui/react-radio-group");a=e.__toESM(a,1);function o({className:e,...n}){return(0,i.jsx)(a.Root,{"data-slot":`radio-group`,className:t.cn(`grid gap-3`,e),...n})}function s({className:e,...r}){return(0,i.jsx)(a.Item,{"data-slot":`radio-group-item`,className:t.cn(`border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50`,e),...r,children:(0,i.jsx)(a.Indicator,{"data-slot":`radio-group-indicator`,className:`relative flex items-center justify-center`,children:(0,i.jsx)(n.CircleIcon,{className:`fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2`})})})}exports.RadioGroup=o,exports.RadioGroupItem=s;
@@ -0,0 +1,35 @@
1
+ import { cn as e } from "./index3.js";
2
+ import "react";
3
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
4
+ import * as r from "@radix-ui/react-scroll-area";
5
+ //#region src/ui/scroll-area.tsx
6
+ function i({ className: i, children: o, ...s }) {
7
+ return /* @__PURE__ */ n(r.Root, {
8
+ "data-slot": "scroll-area",
9
+ className: e("relative", i),
10
+ ...s,
11
+ children: [
12
+ /* @__PURE__ */ t(r.Viewport, {
13
+ "data-slot": "scroll-area-viewport",
14
+ className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",
15
+ children: o
16
+ }),
17
+ /* @__PURE__ */ t(a, {}),
18
+ /* @__PURE__ */ t(r.Corner, {})
19
+ ]
20
+ });
21
+ }
22
+ function a({ className: n, orientation: i = "vertical", ...a }) {
23
+ return /* @__PURE__ */ t(r.ScrollAreaScrollbar, {
24
+ "data-slot": "scroll-area-scrollbar",
25
+ orientation: i,
26
+ className: e("flex touch-none p-px transition-colors select-none", i === "vertical" && "h-full w-2.5 border-l border-l-transparent", i === "horizontal" && "h-2.5 flex-col border-t border-t-transparent", n),
27
+ ...a,
28
+ children: /* @__PURE__ */ t(r.ScrollAreaThumb, {
29
+ "data-slot": "scroll-area-thumb",
30
+ className: "bg-border relative flex-1 rounded-full"
31
+ })
32
+ });
33
+ }
34
+ //#endregion
35
+ export { i as ScrollArea, a as ScrollBar };
@@ -0,0 +1 @@
1
+ const e=require("./index2.cjs"),t=require("./index4.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("react/jsx-runtime"),i=require("@radix-ui/react-scroll-area");i=e.__toESM(i,1);function a({className:e,children:n,...a}){return(0,r.jsxs)(i.Root,{"data-slot":`scroll-area`,className:t.cn(`relative`,e),...a,children:[(0,r.jsx)(i.Viewport,{"data-slot":`scroll-area-viewport`,className:`focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1`,children:n}),(0,r.jsx)(o,{}),(0,r.jsx)(i.Corner,{})]})}function o({className:e,orientation:n=`vertical`,...a}){return(0,r.jsx)(i.ScrollAreaScrollbar,{"data-slot":`scroll-area-scrollbar`,orientation:n,className:t.cn(`flex touch-none p-px transition-colors select-none`,n===`vertical`&&`h-full w-2.5 border-l border-l-transparent`,n===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent`,e),...a,children:(0,r.jsx)(i.ScrollAreaThumb,{"data-slot":`scroll-area-thumb`,className:`bg-border relative flex-1 rounded-full`})})}exports.ScrollArea=a,exports.ScrollBar=o;
@@ -0,0 +1,97 @@
1
+ import { cn as e } from "./index3.js";
2
+ import { CheckIcon as t, ChevronDownIcon as n, ChevronUpIcon as r } from "lucide-react";
3
+ import "react";
4
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
5
+ import * as o from "@radix-ui/react-select";
6
+ //#region src/ui/select.tsx
7
+ function s({ ...e }) {
8
+ return /* @__PURE__ */ i(o.Root, {
9
+ "data-slot": "select",
10
+ ...e
11
+ });
12
+ }
13
+ function c({ ...e }) {
14
+ return /* @__PURE__ */ i(o.Group, {
15
+ "data-slot": "select-group",
16
+ ...e
17
+ });
18
+ }
19
+ function l({ ...e }) {
20
+ return /* @__PURE__ */ i(o.Value, {
21
+ "data-slot": "select-value",
22
+ ...e
23
+ });
24
+ }
25
+ function u({ className: t, size: r = "default", children: s, ...c }) {
26
+ return /* @__PURE__ */ a(o.Trigger, {
27
+ "data-slot": "select-trigger",
28
+ "data-size": r,
29
+ className: e("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", t),
30
+ ...c,
31
+ children: [s, /* @__PURE__ */ i(o.Icon, {
32
+ asChild: !0,
33
+ children: /* @__PURE__ */ i(n, { className: "size-4 opacity-50" })
34
+ })]
35
+ });
36
+ }
37
+ function d({ className: t, children: n, position: r = "item-aligned", align: s = "center", ...c }) {
38
+ return /* @__PURE__ */ i(o.Portal, { children: /* @__PURE__ */ a(o.Content, {
39
+ "data-slot": "select-content",
40
+ className: e("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 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md", r === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", t),
41
+ position: r,
42
+ align: s,
43
+ ...c,
44
+ children: [
45
+ /* @__PURE__ */ i(h, {}),
46
+ /* @__PURE__ */ i(o.Viewport, {
47
+ className: e("p-1", r === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),
48
+ children: n
49
+ }),
50
+ /* @__PURE__ */ i(g, {})
51
+ ]
52
+ }) });
53
+ }
54
+ function f({ className: t, ...n }) {
55
+ return /* @__PURE__ */ i(o.Label, {
56
+ "data-slot": "select-label",
57
+ className: e("text-muted-foreground px-2 py-1.5 text-xs", t),
58
+ ...n
59
+ });
60
+ }
61
+ function p({ className: n, children: r, ...s }) {
62
+ return /* @__PURE__ */ a(o.Item, {
63
+ "data-slot": "select-item",
64
+ className: e("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 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 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", n),
65
+ ...s,
66
+ children: [/* @__PURE__ */ i("span", {
67
+ "data-slot": "select-item-indicator",
68
+ className: "absolute right-2 flex size-3.5 items-center justify-center",
69
+ children: /* @__PURE__ */ i(o.ItemIndicator, { children: /* @__PURE__ */ i(t, { className: "size-4" }) })
70
+ }), /* @__PURE__ */ i(o.ItemText, { children: r })]
71
+ });
72
+ }
73
+ function m({ className: t, ...n }) {
74
+ return /* @__PURE__ */ i(o.Separator, {
75
+ "data-slot": "select-separator",
76
+ className: e("bg-border pointer-events-none -mx-1 my-1 h-px", t),
77
+ ...n
78
+ });
79
+ }
80
+ function h({ className: t, ...n }) {
81
+ return /* @__PURE__ */ i(o.ScrollUpButton, {
82
+ "data-slot": "select-scroll-up-button",
83
+ className: e("flex cursor-default items-center justify-center py-1", t),
84
+ ...n,
85
+ children: /* @__PURE__ */ i(r, { className: "size-4" })
86
+ });
87
+ }
88
+ function g({ className: t, ...r }) {
89
+ return /* @__PURE__ */ i(o.ScrollDownButton, {
90
+ "data-slot": "select-scroll-down-button",
91
+ className: e("flex cursor-default items-center justify-center py-1", t),
92
+ ...r,
93
+ children: /* @__PURE__ */ i(n, { className: "size-4" })
94
+ });
95
+ }
96
+ //#endregion
97
+ export { s as Select, d as SelectContent, c as SelectGroup, p as SelectItem, f as SelectLabel, g as SelectScrollDownButton, h as SelectScrollUpButton, m as SelectSeparator, u as SelectTrigger, l as SelectValue };
@@ -0,0 +1 @@
1
+ const e=require("./index2.cjs"),t=require("./index4.cjs");let n=require("lucide-react"),r=require("react");r=e.__toESM(r,1);let i=require("react/jsx-runtime"),a=require("@radix-ui/react-select");a=e.__toESM(a,1);function o({...e}){return(0,i.jsx)(a.Root,{"data-slot":`select`,...e})}function s({...e}){return(0,i.jsx)(a.Group,{"data-slot":`select-group`,...e})}function c({...e}){return(0,i.jsx)(a.Value,{"data-slot":`select-value`,...e})}function l({className:e,size:r=`default`,children:o,...s}){return(0,i.jsxs)(a.Trigger,{"data-slot":`select-trigger`,"data-size":r,className:t.cn(`border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...s,children:[o,(0,i.jsx)(a.Icon,{asChild:!0,children:(0,i.jsx)(n.ChevronDownIcon,{className:`size-4 opacity-50`})})]})}function u({className:e,children:n,position:r=`item-aligned`,align:o=`center`,...s}){return(0,i.jsx)(a.Portal,{children:(0,i.jsxs)(a.Content,{"data-slot":`select-content`,className:t.cn(`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 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md`,r===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:r,align:o,...s,children:[(0,i.jsx)(m,{}),(0,i.jsx)(a.Viewport,{className:t.cn(`p-1`,r===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1`),children:n}),(0,i.jsx)(h,{})]})})}function d({className:e,...n}){return(0,i.jsx)(a.Label,{"data-slot":`select-label`,className:t.cn(`text-muted-foreground px-2 py-1.5 text-xs`,e),...n})}function f({className:e,children:r,...o}){return(0,i.jsxs)(a.Item,{"data-slot":`select-item`,className:t.cn(`focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 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 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,e),...o,children:[(0,i.jsx)(`span`,{"data-slot":`select-item-indicator`,className:`absolute right-2 flex size-3.5 items-center justify-center`,children:(0,i.jsx)(a.ItemIndicator,{children:(0,i.jsx)(n.CheckIcon,{className:`size-4`})})}),(0,i.jsx)(a.ItemText,{children:r})]})}function p({className:e,...n}){return(0,i.jsx)(a.Separator,{"data-slot":`select-separator`,className:t.cn(`bg-border pointer-events-none -mx-1 my-1 h-px`,e),...n})}function m({className:e,...r}){return(0,i.jsx)(a.ScrollUpButton,{"data-slot":`select-scroll-up-button`,className:t.cn(`flex cursor-default items-center justify-center py-1`,e),...r,children:(0,i.jsx)(n.ChevronUpIcon,{className:`size-4`})})}function h({className:e,...r}){return(0,i.jsx)(a.ScrollDownButton,{"data-slot":`select-scroll-down-button`,className:t.cn(`flex cursor-default items-center justify-center py-1`,e),...r,children:(0,i.jsx)(n.ChevronDownIcon,{className:`size-4`})})}exports.Select=o,exports.SelectContent=u,exports.SelectGroup=s,exports.SelectItem=f,exports.SelectLabel=d,exports.SelectScrollDownButton=h,exports.SelectScrollUpButton=m,exports.SelectSeparator=p,exports.SelectTrigger=l,exports.SelectValue=c;
@@ -0,0 +1,28 @@
1
+ import { CircleCheckIcon as e, InfoIcon as t, Loader2Icon as n, OctagonXIcon as r, TriangleAlertIcon as i } from "lucide-react";
2
+ import { jsx as a } from "react/jsx-runtime";
3
+ import { useTheme as o } from "next-themes";
4
+ import { Toaster as s } from "sonner";
5
+ //#region src/ui/sonner.tsx
6
+ var c = ({ ...c }) => {
7
+ let { theme: l = "system" } = o();
8
+ return /* @__PURE__ */ a(s, {
9
+ theme: l,
10
+ className: "toaster group",
11
+ icons: {
12
+ success: /* @__PURE__ */ a(e, { className: "size-4" }),
13
+ info: /* @__PURE__ */ a(t, { className: "size-4" }),
14
+ warning: /* @__PURE__ */ a(i, { className: "size-4" }),
15
+ error: /* @__PURE__ */ a(r, { className: "size-4" }),
16
+ loading: /* @__PURE__ */ a(n, { className: "size-4 animate-spin" })
17
+ },
18
+ style: {
19
+ "--normal-bg": "var(--popover)",
20
+ "--normal-text": "var(--popover-foreground)",
21
+ "--normal-border": "var(--border)",
22
+ "--border-radius": "var(--radius)"
23
+ },
24
+ ...c
25
+ });
26
+ };
27
+ //#endregion
28
+ export { c as Toaster };
@@ -0,0 +1 @@
1
+ let e=require("lucide-react"),t=require("react/jsx-runtime"),n=require("next-themes"),r=require("sonner");var i=({...i})=>{let{theme:a=`system`}=(0,n.useTheme)();return(0,t.jsx)(r.Toaster,{theme:a,className:`toaster group`,icons:{success:(0,t.jsx)(e.CircleCheckIcon,{className:`size-4`}),info:(0,t.jsx)(e.InfoIcon,{className:`size-4`}),warning:(0,t.jsx)(e.TriangleAlertIcon,{className:`size-4`}),error:(0,t.jsx)(e.OctagonXIcon,{className:`size-4`}),loading:(0,t.jsx)(e.Loader2Icon,{className:`size-4 animate-spin`})},style:{"--normal-bg":`var(--popover)`,"--normal-text":`var(--popover-foreground)`,"--normal-border":`var(--border)`,"--border-radius":`var(--radius)`},...i})};exports.Toaster=i;
@@ -0,0 +1,14 @@
1
+ import { cn as e } from "./index3.js";
2
+ import { Loader2Icon as t } from "lucide-react";
3
+ import { jsx as n } from "react/jsx-runtime";
4
+ //#region src/ui/spinner.tsx
5
+ function r({ className: r, ...i }) {
6
+ return /* @__PURE__ */ n(t, {
7
+ role: "status",
8
+ "aria-label": "Loading",
9
+ className: e("size-4 animate-spin", r),
10
+ ...i
11
+ });
12
+ }
13
+ //#endregion
14
+ export { r as Spinner };
@@ -0,0 +1 @@
1
+ const e=require("./index4.cjs");let t=require("lucide-react"),n=require("react/jsx-runtime");function r({className:r,...i}){return(0,n.jsx)(t.Loader2Icon,{role:`status`,"aria-label":`Loading`,className:e.cn(`size-4 animate-spin`,r),...i})}exports.Spinner=r;
@@ -0,0 +1,67 @@
1
+ "use client";
2
+ import { cn as e } from "./index3.js";
3
+ import "react";
4
+ import { jsx as t } from "react/jsx-runtime";
5
+ //#region src/ui/table.tsx
6
+ function n({ className: n, ...r }) {
7
+ return /* @__PURE__ */ t("div", {
8
+ "data-slot": "table-container",
9
+ className: "relative w-full overflow-x-auto",
10
+ children: /* @__PURE__ */ t("table", {
11
+ "data-slot": "table",
12
+ className: e("w-full caption-bottom text-sm", n),
13
+ ...r
14
+ })
15
+ });
16
+ }
17
+ function r({ className: n, ...r }) {
18
+ return /* @__PURE__ */ t("thead", {
19
+ "data-slot": "table-header",
20
+ className: e("[&_tr]:border-b", n),
21
+ ...r
22
+ });
23
+ }
24
+ function i({ className: n, ...r }) {
25
+ return /* @__PURE__ */ t("tbody", {
26
+ "data-slot": "table-body",
27
+ className: e("[&_tr:last-child]:border-0", n),
28
+ ...r
29
+ });
30
+ }
31
+ function a({ className: n, ...r }) {
32
+ return /* @__PURE__ */ t("tfoot", {
33
+ "data-slot": "table-footer",
34
+ className: e("bg-muted/50 border-t font-medium [&>tr]:last:border-b-0", n),
35
+ ...r
36
+ });
37
+ }
38
+ function o({ className: n, ...r }) {
39
+ return /* @__PURE__ */ t("tr", {
40
+ "data-slot": "table-row",
41
+ className: e("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors", n),
42
+ ...r
43
+ });
44
+ }
45
+ function s({ className: n, ...r }) {
46
+ return /* @__PURE__ */ t("th", {
47
+ "data-slot": "table-head",
48
+ className: e("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", n),
49
+ ...r
50
+ });
51
+ }
52
+ function c({ className: n, ...r }) {
53
+ return /* @__PURE__ */ t("td", {
54
+ "data-slot": "table-cell",
55
+ className: e("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", n),
56
+ ...r
57
+ });
58
+ }
59
+ function l({ className: n, ...r }) {
60
+ return /* @__PURE__ */ t("caption", {
61
+ "data-slot": "table-caption",
62
+ className: e("text-muted-foreground mt-4 text-sm", n),
63
+ ...r
64
+ });
65
+ }
66
+ //#endregion
67
+ export { n as Table, i as TableBody, l as TableCaption, c as TableCell, a as TableFooter, s as TableHead, r as TableHeader, o as TableRow };
@@ -0,0 +1 @@
1
+ "use client";const e=require("./index2.cjs"),t=require("./index4.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("react/jsx-runtime");function i({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`table-container`,className:`relative w-full overflow-x-auto`,children:(0,r.jsx)(`table`,{"data-slot":`table`,className:t.cn(`w-full caption-bottom text-sm`,e),...n})})}function a({className:e,...n}){return(0,r.jsx)(`thead`,{"data-slot":`table-header`,className:t.cn(`[&_tr]:border-b`,e),...n})}function o({className:e,...n}){return(0,r.jsx)(`tbody`,{"data-slot":`table-body`,className:t.cn(`[&_tr:last-child]:border-0`,e),...n})}function s({className:e,...n}){return(0,r.jsx)(`tfoot`,{"data-slot":`table-footer`,className:t.cn(`bg-muted/50 border-t font-medium [&>tr]:last:border-b-0`,e),...n})}function c({className:e,...n}){return(0,r.jsx)(`tr`,{"data-slot":`table-row`,className:t.cn(`hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors`,e),...n})}function l({className:e,...n}){return(0,r.jsx)(`th`,{"data-slot":`table-head`,className:t.cn(`text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]`,e),...n})}function u({className:e,...n}){return(0,r.jsx)(`td`,{"data-slot":`table-cell`,className:t.cn(`p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]`,e),...n})}function d({className:e,...n}){return(0,r.jsx)(`caption`,{"data-slot":`table-caption`,className:t.cn(`text-muted-foreground mt-4 text-sm`,e),...n})}exports.Table=i,exports.TableBody=o,exports.TableCaption=d,exports.TableCell=u,exports.TableFooter=s,exports.TableHead=l,exports.TableHeader=a,exports.TableRow=c;
@@ -0,0 +1,13 @@
1
+ import { cn as e } from "./index3.js";
2
+ import "react";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ //#region src/ui/textarea.tsx
5
+ function n({ className: n, ...r }) {
6
+ return /* @__PURE__ */ t("textarea", {
7
+ "data-slot": "textarea",
8
+ className: e("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", n),
9
+ ...r
10
+ });
11
+ }
12
+ //#endregion
13
+ export { n as Textarea };
@@ -0,0 +1 @@
1
+ let e=require("lucide-react"),t=require("react"),n=require("react/jsx-runtime");function r({isOpen:r,onClose:i,onConfirm:a,title:o,message:s,confirmText:c=`Xác nhận`,cancelText:l=`Hủy`,closeLabel:u=`Đóng`,processingText:d=`Đang xử lý...`,type:f=`warning`,isLoading:p=!1}){let[m,h]=(0,t.useState)(r),g=(0,t.useRef)(null),_=(0,t.useRef)(null);(0,t.useEffect)(()=>{r&&h(!0)},[r]),(0,t.useEffect)(()=>{if(!m||r)return;let e=window.setTimeout(()=>h(!1),200);return()=>window.clearTimeout(e)},[r,m]);let v=()=>{p||i()},y=()=>{p||a()},b=e=>{e.target===e.currentTarget&&!p&&i()};if((0,t.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r&&!p&&i()};return r&&document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e)}},[r,i,p]),(0,t.useEffect)(()=>(r?document.body.style.overflow=`hidden`:document.body.style.overflow=``,()=>{document.body.style.overflow=``}),[r]),(0,t.useEffect)(()=>{if(!r)return;let e=_.current;if(!e)return;let t=e.querySelectorAll(`button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]):not([disabled])`),n=t[0],i=t[t.length-1],a=e=>{e.key===`Tab`&&(e.shiftKey&&document.activeElement===n?(e.preventDefault(),i?.focus()):!e.shiftKey&&document.activeElement===i&&(e.preventDefault(),n?.focus()))};e.addEventListener(`keydown`,a);let o=window.setTimeout(()=>n?.focus(),100);return()=>{e.removeEventListener(`keydown`,a),window.clearTimeout(o)}},[r]),!m)return null;let x={warning:e.AlertTriangleIcon,info:e.InfoIcon,success:e.CheckCircleIcon,danger:e.XCircleIcon}[f],S={warning:`text-yellow-500`,info:`text-blue-500`,success:`text-green-500`,danger:`text-red-500`}[f],C={warning:`bg-yellow-500 hover:bg-yellow-600 focus:ring-yellow-500`,info:`bg-blue-500 hover:bg-blue-600 focus:ring-blue-500`,success:`bg-green-500 hover:bg-green-600 focus:ring-green-500`,danger:`bg-red-500 hover:bg-red-600 focus:ring-red-500`}[f];return(0,n.jsxs)(`div`,{ref:g,className:`fixed inset-0 z-10000 flex items-center justify-center`,children:[(0,n.jsx)(`div`,{className:`absolute inset-0 bg-black/50 transition-opacity duration-200 ${r?`opacity-100`:`opacity-0`}`,onClick:b}),(0,n.jsxs)(`div`,{ref:_,className:`relative z-10000 mx-4 w-full max-w-md rounded-lg bg-white p-6 shadow-xl transition-all duration-200 ${r?`translate-y-0 scale-100 opacity-100`:`translate-y-5 scale-95 opacity-0`}`,onClick:e=>e.stopPropagation(),children:[(0,n.jsx)(`button`,{type:`button`,onClick:v,disabled:p,className:`absolute right-4 top-4 rounded-full p-1 text-gray-400 hover:bg-gray-100 hover:text-gray-600 disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":u,children:(0,n.jsx)(e.XIcon,{className:`h-5 w-5`})}),(0,n.jsxs)(`div`,{className:`flex items-start space-x-4 pr-8`,children:[(0,n.jsx)(`div`,{className:`mt-1 flex-shrink-0`,children:(0,n.jsx)(x,{className:`h-6 w-6 ${S}`})}),(0,n.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,n.jsx)(`h3`,{className:`mb-2 text-lg font-medium text-gray-900`,children:o}),(0,n.jsx)(`p`,{className:`text-sm leading-relaxed text-gray-500`,children:s})]})]}),(0,n.jsxs)(`div`,{className:`mt-6 flex justify-end space-x-3`,children:[(0,n.jsx)(`button`,{type:`button`,onClick:v,disabled:p,className:`rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50`,children:l}),(0,n.jsx)(`button`,{type:`button`,onClick:y,disabled:p,className:`rounded-md px-4 py-2 text-sm font-medium text-white shadow-sm focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 ${C}`,children:p?(0,n.jsxs)(`span`,{className:`flex items-center`,children:[(0,n.jsx)(`span`,{className:`mr-2 h-4 w-4 animate-spin rounded-full border-2 border-white/40 border-t-white`}),d]}):c})]})]})]})}exports.default=r;
package/dist/index3.js ADDED
@@ -0,0 +1,8 @@
1
+ import { clsx as e } from "clsx";
2
+ import { twMerge as t } from "tailwind-merge";
3
+ //#region src/utils.ts
4
+ function n(...n) {
5
+ return t(e(n));
6
+ }
7
+ //#endregion
8
+ export { n as cn };
@@ -0,0 +1 @@
1
+ const e=require("./index2.cjs"),t=require("./index4.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("react/jsx-runtime");function i({className:e,...n}){return(0,r.jsx)(`textarea`,{"data-slot":`textarea`,className:t.cn(`border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,e),...n})}exports.Textarea=i;
@@ -0,0 +1,35 @@
1
+ import { cn as e } from "./index3.js";
2
+ import "react";
3
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
4
+ import * as r from "@radix-ui/react-tooltip";
5
+ //#region src/ui/tooltip.tsx
6
+ function i({ delayDuration: e = 0, ...n }) {
7
+ return /* @__PURE__ */ t(r.Provider, {
8
+ "data-slot": "tooltip-provider",
9
+ delayDuration: e,
10
+ ...n
11
+ });
12
+ }
13
+ function a({ ...e }) {
14
+ return /* @__PURE__ */ t(i, { children: /* @__PURE__ */ t(r.Root, {
15
+ "data-slot": "tooltip",
16
+ ...e
17
+ }) });
18
+ }
19
+ function o({ ...e }) {
20
+ return /* @__PURE__ */ t(r.Trigger, {
21
+ "data-slot": "tooltip-trigger",
22
+ ...e
23
+ });
24
+ }
25
+ function s({ className: i, sideOffset: a = 0, children: o, ...s }) {
26
+ return /* @__PURE__ */ t(r.Portal, { children: /* @__PURE__ */ n(r.Content, {
27
+ "data-slot": "tooltip-content",
28
+ sideOffset: a,
29
+ className: e("bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance", i),
30
+ ...s,
31
+ children: [o, /* @__PURE__ */ t(r.Arrow, { className: "bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })]
32
+ }) });
33
+ }
34
+ //#endregion
35
+ export { a as Tooltip, s as TooltipContent, i as TooltipProvider, o as TooltipTrigger };
@@ -0,0 +1 @@
1
+ const e=require("./index2.cjs"),t=require("./index4.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("react/jsx-runtime"),i=require("@radix-ui/react-tooltip");i=e.__toESM(i,1);function a({delayDuration:e=0,...t}){return(0,r.jsx)(i.Provider,{"data-slot":`tooltip-provider`,delayDuration:e,...t})}function o({...e}){return(0,r.jsx)(a,{children:(0,r.jsx)(i.Root,{"data-slot":`tooltip`,...e})})}function s({...e}){return(0,r.jsx)(i.Trigger,{"data-slot":`tooltip-trigger`,...e})}function c({className:e,sideOffset:n=0,children:a,...o}){return(0,r.jsx)(i.Portal,{children:(0,r.jsxs)(i.Content,{"data-slot":`tooltip-content`,sideOffset:n,className:t.cn(`bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance`,e),...o,children:[a,(0,r.jsx)(i.Arrow,{className:`bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]`})]})})}exports.Tooltip=o,exports.TooltipContent=c,exports.TooltipProvider=a,exports.TooltipTrigger=s;
@@ -0,0 +1,43 @@
1
+ import { cn as e } from "./index3.js";
2
+ import { Button as t } from "./index6.js";
3
+ import { Dialog as n, DialogContent as r, DialogDescription as i, DialogFooter as a, DialogHeader as o, DialogTitle as s } from "./index10.js";
4
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
5
+ //#region src/Modal.tsx
6
+ function u({ open: u = !0, title: d, description: f, children: p, footer: m, width: h = 900, confirmText: g = "Xác nhận", cancelText: _ = "Hủy", isLoading: v = !1, onCancel: y, onConfirm: b }) {
7
+ return /* @__PURE__ */ c(n, {
8
+ open: u,
9
+ onOpenChange: (e) => !e && y(),
10
+ children: /* @__PURE__ */ l(r, {
11
+ className: e("flex max-h-[calc(100vh-150px)] flex-col gap-0 p-0 sm:max-w-175"),
12
+ style: { maxWidth: h },
13
+ children: [
14
+ /* @__PURE__ */ l(o, {
15
+ className: "px-6 py-4 border-b",
16
+ children: [/* @__PURE__ */ c(s, { children: d }), f ? /* @__PURE__ */ c(i, { children: f }) : null]
17
+ }),
18
+ /* @__PURE__ */ c("div", {
19
+ className: "flex-1 overflow-y-auto px-6 py-4",
20
+ children: p
21
+ }),
22
+ (m || b) && /* @__PURE__ */ c(a, {
23
+ className: "px-6 py-4 border-t",
24
+ children: m || /* @__PURE__ */ l("div", {
25
+ className: "flex w-full justify-end gap-2",
26
+ children: [/* @__PURE__ */ c(t, {
27
+ variant: "outline",
28
+ onClick: y,
29
+ disabled: v,
30
+ children: _
31
+ }), b ? /* @__PURE__ */ c(t, {
32
+ onClick: b,
33
+ disabled: v,
34
+ children: g
35
+ }) : null]
36
+ })
37
+ })
38
+ ]
39
+ })
40
+ });
41
+ }
42
+ //#endregion
43
+ export { u as Modal };
@@ -0,0 +1 @@
1
+ const e=require("./index4.cjs"),t=require("./index7.cjs"),n=require("./index11.cjs");let r=require("react/jsx-runtime");function i({open:i=!0,title:a,description:o,children:s,footer:c,width:l=900,confirmText:u=`Xác nhận`,cancelText:d=`Hủy`,isLoading:f=!1,onCancel:p,onConfirm:m}){return(0,r.jsx)(n.Dialog,{open:i,onOpenChange:e=>!e&&p(),children:(0,r.jsxs)(n.DialogContent,{className:e.cn(`flex max-h-[calc(100vh-150px)] flex-col gap-0 p-0 sm:max-w-175`),style:{maxWidth:l},children:[(0,r.jsxs)(n.DialogHeader,{className:`px-6 py-4 border-b`,children:[(0,r.jsx)(n.DialogTitle,{children:a}),o?(0,r.jsx)(n.DialogDescription,{children:o}):null]}),(0,r.jsx)(`div`,{className:`flex-1 overflow-y-auto px-6 py-4`,children:s}),(c||m)&&(0,r.jsx)(n.DialogFooter,{className:`px-6 py-4 border-t`,children:c||(0,r.jsxs)(`div`,{className:`flex w-full justify-end gap-2`,children:[(0,r.jsx)(t.Button,{variant:`outline`,onClick:p,disabled:f,children:d}),m?(0,r.jsx)(t.Button,{onClick:m,disabled:f,children:u}):null]})})]})})}exports.Modal=i;