@runlume/admin-ui 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/README.en.md +6 -13
  2. package/README.md +5 -11
  3. package/dist-package/_virtual/_rolldown/runtime.cjs +1 -0
  4. package/dist-package/admin-ui.cjs +1 -0
  5. package/dist-package/admin-ui.d.ts +41 -1
  6. package/dist-package/admin-ui.d.ts.map +1 -1
  7. package/dist-package/admin-ui.js +79 -0
  8. package/dist-package/components/calendar.cjs +1 -0
  9. package/dist-package/components/calendar.d.ts +13 -0
  10. package/dist-package/components/calendar.d.ts.map +1 -0
  11. package/dist-package/components/calendar.js +91 -0
  12. package/dist-package/components/cascader.cjs +1 -0
  13. package/dist-package/components/cascader.d.ts +19 -0
  14. package/dist-package/components/cascader.d.ts.map +1 -0
  15. package/dist-package/components/cascader.js +85 -0
  16. package/dist-package/components/charts.cjs +1 -0
  17. package/dist-package/components/charts.d.ts +80 -0
  18. package/dist-package/components/charts.d.ts.map +1 -0
  19. package/dist-package/components/charts.js +374 -0
  20. package/dist-package/components/code-block.cjs +1 -0
  21. package/dist-package/components/code-block.d.ts +7 -0
  22. package/dist-package/components/code-block.d.ts.map +1 -0
  23. package/dist-package/components/code-block.js +47 -0
  24. package/dist-package/components/column-chart.cjs +1 -0
  25. package/dist-package/components/column-chart.d.ts +18 -0
  26. package/dist-package/components/column-chart.d.ts.map +1 -0
  27. package/dist-package/components/column-chart.js +89 -0
  28. package/dist-package/components/combobox.cjs +1 -0
  29. package/dist-package/components/combobox.d.ts +24 -0
  30. package/dist-package/components/combobox.d.ts.map +1 -0
  31. package/dist-package/components/combobox.js +111 -0
  32. package/dist-package/components/confirm-dialog.cjs +1 -0
  33. package/dist-package/components/confirm-dialog.d.ts +17 -0
  34. package/dist-package/components/confirm-dialog.d.ts.map +1 -0
  35. package/dist-package/components/confirm-dialog.js +44 -0
  36. package/dist-package/components/count-to.cjs +1 -0
  37. package/dist-package/components/count-to.d.ts +13 -0
  38. package/dist-package/components/count-to.d.ts.map +1 -0
  39. package/dist-package/components/count-to.js +36 -0
  40. package/dist-package/components/cursor-pagination.cjs +1 -0
  41. package/dist-package/components/cursor-pagination.d.ts +11 -0
  42. package/dist-package/components/cursor-pagination.d.ts.map +1 -0
  43. package/dist-package/components/cursor-pagination.js +39 -0
  44. package/dist-package/components/data-table.cjs +1 -0
  45. package/dist-package/components/data-table.d.ts +69 -0
  46. package/dist-package/components/data-table.d.ts.map +1 -0
  47. package/dist-package/components/data-table.js +377 -0
  48. package/dist-package/components/descriptions.cjs +1 -0
  49. package/dist-package/components/descriptions.d.ts +16 -0
  50. package/dist-package/components/descriptions.d.ts.map +1 -0
  51. package/dist-package/components/descriptions.js +28 -0
  52. package/dist-package/components/editable-table.cjs +1 -0
  53. package/dist-package/components/editable-table.d.ts +27 -0
  54. package/dist-package/components/editable-table.d.ts.map +1 -0
  55. package/dist-package/components/editable-table.js +212 -0
  56. package/dist-package/components/filter-presets.cjs +1 -0
  57. package/dist-package/components/filter-presets.d.ts +11 -0
  58. package/dist-package/components/filter-presets.d.ts.map +1 -0
  59. package/dist-package/components/filter-presets.js +17 -0
  60. package/dist-package/components/fixed-bar.cjs +1 -0
  61. package/dist-package/components/fixed-bar.d.ts +11 -0
  62. package/dist-package/components/fixed-bar.d.ts.map +1 -0
  63. package/dist-package/components/fixed-bar.js +18 -0
  64. package/dist-package/components/image-preview.cjs +1 -0
  65. package/dist-package/components/image-preview.d.ts +14 -0
  66. package/dist-package/components/image-preview.d.ts.map +1 -0
  67. package/dist-package/components/image-preview.js +166 -0
  68. package/dist-package/components/layout-container.cjs +1 -0
  69. package/dist-package/components/layout-container.d.ts +17 -0
  70. package/dist-package/components/layout-container.d.ts.map +1 -0
  71. package/dist-package/components/layout-container.js +85 -0
  72. package/dist-package/components/mention.cjs +1 -0
  73. package/dist-package/components/mention.d.ts +20 -0
  74. package/dist-package/components/mention.d.ts.map +1 -0
  75. package/dist-package/components/mention.js +126 -0
  76. package/dist-package/components/multi-select.cjs +1 -0
  77. package/dist-package/components/multi-select.d.ts +17 -0
  78. package/dist-package/components/multi-select.d.ts.map +1 -0
  79. package/dist-package/components/multi-select.js +126 -0
  80. package/dist-package/components/multi-step-loader.cjs +1 -0
  81. package/dist-package/components/multi-step-loader.d.ts +18 -0
  82. package/dist-package/components/multi-step-loader.d.ts.map +1 -0
  83. package/dist-package/components/multi-step-loader.js +38 -0
  84. package/dist-package/components/page-button.cjs +1 -0
  85. package/dist-package/components/page-button.d.ts +6 -0
  86. package/dist-package/components/page-button.d.ts.map +1 -0
  87. package/dist-package/components/page-button.js +24 -0
  88. package/dist-package/components/page-pager.cjs +1 -0
  89. package/dist-package/components/page-pager.d.ts +11 -0
  90. package/dist-package/components/page-pager.d.ts.map +1 -0
  91. package/dist-package/components/page-pager.js +51 -0
  92. package/dist-package/components/page.cjs +1 -0
  93. package/dist-package/components/page.d.ts +34 -0
  94. package/dist-package/components/page.d.ts.map +1 -0
  95. package/dist-package/components/page.js +208 -0
  96. package/dist-package/components/pagination-bar.cjs +1 -0
  97. package/dist-package/components/pagination-bar.d.ts +8 -0
  98. package/dist-package/components/pagination-bar.d.ts.map +1 -0
  99. package/dist-package/components/pagination-bar.js +23 -0
  100. package/dist-package/components/password-strength.cjs +1 -0
  101. package/dist-package/components/password-strength.d.ts +11 -0
  102. package/dist-package/components/password-strength.d.ts.map +1 -0
  103. package/dist-package/components/password-strength.js +70 -0
  104. package/dist-package/components/rate.cjs +1 -0
  105. package/dist-package/components/rate.d.ts +13 -0
  106. package/dist-package/components/rate.d.ts.map +1 -0
  107. package/dist-package/components/rate.js +56 -0
  108. package/dist-package/components/resizable-panel.cjs +1 -0
  109. package/dist-package/components/resizable-panel.d.ts +15 -0
  110. package/dist-package/components/resizable-panel.d.ts.map +1 -0
  111. package/dist-package/components/resizable-panel.js +56 -0
  112. package/dist-package/components/search-filters.cjs +1 -0
  113. package/dist-package/components/search-filters.d.ts +31 -0
  114. package/dist-package/components/search-filters.d.ts.map +1 -0
  115. package/dist-package/components/search-filters.js +110 -0
  116. package/dist-package/components/sortable-list.cjs +1 -0
  117. package/dist-package/components/sortable-list.d.ts +14 -0
  118. package/dist-package/components/sortable-list.d.ts.map +1 -0
  119. package/dist-package/components/sortable-list.js +48 -0
  120. package/dist-package/components/sparkline.cjs +1 -0
  121. package/dist-package/components/sparkline.d.ts +11 -0
  122. package/dist-package/components/sparkline.d.ts.map +1 -0
  123. package/dist-package/components/sparkline.js +50 -0
  124. package/dist-package/components/status-badge.cjs +1 -0
  125. package/dist-package/components/status-badge.d.ts +4 -0
  126. package/dist-package/components/status-badge.d.ts.map +1 -0
  127. package/dist-package/components/status-badge.js +28 -0
  128. package/dist-package/components/steps.cjs +1 -0
  129. package/dist-package/components/steps.d.ts +15 -0
  130. package/dist-package/components/steps.d.ts.map +1 -0
  131. package/dist-package/components/steps.js +41 -0
  132. package/dist-package/components/storage-box.cjs +1 -0
  133. package/dist-package/components/storage-box.d.ts +19 -0
  134. package/dist-package/components/storage-box.d.ts.map +1 -0
  135. package/dist-package/components/storage-box.js +153 -0
  136. package/dist-package/components/table-cell-overflow.cjs +1 -0
  137. package/dist-package/components/table-cell-overflow.d.ts +5 -0
  138. package/dist-package/components/table-cell-overflow.d.ts.map +1 -0
  139. package/dist-package/components/table-cell-overflow.js +31 -0
  140. package/dist-package/components/table-toolbar.cjs +1 -0
  141. package/dist-package/components/table-toolbar.d.ts +5 -0
  142. package/dist-package/components/table-toolbar.d.ts.map +1 -0
  143. package/dist-package/components/table-toolbar.js +11 -0
  144. package/dist-package/components/timeline.cjs +1 -0
  145. package/dist-package/components/timeline.d.ts +14 -0
  146. package/dist-package/components/timeline.d.ts.map +1 -0
  147. package/dist-package/components/timeline.js +40 -0
  148. package/dist-package/components/transfer.cjs +1 -0
  149. package/dist-package/components/transfer.d.ts +18 -0
  150. package/dist-package/components/transfer.d.ts.map +1 -0
  151. package/dist-package/components/transfer.js +98 -0
  152. package/dist-package/components/tree-table.cjs +1 -0
  153. package/dist-package/components/tree-table.d.ts +23 -0
  154. package/dist-package/components/tree-table.d.ts.map +1 -0
  155. package/dist-package/components/tree-table.js +53 -0
  156. package/dist-package/components/tree.cjs +1 -0
  157. package/dist-package/components/tree.d.ts +36 -0
  158. package/dist-package/components/tree.d.ts.map +1 -0
  159. package/dist-package/components/tree.js +204 -0
  160. package/dist-package/components/trend.cjs +1 -0
  161. package/dist-package/components/trend.d.ts +19 -0
  162. package/dist-package/components/trend.d.ts.map +1 -0
  163. package/dist-package/components/trend.js +18 -0
  164. package/dist-package/components/ui/alert-dialog.cjs +1 -0
  165. package/dist-package/components/ui/alert-dialog.js +57 -0
  166. package/dist-package/components/ui/alert.cjs +1 -0
  167. package/dist-package/components/ui/alert.js +63 -0
  168. package/dist-package/components/ui/avatar.cjs +1 -0
  169. package/dist-package/components/ui/avatar.js +27 -0
  170. package/dist-package/components/ui/badge.cjs +1 -0
  171. package/dist-package/components/ui/badge.js +40 -0
  172. package/dist-package/components/ui/breadcrumb.cjs +1 -0
  173. package/dist-package/components/ui/breadcrumb.js +70 -0
  174. package/dist-package/components/ui/button.cjs +1 -0
  175. package/dist-package/components/ui/button.js +58 -0
  176. package/dist-package/components/ui/card.cjs +1 -0
  177. package/dist-package/components/ui/card.js +55 -0
  178. package/dist-package/components/ui/checkbox.cjs +1 -0
  179. package/dist-package/components/ui/checkbox.js +19 -0
  180. package/dist-package/components/ui/collapsible.cjs +1 -0
  181. package/dist-package/components/ui/collapsible.js +32 -0
  182. package/dist-package/components/ui/context-menu.cjs +1 -0
  183. package/dist-package/components/ui/context-menu.js +46 -0
  184. package/dist-package/components/ui/date-input.cjs +1 -0
  185. package/dist-package/components/ui/date-input.js +183 -0
  186. package/dist-package/components/ui/date-range-input.cjs +1 -0
  187. package/dist-package/components/ui/date-range-input.js +209 -0
  188. package/dist-package/components/ui/date-time-input.cjs +1 -0
  189. package/dist-package/components/ui/date-time-input.js +23 -0
  190. package/dist-package/components/ui/dialog.cjs +1 -0
  191. package/dist-package/components/ui/dialog.js +189 -0
  192. package/dist-package/components/ui/dropdown-menu.cjs +1 -0
  193. package/dist-package/components/ui/dropdown-menu.js +124 -0
  194. package/dist-package/components/ui/file-upload.cjs +1 -0
  195. package/dist-package/components/ui/file-upload.js +160 -0
  196. package/dist-package/components/ui/hover-card.cjs +1 -0
  197. package/dist-package/components/ui/hover-card.js +28 -0
  198. package/dist-package/components/ui/input-otp.cjs +1 -0
  199. package/dist-package/components/ui/input-otp.js +33 -0
  200. package/dist-package/components/ui/input.cjs +1 -0
  201. package/dist-package/components/ui/input.js +65 -0
  202. package/dist-package/components/ui/kbd.cjs +1 -0
  203. package/dist-package/components/ui/kbd.js +20 -0
  204. package/dist-package/components/ui/label.cjs +1 -0
  205. package/dist-package/components/ui/label.js +14 -0
  206. package/dist-package/components/ui/native-select.cjs +1 -0
  207. package/dist-package/components/ui/native-select.js +125 -0
  208. package/dist-package/components/ui/number-field.cjs +1 -0
  209. package/dist-package/components/ui/number-field.js +50 -0
  210. package/dist-package/components/ui/progress.cjs +1 -0
  211. package/dist-package/components/ui/progress.js +28 -0
  212. package/dist-package/components/ui/radio-group.cjs +1 -0
  213. package/dist-package/components/ui/radio-group.js +27 -0
  214. package/dist-package/components/ui/scroll-area.cjs +1 -0
  215. package/dist-package/components/ui/scroll-area.js +25 -0
  216. package/dist-package/components/ui/select.cjs +1 -0
  217. package/dist-package/components/ui/select.js +23 -0
  218. package/dist-package/components/ui/separator.cjs +1 -0
  219. package/dist-package/components/ui/separator.js +17 -0
  220. package/dist-package/components/ui/sheet.cjs +1 -0
  221. package/dist-package/components/ui/sheet.js +86 -0
  222. package/dist-package/components/ui/sidebar.cjs +1 -0
  223. package/dist-package/components/ui/sidebar.js +350 -0
  224. package/dist-package/components/ui/skeleton.cjs +1 -0
  225. package/dist-package/components/ui/skeleton.js +12 -0
  226. package/dist-package/components/ui/slider.cjs +1 -0
  227. package/dist-package/components/ui/slider.js +36 -0
  228. package/dist-package/components/ui/switch.cjs +1 -0
  229. package/dist-package/components/ui/switch.js +14 -0
  230. package/dist-package/components/ui/table.cjs +1 -0
  231. package/dist-package/components/ui/table.js +66 -0
  232. package/dist-package/components/ui/tabs.cjs +1 -0
  233. package/dist-package/components/ui/tabs.js +47 -0
  234. package/dist-package/components/ui/tag-variants.cjs +1 -0
  235. package/dist-package/components/ui/tag-variants.js +15 -0
  236. package/dist-package/components/ui/tag.cjs +1 -0
  237. package/dist-package/components/ui/tag.js +31 -0
  238. package/dist-package/components/ui/textarea.cjs +1 -0
  239. package/dist-package/components/ui/textarea.js +13 -0
  240. package/dist-package/components/ui/time-input.cjs +1 -0
  241. package/dist-package/components/ui/time-input.js +89 -0
  242. package/dist-package/components/ui/tooltip.cjs +1 -0
  243. package/dist-package/components/ui/tooltip.js +35 -0
  244. package/dist-package/hooks/use-mobile.cjs +1 -0
  245. package/dist-package/hooks/use-mobile.js +11 -0
  246. package/dist-package/lib/dialog-focus.cjs +1 -0
  247. package/dist-package/lib/dialog-focus.js +10 -0
  248. package/dist-package/lib/metrics.cjs +1 -0
  249. package/dist-package/lib/metrics.d.ts +18 -0
  250. package/dist-package/lib/metrics.d.ts.map +1 -0
  251. package/dist-package/lib/metrics.js +22 -0
  252. package/dist-package/lib/pager.cjs +1 -0
  253. package/dist-package/lib/pager.d.ts +8 -0
  254. package/dist-package/lib/pager.d.ts.map +1 -0
  255. package/dist-package/lib/pager.js +18 -0
  256. package/dist-package/lib/password.cjs +1 -0
  257. package/dist-package/lib/password.d.ts +14 -0
  258. package/dist-package/lib/password.d.ts.map +1 -0
  259. package/dist-package/lib/password.js +34 -0
  260. package/dist-package/lib/presets.cjs +1 -0
  261. package/dist-package/lib/presets.d.ts +25 -0
  262. package/dist-package/lib/presets.d.ts.map +1 -0
  263. package/dist-package/lib/presets.js +48 -0
  264. package/dist-package/lib/range.cjs +1 -0
  265. package/dist-package/lib/range.js +57 -0
  266. package/dist-package/lib/storage-key.cjs +1 -0
  267. package/dist-package/lib/storage-key.d.ts +2 -0
  268. package/dist-package/lib/storage-key.d.ts.map +1 -0
  269. package/dist-package/lib/storage-key.js +6 -0
  270. package/dist-package/lib/table-prefs.cjs +1 -0
  271. package/dist-package/lib/table-prefs.d.ts +17 -0
  272. package/dist-package/lib/table-prefs.d.ts.map +1 -0
  273. package/dist-package/lib/table-prefs.js +64 -0
  274. package/dist-package/lib/tree.cjs +1 -0
  275. package/dist-package/lib/tree.d.ts +37 -0
  276. package/dist-package/lib/tree.d.ts.map +1 -0
  277. package/dist-package/lib/tree.js +57 -0
  278. package/dist-package/lib/use-ui-translation.cjs +1 -0
  279. package/dist-package/lib/use-ui-translation.d.ts +15 -0
  280. package/dist-package/lib/use-ui-translation.d.ts.map +1 -0
  281. package/dist-package/lib/use-ui-translation.js +65 -0
  282. package/dist-package/lib/utils.cjs +1 -0
  283. package/dist-package/lib/utils.js +8 -0
  284. package/dist-package/styles.css +1 -1
  285. package/package.json +25 -15
  286. package/dist-package/index.js +0 -12212
@@ -0,0 +1,57 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import { buttonVariants as t } from "./button.js";
3
+ import "react";
4
+ import { AlertDialog as n } from "radix-ui";
5
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
6
+ //#region src/components/ui/alert-dialog.tsx
7
+ var a = n.Root, o = n.Trigger, s = n.Portal;
8
+ function c({ className: t, ...i }) {
9
+ return /* @__PURE__ */ r(n.Overlay, {
10
+ className: e("fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", t),
11
+ ...i
12
+ });
13
+ }
14
+ function l({ className: t, ...a }) {
15
+ return /* @__PURE__ */ i(s, { children: [/* @__PURE__ */ r(c, {}), /* @__PURE__ */ r(n.Content, {
16
+ className: e("fixed left-1/2 top-1/2 z-50 grid w-[calc(100%-2rem)] max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl border bg-background p-6 shadow-lg", t),
17
+ ...a
18
+ })] });
19
+ }
20
+ function u({ className: t, ...n }) {
21
+ return /* @__PURE__ */ r("div", {
22
+ className: e("flex flex-col gap-2 text-center sm:text-left", t),
23
+ ...n
24
+ });
25
+ }
26
+ function d({ className: t, ...n }) {
27
+ return /* @__PURE__ */ r("div", {
28
+ className: e("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", t),
29
+ ...n
30
+ });
31
+ }
32
+ function f({ className: t, ...i }) {
33
+ return /* @__PURE__ */ r(n.Title, {
34
+ className: e("text-lg font-semibold", t),
35
+ ...i
36
+ });
37
+ }
38
+ function p({ className: t, ...i }) {
39
+ return /* @__PURE__ */ r(n.Description, {
40
+ className: e("text-sm leading-6 text-muted-foreground", t),
41
+ ...i
42
+ });
43
+ }
44
+ function m({ className: i, ...a }) {
45
+ return /* @__PURE__ */ r(n.Action, {
46
+ className: e(t({ variant: "destructive" }), i),
47
+ ...a
48
+ });
49
+ }
50
+ function h({ className: i, ...a }) {
51
+ return /* @__PURE__ */ r(n.Cancel, {
52
+ className: e(t({ variant: "outline" }), i),
53
+ ...a
54
+ });
55
+ }
56
+ //#endregion
57
+ export { a as AlertDialog, m as AlertDialogAction, h as AlertDialogCancel, l as AlertDialogContent, p as AlertDialogDescription, d as AlertDialogFooter, u as AlertDialogHeader, f as AlertDialogTitle, o as AlertDialogTrigger };
@@ -0,0 +1 @@
1
+ const e=require("../../lib/utils.cjs"),t=require("../../lib/use-ui-translation.cjs");let n=require("class-variance-authority"),r=require("lucide-react"),i=require("react/jsx-runtime");var a=(0,n.cva)(`relative flex items-start gap-3 rounded-lg border px-4 py-3 text-sm [&>svg]:mt-0.5 [&>svg]:size-4 [&>svg]:shrink-0`,{variants:{variant:{info:`border-info/25 bg-info-soft text-info`,success:`border-success/25 bg-success-soft text-success`,warning:`border-warning/25 bg-warning-soft text-warning`,danger:`border-danger/25 bg-danger-soft text-danger`}},defaultVariants:{variant:`info`}}),o={info:r.Info,success:r.CircleCheck,warning:r.TriangleAlert,danger:r.AlertCircle};function s({className:n,variant:r=`info`,title:s,description:c,action:l,onClose:u,children:d,...f}){let{t:p}=t.useUiTranslation(),m=o[r??`info`];return(0,i.jsxs)(`div`,{"data-slot":`alert`,"data-variant":r,role:`alert`,className:e.cn(a({variant:r}),n),...f,children:[(0,i.jsx)(m,{"aria-hidden":`true`}),(0,i.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[s&&(0,i.jsx)(`p`,{className:`font-medium`,children:s}),c&&(0,i.jsx)(`p`,{className:e.cn(`leading-6 text-foreground`,s&&`mt-1`),children:c}),d,l&&(0,i.jsx)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2`,children:l})]}),u&&(0,i.jsx)(`button`,{type:`button`,"aria-label":p(`close`),className:`-mr-1 -mt-1 rounded p-1 text-muted-foreground hover:bg-black/5 hover:text-foreground`,onClick:u,children:(0,i.jsx)(`span`,{"aria-hidden":`true`,children:`×`})})]})}exports.Alert=s,exports.alertVariants=a;
@@ -0,0 +1,63 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import { useUiTranslation as t } from "../../lib/use-ui-translation.js";
3
+ import { cva as n } from "class-variance-authority";
4
+ import { AlertCircle as r, CircleCheck as i, Info as a, TriangleAlert as o } from "lucide-react";
5
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
6
+ //#region src/components/ui/alert.tsx
7
+ var l = n("relative flex items-start gap-3 rounded-lg border px-4 py-3 text-sm [&>svg]:mt-0.5 [&>svg]:size-4 [&>svg]:shrink-0", {
8
+ variants: { variant: {
9
+ info: "border-info/25 bg-info-soft text-info",
10
+ success: "border-success/25 bg-success-soft text-success",
11
+ warning: "border-warning/25 bg-warning-soft text-warning",
12
+ danger: "border-danger/25 bg-danger-soft text-danger"
13
+ } },
14
+ defaultVariants: { variant: "info" }
15
+ }), u = {
16
+ info: a,
17
+ success: i,
18
+ warning: o,
19
+ danger: r
20
+ };
21
+ function d({ className: n, variant: r = "info", title: i, description: a, action: o, onClose: d, children: f, ...p }) {
22
+ let { t: m } = t(), h = u[r ?? "info"];
23
+ return /* @__PURE__ */ c("div", {
24
+ "data-slot": "alert",
25
+ "data-variant": r,
26
+ role: "alert",
27
+ className: e(l({ variant: r }), n),
28
+ ...p,
29
+ children: [
30
+ /* @__PURE__ */ s(h, { "aria-hidden": "true" }),
31
+ /* @__PURE__ */ c("div", {
32
+ className: "min-w-0 flex-1",
33
+ children: [
34
+ i && /* @__PURE__ */ s("p", {
35
+ className: "font-medium",
36
+ children: i
37
+ }),
38
+ a && /* @__PURE__ */ s("p", {
39
+ className: e("leading-6 text-foreground", i && "mt-1"),
40
+ children: a
41
+ }),
42
+ f,
43
+ o && /* @__PURE__ */ s("div", {
44
+ className: "mt-2 flex flex-wrap items-center gap-2",
45
+ children: o
46
+ })
47
+ ]
48
+ }),
49
+ d && /* @__PURE__ */ s("button", {
50
+ type: "button",
51
+ "aria-label": m("close"),
52
+ className: "-mr-1 -mt-1 rounded p-1 text-muted-foreground hover:bg-black/5 hover:text-foreground",
53
+ onClick: d,
54
+ children: /* @__PURE__ */ s("span", {
55
+ "aria-hidden": "true",
56
+ children: "×"
57
+ })
58
+ })
59
+ ]
60
+ });
61
+ }
62
+ //#endregion
63
+ export { d as Alert, l as alertVariants };
@@ -0,0 +1 @@
1
+ const e=require("../../lib/utils.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime");var r={sm:`size-7 text-xs`,default:`size-9 text-sm`,lg:`size-12 text-base`};function i({src:i,name:a,size:o=`default`,className:s}){let c=a.trim().slice(0,1).toUpperCase();return(0,n.jsxs)(t.Avatar.Root,{"data-slot":`avatar`,className:e.cn(`inline-flex shrink-0 select-none items-center justify-center overflow-hidden rounded-full bg-primary/12 font-medium text-primary`,r[o],s),children:[i&&(0,n.jsx)(t.Avatar.Image,{src:i,alt:a,className:`size-full object-cover`}),(0,n.jsx)(t.Avatar.Fallback,{delayMs:i?300:0,className:`flex size-full items-center justify-center`,children:c})]})}exports.Avatar=i;
@@ -0,0 +1,27 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import { Avatar as t } from "radix-ui";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ //#region src/components/ui/avatar.tsx
5
+ var i = {
6
+ sm: "size-7 text-xs",
7
+ default: "size-9 text-sm",
8
+ lg: "size-12 text-base"
9
+ };
10
+ function a({ src: a, name: o, size: s = "default", className: c }) {
11
+ let l = o.trim().slice(0, 1).toUpperCase();
12
+ return /* @__PURE__ */ r(t.Root, {
13
+ "data-slot": "avatar",
14
+ className: e("inline-flex shrink-0 select-none items-center justify-center overflow-hidden rounded-full bg-primary/12 font-medium text-primary", i[s], c),
15
+ children: [a && /* @__PURE__ */ n(t.Image, {
16
+ src: a,
17
+ alt: o,
18
+ className: "size-full object-cover"
19
+ }), /* @__PURE__ */ n(t.Fallback, {
20
+ delayMs: a ? 300 : 0,
21
+ className: "flex size-full items-center justify-center",
22
+ children: l
23
+ })]
24
+ });
25
+ }
26
+ //#endregion
27
+ export { a as Avatar };
@@ -0,0 +1 @@
1
+ const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("radix-ui"),i=require("class-variance-authority"),a=require("react/jsx-runtime");var o=(0,i.cva)(`inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3`,{variants:{variant:{default:`bg-primary text-primary-foreground [a&]:hover:bg-primary/90`,secondary:`bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90`,destructive:`bg-destructive text-white focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90`,outline:`border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground`,ghost:`[a&]:hover:bg-accent [a&]:hover:text-accent-foreground`,link:`text-primary underline-offset-4 [a&]:hover:underline`}},defaultVariants:{variant:`default`}});function s({className:e,variant:n=`default`,asChild:i=!1,onClose:s,closeLabel:c,...l}){let u=i?r.Slot.Root:`span`;return(0,a.jsxs)(u,{"data-slot":`badge`,"data-variant":n,className:t.cn(o({variant:n}),e),...l,children:[l.children,s&&(0,a.jsx)(`button`,{type:`button`,"aria-label":c??`remove`,className:`-mr-0.5 ml-0.5 rounded-full p-0.5 hover:bg-black/10 dark:hover:bg-white/15`,onClick:e=>{e.stopPropagation(),s()},children:(0,a.jsx)(`span`,{"aria-hidden":`true`,children:`×`})})]})}exports.Badge=s,exports.badgeVariants=o;
@@ -0,0 +1,40 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import "react";
3
+ import { Slot as t } from "radix-ui";
4
+ import { cva as n } from "class-variance-authority";
5
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
6
+ //#region src/components/ui/badge.tsx
7
+ var a = n("inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3", {
8
+ variants: { variant: {
9
+ default: "bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
10
+ secondary: "bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
11
+ destructive: "bg-destructive text-white focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90",
12
+ outline: "border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
13
+ ghost: "[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
14
+ link: "text-primary underline-offset-4 [a&]:hover:underline"
15
+ } },
16
+ defaultVariants: { variant: "default" }
17
+ });
18
+ function o({ className: n, variant: o = "default", asChild: s = !1, onClose: c, closeLabel: l, ...u }) {
19
+ let d = s ? t.Root : "span";
20
+ return /* @__PURE__ */ i(d, {
21
+ "data-slot": "badge",
22
+ "data-variant": o,
23
+ className: e(a({ variant: o }), n),
24
+ ...u,
25
+ children: [u.children, c && /* @__PURE__ */ r("button", {
26
+ type: "button",
27
+ "aria-label": l ?? "remove",
28
+ className: "-mr-0.5 ml-0.5 rounded-full p-0.5 hover:bg-black/10 dark:hover:bg-white/15",
29
+ onClick: (e) => {
30
+ e.stopPropagation(), c();
31
+ },
32
+ children: /* @__PURE__ */ r("span", {
33
+ "aria-hidden": "true",
34
+ children: "×"
35
+ })
36
+ })]
37
+ });
38
+ }
39
+ //#endregion
40
+ export { o as Badge, a as badgeVariants };
@@ -0,0 +1 @@
1
+ const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("radix-ui"),i=require("lucide-react"),a=require("react/jsx-runtime");function o({...e}){return(0,a.jsx)(`nav`,{"aria-label":`breadcrumb`,"data-slot":`breadcrumb`,...e})}function s({className:e,...n}){return(0,a.jsx)(`ol`,{"data-slot":`breadcrumb-list`,className:t.cn(`flex flex-wrap items-center gap-1.5 text-sm break-words text-muted-foreground sm:gap-2.5`,e),...n})}function c({className:e,...n}){return(0,a.jsx)(`li`,{"data-slot":`breadcrumb-item`,className:t.cn(`inline-flex items-center gap-1.5`,e),...n})}function l({asChild:e,className:n,...i}){let o=e?r.Slot.Root:`a`;return(0,a.jsx)(o,{"data-slot":`breadcrumb-link`,className:t.cn(`transition-colors hover:text-foreground`,n),...i})}function u({className:e,...n}){return(0,a.jsx)(`span`,{"data-slot":`breadcrumb-page`,role:`link`,"aria-disabled":`true`,"aria-current":`page`,className:t.cn(`font-normal text-foreground`,e),...n})}function d({children:e,className:n,...r}){return(0,a.jsx)(`li`,{"data-slot":`breadcrumb-separator`,role:`presentation`,"aria-hidden":`true`,className:t.cn(`[&>svg]:size-3.5`,n),...r,children:e??(0,a.jsx)(i.ChevronRight,{})})}function f({className:e,...n}){return(0,a.jsxs)(`span`,{"data-slot":`breadcrumb-ellipsis`,role:`presentation`,"aria-hidden":`true`,className:t.cn(`flex size-9 items-center justify-center`,e),...n,children:[(0,a.jsx)(i.MoreHorizontal,{className:`size-4`}),(0,a.jsx)(`span`,{className:`sr-only`,children:`More`})]})}exports.Breadcrumb=o,exports.BreadcrumbEllipsis=f,exports.BreadcrumbItem=c,exports.BreadcrumbLink=l,exports.BreadcrumbList=s,exports.BreadcrumbPage=u,exports.BreadcrumbSeparator=d;
@@ -0,0 +1,70 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import "react";
3
+ import { Slot as t } from "radix-ui";
4
+ import { ChevronRight as n, MoreHorizontal as r } from "lucide-react";
5
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
6
+ //#region src/components/ui/breadcrumb.tsx
7
+ function o({ ...e }) {
8
+ return /* @__PURE__ */ i("nav", {
9
+ "aria-label": "breadcrumb",
10
+ "data-slot": "breadcrumb",
11
+ ...e
12
+ });
13
+ }
14
+ function s({ className: t, ...n }) {
15
+ return /* @__PURE__ */ i("ol", {
16
+ "data-slot": "breadcrumb-list",
17
+ className: e("flex flex-wrap items-center gap-1.5 text-sm break-words text-muted-foreground sm:gap-2.5", t),
18
+ ...n
19
+ });
20
+ }
21
+ function c({ className: t, ...n }) {
22
+ return /* @__PURE__ */ i("li", {
23
+ "data-slot": "breadcrumb-item",
24
+ className: e("inline-flex items-center gap-1.5", t),
25
+ ...n
26
+ });
27
+ }
28
+ function l({ asChild: n, className: r, ...a }) {
29
+ let o = n ? t.Root : "a";
30
+ return /* @__PURE__ */ i(o, {
31
+ "data-slot": "breadcrumb-link",
32
+ className: e("transition-colors hover:text-foreground", r),
33
+ ...a
34
+ });
35
+ }
36
+ function u({ className: t, ...n }) {
37
+ return /* @__PURE__ */ i("span", {
38
+ "data-slot": "breadcrumb-page",
39
+ role: "link",
40
+ "aria-disabled": "true",
41
+ "aria-current": "page",
42
+ className: e("font-normal text-foreground", t),
43
+ ...n
44
+ });
45
+ }
46
+ function d({ children: t, className: r, ...a }) {
47
+ return /* @__PURE__ */ i("li", {
48
+ "data-slot": "breadcrumb-separator",
49
+ role: "presentation",
50
+ "aria-hidden": "true",
51
+ className: e("[&>svg]:size-3.5", r),
52
+ ...a,
53
+ children: t ?? /* @__PURE__ */ i(n, {})
54
+ });
55
+ }
56
+ function f({ className: t, ...n }) {
57
+ return /* @__PURE__ */ a("span", {
58
+ "data-slot": "breadcrumb-ellipsis",
59
+ role: "presentation",
60
+ "aria-hidden": "true",
61
+ className: e("flex size-9 items-center justify-center", t),
62
+ ...n,
63
+ children: [/* @__PURE__ */ i(r, { className: "size-4" }), /* @__PURE__ */ i("span", {
64
+ className: "sr-only",
65
+ children: "More"
66
+ })]
67
+ });
68
+ }
69
+ //#endregion
70
+ export { o as Breadcrumb, f as BreadcrumbEllipsis, c as BreadcrumbItem, l as BreadcrumbLink, s as BreadcrumbList, u as BreadcrumbPage, d as BreadcrumbSeparator };
@@ -0,0 +1 @@
1
+ const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("radix-ui"),i=require("class-variance-authority"),a=require("lucide-react"),o=require("react/jsx-runtime");var s=(0,i.cva)(`inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-[color,background-color,border-color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/90`,destructive:`bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40`,warning:`bg-warning text-warning-foreground hover:bg-warning/90 focus-visible:ring-warning/20 dark:focus-visible:ring-warning/40`,success:`bg-success text-success-foreground hover:bg-success/90 focus-visible:ring-success/20 dark:focus-visible:ring-success/40`,outline:`border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-9 px-4 py-2 has-[>svg]:px-3`,xs:`h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3`,sm:`h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5`,lg:`h-10 rounded-md px-6 has-[>svg]:px-4`,icon:`size-9`,"icon-xs":`size-6 rounded-md [&_svg:not([class*='size-'])]:size-3`,"icon-sm":`size-8`,"icon-lg":`size-10`}},defaultVariants:{variant:`default`,size:`default`}});function c({className:e,variant:n=`default`,size:i=`default`,asChild:c=!1,loading:l=!1,disabled:u,children:d,...f}){let p=c?r.Slot.Root:`button`,m=c?d:(0,o.jsxs)(o.Fragment,{children:[l&&(0,o.jsx)(a.LoaderCircle,{"aria-hidden":`true`,className:`size-4 animate-spin`}),d]});return(0,o.jsx)(p,{"data-slot":`button`,"data-variant":n,"data-size":i,"data-loading":l||void 0,"aria-busy":l||void 0,disabled:u||l,className:t.cn(s({variant:n,size:i,className:e})),...f,children:m})}exports.Button=c,exports.buttonVariants=s;
@@ -0,0 +1,58 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import "react";
3
+ import { Slot as t } from "radix-ui";
4
+ import { cva as n } from "class-variance-authority";
5
+ import { LoaderCircle as r } from "lucide-react";
6
+ import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
7
+ //#region src/components/ui/button.tsx
8
+ var s = n("inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-[color,background-color,border-color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
9
+ variants: {
10
+ variant: {
11
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
12
+ destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
13
+ warning: "bg-warning text-warning-foreground hover:bg-warning/90 focus-visible:ring-warning/20 dark:focus-visible:ring-warning/40",
14
+ success: "bg-success text-success-foreground hover:bg-success/90 focus-visible:ring-success/20 dark:focus-visible:ring-success/40",
15
+ outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
16
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
17
+ ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
18
+ link: "text-primary underline-offset-4 hover:underline"
19
+ },
20
+ size: {
21
+ default: "h-9 px-4 py-2 has-[>svg]:px-3",
22
+ xs: "h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",
23
+ sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
24
+ lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
25
+ icon: "size-9",
26
+ "icon-xs": "size-6 rounded-md [&_svg:not([class*='size-'])]:size-3",
27
+ "icon-sm": "size-8",
28
+ "icon-lg": "size-10"
29
+ }
30
+ },
31
+ defaultVariants: {
32
+ variant: "default",
33
+ size: "default"
34
+ }
35
+ });
36
+ function c({ className: n, variant: c = "default", size: l = "default", asChild: u = !1, loading: d = !1, disabled: f, children: p, ...m }) {
37
+ let h = u ? t.Root : "button", g = u ? p : /* @__PURE__ */ o(i, { children: [d && /* @__PURE__ */ a(r, {
38
+ "aria-hidden": "true",
39
+ className: "size-4 animate-spin"
40
+ }), p] });
41
+ return /* @__PURE__ */ a(h, {
42
+ "data-slot": "button",
43
+ "data-variant": c,
44
+ "data-size": l,
45
+ "data-loading": d || void 0,
46
+ "aria-busy": d || void 0,
47
+ disabled: f || d,
48
+ className: e(s({
49
+ variant: c,
50
+ size: l,
51
+ className: n
52
+ })),
53
+ ...m,
54
+ children: g
55
+ });
56
+ }
57
+ //#endregion
58
+ export { c as Button, s as buttonVariants };
@@ -0,0 +1 @@
1
+ const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.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":`card`,className:t.cn(`flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm`,e),...n})}function a({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`card-header`,className:t.cn(`@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6`,e),...n})}function o({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`card-title`,className:t.cn(`leading-none font-semibold`,e),...n})}function s({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`card-description`,className:t.cn(`text-sm text-muted-foreground`,e),...n})}function c({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`card-action`,className:t.cn(`col-start-2 row-span-2 row-start-1 self-start justify-self-end`,e),...n})}function l({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`card-content`,className:t.cn(`px-6`,e),...n})}function u({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`card-footer`,className:t.cn(`flex items-center px-6 [.border-t]:pt-6`,e),...n})}exports.Card=i,exports.CardAction=c,exports.CardContent=l,exports.CardDescription=s,exports.CardFooter=u,exports.CardHeader=a,exports.CardTitle=o;
@@ -0,0 +1,55 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import "react";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ //#region src/components/ui/card.tsx
5
+ function n({ className: n, ...r }) {
6
+ return /* @__PURE__ */ t("div", {
7
+ "data-slot": "card",
8
+ className: e("flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm", n),
9
+ ...r
10
+ });
11
+ }
12
+ function r({ className: n, ...r }) {
13
+ return /* @__PURE__ */ t("div", {
14
+ "data-slot": "card-header",
15
+ className: e("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6", n),
16
+ ...r
17
+ });
18
+ }
19
+ function i({ className: n, ...r }) {
20
+ return /* @__PURE__ */ t("div", {
21
+ "data-slot": "card-title",
22
+ className: e("leading-none font-semibold", n),
23
+ ...r
24
+ });
25
+ }
26
+ function a({ className: n, ...r }) {
27
+ return /* @__PURE__ */ t("div", {
28
+ "data-slot": "card-description",
29
+ className: e("text-sm text-muted-foreground", n),
30
+ ...r
31
+ });
32
+ }
33
+ function o({ className: n, ...r }) {
34
+ return /* @__PURE__ */ t("div", {
35
+ "data-slot": "card-action",
36
+ className: e("col-start-2 row-span-2 row-start-1 self-start justify-self-end", n),
37
+ ...r
38
+ });
39
+ }
40
+ function s({ className: n, ...r }) {
41
+ return /* @__PURE__ */ t("div", {
42
+ "data-slot": "card-content",
43
+ className: e("px-6", n),
44
+ ...r
45
+ });
46
+ }
47
+ function c({ className: n, ...r }) {
48
+ return /* @__PURE__ */ t("div", {
49
+ "data-slot": "card-footer",
50
+ className: e("flex items-center px-6 [.border-t]:pt-6", n),
51
+ ...r
52
+ });
53
+ }
54
+ //#endregion
55
+ export { n as Card, o as CardAction, s as CardContent, a as CardDescription, c as CardFooter, r as CardHeader, i as CardTitle };
@@ -0,0 +1 @@
1
+ const e=require("../../lib/utils.cjs");let t=require("radix-ui"),n=require("lucide-react"),r=require("react/jsx-runtime");function i({className:i,indeterminate:a=!1,checked:o,...s}){return(0,r.jsx)(t.Checkbox.Root,{"data-slot":`checkbox`,checked:a?`indeterminate`:o,className:e.cn(`peer size-4 shrink-0 rounded-[4px] border border-input bg-card outline-none`,`focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30`,`data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground`,`data-[state=indeterminate]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground`,`disabled:cursor-not-allowed disabled:opacity-50`,i),...s,children:(0,r.jsx)(t.Checkbox.Indicator,{className:`flex items-center justify-center text-current`,children:a?(0,r.jsx)(n.Minus,{className:`size-3`}):(0,r.jsx)(n.Check,{className:`size-3`})})})}exports.Checkbox=i;
@@ -0,0 +1,19 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import { Checkbox as t } from "radix-ui";
3
+ import { Check as n, Minus as r } from "lucide-react";
4
+ import { jsx as i } from "react/jsx-runtime";
5
+ //#region src/components/ui/checkbox.tsx
6
+ function a({ className: a, indeterminate: o = !1, checked: s, ...c }) {
7
+ return /* @__PURE__ */ i(t.Root, {
8
+ "data-slot": "checkbox",
9
+ checked: o ? "indeterminate" : s,
10
+ className: e("peer size-4 shrink-0 rounded-[4px] border border-input bg-card outline-none", "focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30", "data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground", "data-[state=indeterminate]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground", "disabled:cursor-not-allowed disabled:opacity-50", a),
11
+ ...c,
12
+ children: /* @__PURE__ */ i(t.Indicator, {
13
+ className: "flex items-center justify-center text-current",
14
+ children: i(o ? r : n, { className: "size-3" })
15
+ })
16
+ });
17
+ }
18
+ //#endregion
19
+ export { a as Checkbox };
@@ -0,0 +1 @@
1
+ const e=require("../../lib/utils.cjs");let t=require("radix-ui"),n=require("lucide-react"),r=require("react/jsx-runtime");function i({className:n,...i}){return(0,r.jsx)(t.Collapsible.Root,{"data-slot":`collapsible`,className:e.cn(`space-y-2`,n),...i})}function a({className:i,children:a,...o}){return(0,r.jsxs)(t.Collapsible.Trigger,{"data-slot":`collapsible-trigger`,className:e.cn(`group flex w-full items-center gap-2 rounded-md text-left text-sm font-medium outline-none`,`focus-visible:ring-2 focus-visible:ring-ring/40`,i),...o,children:[(0,r.jsx)(n.ChevronRight,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground transition-transform group-data-[state=open]:rotate-90`}),a]})}function o({className:n,...i}){return(0,r.jsx)(t.Collapsible.Content,{"data-slot":`collapsible-content`,className:e.cn(`pl-6 text-sm text-muted-foreground`,n),...i})}exports.Collapsible=i,exports.CollapsibleContent=o,exports.CollapsibleTrigger=a;
@@ -0,0 +1,32 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import { Collapsible as t } from "radix-ui";
3
+ import { ChevronRight as n } from "lucide-react";
4
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
+ //#region src/components/ui/collapsible.tsx
6
+ function a({ className: n, ...i }) {
7
+ return /* @__PURE__ */ r(t.Root, {
8
+ "data-slot": "collapsible",
9
+ className: e("space-y-2", n),
10
+ ...i
11
+ });
12
+ }
13
+ function o({ className: a, children: o, ...s }) {
14
+ return /* @__PURE__ */ i(t.Trigger, {
15
+ "data-slot": "collapsible-trigger",
16
+ className: e("group flex w-full items-center gap-2 rounded-md text-left text-sm font-medium outline-none", "focus-visible:ring-2 focus-visible:ring-ring/40", a),
17
+ ...s,
18
+ children: [/* @__PURE__ */ r(n, {
19
+ "aria-hidden": "true",
20
+ className: "size-4 shrink-0 text-muted-foreground transition-transform group-data-[state=open]:rotate-90"
21
+ }), o]
22
+ });
23
+ }
24
+ function s({ className: n, ...i }) {
25
+ return /* @__PURE__ */ r(t.Content, {
26
+ "data-slot": "collapsible-content",
27
+ className: e("pl-6 text-sm text-muted-foreground", n),
28
+ ...i
29
+ });
30
+ }
31
+ //#endregion
32
+ export { a as Collapsible, s as CollapsibleContent, o as CollapsibleTrigger };
@@ -0,0 +1 @@
1
+ const e=require("../../lib/utils.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime");function r(e){return(0,n.jsx)(t.ContextMenu.Root,{"data-slot":`context-menu`,...e})}function i(e){return(0,n.jsx)(t.ContextMenu.Trigger,{"data-slot":`context-menu-trigger`,...e})}function a({className:r,...i}){return(0,n.jsx)(t.ContextMenu.Portal,{children:(0,n.jsx)(t.ContextMenu.Content,{"data-slot":`context-menu-content`,className:e.cn(`z-50 min-w-40 overflow-hidden rounded-lg border bg-popover p-1 text-popover-foreground shadow-md`,r),...i})})}function o({className:r,...i}){return(0,n.jsx)(t.ContextMenu.Item,{"data-slot":`context-menu-item`,className:e.cn(`relative flex cursor-default select-none items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none`,`focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,`[&_svg]:size-4 [&_svg]:shrink-0`,r),...i})}function s({className:r,...i}){return(0,n.jsx)(t.ContextMenu.Separator,{"data-slot":`context-menu-separator`,className:e.cn(`-mx-1 my-1 h-px bg-border`,r),...i})}function c({className:r,...i}){return(0,n.jsx)(t.ContextMenu.Label,{"data-slot":`context-menu-label`,className:e.cn(`px-2 py-1.5 text-xs text-muted-foreground`,r),...i})}exports.ContextMenu=r,exports.ContextMenuContent=a,exports.ContextMenuItem=o,exports.ContextMenuLabel=c,exports.ContextMenuSeparator=s,exports.ContextMenuTrigger=i;
@@ -0,0 +1,46 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import { ContextMenu as t } from "radix-ui";
3
+ import { jsx as n } from "react/jsx-runtime";
4
+ //#region src/components/ui/context-menu.tsx
5
+ function r(e) {
6
+ return /* @__PURE__ */ n(t.Root, {
7
+ "data-slot": "context-menu",
8
+ ...e
9
+ });
10
+ }
11
+ function i(e) {
12
+ return /* @__PURE__ */ n(t.Trigger, {
13
+ "data-slot": "context-menu-trigger",
14
+ ...e
15
+ });
16
+ }
17
+ function a({ className: r, ...i }) {
18
+ return /* @__PURE__ */ n(t.Portal, { children: /* @__PURE__ */ n(t.Content, {
19
+ "data-slot": "context-menu-content",
20
+ className: e("z-50 min-w-40 overflow-hidden rounded-lg border bg-popover p-1 text-popover-foreground shadow-md", r),
21
+ ...i
22
+ }) });
23
+ }
24
+ function o({ className: r, ...i }) {
25
+ return /* @__PURE__ */ n(t.Item, {
26
+ "data-slot": "context-menu-item",
27
+ className: e("relative flex cursor-default select-none items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none", "focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", "[&_svg]:size-4 [&_svg]:shrink-0", r),
28
+ ...i
29
+ });
30
+ }
31
+ function s({ className: r, ...i }) {
32
+ return /* @__PURE__ */ n(t.Separator, {
33
+ "data-slot": "context-menu-separator",
34
+ className: e("-mx-1 my-1 h-px bg-border", r),
35
+ ...i
36
+ });
37
+ }
38
+ function c({ className: r, ...i }) {
39
+ return /* @__PURE__ */ n(t.Label, {
40
+ "data-slot": "context-menu-label",
41
+ className: e("px-2 py-1.5 text-xs text-muted-foreground", r),
42
+ ...i
43
+ });
44
+ }
45
+ //#endregion
46
+ export { r as ContextMenu, a as ContextMenuContent, o as ContextMenuItem, c as ContextMenuLabel, s as ContextMenuSeparator, i as ContextMenuTrigger };
@@ -0,0 +1 @@
1
+ const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../../lib/use-ui-translation.cjs"),r=require("./input.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("radix-ui"),o=require("lucide-react"),s=require("react/jsx-runtime");var c=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`,l=e=>{let[t,n,r]=e.slice(0,10).split(`-`).map(Number);return t&&n&&r?new Date(t,n-1,r):new Date};function u({ref:e,className:u,onChange:d,onKeyDown:f,disabled:p,readOnly:m,...h}){let{i18n:g}=n.useUiTranslation(),_=g.language.startsWith(`en`),v=i.useRef(null),y=i.useRef(null),[b,x]=i.useState(!1),[S,C]=i.useState(`day`),[w,T]=i.useState(()=>l(String(h.value??h.defaultValue??``))),[E,D]=i.useState(``),[O,k]=i.useState(``);i.useImperativeHandle(e,()=>v.current);let A=String(h.min??``).slice(0,10),j=String(h.max??``).slice(0,10),M=e=>!!A&&e<A||!!j&&e>j;function N(e){if(e){let e=v.current.value.slice(0,10),t=e||c(new Date);A&&t<A&&(t=A),j&&t>j&&(t=j),T(l(t)),D(t),k(e)}x(e)}i.useEffect(()=>{b&&y.current?.querySelector(`[data-day="${E}"]`)?.focus()},[b,E]);function P(e){let t=v.current,n=e&&h.type===`datetime-local`?`${e}T${t.value.split(`T`)[1]||`00:00`}`:e;Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,`value`).set.call(t,n),t.dispatchEvent(new Event(`input`,{bubbles:!0})),t.dispatchEvent(new Event(`change`,{bubbles:!0})),x(!1)}function F(e){let t=new Date(w.getFullYear(),w.getMonth()+e,1);T(t),D(c(t))}let I=new Date(w.getFullYear(),w.getMonth(),1);I.setDate(1-I.getDay());let L=Array.from({length:42},(e,t)=>new Date(I.getFullYear(),I.getMonth(),I.getDate()+t));return(0,s.jsxs)(a.Popover.Root,{open:b,onOpenChange:N,children:[(0,s.jsxs)(`div`,{className:`relative min-w-0 w-full`,children:[(0,s.jsx)(`input`,{...h,ref:v,disabled:p,readOnly:m,"data-slot":`input`,className:t.cn(r.inputBaseClass,`themed-date-input pr-10`,u),onChange:d,onKeyDown:e=>{f?.(e),!e.defaultPrevented&&e.altKey&&e.key===`ArrowDown`&&!p&&!m&&(e.preventDefault(),N(!0))}}),(0,s.jsx)(a.Popover.Trigger,{asChild:!0,children:(0,s.jsx)(`button`,{type:`button`,disabled:p||m,"aria-label":_?`Choose date`:`选择日期`,className:`absolute right-1 top-1/2 flex size-8 -translate-y-1/2 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-accent-foreground disabled:opacity-50`,children:(0,s.jsx)(o.CalendarDays,{className:`size-4`})})})]}),(0,s.jsx)(a.Popover.Portal,{children:(0,s.jsxs)(a.Popover.Content,{ref:y,sideOffset:4,align:`start`,"aria-label":_?`Calendar`:`日历`,onOpenAutoFocus:e=>{e.preventDefault(),y.current?.querySelector(`[data-day="${E}"]`)?.focus()},className:`z-50 w-72 max-w-[calc(100vw-2rem)] rounded-xl border bg-popover p-3 text-popover-foreground shadow-md`,children:[(0,s.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[(0,s.jsx)(`button`,{type:`button`,"aria-label":_?`Previous month`:`上个月`,onClick:()=>F(-1),className:`flex size-8 items-center justify-center rounded-md hover:bg-accent`,children:(0,s.jsx)(o.ChevronLeft,{className:`size-4`})}),(0,s.jsx)(`button`,{type:`button`,"aria-label":_?`Switch to month or year view`:`切换到月/年视图`,className:`rounded-md px-2 py-1 text-sm font-medium hover:bg-accent`,onClick:()=>C(S===`day`?`month`:S===`month`?`year`:`day`),children:new Intl.DateTimeFormat(g.language,{year:`numeric`,month:`long`}).format(w)}),(0,s.jsx)(`button`,{type:`button`,"aria-label":_?`Next month`:`下个月`,onClick:()=>F(1),className:`flex size-8 items-center justify-center rounded-md hover:bg-accent`,children:(0,s.jsx)(o.ChevronRight,{className:`size-4`})})]}),S===`month`&&(0,s.jsx)(`div`,{className:`grid grid-cols-3 gap-1`,children:Array.from({length:12},(e,t)=>t).map(e=>(0,s.jsx)(`button`,{type:`button`,className:t.cn(`rounded-md px-2 py-2 text-sm hover:bg-accent`,w.getMonth()===e&&`bg-primary/10 text-primary`),onClick:()=>{T(new Date(w.getFullYear(),e,1)),C(`day`)},children:new Intl.DateTimeFormat(g.language,{month:`short`}).format(new Date(w.getFullYear(),e,1))},e))}),S===`year`&&(0,s.jsx)(`div`,{className:`grid grid-cols-3 gap-1`,children:Array.from({length:12},(e,t)=>w.getFullYear()-6+t).map(e=>(0,s.jsx)(`button`,{type:`button`,className:t.cn(`rounded-md px-2 py-2 text-sm hover:bg-accent`,w.getFullYear()===e&&`bg-primary/10 text-primary`),onClick:()=>{T(new Date(e,w.getMonth(),1)),C(`month`)},children:e},e))}),S===`day`&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`div`,{className:`grid grid-cols-7 text-center text-xs text-muted-foreground`,children:L.slice(0,7).map(e=>(0,s.jsx)(`span`,{className:`py-2`,children:new Intl.DateTimeFormat(g.language,{weekday:`narrow`}).format(e)},c(e)))}),(0,s.jsx)(`div`,{className:`grid grid-cols-7 gap-0.5`,onKeyDown:e=>{let t={ArrowLeft:-1,ArrowRight:1,ArrowUp:-7,ArrowDown:7}[e.key];if(t===void 0)return;e.preventDefault();let n=l(E);n.setDate(n.getDate()+t);let r=c(n);M(r)||(T(n),D(r))},children:L.map(e=>{let n=c(e);return(0,s.jsx)(`button`,{type:`button`,"data-day":n,tabIndex:n===E?0:-1,"aria-label":n,"aria-pressed":O===n,"aria-current":n===c(new Date)?`date`:void 0,disabled:M(n),onClick:()=>P(n),className:t.cn(`h-8 rounded-md text-sm hover:bg-accent hover:text-accent-foreground disabled:opacity-30`,e.getMonth()!==w.getMonth()&&`text-muted-foreground`,O===n&&`bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground`),children:e.getDate()},n)})})]}),(0,s.jsxs)(`div`,{className:`mt-2 flex justify-between border-t pt-2`,children:[(0,s.jsx)(`button`,{type:`button`,onClick:()=>P(``),className:`rounded-md px-2 py-1 text-sm text-muted-foreground hover:bg-accent`,children:_?`Clear`:`清除`}),(0,s.jsx)(`button`,{type:`button`,disabled:M(c(new Date)),onClick:()=>P(c(new Date)),className:`rounded-md px-2 py-1 text-sm text-primary hover:bg-accent disabled:opacity-30`,children:_?`Today`:`今天`})]})]})})]})}exports.DateInput=u;