@konopskidev/ui 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (339) hide show
  1. package/README.md +102 -13
  2. package/dist/chunks/rolldown-runtime-CmQyd0Gu.cjs +27 -0
  3. package/dist/components/ui/accordion.cjs +62 -0
  4. package/dist/components/ui/accordion.cjs.map +1 -0
  5. package/dist/components/ui/accordion.d.cts +7 -0
  6. package/dist/components/ui/accordion.d.ts.map +1 -1
  7. package/dist/components/ui/accordion.js +9 -8
  8. package/dist/components/ui/accordion.js.map +1 -1
  9. package/dist/components/ui/alert-dialog.cjs +116 -0
  10. package/dist/components/ui/alert-dialog.cjs.map +1 -0
  11. package/dist/components/ui/alert-dialog.d.cts +18 -0
  12. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  13. package/dist/components/ui/alert-dialog.js +13 -12
  14. package/dist/components/ui/alert-dialog.js.map +1 -1
  15. package/dist/components/ui/alert.cjs +49 -0
  16. package/dist/components/ui/alert.cjs.map +1 -0
  17. package/dist/components/ui/alert.d.cts +10 -0
  18. package/dist/components/ui/aspect-ratio.cjs +14 -0
  19. package/dist/components/ui/aspect-ratio.cjs.map +1 -0
  20. package/dist/components/ui/aspect-ratio.d.cts +3 -0
  21. package/dist/components/ui/aspect-ratio.js +4 -5
  22. package/dist/components/ui/aspect-ratio.js.map +1 -1
  23. package/dist/components/ui/attachment.cjs +113 -0
  24. package/dist/components/ui/attachment.cjs.map +1 -0
  25. package/dist/components/ui/attachment.d.cts +24 -0
  26. package/dist/components/ui/avatar.cjs +60 -0
  27. package/dist/components/ui/avatar.cjs.map +1 -0
  28. package/dist/components/ui/avatar.d.cts +11 -0
  29. package/dist/components/ui/avatar.d.ts.map +1 -1
  30. package/dist/components/ui/avatar.js +7 -6
  31. package/dist/components/ui/avatar.js.map +1 -1
  32. package/dist/components/ui/badge.cjs +33 -0
  33. package/dist/components/ui/badge.cjs.map +1 -0
  34. package/dist/components/ui/badge.d.cts +9 -0
  35. package/dist/components/ui/breadcrumb.cjs +81 -0
  36. package/dist/components/ui/breadcrumb.cjs.map +1 -0
  37. package/dist/components/ui/breadcrumb.d.cts +11 -0
  38. package/dist/components/ui/bubble.cjs +79 -0
  39. package/dist/components/ui/bubble.cjs.map +1 -0
  40. package/dist/components/ui/bubble.d.cts +17 -0
  41. package/dist/components/ui/button-group.cjs +43 -0
  42. package/dist/components/ui/button-group.cjs.map +1 -0
  43. package/dist/components/ui/button-group.d.cts +11 -0
  44. package/dist/components/ui/button.cjs +64 -0
  45. package/dist/components/ui/button.cjs.map +1 -0
  46. package/dist/components/ui/button.d.cts +21 -0
  47. package/dist/components/ui/calendar.cjs +114 -0
  48. package/dist/components/ui/calendar.cjs.map +1 -0
  49. package/dist/components/ui/calendar.d.cts +10 -0
  50. package/dist/components/ui/calendar.js +0 -1
  51. package/dist/components/ui/calendar.js.map +1 -1
  52. package/dist/components/ui/card.cjs +80 -0
  53. package/dist/components/ui/card.cjs.map +1 -0
  54. package/dist/components/ui/card.d.cts +33 -0
  55. package/dist/components/ui/card.d.ts +7 -2
  56. package/dist/components/ui/card.d.ts.map +1 -1
  57. package/dist/components/ui/card.js.map +1 -1
  58. package/dist/components/ui/carousel.cjs +142 -0
  59. package/dist/components/ui/carousel.cjs.map +1 -0
  60. package/dist/components/ui/carousel.d.cts +28 -0
  61. package/dist/components/ui/carousel.d.ts +1 -1
  62. package/dist/components/ui/carousel.d.ts.map +1 -1
  63. package/dist/components/ui/carousel.js +1 -0
  64. package/dist/components/ui/carousel.js.map +1 -1
  65. package/dist/components/ui/chart.cjs +159 -0
  66. package/dist/components/ui/chart.cjs.map +1 -0
  67. package/dist/components/ui/chart.d.cts +44 -0
  68. package/dist/components/ui/chart.js +0 -1
  69. package/dist/components/ui/chart.js.map +1 -1
  70. package/dist/components/ui/checkbox.cjs +25 -0
  71. package/dist/components/ui/checkbox.cjs.map +1 -0
  72. package/dist/components/ui/checkbox.d.cts +4 -0
  73. package/dist/components/ui/checkbox.d.ts.map +1 -1
  74. package/dist/components/ui/checkbox.js +6 -5
  75. package/dist/components/ui/checkbox.js.map +1 -1
  76. package/dist/components/ui/code-block.cjs +134 -0
  77. package/dist/components/ui/code-block.cjs.map +1 -0
  78. package/dist/components/ui/code-block.d.cts +26 -0
  79. package/dist/components/ui/code-block.d.ts.map +1 -1
  80. package/dist/components/ui/code-block.js +1 -0
  81. package/dist/components/ui/code-block.js.map +1 -1
  82. package/dist/components/ui/collapsible.cjs +28 -0
  83. package/dist/components/ui/collapsible.cjs.map +1 -0
  84. package/dist/components/ui/collapsible.d.cts +5 -0
  85. package/dist/components/ui/collapsible.js +6 -7
  86. package/dist/components/ui/collapsible.js.map +1 -1
  87. package/dist/components/ui/combobox.cjs +193 -0
  88. package/dist/components/ui/combobox.cjs.map +1 -0
  89. package/dist/components/ui/combobox.d.cts +24 -0
  90. package/dist/components/ui/combobox.d.ts.map +1 -1
  91. package/dist/components/ui/combobox.js +22 -21
  92. package/dist/components/ui/combobox.js.map +1 -1
  93. package/dist/components/ui/command.cjs +99 -0
  94. package/dist/components/ui/command.cjs.map +1 -0
  95. package/dist/components/ui/command.d.cts +18 -0
  96. package/dist/components/ui/command.d.ts.map +1 -1
  97. package/dist/components/ui/command.js +10 -12
  98. package/dist/components/ui/command.js.map +1 -1
  99. package/dist/components/ui/context-menu.cjs +143 -0
  100. package/dist/components/ui/context-menu.cjs.map +1 -0
  101. package/dist/components/ui/context-menu.d.cts +31 -0
  102. package/dist/components/ui/context-menu.d.ts.map +1 -1
  103. package/dist/components/ui/context-menu.js +20 -19
  104. package/dist/components/ui/context-menu.js.map +1 -1
  105. package/dist/components/ui/dialog.cjs +148 -0
  106. package/dist/components/ui/dialog.cjs.map +1 -0
  107. package/dist/components/ui/dialog.d.cts +55 -0
  108. package/dist/components/ui/dialog.d.ts +41 -3
  109. package/dist/components/ui/dialog.d.ts.map +1 -1
  110. package/dist/components/ui/dialog.js +65 -26
  111. package/dist/components/ui/dialog.js.map +1 -1
  112. package/dist/components/ui/direction.cjs +19 -0
  113. package/dist/components/ui/direction.cjs.map +1 -0
  114. package/dist/components/ui/direction.d.cts +11 -0
  115. package/dist/components/ui/direction.d.ts +1 -1
  116. package/dist/components/ui/direction.d.ts.map +1 -1
  117. package/dist/components/ui/direction.js +0 -1
  118. package/dist/components/ui/direction.js.map +1 -1
  119. package/dist/components/ui/drawer.cjs +90 -0
  120. package/dist/components/ui/drawer.cjs.map +1 -0
  121. package/dist/components/ui/drawer.d.cts +13 -0
  122. package/dist/components/ui/drawer.js +11 -11
  123. package/dist/components/ui/drawer.js.map +1 -1
  124. package/dist/components/ui/dropdown-menu.cjs +146 -0
  125. package/dist/components/ui/dropdown-menu.cjs.map +1 -0
  126. package/dist/components/ui/dropdown-menu.d.cts +29 -0
  127. package/dist/components/ui/dropdown-menu.js +19 -20
  128. package/dist/components/ui/dropdown-menu.js.map +1 -1
  129. package/dist/components/ui/empty.cjs +66 -0
  130. package/dist/components/ui/empty.cjs.map +1 -0
  131. package/dist/components/ui/empty.d.cts +11 -0
  132. package/dist/components/ui/field.cjs +121 -0
  133. package/dist/components/ui/field.cjs.map +1 -0
  134. package/dist/components/ui/field.d.cts +24 -0
  135. package/dist/components/ui/field.js +0 -1
  136. package/dist/components/ui/field.js.map +1 -1
  137. package/dist/components/ui/hover-card.cjs +38 -0
  138. package/dist/components/ui/hover-card.cjs.map +1 -0
  139. package/dist/components/ui/hover-card.d.cts +6 -0
  140. package/dist/components/ui/hover-card.d.ts.map +1 -1
  141. package/dist/components/ui/hover-card.js +8 -7
  142. package/dist/components/ui/hover-card.js.map +1 -1
  143. package/dist/components/ui/input-group.cjs +87 -0
  144. package/dist/components/ui/input-group.cjs.map +1 -0
  145. package/dist/components/ui/input-group.d.cts +16 -0
  146. package/dist/components/ui/input-otp.cjs +54 -0
  147. package/dist/components/ui/input-otp.cjs.map +1 -0
  148. package/dist/components/ui/input-otp.d.cts +11 -0
  149. package/dist/components/ui/input-otp.js +0 -1
  150. package/dist/components/ui/input-otp.js.map +1 -1
  151. package/dist/components/ui/input.cjs +28 -0
  152. package/dist/components/ui/input.cjs.map +1 -0
  153. package/dist/components/ui/input.d.cts +10 -0
  154. package/dist/components/ui/item.cjs +133 -0
  155. package/dist/components/ui/item.cjs.map +1 -0
  156. package/dist/components/ui/item.d.cts +23 -0
  157. package/dist/components/ui/kbd.cjs +22 -0
  158. package/dist/components/ui/kbd.cjs.map +1 -0
  159. package/dist/components/ui/kbd.d.cts +3 -0
  160. package/dist/components/ui/label.cjs +19 -0
  161. package/dist/components/ui/label.cjs.map +1 -0
  162. package/dist/components/ui/label.d.cts +4 -0
  163. package/dist/components/ui/label.d.ts.map +1 -1
  164. package/dist/components/ui/label.js +5 -4
  165. package/dist/components/ui/label.js.map +1 -1
  166. package/dist/components/ui/marker.cjs +46 -0
  167. package/dist/components/ui/marker.cjs.map +1 -0
  168. package/dist/components/ui/marker.d.cts +11 -0
  169. package/dist/components/ui/menubar.cjs +154 -0
  170. package/dist/components/ui/menubar.cjs.map +1 -0
  171. package/dist/components/ui/menubar.d.cts +30 -0
  172. package/dist/components/ui/menubar.js +20 -21
  173. package/dist/components/ui/menubar.js.map +1 -1
  174. package/dist/components/ui/message-scroller.cjs +87 -0
  175. package/dist/components/ui/message-scroller.cjs.map +1 -0
  176. package/dist/components/ui/message-scroller.d.cts +10 -0
  177. package/dist/components/ui/message-scroller.js +9 -9
  178. package/dist/components/ui/message-scroller.js.map +1 -1
  179. package/dist/components/ui/message.cjs +58 -0
  180. package/dist/components/ui/message.cjs.map +1 -0
  181. package/dist/components/ui/message.d.cts +10 -0
  182. package/dist/components/ui/native-select.cjs +44 -0
  183. package/dist/components/ui/native-select.cjs.map +1 -0
  184. package/dist/components/ui/native-select.d.cts +8 -0
  185. package/dist/components/ui/native-select.d.ts +1 -1
  186. package/dist/components/ui/native-select.d.ts.map +1 -1
  187. package/dist/components/ui/native-select.js.map +1 -1
  188. package/dist/components/ui/navigation-menu.cjs +93 -0
  189. package/dist/components/ui/navigation-menu.cjs.map +1 -0
  190. package/dist/components/ui/navigation-menu.d.cts +14 -0
  191. package/dist/components/ui/navigation-menu.d.ts.map +1 -1
  192. package/dist/components/ui/navigation-menu.js +12 -11
  193. package/dist/components/ui/navigation-menu.js.map +1 -1
  194. package/dist/components/ui/pagination.cjs +90 -0
  195. package/dist/components/ui/pagination.cjs.map +1 -0
  196. package/dist/components/ui/pagination.d.cts +17 -0
  197. package/dist/components/ui/pagination.d.ts +1 -1
  198. package/dist/components/ui/pagination.d.ts.map +1 -1
  199. package/dist/components/ui/pagination.js.map +1 -1
  200. package/dist/components/ui/popover.cjs +66 -0
  201. package/dist/components/ui/popover.cjs.map +1 -0
  202. package/dist/components/ui/popover.d.cts +10 -0
  203. package/dist/components/ui/popover.d.ts.map +1 -1
  204. package/dist/components/ui/popover.js +8 -7
  205. package/dist/components/ui/popover.js.map +1 -1
  206. package/dist/components/ui/progress.cjs +25 -0
  207. package/dist/components/ui/progress.cjs.map +1 -0
  208. package/dist/components/ui/progress.d.cts +4 -0
  209. package/dist/components/ui/progress.js +5 -6
  210. package/dist/components/ui/progress.js.map +1 -1
  211. package/dist/components/ui/questionnaire.cjs +187 -0
  212. package/dist/components/ui/questionnaire.cjs.map +1 -0
  213. package/dist/components/ui/questionnaire.d.cts +19 -0
  214. package/dist/components/ui/questionnaire.d.ts.map +1 -1
  215. package/dist/components/ui/questionnaire.js +19 -21
  216. package/dist/components/ui/questionnaire.js.map +1 -1
  217. package/dist/components/ui/radio-group.cjs +32 -0
  218. package/dist/components/ui/radio-group.cjs.map +1 -0
  219. package/dist/components/ui/radio-group.d.cts +5 -0
  220. package/dist/components/ui/radio-group.d.ts.map +1 -1
  221. package/dist/components/ui/radio-group.js +7 -6
  222. package/dist/components/ui/radio-group.js.map +1 -1
  223. package/dist/components/ui/resizable.cjs +33 -0
  224. package/dist/components/ui/resizable.cjs.map +1 -0
  225. package/dist/components/ui/resizable.d.cts +7 -0
  226. package/dist/components/ui/resizable.d.ts.map +1 -1
  227. package/dist/components/ui/resizable.js +0 -2
  228. package/dist/components/ui/resizable.js.map +1 -1
  229. package/dist/components/ui/scroll-area.cjs +43 -0
  230. package/dist/components/ui/scroll-area.cjs.map +1 -0
  231. package/dist/components/ui/scroll-area.d.cts +5 -0
  232. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  233. package/dist/components/ui/scroll-area.js +9 -8
  234. package/dist/components/ui/scroll-area.js.map +1 -1
  235. package/dist/components/ui/select.cjs +113 -0
  236. package/dist/components/ui/select.cjs.map +1 -0
  237. package/dist/components/ui/select.d.cts +15 -0
  238. package/dist/components/ui/select.js +17 -18
  239. package/dist/components/ui/select.js.map +1 -1
  240. package/dist/components/ui/separator.cjs +21 -0
  241. package/dist/components/ui/separator.cjs.map +1 -0
  242. package/dist/components/ui/separator.d.cts +4 -0
  243. package/dist/components/ui/separator.d.ts.map +1 -1
  244. package/dist/components/ui/separator.js +5 -4
  245. package/dist/components/ui/separator.js.map +1 -1
  246. package/dist/components/ui/sheet.cjs +101 -0
  247. package/dist/components/ui/sheet.cjs.map +1 -0
  248. package/dist/components/ui/sheet.d.cts +14 -0
  249. package/dist/components/ui/sheet.d.ts.map +1 -1
  250. package/dist/components/ui/sheet.js +1 -0
  251. package/dist/components/ui/sheet.js.map +1 -1
  252. package/dist/components/ui/sidebar.cjs +405 -0
  253. package/dist/components/ui/sidebar.cjs.map +1 -0
  254. package/dist/components/ui/sidebar.d.cts +69 -0
  255. package/dist/components/ui/sidebar.js +0 -1
  256. package/dist/components/ui/sidebar.js.map +1 -1
  257. package/dist/components/ui/skeleton.cjs +14 -0
  258. package/dist/components/ui/skeleton.cjs.map +1 -0
  259. package/dist/components/ui/skeleton.d.cts +2 -0
  260. package/dist/components/ui/slider.cjs +42 -0
  261. package/dist/components/ui/slider.cjs.map +1 -0
  262. package/dist/components/ui/slider.d.cts +7 -0
  263. package/dist/components/ui/slider.js +7 -8
  264. package/dist/components/ui/slider.js.map +1 -1
  265. package/dist/components/ui/sonner.cjs +36 -0
  266. package/dist/components/ui/sonner.cjs.map +1 -0
  267. package/dist/components/ui/sonner.d.cts +13 -0
  268. package/dist/components/ui/sonner.d.ts.map +1 -1
  269. package/dist/components/ui/sonner.js +4 -6
  270. package/dist/components/ui/sonner.js.map +1 -1
  271. package/dist/components/ui/spinner.cjs +17 -0
  272. package/dist/components/ui/spinner.cjs.map +1 -0
  273. package/dist/components/ui/spinner.d.cts +2 -0
  274. package/dist/components/ui/switch.cjs +24 -0
  275. package/dist/components/ui/switch.cjs.map +1 -0
  276. package/dist/components/ui/switch.d.cts +6 -0
  277. package/dist/components/ui/switch.js +5 -6
  278. package/dist/components/ui/switch.js.map +1 -1
  279. package/dist/components/ui/table.cjs +77 -0
  280. package/dist/components/ui/table.cjs.map +1 -0
  281. package/dist/components/ui/table.d.cts +10 -0
  282. package/dist/components/ui/tabs.cjs +54 -0
  283. package/dist/components/ui/tabs.cjs.map +1 -0
  284. package/dist/components/ui/tabs.d.cts +11 -0
  285. package/dist/components/ui/tabs.js +7 -8
  286. package/dist/components/ui/tabs.js.map +1 -1
  287. package/dist/components/ui/textarea.cjs +39 -0
  288. package/dist/components/ui/textarea.cjs.map +1 -0
  289. package/dist/components/ui/textarea.d.cts +9 -0
  290. package/dist/components/ui/textarea.js +0 -1
  291. package/dist/components/ui/textarea.js.map +1 -1
  292. package/dist/components/ui/toggle-group.cjs +56 -0
  293. package/dist/components/ui/toggle-group.cjs.map +1 -0
  294. package/dist/components/ui/toggle-group.d.cts +10 -0
  295. package/dist/components/ui/toggle-group.js +5 -6
  296. package/dist/components/ui/toggle-group.js.map +1 -1
  297. package/dist/components/ui/toggle.cjs +41 -0
  298. package/dist/components/ui/toggle.cjs.map +1 -0
  299. package/dist/components/ui/toggle.d.cts +9 -0
  300. package/dist/components/ui/toggle.d.ts.map +1 -1
  301. package/dist/components/ui/toggle.js +5 -4
  302. package/dist/components/ui/toggle.js.map +1 -1
  303. package/dist/components/ui/tooltip.cjs +43 -0
  304. package/dist/components/ui/tooltip.cjs.map +1 -0
  305. package/dist/components/ui/tooltip.d.cts +7 -0
  306. package/dist/components/ui/tooltip.js +8 -9
  307. package/dist/components/ui/tooltip.js.map +1 -1
  308. package/dist/components/ui/trace.cjs +86 -0
  309. package/dist/components/ui/trace.cjs.map +1 -0
  310. package/dist/components/ui/trace.d.cts +18 -0
  311. package/dist/hooks/use-highlighted-code.d.ts.map +1 -1
  312. package/dist/hooks/use-highlighted-code.js +56 -0
  313. package/dist/hooks/use-highlighted-code.js.map +1 -0
  314. package/dist/hooks/use-mobile.cjs +26 -0
  315. package/dist/hooks/use-mobile.cjs.map +1 -0
  316. package/dist/hooks/use-mobile.d.cts +1 -0
  317. package/dist/hooks/use-mobile.d.ts.map +1 -1
  318. package/dist/hooks/use-mobile.js +1 -0
  319. package/dist/hooks/use-mobile.js.map +1 -1
  320. package/dist/index.cjs +356 -0
  321. package/dist/index.d.cts +67 -0
  322. package/dist/index.d.ts +5 -11
  323. package/dist/index.d.ts.map +1 -1
  324. package/dist/index.js +3 -14
  325. package/dist/lib/get-placeholder.cjs +13 -0
  326. package/dist/lib/get-placeholder.cjs.map +1 -0
  327. package/dist/lib/get-placeholder.d.cts +5 -0
  328. package/dist/lib/highlighter.js +79 -0
  329. package/dist/lib/highlighter.js.map +1 -0
  330. package/dist/lib/utils.cjs +8 -0
  331. package/dist/lib/utils.d.cts +8 -0
  332. package/{src → dist}/styles/globals.css +11 -0
  333. package/package.json +111 -32
  334. /package/{src → dist}/styles/base.css +0 -0
  335. /package/{src → dist}/styles/prose.css +0 -0
  336. /package/{src → dist}/styles/theme.css +0 -0
  337. /package/{src → dist}/styles/tokens.css +0 -0
  338. /package/{src → dist}/styles/utilities.css +0 -0
  339. /package/{src → dist}/styles/variants.css +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-menu.js","names":["DropdownMenu","DropdownMenuPrimitive"],"sources":["../../../src/components/ui/dropdown-menu.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from 'cn';\nimport { CheckIcon, ChevronRightIcon } from 'lucide-react';\nimport { DropdownMenu as DropdownMenuPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nfunction DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />;\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return <DropdownMenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />;\n}\n\nfunction DropdownMenuContent({\n className,\n align = 'start',\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n align={align}\n className={cn(\n 'z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-sm border border-border bg-popover p-1 text-popover-foreground duration-100 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 data-[state=closed]:overflow-hidden data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: 'default' | 'destructive';\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-sm px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-sm py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return <DropdownMenuPrimitive.RadioGroup data-slot=\"dropdown-menu-radio-group\" {...props} />;\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-sm py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n 'px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('-mx-1 my-1 h-px bg-border', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n 'ml-auto text-xs tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center gap-1.5 rounded-sm px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n 'z-50 min-w-[96px] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-sm border border-border bg-popover p-1 text-popover-foreground shadow-lg duration-100 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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"dropdown-menu.js","names":["DropdownMenuPrimitive"],"sources":["../../../src/components/ui/dropdown-menu.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from 'cn';\nimport { CheckIcon, ChevronRightIcon } from 'lucide-react';\nimport { DropdownMenu as DropdownMenuPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nfunction DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />;\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return <DropdownMenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />;\n}\n\nfunction DropdownMenuContent({\n className,\n align = 'start',\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n align={align}\n className={cn(\n 'z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-sm border border-border bg-popover p-1 text-popover-foreground duration-100 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 data-[state=closed]:overflow-hidden data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: 'default' | 'destructive';\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-sm px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-sm py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return <DropdownMenuPrimitive.RadioGroup data-slot=\"dropdown-menu-radio-group\" {...props} />;\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-sm py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n 'px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('-mx-1 my-1 h-px bg-border', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n 'ml-auto text-xs tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center gap-1.5 rounded-sm px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n 'z-50 min-w-[96px] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-sm border border-border bg-popover p-1 text-popover-foreground shadow-lg duration-100 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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n"],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ let cn = require("cn");
3
+ let react_jsx_runtime = require("react/jsx-runtime");
4
+ let class_variance_authority = require("class-variance-authority");
5
+ // src/components/ui/empty.tsx
6
+ function Empty({ className, ...props }) {
7
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8
+ "data-slot": "empty",
9
+ className: (0, cn.cn)("flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-sm border-dashed p-6 text-center text-balance", className),
10
+ ...props
11
+ });
12
+ }
13
+ function EmptyHeader({ className, ...props }) {
14
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
15
+ "data-slot": "empty-header",
16
+ className: (0, cn.cn)("flex max-w-sm flex-col items-center gap-2", className),
17
+ ...props
18
+ });
19
+ }
20
+ var emptyMediaVariants = (0, class_variance_authority.cva)("mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0", {
21
+ variants: { variant: {
22
+ default: "bg-transparent",
23
+ icon: "flex size-8 shrink-0 items-center justify-center rounded-sm bg-muted text-foreground [&_svg:not([class*='size-'])]:size-4"
24
+ } },
25
+ defaultVariants: { variant: "default" }
26
+ });
27
+ function EmptyMedia({ className, variant = "default", ...props }) {
28
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
29
+ "data-slot": "empty-icon",
30
+ "data-variant": variant,
31
+ className: (0, cn.cn)(emptyMediaVariants({
32
+ variant,
33
+ className
34
+ })),
35
+ ...props
36
+ });
37
+ }
38
+ function EmptyTitle({ className, ...props }) {
39
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
40
+ "data-slot": "empty-title",
41
+ className: (0, cn.cn)("text-sm font-medium tracking-tight", className),
42
+ ...props
43
+ });
44
+ }
45
+ function EmptyDescription({ className, ...props }) {
46
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
47
+ "data-slot": "empty-description",
48
+ className: (0, cn.cn)("text-sm/relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary", className),
49
+ ...props
50
+ });
51
+ }
52
+ function EmptyContent({ className, ...props }) {
53
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
54
+ "data-slot": "empty-content",
55
+ className: (0, cn.cn)("flex w-full max-w-sm min-w-0 flex-col items-center gap-2.5 text-sm text-balance", className),
56
+ ...props
57
+ });
58
+ }
59
+ exports.Empty = Empty;
60
+ exports.EmptyContent = EmptyContent;
61
+ exports.EmptyDescription = EmptyDescription;
62
+ exports.EmptyHeader = EmptyHeader;
63
+ exports.EmptyMedia = EmptyMedia;
64
+ exports.EmptyTitle = EmptyTitle;
65
+
66
+ //# sourceMappingURL=empty.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty.cjs","names":["cva"],"sources":["../../../src/components/ui/empty.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from 'cn';\n\nfunction Empty({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"empty\"\n className={cn(\n 'flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-sm border-dashed p-6 text-center text-balance',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"empty-header\"\n className={cn('flex max-w-sm flex-col items-center gap-2', className)}\n {...props}\n />\n );\n}\n\nconst emptyMediaVariants = cva(\n 'mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'bg-transparent',\n icon: \"flex size-8 shrink-0 items-center justify-center rounded-sm bg-muted text-foreground [&_svg:not([class*='size-'])]:size-4\",\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nfunction EmptyMedia({\n className,\n variant = 'default',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof emptyMediaVariants>) {\n return (\n <div\n data-slot=\"empty-icon\"\n data-variant={variant}\n className={cn(emptyMediaVariants({ variant, className }))}\n {...props}\n />\n );\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"empty-title\"\n className={cn('text-sm font-medium tracking-tight', className)}\n {...props}\n />\n );\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<'p'>) {\n return (\n <div\n data-slot=\"empty-description\"\n className={cn(\n 'text-sm/relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"empty-content\"\n className={cn(\n 'flex w-full max-w-sm min-w-0 flex-col items-center gap-2.5 text-sm text-balance',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Empty, EmptyHeader, EmptyTitle, EmptyDescription, EmptyContent, EmptyMedia };\n"],"mappings":";;;;;AAGA,SAAS,MAAM,EAAE,WAAW,GAAG,SAAsC;CACnE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CACT,+HACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;CACzE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CAAG,6CAA6C,SAAS;EACpE,GAAI;CACL,CAAA;AAEL;AAEA,IAAM,sBAAA,GAAqBA,yBAAAA,IAAAA,CACzB,+FACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,MAAM;CACR,EACF;CACA,iBAAiB,EACf,SAAS,UACX;AACF,CACF;AAEA,SAAS,WAAW,EAClB,WACA,UAAU,WACV,GAAG,SACqE;CACxE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,aAAU;EACV,gBAAc;EACd,YAAA,GAAW,GAAA,GAAA,CAAG,mBAAmB;GAAE;GAAS;EAAU,CAAC,CAAC;EACxD,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;CACxE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CAAG,sCAAsC,SAAS;EAC7D,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,iBAAiB,EAAE,WAAW,GAAG,SAAoC;CAC5E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CACT,2GACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;CAC1E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CACT,mFACA,SACF;EACA,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,11 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ declare function Empty({ className, ...props }: React.ComponentProps<'div'>): import("react").JSX.Element;
3
+ declare function EmptyHeader({ className, ...props }: React.ComponentProps<'div'>): import("react").JSX.Element;
4
+ declare const emptyMediaVariants: (props?: ({
5
+ variant?: "default" | "icon" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ declare function EmptyMedia({ className, variant, ...props }: React.ComponentProps<'div'> & VariantProps<typeof emptyMediaVariants>): import("react").JSX.Element;
8
+ declare function EmptyTitle({ className, ...props }: React.ComponentProps<'div'>): import("react").JSX.Element;
9
+ declare function EmptyDescription({ className, ...props }: React.ComponentProps<'p'>): import("react").JSX.Element;
10
+ declare function EmptyContent({ className, ...props }: React.ComponentProps<'div'>): import("react").JSX.Element;
11
+ export { Empty, EmptyHeader, EmptyTitle, EmptyDescription, EmptyContent, EmptyMedia };
@@ -0,0 +1,121 @@
1
+ "use client";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const require_components_ui_separator = require("./separator.cjs");
4
+ const require_components_ui_label = require("./label.cjs");
5
+ let cn = require("cn");
6
+ let react = require("react");
7
+ let react_jsx_runtime = require("react/jsx-runtime");
8
+ let class_variance_authority = require("class-variance-authority");
9
+ // src/components/ui/field.tsx
10
+ function FieldSet({ className, ...props }) {
11
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("fieldset", {
12
+ "data-slot": "field-set",
13
+ className: (0, cn.cn)("flex flex-col gap-4 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3", className),
14
+ ...props
15
+ });
16
+ }
17
+ function FieldLegend({ className, variant = "legend", ...props }) {
18
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("legend", {
19
+ "data-slot": "field-legend",
20
+ "data-variant": variant,
21
+ className: (0, cn.cn)("mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base", className),
22
+ ...props
23
+ });
24
+ }
25
+ function FieldGroup({ className, ...props }) {
26
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
27
+ "data-slot": "field-group",
28
+ className: (0, cn.cn)("group/field-group @container/field-group flex w-full flex-col gap-5 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4", className),
29
+ ...props
30
+ });
31
+ }
32
+ var fieldVariants = (0, class_variance_authority.cva)("group/field flex w-full gap-2 data-[invalid=true]:text-destructive", {
33
+ variants: { orientation: {
34
+ vertical: "flex-col *:w-full [&>.sr-only]:w-auto",
35
+ horizontal: "flex-row items-center has-[>[data-slot=field-content]]:items-start *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
36
+ responsive: "flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:*:data-[slot=field-label]:flex-auto [&>.sr-only]:w-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
37
+ } },
38
+ defaultVariants: { orientation: "vertical" }
39
+ });
40
+ function Field({ className, orientation = "vertical", ...props }) {
41
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
42
+ role: "group",
43
+ "data-slot": "field",
44
+ "data-orientation": orientation,
45
+ className: (0, cn.cn)(fieldVariants({ orientation }), className),
46
+ ...props
47
+ });
48
+ }
49
+ function FieldContent({ className, ...props }) {
50
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
51
+ "data-slot": "field-content",
52
+ className: (0, cn.cn)("group/field-content flex flex-1 flex-col gap-0.5 leading-snug", className),
53
+ ...props
54
+ });
55
+ }
56
+ function FieldLabel({ className, ...props }) {
57
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_ui_label.Label, {
58
+ "data-slot": "field-label",
59
+ className: (0, cn.cn)("group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded-sm has-[>[data-slot=field]]:border has-[>[data-slot=field]]:not-has-[:disabled,[data-disabled]]:hover:bg-muted/50 has-[>[data-slot=field]]:has-[:focus-visible]:border-ring has-[>[data-slot=field]]:has-[:focus-visible]:ring-3 has-[>[data-slot=field]]:has-[:focus-visible]:ring-ring/50 *:data-[slot=field]:p-2.5 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10", "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col", className),
60
+ ...props
61
+ });
62
+ }
63
+ function FieldTitle({ className, ...props }) {
64
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
65
+ "data-slot": "field-label",
66
+ className: (0, cn.cn)("flex w-fit items-center gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50", className),
67
+ ...props
68
+ });
69
+ }
70
+ function FieldDescription({ className, ...props }) {
71
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
72
+ "data-slot": "field-description",
73
+ className: (0, cn.cn)("text-left text-sm leading-normal font-normal text-muted-foreground group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5", "last:mt-0 nth-last-2:-mt-1", "[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary", className),
74
+ ...props
75
+ });
76
+ }
77
+ function FieldSeparator({ children, className, ...props }) {
78
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
79
+ "data-slot": "field-separator",
80
+ "data-content": !!children,
81
+ className: (0, cn.cn)("relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2", className),
82
+ ...props,
83
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_ui_separator.Separator, { className: "absolute inset-0 top-1/2" }), children && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
84
+ className: "relative mx-auto block w-fit bg-background px-2 text-muted-foreground",
85
+ "data-slot": "field-separator-content",
86
+ children
87
+ })]
88
+ });
89
+ }
90
+ function FieldError({ className, children, errors, ...props }) {
91
+ const content = (0, react.useMemo)(() => {
92
+ if (children) return children;
93
+ if (!errors?.length) return null;
94
+ const uniqueErrors = [...new Map(errors.map((error) => [error?.message, error])).values()];
95
+ if (uniqueErrors?.length == 1) return uniqueErrors[0]?.message;
96
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
97
+ className: "ml-4 flex list-disc flex-col gap-1",
98
+ children: uniqueErrors.map((error, index) => error?.message && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", { children: error.message }, index))
99
+ });
100
+ }, [children, errors]);
101
+ if (!content) return null;
102
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
103
+ role: "alert",
104
+ "data-slot": "field-error",
105
+ className: (0, cn.cn)("text-sm font-normal text-destructive", className),
106
+ ...props,
107
+ children: content
108
+ });
109
+ }
110
+ exports.Field = Field;
111
+ exports.FieldContent = FieldContent;
112
+ exports.FieldDescription = FieldDescription;
113
+ exports.FieldError = FieldError;
114
+ exports.FieldGroup = FieldGroup;
115
+ exports.FieldLabel = FieldLabel;
116
+ exports.FieldLegend = FieldLegend;
117
+ exports.FieldSeparator = FieldSeparator;
118
+ exports.FieldSet = FieldSet;
119
+ exports.FieldTitle = FieldTitle;
120
+
121
+ //# sourceMappingURL=field.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.cjs","names":["cva","Label","Separator","useMemo"],"sources":["../../../src/components/ui/field.tsx"],"sourcesContent":["'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from 'cn';\nimport { useMemo } from 'react';\n\nimport { Label } from './label';\nimport { Separator } from './separator';\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<'fieldset'>) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n 'flex flex-col gap-4 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldLegend({\n className,\n variant = 'legend',\n ...props\n}: React.ComponentProps<'legend'> & { variant?: 'legend' | 'label' }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n 'mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n 'group/field-group @container/field-group flex w-full flex-col gap-5 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4',\n className,\n )}\n {...props}\n />\n );\n}\n\nconst fieldVariants = cva('group/field flex w-full gap-2 data-[invalid=true]:text-destructive', {\n variants: {\n orientation: {\n vertical: 'flex-col *:w-full [&>.sr-only]:w-auto',\n horizontal:\n 'flex-row items-center has-[>[data-slot=field-content]]:items-start *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n responsive:\n 'flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:*:data-[slot=field-label]:flex-auto [&>.sr-only]:w-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nfunction Field({\n className,\n orientation = 'vertical',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n );\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn('group/field-content flex flex-1 flex-col gap-0.5 leading-snug', className)}\n {...props}\n />\n );\n}\n\nfunction FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n 'group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded-sm has-[>[data-slot=field]]:border has-[>[data-slot=field]]:not-has-[:disabled,[data-disabled]]:hover:bg-muted/50 has-[>[data-slot=field]]:has-[:focus-visible]:border-ring has-[>[data-slot=field]]:has-[:focus-visible]:ring-3 has-[>[data-slot=field]]:has-[:focus-visible]:ring-ring/50 *:data-[slot=field]:p-2.5 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10',\n 'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n 'flex w-fit items-center gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldDescription({ className, ...props }: React.ComponentProps<'p'>) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n 'text-left text-sm leading-normal font-normal text-muted-foreground group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5',\n 'last:mt-0 nth-last-2:-mt-1',\n '[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<'div'> & {\n children?: React.ReactNode;\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n 'relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2',\n className,\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"relative mx-auto block w-fit bg-background px-2 text-muted-foreground\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n );\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<'div'> & {\n errors?: Array<{ message?: string } | undefined>;\n}) {\n const content = useMemo(() => {\n if (children) {\n return children;\n }\n\n if (!errors?.length) {\n return null;\n }\n\n const uniqueErrors = [...new Map(errors.map((error) => [error?.message, error])).values()];\n\n if (uniqueErrors?.length == 1) {\n return uniqueErrors[0]?.message;\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {uniqueErrors.map((error, index) => error?.message && <li key={index}>{error.message}</li>)}\n </ul>\n );\n }, [children, errors]);\n\n if (!content) {\n return null;\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn('text-sm font-normal text-destructive', className)}\n {...props}\n >\n {content}\n </div>\n );\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n};\n"],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ import { Label } from './label.cjs';
3
+ declare function FieldSet({ className, ...props }: React.ComponentProps<'fieldset'>): import("react").JSX.Element;
4
+ declare function FieldLegend({ className, variant, ...props }: React.ComponentProps<'legend'> & {
5
+ variant?: 'legend' | 'label';
6
+ }): import("react").JSX.Element;
7
+ declare function FieldGroup({ className, ...props }: React.ComponentProps<'div'>): import("react").JSX.Element;
8
+ declare const fieldVariants: (props?: ({
9
+ orientation?: "vertical" | "horizontal" | "responsive" | null | undefined;
10
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
+ declare function Field({ className, orientation, ...props }: React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>): import("react").JSX.Element;
12
+ declare function FieldContent({ className, ...props }: React.ComponentProps<'div'>): import("react").JSX.Element;
13
+ declare function FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>): import("react").JSX.Element;
14
+ declare function FieldTitle({ className, ...props }: React.ComponentProps<'div'>): import("react").JSX.Element;
15
+ declare function FieldDescription({ className, ...props }: React.ComponentProps<'p'>): import("react").JSX.Element;
16
+ declare function FieldSeparator({ children, className, ...props }: React.ComponentProps<'div'> & {
17
+ children?: React.ReactNode;
18
+ }): import("react").JSX.Element;
19
+ declare function FieldError({ className, children, errors, ...props }: React.ComponentProps<'div'> & {
20
+ errors?: Array<{
21
+ message?: string;
22
+ } | undefined>;
23
+ }): import("react").JSX.Element | null;
24
+ export { Field, FieldLabel, FieldDescription, FieldError, FieldGroup, FieldLegend, FieldSeparator, FieldSet, FieldContent, FieldTitle, };
@@ -1,5 +1,4 @@
1
1
  "use client";
2
- "use client";
3
2
  import { Separator } from "./separator.js";
4
3
  import { Label } from "./label.js";
5
4
  import { cn } from "cn";
@@ -1 +1 @@
1
- {"version":3,"file":"field.js","names":[],"sources":["../../../src/components/ui/field.tsx"],"sourcesContent":["'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from 'cn';\nimport { useMemo } from 'react';\n\nimport { Label } from './label';\nimport { Separator } from './separator';\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<'fieldset'>) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n 'flex flex-col gap-4 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldLegend({\n className,\n variant = 'legend',\n ...props\n}: React.ComponentProps<'legend'> & { variant?: 'legend' | 'label' }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n 'mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n 'group/field-group @container/field-group flex w-full flex-col gap-5 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4',\n className,\n )}\n {...props}\n />\n );\n}\n\nconst fieldVariants = cva('group/field flex w-full gap-2 data-[invalid=true]:text-destructive', {\n variants: {\n orientation: {\n vertical: 'flex-col *:w-full [&>.sr-only]:w-auto',\n horizontal:\n 'flex-row items-center has-[>[data-slot=field-content]]:items-start *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n responsive:\n 'flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:*:data-[slot=field-label]:flex-auto [&>.sr-only]:w-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nfunction Field({\n className,\n orientation = 'vertical',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n );\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn('group/field-content flex flex-1 flex-col gap-0.5 leading-snug', className)}\n {...props}\n />\n );\n}\n\nfunction FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n 'group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded-sm has-[>[data-slot=field]]:border has-[>[data-slot=field]]:not-has-[:disabled,[data-disabled]]:hover:bg-muted/50 has-[>[data-slot=field]]:has-[:focus-visible]:border-ring has-[>[data-slot=field]]:has-[:focus-visible]:ring-3 has-[>[data-slot=field]]:has-[:focus-visible]:ring-ring/50 *:data-[slot=field]:p-2.5 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10',\n 'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n 'flex w-fit items-center gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldDescription({ className, ...props }: React.ComponentProps<'p'>) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n 'text-left text-sm leading-normal font-normal text-muted-foreground group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5',\n 'last:mt-0 nth-last-2:-mt-1',\n '[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<'div'> & {\n children?: React.ReactNode;\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n 'relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2',\n className,\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"relative mx-auto block w-fit bg-background px-2 text-muted-foreground\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n );\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<'div'> & {\n errors?: Array<{ message?: string } | undefined>;\n}) {\n const content = useMemo(() => {\n if (children) {\n return children;\n }\n\n if (!errors?.length) {\n return null;\n }\n\n const uniqueErrors = [...new Map(errors.map((error) => [error?.message, error])).values()];\n\n if (uniqueErrors?.length == 1) {\n return uniqueErrors[0]?.message;\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {uniqueErrors.map((error, index) => error?.message && <li key={index}>{error.message}</li>)}\n </ul>\n );\n }, [children, errors]);\n\n if (!content) {\n return null;\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn('text-sm font-normal text-destructive', className)}\n {...props}\n >\n {content}\n </div>\n );\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n};\n"],"mappings":";;;;;;;;;AAUE,SACE,SAAA,EAAA,WAAC,GAAA,SAAD;CACE,OAAU,oBAAA,YAAA;EACV,aAAW;EAIX,WAAI,GAAA,oGAAA,SAAA;EACL,GAAA;CAEL,CAAA;AAEA;AAKE,SACE,YAAA,EAAA,WAAC,UAAD,UAAA,GAAA,SAAA;CACE,OAAU,oBAAA,UAAA;EACV,aAAA;EACA,gBACE;EAGF,WAAI,GAAA,mFAAA,SAAA;EACL,GAAA;CAEL,CAAA;AAEA;AACE,SACE,WAAA,EAAA,WAAC,GAAD,SAAA;CACE,OAAU,oBAAA,OAAA;EACV,aAAW;EAIX,WAAI,GAAA,wIAAA,SAAA;EACL,GAAA;CAEL,CAAA;AAEA;AACE,IAAA,gBACE,IAAA,sEAAa;CACX,UAAA,EAAU,aAAA;EACV,UAAA;EAEA,YACE;EACJ,YACF;CACA,EAAA;CAGD,iBAAA,EAAA,aAAA,WAAA;AAED,CAAA;AAKE,SACE,MAAA,EAAA,WAAC,cAAD,YAAA,GAAA,SAAA;CACE,OAAK,oBAAA,OAAA;EACL,MAAA;EACA,aAAA;EACA,oBAAc;EACd,WAAI,GAAA,cAAA,EAAA,YAAA,CAAA,GAAA,SAAA;EACL,GAAA;CAEL,CAAA;AAEA;AACE,SACE,aAAA,EAAA,WAAA,GAAA,SAAA;CACE,OAAU,oBAAA,OAAA;EACV,aAAW;EACX,WAAI,GAAA,iEAAA,SAAA;EACL,GAAA;CAEL,CAAA;AAEA;AACE,SACE,WAAA,EAAA,WAAC,GAAD,SAAA;CACE,OAAU,oBAAA,OAAA;EACV,aAAW;EAKX,WAAI,GAAA,olBAAA,qEAAA,SAAA;EACL,GAAA;CAEL,CAAA;AAEA;AACE,SACE,WAAA,EAAA,WAAC,GAAD,SAAA;CACE,OAAU,oBAAA,OAAA;EACV,aAAW;EAIX,WAAI,GAAA,iGAAA,SAAA;EACL,GAAA;CAEL,CAAA;AAEA;AACE,SACE,iBAAA,EAAC,WAAD,GAAA,SAAA;CACE,OAAU,oBAAA,KAAA;EACV,aAAW;EAMX,WAAI,GAAA,qJAAA,8BAAA,qEAAA,SAAA;EACL,GAAA;CAEL,CAAA;AAEA;AAOE,SACE,eAAA,EAAA,UAAA,WAAA,GAAA,SAAA;CACE,OAAU,qBAAA,OAAA;EACV,aAAA;EACA,gBACE,CAAA,CAAA;EAGF,WAAI,GAAA,6EAAA,SAAA;EAPN,GAAA;EAYM,UAAA,CAAU,oBAAA,WAAA,EAAA,WAAA,2BAAA,CAAA,GAAA,YAAA,oBAAA,QAAA;GACV,WAAA;GAEC,aAAA;GACG;;CAId,CAAA;AAEA;AAQE,SAAM,WAAU,EAAA,WAAc,UAAA,QAAA,GAAA,SAAA;CAC5B,MAAI,UACF,cAAO;EAGT,IAAI,UAAS,OACX;EAGF,IAAA,CAAA,QAAM,QAAe,OAAI;EAEzB,MAAI,eAAc,CAAA,GAAA,IAAU,IAC1B,OAAO,KAAA,UAAiB,CAAA,OAAA,SAAA,KAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA;EAG1B,IAAA,cACE,UAAC,GAAA,OAAD,aAAA,EAAA,EAAA;EAAI,OAAU,oBAAA,MAAA;GACX,WAAA;GACC,UAAA,aAAA,KAAA,OAAA,UAAA,OAAA,WAAA,oBAAA,MAAA,EAAA,UAAA,MAAA,QAAA,GAAA,KAAA,CAAA;EAER,CAAA;CAEA,GAAA,CAAI,UACF,MAAA,CAAO;CAGT,IAAA,CAAA,SACE,OAAA;CACE,OAAK,oBAAA,OAAA;EACL,MAAA;EACA,aAAW;EACX,WAAI,GAAA,wCAAA,SAAA;EAEH,GAAA;EACE,UAAA;CAET,CAAA"}
1
+ {"version":3,"file":"field.js","names":[],"sources":["../../../src/components/ui/field.tsx"],"sourcesContent":["'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from 'cn';\nimport { useMemo } from 'react';\n\nimport { Label } from './label';\nimport { Separator } from './separator';\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<'fieldset'>) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n 'flex flex-col gap-4 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldLegend({\n className,\n variant = 'legend',\n ...props\n}: React.ComponentProps<'legend'> & { variant?: 'legend' | 'label' }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n 'mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n 'group/field-group @container/field-group flex w-full flex-col gap-5 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4',\n className,\n )}\n {...props}\n />\n );\n}\n\nconst fieldVariants = cva('group/field flex w-full gap-2 data-[invalid=true]:text-destructive', {\n variants: {\n orientation: {\n vertical: 'flex-col *:w-full [&>.sr-only]:w-auto',\n horizontal:\n 'flex-row items-center has-[>[data-slot=field-content]]:items-start *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n responsive:\n 'flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:*:data-[slot=field-label]:flex-auto [&>.sr-only]:w-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nfunction Field({\n className,\n orientation = 'vertical',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n );\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn('group/field-content flex flex-1 flex-col gap-0.5 leading-snug', className)}\n {...props}\n />\n );\n}\n\nfunction FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n 'group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded-sm has-[>[data-slot=field]]:border has-[>[data-slot=field]]:not-has-[:disabled,[data-disabled]]:hover:bg-muted/50 has-[>[data-slot=field]]:has-[:focus-visible]:border-ring has-[>[data-slot=field]]:has-[:focus-visible]:ring-3 has-[>[data-slot=field]]:has-[:focus-visible]:ring-ring/50 *:data-[slot=field]:p-2.5 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10',\n 'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n 'flex w-fit items-center gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldDescription({ className, ...props }: React.ComponentProps<'p'>) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n 'text-left text-sm leading-normal font-normal text-muted-foreground group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5',\n 'last:mt-0 nth-last-2:-mt-1',\n '[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<'div'> & {\n children?: React.ReactNode;\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n 'relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2',\n className,\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"relative mx-auto block w-fit bg-background px-2 text-muted-foreground\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n );\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<'div'> & {\n errors?: Array<{ message?: string } | undefined>;\n}) {\n const content = useMemo(() => {\n if (children) {\n return children;\n }\n\n if (!errors?.length) {\n return null;\n }\n\n const uniqueErrors = [...new Map(errors.map((error) => [error?.message, error])).values()];\n\n if (uniqueErrors?.length == 1) {\n return uniqueErrors[0]?.message;\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {uniqueErrors.map((error, index) => error?.message && <li key={index}>{error.message}</li>)}\n </ul>\n );\n }, [children, errors]);\n\n if (!content) {\n return null;\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn('text-sm font-normal text-destructive', className)}\n {...props}\n >\n {content}\n </div>\n );\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n};\n"],"mappings":";;;;;;;;AASA,SAAS,SAAS,EAAE,WAAW,GAAG,SAA2C;CAC3E,OACE,oBAAC,YAAD;EACE,aAAU;EACV,WAAW,GACT,oGACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,YAAY,EACnB,WACA,UAAU,UACV,GAAG,SACiE;CACpE,OACE,oBAAC,UAAD;EACE,aAAU;EACV,gBAAc;EACd,WAAW,GACT,mFACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;CACxE,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,wIACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,IAAM,gBAAgB,IAAI,sEAAsE;CAC9F,UAAU,EACR,aAAa;EACX,UAAU;EACV,YACE;EACF,YACE;CACJ,EACF;CACA,iBAAiB,EACf,aAAa,WACf;AACF,CAAC;AAED,SAAS,MAAM,EACb,WACA,cAAc,YACd,GAAG,SACgE;CACnE,OACE,oBAAC,OAAD;EACE,MAAK;EACL,aAAU;EACV,oBAAkB;EAClB,WAAW,GAAG,cAAc,EAAE,YAAY,CAAC,GAAG,SAAS;EACvD,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;CAC1E,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,iEAAiE,SAAS;EACxF,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,WAAW,EAAE,WAAW,GAAG,SAA6C;CAC/E,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,olBACA,qEACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;CACxE,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,iGACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,iBAAiB,EAAE,WAAW,GAAG,SAAoC;CAC5E,OACE,oBAAC,KAAD;EACE,aAAU;EACV,WAAW,GACT,qJACA,8BACA,qEACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,eAAe,EACtB,UACA,WACA,GAAG,SAGF;CACD,OACE,qBAAC,OAAD;EACE,aAAU;EACV,gBAAc,CAAC,CAAC;EAChB,WAAW,GACT,6EACA,SACF;EACA,GAAI;EAPN,UAAA,CASE,oBAAC,WAAD,EAAW,WAAU,2BAA4B,CAAA,GAChD,YACC,oBAAC,QAAD;GACE,WAAU;GACV,aAAU;GAET;EACG,CAAA,CAEL;;AAET;AAEA,SAAS,WAAW,EAClB,WACA,UACA,QACA,GAAG,SAGF;CACD,MAAM,UAAU,cAAc;EAC5B,IAAI,UACF,OAAO;EAGT,IAAI,CAAC,QAAQ,QACX,OAAO;EAGT,MAAM,eAAe,CAAC,GAAG,IAAI,IAAI,OAAO,KAAK,UAAU,CAAC,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;EAEzF,IAAI,cAAc,UAAU,GAC1B,OAAO,aAAa,EAAE,EAAE;EAG1B,OACE,oBAAC,MAAD;GAAI,WAAU;GACX,UAAA,aAAa,KAAK,OAAO,UAAU,OAAO,WAAW,oBAAC,MAAD,EAAA,UAAiB,MAAM,QAAY,GAA1B,KAA0B,CAAC;EACxF,CAAA;CAER,GAAG,CAAC,UAAU,MAAM,CAAC;CAErB,IAAI,CAAC,SACH,OAAO;CAGT,OACE,oBAAC,OAAD;EACE,MAAK;EACL,aAAU;EACV,WAAW,GAAG,wCAAwC,SAAS;EAC/D,GAAI;EAEH,UAAA;CACE,CAAA;AAET"}
@@ -0,0 +1,38 @@
1
+ "use client";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const require_rolldown_runtime = require("../../chunks/rolldown-runtime-CmQyd0Gu.cjs");
4
+ let cn = require("cn");
5
+ let radix_ui = require("radix-ui");
6
+ let react = require("react");
7
+ react = require_rolldown_runtime.__toESM(react, 1);
8
+ let react_jsx_runtime = require("react/jsx-runtime");
9
+ // src/components/ui/hover-card.tsx
10
+ function HoverCard({ ...props }) {
11
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.HoverCard.Root, {
12
+ "data-slot": "hover-card",
13
+ ...props
14
+ });
15
+ }
16
+ function HoverCardTrigger({ ...props }) {
17
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.HoverCard.Trigger, {
18
+ "data-slot": "hover-card-trigger",
19
+ ...props
20
+ });
21
+ }
22
+ function HoverCardContent({ className, align = "center", sideOffset = 4, ...props }) {
23
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.HoverCard.Portal, {
24
+ "data-slot": "hover-card-portal",
25
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.HoverCard.Content, {
26
+ "data-slot": "hover-card-content",
27
+ align,
28
+ sideOffset,
29
+ className: (0, cn.cn)("z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-sm border border-border bg-popover p-2.5 text-sm text-popover-foreground outline-hidden duration-100 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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
30
+ ...props
31
+ })
32
+ });
33
+ }
34
+ exports.HoverCard = HoverCard;
35
+ exports.HoverCardContent = HoverCardContent;
36
+ exports.HoverCardTrigger = HoverCardTrigger;
37
+
38
+ //# sourceMappingURL=hover-card.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hover-card.cjs","names":["HoverCardPrimitive"],"sources":["../../../src/components/ui/hover-card.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from 'cn';\nimport { HoverCard as HoverCardPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nfunction HoverCard({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nfunction HoverCardTrigger({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />;\n}\n\nfunction HoverCardContent({\n className,\n align = 'center',\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-sm border border-border bg-popover p-2.5 text-sm text-popover-foreground outline-hidden duration-100 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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent };\n"],"mappings":";;;;;;;;;AAMA,SAAS,UAAU,EAAE,GAAG,SAA+D;CACrF,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACA,SAAAA,UAAmB,MAApB;EAAyB,aAAU;EAAa,GAAI;CAAQ,CAAA;AACrE;AAEA,SAAS,iBAAiB,EAAE,GAAG,SAAkE;CAC/F,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACA,SAAAA,UAAmB,SAApB;EAA4B,aAAU;EAAqB,GAAI;CAAQ,CAAA;AAChF;AAEA,SAAS,iBAAiB,EACxB,WACA,QAAQ,UACR,aAAa,GACb,GAAG,SACuD;CAC1D,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,SAAAA,UAAmB,QAApB;EAA2B,aAAU;EACnC,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACA,SAAAA,UAAmB,SAApB;GACE,aAAU;GACH;GACK;GACZ,YAAA,GAAW,GAAA,GAAA,CACT,gdACA,SACF;GACA,GAAI;EACL,CAAA;CACwB,CAAA;AAE/B"}
@@ -0,0 +1,6 @@
1
+ import { HoverCard as HoverCardPrimitive } from 'radix-ui';
2
+ import * as React from 'react';
3
+ declare function HoverCard({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Root>): React.JSX.Element;
4
+ declare function HoverCardTrigger({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Trigger>): React.JSX.Element;
5
+ declare function HoverCardContent({ className, align, sideOffset, ...props }: React.ComponentProps<typeof HoverCardPrimitive.Content>): React.JSX.Element;
6
+ export { HoverCard, HoverCardTrigger, HoverCardContent };
@@ -1 +1 @@
1
- {"version":3,"file":"hover-card.d.ts","sourceRoot":"","sources":["../../../src/components/ui/hover-card.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,iBAAS,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,qBAEpF;AAED,iBAAS,gBAAgB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,qBAE9F;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,KAAgB,EAChB,UAAc,EACd,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,qBAezD;AAED,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"hover-card.d.ts","sourceRoot":"","sources":["../../../src/components/ui/hover-card.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,iBAAS,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,qBAEpF;AAED,iBAAS,gBAAgB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,qBAE9F;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,KAAgB,EAChB,UAAc,EACd,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,qBAezD;AAED,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,24 +1,25 @@
1
+ "use client";
1
2
  import { cn } from "cn";
2
- import { HoverCard } from "radix-ui";
3
+ import { HoverCard as HoverCard$1 } from "radix-ui";
3
4
  import "react";
4
5
  import { jsx } from "react/jsx-runtime";
5
6
  // src/components/ui/hover-card.tsx
6
- function HoverCard$1({ ...props }) {
7
- return /* @__PURE__ */ jsx(HoverCard.Root, {
7
+ function HoverCard({ ...props }) {
8
+ return /* @__PURE__ */ jsx(HoverCard$1.Root, {
8
9
  "data-slot": "hover-card",
9
10
  ...props
10
11
  });
11
12
  }
12
13
  function HoverCardTrigger({ ...props }) {
13
- return /* @__PURE__ */ jsx(HoverCard.Trigger, {
14
+ return /* @__PURE__ */ jsx(HoverCard$1.Trigger, {
14
15
  "data-slot": "hover-card-trigger",
15
16
  ...props
16
17
  });
17
18
  }
18
19
  function HoverCardContent({ className, align = "center", sideOffset = 4, ...props }) {
19
- return /* @__PURE__ */ jsx(HoverCard.Portal, {
20
+ return /* @__PURE__ */ jsx(HoverCard$1.Portal, {
20
21
  "data-slot": "hover-card-portal",
21
- children: /* @__PURE__ */ jsx(HoverCard.Content, {
22
+ children: /* @__PURE__ */ jsx(HoverCard$1.Content, {
22
23
  "data-slot": "hover-card-content",
23
24
  align,
24
25
  sideOffset,
@@ -27,6 +28,6 @@ function HoverCardContent({ className, align = "center", sideOffset = 4, ...prop
27
28
  })
28
29
  });
29
30
  }
30
- export { HoverCard$1 as HoverCard, HoverCardContent, HoverCardTrigger };
31
+ export { HoverCard, HoverCardContent, HoverCardTrigger };
31
32
 
32
33
  //# sourceMappingURL=hover-card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hover-card.js","names":["HoverCard","HoverCardPrimitive"],"sources":["../../../src/components/ui/hover-card.tsx"],"sourcesContent":["import { cn } from 'cn';\nimport { HoverCard as HoverCardPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nfunction HoverCard({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nfunction HoverCardTrigger({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />;\n}\n\nfunction HoverCardContent({\n className,\n align = 'center',\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-sm border border-border bg-popover p-2.5 text-sm text-popover-foreground outline-hidden duration-100 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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent };\n"],"mappings":";;;;;AAIA,SAASA,YAAU,EAAE,GAAG,SAA+D;CACrF,OAAO,oBAACC,UAAmB,MAApB;EAAyB,aAAU;EAAa,GAAI;CAAQ,CAAA;AACrE;AAEA,SAAS,iBAAiB,EAAE,GAAG,SAAkE;CAC/F,OAAO,oBAACA,UAAmB,SAApB;EAA4B,aAAU;EAAqB,GAAI;CAAQ,CAAA;AAChF;AAEA,SAAS,iBAAiB,EACxB,WACA,QAAQ,UACR,aAAa,GACb,GAAG,SACuD;CAC1D,OACE,oBAACA,UAAmB,QAApB;EAA2B,aAAU;EACnC,UAAA,oBAACA,UAAmB,SAApB;GACE,aAAU;GACH;GACK;GACZ,WAAW,GACT,gdACA,SACF;GACA,GAAI;EACL,CAAA;CACwB,CAAA;AAE/B"}
1
+ {"version":3,"file":"hover-card.js","names":["HoverCardPrimitive"],"sources":["../../../src/components/ui/hover-card.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from 'cn';\nimport { HoverCard as HoverCardPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nfunction HoverCard({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nfunction HoverCardTrigger({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />;\n}\n\nfunction HoverCardContent({\n className,\n align = 'center',\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-sm border border-border bg-popover p-2.5 text-sm text-popover-foreground outline-hidden duration-100 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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent };\n"],"mappings":";;;;;;AAMA,SAAS,UAAU,EAAE,GAAG,SAA+D;CACrF,OAAO,oBAACA,YAAmB,MAApB;EAAyB,aAAU;EAAa,GAAI;CAAQ,CAAA;AACrE;AAEA,SAAS,iBAAiB,EAAE,GAAG,SAAkE;CAC/F,OAAO,oBAACA,YAAmB,SAApB;EAA4B,aAAU;EAAqB,GAAI;CAAQ,CAAA;AAChF;AAEA,SAAS,iBAAiB,EACxB,WACA,QAAQ,UACR,aAAa,GACb,GAAG,SACuD;CAC1D,OACE,oBAACA,YAAmB,QAApB;EAA2B,aAAU;EACnC,UAAA,oBAACA,YAAmB,SAApB;GACE,aAAU;GACH;GACK;GACZ,WAAW,GACT,gdACA,SACF;GACA,GAAI;EACL,CAAA;CACwB,CAAA;AAE/B"}
@@ -0,0 +1,87 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_rolldown_runtime = require("../../chunks/rolldown-runtime-CmQyd0Gu.cjs");
3
+ const require_components_ui_button = require("./button.cjs");
4
+ const require_components_ui_input = require("./input.cjs");
5
+ const require_components_ui_textarea = require("./textarea.cjs");
6
+ let cn = require("cn");
7
+ let react = require("react");
8
+ react = require_rolldown_runtime.__toESM(react, 1);
9
+ let react_jsx_runtime = require("react/jsx-runtime");
10
+ let class_variance_authority = require("class-variance-authority");
11
+ // src/components/ui/input-group.tsx
12
+ function InputGroup({ className, ...props }) {
13
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
14
+ "data-slot": "input-group",
15
+ role: "group",
16
+ className: (0, cn.cn)("group/input-group relative flex h-8 w-full min-w-0 items-center rounded-sm border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5", className),
17
+ ...props
18
+ });
19
+ }
20
+ var inputGroupAddonVariants = (0, class_variance_authority.cva)("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4", {
21
+ variants: { align: {
22
+ "inline-start": "order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]",
23
+ "inline-end": "order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]",
24
+ "block-start": "order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2",
25
+ "block-end": "order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2"
26
+ } },
27
+ defaultVariants: { align: "inline-start" }
28
+ });
29
+ function InputGroupAddon({ className, align = "inline-start", ...props }) {
30
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
31
+ role: "group",
32
+ "data-slot": "input-group-addon",
33
+ "data-align": align,
34
+ className: (0, cn.cn)(inputGroupAddonVariants({ align }), className),
35
+ onClick: (e) => {
36
+ if (e.target.closest("button")) return;
37
+ e.currentTarget.parentElement?.querySelector("input")?.focus();
38
+ },
39
+ ...props
40
+ });
41
+ }
42
+ var inputGroupButtonVariants = (0, class_variance_authority.cva)("flex items-center gap-2 text-sm shadow-none", {
43
+ variants: { size: {
44
+ xs: "h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
45
+ sm: "",
46
+ "icon-xs": "size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0",
47
+ "icon-sm": "size-8 p-0 has-[>svg]:p-0"
48
+ } },
49
+ defaultVariants: { size: "xs" }
50
+ });
51
+ function InputGroupButton({ className, type = "button", variant = "ghost", size = "xs", ...props }) {
52
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_ui_button.Button, {
53
+ type,
54
+ "data-size": size,
55
+ variant,
56
+ className: (0, cn.cn)(inputGroupButtonVariants({ size }), className),
57
+ ...props
58
+ });
59
+ }
60
+ function InputGroupText({ className, ...props }) {
61
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
62
+ className: (0, cn.cn)("flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4", className),
63
+ ...props
64
+ });
65
+ }
66
+ function InputGroupInput({ className, ...props }) {
67
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_ui_input.Input, {
68
+ "data-slot": "input-group-control",
69
+ className: (0, cn.cn)("flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent", className),
70
+ ...props
71
+ });
72
+ }
73
+ function InputGroupTextarea({ className, ...props }) {
74
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_ui_textarea.Textarea, {
75
+ "data-slot": "input-group-control",
76
+ className: (0, cn.cn)("flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent", className),
77
+ ...props
78
+ });
79
+ }
80
+ exports.InputGroup = InputGroup;
81
+ exports.InputGroupAddon = InputGroupAddon;
82
+ exports.InputGroupButton = InputGroupButton;
83
+ exports.InputGroupInput = InputGroupInput;
84
+ exports.InputGroupText = InputGroupText;
85
+ exports.InputGroupTextarea = InputGroupTextarea;
86
+
87
+ //# sourceMappingURL=input-group.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-group.cjs","names":["cva","Button","Input","Textarea"],"sources":["../../../src/components/ui/input-group.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from 'cn';\nimport * as React from 'react';\n\nimport { Button } from './button';\nimport { Input } from './input';\nimport { Textarea } from './textarea';\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n 'group/input-group relative flex h-8 w-full min-w-0 items-center rounded-sm border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5',\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n 'inline-start': 'order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]',\n 'inline-end': 'order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]',\n 'block-start':\n 'order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2',\n 'block-end':\n 'order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2',\n },\n },\n defaultVariants: {\n align: 'inline-start',\n },\n },\n);\n\nfunction InputGroupAddon({\n className,\n align = 'inline-start',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest('button')) {\n return;\n }\n e.currentTarget.parentElement?.querySelector('input')?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva('flex items-center gap-2 text-sm shadow-none', {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: '',\n 'icon-xs': 'size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0',\n 'icon-sm': 'size-8 p-0 has-[>svg]:p-0',\n },\n },\n defaultVariants: {\n size: 'xs',\n },\n});\n\nfunction InputGroupButton({\n className,\n type = 'button',\n variant = 'ghost',\n size = 'xs',\n ...props\n}: Omit<React.ComponentProps<typeof Button>, 'size'> &\n VariantProps<typeof inputGroupButtonVariants>) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({ className, ...props }: React.ComponentProps<'input'>) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n};\n"],"mappings":";;;;;;;;;;;AAQA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;CACxE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,aAAU;EACV,MAAK;EACL,YAAA,GAAW,GAAA,GAAA,CACT,ylCACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,IAAM,2BAAA,GAA0BA,yBAAAA,IAAAA,CAC9B,2PACA;CACE,UAAU,EACR,OAAO;EACL,gBAAgB;EAChB,cAAc;EACd,eACE;EACF,aACE;CACJ,EACF;CACA,iBAAiB,EACf,OAAO,eACT;AACF,CACF;AAEA,SAAS,gBAAgB,EACvB,WACA,QAAQ,gBACR,GAAG,SAC0E;CAC7E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,MAAK;EACL,aAAU;EACV,cAAY;EACZ,YAAA,GAAW,GAAA,GAAA,CAAG,wBAAwB,EAAE,MAAM,CAAC,GAAG,SAAS;EAC3D,UAAU,MAAM;GACd,IAAK,EAAE,OAAuB,QAAQ,QAAQ,GAC5C;GAEF,EAAE,cAAc,eAAe,cAAc,OAAO,CAAC,EAAE,MAAM;EAC/D;EACA,GAAI;CACL,CAAA;AAEL;AAEA,IAAM,4BAAA,GAA2BA,yBAAAA,IAAAA,CAAI,+CAA+C;CAClF,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,WAAW;EACX,WAAW;CACb,EACF;CACA,iBAAiB,EACf,MAAM,KACR;AACF,CAAC;AAED,SAAS,iBAAiB,EACxB,WACA,OAAO,UACP,UAAU,SACV,OAAO,MACP,GAAG,SAE4C;CAC/C,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,QAAD;EACQ;EACN,aAAW;EACF;EACT,YAAA,GAAW,GAAA,GAAA,CAAG,yBAAyB,EAAE,KAAK,CAAC,GAAG,SAAS;EAC3D,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,eAAe,EAAE,WAAW,GAAG,SAAuC;CAC7E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EACE,YAAA,GAAW,GAAA,GAAA,CACT,0HACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,gBAAgB,EAAE,WAAW,GAAG,SAAwC;CAC/E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,4BAAAA,OAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CACT,+JACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,mBAAmB,EAAE,WAAW,GAAG,SAA2C;CACrF,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,+BAAAA,UAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CACT,gLACA,SACF;EACA,GAAI;CACL,CAAA;AAEL"}