@egose/shadcn-theme 0.0.62 → 0.1.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 (643) hide show
  1. package/chunk-2SUYO2SG.js +170 -0
  2. package/chunk-2SUYO2SG.js.map +1 -0
  3. package/{chunk-DPGUIXSL.mjs → chunk-2UC2IM3Q.mjs} +4 -4
  4. package/chunk-2UC2IM3Q.mjs.map +1 -0
  5. package/chunk-2UTAR6ZA.js +27 -0
  6. package/chunk-2UTAR6ZA.js.map +1 -0
  7. package/{chunk-4O25L26A.js → chunk-2YMMYND2.js} +54 -27
  8. package/chunk-2YMMYND2.js.map +1 -0
  9. package/{chunk-FJGZ3SDA.mjs → chunk-3GHC4JQU.mjs} +2 -2
  10. package/{chunk-FJGZ3SDA.mjs.map → chunk-3GHC4JQU.mjs.map} +1 -1
  11. package/{chunk-WGNLM36B.js → chunk-4A5EDTXU.js} +3 -3
  12. package/{chunk-WGNLM36B.js.map → chunk-4A5EDTXU.js.map} +1 -1
  13. package/chunk-4ETXRZKO.js +101 -0
  14. package/chunk-4ETXRZKO.js.map +1 -0
  15. package/{chunk-AJFINSLK.mjs → chunk-4I6SLZWT.mjs} +2 -3
  16. package/chunk-4I6SLZWT.mjs.map +1 -0
  17. package/{chunk-M2OLRG5K.js → chunk-4JDCEDAG.js} +11 -11
  18. package/{chunk-M2OLRG5K.js.map → chunk-4JDCEDAG.js.map} +1 -1
  19. package/chunk-5TXFHYQ5.js +38 -0
  20. package/chunk-5TXFHYQ5.js.map +1 -0
  21. package/chunk-6C4NHVD6.js +19 -0
  22. package/chunk-6C4NHVD6.js.map +1 -0
  23. package/{chunk-J4KEZVR5.js → chunk-6KVESKTY.js} +5 -5
  24. package/chunk-6KVESKTY.js.map +1 -0
  25. package/{chunk-SQK67X4D.mjs → chunk-7BYWDRRI.mjs} +74 -24
  26. package/chunk-7BYWDRRI.mjs.map +1 -0
  27. package/chunk-7MDE2NEO.mjs +95 -0
  28. package/chunk-7MDE2NEO.mjs.map +1 -0
  29. package/chunk-7PX7GVOR.mjs +100 -0
  30. package/chunk-7PX7GVOR.mjs.map +1 -0
  31. package/{chunk-KNNX4FAH.js → chunk-CKGMFUU2.js} +14 -6
  32. package/chunk-CKGMFUU2.js.map +1 -0
  33. package/chunk-CSL3CTEN.mjs +69 -0
  34. package/chunk-CSL3CTEN.mjs.map +1 -0
  35. package/chunk-ECYGZFEF.js +154 -0
  36. package/chunk-ECYGZFEF.js.map +1 -0
  37. package/{chunk-K6S2HW6A.mjs → chunk-EEVAP4RB.mjs} +3 -3
  38. package/chunk-EEVAP4RB.mjs.map +1 -0
  39. package/chunk-EGG4SBHV.js +132 -0
  40. package/chunk-EGG4SBHV.js.map +1 -0
  41. package/chunk-F2QWMBUB.mjs +39 -0
  42. package/chunk-F2QWMBUB.mjs.map +1 -0
  43. package/{chunk-5WZCVX6I.js → chunk-FCE22MQI.js} +9 -9
  44. package/{chunk-5WZCVX6I.js.map → chunk-FCE22MQI.js.map} +1 -1
  45. package/{chunk-QJLNEVAE.mjs → chunk-GAJQQPUC.mjs} +3 -3
  46. package/chunk-GBNJFKPB.js +51 -0
  47. package/chunk-GBNJFKPB.js.map +1 -0
  48. package/{chunk-AREM2MQQ.js → chunk-GV62APQ6.js} +2 -2
  49. package/chunk-GV62APQ6.js.map +1 -0
  50. package/{chunk-CSDFVUNP.js → chunk-HC7SLR6P.js} +9 -9
  51. package/chunk-HC7SLR6P.js.map +1 -0
  52. package/chunk-HKZRXGJ7.mjs +158 -0
  53. package/chunk-HKZRXGJ7.mjs.map +1 -0
  54. package/chunk-HNN3WAQE.mjs +153 -0
  55. package/chunk-HNN3WAQE.mjs.map +1 -0
  56. package/{chunk-HR7QORF3.mjs → chunk-HTEQHRTK.mjs} +37 -28
  57. package/{chunk-HR7QORF3.mjs.map → chunk-HTEQHRTK.mjs.map} +1 -1
  58. package/chunk-HUEFOSXC.mjs +169 -0
  59. package/chunk-HUEFOSXC.mjs.map +1 -0
  60. package/chunk-ICOZ5BK7.mjs +110 -0
  61. package/chunk-ICOZ5BK7.mjs.map +1 -0
  62. package/{chunk-7734627I.mjs → chunk-JBIYG5WI.mjs} +3 -3
  63. package/chunk-JZXOJAMQ.js +96 -0
  64. package/chunk-JZXOJAMQ.js.map +1 -0
  65. package/{chunk-HMEHDD5N.js → chunk-K4JVHEI2.js} +19 -9
  66. package/chunk-K4JVHEI2.js.map +1 -0
  67. package/{chunk-OFRRRK4N.js → chunk-KB6BX6LA.js} +75 -25
  68. package/chunk-KB6BX6LA.js.map +1 -0
  69. package/chunk-KO4TIQLS.mjs +26 -0
  70. package/chunk-KO4TIQLS.mjs.map +1 -0
  71. package/{chunk-3DG54EVO.mjs → chunk-KRFQNEGY.mjs} +6 -6
  72. package/chunk-KRFQNEGY.mjs.map +1 -0
  73. package/{chunk-F57PDM2P.mjs → chunk-KUD4Z2MZ.mjs} +10 -5
  74. package/chunk-KUD4Z2MZ.mjs.map +1 -0
  75. package/{chunk-J4FPBR7A.mjs → chunk-LQEGZ3FQ.mjs} +4 -4
  76. package/chunk-LQEGZ3FQ.mjs.map +1 -0
  77. package/chunk-LVXIGNFJ.mjs +37 -0
  78. package/chunk-LVXIGNFJ.mjs.map +1 -0
  79. package/{chunk-NUCMI4CP.js → chunk-MAL7MDPS.js} +5 -5
  80. package/chunk-MAL7MDPS.js.map +1 -0
  81. package/chunk-MJT6B7OJ.js +159 -0
  82. package/chunk-MJT6B7OJ.js.map +1 -0
  83. package/chunk-MM5OJOOR.mjs +31 -0
  84. package/chunk-MM5OJOOR.mjs.map +1 -0
  85. package/{chunk-YYEQYAZF.js → chunk-MWBTSWPB.js} +3 -3
  86. package/{chunk-YYEQYAZF.js.map → chunk-MWBTSWPB.js.map} +1 -1
  87. package/chunk-N4GWGP3Z.mjs +131 -0
  88. package/chunk-N4GWGP3Z.mjs.map +1 -0
  89. package/{chunk-VOED37ZV.mjs → chunk-NHDANPMI.mjs} +2 -2
  90. package/chunk-NMYVYLKF.js +39 -0
  91. package/chunk-NMYVYLKF.js.map +1 -0
  92. package/{chunk-P6ZPREB6.js → chunk-OUVM5NST.js} +6 -6
  93. package/{chunk-P6ZPREB6.js.map → chunk-OUVM5NST.js.map} +1 -1
  94. package/{chunk-BWKIS24H.js → chunk-P3KR7ZM6.js} +6 -6
  95. package/{chunk-BWKIS24H.js.map → chunk-P3KR7ZM6.js.map} +1 -1
  96. package/{chunk-QBO4YAYA.mjs → chunk-PH6LAV32.mjs} +4 -4
  97. package/chunk-PH6LAV32.mjs.map +1 -0
  98. package/chunk-QCHBJMD6.mjs +38 -0
  99. package/chunk-QCHBJMD6.mjs.map +1 -0
  100. package/{chunk-IYZWOHGP.mjs → chunk-QEMZCGBS.mjs} +4 -4
  101. package/chunk-QEMZCGBS.mjs.map +1 -0
  102. package/chunk-QF6PFV6M.mjs +58 -0
  103. package/chunk-QF6PFV6M.mjs.map +1 -0
  104. package/chunk-QHCOMBHI.js +70 -0
  105. package/chunk-QHCOMBHI.js.map +1 -0
  106. package/chunk-QMLV5G5Z.js +187 -0
  107. package/chunk-QMLV5G5Z.js.map +1 -0
  108. package/{chunk-C736G6RV.mjs → chunk-RATSSU7L.mjs} +6 -6
  109. package/chunk-RATSSU7L.mjs.map +1 -0
  110. package/{chunk-UF2IGF36.js → chunk-RDDKZFT3.js} +5 -5
  111. package/chunk-RDDKZFT3.js.map +1 -0
  112. package/{chunk-XCFEBPRG.js → chunk-RGID3F2T.js} +8 -8
  113. package/{chunk-XCFEBPRG.js.map → chunk-RGID3F2T.js.map} +1 -1
  114. package/{chunk-MA3OJUIL.mjs → chunk-RIBB6GXJ.mjs} +2 -2
  115. package/chunk-RJG7QLDD.js +52 -0
  116. package/chunk-RJG7QLDD.js.map +1 -0
  117. package/chunk-RPF753T2.mjs +247 -0
  118. package/chunk-RPF753T2.mjs.map +1 -0
  119. package/chunk-UFRPUC7K.js +59 -0
  120. package/chunk-UFRPUC7K.js.map +1 -0
  121. package/chunk-UKPBHVOT.js +248 -0
  122. package/chunk-UKPBHVOT.js.map +1 -0
  123. package/chunk-UQJ4A4H2.mjs +624 -0
  124. package/chunk-UQJ4A4H2.mjs.map +1 -0
  125. package/chunk-US2CUADK.mjs +186 -0
  126. package/chunk-US2CUADK.mjs.map +1 -0
  127. package/{chunk-Q5QVXAFP.js → chunk-WHQINNUB.js} +20 -15
  128. package/chunk-WHQINNUB.js.map +1 -0
  129. package/{chunk-HBKXMTBF.mjs → chunk-WIISPZZE.mjs} +54 -27
  130. package/chunk-WIISPZZE.mjs.map +1 -0
  131. package/chunk-WKQDHQAS.js +111 -0
  132. package/chunk-WKQDHQAS.js.map +1 -0
  133. package/chunk-WREXRSAA.js +625 -0
  134. package/chunk-WREXRSAA.js.map +1 -0
  135. package/{chunk-AK7GRZQD.js → chunk-XGBDPMXL.js} +11 -11
  136. package/{chunk-AK7GRZQD.js.map → chunk-XGBDPMXL.js.map} +1 -1
  137. package/chunk-XMRJIUYX.mjs +55 -0
  138. package/chunk-XMRJIUYX.mjs.map +1 -0
  139. package/chunk-XVWILFYQ.mjs +50 -0
  140. package/chunk-XVWILFYQ.mjs.map +1 -0
  141. package/chunk-YJR5JBXS.js +56 -0
  142. package/chunk-YJR5JBXS.js.map +1 -0
  143. package/{chunk-L2NIAPCK.mjs → chunk-YOQJO7NI.mjs} +8 -8
  144. package/chunk-YQENFZOY.mjs +51 -0
  145. package/chunk-YQENFZOY.mjs.map +1 -0
  146. package/{chunk-7QMZ5MU4.js → chunk-Z342XYFY.js} +37 -28
  147. package/chunk-Z342XYFY.js.map +1 -0
  148. package/components/form/checkbox.js +4 -4
  149. package/components/form/checkbox.mjs +3 -3
  150. package/components/form/date-picker.js +7 -7
  151. package/components/form/date-picker.mjs +6 -6
  152. package/components/form/date-range-picker.js +9 -9
  153. package/components/form/date-range-picker.js.map +1 -1
  154. package/components/form/date-range-picker.mjs +6 -6
  155. package/components/form/date-range-picker.mjs.map +1 -1
  156. package/components/form/hook-checkbox.js +4 -4
  157. package/components/form/hook-checkbox.mjs +3 -3
  158. package/components/form/hook-date-picker.js +7 -7
  159. package/components/form/hook-date-picker.mjs +6 -6
  160. package/components/form/hook-native-select.js +3 -3
  161. package/components/form/hook-native-select.mjs +2 -2
  162. package/components/form/hook-searchable-select.js +11 -8
  163. package/components/form/hook-searchable-select.js.map +1 -1
  164. package/components/form/hook-searchable-select.mjs +10 -7
  165. package/components/form/hook-searchable-select.mjs.map +1 -1
  166. package/components/form/hook-select.js +4 -4
  167. package/components/form/hook-select.mjs +3 -3
  168. package/components/form/hook-text-input.js +4 -4
  169. package/components/form/hook-text-input.mjs +3 -3
  170. package/components/form/hook-textarea.js +4 -4
  171. package/components/form/hook-textarea.mjs +3 -3
  172. package/components/form/hook-time-input.js +5 -5
  173. package/components/form/hook-time-input.mjs +4 -4
  174. package/components/form/native-select.js +3 -3
  175. package/components/form/native-select.mjs +2 -2
  176. package/components/form/searchable-select.js +11 -8
  177. package/components/form/searchable-select.js.map +1 -1
  178. package/components/form/searchable-select.mjs +10 -7
  179. package/components/form/select.js +4 -4
  180. package/components/form/select.mjs +3 -3
  181. package/components/form/text-input.js +4 -4
  182. package/components/form/text-input.mjs +3 -3
  183. package/components/form/textarea.js +4 -4
  184. package/components/form/textarea.mjs +3 -3
  185. package/components/form/time-input.js +5 -5
  186. package/components/form/time-input.mjs +4 -4
  187. package/components/ui/accordion.d.mts +5 -5
  188. package/components/ui/accordion.d.ts +5 -5
  189. package/components/ui/accordion.js +43 -21
  190. package/components/ui/accordion.js.map +1 -1
  191. package/components/ui/accordion.mjs +41 -19
  192. package/components/ui/accordion.mjs.map +1 -1
  193. package/components/ui/alert-dialog.d.mts +19 -19
  194. package/components/ui/alert-dialog.d.ts +19 -19
  195. package/components/ui/alert-dialog.js +122 -52
  196. package/components/ui/alert-dialog.js.map +1 -1
  197. package/components/ui/alert-dialog.mjs +120 -50
  198. package/components/ui/alert-dialog.mjs.map +1 -1
  199. package/components/ui/alert.d.mts +10 -5
  200. package/components/ui/alert.d.ts +10 -5
  201. package/components/ui/alert.js +4 -2
  202. package/components/ui/alert.js.map +1 -1
  203. package/components/ui/alert.mjs +3 -1
  204. package/components/ui/aspect-ratio.d.mts +3 -3
  205. package/components/ui/aspect-ratio.d.ts +3 -3
  206. package/components/ui/aspect-ratio.js +10 -4
  207. package/components/ui/aspect-ratio.js.map +1 -1
  208. package/components/ui/aspect-ratio.mjs +9 -3
  209. package/components/ui/aspect-ratio.mjs.map +1 -1
  210. package/components/ui/avatar.d.mts +10 -5
  211. package/components/ui/avatar.d.ts +10 -5
  212. package/components/ui/avatar.js +8 -2
  213. package/components/ui/avatar.js.map +1 -1
  214. package/components/ui/avatar.mjs +7 -1
  215. package/components/ui/badge.d.mts +9 -2
  216. package/components/ui/badge.d.ts +9 -2
  217. package/components/ui/badge.js +2 -2
  218. package/components/ui/badge.mjs +1 -1
  219. package/components/ui/basic-alert.d.mts +1 -0
  220. package/components/ui/basic-alert.d.ts +1 -0
  221. package/components/ui/basic-alert.js +2 -2
  222. package/components/ui/basic-alert.mjs +1 -1
  223. package/components/ui/breadcrumb.d.mts +8 -16
  224. package/components/ui/breadcrumb.d.ts +8 -16
  225. package/components/ui/breadcrumb.js +2 -2
  226. package/components/ui/breadcrumb.mjs +1 -1
  227. package/components/ui/button-group.d.mts +16 -0
  228. package/components/ui/button-group.d.ts +16 -0
  229. package/components/ui/button-group.js +94 -0
  230. package/components/ui/button-group.js.map +1 -0
  231. package/components/ui/button-group.mjs +93 -0
  232. package/components/ui/button-group.mjs.map +1 -0
  233. package/components/ui/button.d.mts +8 -2
  234. package/components/ui/button.d.ts +8 -2
  235. package/components/ui/button.js +3 -3
  236. package/components/ui/button.mjs +2 -2
  237. package/components/ui/calendar.d.mts +11 -8
  238. package/components/ui/calendar.d.ts +11 -8
  239. package/components/ui/calendar.js +6 -4
  240. package/components/ui/calendar.js.map +1 -1
  241. package/components/ui/calendar.mjs +7 -5
  242. package/components/ui/card.d.mts +10 -7
  243. package/components/ui/card.d.ts +10 -7
  244. package/components/ui/card.js +73 -47
  245. package/components/ui/card.js.map +1 -1
  246. package/components/ui/card.mjs +65 -39
  247. package/components/ui/card.mjs.map +1 -1
  248. package/components/ui/carousel.d.mts +17 -7
  249. package/components/ui/carousel.d.ts +17 -7
  250. package/components/ui/carousel.js +162 -158
  251. package/components/ui/carousel.js.map +1 -1
  252. package/components/ui/carousel.mjs +163 -159
  253. package/components/ui/carousel.mjs.map +1 -1
  254. package/components/ui/checkbox.d.mts +2 -2
  255. package/components/ui/checkbox.d.ts +2 -2
  256. package/components/ui/checkbox.js +2 -2
  257. package/components/ui/checkbox.mjs +1 -1
  258. package/components/ui/collapsible.d.mts +5 -5
  259. package/components/ui/collapsible.d.ts +5 -5
  260. package/components/ui/collapsible.js +2 -2
  261. package/components/ui/collapsible.mjs +1 -1
  262. package/components/ui/combobox.d.mts +26 -0
  263. package/components/ui/combobox.d.ts +26 -0
  264. package/components/ui/combobox.js +273 -0
  265. package/components/ui/combobox.js.map +1 -0
  266. package/components/ui/combobox.mjs +272 -0
  267. package/components/ui/combobox.mjs.map +1 -0
  268. package/components/ui/command.d.mts +17 -78
  269. package/components/ui/command.d.ts +17 -78
  270. package/components/ui/command.js +8 -3
  271. package/components/ui/command.js.map +1 -1
  272. package/components/ui/command.mjs +7 -2
  273. package/components/ui/context-menu.d.mts +26 -22
  274. package/components/ui/context-menu.d.ts +26 -22
  275. package/components/ui/context-menu.js +153 -75
  276. package/components/ui/context-menu.js.map +1 -1
  277. package/components/ui/context-menu.mjs +151 -73
  278. package/components/ui/context-menu.mjs.map +1 -1
  279. package/components/ui/copy-button.js +3 -3
  280. package/components/ui/copy-button.js.map +1 -1
  281. package/components/ui/copy-button.mjs +1 -1
  282. package/components/ui/copy-button.mjs.map +1 -1
  283. package/components/ui/dialog.d.mts +15 -19
  284. package/components/ui/dialog.d.ts +15 -19
  285. package/components/ui/dialog.js +4 -2
  286. package/components/ui/dialog.js.map +1 -1
  287. package/components/ui/dialog.mjs +3 -1
  288. package/components/ui/direction.d.mts +9 -0
  289. package/components/ui/direction.d.ts +9 -0
  290. package/components/ui/direction.js +20 -0
  291. package/components/ui/direction.js.map +1 -0
  292. package/components/ui/direction.mjs +19 -0
  293. package/components/ui/direction.mjs.map +1 -0
  294. package/components/ui/drawer.js +1 -1
  295. package/components/ui/drawer.js.map +1 -1
  296. package/components/ui/drawer.mjs +1 -1
  297. package/components/ui/drawer.mjs.map +1 -1
  298. package/components/ui/dropdown-menu.d.mts +24 -22
  299. package/components/ui/dropdown-menu.d.ts +24 -22
  300. package/components/ui/dropdown-menu.js +2 -2
  301. package/components/ui/dropdown-menu.mjs +1 -1
  302. package/components/ui/empty.d.mts +15 -0
  303. package/components/ui/empty.d.ts +15 -0
  304. package/components/ui/empty.js +102 -0
  305. package/components/ui/empty.js.map +1 -0
  306. package/components/ui/empty.mjs +101 -0
  307. package/components/ui/empty.mjs.map +1 -0
  308. package/components/ui/extension/file-input.js +4 -4
  309. package/components/ui/extension/file-input.mjs +3 -3
  310. package/components/ui/extension/multi-select.js +13 -8
  311. package/components/ui/extension/multi-select.js.map +1 -1
  312. package/components/ui/extension/multi-select.mjs +8 -3
  313. package/components/ui/extension/multi-select.mjs.map +1 -1
  314. package/components/ui/field.d.mts +29 -0
  315. package/components/ui/field.d.ts +29 -0
  316. package/components/ui/field.js +220 -0
  317. package/components/ui/field.js.map +1 -0
  318. package/components/ui/field.mjs +219 -0
  319. package/components/ui/field.mjs.map +1 -0
  320. package/components/ui/hover-card.d.mts +4 -4
  321. package/components/ui/hover-card.d.ts +4 -4
  322. package/components/ui/hover-card.js +25 -12
  323. package/components/ui/hover-card.js.map +1 -1
  324. package/components/ui/hover-card.mjs +24 -11
  325. package/components/ui/hover-card.mjs.map +1 -1
  326. package/components/ui/input-group.d.mts +19 -0
  327. package/components/ui/input-group.d.ts +19 -0
  328. package/components/ui/input-group.js +25 -0
  329. package/components/ui/input-group.js.map +1 -0
  330. package/components/ui/input-group.mjs +24 -0
  331. package/components/ui/input-otp.d.mts +7 -31
  332. package/components/ui/input-otp.d.ts +7 -31
  333. package/components/ui/input-otp.js +58 -37
  334. package/components/ui/input-otp.js.map +1 -1
  335. package/components/ui/input-otp.mjs +59 -38
  336. package/components/ui/input-otp.mjs.map +1 -1
  337. package/components/ui/input.js +2 -2
  338. package/components/ui/input.mjs +1 -1
  339. package/components/ui/item.d.mts +27 -0
  340. package/components/ui/item.d.ts +27 -0
  341. package/components/ui/item.js +187 -0
  342. package/components/ui/item.js.map +1 -0
  343. package/components/ui/item.mjs +186 -0
  344. package/components/ui/item.mjs.map +1 -0
  345. package/components/ui/kbd.d.mts +6 -0
  346. package/components/ui/kbd.d.ts +6 -0
  347. package/components/ui/kbd.js +33 -0
  348. package/components/ui/kbd.js.map +1 -0
  349. package/components/ui/kbd.mjs +32 -0
  350. package/components/ui/kbd.mjs.map +1 -0
  351. package/components/ui/label.d.mts +3 -4
  352. package/components/ui/label.d.ts +3 -4
  353. package/components/ui/label.js +2 -2
  354. package/components/ui/label.mjs +1 -1
  355. package/components/ui/menubar.d.mts +25 -23
  356. package/components/ui/menubar.d.ts +25 -23
  357. package/components/ui/menubar.js +162 -104
  358. package/components/ui/menubar.js.map +1 -1
  359. package/components/ui/menubar.mjs +157 -99
  360. package/components/ui/menubar.mjs.map +1 -1
  361. package/components/ui/native-select.d.mts +10 -0
  362. package/components/ui/native-select.d.ts +10 -0
  363. package/components/ui/native-select.js +53 -0
  364. package/components/ui/native-select.js.map +1 -0
  365. package/components/ui/native-select.mjs +52 -0
  366. package/components/ui/native-select.mjs.map +1 -0
  367. package/components/ui/navigation-menu.d.mts +13 -10
  368. package/components/ui/navigation-menu.d.ts +13 -10
  369. package/components/ui/navigation-menu.js +80 -47
  370. package/components/ui/navigation-menu.js.map +1 -1
  371. package/components/ui/navigation-menu.mjs +75 -42
  372. package/components/ui/navigation-menu.mjs.map +1 -1
  373. package/components/ui/pagination.d.mts +14 -24
  374. package/components/ui/pagination.d.ts +14 -24
  375. package/components/ui/pagination.js +45 -44
  376. package/components/ui/pagination.js.map +1 -1
  377. package/components/ui/pagination.mjs +47 -46
  378. package/components/ui/pagination.mjs.map +1 -1
  379. package/components/ui/popover.d.mts +9 -6
  380. package/components/ui/popover.d.ts +9 -6
  381. package/components/ui/popover.js +8 -2
  382. package/components/ui/popover.js.map +1 -1
  383. package/components/ui/popover.mjs +7 -1
  384. package/components/ui/progress.d.mts +2 -2
  385. package/components/ui/progress.d.ts +2 -2
  386. package/components/ui/progress.js +9 -9
  387. package/components/ui/progress.js.map +1 -1
  388. package/components/ui/progress.mjs +7 -7
  389. package/components/ui/progress.mjs.map +1 -1
  390. package/components/ui/radio-group.d.mts +3 -3
  391. package/components/ui/radio-group.d.ts +3 -3
  392. package/components/ui/radio-group.js +17 -14
  393. package/components/ui/radio-group.js.map +1 -1
  394. package/components/ui/radio-group.mjs +16 -13
  395. package/components/ui/radio-group.mjs.map +1 -1
  396. package/components/ui/resizable.d.mts +4 -20
  397. package/components/ui/resizable.d.ts +4 -20
  398. package/components/ui/resizable.js +15 -12
  399. package/components/ui/resizable.js.map +1 -1
  400. package/components/ui/resizable.mjs +15 -12
  401. package/components/ui/resizable.mjs.map +1 -1
  402. package/components/ui/scroll-area.d.mts +3 -3
  403. package/components/ui/scroll-area.d.ts +3 -3
  404. package/components/ui/scroll-area.js +31 -15
  405. package/components/ui/scroll-area.js.map +1 -1
  406. package/components/ui/scroll-area.mjs +30 -14
  407. package/components/ui/scroll-area.mjs.map +1 -1
  408. package/components/ui/select.d.mts +13 -11
  409. package/components/ui/select.d.ts +13 -11
  410. package/components/ui/select.js +2 -2
  411. package/components/ui/select.mjs +1 -1
  412. package/components/ui/separator.d.mts +2 -2
  413. package/components/ui/separator.d.ts +2 -2
  414. package/components/ui/separator.js +2 -2
  415. package/components/ui/separator.mjs +1 -1
  416. package/components/ui/sheet.d.mts +13 -22
  417. package/components/ui/sheet.d.ts +13 -22
  418. package/components/ui/sheet.js +4 -6
  419. package/components/ui/sheet.js.map +1 -1
  420. package/components/ui/sheet.mjs +3 -5
  421. package/components/ui/sidebar.d.mts +46 -41
  422. package/components/ui/sidebar.d.ts +46 -41
  423. package/components/ui/sidebar.js +9 -9
  424. package/components/ui/sidebar.mjs +8 -8
  425. package/components/ui/skeleton.d.mts +2 -2
  426. package/components/ui/skeleton.d.ts +2 -2
  427. package/components/ui/skeleton.js +2 -2
  428. package/components/ui/skeleton.mjs +1 -1
  429. package/components/ui/slider.d.mts +2 -2
  430. package/components/ui/slider.d.ts +2 -2
  431. package/components/ui/slider.js +52 -10
  432. package/components/ui/slider.js.map +1 -1
  433. package/components/ui/slider.mjs +51 -9
  434. package/components/ui/slider.mjs.map +1 -1
  435. package/components/ui/sonner.d.mts +1 -2
  436. package/components/ui/sonner.d.ts +1 -2
  437. package/components/ui/sonner.js +16 -6
  438. package/components/ui/sonner.js.map +1 -1
  439. package/components/ui/sonner.mjs +15 -5
  440. package/components/ui/sonner.mjs.map +1 -1
  441. package/components/ui/spinner.d.mts +7 -2
  442. package/components/ui/spinner.d.ts +7 -2
  443. package/components/ui/spinner.js +2 -2
  444. package/components/ui/spinner.mjs +1 -1
  445. package/components/ui/switch.d.mts +4 -2
  446. package/components/ui/switch.d.ts +4 -2
  447. package/components/ui/switch.js +19 -16
  448. package/components/ui/switch.js.map +1 -1
  449. package/components/ui/switch.mjs +19 -16
  450. package/components/ui/switch.mjs.map +1 -1
  451. package/components/ui/table.d.mts +8 -8
  452. package/components/ui/table.d.ts +8 -8
  453. package/components/ui/table.js +59 -77
  454. package/components/ui/table.js.map +1 -1
  455. package/components/ui/table.mjs +59 -77
  456. package/components/ui/table.mjs.map +1 -1
  457. package/components/ui/tabs.d.mts +11 -6
  458. package/components/ui/tabs.d.ts +11 -6
  459. package/components/ui/tabs.js +55 -28
  460. package/components/ui/tabs.js.map +1 -1
  461. package/components/ui/tabs.mjs +52 -25
  462. package/components/ui/tabs.mjs.map +1 -1
  463. package/components/ui/textarea.js +2 -2
  464. package/components/ui/textarea.mjs +1 -1
  465. package/components/ui/toggle-group.d.mts +8 -5
  466. package/components/ui/toggle-group.d.ts +8 -5
  467. package/components/ui/toggle-group.js +54 -20
  468. package/components/ui/toggle-group.js.map +1 -1
  469. package/components/ui/toggle-group.mjs +51 -17
  470. package/components/ui/toggle-group.mjs.map +1 -1
  471. package/components/ui/toggle.d.mts +7 -3
  472. package/components/ui/toggle.d.ts +7 -3
  473. package/components/ui/toggle.js +2 -2
  474. package/components/ui/toggle.mjs +1 -1
  475. package/components/ui/tooltip.d.mts +5 -5
  476. package/components/ui/tooltip.d.ts +5 -5
  477. package/components/ui/tooltip.js +2 -2
  478. package/components/ui/tooltip.mjs +1 -1
  479. package/layouts/sidebar1/app-sidebar.d.mts +5 -3
  480. package/layouts/sidebar1/app-sidebar.d.ts +5 -3
  481. package/layouts/sidebar1/app-sidebar.js +17 -16
  482. package/layouts/sidebar1/app-sidebar.js.map +1 -1
  483. package/layouts/sidebar1/app-sidebar.mjs +16 -15
  484. package/layouts/sidebar1/context-switcher.js +11 -11
  485. package/layouts/sidebar1/context-switcher.mjs +10 -10
  486. package/layouts/sidebar1/index.d.mts +5 -3
  487. package/layouts/sidebar1/index.d.ts +5 -3
  488. package/layouts/sidebar1/index.js +21 -19
  489. package/layouts/sidebar1/index.js.map +1 -1
  490. package/layouts/sidebar1/index.mjs +22 -20
  491. package/layouts/sidebar1/index.mjs.map +1 -1
  492. package/layouts/sidebar1/{LinkWrapper.js → link-placeholder.js} +2 -2
  493. package/layouts/sidebar1/link-placeholder.js.map +1 -0
  494. package/layouts/sidebar1/{LinkWrapper.mjs → link-placeholder.mjs} +2 -2
  495. package/layouts/sidebar1/link-placeholder.mjs.map +1 -0
  496. package/layouts/sidebar1/nav-menus.js +11 -11
  497. package/layouts/sidebar1/nav-menus.mjs +10 -10
  498. package/layouts/sidebar1/nav-user.js +13 -12
  499. package/layouts/sidebar1/nav-user.js.map +1 -1
  500. package/layouts/sidebar1/nav-user.mjs +12 -11
  501. package/layouts/sidebar1/theme-switcher.d.mts +5 -0
  502. package/layouts/sidebar1/theme-switcher.d.ts +5 -0
  503. package/layouts/sidebar1/theme-switcher.js +10 -0
  504. package/layouts/sidebar1/theme-switcher.js.map +1 -0
  505. package/layouts/sidebar1/theme-switcher.mjs +9 -0
  506. package/layouts/simple/index.js +3 -3
  507. package/layouts/simple/index.mjs +2 -2
  508. package/layouts/simple/user-menu.js +3 -3
  509. package/layouts/simple/user-menu.mjs +2 -2
  510. package/package.json +6 -31
  511. package/chunk-23MJMEQC.js +0 -33
  512. package/chunk-23MJMEQC.js.map +0 -1
  513. package/chunk-2DJW7DN4.js +0 -124
  514. package/chunk-2DJW7DN4.js.map +0 -1
  515. package/chunk-3AWU47KT.js +0 -99
  516. package/chunk-3AWU47KT.js.map +0 -1
  517. package/chunk-3DG54EVO.mjs.map +0 -1
  518. package/chunk-43V6CNEG.mjs +0 -92
  519. package/chunk-43V6CNEG.mjs.map +0 -1
  520. package/chunk-47TKC7DB.mjs +0 -38
  521. package/chunk-47TKC7DB.mjs.map +0 -1
  522. package/chunk-4O25L26A.js.map +0 -1
  523. package/chunk-5AC6SSUU.js +0 -567
  524. package/chunk-5AC6SSUU.js.map +0 -1
  525. package/chunk-73TDZTWF.js +0 -32
  526. package/chunk-73TDZTWF.js.map +0 -1
  527. package/chunk-754FOR4K.js +0 -154
  528. package/chunk-754FOR4K.js.map +0 -1
  529. package/chunk-7QMZ5MU4.js.map +0 -1
  530. package/chunk-ABZ4SF2K.mjs +0 -32
  531. package/chunk-ABZ4SF2K.mjs.map +0 -1
  532. package/chunk-AJFINSLK.mjs.map +0 -1
  533. package/chunk-APMXMQPZ.js +0 -33
  534. package/chunk-APMXMQPZ.js.map +0 -1
  535. package/chunk-AREM2MQQ.js.map +0 -1
  536. package/chunk-BH4FHKAR.js +0 -91
  537. package/chunk-BH4FHKAR.js.map +0 -1
  538. package/chunk-C736G6RV.mjs.map +0 -1
  539. package/chunk-CSDFVUNP.js.map +0 -1
  540. package/chunk-D6WUNCBI.mjs +0 -91
  541. package/chunk-D6WUNCBI.mjs.map +0 -1
  542. package/chunk-DOM2D2R7.mjs +0 -31
  543. package/chunk-DOM2D2R7.mjs.map +0 -1
  544. package/chunk-DPGUIXSL.mjs.map +0 -1
  545. package/chunk-F57PDM2P.mjs.map +0 -1
  546. package/chunk-GVZX7FQQ.mjs +0 -123
  547. package/chunk-GVZX7FQQ.mjs.map +0 -1
  548. package/chunk-GZPKVSCR.js +0 -38
  549. package/chunk-GZPKVSCR.js.map +0 -1
  550. package/chunk-HBKXMTBF.mjs.map +0 -1
  551. package/chunk-HMEHDD5N.js.map +0 -1
  552. package/chunk-HN73FRPZ.js +0 -20
  553. package/chunk-HN73FRPZ.js.map +0 -1
  554. package/chunk-I6AFNWVY.js +0 -123
  555. package/chunk-I6AFNWVY.js.map +0 -1
  556. package/chunk-IHNDGZWX.mjs +0 -98
  557. package/chunk-IHNDGZWX.mjs.map +0 -1
  558. package/chunk-IYZWOHGP.mjs.map +0 -1
  559. package/chunk-J4FPBR7A.mjs.map +0 -1
  560. package/chunk-J4KEZVR5.js.map +0 -1
  561. package/chunk-JVMY3LCD.mjs +0 -90
  562. package/chunk-JVMY3LCD.mjs.map +0 -1
  563. package/chunk-K6S2HW6A.mjs.map +0 -1
  564. package/chunk-KNNX4FAH.js.map +0 -1
  565. package/chunk-LYMKN3NY.js +0 -39
  566. package/chunk-LYMKN3NY.js.map +0 -1
  567. package/chunk-M55DCHAX.mjs +0 -45
  568. package/chunk-M55DCHAX.mjs.map +0 -1
  569. package/chunk-MKOOSP3M.mjs +0 -71
  570. package/chunk-MKOOSP3M.mjs.map +0 -1
  571. package/chunk-MUWMASP4.js +0 -44
  572. package/chunk-MUWMASP4.js.map +0 -1
  573. package/chunk-NL4534LH.mjs +0 -23
  574. package/chunk-NL4534LH.mjs.map +0 -1
  575. package/chunk-NUCMI4CP.js.map +0 -1
  576. package/chunk-NWVKFMW3.mjs +0 -32
  577. package/chunk-NWVKFMW3.mjs.map +0 -1
  578. package/chunk-OFRRRK4N.js.map +0 -1
  579. package/chunk-OI7CIW4X.mjs +0 -566
  580. package/chunk-OI7CIW4X.mjs.map +0 -1
  581. package/chunk-OJEDITOA.mjs +0 -112
  582. package/chunk-OJEDITOA.mjs.map +0 -1
  583. package/chunk-OROMS2CN.js +0 -13
  584. package/chunk-OROMS2CN.js.map +0 -1
  585. package/chunk-PHE5ID6D.js +0 -92
  586. package/chunk-PHE5ID6D.js.map +0 -1
  587. package/chunk-Q5QVXAFP.js.map +0 -1
  588. package/chunk-QBO4YAYA.mjs.map +0 -1
  589. package/chunk-QJKRCNUX.mjs +0 -153
  590. package/chunk-QJKRCNUX.mjs.map +0 -1
  591. package/chunk-QW2TXVH4.js +0 -46
  592. package/chunk-QW2TXVH4.js.map +0 -1
  593. package/chunk-SCU2RG4I.mjs +0 -37
  594. package/chunk-SCU2RG4I.mjs.map +0 -1
  595. package/chunk-SQK67X4D.mjs.map +0 -1
  596. package/chunk-SSL4EXAQ.mjs +0 -29
  597. package/chunk-SSL4EXAQ.mjs.map +0 -1
  598. package/chunk-TXGL3AHG.mjs +0 -43
  599. package/chunk-TXGL3AHG.mjs.map +0 -1
  600. package/chunk-UF2IGF36.js.map +0 -1
  601. package/chunk-WJ4BE7HH.mjs +0 -12
  602. package/chunk-WJ4BE7HH.mjs.map +0 -1
  603. package/chunk-XDCB6C5S.js +0 -72
  604. package/chunk-XDCB6C5S.js.map +0 -1
  605. package/chunk-XIHKXTB2.js +0 -93
  606. package/chunk-XIHKXTB2.js.map +0 -1
  607. package/chunk-XWFQVYPB.js +0 -113
  608. package/chunk-XWFQVYPB.js.map +0 -1
  609. package/chunk-YQZZ6RRI.mjs +0 -122
  610. package/chunk-YQZZ6RRI.mjs.map +0 -1
  611. package/components/ui/form.d.mts +0 -27
  612. package/components/ui/form.d.ts +0 -27
  613. package/components/ui/form.js +0 -110
  614. package/components/ui/form.js.map +0 -1
  615. package/components/ui/form.mjs +0 -109
  616. package/components/ui/form.mjs.map +0 -1
  617. package/components/ui/toast.d.mts +0 -15
  618. package/components/ui/toast.d.ts +0 -15
  619. package/components/ui/toast.js +0 -23
  620. package/components/ui/toast.js.map +0 -1
  621. package/components/ui/toast.mjs +0 -22
  622. package/components/ui/toaster.d.mts +0 -5
  623. package/components/ui/toaster.d.ts +0 -5
  624. package/components/ui/toaster.js +0 -32
  625. package/components/ui/toaster.js.map +0 -1
  626. package/components/ui/toaster.mjs +0 -31
  627. package/components/ui/toaster.mjs.map +0 -1
  628. package/hooks/use-toast.d.mts +0 -48
  629. package/hooks/use-toast.d.ts +0 -48
  630. package/hooks/use-toast.js +0 -14
  631. package/hooks/use-toast.js.map +0 -1
  632. package/hooks/use-toast.mjs +0 -13
  633. package/layouts/sidebar1/LinkWrapper.js.map +0 -1
  634. package/layouts/sidebar1/LinkWrapper.mjs.map +0 -1
  635. /package/{chunk-QJLNEVAE.mjs.map → chunk-GAJQQPUC.mjs.map} +0 -0
  636. /package/{chunk-7734627I.mjs.map → chunk-JBIYG5WI.mjs.map} +0 -0
  637. /package/{chunk-VOED37ZV.mjs.map → chunk-NHDANPMI.mjs.map} +0 -0
  638. /package/{chunk-MA3OJUIL.mjs.map → chunk-RIBB6GXJ.mjs.map} +0 -0
  639. /package/{chunk-L2NIAPCK.mjs.map → chunk-YOQJO7NI.mjs.map} +0 -0
  640. /package/components/ui/{toast.mjs.map → input-group.mjs.map} +0 -0
  641. /package/layouts/sidebar1/{LinkWrapper.d.mts → link-placeholder.d.mts} +0 -0
  642. /package/layouts/sidebar1/{LinkWrapper.d.ts → link-placeholder.d.ts} +0 -0
  643. /package/{hooks/use-toast.mjs.map → layouts/sidebar1/theme-switcher.mjs.map} +0 -0
@@ -2,14 +2,19 @@
2
2
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3
3
 
4
4
 
5
- var _chunk4O25L26Ajs = require('../../../chunk-4O25L26A.js');
5
+ var _chunk2YMMYND2js = require('../../../chunk-2YMMYND2.js');
6
6
 
7
7
 
8
8
 
9
9
 
10
10
 
11
- var _chunkXWFQVYPBjs = require('../../../chunk-XWFQVYPB.js');
12
- require('../../../chunk-PHE5ID6D.js');
11
+ var _chunkECYGZFEFjs = require('../../../chunk-ECYGZFEF.js');
12
+ require('../../../chunk-MJT6B7OJ.js');
13
+ require('../../../chunk-EGG4SBHV.js');
14
+ require('../../../chunk-UFRPUC7K.js');
15
+ require('../../../chunk-RJG7QLDD.js');
16
+ require('../../../chunk-KB6BX6LA.js');
17
+ require('../../../chunk-GV62APQ6.js');
13
18
 
14
19
 
15
20
  var _chunkPSPAJNNBjs = require('../../../chunk-PSPAJNNB.js');
@@ -161,7 +166,7 @@ var MultiSelector = (_a) => {
161
166
  }
162
167
  },
163
168
  /* @__PURE__ */ _react2.default.createElement(
164
- _chunkXWFQVYPBjs.Command,
169
+ _chunkECYGZFEFjs.Command,
165
170
  _chunk2NMEKWO5js.__spreadValues.call(void 0, {
166
171
  onKeyDown: handleKeyDown,
167
172
  className: _chunkPSPAJNNBjs.cn.call(void 0, "overflow-visible bg-transparent flex flex-col space-y-2", className),
@@ -192,7 +197,7 @@ var MultiSelectorTrigger = _react.forwardRef.call(void 0,
192
197
  )
193
198
  }, props),
194
199
  value.map((item, index) => /* @__PURE__ */ _react2.default.createElement(
195
- _chunk4O25L26Ajs.Badge,
200
+ _chunk2YMMYND2js.Badge,
196
201
  {
197
202
  key: item.value,
198
203
  className: _chunkPSPAJNNBjs.cn.call(void 0,
@@ -252,7 +257,7 @@ var MultiSelectorContent = _react.forwardRef.call(void 0, ({ children }, ref) =>
252
257
  MultiSelectorContent.displayName = "MultiSelectorContent";
253
258
  var MultiSelectorList = _react.forwardRef.call(void 0, ({ className, children }, ref) => {
254
259
  return /* @__PURE__ */ _react2.default.createElement(
255
- _chunkXWFQVYPBjs.CommandList,
260
+ _chunkECYGZFEFjs.CommandList,
256
261
  {
257
262
  ref,
258
263
  className: _chunkPSPAJNNBjs.cn.call(void 0,
@@ -261,7 +266,7 @@ var MultiSelectorList = _react.forwardRef.call(void 0, ({ className, children },
261
266
  )
262
267
  },
263
268
  children,
264
- /* @__PURE__ */ _react2.default.createElement(_chunkXWFQVYPBjs.CommandEmpty, null, /* @__PURE__ */ _react2.default.createElement("span", { className: "text-muted-foreground" }, "No results found"))
269
+ /* @__PURE__ */ _react2.default.createElement(_chunkECYGZFEFjs.CommandEmpty, null, /* @__PURE__ */ _react2.default.createElement("span", { className: "text-muted-foreground" }, "No results found"))
265
270
  );
266
271
  });
267
272
  MultiSelectorList.displayName = "MultiSelectorList";
@@ -277,7 +282,7 @@ var MultiSelectorItem = _react.forwardRef.call(void 0, (_a, ref) => {
277
282
  label
278
283
  }) !== -1;
279
284
  return /* @__PURE__ */ _react2.default.createElement(
280
- _chunkXWFQVYPBjs.CommandItem,
285
+ _chunkECYGZFEFjs.CommandItem,
281
286
  _chunk2NMEKWO5js.__spreadProps.call(void 0, _chunk2NMEKWO5js.__spreadValues.call(void 0, {
282
287
  ref
283
288
  }, props), {
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/components/ui/extension/multi-select.js","../../../../components/ui/extension/multi-select.tsx"],"names":["_a","_b"],"mappings":"AAAA,qLAAY;AACZ;AACE;AACF,6DAAmC;AACnC;AACE;AACA;AACA;AACA;AACF,6DAAmC;AACnC,sCAAmC;AACnC;AACE;AACF,6DAAmC;AACnC;AACE;AACA;AACA;AACF,6DAAmC;AACnC;AACA;ACjBA,iDAAiC;AACjC,4BAA4C;AAC5C,4EAAwG;AA8BxG,IAAM,mBAAA,EAAqB,kCAAA,IAAkD,CAAA;AAE7E,IAAM,eAAA,EAAiB,CAAA,EAAA,GAAM;AAC3B,EAAA,MAAM,QAAA,EAAU,+BAAA,kBAA6B,CAAA;AAC7C,EAAA,GAAA,CAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,KAAA,CAAM,wDAAwD,CAAA;AAAA,EAC1E;AACA,EAAA,OAAO,OAAA;AACT,CAAA;AAQA,SAAS,cAAA,CAAe,MAAA,EAA4B,KAAA,EAAyB;AAC3E,EAAA,IAAA,CAAA,IAAS,EAAA,EAAI,CAAA,EAAG,EAAA,EAAI,MAAA,CAAO,MAAA,EAAQ,CAAA,EAAA,EAAK;AACtC,IAAA,GAAA,CAAI,MAAA,CAAO,CAAC,CAAA,CAAE,MAAA,IAAU,KAAA,CAAM,KAAA,EAAO;AACnC,MAAA,OAAO,CAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,CAAA,CAAA;AACT;AAEA,IAAM,cAAA,EAAgB,CAAC,EAAA,EAAA,GAQG;AARH,EAAA,IAAA,GAAA,EAAA,EAAA,EACrB;AAAA,IAAA,MAAA,EAAQ,KAAA;AAAA,IACR,cAAA,EAAgB,aAAA;AAAA,IAChB,KAAA,EAAO,KAAA;AAAA,IACP,SAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,EAlEF,EAAA,EA4DuB,EAAA,EAOlB,MAAA,EAAA,wCAAA,EAPkB,EAOlB;AAAA,IANH,QAAA;AAAA,IACA,gBAAA;AAAA,IACA,MAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,EAAA,CAAA,CAAA;AAGA,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,EAAA,EAAI,6BAAA,EAAW,CAAA;AAC/C,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,EAAA,EAAI,6BAAA,KAAuB,CAAA;AAC/C,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,EAAA,EAAI,6BAAA,CAAiB,CAAE,CAAA;AACzD,EAAA,MAAM,SAAA,EAAW,eAAA,CAAM,MAAA,CAAyB,IAAI,CAAA;AAEpD,EAAA,MAAM,qBAAA,EAAuB,gCAAA;AAAA,IAC3B,CAAC,GAAA,EAAA,GAA0B;AACzB,MAAA,MAAM,QAAA,EAAU,cAAA,CAAe,KAAA,EAAO,GAAG,CAAA;AACzC,MAAA,GAAA,CAAI,QAAA,IAAY,CAAA,CAAA,EAAI;AAClB,QAAA,aAAA,CAAc,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,EAAG,KAAA,EAAA,GAAU,MAAA,IAAU,OAAO,CAAC,CAAA;AAAA,MAC7D,EAAA,KAAO;AACL,QAAA,aAAA,CAAc,CAAC,GAAG,KAAA,EAAO,GAAG,CAAC,CAAA;AAAA,MAC/B;AAAA,IACF,CAAA;AAAA;AAAA,IAEA,CAAC,KAAK;AAAA,EACR,CAAA;AAEA,EAAA,MAAM,cAAA,EAAgB,gCAAA;AAAA,IACpB,CAAC,CAAA,EAAA,GAAqC;AAxF1C,MAAA,IAAAA,GAAAA,EAAAC,GAAAA;AAyFM,MAAA,CAAA,CAAE,eAAA,CAAgB,CAAA;AAClB,MAAA,MAAM,OAAA,EAAS,QAAA,CAAS,OAAA;AAExB,MAAA,GAAA,CAAI,CAAC,MAAA,EAAQ,MAAA;AAEb,MAAA,MAAM,eAAA,EAAA,CAAiBD,IAAAA,EAAA,MAAA,CAAO,cAAA,EAAA,GAAP,KAAA,EAAAA,IAAAA,EAAyB,CAAA;AAChD,MAAA,MAAM,aAAA,EAAA,CAAeC,IAAAA,EAAA,MAAA,CAAO,YAAA,EAAA,GAAP,KAAA,EAAAA,IAAAA,EAAuB,CAAA;AAG5C,MAAA,GAAA,CAAI,eAAA,IAAmB,YAAA,EAAc;AACnC,QAAA,MAAA;AAAA,MACF;AAEA,MAAA,MAAM,SAAA,EAAW,CAAA,EAAA,GAAM;AACrB,QAAA,MAAM,UAAA,EAAY,YAAA,EAAc,CAAA;AAChC,QAAA,cAAA,CAAe,UAAA,EAAY,KAAA,CAAM,OAAA,EAAS,EAAA,EAAK,KAAA,EAAO,EAAA,EAAI,CAAA,EAAA,EAAM,SAAS,CAAA;AAAA,MAC3E,CAAA;AAEA,MAAA,MAAM,SAAA,EAAW,CAAA,EAAA,GAAM;AACrB,QAAA,MAAM,UAAA,EAAY,YAAA,EAAc,CAAA;AAChC,QAAA,cAAA,CAAe,UAAA,EAAY,EAAA,EAAI,KAAA,CAAM,OAAA,EAAS,EAAA,EAAI,SAAS,CAAA;AAAA,MAC7D,CAAA;AAEA,MAAA,MAAM,YAAA,EAAc,CAAA,EAAA,GAAM;AACxB,QAAA,MAAM,SAAA,EAAW,YAAA,EAAc,EAAA,GAAK,EAAA,EAAK,KAAA,CAAM,OAAA,EAAS,EAAA,IAAM,EAAA,EAAI,CAAA,EAAA,EAAK,EAAA,EAAK,YAAA,EAAc,CAAA;AAC1F,QAAA,cAAA,CAAe,QAAQ,CAAA;AAAA,MACzB,CAAA;AAEA,MAAA,OAAA,CAAQ,CAAA,CAAE,GAAA,EAAK;AAAA,QACb,KAAK,WAAA;AACH,UAAA,GAAA,CAAI,IAAA,IAAQ,KAAA,EAAO;AACjB,YAAA,GAAA,CAAI,KAAA,CAAM,OAAA,EAAS,EAAA,GAAA,CAAM,YAAA,IAAgB,CAAA,EAAA,GAAM,IAAA,CAAA,EAAO;AACpD,cAAA,QAAA,CAAS,CAAA;AAAA,YACX;AAAA,UACF,EAAA,KAAO;AACL,YAAA,GAAA,CAAI,KAAA,CAAM,OAAA,EAAS,EAAA,GAAK,MAAA,CAAO,eAAA,IAAmB,CAAA,EAAG;AACnD,cAAA,QAAA,CAAS,CAAA;AAAA,YACX;AAAA,UACF;AACA,UAAA,KAAA;AAAA,QAEF,KAAK,YAAA;AACH,UAAA,GAAA,CAAI,IAAA,IAAQ,KAAA,EAAO;AACjB,YAAA,GAAA,CAAI,KAAA,CAAM,OAAA,EAAS,EAAA,GAAK,MAAA,CAAO,eAAA,IAAmB,CAAA,EAAG;AACnD,cAAA,QAAA,CAAS,CAAA;AAAA,YACX;AAAA,UACF,EAAA,KAAO;AACL,YAAA,GAAA,CAAI,KAAA,CAAM,OAAA,EAAS,EAAA,GAAA,CAAM,YAAA,IAAgB,CAAA,EAAA,GAAM,IAAA,CAAA,EAAO;AACpD,cAAA,QAAA,CAAS,CAAA;AAAA,YACX;AAAA,UACF;AACA,UAAA,KAAA;AAAA,QAEF,KAAK,WAAA;AAAA,QACL,KAAK,QAAA;AACH,UAAA,GAAA,CAAI,KAAA,CAAM,OAAA,EAAS,CAAA,EAAG;AACpB,YAAA,GAAA,CAAI,YAAA,IAAgB,CAAA,EAAA,GAAM,YAAA,EAAc,KAAA,CAAM,MAAA,EAAQ;AACpD,cAAA,oBAAA,CAAqB,KAAA,CAAM,WAAW,CAAC,CAAA;AACvC,cAAA,WAAA,CAAY,CAAA;AAAA,YACd,EAAA,KAAO;AACL,cAAA,GAAA,CAAI,MAAA,CAAO,eAAA,IAAmB,CAAA,EAAG;AAC/B,gBAAA,oBAAA,CAAqB,KAAA,CAAM,KAAA,CAAM,OAAA,EAAS,CAAC,CAAC,CAAA;AAAA,cAC9C;AAAA,YACF;AAAA,UACF;AACA,UAAA,KAAA;AAAA,QAEF,KAAK,OAAA;AACH,UAAA,OAAA,CAAQ,IAAI,CAAA;AACZ,UAAA,KAAA;AAAA,QAEF,KAAK,QAAA;AACH,UAAA,GAAA,CAAI,YAAA,IAAgB,CAAA,CAAA,EAAI;AACtB,YAAA,cAAA,CAAe,CAAA,CAAE,CAAA;AAAA,UACnB,EAAA,KAAA,GAAA,CAAW,IAAA,EAAM;AACf,YAAA,aAAA,CAAc,EAAE,CAAA;AAChB,YAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,UACf;AACA,UAAA,KAAA;AAAA,MACJ;AAAA,IACF,CAAA;AAAA,IACA,CAAC,KAAA,EAAO,WAAA,EAAa,IAAI;AAAA,EAC3B,CAAA;AAEA,EAAA,uBACE,eAAA,CAAA,aAAA;AAAA,IAAC,kBAAA,CAAmB,QAAA;AAAA,IAAnB;AAAA,MACC,KAAA,EAAO;AAAA,QACL,KAAA;AAAA,QACA,aAAA,EAAe,oBAAA;AAAA,QACf,IAAA;AAAA,QACA,OAAA;AAAA,QACA,UAAA;AAAA,QACA,aAAA;AAAA,QACA,WAAA;AAAA,QACA,cAAA;AAAA,QACA,GAAA,EAAK;AAAA,MACP;AAAA,IAAA,CAAA;AAAA,oBAEA,eAAA,CAAA,aAAA;AAAA,MAAC,wBAAA;AAAA,MAAA,6CAAA;AAAA,QACC,SAAA,EAAW,aAAA;AAAA,QACX,SAAA,EAAW,iCAAA,yDAAG,EAA2D,SAAS,CAAA;AAAA,QAClF;AAAA,MAAA,CAAA,EACI,KAAA,CAAA;AAAA,MAEH;AAAA,IACH;AAAA,EACF,CAAA;AAEJ,CAAA;AAEA,IAAM,qBAAA,EAAuB,+BAAA;AAAA,EAC3B,CAAC,EAAA,EAAmC,GAAA,EAAA,GAAQ;AAA3C,IAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,SAAA,EAAW,SAxMhB,EAAA,EAwMG,EAAA,EAA0B,MAAA,EAAA,wCAAA,EAA1B,EAA0B,CAAxB,WAAA,EAAW,UAAA,CAAA,CAAA;AACZ,IAAA,MAAM,EAAE,KAAA,EAAO,aAAA,EAAe,YAAY,EAAA,EAAI,cAAA,CAAe,CAAA;AAE7D,IAAA,MAAM,oBAAA,EAAsB,gCAAA,CAAa,CAAA,EAAA,GAAwB;AAC/D,MAAA,CAAA,CAAE,cAAA,CAAe,CAAA;AACjB,MAAA,CAAA,CAAE,eAAA,CAAgB,CAAA;AAAA,IACpB,CAAA,EAAG,CAAC,CAAC,CAAA;AAEL,IAAA,uBACE,eAAA,CAAA,aAAA;AAAA,MAAC,KAAA;AAAA,MAAA,6CAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,iCAAA;AAAA,UACT,6FAAA;AAAA,UACA;AAAA,YACE,+BAAA,EAAiC,YAAA,IAAgB,CAAA;AAAA,UACnD,CAAA;AAAA,UACA;AAAA,QACF;AAAA,MAAA,CAAA,EACI,KAAA,CAAA;AAAA,MAEH,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,EAAA,mBAChB,eAAA,CAAA,aAAA;AAAA,QAAC,sBAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,IAAA,CAAK,KAAA;AAAA,UACV,SAAA,EAAW,iCAAA;AAAA,YACT,2CAAA;AAAA,YACA,YAAA,IAAgB,MAAA,GAAS;AAAA,UAC3B,CAAA;AAAA,UACA,OAAA,EAAQ;AAAA,QAAA,CAAA;AAAA,wBAER,eAAA,CAAA,aAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,UAAA,CAAA,EAAW,IAAA,CAAK,KAAM,CAAA;AAAA,wBAEtC,eAAA,CAAA,aAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAY,CAAA,OAAA,EAAU,IAAI,CAAA,OAAA,CAAA;AAAA,YAC1B,sBAAA,EAAqB,yBAAA;AAAA,YACrB,IAAA,EAAK,QAAA;AAAA,YACL,WAAA,EAAa,mBAAA;AAAA,YACb,OAAA,EAAS,CAAA,EAAA,GAAM,aAAA,CAAc,IAAI;AAAA,UAAA,CAAA;AAAA,0BAEjC,eAAA,CAAA,aAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,UAAA,CAAA,EAAU,SAAA,EAAQ,IAAA,CAAK,KAAA,EAAM,SAAO,CAAA;AAAA,0BAEpD,eAAA,CAAA,aAAA,CAAC,iBAAA,EAAA,EAAM,SAAA,EAAU,mCAAA,CAAmC;AAAA,QACtD;AAAA,MACF,CACD,CAAA;AAAA,MACA;AAAA,IACH,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,oBAAA,CAAqB,YAAA,EAAc,sBAAA;AAEnC,IAAM,mBAAA,EAAqB,+BAAA,CAGxB,EAAA,EAAyB,GAAA,EAAA,GAAQ;AAAjC,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,UA/PL,EAAA,EA+PG,EAAA,EAAgB,MAAA,EAAA,wCAAA,EAAhB,EAAgB,CAAd,WAAA,CAAA,CAAA;AACH,EAAA,MAAM,EAAE,OAAA,EAAS,UAAA,EAAY,aAAA,EAAe,WAAA,EAAa,cAAA,EAAgB,GAAA,EAAK,SAAS,EAAA,EAAI,cAAA,CAAe,CAAA;AAE1G,EAAA,uBACE,eAAA,CAAA,aAAA;AAAA,IAAC,aAAA,CAAiB,KAAA;AAAA,IAAjB,4CAAA,6CAAA,CAAA,CAAA,EACK,KAAA,CAAA,EADL;AAAA,MAEC,QAAA,EAAU,CAAA;AAAA,MACV,GAAA,EAAK,QAAA;AAAA,MACL,KAAA,EAAO,UAAA;AAAA,MACP,aAAA,EAAe,YAAA,IAAgB,CAAA,EAAA,EAAK,cAAA,EAAgB,KAAA,CAAA;AAAA,MACpD,MAAA,EAAQ,CAAA,EAAA,GAAM;AACZ,QAAA,aAAA,CAAc,EAAE,CAAA;AAChB,QAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,MACf,CAAA;AAAA,MACA,OAAA,EAAS,CAAA,EAAA,GAAM,OAAA,CAAQ,IAAI,CAAA;AAAA,MAC3B,OAAA,EAAS,CAAA,EAAA,GAAM,cAAA,CAAe,CAAA,CAAE,CAAA;AAAA,MAChC,SAAA,EAAW,iCAAA;AAAA,QACT,8HAAA;AAAA,QACA,SAAA;AAAA,QACA,YAAA,IAAgB,CAAA,EAAA,GAAM;AAAA,MACxB;AAAA,IAAA,CAAA;AAAA,EACF,CAAA;AAEJ,CAAC,CAAA;AAED,kBAAA,CAAmB,YAAA,EAAc,oBAAA;AAEjC,IAAM,qBAAA,EAAuB,+BAAA,CAAkE,EAAE,SAAS,CAAA,EAAG,GAAA,EAAA,GAAQ;AACnH,EAAA,MAAM,EAAE,KAAK,EAAA,EAAI,cAAA,CAAe,CAAA;AAChC,EAAA,uBACE,eAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,SAAA,EAAU,WAAA,CAAA,EACtB,KAAA,EAAO,SAAA,EAAW,IACrB,CAAA;AAEJ,CAAC,CAAA;AAED,oBAAA,CAAqB,YAAA,EAAc,sBAAA;AAEnC,IAAM,kBAAA,EAAoB,+BAAA,CAGvB,EAAE,SAAA,EAAW,SAAS,CAAA,EAAG,GAAA,EAAA,GAAQ;AAClC,EAAA,uBACE,eAAA,CAAA,aAAA;AAAA,IAAC,4BAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,iCAAA;AAAA,QACT,gQAAA;AAAA,QACA;AAAA,MACF;AAAA,IAAA,CAAA;AAAA,IAEC,QAAA;AAAA,oBAED,eAAA,CAAA,aAAA,CAAC,6BAAA,EAAA,IAAA,kBACC,eAAA,CAAA,aAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wBAAA,CAAA,EAAwB,kBAAgB,CAC1D;AAAA,EACF,CAAA;AAEJ,CAAC,CAAA;AAED,iBAAA,CAAkB,YAAA,EAAc,mBAAA;AAEhC,IAAM,kBAAA,EAAoB,+BAAA,CAGvB,EAAA,EAAiD,GAAA,EAAA,GAAQ;AAAzD,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,SAAA,EAAW,KAAA,EAAO,KAAA,EAAO,SA/T9B,EAAA,EA+TG,EAAA,EAAwC,MAAA,EAAA,wCAAA,EAAxC,EAAwC,CAAtC,WAAA,EAAW,OAAA,EAAO,OAAA,EAAO,UAAA,CAAA,CAAA;AAC5B,EAAA,MAAM,EAAE,KAAA,EAAO,OAAA,EAAS,aAAA,EAAe,cAAc,EAAA,EAAI,cAAA,CAAe,CAAA;AAExE,EAAA,MAAM,oBAAA,EAAsB,gCAAA,CAAa,CAAA,EAAA,GAAwB;AAC/D,IAAA,CAAA,CAAE,cAAA,CAAe,CAAA;AACjB,IAAA,CAAA,CAAE,eAAA,CAAgB,CAAA;AAAA,EACpB,CAAA,EAAG,CAAC,CAAC,CAAA;AAEL,EAAA,MAAM,WAAA,EACJ,cAAA,CAAe,OAAA,EAAS;AAAA,IACtB,KAAA;AAAA,IACA;AAAA,EACF,CAAC,EAAA,IAAM,CAAA,CAAA;AAET,EAAA,uBACE,eAAA,CAAA,aAAA;AAAA,IAAC,4BAAA;AAAA,IAAA,4CAAA,6CAAA;AAAA,MACC;AAAA,IAAA,CAAA,EACI,KAAA,CAAA,EAFL;AAAA,MAGC,QAAA,EAAU,CAAA,EAAA,GAAM;AACd,QAAA,aAAA,CAAc;AAAA,UACZ,KAAA;AAAA,UACA;AAAA,QACF,CAAC,CAAA;AACD,QAAA,aAAA,CAAc,EAAE,CAAA;AAAA,MAClB,CAAA;AAAA,MACA,SAAA,EAAW,iCAAA;AAAA,QACT,4EAAA;AAAA,QACA,SAAA;AAAA,QACA,WAAA,GAAc,2BAAA;AAAA,QACd,KAAA,CAAM,SAAA,GAAY;AAAA,MACpB,CAAA;AAAA,MACA,WAAA,EAAa;AAAA,IAAA,CAAA,CAAA;AAAA,IAEZ,QAAA;AAAA,IACA,WAAA,mBAAc,eAAA,CAAA,aAAA,CAAC,qBAAA,EAAA,EAAU,SAAA,EAAU,UAAA,CAAU;AAAA,EAChD,CAAA;AAEJ,CAAC,CAAA;AAED,iBAAA,CAAkB,YAAA,EAAc,mBAAA;ADxDhC;AACE;AACA;AACA;AACA;AACA;AACA;AACF,+RAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/components/ui/extension/multi-select.js","sourcesContent":[null,"\"use client\";\nimport { Badge } from '../badge';\nimport { Command, CommandItem, CommandEmpty, CommandList } from '../command';\nimport { IconX, IconCheck } from '@tabler/icons-react';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport React, { type KeyboardEvent, createContext, forwardRef, useCallback, useContext, useState } from 'react';\n\nimport { cn } from '../../../utils/ui';\n\nexport type MultiSelectValue = {\n value: string;\n label: string;\n};\n\ninterface MultiSelectorProps extends React.ComponentPropsWithoutRef<typeof CommandPrimitive> {\n values: MultiSelectValue[];\n onValuesChange: (value: MultiSelectValue[]) => void;\n loop?: boolean;\n className?: string;\n children?: React.ReactNode;\n dir?: 'ltr' | 'rtl';\n}\n\ninterface MultiSelectContextProps {\n value: MultiSelectValue[];\n onValueChange: (value: any) => void;\n open: boolean;\n setOpen: (value: boolean) => void;\n inputValue: string;\n setInputValue: React.Dispatch<React.SetStateAction<string>>;\n activeIndex: number;\n setActiveIndex: React.Dispatch<React.SetStateAction<number>>;\n ref: React.RefObject<HTMLInputElement | null>;\n}\n\nconst MultiSelectContext = createContext<MultiSelectContextProps | null>(null);\n\nconst useMultiSelect = () => {\n const context = useContext(MultiSelectContext);\n if (!context) {\n throw new Error('useMultiSelect must be used within MultiSelectProvider');\n }\n return context;\n};\n\n/**\n * MultiSelect Docs: {@link: https://shadcn-extension.vercel.app/docs/multi-select}\n */\n\n// TODO : expose the visibility of the popup\n\nfunction searchForValue(source: MultiSelectValue[], value: MultiSelectValue) {\n for (let i = 0; i < source.length; i++) {\n if (source[i].value === value.value) {\n return i;\n }\n }\n return -1;\n}\n\nconst MultiSelector = ({\n values: value,\n onValuesChange: onValueChange,\n loop = false,\n className,\n children,\n dir,\n ...props\n}: MultiSelectorProps) => {\n const [inputValue, setInputValue] = useState('');\n const [open, setOpen] = useState<boolean>(false);\n const [activeIndex, setActiveIndex] = useState<number>(-1);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const onValueChangeHandler = useCallback(\n (val: MultiSelectValue) => {\n const element = searchForValue(value, val);\n if (element !== -1) {\n onValueChange(value.filter((_, index) => index !== element));\n } else {\n onValueChange([...value, val]);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [value],\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n e.stopPropagation();\n const target = inputRef.current;\n\n if (!target) return;\n\n const selectionStart = target.selectionStart ?? 0;\n const selectionEnd = target.selectionEnd ?? 0;\n\n // If there's a selection, do nothing and let the default behavior take over\n if (selectionStart !== selectionEnd) {\n return;\n }\n\n const moveNext = () => {\n const nextIndex = activeIndex + 1;\n setActiveIndex(nextIndex > value.length - 1 ? (loop ? 0 : -1) : nextIndex);\n };\n\n const movePrev = () => {\n const prevIndex = activeIndex - 1;\n setActiveIndex(prevIndex < 0 ? value.length - 1 : prevIndex);\n };\n\n const moveCurrent = () => {\n const newIndex = activeIndex - 1 <= 0 ? (value.length - 1 === 0 ? -1 : 0) : activeIndex - 1;\n setActiveIndex(newIndex);\n };\n\n switch (e.key) {\n case 'ArrowLeft':\n if (dir === 'rtl') {\n if (value.length > 0 && (activeIndex !== -1 || loop)) {\n moveNext();\n }\n } else {\n if (value.length > 0 && target.selectionStart === 0) {\n movePrev();\n }\n }\n break;\n\n case 'ArrowRight':\n if (dir === 'rtl') {\n if (value.length > 0 && target.selectionStart === 0) {\n movePrev();\n }\n } else {\n if (value.length > 0 && (activeIndex !== -1 || loop)) {\n moveNext();\n }\n }\n break;\n\n case 'Backspace':\n case 'Delete':\n if (value.length > 0) {\n if (activeIndex !== -1 && activeIndex < value.length) {\n onValueChangeHandler(value[activeIndex]);\n moveCurrent();\n } else {\n if (target.selectionStart === 0) {\n onValueChangeHandler(value[value.length - 1]);\n }\n }\n }\n break;\n\n case 'Enter':\n setOpen(true);\n break;\n\n case 'Escape':\n if (activeIndex !== -1) {\n setActiveIndex(-1);\n } else if (open) {\n setInputValue('');\n setOpen(false);\n }\n break;\n }\n },\n [value, activeIndex, loop],\n );\n\n return (\n <MultiSelectContext.Provider\n value={{\n value,\n onValueChange: onValueChangeHandler,\n open,\n setOpen,\n inputValue,\n setInputValue,\n activeIndex,\n setActiveIndex,\n ref: inputRef,\n }}\n >\n <Command\n onKeyDown={handleKeyDown}\n className={cn('overflow-visible bg-transparent flex flex-col space-y-2', className)}\n dir={dir}\n {...props}\n >\n {children}\n </Command>\n </MultiSelectContext.Provider>\n );\n};\n\nconst MultiSelectorTrigger = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => {\n const { value, onValueChange, activeIndex } = useMultiSelect();\n\n const mousePreventDefault = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n }, []);\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex flex-wrap gap-1 px-2 py-2 ring-1 ring-muted rounded-lg bg-background border rounded-sm',\n {\n 'ring-1 focus-within:ring-ring': activeIndex === -1,\n },\n className,\n )}\n {...props}\n >\n {value.map((item, index) => (\n <Badge\n key={item.value}\n className={cn(\n 'px-1.5 rounded-md flex items-center gap-1',\n activeIndex === index && 'ring-2 ring-muted-foreground ',\n )}\n variant=\"secondary\"\n >\n <span className=\"text-xs\">{item.label}</span>\n\n <button\n aria-label={`Remove ${item} option`}\n aria-roledescription=\"button to remove option\"\n type=\"button\"\n onMouseDown={mousePreventDefault}\n onClick={() => onValueChange(item)}\n >\n <span className=\"sr-only\">Remove {item.label} option</span>\n\n <IconX className=\"h-4 w-4 hover:stroke-destructive\" />\n </button>\n </Badge>\n ))}\n {children}\n </div>\n );\n },\n);\n\nMultiSelectorTrigger.displayName = 'MultiSelectorTrigger';\n\nconst MultiSelectorInput = forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => {\n const { setOpen, inputValue, setInputValue, activeIndex, setActiveIndex, ref: inputRef } = useMultiSelect();\n\n return (\n <CommandPrimitive.Input\n {...props}\n tabIndex={0}\n ref={inputRef}\n value={inputValue}\n onValueChange={activeIndex === -1 ? setInputValue : undefined}\n onBlur={() => {\n setInputValue('');\n setOpen(false);\n }}\n onFocus={() => setOpen(true)}\n onClick={() => setActiveIndex(-1)}\n className={cn(\n 'p-0 bg-transparent border-none outline-none focus:outline-none focus:ring-0 placeholder:text-muted-foreground flex-1 text-sm',\n className,\n activeIndex !== -1 && 'caret-transparent',\n )}\n />\n );\n});\n\nMultiSelectorInput.displayName = 'MultiSelectorInput';\n\nconst MultiSelectorContent = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ children }, ref) => {\n const { open } = useMultiSelect();\n return (\n <div ref={ref} className=\"relative\">\n {open ? children : null}\n </div>\n );\n});\n\nMultiSelectorContent.displayName = 'MultiSelectorContent';\n\nconst MultiSelectorList = forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, children }, ref) => {\n return (\n <CommandList\n ref={ref}\n className={cn(\n 'p-2 flex flex-col gap-2 rounded-md scrollbar-thin scrollbar-track-transparent transition-colors scrollbar-thumb-muted-foreground dark:scrollbar-thumb-muted scrollbar-thumb-rounded-lg w-full absolute bg-background shadow-md z-100 border border-muted top-0',\n className,\n )}\n >\n {children}\n\n <CommandEmpty>\n <span className=\"text-muted-foreground\">No results found</span>\n </CommandEmpty>\n </CommandList>\n );\n});\n\nMultiSelectorList.displayName = 'MultiSelectorList';\n\nconst MultiSelectorItem = forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n { value: string; label: string } & React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, value, label, children, ...props }, ref) => {\n const { value: Options, onValueChange, setInputValue } = useMultiSelect();\n\n const mousePreventDefault = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n }, []);\n\n const isIncluded =\n searchForValue(Options, {\n value: value,\n label: label,\n }) !== -1;\n\n return (\n <CommandItem\n ref={ref}\n {...props}\n onSelect={() => {\n onValueChange({\n value: value,\n label: label,\n });\n setInputValue('');\n }}\n className={cn(\n 'rounded-md cursor-pointer px-2 py-1 transition-colors flex justify-between',\n className,\n isIncluded && 'opacity-50 cursor-default',\n props.disabled && 'opacity-50 cursor-not-allowed',\n )}\n onMouseDown={mousePreventDefault}\n >\n {children}\n {isIncluded && <IconCheck className=\"h-4 w-4\" />}\n </CommandItem>\n );\n});\n\nMultiSelectorItem.displayName = 'MultiSelectorItem';\n\nexport {\n MultiSelector,\n MultiSelectorTrigger,\n MultiSelectorInput,\n MultiSelectorContent,\n MultiSelectorList,\n MultiSelectorItem,\n};\n"]}
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/components/ui/extension/multi-select.js","../../../../components/ui/extension/multi-select.tsx"],"names":["_a","_b"],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/components/ui/extension/multi-select.js","sourcesContent":[null,"\"use client\";\nimport { Badge } from '../badge';\nimport { Command, CommandItem, CommandEmpty, CommandList } from '../command';\nimport { IconX, IconCheck } from '@tabler/icons-react';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport React, { type KeyboardEvent, createContext, forwardRef, useCallback, useContext, useState } from 'react';\n\nimport { cn } from '../../../utils/ui';\n\nexport type MultiSelectValue = {\n value: string;\n label: string;\n};\n\ninterface MultiSelectorProps extends React.ComponentPropsWithoutRef<typeof CommandPrimitive> {\n values: MultiSelectValue[];\n onValuesChange: (value: MultiSelectValue[]) => void;\n loop?: boolean;\n className?: string;\n children?: React.ReactNode;\n dir?: 'ltr' | 'rtl';\n}\n\ninterface MultiSelectContextProps {\n value: MultiSelectValue[];\n onValueChange: (value: any) => void;\n open: boolean;\n setOpen: (value: boolean) => void;\n inputValue: string;\n setInputValue: React.Dispatch<React.SetStateAction<string>>;\n activeIndex: number;\n setActiveIndex: React.Dispatch<React.SetStateAction<number>>;\n ref: React.RefObject<HTMLInputElement | null>;\n}\n\nconst MultiSelectContext = createContext<MultiSelectContextProps | null>(null);\n\nconst useMultiSelect = () => {\n const context = useContext(MultiSelectContext);\n if (!context) {\n throw new Error('useMultiSelect must be used within MultiSelectProvider');\n }\n return context;\n};\n\n/**\n * MultiSelect Docs: {@link: https://shadcn-extension.vercel.app/docs/multi-select}\n */\n\n// TODO : expose the visibility of the popup\n\nfunction searchForValue(source: MultiSelectValue[], value: MultiSelectValue) {\n for (let i = 0; i < source.length; i++) {\n if (source[i].value === value.value) {\n return i;\n }\n }\n return -1;\n}\n\nconst MultiSelector = ({\n values: value,\n onValuesChange: onValueChange,\n loop = false,\n className,\n children,\n dir,\n ...props\n}: MultiSelectorProps) => {\n const [inputValue, setInputValue] = useState('');\n const [open, setOpen] = useState<boolean>(false);\n const [activeIndex, setActiveIndex] = useState<number>(-1);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const onValueChangeHandler = useCallback(\n (val: MultiSelectValue) => {\n const element = searchForValue(value, val);\n if (element !== -1) {\n onValueChange(value.filter((_, index) => index !== element));\n } else {\n onValueChange([...value, val]);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [value],\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n e.stopPropagation();\n const target = inputRef.current;\n\n if (!target) return;\n\n const selectionStart = target.selectionStart ?? 0;\n const selectionEnd = target.selectionEnd ?? 0;\n\n // If there's a selection, do nothing and let the default behavior take over\n if (selectionStart !== selectionEnd) {\n return;\n }\n\n const moveNext = () => {\n const nextIndex = activeIndex + 1;\n setActiveIndex(nextIndex > value.length - 1 ? (loop ? 0 : -1) : nextIndex);\n };\n\n const movePrev = () => {\n const prevIndex = activeIndex - 1;\n setActiveIndex(prevIndex < 0 ? value.length - 1 : prevIndex);\n };\n\n const moveCurrent = () => {\n const newIndex = activeIndex - 1 <= 0 ? (value.length - 1 === 0 ? -1 : 0) : activeIndex - 1;\n setActiveIndex(newIndex);\n };\n\n switch (e.key) {\n case 'ArrowLeft':\n if (dir === 'rtl') {\n if (value.length > 0 && (activeIndex !== -1 || loop)) {\n moveNext();\n }\n } else {\n if (value.length > 0 && target.selectionStart === 0) {\n movePrev();\n }\n }\n break;\n\n case 'ArrowRight':\n if (dir === 'rtl') {\n if (value.length > 0 && target.selectionStart === 0) {\n movePrev();\n }\n } else {\n if (value.length > 0 && (activeIndex !== -1 || loop)) {\n moveNext();\n }\n }\n break;\n\n case 'Backspace':\n case 'Delete':\n if (value.length > 0) {\n if (activeIndex !== -1 && activeIndex < value.length) {\n onValueChangeHandler(value[activeIndex]);\n moveCurrent();\n } else {\n if (target.selectionStart === 0) {\n onValueChangeHandler(value[value.length - 1]);\n }\n }\n }\n break;\n\n case 'Enter':\n setOpen(true);\n break;\n\n case 'Escape':\n if (activeIndex !== -1) {\n setActiveIndex(-1);\n } else if (open) {\n setInputValue('');\n setOpen(false);\n }\n break;\n }\n },\n [value, activeIndex, loop],\n );\n\n return (\n <MultiSelectContext.Provider\n value={{\n value,\n onValueChange: onValueChangeHandler,\n open,\n setOpen,\n inputValue,\n setInputValue,\n activeIndex,\n setActiveIndex,\n ref: inputRef,\n }}\n >\n <Command\n onKeyDown={handleKeyDown}\n className={cn('overflow-visible bg-transparent flex flex-col space-y-2', className)}\n dir={dir}\n {...props}\n >\n {children}\n </Command>\n </MultiSelectContext.Provider>\n );\n};\n\nconst MultiSelectorTrigger = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => {\n const { value, onValueChange, activeIndex } = useMultiSelect();\n\n const mousePreventDefault = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n }, []);\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex flex-wrap gap-1 px-2 py-2 ring-1 ring-muted rounded-lg bg-background border rounded-sm',\n {\n 'ring-1 focus-within:ring-ring': activeIndex === -1,\n },\n className,\n )}\n {...props}\n >\n {value.map((item, index) => (\n <Badge\n key={item.value}\n className={cn(\n 'px-1.5 rounded-md flex items-center gap-1',\n activeIndex === index && 'ring-2 ring-muted-foreground ',\n )}\n variant=\"secondary\"\n >\n <span className=\"text-xs\">{item.label}</span>\n\n <button\n aria-label={`Remove ${item} option`}\n aria-roledescription=\"button to remove option\"\n type=\"button\"\n onMouseDown={mousePreventDefault}\n onClick={() => onValueChange(item)}\n >\n <span className=\"sr-only\">Remove {item.label} option</span>\n\n <IconX className=\"h-4 w-4 hover:stroke-destructive\" />\n </button>\n </Badge>\n ))}\n {children}\n </div>\n );\n },\n);\n\nMultiSelectorTrigger.displayName = 'MultiSelectorTrigger';\n\nconst MultiSelectorInput = forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => {\n const { setOpen, inputValue, setInputValue, activeIndex, setActiveIndex, ref: inputRef } = useMultiSelect();\n\n return (\n <CommandPrimitive.Input\n {...props}\n tabIndex={0}\n ref={inputRef}\n value={inputValue}\n onValueChange={activeIndex === -1 ? setInputValue : undefined}\n onBlur={() => {\n setInputValue('');\n setOpen(false);\n }}\n onFocus={() => setOpen(true)}\n onClick={() => setActiveIndex(-1)}\n className={cn(\n 'p-0 bg-transparent border-none outline-none focus:outline-none focus:ring-0 placeholder:text-muted-foreground flex-1 text-sm',\n className,\n activeIndex !== -1 && 'caret-transparent',\n )}\n />\n );\n});\n\nMultiSelectorInput.displayName = 'MultiSelectorInput';\n\nconst MultiSelectorContent = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ children }, ref) => {\n const { open } = useMultiSelect();\n return (\n <div ref={ref} className=\"relative\">\n {open ? children : null}\n </div>\n );\n});\n\nMultiSelectorContent.displayName = 'MultiSelectorContent';\n\nconst MultiSelectorList = forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, children }, ref) => {\n return (\n <CommandList\n ref={ref}\n className={cn(\n 'p-2 flex flex-col gap-2 rounded-md scrollbar-thin scrollbar-track-transparent transition-colors scrollbar-thumb-muted-foreground dark:scrollbar-thumb-muted scrollbar-thumb-rounded-lg w-full absolute bg-background shadow-md z-100 border border-muted top-0',\n className,\n )}\n >\n {children}\n\n <CommandEmpty>\n <span className=\"text-muted-foreground\">No results found</span>\n </CommandEmpty>\n </CommandList>\n );\n});\n\nMultiSelectorList.displayName = 'MultiSelectorList';\n\nconst MultiSelectorItem = forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n { value: string; label: string } & React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, value, label, children, ...props }, ref) => {\n const { value: Options, onValueChange, setInputValue } = useMultiSelect();\n\n const mousePreventDefault = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n }, []);\n\n const isIncluded =\n searchForValue(Options, {\n value: value,\n label: label,\n }) !== -1;\n\n return (\n <CommandItem\n ref={ref}\n {...props}\n onSelect={() => {\n onValueChange({\n value: value,\n label: label,\n });\n setInputValue('');\n }}\n className={cn(\n 'rounded-md cursor-pointer px-2 py-1 transition-colors flex justify-between',\n className,\n isIncluded && 'opacity-50 cursor-default',\n props.disabled && 'opacity-50 cursor-not-allowed',\n )}\n onMouseDown={mousePreventDefault}\n >\n {children}\n {isIncluded && <IconCheck className=\"h-4 w-4\" />}\n </CommandItem>\n );\n});\n\nMultiSelectorItem.displayName = 'MultiSelectorItem';\n\nexport {\n MultiSelector,\n MultiSelectorTrigger,\n MultiSelectorInput,\n MultiSelectorContent,\n MultiSelectorList,\n MultiSelectorItem,\n};\n"]}
@@ -1,14 +1,19 @@
1
1
  "use client";
2
2
  import {
3
3
  Badge
4
- } from "../../../chunk-HBKXMTBF.mjs";
4
+ } from "../../../chunk-WIISPZZE.mjs";
5
5
  import {
6
6
  Command,
7
7
  CommandEmpty,
8
8
  CommandItem,
9
9
  CommandList
10
- } from "../../../chunk-OJEDITOA.mjs";
11
- import "../../../chunk-D6WUNCBI.mjs";
10
+ } from "../../../chunk-HNN3WAQE.mjs";
11
+ import "../../../chunk-HKZRXGJ7.mjs";
12
+ import "../../../chunk-N4GWGP3Z.mjs";
13
+ import "../../../chunk-QF6PFV6M.mjs";
14
+ import "../../../chunk-YQENFZOY.mjs";
15
+ import "../../../chunk-7BYWDRRI.mjs";
16
+ import "../../../chunk-3GHC4JQU.mjs";
12
17
  import {
13
18
  cn
14
19
  } from "../../../chunk-KGUUDFJE.mjs";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../components/ui/extension/multi-select.tsx"],"sourcesContent":["\"use client\";\nimport { Badge } from '../badge';\nimport { Command, CommandItem, CommandEmpty, CommandList } from '../command';\nimport { IconX, IconCheck } from '@tabler/icons-react';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport React, { type KeyboardEvent, createContext, forwardRef, useCallback, useContext, useState } from 'react';\n\nimport { cn } from '../../../utils/ui';\n\nexport type MultiSelectValue = {\n value: string;\n label: string;\n};\n\ninterface MultiSelectorProps extends React.ComponentPropsWithoutRef<typeof CommandPrimitive> {\n values: MultiSelectValue[];\n onValuesChange: (value: MultiSelectValue[]) => void;\n loop?: boolean;\n className?: string;\n children?: React.ReactNode;\n dir?: 'ltr' | 'rtl';\n}\n\ninterface MultiSelectContextProps {\n value: MultiSelectValue[];\n onValueChange: (value: any) => void;\n open: boolean;\n setOpen: (value: boolean) => void;\n inputValue: string;\n setInputValue: React.Dispatch<React.SetStateAction<string>>;\n activeIndex: number;\n setActiveIndex: React.Dispatch<React.SetStateAction<number>>;\n ref: React.RefObject<HTMLInputElement | null>;\n}\n\nconst MultiSelectContext = createContext<MultiSelectContextProps | null>(null);\n\nconst useMultiSelect = () => {\n const context = useContext(MultiSelectContext);\n if (!context) {\n throw new Error('useMultiSelect must be used within MultiSelectProvider');\n }\n return context;\n};\n\n/**\n * MultiSelect Docs: {@link: https://shadcn-extension.vercel.app/docs/multi-select}\n */\n\n// TODO : expose the visibility of the popup\n\nfunction searchForValue(source: MultiSelectValue[], value: MultiSelectValue) {\n for (let i = 0; i < source.length; i++) {\n if (source[i].value === value.value) {\n return i;\n }\n }\n return -1;\n}\n\nconst MultiSelector = ({\n values: value,\n onValuesChange: onValueChange,\n loop = false,\n className,\n children,\n dir,\n ...props\n}: MultiSelectorProps) => {\n const [inputValue, setInputValue] = useState('');\n const [open, setOpen] = useState<boolean>(false);\n const [activeIndex, setActiveIndex] = useState<number>(-1);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const onValueChangeHandler = useCallback(\n (val: MultiSelectValue) => {\n const element = searchForValue(value, val);\n if (element !== -1) {\n onValueChange(value.filter((_, index) => index !== element));\n } else {\n onValueChange([...value, val]);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [value],\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n e.stopPropagation();\n const target = inputRef.current;\n\n if (!target) return;\n\n const selectionStart = target.selectionStart ?? 0;\n const selectionEnd = target.selectionEnd ?? 0;\n\n // If there's a selection, do nothing and let the default behavior take over\n if (selectionStart !== selectionEnd) {\n return;\n }\n\n const moveNext = () => {\n const nextIndex = activeIndex + 1;\n setActiveIndex(nextIndex > value.length - 1 ? (loop ? 0 : -1) : nextIndex);\n };\n\n const movePrev = () => {\n const prevIndex = activeIndex - 1;\n setActiveIndex(prevIndex < 0 ? value.length - 1 : prevIndex);\n };\n\n const moveCurrent = () => {\n const newIndex = activeIndex - 1 <= 0 ? (value.length - 1 === 0 ? -1 : 0) : activeIndex - 1;\n setActiveIndex(newIndex);\n };\n\n switch (e.key) {\n case 'ArrowLeft':\n if (dir === 'rtl') {\n if (value.length > 0 && (activeIndex !== -1 || loop)) {\n moveNext();\n }\n } else {\n if (value.length > 0 && target.selectionStart === 0) {\n movePrev();\n }\n }\n break;\n\n case 'ArrowRight':\n if (dir === 'rtl') {\n if (value.length > 0 && target.selectionStart === 0) {\n movePrev();\n }\n } else {\n if (value.length > 0 && (activeIndex !== -1 || loop)) {\n moveNext();\n }\n }\n break;\n\n case 'Backspace':\n case 'Delete':\n if (value.length > 0) {\n if (activeIndex !== -1 && activeIndex < value.length) {\n onValueChangeHandler(value[activeIndex]);\n moveCurrent();\n } else {\n if (target.selectionStart === 0) {\n onValueChangeHandler(value[value.length - 1]);\n }\n }\n }\n break;\n\n case 'Enter':\n setOpen(true);\n break;\n\n case 'Escape':\n if (activeIndex !== -1) {\n setActiveIndex(-1);\n } else if (open) {\n setInputValue('');\n setOpen(false);\n }\n break;\n }\n },\n [value, activeIndex, loop],\n );\n\n return (\n <MultiSelectContext.Provider\n value={{\n value,\n onValueChange: onValueChangeHandler,\n open,\n setOpen,\n inputValue,\n setInputValue,\n activeIndex,\n setActiveIndex,\n ref: inputRef,\n }}\n >\n <Command\n onKeyDown={handleKeyDown}\n className={cn('overflow-visible bg-transparent flex flex-col space-y-2', className)}\n dir={dir}\n {...props}\n >\n {children}\n </Command>\n </MultiSelectContext.Provider>\n );\n};\n\nconst MultiSelectorTrigger = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => {\n const { value, onValueChange, activeIndex } = useMultiSelect();\n\n const mousePreventDefault = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n }, []);\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex flex-wrap gap-1 px-2 py-2 ring-1 ring-muted rounded-lg bg-background border rounded-sm',\n {\n 'ring-1 focus-within:ring-ring': activeIndex === -1,\n },\n className,\n )}\n {...props}\n >\n {value.map((item, index) => (\n <Badge\n key={item.value}\n className={cn(\n 'px-1.5 rounded-md flex items-center gap-1',\n activeIndex === index && 'ring-2 ring-muted-foreground ',\n )}\n variant=\"secondary\"\n >\n <span className=\"text-xs\">{item.label}</span>\n\n <button\n aria-label={`Remove ${item} option`}\n aria-roledescription=\"button to remove option\"\n type=\"button\"\n onMouseDown={mousePreventDefault}\n onClick={() => onValueChange(item)}\n >\n <span className=\"sr-only\">Remove {item.label} option</span>\n\n <IconX className=\"h-4 w-4 hover:stroke-destructive\" />\n </button>\n </Badge>\n ))}\n {children}\n </div>\n );\n },\n);\n\nMultiSelectorTrigger.displayName = 'MultiSelectorTrigger';\n\nconst MultiSelectorInput = forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => {\n const { setOpen, inputValue, setInputValue, activeIndex, setActiveIndex, ref: inputRef } = useMultiSelect();\n\n return (\n <CommandPrimitive.Input\n {...props}\n tabIndex={0}\n ref={inputRef}\n value={inputValue}\n onValueChange={activeIndex === -1 ? setInputValue : undefined}\n onBlur={() => {\n setInputValue('');\n setOpen(false);\n }}\n onFocus={() => setOpen(true)}\n onClick={() => setActiveIndex(-1)}\n className={cn(\n 'p-0 bg-transparent border-none outline-none focus:outline-none focus:ring-0 placeholder:text-muted-foreground flex-1 text-sm',\n className,\n activeIndex !== -1 && 'caret-transparent',\n )}\n />\n );\n});\n\nMultiSelectorInput.displayName = 'MultiSelectorInput';\n\nconst MultiSelectorContent = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ children }, ref) => {\n const { open } = useMultiSelect();\n return (\n <div ref={ref} className=\"relative\">\n {open ? children : null}\n </div>\n );\n});\n\nMultiSelectorContent.displayName = 'MultiSelectorContent';\n\nconst MultiSelectorList = forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, children }, ref) => {\n return (\n <CommandList\n ref={ref}\n className={cn(\n 'p-2 flex flex-col gap-2 rounded-md scrollbar-thin scrollbar-track-transparent transition-colors scrollbar-thumb-muted-foreground dark:scrollbar-thumb-muted scrollbar-thumb-rounded-lg w-full absolute bg-background shadow-md z-100 border border-muted top-0',\n className,\n )}\n >\n {children}\n\n <CommandEmpty>\n <span className=\"text-muted-foreground\">No results found</span>\n </CommandEmpty>\n </CommandList>\n );\n});\n\nMultiSelectorList.displayName = 'MultiSelectorList';\n\nconst MultiSelectorItem = forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n { value: string; label: string } & React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, value, label, children, ...props }, ref) => {\n const { value: Options, onValueChange, setInputValue } = useMultiSelect();\n\n const mousePreventDefault = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n }, []);\n\n const isIncluded =\n searchForValue(Options, {\n value: value,\n label: label,\n }) !== -1;\n\n return (\n <CommandItem\n ref={ref}\n {...props}\n onSelect={() => {\n onValueChange({\n value: value,\n label: label,\n });\n setInputValue('');\n }}\n className={cn(\n 'rounded-md cursor-pointer px-2 py-1 transition-colors flex justify-between',\n className,\n isIncluded && 'opacity-50 cursor-default',\n props.disabled && 'opacity-50 cursor-not-allowed',\n )}\n onMouseDown={mousePreventDefault}\n >\n {children}\n {isIncluded && <IconCheck className=\"h-4 w-4\" />}\n </CommandItem>\n );\n});\n\nMultiSelectorItem.displayName = 'MultiSelectorItem';\n\nexport {\n MultiSelector,\n MultiSelectorTrigger,\n MultiSelectorInput,\n MultiSelectorContent,\n MultiSelectorList,\n MultiSelectorItem,\n};\n"],"mappings":"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","names":["_a","_b"]}
1
+ {"version":3,"sources":["../../../../components/ui/extension/multi-select.tsx"],"sourcesContent":["\"use client\";\nimport { Badge } from '../badge';\nimport { Command, CommandItem, CommandEmpty, CommandList } from '../command';\nimport { IconX, IconCheck } from '@tabler/icons-react';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport React, { type KeyboardEvent, createContext, forwardRef, useCallback, useContext, useState } from 'react';\n\nimport { cn } from '../../../utils/ui';\n\nexport type MultiSelectValue = {\n value: string;\n label: string;\n};\n\ninterface MultiSelectorProps extends React.ComponentPropsWithoutRef<typeof CommandPrimitive> {\n values: MultiSelectValue[];\n onValuesChange: (value: MultiSelectValue[]) => void;\n loop?: boolean;\n className?: string;\n children?: React.ReactNode;\n dir?: 'ltr' | 'rtl';\n}\n\ninterface MultiSelectContextProps {\n value: MultiSelectValue[];\n onValueChange: (value: any) => void;\n open: boolean;\n setOpen: (value: boolean) => void;\n inputValue: string;\n setInputValue: React.Dispatch<React.SetStateAction<string>>;\n activeIndex: number;\n setActiveIndex: React.Dispatch<React.SetStateAction<number>>;\n ref: React.RefObject<HTMLInputElement | null>;\n}\n\nconst MultiSelectContext = createContext<MultiSelectContextProps | null>(null);\n\nconst useMultiSelect = () => {\n const context = useContext(MultiSelectContext);\n if (!context) {\n throw new Error('useMultiSelect must be used within MultiSelectProvider');\n }\n return context;\n};\n\n/**\n * MultiSelect Docs: {@link: https://shadcn-extension.vercel.app/docs/multi-select}\n */\n\n// TODO : expose the visibility of the popup\n\nfunction searchForValue(source: MultiSelectValue[], value: MultiSelectValue) {\n for (let i = 0; i < source.length; i++) {\n if (source[i].value === value.value) {\n return i;\n }\n }\n return -1;\n}\n\nconst MultiSelector = ({\n values: value,\n onValuesChange: onValueChange,\n loop = false,\n className,\n children,\n dir,\n ...props\n}: MultiSelectorProps) => {\n const [inputValue, setInputValue] = useState('');\n const [open, setOpen] = useState<boolean>(false);\n const [activeIndex, setActiveIndex] = useState<number>(-1);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const onValueChangeHandler = useCallback(\n (val: MultiSelectValue) => {\n const element = searchForValue(value, val);\n if (element !== -1) {\n onValueChange(value.filter((_, index) => index !== element));\n } else {\n onValueChange([...value, val]);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [value],\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n e.stopPropagation();\n const target = inputRef.current;\n\n if (!target) return;\n\n const selectionStart = target.selectionStart ?? 0;\n const selectionEnd = target.selectionEnd ?? 0;\n\n // If there's a selection, do nothing and let the default behavior take over\n if (selectionStart !== selectionEnd) {\n return;\n }\n\n const moveNext = () => {\n const nextIndex = activeIndex + 1;\n setActiveIndex(nextIndex > value.length - 1 ? (loop ? 0 : -1) : nextIndex);\n };\n\n const movePrev = () => {\n const prevIndex = activeIndex - 1;\n setActiveIndex(prevIndex < 0 ? value.length - 1 : prevIndex);\n };\n\n const moveCurrent = () => {\n const newIndex = activeIndex - 1 <= 0 ? (value.length - 1 === 0 ? -1 : 0) : activeIndex - 1;\n setActiveIndex(newIndex);\n };\n\n switch (e.key) {\n case 'ArrowLeft':\n if (dir === 'rtl') {\n if (value.length > 0 && (activeIndex !== -1 || loop)) {\n moveNext();\n }\n } else {\n if (value.length > 0 && target.selectionStart === 0) {\n movePrev();\n }\n }\n break;\n\n case 'ArrowRight':\n if (dir === 'rtl') {\n if (value.length > 0 && target.selectionStart === 0) {\n movePrev();\n }\n } else {\n if (value.length > 0 && (activeIndex !== -1 || loop)) {\n moveNext();\n }\n }\n break;\n\n case 'Backspace':\n case 'Delete':\n if (value.length > 0) {\n if (activeIndex !== -1 && activeIndex < value.length) {\n onValueChangeHandler(value[activeIndex]);\n moveCurrent();\n } else {\n if (target.selectionStart === 0) {\n onValueChangeHandler(value[value.length - 1]);\n }\n }\n }\n break;\n\n case 'Enter':\n setOpen(true);\n break;\n\n case 'Escape':\n if (activeIndex !== -1) {\n setActiveIndex(-1);\n } else if (open) {\n setInputValue('');\n setOpen(false);\n }\n break;\n }\n },\n [value, activeIndex, loop],\n );\n\n return (\n <MultiSelectContext.Provider\n value={{\n value,\n onValueChange: onValueChangeHandler,\n open,\n setOpen,\n inputValue,\n setInputValue,\n activeIndex,\n setActiveIndex,\n ref: inputRef,\n }}\n >\n <Command\n onKeyDown={handleKeyDown}\n className={cn('overflow-visible bg-transparent flex flex-col space-y-2', className)}\n dir={dir}\n {...props}\n >\n {children}\n </Command>\n </MultiSelectContext.Provider>\n );\n};\n\nconst MultiSelectorTrigger = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => {\n const { value, onValueChange, activeIndex } = useMultiSelect();\n\n const mousePreventDefault = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n }, []);\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex flex-wrap gap-1 px-2 py-2 ring-1 ring-muted rounded-lg bg-background border rounded-sm',\n {\n 'ring-1 focus-within:ring-ring': activeIndex === -1,\n },\n className,\n )}\n {...props}\n >\n {value.map((item, index) => (\n <Badge\n key={item.value}\n className={cn(\n 'px-1.5 rounded-md flex items-center gap-1',\n activeIndex === index && 'ring-2 ring-muted-foreground ',\n )}\n variant=\"secondary\"\n >\n <span className=\"text-xs\">{item.label}</span>\n\n <button\n aria-label={`Remove ${item} option`}\n aria-roledescription=\"button to remove option\"\n type=\"button\"\n onMouseDown={mousePreventDefault}\n onClick={() => onValueChange(item)}\n >\n <span className=\"sr-only\">Remove {item.label} option</span>\n\n <IconX className=\"h-4 w-4 hover:stroke-destructive\" />\n </button>\n </Badge>\n ))}\n {children}\n </div>\n );\n },\n);\n\nMultiSelectorTrigger.displayName = 'MultiSelectorTrigger';\n\nconst MultiSelectorInput = forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => {\n const { setOpen, inputValue, setInputValue, activeIndex, setActiveIndex, ref: inputRef } = useMultiSelect();\n\n return (\n <CommandPrimitive.Input\n {...props}\n tabIndex={0}\n ref={inputRef}\n value={inputValue}\n onValueChange={activeIndex === -1 ? setInputValue : undefined}\n onBlur={() => {\n setInputValue('');\n setOpen(false);\n }}\n onFocus={() => setOpen(true)}\n onClick={() => setActiveIndex(-1)}\n className={cn(\n 'p-0 bg-transparent border-none outline-none focus:outline-none focus:ring-0 placeholder:text-muted-foreground flex-1 text-sm',\n className,\n activeIndex !== -1 && 'caret-transparent',\n )}\n />\n );\n});\n\nMultiSelectorInput.displayName = 'MultiSelectorInput';\n\nconst MultiSelectorContent = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ children }, ref) => {\n const { open } = useMultiSelect();\n return (\n <div ref={ref} className=\"relative\">\n {open ? children : null}\n </div>\n );\n});\n\nMultiSelectorContent.displayName = 'MultiSelectorContent';\n\nconst MultiSelectorList = forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, children }, ref) => {\n return (\n <CommandList\n ref={ref}\n className={cn(\n 'p-2 flex flex-col gap-2 rounded-md scrollbar-thin scrollbar-track-transparent transition-colors scrollbar-thumb-muted-foreground dark:scrollbar-thumb-muted scrollbar-thumb-rounded-lg w-full absolute bg-background shadow-md z-100 border border-muted top-0',\n className,\n )}\n >\n {children}\n\n <CommandEmpty>\n <span className=\"text-muted-foreground\">No results found</span>\n </CommandEmpty>\n </CommandList>\n );\n});\n\nMultiSelectorList.displayName = 'MultiSelectorList';\n\nconst MultiSelectorItem = forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n { value: string; label: string } & React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, value, label, children, ...props }, ref) => {\n const { value: Options, onValueChange, setInputValue } = useMultiSelect();\n\n const mousePreventDefault = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n }, []);\n\n const isIncluded =\n searchForValue(Options, {\n value: value,\n label: label,\n }) !== -1;\n\n return (\n <CommandItem\n ref={ref}\n {...props}\n onSelect={() => {\n onValueChange({\n value: value,\n label: label,\n });\n setInputValue('');\n }}\n className={cn(\n 'rounded-md cursor-pointer px-2 py-1 transition-colors flex justify-between',\n className,\n isIncluded && 'opacity-50 cursor-default',\n props.disabled && 'opacity-50 cursor-not-allowed',\n )}\n onMouseDown={mousePreventDefault}\n >\n {children}\n {isIncluded && <IconCheck className=\"h-4 w-4\" />}\n </CommandItem>\n );\n});\n\nMultiSelectorItem.displayName = 'MultiSelectorItem';\n\nexport {\n MultiSelector,\n MultiSelectorTrigger,\n MultiSelectorInput,\n MultiSelectorContent,\n MultiSelectorList,\n MultiSelectorItem,\n};\n"],"mappings":"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","names":["_a","_b"]}
@@ -0,0 +1,29 @@
1
+ import * as class_variance_authority_types from 'class-variance-authority/types';
2
+ import * as React$1 from 'react';
3
+ import { VariantProps } from 'class-variance-authority';
4
+ import { Label } from './label.mjs';
5
+ import 'radix-ui';
6
+
7
+ declare function FieldSet({ className, ...props }: React.ComponentProps<'fieldset'>): React$1.JSX.Element;
8
+ declare function FieldLegend({ className, variant, ...props }: React.ComponentProps<'legend'> & {
9
+ variant?: 'legend' | 'label';
10
+ }): React$1.JSX.Element;
11
+ declare function FieldGroup({ className, ...props }: React.ComponentProps<'div'>): React$1.JSX.Element;
12
+ declare const fieldVariants: (props?: ({
13
+ orientation?: "horizontal" | "vertical" | "responsive" | null | undefined;
14
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
15
+ declare function Field({ className, orientation, ...props }: React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>): React$1.JSX.Element;
16
+ declare function FieldContent({ className, ...props }: React.ComponentProps<'div'>): React$1.JSX.Element;
17
+ declare function FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>): React$1.JSX.Element;
18
+ declare function FieldTitle({ className, ...props }: React.ComponentProps<'div'>): React$1.JSX.Element;
19
+ declare function FieldDescription({ className, ...props }: React.ComponentProps<'p'>): React$1.JSX.Element;
20
+ declare function FieldSeparator({ children, className, ...props }: React.ComponentProps<'div'> & {
21
+ children?: React.ReactNode;
22
+ }): React$1.JSX.Element;
23
+ declare function FieldError({ className, children, errors, ...props }: React.ComponentProps<'div'> & {
24
+ errors?: Array<{
25
+ message?: string;
26
+ } | undefined>;
27
+ }): React$1.JSX.Element | null;
28
+
29
+ export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle };
@@ -0,0 +1,29 @@
1
+ import * as class_variance_authority_types from 'class-variance-authority/types';
2
+ import * as React$1 from 'react';
3
+ import { VariantProps } from 'class-variance-authority';
4
+ import { Label } from './label.js';
5
+ import 'radix-ui';
6
+
7
+ declare function FieldSet({ className, ...props }: React.ComponentProps<'fieldset'>): React$1.JSX.Element;
8
+ declare function FieldLegend({ className, variant, ...props }: React.ComponentProps<'legend'> & {
9
+ variant?: 'legend' | 'label';
10
+ }): React$1.JSX.Element;
11
+ declare function FieldGroup({ className, ...props }: React.ComponentProps<'div'>): React$1.JSX.Element;
12
+ declare const fieldVariants: (props?: ({
13
+ orientation?: "horizontal" | "vertical" | "responsive" | null | undefined;
14
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
15
+ declare function Field({ className, orientation, ...props }: React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>): React$1.JSX.Element;
16
+ declare function FieldContent({ className, ...props }: React.ComponentProps<'div'>): React$1.JSX.Element;
17
+ declare function FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>): React$1.JSX.Element;
18
+ declare function FieldTitle({ className, ...props }: React.ComponentProps<'div'>): React$1.JSX.Element;
19
+ declare function FieldDescription({ className, ...props }: React.ComponentProps<'p'>): React$1.JSX.Element;
20
+ declare function FieldSeparator({ children, className, ...props }: React.ComponentProps<'div'> & {
21
+ children?: React.ReactNode;
22
+ }): React$1.JSX.Element;
23
+ declare function FieldError({ className, children, errors, ...props }: React.ComponentProps<'div'> & {
24
+ errors?: Array<{
25
+ message?: string;
26
+ } | undefined>;
27
+ }): React$1.JSX.Element | null;
28
+
29
+ export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle };
@@ -0,0 +1,220 @@
1
+ "use client";
2
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
3
+
4
+
5
+ var _chunkK4JVHEI2js = require('../../chunk-K4JVHEI2.js');
6
+
7
+
8
+ var _chunkCKGMFUU2js = require('../../chunk-CKGMFUU2.js');
9
+
10
+
11
+ var _chunkPSPAJNNBjs = require('../../chunk-PSPAJNNB.js');
12
+
13
+
14
+
15
+ var _chunk2NMEKWO5js = require('../../chunk-2NMEKWO5.js');
16
+
17
+ // components/ui/field.tsx
18
+ var _react = require('react');
19
+ var _classvarianceauthority = require('class-variance-authority');
20
+ function FieldSet(_a) {
21
+ var _b = _a, { className } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className"]);
22
+ return /* @__PURE__ */ React.createElement(
23
+ "fieldset",
24
+ _chunk2NMEKWO5js.__spreadValues.call(void 0, {
25
+ "data-slot": "field-set",
26
+ className: _chunkPSPAJNNBjs.cn.call(void 0,
27
+ "gap-4 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3 flex flex-col",
28
+ className
29
+ )
30
+ }, props)
31
+ );
32
+ }
33
+ function FieldLegend(_a) {
34
+ var _b = _a, {
35
+ className,
36
+ variant = "legend"
37
+ } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, [
38
+ "className",
39
+ "variant"
40
+ ]);
41
+ return /* @__PURE__ */ React.createElement(
42
+ "legend",
43
+ _chunk2NMEKWO5js.__spreadValues.call(void 0, {
44
+ "data-slot": "field-legend",
45
+ "data-variant": variant,
46
+ className: _chunkPSPAJNNBjs.cn.call(void 0, "mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base", className)
47
+ }, props)
48
+ );
49
+ }
50
+ function FieldGroup(_a) {
51
+ var _b = _a, { className } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className"]);
52
+ return /* @__PURE__ */ React.createElement(
53
+ "div",
54
+ _chunk2NMEKWO5js.__spreadValues.call(void 0, {
55
+ "data-slot": "field-group",
56
+ className: _chunkPSPAJNNBjs.cn.call(void 0,
57
+ "gap-5 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4 group/field-group @container/field-group flex w-full flex-col",
58
+ className
59
+ )
60
+ }, props)
61
+ );
62
+ }
63
+ var fieldVariants = _classvarianceauthority.cva.call(void 0, "data-[invalid=true]:text-destructive gap-2 group/field flex w-full", {
64
+ variants: {
65
+ orientation: {
66
+ vertical: "flex-col *:w-full [&>.sr-only]:w-auto",
67
+ 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",
68
+ 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"
69
+ }
70
+ },
71
+ defaultVariants: {
72
+ orientation: "vertical"
73
+ }
74
+ });
75
+ function Field(_a) {
76
+ var _b = _a, {
77
+ className,
78
+ orientation = "vertical"
79
+ } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, [
80
+ "className",
81
+ "orientation"
82
+ ]);
83
+ return /* @__PURE__ */ React.createElement(
84
+ "div",
85
+ _chunk2NMEKWO5js.__spreadValues.call(void 0, {
86
+ role: "group",
87
+ "data-slot": "field",
88
+ "data-orientation": orientation,
89
+ className: _chunkPSPAJNNBjs.cn.call(void 0, fieldVariants({ orientation }), className)
90
+ }, props)
91
+ );
92
+ }
93
+ function FieldContent(_a) {
94
+ var _b = _a, { className } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className"]);
95
+ return /* @__PURE__ */ React.createElement(
96
+ "div",
97
+ _chunk2NMEKWO5js.__spreadValues.call(void 0, {
98
+ "data-slot": "field-content",
99
+ className: _chunkPSPAJNNBjs.cn.call(void 0, "gap-0.5 group/field-content flex flex-1 flex-col leading-snug", className)
100
+ }, props)
101
+ );
102
+ }
103
+ function FieldLabel(_a) {
104
+ var _b = _a, { className } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className"]);
105
+ return /* @__PURE__ */ React.createElement(
106
+ _chunkCKGMFUU2js.Label,
107
+ _chunk2NMEKWO5js.__spreadValues.call(void 0, {
108
+ "data-slot": "field-label",
109
+ className: _chunkPSPAJNNBjs.cn.call(void 0,
110
+ "has-data-checked:bg-primary/5 has-data-checked:border-primary/30 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10 gap-2 group-data-[disabled=true]/field:opacity-50 has-[>[data-slot=field]]:rounded-lg has-[>[data-slot=field]]:border *:data-[slot=field]:p-2.5 group/field-label peer/field-label flex w-fit leading-snug",
111
+ "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col",
112
+ className
113
+ )
114
+ }, props)
115
+ );
116
+ }
117
+ function FieldTitle(_a) {
118
+ var _b = _a, { className } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className"]);
119
+ return /* @__PURE__ */ React.createElement(
120
+ "div",
121
+ _chunk2NMEKWO5js.__spreadValues.call(void 0, {
122
+ "data-slot": "field-label",
123
+ className: _chunkPSPAJNNBjs.cn.call(void 0,
124
+ "gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50 flex w-fit items-center leading-snug",
125
+ className
126
+ )
127
+ }, props)
128
+ );
129
+ }
130
+ function FieldDescription(_a) {
131
+ var _b = _a, { className } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className"]);
132
+ return /* @__PURE__ */ React.createElement(
133
+ "p",
134
+ _chunk2NMEKWO5js.__spreadValues.call(void 0, {
135
+ "data-slot": "field-description",
136
+ className: _chunkPSPAJNNBjs.cn.call(void 0,
137
+ "text-muted-foreground text-left text-sm [[data-variant=legend]+&]:-mt-1.5 leading-normal font-normal group-has-data-horizontal/field:text-balance",
138
+ "last:mt-0 nth-last-2:-mt-1",
139
+ "[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary",
140
+ className
141
+ )
142
+ }, props)
143
+ );
144
+ }
145
+ function FieldSeparator(_a) {
146
+ var _b = _a, {
147
+ children,
148
+ className
149
+ } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, [
150
+ "children",
151
+ "className"
152
+ ]);
153
+ return /* @__PURE__ */ React.createElement(
154
+ "div",
155
+ _chunk2NMEKWO5js.__spreadValues.call(void 0, {
156
+ "data-slot": "field-separator",
157
+ "data-content": !!children,
158
+ className: _chunkPSPAJNNBjs.cn.call(void 0, "-my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2 relative", className)
159
+ }, props),
160
+ /* @__PURE__ */ React.createElement(_chunkK4JVHEI2js.Separator, { className: "absolute inset-0 top-1/2" }),
161
+ children && /* @__PURE__ */ React.createElement(
162
+ "span",
163
+ {
164
+ className: "text-muted-foreground px-2 relative mx-auto block w-fit bg-background",
165
+ "data-slot": "field-separator-content"
166
+ },
167
+ children
168
+ )
169
+ );
170
+ }
171
+ function FieldError(_a) {
172
+ var _b = _a, {
173
+ className,
174
+ children,
175
+ errors
176
+ } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, [
177
+ "className",
178
+ "children",
179
+ "errors"
180
+ ]);
181
+ const content = _react.useMemo.call(void 0, () => {
182
+ var _a2;
183
+ if (children) {
184
+ return children;
185
+ }
186
+ if (!(errors == null ? void 0 : errors.length)) {
187
+ return null;
188
+ }
189
+ const uniqueErrors = [...new Map(errors.map((error) => [error == null ? void 0 : error.message, error])).values()];
190
+ if ((uniqueErrors == null ? void 0 : uniqueErrors.length) == 1) {
191
+ return (_a2 = uniqueErrors[0]) == null ? void 0 : _a2.message;
192
+ }
193
+ return /* @__PURE__ */ React.createElement("ul", { className: "ml-4 flex list-disc flex-col gap-1" }, uniqueErrors.map((error, index) => (error == null ? void 0 : error.message) && /* @__PURE__ */ React.createElement("li", { key: index }, error.message)));
194
+ }, [children, errors]);
195
+ if (!content) {
196
+ return null;
197
+ }
198
+ return /* @__PURE__ */ React.createElement(
199
+ "div",
200
+ _chunk2NMEKWO5js.__spreadValues.call(void 0, {
201
+ role: "alert",
202
+ "data-slot": "field-error",
203
+ className: _chunkPSPAJNNBjs.cn.call(void 0, "text-destructive text-sm font-normal", className)
204
+ }, props),
205
+ content
206
+ );
207
+ }
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+ exports.Field = Field; exports.FieldContent = FieldContent; exports.FieldDescription = FieldDescription; exports.FieldError = FieldError; exports.FieldGroup = FieldGroup; exports.FieldLabel = FieldLabel; exports.FieldLegend = FieldLegend; exports.FieldSeparator = FieldSeparator; exports.FieldSet = FieldSet; exports.FieldTitle = FieldTitle;
220
+ //# sourceMappingURL=field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/components/ui/field.js","../../../components/ui/field.tsx"],"names":["_a"],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/components/ui/field.js","sourcesContent":[null,"\"use client\";\nimport { useMemo } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '../../utils/ui';\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 'gap-4 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3 flex flex-col',\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('mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base', className)}\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 'gap-5 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4 group/field-group @container/field-group flex w-full flex-col',\n className,\n )}\n {...props}\n />\n );\n}\n\nconst fieldVariants = cva('data-[invalid=true]:text-destructive gap-2 group/field flex w-full', {\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('gap-0.5 group/field-content flex flex-1 flex-col 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 'has-data-checked:bg-primary/5 has-data-checked:border-primary/30 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10 gap-2 group-data-[disabled=true]/field:opacity-50 has-[>[data-slot=field]]:rounded-lg has-[>[data-slot=field]]:border *:data-[slot=field]:p-2.5 group/field-label peer/field-label flex w-fit leading-snug',\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 'gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50 flex w-fit items-center leading-snug',\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-muted-foreground text-left text-sm [[data-variant=legend]+&]:-mt-1.5 leading-normal font-normal group-has-data-horizontal/field:text-balance',\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('-my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2 relative', className)}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"text-muted-foreground px-2 relative mx-auto block w-fit bg-background\"\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-destructive text-sm font-normal', 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"]}