@kuzenbo/core 0.0.3 → 0.0.5

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 (342) hide show
  1. package/dist/avatar-CXhwmJgG.js +65 -0
  2. package/dist/avatar-CXhwmJgG.js.map +1 -0
  3. package/dist/{avatar-image-Ce26D2fb.d.ts → avatar-DpiupAAM.d.ts} +35 -2
  4. package/dist/avatar-DpiupAAM.d.ts.map +1 -0
  5. package/dist/badge-BKRm6jL7.js +58 -0
  6. package/dist/badge-BKRm6jL7.js.map +1 -0
  7. package/dist/button-nAbTNrxA.d.ts +78 -0
  8. package/dist/button-nAbTNrxA.d.ts.map +1 -0
  9. package/dist/{dialog-trigger-BUF3elAP.js → dialog-CD5lfQA9.js} +33 -10
  10. package/dist/dialog-CD5lfQA9.js.map +1 -0
  11. package/dist/{dialog-viewport-Ce1huyAI.d.ts → dialog-DEkdr-9K.d.ts} +64 -2
  12. package/dist/dialog-DEkdr-9K.d.ts.map +1 -0
  13. package/dist/{dropdown-menu-trigger-COnFGfDa.js → dropdown-menu-BJi-V71O.js} +137 -101
  14. package/dist/dropdown-menu-BJi-V71O.js.map +1 -0
  15. package/dist/{dropdown-menu-trigger-BpgtLUvf.d.ts → dropdown-menu-Bpj576m0.d.ts} +259 -123
  16. package/dist/dropdown-menu-Bpj576m0.d.ts.map +1 -0
  17. package/dist/input-Ex9ZRqbo.js +38 -0
  18. package/dist/input-Ex9ZRqbo.js.map +1 -0
  19. package/dist/input-WWoBCgxe.d.ts +46 -0
  20. package/dist/input-WWoBCgxe.d.ts.map +1 -0
  21. package/dist/{input-group-textarea-B-rP98r5.js → input-group-CjcHP0L4.js} +50 -31
  22. package/dist/input-group-CjcHP0L4.js.map +1 -0
  23. package/dist/provider.js +4 -2
  24. package/dist/scroll-bar-C4qEUKlT.js.map +1 -1
  25. package/dist/separator-C8Qw2ADs.d.ts +13 -0
  26. package/dist/separator-C8Qw2ADs.d.ts.map +1 -0
  27. package/dist/{sheet-trigger-D7neoTF5.js → sheet-imSHXfFH.js} +29 -10
  28. package/dist/sheet-imSHXfFH.js.map +1 -0
  29. package/dist/{size-context-BjRwqlSg.js → size-context-CvLl3pMC.js} +3 -3
  30. package/dist/size-context-CvLl3pMC.js.map +1 -0
  31. package/dist/size-context-DXfCAlWF.d.ts.map +1 -1
  32. package/dist/size-provider-18EvJgDT.js.map +1 -1
  33. package/dist/size-provider-Bd2C6gKd.d.ts.map +1 -1
  34. package/dist/size-system-BTsMqZRQ.js +99 -0
  35. package/dist/size-system-BTsMqZRQ.js.map +1 -0
  36. package/dist/size-system-wzOLSuax.d.ts.map +1 -1
  37. package/dist/size.js +4 -2
  38. package/dist/{slider-root-presentation-ChJHPMIV.js → slider-root-presentation-B6OO_iCT.js} +19 -19
  39. package/dist/slider-root-presentation-B6OO_iCT.js.map +1 -0
  40. package/dist/{slider-value-Db8SCu0c.d.ts → slider-style-tokens-CZezJilZ.d.ts} +55 -55
  41. package/dist/slider-style-tokens-CZezJilZ.d.ts.map +1 -0
  42. package/dist/textarea-C8dsnn8D.d.ts +37 -0
  43. package/dist/textarea-C8dsnn8D.d.ts.map +1 -0
  44. package/dist/textarea-CkiM1N_I.js +39 -0
  45. package/dist/textarea-CkiM1N_I.js.map +1 -0
  46. package/dist/toggle-CxkIncmZ.d.ts +53 -0
  47. package/dist/toggle-CxkIncmZ.d.ts.map +1 -0
  48. package/dist/{tooltip-trigger-qXw-_nbh.js → tooltip-D0BEpCQx.js} +38 -13
  49. package/dist/tooltip-D0BEpCQx.js.map +1 -0
  50. package/dist/{tooltip-viewport-csA6luqI.d.ts → tooltip-DbJxt69l.d.ts} +61 -13
  51. package/dist/tooltip-DbJxt69l.d.ts.map +1 -0
  52. package/dist/ui/accordion.d.ts +4 -4
  53. package/dist/ui/accordion.d.ts.map +1 -1
  54. package/dist/ui/accordion.js +53 -52
  55. package/dist/ui/accordion.js.map +1 -1
  56. package/dist/ui/affix.d.ts +3 -2
  57. package/dist/ui/affix.d.ts.map +1 -1
  58. package/dist/ui/affix.js +8 -7
  59. package/dist/ui/affix.js.map +1 -1
  60. package/dist/ui/alert-dialog.d.ts +3 -1
  61. package/dist/ui/alert-dialog.d.ts.map +1 -1
  62. package/dist/ui/alert-dialog.js +12 -9
  63. package/dist/ui/alert-dialog.js.map +1 -1
  64. package/dist/ui/alert.d.ts +32 -32
  65. package/dist/ui/alert.d.ts.map +1 -1
  66. package/dist/ui/alert.js +88 -86
  67. package/dist/ui/alert.js.map +1 -1
  68. package/dist/ui/announcement.d.ts.map +1 -1
  69. package/dist/ui/announcement.js +5 -3
  70. package/dist/ui/announcement.js.map +1 -1
  71. package/dist/ui/aspect-ratio.d.ts.map +1 -1
  72. package/dist/ui/aspect-ratio.js.map +1 -1
  73. package/dist/ui/autocomplete.d.ts +74 -74
  74. package/dist/ui/autocomplete.d.ts.map +1 -1
  75. package/dist/ui/autocomplete.js +57 -53
  76. package/dist/ui/autocomplete.js.map +1 -1
  77. package/dist/ui/avatar.d.ts +2 -39
  78. package/dist/ui/avatar.js +2 -24
  79. package/dist/ui/badge.d.ts +28 -28
  80. package/dist/ui/badge.d.ts.map +1 -1
  81. package/dist/ui/badge.js +3 -53
  82. package/dist/ui/breadcrumb.d.ts +64 -64
  83. package/dist/ui/breadcrumb.d.ts.map +1 -1
  84. package/dist/ui/breadcrumb.js +49 -45
  85. package/dist/ui/breadcrumb.js.map +1 -1
  86. package/dist/ui/button-group.d.ts +34 -34
  87. package/dist/ui/button-group.d.ts.map +1 -1
  88. package/dist/ui/button-group.js +31 -28
  89. package/dist/ui/button-group.js.map +1 -1
  90. package/dist/ui/button.d.ts +2 -78
  91. package/dist/ui/button.js +42 -42
  92. package/dist/ui/button.js.map +1 -1
  93. package/dist/ui/card.d.ts.map +1 -1
  94. package/dist/ui/card.js +8 -6
  95. package/dist/ui/card.js.map +1 -1
  96. package/dist/ui/carousel.d.ts +1 -1
  97. package/dist/ui/carousel.d.ts.map +1 -1
  98. package/dist/ui/carousel.js +36 -17
  99. package/dist/ui/carousel.js.map +1 -1
  100. package/dist/ui/checkbox-group.d.ts.map +1 -1
  101. package/dist/ui/checkbox-group.js +2 -0
  102. package/dist/ui/checkbox-group.js.map +1 -1
  103. package/dist/ui/checkbox.d.ts +20 -20
  104. package/dist/ui/checkbox.d.ts.map +1 -1
  105. package/dist/ui/checkbox.js +15 -13
  106. package/dist/ui/checkbox.js.map +1 -1
  107. package/dist/ui/code.d.ts.map +1 -1
  108. package/dist/ui/code.js +5 -5
  109. package/dist/ui/code.js.map +1 -1
  110. package/dist/ui/collapsible.js +1 -1
  111. package/dist/ui/collapsible.js.map +1 -1
  112. package/dist/ui/combobox.d.ts +107 -107
  113. package/dist/ui/combobox.d.ts.map +1 -1
  114. package/dist/ui/combobox.js +88 -87
  115. package/dist/ui/combobox.js.map +1 -1
  116. package/dist/ui/command.d.ts +57 -58
  117. package/dist/ui/command.d.ts.map +1 -1
  118. package/dist/ui/command.js +54 -64
  119. package/dist/ui/command.js.map +1 -1
  120. package/dist/ui/container.d.ts.map +1 -1
  121. package/dist/ui/container.js.map +1 -1
  122. package/dist/ui/context-menu.d.ts +132 -132
  123. package/dist/ui/context-menu.d.ts.map +1 -1
  124. package/dist/ui/context-menu.js +102 -98
  125. package/dist/ui/context-menu.js.map +1 -1
  126. package/dist/ui/copy-button.d.ts +1 -3
  127. package/dist/ui/copy-button.d.ts.map +1 -1
  128. package/dist/ui/copy-button.js +12 -13
  129. package/dist/ui/copy-button.js.map +1 -1
  130. package/dist/ui/dialog.d.ts +2 -66
  131. package/dist/ui/dialog.js +2 -24
  132. package/dist/ui/drawer.d.ts +91 -91
  133. package/dist/ui/drawer.d.ts.map +1 -1
  134. package/dist/ui/drawer.js +68 -66
  135. package/dist/ui/drawer.js.map +1 -1
  136. package/dist/ui/dropdown-menu.d.ts +3 -144
  137. package/dist/ui/dropdown-menu.js +3 -38
  138. package/dist/ui/dropzone.d.ts +55 -55
  139. package/dist/ui/dropzone.d.ts.map +1 -1
  140. package/dist/ui/dropzone.js +77 -72
  141. package/dist/ui/dropzone.js.map +1 -1
  142. package/dist/ui/emoji-picker.d.ts +79 -79
  143. package/dist/ui/emoji-picker.d.ts.map +1 -1
  144. package/dist/ui/emoji-picker.js +92 -87
  145. package/dist/ui/emoji-picker.js.map +1 -1
  146. package/dist/ui/empty.d.ts +61 -59
  147. package/dist/ui/empty.d.ts.map +1 -1
  148. package/dist/ui/empty.js +49 -44
  149. package/dist/ui/empty.js.map +1 -1
  150. package/dist/ui/field.d.ts +11 -11
  151. package/dist/ui/field.d.ts.map +1 -1
  152. package/dist/ui/field.js +9 -7
  153. package/dist/ui/field.js.map +1 -1
  154. package/dist/ui/fieldset.d.ts.map +1 -1
  155. package/dist/ui/fieldset.js.map +1 -1
  156. package/dist/ui/form.d.ts +8 -8
  157. package/dist/ui/form.d.ts.map +1 -1
  158. package/dist/ui/form.js +2 -0
  159. package/dist/ui/form.js.map +1 -1
  160. package/dist/ui/input-group.d.ts +35 -35
  161. package/dist/ui/input-group.d.ts.map +1 -1
  162. package/dist/ui/input-group.js +2 -28
  163. package/dist/ui/input-otp.d.ts +36 -36
  164. package/dist/ui/input-otp.d.ts.map +1 -1
  165. package/dist/ui/input-otp.js +29 -28
  166. package/dist/ui/input-otp.js.map +1 -1
  167. package/dist/ui/input.d.ts +2 -46
  168. package/dist/ui/input.js +2 -34
  169. package/dist/ui/item.d.ts +20 -20
  170. package/dist/ui/item.d.ts.map +1 -1
  171. package/dist/ui/item.js +24 -22
  172. package/dist/ui/item.js.map +1 -1
  173. package/dist/ui/kbd.d.ts.map +1 -1
  174. package/dist/ui/kbd.js +10 -8
  175. package/dist/ui/kbd.js.map +1 -1
  176. package/dist/ui/label.d.ts.map +1 -1
  177. package/dist/ui/label.js.map +1 -1
  178. package/dist/ui/marquee.d.ts.map +1 -1
  179. package/dist/ui/marquee.js +1 -1
  180. package/dist/ui/marquee.js.map +1 -1
  181. package/dist/ui/menubar.d.ts +133 -134
  182. package/dist/ui/menubar.d.ts.map +1 -1
  183. package/dist/ui/menubar.js +84 -81
  184. package/dist/ui/menubar.js.map +1 -1
  185. package/dist/ui/meter.d.ts.map +1 -1
  186. package/dist/ui/meter.js +2 -0
  187. package/dist/ui/meter.js.map +1 -1
  188. package/dist/ui/navigation-list.d.ts +226 -226
  189. package/dist/ui/navigation-list.d.ts.map +1 -1
  190. package/dist/ui/navigation-list.js +242 -235
  191. package/dist/ui/navigation-list.js.map +1 -1
  192. package/dist/ui/navigation-menu.d.ts +82 -82
  193. package/dist/ui/navigation-menu.d.ts.map +1 -1
  194. package/dist/ui/navigation-menu.js +72 -67
  195. package/dist/ui/navigation-menu.js.map +1 -1
  196. package/dist/ui/number-field.d.ts +34 -34
  197. package/dist/ui/number-field.d.ts.map +1 -1
  198. package/dist/ui/number-field.js +26 -23
  199. package/dist/ui/number-field.js.map +1 -1
  200. package/dist/ui/pagination.d.ts +42 -42
  201. package/dist/ui/pagination.d.ts.map +1 -1
  202. package/dist/ui/pagination.js +45 -41
  203. package/dist/ui/pagination.js.map +1 -1
  204. package/dist/ui/pill.d.ts +2 -3
  205. package/dist/ui/pill.d.ts.map +1 -1
  206. package/dist/ui/pill.js +34 -23
  207. package/dist/ui/pill.js.map +1 -1
  208. package/dist/ui/popover.d.ts +13 -11
  209. package/dist/ui/popover.d.ts.map +1 -1
  210. package/dist/ui/popover.js +17 -14
  211. package/dist/ui/popover.js.map +1 -1
  212. package/dist/ui/portal.d.ts.map +1 -1
  213. package/dist/ui/portal.js +52 -11
  214. package/dist/ui/portal.js.map +1 -1
  215. package/dist/ui/preview-card.js +5 -5
  216. package/dist/ui/preview-card.js.map +1 -1
  217. package/dist/ui/progress.js.map +1 -1
  218. package/dist/ui/qr-code.d.ts.map +1 -1
  219. package/dist/ui/qr-code.js +7 -7
  220. package/dist/ui/qr-code.js.map +1 -1
  221. package/dist/ui/radio-group.d.ts +22 -22
  222. package/dist/ui/radio-group.d.ts.map +1 -1
  223. package/dist/ui/radio-group.js +17 -15
  224. package/dist/ui/radio-group.js.map +1 -1
  225. package/dist/ui/range-slider.d.ts +1 -1
  226. package/dist/ui/range-slider.d.ts.map +1 -1
  227. package/dist/ui/range-slider.js +4 -7
  228. package/dist/ui/range-slider.js.map +1 -1
  229. package/dist/ui/rating.d.ts +35 -35
  230. package/dist/ui/rating.d.ts.map +1 -1
  231. package/dist/ui/rating.js +55 -46
  232. package/dist/ui/rating.js.map +1 -1
  233. package/dist/ui/resizable.d.ts.map +1 -1
  234. package/dist/ui/resizable.js +2 -2
  235. package/dist/ui/resizable.js.map +1 -1
  236. package/dist/ui/scroll-area.d.ts.map +1 -1
  237. package/dist/ui/scroll-area.js +2 -0
  238. package/dist/ui/scroll-area.js.map +1 -1
  239. package/dist/ui/select.d.ts +87 -87
  240. package/dist/ui/select.d.ts.map +1 -1
  241. package/dist/ui/select.js +85 -84
  242. package/dist/ui/select.js.map +1 -1
  243. package/dist/ui/separator.d.ts +2 -13
  244. package/dist/ui/separator.js +2 -0
  245. package/dist/ui/separator.js.map +1 -1
  246. package/dist/ui/sheet.d.ts.map +1 -1
  247. package/dist/ui/sheet.js +2 -24
  248. package/dist/ui/sidebar.d.ts +73 -74
  249. package/dist/ui/sidebar.d.ts.map +1 -1
  250. package/dist/ui/sidebar.js +87 -84
  251. package/dist/ui/sidebar.js.map +1 -1
  252. package/dist/ui/skeleton.d.ts.map +1 -1
  253. package/dist/ui/skeleton.js +1 -1
  254. package/dist/ui/skeleton.js.map +1 -1
  255. package/dist/ui/slider.d.ts +1 -1
  256. package/dist/ui/slider.d.ts.map +1 -1
  257. package/dist/ui/slider.js +3 -1
  258. package/dist/ui/slider.js.map +1 -1
  259. package/dist/ui/spacer.d.ts.map +1 -1
  260. package/dist/ui/spacer.js +2 -2
  261. package/dist/ui/spacer.js.map +1 -1
  262. package/dist/ui/spinner.js +4 -2
  263. package/dist/ui/spinner.js.map +1 -1
  264. package/dist/ui/switch.d.ts +11 -11
  265. package/dist/ui/switch.js +7 -7
  266. package/dist/ui/switch.js.map +1 -1
  267. package/dist/ui/table.d.ts +60 -60
  268. package/dist/ui/table.d.ts.map +1 -1
  269. package/dist/ui/table.js +54 -46
  270. package/dist/ui/table.js.map +1 -1
  271. package/dist/ui/tabs.d.ts +25 -25
  272. package/dist/ui/tabs.d.ts.map +1 -1
  273. package/dist/ui/tabs.js +75 -68
  274. package/dist/ui/tabs.js.map +1 -1
  275. package/dist/ui/textarea.d.ts +2 -37
  276. package/dist/ui/textarea.js +3 -34
  277. package/dist/ui/theme-icon.d.ts +30 -30
  278. package/dist/ui/theme-icon.d.ts.map +1 -1
  279. package/dist/ui/theme-icon.js +22 -22
  280. package/dist/ui/theme-icon.js.map +1 -1
  281. package/dist/ui/timeline.d.ts +6 -6
  282. package/dist/ui/timeline.d.ts.map +1 -1
  283. package/dist/ui/timeline.js +165 -163
  284. package/dist/ui/timeline.js.map +1 -1
  285. package/dist/ui/toggle-group.d.ts +32 -32
  286. package/dist/ui/toggle-group.d.ts.map +1 -1
  287. package/dist/ui/toggle-group.js +22 -16
  288. package/dist/ui/toggle-group.js.map +1 -1
  289. package/dist/ui/toggle.d.ts +2 -53
  290. package/dist/ui/toggle.js +17 -15
  291. package/dist/ui/toggle.js.map +1 -1
  292. package/dist/ui/toolbar.d.ts +54 -54
  293. package/dist/ui/toolbar.d.ts.map +1 -1
  294. package/dist/ui/toolbar.js +45 -40
  295. package/dist/ui/toolbar.js.map +1 -1
  296. package/dist/ui/tooltip.d.ts +2 -54
  297. package/dist/ui/tooltip.js +2 -28
  298. package/dist/ui/typography.d.ts +50 -36
  299. package/dist/ui/typography.d.ts.map +1 -1
  300. package/dist/ui/typography.js +28 -17
  301. package/dist/ui/typography.js.map +1 -1
  302. package/package.json +15 -15
  303. package/dist/avatar-image-BQ_NEKH4.js +0 -47
  304. package/dist/avatar-image-BQ_NEKH4.js.map +0 -1
  305. package/dist/avatar-image-Ce26D2fb.d.ts.map +0 -1
  306. package/dist/dialog-trigger-BUF3elAP.js.map +0 -1
  307. package/dist/dialog-viewport-Ce1huyAI.d.ts.map +0 -1
  308. package/dist/dropdown-menu-trigger-BpgtLUvf.d.ts.map +0 -1
  309. package/dist/dropdown-menu-trigger-COnFGfDa.js.map +0 -1
  310. package/dist/input-group-textarea-B-rP98r5.js.map +0 -1
  311. package/dist/sheet-trigger-D7neoTF5.js.map +0 -1
  312. package/dist/size-context-BjRwqlSg.js.map +0 -1
  313. package/dist/size-system-DTXmtQXw.js +0 -47
  314. package/dist/size-system-DTXmtQXw.js.map +0 -1
  315. package/dist/slider-root-presentation-ChJHPMIV.js.map +0 -1
  316. package/dist/slider-value-Db8SCu0c.d.ts.map +0 -1
  317. package/dist/tooltip-trigger-qXw-_nbh.js.map +0 -1
  318. package/dist/tooltip-viewport-csA6luqI.d.ts.map +0 -1
  319. package/dist/ui/avatar.d.ts.map +0 -1
  320. package/dist/ui/avatar.js.map +0 -1
  321. package/dist/ui/badge.js.map +0 -1
  322. package/dist/ui/button.d.ts.map +0 -1
  323. package/dist/ui/dialog.d.ts.map +0 -1
  324. package/dist/ui/dialog.js.map +0 -1
  325. package/dist/ui/dropdown-menu.d.ts.map +0 -1
  326. package/dist/ui/dropdown-menu.js.map +0 -1
  327. package/dist/ui/input-group.js.map +0 -1
  328. package/dist/ui/input.d.ts.map +0 -1
  329. package/dist/ui/input.js.map +0 -1
  330. package/dist/ui/separator.d.ts.map +0 -1
  331. package/dist/ui/sheet.js.map +0 -1
  332. package/dist/ui/textarea.d.ts.map +0 -1
  333. package/dist/ui/textarea.js.map +0 -1
  334. package/dist/ui/toggle.d.ts.map +0 -1
  335. package/dist/ui/tooltip.d.ts.map +0 -1
  336. package/dist/ui/tooltip.js.map +0 -1
  337. package/dist/use-badge-default-props-8d9wPL0k.js +0 -8
  338. package/dist/use-badge-default-props-8d9wPL0k.js.map +0 -1
  339. package/dist/use-input-default-props-B6VgKXGM.js +0 -8
  340. package/dist/use-input-default-props-B6VgKXGM.js.map +0 -1
  341. package/dist/use-textarea-default-props-7MlOxkDO.js +0 -8
  342. package/dist/use-textarea-default-props-7MlOxkDO.js.map +0 -1
@@ -1,40 +1,5 @@
1
- import { a as useComponentSize } from "../size-provider-18EvJgDT.js";
2
- import { S as DropdownMenuArrow, _ as DropdownMenuPortal, a as DropdownMenuShortcut, b as DropdownMenuContext, c as DropdownMenuRadioGroup, d as DropdownMenuLabel, f as DropdownMenuItem, g as DropdownMenuPositioner, h as DropdownMenuContent, i as DropdownMenuSub, l as DropdownMenuLinkItem, m as DropdownMenuGroup, n as DropdownMenuSubTrigger, o as DropdownMenuSeparator, r as DropdownMenuSubContent, s as DropdownMenuRadioItem, t as DropdownMenuTrigger, v as DropdownMenuPopup, x as DropdownMenuBackdrop, y as DropdownMenuCheckboxItem } from "../dropdown-menu-trigger-COnFGfDa.js";
3
- import { jsx } from "react/jsx-runtime";
4
- import { Menu } from "@base-ui/react/menu";
1
+ "use client";
5
2
 
6
- //#region src/ui/dropdown-menu/dropdown-menu.tsx
7
- const DropdownMenu = ({ size: providedSize, ...props }) => {
8
- const size = useComponentSize(providedSize);
9
- return /* @__PURE__ */ jsx(DropdownMenuContext.Provider, {
10
- value: { size },
11
- children: /* @__PURE__ */ jsx(Menu.Root, {
12
- "data-size": size,
13
- "data-slot": "dropdown-menu",
14
- ...props
15
- })
16
- });
17
- };
18
- DropdownMenu.Arrow = DropdownMenuArrow;
19
- DropdownMenu.Backdrop = DropdownMenuBackdrop;
20
- DropdownMenu.CheckboxItem = DropdownMenuCheckboxItem;
21
- DropdownMenu.Content = DropdownMenuContent;
22
- DropdownMenu.Group = DropdownMenuGroup;
23
- DropdownMenu.Item = DropdownMenuItem;
24
- DropdownMenu.Label = DropdownMenuLabel;
25
- DropdownMenu.LinkItem = DropdownMenuLinkItem;
26
- DropdownMenu.Portal = DropdownMenuPortal;
27
- DropdownMenu.Popup = DropdownMenuPopup;
28
- DropdownMenu.Positioner = DropdownMenuPositioner;
29
- DropdownMenu.RadioGroup = DropdownMenuRadioGroup;
30
- DropdownMenu.RadioItem = DropdownMenuRadioItem;
31
- DropdownMenu.Separator = DropdownMenuSeparator;
32
- DropdownMenu.Shortcut = DropdownMenuShortcut;
33
- DropdownMenu.Sub = DropdownMenuSub;
34
- DropdownMenu.SubContent = DropdownMenuSubContent;
35
- DropdownMenu.SubTrigger = DropdownMenuSubTrigger;
36
- DropdownMenu.Trigger = DropdownMenuTrigger;
3
+ import { S as DropdownMenuArrow, _ as DropdownMenuPositioner, a as DropdownMenuSub, b as DropdownMenuCheckboxItem, c as DropdownMenuRadioItem, f as DropdownMenuLabel, g as DropdownMenuContent, h as DropdownMenuGroup, i as DropdownMenuSubContent, l as DropdownMenuRadioGroup, n as DropdownMenuTrigger, o as DropdownMenuShortcut, p as DropdownMenuItem, r as DropdownMenuSubTrigger, s as DropdownMenuSeparator, t as DropdownMenu, u as DropdownMenuLinkItem, v as DropdownMenuPortal, x as DropdownMenuBackdrop, y as DropdownMenuPopup } from "../dropdown-menu-BJi-V71O.js";
37
4
 
38
- //#endregion
39
- export { DropdownMenu, DropdownMenuArrow, DropdownMenuBackdrop, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuLinkItem, DropdownMenuPopup, DropdownMenuPortal, DropdownMenuPositioner, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };
40
- //# sourceMappingURL=dropdown-menu.js.map
5
+ export { DropdownMenu, DropdownMenuArrow, DropdownMenuBackdrop, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuLinkItem, DropdownMenuPopup, DropdownMenuPortal, DropdownMenuPositioner, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };
@@ -48,27 +48,11 @@ declare const useDropzoneContext: () => DropzoneContextValue;
48
48
  //#endregion
49
49
  //#region src/ui/dropzone/dropzone.d.ts
50
50
  declare const dropzoneVariants: tailwind_variants0.TVReturnType<{
51
- variant: {
52
- default: {
53
- root: never[];
54
- };
55
- filled: {
56
- root: string[];
57
- };
58
- light: {
59
- root: string[];
60
- };
61
- };
62
- status: {
63
- idle: {
64
- root: never[];
65
- };
66
- accept: {
67
- root: string[];
68
- };
69
- reject: {
51
+ activateOnClick: {
52
+ false: {
70
53
  root: string[];
71
54
  };
55
+ true: {};
72
56
  };
73
57
  disabled: {
74
58
  true: {
@@ -80,17 +64,17 @@ declare const dropzoneVariants: tailwind_variants0.TVReturnType<{
80
64
  root: string[];
81
65
  };
82
66
  };
83
- activateOnClick: {
84
- true: {};
85
- false: {
67
+ status: {
68
+ accept: {
69
+ root: string[];
70
+ };
71
+ idle: {
72
+ root: never[];
73
+ };
74
+ reject: {
86
75
  root: string[];
87
76
  };
88
77
  };
89
- }, {
90
- root: string[];
91
- inner: string[];
92
- overlay: string[];
93
- }, undefined, {
94
78
  variant: {
95
79
  default: {
96
80
  root: never[];
@@ -102,16 +86,16 @@ declare const dropzoneVariants: tailwind_variants0.TVReturnType<{
102
86
  root: string[];
103
87
  };
104
88
  };
105
- status: {
106
- idle: {
107
- root: never[];
108
- };
109
- accept: {
110
- root: string[];
111
- };
112
- reject: {
89
+ }, {
90
+ inner: string[];
91
+ overlay: string[];
92
+ root: string[];
93
+ }, undefined, {
94
+ activateOnClick: {
95
+ false: {
113
96
  root: string[];
114
97
  };
98
+ true: {};
115
99
  };
116
100
  disabled: {
117
101
  true: {
@@ -123,17 +107,17 @@ declare const dropzoneVariants: tailwind_variants0.TVReturnType<{
123
107
  root: string[];
124
108
  };
125
109
  };
126
- activateOnClick: {
127
- true: {};
128
- false: {
110
+ status: {
111
+ accept: {
112
+ root: string[];
113
+ };
114
+ idle: {
115
+ root: never[];
116
+ };
117
+ reject: {
129
118
  root: string[];
130
119
  };
131
120
  };
132
- }, {
133
- root: string[];
134
- inner: string[];
135
- overlay: string[];
136
- }, tailwind_variants0.TVReturnType<{
137
121
  variant: {
138
122
  default: {
139
123
  root: never[];
@@ -145,16 +129,16 @@ declare const dropzoneVariants: tailwind_variants0.TVReturnType<{
145
129
  root: string[];
146
130
  };
147
131
  };
148
- status: {
149
- idle: {
150
- root: never[];
151
- };
152
- accept: {
153
- root: string[];
154
- };
155
- reject: {
132
+ }, {
133
+ inner: string[];
134
+ overlay: string[];
135
+ root: string[];
136
+ }, tailwind_variants0.TVReturnType<{
137
+ activateOnClick: {
138
+ false: {
156
139
  root: string[];
157
140
  };
141
+ true: {};
158
142
  };
159
143
  disabled: {
160
144
  true: {
@@ -166,16 +150,32 @@ declare const dropzoneVariants: tailwind_variants0.TVReturnType<{
166
150
  root: string[];
167
151
  };
168
152
  };
169
- activateOnClick: {
170
- true: {};
171
- false: {
153
+ status: {
154
+ accept: {
155
+ root: string[];
156
+ };
157
+ idle: {
158
+ root: never[];
159
+ };
160
+ reject: {
161
+ root: string[];
162
+ };
163
+ };
164
+ variant: {
165
+ default: {
166
+ root: never[];
167
+ };
168
+ filled: {
169
+ root: string[];
170
+ };
171
+ light: {
172
172
  root: string[];
173
173
  };
174
174
  };
175
175
  }, {
176
- root: string[];
177
176
  inner: string[];
178
177
  overlay: string[];
178
+ root: string[];
179
179
  }, undefined, unknown, unknown, undefined>>;
180
180
  type DropzoneVariants = VariantProps<typeof dropzoneVariants>;
181
181
  type DropzoneProps = Omit<ComponentProps<"div">, "onDrop" | "ref"> & DropzoneVariants & {
@@ -1 +1 @@
1
- {"version":3,"file":"dropzone.d.ts","names":[],"sources":["../../src/ui/dropzone/dropzone-status.tsx","../../src/ui/dropzone/dropzone-context.tsx","../../src/ui/dropzone/dropzone.tsx"],"mappings":";;;;;;;;KASK,mBAAA,GAAsB,cAAA;EACzB,QAAA,EAAU,SAAA;AAAA;AAAA,cA+BC,cAAA;EAAA;;;;KAvBR,mBAAA,GAAmB,KAAA,CAAA,wBAAA;;;cAwBX,cAAA;EAAA;;;;KAxBR,mBAAA,GAAmB,KAAA,CAAA,wBAAA;;;cAyBX,YAAA;EAAA;;;;KAzBR,mBAAA,GAAmB,KAAA,CAAA,wBAAA;;;KA4BZ,mBAAA,GAAsB,mBAAA;AAAA,KACtB,mBAAA,GAAsB,mBAAA;AAAA,KACtB,iBAAA,GAAoB,mBAAA;;;UC5CtB,oBAAA;EACR,IAAA;EACA,MAAA;EACA,MAAA;AAAA;AAAA,cAGI,eAAA,EAAe,KAAA,CAAA,OAAA,CAAA,oBAAA;AAAA,cAER,kBAAA,QAAkB,oBAAA;;;cCgBzB,gBAAA,EAmJJ,kBAAA,CAnJoB,YAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmJpB,kBAAA,CAAA,YAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAEG,gBAAA,GAAmB,YAAA,QAAoB,gBAAA;AAAA,KAEvC,aAAA,GAAgB,IAAA,CAAK,cAAA,6BACxB,gBAAA;EACE,GAAA,GAAM,GAAA,CAAI,cAAA;EAEV,SAAA,IACE,KAAA,EAAO,YAAA,IACP,cAAA,EAAgB,aAAA;EAIlB,MAAA,GAAS,KAAA,EAAO,YAAA;EAGhB,QAAA,IAAY,cAAA,EAAgB,aAAA;EAG5B,QAAA;EAGA,OAAA;EAGA,MAAA,GAAS,MAAA;EAGT,OAAA,GAAU,GAAA;EAGV,QAAA;EAGA,OAAA;EAGA,IAAA;EAGA,QAAA;EAGA,SAAA;EAGA,eAAA;EAGA,cAAA;EAGA,kBAAA;EAGA,kBAAA;EAGA,WAAA,IAAe,KAAA,EAAO,SAAA,CAAU,WAAA;EAGhC,WAAA,IAAe,KAAA,EAAO,SAAA,CAAU,WAAA;EAGhC,UAAA,IAAc,KAAA,EAAO,SAAA,CAAU,WAAA;EAG/B,kBAAA;EAGA,gBAAA;EAGA,qBAAA;EAGA,cAAA;EAGA,iBAAA,IACE,KAAA,EAAO,SAAA,KACJ,OAAA,EAAS,IAAA,GAAO,gBAAA;EAGrB,SAAA,cAAuB,IAAA,EAAM,IAAA,EAAM,CAAA,KAAM,SAAA,GAAY,SAAA;EAGrD,mBAAA;EAGA,UAAA,GAAa,mBAAA,CAAoB,gBAAA;AAAA;AAAA,cAG/B,QAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkCH,aAAA,GAAa,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"dropzone.d.ts","names":[],"sources":["../../src/ui/dropzone/dropzone-status.tsx","../../src/ui/dropzone/dropzone-context.tsx","../../src/ui/dropzone/dropzone.tsx"],"mappings":";;;;;;;;KAQK,mBAAA,GAAsB,cAAA;EACzB,QAAA,EAAU,SAAA;AAAA;AAAA,cA+BC,cAAA;EAAA;;;;KAvBR,mBAAA,GAAmB,KAAA,CAAA,wBAAA;;;cAwBX,cAAA;EAAA;;;;KAxBR,mBAAA,GAAmB,KAAA,CAAA,wBAAA;;;cAyBX,YAAA;EAAA;;;;KAzBR,mBAAA,GAAmB,KAAA,CAAA,wBAAA;;;KA4BZ,mBAAA,GAAsB,mBAAA;AAAA,KACtB,mBAAA,GAAsB,mBAAA;AAAA,KACtB,iBAAA,GAAoB,mBAAA;;;UC3CtB,oBAAA;EACR,IAAA;EACA,MAAA;EACA,MAAA;AAAA;AAAA,cAGI,eAAA,EAAe,KAAA,CAAA,OAAA,CAAA,oBAAA;AAAA,cAER,kBAAA,QAAkB,oBAAA;;;cCgBzB,gBAAA,EAmJJ,kBAAA,CAnJoB,YAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmJpB,kBAAA,CAAA,YAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAEG,gBAAA,GAAmB,YAAA,QAAoB,gBAAA;AAAA,KAEvC,aAAA,GAAgB,IAAA,CAAK,cAAA,6BACxB,gBAAA;EACE,GAAA,GAAM,GAAA,CAAI,cAAA;EAEV,SAAA,IACE,KAAA,EAAO,YAAA,IACP,cAAA,EAAgB,aAAA;EAIlB,MAAA,GAAS,KAAA,EAAO,YAAA;EAGhB,QAAA,IAAY,cAAA,EAAgB,aAAA;EAG5B,QAAA;EAGA,OAAA;EAGA,MAAA,GAAS,MAAA;EAGT,OAAA,GAAU,GAAA;EAGV,QAAA;EAGA,OAAA;EAGA,IAAA;EAGA,QAAA;EAGA,SAAA;EAGA,eAAA;EAGA,cAAA;EAGA,kBAAA;EAGA,kBAAA;EAGA,WAAA,IAAe,KAAA,EAAO,SAAA,CAAU,WAAA;EAGhC,WAAA,IAAe,KAAA,EAAO,SAAA,CAAU,WAAA;EAGhC,UAAA,IAAc,KAAA,EAAO,SAAA,CAAU,WAAA;EAG/B,kBAAA;EAGA,gBAAA;EAGA,qBAAA;EAGA,cAAA;EAGA,iBAAA,IACE,KAAA,EAAO,SAAA,KACJ,OAAA,EAAS,IAAA,GAAO,gBAAA;EAGrB,SAAA,cAAuB,IAAA,EAAM,IAAA,EAAM,CAAA,KAAM,SAAA,GAAY,SAAA;EAGrD,mBAAA;EAGA,UAAA,GAAa,mBAAA,CAAoB,gBAAA;AAAA;AAAA,cAG/B,QAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkCH,aAAA,GAAa,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import { Spinner } from "./spinner.js";
4
- import { cloneElement, createContext, isValidElement, useContext, useImperativeHandle } from "react";
4
+ import { cloneElement, createContext, isValidElement, useContext, useImperativeHandle, useMemo } from "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  import { cn, tv } from "tailwind-variants";
7
7
  import { useDropzone } from "react-dropzone";
@@ -36,23 +36,36 @@ const DropzoneIdle = createDropzoneStatus("idle");
36
36
  //#endregion
37
37
  //#region src/ui/dropzone/dropzone.tsx
38
38
  const dropzoneVariants = tv({
39
+ compoundVariants: [
40
+ {
41
+ class: { root: "border-primary bg-primary/20" },
42
+ status: "accept",
43
+ variant: "filled"
44
+ },
45
+ {
46
+ class: { root: "border-primary bg-primary/10" },
47
+ status: "accept",
48
+ variant: "light"
49
+ },
50
+ {
51
+ class: { root: "border-danger bg-danger/20" },
52
+ status: "reject",
53
+ variant: "filled"
54
+ },
55
+ {
56
+ class: { root: "border-danger bg-danger" },
57
+ status: "reject",
58
+ variant: "light"
59
+ }
60
+ ],
61
+ defaultVariants: {
62
+ activateOnClick: true,
63
+ disabled: false,
64
+ loading: false,
65
+ status: "idle",
66
+ variant: "light"
67
+ },
39
68
  slots: {
40
- root: [
41
- "relative",
42
- "cursor-pointer",
43
- "select-none",
44
- "rounded-lg",
45
- "border",
46
- "border-input",
47
- "border-dashed",
48
- "bg-background",
49
- "p-4",
50
- "outline-none",
51
- "transition-colors",
52
- "focus-visible:ring-2",
53
- "focus-visible:ring-ring",
54
- "focus-visible:ring-offset-2"
55
- ],
56
69
  inner: [
57
70
  "pointer-events-none",
58
71
  "select-none",
@@ -61,82 +74,66 @@ const dropzoneVariants = tv({
61
74
  overlay: [
62
75
  "absolute",
63
76
  "inset-0",
64
- "z-10",
77
+ "z-raised",
65
78
  "flex",
66
79
  "items-center",
67
80
  "justify-center",
68
81
  "rounded-lg",
69
82
  "bg-background/80",
70
83
  "backdrop-blur-sm"
84
+ ],
85
+ root: [
86
+ "relative",
87
+ "cursor-clickable",
88
+ "select-none",
89
+ "rounded-lg",
90
+ "border",
91
+ "border-input",
92
+ "border-dashed",
93
+ "bg-background",
94
+ "p-4",
95
+ "outline-none",
96
+ "transition-colors",
97
+ "focus-visible:ring-2",
98
+ "focus-visible:ring-ring",
99
+ "focus-visible:ring-offset-2"
71
100
  ]
72
101
  },
73
102
  variants: {
74
- variant: {
75
- default: { root: [] },
76
- filled: { root: ["bg-muted"] },
77
- light: { root: ["bg-muted/50"] }
103
+ activateOnClick: {
104
+ false: { root: ["cursor-default"] },
105
+ true: {}
78
106
  },
107
+ disabled: { true: { root: ["cursor-default", "opacity-50"] } },
108
+ loading: { true: { root: ["cursor-default"] } },
79
109
  status: {
80
- idle: { root: [] },
81
110
  accept: { root: [
82
111
  "border-primary",
83
112
  "bg-primary/10",
84
113
  "text-primary-foreground"
85
114
  ] },
115
+ idle: { root: [] },
86
116
  reject: { root: [
87
117
  "border-danger",
88
118
  "bg-danger",
89
119
  "text-danger-foreground"
90
120
  ] }
91
121
  },
92
- disabled: { true: { root: ["cursor-default", "opacity-50"] } },
93
- loading: { true: { root: ["cursor-default"] } },
94
- activateOnClick: {
95
- true: {},
96
- false: { root: ["cursor-default"] }
97
- }
98
- },
99
- compoundVariants: [
100
- {
101
- status: "accept",
102
- variant: "filled",
103
- class: { root: "border-primary bg-primary/20" }
104
- },
105
- {
106
- status: "accept",
107
- variant: "light",
108
- class: { root: "border-primary bg-primary/10" }
109
- },
110
- {
111
- status: "reject",
112
- variant: "filled",
113
- class: { root: "border-danger bg-danger/20" }
114
- },
115
- {
116
- status: "reject",
117
- variant: "light",
118
- class: { root: "border-danger bg-danger" }
122
+ variant: {
123
+ default: { root: [] },
124
+ filled: { root: ["bg-muted"] },
125
+ light: { root: ["bg-muted/50"] }
119
126
  }
120
- ],
121
- defaultVariants: {
122
- variant: "light",
123
- status: "idle",
124
- disabled: false,
125
- loading: false,
126
- activateOnClick: true
127
127
  }
128
128
  });
129
129
  const Dropzone = ({ className, variant, status: statusProp, disabled: disabledProp, loading, multiple = true, maxSize = Number.POSITIVE_INFINITY, accept, children, onDropAny, onDrop, onReject, openRef, name, maxFiles, autoFocus, activateOnClick = true, activateOnDrag = true, dragEventsBubbling = true, activateOnKeyboard = true, onDragEnter, onDragLeave, onDragOver, onFileDialogCancel, onFileDialogOpen, preventDropOnDocument, useFsAccessApi = true, getFilesFromEvent, validator, enablePointerEvents, inputProps, ref, ...props }) => {
130
130
  const { getRootProps, getInputProps, isDragAccept, isDragReject, isDragActive, open } = useDropzone({
131
- onDrop: onDropAny,
132
- onDropAccepted: onDrop,
133
- onDropRejected: onReject,
134
- disabled: disabledProp || loading,
135
131
  accept: Array.isArray(accept) ? Object.fromEntries(accept.map((key) => [key, []])) : accept,
136
- multiple,
137
- maxSize,
138
- maxFiles,
139
132
  autoFocus,
133
+ disabled: disabledProp || loading,
134
+ maxFiles,
135
+ maxSize,
136
+ multiple,
140
137
  noClick: !activateOnClick,
141
138
  noDrag: !activateOnDrag,
142
139
  noDragEventsBubbling: !dragEventsBubbling,
@@ -144,6 +141,9 @@ const Dropzone = ({ className, variant, status: statusProp, disabled: disabledPr
144
141
  onDragEnter,
145
142
  onDragLeave,
146
143
  onDragOver,
144
+ onDrop: onDropAny,
145
+ onDropAccepted: onDrop,
146
+ onDropRejected: onReject,
147
147
  onFileDialogCancel,
148
148
  onFileDialogOpen,
149
149
  preventDropOnDocument,
@@ -161,18 +161,23 @@ const Dropzone = ({ className, variant, status: statusProp, disabled: disabledPr
161
161
  else if (isRejected) status = "reject";
162
162
  const disabled = disabledProp || loading;
163
163
  const { root, inner, overlay } = dropzoneVariants({
164
- variant,
165
- status,
164
+ activateOnClick,
166
165
  disabled,
167
166
  loading,
168
- activateOnClick
167
+ status,
168
+ variant
169
169
  });
170
+ const contextValue = useMemo(() => ({
171
+ accept: isAccepted,
172
+ idle: isIdle,
173
+ reject: isRejected
174
+ }), [
175
+ isAccepted,
176
+ isRejected,
177
+ isIdle
178
+ ]);
170
179
  return /* @__PURE__ */ jsx(DropzoneContext.Provider, {
171
- value: {
172
- accept: isAccepted,
173
- reject: isRejected,
174
- idle: isIdle
175
- },
180
+ value: contextValue,
176
181
  children: /* @__PURE__ */ jsxs("div", {
177
182
  ...getRootProps(),
178
183
  className: cn(root(), className),
@@ -1 +1 @@
1
- {"version":3,"file":"dropzone.js","names":[],"sources":["../../src/ui/dropzone/dropzone-context.tsx","../../src/ui/dropzone/dropzone-status.tsx","../../src/ui/dropzone/dropzone.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\n\ninterface DropzoneContextValue {\n idle: boolean;\n accept: boolean;\n reject: boolean;\n}\n\nconst DropzoneContext = createContext<DropzoneContextValue | null>(null);\n\nexport const useDropzoneContext = () => {\n const context = useContext(DropzoneContext);\n if (!context) {\n throw new Error(\"Dropzone components must be used within Dropzone\");\n }\n return context;\n};\n\nexport { DropzoneContext };\n","\"use client\";\n\nimport type { ComponentProps, JSX, ReactNode } from \"react\";\n\nimport { cloneElement, isValidElement } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { useDropzoneContext } from \"./dropzone-context\";\n\ntype DropzoneStatusProps = ComponentProps<\"div\"> & {\n children: ReactNode;\n};\n\nconst createDropzoneStatus = (status: \"accept\" | \"reject\" | \"idle\") => {\n const Component = ({\n children,\n className,\n ...props\n }: DropzoneStatusProps) => {\n const ctx = useDropzoneContext();\n const _children = isValidElement(children) ? (\n children\n ) : (\n <span>{children}</span>\n );\n\n if (!ctx[status]) {\n return null;\n }\n\n return cloneElement(_children as JSX.Element, {\n className: cn(className, (_children as JSX.Element).props.className),\n ...props,\n });\n };\n\n Component.displayName = `Dropzone${status.charAt(0).toUpperCase() + status.slice(1)}`;\n\n return Component;\n};\n\nexport const DropzoneAccept = createDropzoneStatus(\"accept\");\nexport const DropzoneReject = createDropzoneStatus(\"reject\");\nexport const DropzoneIdle = createDropzoneStatus(\"idle\");\n\nexport type { DropzoneStatusProps };\nexport type DropzoneAcceptProps = DropzoneStatusProps;\nexport type DropzoneRejectProps = DropzoneStatusProps;\nexport type DropzoneIdleProps = DropzoneStatusProps;\n","\"use client\";\n\nimport type {\n ComponentProps,\n DragEvent,\n InputHTMLAttributes,\n Ref,\n} from \"react\";\nimport type {\n Accept,\n DropEvent,\n FileError,\n FileRejection,\n FileWithPath,\n} from \"react-dropzone\";\n\nimport { useImperativeHandle } from \"react\";\nimport { useDropzone } from \"react-dropzone\";\nimport { cn, tv, type VariantProps } from \"tailwind-variants\";\n\nimport { Spinner } from \"../spinner/spinner\";\nimport { DropzoneContext, useDropzoneContext } from \"./dropzone-context\";\nimport {\n DropzoneAccept,\n DropzoneIdle,\n DropzoneReject,\n} from \"./dropzone-status\";\n\nconst dropzoneVariants = tv({\n slots: {\n root: [\n \"relative\",\n \"cursor-pointer\",\n \"select-none\",\n \"rounded-lg\",\n \"border\",\n \"border-input\",\n \"border-dashed\",\n \"bg-background\",\n \"p-4\",\n \"outline-none\",\n \"transition-colors\",\n \"focus-visible:ring-2\",\n \"focus-visible:ring-ring\",\n \"focus-visible:ring-offset-2\",\n ],\n inner: [\n \"pointer-events-none\",\n \"select-none\",\n \"data-enable-pointer-events:pointer-events-auto\",\n ],\n overlay: [\n \"absolute\",\n \"inset-0\",\n \"z-10\",\n \"flex\",\n \"items-center\",\n \"justify-center\",\n \"rounded-lg\",\n \"bg-background/80\",\n \"backdrop-blur-sm\",\n ],\n },\n variants: {\n variant: {\n default: {\n root: [\n // No additional styles for default variant\n ],\n },\n filled: {\n root: [\n // Background: muted background\n \"bg-muted\",\n ],\n },\n light: {\n root: [\n // Background: muted background with opacity\n \"bg-muted/50\",\n ],\n },\n },\n status: {\n idle: {\n root: [\n // No additional styles for idle status\n ],\n },\n accept: {\n root: [\n // Border: primary border color\n \"border-primary\",\n // Background: primary background with opacity\n \"bg-primary/10\",\n // Text: primary text color\n \"text-primary-foreground\",\n ],\n },\n reject: {\n root: [\n // Border: danger border color\n \"border-danger\",\n // Background: danger background with opacity\n \"bg-danger\",\n // Text: danger text color\n \"text-danger-foreground\",\n ],\n },\n },\n disabled: {\n true: {\n root: [\n // Cursor: default cursor\n \"cursor-default\",\n // Opacity: reduced opacity\n \"opacity-50\",\n ],\n },\n },\n loading: {\n true: {\n root: [\n // Cursor: default cursor\n \"cursor-default\",\n ],\n },\n },\n activateOnClick: {\n true: {},\n false: {\n root: [\n // Cursor: default cursor when click is disabled\n \"cursor-default\",\n ],\n },\n },\n },\n compoundVariants: [\n {\n status: \"accept\",\n variant: \"filled\",\n class: {\n root: \"border-primary bg-primary/20\",\n },\n },\n {\n status: \"accept\",\n variant: \"light\",\n class: {\n root: \"border-primary bg-primary/10\",\n },\n },\n {\n status: \"reject\",\n variant: \"filled\",\n class: {\n root: \"border-danger bg-danger/20\",\n },\n },\n {\n status: \"reject\",\n variant: \"light\",\n class: {\n root: \"border-danger bg-danger\",\n },\n },\n ],\n defaultVariants: {\n variant: \"light\",\n status: \"idle\",\n disabled: false,\n loading: false,\n activateOnClick: true,\n },\n});\n\ntype DropzoneVariants = VariantProps<typeof dropzoneVariants>;\n\ntype DropzoneProps = Omit<ComponentProps<\"div\">, \"onDrop\" | \"ref\"> &\n DropzoneVariants & {\n ref?: Ref<HTMLDivElement>;\n /** Called when any files are dropped to the dropzone */\n onDropAny?: (\n files: FileWithPath[],\n fileRejections: FileRejection[]\n ) => void;\n\n /** Called when valid files are dropped to the dropzone */\n onDrop: (files: FileWithPath[]) => void;\n\n /** Called when dropped files do not meet file restrictions */\n onReject?: (fileRejections: FileRejection[]) => void;\n\n /** Determines whether files capturing should be disabled */\n disabled?: boolean;\n\n /** Determines whether a loading overlay should be displayed */\n loading?: boolean;\n\n /** Mime types of the files that dropzone can accept */\n accept?: Accept | string[];\n\n /** A ref function which when called opens the file system file picker */\n openRef?: Ref<() => void>;\n\n /** Determines whether multiple files can be dropped */\n multiple?: boolean;\n\n /** Maximum file size in bytes */\n maxSize?: number;\n\n /** Name of the form control */\n name?: string;\n\n /** Maximum number of files that can be picked at once */\n maxFiles?: number;\n\n /** Set to autofocus the root element */\n autoFocus?: boolean;\n\n /** If false, disables click to open the native file selection dialog */\n activateOnClick?: boolean;\n\n /** If false, disables drag 'n' drop */\n activateOnDrag?: boolean;\n\n /** If false, disables Space/Enter to open the native file selection dialog */\n activateOnKeyboard?: boolean;\n\n /** If false, stops drag event propagation to parents */\n dragEventsBubbling?: boolean;\n\n /** Called when the dragenter event occurs */\n onDragEnter?: (event: DragEvent<HTMLElement>) => void;\n\n /** Called when the dragleave event occurs */\n onDragLeave?: (event: DragEvent<HTMLElement>) => void;\n\n /** Called when the dragover event occurs */\n onDragOver?: (event: DragEvent<HTMLElement>) => void;\n\n /** Called when user closes the file selection dialog with no selection */\n onFileDialogCancel?: () => void;\n\n /** Called when user opens the file selection dialog */\n onFileDialogOpen?: () => void;\n\n /** If false, allow dropped items to take over the current browser window */\n preventDropOnDocument?: boolean;\n\n /** Set to true to use the File System Access API */\n useFsAccessApi?: boolean;\n\n /** Use this to provide a custom file aggregator */\n getFilesFromEvent?: (\n event: DropEvent\n ) => Promise<(File | DataTransferItem)[]>;\n\n /** Custom validation function */\n validator?: <T extends File>(file: T) => FileError | FileError[] | null;\n\n /** Determines whether pointer events should be enabled on the inner element */\n enablePointerEvents?: boolean;\n\n /** Props passed down to the internal Input component */\n inputProps?: InputHTMLAttributes<HTMLInputElement>;\n };\n\nconst Dropzone = ({\n className,\n variant,\n status: statusProp,\n disabled: disabledProp,\n loading,\n multiple = true,\n maxSize = Number.POSITIVE_INFINITY,\n accept,\n children,\n onDropAny,\n onDrop,\n onReject,\n openRef,\n name,\n maxFiles,\n autoFocus,\n activateOnClick = true,\n activateOnDrag = true,\n dragEventsBubbling = true,\n activateOnKeyboard = true,\n onDragEnter,\n onDragLeave,\n onDragOver,\n onFileDialogCancel,\n onFileDialogOpen,\n preventDropOnDocument,\n useFsAccessApi = true,\n getFilesFromEvent,\n validator,\n enablePointerEvents,\n inputProps,\n ref,\n ...props\n}: DropzoneProps) => {\n const {\n getRootProps,\n getInputProps,\n isDragAccept,\n isDragReject,\n isDragActive,\n open,\n } = useDropzone({\n onDrop: onDropAny,\n onDropAccepted: onDrop,\n onDropRejected: onReject,\n disabled: disabledProp || loading,\n accept: Array.isArray(accept)\n ? Object.fromEntries(accept.map((key) => [key, []]))\n : accept,\n multiple,\n maxSize,\n maxFiles,\n autoFocus,\n noClick: !activateOnClick,\n noDrag: !activateOnDrag,\n noDragEventsBubbling: !dragEventsBubbling,\n noKeyboard: !activateOnKeyboard,\n onDragEnter,\n onDragLeave,\n onDragOver,\n onFileDialogCancel,\n onFileDialogOpen,\n preventDropOnDocument,\n useFsAccessApi,\n validator,\n ...(getFilesFromEvent ? { getFilesFromEvent } : null),\n });\n\n useImperativeHandle(openRef, () => open, [open]);\n\n const isAccepted = isDragActive && isDragAccept;\n const isRejected = isDragActive && isDragReject;\n const isIdle = isDragActive\n ? isAccepted === false && isRejected === false\n : true;\n\n let status: \"idle\" | \"accept\" | \"reject\" = \"idle\";\n if (statusProp) {\n status = statusProp;\n } else if (isAccepted) {\n status = \"accept\";\n } else if (isRejected) {\n status = \"reject\";\n }\n const disabled = disabledProp || loading;\n\n const { root, inner, overlay } = dropzoneVariants({\n variant,\n status,\n disabled,\n loading,\n activateOnClick,\n });\n\n return (\n <DropzoneContext.Provider\n value={{ accept: isAccepted, reject: isRejected, idle: isIdle }}\n >\n <div\n {...getRootProps()}\n className={cn(root(), className)}\n data-disabled={disabled || undefined}\n data-loading={loading || undefined}\n data-slot=\"dropzone\"\n ref={ref}\n {...props}\n >\n {loading && (\n <div className={overlay()}>\n <Spinner />\n </div>\n )}\n <input {...getInputProps(inputProps)} name={name} />\n <div\n className={inner()}\n data-enable-pointer-events={enablePointerEvents || undefined}\n >\n {children}\n </div>\n </div>\n </DropzoneContext.Provider>\n );\n};\n\nDropzone.Accept = DropzoneAccept;\nDropzone.Idle = DropzoneIdle;\nDropzone.Reject = DropzoneReject;\n\nexport type {\n DropzoneAcceptProps,\n DropzoneIdleProps,\n DropzoneRejectProps,\n} from \"./dropzone-status\";\nexport type { DropzoneProps, DropzoneVariants };\n\nexport {\n Dropzone,\n DropzoneAccept,\n DropzoneContext,\n DropzoneIdle,\n DropzoneReject,\n dropzoneVariants,\n useDropzoneContext,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"dropzone.js","names":[],"sources":["../../src/ui/dropzone/dropzone-context.tsx","../../src/ui/dropzone/dropzone-status.tsx","../../src/ui/dropzone/dropzone.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\n\ninterface DropzoneContextValue {\n idle: boolean;\n accept: boolean;\n reject: boolean;\n}\n\nconst DropzoneContext = createContext<DropzoneContextValue | null>(null);\n\nexport const useDropzoneContext = () => {\n const context = useContext(DropzoneContext);\n if (!context) {\n throw new Error(\"Dropzone components must be used within Dropzone\");\n }\n return context;\n};\n\nexport { DropzoneContext };\n","\"use client\";\n\nimport type { ComponentProps, JSX, ReactNode } from \"react\";\nimport { cloneElement, isValidElement } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { useDropzoneContext } from \"./dropzone-context\";\n\ntype DropzoneStatusProps = ComponentProps<\"div\"> & {\n children: ReactNode;\n};\n\nconst createDropzoneStatus = (status: \"accept\" | \"reject\" | \"idle\") => {\n const Component = ({\n children,\n className,\n ...props\n }: DropzoneStatusProps) => {\n const ctx = useDropzoneContext();\n const _children = isValidElement(children) ? (\n children\n ) : (\n <span>{children}</span>\n );\n\n if (!ctx[status]) {\n return null;\n }\n\n return cloneElement(_children as JSX.Element, {\n className: cn(className, (_children as JSX.Element).props.className),\n ...props,\n });\n };\n\n Component.displayName = `Dropzone${status.charAt(0).toUpperCase() + status.slice(1)}`;\n\n return Component;\n};\n\nexport const DropzoneAccept = createDropzoneStatus(\"accept\");\nexport const DropzoneReject = createDropzoneStatus(\"reject\");\nexport const DropzoneIdle = createDropzoneStatus(\"idle\");\n\nexport type { DropzoneStatusProps };\nexport type DropzoneAcceptProps = DropzoneStatusProps;\nexport type DropzoneRejectProps = DropzoneStatusProps;\nexport type DropzoneIdleProps = DropzoneStatusProps;\n","\"use client\";\n\nimport type {\n ComponentProps,\n DragEvent,\n InputHTMLAttributes,\n Ref,\n} from \"react\";\nimport { useImperativeHandle, useMemo } from \"react\";\nimport type {\n Accept,\n DropEvent,\n FileError,\n FileRejection,\n FileWithPath,\n} from \"react-dropzone\";\nimport { useDropzone } from \"react-dropzone\";\nimport { cn, tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { Spinner } from \"../spinner/spinner\";\nimport { DropzoneContext, useDropzoneContext } from \"./dropzone-context\";\nimport {\n DropzoneAccept,\n DropzoneIdle,\n DropzoneReject,\n} from \"./dropzone-status\";\n\nconst dropzoneVariants = tv({\n compoundVariants: [\n {\n class: {\n root: \"border-primary bg-primary/20\",\n },\n status: \"accept\",\n variant: \"filled\",\n },\n {\n class: {\n root: \"border-primary bg-primary/10\",\n },\n status: \"accept\",\n variant: \"light\",\n },\n {\n class: {\n root: \"border-danger bg-danger/20\",\n },\n status: \"reject\",\n variant: \"filled\",\n },\n {\n class: {\n root: \"border-danger bg-danger\",\n },\n status: \"reject\",\n variant: \"light\",\n },\n ],\n defaultVariants: {\n activateOnClick: true,\n disabled: false,\n loading: false,\n status: \"idle\",\n variant: \"light\",\n },\n slots: {\n inner: [\n \"pointer-events-none\",\n \"select-none\",\n \"data-enable-pointer-events:pointer-events-auto\",\n ],\n overlay: [\n \"absolute\",\n \"inset-0\",\n \"z-raised\",\n \"flex\",\n \"items-center\",\n \"justify-center\",\n \"rounded-lg\",\n \"bg-background/80\",\n \"backdrop-blur-sm\",\n ],\n root: [\n \"relative\",\n \"cursor-clickable\",\n \"select-none\",\n \"rounded-lg\",\n \"border\",\n \"border-input\",\n \"border-dashed\",\n \"bg-background\",\n \"p-4\",\n \"outline-none\",\n \"transition-colors\",\n \"focus-visible:ring-2\",\n \"focus-visible:ring-ring\",\n \"focus-visible:ring-offset-2\",\n ],\n },\n variants: {\n activateOnClick: {\n false: {\n root: [\n // Cursor: default cursor when click is disabled\n \"cursor-default\",\n ],\n },\n true: {},\n },\n disabled: {\n true: {\n root: [\n // Cursor: default cursor\n \"cursor-default\",\n // Opacity: reduced opacity\n \"opacity-50\",\n ],\n },\n },\n loading: {\n true: {\n root: [\n // Cursor: default cursor\n \"cursor-default\",\n ],\n },\n },\n status: {\n accept: {\n root: [\n // Border: primary border color\n \"border-primary\",\n // Background: primary background with opacity\n \"bg-primary/10\",\n // Text: primary text color\n \"text-primary-foreground\",\n ],\n },\n idle: {\n root: [\n // No additional styles for idle status\n ],\n },\n reject: {\n root: [\n // Border: danger border color\n \"border-danger\",\n // Background: danger background with opacity\n \"bg-danger\",\n // Text: danger text color\n \"text-danger-foreground\",\n ],\n },\n },\n variant: {\n default: {\n root: [\n // No additional styles for default variant\n ],\n },\n filled: {\n root: [\n // Background: muted background\n \"bg-muted\",\n ],\n },\n light: {\n root: [\n // Background: muted background with opacity\n \"bg-muted/50\",\n ],\n },\n },\n },\n});\n\ntype DropzoneVariants = VariantProps<typeof dropzoneVariants>;\n\ntype DropzoneProps = Omit<ComponentProps<\"div\">, \"onDrop\" | \"ref\"> &\n DropzoneVariants & {\n ref?: Ref<HTMLDivElement>;\n /** Called when any files are dropped to the dropzone */\n onDropAny?: (\n files: FileWithPath[],\n fileRejections: FileRejection[]\n ) => void;\n\n /** Called when valid files are dropped to the dropzone */\n onDrop: (files: FileWithPath[]) => void;\n\n /** Called when dropped files do not meet file restrictions */\n onReject?: (fileRejections: FileRejection[]) => void;\n\n /** Determines whether files capturing should be disabled */\n disabled?: boolean;\n\n /** Determines whether a loading overlay should be displayed */\n loading?: boolean;\n\n /** Mime types of the files that dropzone can accept */\n accept?: Accept | string[];\n\n /** A ref function which when called opens the file system file picker */\n openRef?: Ref<() => void>;\n\n /** Determines whether multiple files can be dropped */\n multiple?: boolean;\n\n /** Maximum file size in bytes */\n maxSize?: number;\n\n /** Name of the form control */\n name?: string;\n\n /** Maximum number of files that can be picked at once */\n maxFiles?: number;\n\n /** Set to autofocus the root element */\n autoFocus?: boolean;\n\n /** If false, disables click to open the native file selection dialog */\n activateOnClick?: boolean;\n\n /** If false, disables drag 'n' drop */\n activateOnDrag?: boolean;\n\n /** If false, disables Space/Enter to open the native file selection dialog */\n activateOnKeyboard?: boolean;\n\n /** If false, stops drag event propagation to parents */\n dragEventsBubbling?: boolean;\n\n /** Called when the dragenter event occurs */\n onDragEnter?: (event: DragEvent<HTMLElement>) => void;\n\n /** Called when the dragleave event occurs */\n onDragLeave?: (event: DragEvent<HTMLElement>) => void;\n\n /** Called when the dragover event occurs */\n onDragOver?: (event: DragEvent<HTMLElement>) => void;\n\n /** Called when user closes the file selection dialog with no selection */\n onFileDialogCancel?: () => void;\n\n /** Called when user opens the file selection dialog */\n onFileDialogOpen?: () => void;\n\n /** If false, allow dropped items to take over the current browser window */\n preventDropOnDocument?: boolean;\n\n /** Set to true to use the File System Access API */\n useFsAccessApi?: boolean;\n\n /** Use this to provide a custom file aggregator */\n getFilesFromEvent?: (\n event: DropEvent\n ) => Promise<(File | DataTransferItem)[]>;\n\n /** Custom validation function */\n validator?: <T extends File>(file: T) => FileError | FileError[] | null;\n\n /** Determines whether pointer events should be enabled on the inner element */\n enablePointerEvents?: boolean;\n\n /** Props passed down to the internal Input component */\n inputProps?: InputHTMLAttributes<HTMLInputElement>;\n };\n\nconst Dropzone = ({\n className,\n variant,\n status: statusProp,\n disabled: disabledProp,\n loading,\n multiple = true,\n maxSize = Number.POSITIVE_INFINITY,\n accept,\n children,\n onDropAny,\n onDrop,\n onReject,\n openRef,\n name,\n maxFiles,\n autoFocus,\n activateOnClick = true,\n activateOnDrag = true,\n dragEventsBubbling = true,\n activateOnKeyboard = true,\n onDragEnter,\n onDragLeave,\n onDragOver,\n onFileDialogCancel,\n onFileDialogOpen,\n preventDropOnDocument,\n useFsAccessApi = true,\n getFilesFromEvent,\n validator,\n enablePointerEvents,\n inputProps,\n ref,\n ...props\n}: DropzoneProps) => {\n const {\n getRootProps,\n getInputProps,\n isDragAccept,\n isDragReject,\n isDragActive,\n open,\n } = useDropzone({\n accept: Array.isArray(accept)\n ? Object.fromEntries(accept.map((key) => [key, []]))\n : accept,\n autoFocus,\n disabled: disabledProp || loading,\n maxFiles,\n maxSize,\n multiple,\n noClick: !activateOnClick,\n noDrag: !activateOnDrag,\n noDragEventsBubbling: !dragEventsBubbling,\n noKeyboard: !activateOnKeyboard,\n onDragEnter,\n onDragLeave,\n onDragOver,\n onDrop: onDropAny,\n onDropAccepted: onDrop,\n onDropRejected: onReject,\n onFileDialogCancel,\n onFileDialogOpen,\n preventDropOnDocument,\n useFsAccessApi,\n validator,\n ...(getFilesFromEvent ? { getFilesFromEvent } : null),\n });\n\n useImperativeHandle(openRef, () => open, [open]);\n\n const isAccepted = isDragActive && isDragAccept;\n const isRejected = isDragActive && isDragReject;\n const isIdle = isDragActive\n ? isAccepted === false && isRejected === false\n : true;\n\n let status: \"idle\" | \"accept\" | \"reject\" = \"idle\";\n if (statusProp) {\n status = statusProp;\n } else if (isAccepted) {\n status = \"accept\";\n } else if (isRejected) {\n status = \"reject\";\n }\n const disabled = disabledProp || loading;\n\n const { root, inner, overlay } = dropzoneVariants({\n activateOnClick,\n disabled,\n loading,\n status,\n variant,\n });\n const contextValue = useMemo(\n () => ({ accept: isAccepted, idle: isIdle, reject: isRejected }),\n [isAccepted, isRejected, isIdle]\n );\n\n return (\n <DropzoneContext.Provider value={contextValue}>\n <div\n {...getRootProps()}\n className={cn(root(), className)}\n data-disabled={disabled || undefined}\n data-loading={loading || undefined}\n data-slot=\"dropzone\"\n ref={ref}\n {...props}\n >\n {loading && (\n <div className={overlay()}>\n <Spinner />\n </div>\n )}\n <input {...getInputProps(inputProps)} name={name} />\n <div\n className={inner()}\n data-enable-pointer-events={enablePointerEvents || undefined}\n >\n {children}\n </div>\n </div>\n </DropzoneContext.Provider>\n );\n};\n\nDropzone.Accept = DropzoneAccept;\nDropzone.Idle = DropzoneIdle;\nDropzone.Reject = DropzoneReject;\n\nexport type {\n DropzoneAcceptProps,\n DropzoneIdleProps,\n DropzoneRejectProps,\n} from \"./dropzone-status\";\nexport type { DropzoneProps, DropzoneVariants };\n\nexport {\n Dropzone,\n DropzoneAccept,\n DropzoneContext,\n DropzoneIdle,\n DropzoneReject,\n dropzoneVariants,\n useDropzoneContext,\n};\n"],"mappings":"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"}