@arolariu/components 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/CHANGELOG.md +89 -0
  2. package/EXAMPLES.md +2510 -0
  3. package/dist/components/ui/accordion.js +3 -3
  4. package/dist/components/ui/accordion.js.map +1 -1
  5. package/dist/components/ui/accordion_module.css.map +1 -1
  6. package/dist/components/ui/alert-dialog.d.ts +4 -16
  7. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  8. package/dist/components/ui/alert-dialog.js +21 -17
  9. package/dist/components/ui/alert-dialog.js.map +1 -1
  10. package/dist/components/ui/alert-dialog_module.css +1 -1
  11. package/dist/components/ui/alert-dialog_module.css.map +1 -1
  12. package/dist/components/ui/alert.js +4 -4
  13. package/dist/components/ui/alert.js.map +1 -1
  14. package/dist/components/ui/alert_module.css.map +1 -1
  15. package/dist/components/ui/aspect-ratio.js +2 -2
  16. package/dist/components/ui/aspect-ratio.js.map +1 -1
  17. package/dist/components/ui/aspect-ratio_module.css.map +1 -1
  18. package/dist/components/ui/async-boundary.js +2 -2
  19. package/dist/components/ui/async-boundary.js.map +1 -1
  20. package/dist/components/ui/avatar.d.ts +3 -12
  21. package/dist/components/ui/avatar.d.ts.map +1 -1
  22. package/dist/components/ui/avatar.js +18 -15
  23. package/dist/components/ui/avatar.js.map +1 -1
  24. package/dist/components/ui/avatar_module.css.map +1 -1
  25. package/dist/components/ui/background-beams.js +3 -3
  26. package/dist/components/ui/background-beams.js.map +1 -1
  27. package/dist/components/ui/background-beams_module.css.map +1 -1
  28. package/dist/components/ui/badge.js +2 -2
  29. package/dist/components/ui/badge.js.map +1 -1
  30. package/dist/components/ui/badge_module.css.map +1 -1
  31. package/dist/components/ui/breadcrumb.js +10 -10
  32. package/dist/components/ui/breadcrumb.js.map +1 -1
  33. package/dist/components/ui/breadcrumb_module.css.map +1 -1
  34. package/dist/components/ui/bubble-background.js +5 -5
  35. package/dist/components/ui/bubble-background.js.map +1 -1
  36. package/dist/components/ui/bubble-background_module.css.map +1 -1
  37. package/dist/components/ui/button-group.d.ts +1 -1
  38. package/dist/components/ui/button-group.d.ts.map +1 -1
  39. package/dist/components/ui/button-group.js +6 -6
  40. package/dist/components/ui/button-group.js.map +1 -1
  41. package/dist/components/ui/button-group_module.css.map +1 -1
  42. package/dist/components/ui/button.js +4 -4
  43. package/dist/components/ui/button.js.map +1 -1
  44. package/dist/components/ui/button_module.css.map +1 -1
  45. package/dist/components/ui/calendar.d.ts +3 -5
  46. package/dist/components/ui/calendar.d.ts.map +1 -1
  47. package/dist/components/ui/calendar.js +9 -9
  48. package/dist/components/ui/calendar.js.map +1 -1
  49. package/dist/components/ui/calendar_module.css.map +1 -1
  50. package/dist/components/ui/card-skeleton.js +2 -2
  51. package/dist/components/ui/card-skeleton.js.map +1 -1
  52. package/dist/components/ui/card-skeleton_module.css.map +1 -1
  53. package/dist/components/ui/card.js +8 -8
  54. package/dist/components/ui/card.js.map +1 -1
  55. package/dist/components/ui/card_module.css.map +1 -1
  56. package/dist/components/ui/carousel.d.ts.map +1 -1
  57. package/dist/components/ui/carousel.js +16 -16
  58. package/dist/components/ui/carousel.js.map +1 -1
  59. package/dist/components/ui/carousel_module.css +1 -1
  60. package/dist/components/ui/carousel_module.css.map +1 -1
  61. package/dist/components/ui/chart.d.ts +6 -3
  62. package/dist/components/ui/chart.d.ts.map +1 -1
  63. package/dist/components/ui/chart.js +70 -70
  64. package/dist/components/ui/chart.js.map +1 -1
  65. package/dist/components/ui/chart_module.css.map +1 -1
  66. package/dist/components/ui/checkbox-group.d.ts +2 -6
  67. package/dist/components/ui/checkbox-group.d.ts.map +1 -1
  68. package/dist/components/ui/checkbox-group.js +8 -7
  69. package/dist/components/ui/checkbox-group.js.map +1 -1
  70. package/dist/components/ui/checkbox-group_module.css.map +1 -1
  71. package/dist/components/ui/checkbox.d.ts +3 -1
  72. package/dist/components/ui/checkbox.d.ts.map +1 -1
  73. package/dist/components/ui/checkbox.js +6 -3
  74. package/dist/components/ui/checkbox.js.map +1 -1
  75. package/dist/components/ui/checkbox_module.css.map +1 -1
  76. package/dist/components/ui/collapsible.d.ts.map +1 -1
  77. package/dist/components/ui/collapsible.js +4 -4
  78. package/dist/components/ui/collapsible.js.map +1 -1
  79. package/dist/components/ui/collapsible_module.css.map +1 -1
  80. package/dist/components/ui/combobox.d.ts +335 -0
  81. package/dist/components/ui/combobox.d.ts.map +1 -0
  82. package/dist/components/ui/combobox.js +206 -0
  83. package/dist/components/ui/combobox.js.map +1 -0
  84. package/dist/components/ui/combobox.module.js +23 -0
  85. package/dist/components/ui/combobox.module.js.map +1 -0
  86. package/dist/components/ui/combobox_module.css +142 -0
  87. package/dist/components/ui/combobox_module.css.map +1 -0
  88. package/dist/components/ui/command.d.ts.map +1 -1
  89. package/dist/components/ui/command.js +62 -53
  90. package/dist/components/ui/command.js.map +1 -1
  91. package/dist/components/ui/command_module.css +1 -1
  92. package/dist/components/ui/command_module.css.map +1 -1
  93. package/dist/components/ui/context-menu.d.ts.map +1 -1
  94. package/dist/components/ui/context-menu.js +6 -6
  95. package/dist/components/ui/context-menu.js.map +1 -1
  96. package/dist/components/ui/context-menu_module.css.map +1 -1
  97. package/dist/components/ui/copy-button.js +6 -6
  98. package/dist/components/ui/copy-button.js.map +1 -1
  99. package/dist/components/ui/copy-button_module.css.map +1 -1
  100. package/dist/components/ui/counting-number.js +6 -6
  101. package/dist/components/ui/counting-number.js.map +1 -1
  102. package/dist/components/ui/counting-number_module.css.map +1 -1
  103. package/dist/components/ui/dialog.js +6 -6
  104. package/dist/components/ui/dialog.js.map +1 -1
  105. package/dist/components/ui/dialog_module.css +1 -1
  106. package/dist/components/ui/dialog_module.css.map +1 -1
  107. package/dist/components/ui/dot-background_module.css.map +1 -1
  108. package/dist/components/ui/drawer.d.ts.map +1 -1
  109. package/dist/components/ui/drawer.js +5 -5
  110. package/dist/components/ui/drawer.js.map +1 -1
  111. package/dist/components/ui/drawer_module.css.map +1 -1
  112. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  113. package/dist/components/ui/dropdown-menu.js +6 -6
  114. package/dist/components/ui/dropdown-menu.js.map +1 -1
  115. package/dist/components/ui/dropdown-menu_module.css.map +1 -1
  116. package/dist/components/ui/dropdrawer.d.ts +10 -16
  117. package/dist/components/ui/dropdrawer.d.ts.map +1 -1
  118. package/dist/components/ui/dropdrawer.js +73 -65
  119. package/dist/components/ui/dropdrawer.js.map +1 -1
  120. package/dist/components/ui/dropdrawer_module.css.map +1 -1
  121. package/dist/components/ui/empty.js +7 -7
  122. package/dist/components/ui/empty.js.map +1 -1
  123. package/dist/components/ui/empty_module.css.map +1 -1
  124. package/dist/components/ui/error-boundary.js +2 -2
  125. package/dist/components/ui/error-boundary.js.map +1 -1
  126. package/dist/components/ui/error-boundary_module.css.map +1 -1
  127. package/dist/components/ui/field.js +12 -12
  128. package/dist/components/ui/field.js.map +1 -1
  129. package/dist/components/ui/field_module.css.map +1 -1
  130. package/dist/components/ui/fireworks-background.js +6 -6
  131. package/dist/components/ui/fireworks-background.js.map +1 -1
  132. package/dist/components/ui/fireworks-background_module.css.map +1 -1
  133. package/dist/components/ui/flip-button.js +5 -5
  134. package/dist/components/ui/flip-button.js.map +1 -1
  135. package/dist/components/ui/flip-button_module.css.map +1 -1
  136. package/dist/components/ui/focus-scope.js +6 -6
  137. package/dist/components/ui/focus-scope.js.map +1 -1
  138. package/dist/components/ui/focus-scope_module.css.map +1 -1
  139. package/dist/components/ui/form-skeleton.js +2 -2
  140. package/dist/components/ui/form-skeleton.js.map +1 -1
  141. package/dist/components/ui/form-skeleton_module.css.map +1 -1
  142. package/dist/components/ui/form.d.ts +3 -3
  143. package/dist/components/ui/form.d.ts.map +1 -1
  144. package/dist/components/ui/form.js +13 -13
  145. package/dist/components/ui/form.js.map +1 -1
  146. package/dist/components/ui/form_module.css.map +1 -1
  147. package/dist/components/ui/gradient-background.js +2 -2
  148. package/dist/components/ui/gradient-background.js.map +1 -1
  149. package/dist/components/ui/gradient-background_module.css.map +1 -1
  150. package/dist/components/ui/gradient-text.js +2 -2
  151. package/dist/components/ui/gradient-text.js.map +1 -1
  152. package/dist/components/ui/gradient-text_module.css.map +1 -1
  153. package/dist/components/ui/highlight-text.js +4 -4
  154. package/dist/components/ui/highlight-text.js.map +1 -1
  155. package/dist/components/ui/highlight-text_module.css.map +1 -1
  156. package/dist/components/ui/hole-background.js +21 -21
  157. package/dist/components/ui/hole-background.js.map +1 -1
  158. package/dist/components/ui/hole-background_module.css.map +1 -1
  159. package/dist/components/ui/hover-card.js +3 -3
  160. package/dist/components/ui/hover-card.js.map +1 -1
  161. package/dist/components/ui/hover-card_module.css.map +1 -1
  162. package/dist/components/ui/input-group.js +7 -7
  163. package/dist/components/ui/input-group.js.map +1 -1
  164. package/dist/components/ui/input-group_module.css.map +1 -1
  165. package/dist/components/ui/input-otp.d.ts +3 -3
  166. package/dist/components/ui/input-otp.d.ts.map +1 -1
  167. package/dist/components/ui/input-otp.js +6 -6
  168. package/dist/components/ui/input-otp.js.map +1 -1
  169. package/dist/components/ui/input-otp_module.css.map +1 -1
  170. package/dist/components/ui/input.js +2 -2
  171. package/dist/components/ui/input.js.map +1 -1
  172. package/dist/components/ui/input_module.css.map +1 -1
  173. package/dist/components/ui/item.d.ts +1 -1
  174. package/dist/components/ui/item.d.ts.map +1 -1
  175. package/dist/components/ui/item.js +13 -13
  176. package/dist/components/ui/item.js.map +1 -1
  177. package/dist/components/ui/item_module.css.map +1 -1
  178. package/dist/components/ui/kbd.js +3 -3
  179. package/dist/components/ui/kbd.js.map +1 -1
  180. package/dist/components/ui/kbd_module.css.map +1 -1
  181. package/dist/components/ui/label.js +2 -2
  182. package/dist/components/ui/label.js.map +1 -1
  183. package/dist/components/ui/label_module.css.map +1 -1
  184. package/dist/components/ui/list-skeleton.js +2 -2
  185. package/dist/components/ui/list-skeleton.js.map +1 -1
  186. package/dist/components/ui/list-skeleton_module.css.map +1 -1
  187. package/dist/components/ui/loading-overlay.js +2 -2
  188. package/dist/components/ui/loading-overlay.js.map +1 -1
  189. package/dist/components/ui/loading-overlay_module.css.map +1 -1
  190. package/dist/components/ui/menubar.d.ts +11 -13
  191. package/dist/components/ui/menubar.d.ts.map +1 -1
  192. package/dist/components/ui/menubar.js +4 -4
  193. package/dist/components/ui/menubar.js.map +1 -1
  194. package/dist/components/ui/menubar_module.css.map +1 -1
  195. package/dist/components/ui/meter.d.ts +8 -24
  196. package/dist/components/ui/meter.d.ts.map +1 -1
  197. package/dist/components/ui/meter.js +23 -19
  198. package/dist/components/ui/meter.js.map +1 -1
  199. package/dist/components/ui/meter_module.css.map +1 -1
  200. package/dist/components/ui/navigation-menu.d.ts +3 -12
  201. package/dist/components/ui/navigation-menu.d.ts.map +1 -1
  202. package/dist/components/ui/navigation-menu.js +15 -12
  203. package/dist/components/ui/navigation-menu.js.map +1 -1
  204. package/dist/components/ui/navigation-menu_module.css +1 -1
  205. package/dist/components/ui/navigation-menu_module.css.map +1 -1
  206. package/dist/components/ui/number-field.d.ts +6 -12
  207. package/dist/components/ui/number-field.d.ts.map +1 -1
  208. package/dist/components/ui/number-field.js +3 -3
  209. package/dist/components/ui/number-field.js.map +1 -1
  210. package/dist/components/ui/number-field_module.css.map +1 -1
  211. package/dist/components/ui/pagination.js +8 -8
  212. package/dist/components/ui/pagination.js.map +1 -1
  213. package/dist/components/ui/pagination_module.css.map +1 -1
  214. package/dist/components/ui/popover.js +5 -5
  215. package/dist/components/ui/popover.js.map +1 -1
  216. package/dist/components/ui/popover_module.css.map +1 -1
  217. package/dist/components/ui/progress.d.ts +1 -4
  218. package/dist/components/ui/progress.d.ts.map +1 -1
  219. package/dist/components/ui/progress.js +10 -9
  220. package/dist/components/ui/progress.js.map +1 -1
  221. package/dist/components/ui/progress_module.css.map +1 -1
  222. package/dist/components/ui/radio-group.d.ts +2 -4
  223. package/dist/components/ui/radio-group.d.ts.map +1 -1
  224. package/dist/components/ui/radio-group.js +3 -3
  225. package/dist/components/ui/radio-group.js.map +1 -1
  226. package/dist/components/ui/radio-group_module.css.map +1 -1
  227. package/dist/components/ui/resizable.d.ts +13 -29
  228. package/dist/components/ui/resizable.d.ts.map +1 -1
  229. package/dist/components/ui/resizable.js +8 -7
  230. package/dist/components/ui/resizable.js.map +1 -1
  231. package/dist/components/ui/resizable_module.css.map +1 -1
  232. package/dist/components/ui/ripple-button.js +9 -9
  233. package/dist/components/ui/ripple-button.js.map +1 -1
  234. package/dist/components/ui/ripple-button_module.css.map +1 -1
  235. package/dist/components/ui/scratcher.d.ts +1 -1
  236. package/dist/components/ui/scratcher.d.ts.map +1 -1
  237. package/dist/components/ui/scratcher.js +5 -4
  238. package/dist/components/ui/scratcher.js.map +1 -1
  239. package/dist/components/ui/scratcher_module.css.map +1 -1
  240. package/dist/components/ui/scroll-area.d.ts +2 -4
  241. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  242. package/dist/components/ui/scroll-area.js +2 -2
  243. package/dist/components/ui/scroll-area.js.map +1 -1
  244. package/dist/components/ui/scroll-area_module.css.map +1 -1
  245. package/dist/components/ui/select.js +4 -4
  246. package/dist/components/ui/select.js.map +1 -1
  247. package/dist/components/ui/select_module.css.map +1 -1
  248. package/dist/components/ui/separator.d.ts +1 -4
  249. package/dist/components/ui/separator.d.ts.map +1 -1
  250. package/dist/components/ui/separator.js +9 -8
  251. package/dist/components/ui/separator.js.map +1 -1
  252. package/dist/components/ui/separator_module.css.map +1 -1
  253. package/dist/components/ui/sheet.d.ts.map +1 -1
  254. package/dist/components/ui/sheet.js +6 -6
  255. package/dist/components/ui/sheet.js.map +1 -1
  256. package/dist/components/ui/sheet_module.css.map +1 -1
  257. package/dist/components/ui/sidebar.d.ts +1 -1
  258. package/dist/components/ui/sidebar.d.ts.map +1 -1
  259. package/dist/components/ui/sidebar.js +36 -36
  260. package/dist/components/ui/sidebar.js.map +1 -1
  261. package/dist/components/ui/sidebar_module.css.map +1 -1
  262. package/dist/components/ui/skeleton.js +2 -2
  263. package/dist/components/ui/skeleton.js.map +1 -1
  264. package/dist/components/ui/skeleton_module.css.map +1 -1
  265. package/dist/components/ui/slider.js +2 -2
  266. package/dist/components/ui/slider.js.map +1 -1
  267. package/dist/components/ui/slider_module.css.map +1 -1
  268. package/dist/components/ui/spinner.js +2 -2
  269. package/dist/components/ui/spinner.js.map +1 -1
  270. package/dist/components/ui/spinner_module.css.map +1 -1
  271. package/dist/components/ui/stepper.js +2 -2
  272. package/dist/components/ui/stepper.js.map +1 -1
  273. package/dist/components/ui/stepper_module.css.map +1 -1
  274. package/dist/components/ui/switch.js +2 -2
  275. package/dist/components/ui/switch.js.map +1 -1
  276. package/dist/components/ui/switch_module.css.map +1 -1
  277. package/dist/components/ui/table-skeleton.js +2 -2
  278. package/dist/components/ui/table-skeleton.js.map +1 -1
  279. package/dist/components/ui/table-skeleton_module.css.map +1 -1
  280. package/dist/components/ui/table.js +9 -9
  281. package/dist/components/ui/table.js.map +1 -1
  282. package/dist/components/ui/table_module.css.map +1 -1
  283. package/dist/components/ui/tabs.js +3 -3
  284. package/dist/components/ui/tabs.js.map +1 -1
  285. package/dist/components/ui/tabs_module.css.map +1 -1
  286. package/dist/components/ui/textarea.js +2 -2
  287. package/dist/components/ui/textarea.js.map +1 -1
  288. package/dist/components/ui/textarea_module.css.map +1 -1
  289. package/dist/components/ui/timeline.js +5 -5
  290. package/dist/components/ui/timeline.js.map +1 -1
  291. package/dist/components/ui/timeline_module.css.map +1 -1
  292. package/dist/components/ui/{sonner.d.ts → toast.d.ts} +15 -6
  293. package/dist/components/ui/toast.d.ts.map +1 -0
  294. package/dist/components/ui/{sonner.js → toast.js} +43 -42
  295. package/dist/components/ui/toast.js.map +1 -0
  296. package/dist/components/ui/toast.module.js +34 -0
  297. package/dist/components/ui/toast.module.js.map +1 -0
  298. package/dist/components/ui/{sonner_module.css → toast_module.css} +35 -35
  299. package/dist/components/ui/toast_module.css.map +1 -0
  300. package/dist/components/ui/toggle-group.d.ts +2 -8
  301. package/dist/components/ui/toggle-group.d.ts.map +1 -1
  302. package/dist/components/ui/toggle-group.js +14 -12
  303. package/dist/components/ui/toggle-group.js.map +1 -1
  304. package/dist/components/ui/toggle-group_module.css.map +1 -1
  305. package/dist/components/ui/toggle.js +2 -2
  306. package/dist/components/ui/toggle.js.map +1 -1
  307. package/dist/components/ui/toggle_module.css.map +1 -1
  308. package/dist/components/ui/toolbar.d.ts +10 -30
  309. package/dist/components/ui/toolbar.d.ts.map +1 -1
  310. package/dist/components/ui/toolbar.js +28 -23
  311. package/dist/components/ui/toolbar.js.map +1 -1
  312. package/dist/components/ui/toolbar_module.css.map +1 -1
  313. package/dist/components/ui/tooltip.js +4 -4
  314. package/dist/components/ui/tooltip.js.map +1 -1
  315. package/dist/components/ui/tooltip_module.css.map +1 -1
  316. package/dist/components/ui/typewriter.js +4 -4
  317. package/dist/components/ui/typewriter.js.map +1 -1
  318. package/dist/components/ui/typewriter_module.css.map +1 -1
  319. package/dist/components/ui/visually-hidden.js +2 -2
  320. package/dist/components/ui/visually-hidden.js.map +1 -1
  321. package/dist/components/ui/visually-hidden_module.css.map +1 -1
  322. package/dist/hooks/useAnnounce.js +5 -5
  323. package/dist/hooks/useAnnounce.js.map +1 -1
  324. package/dist/hooks/useClipboard.d.ts +77 -0
  325. package/dist/hooks/useClipboard.d.ts.map +1 -0
  326. package/dist/hooks/useClipboard.js +42 -0
  327. package/dist/hooks/useClipboard.js.map +1 -0
  328. package/dist/hooks/useControllableState.d.ts +54 -0
  329. package/dist/hooks/useControllableState.d.ts.map +1 -0
  330. package/dist/hooks/useControllableState.js +29 -0
  331. package/dist/hooks/useControllableState.js.map +1 -0
  332. package/dist/hooks/useDebounce.d.ts +33 -0
  333. package/dist/hooks/useDebounce.d.ts.map +1 -0
  334. package/dist/hooks/useDebounce.js +20 -0
  335. package/dist/hooks/useDebounce.js.map +1 -0
  336. package/dist/hooks/useEventCallback.d.ts +34 -0
  337. package/dist/hooks/useEventCallback.d.ts.map +1 -0
  338. package/dist/hooks/useEventCallback.js +12 -0
  339. package/dist/hooks/useEventCallback.js.map +1 -0
  340. package/dist/hooks/useFocusManager.js +6 -6
  341. package/dist/hooks/useFocusManager.js.map +1 -1
  342. package/dist/hooks/useFocusVisible.js +5 -5
  343. package/dist/hooks/useFocusVisible.js.map +1 -1
  344. package/dist/hooks/useId.d.ts +30 -0
  345. package/dist/hooks/useId.d.ts.map +1 -0
  346. package/dist/hooks/useId.js +9 -0
  347. package/dist/hooks/useId.js.map +1 -0
  348. package/dist/hooks/useIntersectionObserver.d.ts +51 -0
  349. package/dist/hooks/useIntersectionObserver.d.ts.map +1 -0
  350. package/dist/hooks/useIntersectionObserver.js +25 -0
  351. package/dist/hooks/useIntersectionObserver.js.map +1 -0
  352. package/dist/hooks/useInterval.d.ts +55 -0
  353. package/dist/hooks/useInterval.d.ts.map +1 -0
  354. package/dist/hooks/useInterval.js +24 -0
  355. package/dist/hooks/useInterval.js.map +1 -0
  356. package/dist/hooks/useLocalStorage.d.ts +43 -0
  357. package/dist/hooks/useLocalStorage.d.ts.map +1 -0
  358. package/dist/hooks/useLocalStorage.js +53 -0
  359. package/dist/hooks/useLocalStorage.js.map +1 -0
  360. package/dist/hooks/useMediaQuery.js +3 -3
  361. package/dist/hooks/useMediaQuery.js.map +1 -1
  362. package/dist/hooks/useMergedRefs.d.ts +27 -0
  363. package/dist/hooks/useMergedRefs.d.ts.map +1 -0
  364. package/dist/hooks/useMergedRefs.js +11 -0
  365. package/dist/hooks/useMergedRefs.js.map +1 -0
  366. package/dist/hooks/useOnClickOutside.d.ts +32 -0
  367. package/dist/hooks/useOnClickOutside.d.ts.map +1 -0
  368. package/dist/hooks/useOnClickOutside.js +23 -0
  369. package/dist/hooks/useOnClickOutside.js.map +1 -0
  370. package/dist/hooks/usePrevious.d.ts +33 -0
  371. package/dist/hooks/usePrevious.d.ts.map +1 -0
  372. package/dist/hooks/usePrevious.js +14 -0
  373. package/dist/hooks/usePrevious.js.map +1 -0
  374. package/dist/hooks/useThrottle.d.ts +37 -0
  375. package/dist/hooks/useThrottle.d.ts.map +1 -0
  376. package/dist/hooks/useThrottle.js +34 -0
  377. package/dist/hooks/useThrottle.js.map +1 -0
  378. package/dist/hooks/useTimeout.d.ts +28 -0
  379. package/dist/hooks/useTimeout.d.ts.map +1 -0
  380. package/dist/hooks/useTimeout.js +24 -0
  381. package/dist/hooks/useTimeout.js.map +1 -0
  382. package/dist/index.css.map +1 -1
  383. package/dist/index.d.ts +17 -3
  384. package/dist/index.d.ts.map +1 -1
  385. package/dist/index.js +15 -1
  386. package/dist/lib/utilities.d.ts +2 -3
  387. package/dist/lib/utilities.d.ts.map +1 -1
  388. package/dist/lib/utilities.js.map +1 -1
  389. package/dist/motion/Collapse.js +2 -2
  390. package/dist/motion/Collapse.js.map +1 -1
  391. package/dist/motion/Collapse_module.css.map +1 -1
  392. package/dist/motion/tokens.js +5 -5
  393. package/dist/motion/tokens.js.map +1 -1
  394. package/package.json +88 -10
  395. package/src/components/ui/alert-dialog.tsx +15 -8
  396. package/src/components/ui/avatar.tsx +9 -6
  397. package/src/components/ui/calendar.tsx +9 -14
  398. package/src/components/ui/carousel.tsx +2 -0
  399. package/src/components/ui/chart.tsx +65 -62
  400. package/src/components/ui/checkbox-group.tsx +4 -5
  401. package/src/components/ui/checkbox.tsx +10 -2
  402. package/src/components/ui/collapsible.tsx +1 -0
  403. package/src/components/ui/combobox.module.css +158 -0
  404. package/src/components/ui/combobox.tsx +569 -0
  405. package/src/components/ui/command.tsx +31 -15
  406. package/src/components/ui/context-menu.tsx +3 -0
  407. package/src/components/ui/drawer.tsx +2 -0
  408. package/src/components/ui/dropdown-menu.tsx +3 -0
  409. package/src/components/ui/dropdrawer.tsx +80 -62
  410. package/src/components/ui/form.tsx +28 -3
  411. package/src/components/ui/input-otp.tsx +3 -3
  412. package/src/components/ui/menubar.tsx +9 -10
  413. package/src/components/ui/meter.tsx +16 -17
  414. package/src/components/ui/navigation-menu.tsx +41 -33
  415. package/src/components/ui/number-field.tsx +6 -13
  416. package/src/components/ui/progress.tsx +3 -2
  417. package/src/components/ui/radio-group.tsx +2 -5
  418. package/src/components/ui/resizable.tsx +15 -18
  419. package/src/components/ui/scratcher.tsx +6 -10
  420. package/src/components/ui/scroll-area.tsx +2 -5
  421. package/src/components/ui/separator.tsx +4 -3
  422. package/src/components/ui/sheet.tsx +3 -0
  423. package/src/components/ui/sidebar.tsx +1 -0
  424. package/src/components/ui/{sonner.module.css → toast.module.css} +1 -1
  425. package/src/components/ui/{sonner.tsx → toast.tsx} +22 -14
  426. package/src/components/ui/toggle-group.tsx +6 -4
  427. package/src/components/ui/toolbar.tsx +20 -21
  428. package/src/hooks/useClipboard.tsx +137 -0
  429. package/src/hooks/useControllableState.tsx +81 -0
  430. package/src/hooks/useDebounce.tsx +50 -0
  431. package/src/hooks/useEventCallback.tsx +47 -0
  432. package/src/hooks/useId.tsx +36 -0
  433. package/src/hooks/useIntersectionObserver.tsx +81 -0
  434. package/src/hooks/useInterval.tsx +80 -0
  435. package/src/hooks/useLocalStorage.tsx +111 -0
  436. package/src/hooks/useMergedRefs.tsx +48 -0
  437. package/src/hooks/useOnClickOutside.tsx +55 -0
  438. package/src/hooks/usePrevious.tsx +44 -0
  439. package/src/hooks/useThrottle.tsx +78 -0
  440. package/src/hooks/useTimeout.tsx +51 -0
  441. package/src/index.ts +27 -4
  442. package/src/lib/utilities.ts +4 -4
  443. package/src/motion/tokens.ts +4 -4
  444. package/src/stories/DesignPrinciples.mdx +48 -0
  445. package/src/stories/GettingStarted.mdx +92 -0
  446. package/src/stories/Welcome.mdx +44 -0
  447. package/dist/components/ui/sonner.d.ts.map +0 -1
  448. package/dist/components/ui/sonner.js.map +0 -1
  449. package/dist/components/ui/sonner.module.js +0 -34
  450. package/dist/components/ui/sonner.module.js.map +0 -1
  451. package/dist/components/ui/sonner_module.css.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://./home/runner/work/arolariu.ro/arolariu.ro/packages/components/src/components/ui/hole-background.module.css","webpack://./src/components/ui/hole-background.module.css"],"names":[],"mappings":"AADA;ECEE,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,4DAA4D;EAC5D,WAAW;EACX,YAAY;EACZ,cAAc;EACd,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,qCAAqC;AACvC;;AAEA;EACE,4DAA4D;AAC9D;;AAEA;EACE,4DAA4D;AAC9D;;AAEA;EACE,WAAW;EACX,uBAAuB;EACvB,UAAU;EACV,+DAA+D;EAC/D,QAAQ;EACR,SAAS;EACT,qCAAqC;AACvC;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,cAAc;EACd,kBAAkB;AACpB;;AAEA;EACE,WAAW;EACX,QAAQ;AACV;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,kBAAkB;EAClB,2BAA2B;EAC3B,YAAY;EACZ,UAAU;EACV,oJAAoJ;EACpJ,kCAAkC;EAClC,iCAAiC;EACjC,UAAU;EACV,YAAY;EACZ,kBAAkB;EAClB,WAAW;EACX,SAAS;EACT,kCAAkC;AACpC;;AAEA;EACE,4BAA4B;EAC5B,iIAAiI;AACnI;;AAEA;EACE,uBAAuB;EACvB,WAAW;EACX,UAAU;EACV,mEAAmE;EACnE,kBAAkB;EAClB,QAAQ;AACV","sourcesContent":[".root{height:100%;overflow:hidden;position:relative;width:100%}.root:before{background:radial-gradient(ellipse at 50% 55%,transparent 10%,#fff 50%);content:\"\";display:block;height:140%;left:50%;position:absolute;top:50%;transform:translate3d(-50%,-50%,0);width:140%}:global(.dark) .root:before,:global([data-theme=dark]) .root:before{background:radial-gradient(ellipse at 50% 55%,transparent 10%,#000 50%)}.root:after{background:radial-gradient(ellipse at 50% 75%,#a900ff 20%,transparent 75%);content:\"\";left:50%;mix-blend-mode:overlay;top:50%;transform:translate3d(-50%,-50%,0);z-index:5}.canvas,.root:after{display:block;height:100%;position:absolute;width:100%}.canvas{inset:0;opacity:.1}:global(.dark) .canvas,:global([data-theme=dark]) .canvas{opacity:.2}.glow{background:linear-gradient(20deg,#00f8f1,rgba(255,189,30,.25) 16.5%,#fe848f 33%,rgba(254,132,143,.25) 49.5%,#00f8f1 66%,rgba(0,248,241,.5) 85.5%,#ffbd1e);background-position:0 100%;background-size:100% 200%;border-bottom-left-radius:9999px;border-bottom-right-radius:9999px;filter:blur(48px);height:140%;left:50%;mix-blend-mode:plus-darker;opacity:.75;position:absolute;top:-71.5%;transform:translate3d(-50%,0,0);width:30%;z-index:3}:global(.dark) .glow,:global([data-theme=dark]) .glow{background:linear-gradient(20deg,#00f8f1,rgba(255,189,30,.125) 16.5%,#fe848f 33%,rgba(254,132,143,.125) 49.5%,#00f8f1 66%,rgba(0,248,241,.375) 85.5%,#ffbd1e);mix-blend-mode:plus-lighter}.scanlines{background:repeating-linear-gradient(transparent,transparent 1px,#fff 0,#fff 2px);inset:0;mix-blend-mode:overlay;opacity:.5;position:absolute;z-index:7}",".root {\n width: 100%;\n height: 100%;\n position: relative;\n overflow: hidden;\n}\n\n.root:before {\n content: \"\";\n background: radial-gradient(at 50% 55%, #0000 10%, #fff 50%);\n width: 140%;\n height: 140%;\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate3d(-50%, -50%, 0);\n}\n\n:global(.dark) .root:before {\n background: radial-gradient(at 50% 55%, #0000 10%, #000 50%);\n}\n\n:global([data-theme=dark]) .root:before {\n background: radial-gradient(at 50% 55%, #0000 10%, #000 50%);\n}\n\n.root:after {\n content: \"\";\n mix-blend-mode: overlay;\n z-index: 5;\n background: radial-gradient(at 50% 75%, #a900ff 20%, #0000 75%);\n top: 50%;\n left: 50%;\n transform: translate3d(-50%, -50%, 0);\n}\n\n.canvas, .root:after {\n width: 100%;\n height: 100%;\n display: block;\n position: absolute;\n}\n\n.canvas {\n opacity: .1;\n inset: 0;\n}\n\n:is(:global(.dark) .canvas, :global([data-theme=dark]) .canvas) {\n opacity: .2;\n}\n\n.glow {\n filter: blur(48px);\n mix-blend-mode: plus-darker;\n opacity: .75;\n z-index: 3;\n background: linear-gradient(20deg, #00f8f1, #ffbd1e40 16.5%, #fe848f 33%, #fe848f40 49.5%, #00f8f1 66%, #00f8f180 85.5%, #ffbd1e) 0 100% / 100% 200%;\n border-bottom-right-radius: 9999px;\n border-bottom-left-radius: 9999px;\n width: 30%;\n height: 140%;\n position: absolute;\n top: -71.5%;\n left: 50%;\n transform: translate3d(-50%, 0, 0);\n}\n\n:is(:global(.dark) .glow, :global([data-theme=dark]) .glow) {\n mix-blend-mode: plus-lighter;\n background: linear-gradient(20deg, #00f8f1, #ffbd1e20 16.5%, #fe848f 33%, #fe848f20 49.5%, #00f8f1 66%, #00f8f160 85.5%, #ffbd1e);\n}\n\n.scanlines {\n mix-blend-mode: overlay;\n opacity: .5;\n z-index: 7;\n background: repeating-linear-gradient(#0000, #0000 1px, #fff 0 2px);\n position: absolute;\n inset: 0;\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://./../../node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].oneOf[2].use[2]!/home/runner/work/arolariu.ro/arolariu.ro/node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/postcss-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[3]!/home/runner/work/arolariu.ro/arolariu.ro/packages/components/src/components/ui/hole-background.module.css","webpack://./src/components/ui/hole-background.module.css"],"names":[],"mappings":"AAAA;ECCE,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,gBAAgB;AAClB;;ADL+D;ECQ7D,WAAW;EACX,4DAA4D;EAC5D,WAAW;EACX,YAAY;EACZ,cAAc;EACd,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,qCAAqC;AACvC;;ADjB0Q;ECoBxQ,4DAA4D;AAC9D;;ADrB0Q;ECwBxQ,4DAA4D;AAC9D;;ADzBsZ;EC4BpZ,WAAW;EACX,uBAAuB;EACvB,UAAU;EACV,+DAA+D;EAC/D,QAAQ;EACR,SAAS;EACT,qCAAqC;AACvC;;ADnC6kB;ECsC3kB,WAAW;EACX,YAAY;EACZ,cAAc;EACd,kBAAkB;AACpB;;AD1CwpB;EC6CtpB,WAAW;EACX,QAAQ;AACV;;AD/CmrB;ECkDjrB,WAAW;AACb;;ADnDwvB;ECsDtvB,kBAAkB;EAClB,2BAA2B;EAC3B,YAAY;EACZ,UAAU;EACV,oJAAoJ;EACpJ,kCAAkC;EAClC,iCAAiC;EACjC,UAAU;EACV,YAAY;EACZ,kBAAkB;EAClB,WAAW;EACX,SAAS;EACT,kCAAkC;AACpC;;ADnE+qC;ECsE7qC,4BAA4B;EAC5B,iIAAiI;AACnI;;ADxE+5C;EC2E75C,uBAAuB;EACvB,WAAW;EACX,UAAU;EACV,mEAAmE;EACnE,kBAAkB;EAClB,QAAQ;AACV","sourcesContent":[".root{height:100%;overflow:hidden;position:relative;width:100%}.root:before{background:radial-gradient(ellipse at 50% 55%,transparent 10%,#fff 50%);content:\"\";display:block;height:140%;left:50%;position:absolute;top:50%;transform:translate3d(-50%,-50%,0);width:140%}:global(.dark) .root:before,:global([data-theme=dark]) .root:before{background:radial-gradient(ellipse at 50% 55%,transparent 10%,#000 50%)}.root:after{background:radial-gradient(ellipse at 50% 75%,#a900ff 20%,transparent 75%);content:\"\";left:50%;mix-blend-mode:overlay;top:50%;transform:translate3d(-50%,-50%,0);z-index:5}.canvas,.root:after{display:block;height:100%;position:absolute;width:100%}.canvas{inset:0;opacity:.1}:global(.dark) .canvas,:global([data-theme=dark]) .canvas{opacity:.2}.glow{background:linear-gradient(20deg,#00f8f1,rgba(255,189,30,.25) 16.5%,#fe848f 33%,rgba(254,132,143,.25) 49.5%,#00f8f1 66%,rgba(0,248,241,.5) 85.5%,#ffbd1e);background-position:0 100%;background-size:100% 200%;border-bottom-left-radius:9999px;border-bottom-right-radius:9999px;filter:blur(48px);height:140%;left:50%;mix-blend-mode:plus-darker;opacity:.75;position:absolute;top:-71.5%;transform:translate3d(-50%,0,0);width:30%;z-index:3}:global(.dark) .glow,:global([data-theme=dark]) .glow{background:linear-gradient(20deg,#00f8f1,rgba(255,189,30,.125) 16.5%,#fe848f 33%,rgba(254,132,143,.125) 49.5%,#00f8f1 66%,rgba(0,248,241,.375) 85.5%,#ffbd1e);mix-blend-mode:plus-lighter}.scanlines{background:repeating-linear-gradient(transparent,transparent 1px,#fff 0,#fff 2px);inset:0;mix-blend-mode:overlay;opacity:.5;position:absolute;z-index:7}",".root {\n width: 100%;\n height: 100%;\n position: relative;\n overflow: hidden;\n}\n\n.root:before {\n content: \"\";\n background: radial-gradient(at 50% 55%, #0000 10%, #fff 50%);\n width: 140%;\n height: 140%;\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate3d(-50%, -50%, 0);\n}\n\n:global(.dark) .root:before {\n background: radial-gradient(at 50% 55%, #0000 10%, #000 50%);\n}\n\n:global([data-theme=dark]) .root:before {\n background: radial-gradient(at 50% 55%, #0000 10%, #000 50%);\n}\n\n.root:after {\n content: \"\";\n mix-blend-mode: overlay;\n z-index: 5;\n background: radial-gradient(at 50% 75%, #a900ff 20%, #0000 75%);\n top: 50%;\n left: 50%;\n transform: translate3d(-50%, -50%, 0);\n}\n\n.canvas, .root:after {\n width: 100%;\n height: 100%;\n display: block;\n position: absolute;\n}\n\n.canvas {\n opacity: .1;\n inset: 0;\n}\n\n:is(:global(.dark) .canvas, :global([data-theme=dark]) .canvas) {\n opacity: .2;\n}\n\n.glow {\n filter: blur(48px);\n mix-blend-mode: plus-darker;\n opacity: .75;\n z-index: 3;\n background: linear-gradient(20deg, #00f8f1, #ffbd1e40 16.5%, #fe848f 33%, #fe848f40 49.5%, #00f8f1 66%, #00f8f180 85.5%, #ffbd1e) 0 100% / 100% 200%;\n border-bottom-right-radius: 9999px;\n border-bottom-left-radius: 9999px;\n width: 30%;\n height: 140%;\n position: absolute;\n top: -71.5%;\n left: 50%;\n transform: translate3d(-50%, 0, 0);\n}\n\n:is(:global(.dark) .glow, :global([data-theme=dark]) .glow) {\n mix-blend-mode: plus-lighter;\n background: linear-gradient(20deg, #00f8f1, #ffbd1e20 16.5%, #fe848f 33%, #fe848f20 49.5%, #00f8f1 66%, #00f8f160 85.5%, #ffbd1e);\n}\n\n.scanlines {\n mix-blend-mode: overlay;\n opacity: .5;\n z-index: 7;\n background: repeating-linear-gradient(#0000, #0000 1px, #fff 0 2px);\n position: absolute;\n inset: 0;\n}\n"],"sourceRoot":""}
@@ -3,15 +3,15 @@ import { jsx } from "react/jsx-runtime";
3
3
  import { mergeProps } from "@base-ui/react/merge-props";
4
4
  import { PreviewCard } from "@base-ui/react/preview-card";
5
5
  import { useRender } from "@base-ui/react/use-render";
6
- import { forwardRef } from "react";
7
6
  import { cn } from "../../lib/utilities.js";
8
7
  import hover_card_module from "./hover-card.module.js";
8
+ import * as __rspack_external_react from "react";
9
9
  function HoverCard(props) {
10
10
  return /*#__PURE__*/ jsx(PreviewCard.Root, {
11
11
  ...props
12
12
  });
13
13
  }
14
- const HoverCardTrigger = /*#__PURE__*/ forwardRef((props, ref)=>{
14
+ const HoverCardTrigger = /*#__PURE__*/ __rspack_external_react.forwardRef((props, ref)=>{
15
15
  const { className, children, render, ...otherProps } = props;
16
16
  return /*#__PURE__*/ jsx(PreviewCard.Trigger, {
17
17
  ref: ref,
@@ -26,7 +26,7 @@ const HoverCardTrigger = /*#__PURE__*/ forwardRef((props, ref)=>{
26
26
  children: children
27
27
  });
28
28
  });
29
- const HoverCardContent = /*#__PURE__*/ forwardRef((props, ref)=>{
29
+ const HoverCardContent = /*#__PURE__*/ __rspack_external_react.forwardRef((props, ref)=>{
30
30
  const { className, children, render, sideOffset = 4, ...otherProps } = props;
31
31
  return /*#__PURE__*/ jsx(PreviewCard.Portal, {
32
32
  children: /*#__PURE__*/ jsx(PreviewCard.Positioner, {
@@ -1 +1 @@
1
- {"version":3,"file":"components/ui/hover-card.js","sources":["../../../src/components/ui/hover-card.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {mergeProps} from \"@base-ui/react/merge-props\";\r\nimport {PreviewCard as BasePreviewCard} from \"@base-ui/react/preview-card\";\r\nimport {useRender} from \"@base-ui/react/use-render\";\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./hover-card.module.css\";\r\n\r\ninterface HoverCardProps extends React.ComponentPropsWithRef<typeof BasePreviewCard.Root> {}\r\ninterface HoverCardTriggerProps extends Omit<React.ComponentPropsWithRef<typeof BasePreviewCard.Trigger>, \"className\"> {\r\n /**\r\n * Applies additional CSS classes to the component root element.\r\n * @default undefined\r\n */\r\n className?: string;\r\n}\r\ninterface HoverCardContentProps extends Omit<React.ComponentPropsWithRef<typeof BasePreviewCard.Positioner>, \"className\"> {\r\n /**\r\n * Applies additional CSS classes to the component root element.\r\n * @default undefined\r\n */\r\n className?: string;\r\n /**\r\n * Offsets the floating content from its anchor in pixels.\r\n * @default 4\r\n */\r\n sideOffset?: number;\r\n}\r\n\r\n/**\r\n * Coordinates hover card state and accessibility behavior.\r\n *\r\n * @remarks\r\n * - Delegates structure and state to the underlying Base UI primitive\r\n * - Built on {@link https://base-ui.com/react/components/preview-card | Base UI Preview Card}\r\n * - Preserves the underlying primitive API for advanced composition\r\n *\r\n * @example\r\n * ```tsx\r\n * <HoverCard>Content</HoverCard>\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/preview-card | Base UI Documentation}\r\n */\r\nfunction HoverCard(props: Readonly<HoverCard.Props>): React.ReactElement {\r\n return <BasePreviewCard.Root {...props} />;\r\n}\r\n\r\n/**\r\n * Renders the hover card trigger.\r\n *\r\n * @remarks\r\n * - Renders a `<a>` element by default\r\n * - Built on {@link https://base-ui.com/react/components/preview-card | Base UI Preview Card}\r\n * - Supports the `render` prop for element composition\r\n *\r\n * @example\r\n * ```tsx\r\n * <HoverCardTrigger>Content</HoverCardTrigger>\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/preview-card | Base UI Documentation}\r\n */\r\nconst HoverCardTrigger = React.forwardRef<HTMLAnchorElement, HoverCardTrigger.Props>(\r\n (props: Readonly<HoverCardTrigger.Props>, ref): React.ReactElement => {\r\n const {className, children, render, ...otherProps} = props;\r\n\r\n return (\r\n <BasePreviewCard.Trigger\r\n ref={ref}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"a\",\r\n render: render as never,\r\n props: mergeProps({className}, {}),\r\n })}>\r\n {children}\r\n </BasePreviewCard.Trigger>\r\n );\r\n },\r\n);\r\n\r\n/**\r\n * Renders the hover card content.\r\n *\r\n * @remarks\r\n * - Renders a `<div>` element by default\r\n * - Built on {@link https://base-ui.com/react/components/preview-card | Base UI Preview Card}\r\n * - Supports the `render` prop for element composition\r\n *\r\n * @example\r\n * ```tsx\r\n * <HoverCardContent>Content</HoverCardContent>\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/preview-card | Base UI Documentation}\r\n */\r\nconst HoverCardContent = React.forwardRef<React.ComponentRef<typeof BasePreviewCard.Popup>, HoverCardContent.Props>(\r\n (props: Readonly<HoverCardContent.Props>, ref): React.ReactElement => {\r\n const {className, children, render, sideOffset = 4, ...otherProps} = props;\r\n\r\n return (\r\n <BasePreviewCard.Portal>\r\n <BasePreviewCard.Positioner\r\n sideOffset={sideOffset}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"div\",\r\n props: mergeProps({className: styles.positioner}, {}),\r\n })}>\r\n <BasePreviewCard.Popup\r\n ref={ref}\r\n render={useRender({\r\n defaultTagName: \"div\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.popup, className)}, {}),\r\n })}>\r\n {children}\r\n </BasePreviewCard.Popup>\r\n </BasePreviewCard.Positioner>\r\n </BasePreviewCard.Portal>\r\n );\r\n },\r\n);\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace HoverCard {\r\n export type Props = HoverCardProps;\r\n export type State = BasePreviewCard.Root.State;\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace HoverCardTrigger {\r\n export type Props = HoverCardTriggerProps;\r\n export type State = BasePreviewCard.Trigger.State;\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace HoverCardContent {\r\n export type Props = HoverCardContentProps;\r\n export type State = BasePreviewCard.Popup.State;\r\n}\r\n\r\nHoverCard.displayName = \"HoverCard\";\r\nHoverCardTrigger.displayName = \"HoverCardTrigger\";\r\nHoverCardContent.displayName = \"HoverCardContent\";\r\n\r\nexport {HoverCard, HoverCardContent, HoverCardTrigger};\r\n"],"names":["HoverCard","props","BasePreviewCard","HoverCardTrigger","React","ref","className","children","render","otherProps","useRender","mergeProps","HoverCardContent","sideOffset","styles","cn"],"mappings":";;;;;;;;AA8CA,SAASA,UAAUC,KAAgC;IACjD,OAAO,WAAP,GAAO,IAACC,YAAAA,IAAoB;QAAE,GAAGD,KAAK;;AACxC;AAiBA,MAAME,mBAAmB,WAAHA,GAAGC,WACvB,CAACH,OAAyCI;IACxC,MAAM,EAACC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAE,GAAGC,YAAW,GAAGR;IAErD,OAAO,WAAP,GACE,IAACC,YAAAA,OAAuB;QACtB,KAAKG;QACJ,GAAGI,UAAU;QACd,QAAQC,UAAU;YAChB,gBAAgB;YAChB,QAAQF;YACR,OAAOG,WAAW;gBAACL;YAAS,GAAG,CAAC;QAClC;kBACCC;;AAGP;AAkBF,MAAMK,mBAAmB,WAAHA,GAAGR,WACvB,CAACH,OAAyCI;IACxC,MAAM,EAACC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAEK,aAAa,CAAC,EAAE,GAAGJ,YAAW,GAAGR;IAErE,OAAO,WAAP,GACE,IAACC,YAAAA,MAAsB;kBACrB,kBAACA,YAAAA,UAA0B;YACzB,YAAYW;YACX,GAAGJ,UAAU;YACd,QAAQC,UAAU;gBAChB,gBAAgB;gBAChB,OAAOC,WAAW;oBAAC,WAAWG,kBAAAA,UAAiB;gBAAA,GAAG,CAAC;YACrD;sBACA,kBAACZ,YAAAA,KAAqB;gBACpB,KAAKG;gBACL,QAAQK,UAAU;oBAChB,gBAAgB;oBAChB,QAAQF;oBACR,OAAOG,WAAW;wBAAC,WAAWI,GAAGD,kBAAAA,KAAY,EAAER;oBAAU,GAAG,CAAC;gBAC/D;0BACCC;;;;AAKX;AAqBFP,UAAU,WAAW,GAAG;AACxBG,iBAAiB,WAAW,GAAG;AAC/BS,iBAAiB,WAAW,GAAG"}
1
+ {"version":3,"file":"components/ui/hover-card.js","sources":["../../../src/components/ui/hover-card.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {mergeProps} from \"@base-ui/react/merge-props\";\r\nimport {PreviewCard as BasePreviewCard} from \"@base-ui/react/preview-card\";\r\nimport {useRender} from \"@base-ui/react/use-render\";\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./hover-card.module.css\";\r\n\r\ninterface HoverCardProps extends React.ComponentPropsWithRef<typeof BasePreviewCard.Root> {}\r\ninterface HoverCardTriggerProps extends Omit<React.ComponentPropsWithRef<typeof BasePreviewCard.Trigger>, \"className\"> {\r\n /**\r\n * Applies additional CSS classes to the component root element.\r\n * @default undefined\r\n */\r\n className?: string;\r\n}\r\ninterface HoverCardContentProps extends Omit<React.ComponentPropsWithRef<typeof BasePreviewCard.Positioner>, \"className\"> {\r\n /**\r\n * Applies additional CSS classes to the component root element.\r\n * @default undefined\r\n */\r\n className?: string;\r\n /**\r\n * Offsets the floating content from its anchor in pixels.\r\n * @default 4\r\n */\r\n sideOffset?: number;\r\n}\r\n\r\n/**\r\n * Coordinates hover card state and accessibility behavior.\r\n *\r\n * @remarks\r\n * - Delegates structure and state to the underlying Base UI primitive\r\n * - Built on {@link https://base-ui.com/react/components/preview-card | Base UI Preview Card}\r\n * - Preserves the underlying primitive API for advanced composition\r\n *\r\n * @example\r\n * ```tsx\r\n * <HoverCard>Content</HoverCard>\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/preview-card | Base UI Documentation}\r\n */\r\nfunction HoverCard(props: Readonly<HoverCard.Props>): React.ReactElement {\r\n return <BasePreviewCard.Root {...props} />;\r\n}\r\n\r\n/**\r\n * Renders the hover card trigger.\r\n *\r\n * @remarks\r\n * - Renders a `<a>` element by default\r\n * - Built on {@link https://base-ui.com/react/components/preview-card | Base UI Preview Card}\r\n * - Supports the `render` prop for element composition\r\n *\r\n * @example\r\n * ```tsx\r\n * <HoverCardTrigger>Content</HoverCardTrigger>\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/preview-card | Base UI Documentation}\r\n */\r\nconst HoverCardTrigger = React.forwardRef<HTMLAnchorElement, HoverCardTrigger.Props>(\r\n (props: Readonly<HoverCardTrigger.Props>, ref): React.ReactElement => {\r\n const {className, children, render, ...otherProps} = props;\r\n\r\n return (\r\n <BasePreviewCard.Trigger\r\n ref={ref}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"a\",\r\n render: render as never,\r\n props: mergeProps({className}, {}),\r\n })}>\r\n {children}\r\n </BasePreviewCard.Trigger>\r\n );\r\n },\r\n);\r\n\r\n/**\r\n * Renders the hover card content.\r\n *\r\n * @remarks\r\n * - Renders a `<div>` element by default\r\n * - Built on {@link https://base-ui.com/react/components/preview-card | Base UI Preview Card}\r\n * - Supports the `render` prop for element composition\r\n *\r\n * @example\r\n * ```tsx\r\n * <HoverCardContent>Content</HoverCardContent>\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/preview-card | Base UI Documentation}\r\n */\r\nconst HoverCardContent = React.forwardRef<React.ComponentRef<typeof BasePreviewCard.Popup>, HoverCardContent.Props>(\r\n (props: Readonly<HoverCardContent.Props>, ref): React.ReactElement => {\r\n const {className, children, render, sideOffset = 4, ...otherProps} = props;\r\n\r\n return (\r\n <BasePreviewCard.Portal>\r\n <BasePreviewCard.Positioner\r\n sideOffset={sideOffset}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"div\",\r\n props: mergeProps({className: styles.positioner}, {}),\r\n })}>\r\n <BasePreviewCard.Popup\r\n ref={ref}\r\n render={useRender({\r\n defaultTagName: \"div\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.popup, className)}, {}),\r\n })}>\r\n {children}\r\n </BasePreviewCard.Popup>\r\n </BasePreviewCard.Positioner>\r\n </BasePreviewCard.Portal>\r\n );\r\n },\r\n);\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace HoverCard {\r\n export type Props = HoverCardProps;\r\n export type State = BasePreviewCard.Root.State;\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace HoverCardTrigger {\r\n export type Props = HoverCardTriggerProps;\r\n export type State = BasePreviewCard.Trigger.State;\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace HoverCardContent {\r\n export type Props = HoverCardContentProps;\r\n export type State = BasePreviewCard.Popup.State;\r\n}\r\n\r\nHoverCard.displayName = \"HoverCard\";\r\nHoverCardTrigger.displayName = \"HoverCardTrigger\";\r\nHoverCardContent.displayName = \"HoverCardContent\";\r\n\r\nexport {HoverCard, HoverCardContent, HoverCardTrigger};\r\n"],"names":["HoverCard","props","BasePreviewCard","HoverCardTrigger","React","ref","className","children","render","otherProps","useRender","mergeProps","HoverCardContent","sideOffset","styles","cn"],"mappings":";;;;;;;;AA8CA,SAASA,UAAUC,KAAgC;IACjD,OAAO,WAAP,GAAO,IAACC,YAAAA,IAAoB;QAAE,GAAGD,KAAK;;AACxC;AAiBA,MAAME,mBAAmB,WAAHA,GAAGC,wBAAAA,UAAgB,CACvC,CAACH,OAAyCI;IACxC,MAAM,EAACC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAE,GAAGC,YAAW,GAAGR;IAErD,OAAO,WAAP,GACE,IAACC,YAAAA,OAAuB;QACtB,KAAKG;QACJ,GAAGI,UAAU;QACd,QAAQC,UAAU;YAChB,gBAAgB;YAChB,QAAQF;YACR,OAAOG,WAAW;gBAACL;YAAS,GAAG,CAAC;QAClC;kBACCC;;AAGP;AAkBF,MAAMK,mBAAmB,WAAHA,GAAGR,wBAAAA,UAAgB,CACvC,CAACH,OAAyCI;IACxC,MAAM,EAACC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAEK,aAAa,CAAC,EAAE,GAAGJ,YAAW,GAAGR;IAErE,OAAO,WAAP,GACE,IAACC,YAAAA,MAAsB;kBACrB,kBAACA,YAAAA,UAA0B;YACzB,YAAYW;YACX,GAAGJ,UAAU;YACd,QAAQC,UAAU;gBAChB,gBAAgB;gBAChB,OAAOC,WAAW;oBAAC,WAAWG,kBAAAA,UAAiB;gBAAA,GAAG,CAAC;YACrD;sBACA,kBAACZ,YAAAA,KAAqB;gBACpB,KAAKG;gBACL,QAAQK,UAAU;oBAChB,gBAAgB;oBAChB,QAAQF;oBACR,OAAOG,WAAW;wBAAC,WAAWI,GAAGD,kBAAAA,KAAY,EAAER;oBAAU,GAAG,CAAC;gBAC/D;0BACCC;;;;AAKX;AAqBFP,UAAU,WAAW,GAAG;AACxBG,iBAAiB,WAAW,GAAG;AAC/BS,iBAAiB,WAAW,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://./home/runner/work/arolariu.ro/arolariu.ro/packages/components/src/components/ui/hover-card.module.css","webpack://./src/components/ui/hover-card.module.css"],"names":[],"mappings":"AADA;ECEE,WAAW;AACb;;AAEA;EACE,mCAAmC;EACnC,kCAAkC;EAClC,kCAAkC;EAClC,mCAAmC;EACnC,0BAA0B;EAC1B,qFAAqF;EACrF,aAAa;EACb,YAAY;EACZ,uCAAuC;AACzC;;AAEA;EACE,UAAU;EACV,qBAAqB;AACvB","sourcesContent":[".positioner{z-index:50}.popup{background-color:var(--ac-popover);border:1px solid var(--ac-border);border-radius:var(--ac-radius-md);box-shadow:0 16px 40px -16px rgba(0,0,0,.3);color:var(--ac-popover-foreground);outline:none;padding:var(--ac-space-4);transition:opacity var(--ac-transition-normal),transform var(--ac-transition-normal);width:16rem}.popup[data-ending-style],.popup[data-starting-style]{opacity:0;transform:scale(.96)}",".positioner {\n z-index: 50;\n}\n\n.popup {\n background-color: var(--ac-popover);\n border: 1px solid var(--ac-border);\n border-radius: var(--ac-radius-md);\n color: var(--ac-popover-foreground);\n padding: var(--ac-space-4);\n transition: opacity var(--ac-transition-normal),transform var(--ac-transition-normal);\n outline: none;\n width: 16rem;\n box-shadow: 0 16px 40px -16px #0000004d;\n}\n\n.popup[data-ending-style], .popup[data-starting-style] {\n opacity: 0;\n transform: scale(.96);\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://./../../node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].oneOf[2].use[2]!/home/runner/work/arolariu.ro/arolariu.ro/node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/postcss-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[3]!/home/runner/work/arolariu.ro/arolariu.ro/packages/components/src/components/ui/hover-card.module.css","webpack://./src/components/ui/hover-card.module.css"],"names":[],"mappings":"AAAA;ECCE,WAAW;AACb;;ADFuB;ECKrB,mCAAmC;EACnC,kCAAkC;EAClC,kCAAkC;EAClC,mCAAmC;EACnC,0BAA0B;EAC1B,qFAAqF;EACrF,aAAa;EACb,YAAY;EACZ,uCAAuC;AACzC;;ADd4V;ECiB1V,UAAU;EACV,qBAAqB;AACvB","sourcesContent":[".positioner{z-index:50}.popup{background-color:var(--ac-popover);border:1px solid var(--ac-border);border-radius:var(--ac-radius-md);box-shadow:0 16px 40px -16px rgba(0,0,0,.3);color:var(--ac-popover-foreground);outline:none;padding:var(--ac-space-4);transition:opacity var(--ac-transition-normal),transform var(--ac-transition-normal);width:16rem}.popup[data-ending-style],.popup[data-starting-style]{opacity:0;transform:scale(.96)}",".positioner {\n z-index: 50;\n}\n\n.popup {\n background-color: var(--ac-popover);\n border: 1px solid var(--ac-border);\n border-radius: var(--ac-radius-md);\n color: var(--ac-popover-foreground);\n padding: var(--ac-space-4);\n transition: opacity var(--ac-transition-normal),transform var(--ac-transition-normal);\n outline: none;\n width: 16rem;\n box-shadow: 0 16px 40px -16px #0000004d;\n}\n\n.popup[data-ending-style], .popup[data-starting-style] {\n opacity: 0;\n transform: scale(.96);\n}\n"],"sourceRoot":""}
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
- import { forwardRef } from "react";
4
3
  import { Button } from "./button.js";
5
4
  import { Input } from "./input.js";
6
5
  import { Textarea } from "./textarea.js";
7
6
  import { cn } from "../../lib/utilities.js";
8
7
  import input_group_module from "./input-group.module.js";
8
+ import * as __rspack_external_react from "react";
9
9
  function getAddonAlignClass(align) {
10
10
  switch(align){
11
11
  case "block-end":
@@ -30,14 +30,14 @@ function getButtonSizeClass(size) {
30
30
  return input_group_module.buttonXs;
31
31
  }
32
32
  }
33
- const InputGroup = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
33
+ const InputGroup = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
34
34
  ref: ref,
35
35
  role: "group",
36
36
  "data-slot": "input-group",
37
37
  className: cn(input_group_module.group, className),
38
38
  ...props
39
39
  }));
40
- const InputGroupAddon = /*#__PURE__*/ forwardRef(({ className, align = "inline-start", onClick, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
40
+ const InputGroupAddon = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, align = "inline-start", onClick, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
41
41
  ref: ref,
42
42
  role: "group",
43
43
  "data-slot": "input-group-addon",
@@ -51,7 +51,7 @@ const InputGroupAddon = /*#__PURE__*/ forwardRef(({ className, align = "inline-s
51
51
  },
52
52
  ...props
53
53
  }));
54
- const InputGroupButton = /*#__PURE__*/ forwardRef(({ className, type = "button", variant = "ghost", size = "xs", ...props }, ref)=>/*#__PURE__*/ jsx(Button, {
54
+ const InputGroupButton = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, type = "button", variant = "ghost", size = "xs", ...props }, ref)=>/*#__PURE__*/ jsx(Button, {
55
55
  ref: ref,
56
56
  type: type,
57
57
  "data-size": size,
@@ -59,18 +59,18 @@ const InputGroupButton = /*#__PURE__*/ forwardRef(({ className, type = "button",
59
59
  className: cn(input_group_module.button, getButtonSizeClass(size), className),
60
60
  ...props
61
61
  }));
62
- const InputGroupText = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("span", {
62
+ const InputGroupText = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("span", {
63
63
  ref: ref,
64
64
  className: cn(input_group_module.text, className),
65
65
  ...props
66
66
  }));
67
- const InputGroupInput = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx(Input, {
67
+ const InputGroupInput = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx(Input, {
68
68
  ref: ref,
69
69
  "data-slot": "input-group-control",
70
70
  className: cn(input_group_module.input, className),
71
71
  ...props
72
72
  }));
73
- const InputGroupTextarea = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx(Textarea, {
73
+ const InputGroupTextarea = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx(Textarea, {
74
74
  ref: ref,
75
75
  "data-slot": "input-group-control",
76
76
  className: cn(input_group_module.textarea, className),
@@ -1 +1 @@
1
- {"version":3,"file":"components/ui/input-group.js","sources":["../../../src/components/ui/input-group.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\n\r\nimport {Button} from \"@/components/ui/button\";\r\nimport {Input} from \"@/components/ui/input\";\r\nimport {Textarea} from \"@/components/ui/textarea\";\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./input-group.module.css\";\r\n\r\n/** Supported alignment options for {@link InputGroupAddon}. */\r\nexport type InputGroupAddonAlign = \"inline-start\" | \"inline-end\" | \"block-start\" | \"block-end\";\r\n\r\n/** Supported compact button sizes for {@link InputGroupButton}. */\r\nexport type InputGroupButtonSize = \"xs\" | \"sm\" | \"icon-xs\" | \"icon-sm\";\r\n\r\n/**\r\n * Props for the {@link InputGroup} component.\r\n */\r\nexport type InputGroupProps = React.ComponentPropsWithoutRef<\"div\">;\r\n\r\n/**\r\n * Props for the {@link InputGroupAddon} component.\r\n */\r\nexport interface InputGroupAddonProps extends React.ComponentPropsWithoutRef<\"div\"> {\r\n /** Position of the addon relative to the input control. @default \"inline-start\" */\r\n align?: InputGroupAddonAlign;\r\n}\r\n\r\n/**\r\n * Props for the {@link InputGroupButton} component.\r\n */\r\nexport interface InputGroupButtonProps extends Omit<React.ComponentPropsWithoutRef<typeof Button>, \"size\"> {\r\n /** Compact button size used within the group chrome. @default \"xs\" */\r\n size?: InputGroupButtonSize;\r\n}\r\n\r\n/**\r\n * Props for the {@link InputGroupText} component.\r\n */\r\nexport type InputGroupTextProps = React.ComponentPropsWithoutRef<\"span\">;\r\n\r\n/**\r\n * Props for the {@link InputGroupInput} component.\r\n */\r\nexport type InputGroupInputProps = React.ComponentPropsWithoutRef<\"input\">;\r\n\r\n/**\r\n * Props for the {@link InputGroupTextarea} component.\r\n */\r\nexport type InputGroupTextareaProps = React.ComponentPropsWithoutRef<\"textarea\">;\r\n\r\nfunction getAddonAlignClass(align: InputGroupAddonAlign): string {\r\n switch (align) {\r\n case \"block-end\": {\r\n return styles.blockEnd;\r\n }\r\n case \"block-start\": {\r\n return styles.blockStart;\r\n }\r\n case \"inline-end\": {\r\n return styles.inlineEnd;\r\n }\r\n default: {\r\n return styles.inlineStart;\r\n }\r\n }\r\n}\r\n\r\nfunction getButtonSizeClass(size: InputGroupButtonSize): string {\r\n switch (size) {\r\n case \"icon-sm\": {\r\n return styles.buttonIconSm;\r\n }\r\n case \"icon-xs\": {\r\n return styles.buttonIconXs;\r\n }\r\n case \"sm\": {\r\n return styles.buttonSm;\r\n }\r\n default: {\r\n return styles.buttonXs;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Creates a composable shell for grouped text inputs and controls.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputGroup>\r\n * <InputGroupInput />\r\n * </InputGroup>\r\n * ```\r\n *\r\n * @see {@link InputGroupProps} for available props\r\n */\r\nconst InputGroup = React.forwardRef<HTMLDivElement, InputGroupProps>(\r\n ({className, ...props}: Readonly<InputGroupProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n role='group'\r\n data-slot='input-group'\r\n className={cn(styles.group, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Renders supplementary content around an input group control.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputGroupAddon align='inline-end'>.com</InputGroupAddon>\r\n * ```\r\n *\r\n * @see {@link InputGroupAddonProps} for available props\r\n */\r\nconst InputGroupAddon = React.forwardRef<HTMLDivElement, InputGroupAddonProps>(\r\n ({className, align = \"inline-start\", onClick, ...props}: Readonly<InputGroupAddonProps>, ref): React.JSX.Element => (\r\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions -- clicking the addon focuses the related control.\r\n <div\r\n ref={ref}\r\n role='group'\r\n data-slot='input-group-addon'\r\n data-align={align}\r\n className={cn(styles.addon, getAddonAlignClass(align), className)}\r\n onClick={(event): void => {\r\n if ((event.target as HTMLElement).closest(\"button\")) {\r\n onClick?.(event);\r\n return;\r\n }\r\n\r\n onClick?.(event);\r\n\r\n if (event.defaultPrevented) {\r\n return;\r\n }\r\n\r\n event.currentTarget.parentElement?.querySelector<HTMLInputElement | HTMLTextAreaElement>(\"input, textarea\")?.focus();\r\n }}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Renders a compact button matched to input group dimensions.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a wrapped `Button` component\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputGroupButton size='sm'>Search</InputGroupButton>\r\n * ```\r\n *\r\n * @see {@link InputGroupButtonProps} for available props\r\n */\r\nconst InputGroupButton = React.forwardRef<HTMLButtonElement, InputGroupButtonProps>(\r\n ({className, type = \"button\", variant = \"ghost\", size = \"xs\", ...props}: Readonly<InputGroupButtonProps>, ref): React.JSX.Element => (\r\n <Button\r\n ref={ref}\r\n type={type}\r\n data-size={size}\r\n variant={variant}\r\n className={cn(styles.button, getButtonSizeClass(size), className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Displays static inline text within an input group.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<span>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputGroupText>@</InputGroupText>\r\n * ```\r\n *\r\n * @see {@link InputGroupTextProps} for available props\r\n */\r\nconst InputGroupText = React.forwardRef<HTMLSpanElement, InputGroupTextProps>(\r\n ({className, ...props}: Readonly<InputGroupTextProps>, ref): React.JSX.Element => (\r\n <span\r\n ref={ref}\r\n className={cn(styles.text, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Renders the primary input control inside an input group.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a wrapped `Input` component\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputGroupInput placeholder='Search...' />\r\n * ```\r\n *\r\n * @see {@link InputGroupInputProps} for available props\r\n */\r\nconst InputGroupInput = React.forwardRef<HTMLInputElement, InputGroupInputProps>(\r\n ({className, ...props}: Readonly<InputGroupInputProps>, ref): React.JSX.Element => (\r\n <Input\r\n ref={ref}\r\n data-slot='input-group-control'\r\n className={cn(styles.input, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Renders a textarea control inside an input group.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a wrapped `Textarea` component\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputGroupTextarea rows={4} />\r\n * ```\r\n *\r\n * @see {@link InputGroupTextareaProps} for available props\r\n */\r\nconst InputGroupTextarea = React.forwardRef<HTMLTextAreaElement, InputGroupTextareaProps>(\r\n ({className, ...props}: Readonly<InputGroupTextareaProps>, ref): React.JSX.Element => (\r\n <Textarea\r\n ref={ref}\r\n data-slot='input-group-control'\r\n className={cn(styles.textarea, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\nInputGroup.displayName = \"InputGroup\";\r\nInputGroupAddon.displayName = \"InputGroupAddon\";\r\nInputGroupButton.displayName = \"InputGroupButton\";\r\nInputGroupText.displayName = \"InputGroupText\";\r\nInputGroupInput.displayName = \"InputGroupInput\";\r\nInputGroupTextarea.displayName = \"InputGroupTextarea\";\r\n\r\nexport {InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea};\r\n"],"names":["getAddonAlignClass","align","styles","getButtonSizeClass","size","InputGroup","React","className","props","ref","cn","InputGroupAddon","onClick","event","InputGroupButton","type","variant","Button","InputGroupText","InputGroupInput","Input","InputGroupTextarea","Textarea"],"mappings":";;;;;;;;AAoDA,SAASA,mBAAmBC,KAA2B;IACrD,OAAQA;QACN,KAAK;YACH,OAAOC,mBAAAA,QAAe;QAExB,KAAK;YACH,OAAOA,mBAAAA,UAAiB;QAE1B,KAAK;YACH,OAAOA,mBAAAA,SAAgB;QAEzB;YACE,OAAOA,mBAAAA,WAAkB;IAE7B;AACF;AAEA,SAASC,mBAAmBC,IAA0B;IACpD,OAAQA;QACN,KAAK;YACH,OAAOF,mBAAAA,YAAmB;QAE5B,KAAK;YACH,OAAOA,mBAAAA,YAAmB;QAE5B,KAAK;YACH,OAAOA,mBAAAA,QAAe;QAExB;YACE,OAAOA,mBAAAA,QAAe;IAE1B;AACF;AAmBA,MAAMG,aAAa,WAAHA,GAAGC,WACjB,CAAC,EAACC,SAAS,EAAE,GAAGC,OAAiC,EAAEC,MAAAA,WAAAA,GACjD,IAAC;QACC,KAAKA;QACL,MAAK;QACL,aAAU;QACV,WAAWC,GAAGR,mBAAAA,KAAY,EAAEK;QAC3B,GAAGC,KAAK;;AAoBf,MAAMG,kBAAkB,WAAHA,GAAGL,WACtB,CAAC,EAACC,SAAS,EAAEN,QAAQ,cAAc,EAAEW,OAAO,EAAE,GAAGJ,OAAsC,EAAEC,M,cAEvF,IAAC;QACC,KAAKA;QACL,MAAK;QACL,aAAU;QACV,cAAYR;QACZ,WAAWS,GAAGR,mBAAAA,KAAY,EAAEF,mBAAmBC,QAAQM;QACvD,SAAS,CAACM;YACR,IAAKA,MAAM,MAAM,CAAiB,OAAO,CAAC,WAAW,YACnDD,UAAUC;YAIZD,UAAUC;YAEV,IAAIA,MAAM,gBAAgB,EACxB;YAGFA,MAAM,aAAa,CAAC,aAAa,EAAE,cAAsD,oBAAoB;QAC/G;QACC,GAAGL,KAAK;;AAoBf,MAAMM,mBAAmB,WAAHA,GAAGR,WACvB,CAAC,EAACC,SAAS,EAAEQ,OAAO,QAAQ,EAAEC,UAAU,OAAO,EAAEZ,OAAO,IAAI,EAAE,GAAGI,OAAuC,EAAEC,MAAAA,WAAAA,GACxG,IAACQ,QAAMA;QACL,KAAKR;QACL,MAAMM;QACN,aAAWX;QACX,SAASY;QACT,WAAWN,GAAGR,mBAAAA,MAAa,EAAEC,mBAAmBC,OAAOG;QACtD,GAAGC,KAAK;;AAoBf,MAAMU,iBAAiB,WAAHA,GAAGZ,WACrB,CAAC,EAACC,SAAS,EAAE,GAAGC,OAAqC,EAAEC,MAAAA,WAAAA,GACrD,IAAC;QACC,KAAKA;QACL,WAAWC,GAAGR,mBAAAA,IAAW,EAAEK;QAC1B,GAAGC,KAAK;;AAoBf,MAAMW,kBAAkB,WAAHA,GAAGb,WACtB,CAAC,EAACC,SAAS,EAAE,GAAGC,OAAsC,EAAEC,MAAAA,WAAAA,GACtD,IAACW,OAAKA;QACJ,KAAKX;QACL,aAAU;QACV,WAAWC,GAAGR,mBAAAA,KAAY,EAAEK;QAC3B,GAAGC,KAAK;;AAoBf,MAAMa,qBAAqB,WAAHA,GAAGf,WACzB,CAAC,EAACC,SAAS,EAAE,GAAGC,OAAyC,EAAEC,MAAAA,WAAAA,GACzD,IAACa,UAAQA;QACP,KAAKb;QACL,aAAU;QACV,WAAWC,GAAGR,mBAAAA,QAAe,EAAEK;QAC9B,GAAGC,KAAK;;AAKfH,WAAW,WAAW,GAAG;AACzBM,gBAAgB,WAAW,GAAG;AAC9BG,iBAAiB,WAAW,GAAG;AAC/BI,eAAe,WAAW,GAAG;AAC7BC,gBAAgB,WAAW,GAAG;AAC9BE,mBAAmB,WAAW,GAAG"}
1
+ {"version":3,"file":"components/ui/input-group.js","sources":["../../../src/components/ui/input-group.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\n\r\nimport {Button} from \"@/components/ui/button\";\r\nimport {Input} from \"@/components/ui/input\";\r\nimport {Textarea} from \"@/components/ui/textarea\";\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./input-group.module.css\";\r\n\r\n/** Supported alignment options for {@link InputGroupAddon}. */\r\nexport type InputGroupAddonAlign = \"inline-start\" | \"inline-end\" | \"block-start\" | \"block-end\";\r\n\r\n/** Supported compact button sizes for {@link InputGroupButton}. */\r\nexport type InputGroupButtonSize = \"xs\" | \"sm\" | \"icon-xs\" | \"icon-sm\";\r\n\r\n/**\r\n * Props for the {@link InputGroup} component.\r\n */\r\nexport type InputGroupProps = React.ComponentPropsWithoutRef<\"div\">;\r\n\r\n/**\r\n * Props for the {@link InputGroupAddon} component.\r\n */\r\nexport interface InputGroupAddonProps extends React.ComponentPropsWithoutRef<\"div\"> {\r\n /** Position of the addon relative to the input control. @default \"inline-start\" */\r\n align?: InputGroupAddonAlign;\r\n}\r\n\r\n/**\r\n * Props for the {@link InputGroupButton} component.\r\n */\r\nexport interface InputGroupButtonProps extends Omit<React.ComponentPropsWithoutRef<typeof Button>, \"size\"> {\r\n /** Compact button size used within the group chrome. @default \"xs\" */\r\n size?: InputGroupButtonSize;\r\n}\r\n\r\n/**\r\n * Props for the {@link InputGroupText} component.\r\n */\r\nexport type InputGroupTextProps = React.ComponentPropsWithoutRef<\"span\">;\r\n\r\n/**\r\n * Props for the {@link InputGroupInput} component.\r\n */\r\nexport type InputGroupInputProps = React.ComponentPropsWithoutRef<\"input\">;\r\n\r\n/**\r\n * Props for the {@link InputGroupTextarea} component.\r\n */\r\nexport type InputGroupTextareaProps = React.ComponentPropsWithoutRef<\"textarea\">;\r\n\r\nfunction getAddonAlignClass(align: InputGroupAddonAlign): string {\r\n switch (align) {\r\n case \"block-end\": {\r\n return styles.blockEnd;\r\n }\r\n case \"block-start\": {\r\n return styles.blockStart;\r\n }\r\n case \"inline-end\": {\r\n return styles.inlineEnd;\r\n }\r\n default: {\r\n return styles.inlineStart;\r\n }\r\n }\r\n}\r\n\r\nfunction getButtonSizeClass(size: InputGroupButtonSize): string {\r\n switch (size) {\r\n case \"icon-sm\": {\r\n return styles.buttonIconSm;\r\n }\r\n case \"icon-xs\": {\r\n return styles.buttonIconXs;\r\n }\r\n case \"sm\": {\r\n return styles.buttonSm;\r\n }\r\n default: {\r\n return styles.buttonXs;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Creates a composable shell for grouped text inputs and controls.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputGroup>\r\n * <InputGroupInput />\r\n * </InputGroup>\r\n * ```\r\n *\r\n * @see {@link InputGroupProps} for available props\r\n */\r\nconst InputGroup = React.forwardRef<HTMLDivElement, InputGroupProps>(\r\n ({className, ...props}: Readonly<InputGroupProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n role='group'\r\n data-slot='input-group'\r\n className={cn(styles.group, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Renders supplementary content around an input group control.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputGroupAddon align='inline-end'>.com</InputGroupAddon>\r\n * ```\r\n *\r\n * @see {@link InputGroupAddonProps} for available props\r\n */\r\nconst InputGroupAddon = React.forwardRef<HTMLDivElement, InputGroupAddonProps>(\r\n ({className, align = \"inline-start\", onClick, ...props}: Readonly<InputGroupAddonProps>, ref): React.JSX.Element => (\r\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions -- clicking the addon focuses the related control.\r\n <div\r\n ref={ref}\r\n role='group'\r\n data-slot='input-group-addon'\r\n data-align={align}\r\n className={cn(styles.addon, getAddonAlignClass(align), className)}\r\n onClick={(event): void => {\r\n if ((event.target as HTMLElement).closest(\"button\")) {\r\n onClick?.(event);\r\n return;\r\n }\r\n\r\n onClick?.(event);\r\n\r\n if (event.defaultPrevented) {\r\n return;\r\n }\r\n\r\n event.currentTarget.parentElement?.querySelector<HTMLInputElement | HTMLTextAreaElement>(\"input, textarea\")?.focus();\r\n }}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Renders a compact button matched to input group dimensions.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a wrapped `Button` component\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputGroupButton size='sm'>Search</InputGroupButton>\r\n * ```\r\n *\r\n * @see {@link InputGroupButtonProps} for available props\r\n */\r\nconst InputGroupButton = React.forwardRef<HTMLButtonElement, InputGroupButtonProps>(\r\n ({className, type = \"button\", variant = \"ghost\", size = \"xs\", ...props}: Readonly<InputGroupButtonProps>, ref): React.JSX.Element => (\r\n <Button\r\n ref={ref}\r\n type={type}\r\n data-size={size}\r\n variant={variant}\r\n className={cn(styles.button, getButtonSizeClass(size), className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Displays static inline text within an input group.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<span>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputGroupText>@</InputGroupText>\r\n * ```\r\n *\r\n * @see {@link InputGroupTextProps} for available props\r\n */\r\nconst InputGroupText = React.forwardRef<HTMLSpanElement, InputGroupTextProps>(\r\n ({className, ...props}: Readonly<InputGroupTextProps>, ref): React.JSX.Element => (\r\n <span\r\n ref={ref}\r\n className={cn(styles.text, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Renders the primary input control inside an input group.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a wrapped `Input` component\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputGroupInput placeholder='Search...' />\r\n * ```\r\n *\r\n * @see {@link InputGroupInputProps} for available props\r\n */\r\nconst InputGroupInput = React.forwardRef<HTMLInputElement, InputGroupInputProps>(\r\n ({className, ...props}: Readonly<InputGroupInputProps>, ref): React.JSX.Element => (\r\n <Input\r\n ref={ref}\r\n data-slot='input-group-control'\r\n className={cn(styles.input, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Renders a textarea control inside an input group.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a wrapped `Textarea` component\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputGroupTextarea rows={4} />\r\n * ```\r\n *\r\n * @see {@link InputGroupTextareaProps} for available props\r\n */\r\nconst InputGroupTextarea = React.forwardRef<HTMLTextAreaElement, InputGroupTextareaProps>(\r\n ({className, ...props}: Readonly<InputGroupTextareaProps>, ref): React.JSX.Element => (\r\n <Textarea\r\n ref={ref}\r\n data-slot='input-group-control'\r\n className={cn(styles.textarea, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\nInputGroup.displayName = \"InputGroup\";\r\nInputGroupAddon.displayName = \"InputGroupAddon\";\r\nInputGroupButton.displayName = \"InputGroupButton\";\r\nInputGroupText.displayName = \"InputGroupText\";\r\nInputGroupInput.displayName = \"InputGroupInput\";\r\nInputGroupTextarea.displayName = \"InputGroupTextarea\";\r\n\r\nexport {InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea};\r\n"],"names":["getAddonAlignClass","align","styles","getButtonSizeClass","size","InputGroup","React","className","props","ref","cn","InputGroupAddon","onClick","event","InputGroupButton","type","variant","Button","InputGroupText","InputGroupInput","Input","InputGroupTextarea","Textarea"],"mappings":";;;;;;;;AAoDA,SAASA,mBAAmBC,KAA2B;IACrD,OAAQA;QACN,KAAK;YACH,OAAOC,mBAAAA,QAAe;QAExB,KAAK;YACH,OAAOA,mBAAAA,UAAiB;QAE1B,KAAK;YACH,OAAOA,mBAAAA,SAAgB;QAEzB;YACE,OAAOA,mBAAAA,WAAkB;IAE7B;AACF;AAEA,SAASC,mBAAmBC,IAA0B;IACpD,OAAQA;QACN,KAAK;YACH,OAAOF,mBAAAA,YAAmB;QAE5B,KAAK;YACH,OAAOA,mBAAAA,YAAmB;QAE5B,KAAK;YACH,OAAOA,mBAAAA,QAAe;QAExB;YACE,OAAOA,mBAAAA,QAAe;IAE1B;AACF;AAmBA,MAAMG,aAAa,WAAHA,GAAGC,wBAAAA,UAAgB,CACjC,CAAC,EAACC,SAAS,EAAE,GAAGC,OAAiC,EAAEC,MAAAA,WAAAA,GACjD,IAAC;QACC,KAAKA;QACL,MAAK;QACL,aAAU;QACV,WAAWC,GAAGR,mBAAAA,KAAY,EAAEK;QAC3B,GAAGC,KAAK;;AAoBf,MAAMG,kBAAkB,WAAHA,GAAGL,wBAAAA,UAAgB,CACtC,CAAC,EAACC,SAAS,EAAEN,QAAQ,cAAc,EAAEW,OAAO,EAAE,GAAGJ,OAAsC,EAAEC,M,cAEvF,IAAC;QACC,KAAKA;QACL,MAAK;QACL,aAAU;QACV,cAAYR;QACZ,WAAWS,GAAGR,mBAAAA,KAAY,EAAEF,mBAAmBC,QAAQM;QACvD,SAAS,CAACM;YACR,IAAKA,MAAM,MAAM,CAAiB,OAAO,CAAC,WAAW,YACnDD,UAAUC;YAIZD,UAAUC;YAEV,IAAIA,MAAM,gBAAgB,EACxB;YAGFA,MAAM,aAAa,CAAC,aAAa,EAAE,cAAsD,oBAAoB;QAC/G;QACC,GAAGL,KAAK;;AAoBf,MAAMM,mBAAmB,WAAHA,GAAGR,wBAAAA,UAAgB,CACvC,CAAC,EAACC,SAAS,EAAEQ,OAAO,QAAQ,EAAEC,UAAU,OAAO,EAAEZ,OAAO,IAAI,EAAE,GAAGI,OAAuC,EAAEC,MAAAA,WAAAA,GACxG,IAACQ,QAAMA;QACL,KAAKR;QACL,MAAMM;QACN,aAAWX;QACX,SAASY;QACT,WAAWN,GAAGR,mBAAAA,MAAa,EAAEC,mBAAmBC,OAAOG;QACtD,GAAGC,KAAK;;AAoBf,MAAMU,iBAAiB,WAAHA,GAAGZ,wBAAAA,UAAgB,CACrC,CAAC,EAACC,SAAS,EAAE,GAAGC,OAAqC,EAAEC,MAAAA,WAAAA,GACrD,IAAC;QACC,KAAKA;QACL,WAAWC,GAAGR,mBAAAA,IAAW,EAAEK;QAC1B,GAAGC,KAAK;;AAoBf,MAAMW,kBAAkB,WAAHA,GAAGb,wBAAAA,UAAgB,CACtC,CAAC,EAACC,SAAS,EAAE,GAAGC,OAAsC,EAAEC,MAAAA,WAAAA,GACtD,IAACW,OAAKA;QACJ,KAAKX;QACL,aAAU;QACV,WAAWC,GAAGR,mBAAAA,KAAY,EAAEK;QAC3B,GAAGC,KAAK;;AAoBf,MAAMa,qBAAqB,WAAHA,GAAGf,wBAAAA,UAAgB,CACzC,CAAC,EAACC,SAAS,EAAE,GAAGC,OAAyC,EAAEC,MAAAA,WAAAA,GACzD,IAACa,UAAQA;QACP,KAAKb;QACL,aAAU;QACV,WAAWC,GAAGR,mBAAAA,QAAe,EAAEK;QAC9B,GAAGC,KAAK;;AAKfH,WAAW,WAAW,GAAG;AACzBM,gBAAgB,WAAW,GAAG;AAC9BG,iBAAiB,WAAW,GAAG;AAC/BI,eAAe,WAAW,GAAG;AAC7BC,gBAAgB,WAAW,GAAG;AAC9BE,mBAAmB,WAAW,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://./home/runner/work/arolariu.ro/arolariu.ro/packages/components/src/components/ui/input-group.module.css","webpack://./src/components/ui/input-group.module.css"],"names":[],"mappings":"AADA;ECEE,sCAAsC;EACtC,iCAAiC;EACjC,kCAAkC;EAClC,kCAAkC;EAClC,uFAAuF;EACvF,mBAAmB;EACnB,WAAW;EACX,aAAa;EACb,kBAAkB;EAClB,+BAA+B;AACjC;;AAEA;EACE,4BAA4B;EAC5B,oCAAoC;AACtC;;AAEA;EACE,oBAAoB;EACpB,gBAAgB;AAClB;;AAEA;EACE,mCAAmC;EACnC,+EAA+E;AACjF;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,sBAAsB;EACtB,oBAAoB;AACtB;;AAEA;EACE,iCAAiC;EACjC,YAAY;EACZ,4BAA4B;EAC5B,mBAAmB;EACnB,sBAAsB;EACtB,yBAAyB;EACzB,iBAAiB;EACjB,gBAAgB;EAChB,aAAa;AACf;;AAEA;EACE,cAAc;EACd,WAAW;EACX,YAAY;AACd;;AAEA;EACE,+BAA+B;EAC/B,gCAAgC;EAChC,SAAS;AACX;;AAEA;EACE,+BAA+B;EAC/B,gCAAgC;EAChC,QAAQ;AACV;;AAEA;EACE,8CAA8C;EAC9C,SAAS;AACX;;AAEA;EACE,2BAA2B;EAC3B,WAAW;AACb;;AAEA;EACE,8CAA8C;EAC9C,QAAQ;AACV;;AAEA;EACE,gBAAgB;EAChB,cAAc;AAChB;;AAEA;EACE,8CAA8C;EAC9C,4BAA4B;EAC5B,yBAAyB;EACzB,4BAA4B;AAC9B;;AAEA;EACE,8CAA8C;EAC9C,8BAA8B;EAC9B,4BAA4B;AAC9B;;AAEA;EACE,8CAA8C;EAC9C,yBAAyB;EACzB,wBAAwB;EACxB,UAAU;AACZ;;AAEA;EACE,8BAA8B;EAC9B,6BAA6B;EAC7B,UAAU;AACZ;;AAEA;EACE,iCAAiC;EACjC,4BAA4B;EAC5B,mBAAmB;EACnB,sBAAsB;EACtB,aAAa;AACf;;AAEA;EACE,gBAAgB;EAChB,uBAAuB;EACvB,SAAS;EACT,gBAAgB;EAChB,UAAU;EACV,YAAY;AACd;;AAEA;EACE,gBAAgB;EAChB,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;EAChB,0CAA0C;EAC1C,YAAY;EACZ,iCAAiC;EACjC,8BAA8B;EAC9B,YAAY;EACZ,uBAAuB;EACvB,SAAS;EACT,gBAAgB;EAChB,UAAU;AACZ","sourcesContent":[".group{align-items:center;background-color:var(--ac-background);border:1px solid var(--ac-input);border-radius:var(--ac-radius-md);box-shadow:0 1px 2px 0 rgba(0,0,0,.04);display:flex;min-height:var(--ac-size-default);position:relative;transition:border-color var(--ac-transition-fast),box-shadow var(--ac-transition-fast);width:100%}.group:focus-within{border-color:var(--ac-ring);box-shadow:0 0 0 1px var(--ac-ring)}.group:has(textarea){align-items:stretch;min-height:auto}.group:has([aria-invalid=true]){border-color:var(--ac-destructive);box-shadow:0 0 0 1px color-mix(in oklch,var(--ac-destructive),transparent 65%)}.group[data-disabled=true]{opacity:.5}.group:has([data-align=block-end]),.group:has([data-align=block-start]){align-items:stretch;flex-direction:column}.addon{align-items:center;color:var(--ac-muted-foreground);cursor:text;display:flex;font-size:var(--ac-text-sm);font-weight:500;gap:var(--ac-space-2);user-select:none}.addon>svg,.text>svg{flex-shrink:0;height:1rem;width:1rem}.inlineStart{order:-1;padding-left:var(--ac-space-3);padding-right:var(--ac-space-2)}.inlineEnd{order:1;padding-left:var(--ac-space-2);padding-right:var(--ac-space-3)}.blockStart{order:-1;padding:var(--ac-space-3) var(--ac-space-3) 0}.blockEnd,.blockStart{justify-content:flex-start;width:100%}.blockEnd{order:1;padding:0 var(--ac-space-3) var(--ac-space-3)}.button{box-shadow:none;flex-shrink:0}.buttonXs{border-radius:calc(var(--ac-radius-md) - 2px);font-size:var(--ac-text-xs);height:var(--ac-size-sm);padding:0 var(--ac-space-2)}.buttonSm{border-radius:calc(var(--ac-radius-md) - 1px);height:var(--ac-size-default);padding:0 var(--ac-space-3)}.buttonIconXs{border-radius:calc(var(--ac-radius-md) - 2px);height:var(--ac-size-sm);padding:0;width:var(--ac-size-sm)}.buttonIconSm{height:var(--ac-size-default);padding:0;width:var(--ac-size-default)}.text{align-items:center;color:var(--ac-muted-foreground);display:flex;font-size:var(--ac-text-sm);gap:var(--ac-space-2)}.input{background-color:transparent;border:0;border-radius:0;box-shadow:none;flex:1 1 auto;min-width:0}.input:focus-visible,.textarea:focus-visible{border-color:transparent;box-shadow:none}.textarea{background-color:transparent;border:0;border-radius:0;box-shadow:none;flex:1 1 auto;min-height:calc(var(--ac-size-default)*2);min-width:0;padding-bottom:var(--ac-space-3);padding-top:var(--ac-space-3);resize:none}",".group {\n background-color: var(--ac-background);\n border: 1px solid var(--ac-input);\n border-radius: var(--ac-radius-md);\n min-height: var(--ac-size-default);\n transition: border-color var(--ac-transition-fast),box-shadow var(--ac-transition-fast);\n align-items: center;\n width: 100%;\n display: flex;\n position: relative;\n box-shadow: 0 1px 2px #0000000a;\n}\n\n.group:focus-within {\n border-color: var(--ac-ring);\n box-shadow: 0 0 0 1px var(--ac-ring);\n}\n\n.group:has(textarea) {\n align-items: stretch;\n min-height: auto;\n}\n\n.group:has([aria-invalid=\"true\"]) {\n border-color: var(--ac-destructive);\n box-shadow: 0 0 0 1px color-mix(in oklch,var(--ac-destructive),transparent 65%);\n}\n\n.group[data-disabled=\"true\"] {\n opacity: .5;\n}\n\n.group:has([data-align=\"block-end\"]), .group:has([data-align=\"block-start\"]) {\n flex-direction: column;\n align-items: stretch;\n}\n\n.addon {\n color: var(--ac-muted-foreground);\n cursor: text;\n font-size: var(--ac-text-sm);\n align-items: center;\n gap: var(--ac-space-2);\n -webkit-user-select: none;\n user-select: none;\n font-weight: 500;\n display: flex;\n}\n\n.addon > svg, .text > svg {\n flex-shrink: 0;\n width: 1rem;\n height: 1rem;\n}\n\n.inlineStart {\n padding-left: var(--ac-space-3);\n padding-right: var(--ac-space-2);\n order: -1;\n}\n\n.inlineEnd {\n padding-left: var(--ac-space-2);\n padding-right: var(--ac-space-3);\n order: 1;\n}\n\n.blockStart {\n padding: var(--ac-space-3) var(--ac-space-3) 0;\n order: -1;\n}\n\n.blockEnd, .blockStart {\n justify-content: flex-start;\n width: 100%;\n}\n\n.blockEnd {\n padding: 0 var(--ac-space-3) var(--ac-space-3);\n order: 1;\n}\n\n.button {\n box-shadow: none;\n flex-shrink: 0;\n}\n\n.buttonXs {\n border-radius: calc(var(--ac-radius-md) - 2px);\n font-size: var(--ac-text-xs);\n height: var(--ac-size-sm);\n padding: 0 var(--ac-space-2);\n}\n\n.buttonSm {\n border-radius: calc(var(--ac-radius-md) - 1px);\n height: var(--ac-size-default);\n padding: 0 var(--ac-space-3);\n}\n\n.buttonIconXs {\n border-radius: calc(var(--ac-radius-md) - 2px);\n height: var(--ac-size-sm);\n width: var(--ac-size-sm);\n padding: 0;\n}\n\n.buttonIconSm {\n height: var(--ac-size-default);\n width: var(--ac-size-default);\n padding: 0;\n}\n\n.text {\n color: var(--ac-muted-foreground);\n font-size: var(--ac-text-sm);\n align-items: center;\n gap: var(--ac-space-2);\n display: flex;\n}\n\n.input {\n box-shadow: none;\n background-color: #0000;\n border: 0;\n border-radius: 0;\n flex: auto;\n min-width: 0;\n}\n\n.input:focus-visible, .textarea:focus-visible {\n box-shadow: none;\n border-color: #0000;\n}\n\n.textarea {\n box-shadow: none;\n min-height: calc(var(--ac-size-default)*2);\n min-width: 0;\n padding-bottom: var(--ac-space-3);\n padding-top: var(--ac-space-3);\n resize: none;\n background-color: #0000;\n border: 0;\n border-radius: 0;\n flex: auto;\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://./../../node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].oneOf[2].use[2]!/home/runner/work/arolariu.ro/arolariu.ro/node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/postcss-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[3]!/home/runner/work/arolariu.ro/arolariu.ro/packages/components/src/components/ui/input-group.module.css","webpack://./src/components/ui/input-group.module.css"],"names":[],"mappings":"AAAA;ECCE,sCAAsC;EACtC,iCAAiC;EACjC,kCAAkC;EAClC,kCAAkC;EAClC,uFAAuF;EACvF,mBAAmB;EACnB,WAAW;EACX,aAAa;EACb,kBAAkB;EAClB,+BAA+B;AACjC;;ADX6U;ECc3U,4BAA4B;EAC5B,oCAAoC;AACtC;;ADhBia;ECmB/Z,oBAAoB;EACpB,gBAAgB;AAClB;;ADrB0d;ECwBxd,mCAAmC;EACnC,+EAA+E;AACjF;;AD1B4mB;EC6B1mB,WAAW;AACb;;AD9BkpB;ECiChpB,sBAAsB;EACtB,oBAAoB;AACtB;;ADnCowB;ECsClwB,iCAAiC;EACjC,YAAY;EACZ,4BAA4B;EAC5B,mBAAmB;EACnB,sBAAsB;EACtB,yBAAyB;EACzB,iBAAiB;EACjB,gBAAgB;EAChB,aAAa;AACf;;AD/C26B;ECkDz6B,cAAc;EACd,WAAW;EACX,YAAY;AACd;;ADrDq+B;ECwDn+B,+BAA+B;EAC/B,gCAAgC;EAChC,SAAS;AACX;;AD3D0jC;EC8DxjC,+BAA+B;EAC/B,gCAAgC;EAChC,QAAQ;AACV;;ADjE4oC;ECoE1oC,8CAA8C;EAC9C,SAAS;AACX;;ADtE+sC;ECyE7sC,2BAA2B;EAC3B,WAAW;AACb;;AD3E2wC;EC8EzwC,8CAA8C;EAC9C,QAAQ;AACV;;ADhF20C;ECmFz0C,gBAAgB;EAChB,cAAc;AAChB;;ADrFi3C;ECwF/2C,8CAA8C;EAC9C,4BAA4B;EAC5B,yBAAyB;EACzB,4BAA4B;AAC9B;;AD5F0/C;EC+Fx/C,8CAA8C;EAC9C,8BAA8B;EAC9B,4BAA4B;AAC9B;;ADlG4mD;ECqG1mD,8CAA8C;EAC9C,yBAAyB;EACzB,wBAAwB;EACxB,UAAU;AACZ;;ADzGmuD;EC4GjuD,8BAA8B;EAC9B,6BAA6B;EAC7B,UAAU;AACZ;;AD/GszD;ECkHpzD,iCAAiC;EACjC,4BAA4B;EAC5B,mBAAmB;EACnB,sBAAsB;EACtB,aAAa;AACf;;ADvH+6D;EC0H76D,gBAAgB;EAChB,uBAAuB;EACvB,SAAS;EACT,gBAAgB;EAChB,UAAU;EACV,YAAY;AACd;;ADhIshE;ECmIphE,gBAAgB;EAChB,mBAAmB;AACrB;;ADrI4mE;ECwI1mE,gBAAgB;EAChB,0CAA0C;EAC1C,YAAY;EACZ,iCAAiC;EACjC,8BAA8B;EAC9B,YAAY;EACZ,uBAAuB;EACvB,SAAS;EACT,gBAAgB;EAChB,UAAU;AACZ","sourcesContent":[".group{align-items:center;background-color:var(--ac-background);border:1px solid var(--ac-input);border-radius:var(--ac-radius-md);box-shadow:0 1px 2px 0 rgba(0,0,0,.04);display:flex;min-height:var(--ac-size-default);position:relative;transition:border-color var(--ac-transition-fast),box-shadow var(--ac-transition-fast);width:100%}.group:focus-within{border-color:var(--ac-ring);box-shadow:0 0 0 1px var(--ac-ring)}.group:has(textarea){align-items:stretch;min-height:auto}.group:has([aria-invalid=true]){border-color:var(--ac-destructive);box-shadow:0 0 0 1px color-mix(in oklch,var(--ac-destructive),transparent 65%)}.group[data-disabled=true]{opacity:.5}.group:has([data-align=block-end]),.group:has([data-align=block-start]){align-items:stretch;flex-direction:column}.addon{align-items:center;color:var(--ac-muted-foreground);cursor:text;display:flex;font-size:var(--ac-text-sm);font-weight:500;gap:var(--ac-space-2);user-select:none}.addon>svg,.text>svg{flex-shrink:0;height:1rem;width:1rem}.inlineStart{order:-1;padding-left:var(--ac-space-3);padding-right:var(--ac-space-2)}.inlineEnd{order:1;padding-left:var(--ac-space-2);padding-right:var(--ac-space-3)}.blockStart{order:-1;padding:var(--ac-space-3) var(--ac-space-3) 0}.blockEnd,.blockStart{justify-content:flex-start;width:100%}.blockEnd{order:1;padding:0 var(--ac-space-3) var(--ac-space-3)}.button{box-shadow:none;flex-shrink:0}.buttonXs{border-radius:calc(var(--ac-radius-md) - 2px);font-size:var(--ac-text-xs);height:var(--ac-size-sm);padding:0 var(--ac-space-2)}.buttonSm{border-radius:calc(var(--ac-radius-md) - 1px);height:var(--ac-size-default);padding:0 var(--ac-space-3)}.buttonIconXs{border-radius:calc(var(--ac-radius-md) - 2px);height:var(--ac-size-sm);padding:0;width:var(--ac-size-sm)}.buttonIconSm{height:var(--ac-size-default);padding:0;width:var(--ac-size-default)}.text{align-items:center;color:var(--ac-muted-foreground);display:flex;font-size:var(--ac-text-sm);gap:var(--ac-space-2)}.input{background-color:transparent;border:0;border-radius:0;box-shadow:none;flex:1 1 auto;min-width:0}.input:focus-visible,.textarea:focus-visible{border-color:transparent;box-shadow:none}.textarea{background-color:transparent;border:0;border-radius:0;box-shadow:none;flex:1 1 auto;min-height:calc(var(--ac-size-default)*2);min-width:0;padding-bottom:var(--ac-space-3);padding-top:var(--ac-space-3);resize:none}",".group {\n background-color: var(--ac-background);\n border: 1px solid var(--ac-input);\n border-radius: var(--ac-radius-md);\n min-height: var(--ac-size-default);\n transition: border-color var(--ac-transition-fast),box-shadow var(--ac-transition-fast);\n align-items: center;\n width: 100%;\n display: flex;\n position: relative;\n box-shadow: 0 1px 2px #0000000a;\n}\n\n.group:focus-within {\n border-color: var(--ac-ring);\n box-shadow: 0 0 0 1px var(--ac-ring);\n}\n\n.group:has(textarea) {\n align-items: stretch;\n min-height: auto;\n}\n\n.group:has([aria-invalid=\"true\"]) {\n border-color: var(--ac-destructive);\n box-shadow: 0 0 0 1px color-mix(in oklch,var(--ac-destructive),transparent 65%);\n}\n\n.group[data-disabled=\"true\"] {\n opacity: .5;\n}\n\n.group:has([data-align=\"block-end\"]), .group:has([data-align=\"block-start\"]) {\n flex-direction: column;\n align-items: stretch;\n}\n\n.addon {\n color: var(--ac-muted-foreground);\n cursor: text;\n font-size: var(--ac-text-sm);\n align-items: center;\n gap: var(--ac-space-2);\n -webkit-user-select: none;\n user-select: none;\n font-weight: 500;\n display: flex;\n}\n\n.addon > svg, .text > svg {\n flex-shrink: 0;\n width: 1rem;\n height: 1rem;\n}\n\n.inlineStart {\n padding-left: var(--ac-space-3);\n padding-right: var(--ac-space-2);\n order: -1;\n}\n\n.inlineEnd {\n padding-left: var(--ac-space-2);\n padding-right: var(--ac-space-3);\n order: 1;\n}\n\n.blockStart {\n padding: var(--ac-space-3) var(--ac-space-3) 0;\n order: -1;\n}\n\n.blockEnd, .blockStart {\n justify-content: flex-start;\n width: 100%;\n}\n\n.blockEnd {\n padding: 0 var(--ac-space-3) var(--ac-space-3);\n order: 1;\n}\n\n.button {\n box-shadow: none;\n flex-shrink: 0;\n}\n\n.buttonXs {\n border-radius: calc(var(--ac-radius-md) - 2px);\n font-size: var(--ac-text-xs);\n height: var(--ac-size-sm);\n padding: 0 var(--ac-space-2);\n}\n\n.buttonSm {\n border-radius: calc(var(--ac-radius-md) - 1px);\n height: var(--ac-size-default);\n padding: 0 var(--ac-space-3);\n}\n\n.buttonIconXs {\n border-radius: calc(var(--ac-radius-md) - 2px);\n height: var(--ac-size-sm);\n width: var(--ac-size-sm);\n padding: 0;\n}\n\n.buttonIconSm {\n height: var(--ac-size-default);\n width: var(--ac-size-default);\n padding: 0;\n}\n\n.text {\n color: var(--ac-muted-foreground);\n font-size: var(--ac-text-sm);\n align-items: center;\n gap: var(--ac-space-2);\n display: flex;\n}\n\n.input {\n box-shadow: none;\n background-color: #0000;\n border: 0;\n border-radius: 0;\n flex: auto;\n min-width: 0;\n}\n\n.input:focus-visible, .textarea:focus-visible {\n box-shadow: none;\n border-color: #0000;\n}\n\n.textarea {\n box-shadow: none;\n min-height: calc(var(--ac-size-default)*2);\n min-width: 0;\n padding-bottom: var(--ac-space-3);\n padding-top: var(--ac-space-3);\n resize: none;\n background-color: #0000;\n border: 0;\n border-radius: 0;\n flex: auto;\n}\n"],"sourceRoot":""}
@@ -1,7 +1,7 @@
1
- import { OTPInput } from "input-otp";
1
+ import { OTPInput, REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS, type OTPInputProps, type SlotProps } from "input-otp";
2
2
  import * as React from "react";
3
- export { REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS } from "input-otp";
4
- export type { OTPInputProps, SlotProps } from "input-otp";
3
+ export { REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS };
4
+ export type { OTPInputProps, SlotProps };
5
5
  /**
6
6
  * Props for the {@link InputOTP} component.
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"input-otp.d.ts","sourceRoot":"","sources":["../../../src/components/ui/input-otp.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAAkB,MAAM,WAAW,CAAC;AAEpD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,EAAC,iBAAiB,EAAE,kBAAkB,EAAE,4BAA4B,EAAC,MAAM,WAAW,CAAC;AAC9F,YAAY,EAAC,aAAa,EAAE,SAAS,EAAC,MAAM,WAAW,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,QAAQ,CAAC,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAC9E,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,QAAA,MAAM,QAAQ,wFASb,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,aAAa,mKAQlB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,YAAY,0FA2BjB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,iBAAiB,mKAUtB,CAAC;AAOF,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAC,CAAC"}
1
+ {"version":3,"file":"input-otp.d.ts","sourceRoot":"","sources":["../../../src/components/ui/input-otp.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAAmB,iBAAiB,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAAC,MAAM,WAAW,CAAC;AAE7J,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,EAAC,iBAAiB,EAAE,kBAAkB,EAAE,4BAA4B,EAAC,CAAC;AAC7E,YAAY,EAAC,aAAa,EAAE,SAAS,EAAC,CAAC;AAEvC;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,QAAQ,CAAC,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAC9E,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,QAAA,MAAM,QAAQ,wFASb,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,aAAa,mKAQlB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,YAAY,0FA2BjB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,iBAAiB,mKAUtB,CAAC;AAOF,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAC,CAAC"}
@@ -2,23 +2,23 @@
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { OTPInput, OTPInputContext, REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS } from "input-otp";
4
4
  import { Minus } from "lucide-react";
5
- import { forwardRef, useContext } from "react";
6
5
  import { cn } from "../../lib/utilities.js";
7
6
  import input_otp_module from "./input-otp.module.js";
7
+ import * as __rspack_external_react from "react";
8
8
  const DEFAULT_SLOT_PLACEHOLDER_CHARACTER = "·";
9
- const InputOTP = /*#__PURE__*/ forwardRef(({ className, containerClassName, ...props }, ref)=>/*#__PURE__*/ jsx(OTPInput, {
9
+ const InputOTP = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, containerClassName, ...props }, ref)=>/*#__PURE__*/ jsx(OTPInput, {
10
10
  ref: ref,
11
11
  containerClassName: cn(input_otp_module.container, containerClassName),
12
12
  className: cn(input_otp_module.input, className),
13
13
  ...props
14
14
  }));
15
- const InputOTPGroup = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
15
+ const InputOTPGroup = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
16
16
  ref: ref,
17
17
  className: cn(input_otp_module.group, className),
18
18
  ...props
19
19
  }));
20
- const InputOTPSlot = /*#__PURE__*/ forwardRef(({ index, className, ...props }, ref)=>{
21
- const inputOTPContext = useContext(OTPInputContext);
20
+ const InputOTPSlot = /*#__PURE__*/ __rspack_external_react.forwardRef(({ index, className, ...props }, ref)=>{
21
+ const inputOTPContext = __rspack_external_react.useContext(OTPInputContext);
22
22
  const slot = inputOTPContext.slots[index];
23
23
  if (!slot) throw new Error(`InputOTPSlot could not find slot at index ${index}.`);
24
24
  const { char, hasFakeCaret, isActive, placeholderChar } = slot;
@@ -39,7 +39,7 @@ const InputOTPSlot = /*#__PURE__*/ forwardRef(({ index, className, ...props }, r
39
39
  ]
40
40
  });
41
41
  });
42
- const InputOTPSeparator = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
42
+ const InputOTPSeparator = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
43
43
  ref: ref,
44
44
  role: "separator",
45
45
  className: cn(input_otp_module.separator, className),
@@ -1 +1 @@
1
- {"version":3,"file":"components/ui/input-otp.js","sources":["../../../src/components/ui/input-otp.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {OTPInput, OTPInputContext} from \"input-otp\";\r\nimport {Minus} from \"lucide-react\";\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\n\r\nimport styles from \"./input-otp.module.css\";\r\n\r\nconst DEFAULT_SLOT_PLACEHOLDER_CHARACTER = \"·\";\r\n\r\nexport {REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS} from \"input-otp\";\r\nexport type {OTPInputProps, SlotProps} from \"input-otp\";\r\n\r\n/**\r\n * Props for the {@link InputOTP} component.\r\n */\r\nexport type InputOTPProps = React.ComponentPropsWithoutRef<typeof OTPInput>;\r\n\r\n/**\r\n * Props for the {@link InputOTPGroup} component.\r\n */\r\nexport type InputOTPGroupProps = React.ComponentPropsWithoutRef<\"div\">;\r\n\r\n/**\r\n * Props for the {@link InputOTPSlot} component.\r\n */\r\nexport interface InputOTPSlotProps extends React.ComponentPropsWithoutRef<\"div\"> {\r\n /** Zero-based slot index resolved from the shared OTP input context. */\r\n index: number;\r\n}\r\n\r\n/**\r\n * Props for the {@link InputOTPSeparator} component.\r\n */\r\nexport type InputOTPSeparatorProps = React.ComponentPropsWithoutRef<\"div\">;\r\n\r\n/**\r\n * Wraps the `input-otp` root component with shared library styling.\r\n *\r\n * @remarks\r\n * - Third-party wrapper component\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n * - Forwards all supported `input-otp` root props to the underlying primitive\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputOTP maxLength={6} />\r\n * ```\r\n *\r\n * @param props.maxLength - Required OTP length used to generate the expected number of slots.\r\n * @param props.pattern - Optional validation pattern forwarded to the underlying input, often paired with\r\n * `REGEXP_ONLY_DIGITS`, `REGEXP_ONLY_CHARS`, or `REGEXP_ONLY_DIGITS_AND_CHARS`.\r\n * @param props.onComplete - Callback invoked after the user fills all slots with a complete value.\r\n * @param props.pushPasswordManagerStrategy - Controls how password manager UI is handled inside the input\r\n * container.\r\n * @param props.render - Custom render function for complete control over OTP input rendering. Receives\r\n * slot data array and allows fully custom layouts.\r\n * @param props.pasteTransformer - Transform pasted text before it is applied. Useful for stripping\r\n * spaces or dashes from pasted codes.\r\n * @example\r\n * ```tsx\r\n * <InputOTP pasteTransformer={(text) => text.replace(/\\D/g, \"\")} />\r\n * ```\r\n * @param props.value - Controlled OTP value. Use with `onChange` for controlled mode.\r\n * @param props.onChange - Callback fired when the OTP value changes in controlled mode.\r\n * @param props.containerClassName - Additional CSS class for the outer container element.\r\n * @param props.noScriptCSSFallback - CSS string to inject for no-JavaScript fallback styling.\r\n * @param props.textAlign - Sets how typed characters are aligned inside the hidden backing input.\r\n * @see {@link InputOTPProps} for available props\r\n * @see {@link https://github.com/guilhermerodz/input-otp | input-otp library docs}\r\n * @see {@link https://github.com/guilhermerodz/input-otp | input-otp API reference}\r\n */\r\nconst InputOTP = React.forwardRef<React.ComponentRef<typeof OTPInput>, InputOTPProps>(\r\n ({className, containerClassName, ...props}: Readonly<InputOTPProps>, ref): React.JSX.Element => (\r\n <OTPInput\r\n ref={ref}\r\n containerClassName={cn(styles.container, containerClassName)}\r\n className={cn(styles.input, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Groups OTP slots into a shared layout row.\r\n *\r\n * @remarks\r\n * - Third-party wrapper component\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputOTPGroup>\r\n * <InputOTPSlot index={0} />\r\n * </InputOTPGroup>\r\n * ```\r\n *\r\n * @see {@link InputOTPGroupProps} for available props\r\n * @see {@link https://github.com/guilhermerodz/input-otp | input-otp library docs}\r\n */\r\nconst InputOTPGroup = React.forwardRef<React.ComponentRef<\"div\">, InputOTPGroupProps>(\r\n ({className, ...props}: Readonly<InputOTPGroupProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n className={cn(styles.group, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Renders an individual OTP slot based on shared input context state.\r\n *\r\n * @remarks\r\n * - Third-party wrapper component\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputOTPSlot index={0} />\r\n * ```\r\n *\r\n * @see {@link InputOTPSlotProps} for available props\r\n * @see {@link https://github.com/guilhermerodz/input-otp | input-otp library docs}\r\n */\r\nconst InputOTPSlot = React.forwardRef<React.ComponentRef<\"div\">, InputOTPSlotProps>(\r\n ({index, className, ...props}: Readonly<InputOTPSlotProps>, ref): React.JSX.Element => {\r\n const inputOTPContext = React.useContext(OTPInputContext);\r\n const slot = inputOTPContext.slots[index];\r\n\r\n if (!slot) {\r\n throw new Error(`InputOTPSlot could not find slot at index ${index}.`);\r\n }\r\n\r\n const {char, hasFakeCaret, isActive, placeholderChar} = slot;\r\n const shouldRenderPlaceholderCharacter = char === null && hasFakeCaret === false;\r\n const displayCharacter = shouldRenderPlaceholderCharacter ? (placeholderChar ?? DEFAULT_SLOT_PLACEHOLDER_CHARACTER) : char;\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={cn(styles.slot, isActive && styles.slotActive, className)}\r\n {...props}>\r\n {displayCharacter}\r\n {Boolean(hasFakeCaret) && (\r\n <div className={styles.fakeCaretContainer}>\r\n <div className={styles.fakeCaret} />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n },\r\n);\r\n\r\n/**\r\n * Displays a visual separator between OTP groups.\r\n *\r\n * @remarks\r\n * - Third-party wrapper component\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputOTPSeparator />\r\n * ```\r\n *\r\n * @see {@link InputOTPSeparatorProps} for available props\r\n * @see {@link https://github.com/guilhermerodz/input-otp | input-otp library docs}\r\n */\r\nconst InputOTPSeparator = React.forwardRef<React.ComponentRef<\"div\">, InputOTPSeparatorProps>(\r\n ({className, ...props}: Readonly<InputOTPSeparatorProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n role='separator'\r\n className={cn(styles.separator, className)}\r\n {...props}>\r\n <Minus className={styles.separatorIcon} />\r\n </div>\r\n ),\r\n);\r\n\r\nInputOTP.displayName = \"InputOTP\";\r\nInputOTPGroup.displayName = \"InputOTPGroup\";\r\nInputOTPSlot.displayName = \"InputOTPSlot\";\r\nInputOTPSeparator.displayName = \"InputOTPSeparator\";\r\n\r\nexport {InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot};\r\n"],"names":["DEFAULT_SLOT_PLACEHOLDER_CHARACTER","InputOTP","React","className","containerClassName","props","ref","OTPInput","cn","styles","InputOTPGroup","InputOTPSlot","index","inputOTPContext","OTPInputContext","slot","Error","char","hasFakeCaret","isActive","placeholderChar","shouldRenderPlaceholderCharacter","displayCharacter","Boolean","InputOTPSeparator","Minus"],"mappings":";;;;;;;AAUA,MAAMA,qCAAqC;AAgE3C,MAAMC,WAAW,WAAHA,GAAGC,WACf,CAAC,EAACC,SAAS,EAAEC,kBAAkB,EAAE,GAAGC,OAA+B,EAAEC,MAAAA,WAAAA,GACnE,IAACC,UAAQA;QACP,KAAKD;QACL,oBAAoBE,GAAGC,iBAAAA,SAAgB,EAAEL;QACzC,WAAWI,GAAGC,iBAAAA,KAAY,EAAEN;QAC3B,GAAGE,KAAK;;AAuBf,MAAMK,gBAAgB,WAAHA,GAAGR,WACpB,CAAC,EAACC,SAAS,EAAE,GAAGE,OAAoC,EAAEC,MAAAA,WAAAA,GACpD,IAAC;QACC,KAAKA;QACL,WAAWE,GAAGC,iBAAAA,KAAY,EAAEN;QAC3B,GAAGE,KAAK;;AAqBf,MAAMM,eAAe,WAAHA,GAAGT,WACnB,CAAC,EAACU,KAAK,EAAET,SAAS,EAAE,GAAGE,OAAmC,EAAEC;IAC1D,MAAMO,kBAAkBX,WAAiBY;IACzC,MAAMC,OAAOF,gBAAgB,KAAK,CAACD,MAAM;IAEzC,IAAI,CAACG,MACH,MAAM,IAAIC,MAAM,CAAC,0CAA0C,EAAEJ,MAAM,CAAC,CAAC;IAGvE,MAAM,EAACK,IAAI,EAAEC,YAAY,EAAEC,QAAQ,EAAEC,eAAe,EAAC,GAAGL;IACxD,MAAMM,mCAAmCJ,AAAS,SAATA,QAAiBC,AAAiB,UAAjBA;IAC1D,MAAMI,mBAAmBD,mCAAoCD,mBAAmBpB,qCAAsCiB;IAEtH,OAAO,WAAP,GACE,KAAC;QACC,KAAKX;QACL,WAAWE,GAAGC,iBAAAA,IAAW,EAAEU,YAAYV,iBAAAA,UAAiB,EAAEN;QACzD,GAAGE,KAAK;;YACRiB;YACAC,QAAQL,iBAAiB,WAAjBA,GACP,IAAC;gBAAI,WAAWT,iBAAAA,kBAAyB;0BACvC,kBAAC;oBAAI,WAAWA,iBAAAA,SAAgB;;;;;AAK1C;AAmBF,MAAMe,oBAAoB,WAAHA,GAAGtB,WACxB,CAAC,EAACC,SAAS,EAAE,GAAGE,OAAwC,EAAEC,MAAAA,WAAAA,GACxD,IAAC;QACC,KAAKA;QACL,MAAK;QACL,WAAWE,GAAGC,iBAAAA,SAAgB,EAAEN;QAC/B,GAAGE,KAAK;kBACT,kBAACoB,OAAKA;YAAC,WAAWhB,iBAAAA,aAAoB;;;AAK5CR,SAAS,WAAW,GAAG;AACvBS,cAAc,WAAW,GAAG;AAC5BC,aAAa,WAAW,GAAG;AAC3Ba,kBAAkB,WAAW,GAAG"}
1
+ {"version":3,"file":"components/ui/input-otp.js","sources":["../../../src/components/ui/input-otp.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {OTPInput, OTPInputContext, REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS, type OTPInputProps, type SlotProps} from \"input-otp\";\r\nimport {Minus} from \"lucide-react\";\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\n\r\nimport styles from \"./input-otp.module.css\";\r\n\r\nconst DEFAULT_SLOT_PLACEHOLDER_CHARACTER = \"·\";\r\n\r\nexport {REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS};\r\nexport type {OTPInputProps, SlotProps};\r\n\r\n/**\r\n * Props for the {@link InputOTP} component.\r\n */\r\nexport type InputOTPProps = React.ComponentPropsWithoutRef<typeof OTPInput>;\r\n\r\n/**\r\n * Props for the {@link InputOTPGroup} component.\r\n */\r\nexport type InputOTPGroupProps = React.ComponentPropsWithoutRef<\"div\">;\r\n\r\n/**\r\n * Props for the {@link InputOTPSlot} component.\r\n */\r\nexport interface InputOTPSlotProps extends React.ComponentPropsWithoutRef<\"div\"> {\r\n /** Zero-based slot index resolved from the shared OTP input context. */\r\n index: number;\r\n}\r\n\r\n/**\r\n * Props for the {@link InputOTPSeparator} component.\r\n */\r\nexport type InputOTPSeparatorProps = React.ComponentPropsWithoutRef<\"div\">;\r\n\r\n/**\r\n * Wraps the `input-otp` root component with shared library styling.\r\n *\r\n * @remarks\r\n * - Third-party wrapper component\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n * - Forwards all supported `input-otp` root props to the underlying primitive\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputOTP maxLength={6} />\r\n * ```\r\n *\r\n * @param props.maxLength - Required OTP length used to generate the expected number of slots.\r\n * @param props.pattern - Optional validation pattern forwarded to the underlying input, often paired with\r\n * `REGEXP_ONLY_DIGITS`, `REGEXP_ONLY_CHARS`, or `REGEXP_ONLY_DIGITS_AND_CHARS`.\r\n * @param props.onComplete - Callback invoked after the user fills all slots with a complete value.\r\n * @param props.pushPasswordManagerStrategy - Controls how password manager UI is handled inside the input\r\n * container.\r\n * @param props.render - Custom render function for complete control over OTP input rendering. Receives\r\n * slot data array and allows fully custom layouts.\r\n * @param props.pasteTransformer - Transform pasted text before it is applied. Useful for stripping\r\n * spaces or dashes from pasted codes.\r\n * @example\r\n * ```tsx\r\n * <InputOTP pasteTransformer={(text) => text.replace(/\\D/g, \"\")} />\r\n * ```\r\n * @param props.value - Controlled OTP value. Use with `onChange` for controlled mode.\r\n * @param props.onChange - Callback fired when the OTP value changes in controlled mode.\r\n * @param props.containerClassName - Additional CSS class for the outer container element.\r\n * @param props.noScriptCSSFallback - CSS string to inject for no-JavaScript fallback styling.\r\n * @param props.textAlign - Sets how typed characters are aligned inside the hidden backing input.\r\n * @see {@link InputOTPProps} for available props\r\n * @see {@link https://github.com/guilhermerodz/input-otp | input-otp library docs}\r\n * @see {@link https://github.com/guilhermerodz/input-otp | input-otp API reference}\r\n */\r\nconst InputOTP = React.forwardRef<React.ComponentRef<typeof OTPInput>, InputOTPProps>(\r\n ({className, containerClassName, ...props}: Readonly<InputOTPProps>, ref): React.JSX.Element => (\r\n <OTPInput\r\n ref={ref}\r\n containerClassName={cn(styles.container, containerClassName)}\r\n className={cn(styles.input, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Groups OTP slots into a shared layout row.\r\n *\r\n * @remarks\r\n * - Third-party wrapper component\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputOTPGroup>\r\n * <InputOTPSlot index={0} />\r\n * </InputOTPGroup>\r\n * ```\r\n *\r\n * @see {@link InputOTPGroupProps} for available props\r\n * @see {@link https://github.com/guilhermerodz/input-otp | input-otp library docs}\r\n */\r\nconst InputOTPGroup = React.forwardRef<React.ComponentRef<\"div\">, InputOTPGroupProps>(\r\n ({className, ...props}: Readonly<InputOTPGroupProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n className={cn(styles.group, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Renders an individual OTP slot based on shared input context state.\r\n *\r\n * @remarks\r\n * - Third-party wrapper component\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputOTPSlot index={0} />\r\n * ```\r\n *\r\n * @see {@link InputOTPSlotProps} for available props\r\n * @see {@link https://github.com/guilhermerodz/input-otp | input-otp library docs}\r\n */\r\nconst InputOTPSlot = React.forwardRef<React.ComponentRef<\"div\">, InputOTPSlotProps>(\r\n ({index, className, ...props}: Readonly<InputOTPSlotProps>, ref): React.JSX.Element => {\r\n const inputOTPContext = React.useContext(OTPInputContext);\r\n const slot = inputOTPContext.slots[index];\r\n\r\n if (!slot) {\r\n throw new Error(`InputOTPSlot could not find slot at index ${index}.`);\r\n }\r\n\r\n const {char, hasFakeCaret, isActive, placeholderChar} = slot;\r\n const shouldRenderPlaceholderCharacter = char === null && hasFakeCaret === false;\r\n const displayCharacter = shouldRenderPlaceholderCharacter ? (placeholderChar ?? DEFAULT_SLOT_PLACEHOLDER_CHARACTER) : char;\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={cn(styles.slot, isActive && styles.slotActive, className)}\r\n {...props}>\r\n {displayCharacter}\r\n {Boolean(hasFakeCaret) && (\r\n <div className={styles.fakeCaretContainer}>\r\n <div className={styles.fakeCaret} />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n },\r\n);\r\n\r\n/**\r\n * Displays a visual separator between OTP groups.\r\n *\r\n * @remarks\r\n * - Third-party wrapper component\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputOTPSeparator />\r\n * ```\r\n *\r\n * @see {@link InputOTPSeparatorProps} for available props\r\n * @see {@link https://github.com/guilhermerodz/input-otp | input-otp library docs}\r\n */\r\nconst InputOTPSeparator = React.forwardRef<React.ComponentRef<\"div\">, InputOTPSeparatorProps>(\r\n ({className, ...props}: Readonly<InputOTPSeparatorProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n role='separator'\r\n className={cn(styles.separator, className)}\r\n {...props}>\r\n <Minus className={styles.separatorIcon} />\r\n </div>\r\n ),\r\n);\r\n\r\nInputOTP.displayName = \"InputOTP\";\r\nInputOTPGroup.displayName = \"InputOTPGroup\";\r\nInputOTPSlot.displayName = \"InputOTPSlot\";\r\nInputOTPSeparator.displayName = \"InputOTPSeparator\";\r\n\r\nexport {InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot};\r\n"],"names":["DEFAULT_SLOT_PLACEHOLDER_CHARACTER","InputOTP","React","className","containerClassName","props","ref","OTPInput","cn","styles","InputOTPGroup","InputOTPSlot","index","inputOTPContext","OTPInputContext","slot","Error","char","hasFakeCaret","isActive","placeholderChar","shouldRenderPlaceholderCharacter","displayCharacter","Boolean","InputOTPSeparator","Minus"],"mappings":";;;;;;;AAUA,MAAMA,qCAAqC;AAgE3C,MAAMC,WAAW,WAAHA,GAAGC,wBAAAA,UAAgB,CAC/B,CAAC,EAACC,SAAS,EAAEC,kBAAkB,EAAE,GAAGC,OAA+B,EAAEC,MAAAA,WAAAA,GACnE,IAACC,UAAQA;QACP,KAAKD;QACL,oBAAoBE,GAAGC,iBAAAA,SAAgB,EAAEL;QACzC,WAAWI,GAAGC,iBAAAA,KAAY,EAAEN;QAC3B,GAAGE,KAAK;;AAuBf,MAAMK,gBAAgB,WAAHA,GAAGR,wBAAAA,UAAgB,CACpC,CAAC,EAACC,SAAS,EAAE,GAAGE,OAAoC,EAAEC,MAAAA,WAAAA,GACpD,IAAC;QACC,KAAKA;QACL,WAAWE,GAAGC,iBAAAA,KAAY,EAAEN;QAC3B,GAAGE,KAAK;;AAqBf,MAAMM,eAAe,WAAHA,GAAGT,wBAAAA,UAAgB,CACnC,CAAC,EAACU,KAAK,EAAET,SAAS,EAAE,GAAGE,OAAmC,EAAEC;IAC1D,MAAMO,kBAAkBX,wBAAAA,UAAgB,CAACY;IACzC,MAAMC,OAAOF,gBAAgB,KAAK,CAACD,MAAM;IAEzC,IAAI,CAACG,MACH,MAAM,IAAIC,MAAM,CAAC,0CAA0C,EAAEJ,MAAM,CAAC,CAAC;IAGvE,MAAM,EAACK,IAAI,EAAEC,YAAY,EAAEC,QAAQ,EAAEC,eAAe,EAAC,GAAGL;IACxD,MAAMM,mCAAmCJ,AAAS,SAATA,QAAiBC,AAAiB,UAAjBA;IAC1D,MAAMI,mBAAmBD,mCAAoCD,mBAAmBpB,qCAAsCiB;IAEtH,OAAO,WAAP,GACE,KAAC;QACC,KAAKX;QACL,WAAWE,GAAGC,iBAAAA,IAAW,EAAEU,YAAYV,iBAAAA,UAAiB,EAAEN;QACzD,GAAGE,KAAK;;YACRiB;YACAC,QAAQL,iBAAiB,WAAjBA,GACP,IAAC;gBAAI,WAAWT,iBAAAA,kBAAyB;0BACvC,kBAAC;oBAAI,WAAWA,iBAAAA,SAAgB;;;;;AAK1C;AAmBF,MAAMe,oBAAoB,WAAHA,GAAGtB,wBAAAA,UAAgB,CACxC,CAAC,EAACC,SAAS,EAAE,GAAGE,OAAwC,EAAEC,MAAAA,WAAAA,GACxD,IAAC;QACC,KAAKA;QACL,MAAK;QACL,WAAWE,GAAGC,iBAAAA,SAAgB,EAAEN;QAC/B,GAAGE,KAAK;kBACT,kBAACoB,OAAKA;YAAC,WAAWhB,iBAAAA,aAAoB;;;AAK5CR,SAAS,WAAW,GAAG;AACvBS,cAAc,WAAW,GAAG;AAC5BC,aAAa,WAAW,GAAG;AAC3Ba,kBAAkB,WAAW,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://./home/runner/work/arolariu.ro/arolariu.ro/packages/components/src/components/ui/input-otp.module.css","webpack://./src/components/ui/input-otp.module.css"],"names":[],"mappings":"AADA;ECEE,mBAAmB;EACnB,sBAAsB;EACtB,aAAa;AACf;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,mBAAmB;EACnB,aAAa;AACf;;AAEA;EACE,sCAAsC;EACtC,wCAAwC;EACxC,wCAAwC;EACxC,2BAA2B;EAC3B,4BAA4B;EAC5B,eAAe;EACf,uFAAuF;EACvF,uBAAuB;EACvB,cAAc;EACd,kBAAkB;EAClB,+BAA+B;AACjC;;AAEA;EACE,8CAA8C;EAC9C,uCAAuC;EACvC,2CAA2C;AAC7C;;AAEA;EACE,+CAA+C;EAC/C,4CAA4C;AAC9C;;AAEA;EACE,oCAAoC;EACpC,UAAU;AACZ;;AAEA;EACE,oBAAoB;EACpB,uBAAuB;EACvB,mBAAmB;EACnB,aAAa;EACb,kBAAkB;EAClB,QAAQ;AACV;;AAEA;EACE,sCAAsC;EACtC,UAAU;EACV,YAAY;EACZ,4DAAqD;AACvD;;AAEA;EACE,iCAAiC;EACjC,uBAAuB;EACvB,mBAAmB;EACnB,aAAa;AACf;;AAEA;EACE,WAAW;EACX,YAAY;AACd;;AAEA;EACE;IACE,UAAU;EACZ;;EAEA;IACE,UAAU;EACZ;AACF","sourcesContent":[".container{align-items:center;display:flex;gap:var(--ac-space-2)}.container:has(:disabled){opacity:.5}.input:disabled{cursor:not-allowed}.group,.slot{align-items:center;display:flex}.slot{background-color:var(--ac-background);border-block:1px solid var(--ac-border);border-right:1px solid var(--ac-border);box-shadow:0 1px 2px rgba(0,0,0,.05);color:var(--ac-foreground);font-size:var(--ac-text-sm);height:2.25rem;justify-content:center;position:relative;transition:box-shadow var(--ac-transition-fast),border-color var(--ac-transition-fast);width:2.25rem}.slot:first-child{border-bottom-left-radius:var(--ac-radius-md);border-left:1px solid var(--ac-border);border-top-left-radius:var(--ac-radius-md)}.slot:last-child{border-bottom-right-radius:var(--ac-radius-md);border-top-right-radius:var(--ac-radius-md)}.slotActive{box-shadow:0 0 0 1px var(--ac-ring);z-index:1}.fakeCaretContainer{align-items:center;display:flex;inset:0;justify-content:center;pointer-events:none;position:absolute}.fakeCaret{animation:input-otp-caret-blink 1s ease-out infinite;background-color:var(--ac-foreground);height:1rem;width:1px}.separator{align-items:center;color:var(--ac-muted-foreground);display:flex;justify-content:center}.separatorIcon{height:1rem;width:1rem}@keyframes input-otp-caret-blink{0%,70%,to{opacity:1}20%,50%{opacity:0}}",".container {\n align-items: center;\n gap: var(--ac-space-2);\n display: flex;\n}\n\n.container:has(:disabled) {\n opacity: .5;\n}\n\n.input:disabled {\n cursor: not-allowed;\n}\n\n.group, .slot {\n align-items: center;\n display: flex;\n}\n\n.slot {\n background-color: var(--ac-background);\n border-block: 1px solid var(--ac-border);\n border-right: 1px solid var(--ac-border);\n color: var(--ac-foreground);\n font-size: var(--ac-text-sm);\n height: 2.25rem;\n transition: box-shadow var(--ac-transition-fast),border-color var(--ac-transition-fast);\n justify-content: center;\n width: 2.25rem;\n position: relative;\n box-shadow: 0 1px 2px #0000000d;\n}\n\n.slot:first-child {\n border-bottom-left-radius: var(--ac-radius-md);\n border-left: 1px solid var(--ac-border);\n border-top-left-radius: var(--ac-radius-md);\n}\n\n.slot:last-child {\n border-bottom-right-radius: var(--ac-radius-md);\n border-top-right-radius: var(--ac-radius-md);\n}\n\n.slotActive {\n box-shadow: 0 0 0 1px var(--ac-ring);\n z-index: 1;\n}\n\n.fakeCaretContainer {\n pointer-events: none;\n justify-content: center;\n align-items: center;\n display: flex;\n position: absolute;\n inset: 0;\n}\n\n.fakeCaret {\n background-color: var(--ac-foreground);\n width: 1px;\n height: 1rem;\n animation: 1s ease-out infinite input-otp-caret-blink;\n}\n\n.separator {\n color: var(--ac-muted-foreground);\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.separatorIcon {\n width: 1rem;\n height: 1rem;\n}\n\n@keyframes input-otp-caret-blink {\n 0%, 70%, to {\n opacity: 1;\n }\n\n 20%, 50% {\n opacity: 0;\n }\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://./../../node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].oneOf[2].use[2]!/home/runner/work/arolariu.ro/arolariu.ro/node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/postcss-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[3]!/home/runner/work/arolariu.ro/arolariu.ro/packages/components/src/components/ui/input-otp.module.css","webpack://./src/components/ui/input-otp.module.css"],"names":[],"mappings":"AAAA;ECCE,mBAAmB;EACnB,sBAAsB;EACtB,aAAa;AACf;;ADJiE;ECO/D,WAAW;AACb;;ADRsG;ECWpG,mBAAmB;AACrB;;ADZyI;ECevI,mBAAmB;EACnB,aAAa;AACf;;ADjBsL;ECoBpL,sCAAsC;EACtC,wCAAwC;EACxC,wCAAwC;EACxC,2BAA2B;EAC3B,4BAA4B;EAC5B,eAAe;EACf,uFAAuF;EACvF,uBAAuB;EACvB,cAAc;EACd,kBAAkB;EAClB,+BAA+B;AACjC;;AD/B2iB;ECkCziB,8CAA8C;EAC9C,uCAAuC;EACvC,2CAA2C;AAC7C;;ADrC6rB;ECwC3rB,+CAA+C;EAC/C,4CAA4C;AAC9C;;AD1CyyB;EC6CvyB,oCAAoC;EACpC,UAAU;AACZ;;AD/Cm2B;ECkDj2B,oBAAoB;EACpB,uBAAuB;EACvB,mBAAmB;EACnB,aAAa;EACb,kBAAkB;EAClB,QAAQ;AACV;;ADxD49B;EC2D19B,sCAAsC;EACtC,UAAU;EACV,YAAY;EACZ,4DAAqD;AACvD;;AD/DwlC;ECkEtlC,iCAAiC;EACjC,uBAAuB;EACvB,mBAAmB;EACnB,aAAa;AACf;;ADtE2rC;ECyEzrC,WAAW;EACX,YAAY;AACd;;AD3EiuC;EC8E/tC;IACE,UAAU;EACZ;;EAEA;IACE,UAAU;EACZ;AACF","sourcesContent":[".container{align-items:center;display:flex;gap:var(--ac-space-2)}.container:has(:disabled){opacity:.5}.input:disabled{cursor:not-allowed}.group,.slot{align-items:center;display:flex}.slot{background-color:var(--ac-background);border-block:1px solid var(--ac-border);border-right:1px solid var(--ac-border);box-shadow:0 1px 2px rgba(0,0,0,.05);color:var(--ac-foreground);font-size:var(--ac-text-sm);height:2.25rem;justify-content:center;position:relative;transition:box-shadow var(--ac-transition-fast),border-color var(--ac-transition-fast);width:2.25rem}.slot:first-child{border-bottom-left-radius:var(--ac-radius-md);border-left:1px solid var(--ac-border);border-top-left-radius:var(--ac-radius-md)}.slot:last-child{border-bottom-right-radius:var(--ac-radius-md);border-top-right-radius:var(--ac-radius-md)}.slotActive{box-shadow:0 0 0 1px var(--ac-ring);z-index:1}.fakeCaretContainer{align-items:center;display:flex;inset:0;justify-content:center;pointer-events:none;position:absolute}.fakeCaret{animation:input-otp-caret-blink 1s ease-out infinite;background-color:var(--ac-foreground);height:1rem;width:1px}.separator{align-items:center;color:var(--ac-muted-foreground);display:flex;justify-content:center}.separatorIcon{height:1rem;width:1rem}@keyframes input-otp-caret-blink{0%,70%,to{opacity:1}20%,50%{opacity:0}}",".container {\n align-items: center;\n gap: var(--ac-space-2);\n display: flex;\n}\n\n.container:has(:disabled) {\n opacity: .5;\n}\n\n.input:disabled {\n cursor: not-allowed;\n}\n\n.group, .slot {\n align-items: center;\n display: flex;\n}\n\n.slot {\n background-color: var(--ac-background);\n border-block: 1px solid var(--ac-border);\n border-right: 1px solid var(--ac-border);\n color: var(--ac-foreground);\n font-size: var(--ac-text-sm);\n height: 2.25rem;\n transition: box-shadow var(--ac-transition-fast),border-color var(--ac-transition-fast);\n justify-content: center;\n width: 2.25rem;\n position: relative;\n box-shadow: 0 1px 2px #0000000d;\n}\n\n.slot:first-child {\n border-bottom-left-radius: var(--ac-radius-md);\n border-left: 1px solid var(--ac-border);\n border-top-left-radius: var(--ac-radius-md);\n}\n\n.slot:last-child {\n border-bottom-right-radius: var(--ac-radius-md);\n border-top-right-radius: var(--ac-radius-md);\n}\n\n.slotActive {\n box-shadow: 0 0 0 1px var(--ac-ring);\n z-index: 1;\n}\n\n.fakeCaretContainer {\n pointer-events: none;\n justify-content: center;\n align-items: center;\n display: flex;\n position: absolute;\n inset: 0;\n}\n\n.fakeCaret {\n background-color: var(--ac-foreground);\n width: 1px;\n height: 1rem;\n animation: 1s ease-out infinite input-otp-caret-blink;\n}\n\n.separator {\n color: var(--ac-muted-foreground);\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.separatorIcon {\n width: 1rem;\n height: 1rem;\n}\n\n@keyframes input-otp-caret-blink {\n 0%, 70%, to {\n opacity: 1;\n }\n\n 20%, 50% {\n opacity: 0;\n }\n}\n"],"sourceRoot":""}
@@ -3,10 +3,10 @@ import { jsx } from "react/jsx-runtime";
3
3
  import { Input } from "@base-ui/react/input";
4
4
  import { mergeProps } from "@base-ui/react/merge-props";
5
5
  import { useRender } from "@base-ui/react/use-render";
6
- import { forwardRef } from "react";
7
6
  import { cn } from "../../lib/utilities.js";
8
7
  import input_module from "./input.module.js";
9
- const input_Input = /*#__PURE__*/ forwardRef((props, ref)=>{
8
+ import * as __rspack_external_react from "react";
9
+ const input_Input = /*#__PURE__*/ __rspack_external_react.forwardRef((props, ref)=>{
10
10
  const { className, render, type, ...otherProps } = props;
11
11
  return /*#__PURE__*/ jsx(Input, {
12
12
  ref: ref,
@@ -1 +1 @@
1
- {"version":3,"file":"components/ui/input.js","sources":["../../../src/components/ui/input.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {Input as BaseInput} from \"@base-ui/react/input\";\r\nimport {mergeProps} from \"@base-ui/react/merge-props\";\r\nimport {useRender} from \"@base-ui/react/use-render\";\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./input.module.css\";\r\n\r\n/**\r\n * Props for the shared input wrapper.\r\n */\r\nexport interface InputProps extends Omit<React.ComponentPropsWithRef<typeof BaseInput>, \"className\"> {\r\n /** Additional CSS classes merged with the input styles. @default undefined */\r\n className?: string;\r\n /** The HTML input type forwarded to the underlying control. @default undefined */\r\n type?: React.HTMLInputTypeAttribute;\r\n}\r\n\r\n/**\r\n * Renders a styled text input for free-form single-line entry.\r\n *\r\n * @remarks\r\n * - Renders an `<input>` element by default\r\n * - Built on {@link https://base-ui.com/react/components/input | Base UI Input}\r\n * - Supports the `render` prop for element composition\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example Basic usage\r\n * ```tsx\r\n * <Input type=\"email\" placeholder=\"name@example.com\" />\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/input | Base UI Documentation}\r\n */\r\nconst Input = React.forwardRef<React.ComponentRef<typeof BaseInput>, Input.Props>(\r\n (props: Readonly<Input.Props>, ref): React.ReactElement => {\r\n const {className, render, type, ...otherProps} = props;\r\n\r\n return (\r\n <BaseInput\r\n ref={ref}\r\n type={type}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"input\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.input, className)}, {}),\r\n })}\r\n />\r\n );\r\n },\r\n);\r\nInput.displayName = \"Input\";\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace Input {\r\n export type Props = InputProps;\r\n export type State = BaseInput.State;\r\n}\r\n\r\nexport {Input};\r\n"],"names":["Input","React","props","ref","className","render","type","otherProps","BaseInput","useRender","mergeProps","cn","styles"],"mappings":";;;;;;;;AAoCA,MAAMA,cAAQ,WAAHA,GAAGC,WACZ,CAACC,OAA8BC;IAC7B,MAAM,EAACC,SAAS,EAAEC,MAAM,EAAEC,IAAI,EAAE,GAAGC,YAAW,GAAGL;IAEjD,OAAO,WAAP,GACE,IAACM,OAASA;QACR,KAAKL;QACL,MAAMG;QACL,GAAGC,UAAU;QACd,QAAQE,UAAU;YAChB,gBAAgB;YAChB,QAAQJ;YACR,OAAOK,WAAW;gBAAC,WAAWC,GAAGC,aAAAA,KAAY,EAAER;YAAU,GAAG,CAAC;QAC/D;;AAGN;AAEFJ,YAAM,WAAW,GAAG"}
1
+ {"version":3,"file":"components/ui/input.js","sources":["../../../src/components/ui/input.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {Input as BaseInput} from \"@base-ui/react/input\";\r\nimport {mergeProps} from \"@base-ui/react/merge-props\";\r\nimport {useRender} from \"@base-ui/react/use-render\";\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./input.module.css\";\r\n\r\n/**\r\n * Props for the shared input wrapper.\r\n */\r\nexport interface InputProps extends Omit<React.ComponentPropsWithRef<typeof BaseInput>, \"className\"> {\r\n /** Additional CSS classes merged with the input styles. @default undefined */\r\n className?: string;\r\n /** The HTML input type forwarded to the underlying control. @default undefined */\r\n type?: React.HTMLInputTypeAttribute;\r\n}\r\n\r\n/**\r\n * Renders a styled text input for free-form single-line entry.\r\n *\r\n * @remarks\r\n * - Renders an `<input>` element by default\r\n * - Built on {@link https://base-ui.com/react/components/input | Base UI Input}\r\n * - Supports the `render` prop for element composition\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example Basic usage\r\n * ```tsx\r\n * <Input type=\"email\" placeholder=\"name@example.com\" />\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/input | Base UI Documentation}\r\n */\r\nconst Input = React.forwardRef<React.ComponentRef<typeof BaseInput>, Input.Props>(\r\n (props: Readonly<Input.Props>, ref): React.ReactElement => {\r\n const {className, render, type, ...otherProps} = props;\r\n\r\n return (\r\n <BaseInput\r\n ref={ref}\r\n type={type}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"input\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.input, className)}, {}),\r\n })}\r\n />\r\n );\r\n },\r\n);\r\nInput.displayName = \"Input\";\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace Input {\r\n export type Props = InputProps;\r\n export type State = BaseInput.State;\r\n}\r\n\r\nexport {Input};\r\n"],"names":["Input","React","props","ref","className","render","type","otherProps","BaseInput","useRender","mergeProps","cn","styles"],"mappings":";;;;;;;;AAoCA,MAAMA,cAAQ,WAAHA,GAAGC,wBAAAA,UAAgB,CAC5B,CAACC,OAA8BC;IAC7B,MAAM,EAACC,SAAS,EAAEC,MAAM,EAAEC,IAAI,EAAE,GAAGC,YAAW,GAAGL;IAEjD,OAAO,WAAP,GACE,IAACM,OAASA;QACR,KAAKL;QACL,MAAMG;QACL,GAAGC,UAAU;QACd,QAAQE,UAAU;YAChB,gBAAgB;YAChB,QAAQJ;YACR,OAAOK,WAAW;gBAAC,WAAWC,GAAGC,aAAAA,KAAY,EAAER;YAAU,GAAG,CAAC;QAC/D;;AAGN;AAEFJ,YAAM,WAAW,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://./home/runner/work/arolariu.ro/arolariu.ro/packages/components/src/components/ui/input.module.css","webpack://./src/components/ui/input.module.css"],"names":[],"mappings":"AADA;ECEE,iCAAiC;EACjC,kCAAkC;EAClC,sBAAsB;EACtB,2BAA2B;EAC3B,4BAA4B;EAC5B,8BAA8B;EAC9B,4CAA4C;EAC5C,uFAAuF;EACvF,uBAAuB;EACvB,aAAa;EACb,WAAW;EACX,gBAAgB;EAChB,aAAa;;EAEb;IACE,iCAAiC;EACnC;;EAEA;IACE,4BAA4B;IAC5B,oCAAoC;EACtC;;EAEA;IACE,mBAAmB;IACnB,WAAW;EACb;;EAEA;IACE,4BAA4B;IAC5B,uBAAuB;IACvB,YAAY;IACZ,UAAU;IACV,gBAAgB;EAClB;AACF","sourcesContent":[".input{background-color:transparent;border:1px solid var(--ac-input);border-radius:var(--ac-radius-md);box-sizing:border-box;color:var(--ac-foreground);display:flex;font-size:var(--ac-text-sm);height:var(--ac-size-default);line-height:1.5;outline:none;padding:var(--ac-space-1) var(--ac-space-3);transition:border-color var(--ac-transition-fast),box-shadow var(--ac-transition-fast);width:100%;&::placeholder{color:var(--ac-muted-foreground)}&:focus-visible{border-color:var(--ac-ring);box-shadow:0 0 0 1px var(--ac-ring)}&:disabled{cursor:not-allowed;opacity:.5}&[type=file]{background-color:transparent;border:none;font-size:var(--ac-text-sm);font-weight:500;padding:0}}",".input {\n border: 1px solid var(--ac-input);\n border-radius: var(--ac-radius-md);\n box-sizing: border-box;\n color: var(--ac-foreground);\n font-size: var(--ac-text-sm);\n height: var(--ac-size-default);\n padding: var(--ac-space-1) var(--ac-space-3);\n transition: border-color var(--ac-transition-fast),box-shadow var(--ac-transition-fast);\n background-color: #0000;\n outline: none;\n width: 100%;\n line-height: 1.5;\n display: flex;\n\n &::placeholder {\n color: var(--ac-muted-foreground);\n }\n\n &:focus-visible {\n border-color: var(--ac-ring);\n box-shadow: 0 0 0 1px var(--ac-ring);\n }\n\n &:disabled {\n cursor: not-allowed;\n opacity: .5;\n }\n\n &[type=\"file\"] {\n font-size: var(--ac-text-sm);\n background-color: #0000;\n border: none;\n padding: 0;\n font-weight: 500;\n }\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://./../../node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].oneOf[2].use[2]!/home/runner/work/arolariu.ro/arolariu.ro/node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/postcss-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[3]!/home/runner/work/arolariu.ro/arolariu.ro/packages/components/src/components/ui/input.module.css","webpack://./src/components/ui/input.module.css"],"names":[],"mappings":"AAAA;ECCE,iCAAiC;EACjC,kCAAkC;EAClC,sBAAsB;EACtB,2BAA2B;EAC3B,4BAA4B;EAC5B,8BAA8B;EAC9B,4CAA4C;EAC5C,uFAAuF;EACvF,uBAAuB;EACvB,aAAa;EACb,WAAW;EACX,gBAAgB;EAChB,aAAa;;EDb2X;ICgBtY,iCAAiC;EACnC;;EDjBwb;ICoBtb,4BAA4B;IAC5B,oCAAoC;EACtC;;EDtBwgB;ICyBtgB,mBAAmB;IACnB,WAAW;EACb;;ED3BijB;IC8B/iB,4BAA4B;IAC5B,uBAAuB;IACvB,YAAY;IACZ,UAAU;IACV,gBAAgB;EAClB;AACF","sourcesContent":[".input{background-color:transparent;border:1px solid var(--ac-input);border-radius:var(--ac-radius-md);box-sizing:border-box;color:var(--ac-foreground);display:flex;font-size:var(--ac-text-sm);height:var(--ac-size-default);line-height:1.5;outline:none;padding:var(--ac-space-1) var(--ac-space-3);transition:border-color var(--ac-transition-fast),box-shadow var(--ac-transition-fast);width:100%;&::placeholder{color:var(--ac-muted-foreground)}&:focus-visible{border-color:var(--ac-ring);box-shadow:0 0 0 1px var(--ac-ring)}&:disabled{cursor:not-allowed;opacity:.5}&[type=file]{background-color:transparent;border:none;font-size:var(--ac-text-sm);font-weight:500;padding:0}}",".input {\n border: 1px solid var(--ac-input);\n border-radius: var(--ac-radius-md);\n box-sizing: border-box;\n color: var(--ac-foreground);\n font-size: var(--ac-text-sm);\n height: var(--ac-size-default);\n padding: var(--ac-space-1) var(--ac-space-3);\n transition: border-color var(--ac-transition-fast),box-shadow var(--ac-transition-fast);\n background-color: #0000;\n outline: none;\n width: 100%;\n line-height: 1.5;\n display: flex;\n\n &::placeholder {\n color: var(--ac-muted-foreground);\n }\n\n &:focus-visible {\n border-color: var(--ac-ring);\n box-shadow: 0 0 0 1px var(--ac-ring);\n }\n\n &:disabled {\n cursor: not-allowed;\n opacity: .5;\n }\n\n &[type=\"file\"] {\n font-size: var(--ac-text-sm);\n background-color: #0000;\n border: none;\n padding: 0;\n font-weight: 500;\n }\n}\n"],"sourceRoot":""}
@@ -89,7 +89,7 @@ declare const ItemGroup: React.ForwardRefExoticComponent<Omit<React.DetailedHTML
89
89
  *
90
90
  * @see {@link ItemSeparatorProps} for available props
91
91
  */
92
- declare const ItemSeparator: React.ForwardRefExoticComponent<Omit<Readonly<import("./separator").SeparatorProps>, "ref"> & React.RefAttributes<HTMLDivElement>>;
92
+ declare const ItemSeparator: React.ForwardRefExoticComponent<Omit<Omit<import("./separator").SeparatorProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
93
93
  /**
94
94
  * Creates a flexible data-display row with optional media and actions.
95
95
  *
@@ -1 +1 @@
1
- {"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../../src/components/ui/item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAIpD,mDAAmD;AACnD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE1D,gDAAgD;AAChD,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC;AAExC,wDAAwD;AACxD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAI5D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,SAAS,CAAC,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IACtE,iFAAiF;IACjF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAC3E,mEAAmE;IACnE,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAEpE;;;;;;;;;;;;;;;;GAgBG;AACH,QAAA,MAAM,SAAS,mKAUd,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,aAAa,kJAUlB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,IAAI,kFAyCT,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,SAAS,uFAUd,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,WAAW,mKAShB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,SAAS,mKASd,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,eAAe,qLASpB,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,QAAA,MAAM,WAAW,mKAShB,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,QAAA,MAAM,UAAU,mKASf,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,UAAU,mKASf,CAAC;AAaF,OAAO,EAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAC,CAAC"}
1
+ {"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../../src/components/ui/item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAIpD,mDAAmD;AACnD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE1D,gDAAgD;AAChD,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC;AAExC,wDAAwD;AACxD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAI5D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,SAAS,CAAC,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IACtE,iFAAiF;IACjF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAC3E,mEAAmE;IACnE,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAEpE;;;;;;;;;;;;;;;;GAgBG;AACH,QAAA,MAAM,SAAS,mKAUd,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,aAAa,2LAUlB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,IAAI,kFAyCT,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,SAAS,uFAUd,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,WAAW,mKAShB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,SAAS,mKASd,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,eAAe,qLASpB,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,QAAA,MAAM,WAAW,mKAShB,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,QAAA,MAAM,UAAU,mKASf,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,UAAU,mKASf,CAAC;AAaF,OAAO,EAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAC,CAAC"}
@@ -1,27 +1,27 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { cloneElement, forwardRef, isValidElement } from "react";
3
2
  import { Separator } from "./separator.js";
4
3
  import { cn } from "../../lib/utilities.js";
5
4
  import item_module from "./item.module.js";
6
- const ItemGroup = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
5
+ import * as __rspack_external_react from "react";
6
+ const ItemGroup = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
7
7
  ref: ref,
8
8
  role: "list",
9
9
  "data-slot": "item-group",
10
10
  className: cn(item_module.group, className),
11
11
  ...props
12
12
  }));
13
- const ItemSeparator = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx(Separator, {
13
+ const ItemSeparator = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx(Separator, {
14
14
  ref: ref,
15
15
  "data-slot": "item-separator",
16
16
  orientation: "horizontal",
17
17
  className: cn(item_module.separator, className),
18
18
  ...props
19
19
  }));
20
- const Item = /*#__PURE__*/ forwardRef(({ className, variant = "default", size = "default", asChild = false, children, ...props }, ref)=>{
20
+ const Item = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, variant = "default", size = "default", asChild = false, children, ...props }, ref)=>{
21
21
  const mergedClassName = cn(item_module.item, "outline" === variant && item_module.outline, "muted" === variant && item_module.muted, "sm" === size ? item_module.sizeSm : item_module.sizeDefault, className);
22
- if (asChild && /*#__PURE__*/ isValidElement(children)) {
22
+ if (asChild && /*#__PURE__*/ __rspack_external_react.isValidElement(children)) {
23
23
  const child = children;
24
- return /*#__PURE__*/ cloneElement(child, {
24
+ return /*#__PURE__*/ __rspack_external_react.cloneElement(child, {
25
25
  ...props,
26
26
  ref,
27
27
  "data-size": size,
@@ -40,44 +40,44 @@ const Item = /*#__PURE__*/ forwardRef(({ className, variant = "default", size =
40
40
  children: children
41
41
  });
42
42
  });
43
- const ItemMedia = /*#__PURE__*/ forwardRef(({ className, variant = "default", ...props }, ref)=>/*#__PURE__*/ jsx("div", {
43
+ const ItemMedia = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, variant = "default", ...props }, ref)=>/*#__PURE__*/ jsx("div", {
44
44
  ref: ref,
45
45
  "data-slot": "item-media",
46
46
  "data-variant": variant,
47
47
  className: cn(item_module.media, "icon" === variant && item_module.mediaIcon, "image" === variant && item_module.mediaImage, className),
48
48
  ...props
49
49
  }));
50
- const ItemContent = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
50
+ const ItemContent = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
51
51
  ref: ref,
52
52
  "data-slot": "item-content",
53
53
  className: cn(item_module.content, className),
54
54
  ...props
55
55
  }));
56
- const ItemTitle = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
56
+ const ItemTitle = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
57
57
  ref: ref,
58
58
  "data-slot": "item-title",
59
59
  className: cn(item_module.title, className),
60
60
  ...props
61
61
  }));
62
- const ItemDescription = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("p", {
62
+ const ItemDescription = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("p", {
63
63
  ref: ref,
64
64
  "data-slot": "item-description",
65
65
  className: cn(item_module.description, className),
66
66
  ...props
67
67
  }));
68
- const ItemActions = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
68
+ const ItemActions = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
69
69
  ref: ref,
70
70
  "data-slot": "item-actions",
71
71
  className: cn(item_module.actions, className),
72
72
  ...props
73
73
  }));
74
- const ItemHeader = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
74
+ const ItemHeader = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
75
75
  ref: ref,
76
76
  "data-slot": "item-header",
77
77
  className: cn(item_module.header, className),
78
78
  ...props
79
79
  }));
80
- const ItemFooter = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
80
+ const ItemFooter = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
81
81
  ref: ref,
82
82
  "data-slot": "item-footer",
83
83
  className: cn(item_module.footer, className),