@marktiderman/genesis-ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) hide show
  1. package/dist/ViewToggle-DDe_Luj2.d.ts +10 -0
  2. package/dist/chunk-2B3MFHBQ.js +94 -0
  3. package/dist/chunk-2B3MFHBQ.js.map +1 -0
  4. package/dist/chunk-2MQKBZBJ.js +87 -0
  5. package/dist/chunk-2MQKBZBJ.js.map +1 -0
  6. package/dist/chunk-2MXMWBDV.js +30 -0
  7. package/dist/chunk-2MXMWBDV.js.map +1 -0
  8. package/dist/chunk-2SBHHXAC.js +40 -0
  9. package/dist/chunk-2SBHHXAC.js.map +1 -0
  10. package/dist/chunk-4HUKJSKC.js +51 -0
  11. package/dist/chunk-4HUKJSKC.js.map +1 -0
  12. package/dist/chunk-4RAZJ6LL.js +27 -0
  13. package/dist/chunk-4RAZJ6LL.js.map +1 -0
  14. package/dist/chunk-4TROUCWO.js +43 -0
  15. package/dist/chunk-4TROUCWO.js.map +1 -0
  16. package/dist/chunk-4V4H2ZM7.js +170 -0
  17. package/dist/chunk-4V4H2ZM7.js.map +1 -0
  18. package/dist/chunk-5J7BP5DI.js +47 -0
  19. package/dist/chunk-5J7BP5DI.js.map +1 -0
  20. package/dist/chunk-5Q4FABZQ.js +44 -0
  21. package/dist/chunk-5Q4FABZQ.js.map +1 -0
  22. package/dist/chunk-63FW5ZUA.js +26 -0
  23. package/dist/chunk-63FW5ZUA.js.map +1 -0
  24. package/dist/chunk-6V4GJUE3.js +25 -0
  25. package/dist/chunk-6V4GJUE3.js.map +1 -0
  26. package/dist/chunk-7H3E5VOJ.js +205 -0
  27. package/dist/chunk-7H3E5VOJ.js.map +1 -0
  28. package/dist/chunk-7OBL3H5P.js +83 -0
  29. package/dist/chunk-7OBL3H5P.js.map +1 -0
  30. package/dist/chunk-A5WHNNXJ.js +22 -0
  31. package/dist/chunk-A5WHNNXJ.js.map +1 -0
  32. package/dist/chunk-AI6CCNWK.js +51 -0
  33. package/dist/chunk-AI6CCNWK.js.map +1 -0
  34. package/dist/chunk-AIODTBWP.js +23 -0
  35. package/dist/chunk-AIODTBWP.js.map +1 -0
  36. package/dist/chunk-C6H7AMO4.js +43 -0
  37. package/dist/chunk-C6H7AMO4.js.map +1 -0
  38. package/dist/chunk-CLK7JBZJ.js +288 -0
  39. package/dist/chunk-CLK7JBZJ.js.map +1 -0
  40. package/dist/chunk-EI5EGKHL.js +32 -0
  41. package/dist/chunk-EI5EGKHL.js.map +1 -0
  42. package/dist/chunk-F2JB7YFF.js +341 -0
  43. package/dist/chunk-F2JB7YFF.js.map +1 -0
  44. package/dist/chunk-FCGFG4RV.js +120 -0
  45. package/dist/chunk-FCGFG4RV.js.map +1 -0
  46. package/dist/chunk-FFSDFQQN.js +19 -0
  47. package/dist/chunk-FFSDFQQN.js.map +1 -0
  48. package/dist/chunk-FN3FZVUR.js +79 -0
  49. package/dist/chunk-FN3FZVUR.js.map +1 -0
  50. package/dist/chunk-FZYUVUXU.js +199 -0
  51. package/dist/chunk-FZYUVUXU.js.map +1 -0
  52. package/dist/chunk-GJ6XSCNF.js +64 -0
  53. package/dist/chunk-GJ6XSCNF.js.map +1 -0
  54. package/dist/chunk-HSHIZHYR.js +23 -0
  55. package/dist/chunk-HSHIZHYR.js.map +1 -0
  56. package/dist/chunk-HVQCZFJ7.js +115 -0
  57. package/dist/chunk-HVQCZFJ7.js.map +1 -0
  58. package/dist/chunk-IKIFQILN.js +124 -0
  59. package/dist/chunk-IKIFQILN.js.map +1 -0
  60. package/dist/chunk-JEECTX26.js +20 -0
  61. package/dist/chunk-JEECTX26.js.map +1 -0
  62. package/dist/chunk-JJ4NOMMI.js +73 -0
  63. package/dist/chunk-JJ4NOMMI.js.map +1 -0
  64. package/dist/chunk-JXI2MYL3.js +40 -0
  65. package/dist/chunk-JXI2MYL3.js.map +1 -0
  66. package/dist/chunk-JYPENH7T.js +95 -0
  67. package/dist/chunk-JYPENH7T.js.map +1 -0
  68. package/dist/chunk-K23AQNOM.js +51 -0
  69. package/dist/chunk-K23AQNOM.js.map +1 -0
  70. package/dist/chunk-K4YLKVMX.js +24 -0
  71. package/dist/chunk-K4YLKVMX.js.map +1 -0
  72. package/dist/chunk-KBS4BHME.js +11 -0
  73. package/dist/chunk-KBS4BHME.js.map +1 -0
  74. package/dist/chunk-LRXDZBV2.js +26 -0
  75. package/dist/chunk-LRXDZBV2.js.map +1 -0
  76. package/dist/chunk-M7AU5DDM.js +26 -0
  77. package/dist/chunk-M7AU5DDM.js.map +1 -0
  78. package/dist/chunk-MUQLZFUR.js +31 -0
  79. package/dist/chunk-MUQLZFUR.js.map +1 -0
  80. package/dist/chunk-N2ZFNOOT.js +57 -0
  81. package/dist/chunk-N2ZFNOOT.js.map +1 -0
  82. package/dist/chunk-NJMO3VPA.js +26 -0
  83. package/dist/chunk-NJMO3VPA.js.map +1 -0
  84. package/dist/chunk-NZ5WBA4R.js +18 -0
  85. package/dist/chunk-NZ5WBA4R.js.map +1 -0
  86. package/dist/chunk-OCTV3S4I.js +29 -0
  87. package/dist/chunk-OCTV3S4I.js.map +1 -0
  88. package/dist/chunk-OVU3Z2MT.js +22 -0
  89. package/dist/chunk-OVU3Z2MT.js.map +1 -0
  90. package/dist/chunk-OZ7ZAYCS.js +35 -0
  91. package/dist/chunk-OZ7ZAYCS.js.map +1 -0
  92. package/dist/chunk-OZZTPE7F.js +51 -0
  93. package/dist/chunk-OZZTPE7F.js.map +1 -0
  94. package/dist/chunk-QBZMY2AF.js +90 -0
  95. package/dist/chunk-QBZMY2AF.js.map +1 -0
  96. package/dist/chunk-QCJAASJT.js +242 -0
  97. package/dist/chunk-QCJAASJT.js.map +1 -0
  98. package/dist/chunk-QFM4Z2SS.js +19 -0
  99. package/dist/chunk-QFM4Z2SS.js.map +1 -0
  100. package/dist/chunk-SBJV3K4G.js +120 -0
  101. package/dist/chunk-SBJV3K4G.js.map +1 -0
  102. package/dist/chunk-SCUT2ZCD.js +109 -0
  103. package/dist/chunk-SCUT2ZCD.js.map +1 -0
  104. package/dist/chunk-SVXDWPLO.js +102 -0
  105. package/dist/chunk-SVXDWPLO.js.map +1 -0
  106. package/dist/chunk-SXSCHWZU.js +27 -0
  107. package/dist/chunk-SXSCHWZU.js.map +1 -0
  108. package/dist/chunk-T465NJRL.js +134 -0
  109. package/dist/chunk-T465NJRL.js.map +1 -0
  110. package/dist/chunk-TAP3PBQT.js +39 -0
  111. package/dist/chunk-TAP3PBQT.js.map +1 -0
  112. package/dist/chunk-TKA4LOMT.js +37 -0
  113. package/dist/chunk-TKA4LOMT.js.map +1 -0
  114. package/dist/chunk-UGHQFQOE.js +142 -0
  115. package/dist/chunk-UGHQFQOE.js.map +1 -0
  116. package/dist/chunk-W5Y3LG5K.js +26 -0
  117. package/dist/chunk-W5Y3LG5K.js.map +1 -0
  118. package/dist/chunk-W64GERJW.js +22 -0
  119. package/dist/chunk-W64GERJW.js.map +1 -0
  120. package/dist/chunk-WALXVR6V.js +9 -0
  121. package/dist/chunk-WALXVR6V.js.map +1 -0
  122. package/dist/chunk-WZWR2ELB.js +30 -0
  123. package/dist/chunk-WZWR2ELB.js.map +1 -0
  124. package/dist/chunk-X7KMF6NH.js +59 -0
  125. package/dist/chunk-X7KMF6NH.js.map +1 -0
  126. package/dist/chunk-XISSLIMH.js +20 -0
  127. package/dist/chunk-XISSLIMH.js.map +1 -0
  128. package/dist/chunk-YZEA5TGK.js +87 -0
  129. package/dist/chunk-YZEA5TGK.js.map +1 -0
  130. package/dist/chunk-ZD32TSOK.js +101 -0
  131. package/dist/chunk-ZD32TSOK.js.map +1 -0
  132. package/dist/chunk-ZDAT5JDH.js +82 -0
  133. package/dist/chunk-ZDAT5JDH.js.map +1 -0
  134. package/dist/components/data/index.d.ts +458 -0
  135. package/dist/components/data/index.js +2923 -0
  136. package/dist/components/data/index.js.map +1 -0
  137. package/dist/components/ui/accordion.d.ts +9 -0
  138. package/dist/components/ui/accordion.js +4 -0
  139. package/dist/components/ui/accordion.js.map +1 -0
  140. package/dist/components/ui/alert-dialog.d.ts +17 -0
  141. package/dist/components/ui/alert-dialog.js +4 -0
  142. package/dist/components/ui/alert-dialog.js.map +1 -0
  143. package/dist/components/ui/alert.d.ts +14 -0
  144. package/dist/components/ui/alert.js +4 -0
  145. package/dist/components/ui/alert.js.map +1 -0
  146. package/dist/components/ui/aspect-ratio.d.ts +6 -0
  147. package/dist/components/ui/aspect-ratio.js +3 -0
  148. package/dist/components/ui/aspect-ratio.js.map +1 -0
  149. package/dist/components/ui/avatar.d.ts +8 -0
  150. package/dist/components/ui/avatar.js +4 -0
  151. package/dist/components/ui/avatar.js.map +1 -0
  152. package/dist/components/ui/badge.d.ts +13 -0
  153. package/dist/components/ui/badge.js +4 -0
  154. package/dist/components/ui/badge.js.map +1 -0
  155. package/dist/components/ui/breadcrumb.d.ts +22 -0
  156. package/dist/components/ui/breadcrumb.js +4 -0
  157. package/dist/components/ui/breadcrumb.js.map +1 -0
  158. package/dist/components/ui/button-group.d.ts +9 -0
  159. package/dist/components/ui/button-group.js +4 -0
  160. package/dist/components/ui/button-group.js.map +1 -0
  161. package/dist/components/ui/button.d.ts +15 -0
  162. package/dist/components/ui/button.js +4 -0
  163. package/dist/components/ui/button.js.map +1 -0
  164. package/dist/components/ui/calendar.d.ts +13 -0
  165. package/dist/components/ui/calendar.js +5 -0
  166. package/dist/components/ui/calendar.js.map +1 -0
  167. package/dist/components/ui/card.d.ts +11 -0
  168. package/dist/components/ui/card.js +4 -0
  169. package/dist/components/ui/card.js.map +1 -0
  170. package/dist/components/ui/carousel.d.ts +24 -0
  171. package/dist/components/ui/carousel.js +5 -0
  172. package/dist/components/ui/carousel.js.map +1 -0
  173. package/dist/components/ui/chart.d.ts +51 -0
  174. package/dist/components/ui/chart.js +4 -0
  175. package/dist/components/ui/chart.js.map +1 -0
  176. package/dist/components/ui/checkbox.d.ts +6 -0
  177. package/dist/components/ui/checkbox.js +4 -0
  178. package/dist/components/ui/checkbox.js.map +1 -0
  179. package/dist/components/ui/collapsible.d.ts +8 -0
  180. package/dist/components/ui/collapsible.js +3 -0
  181. package/dist/components/ui/collapsible.js.map +1 -0
  182. package/dist/components/ui/command.d.ts +85 -0
  183. package/dist/components/ui/command.js +5 -0
  184. package/dist/components/ui/command.js.map +1 -0
  185. package/dist/components/ui/context-menu.d.ts +30 -0
  186. package/dist/components/ui/context-menu.js +4 -0
  187. package/dist/components/ui/context-menu.js.map +1 -0
  188. package/dist/components/ui/date-picker.d.ts +12 -0
  189. package/dist/components/ui/date-picker.js +7 -0
  190. package/dist/components/ui/date-picker.js.map +1 -0
  191. package/dist/components/ui/dialog.d.ts +18 -0
  192. package/dist/components/ui/dialog.js +4 -0
  193. package/dist/components/ui/dialog.js.map +1 -0
  194. package/dist/components/ui/drawer.d.ts +27 -0
  195. package/dist/components/ui/drawer.js +4 -0
  196. package/dist/components/ui/drawer.js.map +1 -0
  197. package/dist/components/ui/dropdown-menu.d.ts +30 -0
  198. package/dist/components/ui/dropdown-menu.js +4 -0
  199. package/dist/components/ui/dropdown-menu.js.map +1 -0
  200. package/dist/components/ui/empty-state.d.ts +22 -0
  201. package/dist/components/ui/empty-state.js +4 -0
  202. package/dist/components/ui/empty-state.js.map +1 -0
  203. package/dist/components/ui/form-field.d.ts +17 -0
  204. package/dist/components/ui/form-field.js +5 -0
  205. package/dist/components/ui/form-field.js.map +1 -0
  206. package/dist/components/ui/hover-card.d.ts +8 -0
  207. package/dist/components/ui/hover-card.js +4 -0
  208. package/dist/components/ui/hover-card.js.map +1 -0
  209. package/dist/components/ui/input-group.d.ts +14 -0
  210. package/dist/components/ui/input-group.js +4 -0
  211. package/dist/components/ui/input-group.js.map +1 -0
  212. package/dist/components/ui/input-otp.d.ts +37 -0
  213. package/dist/components/ui/input-otp.js +4 -0
  214. package/dist/components/ui/input-otp.js.map +1 -0
  215. package/dist/components/ui/input.d.ts +5 -0
  216. package/dist/components/ui/input.js +4 -0
  217. package/dist/components/ui/input.js.map +1 -0
  218. package/dist/components/ui/kbd.d.ts +8 -0
  219. package/dist/components/ui/kbd.js +4 -0
  220. package/dist/components/ui/kbd.js.map +1 -0
  221. package/dist/components/ui/label.d.ts +8 -0
  222. package/dist/components/ui/label.js +4 -0
  223. package/dist/components/ui/label.js.map +1 -0
  224. package/dist/components/ui/menubar.d.ts +31 -0
  225. package/dist/components/ui/menubar.js +4 -0
  226. package/dist/components/ui/menubar.js.map +1 -0
  227. package/dist/components/ui/navigation-menu.d.ts +15 -0
  228. package/dist/components/ui/navigation-menu.js +4 -0
  229. package/dist/components/ui/navigation-menu.js.map +1 -0
  230. package/dist/components/ui/pagination.d.ts +33 -0
  231. package/dist/components/ui/pagination.js +5 -0
  232. package/dist/components/ui/pagination.js.map +1 -0
  233. package/dist/components/ui/popover.d.ts +8 -0
  234. package/dist/components/ui/popover.js +4 -0
  235. package/dist/components/ui/popover.js.map +1 -0
  236. package/dist/components/ui/progress.d.ts +9 -0
  237. package/dist/components/ui/progress.js +4 -0
  238. package/dist/components/ui/progress.js.map +1 -0
  239. package/dist/components/ui/radio-group.d.ts +7 -0
  240. package/dist/components/ui/radio-group.js +4 -0
  241. package/dist/components/ui/radio-group.js.map +1 -0
  242. package/dist/components/ui/resizable.d.ts +27 -0
  243. package/dist/components/ui/resizable.js +4 -0
  244. package/dist/components/ui/resizable.js.map +1 -0
  245. package/dist/components/ui/scroll-area.d.ts +9 -0
  246. package/dist/components/ui/scroll-area.js +4 -0
  247. package/dist/components/ui/scroll-area.js.map +1 -0
  248. package/dist/components/ui/select.d.ts +13 -0
  249. package/dist/components/ui/select.js +4 -0
  250. package/dist/components/ui/select.js.map +1 -0
  251. package/dist/components/ui/separator.d.ts +10 -0
  252. package/dist/components/ui/separator.js +4 -0
  253. package/dist/components/ui/separator.js.map +1 -0
  254. package/dist/components/ui/sheet.d.ts +29 -0
  255. package/dist/components/ui/sheet.js +4 -0
  256. package/dist/components/ui/sheet.js.map +1 -0
  257. package/dist/components/ui/skeleton.d.ts +6 -0
  258. package/dist/components/ui/skeleton.js +4 -0
  259. package/dist/components/ui/skeleton.js.map +1 -0
  260. package/dist/components/ui/slider.d.ts +6 -0
  261. package/dist/components/ui/slider.js +4 -0
  262. package/dist/components/ui/slider.js.map +1 -0
  263. package/dist/components/ui/sonner.d.ts +9 -0
  264. package/dist/components/ui/sonner.js +4 -0
  265. package/dist/components/ui/sonner.js.map +1 -0
  266. package/dist/components/ui/spinner.d.ts +9 -0
  267. package/dist/components/ui/spinner.js +4 -0
  268. package/dist/components/ui/spinner.js.map +1 -0
  269. package/dist/components/ui/switch.d.ts +6 -0
  270. package/dist/components/ui/switch.js +4 -0
  271. package/dist/components/ui/switch.js.map +1 -0
  272. package/dist/components/ui/table.d.ts +12 -0
  273. package/dist/components/ui/table.js +4 -0
  274. package/dist/components/ui/table.js.map +1 -0
  275. package/dist/components/ui/tabs.d.ts +20 -0
  276. package/dist/components/ui/tabs.js +4 -0
  277. package/dist/components/ui/tabs.js.map +1 -0
  278. package/dist/components/ui/textarea.d.ts +5 -0
  279. package/dist/components/ui/textarea.js +4 -0
  280. package/dist/components/ui/textarea.js.map +1 -0
  281. package/dist/components/ui/toggle-group.d.ts +15 -0
  282. package/dist/components/ui/toggle-group.js +5 -0
  283. package/dist/components/ui/toggle-group.js.map +1 -0
  284. package/dist/components/ui/toggle.d.ts +15 -0
  285. package/dist/components/ui/toggle.js +4 -0
  286. package/dist/components/ui/toggle.js.map +1 -0
  287. package/dist/components/ui/tooltip.d.ts +10 -0
  288. package/dist/components/ui/tooltip.js +4 -0
  289. package/dist/components/ui/tooltip.js.map +1 -0
  290. package/dist/components/ui/typography.d.ts +14 -0
  291. package/dist/components/ui/typography.js +4 -0
  292. package/dist/components/ui/typography.js.map +1 -0
  293. package/dist/hooks/index.d.ts +13 -0
  294. package/dist/hooks/index.js +11 -0
  295. package/dist/hooks/index.js.map +1 -0
  296. package/dist/hooks/use-data-filters.d.ts +32 -0
  297. package/dist/hooks/use-data-filters.js +4 -0
  298. package/dist/hooks/use-data-filters.js.map +1 -0
  299. package/dist/hooks/use-keyboard-navigation.d.ts +29 -0
  300. package/dist/hooks/use-keyboard-navigation.js +3 -0
  301. package/dist/hooks/use-keyboard-navigation.js.map +1 -0
  302. package/dist/hooks/use-mobile.d.ts +3 -0
  303. package/dist/hooks/use-mobile.js +3 -0
  304. package/dist/hooks/use-mobile.js.map +1 -0
  305. package/dist/hooks/use-one.d.ts +18 -0
  306. package/dist/hooks/use-one.js +4 -0
  307. package/dist/hooks/use-one.js.map +1 -0
  308. package/dist/hooks/use-prefetch.d.ts +19 -0
  309. package/dist/hooks/use-prefetch.js +3 -0
  310. package/dist/hooks/use-prefetch.js.map +1 -0
  311. package/dist/hooks/use-resource-form.d.ts +37 -0
  312. package/dist/hooks/use-resource-form.js +7 -0
  313. package/dist/hooks/use-resource-form.js.map +1 -0
  314. package/dist/hooks/use-resource-page.d.ts +5 -0
  315. package/dist/hooks/use-resource-page.js +4 -0
  316. package/dist/hooks/use-resource-page.js.map +1 -0
  317. package/dist/hooks/use-resource.d.ts +46 -0
  318. package/dist/hooks/use-resource.js +4 -0
  319. package/dist/hooks/use-resource.js.map +1 -0
  320. package/dist/hooks/use-view-preference.d.ts +6 -0
  321. package/dist/hooks/use-view-preference.js +3 -0
  322. package/dist/hooks/use-view-preference.js.map +1 -0
  323. package/dist/hooks/use-view-settings.d.ts +15 -0
  324. package/dist/hooks/use-view-settings.js +3 -0
  325. package/dist/hooks/use-view-settings.js.map +1 -0
  326. package/dist/hooks/use-wizard.d.ts +25 -0
  327. package/dist/hooks/use-wizard.js +3 -0
  328. package/dist/hooks/use-wizard.js.map +1 -0
  329. package/dist/index.d.ts +87 -0
  330. package/dist/index.js +56 -0
  331. package/dist/index.js.map +1 -0
  332. package/dist/navigation-qI86Ldug.d.ts +90 -0
  333. package/dist/provider/index.d.ts +1 -0
  334. package/dist/provider/index.js +3 -0
  335. package/dist/provider/index.js.map +1 -0
  336. package/dist/status-colors.d.ts +29 -0
  337. package/dist/status-colors.js +72 -0
  338. package/dist/status-colors.js.map +1 -0
  339. package/dist/types-HIZY7zxO.d.ts +61 -0
  340. package/dist/use-resource-page-BzvUM8de.d.ts +159 -0
  341. package/dist/utils.d.ts +7 -0
  342. package/dist/utils.js +3 -0
  343. package/dist/utils.js.map +1 -0
  344. package/package.json +350 -0
@@ -0,0 +1,120 @@
1
+ "use client";
2
+ import { cn } from './chunk-NZ5WBA4R.js';
3
+ import * as React from 'react';
4
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
5
+ import { ChevronRight, Check, Circle } from 'lucide-react';
6
+ import { jsxs, jsx } from 'react/jsx-runtime';
7
+
8
+ var DropdownMenu = DropdownMenuPrimitive.Root;
9
+ var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
10
+ var DropdownMenuGroup = DropdownMenuPrimitive.Group;
11
+ var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
12
+ var DropdownMenuSub = DropdownMenuPrimitive.Sub;
13
+ var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
14
+ var DropdownMenuSubTrigger = React.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
15
+ DropdownMenuPrimitive.SubTrigger,
16
+ {
17
+ ref,
18
+ className: cn(
19
+ "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[state=open]:bg-accent focus:bg-accent",
20
+ inset && "pl-8",
21
+ className
22
+ ),
23
+ ...props,
24
+ children: [
25
+ children,
26
+ /* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto h-4 w-4" })
27
+ ]
28
+ }
29
+ ));
30
+ DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
31
+ var DropdownMenuSubContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
32
+ DropdownMenuPrimitive.SubContent,
33
+ {
34
+ ref,
35
+ className: cn(
36
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
37
+ className
38
+ ),
39
+ ...props
40
+ }
41
+ ));
42
+ DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
43
+ var DropdownMenuContent = React.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
44
+ DropdownMenuPrimitive.Content,
45
+ {
46
+ ref,
47
+ sideOffset,
48
+ className: cn(
49
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
50
+ className
51
+ ),
52
+ ...props
53
+ }
54
+ ) }));
55
+ DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
56
+ var DropdownMenuItem = React.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
57
+ DropdownMenuPrimitive.Item,
58
+ {
59
+ ref,
60
+ className: cn(
61
+ "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",
62
+ inset && "pl-8",
63
+ className
64
+ ),
65
+ ...props
66
+ }
67
+ ));
68
+ DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
69
+ var DropdownMenuCheckboxItem = React.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
70
+ DropdownMenuPrimitive.CheckboxItem,
71
+ {
72
+ ref,
73
+ className: cn(
74
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",
75
+ className
76
+ ),
77
+ checked,
78
+ ...props,
79
+ children: [
80
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
81
+ children
82
+ ]
83
+ }
84
+ ));
85
+ DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
86
+ var DropdownMenuRadioItem = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
87
+ DropdownMenuPrimitive.RadioItem,
88
+ {
89
+ ref,
90
+ className: cn(
91
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",
92
+ className
93
+ ),
94
+ ...props,
95
+ children: [
96
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "h-2 w-2 fill-current" }) }) }),
97
+ children
98
+ ]
99
+ }
100
+ ));
101
+ DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
102
+ var DropdownMenuLabel = React.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
103
+ DropdownMenuPrimitive.Label,
104
+ {
105
+ ref,
106
+ className: cn("px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className),
107
+ ...props
108
+ }
109
+ ));
110
+ DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
111
+ var DropdownMenuSeparator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
112
+ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
113
+ var DropdownMenuShortcut = ({ className, ...props }) => {
114
+ return /* @__PURE__ */ jsx("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
115
+ };
116
+ DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
117
+
118
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };
119
+ //# sourceMappingURL=chunk-SBJV3K4G.js.map
120
+ //# sourceMappingURL=chunk-SBJV3K4G.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/dropdown-menu.tsx"],"names":[],"mappings":"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","file":"chunk-SBJV3K4G.js","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\n\nimport { cn } from \"../../utils\";\n\nconst DropdownMenu = DropdownMenuPrimitive.Root;\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & { inset?: boolean }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[state=open]:bg-accent focus:bg-accent\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto h-4 w-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\"px-2 py-1.5 text-sm font-semibold\", inset && \"pl-8\", className)}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator ref={ref} className={cn(\"-mx-1 my-1 h-px bg-muted\", className)} {...props} />\n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return <span className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)} {...props} />;\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n};\n"]}
@@ -0,0 +1,109 @@
1
+ "use client";
2
+ import { cn } from './chunk-NZ5WBA4R.js';
3
+ import * as React from 'react';
4
+ import * as SheetPrimitive from '@radix-ui/react-dialog';
5
+ import { cva } from 'class-variance-authority';
6
+ import { X } from 'lucide-react';
7
+ import { jsx, jsxs } from 'react/jsx-runtime';
8
+
9
+ var Sheet = SheetPrimitive.Root;
10
+ var SheetTrigger = SheetPrimitive.Trigger;
11
+ var SheetClose = SheetPrimitive.Close;
12
+ var SheetPortal = SheetPrimitive.Portal;
13
+ var SheetOverlay = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
14
+ SheetPrimitive.Overlay,
15
+ {
16
+ className: cn(
17
+ "fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
18
+ className
19
+ ),
20
+ ...props,
21
+ ref
22
+ }
23
+ ));
24
+ SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
25
+ var sheetVariants = cva(
26
+ "fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
27
+ {
28
+ variants: {
29
+ side: {
30
+ top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
31
+ bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
32
+ left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
33
+ right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
34
+ }
35
+ },
36
+ defaultVariants: {
37
+ side: "right"
38
+ }
39
+ }
40
+ );
41
+ var SheetContent = React.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs(SheetPortal, { children: [
42
+ /* @__PURE__ */ jsx(SheetOverlay, {}),
43
+ /* @__PURE__ */ jsxs(
44
+ SheetPrimitive.Content,
45
+ {
46
+ ref,
47
+ className: cn(sheetVariants({ side }), className),
48
+ ...props,
49
+ children: [
50
+ children,
51
+ /* @__PURE__ */ jsxs(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
52
+ /* @__PURE__ */ jsx(X, { className: "h-4 w-4" }),
53
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
54
+ ] })
55
+ ]
56
+ }
57
+ )
58
+ ] }));
59
+ SheetContent.displayName = SheetPrimitive.Content.displayName;
60
+ var SheetHeader = ({
61
+ className,
62
+ ...props
63
+ }) => /* @__PURE__ */ jsx(
64
+ "div",
65
+ {
66
+ className: cn(
67
+ "flex flex-col space-y-2 text-center sm:text-left",
68
+ className
69
+ ),
70
+ ...props
71
+ }
72
+ );
73
+ SheetHeader.displayName = "SheetHeader";
74
+ var SheetFooter = ({
75
+ className,
76
+ ...props
77
+ }) => /* @__PURE__ */ jsx(
78
+ "div",
79
+ {
80
+ className: cn(
81
+ "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
82
+ className
83
+ ),
84
+ ...props
85
+ }
86
+ );
87
+ SheetFooter.displayName = "SheetFooter";
88
+ var SheetTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
89
+ SheetPrimitive.Title,
90
+ {
91
+ ref,
92
+ className: cn("text-lg font-semibold text-foreground", className),
93
+ ...props
94
+ }
95
+ ));
96
+ SheetTitle.displayName = SheetPrimitive.Title.displayName;
97
+ var SheetDescription = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
98
+ SheetPrimitive.Description,
99
+ {
100
+ ref,
101
+ className: cn("text-sm text-muted-foreground", className),
102
+ ...props
103
+ }
104
+ ));
105
+ SheetDescription.displayName = SheetPrimitive.Description.displayName;
106
+
107
+ export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger };
108
+ //# sourceMappingURL=chunk-SCUT2ZCD.js.map
109
+ //# sourceMappingURL=chunk-SCUT2ZCD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/sheet.tsx"],"names":[],"mappings":"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","file":"chunk-SCUT2ZCD.js","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\nimport { cn } from \"../../utils\";\n\nconst Sheet = SheetPrimitive.Root;\nconst SheetTrigger = SheetPrimitive.Trigger;\nconst SheetClose = SheetPrimitive.Close;\nconst SheetPortal = SheetPrimitive.Portal;\n\nconst SheetOverlay = React.forwardRef<\n React.ComponentRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n ref={ref}\n />\n));\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\n\nconst sheetVariants = cva(\n \"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom:\n \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right:\n \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n);\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ComponentRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = \"right\", className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n));\nSheetContent.displayName = SheetPrimitive.Content.displayName;\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className,\n )}\n {...props}\n />\n);\nSheetHeader.displayName = \"SheetHeader\";\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className,\n )}\n {...props}\n />\n);\nSheetFooter.displayName = \"SheetFooter\";\n\nconst SheetTitle = React.forwardRef<\n React.ComponentRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n));\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\n\nconst SheetDescription = React.forwardRef<\n React.ComponentRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n"]}
@@ -0,0 +1,102 @@
1
+ "use client";
2
+ import { cn } from './chunk-NZ5WBA4R.js';
3
+ import * as React from 'react';
4
+ import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu';
5
+ import { ChevronDown } from 'lucide-react';
6
+ import { cva } from 'class-variance-authority';
7
+ import { jsxs, jsx } from 'react/jsx-runtime';
8
+
9
+ var NavigationMenu = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
10
+ NavigationMenuPrimitive.Root,
11
+ {
12
+ ref,
13
+ className: cn(
14
+ "relative z-10 flex max-w-max flex-1 items-center justify-center",
15
+ className
16
+ ),
17
+ ...props,
18
+ children: [
19
+ children,
20
+ /* @__PURE__ */ jsx(NavigationMenuViewport, {})
21
+ ]
22
+ }
23
+ ));
24
+ NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
25
+ var NavigationMenuList = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
26
+ NavigationMenuPrimitive.List,
27
+ {
28
+ ref,
29
+ className: cn(
30
+ "group flex flex-1 list-none items-center justify-center space-x-1",
31
+ className
32
+ ),
33
+ ...props
34
+ }
35
+ ));
36
+ NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
37
+ var NavigationMenuItem = NavigationMenuPrimitive.Item;
38
+ var navigationMenuTriggerStyle = cva(
39
+ "group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50"
40
+ );
41
+ var NavigationMenuTrigger = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
42
+ NavigationMenuPrimitive.Trigger,
43
+ {
44
+ ref,
45
+ className: cn(navigationMenuTriggerStyle(), "group", className),
46
+ ...props,
47
+ children: [
48
+ children,
49
+ " ",
50
+ /* @__PURE__ */ jsx(
51
+ ChevronDown,
52
+ {
53
+ className: "relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180",
54
+ "aria-hidden": "true"
55
+ }
56
+ )
57
+ ]
58
+ }
59
+ ));
60
+ NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
61
+ var NavigationMenuContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
62
+ NavigationMenuPrimitive.Content,
63
+ {
64
+ ref,
65
+ className: cn(
66
+ "left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto",
67
+ className
68
+ ),
69
+ ...props
70
+ }
71
+ ));
72
+ NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
73
+ var NavigationMenuLink = NavigationMenuPrimitive.Link;
74
+ var NavigationMenuViewport = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx(
75
+ NavigationMenuPrimitive.Viewport,
76
+ {
77
+ className: cn(
78
+ "origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]",
79
+ className
80
+ ),
81
+ ref,
82
+ ...props
83
+ }
84
+ ) }));
85
+ NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
86
+ var NavigationMenuIndicator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
87
+ NavigationMenuPrimitive.Indicator,
88
+ {
89
+ ref,
90
+ className: cn(
91
+ "top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in",
92
+ className
93
+ ),
94
+ ...props,
95
+ children: /* @__PURE__ */ jsx("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
96
+ }
97
+ ));
98
+ NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
99
+
100
+ export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle };
101
+ //# sourceMappingURL=chunk-SVXDWPLO.js.map
102
+ //# sourceMappingURL=chunk-SVXDWPLO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/navigation-menu.tsx"],"names":[],"mappings":"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","file":"chunk-SVXDWPLO.js","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cva } from \"class-variance-authority\";\n\nimport { cn } from \"../../utils\";\n\nconst NavigationMenu = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n className={cn(\n \"relative z-10 flex max-w-max flex-1 items-center justify-center\",\n className\n )}\n {...props}\n >\n {children}\n <NavigationMenuViewport />\n </NavigationMenuPrimitive.Root>\n));\nNavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;\n\nconst NavigationMenuList = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n className={cn(\n \"group flex flex-1 list-none items-center justify-center space-x-1\",\n className\n )}\n {...props}\n />\n));\nNavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;\n\nconst NavigationMenuItem = NavigationMenuPrimitive.Item;\n\nconst navigationMenuTriggerStyle = cva(\n \"group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50\"\n);\n\nconst NavigationMenuTrigger = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDown\n className=\"relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n));\nNavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;\n\nconst NavigationMenuContent = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto\",\n className\n )}\n {...props}\n />\n));\nNavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;\n\nconst NavigationMenuLink = NavigationMenuPrimitive.Link;\n\nconst NavigationMenuViewport = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>\n>(({ className, ...props }, ref) => (\n <div className={cn(\"absolute left-0 top-full flex justify-center\")}>\n <NavigationMenuPrimitive.Viewport\n className={cn(\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]\",\n className\n )}\n ref={ref}\n {...props}\n />\n </div>\n));\nNavigationMenuViewport.displayName =\n NavigationMenuPrimitive.Viewport.displayName;\n\nconst NavigationMenuIndicator = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n className={cn(\n \"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in\",\n className\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n));\nNavigationMenuIndicator.displayName =\n NavigationMenuPrimitive.Indicator.displayName;\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n};\n"]}
@@ -0,0 +1,27 @@
1
+ import { cn } from './chunk-NZ5WBA4R.js';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ function Separator({
5
+ className,
6
+ orientation = "horizontal",
7
+ decorative = true,
8
+ ...props
9
+ }) {
10
+ return /* @__PURE__ */ jsx(
11
+ "div",
12
+ {
13
+ role: decorative ? "none" : "separator",
14
+ "aria-orientation": decorative ? void 0 : orientation,
15
+ className: cn(
16
+ "shrink-0 bg-border",
17
+ orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
18
+ className
19
+ ),
20
+ ...props
21
+ }
22
+ );
23
+ }
24
+
25
+ export { Separator };
26
+ //# sourceMappingURL=chunk-SXSCHWZU.js.map
27
+ //# sourceMappingURL=chunk-SXSCHWZU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/separator.tsx"],"names":[],"mappings":";;;AAQA,SAAS,SAAA,CAAU;AAAA,EACjB,SAAA;AAAA,EACA,WAAA,GAAc,YAAA;AAAA,EACd,UAAA,GAAa,IAAA;AAAA,EACb,GAAG;AACL,CAAA,EAAmB;AACjB,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,aAAa,MAAA,GAAS,WAAA;AAAA,MAC5B,kBAAA,EAAkB,aAAa,MAAA,GAAY,WAAA;AAAA,MAC3C,SAAA,EAAW,EAAA;AAAA,QACT,oBAAA;AAAA,QACA,WAAA,KAAgB,eAAe,gBAAA,GAAmB,gBAAA;AAAA,QAClD;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-SXSCHWZU.js","sourcesContent":["import * as React from \"react\";\nimport { cn } from \"../../utils\";\n\ninterface SeparatorProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: \"horizontal\" | \"vertical\";\n decorative?: boolean;\n}\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ...props\n}: SeparatorProps) {\n return (\n <div\n role={decorative ? \"none\" : \"separator\"}\n aria-orientation={decorative ? undefined : orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n"]}
@@ -0,0 +1,134 @@
1
+ "use client";
2
+ import { useState, useRef, useEffect, useCallback } from 'react';
3
+
4
+ // src/hooks/use-keyboard-navigation.ts
5
+ function useKeyboardNavigation({
6
+ itemCount,
7
+ onOpen,
8
+ onToggleSelect,
9
+ searchInputRef,
10
+ enabled = true,
11
+ columns = 1
12
+ }) {
13
+ const [focusedIndex, setFocusedIndex] = useState(-1);
14
+ const [isActive, setIsActive] = useState(false);
15
+ const containerRef = useRef(null);
16
+ useEffect(() => {
17
+ setFocusedIndex(-1);
18
+ setIsActive(false);
19
+ }, [itemCount]);
20
+ const scrollToItem = useCallback((index) => {
21
+ if (!containerRef.current) return;
22
+ const items = containerRef.current.querySelectorAll("[data-nav-item]");
23
+ const item = items[index];
24
+ if (item) {
25
+ item.scrollIntoView({ block: "nearest", behavior: "smooth" });
26
+ }
27
+ }, []);
28
+ useEffect(() => {
29
+ if (!enabled) return;
30
+ const handler = (e) => {
31
+ const tag = e.target?.tagName;
32
+ if (tag === "INPUT" || tag === "TEXTAREA" || tag === "SELECT") {
33
+ if (e.key === "Escape") {
34
+ e.target.blur();
35
+ e.preventDefault();
36
+ }
37
+ return;
38
+ }
39
+ switch (e.key) {
40
+ case "j":
41
+ case "ArrowDown": {
42
+ e.preventDefault();
43
+ setIsActive(true);
44
+ setFocusedIndex((prev) => {
45
+ const next = Math.min(prev + 1, itemCount - 1);
46
+ scrollToItem(next);
47
+ return next;
48
+ });
49
+ break;
50
+ }
51
+ case "k":
52
+ case "ArrowUp": {
53
+ e.preventDefault();
54
+ setIsActive(true);
55
+ setFocusedIndex((prev) => {
56
+ const next = Math.max(prev - 1, 0);
57
+ scrollToItem(next);
58
+ return next;
59
+ });
60
+ break;
61
+ }
62
+ case "ArrowRight": {
63
+ if (columns <= 1) break;
64
+ e.preventDefault();
65
+ setIsActive(true);
66
+ setFocusedIndex((prev) => {
67
+ const next = Math.min(prev + 1, itemCount - 1);
68
+ scrollToItem(next);
69
+ return next;
70
+ });
71
+ break;
72
+ }
73
+ case "ArrowLeft": {
74
+ if (columns <= 1) break;
75
+ e.preventDefault();
76
+ setIsActive(true);
77
+ setFocusedIndex((prev) => {
78
+ const next = Math.max(prev - 1, 0);
79
+ scrollToItem(next);
80
+ return next;
81
+ });
82
+ break;
83
+ }
84
+ case "Enter": {
85
+ if (focusedIndex >= 0 && onOpen) {
86
+ e.preventDefault();
87
+ onOpen(focusedIndex);
88
+ }
89
+ break;
90
+ }
91
+ case "x": {
92
+ if (focusedIndex >= 0 && onToggleSelect) {
93
+ e.preventDefault();
94
+ onToggleSelect(focusedIndex);
95
+ }
96
+ break;
97
+ }
98
+ case "/": {
99
+ if (searchInputRef?.current) {
100
+ e.preventDefault();
101
+ searchInputRef.current.focus();
102
+ }
103
+ break;
104
+ }
105
+ case "Escape": {
106
+ setFocusedIndex(-1);
107
+ setIsActive(false);
108
+ break;
109
+ }
110
+ }
111
+ };
112
+ document.addEventListener("keydown", handler);
113
+ return () => document.removeEventListener("keydown", handler);
114
+ }, [
115
+ enabled,
116
+ itemCount,
117
+ focusedIndex,
118
+ onOpen,
119
+ onToggleSelect,
120
+ searchInputRef,
121
+ scrollToItem,
122
+ columns
123
+ ]);
124
+ return {
125
+ focusedIndex,
126
+ setFocusedIndex,
127
+ containerRef,
128
+ isActive
129
+ };
130
+ }
131
+
132
+ export { useKeyboardNavigation };
133
+ //# sourceMappingURL=chunk-T465NJRL.js.map
134
+ //# sourceMappingURL=chunk-T465NJRL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/use-keyboard-navigation.ts"],"names":[],"mappings":"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","file":"chunk-T465NJRL.js","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { useState, useEffect, useCallback, useRef } from \"react\";\n\nexport interface KeyboardNavOptions {\n /** Total number of navigable items */\n itemCount: number;\n /** Called when Enter is pressed on focused item */\n onOpen?: (index: number) => void;\n /** Called when x is pressed on focused item */\n onToggleSelect?: (index: number) => void;\n /** Ref to the search input to focus on \"/\" */\n searchInputRef?: React.RefObject<HTMLInputElement | null>;\n /** Whether navigation is enabled. Default true */\n enabled?: boolean;\n /** Number of columns in grid for arrow key navigation */\n columns?: number;\n}\n\nexport interface KeyboardNavResult {\n /** Currently focused item index (-1 = none) */\n focusedIndex: number;\n /** Set focused index manually */\n setFocusedIndex: (index: number) => void;\n /** Ref to attach to the grid container for scroll management */\n containerRef: React.RefObject<HTMLDivElement | null>;\n /** Whether keyboard nav is actively engaged (user has pressed j/k) */\n isActive: boolean;\n}\n\nexport function useKeyboardNavigation({\n itemCount,\n onOpen,\n onToggleSelect,\n searchInputRef,\n enabled = true,\n columns = 1,\n}: KeyboardNavOptions): KeyboardNavResult {\n const [focusedIndex, setFocusedIndex] = useState(-1);\n const [isActive, setIsActive] = useState(false);\n const containerRef = useRef<HTMLDivElement | null>(null);\n\n // Reset when items change\n useEffect(() => {\n setFocusedIndex(-1);\n setIsActive(false);\n }, [itemCount]);\n\n const scrollToItem = useCallback((index: number) => {\n if (!containerRef.current) return;\n const items = containerRef.current.querySelectorAll(\"[data-nav-item]\");\n const item = items[index] as HTMLElement | undefined;\n if (item) {\n item.scrollIntoView({ block: \"nearest\", behavior: \"smooth\" });\n }\n }, []);\n\n useEffect(() => {\n if (!enabled) return;\n\n const handler = (e: KeyboardEvent) => {\n // Don't capture when typing in inputs/textareas\n const tag = (e.target as HTMLElement)?.tagName;\n if (tag === \"INPUT\" || tag === \"TEXTAREA\" || tag === \"SELECT\") {\n // Only handle Escape to blur out of search\n if (e.key === \"Escape\") {\n (e.target as HTMLElement).blur();\n e.preventDefault();\n }\n return;\n }\n\n switch (e.key) {\n case \"j\":\n case \"ArrowDown\": {\n e.preventDefault();\n setIsActive(true);\n setFocusedIndex((prev) => {\n const next = Math.min(prev + 1, itemCount - 1);\n scrollToItem(next);\n return next;\n });\n break;\n }\n case \"k\":\n case \"ArrowUp\": {\n e.preventDefault();\n setIsActive(true);\n setFocusedIndex((prev) => {\n const next = Math.max(prev - 1, 0);\n scrollToItem(next);\n return next;\n });\n break;\n }\n case \"ArrowRight\": {\n if (columns <= 1) break;\n e.preventDefault();\n setIsActive(true);\n setFocusedIndex((prev) => {\n const next = Math.min(prev + 1, itemCount - 1);\n scrollToItem(next);\n return next;\n });\n break;\n }\n case \"ArrowLeft\": {\n if (columns <= 1) break;\n e.preventDefault();\n setIsActive(true);\n setFocusedIndex((prev) => {\n const next = Math.max(prev - 1, 0);\n scrollToItem(next);\n return next;\n });\n break;\n }\n case \"Enter\": {\n if (focusedIndex >= 0 && onOpen) {\n e.preventDefault();\n onOpen(focusedIndex);\n }\n break;\n }\n case \"x\": {\n if (focusedIndex >= 0 && onToggleSelect) {\n e.preventDefault();\n onToggleSelect(focusedIndex);\n }\n break;\n }\n case \"/\": {\n if (searchInputRef?.current) {\n e.preventDefault();\n searchInputRef.current.focus();\n }\n break;\n }\n case \"Escape\": {\n setFocusedIndex(-1);\n setIsActive(false);\n break;\n }\n }\n };\n\n document.addEventListener(\"keydown\", handler);\n return () => document.removeEventListener(\"keydown\", handler);\n }, [\n enabled,\n itemCount,\n focusedIndex,\n onOpen,\n onToggleSelect,\n searchInputRef,\n scrollToItem,\n columns,\n ]);\n\n return {\n focusedIndex,\n setFocusedIndex,\n containerRef,\n isActive,\n };\n}\n"]}
@@ -0,0 +1,39 @@
1
+ "use client";
2
+ import { cn } from './chunk-NZ5WBA4R.js';
3
+ import { GripVertical } from 'lucide-react';
4
+ import * as ResizablePrimitive from 'react-resizable-panels';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ var ResizablePanelGroup = ({
8
+ className,
9
+ ...props
10
+ }) => /* @__PURE__ */ jsx(
11
+ ResizablePrimitive.PanelGroup,
12
+ {
13
+ className: cn(
14
+ "flex h-full w-full data-[panel-group-direction=vertical]:flex-col",
15
+ className
16
+ ),
17
+ ...props
18
+ }
19
+ );
20
+ var ResizablePanel = ResizablePrimitive.Panel;
21
+ var ResizableHandle = ({
22
+ withHandle,
23
+ className,
24
+ ...props
25
+ }) => /* @__PURE__ */ jsx(
26
+ ResizablePrimitive.PanelResizeHandle,
27
+ {
28
+ className: cn(
29
+ "relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",
30
+ className
31
+ ),
32
+ ...props,
33
+ children: withHandle && /* @__PURE__ */ jsx("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ jsx(GripVertical, { className: "h-2.5 w-2.5" }) })
34
+ }
35
+ );
36
+
37
+ export { ResizableHandle, ResizablePanel, ResizablePanelGroup };
38
+ //# sourceMappingURL=chunk-TAP3PBQT.js.map
39
+ //# sourceMappingURL=chunk-TAP3PBQT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/resizable.tsx"],"names":[],"mappings":";;;;;AAQA,IAAM,sBAAsB,CAAC;AAAA,EAC3B,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACE,GAAA;AAAA,EAAoB,kBAAA,CAAA,UAAA;AAAA,EAAnB;AAAA,IACC,SAAA,EAAW,EAAA;AAAA,MACT,mEAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN;AAGF,IAAM,cAAA,GAAoC,kBAAA,CAAA;AAE1C,IAAM,kBAAkB,CAAC;AAAA,EACvB,UAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBAGE,GAAA;AAAA,EAAoB,kBAAA,CAAA,iBAAA;AAAA,EAAnB;AAAA,IACC,SAAA,EAAW,EAAA;AAAA,MACT,yoBAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEH,QAAA,EAAA,UAAA,wBACE,KAAA,EAAA,EAAI,SAAA,EAAU,6EACb,QAAA,kBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,aAAA,EAAc,CAAA,EACxC;AAAA;AAEJ","file":"chunk-TAP3PBQT.js","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { GripVertical } from \"lucide-react\";\nimport * as ResizablePrimitive from \"react-resizable-panels\";\n\nimport { cn } from \"../../utils\";\n\nconst ResizablePanelGroup = ({\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => (\n <ResizablePrimitive.PanelGroup\n className={cn(\n \"flex h-full w-full data-[panel-group-direction=vertical]:flex-col\",\n className\n )}\n {...props}\n />\n);\n\nconst ResizablePanel = ResizablePrimitive.Panel;\n\nconst ResizableHandle = ({\n withHandle,\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {\n withHandle?: boolean;\n}) => (\n <ResizablePrimitive.PanelResizeHandle\n className={cn(\n \"relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90\",\n className\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border\">\n <GripVertical className=\"h-2.5 w-2.5\" />\n </div>\n )}\n </ResizablePrimitive.PanelResizeHandle>\n);\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle };\n"]}