@brainfish-ai/components 0.18.4-alpha.6 → 0.18.4

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 (222) hide show
  1. package/dist/accordion.d.ts +12 -0
  2. package/dist/alert-dialog.d.ts +46 -0
  3. package/dist/alert.d.ts +18 -0
  4. package/dist/badge.d.ts +14 -0
  5. package/dist/button-group.d.ts +21 -0
  6. package/dist/button.d.ts +16 -0
  7. package/dist/calendar.d.ts +12 -0
  8. package/dist/card.d.ts +15 -0
  9. package/dist/chart-area-linear.d.ts +41 -0
  10. package/dist/chart-radial-stacked.d.ts +39 -0
  11. package/dist/chat-search.d.ts +426 -0
  12. package/dist/collapsible.d.ts +10 -0
  13. package/dist/colors.d.ts +161 -0
  14. package/dist/combobox.d.ts +23 -0
  15. package/dist/command.d.ts +90 -0
  16. package/dist/components/ui/accordion.d.ts +2 -0
  17. package/dist/components/ui/alert-dialog.d.ts +2 -0
  18. package/dist/components/ui/alert.d.ts +2 -0
  19. package/dist/components/ui/badge.d.ts +2 -0
  20. package/dist/components/ui/button-group.d.ts +2 -0
  21. package/dist/components/ui/button.d.ts +2 -0
  22. package/dist/components/ui/calendar.d.ts +2 -0
  23. package/dist/components/ui/card.d.ts +2 -0
  24. package/dist/components/ui/collapsible.d.ts +2 -0
  25. package/dist/components/ui/command.d.ts +2 -0
  26. package/dist/components/ui/dialog.d.ts +2 -0
  27. package/dist/components/ui/div-button.d.ts +2 -0
  28. package/dist/components/ui/dropdown-menu.d.ts +2 -0
  29. package/dist/components/ui/icon.d.ts +2 -0
  30. package/dist/components/ui/input.d.ts +2 -0
  31. package/dist/components/ui/item.d.ts +2 -0
  32. package/dist/components/ui/label.d.ts +2 -0
  33. package/dist/components/ui/popover.d.ts +2 -0
  34. package/dist/components/ui/progress.d.ts +2 -0
  35. package/dist/components/ui/scroll-area.d.ts +2 -0
  36. package/dist/components/ui/select.d.ts +2 -0
  37. package/dist/components/ui/separator.d.ts +2 -0
  38. package/dist/components/ui/sheet.d.ts +2 -0
  39. package/dist/components/ui/spinner.d.ts +2 -0
  40. package/dist/components/ui/switch.d.ts +2 -0
  41. package/dist/components/ui/table.d.ts +2 -0
  42. package/dist/components/ui/textarea.d.ts +2 -0
  43. package/dist/components/ui/tooltip.d.ts +2 -0
  44. package/dist/confirm-dialog.d.ts +35 -0
  45. package/dist/convos.d.ts +179 -0
  46. package/dist/data-table.d.ts +23 -0
  47. package/dist/date-picker.d.ts +12 -0
  48. package/dist/dialog.d.ts +30 -0
  49. package/dist/div-button.d.ts +16 -0
  50. package/dist/dropdown-menu.d.ts +43 -0
  51. package/dist/esm/ChatSearch.css +1 -0
  52. package/dist/esm/chunks/ChatSearch.BJtS7ZMs.js +6482 -0
  53. package/dist/esm/chunks/ChatSearch.BJtS7ZMs.js.map +1 -0
  54. package/dist/esm/chunks/FormattedMessage.ieoe4jPf.js +39760 -0
  55. package/dist/esm/chunks/FormattedMessage.ieoe4jPf.js.map +1 -0
  56. package/dist/esm/chunks/_commonjsHelpers.BFTU3MAI.js +8 -0
  57. package/dist/esm/chunks/_commonjsHelpers.BFTU3MAI.js.map +1 -0
  58. package/dist/esm/chunks/chart.DGCX9VIn.js +219 -0
  59. package/dist/esm/chunks/chart.DGCX9VIn.js.map +1 -0
  60. package/dist/esm/chunks/combobox.CkN-wAHB.js +74 -0
  61. package/dist/esm/chunks/combobox.CkN-wAHB.js.map +1 -0
  62. package/dist/esm/chunks/dark.Cl9Z44CU.js +17 -0
  63. package/dist/esm/chunks/dark.Cl9Z44CU.js.map +1 -0
  64. package/dist/esm/chunks/data-table.DbcAYxMY.js +102 -0
  65. package/dist/esm/chunks/data-table.DbcAYxMY.js.map +1 -0
  66. package/dist/esm/chunks/date-picker.sQXSlqNZ.js +26 -0
  67. package/dist/esm/chunks/date-picker.sQXSlqNZ.js.map +1 -0
  68. package/dist/esm/chunks/extends.mO86zOh3.js +12 -0
  69. package/dist/esm/chunks/extends.mO86zOh3.js.map +1 -0
  70. package/dist/esm/chunks/feedback.D139-1Wr.js +214 -0
  71. package/dist/esm/chunks/feedback.D139-1Wr.js.map +1 -0
  72. package/dist/esm/chunks/file-upload-status.Vw0Zxmir.js +141 -0
  73. package/dist/esm/chunks/file-upload-status.Vw0Zxmir.js.map +1 -0
  74. package/dist/esm/chunks/filters.Be4KPvMA.js +565 -0
  75. package/dist/esm/chunks/filters.Be4KPvMA.js.map +1 -0
  76. package/dist/esm/chunks/formatNumber.Bm2k8QrT.js +10 -0
  77. package/dist/esm/chunks/formatNumber.Bm2k8QrT.js.map +1 -0
  78. package/dist/esm/chunks/generating-star.CozjECmM.js +1490 -0
  79. package/dist/esm/chunks/generating-star.CozjECmM.js.map +1 -0
  80. package/dist/esm/chunks/index.BqibIWDw.js +137 -0
  81. package/dist/esm/chunks/index.BqibIWDw.js.map +1 -0
  82. package/dist/esm/chunks/logo.BXk28Fqo.js +181 -0
  83. package/dist/esm/chunks/logo.BXk28Fqo.js.map +1 -0
  84. package/dist/esm/chunks/primary.CtiRZbqq.js +18 -0
  85. package/dist/esm/chunks/primary.CtiRZbqq.js.map +1 -0
  86. package/dist/esm/chunks/simpleSelect.B1rktKkt.js +23 -0
  87. package/dist/esm/chunks/simpleSelect.B1rktKkt.js.map +1 -0
  88. package/dist/esm/chunks/trend-value.COSukPwk.js +51 -0
  89. package/dist/esm/chunks/trend-value.COSukPwk.js.map +1 -0
  90. package/dist/esm/chunks/two-level-combobox.DsWPDcI6.js +132 -0
  91. package/dist/esm/chunks/two-level-combobox.DsWPDcI6.js.map +1 -0
  92. package/dist/esm/chunks/utils.Cwtlq8dh.js +45 -0
  93. package/dist/esm/chunks/utils.Cwtlq8dh.js.map +1 -0
  94. package/dist/esm/colors.js +170 -0
  95. package/dist/esm/colors.js.map +1 -0
  96. package/dist/esm/components/chart-area-linear.js +87 -0
  97. package/dist/esm/components/chart-area-linear.js.map +1 -0
  98. package/dist/esm/components/chart-radial-stacked.js +49 -0
  99. package/dist/esm/components/chart-radial-stacked.js.map +1 -0
  100. package/dist/esm/components/chat-search.js +2 -0
  101. package/dist/esm/components/chat-search.js.map +1 -0
  102. package/dist/esm/components/combobox.js +2 -0
  103. package/dist/esm/components/combobox.js.map +1 -0
  104. package/dist/esm/components/confirm-dialog.js +48 -0
  105. package/dist/esm/components/confirm-dialog.js.map +1 -0
  106. package/dist/esm/components/convos.js +602 -0
  107. package/dist/esm/components/convos.js.map +1 -0
  108. package/dist/esm/components/data-table.js +2 -0
  109. package/dist/esm/components/data-table.js.map +1 -0
  110. package/dist/esm/components/date-picker.js +2 -0
  111. package/dist/esm/components/date-picker.js.map +1 -0
  112. package/dist/esm/components/feedback.js +2 -0
  113. package/dist/esm/components/feedback.js.map +1 -0
  114. package/dist/esm/components/file-upload.js +2 -0
  115. package/dist/esm/components/file-upload.js.map +1 -0
  116. package/dist/esm/components/filter.js +2 -0
  117. package/dist/esm/components/filter.js.map +1 -0
  118. package/dist/esm/components/generating-star.js +2 -0
  119. package/dist/esm/components/generating-star.js.map +1 -0
  120. package/dist/esm/components/logo.js +2 -0
  121. package/dist/esm/components/logo.js.map +1 -0
  122. package/dist/esm/components/markdown.js +2 -0
  123. package/dist/esm/components/markdown.js.map +1 -0
  124. package/dist/esm/components/metric-card.js +28 -0
  125. package/dist/esm/components/metric-card.js.map +1 -0
  126. package/dist/esm/components/select.js +2 -0
  127. package/dist/esm/components/select.js.map +1 -0
  128. package/dist/esm/components/trend-value.js +2 -0
  129. package/dist/esm/components/trend-value.js.map +1 -0
  130. package/dist/esm/components/two-level-combobox.js +2 -0
  131. package/dist/esm/components/two-level-combobox.js.map +1 -0
  132. package/dist/esm/components/ui/accordion.js +47 -0
  133. package/dist/esm/components/ui/accordion.js.map +1 -0
  134. package/dist/esm/components/ui/alert-dialog.js +147 -0
  135. package/dist/esm/components/ui/alert-dialog.js.map +1 -0
  136. package/dist/esm/components/ui/alert.js +121 -0
  137. package/dist/esm/components/ui/alert.js.map +1 -0
  138. package/dist/esm/components/ui/badge.js +27 -0
  139. package/dist/esm/components/ui/badge.js.map +1 -0
  140. package/dist/esm/components/ui/button-group.js +74 -0
  141. package/dist/esm/components/ui/button-group.js.map +1 -0
  142. package/dist/esm/components/ui/button.js +52 -0
  143. package/dist/esm/components/ui/button.js.map +1 -0
  144. package/dist/esm/components/ui/calendar.js +26 -0
  145. package/dist/esm/components/ui/calendar.js.map +1 -0
  146. package/dist/esm/components/ui/card.js +56 -0
  147. package/dist/esm/components/ui/card.js.map +1 -0
  148. package/dist/esm/components/ui/collapsible.js +34 -0
  149. package/dist/esm/components/ui/collapsible.js.map +1 -0
  150. package/dist/esm/components/ui/command.js +103 -0
  151. package/dist/esm/components/ui/command.js.map +1 -0
  152. package/dist/esm/components/ui/dialog.js +88 -0
  153. package/dist/esm/components/ui/dialog.js.map +1 -0
  154. package/dist/esm/components/ui/div-button.js +61 -0
  155. package/dist/esm/components/ui/div-button.js.map +1 -0
  156. package/dist/esm/components/ui/dropdown-menu.js +132 -0
  157. package/dist/esm/components/ui/dropdown-menu.js.map +1 -0
  158. package/dist/esm/components/ui/icon.js +16 -0
  159. package/dist/esm/components/ui/icon.js.map +1 -0
  160. package/dist/esm/components/ui/input.js +29 -0
  161. package/dist/esm/components/ui/input.js.map +1 -0
  162. package/dist/esm/components/ui/item.js +179 -0
  163. package/dist/esm/components/ui/item.js.map +1 -0
  164. package/dist/esm/components/ui/label.js +20 -0
  165. package/dist/esm/components/ui/label.js.map +1 -0
  166. package/dist/esm/components/ui/popover.js +24 -0
  167. package/dist/esm/components/ui/popover.js.map +1 -0
  168. package/dist/esm/components/ui/progress.js +23 -0
  169. package/dist/esm/components/ui/progress.js.map +1 -0
  170. package/dist/esm/components/ui/scroll-area.js +34 -0
  171. package/dist/esm/components/ui/scroll-area.js.map +1 -0
  172. package/dist/esm/components/ui/select.js +81 -0
  173. package/dist/esm/components/ui/select.js.map +1 -0
  174. package/dist/esm/components/ui/separator.js +24 -0
  175. package/dist/esm/components/ui/separator.js.map +1 -0
  176. package/dist/esm/components/ui/sheet.js +99 -0
  177. package/dist/esm/components/ui/sheet.js.map +1 -0
  178. package/dist/esm/components/ui/spinner.js +18 -0
  179. package/dist/esm/components/ui/spinner.js.map +1 -0
  180. package/dist/esm/components/ui/switch.js +27 -0
  181. package/dist/esm/components/ui/switch.js.map +1 -0
  182. package/dist/esm/components/ui/table.js +83 -0
  183. package/dist/esm/components/ui/table.js.map +1 -0
  184. package/dist/esm/components/ui/textarea.js +34 -0
  185. package/dist/esm/components/ui/textarea.js.map +1 -0
  186. package/dist/esm/components/ui/tooltip.js +34 -0
  187. package/dist/esm/components/ui/tooltip.js.map +1 -0
  188. package/dist/esm/convos.css +1 -0
  189. package/dist/esm/date-picker.css +1 -0
  190. package/dist/esm/global.css +1 -0
  191. package/dist/esm/index.js +150 -0
  192. package/dist/esm/index.js.map +1 -0
  193. package/dist/esm/tailwind.preset.js +1492 -0
  194. package/dist/esm/tailwind.preset.js.map +1 -0
  195. package/dist/feedback.d.ts +21 -0
  196. package/dist/file-upload.d.ts +45 -0
  197. package/dist/filter.d.ts +82 -0
  198. package/dist/generating-star.d.ts +15 -0
  199. package/dist/icon.d.ts +26 -0
  200. package/dist/index.d.ts +1378 -0
  201. package/dist/input.d.ts +11 -0
  202. package/dist/item.d.ts +39 -0
  203. package/dist/label.d.ts +8 -0
  204. package/dist/logo.d.ts +14 -0
  205. package/dist/markdown.d.ts +55 -0
  206. package/dist/metric-card.d.ts +21 -0
  207. package/dist/popover.d.ts +12 -0
  208. package/dist/progress.d.ts +8 -0
  209. package/dist/scroll-area.d.ts +8 -0
  210. package/dist/select.d.ts +20 -0
  211. package/dist/separator.d.ts +6 -0
  212. package/dist/sheet.d.ts +39 -0
  213. package/dist/spinner.d.ts +5 -0
  214. package/dist/stats.html +4949 -0
  215. package/dist/switch.d.ts +6 -0
  216. package/dist/table.d.ts +19 -0
  217. package/dist/tailwind.preset.d.ts +1 -0
  218. package/dist/textarea.d.ts +9 -0
  219. package/dist/tooltip.d.ts +18 -0
  220. package/dist/trend-value.d.ts +19 -0
  221. package/dist/two-level-combobox.d.ts +24 -0
  222. package/package.json +2 -2
@@ -0,0 +1,88 @@
1
+ import * as React from 'react';
2
+ import * as DialogPrimitive from '@radix-ui/react-dialog';
3
+ import { c as cn } from '../../chunks/utils.Cwtlq8dh.js';
4
+ import { X } from '@phosphor-icons/react';
5
+
6
+ const Dialog = DialogPrimitive.Root;
7
+ const DialogTrigger = DialogPrimitive.Trigger;
8
+ const DialogPortal = DialogPrimitive.Portal;
9
+ const DialogClose = DialogPrimitive.Close;
10
+ const DialogOverlay = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React.createElement(
11
+ DialogPrimitive.Overlay,
12
+ {
13
+ ref,
14
+ className: cn(
15
+ "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
16
+ className
17
+ ),
18
+ ...props
19
+ }
20
+ ));
21
+ DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
22
+ const DialogContent = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ React.createElement(DialogPortal, null, /* @__PURE__ */ React.createElement(DialogOverlay, null), /* @__PURE__ */ React.createElement(
23
+ DialogPrimitive.Content,
24
+ {
25
+ ref,
26
+ className: cn(
27
+ "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-surface p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
28
+ "border-border shadow-[2px_2px_0_0_#0A0A0D] !transition-shadow duration-300 ease-in-out dark:shadow-[2px_2px_0_0_#FFF] dark:active:shadow-[inset_2px_2px_0_0_#FFF]",
29
+ className
30
+ ),
31
+ ...props
32
+ },
33
+ children,
34
+ /* @__PURE__ */ React.createElement(DialogPrimitive.Close, { className: "absolute right-4 top-4 opacity-70 ring-offset-background hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\n bg-surface text-dark-900 rounded border border-border shadow-[2px_2px_0_0_#0A0A0D] hover:shadow-none !transition-shadow duration-300 ease-in-out active:shadow-[inset_2px_2px_0_0_#262626] dark:shadow-[2px_2px_0_0_#FFF] dark:hover:shadow-none dark:active:shadow-[inset_2px_2px_0_0_#FFF] p-[6px]\n " }, /* @__PURE__ */ React.createElement(X, { size: 20, weight: "bold" }), /* @__PURE__ */ React.createElement("span", { className: "sr-only" }, "Close"))
35
+ )));
36
+ DialogContent.displayName = DialogPrimitive.Content.displayName;
37
+ const DialogHeader = ({
38
+ className,
39
+ ...props
40
+ }) => /* @__PURE__ */ React.createElement(
41
+ "div",
42
+ {
43
+ className: cn(
44
+ "flex flex-col space-y-1.5 text-center sm:text-left",
45
+ className
46
+ ),
47
+ ...props
48
+ }
49
+ );
50
+ DialogHeader.displayName = "DialogHeader";
51
+ const DialogFooter = ({
52
+ className,
53
+ ...props
54
+ }) => /* @__PURE__ */ React.createElement(
55
+ "div",
56
+ {
57
+ className: cn(
58
+ "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
59
+ className
60
+ ),
61
+ ...props
62
+ }
63
+ );
64
+ DialogFooter.displayName = "DialogFooter";
65
+ const DialogTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React.createElement(
66
+ DialogPrimitive.Title,
67
+ {
68
+ ref,
69
+ className: cn(
70
+ "text-lg font-semibold leading-none tracking-tight",
71
+ className
72
+ ),
73
+ ...props
74
+ }
75
+ ));
76
+ DialogTitle.displayName = DialogPrimitive.Title.displayName;
77
+ const DialogDescription = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React.createElement(
78
+ DialogPrimitive.Description,
79
+ {
80
+ ref,
81
+ className: cn("text-sm text-muted-foreground", className),
82
+ ...props
83
+ }
84
+ ));
85
+ DialogDescription.displayName = DialogPrimitive.Description.displayName;
86
+
87
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
88
+ //# sourceMappingURL=dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.js","sources":["../../../../src/components/ui/dialog.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { cn } from \"@/lib/utils\"\nimport { X as Cross2Icon } from \"@phosphor-icons/react\"\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-surface p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n \"border-border shadow-[2px_2px_0_0_#0A0A0D] !transition-shadow duration-300 ease-in-out dark:shadow-[2px_2px_0_0_#FFF] dark:active:shadow-[inset_2px_2px_0_0_#FFF]\",\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 opacity-70 ring-offset-background hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\n bg-surface text-dark-900 rounded border border-border shadow-[2px_2px_0_0_#0A0A0D] hover:shadow-none !transition-shadow duration-300 ease-in-out active:shadow-[inset_2px_2px_0_0_#262626] dark:shadow-[2px_2px_0_0_#FFF] dark:hover:shadow-none dark:active:shadow-[inset_2px_2px_0_0_#FFF] p-[6px]\n \">\n <Cross2Icon size={20} weight=\"bold\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nDialogFooter.displayName = \"DialogFooter\"\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n}\n"],"names":["Cross2Icon"],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import * as React from 'react';
2
+ import { S as Slot } from '../../chunks/index.BqibIWDw.js';
3
+ import { cva } from 'class-variance-authority';
4
+ import { c as cn } from '../../chunks/utils.Cwtlq8dh.js';
5
+
6
+ const divButtonVariants = cva(
7
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-[3px] focus-visible:border-ring focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
8
+ {
9
+ variants: {
10
+ variant: {
11
+ default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
12
+ destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
13
+ outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
14
+ secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
15
+ ghost: "hover:bg-accent hover:text-accent-foreground",
16
+ link: "text-primary underline-offset-4 hover:underline",
17
+ dark: "bg-dark-700 text-white shadow hover:bg-dark-800 dark:bg-primary dark:text-primary-foreground dark:hover:bg-primary/80 focus-visible:bg-dark-800 dark:focus-visible:bg-primary/80",
18
+ shadow: "bg-primary text-primary rounded border border-border shadow-[2px_2px_0_0_#0A0A0D] hover:shadow-none !transition-shadow duration-300 ease-in-out active:shadow-[inset_2px_2px_0_0_#262626] dark:shadow-[2px_2px_0_0_#FFF] dark:hover:shadow-none dark:active:shadow-[inset_2px_2px_0_0_#FFF]",
19
+ shadowSurface: "bg-surface text-dark-900 rounded border border-border shadow-[2px_2px_0_0_#0A0A0D] hover:shadow-none !transition-shadow duration-300 ease-in-out active:shadow-[inset_2px_2px_0_0_#262626] dark:shadow-[2px_2px_0_0_#FFF] dark:hover:shadow-none dark:active:shadow-[inset_2px_2px_0_0_#FFF]"
20
+ },
21
+ size: {
22
+ default: "h-9 px-4 py-2",
23
+ sm: "h-8 rounded-md px-3 text-sm",
24
+ lg: "h-10 rounded-md px-8",
25
+ icon: "h-9 w-9 [&_svg]:size-5"
26
+ }
27
+ },
28
+ defaultVariants: {
29
+ variant: "default",
30
+ size: "default"
31
+ }
32
+ }
33
+ );
34
+ const DivButton = React.forwardRef(
35
+ ({ className, variant, size, asChild = false, onClick, onKeyDown, ...props }, ref) => {
36
+ const handleKeyDown = (event) => {
37
+ if (event.key === "Enter" || event.key === " ") {
38
+ event.preventDefault();
39
+ event.currentTarget.click();
40
+ }
41
+ onKeyDown?.(event);
42
+ };
43
+ const Comp = asChild ? Slot : "div";
44
+ return /* @__PURE__ */ React.createElement(
45
+ Comp,
46
+ {
47
+ className: cn(divButtonVariants({ variant, size, className })),
48
+ ref,
49
+ role: "button",
50
+ tabIndex: 0,
51
+ onClick,
52
+ onKeyDown: handleKeyDown,
53
+ ...props
54
+ }
55
+ );
56
+ }
57
+ );
58
+ DivButton.displayName = "DivButton";
59
+
60
+ export { DivButton, divButtonVariants };
61
+ //# sourceMappingURL=div-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"div-button.js","sources":["../../../../src/components/ui/div-button.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst divButtonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-[3px] focus-visible:border-ring focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n dark: 'bg-dark-700 text-white shadow hover:bg-dark-800 dark:bg-primary dark:text-primary-foreground dark:hover:bg-primary/80 focus-visible:bg-dark-800 dark:focus-visible:bg-primary/80',\n shadow:\n \"bg-primary text-primary rounded border border-border shadow-[2px_2px_0_0_#0A0A0D] hover:shadow-none !transition-shadow duration-300 ease-in-out active:shadow-[inset_2px_2px_0_0_#262626] dark:shadow-[2px_2px_0_0_#FFF] dark:hover:shadow-none dark:active:shadow-[inset_2px_2px_0_0_#FFF]\",\n shadowSurface:\n \"bg-surface text-dark-900 rounded border border-border shadow-[2px_2px_0_0_#0A0A0D] hover:shadow-none !transition-shadow duration-300 ease-in-out active:shadow-[inset_2px_2px_0_0_#262626] dark:shadow-[2px_2px_0_0_#FFF] dark:hover:shadow-none dark:active:shadow-[inset_2px_2px_0_0_#FFF]\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 rounded-md px-3 text-sm\",\n lg: \"h-10 rounded-md px-8\",\n icon: \"h-9 w-9 [&_svg]:size-5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface DivButtonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof divButtonVariants> {\n asChild?: boolean\n}\n\nconst DivButton = React.forwardRef<HTMLDivElement, DivButtonProps>(\n ({ className, variant, size, asChild = false, onClick, onKeyDown, ...props }, ref) => {\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n // Handle Enter and Space key activation\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n // Dispatch a real click event so Radix components work properly\n event.currentTarget.click()\n }\n // Call any existing onKeyDown handler\n onKeyDown?.(event)\n }\n\n const Comp = asChild ? Slot : \"div\"\n return (\n <Comp\n className={cn(divButtonVariants({ variant, size, className }))}\n ref={ref}\n role=\"button\"\n tabIndex={0}\n onClick={onClick}\n onKeyDown={handleKeyDown}\n {...props}\n />\n )\n }\n)\nDivButton.displayName = \"DivButton\"\n\nexport { DivButton, divButtonVariants }\n"],"names":[],"mappings":";;;;;AAMA,MAAM,iBAAA,GAAoB,GAAA;AAAA,EACxB,wUAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EACE,+DAAA;AAAA,QACF,WAAA,EACE,8EAAA;AAAA,QACF,OAAA,EACE,0FAAA;AAAA,QACF,SAAA,EACE,wEAAA;AAAA,QACF,KAAA,EAAO,8CAAA;AAAA,QACP,IAAA,EAAM,iDAAA;AAAA,QACN,IAAA,EAAM,kLAAA;AAAA,QACN,MAAA,EACE,6RAAA;AAAA,QACF,aAAA,EACE;AAAA,OACJ;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,OAAA,EAAS,eAAA;AAAA,QACT,EAAA,EAAI,6BAAA;AAAA,QACJ,EAAA,EAAI,sBAAA;AAAA,QACJ,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAQA,MAAM,YAAY,KAAA,CAAM,UAAA;AAAA,EACtB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,IAAA,EAAM,OAAA,GAAU,KAAA,EAAO,OAAA,EAAS,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACpF,IAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAA+C;AAEpE,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,OAAA,IAAW,KAAA,CAAM,QAAQ,GAAA,EAAK;AAC9C,QAAA,KAAA,CAAM,cAAA,EAAe;AAErB,QAAA,KAAA,CAAM,cAAc,KAAA,EAAM;AAAA,MAC5B;AAEA,MAAA,SAAA,GAAY,KAAK,CAAA;AAAA,IACnB,CAAA;AAEA,IAAA,MAAM,IAAA,GAAO,UAAU,IAAA,GAAO,KAAA;AAC9B,IAAA,uBACE,KAAA,CAAA,aAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,GAAG,iBAAA,CAAkB,EAAE,SAAS,IAAA,EAAM,SAAA,EAAW,CAAC,CAAA;AAAA,QAC7D,GAAA;AAAA,QACA,IAAA,EAAK,QAAA;AAAA,QACL,QAAA,EAAU,CAAA;AAAA,QACV,OAAA;AAAA,QACA,SAAA,EAAW,aAAA;AAAA,QACV,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,SAAA,CAAU,WAAA,GAAc,WAAA;;;;"}
@@ -0,0 +1,132 @@
1
+ import * as React from 'react';
2
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
3
+ import { c as cn } from '../../chunks/utils.Cwtlq8dh.js';
4
+ import { ChevronRightIcon, CheckIcon, DotFilledIcon } from '@radix-ui/react-icons';
5
+
6
+ const DropdownMenu = DropdownMenuPrimitive.Root;
7
+ const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
8
+ const DropdownMenuGroup = DropdownMenuPrimitive.Group;
9
+ const DropdownMenuPortal = DropdownMenuPrimitive.Portal;
10
+ const DropdownMenuSub = DropdownMenuPrimitive.Sub;
11
+ const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
12
+ const DropdownMenuSubTrigger = React.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ React.createElement(
13
+ DropdownMenuPrimitive.SubTrigger,
14
+ {
15
+ ref,
16
+ className: cn(
17
+ "flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm !outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
18
+ inset && "pl-8",
19
+ className
20
+ ),
21
+ ...props
22
+ },
23
+ children,
24
+ /* @__PURE__ */ React.createElement(ChevronRightIcon, { className: "ml-auto" })
25
+ ));
26
+ DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
27
+ const DropdownMenuSubContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React.createElement(
28
+ DropdownMenuPrimitive.SubContent,
29
+ {
30
+ ref,
31
+ className: cn(
32
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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",
33
+ className
34
+ ),
35
+ ...props
36
+ }
37
+ ));
38
+ DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
39
+ const DropdownMenuContent = React.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ React.createElement(DropdownMenuPrimitive.Portal, null, /* @__PURE__ */ React.createElement(
40
+ DropdownMenuPrimitive.Content,
41
+ {
42
+ ref,
43
+ sideOffset,
44
+ className: cn(
45
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border border-foreground bg-popover p-1 text-popover-foreground shadow-[4px_4px_0_0_#171717] dark:shadow-[4px_4px_0_0_#fff]",
46
+ "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",
47
+ className
48
+ ),
49
+ ...props
50
+ }
51
+ )));
52
+ DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
53
+ const DropdownMenuItem = React.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ React.createElement(
54
+ DropdownMenuPrimitive.Item,
55
+ {
56
+ ref,
57
+ className: cn(
58
+ "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm !outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-5 [&>svg]:shrink-0",
59
+ inset && "pl-8",
60
+ className
61
+ ),
62
+ ...props
63
+ }
64
+ ));
65
+ DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
66
+ const DropdownMenuCheckboxItem = React.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ React.createElement(
67
+ DropdownMenuPrimitive.CheckboxItem,
68
+ {
69
+ ref,
70
+ className: cn(
71
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm !outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
72
+ className
73
+ ),
74
+ checked,
75
+ ...props
76
+ },
77
+ /* @__PURE__ */ React.createElement("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center" }, /* @__PURE__ */ React.createElement(DropdownMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React.createElement(CheckIcon, { className: "h-4 w-4" }))),
78
+ children
79
+ ));
80
+ DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
81
+ const DropdownMenuRadioItem = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ React.createElement(
82
+ DropdownMenuPrimitive.RadioItem,
83
+ {
84
+ ref,
85
+ className: cn(
86
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm !outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
87
+ className
88
+ ),
89
+ ...props
90
+ },
91
+ /* @__PURE__ */ React.createElement("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center" }, /* @__PURE__ */ React.createElement(DropdownMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React.createElement(DotFilledIcon, { className: "h-2 w-2 fill-current" }))),
92
+ children
93
+ ));
94
+ DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
95
+ const DropdownMenuLabel = React.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ React.createElement(
96
+ DropdownMenuPrimitive.Label,
97
+ {
98
+ ref,
99
+ className: cn(
100
+ "px-2 py-1.5 text-sm font-semibold",
101
+ inset && "pl-8",
102
+ className
103
+ ),
104
+ ...props
105
+ }
106
+ ));
107
+ DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
108
+ const DropdownMenuSeparator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React.createElement(
109
+ DropdownMenuPrimitive.Separator,
110
+ {
111
+ ref,
112
+ className: cn("-mx-1 my-1 h-px bg-muted", className),
113
+ ...props
114
+ }
115
+ ));
116
+ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
117
+ const DropdownMenuShortcut = ({
118
+ className,
119
+ ...props
120
+ }) => {
121
+ return /* @__PURE__ */ React.createElement(
122
+ "span",
123
+ {
124
+ className: cn("ml-auto text-xs tracking-widest opacity-60", className),
125
+ ...props
126
+ }
127
+ );
128
+ };
129
+ DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
130
+
131
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };
132
+ //# sourceMappingURL=dropdown-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu.js","sources":["../../../../src/components/ui/dropdown-menu.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\nimport { cn } from \"@/lib/utils\"\nimport { CheckIcon, ChevronRightIcon, DotFilledIcon } from \"@radix-ui/react-icons\"\n\nconst DropdownMenu = DropdownMenuPrimitive.Root\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm !outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n))\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border border-foreground bg-popover p-1 text-popover-foreground shadow-[4px_4px_0_0_#171717] dark:shadow-[4px_4px_0_0_#fff]\",\n \"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\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n))\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm !outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-5 [&>svg]:shrink-0\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm !outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n))\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm !outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <DotFilledIcon className=\"h-2 w-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n))\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n))\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n />\n )\n}\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\"\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import React__default, { forwardRef, lazy, Suspense, memo } from 'react';
2
+
3
+ const PhosphorIcon = forwardRef(({ iconName, ...props }, ref) => {
4
+ const IconComponent = lazy(
5
+ () => import('@phosphor-icons/react').then((module) => {
6
+ const icons = module;
7
+ return { default: icons[iconName] };
8
+ })
9
+ );
10
+ return /* @__PURE__ */ React__default.createElement(Suspense, { fallback: /* @__PURE__ */ React__default.createElement(React__default.Fragment, null) }, /* @__PURE__ */ React__default.createElement(IconComponent, { ...props, ref }));
11
+ });
12
+ PhosphorIcon.displayName = "PhosphorIcon";
13
+ const MemoizedIcon = memo(PhosphorIcon);
14
+
15
+ export { PhosphorIcon as Icon, MemoizedIcon };
16
+ //# sourceMappingURL=icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.js","sources":["../../../../src/components/ui/icon.tsx"],"sourcesContent":["import React, { Suspense, lazy, memo, forwardRef } from 'react';\nimport { type Icon, type IconProps } from '@phosphor-icons/react';\n\ninterface PhosphorIconProps extends IconProps {\n iconName: string;\n}\n\n/**\n * A flexible icon component that supports both Phosphor icons and image-based icons.\n *\n * The component uses dynamic imports to lazy load Phosphor icons, reducing the initial\n * bundle size by only loading icons when they're needed.\n *\n * @component\n * @example\n * // Using a Phosphor icon\n * <Icon iconName=\"House\" size={24} />\n *\n * // Using an image icon\n * <Icon iconPath=\"/path/to/icon.svg\" />\n */\n\nconst PhosphorIcon = forwardRef<SVGSVGElement, PhosphorIconProps>(({ iconName, ...props }, ref) => {\n const IconComponent = lazy(() =>\n import('@phosphor-icons/react').then((module) => {\n const icons = module as unknown as Record<string, Icon>;\n\n return { default: icons[iconName] };\n }),\n );\n\n return (\n <Suspense fallback={<></>}>\n <IconComponent {...props} ref={ref} />\n </Suspense>\n );\n});\n\nPhosphorIcon.displayName = 'PhosphorIcon';\n\nconst Icon = ({ iconPath }: { iconPath: string }) => {\n return <img src={iconPath} alt=\"icon\" />;\n};\n\n// Export a memoized version of the PhosphorIcon component\nexport const MemoizedIcon = memo(PhosphorIcon);\nexport { PhosphorIcon as Icon };\n"],"names":["React"],"mappings":";;AAsBA,MAAM,YAAA,GAAe,WAA6C,CAAC,EAAE,UAAU,GAAG,KAAA,IAAS,GAAA,KAAQ;AACjG,EAAA,MAAM,aAAA,GAAgB,IAAA;AAAA,IAAK,MACzB,OAAO,uBAAuB,CAAA,CAAE,IAAA,CAAK,CAAC,MAAA,KAAW;AAC/C,MAAA,MAAM,KAAA,GAAQ,MAAA;AAEd,MAAA,OAAO,EAAE,OAAA,EAAS,KAAA,CAAM,QAAQ,CAAA,EAAE;AAAA,IACpC,CAAC;AAAA,GACH;AAEA,EAAA,uBACEA,cAAA,CAAA,aAAA,CAAC,QAAA,EAAA,EAAS,QAAA,kBAAUA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAE,CAAA,EAAA,+CACnB,aAAA,EAAA,EAAe,GAAG,KAAA,EAAO,GAAA,EAAU,CACtC,CAAA;AAEJ,CAAC;AAED,YAAA,CAAa,WAAA,GAAc,cAAA;AAOpB,MAAM,YAAA,GAAe,KAAK,YAAY;;;;"}
@@ -0,0 +1,29 @@
1
+ import React__default from 'react';
2
+ import { c as cn } from '../../chunks/utils.Cwtlq8dh.js';
3
+
4
+ const Input = React__default.forwardRef(
5
+ ({ className, type, startIcon, endIcon, ...props }, ref) => {
6
+ const StartIcon = startIcon;
7
+ const EndIcon = endIcon;
8
+ return /* @__PURE__ */ React__default.createElement("div", { className: "w-full relative" }, StartIcon && /* @__PURE__ */ React__default.createElement("div", { className: "absolute left-1.5 top-1/2 transform -translate-y-1/2" }, /* @__PURE__ */ React__default.createElement(StartIcon, { size: 18, className: "text-muted-foreground" })), /* @__PURE__ */ React__default.createElement(
9
+ "input",
10
+ {
11
+ type,
12
+ className: cn(
13
+ "flex h-12 w-full rounded-md border border-border bg-transparent py-3 text-base transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
14
+ startIcon && "pl-8 pr-4",
15
+ endIcon && "pl-4 pr-8",
16
+ startIcon && endIcon && "px-8",
17
+ !startIcon && !endIcon && "px-4",
18
+ className
19
+ ),
20
+ ref,
21
+ ...props
22
+ }
23
+ ), EndIcon && /* @__PURE__ */ React__default.createElement("div", { className: "absolute right-3 top-1/2 transform -translate-y-1/2" }, /* @__PURE__ */ React__default.createElement(EndIcon, { className: "text-muted-foreground", size: 18 })));
24
+ }
25
+ );
26
+ Input.displayName = "Input";
27
+
28
+ export { Input };
29
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sources":["../../../../src/components/ui/input.tsx"],"sourcesContent":["import React from 'react';\nimport { type Icon } from '@phosphor-icons/react';\n\nimport { cn } from '@/lib/utils';\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n startIcon?: Icon;\n endIcon?: Icon;\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, startIcon, endIcon, ...props }, ref) => {\n const StartIcon = startIcon;\n const EndIcon = endIcon;\n\n return (\n <div className=\"w-full relative\">\n {StartIcon && (\n <div className=\"absolute left-1.5 top-1/2 transform -translate-y-1/2\">\n <StartIcon size={18} className=\"text-muted-foreground\" />\n </div>\n )}\n <input\n type={type}\n className={cn(\n 'flex h-12 w-full rounded-md border border-border bg-transparent py-3 text-base transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n startIcon && 'pl-8 pr-4',\n endIcon && 'pl-4 pr-8',\n startIcon && endIcon && 'px-8',\n !startIcon && !endIcon && 'px-4',\n className,\n )}\n ref={ref}\n {...props}\n />\n {EndIcon && (\n <div className=\"absolute right-3 top-1/2 transform -translate-y-1/2\">\n <EndIcon className=\"text-muted-foreground\" size={18} />\n </div>\n )}\n </div>\n );\n },\n);\nInput.displayName = 'Input';\n\nexport { Input };\n"],"names":["React"],"mappings":";;;AAUA,MAAM,QAAQA,cAAA,CAAM,UAAA;AAAA,EAClB,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,WAAW,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC1D,IAAA,MAAM,SAAA,GAAY,SAAA;AAClB,IAAA,MAAM,OAAA,GAAU,OAAA;AAEhB,IAAA,oDACG,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EAAA,EACZ,SAAA,iDACE,KAAA,EAAA,EAAI,SAAA,EAAU,sDAAA,EAAA,kBACbA,cAAA,CAAA,aAAA,CAAC,aAAU,IAAA,EAAM,EAAA,EAAI,SAAA,EAAU,uBAAA,EAAwB,CACzD,CAAA,kBAEFA,cAAA,CAAA,aAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,IAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,4VAAA;AAAA,UACA,SAAA,IAAa,WAAA;AAAA,UACb,OAAA,IAAW,WAAA;AAAA,UACX,aAAa,OAAA,IAAW,MAAA;AAAA,UACxB,CAAC,SAAA,IAAa,CAAC,OAAA,IAAW,MAAA;AAAA,UAC1B;AAAA,SACF;AAAA,QACA,GAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN,EACC,OAAA,oBACCA,cAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qDAAA,EAAA,kBACbA,cAAA,CAAA,aAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAU,uBAAA,EAAwB,IAAA,EAAM,EAAA,EAAI,CACvD,CAEJ,CAAA;AAAA,EAEJ;AACF;AACA,KAAA,CAAM,WAAA,GAAc,OAAA;;;;"}
@@ -0,0 +1,179 @@
1
+ import * as React from 'react';
2
+ import { S as Slot } from '../../chunks/index.BqibIWDw.js';
3
+ import { cva } from 'class-variance-authority';
4
+ import { c as cn } from '../../chunks/utils.Cwtlq8dh.js';
5
+ import { Separator } from './separator.js';
6
+
7
+ function ItemGroup({ className, ...props }) {
8
+ return /* @__PURE__ */ React.createElement(
9
+ "div",
10
+ {
11
+ role: "list",
12
+ "data-slot": "item-group",
13
+ className: cn("group/item-group flex flex-col", className),
14
+ ...props
15
+ }
16
+ );
17
+ }
18
+ function ItemSeparator({
19
+ className,
20
+ ...props
21
+ }) {
22
+ return /* @__PURE__ */ React.createElement(
23
+ Separator,
24
+ {
25
+ "data-slot": "item-separator",
26
+ orientation: "horizontal",
27
+ className: cn("my-0", className),
28
+ ...props
29
+ }
30
+ );
31
+ }
32
+ const itemVariants = cva(
33
+ "group/item [a]:hover:bg-accent/50 focus-visible:border-ring focus-visible:ring-ring/50 [a]:transition-colors flex flex-wrap items-center rounded-md border border-transparent text-sm outline-none transition-colors duration-100 focus-visible:ring-[3px]",
34
+ {
35
+ variants: {
36
+ variant: {
37
+ default: "bg-transparent",
38
+ outline: "border-border",
39
+ muted: "bg-muted/50"
40
+ },
41
+ size: {
42
+ default: "gap-4 p-4 ",
43
+ sm: "gap-2.5 px-4 py-3"
44
+ }
45
+ },
46
+ defaultVariants: {
47
+ variant: "default",
48
+ size: "default"
49
+ }
50
+ }
51
+ );
52
+ function Item({
53
+ className,
54
+ variant = "default",
55
+ size = "default",
56
+ asChild = false,
57
+ ...props
58
+ }) {
59
+ const Comp = asChild ? Slot : "div";
60
+ return /* @__PURE__ */ React.createElement(
61
+ Comp,
62
+ {
63
+ "data-slot": "item",
64
+ "data-variant": variant,
65
+ "data-size": size,
66
+ className: cn(itemVariants({ variant, size, className })),
67
+ ...props
68
+ }
69
+ );
70
+ }
71
+ const itemMediaVariants = cva(
72
+ "flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:translate-y-0.5 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none",
73
+ {
74
+ variants: {
75
+ variant: {
76
+ default: "bg-transparent",
77
+ icon: "bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4",
78
+ image: "size-10 overflow-hidden rounded-sm [&_img]:size-full [&_img]:object-cover"
79
+ }
80
+ },
81
+ defaultVariants: {
82
+ variant: "default"
83
+ }
84
+ }
85
+ );
86
+ function ItemMedia({
87
+ className,
88
+ variant = "default",
89
+ ...props
90
+ }) {
91
+ return /* @__PURE__ */ React.createElement(
92
+ "div",
93
+ {
94
+ "data-slot": "item-media",
95
+ "data-variant": variant,
96
+ className: cn(itemMediaVariants({ variant, className })),
97
+ ...props
98
+ }
99
+ );
100
+ }
101
+ function ItemContent({ className, ...props }) {
102
+ return /* @__PURE__ */ React.createElement(
103
+ "div",
104
+ {
105
+ "data-slot": "item-content",
106
+ className: cn(
107
+ "flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none",
108
+ className
109
+ ),
110
+ ...props
111
+ }
112
+ );
113
+ }
114
+ function ItemTitle({ className, ...props }) {
115
+ return /* @__PURE__ */ React.createElement(
116
+ "div",
117
+ {
118
+ "data-slot": "item-title",
119
+ className: cn(
120
+ "flex w-fit items-center gap-2 text-sm font-medium leading-snug",
121
+ className
122
+ ),
123
+ ...props
124
+ }
125
+ );
126
+ }
127
+ function ItemDescription({ className, ...props }) {
128
+ return /* @__PURE__ */ React.createElement(
129
+ "span",
130
+ {
131
+ "data-slot": "item-description",
132
+ className: cn(
133
+ "text-muted-foreground line-clamp-2 text-balance text-sm font-normal leading-normal",
134
+ "[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4 ",
135
+ className
136
+ ),
137
+ ...props
138
+ }
139
+ );
140
+ }
141
+ function ItemActions({ className, ...props }) {
142
+ return /* @__PURE__ */ React.createElement(
143
+ "div",
144
+ {
145
+ "data-slot": "item-actions",
146
+ className: cn("flex items-center gap-2", className),
147
+ ...props
148
+ }
149
+ );
150
+ }
151
+ function ItemHeader({ className, ...props }) {
152
+ return /* @__PURE__ */ React.createElement(
153
+ "div",
154
+ {
155
+ "data-slot": "item-header",
156
+ className: cn(
157
+ "flex basis-full items-center justify-between gap-2",
158
+ className
159
+ ),
160
+ ...props
161
+ }
162
+ );
163
+ }
164
+ function ItemFooter({ className, ...props }) {
165
+ return /* @__PURE__ */ React.createElement(
166
+ "div",
167
+ {
168
+ "data-slot": "item-footer",
169
+ className: cn(
170
+ "flex basis-full items-center justify-between gap-2",
171
+ className
172
+ ),
173
+ ...props
174
+ }
175
+ );
176
+ }
177
+
178
+ export { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle };
179
+ //# sourceMappingURL=item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item.js","sources":["../../../../src/components/ui/item.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Separator } from \"@/components/ui/separator\"\n\nfunction ItemGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n role=\"list\"\n data-slot=\"item-group\"\n className={cn(\"group/item-group flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction ItemSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"item-separator\"\n orientation=\"horizontal\"\n className={cn(\"my-0\", className)}\n {...props}\n />\n )\n}\n\nconst itemVariants = cva(\n \"group/item [a]:hover:bg-accent/50 focus-visible:border-ring focus-visible:ring-ring/50 [a]:transition-colors flex flex-wrap items-center rounded-md border border-transparent text-sm outline-none transition-colors duration-100 focus-visible:ring-[3px]\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border-border\",\n muted: \"bg-muted/50\",\n },\n size: {\n default: \"gap-4 p-4 \",\n sm: \"gap-2.5 px-4 py-3\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Item({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> &\n VariantProps<typeof itemVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"div\"\n return (\n <Comp\n data-slot=\"item\"\n data-variant={variant}\n data-size={size}\n className={cn(itemVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nconst itemMediaVariants = cva(\n \"flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:translate-y-0.5 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4\",\n image:\n \"size-10 overflow-hidden rounded-sm [&_img]:size-full [&_img]:object-cover\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction ItemMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof itemMediaVariants>) {\n return (\n <div\n data-slot=\"item-media\"\n data-variant={variant}\n className={cn(itemMediaVariants({ variant, className }))}\n {...props}\n />\n )\n}\n\nfunction ItemContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-content\"\n className={cn(\n \"flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-title\"\n className={cn(\n \"flex w-fit items-center gap-2 text-sm font-medium leading-snug\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <span\n data-slot=\"item-description\"\n className={cn(\n \"text-muted-foreground line-clamp-2 text-balance text-sm font-normal leading-normal\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4 \",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-actions\"\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction ItemHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-header\"\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-footer\"\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Item,\n ItemMedia,\n ItemContent,\n ItemActions,\n ItemGroup,\n ItemSeparator,\n ItemTitle,\n ItemDescription,\n ItemHeader,\n ItemFooter,\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ import * as LabelPrimitive from '@radix-ui/react-label';
3
+ import { cva } from 'class-variance-authority';
4
+ import { c as cn } from '../../chunks/utils.Cwtlq8dh.js';
5
+
6
+ const labelVariants = cva(
7
+ "font-bold leading-6 peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
8
+ );
9
+ const Label = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React.createElement(
10
+ LabelPrimitive.Root,
11
+ {
12
+ ref,
13
+ className: cn(labelVariants(), className),
14
+ ...props
15
+ }
16
+ ));
17
+ Label.displayName = LabelPrimitive.Root.displayName;
18
+
19
+ export { Label };
20
+ //# sourceMappingURL=label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.js","sources":["../../../../src/components/ui/label.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst labelVariants = cva(\n \"font-bold leading-6 peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n)\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n))\nLabel.displayName = LabelPrimitive.Root.displayName\n\nexport { Label }\n"],"names":[],"mappings":";;;;;AAMA,MAAM,aAAA,GAAgB,GAAA;AAAA,EACpB;AACF,CAAA;AAEA,MAAM,KAAA,GAAQ,MAAM,UAAA,CAIlB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B,KAAA,CAAA,aAAA;AAAA,EAAC,cAAA,CAAe,IAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,aAAA,EAAc,EAAG,SAAS,CAAA;AAAA,IACvC,GAAG;AAAA;AACN,CACD;AACD,KAAA,CAAM,WAAA,GAAc,eAAe,IAAA,CAAK,WAAA;;;;"}